From a09dce19a37dc82986c8240643906ce9dc88b777 Mon Sep 17 00:00:00 2001 From: Anyon Date: Mon, 19 Mar 2018 10:45:17 +0800 Subject: [PATCH 001/153] =?UTF-8?q?[=E6=9B=B4=E6=96=B0]=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E7=99=BB=E5=BD=95=E9=A1=B5=E9=9D=A2=E9=BB=98=E8=AE=A4=E5=AF=86?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/admin/view/login/index.html | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/application/admin/view/login/index.html b/application/admin/view/login/index.html index 42c4069a8..2b0374bb5 100644 --- a/application/admin/view/login/index.html +++ b/application/admin/view/login/index.html @@ -38,16 +38,14 @@ @@ -55,15 +53,12 @@ - {if sysconf('site_copy')} + - {/if} + From 6e18f7ff679e972088ac20f12198783c56eac840 Mon Sep 17 00:00:00 2001 From: Anyon Date: Mon, 19 Mar 2018 13:29:54 +0800 Subject: [PATCH 002/153] =?UTF-8?q?[=E6=9B=B4=E6=96=B0]=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E5=BE=AE=E4=BF=A1=E6=A8=A1=E5=9D=97=E6=8E=88=E6=9D=83=E6=A8=A1?= =?UTF-8?q?=E5=9D=97=E5=8F=8C=E6=A8=A1=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/wechat/controller/Config.php | 24 ++- application/wechat/controller/api/Push.php | 38 +++- application/wechat/service/FansService.php | 4 +- application/wechat/service/MediaService.php | 2 +- application/wechat/service/TagsService.php | 2 +- application/wechat/view/block/index.html | 11 +- application/wechat/view/config/index.html | 182 ++++++++++++++------ application/wechat/view/fans/index.html | 3 - application/wechat/view/keys/index.html | 6 +- extend/service/WechatService.php | 55 +++++- vendor/autoload.php | 2 +- vendor/composer/autoload_classmap.php | 1 + vendor/composer/autoload_real.php | 14 +- vendor/composer/autoload_static.php | 9 +- 14 files changed, 248 insertions(+), 105 deletions(-) diff --git a/application/wechat/controller/Config.php b/application/wechat/controller/Config.php index caacc43ee..333604aea 100644 --- a/application/wechat/controller/Config.php +++ b/application/wechat/controller/Config.php @@ -44,21 +44,29 @@ class Config extends BasicAdmin { if ($this->request->isGet()) { $code = encode(url('@admin', '', true, true) . '#' . $this->request->url()); - $assign = [ + return $this->fetch('', [ 'title' => '微信接口配置', 'appuri' => url("@wechat/api.push", '', true, true), - 'appid' => $this->request->get('appid', sysconf('wechat_appid')), - 'appkey' => $this->request->get('appkey', sysconf('wechat_appkey')), + 'appid' => $this->request->get('appid', sysconf('wechat_thr_appid')), + 'appkey' => $this->request->get('appkey', sysconf('wechat_thr_appkey')), 'authurl' => "http://wm.cuci.cc/wechat/api.push/auth/{$code}.html", 'wechat' => WechatService::instance('config')->getConfig(), - ]; - return $this->fetch('', $assign); + ]); } try { + // 接口对接类型 + sysconf('wechat_type', $this->request->post('wechat_type')); + // 直接参数对应 + sysconf('wechat_token', $this->request->post('wechat_token')); sysconf('wechat_appid', $this->request->post('wechat_appid')); - sysconf('wechat_appkey', $this->request->post('wechat_appkey')); - $apiurl = $this->request->post('wechat_appurl'); - if (!empty($apiurl)) { + sysconf('wechat_appsecret', $this->request->post('wechat_appsecret')); + sysconf('wechat_encodingaeskey', $this->request->post('wechat_encodingaeskey')); + // 第三方平台配置 + sysconf('wechat_thr_appid', $this->request->post('wechat_thr_appid')); + sysconf('wechat_thr_appkey', $this->request->post('wechat_thr_appkey')); + // 第三方平台时设置远程平台通知接口 + if ($this->request->post('wechat_type') === 'thr') { + $apiurl = url('@wechat/api.push', '', true, true); if (!WechatService::instance('config')->setApiNotifyUri($apiurl)) { $this->error('远程服务端接口更新失败,请稍候再试!'); } diff --git a/application/wechat/controller/api/Push.php b/application/wechat/controller/api/Push.php index c1a847b49..2a165a88f 100644 --- a/application/wechat/controller/api/Push.php +++ b/application/wechat/controller/api/Push.php @@ -50,26 +50,56 @@ class Push /** * 微信消息接口 + * @return string * @throws \think\Exception * @throws \think\exception\PDOException */ - public function __construct() + public function index() { $request = app('request'); $this->appid = $request->post('appid', '', null); $this->openid = $request->post('openid', '', null); $this->receive = unserialize($request->post('receive', '', null)); - p($this->receive); if (empty($this->appid) || empty($this->openid) || empty($this->receive)) { throw new Exception('微信API实例缺失必要参数[appid,openid,event].'); } - if ($this->appid !== sysconf('wechat_appid')) { + return $this->call($this->openid, $this->appid, $this->receive); + } + + /** + * 公众号直接对接 + * @return string + * @throws \think\Exception + * @throws \think\exception\PDOException + */ + public function notify() + { + $wechat = WechatService::receive(); + return $this->call(WechatService::getAppid(), $wechat->getOpenid(), $wechat->getReceive()); + } + + /** + * 初始化接口 + * @param string $appid 公众号APPID + * @param string $openid 公众号OPENID + * @param array $revice 消息对象 + * @return string + * @throws Exception + * @throws \think\exception\PDOException + */ + protected function call($appid, $openid, $revice) + { + $this->appid = $appid; + $this->openid = $openid; + $this->receive = $revice; + if ($this->appid !== WechatService::getAppid()) { throw new Exception('微信API实例APPID验证失败.'); } // text,event,image,location if (method_exists($this, ($method = $this->receive['MsgType']))) { - $this->$method(); + return $this->$method(); } + return 'success'; } /** diff --git a/application/wechat/service/FansService.php b/application/wechat/service/FansService.php index d7732cbb7..3c3b565b0 100644 --- a/application/wechat/service/FansService.php +++ b/application/wechat/service/FansService.php @@ -35,7 +35,7 @@ class FansService */ public static function set(array $user) { - $user['appid'] = sysconf('wechat_appid'); + $user['appid'] = WechatService::getAppid(); if (!empty($user['subscribe_time'])) { $user['subscribe_at'] = date('Y-m-d H:i:s', $user['subscribe_time']); } @@ -58,7 +58,7 @@ class FansService */ public static function get($openid) { - $map = ['openid' => $openid, 'appid' => sysconf('wechat_appid')]; + $map = ['openid' => $openid, 'appid' => WechatService::getAppid()]; $user = Db::name('WechatFans')->where($map)->find(); foreach (['country', 'province', 'city', 'nickname', 'remark'] as $k) { isset($user[$k]) && $user[$k] = ToolsService::emojiDecode($user[$k]); diff --git a/application/wechat/service/MediaService.php b/application/wechat/service/MediaService.php index 888f9caec..8dd14f7a1 100644 --- a/application/wechat/service/MediaService.php +++ b/application/wechat/service/MediaService.php @@ -84,7 +84,7 @@ class MediaService */ public static function uploadForeverMedia($local_url, $type = 'image', $video_info = []) { - $map = ['md5' => md5($local_url), 'appid' => sysconf('wechat_appid')]; + $map = ['md5' => md5($local_url), 'appid' => WechatService::getAppid()]; if (($media_id = Db::name('WechatNewsMedia')->where($map)->value('media_id'))) { return $media_id; } diff --git a/application/wechat/service/TagsService.php b/application/wechat/service/TagsService.php index 52ec49ffc..327884afe 100644 --- a/application/wechat/service/TagsService.php +++ b/application/wechat/service/TagsService.php @@ -54,7 +54,7 @@ class TagsService */ public static function sync() { - $appid = sysconf('wechat_appid'); + $appid = WechatService::getAppid(); $result = WechatService::tags()->getTags(); Db::name('WechatFansTags')->where(['appid' => $appid])->delete(); foreach (array_chunk($result['tags'], 100) as $list) { diff --git a/application/wechat/view/block/index.html b/application/wechat/view/block/index.html index f79abcfc8..220b24181 100644 --- a/application/wechat/view/block/index.html +++ b/application/wechat/view/block/index.html @@ -1,15 +1,12 @@ {extend name='admin@public/content'} {block name="button"} - - - {/block} {block name="content"} @@ -94,12 +91,12 @@

没 有 记 录 哦!

- + @@ -113,10 +110,10 @@ {foreach $list as $key=>$vo} -1&&(h=p.split("."),p=h.shift(),h.sort()),a=p.indexOf(":")<0&&"on"+p,t=t[pe.expando]?t:new pe.Event(p,"object"==typeof t&&t),t.isTrigger=i?2:3,t.namespace=h.join("."),t.rnamespace=t.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=r),n=null==n?[t]:pe.makeArray(n,[t]),l=pe.event.special[p]||{},i||!l.trigger||l.trigger.apply(r,n)!==!1)){if(!i&&!l.noBubble&&!pe.isWindow(r)){for(u=l.delegateType||p,Ke.test(u+p)||(s=s.parentNode);s;s=s.parentNode)d.push(s),c=s;c===(r.ownerDocument||re)&&d.push(c.defaultView||c.parentWindow||e)}for(f=0;(s=d[f++])&&!t.isPropagationStopped();)t.type=f>1?u:l.bindType||p,o=(pe._data(s,"events")||{})[t.type]&&pe._data(s,"handle"),o&&o.apply(s,n),o=a&&s[a],o&&o.apply&&He(s)&&(t.result=o.apply(s,n),t.result===!1&&t.preventDefault());if(t.type=p,!i&&!t.isDefaultPrevented()&&(!l._default||l._default.apply(d.pop(),n)===!1)&&He(r)&&a&&r[p]&&!pe.isWindow(r)){c=r[a],c&&(r[a]=null),pe.event.triggered=p;try{r[p]()}catch(g){}pe.event.triggered=void 0,c&&(r[a]=c)}return t.result}},dispatch:function(e){e=pe.event.fix(e);var t,n,r,i,o,a=[],s=ie.call(arguments),u=(pe._data(this,"events")||{})[e.type]||[],l=pe.event.special[e.type]||{};if(s[0]=e,e.delegateTarget=this,!l.preDispatch||l.preDispatch.call(this,e)!==!1){for(a=pe.event.handlers.call(this,e,u),t=0;(i=a[t++])&&!e.isPropagationStopped();)for(e.currentTarget=i.elem,n=0;(o=i.handlers[n++])&&!e.isImmediatePropagationStopped();)e.rnamespace&&!e.rnamespace.test(o.namespace)||(e.handleObj=o,e.data=o.data,r=((pe.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,s),void 0!==r&&(e.result=r)===!1&&(e.preventDefault(),e.stopPropagation()));return l.postDispatch&&l.postDispatch.call(this,e),e.result}},handlers:function(e,t){var n,r,i,o,a=[],s=t.delegateCount,u=e.target;if(s&&u.nodeType&&("click"!==e.type||isNaN(e.button)||e.button<1))for(;u!=this;u=u.parentNode||this)if(1===u.nodeType&&(u.disabled!==!0||"click"!==e.type)){for(r=[],n=0;n-1:pe.find(i,this,null,[u]).length),r[i]&&r.push(o);r.length&&a.push({elem:u,handlers:r})}return s]","i"),tt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,nt=/\s*$/g,at=p(re),st=at.appendChild(re.createElement("div"));pe.extend({htmlPrefilter:function(e){return e.replace(tt,"<$1>")},clone:function(e,t,n){var r,i,o,a,s,u=pe.contains(e.ownerDocument,e);if(fe.html5Clone||pe.isXMLDoc(e)||!et.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(st.innerHTML=e.outerHTML,st.removeChild(o=st.firstChild)),!(fe.noCloneEvent&&fe.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||pe.isXMLDoc(e)))for(r=h(o),s=h(e),a=0;null!=(i=s[a]);++a)r[a]&&k(i,r[a]);if(t)if(n)for(s=s||h(e),r=r||h(o),a=0;null!=(i=s[a]);a++)N(i,r[a]);else N(e,o);return r=h(o,"script"),r.length>0&&g(r,!u&&h(e,"script")),r=s=i=null,o},cleanData:function(e,t){for(var n,r,i,o,a=0,s=pe.expando,u=pe.cache,l=fe.attributes,c=pe.event.special;null!=(n=e[a]);a++)if((t||He(n))&&(i=n[s],o=i&&u[i])){if(o.events)for(r in o.events)c[r]?pe.event.remove(n,r):pe.removeEvent(n,r,o.handle);u[i]&&(delete u[i],l||"undefined"==typeof n.removeAttribute?n[s]=void 0:n.removeAttribute(s),ne.push(i))}}}),pe.fn.extend({domManip:S,detach:function(e){return A(this,e,!0)},remove:function(e){return A(this,e)},text:function(e){return Pe(this,function(e){return void 0===e?pe.text(this):this.empty().append((this[0]&&this[0].ownerDocument||re).createTextNode(e))},null,e,arguments.length)},append:function(){return S(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=T(this,e);t.appendChild(e)}})},prepend:function(){return S(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=T(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return S(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return S(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++){for(1===e.nodeType&&pe.cleanData(h(e,!1));e.firstChild;)e.removeChild(e.firstChild);e.options&&pe.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return pe.clone(this,e,t)})},html:function(e){return Pe(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e)return 1===t.nodeType?t.innerHTML.replace(Ze,""):void 0;if("string"==typeof e&&!nt.test(e)&&(fe.htmlSerialize||!et.test(e))&&(fe.leadingWhitespace||!$e.test(e))&&!Xe[(We.exec(e)||["",""])[1].toLowerCase()]){e=pe.htmlPrefilter(e);try{for(;n
- + 用户昵称 性别
- + - + {$vo.nickname|default='未设置微信昵称'} diff --git a/application/wechat/view/config/index.html b/application/wechat/view/config/index.html index 3b67f7d96..f8bb15a59 100644 --- a/application/wechat/view/config/index.html +++ b/application/wechat/view/config/index.html @@ -3,79 +3,151 @@ {block name="content"}
- -
-
-
-
- -
-
-

微信昵称:{$wechat.nick_name}

-

微信类型:{$wechat.service_type_info == 2 ? '服务号' : '订阅号'} / - {$wechat.verify_type_info == -1 ? '未认证' : '已认证'}

-

注册公司:{$wechat.principal_name}

-

授权绑定:{$wechat.create_at|format_datetime}

-
-
-
-
-
-
-

------- 公众号功能测试 -------

-
- -

网页授权

-
-
- -

JSSDK签名

-
-
-
-
- -
- +
- -

点击连接将跳转到微信第三方平台进行公众号授权。

+ {php} + $wechat_type=sysconf('wechat_type')?sysconf('wechat_type'):'api'; + $wechat_type=request()->get('appkey')?'thr':'api'; + {/php} + {foreach ['api'=>'普通接口参数','thr'=>'第三方授权对接'] as $k=>$v} + + {/foreach} +

如果使用第三方授权对接,需要ThinkService项目的支持。

-
- -
- -

公众号 appid 通过微信第三方授权自动获取. 若没有值请进行微信第三方授权。

+
+
+ +
+ +

公众号应用ID是所有接口必要参数,可以在公众号平台 [ 开发 > 基本配置 ] 页面获取。

+
+
+ +
+ +

公众号应用密钥是所有接口必要参数,可以在公众号平台 [ 开发 > 基本配置 ] 页面授权后获取。

+
+
+
+ +
+ +

公众号平台与系统对接认证Token,请优先填写此参数并保存,然后再在微信公众号平台操作对接。

+
+
+
+ +
+ +

公众号平台接口设置为加密模式,消息加密密钥必需填写并保持与公众号平台一致。

+
+
+
+ +
+ +

公众号服务平台接口通知URL, 公众号消息接收与回复等。

+
+
+
-
- -
- -

公众号服务平台接口密钥, 通过微信第三方授权自动获取, 若没有值请进行微信第三方授权。

-
-
-
- -
- -

公众号服务平台接口通知URL, 公众号消息接收与回复等。

+
+ +
+
WechatQrc
公众号二维码
+
+
+ +
+
+

微信昵称:{$wechat.nick_name}

+

微信类型:{$wechat.service_type_info == 2 ? '服务号' : '订阅号'} / + {$wechat.verify_type_info == -1 ? '未认证' : '已认证'}

+

注册公司:{$wechat.principal_name}

+

授权绑定:{$wechat.create_at|format_datetime}

+
+
+
+
TestQrc
测试二维码
+
+

------- 公众号功能测试 -------

+
+ +

网页授权

+
+
+ +

JSSDK签名

+
+
+
+
+ +
+ +
+ +

点击连接将跳转到微信第三方平台进行公众号授权。

+
+
+
+
+ +
+ +

公众号 appid 通过微信第三方授权自动获取. 若没有值请进行微信第三方授权。

+
+
+
+ +
+ +

公众号服务平台接口密钥, 通过微信第三方授权自动获取, 若没有值请进行微信第三方授权。

+
+
+
+ +
+ +

公众号服务平台接口通知URL, 公众号消息接收与回复等。

+
+
+
-
-
+ + {/block} diff --git a/application/wechat/view/fans/index.html b/application/wechat/view/fans/index.html index c3cffc4dc..2a5dad7dd 100644 --- a/application/wechat/view/fans/index.html +++ b/application/wechat/view/fans/index.html @@ -1,15 +1,12 @@ {extend name='admin@public/content'} {block name="button"} - - - {/block} {block name="content"} diff --git a/application/wechat/view/keys/index.html b/application/wechat/view/keys/index.html index 42c4f161d..aa719723d 100644 --- a/application/wechat/view/keys/index.html +++ b/application/wechat/view/keys/index.html @@ -14,9 +14,9 @@ {block name='content'}
- {if empty($list)} +

没 有 记 录 哦!

- {else} + @@ -94,7 +94,7 @@
{if isset($page)}

{$page|raw}

{/if} - {/if} +
{/block} diff --git a/extend/service/WechatService.php b/extend/service/WechatService.php index 2690a23ad..40404007c 100644 --- a/extend/service/WechatService.php +++ b/extend/service/WechatService.php @@ -15,6 +15,7 @@ namespace service; use app\wechat\service\FansService; +use function Couchbase\defaultDecoder; /** * 微信数据服务 @@ -40,8 +41,8 @@ use app\wechat\service\FansService; * @method \WeChat\Template template() static 模板消息 * @method \WeChat\User user() static 微信粉丝管理 * @method \WeChat\Wifi wifi() static 门店WIFI管理 - * @method void wechat static 第三方微信工具 - * @method void config static 第三方配置工具 + * @method void wechat() static 第三方微信工具 + * @method void config() static 第三方配置工具 */ class WechatService { @@ -49,17 +50,35 @@ class WechatService /** * 获取微信实例ID * @param string $name 实例对象名称 - * @return SoapService + * @return SoapService|string * @throws \think\Exception * @throws \think\exception\PDOException */ public static function instance($name) { - list($appid, $appkey) = [sysconf('wechat_appid'), sysconf('wechat_appkey')]; - $token = strtolower("{$name}-{$appid}-{$appkey}"); - $location = config('wechat.service_url') . "/wechat/api.client/soap/param/{$token}.html"; - $params = ['uri' => strtolower($name), 'location' => $location, 'trace' => true]; - return new SoapService(null, $params); + switch (strtolower(sysconf('wechat_type'))) { + case 'api': + $config = [ + 'token' => sysconf('wechat_token'), + 'appid' => sysconf('wechat_appid'), + 'appsecret' => sysconf('wechat_appsecret'), + 'encodingaeskey' => sysconf('wechat_encodingaeskey'), + 'mch_id' => sysconf('wechat_mch_id'), + 'partnerkey' => sysconf('wechat_partnerkey'), + 'ssl_cer' => sysconf('wechat_cert_cert'), + 'ssl_key' => sysconf('wechat_cert_key'), + 'cachepath' => env('cache_path') . 'wechat' . DIRECTORY_SEPARATOR, + ]; + $type = '\\WeChat\\' . ucfirst(strtolower($name)); + return new $type($config); + case 'thr': + default: + list($appid, $appkey) = [sysconf('wechat_thr_appid'), sysconf('wechat_thr_appkey')]; + $token = strtolower("{$name}-{$appid}-{$appkey}"); + $location = config('wechat.service_url') . "/wechat/api.client/soap/param/{$token}.html"; + $params = ['uri' => strtolower($name), 'location' => $location, 'trace' => true]; + return new SoapService(null, $params); + } } /** @@ -71,7 +90,7 @@ class WechatService */ public static function webOauth($fullMode = 0) { - $appid = sysconf('wechat_appid'); + $appid = sysconf('wechat_thr_appid'); list($openid, $fansinfo) = [session("{$appid}_openid"), session("{$appid}_fansinfo")]; if ((empty($fullMode) && !empty($openid)) || (!empty($fullMode) && !empty($fansinfo))) { empty($fansinfo) || FansService::set($fansinfo); @@ -90,6 +109,24 @@ class WechatService } } + /** + * 获取当前公众号的AppId + * @return bool|string + * @throws \think\Exception + * @throws \think\exception\PDOException + */ + public static function getAppid() + { + switch (strtolower(sysconf('wechat_type'))) { + case 'api': + return sysconf('wechat_appid'); + case 'thr': + return sysconf('wechat_thr_appid'); + default: + return ''; + } + } + /** * 魔术静态方法实现对象 * @param string $name diff --git a/vendor/autoload.php b/vendor/autoload.php index eb05b85ef..d9e0dd263 100644 --- a/vendor/autoload.php +++ b/vendor/autoload.php @@ -4,4 +4,4 @@ require_once __DIR__ . '/composer/autoload_real.php'; -return ComposerAutoloaderInitf5ccf8306b43a082cf18a5c251d77c48::getLoader(); +return ComposerAutoloaderInitaf24f5f94ed079e6264991343eebb4cc::getLoader(); diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php index 2d3310104..419ff198e 100644 --- a/vendor/composer/autoload_classmap.php +++ b/vendor/composer/autoload_classmap.php @@ -159,6 +159,7 @@ return array( 'app\\wechat\\controller\\Review' => $baseDir . '/application/wechat/controller/Review.php', 'app\\wechat\\controller\\Tags' => $baseDir . '/application/wechat/controller/Tags.php', 'app\\wechat\\controller\\api\\Push' => $baseDir . '/application/wechat/controller/api/Push.php', + 'app\\wechat\\controller\\api\\Tools' => $baseDir . '/application/wechat/controller/api/Tools.php', 'app\\wechat\\service\\FansService' => $baseDir . '/application/wechat/service/FansService.php', 'app\\wechat\\service\\MediaService' => $baseDir . '/application/wechat/service/MediaService.php', 'app\\wechat\\service\\TagsService' => $baseDir . '/application/wechat/service/TagsService.php', diff --git a/vendor/composer/autoload_real.php b/vendor/composer/autoload_real.php index dc3c6e6ae..f3f2679a0 100644 --- a/vendor/composer/autoload_real.php +++ b/vendor/composer/autoload_real.php @@ -2,7 +2,7 @@ // autoload_real.php @generated by Composer -class ComposerAutoloaderInitf5ccf8306b43a082cf18a5c251d77c48 +class ComposerAutoloaderInitaf24f5f94ed079e6264991343eebb4cc { private static $loader; @@ -19,15 +19,15 @@ class ComposerAutoloaderInitf5ccf8306b43a082cf18a5c251d77c48 return self::$loader; } - spl_autoload_register(array('ComposerAutoloaderInitf5ccf8306b43a082cf18a5c251d77c48', 'loadClassLoader'), true, true); + spl_autoload_register(array('ComposerAutoloaderInitaf24f5f94ed079e6264991343eebb4cc', 'loadClassLoader'), true, true); self::$loader = $loader = new \Composer\Autoload\ClassLoader(); - spl_autoload_unregister(array('ComposerAutoloaderInitf5ccf8306b43a082cf18a5c251d77c48', 'loadClassLoader')); + spl_autoload_unregister(array('ComposerAutoloaderInitaf24f5f94ed079e6264991343eebb4cc', 'loadClassLoader')); $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); if ($useStaticLoader) { require_once __DIR__ . '/autoload_static.php'; - call_user_func(\Composer\Autoload\ComposerStaticInitf5ccf8306b43a082cf18a5c251d77c48::getInitializer($loader)); + call_user_func(\Composer\Autoload\ComposerStaticInitaf24f5f94ed079e6264991343eebb4cc::getInitializer($loader)); } else { $map = require __DIR__ . '/autoload_namespaces.php'; foreach ($map as $namespace => $path) { @@ -48,19 +48,19 @@ class ComposerAutoloaderInitf5ccf8306b43a082cf18a5c251d77c48 $loader->register(true); if ($useStaticLoader) { - $includeFiles = Composer\Autoload\ComposerStaticInitf5ccf8306b43a082cf18a5c251d77c48::$files; + $includeFiles = Composer\Autoload\ComposerStaticInitaf24f5f94ed079e6264991343eebb4cc::$files; } else { $includeFiles = require __DIR__ . '/autoload_files.php'; } foreach ($includeFiles as $fileIdentifier => $file) { - composerRequiref5ccf8306b43a082cf18a5c251d77c48($fileIdentifier, $file); + composerRequireaf24f5f94ed079e6264991343eebb4cc($fileIdentifier, $file); } return $loader; } } -function composerRequiref5ccf8306b43a082cf18a5c251d77c48($fileIdentifier, $file) +function composerRequireaf24f5f94ed079e6264991343eebb4cc($fileIdentifier, $file) { if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { require $file; diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index 5dfc1d439..57bc42524 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -4,7 +4,7 @@ namespace Composer\Autoload; -class ComposerStaticInitf5ccf8306b43a082cf18a5c251d77c48 +class ComposerStaticInitaf24f5f94ed079e6264991343eebb4cc { public static $files = array ( '1cfd2761b63b0a29ed23657ea394cb2d' => __DIR__ . '/..' . '/topthink/think-captcha/src/helper.php', @@ -237,6 +237,7 @@ class ComposerStaticInitf5ccf8306b43a082cf18a5c251d77c48 'app\\wechat\\controller\\Review' => __DIR__ . '/../..' . '/application/wechat/controller/Review.php', 'app\\wechat\\controller\\Tags' => __DIR__ . '/../..' . '/application/wechat/controller/Tags.php', 'app\\wechat\\controller\\api\\Push' => __DIR__ . '/../..' . '/application/wechat/controller/api/Push.php', + 'app\\wechat\\controller\\api\\Tools' => __DIR__ . '/../..' . '/application/wechat/controller/api/Tools.php', 'app\\wechat\\service\\FansService' => __DIR__ . '/../..' . '/application/wechat/service/FansService.php', 'app\\wechat\\service\\MediaService' => __DIR__ . '/../..' . '/application/wechat/service/MediaService.php', 'app\\wechat\\service\\TagsService' => __DIR__ . '/../..' . '/application/wechat/service/TagsService.php', @@ -251,9 +252,9 @@ class ComposerStaticInitf5ccf8306b43a082cf18a5c251d77c48 public static function getInitializer(ClassLoader $loader) { return \Closure::bind(function () use ($loader) { - $loader->prefixLengthsPsr4 = ComposerStaticInitf5ccf8306b43a082cf18a5c251d77c48::$prefixLengthsPsr4; - $loader->prefixDirsPsr4 = ComposerStaticInitf5ccf8306b43a082cf18a5c251d77c48::$prefixDirsPsr4; - $loader->classMap = ComposerStaticInitf5ccf8306b43a082cf18a5c251d77c48::$classMap; + $loader->prefixLengthsPsr4 = ComposerStaticInitaf24f5f94ed079e6264991343eebb4cc::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInitaf24f5f94ed079e6264991343eebb4cc::$prefixDirsPsr4; + $loader->classMap = ComposerStaticInitaf24f5f94ed079e6264991343eebb4cc::$classMap; }, null, ClassLoader::class); } From 9a1c040c00397d83927a89c924887bc04ffacfdd Mon Sep 17 00:00:00 2001 From: Anyon Date: Mon, 19 Mar 2018 13:48:36 +0800 Subject: [PATCH 003/153] =?UTF-8?q?[=E6=9B=B4=E6=96=B0]=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=BE=AE=E4=BF=A1=E6=A8=A1=E5=9D=97=E5=8F=8C=E6=A8=A1=E5=9D=97?= =?UTF-8?q?=E5=85=BC=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/wechat/service/MediaService.php | 45 ++++++++++++++++----- 1 file changed, 36 insertions(+), 9 deletions(-) diff --git a/application/wechat/service/MediaService.php b/application/wechat/service/MediaService.php index 8dd14f7a1..bdf8b3734 100644 --- a/application/wechat/service/MediaService.php +++ b/application/wechat/service/MediaService.php @@ -14,6 +14,7 @@ namespace app\wechat\service; +use service\FileService; use service\WechatService; use think\Db; @@ -56,17 +57,20 @@ class MediaService * @return string * @throws \WeChat\Exceptions\InvalidResponseException * @throws \WeChat\Exceptions\LocalCacheException + * @throws \think\Exception + * @throws \think\exception\PDOException */ public static function uploadImage($local_url) { - $media_url = Db::name('WechatNewsImage')->where(['md5' => md5($local_url)])->value('media_url'); - if (!empty($media_url)) { + $map = ['md5' => md5($local_url)]; + if (!($media_url = Db::name('WechatNewsImage')->where($map)->value('media_url'))) { return $media_url; } - $result = WechatService::wechat()->upFile(base64_encode(file_get_contents($local_url)), $local_url); - $info = WechatService::media()->uploadImg($result['file']); - WechatService::wechat()->rmFile($local_url); - $data = ['local_url' => $local_url, 'media_url' => $info['url'], 'md5' => md5($local_url)]; + $info = WechatService::media()->uploadImg(self::getServerPath($local_url)); + if (strtolower(sysconf('wechat_type')) === 'thr') { + WechatService::wechat()->rmFile($local_url); + } + $data = ['local_url' => $local_url, 'media_url' => $info['url'], 'md5' => $map['md5']]; Db::name('WechatNewsImage')->insert($data); return $info['url']; } @@ -88,13 +92,36 @@ class MediaService if (($media_id = Db::name('WechatNewsMedia')->where($map)->value('media_id'))) { return $media_id; } - $result = WechatService::wechat()->upFile(base64_encode(file_get_contents($local_url)), $local_url); - $result = WechatService::media()->addMaterial($result['file'], $type, $video_info); - WechatService::wechat()->rmFile($local_url); + $result = WechatService::media()->addMaterial(self::getServerPath($local_url), $type, $video_info); + if (strtolower(sysconf('wechat_type')) === 'thr') { + WechatService::wechat()->rmFile($local_url); + } $data = ['md5' => $map['md5'], 'type' => $type, 'appid' => $map['appid'], 'media_id' => $result['media_id'], 'local_url' => $local_url]; isset($result['url']) && $data['media_url'] = $result['url']; Db::name('WechatNewsMedia')->insert($data); return $data['media_id']; } + /** + * 文件位置处理 + * @param string $local + * @return string + * @throws \think\Exception + * @throws \think\exception\PDOException + */ + protected static function getServerPath($local) + { + switch (strtolower(sysconf('wechat_type'))) { + case 'api': + if (file_exists($local)) { + return $local; + } + return FileService::download($local)['file']; + case 'thr': + return WechatService::wechat()->upFile(base64_encode(file_get_contents($local)), $local)['file']; + default: + return $local; + } + } + } \ No newline at end of file From 9e5318f2a197eef97a2aac69fae249f529d84581 Mon Sep 17 00:00:00 2001 From: Anyon Date: Mon, 19 Mar 2018 13:56:38 +0800 Subject: [PATCH 004/153] =?UTF-8?q?[=E6=9B=B4=E6=96=B0]=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=BE=AE=E4=BF=A1=E6=A8=A1=E5=BC=8F=E5=85=BC=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- extend/service/WechatService.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/extend/service/WechatService.php b/extend/service/WechatService.php index 40404007c..ccf2e8b57 100644 --- a/extend/service/WechatService.php +++ b/extend/service/WechatService.php @@ -69,6 +69,9 @@ class WechatService 'ssl_key' => sysconf('wechat_cert_key'), 'cachepath' => env('cache_path') . 'wechat' . DIRECTORY_SEPARATOR, ]; + if (in_array(strtolower($name), ['wechat', 'config'])) { + $name = 'receive'; + } $type = '\\WeChat\\' . ucfirst(strtolower($name)); return new $type($config); case 'thr': From 48c5c2fd35c10fa6a6e0ef1ed63a7cb200235e28 Mon Sep 17 00:00:00 2001 From: Anyon Date: Mon, 19 Mar 2018 13:59:12 +0800 Subject: [PATCH 005/153] =?UTF-8?q?[=E6=9B=B4=E6=96=B0]=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=BE=AE=E4=BF=A1=E6=A8=A1=E5=BC=8F=E5=85=BC=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- extend/service/WechatService.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extend/service/WechatService.php b/extend/service/WechatService.php index ccf2e8b57..a0a187530 100644 --- a/extend/service/WechatService.php +++ b/extend/service/WechatService.php @@ -70,7 +70,7 @@ class WechatService 'cachepath' => env('cache_path') . 'wechat' . DIRECTORY_SEPARATOR, ]; if (in_array(strtolower($name), ['wechat', 'config'])) { - $name = 'receive'; + $name = 'user'; } $type = '\\WeChat\\' . ucfirst(strtolower($name)); return new $type($config); From 06fa7570f72b80dd71b668cab5e7519871ecd1cf Mon Sep 17 00:00:00 2001 From: Anyon Date: Mon, 19 Mar 2018 14:02:34 +0800 Subject: [PATCH 006/153] =?UTF-8?q?[=E6=9B=B4=E6=96=B0]=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=BE=AE=E4=BF=A1=E6=A8=A1=E5=BC=8F=E5=85=BC=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/wechat/controller/Config.php | 8 +++++++- extend/service/WechatService.php | 3 --- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/application/wechat/controller/Config.php b/application/wechat/controller/Config.php index 333604aea..48de3aae8 100644 --- a/application/wechat/controller/Config.php +++ b/application/wechat/controller/Config.php @@ -17,6 +17,7 @@ namespace app\wechat\controller; use controller\BasicAdmin; use service\LogService; use service\WechatService; +use think\Exception; /** * 微信配置管理 @@ -44,13 +45,18 @@ class Config extends BasicAdmin { if ($this->request->isGet()) { $code = encode(url('@admin', '', true, true) . '#' . $this->request->url()); + try { + $info = WechatService::instance('config')->getConfig(); + } catch (Exception $e) { + $info = []; + } return $this->fetch('', [ 'title' => '微信接口配置', 'appuri' => url("@wechat/api.push", '', true, true), 'appid' => $this->request->get('appid', sysconf('wechat_thr_appid')), 'appkey' => $this->request->get('appkey', sysconf('wechat_thr_appkey')), 'authurl' => "http://wm.cuci.cc/wechat/api.push/auth/{$code}.html", - 'wechat' => WechatService::instance('config')->getConfig(), + 'wechat' => $info, ]); } try { diff --git a/extend/service/WechatService.php b/extend/service/WechatService.php index a0a187530..40404007c 100644 --- a/extend/service/WechatService.php +++ b/extend/service/WechatService.php @@ -69,9 +69,6 @@ class WechatService 'ssl_key' => sysconf('wechat_cert_key'), 'cachepath' => env('cache_path') . 'wechat' . DIRECTORY_SEPARATOR, ]; - if (in_array(strtolower($name), ['wechat', 'config'])) { - $name = 'user'; - } $type = '\\WeChat\\' . ucfirst(strtolower($name)); return new $type($config); case 'thr': From 6ce830f9a456d4b21de67a170302d6bb0fd072b8 Mon Sep 17 00:00:00 2001 From: Anyon Date: Mon, 19 Mar 2018 14:10:23 +0800 Subject: [PATCH 007/153] =?UTF-8?q?[=E6=9B=B4=E6=96=B0]=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=BE=AE=E4=BF=A1=E6=A8=A1=E5=BC=8F=E5=85=BC=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- extend/service/WechatService.php | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/extend/service/WechatService.php b/extend/service/WechatService.php index 40404007c..a24560acf 100644 --- a/extend/service/WechatService.php +++ b/extend/service/WechatService.php @@ -16,6 +16,7 @@ namespace service; use app\wechat\service\FansService; use function Couchbase\defaultDecoder; +use think\Exception; /** * 微信数据服务 @@ -64,13 +65,16 @@ class WechatService 'appsecret' => sysconf('wechat_appsecret'), 'encodingaeskey' => sysconf('wechat_encodingaeskey'), 'mch_id' => sysconf('wechat_mch_id'), - 'partnerkey' => sysconf('wechat_partnerkey'), + 'mch_key' => sysconf('wechat_partnerkey'), 'ssl_cer' => sysconf('wechat_cert_cert'), 'ssl_key' => sysconf('wechat_cert_key'), 'cachepath' => env('cache_path') . 'wechat' . DIRECTORY_SEPARATOR, ]; - $type = '\\WeChat\\' . ucfirst(strtolower($name)); - return new $type($config); + $class = '\\WeChat\\' . ucfirst(strtolower($name)); + if (class_exists($class)) { + return new $class($config); + } + throw new Exception("Class '{$class}' not found"); case 'thr': default: list($appid, $appkey) = [sysconf('wechat_thr_appid'), sysconf('wechat_thr_appkey')]; From 62409668fcceddc95cac84cbd15f168e8e0f9079 Mon Sep 17 00:00:00 2001 From: Anyon Date: Mon, 19 Mar 2018 14:20:36 +0800 Subject: [PATCH 008/153] =?UTF-8?q?[=E6=9B=B4=E6=96=B0]=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=BE=AE=E4=BF=A1=E6=A8=A1=E5=BC=8F=E5=85=BC=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/wechat/controller/Config.php | 2 +- extend/service/WechatService.php | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/application/wechat/controller/Config.php b/application/wechat/controller/Config.php index 48de3aae8..d8901acaa 100644 --- a/application/wechat/controller/Config.php +++ b/application/wechat/controller/Config.php @@ -73,7 +73,7 @@ class Config extends BasicAdmin // 第三方平台时设置远程平台通知接口 if ($this->request->post('wechat_type') === 'thr') { $apiurl = url('@wechat/api.push', '', true, true); - if (!WechatService::instance('config')->setApiNotifyUri($apiurl)) { + if (!WechatService::config()->setApiNotifyUri($apiurl)) { $this->error('远程服务端接口更新失败,请稍候再试!'); } } diff --git a/extend/service/WechatService.php b/extend/service/WechatService.php index a24560acf..be2087105 100644 --- a/extend/service/WechatService.php +++ b/extend/service/WechatService.php @@ -80,6 +80,7 @@ class WechatService list($appid, $appkey) = [sysconf('wechat_thr_appid'), sysconf('wechat_thr_appkey')]; $token = strtolower("{$name}-{$appid}-{$appkey}"); $location = config('wechat.service_url') . "/wechat/api.client/soap/param/{$token}.html"; + p($location); $params = ['uri' => strtolower($name), 'location' => $location, 'trace' => true]; return new SoapService(null, $params); } From 0f0b41a02a8d992f8f11422574109179df5c71fc Mon Sep 17 00:00:00 2001 From: Anyon Date: Mon, 19 Mar 2018 14:28:58 +0800 Subject: [PATCH 009/153] =?UTF-8?q?[=E6=9B=B4=E6=96=B0]=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=BE=AE=E4=BF=A1=E6=A8=A1=E5=BC=8F=E5=85=BC=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/wechat/controller/Config.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/application/wechat/controller/Config.php b/application/wechat/controller/Config.php index d8901acaa..c5bf0d9b2 100644 --- a/application/wechat/controller/Config.php +++ b/application/wechat/controller/Config.php @@ -81,7 +81,7 @@ class Config extends BasicAdmin } catch (\Exception $e) { $this->error('微信授权保存失败 , 请稍候重试 ! ' . $e->getMessage()); } - $this->success('微信授权数据修改成功!', ''); + $this->success('微信授权数据修改成功!', url('@admin') . "#" . url('@wechat/config/index')); } } From d9d4da48e1afec73be7f92ce4575d98f24a35ace Mon Sep 17 00:00:00 2001 From: Anyon Date: Mon, 19 Mar 2018 14:31:18 +0800 Subject: [PATCH 010/153] =?UTF-8?q?[=E6=9B=B4=E6=96=B0]=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=BE=AE=E4=BF=A1=E6=A8=A1=E5=BC=8F=E5=85=BC=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/wechat/controller/Config.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/application/wechat/controller/Config.php b/application/wechat/controller/Config.php index c5bf0d9b2..5282d9288 100644 --- a/application/wechat/controller/Config.php +++ b/application/wechat/controller/Config.php @@ -55,7 +55,7 @@ class Config extends BasicAdmin 'appuri' => url("@wechat/api.push", '', true, true), 'appid' => $this->request->get('appid', sysconf('wechat_thr_appid')), 'appkey' => $this->request->get('appkey', sysconf('wechat_thr_appkey')), - 'authurl' => "http://wm.cuci.cc/wechat/api.push/auth/{$code}.html", + 'authurl' => config('wechat.service_url') . "/wechat/api.push/auth/{$code}.html", 'wechat' => $info, ]); } From 1cf5c34f52b5a904dffa19562759d3989195bcea Mon Sep 17 00:00:00 2001 From: Anyon Date: Mon, 19 Mar 2018 14:36:50 +0800 Subject: [PATCH 011/153] =?UTF-8?q?[=E6=9B=B4=E6=96=B0]=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=BE=AE=E4=BF=A1=E6=A8=A1=E5=BC=8F=E5=85=BC=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/wechat/controller/Config.php | 2 +- extend/service/WechatService.php | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/application/wechat/controller/Config.php b/application/wechat/controller/Config.php index 5282d9288..9a33ab43b 100644 --- a/application/wechat/controller/Config.php +++ b/application/wechat/controller/Config.php @@ -55,7 +55,7 @@ class Config extends BasicAdmin 'appuri' => url("@wechat/api.push", '', true, true), 'appid' => $this->request->get('appid', sysconf('wechat_thr_appid')), 'appkey' => $this->request->get('appkey', sysconf('wechat_thr_appkey')), - 'authurl' => config('wechat.service_url') . "/wechat/api.push/auth/{$code}.html", + 'authurl' => config('wechat.service_url') . "/wechat/api.push/auth/redirect/{$code}.html", 'wechat' => $info, ]); } diff --git a/extend/service/WechatService.php b/extend/service/WechatService.php index be2087105..a24560acf 100644 --- a/extend/service/WechatService.php +++ b/extend/service/WechatService.php @@ -80,7 +80,6 @@ class WechatService list($appid, $appkey) = [sysconf('wechat_thr_appid'), sysconf('wechat_thr_appkey')]; $token = strtolower("{$name}-{$appid}-{$appkey}"); $location = config('wechat.service_url') . "/wechat/api.client/soap/param/{$token}.html"; - p($location); $params = ['uri' => strtolower($name), 'location' => $location, 'trace' => true]; return new SoapService(null, $params); } From 29d05def1959a27c31e9f2557ba42a905322d514 Mon Sep 17 00:00:00 2001 From: Anyon Date: Mon, 19 Mar 2018 14:38:32 +0800 Subject: [PATCH 012/153] =?UTF-8?q?[=E6=9B=B4=E6=96=B0]=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=BE=AE=E4=BF=A1=E6=A8=A1=E5=BC=8F=E5=85=BC=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/wechat/view/config/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/application/wechat/view/config/index.html b/application/wechat/view/config/index.html index f8bb15a59..4f99c4d5b 100644 --- a/application/wechat/view/config/index.html +++ b/application/wechat/view/config/index.html @@ -8,7 +8,7 @@
{php} $wechat_type=sysconf('wechat_type')?sysconf('wechat_type'):'api'; - $wechat_type=request()->get('appkey')?'thr':'api'; + $wechat_type=request()->get('appkey')?'thr':$wechat_type; {/php} {foreach ['api'=>'普通接口参数','thr'=>'第三方授权对接'] as $k=>$v}
-
-
TestQrc
测试二维码
-
-

------- 公众号功能测试 -------

-
- -

网页授权

-
-
- -

JSSDK签名

-
-
-
+
From 753e981b4466f0c8b5e1e60573b7e82198ad1472 Mon Sep 17 00:00:00 2001 From: Anyon Date: Mon, 19 Mar 2018 15:51:07 +0800 Subject: [PATCH 023/153] =?UTF-8?q?[=E6=9B=B4=E6=96=B0]=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E5=8F=88=E6=A8=A1=E5=BC=8F=E7=BD=91=E9=A1=B5=E6=8E=88=E6=9D=83?= =?UTF-8?q?=E5=85=BC=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/index/controller/Wechat.php | 51 ------------------------- 1 file changed, 51 deletions(-) delete mode 100644 application/index/controller/Wechat.php diff --git a/application/index/controller/Wechat.php b/application/index/controller/Wechat.php deleted file mode 100644 index 24d42fe81..000000000 --- a/application/index/controller/Wechat.php +++ /dev/null @@ -1,51 +0,0 @@ -fetch('wechat@api/tools/oauth', ['fans' => $fans]); - } - - /** - * 网页JSSDK测试 - * @return mixed - * @throws \WeChat\Exceptions\InvalidResponseException - * @throws \WeChat\Exceptions\LocalCacheException - * @throws \think\Exception - * @throws \think\exception\PDOException - */ - public function jssdk() - { - return $this->fetch('wechat@api/tools/jssdk', ['options' => WechatService::webJsSDK()]); - } -} \ No newline at end of file From 2a73e8e32877d057b14bd4662f27acf985caf2fa Mon Sep 17 00:00:00 2001 From: Anyon Date: Mon, 19 Mar 2018 16:00:12 +0800 Subject: [PATCH 024/153] =?UTF-8?q?[=E6=9B=B4=E6=96=B0]=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E5=8F=88=E6=A8=A1=E5=BC=8F=E7=BD=91=E9=A1=B5=E6=8E=88=E6=9D=83?= =?UTF-8?q?=E5=85=BC=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/wechat/view/config/index.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/application/wechat/view/config/index.html b/application/wechat/view/config/index.html index 5952cc234..31d40dbc4 100644 --- a/application/wechat/view/config/index.html +++ b/application/wechat/view/config/index.html @@ -85,8 +85,8 @@
-
WechatQrc
公众号二维码
-
+
Qrc
公众号二维码
+
From ede6e54e2760d5862d2e229030dfefc20d92842a Mon Sep 17 00:00:00 2001 From: Anyon Date: Mon, 19 Mar 2018 16:00:52 +0800 Subject: [PATCH 025/153] =?UTF-8?q?[=E6=9B=B4=E6=96=B0]=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E5=8F=88=E6=A8=A1=E5=BC=8F=E7=BD=91=E9=A1=B5=E6=8E=88=E6=9D=83?= =?UTF-8?q?=E5=85=BC=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/wechat/view/config/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/application/wechat/view/config/index.html b/application/wechat/view/config/index.html index 31d40dbc4..b7ad3d900 100644 --- a/application/wechat/view/config/index.html +++ b/application/wechat/view/config/index.html @@ -85,7 +85,7 @@
-
Qrc
公众号二维码
+
Qrc
二维码
From 11fd6a9c8dc37217d24d80f1f2405d224d7bc4e5 Mon Sep 17 00:00:00 2001 From: Anyon Date: Mon, 19 Mar 2018 16:46:17 +0800 Subject: [PATCH 026/153] =?UTF-8?q?[=E6=9B=B4=E6=96=B0]=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E5=8F=88=E6=A8=A1=E5=BC=8F=E7=BD=91=E9=A1=B5=E6=8E=88=E6=9D=83?= =?UTF-8?q?=E5=85=BC=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/wechat/view/config/index.html | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/application/wechat/view/config/index.html b/application/wechat/view/config/index.html index b7ad3d900..d374a351d 100644 --- a/application/wechat/view/config/index.html +++ b/application/wechat/view/config/index.html @@ -4,7 +4,7 @@
- +
{php} $wechat_type=sysconf('wechat_type')?sysconf('wechat_type'):'api'; @@ -27,10 +27,10 @@
-
Test
功能测试
+
Test
测试
- +

网页授权

@@ -87,8 +87,8 @@
Qrc
二维码
-
- +
+

微信昵称:{$wechat.nick_name}

@@ -99,7 +99,6 @@
-
From beb746abe87907fe6bc9394e0f20f07796dc8e85 Mon Sep 17 00:00:00 2001 From: Anyon Date: Mon, 19 Mar 2018 16:46:40 +0800 Subject: [PATCH 027/153] =?UTF-8?q?[=E6=9B=B4=E6=96=B0]=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E5=8F=88=E6=A8=A1=E5=BC=8F=E7=BD=91=E9=A1=B5=E6=8E=88=E6=9D=83?= =?UTF-8?q?=E5=85=BC=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/wechat/view/config/index.html | 1 - 1 file changed, 1 deletion(-) diff --git a/application/wechat/view/config/index.html b/application/wechat/view/config/index.html index d374a351d..2335c17bd 100644 --- a/application/wechat/view/config/index.html +++ b/application/wechat/view/config/index.html @@ -146,7 +146,6 @@ function updateViwe() { var type = $('[name="wechat_type"]:checked').val(); - console.log('[data-api-type="' + type + '"]'); $('[data-api-type]').not($('[data-api-type="' + type + '"]').removeClass('hide')).addClass('hide'); } }); From 75b4b362ab90d5c10cc7e3b4d3d0b7011fc297f3 Mon Sep 17 00:00:00 2001 From: Anyon Date: Mon, 19 Mar 2018 16:48:10 +0800 Subject: [PATCH 028/153] =?UTF-8?q?[=E6=9B=B4=E6=96=B0]=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E5=8F=88=E6=A8=A1=E5=BC=8F=E7=BD=91=E9=A1=B5=E6=8E=88=E6=9D=83?= =?UTF-8?q?=E5=85=BC=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/wechat/view/config/index.html | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/application/wechat/view/config/index.html b/application/wechat/view/config/index.html index 2335c17bd..0b28e2ec8 100644 --- a/application/wechat/view/config/index.html +++ b/application/wechat/view/config/index.html @@ -133,8 +133,10 @@
-
- +
+
+ +
From f3090369ef52e73d6ed623fd905ef2aa49a27f32 Mon Sep 17 00:00:00 2001 From: Anyon Date: Mon, 19 Mar 2018 16:56:35 +0800 Subject: [PATCH 029/153] =?UTF-8?q?[=E6=9B=B4=E6=96=B0]=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E5=8F=88=E6=A8=A1=E5=BC=8F=E7=BD=91=E9=A1=B5=E6=8E=88=E6=9D=83?= =?UTF-8?q?=E5=85=BC=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/wechat/view/config/index.html | 54 +++++++++++------------ 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/application/wechat/view/config/index.html b/application/wechat/view/config/index.html index 0b28e2ec8..572efcef0 100644 --- a/application/wechat/view/config/index.html +++ b/application/wechat/view/config/index.html @@ -27,7 +27,7 @@
-
Test
测试
+
Test
功能测试
@@ -44,28 +44,28 @@
- -
- -

公众号应用ID是所有接口必要参数,可以在公众号平台 [ 开发 > 基本配置 ] 页面获取。

-
-
-
- -
- -

公众号应用密钥是所有接口必要参数,可以在公众号平台 [ 开发 > 基本配置 ] 页面授权后获取。

-
-
-
- +

公众号平台与系统对接认证Token,请优先填写此参数并保存,然后再在微信公众号平台操作对接。

- + +
+ +

公众号应用ID是所有接口必要参数,可以在公众号平台 [ 开发 > 基本配置 ] 页面获取。

+
+
+
+ +
+ +

公众号应用密钥是所有接口必要参数,可以在公众号平台 [ 开发 > 基本配置 ] 页面授权后获取。

+
+
+
+

公众号平台接口设置为加密模式,消息加密密钥必需填写并保持与公众号平台一致。

@@ -85,16 +85,16 @@
-
Qrc
二维码
+
WxQrc
公众号二维码
- +
-
-

微信昵称:{$wechat.nick_name}

-

微信类型:{$wechat.service_type_info == 2 ? '服务号' : '订阅号'} / +

+

微信昵称:{$wechat.nick_name}

+

微信类型:{$wechat.service_type_info == 2 ? '服务号' : '订阅号'} / {$wechat.verify_type_info == -1 ? '未认证' : '已认证'}

-

注册公司:{$wechat.principal_name}

+

注册公司:{$wechat.principal_name}

授权绑定:{$wechat.create_at|format_datetime}

@@ -102,7 +102,7 @@
- +

点击连接将跳转到微信第三方平台进行公众号授权。

@@ -110,21 +110,21 @@
- +

公众号 appid 通过微信第三方授权自动获取. 若没有值请进行微信第三方授权。

- +

公众号服务平台接口密钥, 通过微信第三方授权自动获取, 若没有值请进行微信第三方授权。

- +

公众号服务平台接口通知URL, 公众号消息接收与回复等。

From c209909d953d3e1edb2a0789b67d08495222a8f7 Mon Sep 17 00:00:00 2001 From: Anyon Date: Mon, 19 Mar 2018 17:17:28 +0800 Subject: [PATCH 030/153] =?UTF-8?q?[=E6=9B=B4=E6=96=B0]=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E5=8F=88=E6=A8=A1=E5=BC=8F=E7=BD=91=E9=A1=B5=E6=8E=88=E6=9D=83?= =?UTF-8?q?=E5=85=BC=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/wechat/view/api/tools/jssdk.html | 1 - 1 file changed, 1 deletion(-) diff --git a/application/wechat/view/api/tools/jssdk.html b/application/wechat/view/api/tools/jssdk.html index c18a560e4..4c592a2aa 100644 --- a/application/wechat/view/api/tools/jssdk.html +++ b/application/wechat/view/api/tools/jssdk.html @@ -26,7 +26,6 @@ $.toptip(err.errMsg, 100000, 'error'); }); wx.ready(function () { - $.toptip('JSSDK 初始化成功...', 'success'); $('#show-alert').removeClass('weui-btn_disabled').on('click', function () { wx.scanQRCode({ needResult: 1, From 51dff7432647c2902abf593b96c14b986e548456 Mon Sep 17 00:00:00 2001 From: Anyon Date: Mon, 19 Mar 2018 17:42:12 +0800 Subject: [PATCH 031/153] =?UTF-8?q?[=E6=9B=B4=E6=96=B0]=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=85=B3=E9=94=AE=E5=AD=97=E8=A1=A8=E5=8D=95=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/wechat/view/keys/form.html | 351 ++++++++++++------------- 1 file changed, 161 insertions(+), 190 deletions(-) diff --git a/application/wechat/view/keys/form.html b/application/wechat/view/keys/form.html index cf6d79adf..cef7842a8 100644 --- a/application/wechat/view/keys/form.html +++ b/application/wechat/view/keys/form.html @@ -2,40 +2,12 @@ {block name="style"} {/block} @@ -52,154 +24,153 @@
-
+
{$title} -
- -
- -
- -
+ +
+ +
+
- - - -
- -
-
- {foreach ['1'=>'启用','0'=>'禁用'] as $k=>$v} - - {/foreach} -
-
-
-
- -
- {foreach ['text'=>'文字','news'=>'图文','image'=>'图片','music'=>'音乐','video'=>'视频'] as $k=>$v} +
+ + + +
+ +
+
+ {foreach ['1'=>'启用','0'=>'禁用'] as $k=>$v} - {/foreach} + {/foreach}
- -
- -
- -
-
- -
- -
- 选择图文 - -
-
- -
- -
- -

文件最大2Mb,支持bmp/png/jpeg/jpg/gif格式

- - 上传图片 -
-
- -
- -
-
- - -
-

文件最大2Mb,播放长度不超过60s,mp3/wma/wav/amr格式

-
-
- -
- -
- -
-
-
- -
-
- - -
-
-
-
- -
- -
-
-
- -
- -

文件最大64KB,只支持JPG格式

- - 上传图片 -
-
- -
- -
- -
-
-
- -
-
- - -
-

文件最大10MB,只支持MP4格式

-
-
-
- -
- -
-
- -
-
- - - - -
- {if isset($vo['id'])}{/if}
+
+ +
+ {foreach ['text'=>'文字','news'=>'图文','image'=>'图片','music'=>'音乐','video'=>'视频'] as $k=>$v} + + {/foreach} +
+
+ +
+ +
+ +
+
+ +
+ +
+ 选择图文 + +
+
+ +
+ +
+ +

文件最大2Mb,支持bmp/png/jpeg/jpg/gif格式

+ + 上传图片 +
+
+ +
+ +
+
+ + +
+

文件最大2Mb,播放长度不超过60s,mp3/wma/wav/amr格式

+
+
+ +
+ +
+ +
+
+
+ +
+
+ + +
+
+
+
+ +
+ +
+
+
+ +
+ +

文件最大64KB,只支持JPG格式

+ + 上传图片 +
+
+ +
+ +
+ +
+
+
+ +
+
+ + +
+

文件最大10MB,只支持MP4格式

+
+
+
+ +
+ +
+
+ +
+
+ + + + +
+ {if isset($vo['id'])}{/if} +
@@ -209,42 +180,42 @@ {block name="script"} +
+
+ +
+
+

品牌封面图片

+ + +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+
+ {if !empty($vo.id)}{/if} + + +
+
+ + + + + +{/block} \ No newline at end of file diff --git a/application/goods/view/brand/index.html b/application/goods/view/brand/index.html new file mode 100644 index 000000000..9f993f7d8 --- /dev/null +++ b/application/goods/view/brand/index.html @@ -0,0 +1,108 @@ +{extend name='admin@public/content'} + +{block name="button"} + + + + + + + + + +{/block} + +{block name="content"} + + + + + + + +
+ {if empty($list)} +

没 有 记 录 哦!

+ {else} + + + + + + + + + + + + + + {foreach $list as $key=>$vo} + + + + + + + + + {/foreach} + +
+ + + + 产品品牌添加时间品牌状态
+ + + + {$vo.brand_title}{$vo.create_at|format_datetime} + {if $vo.status eq 0}已禁用{elseif $vo.status eq 1}使用中{/if} + + + {if auth("$classuri/edit")} + | + 编辑 + {/if} + + {if $vo.status eq 1 and auth("$classuri/forbid")} + | + 禁用 + {elseif auth("$classuri/resume")} + | + 启用 + {/if} + + {if auth("$classuri/del")} + | + 删除 + {/if} + +
+ {if isset($page)}

{$page|raw}

{/if} + {/if} +
+{/block} \ No newline at end of file diff --git a/application/goods/view/cate/form.html b/application/goods/view/cate/form.html new file mode 100644 index 000000000..4e72da548 --- /dev/null +++ b/application/goods/view/cate/form.html @@ -0,0 +1,39 @@ +
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ {if isset($vo['id'])}{/if} + + +
+
diff --git a/application/goods/view/cate/index.html b/application/goods/view/cate/index.html new file mode 100644 index 000000000..3aec38b2e --- /dev/null +++ b/application/goods/view/cate/index.html @@ -0,0 +1,83 @@ +{extend name='admin@public/content'} + +{block name="button"} + + + + + + +{/block} + +{block name="content"} +
+ +

没 有 记 录 哦!

+ + + + + + + + + + + + + + + + {foreach $list as $key=>$vo} + + + + + + + + + + {/foreach} + +
+ + + + 产品分类分类描述添加时间分类状态
+ + + + + {$vo.spl|raw} {$vo.cate_title} + + {$vo.cate_desc|default='未设置分类描述'|raw} + + {$vo.create_at|format_datetime} + + {if $vo.status eq 0}已禁用{elseif $vo.status eq 1}使用中{/if} + + + {if auth("$classuri/edit")} + | + 编辑 + {/if} + + {if $vo.status eq 1 and auth("$classuri/forbid")} + | + 禁用 + {elseif auth("$classuri/resume")} + | + 启用 + {/if} + + {if auth("$classuri/del")} + | + 删除 + {/if} + +
+ {if isset($page)}

{$page|raw}

{/if} + +
+{/block} \ No newline at end of file diff --git a/application/goods/view/product/form.html b/application/goods/view/product/form.html new file mode 100644 index 000000000..ea3cab946 --- /dev/null +++ b/application/goods/view/product/form.html @@ -0,0 +1,349 @@ +{extend name='admin@public/content'} + +{block name="content"} +
+ + +
+ +
+ +
+
+ + + +
+ +
+ +
+
+ + +
+ +
+ +
+
+ + {if !empty($tags)} +
+ +
+
+ {foreach $tags as $tag} + + {/foreach} +
+
+
+ {/if} + +
+ +
+ + + + + + + + + +
产品LOGO产品图片
+ + + +
+
+
+ + +
+ +
+ + + + + + + + + + +
可选规格规格内容
+ +
+ + + + + + + + + + + + + + + + + +
产品规格市场价格销售价格规格状态
+ + + + + + + + + + + +
+
+
+ + +
+ +
+
+
+ +
+
+ +
+
+
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+
+ {if !empty($vo.id)}{/if} + + +
+
+ +
+ + +{/block} + +{block name="style"} + +{/block} \ No newline at end of file diff --git a/application/goods/view/product/index.html b/application/goods/view/product/index.html new file mode 100644 index 000000000..f3cf5e250 --- /dev/null +++ b/application/goods/view/product/index.html @@ -0,0 +1,189 @@ +{extend name='admin@public/content'} + +{block name="button"} + + + + + + + + + + + + + + + + + +{/block} + +{block name="content"} + + + + + +
+ +

没 有 记 录 哦!

+ + + + + + + + + + + + + + + {foreach $list as $key=>$vo} + + + + + + + + + + {/foreach} + +
+ + + + 品牌分类 + + + + + + + +
产品信息售价 ( 标价 ) / 库存 ( 剩余, 已售 )
+
添加时间 / 状态
+ + + + + 品牌:{$vo.brand.brand_title|default='未配置品牌'|raw}
+ 分类:{if empty($vo.cate)}未配置分类{else} + {foreach $vo.cate as $k=>$cate}{$cate.cate_title} + {if $k+1 < count($vo.cate)}{/if} + {/foreach} + {/if} +
+ + + + + {foreach $vo.spec as $spec} + + + + + {/foreach} +
+ [{$spec.goods_id}] {$spec.goods_title|default=''|raw} + {$spec.goods_spec_alias|raw} + + 售 {$spec.selling_price} ( 市 {$spec.market_price} ) + 存 {$spec.goods_stock} ( 剩 {$spec.goods_stock-$spec.goods_sale}, 售 {$spec.goods_sale} ) +
+
+ {$vo.create_at|format_datetime|str_replace=' ','
',###|raw} + {if $vo.status eq '0'}已下架{elseif $vo.status eq '1'}销售中{/if} +
+ + + | + 编辑 + + + + | + 下架 + + | + 上架 + + + + | + 删除 + + +
+ {if isset($page)}

{$page|raw}

{/if} + +
+ +{/block} \ No newline at end of file diff --git a/application/goods/view/spec/form.html b/application/goods/view/spec/form.html new file mode 100644 index 000000000..c9b987594 --- /dev/null +++ b/application/goods/view/spec/form.html @@ -0,0 +1,194 @@ +
+ +
+ +
+ +
+
+ +
+ +
+ + + + + + + + + + + + +
+ + + + + 删除 + 删除 + 上移 + 上移 + 下移 + 下移 +
+ 添加属性 +
+

设置多个内容值时请使用空格键或英文逗号隔开。

+
+
+ +
+ +
+ +
+
+ +
+ +
+ {if isset($vo['id'])}{/if} + + +
+ + + + +
diff --git a/application/goods/view/spec/index.html b/application/goods/view/spec/index.html new file mode 100644 index 000000000..6993e14db --- /dev/null +++ b/application/goods/view/spec/index.html @@ -0,0 +1,115 @@ +{extend name='admin@public/content'} + +{block name="button"} + + + + + + + + + +{/block} + +{block name="content"} + + + + + + + +
+ {if empty($list)} +

没 有 记 录 哦!

+ {else} + + + + + + + + + + + + + + + {foreach $list as $key=>$vo} + + + + + + + + + + {/foreach} + +
+ + + + 规格分组规格内容添加时间标签状态
+ + + + {$vo.spec_title} + {foreach $vo.spec_param as $param} +

{$param.name} : {$param.value}

+ {/foreach} +
+ {$vo.create_at|format_datetime|raw} + + {if $vo.status eq 0}已禁用{elseif $vo.status eq 1}使用中{/if} + + + {if auth("$classuri/edit")} + | + 编辑 + {/if} + + {if $vo.status eq 1 and auth("$classuri/forbid")} + | + 禁用 + {elseif auth("$classuri/resume")} + | + 启用 + {/if} + + {if auth("$classuri/del")} + | + 删除 + {/if} +
+ {if isset($page)}

{$page|raw}

{/if} + {/if} +
+{/block} \ No newline at end of file From 7586860d92900b2e3fac483efce2ebea55656ffd Mon Sep 17 00:00:00 2001 From: Anyon Date: Fri, 23 Mar 2018 17:24:04 +0800 Subject: [PATCH 049/153] =?UTF-8?q?[=E6=9B=B4=E6=96=B0]=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=85=AC=E4=BC=97=E5=8F=B7=E6=B6=88=E6=81=AF=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/wechat/controller/api/Push.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/application/wechat/controller/api/Push.php b/application/wechat/controller/api/Push.php index 2a165a88f..468ccc7a4 100644 --- a/application/wechat/controller/api/Push.php +++ b/application/wechat/controller/api/Push.php @@ -97,7 +97,7 @@ class Push } // text,event,image,location if (method_exists($this, ($method = $this->receive['MsgType']))) { - return $this->$method(); + $this->$method(); } return 'success'; } @@ -237,7 +237,6 @@ class Push protected function sendMessage($type, $data) { $msgData = ['touser' => $this->openid, 'msgtype' => $type, "{$type}" => $data]; - p($msgData); return WechatService::custom()->send($msgData); } From 24e71c7236632d41101a18760ecd3fa562854f6e Mon Sep 17 00:00:00 2001 From: Anyon Date: Fri, 23 Mar 2018 18:29:00 +0800 Subject: [PATCH 050/153] =?UTF-8?q?[=E6=9B=B4=E6=96=B0]=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=BE=AE=E4=BF=A1=E9=A2=84=E8=A7=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/wechat/view/review/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/application/wechat/view/review/index.html b/application/wechat/view/review/index.html index e76097967..bc2f45c5d 100644 --- a/application/wechat/view/review/index.html +++ b/application/wechat/view/review/index.html @@ -27,7 +27,7 @@
{:date('H:i')}
- +
{if $type eq 'text'} From 1b87c94fee4938c024e8ed948184e393751eac12 Mon Sep 17 00:00:00 2001 From: Anyon Date: Fri, 23 Mar 2018 18:32:00 +0800 Subject: [PATCH 051/153] =?UTF-8?q?[=E6=9B=B4=E6=96=B0]=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=BE=AE=E4=BF=A1=E5=85=B3=E9=94=AE=E5=AD=97=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/wechat/view/keys/form.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/application/wechat/view/keys/form.html b/application/wechat/view/keys/form.html index cef7842a8..b45e7b8b3 100644 --- a/application/wechat/view/keys/form.html +++ b/application/wechat/view/keys/form.html @@ -7,14 +7,14 @@ .keys-container .input-group input{border-right:0} .keys-container .input-group-addon{border-left:0;border-radius:0} .keys-container [data-tips-image]{width:112px;height:auto;} - .keys-container .layui-elem-field{width:535px;height:580px;position:absolute} + .keys-container .layui-elem-field{width:535px;height:590px;position:absolute} {/block} {block name="content"} -
+
公众号
From 5cd7f6f7058a8be693cfc1ee0dcaf27f77e8da0b Mon Sep 17 00:00:00 2001 From: Anyon Date: Fri, 23 Mar 2018 18:51:58 +0800 Subject: [PATCH 052/153] =?UTF-8?q?[=E6=9B=B4=E6=96=B0]=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=93=81=E7=89=8C=E7=BC=96=E8=BE=91=E8=A1=A8=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/goods/view/brand/form.html | 54 ++++++++++++++------------ 1 file changed, 29 insertions(+), 25 deletions(-) diff --git a/application/goods/view/brand/form.html b/application/goods/view/brand/form.html index 86c25498b..eb8e086e9 100644 --- a/application/goods/view/brand/form.html +++ b/application/goods/view/brand/form.html @@ -1,42 +1,46 @@ {extend name='admin@public/content'} {block name="content"} -
+ -
- -
- +
+ +
+
-
- -
-

品牌Logo图片

- - +
+ +
+
+
+

品牌Logo图片

+ + +
+
+ +
+
+

品牌封面图片

+ + +
+
-
-
-

品牌封面图片

- - -
-
- -
- -
+
+ +
-
- -
+
+ +
From 5ff3f3aa95bfd420fbdb318b02772a212bdfb2a1 Mon Sep 17 00:00:00 2001 From: Anyon Date: Sat, 24 Mar 2018 11:00:44 +0800 Subject: [PATCH 053/153] =?UTF-8?q?[=E6=9B=B4=E6=96=B0]=E4=BF=AE=E6=AD=A3?= =?UTF-8?q?=E7=B3=BB=E7=BB=9F=E6=8F=8F=E8=BF=B0=E9=A1=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/admin/view/index/main.html | 64 +------------------------- 1 file changed, 1 insertion(+), 63 deletions(-) diff --git a/application/admin/view/index/main.html b/application/admin/view/index/main.html index abd045bdc..430da75a1 100644 --- a/application/admin/view/index/main.html +++ b/application/admin/view/index/main.html @@ -2,41 +2,6 @@ {block name="content"} -
    -
  • -

    微信粉丝统计

    -

    {:db('WechatFans')->cache(true,60)->where(['subscribe'=>'1','is_black'=>'0'])->count()}

    -
  • -
  • -

    微信粉丝统计

    -

    {:db('WechatFans')->cache(true,60)->where(['subscribe'=>'1'])->count()}

    -
  • -
  • -

    微信粉丝统计

    -

    {:db('WechatFans')->cache(true,60)->where(['subscribe'=>'1'])->count()}

    -
  • -
  • -

    微信粉丝统计

    -

    {:db('WechatFans')->cache(true,60)->where(['subscribe'=>'1'])->count()}

    -
  • -
  • -

    微信粉丝统计

    -

    {:db('WechatFans')->cache(true,60)->where(['subscribe'=>'1'])->count()}

    -
  • -
  • -

    微信粉丝统计

    -

    {:db('WechatFans')->cache(true,60)->where(['subscribe'=>'1'])->count()}

    -
  • -
  • -

    微信粉丝统计

    -

    {:db('WechatFans')->cache(true,60)->where(['subscribe'=>'1'])->count()}

    -
  • -
  • -

    微信粉丝统计

    -

    {:db('WechatFans')->cache(true,60)->where(['subscribe'=>'1'])->count()}

    -
  • -
- @@ -68,7 +33,7 @@ @@ -115,31 +80,4 @@
{:php_uname('s')} 产品DEMO体验 - http://service.thinkadmin.top + http://demo.thinkadmin.top
-{/block} - -{block name='style'} - {/block} \ No newline at end of file From 1c650039c91922ac7ab3cd85828cd8f251a79d79 Mon Sep 17 00:00:00 2001 From: Anyon Date: Sat, 24 Mar 2018 11:26:31 +0800 Subject: [PATCH 054/153] =?UTF-8?q?[=E6=9B=B4=E6=96=B0]=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E8=A1=A8=E5=8D=95=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/admin/view/auth/form.html | 2 +- application/admin/view/menu/form.html | 2 +- application/admin/view/user/auth.html | 2 +- application/admin/view/user/form.html | 2 +- application/admin/view/user/pass.html | 2 +- application/goods/view/cate/form.html | 2 +- application/goods/view/spec/form.html | 48 +++++++++++++++----------- application/wechat/view/tags/form.html | 2 +- 8 files changed, 34 insertions(+), 28 deletions(-) diff --git a/application/admin/view/auth/form.html b/application/admin/view/auth/form.html index 5ca12242d..874a0732e 100644 --- a/application/admin/view/auth/form.html +++ b/application/admin/view/auth/form.html @@ -1,4 +1,4 @@ - +
diff --git a/application/admin/view/menu/form.html b/application/admin/view/menu/form.html index 86196980f..9008d90ba 100644 --- a/application/admin/view/menu/form.html +++ b/application/admin/view/menu/form.html @@ -1,4 +1,4 @@ - +
diff --git a/application/admin/view/user/auth.html b/application/admin/view/user/auth.html index d448eccee..427dac275 100644 --- a/application/admin/view/user/auth.html +++ b/application/admin/view/user/auth.html @@ -1,4 +1,4 @@ - +
diff --git a/application/admin/view/user/form.html b/application/admin/view/user/form.html index 00d5a90e8..24ce246f6 100644 --- a/application/admin/view/user/form.html +++ b/application/admin/view/user/form.html @@ -1,4 +1,4 @@ - +
diff --git a/application/admin/view/user/pass.html b/application/admin/view/user/pass.html index fb294646d..4bd7cc091 100644 --- a/application/admin/view/user/pass.html +++ b/application/admin/view/user/pass.html @@ -1,4 +1,4 @@ - +
diff --git a/application/goods/view/cate/form.html b/application/goods/view/cate/form.html index 4e72da548..bfbac66e6 100644 --- a/application/goods/view/cate/form.html +++ b/application/goods/view/cate/form.html @@ -1,4 +1,4 @@ - +
diff --git a/application/goods/view/spec/form.html b/application/goods/view/spec/form.html index c9b987594..cab3e4070 100644 --- a/application/goods/view/spec/form.html +++ b/application/goods/view/spec/form.html @@ -11,28 +11,32 @@
+
+ + + + + + + + +
+ + + + + 删除 + 删除 + 上移 + 上移 + 下移 + 下移 +
+
- - - - - - - -
- - - - - 删除 - 删除 - 上移 - 上移 - 下移 - 下移 -
- 添加属性 + +
@@ -85,6 +89,9 @@ // 添加参数 $rootScope.addParam = function () { $rootScope.paramList.push({name: '', value: ''}); + setTimeout(function () { + $('.param-table-list').scrollTop('10000') + }, 10); }; // 属性参数下移 @@ -148,7 +155,6 @@ {/block} {block name='content'} -
+
公众号
@@ -91,7 +60,7 @@
t
",t=l.getElementsByTagName("td"),t[0].style.cssText="margin:0;border:0;padding:0;display:none",o=0===t[0].offsetHeight,o&&(t[0].style.display="",t[1].style.display="none",o=0===t[0].offsetHeight)),f.removeChild(u)}var n,r,i,o,a,s,u=re.createElement("div"),l=re.createElement("div");l.style&&(l.style.cssText="float:left;opacity:.5",fe.opacity="0.5"===l.style.opacity,fe.cssFloat=!!l.style.cssFloat,l.style.backgroundClip="content-box",l.cloneNode(!0).style.backgroundClip="",fe.clearCloneStyle="content-box"===l.style.backgroundClip,u=re.createElement("div"),u.style.cssText="border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute",l.innerHTML="",u.appendChild(l),fe.boxSizing=""===l.style.boxSizing||""===l.style.MozBoxSizing||""===l.style.WebkitBoxSizing,pe.extend(fe,{reliableHiddenOffsets:function(){return null==n&&t(),o},boxSizingReliable:function(){return null==n&&t(),i},pixelMarginRight:function(){return null==n&&t(),r},pixelPosition:function(){return null==n&&t(),n},reliableMarginRight:function(){return null==n&&t(),a},reliableMarginLeft:function(){return null==n&&t(),s}}))}();var ht,gt,mt=/^(top|right|bottom|left)$/;e.getComputedStyle?(ht=function(t){var n=t.ownerDocument.defaultView;return n&&n.opener||(n=e),n.getComputedStyle(t)},gt=function(e,t,n){var r,i,o,a,s=e.style;return n=n||ht(e),a=n?n.getPropertyValue(t)||n[t]:void 0,""!==a&&void 0!==a||pe.contains(e.ownerDocument,e)||(a=pe.style(e,t)),n&&!fe.pixelMarginRight()&&ft.test(a)&&ct.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o),void 0===a?a:a+""}):pt.currentStyle&&(ht=function(e){return e.currentStyle},gt=function(e,t,n){var r,i,o,a,s=e.style;return n=n||ht(e),a=n?n[t]:void 0,null==a&&s&&s[t]&&(a=s[t]),ft.test(a)&&!mt.test(t)&&(r=s.left,i=e.runtimeStyle,o=i&&i.left,o&&(i.left=e.currentStyle.left),s.left="fontSize"===t?"1em":a,a=s.pixelLeft+"px",s.left=r,o&&(i.left=o)),void 0===a?a:a+""||"auto"});var yt=/alpha\([^)]*\)/i,vt=/opacity\s*=\s*([^)]*)/i,xt=/^(none|table(?!-c[ea]).+)/,bt=new RegExp("^("+Fe+")(.*)$","i"),wt={position:"absolute",visibility:"hidden",display:"block"},Tt={letterSpacing:"0",fontWeight:"400"},Ct=["Webkit","O","Moz","ms"],Et=re.createElement("div").style;pe.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=gt(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":fe.cssFloat?"cssFloat":"styleFloat"},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=pe.camelCase(t),u=e.style;if(t=pe.cssProps[s]||(pe.cssProps[s]=H(s)||s),a=pe.cssHooks[t]||pe.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:u[t];if(o=typeof n,"string"===o&&(i=Me.exec(n))&&i[1]&&(n=d(e,t,i),o="number"),null!=n&&n===n&&("number"===o&&(n+=i&&i[3]||(pe.cssNumber[s]?"":"px")),fe.clearCloneStyle||""!==n||0!==t.indexOf("background")||(u[t]="inherit"),!(a&&"set"in a&&void 0===(n=a.set(e,n,r)))))try{u[t]=n}catch(l){}}},css:function(e,t,n,r){var i,o,a,s=pe.camelCase(t);return t=pe.cssProps[s]||(pe.cssProps[s]=H(s)||s),a=pe.cssHooks[t]||pe.cssHooks[s],a&&"get"in a&&(o=a.get(e,!0,n)),void 0===o&&(o=gt(e,t,r)),"normal"===o&&t in Tt&&(o=Tt[t]),""===n||n?(i=parseFloat(o),n===!0||isFinite(i)?i||0:o):o}}),pe.each(["height","width"],function(e,t){pe.cssHooks[t]={get:function(e,n,r){if(n)return xt.test(pe.css(e,"display"))&&0===e.offsetWidth?dt(e,wt,function(){return M(e,t,r)}):M(e,t,r)},set:function(e,n,r){var i=r&&ht(e);return _(e,n,r?F(e,t,r,fe.boxSizing&&"border-box"===pe.css(e,"boxSizing",!1,i),i):0)}}}),fe.opacity||(pe.cssHooks.opacity={get:function(e,t){return vt.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=pe.isNumeric(t)?"alpha(opacity="+100*t+")":"",o=r&&r.filter||n.filter||"";n.zoom=1,(t>=1||""===t)&&""===pe.trim(o.replace(yt,""))&&n.removeAttribute&&(n.removeAttribute("filter"),""===t||r&&!r.filter)||(n.filter=yt.test(o)?o.replace(yt,i):o+" "+i)}}),pe.cssHooks.marginRight=L(fe.reliableMarginRight,function(e,t){if(t)return dt(e,{display:"inline-block"},gt,[e,"marginRight"])}),pe.cssHooks.marginLeft=L(fe.reliableMarginLeft,function(e,t){if(t)return(parseFloat(gt(e,"marginLeft"))||(pe.contains(e.ownerDocument,e)?e.getBoundingClientRect().left-dt(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}):0))+"px"}),pe.each({margin:"",padding:"",border:"Width"},function(e,t){pe.cssHooks[e+t]={expand:function(n){for(var r=0,i={},o="string"==typeof n?n.split(" "):[n];r<4;r++)i[e+Oe[r]+t]=o[r]||o[r-2]||o[0];return i}},ct.test(e)||(pe.cssHooks[e+t].set=_)}),pe.fn.extend({css:function(e,t){return Pe(this,function(e,t,n){var r,i,o={},a=0;if(pe.isArray(t)){for(r=ht(e),i=t.length;a1)},show:function(){return q(this,!0)},hide:function(){return q(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){Re(this)?pe(this).show():pe(this).hide()})}}),pe.Tween=O,O.prototype={constructor:O,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||pe.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(pe.cssNumber[n]?"":"px")},cur:function(){var e=O.propHooks[this.prop];return e&&e.get?e.get(this):O.propHooks._default.get(this)},run:function(e){var t,n=O.propHooks[this.prop];return this.options.duration?this.pos=t=pe.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):O.propHooks._default.set(this),this}},O.prototype.init.prototype=O.prototype,O.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=pe.css(e.elem,e.prop,""),t&&"auto"!==t?t:0)},set:function(e){pe.fx.step[e.prop]?pe.fx.step[e.prop](e):1!==e.elem.nodeType||null==e.elem.style[pe.cssProps[e.prop]]&&!pe.cssHooks[e.prop]?e.elem[e.prop]=e.now:pe.style(e.elem,e.prop,e.now+e.unit)}}},O.propHooks.scrollTop=O.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},pe.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},pe.fx=O.prototype.init,pe.fx.step={};var Nt,kt,St=/^(?:toggle|show|hide)$/,At=/queueHooks$/;pe.Animation=pe.extend($,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return d(n.elem,e,Me.exec(t),n),n}]},tweener:function(e,t){pe.isFunction(e)?(t=e,e=["*"]):e=e.match(De);for(var n,r=0,i=e.length;r
a",e=n.getElementsByTagName("a")[0],t.setAttribute("type","checkbox"),n.appendChild(t),e=n.getElementsByTagName("a")[0],e.style.cssText="top:1px",fe.getSetAttribute="t"!==n.className,fe.style=/top/.test(e.getAttribute("style")),fe.hrefNormalized="/a"===e.getAttribute("href"),fe.checkOn=!!t.value,fe.optSelected=i.selected,fe.enctype=!!re.createElement("form").enctype,r.disabled=!0,fe.optDisabled=!i.disabled,t=re.createElement("input"),t.setAttribute("value",""),fe.input=""===t.getAttribute("value"),t.value="t",t.setAttribute("type","radio"),fe.radioValue="t"===t.value}();var Dt=/\r/g,jt=/[\x20\t\r\n\f]+/g;pe.fn.extend({val:function(e){var t,n,r,i=this[0];{if(arguments.length)return r=pe.isFunction(e),this.each(function(n){var i;1===this.nodeType&&(i=r?e.call(this,n,pe(this).val()):e,null==i?i="":"number"==typeof i?i+="":pe.isArray(i)&&(i=pe.map(i,function(e){return null==e?"":e+""})),t=pe.valHooks[this.type]||pe.valHooks[this.nodeName.toLowerCase()],t&&"set"in t&&void 0!==t.set(this,i,"value")||(this.value=i))});if(i)return t=pe.valHooks[i.type]||pe.valHooks[i.nodeName.toLowerCase()],t&&"get"in t&&void 0!==(n=t.get(i,"value"))?n:(n=i.value,"string"==typeof n?n.replace(Dt,""):null==n?"":n)}}}),pe.extend({valHooks:{option:{get:function(e){var t=pe.find.attr(e,"value");return null!=t?t:pe.trim(pe.text(e)).replace(jt," ")}},select:{get:function(e){for(var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||i<0,a=o?null:[],s=o?i+1:r.length,u=i<0?s:o?i:0;u-1)try{r.selected=n=!0}catch(s){r.scrollHeight}else r.selected=!1;return n||(e.selectedIndex=-1),i}}}}),pe.each(["radio","checkbox"],function(){pe.valHooks[this]={set:function(e,t){if(pe.isArray(t))return e.checked=pe.inArray(pe(e).val(),t)>-1}},fe.checkOn||(pe.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var Lt,Ht,qt=pe.expr.attrHandle,_t=/^(?:checked|selected)$/i,Ft=fe.getSetAttribute,Mt=fe.input;pe.fn.extend({attr:function(e,t){return Pe(this,pe.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){pe.removeAttr(this,e)})}}),pe.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?pe.prop(e,t,n):(1===o&&pe.isXMLDoc(e)||(t=t.toLowerCase(),i=pe.attrHooks[t]||(pe.expr.match.bool.test(t)?Ht:Lt)),void 0!==n?null===n?void pe.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:(r=pe.find.attr(e,t),null==r?void 0:r))},attrHooks:{type:{set:function(e,t){if(!fe.radioValue&&"radio"===t&&pe.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(De);if(o&&1===e.nodeType)for(;n=o[i++];)r=pe.propFix[n]||n,pe.expr.match.bool.test(n)?Mt&&Ft||!_t.test(n)?e[r]=!1:e[pe.camelCase("default-"+n)]=e[r]=!1:pe.attr(e,n,""),e.removeAttribute(Ft?n:r)}}),Ht={set:function(e,t,n){return t===!1?pe.removeAttr(e,n):Mt&&Ft||!_t.test(n)?e.setAttribute(!Ft&&pe.propFix[n]||n,n):e[pe.camelCase("default-"+n)]=e[n]=!0,n}},pe.each(pe.expr.match.bool.source.match(/\w+/g),function(e,t){var n=qt[t]||pe.find.attr;Mt&&Ft||!_t.test(t)?qt[t]=function(e,t,r){var i,o;return r||(o=qt[t],qt[t]=i,i=null!=n(e,t,r)?t.toLowerCase():null,qt[t]=o),i}:qt[t]=function(e,t,n){if(!n)return e[pe.camelCase("default-"+t)]?t.toLowerCase():null}}),Mt&&Ft||(pe.attrHooks.value={set:function(e,t,n){return pe.nodeName(e,"input")?void(e.defaultValue=t):Lt&&Lt.set(e,t,n)}}),Ft||(Lt={set:function(e,t,n){var r=e.getAttributeNode(n);if(r||e.setAttributeNode(r=e.ownerDocument.createAttribute(n)),r.value=t+="","value"===n||t===e.getAttribute(n))return t}},qt.id=qt.name=qt.coords=function(e,t,n){var r;if(!n)return(r=e.getAttributeNode(t))&&""!==r.value?r.value:null},pe.valHooks.button={get:function(e,t){var n=e.getAttributeNode(t);if(n&&n.specified)return n.value},set:Lt.set},pe.attrHooks.contenteditable={set:function(e,t,n){Lt.set(e,""!==t&&t,n)}},pe.each(["width","height"],function(e,t){pe.attrHooks[t]={set:function(e,n){if(""===n)return e.setAttribute(t,"auto"),n}}})),fe.style||(pe.attrHooks.style={get:function(e){return e.style.cssText||void 0},set:function(e,t){return e.style.cssText=t+""}});var Ot=/^(?:input|select|textarea|button|object)$/i,Rt=/^(?:a|area)$/i;pe.fn.extend({prop:function(e,t){return Pe(this,pe.prop,e,t,arguments.length>1)},removeProp:function(e){return e=pe.propFix[e]||e,this.each(function(){try{this[e]=void 0,delete this[e]}catch(t){}})}}),pe.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&pe.isXMLDoc(e)||(t=pe.propFix[t]||t,i=pe.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=pe.find.attr(e,"tabindex");return t?parseInt(t,10):Ot.test(e.nodeName)||Rt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),fe.hrefNormalized||pe.each(["href","src"],function(e,t){pe.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}}),fe.optSelected||(pe.propHooks.selected={get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),pe.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){pe.propFix[this.toLowerCase()]=this}),fe.enctype||(pe.propFix.enctype="encoding");var Pt=/[\t\r\n\f]/g;pe.fn.extend({addClass:function(e){var t,n,r,i,o,a,s,u=0;if(pe.isFunction(e))return this.each(function(t){pe(this).addClass(e.call(this,t,z(this)))});if("string"==typeof e&&e)for(t=e.match(De)||[];n=this[u++];)if(i=z(n),r=1===n.nodeType&&(" "+i+" ").replace(Pt," ")){for(a=0;o=t[a++];)r.indexOf(" "+o+" ")<0&&(r+=o+" ");s=pe.trim(r),i!==s&&pe.attr(n,"class",s)}return this},removeClass:function(e){var t,n,r,i,o,a,s,u=0;if(pe.isFunction(e))return this.each(function(t){pe(this).removeClass(e.call(this,t,z(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof e&&e)for(t=e.match(De)||[];n=this[u++];)if(i=z(n),r=1===n.nodeType&&(" "+i+" ").replace(Pt," ")){for(a=0;o=t[a++];)for(;r.indexOf(" "+o+" ")>-1;)r=r.replace(" "+o+" "," ");s=pe.trim(r),i!==s&&pe.attr(n,"class",s)}return this},toggleClass:function(e,t){var n=typeof e;return"boolean"==typeof t&&"string"===n?t?this.addClass(e):this.removeClass(e):pe.isFunction(e)?this.each(function(n){pe(this).toggleClass(e.call(this,n,z(this),t),t)}):this.each(function(){var t,r,i,o;if("string"===n)for(r=0,i=pe(this),o=e.match(De)||[];t=o[r++];)i.hasClass(t)?i.removeClass(t):i.addClass(t);else void 0!==e&&"boolean"!==n||(t=z(this),t&&pe._data(this,"__className__",t),pe.attr(this,"class",t||e===!1?"":pe._data(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;for(t=" "+e+" ";n=this[r++];)if(1===n.nodeType&&(" "+z(n)+" ").replace(Pt," ").indexOf(t)>-1)return!0;return!1}}),pe.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){pe.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),pe.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}});var Bt=e.location,Wt=pe.now(),It=/\?/,$t=/(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;pe.parseJSON=function(t){if(e.JSON&&e.JSON.parse)return e.JSON.parse(t+"");var n,r=null,i=pe.trim(t+"");return i&&!pe.trim(i.replace($t,function(e,t,i,o){return n&&t&&(r=0),0===r?e:(n=i||t,r+=!o-!i,"")}))?Function("return "+i)():pe.error("Invalid JSON: "+t)},pe.parseXML=function(t){var n,r;if(!t||"string"!=typeof t)return null;try{e.DOMParser?(r=new e.DOMParser,n=r.parseFromString(t,"text/xml")):(n=new e.ActiveXObject("Microsoft.XMLDOM"),n.async="false",n.loadXML(t))}catch(i){n=void 0}return n&&n.documentElement&&!n.getElementsByTagName("parsererror").length||pe.error("Invalid XML: "+t),n};var zt=/#.*$/,Xt=/([?&])_=[^&]*/,Ut=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Vt=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Yt=/^(?:GET|HEAD)$/,Jt=/^\/\//,Gt=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,Kt={},Qt={},Zt="*/".concat("*"),en=Bt.href,tn=Gt.exec(en.toLowerCase())||[];pe.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:en,type:"GET",isLocal:Vt.test(tn[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Zt,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":pe.parseJSON,"text xml":pe.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?V(V(e,pe.ajaxSettings),t):V(pe.ajaxSettings,e)},ajaxPrefilter:X(Kt),ajaxTransport:X(Qt),ajax:function(t,n){function r(t,n,r,i){var o,f,v,x,w,C=n;2!==b&&(b=2,u&&e.clearTimeout(u),c=void 0,s=i||"",T.readyState=t>0?4:0,o=t>=200&&t<300||304===t,r&&(x=Y(d,T,r)),x=J(d,x,T,o),o?(d.ifModified&&(w=T.getResponseHeader("Last-Modified"),w&&(pe.lastModified[a]=w),w=T.getResponseHeader("etag"),w&&(pe.etag[a]=w)),204===t||"HEAD"===d.type?C="nocontent":304===t?C="notmodified":(C=x.state,f=x.data,v=x.error,o=!v)):(v=C,!t&&C||(C="error",t<0&&(t=0))),T.status=t,T.statusText=(n||C)+"",o?g.resolveWith(p,[f,C,T]):g.rejectWith(p,[T,C,v]),T.statusCode(y),y=void 0,l&&h.trigger(o?"ajaxSuccess":"ajaxError",[T,d,o?f:v]),m.fireWith(p,[T,C]),l&&(h.trigger("ajaxComplete",[T,d]),--pe.active||pe.event.trigger("ajaxStop")))}"object"==typeof t&&(n=t,t=void 0),n=n||{};var i,o,a,s,u,l,c,f,d=pe.ajaxSetup({},n),p=d.context||d,h=d.context&&(p.nodeType||p.jquery)?pe(p):pe.event,g=pe.Deferred(),m=pe.Callbacks("once memory"),y=d.statusCode||{},v={},x={},b=0,w="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(2===b){if(!f)for(f={};t=Ut.exec(s);)f[t[1].toLowerCase()]=t[2];t=f[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===b?s:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return b||(e=x[n]=x[n]||e,v[e]=t),this},overrideMimeType:function(e){return b||(d.mimeType=e),this},statusCode:function(e){var t;if(e)if(b<2)for(t in e)y[t]=[y[t],e[t]];else T.always(e[T.status]);return this},abort:function(e){var t=e||w;return c&&c.abort(t),r(0,t),this}};if(g.promise(T).complete=m.add,T.success=T.done,T.error=T.fail,d.url=((t||d.url||en)+"").replace(zt,"").replace(Jt,tn[1]+"//"),d.type=n.method||n.type||d.method||d.type,d.dataTypes=pe.trim(d.dataType||"*").toLowerCase().match(De)||[""],null==d.crossDomain&&(i=Gt.exec(d.url.toLowerCase()),d.crossDomain=!(!i||i[1]===tn[1]&&i[2]===tn[2]&&(i[3]||("http:"===i[1]?"80":"443"))===(tn[3]||("http:"===tn[1]?"80":"443")))),d.data&&d.processData&&"string"!=typeof d.data&&(d.data=pe.param(d.data,d.traditional)),U(Kt,d,n,T),2===b)return T;l=pe.event&&d.global,l&&0===pe.active++&&pe.event.trigger("ajaxStart"),d.type=d.type.toUpperCase(),d.hasContent=!Yt.test(d.type),a=d.url,d.hasContent||(d.data&&(a=d.url+=(It.test(a)?"&":"?")+d.data,delete d.data),d.cache===!1&&(d.url=Xt.test(a)?a.replace(Xt,"$1_="+Wt++):a+(It.test(a)?"&":"?")+"_="+Wt++)),d.ifModified&&(pe.lastModified[a]&&T.setRequestHeader("If-Modified-Since",pe.lastModified[a]),pe.etag[a]&&T.setRequestHeader("If-None-Match",pe.etag[a])),(d.data&&d.hasContent&&d.contentType!==!1||n.contentType)&&T.setRequestHeader("Content-Type",d.contentType),T.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+("*"!==d.dataTypes[0]?", "+Zt+"; q=0.01":""):d.accepts["*"]);for(o in d.headers)T.setRequestHeader(o,d.headers[o]);if(d.beforeSend&&(d.beforeSend.call(p,T,d)===!1||2===b))return T.abort();w="abort";for(o in{success:1,error:1,complete:1})T[o](d[o]);if(c=U(Qt,d,n,T)){if(T.readyState=1,l&&h.trigger("ajaxSend",[T,d]),2===b)return T;d.async&&d.timeout>0&&(u=e.setTimeout(function(){T.abort("timeout")},d.timeout));try{b=1,c.send(v,r)}catch(C){if(!(b<2))throw C;r(-1,C)}}else r(-1,"No Transport");return T},getJSON:function(e,t,n){return pe.get(e,t,n,"json")},getScript:function(e,t){return pe.get(e,void 0,t,"script")}}),pe.each(["get","post"],function(e,t){pe[t]=function(e,n,r,i){return pe.isFunction(n)&&(i=i||r,r=n,n=void 0),pe.ajax(pe.extend({url:e,type:t,dataType:i,data:n,success:r},pe.isPlainObject(e)&&e))}}),pe._evalUrl=function(e){return pe.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},pe.fn.extend({wrapAll:function(e){if(pe.isFunction(e))return this.each(function(t){pe(this).wrapAll(e.call(this,t))});if(this[0]){var t=pe(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){for(var e=this;e.firstChild&&1===e.firstChild.nodeType;)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return pe.isFunction(e)?this.each(function(t){pe(this).wrapInner(e.call(this,t))}):this.each(function(){var t=pe(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=pe.isFunction(e);return this.each(function(n){pe(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){pe.nodeName(this,"body")||pe(this).replaceWith(this.childNodes)}).end()}}),pe.expr.filters.hidden=function(e){return fe.reliableHiddenOffsets()?e.offsetWidth<=0&&e.offsetHeight<=0&&!e.getClientRects().length:K(e)},pe.expr.filters.visible=function(e){return!pe.expr.filters.hidden(e)};var nn=/%20/g,rn=/\[\]$/,on=/\r?\n/g,an=/^(?:submit|button|image|reset|file)$/i,sn=/^(?:input|select|textarea|keygen)/i;pe.param=function(e,t){var n,r=[],i=function(e,t){t=pe.isFunction(t)?t():null==t?"":t,r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(void 0===t&&(t=pe.ajaxSettings&&pe.ajaxSettings.traditional),pe.isArray(e)||e.jquery&&!pe.isPlainObject(e))pe.each(e,function(){i(this.name,this.value)});else for(n in e)Q(n,e[n],t,i);return r.join("&").replace(nn,"+")},pe.fn.extend({serialize:function(){return pe.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=pe.prop(this,"elements");return e?pe.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!pe(this).is(":disabled")&&sn.test(this.nodeName)&&!an.test(e)&&(this.checked||!Be.test(e))}).map(function(e,t){var n=pe(this).val();return null==n?null:pe.isArray(n)?pe.map(n,function(e){return{name:t.name,value:e.replace(on,"\r\n")}}):{name:t.name,value:n.replace(on,"\r\n")}}).get()}}),pe.ajaxSettings.xhr=void 0!==e.ActiveXObject?function(){return this.isLocal?ee():re.documentMode>8?Z():/^(get|post|head|put|delete|options)$/i.test(this.type)&&Z()||ee()}:Z;var un=0,ln={},cn=pe.ajaxSettings.xhr();e.attachEvent&&e.attachEvent("onunload",function(){for(var e in ln)ln[e](void 0,!0)}),fe.cors=!!cn&&"withCredentials"in cn,cn=fe.ajax=!!cn,cn&&pe.ajaxTransport(function(t){if(!t.crossDomain||fe.cors){var n;return{send:function(r,i){var o,a=t.xhr(),s=++un;if(a.open(t.type,t.url,t.async,t.username,t.password),t.xhrFields)for(o in t.xhrFields)a[o]=t.xhrFields[o];t.mimeType&&a.overrideMimeType&&a.overrideMimeType(t.mimeType),t.crossDomain||r["X-Requested-With"]||(r["X-Requested-With"]="XMLHttpRequest");for(o in r)void 0!==r[o]&&a.setRequestHeader(o,r[o]+"");a.send(t.hasContent&&t.data||null),n=function(e,r){var o,u,l;if(n&&(r||4===a.readyState))if(delete ln[s],n=void 0,a.onreadystatechange=pe.noop,r)4!==a.readyState&&a.abort();else{l={},o=a.status,"string"==typeof a.responseText&&(l.text=a.responseText);try{u=a.statusText}catch(c){u=""}o||!t.isLocal||t.crossDomain?1223===o&&(o=204):o=l.text?200:404}l&&i(o,u,l,a.getAllResponseHeaders())},t.async?4===a.readyState?e.setTimeout(n):a.onreadystatechange=ln[s]=n:n()},abort:function(){n&&n(void 0,!0)}}}}),pe.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return pe.globalEval(e),e}}}),pe.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),pe.ajaxTransport("script",function(e){if(e.crossDomain){var t,n=re.head||pe("head")[0]||re.documentElement;return{send:function(r,i){t=re.createElement("script"),t.async=!0,e.scriptCharset&&(t.charset=e.scriptCharset),t.src=e.url,t.onload=t.onreadystatechange=function(e,n){(n||!t.readyState||/loaded|complete/.test(t.readyState))&&(t.onload=t.onreadystatechange=null,t.parentNode&&t.parentNode.removeChild(t),t=null,n||i(200,"success"))},n.insertBefore(t,n.firstChild)},abort:function(){t&&t.onload(void 0,!0)}}}});var fn=[],dn=/(=)\?(?=&|$)|\?\?/;pe.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=fn.pop()||pe.expando+"_"+Wt++;return this[e]=!0,e}}),pe.ajaxPrefilter("json jsonp",function(t,n,r){var i,o,a,s=t.jsonp!==!1&&(dn.test(t.url)?"url":"string"==typeof t.data&&0===(t.contentType||"").indexOf("application/x-www-form-urlencoded")&&dn.test(t.data)&&"data");if(s||"jsonp"===t.dataTypes[0])return i=t.jsonpCallback=pe.isFunction(t.jsonpCallback)?t.jsonpCallback():t.jsonpCallback,s?t[s]=t[s].replace(dn,"$1"+i):t.jsonp!==!1&&(t.url+=(It.test(t.url)?"&":"?")+t.jsonp+"="+i),t.converters["script json"]=function(){return a||pe.error(i+" was not called"),a[0]},t.dataTypes[0]="json",o=e[i],e[i]=function(){a=arguments},r.always(function(){void 0===o?pe(e).removeProp(i):e[i]=o,t[i]&&(t.jsonpCallback=n.jsonpCallback,fn.push(i)),a&&pe.isFunction(o)&&o(a[0]),a=o=void 0}),"script"}),pe.parseHTML=function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||re;var r=Te.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=y([e],t,i),i&&i.length&&pe(i).remove(),pe.merge([],r.childNodes))};var pn=pe.fn.load;return pe.fn.load=function(e,t,n){if("string"!=typeof e&&pn)return pn.apply(this,arguments);var r,i,o,a=this,s=e.indexOf(" ");return s>-1&&(r=pe.trim(e.slice(s,e.length)),e=e.slice(0,s)),pe.isFunction(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),a.length>0&&pe.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?pe("
").append(pe.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},pe.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){pe.fn[t]=function(e){return this.on(t,e)}}),pe.expr.filters.animated=function(e){return pe.grep(pe.timers,function(t){return e===t.elem}).length},pe.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l,c=pe.css(e,"position"),f=pe(e),d={};"static"===c&&(e.style.position="relative"),s=f.offset(),o=pe.css(e,"top"),u=pe.css(e,"left"),l=("absolute"===c||"fixed"===c)&&pe.inArray("auto",[o,u])>-1,l?(r=f.position(),a=r.top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),pe.isFunction(t)&&(t=t.call(e,n,pe.extend({},s))),null!=t.top&&(d.top=t.top-s.top+a),null!=t.left&&(d.left=t.left-s.left+i),"using"in t?t.using.call(e,d):f.css(d)}},pe.fn.extend({offset:function(e){if(arguments.length)return void 0===e?this:this.each(function(t){pe.offset.setOffset(this,e,t)});var t,n,r={top:0,left:0},i=this[0],o=i&&i.ownerDocument;if(o)return t=o.documentElement,pe.contains(t,i)?("undefined"!=typeof i.getBoundingClientRect&&(r=i.getBoundingClientRect()),n=te(o),{top:r.top+(n.pageYOffset||t.scrollTop)-(t.clientTop||0),left:r.left+(n.pageXOffset||t.scrollLeft)-(t.clientLeft||0)}):r},position:function(){if(this[0]){var e,t,n={top:0,left:0},r=this[0];return"fixed"===pe.css(r,"position")?t=r.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),pe.nodeName(e[0],"html")||(n=e.offset()),n.top+=pe.css(e[0],"borderTopWidth",!0),n.left+=pe.css(e[0],"borderLeftWidth",!0)),{top:t.top-n.top-pe.css(r,"marginTop",!0),left:t.left-n.left-pe.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){ diff --git a/static/plugs/layui/lay/modules/laydate.js b/static/plugs/layui/lay/modules/laydate.js index c8ee252e8..3cb99d64b 100644 --- a/static/plugs/layui/lay/modules/laydate.js +++ b/static/plugs/layui/lay/modules/laydate.js @@ -1,2 +1,2 @@ -/** layui-v2.2.5 MIT License By https://www.layui.com */ +/** layui-v2.2.6 MIT License By https://www.layui.com */ ;!function(){"use strict";var e=window.layui&&layui.define,t={getPath:function(){var e=document.currentScript?document.currentScript.src:function(){for(var e,t=document.scripts,n=t.length-1,a=n;a>0;a--)if("interactive"===t[a].readyState){e=t[a].src;break}return e||t[n].src}();return e.substring(0,e.lastIndexOf("/")+1)}(),getStyle:function(e,t){var n=e.currentStyle?e.currentStyle:window.getComputedStyle(e,null);return n[n.getPropertyValue?"getPropertyValue":"getAttribute"](t)},link:function(e,a,i){if(n.path){var r=document.getElementsByTagName("head")[0],o=document.createElement("link");"string"==typeof a&&(i=a);var s=(i||e).replace(/\.|\//g,""),l="layuicss-"+s,d=0;o.rel="stylesheet",o.href=n.path+e,o.id=l,document.getElementById(l)||r.appendChild(o),"function"==typeof a&&!function c(){return++d>80?window.console&&console.error("laydate.css: Invalid"):void(1989===parseInt(t.getStyle(document.getElementById(l),"width"))?a():setTimeout(c,100))}()}}},n={v:"5.0.9",config:{},index:window.laydate&&window.laydate.v?1e5:0,path:t.getPath,set:function(e){var t=this;return t.config=w.extend({},t.config,e),t},ready:function(a){var i="laydate",r="",o=(e?"modules/laydate/":"theme/")+"default/laydate.css?v="+n.v+r;return e?layui.addcss(o,a,i):t.link(o,a,i),this}},a=function(){var e=this;return{hint:function(t){e.hint.call(e,t)},config:e.config}},i="laydate",r=".layui-laydate",o="layui-this",s="laydate-disabled",l="开始日期超出了结束日期
建议重新选择",d=[100,2e5],c="layui-laydate-static",m="layui-laydate-list",u="laydate-selected",h="layui-laydate-hint",y="laydate-day-prev",f="laydate-day-next",p="layui-laydate-footer",g=".laydate-btns-confirm",v="laydate-time-text",D=".laydate-btns-time",T=function(e){var t=this;t.index=++n.index,t.config=w.extend({},t.config,n.config,e),n.ready(function(){t.init()})},w=function(e){return new C(e)},C=function(e){for(var t=0,n="object"==typeof e?[e]:(this.selector=e,document.querySelectorAll(e||null));t0)return n[0].getAttribute(e)}():n.each(function(n,a){a.setAttribute(e,t)})},C.prototype.removeAttr=function(e){return this.each(function(t,n){n.removeAttribute(e)})},C.prototype.html=function(e){return this.each(function(t,n){n.innerHTML=e})},C.prototype.val=function(e){return this.each(function(t,n){n.value=e})},C.prototype.append=function(e){return this.each(function(t,n){"object"==typeof e?n.appendChild(e):n.innerHTML=n.innerHTML+e})},C.prototype.remove=function(e){return this.each(function(t,n){e?n.removeChild(e):n.parentNode.removeChild(n)})},C.prototype.on=function(e,t){return this.each(function(n,a){a.attachEvent?a.attachEvent("on"+e,function(e){e.target=e.srcElement,t.call(a,e)}):a.addEventListener(e,t,!1)})},C.prototype.off=function(e,t){return this.each(function(n,a){a.detachEvent?a.detachEvent("on"+e,t):a.removeEventListener(e,t,!1)})},T.isLeapYear=function(e){return e%4===0&&e%100!==0||e%400===0},T.prototype.config={type:"date",range:!1,format:"yyyy-MM-dd",value:null,min:"1900-1-1",max:"2099-12-31",trigger:"focus",show:!1,showBottom:!0,btns:["clear","now","confirm"],lang:"cn",theme:"default",position:null,calendar:!1,mark:{},zIndex:null,done:null,change:null},T.prototype.lang=function(){var e=this,t=e.config,n={cn:{weeks:["日","一","二","三","四","五","六"],time:["时","分","秒"],timeTips:"选择时间",startTime:"开始时间",endTime:"结束时间",dateTips:"返回日期",month:["一","二","三","四","五","六","七","八","九","十","十一","十二"],tools:{confirm:"确定",clear:"清空",now:"现在"}},en:{weeks:["Su","Mo","Tu","We","Th","Fr","Sa"],time:["Hours","Minutes","Seconds"],timeTips:"Select Time",startTime:"Start Time",endTime:"End Time",dateTips:"Select Date",month:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],tools:{confirm:"Confirm",clear:"Clear",now:"Now"}}};return n[t.lang]||n.cn},T.prototype.init=function(){var e=this,t=e.config,n="yyyy|y|MM|M|dd|d|HH|H|mm|m|ss|s",a="static"===t.position,i={year:"yyyy",month:"yyyy-MM",date:"yyyy-MM-dd",time:"HH:mm:ss",datetime:"yyyy-MM-dd HH:mm:ss"};t.elem=w(t.elem),t.eventElem=w(t.eventElem),t.elem[0]&&(t.range===!0&&(t.range="-"),t.format===i.date&&(t.format=i[t.type]),e.format=t.format.match(new RegExp(n+"|.","g"))||[],e.EXP_IF="",e.EXP_SPLIT="",w.each(e.format,function(t,a){var i=new RegExp(n).test(a)?"\\d{"+function(){return new RegExp(n).test(e.format[0===t?t+1:t-1]||"")?/^yyyy|y$/.test(a)?4:a.length:/^yyyy$/.test(a)?"1,4":/^y$/.test(a)?"1,308":"1,2"}()+"}":"\\"+a;e.EXP_IF=e.EXP_IF+i,e.EXP_SPLIT=e.EXP_SPLIT+"("+i+")"}),e.EXP_IF=new RegExp("^"+(t.range?e.EXP_IF+"\\s\\"+t.range+"\\s"+e.EXP_IF:e.EXP_IF)+"$"),e.EXP_SPLIT=new RegExp("^"+e.EXP_SPLIT+"$",""),e.isInput(t.elem[0])||"focus"===t.trigger&&(t.trigger="click"),t.elem.attr("lay-key")||(t.elem.attr("lay-key",e.index),t.eventElem.attr("lay-key",e.index)),t.mark=w.extend({},t.calendar&&"cn"===t.lang?{"0-1-1":"元旦","0-2-14":"情人","0-3-8":"妇女","0-3-12":"植树","0-4-1":"愚人","0-5-1":"劳动","0-5-4":"青年","0-6-1":"儿童","0-9-10":"教师","0-9-18":"国耻","0-10-1":"国庆","0-12-25":"圣诞"}:{},t.mark),w.each(["min","max"],function(e,n){var a=[],i=[];if("number"==typeof t[n]){var r=t[n],o=(new Date).getTime(),s=864e5,l=new Date(r?r0)return!0;var a=w.elem("div",{"class":"layui-laydate-header"}),i=[function(){var e=w.elem("i",{"class":"layui-icon laydate-icon laydate-prev-y"});return e.innerHTML="",e}(),function(){var e=w.elem("i",{"class":"layui-icon laydate-icon laydate-prev-m"});return e.innerHTML="",e}(),function(){var e=w.elem("div",{"class":"laydate-set-ym"}),t=w.elem("span"),n=w.elem("span");return e.appendChild(t),e.appendChild(n),e}(),function(){var e=w.elem("i",{"class":"layui-icon laydate-icon laydate-next-m"});return e.innerHTML="",e}(),function(){var e=w.elem("i",{"class":"layui-icon laydate-icon laydate-next-y"});return e.innerHTML="",e}()],d=w.elem("div",{"class":"layui-laydate-content"}),c=w.elem("table"),m=w.elem("thead"),u=w.elem("tr");w.each(i,function(e,t){a.appendChild(t)}),m.appendChild(u),w.each(new Array(6),function(e){var t=c.insertRow(0);w.each(new Array(7),function(a){if(0===e){var i=w.elem("th");i.innerHTML=n.weeks[a],u.appendChild(i)}t.insertCell(a)})}),c.insertBefore(m,c.children[0]),d.appendChild(c),r[e]=w.elem("div",{"class":"layui-laydate-main laydate-main-list-"+e}),r[e].appendChild(a),r[e].appendChild(d),o.push(i),s.push(d),l.push(c)}),w(d).html(function(){var e=[],i=[];return"datetime"===t.type&&e.push(''+n.timeTips+""),w.each(t.btns,function(e,r){var o=n.tools[r]||"btn";t.range&&"now"===r||(a&&"clear"===r&&(o="cn"===t.lang?"重置":"Reset"),i.push(''+o+""))}),e.push('"),e.join("")}()),w.each(r,function(e,t){i.appendChild(t)}),t.showBottom&&i.appendChild(d),/^#/.test(t.theme)){var m=w.elem("style"),u=["#{{id}} .layui-laydate-header{background-color:{{theme}};}","#{{id}} .layui-this{background-color:{{theme}} !important;}"].join("").replace(/{{id}}/g,e.elemID).replace(/{{theme}}/g,t.theme);"styleSheet"in m?(m.setAttribute("type","text/css"),m.styleSheet.cssText=u):m.innerHTML=u,w(i).addClass("laydate-theme-molv"),i.appendChild(m)}e.remove(T.thisElemDate),a?t.elem.append(i):(document.body.appendChild(i),e.position()),e.checkDate().calendar(),e.changeEvent(),T.thisElemDate=e.elemID,"function"==typeof t.ready&&t.ready(w.extend({},t.dateTime,{month:t.dateTime.month+1}))},T.prototype.remove=function(e){var t=this,n=(t.config,w("#"+(e||t.elemID)));return n.hasClass(c)||t.checkDate(function(){n.remove()}),t},T.prototype.position=function(){var e=this,t=e.config,n=e.bindElem||t.elem[0],a=n.getBoundingClientRect(),i=e.elem.offsetWidth,r=e.elem.offsetHeight,o=function(e){return e=e?"scrollLeft":"scrollTop",document.body[e]|document.documentElement[e]},s=function(e){return document.documentElement[e?"clientWidth":"clientHeight"]},l=5,d=a.left,c=a.bottom;d+i+l>s("width")&&(d=s("width")-i-l),c+r+l>s()&&(c=a.top>r?a.top-r:s()-r,c-=2*l),t.position&&(e.elem.style.position=t.position),e.elem.style.left=d+("fixed"===t.position?0:o(1))+"px",e.elem.style.top=c+("fixed"===t.position?0:o())+"px"},T.prototype.hint=function(e){var t=this,n=(t.config,w.elem("div",{"class":h}));n.innerHTML=e||"",w(t.elem).find("."+h).remove(),t.elem.appendChild(n),clearTimeout(t.hinTimer),t.hinTimer=setTimeout(function(){w(t.elem).find("."+h).remove()},3e3)},T.prototype.getAsYM=function(e,t,n){return n?t--:t++,t<0&&(t=11,e--),t>11&&(t=0,e++),[e,t]},T.prototype.systemDate=function(e){var t=e||new Date;return{year:t.getFullYear(),month:t.getMonth(),date:t.getDate(),hours:e?e.getHours():0,minutes:e?e.getMinutes():0,seconds:e?e.getSeconds():0}},T.prototype.checkDate=function(e){var t,a,i=this,r=(new Date,i.config),o=r.dateTime=r.dateTime||i.systemDate(),s=i.bindElem||r.elem[0],l=(i.isInput(s)?"val":"html",i.isInput(s)?s.value:"static"===r.position?"":s.innerHTML),c=function(e){e.year>d[1]&&(e.year=d[1],a=!0),e.month>11&&(e.month=11,a=!0),e.hours>23&&(e.hours=0,a=!0),e.minutes>59&&(e.minutes=0,e.hours++,a=!0),e.seconds>59&&(e.seconds=0,e.minutes++,a=!0),t=n.getEndDate(e.month+1,e.year),e.date>t&&(e.date=t,a=!0)},m=function(e,t,n){var o=["startTime","endTime"];t=(t.match(i.EXP_SPLIT)||[]).slice(1),n=n||0,r.range&&(i[o[n]]=i[o[n]]||{}),w.each(i.format,function(s,l){var c=parseFloat(t[s]);t[s].length必须遵循下述格式:
"+(r.range?r.format+" "+r.range+" "+r.format:r.format)+"
已为你重置"),a=!0):l&&l.constructor===Date?r.dateTime=i.systemDate(l):(r.dateTime=i.systemDate(),delete i.startState,delete i.endState,delete i.startDate,delete i.endDate,delete i.startTime,delete i.endTime),c(o),a&&l&&i.setValue(r.range?i.endDate?i.parse():"":i.parse()),e&&e(),i)},T.prototype.mark=function(e,t){var n,a=this,i=a.config;return w.each(i.mark,function(e,a){var i=e.split("-");i[0]!=t[0]&&0!=i[0]||i[1]!=t[1]&&0!=i[1]||i[2]!=t[2]||(n=a||t[2])}),n&&e.html(''+n+""),a},T.prototype.limit=function(e,t,n,a){var i,r=this,o=r.config,l={},d=o[n>41?"endDate":"dateTime"],c=w.extend({},d,t||{});return w.each({now:c,min:o.min,max:o.max},function(e,t){l[e]=r.newDate(w.extend({year:t.year,month:t.month,date:t.date},function(){var e={};return w.each(a,function(n,a){e[a]=t[a]}),e}())).getTime()}),i=l.nowl.max,e&&e[i?"addClass":"removeClass"](s),i},T.prototype.calendar=function(e){var t,a,i,r=this,s=r.config,l=e||s.dateTime,c=new Date,m=r.lang(),u="date"!==s.type&&"datetime"!==s.type,h=e?1:0,y=w(r.table[h]).find("td"),f=w(r.elemHeader[h][2]).find("span");if(l.yeard[1]&&(l.year=d[1],r.hint("最高只能支持到公元"+d[1]+"年")),r.firstDate||(r.firstDate=w.extend({},l)),c.setFullYear(l.year,l.month,1),t=c.getDay(),a=n.getEndDate(l.month||12,l.year),i=n.getEndDate(l.month+1,l.year),w.each(y,function(e,n){var d=[l.year,l.month],c=0;n=w(n),n.removeAttr("class"),e=t&&e=n.firstDate.year&&(r.month=a.max.month,r.date=a.max.date),n.limit(w(i),r,t),M++}),w(u[f?0:1]).attr("lay-ym",M-8+"-"+T[1]).html(b+p+" - "+(M-1+p))}else if("month"===e)w.each(new Array(12),function(e){var i=w.elem("li",{"lay-ym":e}),s={year:T[0],month:e};e+1==T[1]&&w(i).addClass(o),i.innerHTML=r.month[e]+(f?"月":""),d.appendChild(i),T[0]=n.firstDate.year&&(s.date=a.max.date),n.limit(w(i),s,t)}),w(u[f?0:1]).attr("lay-ym",T[0]+"-"+T[1]).html(T[0]+p);else if("time"===e){var E=function(){w(d).find("ol").each(function(e,a){w(a).find("li").each(function(a,i){n.limit(w(i),[{hours:a},{hours:n[x].hours,minutes:a},{hours:n[x].hours,minutes:n[x].minutes,seconds:a}][e],t,[["hours"],["hours","minutes"],["hours","minutes","seconds"]][e])})}),a.range||n.limit(w(n.footer).find(g),n[x],0,["hours","minutes","seconds"])};a.range?n[x]||(n[x]={hours:0,minutes:0,seconds:0}):n[x]=i,w.each([24,60,60],function(e,t){var a=w.elem("li"),i=["

"+r.time[e]+"

    "];w.each(new Array(t),function(t){i.push(""+w.digit(t,2)+"")}),a.innerHTML=i.join("")+"
",d.appendChild(a)}),E()}if(y&&h.removeChild(y),h.appendChild(d),"year"===e||"month"===e)w(n.elemMain[t]).addClass("laydate-ym-show"),w(d).find("li").on("click",function(){var r=0|w(this).attr("lay-ym");if(!w(this).hasClass(s)){if(0===t)i[e]=r,l&&(n.startDate[e]=r),n.limit(w(n.footer).find(g),null,0);else if(l)n.endDate[e]=r;else{var c="year"===e?n.getAsYM(r,T[1]-1,"sub"):n.getAsYM(T[0],r,"sub");w.extend(i,{year:c[0],month:c[1]})}"year"===a.type||"month"===a.type?(w(d).find("."+o).removeClass(o),w(this).addClass(o),"month"===a.type&&"year"===e&&(n.listYM[t][0]=r,l&&(n[["startDate","endDate"][t]].year=r),n.list("month",t))):(n.checkDate("limit").calendar(),n.closeList()),n.setBtnStatus(),a.range||n.done(null,"change"),w(n.footer).find(D).removeClass(s)}});else{var S=w.elem("span",{"class":v}),k=function(){w(d).find("ol").each(function(e){var t=this,a=w(t).find("li");t.scrollTop=30*(n[x][C[e]]-2),t.scrollTop<=0&&a.each(function(e,n){if(!w(this).hasClass(s))return t.scrollTop=30*(e-2),!0})})},H=w(c[2]).find("."+v);k(),S.innerHTML=a.range?[r.startTime,r.endTime][t]:r.timeTips,w(n.elemMain[t]).addClass("laydate-time-show"),H[0]&&H.remove(),c[2].appendChild(S),w(d).find("ol").each(function(e){var t=this;w(t).find("li").on("click",function(){var r=0|this.innerHTML;w(this).hasClass(s)||(a.range?n[x][C[e]]=r:i[C[e]]=r,w(t).find("."+o).removeClass(o),w(this).addClass(o),E(),k(),(n.endDate||"time"===a.type)&&n.done(null,"change"),n.setBtnStatus())})})}return n},T.prototype.listYM=[],T.prototype.closeList=function(){var e=this;e.config;w.each(e.elemCont,function(t,n){w(this).find("."+m).remove(),w(e.elemMain[t]).removeClass("laydate-ym-show laydate-time-show")}),w(e.elem).find("."+v).remove()},T.prototype.setBtnStatus=function(e,t,n){var a,i=this,r=i.config,o=w(i.footer).find(g),d=r.range&&"date"!==r.type&&"time"!==r.type;d&&(t=t||i.startDate,n=n||i.endDate,a=i.newDate(t).getTime()>i.newDate(n).getTime(),i.limit(null,t)||i.limit(null,n)?o.addClass(s):o[a?"addClass":"removeClass"](s),e&&a&&i.hint("string"==typeof e?l.replace(/日期/g,e):l))},T.prototype.parse=function(e,t){var n=this,a=n.config,i=t||(e?w.extend({},n.endDate,n.endTime):a.range?w.extend({},n.startDate,n.startTime):a.dateTime),r=n.format.concat();return w.each(r,function(e,t){/yyyy|y/.test(t)?r[e]=w.digit(i.year,t.length):/MM|M/.test(t)?r[e]=w.digit(i.month+1,t.length):/dd|d/.test(t)?r[e]=w.digit(i.date,t.length):/HH|H/.test(t)?r[e]=w.digit(i.hours,t.length):/mm|m/.test(t)?r[e]=w.digit(i.minutes,t.length):/ss|s/.test(t)&&(r[e]=w.digit(i.seconds,t.length))}),a.range&&!e?r.join("")+" "+a.range+" "+n.parse(1):r.join("")},T.prototype.newDate=function(e){return e=e||{},new Date(e.year||1,e.month||0,e.date||1,e.hours||0,e.minutes||0,e.seconds||0)},T.prototype.setValue=function(e){var t=this,n=t.config,a=t.bindElem||n.elem[0],i=t.isInput(a)?"val":"html";return"static"===n.position||w(a)[i](e||""),this},T.prototype.stampRange=function(){var e,t,n=this,a=n.config,i=w(n.elem).find("td");if(a.range&&!n.endDate&&w(n.footer).find(g).addClass(s),n.endDate)return e=n.newDate({year:n.startDate.year,month:n.startDate.month,date:n.startDate.date}).getTime(),t=n.newDate({year:n.endDate.year,month:n.endDate.month,date:n.endDate.date}).getTime(),e>t?n.hint(l):void w.each(i,function(a,i){var r=w(i).attr("lay-ymd").split("-"),s=n.newDate({year:r[0],month:r[1]-1,date:r[2]}).getTime();w(i).removeClass(u+" "+o),s!==e&&s!==t||w(i).addClass(w(i).hasClass(y)||w(i).hasClass(f)?u:o),s>e&&s','
'+f+"
",'
','',"
","
"].join(""));return l.ie&&l.ie<8?c.removeClass("layui-hide").addClass(o):(d[0]&&d.remove(),s.call(a,m,c[0],y),c.addClass("layui-hide").after(m),a.index)},c.prototype.getContent=function(t){var e=u(t);if(e[0])return d(e[0].document.body.innerHTML)},c.prototype.getText=function(t){var i=u(t);if(i[0])return e(i[0].document.body).text()},c.prototype.setContent=function(t,i,a){var l=u(t);l[0]&&(a?e(l[0].document.body).append(i):e(l[0].document.body).html(i),layedit.sync(t))},c.prototype.sync=function(t){var i=u(t);if(i[0]){var a=e("#"+i[1].attr("textarea"));a.val(d(i[0].document.body.innerHTML))}},c.prototype.getSelection=function(t){var e=u(t);if(e[0]){var i=m(e[0].document);return document.selection?i.text:i.toString()}};var s=function(t,i,a){var l=this,n=t.find("iframe");n.css({height:a.height}).on("load",function(){var o=n.contents(),r=n.prop("contentWindow"),c=o.find("head"),s=e([""].join("")),u=o.find("body");c.append(s),u.attr("contenteditable","true").css({"min-height":a.height}).html(i.value||""),y.apply(l,[r,n,i,a]),g.call(l,r,t,a)})},u=function(t){var i=e("#LAY_layedit_"+t),a=i.prop("contentWindow");return[a,i]},d=function(t){return 8==l.ie&&(t=t.replace(/<.+>/g,function(t){return t.toLowerCase()})),t},y=function(t,a,n,o){var r=t.document,c=e(r.body);c.on("keydown",function(t){var e=t.keyCode;if(13===e){var a=m(r),l=p(a),n=l.parentNode;if("pre"===n.tagName.toLowerCase()){if(t.shiftKey)return;return i.msg("请暂时用shift+enter"),!1}r.execCommand("formatBlock",!1,"

")}}),e(n).parents("form").on("submit",function(){var t=c.html();8==l.ie&&(t=t.replace(/<.+>/g,function(t){return t.toLowerCase()})),n.value=t}),c.on("paste",function(e){r.execCommand("formatBlock",!1,"

"),setTimeout(function(){f.call(t,c),n.value=c.html()},100)})},f=function(t){var i=this;i.document;t.find("*[style]").each(function(){var t=this.style.textAlign;this.removeAttribute("style"),e(this).css({"text-align":t||""})}),t.find("table").addClass("layui-table"),t.find("script,link").remove()},m=function(t){return t.selection?t.selection.createRange():t.getSelection().getRangeAt(0)},p=function(t){return t.endContainer||t.parentElement().childNodes[0]},v=function(t,i,a){var l=this.document,n=document.createElement(t);for(var o in i)n.setAttribute(o,i[o]);if(n.removeAttribute("text"),l.selection){var r=a.text||i.text;if("a"===t&&!r)return;r&&(n.innerHTML=r),a.pasteHTML(e(n).prop("outerHTML")),a.select()}else{var r=a.toString()||i.text;if("a"===t&&!r)return;r&&(n.innerHTML=r),a.deleteContents(),a.insertNode(n)}},h=function(t,i){var a=this.document,l="layedit-tool-active",n=p(m(a)),o=function(e){return t.find(".layedit-tool-"+e)};i&&i[i.hasClass(l)?"removeClass":"addClass"](l),t.find(">i").removeClass(l),o("unlink").addClass(r),e(n).parents().each(function(){var t=this.tagName.toLowerCase(),e=this.style.textAlign;"b"!==t&&"strong"!==t||o("b").addClass(l),"i"!==t&&"em"!==t||o("i").addClass(l),"u"===t&&o("u").addClass(l),"strike"===t&&o("d").addClass(l),"p"===t&&("center"===e?o("center").addClass(l):"right"===e?o("right").addClass(l):o("left").addClass(l)),"a"===t&&(o("link").addClass(l),o("unlink").removeClass(r))})},g=function(t,a,l){var n=t.document,o=e(n.body),c={link:function(i){var a=p(i),l=e(a).parent();b.call(o,{href:l.attr("href"),target:l.attr("target")},function(e){var a=l[0];"A"===a.tagName?a.href=e.url:v.call(t,"a",{target:e.target,href:e.url,text:e.url},i)})},unlink:function(t){n.execCommand("unlink")},face:function(e){x.call(this,function(i){v.call(t,"img",{src:i.src,alt:i.alt},e)})},image:function(a){var n=this;layui.use("upload",function(o){var r=l.uploadImage||{};o.render({url:r.url,method:r.type,elem:e(n).find("input")[0],done:function(e){0==e.code?(e.data=e.data||{},v.call(t,"img",{src:e.data.src,alt:e.data.title},a)):i.msg(e.msg||"上传失败")}})})},code:function(e){k.call(o,function(i){v.call(t,"pre",{text:i.code,"lay-lang":i.lang},e)})},help:function(){i.open({type:2,title:"帮助",area:["600px","380px"],shadeClose:!0,shade:.1,skin:"layui-layer-msg",content:["http://www.layui.com/about/layedit/help.html","no"]})}},s=a.find(".layui-layedit-tool"),u=function(){var i=e(this),a=i.attr("layedit-event"),l=i.attr("lay-command");if(!i.hasClass(r)){o.focus();var u=m(n);u.commonAncestorContainer;l?(n.execCommand(l),/justifyLeft|justifyCenter|justifyRight/.test(l)&&n.execCommand("formatBlock",!1,"

"),setTimeout(function(){o.focus()},10)):c[a]&&c[a].call(this,u),h.call(t,s,i)}},d=/image/;s.find(">i").on("mousedown",function(){var t=e(this),i=t.attr("layedit-event");d.test(i)||u.call(this)}).on("click",function(){var t=e(this),i=t.attr("layedit-event");d.test(i)&&u.call(this)}),o.on("click",function(){h.call(t,s),i.close(x.index)})},b=function(t,e){var l=this,n=i.open({type:1,id:"LAY_layedit_link",area:"350px",shade:.05,shadeClose:!0,moveType:1,title:"超链接",skin:"layui-layer-msg",content:['

    ','
  • ','','
    ','',"
    ","
  • ",'
  • ','','
    ','",'","
    ","
  • ",'
  • ','','',"
  • ","
"].join(""),success:function(t,n){var o="submit(layedit-link-yes)";a.render("radio"),t.find(".layui-btn-primary").on("click",function(){i.close(n),l.focus()}),a.on(o,function(t){i.close(b.index),e&&e(t.field)})}});b.index=n},x=function(t){var a=function(){var t=["[微笑]","[嘻嘻]","[哈哈]","[可爱]","[可怜]","[挖鼻]","[吃惊]","[害羞]","[挤眼]","[闭嘴]","[鄙视]","[爱你]","[泪]","[偷笑]","[亲亲]","[生病]","[太开心]","[白眼]","[右哼哼]","[左哼哼]","[嘘]","[衰]","[委屈]","[吐]","[哈欠]","[抱抱]","[怒]","[疑问]","[馋嘴]","[拜拜]","[思考]","[汗]","[困]","[睡]","[钱]","[失望]","[酷]","[色]","[哼]","[鼓掌]","[晕]","[悲伤]","[抓狂]","[黑线]","[阴险]","[怒骂]","[互粉]","[心]","[伤心]","[猪头]","[熊猫]","[兔子]","[ok]","[耶]","[good]","[NO]","[赞]","[来]","[弱]","[草泥马]","[神马]","[囧]","[浮云]","[给力]","[围观]","[威武]","[奥特曼]","[礼物]","[钟]","[话筒]","[蜡烛]","[蛋糕]"],e={};return layui.each(t,function(t,i){e[i]=layui.cache.dir+"images/face/"+t+".gif"}),e}();return x.hide=x.hide||function(t){"face"!==e(t.target).attr("layedit-event")&&i.close(x.index)},x.index=i.tips(function(){var t=[];return layui.each(a,function(e,i){t.push('
  • '+e+'
  • ')}),'
      '+t.join("")+"
    "}(),this,{tips:1,time:0,skin:"layui-box layui-util-face",maxWidth:500,success:function(l,n){l.css({marginTop:-4,marginLeft:-10}).find(".layui-clear>li").on("click",function(){t&&t({src:a[this.title],alt:this.title}),i.close(n)}),e(document).off("click",x.hide).on("click",x.hide)}})},k=function(t){var e=this,l=i.open({type:1,id:"LAY_layedit_code",area:"550px",shade:.05,shadeClose:!0,moveType:1,title:"插入代码",skin:"layui-layer-msg",content:['
      ','
    • ','','
      ','","
      ","
    • ",'
    • ','','
      ','',"
      ","
    • ",'
    • ','','',"
    • ","
    "].join(""),success:function(l,n){var o="submit(layedit-code-yes)";a.render("select"),l.find(".layui-btn-primary").on("click",function(){i.close(n),e.focus()}),a.on(o,function(e){i.close(k.index),t&&t(e.field)})}});k.index=l},C={html:'',strong:'',italic:'',underline:'',del:'',"|":'',left:'',center:'',right:'',link:'',unlink:'',face:'',image:'',code:'',help:''},w=new c;t(n,w)}); \ No newline at end of file +/** layui-v2.2.6 MIT License By https://www.layui.com */ + ;layui.define(["layer","form"],function(t){"use strict";var e=layui.$,i=layui.layer,a=layui.form,l=(layui.hint(),layui.device()),n="layedit",o="layui-show",r="layui-disabled",c=function(){var t=this;t.index=0,t.config={tool:["strong","italic","underline","del","|","left","center","right","|","link","unlink","face","image"],hideTool:[],height:280}};c.prototype.set=function(t){var i=this;return e.extend(!0,i.config,t),i},c.prototype.on=function(t,e){return layui.onevent(n,t,e)},c.prototype.build=function(t,i){i=i||{};var a=this,n=a.config,r="layui-layedit",c=e("string"==typeof t?"#"+t:t),u="LAY_layedit_"+ ++a.index,d=c.next("."+r),y=e.extend({},n,i),f=function(){var t=[],e={};return layui.each(y.hideTool,function(t,i){e[i]=!0}),layui.each(y.tool,function(i,a){C[a]&&!e[a]&&t.push(C[a])}),t.join("")}(),m=e(['
    ','
    '+f+"
    ",'
    ','',"
    ","
    "].join(""));return l.ie&&l.ie<8?c.removeClass("layui-hide").addClass(o):(d[0]&&d.remove(),s.call(a,m,c[0],y),c.addClass("layui-hide").after(m),a.index)},c.prototype.getContent=function(t){var e=u(t);if(e[0])return d(e[0].document.body.innerHTML)},c.prototype.getText=function(t){var i=u(t);if(i[0])return e(i[0].document.body).text()},c.prototype.setContent=function(t,i,a){var l=u(t);l[0]&&(a?e(l[0].document.body).append(i):e(l[0].document.body).html(i),layedit.sync(t))},c.prototype.sync=function(t){var i=u(t);if(i[0]){var a=e("#"+i[1].attr("textarea"));a.val(d(i[0].document.body.innerHTML))}},c.prototype.getSelection=function(t){var e=u(t);if(e[0]){var i=m(e[0].document);return document.selection?i.text:i.toString()}};var s=function(t,i,a){var l=this,n=t.find("iframe");n.css({height:a.height}).on("load",function(){var o=n.contents(),r=n.prop("contentWindow"),c=o.find("head"),s=e([""].join("")),u=o.find("body");c.append(s),u.attr("contenteditable","true").css({"min-height":a.height}).html(i.value||""),y.apply(l,[r,n,i,a]),g.call(l,r,t,a)})},u=function(t){var i=e("#LAY_layedit_"+t),a=i.prop("contentWindow");return[a,i]},d=function(t){return 8==l.ie&&(t=t.replace(/<.+>/g,function(t){return t.toLowerCase()})),t},y=function(t,a,n,o){var r=t.document,c=e(r.body);c.on("keydown",function(t){var e=t.keyCode;if(13===e){var a=m(r),l=p(a),n=l.parentNode;if("pre"===n.tagName.toLowerCase()){if(t.shiftKey)return;return i.msg("请暂时用shift+enter"),!1}r.execCommand("formatBlock",!1,"

    ")}}),e(n).parents("form").on("submit",function(){var t=c.html();8==l.ie&&(t=t.replace(/<.+>/g,function(t){return t.toLowerCase()})),n.value=t}),c.on("paste",function(e){r.execCommand("formatBlock",!1,"

    "),setTimeout(function(){f.call(t,c),n.value=c.html()},100)})},f=function(t){var i=this;i.document;t.find("*[style]").each(function(){var t=this.style.textAlign;this.removeAttribute("style"),e(this).css({"text-align":t||""})}),t.find("table").addClass("layui-table"),t.find("script,link").remove()},m=function(t){return t.selection?t.selection.createRange():t.getSelection().getRangeAt(0)},p=function(t){return t.endContainer||t.parentElement().childNodes[0]},v=function(t,i,a){var l=this.document,n=document.createElement(t);for(var o in i)n.setAttribute(o,i[o]);if(n.removeAttribute("text"),l.selection){var r=a.text||i.text;if("a"===t&&!r)return;r&&(n.innerHTML=r),a.pasteHTML(e(n).prop("outerHTML")),a.select()}else{var r=a.toString()||i.text;if("a"===t&&!r)return;r&&(n.innerHTML=r),a.deleteContents(),a.insertNode(n)}},h=function(t,i){var a=this.document,l="layedit-tool-active",n=p(m(a)),o=function(e){return t.find(".layedit-tool-"+e)};i&&i[i.hasClass(l)?"removeClass":"addClass"](l),t.find(">i").removeClass(l),o("unlink").addClass(r),e(n).parents().each(function(){var t=this.tagName.toLowerCase(),e=this.style.textAlign;"b"!==t&&"strong"!==t||o("b").addClass(l),"i"!==t&&"em"!==t||o("i").addClass(l),"u"===t&&o("u").addClass(l),"strike"===t&&o("d").addClass(l),"p"===t&&("center"===e?o("center").addClass(l):"right"===e?o("right").addClass(l):o("left").addClass(l)),"a"===t&&(o("link").addClass(l),o("unlink").removeClass(r))})},g=function(t,a,l){var n=t.document,o=e(n.body),c={link:function(i){var a=p(i),l=e(a).parent();b.call(o,{href:l.attr("href"),target:l.attr("target")},function(e){var a=l[0];"A"===a.tagName?a.href=e.url:v.call(t,"a",{target:e.target,href:e.url,text:e.url},i)})},unlink:function(t){n.execCommand("unlink")},face:function(e){x.call(this,function(i){v.call(t,"img",{src:i.src,alt:i.alt},e)})},image:function(a){var n=this;layui.use("upload",function(o){var r=l.uploadImage||{};o.render({url:r.url,method:r.type,elem:e(n).find("input")[0],done:function(e){0==e.code?(e.data=e.data||{},v.call(t,"img",{src:e.data.src,alt:e.data.title},a)):i.msg(e.msg||"上传失败")}})})},code:function(e){k.call(o,function(i){v.call(t,"pre",{text:i.code,"lay-lang":i.lang},e)})},help:function(){i.open({type:2,title:"帮助",area:["600px","380px"],shadeClose:!0,shade:.1,skin:"layui-layer-msg",content:["http://www.layui.com/about/layedit/help.html","no"]})}},s=a.find(".layui-layedit-tool"),u=function(){var i=e(this),a=i.attr("layedit-event"),l=i.attr("lay-command");if(!i.hasClass(r)){o.focus();var u=m(n);u.commonAncestorContainer;l?(n.execCommand(l),/justifyLeft|justifyCenter|justifyRight/.test(l)&&n.execCommand("formatBlock",!1,"

    "),setTimeout(function(){o.focus()},10)):c[a]&&c[a].call(this,u),h.call(t,s,i)}},d=/image/;s.find(">i").on("mousedown",function(){var t=e(this),i=t.attr("layedit-event");d.test(i)||u.call(this)}).on("click",function(){var t=e(this),i=t.attr("layedit-event");d.test(i)&&u.call(this)}),o.on("click",function(){h.call(t,s),i.close(x.index)})},b=function(t,e){var l=this,n=i.open({type:1,id:"LAY_layedit_link",area:"350px",shade:.05,shadeClose:!0,moveType:1,title:"超链接",skin:"layui-layer-msg",content:['

      ','
    • ','','
      ','',"
      ","
    • ",'
    • ','','
      ','",'","
      ","
    • ",'
    • ','','',"
    • ","
    "].join(""),success:function(t,n){var o="submit(layedit-link-yes)";a.render("radio"),t.find(".layui-btn-primary").on("click",function(){i.close(n),l.focus()}),a.on(o,function(t){i.close(b.index),e&&e(t.field)})}});b.index=n},x=function(t){var a=function(){var t=["[微笑]","[嘻嘻]","[哈哈]","[可爱]","[可怜]","[挖鼻]","[吃惊]","[害羞]","[挤眼]","[闭嘴]","[鄙视]","[爱你]","[泪]","[偷笑]","[亲亲]","[生病]","[太开心]","[白眼]","[右哼哼]","[左哼哼]","[嘘]","[衰]","[委屈]","[吐]","[哈欠]","[抱抱]","[怒]","[疑问]","[馋嘴]","[拜拜]","[思考]","[汗]","[困]","[睡]","[钱]","[失望]","[酷]","[色]","[哼]","[鼓掌]","[晕]","[悲伤]","[抓狂]","[黑线]","[阴险]","[怒骂]","[互粉]","[心]","[伤心]","[猪头]","[熊猫]","[兔子]","[ok]","[耶]","[good]","[NO]","[赞]","[来]","[弱]","[草泥马]","[神马]","[囧]","[浮云]","[给力]","[围观]","[威武]","[奥特曼]","[礼物]","[钟]","[话筒]","[蜡烛]","[蛋糕]"],e={};return layui.each(t,function(t,i){e[i]=layui.cache.dir+"images/face/"+t+".gif"}),e}();return x.hide=x.hide||function(t){"face"!==e(t.target).attr("layedit-event")&&i.close(x.index)},x.index=i.tips(function(){var t=[];return layui.each(a,function(e,i){t.push('
  • '+e+'
  • ')}),'
      '+t.join("")+"
    "}(),this,{tips:1,time:0,skin:"layui-box layui-util-face",maxWidth:500,success:function(l,n){l.css({marginTop:-4,marginLeft:-10}).find(".layui-clear>li").on("click",function(){t&&t({src:a[this.title],alt:this.title}),i.close(n)}),e(document).off("click",x.hide).on("click",x.hide)}})},k=function(t){var e=this,l=i.open({type:1,id:"LAY_layedit_code",area:"550px",shade:.05,shadeClose:!0,moveType:1,title:"插入代码",skin:"layui-layer-msg",content:['
      ','
    • ','','
      ','","
      ","
    • ",'
    • ','','
      ','',"
      ","
    • ",'
    • ','','',"
    • ","
    "].join(""),success:function(l,n){var o="submit(layedit-code-yes)";a.render("select"),l.find(".layui-btn-primary").on("click",function(){i.close(n),e.focus()}),a.on(o,function(e){i.close(k.index),t&&t(e.field)})}});k.index=l},C={html:'',strong:'',italic:'',underline:'',del:'',"|":'',left:'',center:'',right:'',link:'',unlink:'',face:'',image:'',code:'',help:''},w=new c;t(n,w)}); \ No newline at end of file diff --git a/static/plugs/layui/lay/modules/layer.js b/static/plugs/layui/lay/modules/layer.js index 0470aac6f..18bf4407c 100644 --- a/static/plugs/layui/lay/modules/layer.js +++ b/static/plugs/layui/lay/modules/layer.js @@ -1,2 +1,2 @@ -/** layui-v2.2.5 MIT License By https://www.layui.com */ +/** layui-v2.2.6 MIT License By https://www.layui.com */ ;!function(e,t){"use strict";var i,n,a=e.layui&&layui.define,o={getPath:function(){var e=document.currentScript?document.currentScript.src:function(){for(var e,t=document.scripts,i=t.length-1,n=i;n>0;n--)if("interactive"===t[n].readyState){e=t[n].src;break}return e||t[i].src}();return e.substring(0,e.lastIndexOf("/")+1)}(),config:{},end:{},minIndex:0,minLeft:[],btn:["确定","取消"],type:["dialog","page","iframe","loading","tips"],getStyle:function(t,i){var n=t.currentStyle?t.currentStyle:e.getComputedStyle(t,null);return n[n.getPropertyValue?"getPropertyValue":"getAttribute"](i)},link:function(t,i,n){if(r.path){var a=document.getElementsByTagName("head")[0],s=document.createElement("link");"string"==typeof i&&(n=i);var l=(n||t).replace(/\.|\//g,""),f="layuicss-"+l,c=0;s.rel="stylesheet",s.href=r.path+t,s.id=f,document.getElementById(f)||a.appendChild(s),"function"==typeof i&&!function u(){return++c>80?e.console&&console.error("layer.css: Invalid"):void(1989===parseInt(o.getStyle(document.getElementById(f),"width"))?i():setTimeout(u,100))}()}}},r={v:"3.1.1",ie:function(){var t=navigator.userAgent.toLowerCase();return!!(e.ActiveXObject||"ActiveXObject"in e)&&((t.match(/msie\s(\d+)/)||[])[1]||"11")}(),index:e.layer&&e.layer.v?1e5:0,path:o.getPath,config:function(e,t){return e=e||{},r.cache=o.config=i.extend({},o.config,e),r.path=o.config.path||r.path,"string"==typeof e.extend&&(e.extend=[e.extend]),o.config.path&&r.ready(),e.extend?(a?layui.addcss("modules/layer/"+e.extend):o.link("theme/"+e.extend),this):this},ready:function(e){var t="layer",i="",n=(a?"modules/layer/":"theme/")+"default/layer.css?v="+r.v+i;return a?layui.addcss(n,e,t):o.link(n,e,t),this},alert:function(e,t,n){var a="function"==typeof t;return a&&(n=t),r.open(i.extend({content:e,yes:n},a?{}:t))},confirm:function(e,t,n,a){var s="function"==typeof t;return s&&(a=n,n=t),r.open(i.extend({content:e,btn:o.btn,yes:n,btn2:a},s?{}:t))},msg:function(e,n,a){var s="function"==typeof n,f=o.config.skin,c=(f?f+" "+f+"-msg":"")||"layui-layer-msg",u=l.anim.length-1;return s&&(a=n),r.open(i.extend({content:e,time:3e3,shade:!1,skin:c,title:!1,closeBtn:!1,btn:!1,resize:!1,end:a},s&&!o.config.skin?{skin:c+" layui-layer-hui",anim:u}:function(){return n=n||{},(n.icon===-1||n.icon===t&&!o.config.skin)&&(n.skin=c+" "+(n.skin||"layui-layer-hui")),n}()))},load:function(e,t){return r.open(i.extend({type:3,icon:e||0,resize:!1,shade:.01},t))},tips:function(e,t,n){return r.open(i.extend({type:4,content:[e,t],closeBtn:!1,time:3e3,shade:!1,resize:!1,fixed:!1,maxWidth:210},n))}},s=function(e){var t=this;t.index=++r.index,t.config=i.extend({},t.config,o.config,e),document.body?t.creat():setTimeout(function(){t.creat()},30)};s.pt=s.prototype;var l=["layui-layer",".layui-layer-title",".layui-layer-main",".layui-layer-dialog","layui-layer-iframe","layui-layer-content","layui-layer-btn","layui-layer-close"];l.anim=["layer-anim-00","layer-anim-01","layer-anim-02","layer-anim-03","layer-anim-04","layer-anim-05","layer-anim-06"],s.pt.config={type:0,shade:.3,fixed:!0,move:l[1],title:"信息",offset:"auto",area:"auto",closeBtn:1,time:0,zIndex:19891014,maxWidth:360,anim:0,isOutAnim:!0,icon:-1,moveType:1,resize:!0,scrollbar:!0,tips:2},s.pt.vessel=function(e,t){var n=this,a=n.index,r=n.config,s=r.zIndex+a,f="object"==typeof r.title,c=r.maxmin&&(1===r.type||2===r.type),u=r.title?'
    '+(f?r.title[0]:r.title)+"
    ":"";return r.zIndex=s,t([r.shade?'
    ':"",'
    '+(e&&2!=r.type?"":u)+'
    '+(0==r.type&&r.icon!==-1?'':"")+(1==r.type&&e?"":r.content||"")+'
    '+function(){var e=c?'':"";return r.closeBtn&&(e+=''),e}()+""+(r.btn?function(){var e="";"string"==typeof r.btn&&(r.btn=[r.btn]);for(var t=0,i=r.btn.length;t'+r.btn[t]+"";return'
    '+e+"
    "}():"")+(r.resize?'':"")+"
    "],u,i('
    ')),n},s.pt.creat=function(){var e=this,t=e.config,a=e.index,s=t.content,f="object"==typeof s,c=i("body");if(!t.id||!i("#"+t.id)[0]){switch("string"==typeof t.area&&(t.area="auto"===t.area?["",""]:[t.area,""]),t.shift&&(t.anim=t.shift),6==r.ie&&(t.fixed=!1),t.type){case 0:t.btn="btn"in t?t.btn:o.btn[0],r.closeAll("dialog");break;case 2:var s=t.content=f?t.content:[t.content||"http://layer.layui.com","auto"];t.content='';break;case 3:delete t.title,delete t.closeBtn,t.icon===-1&&0===t.icon,r.closeAll("loading");break;case 4:f||(t.content=[t.content,"body"]),t.follow=t.content[1],t.content=t.content[0]+'',delete t.title,t.tips="object"==typeof t.tips?t.tips:[t.tips,!0],t.tipsMore||r.closeAll("tips")}if(e.vessel(f,function(n,r,u){c.append(n[0]),f?function(){2==t.type||4==t.type?function(){i("body").append(n[1])}():function(){s.parents("."+l[0])[0]||(s.data("display",s.css("display")).show().addClass("layui-layer-wrap").wrap(n[1]),i("#"+l[0]+a).find("."+l[5]).before(r))}()}():c.append(n[1]),i(".layui-layer-move")[0]||c.append(o.moveElem=u),e.layero=i("#"+l[0]+a),t.scrollbar||l.html.css("overflow","hidden").attr("layer-full",a)}).auto(a),i("#layui-layer-shade"+e.index).css({"background-color":t.shade[1]||"#000",opacity:t.shade[0]||t.shade}),2==t.type&&6==r.ie&&e.layero.find("iframe").attr("src",s[0]),4==t.type?e.tips():e.offset(),t.fixed&&n.on("resize",function(){e.offset(),(/^\d+%$/.test(t.area[0])||/^\d+%$/.test(t.area[1]))&&e.auto(a),4==t.type&&e.tips()}),t.time<=0||setTimeout(function(){r.close(e.index)},t.time),e.move().callback(),l.anim[t.anim]){var u="layer-anim "+l.anim[t.anim];e.layero.addClass(u).one("webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend",function(){i(this).removeClass(u)})}t.isOutAnim&&e.layero.data("isOutAnim",!0)}},s.pt.auto=function(e){var t=this,a=t.config,o=i("#"+l[0]+e);""===a.area[0]&&a.maxWidth>0&&(r.ie&&r.ie<8&&a.btn&&o.width(o.innerWidth()),o.outerWidth()>a.maxWidth&&o.width(a.maxWidth));var s=[o.innerWidth(),o.innerHeight()],f=o.find(l[1]).outerHeight()||0,c=o.find("."+l[6]).outerHeight()||0,u=function(e){e=o.find(e),e.height(s[1]-f-c-2*(0|parseFloat(e.css("padding-top"))))};switch(a.type){case 2:u("iframe");break;default:""===a.area[1]?a.maxHeight>0&&o.outerHeight()>a.maxHeight?(s[1]=a.maxHeight,u("."+l[5])):a.fixed&&s[1]>=n.height()&&(s[1]=n.height(),u("."+l[5])):u("."+l[5])}return t},s.pt.offset=function(){var e=this,t=e.config,i=e.layero,a=[i.outerWidth(),i.outerHeight()],o="object"==typeof t.offset;e.offsetTop=(n.height()-a[1])/2,e.offsetLeft=(n.width()-a[0])/2,o?(e.offsetTop=t.offset[0],e.offsetLeft=t.offset[1]||e.offsetLeft):"auto"!==t.offset&&("t"===t.offset?e.offsetTop=0:"r"===t.offset?e.offsetLeft=n.width()-a[0]:"b"===t.offset?e.offsetTop=n.height()-a[1]:"l"===t.offset?e.offsetLeft=0:"lt"===t.offset?(e.offsetTop=0,e.offsetLeft=0):"lb"===t.offset?(e.offsetTop=n.height()-a[1],e.offsetLeft=0):"rt"===t.offset?(e.offsetTop=0,e.offsetLeft=n.width()-a[0]):"rb"===t.offset?(e.offsetTop=n.height()-a[1],e.offsetLeft=n.width()-a[0]):e.offsetTop=t.offset),t.fixed||(e.offsetTop=/%$/.test(e.offsetTop)?n.height()*parseFloat(e.offsetTop)/100:parseFloat(e.offsetTop),e.offsetLeft=/%$/.test(e.offsetLeft)?n.width()*parseFloat(e.offsetLeft)/100:parseFloat(e.offsetLeft),e.offsetTop+=n.scrollTop(),e.offsetLeft+=n.scrollLeft()),i.attr("minLeft")&&(e.offsetTop=n.height()-(i.find(l[1]).outerHeight()||0),e.offsetLeft=i.css("left")),i.css({top:e.offsetTop,left:e.offsetLeft})},s.pt.tips=function(){var e=this,t=e.config,a=e.layero,o=[a.outerWidth(),a.outerHeight()],r=i(t.follow);r[0]||(r=i("body"));var s={width:r.outerWidth(),height:r.outerHeight(),top:r.offset().top,left:r.offset().left},f=a.find(".layui-layer-TipsG"),c=t.tips[0];t.tips[1]||f.remove(),s.autoLeft=function(){s.left+o[0]-n.width()>0?(s.tipLeft=s.left+s.width-o[0],f.css({right:12,left:"auto"})):s.tipLeft=s.left},s.where=[function(){s.autoLeft(),s.tipTop=s.top-o[1]-10,f.removeClass("layui-layer-TipsB").addClass("layui-layer-TipsT").css("border-right-color",t.tips[1])},function(){s.tipLeft=s.left+s.width+10,s.tipTop=s.top,f.removeClass("layui-layer-TipsL").addClass("layui-layer-TipsR").css("border-bottom-color",t.tips[1])},function(){s.autoLeft(),s.tipTop=s.top+s.height+10,f.removeClass("layui-layer-TipsT").addClass("layui-layer-TipsB").css("border-right-color",t.tips[1])},function(){s.tipLeft=s.left-o[0]-10,s.tipTop=s.top,f.removeClass("layui-layer-TipsR").addClass("layui-layer-TipsL").css("border-bottom-color",t.tips[1])}],s.where[c-1](),1===c?s.top-(n.scrollTop()+o[1]+16)<0&&s.where[2]():2===c?n.width()-(s.left+s.width+o[0]+16)>0||s.where[3]():3===c?s.top-n.scrollTop()+s.height+o[1]+16-n.height()>0&&s.where[0]():4===c&&o[0]+16-s.left>0&&s.where[1](),a.find("."+l[5]).css({"background-color":t.tips[1],"padding-right":t.closeBtn?"30px":""}),a.css({left:s.tipLeft-(t.fixed?n.scrollLeft():0),top:s.tipTop-(t.fixed?n.scrollTop():0)})},s.pt.move=function(){var e=this,t=e.config,a=i(document),s=e.layero,l=s.find(t.move),f=s.find(".layui-layer-resize"),c={};return t.move&&l.css("cursor","move"),l.on("mousedown",function(e){e.preventDefault(),t.move&&(c.moveStart=!0,c.offset=[e.clientX-parseFloat(s.css("left")),e.clientY-parseFloat(s.css("top"))],o.moveElem.css("cursor","move").show())}),f.on("mousedown",function(e){e.preventDefault(),c.resizeStart=!0,c.offset=[e.clientX,e.clientY],c.area=[s.outerWidth(),s.outerHeight()],o.moveElem.css("cursor","se-resize").show()}),a.on("mousemove",function(i){if(c.moveStart){var a=i.clientX-c.offset[0],o=i.clientY-c.offset[1],l="fixed"===s.css("position");if(i.preventDefault(),c.stX=l?0:n.scrollLeft(),c.stY=l?0:n.scrollTop(),!t.moveOut){var f=n.width()-s.outerWidth()+c.stX,u=n.height()-s.outerHeight()+c.stY;af&&(a=f),ou&&(o=u)}s.css({left:a,top:o})}if(t.resize&&c.resizeStart){var a=i.clientX-c.offset[0],o=i.clientY-c.offset[1];i.preventDefault(),r.style(e.index,{width:c.area[0]+a,height:c.area[1]+o}),c.isResize=!0,t.resizing&&t.resizing(s)}}).on("mouseup",function(e){c.moveStart&&(delete c.moveStart,o.moveElem.hide(),t.moveEnd&&t.moveEnd(s)),c.resizeStart&&(delete c.resizeStart,o.moveElem.hide())}),e},s.pt.callback=function(){function e(){var e=a.cancel&&a.cancel(t.index,n);e===!1||r.close(t.index)}var t=this,n=t.layero,a=t.config;t.openLayer(),a.success&&(2==a.type?n.find("iframe").on("load",function(){a.success(n,t.index)}):a.success(n,t.index)),6==r.ie&&t.IE6(n),n.find("."+l[6]).children("a").on("click",function(){var e=i(this).index();if(0===e)a.yes?a.yes(t.index,n):a.btn1?a.btn1(t.index,n):r.close(t.index);else{var o=a["btn"+(e+1)]&&a["btn"+(e+1)](t.index,n);o===!1||r.close(t.index)}}),n.find("."+l[7]).on("click",e),a.shadeClose&&i("#layui-layer-shade"+t.index).on("click",function(){r.close(t.index)}),n.find(".layui-layer-min").on("click",function(){var e=a.min&&a.min(n);e===!1||r.min(t.index,a)}),n.find(".layui-layer-max").on("click",function(){i(this).hasClass("layui-layer-maxmin")?(r.restore(t.index),a.restore&&a.restore(n)):(r.full(t.index,a),setTimeout(function(){a.full&&a.full(n)},100))}),a.end&&(o.end[t.index]=a.end)},o.reselect=function(){i.each(i("select"),function(e,t){var n=i(this);n.parents("."+l[0])[0]||1==n.attr("layer")&&i("."+l[0]).length<1&&n.removeAttr("layer").show(),n=null})},s.pt.IE6=function(e){i("select").each(function(e,t){var n=i(this);n.parents("."+l[0])[0]||"none"===n.css("display")||n.attr({layer:"1"}).hide(),n=null})},s.pt.openLayer=function(){var e=this;r.zIndex=e.config.zIndex,r.setTop=function(e){var t=function(){r.zIndex++,e.css("z-index",r.zIndex+1)};return r.zIndex=parseInt(e[0].style.zIndex),e.on("mousedown",t),r.zIndex}},o.record=function(e){var t=[e.width(),e.height(),e.position().top,e.position().left+parseFloat(e.css("margin-left"))];e.find(".layui-layer-max").addClass("layui-layer-maxmin"),e.attr({area:t})},o.rescollbar=function(e){l.html.attr("layer-full")==e&&(l.html[0].style.removeProperty?l.html[0].style.removeProperty("overflow"):l.html[0].style.removeAttribute("overflow"),l.html.removeAttr("layer-full"))},e.layer=r,r.getChildFrame=function(e,t){return t=t||i("."+l[4]).attr("times"),i("#"+l[0]+t).find("iframe").contents().find(e)},r.getFrameIndex=function(e){return i("#"+e).parents("."+l[4]).attr("times")},r.iframeAuto=function(e){if(e){var t=r.getChildFrame("html",e).outerHeight(),n=i("#"+l[0]+e),a=n.find(l[1]).outerHeight()||0,o=n.find("."+l[6]).outerHeight()||0;n.css({height:t+a+o}),n.find("iframe").css({height:t})}},r.iframeSrc=function(e,t){i("#"+l[0]+e).find("iframe").attr("src",t)},r.style=function(e,t,n){var a=i("#"+l[0]+e),r=a.find(".layui-layer-content"),s=a.attr("type"),f=a.find(l[1]).outerHeight()||0,c=a.find("."+l[6]).outerHeight()||0;a.attr("minLeft");s!==o.type[3]&&s!==o.type[4]&&(n||(parseFloat(t.width)<=260&&(t.width=260),parseFloat(t.height)-f-c<=64&&(t.height=64+f+c)),a.css(t),c=a.find("."+l[6]).outerHeight(),s===o.type[2]?a.find("iframe").css({height:parseFloat(t.height)-f-c}):r.css({height:parseFloat(t.height)-f-c-parseFloat(r.css("padding-top"))-parseFloat(r.css("padding-bottom"))}))},r.min=function(e,t){var a=i("#"+l[0]+e),s=a.find(l[1]).outerHeight()||0,f=a.attr("minLeft")||181*o.minIndex+"px",c=a.css("position");o.record(a),o.minLeft[0]&&(f=o.minLeft[0],o.minLeft.shift()),a.attr("position",c),r.style(e,{width:180,height:s,left:f,top:n.height()-s,position:"fixed",overflow:"hidden"},!0),a.find(".layui-layer-min").hide(),"page"===a.attr("type")&&a.find(l[4]).hide(),o.rescollbar(e),a.attr("minLeft")||o.minIndex++,a.attr("minLeft",f)},r.restore=function(e){var t=i("#"+l[0]+e),n=t.attr("area").split(",");t.attr("type");r.style(e,{width:parseFloat(n[0]),height:parseFloat(n[1]),top:parseFloat(n[2]),left:parseFloat(n[3]),position:t.attr("position"),overflow:"visible"},!0),t.find(".layui-layer-max").removeClass("layui-layer-maxmin"),t.find(".layui-layer-min").show(),"page"===t.attr("type")&&t.find(l[4]).show(),o.rescollbar(e)},r.full=function(e){var t,a=i("#"+l[0]+e);o.record(a),l.html.attr("layer-full")||l.html.css("overflow","hidden").attr("layer-full",e),clearTimeout(t),t=setTimeout(function(){var t="fixed"===a.css("position");r.style(e,{top:t?0:n.scrollTop(),left:t?0:n.scrollLeft(),width:n.width(),height:n.height()},!0),a.find(".layui-layer-min").hide()},100)},r.title=function(e,t){var n=i("#"+l[0]+(t||r.index)).find(l[1]);n.html(e)},r.close=function(e){var t=i("#"+l[0]+e),n=t.attr("type"),a="layer-anim-close";if(t[0]){var s="layui-layer-wrap",f=function(){if(n===o.type[1]&&"object"===t.attr("conType")){t.children(":not(."+l[5]+")").remove();for(var a=t.find("."+s),r=0;r<2;r++)a.unwrap();a.css("display",a.data("display")).removeClass(s)}else{if(n===o.type[2])try{var f=i("#"+l[4]+e)[0];f.contentWindow.document.write(""),f.contentWindow.close(),t.find("."+l[5])[0].removeChild(f)}catch(c){}t[0].innerHTML="",t.remove()}"function"==typeof o.end[e]&&o.end[e](),delete o.end[e]};t.data("isOutAnim")&&t.addClass("layer-anim "+a),i("#layui-layer-moves, #layui-layer-shade"+e).remove(),6==r.ie&&o.reselect(),o.rescollbar(e),t.attr("minLeft")&&(o.minIndex--,o.minLeft.push(t.attr("minLeft"))),r.ie&&r.ie<10||!t.data("isOutAnim")?f():setTimeout(function(){f()},200)}},r.closeAll=function(e){i.each(i("."+l[0]),function(){var t=i(this),n=e?t.attr("type")===e:1;n&&r.close(t.attr("times")),n=null})};var f=r.cache||{},c=function(e){return f.skin?" "+f.skin+" "+f.skin+"-"+e:""};r.prompt=function(e,t){var a="";if(e=e||{},"function"==typeof e&&(t=e),e.area){var o=e.area;a='style="width: '+o[0]+"; height: "+o[1]+';"',delete e.area}var s,l=2==e.formType?'":function(){return''}(),f=e.success;return delete e.success,r.open(i.extend({type:1,btn:["确定","取消"],content:l,skin:"layui-layer-prompt"+c("prompt"),maxWidth:n.width(),success:function(t){s=t.find(".layui-layer-input"),s.val(e.value||"").focus(),"function"==typeof f&&f(t)},resize:!1,yes:function(i){var n=s.val();""===n?s.focus():n.length>(e.maxlength||500)?r.tips("最多输入"+(e.maxlength||500)+"个字数",s,{tips:1}):t&&t(n,i,s)}},e))},r.tab=function(e){e=e||{};var t=e.tab||{},n="layui-this",a=e.success;return delete e.success,r.open(i.extend({type:1,skin:"layui-layer-tab"+c("tab"),resize:!1,title:function(){var e=t.length,i=1,a="";if(e>0)for(a=''+t[0].title+"";i"+t[i].title+"";return a}(),content:'
      '+function(){var e=t.length,i=1,a="";if(e>0)for(a='
    • '+(t[0].content||"no content")+"
    • ";i'+(t[i].content||"no content")+"";return a}()+"
    ",success:function(t){var o=t.find(".layui-layer-title").children(),r=t.find(".layui-layer-tabmain").children();o.on("mousedown",function(t){t.stopPropagation?t.stopPropagation():t.cancelBubble=!0;var a=i(this),o=a.index();a.addClass(n).siblings().removeClass(n),r.eq(o).show().siblings().hide(),"function"==typeof e.change&&e.change(o)}),"function"==typeof a&&a(t)}},e))},r.photos=function(t,n,a){function o(e,t,i){var n=new Image;return n.src=e,n.complete?t(n):(n.onload=function(){n.onload=null,t(n)},void(n.onerror=function(e){n.onerror=null,i(e)}))}var s={};if(t=t||{},t.photos){var l=t.photos.constructor===Object,f=l?t.photos:{},u=f.data||[],d=f.start||0;s.imgIndex=(0|d)+1,t.img=t.img||"img";var y=t.success;if(delete t.success,l){if(0===u.length)return r.msg("没有图片")}else{var p=i(t.photos),h=function(){u=[],p.find(t.img).each(function(e){var t=i(this);t.attr("layer-index",e),u.push({alt:t.attr("alt"),pid:t.attr("layer-pid"),src:t.attr("layer-src")||t.attr("src"),thumb:t.attr("src")})})};if(h(),0===u.length)return;if(n||p.on("click",t.img,function(){var e=i(this),n=e.attr("layer-index");r.photos(i.extend(t,{photos:{start:n,data:u,tab:t.tab},full:t.full}),!0),h()}),!n)return}s.imgprev=function(e){s.imgIndex--,s.imgIndex<1&&(s.imgIndex=u.length),s.tabimg(e)},s.imgnext=function(e,t){s.imgIndex++,s.imgIndex>u.length&&(s.imgIndex=1,t)||s.tabimg(e)},s.keyup=function(e){if(!s.end){var t=e.keyCode;e.preventDefault(),37===t?s.imgprev(!0):39===t?s.imgnext(!0):27===t&&r.close(s.index)}},s.tabimg=function(e){if(!(u.length<=1))return f.start=s.imgIndex-1,r.close(s.index),r.photos(t,!0,e)},s.event=function(){s.bigimg.hover(function(){s.imgsee.show()},function(){s.imgsee.hide()}),s.bigimg.find(".layui-layer-imgprev").on("click",function(e){e.preventDefault(),s.imgprev()}),s.bigimg.find(".layui-layer-imgnext").on("click",function(e){e.preventDefault(),s.imgnext()}),i(document).on("keyup",s.keyup)},s.loadi=r.load(1,{shade:!("shade"in t)&&.9,scrollbar:!1}),o(u[d].src,function(n){r.close(s.loadi),s.index=r.open(i.extend({type:1,id:"layui-layer-photos",area:function(){var a=[n.width,n.height],o=[i(e).width()-100,i(e).height()-100];if(!t.full&&(a[0]>o[0]||a[1]>o[1])){var r=[a[0]/o[0],a[1]/o[1]];r[0]>r[1]?(a[0]=a[0]/r[0],a[1]=a[1]/r[0]):r[0]'+(u[d].alt||
    '+(u.length>1?'':"")+'
    '+(u[d].alt||"")+""+s.imgIndex+"/"+u.length+"
    ",success:function(e,i){s.bigimg=e.find(".layui-layer-phimg"),s.imgsee=e.find(".layui-layer-imguide,.layui-layer-imgbar"),s.event(e),t.tab&&t.tab(u[d],e),"function"==typeof y&&y(e)},end:function(){s.end=!0,i(document).off("keyup",s.keyup)}},t))},function(){r.close(s.loadi),r.msg("当前图片地址异常
    是否继续查看下一张?",{time:3e4,btn:["下一张","不看了"],yes:function(){u.length>1&&s.imgnext(!0,!0)}})})}},o.run=function(t){i=t,n=i(e),l.html=i("html"),r.open=function(e){var t=new s(e);return t.index}},e.layui&&layui.define?(r.ready(),layui.define("jquery",function(t){r.path=layui.cache.dir,o.run(layui.$),e.layer=r,t("layer",r)})):"function"==typeof define&&define.amd?define(["jquery"],function(){return o.run(e.jQuery),r}):function(){o.run(e.jQuery),r.ready()}()}(window); \ No newline at end of file diff --git a/static/plugs/layui/lay/modules/laypage.js b/static/plugs/layui/lay/modules/laypage.js index 54fe5d3ae..5b3b09bd7 100644 --- a/static/plugs/layui/lay/modules/laypage.js +++ b/static/plugs/layui/lay/modules/laypage.js @@ -1,2 +1,2 @@ -/** layui-v2.2.5 MIT License By https://www.layui.com */ +/** layui-v2.2.6 MIT License By https://www.layui.com */ ;layui.define(function(e){"use strict";var a=document,t="getElementById",n="getElementsByTagName",i="laypage",r="layui-disabled",u=function(e){var a=this;a.config=e||{},a.config.index=++s.index,a.render(!0)};u.prototype.type=function(){var e=this.config;if("object"==typeof e.elem)return void 0===e.elem.length?2:3},u.prototype.view=function(){var e=this,a=e.config,t=a.groups="groups"in a?0|a.groups:5;a.layout="object"==typeof a.layout?a.layout:["prev","page","next"],a.count=0|a.count,a.curr=0|a.curr||1,a.limits="object"==typeof a.limits?a.limits:[10,20,30,40,50],a.limit=0|a.limit||10,a.pages=Math.ceil(a.count/a.limit)||1,a.curr>a.pages&&(a.curr=a.pages),t<0?t=1:t>a.pages&&(t=a.pages),a.prev="prev"in a?a.prev:"上一页",a.next="next"in a?a.next:"下一页";var n=a.pages>t?Math.ceil((a.curr+(t>1?1:0))/(t>0?t:1)):1,i={prev:function(){return a.prev?''+a.prev+"":""}(),page:function(){var e=[];if(a.count<1)return"";n>1&&a.first!==!1&&0!==t&&e.push(''+(a.first||1)+"");var i=Math.floor((t-1)/2),r=n>1?a.curr-i:1,u=n>1?function(){var e=a.curr+(t-i-1);return e>a.pages?a.pages:e}():t;for(u-r2&&e.push('');r<=u;r++)r===a.curr?e.push('"+r+""):e.push(''+r+"");return a.pages>t&&a.pages>u&&a.last!==!1&&(u+1…'),0!==t&&e.push(''+(a.last||a.pages)+"")),e.join("")}(),next:function(){return a.next?''+a.next+"":""}(),count:'共 '+a.count+" 条",limit:function(){var e=['"}(),skip:function(){return['到第','','页',""].join("")}()};return['
    ',function(){var e=[];return layui.each(a.layout,function(a,t){i[t]&&e.push(i[t])}),e.join("")}(),"
    "].join("")},u.prototype.jump=function(e,a){if(e){var t=this,i=t.config,r=e.children,u=e[n]("button")[0],l=e[n]("input")[0],p=e[n]("select")[0],c=function(){var e=0|l.value.replace(/\s|\D/g,"");e&&(i.curr=e,t.render())};if(a)return c();for(var o=0,y=r.length;oi.pages||(i.curr=e,t.render())});p&&s.on(p,"change",function(){var e=this.value;i.curr*e>i.count&&(i.curr=Math.ceil(i.count/e)),i.limit=e,t.render()}),u&&s.on(u,"click",function(){c()})}},u.prototype.skip=function(e){if(e){var a=this,t=e[n]("input")[0];t&&s.on(t,"keyup",function(t){var n=this.value,i=t.keyCode;/^(37|38|39|40)$/.test(i)||(/\D/.test(n)&&(this.value=n.replace(/\D/,"")),13===i&&a.jump(e,!0))})}},u.prototype.render=function(e){var n=this,i=n.config,r=n.type(),u=n.view();2===r?i.elem&&(i.elem.innerHTML=u):3===r?i.elem.html(u):a[t](i.elem)&&(a[t](i.elem).innerHTML=u),i.jump&&i.jump(i,e);var s=a[t]("layui-laypage-"+i.index);n.jump(s),i.hash&&!e&&(location.hash="!"+i.hash+"="+i.curr),n.skip(s)};var s={render:function(e){var a=new u(e);return a.index},index:layui.laypage?layui.laypage.index+1e4:0,on:function(e,a,t){return e.attachEvent?e.attachEvent("on"+a,function(a){a.target=a.srcElement,t.call(e,a)}):e.addEventListener(a,t,!1),this}};e(i,s)}); \ No newline at end of file diff --git a/static/plugs/layui/lay/modules/laytpl.js b/static/plugs/layui/lay/modules/laytpl.js index a6923a790..e19885e76 100644 --- a/static/plugs/layui/lay/modules/laytpl.js +++ b/static/plugs/layui/lay/modules/laytpl.js @@ -1,2 +1,2 @@ -/** layui-v2.2.5 MIT License By https://www.layui.com */ +/** layui-v2.2.6 MIT License By https://www.layui.com */ ;layui.define(function(e){"use strict";var r={open:"{{",close:"}}"},c={exp:function(e){return new RegExp(e,"g")},query:function(e,c,t){var o=["#([\\s\\S])+?","([^{#}])*?"][e||0];return n((c||"")+r.open+o+r.close+(t||""))},escape:function(e){return String(e||"").replace(/&(?!#?[a-zA-Z0-9]+;)/g,"&").replace(//g,">").replace(/'/g,"'").replace(/"/g,""")},error:function(e,r){var c="Laytpl Error:";return"object"==typeof console&&console.error(c+e+"\n"+(r||"")),c+e}},n=c.exp,t=function(e){this.tpl=e};t.pt=t.prototype,window.errors=0,t.pt.parse=function(e,t){var o=this,p=e,a=n("^"+r.open+"#",""),l=n(r.close+"$","");e=e.replace(/\s+|\r|\t|\n/g," ").replace(n(r.open+"#"),r.open+"# ").replace(n(r.close+"}"),"} "+r.close).replace(/\\/g,"\\\\").replace(n(r.open+"!(.+?)!"+r.close),function(e){return e=e.replace(n("^"+r.open+"!"),"").replace(n("!"+r.close),"").replace(n(r.open+"|"+r.close),function(e){return e.replace(/(.)/g,"\\$1")})}).replace(/(?="|')/g,"\\").replace(c.query(),function(e){return e=e.replace(a,"").replace(l,""),'";'+e.replace(/\\/g,"")+';view+="'}).replace(c.query(1),function(e){var c='"+(';return e.replace(/\s/g,"")===r.open+r.close?"":(e=e.replace(n(r.open+"|"+r.close),""),/^=/.test(e)&&(e=e.replace(/^=/,""),c='"+_escape_('),c+e.replace(/\\/g,"")+')+"')}),e='"use strict";var view = "'+e+'";return view;';try{return o.cache=e=new Function("d, _escape_",e),e(t,c.escape)}catch(u){return delete o.cache,c.error(u,p)}},t.pt.render=function(e,r){var n,t=this;return e?(n=t.cache?t.cache(e,c.escape):t.parse(t.tpl,e),r?void r(n):n):c.error("no data")};var o=function(e){return"string"!=typeof e?c.error("Template not found"):new t(e)};o.config=function(e){e=e||{};for(var c in e)r[c]=e[c]},o.v="1.2.0",e("laytpl",o)}); \ No newline at end of file diff --git a/static/plugs/layui/lay/modules/mobile.js b/static/plugs/layui/lay/modules/mobile.js index 264d9d341..1f292ac53 100644 --- a/static/plugs/layui/lay/modules/mobile.js +++ b/static/plugs/layui/lay/modules/mobile.js @@ -1,2 +1,2 @@ -/** layui-v2.2.5 MIT License By https://www.layui.com */ +/** layui-v2.2.6 MIT License By https://www.layui.com */ ;layui.define(function(i){i("layui.mobile",layui.v)});layui.define(function(e){"use strict";var r={open:"{{",close:"}}"},c={exp:function(e){return new RegExp(e,"g")},query:function(e,c,t){var o=["#([\\s\\S])+?","([^{#}])*?"][e||0];return n((c||"")+r.open+o+r.close+(t||""))},escape:function(e){return String(e||"").replace(/&(?!#?[a-zA-Z0-9]+;)/g,"&").replace(//g,">").replace(/'/g,"'").replace(/"/g,""")},error:function(e,r){var c="Laytpl Error:";return"object"==typeof console&&console.error(c+e+"\n"+(r||"")),c+e}},n=c.exp,t=function(e){this.tpl=e};t.pt=t.prototype,window.errors=0,t.pt.parse=function(e,t){var o=this,p=e,a=n("^"+r.open+"#",""),l=n(r.close+"$","");e=e.replace(/\s+|\r|\t|\n/g," ").replace(n(r.open+"#"),r.open+"# ").replace(n(r.close+"}"),"} "+r.close).replace(/\\/g,"\\\\").replace(n(r.open+"!(.+?)!"+r.close),function(e){return e=e.replace(n("^"+r.open+"!"),"").replace(n("!"+r.close),"").replace(n(r.open+"|"+r.close),function(e){return e.replace(/(.)/g,"\\$1")})}).replace(/(?="|')/g,"\\").replace(c.query(),function(e){return e=e.replace(a,"").replace(l,""),'";'+e.replace(/\\/g,"")+';view+="'}).replace(c.query(1),function(e){var c='"+(';return e.replace(/\s/g,"")===r.open+r.close?"":(e=e.replace(n(r.open+"|"+r.close),""),/^=/.test(e)&&(e=e.replace(/^=/,""),c='"+_escape_('),c+e.replace(/\\/g,"")+')+"')}),e='"use strict";var view = "'+e+'";return view;';try{return o.cache=e=new Function("d, _escape_",e),e(t,c.escape)}catch(u){return delete o.cache,c.error(u,p)}},t.pt.render=function(e,r){var n,t=this;return e?(n=t.cache?t.cache(e,c.escape):t.parse(t.tpl,e),r?void r(n):n):c.error("no data")};var o=function(e){return"string"!=typeof e?c.error("Template not found"):new t(e)};o.config=function(e){e=e||{};for(var c in e)r[c]=e[c]},o.v="1.2.0",e("laytpl",o)});layui.define(function(e){"use strict";var t=(window,document),i="querySelectorAll",n="getElementsByClassName",a=function(e){return t[i](e)},s={type:0,shade:!0,shadeClose:!0,fixed:!0,anim:"scale"},l={extend:function(e){var t=JSON.parse(JSON.stringify(s));for(var i in e)t[i]=e[i];return t},timer:{},end:{}};l.touch=function(e,t){e.addEventListener("click",function(e){t.call(this,e)},!1)};var o=0,r=["layui-m-layer"],d=function(e){var t=this;t.config=l.extend(e),t.view()};d.prototype.view=function(){var e=this,i=e.config,s=t.createElement("div");e.id=s.id=r[0]+o,s.setAttribute("class",r[0]+" "+r[0]+(i.type||0)),s.setAttribute("index",o);var l=function(){var e="object"==typeof i.title;return i.title?'

    '+(e?i.title[0]:i.title)+"

    ":""}(),d=function(){"string"==typeof i.btn&&(i.btn=[i.btn]);var e,t=(i.btn||[]).length;return 0!==t&&i.btn?(e=''+i.btn[0]+"",2===t&&(e=''+i.btn[1]+""+e),'
    '+e+"
    "):""}();if(i.fixed||(i.top=i.hasOwnProperty("top")?i.top:100,i.style=i.style||"",i.style+=" top:"+(t.body.scrollTop+i.top)+"px"),2===i.type&&(i.content='

    '+(i.content||"")+"

    "),i.skin&&(i.anim="up"),"msg"===i.skin&&(i.shade=!1),s.innerHTML=(i.shade?"
    ':"")+'
    "+l+'
    '+i.content+"
    "+d+"
    ",!i.type||2===i.type){var y=t[n](r[0]+i.type),u=y.length;u>=1&&c.close(y[0].getAttribute("index"))}document.body.appendChild(s);var m=e.elem=a("#"+e.id)[0];i.success&&i.success(m),e.index=o++,e.action(i,m)},d.prototype.action=function(e,t){var i=this;e.time&&(l.timer[i.index]=setTimeout(function(){c.close(i.index)},1e3*e.time));var a=function(){var t=this.getAttribute("type");0==t?(e.no&&e.no(),c.close(i.index)):e.yes?e.yes(i.index):c.close(i.index)};if(e.btn)for(var s=t[n]("layui-m-layerbtn")[0].children,o=s.length,r=0;r0&&e-1 in t)}function s(t){return A.call(t,function(t){return null!=t})}function u(t){return t.length>0?T.fn.concat.apply([],t):t}function c(t){return t.replace(/::/g,"/").replace(/([A-Z]+)([A-Z][a-z])/g,"$1_$2").replace(/([a-z\d])([A-Z])/g,"$1_$2").replace(/_/g,"-").toLowerCase()}function l(t){return t in F?F[t]:F[t]=new RegExp("(^|\\s)"+t+"(\\s|$)")}function f(t,e){return"number"!=typeof e||k[c(t)]?e:e+"px"}function h(t){var e,n;return $[t]||(e=L.createElement(t),L.body.appendChild(e),n=getComputedStyle(e,"").getPropertyValue("display"),e.parentNode.removeChild(e),"none"==n&&(n="block"),$[t]=n),$[t]}function p(t){return"children"in t?D.call(t.children):T.map(t.childNodes,function(t){if(1==t.nodeType)return t})}function d(t,e){var n,r=t?t.length:0;for(n=0;n]*>/,R=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,z=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,Z=/^(?:body|html)$/i,q=/([A-Z])/g,H=["val","css","html","text","data","width","height","offset"],I=["after","prepend","before","append"],V=L.createElement("table"),_=L.createElement("tr"),B={tr:L.createElement("tbody"),tbody:V,thead:V,tfoot:V,td:_,th:_,"*":L.createElement("div")},U=/complete|loaded|interactive/,X=/^[\w-]*$/,J={},W=J.toString,Y={},G=L.createElement("div"),K={tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},Q=Array.isArray||function(t){return t instanceof Array};return Y.matches=function(t,e){if(!e||!t||1!==t.nodeType)return!1;var n=t.matches||t.webkitMatchesSelector||t.mozMatchesSelector||t.oMatchesSelector||t.matchesSelector;if(n)return n.call(t,e);var r,i=t.parentNode,o=!i;return o&&(i=G).appendChild(t),r=~Y.qsa(i,e).indexOf(t),o&&G.removeChild(t),r},C=function(t){return t.replace(/-+(.)?/g,function(t,e){return e?e.toUpperCase():""})},N=function(t){return A.call(t,function(e,n){return t.indexOf(e)==n})},Y.fragment=function(t,e,n){var r,i,a;return R.test(t)&&(r=T(L.createElement(RegExp.$1))),r||(t.replace&&(t=t.replace(z,"<$1>")),e===E&&(e=M.test(t)&&RegExp.$1),e in B||(e="*"),a=B[e],a.innerHTML=""+t,r=T.each(D.call(a.childNodes),function(){a.removeChild(this)})),o(n)&&(i=T(r),T.each(n,function(t,e){H.indexOf(t)>-1?i[t](e):i.attr(t,e)})),r},Y.Z=function(t,e){return new d(t,e)},Y.isZ=function(t){return t instanceof Y.Z},Y.init=function(t,n){var r;if(!t)return Y.Z();if("string"==typeof t)if(t=t.trim(),"<"==t[0]&&M.test(t))r=Y.fragment(t,RegExp.$1,n),t=null;else{if(n!==E)return T(n).find(t);r=Y.qsa(L,t)}else{if(e(t))return T(L).ready(t);if(Y.isZ(t))return t;if(Q(t))r=s(t);else if(i(t))r=[t],t=null;else if(M.test(t))r=Y.fragment(t.trim(),RegExp.$1,n),t=null;else{if(n!==E)return T(n).find(t);r=Y.qsa(L,t)}}return Y.Z(r,t)},T=function(t,e){return Y.init(t,e)},T.extend=function(t){var e,n=D.call(arguments,1);return"boolean"==typeof t&&(e=t,t=n.shift()),n.forEach(function(n){m(t,n,e)}),t},Y.qsa=function(t,e){var n,r="#"==e[0],i=!r&&"."==e[0],o=r||i?e.slice(1):e,a=X.test(o);return t.getElementById&&a&&r?(n=t.getElementById(o))?[n]:[]:1!==t.nodeType&&9!==t.nodeType&&11!==t.nodeType?[]:D.call(a&&!r&&t.getElementsByClassName?i?t.getElementsByClassName(o):t.getElementsByTagName(e):t.querySelectorAll(e))},T.contains=L.documentElement.contains?function(t,e){return t!==e&&t.contains(e)}:function(t,e){for(;e&&(e=e.parentNode);)if(e===t)return!0;return!1},T.type=t,T.isFunction=e,T.isWindow=n,T.isArray=Q,T.isPlainObject=o,T.isEmptyObject=function(t){var e;for(e in t)return!1;return!0},T.isNumeric=function(t){var e=Number(t),n=typeof t;return null!=t&&"boolean"!=n&&("string"!=n||t.length)&&!isNaN(e)&&isFinite(e)||!1},T.inArray=function(t,e,n){return O.indexOf.call(e,t,n)},T.camelCase=C,T.trim=function(t){return null==t?"":String.prototype.trim.call(t)},T.uuid=0,T.support={},T.expr={},T.noop=function(){},T.map=function(t,e){var n,r,i,o=[];if(a(t))for(r=0;r=0?t:t+this.length]},toArray:function(){return this.get()},size:function(){return this.length},remove:function(){return this.each(function(){null!=this.parentNode&&this.parentNode.removeChild(this)})},each:function(t){return O.every.call(this,function(e,n){return t.call(e,n,e)!==!1}),this},filter:function(t){return e(t)?this.not(this.not(t)):T(A.call(this,function(e){return Y.matches(e,t)}))},add:function(t,e){return T(N(this.concat(T(t,e))))},is:function(t){return this.length>0&&Y.matches(this[0],t)},not:function(t){var n=[];if(e(t)&&t.call!==E)this.each(function(e){t.call(this,e)||n.push(this)});else{var r="string"==typeof t?this.filter(t):a(t)&&e(t.item)?D.call(t):T(t);this.forEach(function(t){r.indexOf(t)<0&&n.push(t)})}return T(n)},has:function(t){return this.filter(function(){return i(t)?T.contains(this,t):T(this).find(t).size()})},eq:function(t){return t===-1?this.slice(t):this.slice(t,+t+1)},first:function(){var t=this[0];return t&&!i(t)?t:T(t)},last:function(){var t=this[this.length-1];return t&&!i(t)?t:T(t)},find:function(t){var e,n=this;return e=t?"object"==typeof t?T(t).filter(function(){var t=this;return O.some.call(n,function(e){return T.contains(e,t)})}):1==this.length?T(Y.qsa(this[0],t)):this.map(function(){return Y.qsa(this,t)}):T()},closest:function(t,e){var n=[],i="object"==typeof t&&T(t);return this.each(function(o,a){for(;a&&!(i?i.indexOf(a)>=0:Y.matches(a,t));)a=a!==e&&!r(a)&&a.parentNode;a&&n.indexOf(a)<0&&n.push(a)}),T(n)},parents:function(t){for(var e=[],n=this;n.length>0;)n=T.map(n,function(t){if((t=t.parentNode)&&!r(t)&&e.indexOf(t)<0)return e.push(t),t});return v(e,t)},parent:function(t){return v(N(this.pluck("parentNode")),t)},children:function(t){return v(this.map(function(){return p(this)}),t)},contents:function(){return this.map(function(){return this.contentDocument||D.call(this.childNodes)})},siblings:function(t){return v(this.map(function(t,e){return A.call(p(e.parentNode),function(t){return t!==e})}),t)},empty:function(){return this.each(function(){this.innerHTML=""})},pluck:function(t){return T.map(this,function(e){return e[t]})},show:function(){return this.each(function(){"none"==this.style.display&&(this.style.display=""),"none"==getComputedStyle(this,"").getPropertyValue("display")&&(this.style.display=h(this.nodeName))})},replaceWith:function(t){return this.before(t).remove()},wrap:function(t){var n=e(t);if(this[0]&&!n)var r=T(t).get(0),i=r.parentNode||this.length>1;return this.each(function(e){T(this).wrapAll(n?t.call(this,e):i?r.cloneNode(!0):r)})},wrapAll:function(t){if(this[0]){T(this[0]).before(t=T(t));for(var e;(e=t.children()).length;)t=e.first();T(t).append(this)}return this},wrapInner:function(t){var n=e(t);return this.each(function(e){var r=T(this),i=r.contents(),o=n?t.call(this,e):t;i.length?i.wrapAll(o):r.append(o)})},unwrap:function(){return this.parent().each(function(){T(this).replaceWith(T(this).children())}),this},clone:function(){return this.map(function(){return this.cloneNode(!0)})},hide:function(){return this.css("display","none")},toggle:function(t){return this.each(function(){var e=T(this);(t===E?"none"==e.css("display"):t)?e.show():e.hide()})},prev:function(t){return T(this.pluck("previousElementSibling")).filter(t||"*")},next:function(t){return T(this.pluck("nextElementSibling")).filter(t||"*")},html:function(t){return 0 in arguments?this.each(function(e){var n=this.innerHTML;T(this).empty().append(g(this,t,e,n))}):0 in this?this[0].innerHTML:null},text:function(t){return 0 in arguments?this.each(function(e){var n=g(this,t,e,this.textContent);this.textContent=null==n?"":""+n}):0 in this?this.pluck("textContent").join(""):null},attr:function(t,e){var n;return"string"!=typeof t||1 in arguments?this.each(function(n){if(1===this.nodeType)if(i(t))for(j in t)y(this,j,t[j]);else y(this,t,g(this,e,n,this.getAttribute(t)))}):0 in this&&1==this[0].nodeType&&null!=(n=this[0].getAttribute(t))?n:E},removeAttr:function(t){return this.each(function(){1===this.nodeType&&t.split(" ").forEach(function(t){y(this,t)},this)})},prop:function(t,e){return t=K[t]||t,1 in arguments?this.each(function(n){this[t]=g(this,e,n,this[t])}):this[0]&&this[0][t]},removeProp:function(t){return t=K[t]||t,this.each(function(){delete this[t]})},data:function(t,e){var n="data-"+t.replace(q,"-$1").toLowerCase(),r=1 in arguments?this.attr(n,e):this.attr(n);return null!==r?b(r):E},val:function(t){return 0 in arguments?(null==t&&(t=""),this.each(function(e){this.value=g(this,t,e,this.value)})):this[0]&&(this[0].multiple?T(this[0]).find("option").filter(function(){return this.selected}).pluck("value"):this[0].value)},offset:function(t){if(t)return this.each(function(e){var n=T(this),r=g(this,t,e,n.offset()),i=n.offsetParent().offset(),o={top:r.top-i.top,left:r.left-i.left};"static"==n.css("position")&&(o.position="relative"),n.css(o)});if(!this.length)return null;if(L.documentElement!==this[0]&&!T.contains(L.documentElement,this[0]))return{top:0,left:0};var e=this[0].getBoundingClientRect();return{left:e.left+window.pageXOffset,top:e.top+window.pageYOffset,width:Math.round(e.width),height:Math.round(e.height)}},css:function(e,n){if(arguments.length<2){var r=this[0];if("string"==typeof e){if(!r)return;return r.style[C(e)]||getComputedStyle(r,"").getPropertyValue(e)}if(Q(e)){if(!r)return;var i={},o=getComputedStyle(r,"");return T.each(e,function(t,e){i[e]=r.style[C(e)]||o.getPropertyValue(e)}),i}}var a="";if("string"==t(e))n||0===n?a=c(e)+":"+f(e,n):this.each(function(){this.style.removeProperty(c(e))});else for(j in e)e[j]||0===e[j]?a+=c(j)+":"+f(j,e[j])+";":this.each(function(){this.style.removeProperty(c(j))});return this.each(function(){this.style.cssText+=";"+a})},index:function(t){return t?this.indexOf(T(t)[0]):this.parent().children().indexOf(this[0])},hasClass:function(t){return!!t&&O.some.call(this,function(t){return this.test(x(t))},l(t))},addClass:function(t){return t?this.each(function(e){if("className"in this){S=[];var n=x(this),r=g(this,t,e,n);r.split(/\s+/g).forEach(function(t){T(this).hasClass(t)||S.push(t)},this),S.length&&x(this,n+(n?" ":"")+S.join(" "))}}):this},removeClass:function(t){return this.each(function(e){if("className"in this){if(t===E)return x(this,"");S=x(this),g(this,t,e,S).split(/\s+/g).forEach(function(t){S=S.replace(l(t)," ")}),x(this,S.trim())}})},toggleClass:function(t,e){return t?this.each(function(n){var r=T(this),i=g(this,t,n,x(this));i.split(/\s+/g).forEach(function(t){(e===E?!r.hasClass(t):e)?r.addClass(t):r.removeClass(t)})}):this},scrollTop:function(t){if(this.length){var e="scrollTop"in this[0];return t===E?e?this[0].scrollTop:this[0].pageYOffset:this.each(e?function(){this.scrollTop=t}:function(){this.scrollTo(this.scrollX,t)})}},scrollLeft:function(t){if(this.length){var e="scrollLeft"in this[0];return t===E?e?this[0].scrollLeft:this[0].pageXOffset:this.each(e?function(){this.scrollLeft=t}:function(){this.scrollTo(t,this.scrollY)})}},position:function(){if(this.length){var t=this[0],e=this.offsetParent(),n=this.offset(),r=Z.test(e[0].nodeName)?{top:0,left:0}:e.offset();return n.top-=parseFloat(T(t).css("margin-top"))||0,n.left-=parseFloat(T(t).css("margin-left"))||0,r.top+=parseFloat(T(e[0]).css("border-top-width"))||0,r.left+=parseFloat(T(e[0]).css("border-left-width"))||0,{top:n.top-r.top,left:n.left-r.left}}},offsetParent:function(){return this.map(function(){for(var t=this.offsetParent||L.body;t&&!Z.test(t.nodeName)&&"static"==T(t).css("position");)t=t.offsetParent;return t})}},T.fn.detach=T.fn.remove,["width","height"].forEach(function(t){var e=t.replace(/./,function(t){return t[0].toUpperCase()});T.fn[t]=function(i){var o,a=this[0];return i===E?n(a)?a["inner"+e]:r(a)?a.documentElement["scroll"+e]:(o=this.offset())&&o[t]:this.each(function(e){a=T(this),a.css(t,g(this,i,e,a[t]()))})}}),I.forEach(function(e,n){var r=n%2;T.fn[e]=function(){var e,i,o=T.map(arguments,function(n){var r=[];return e=t(n),"array"==e?(n.forEach(function(t){return t.nodeType!==E?r.push(t):T.zepto.isZ(t)?r=r.concat(t.get()):void(r=r.concat(Y.fragment(t)))}),r):"object"==e||null==n?n:Y.fragment(n)}),a=this.length>1;return o.length<1?this:this.each(function(t,e){i=r?e:e.parentNode,e=0==n?e.nextSibling:1==n?e.firstChild:2==n?e:null;var s=T.contains(L.documentElement,i);o.forEach(function(t){if(a)t=t.cloneNode(!0);else if(!i)return T(t).remove();i.insertBefore(t,e),s&&w(t,function(t){if(!(null==t.nodeName||"SCRIPT"!==t.nodeName.toUpperCase()||t.type&&"text/javascript"!==t.type||t.src)){var e=t.ownerDocument?t.ownerDocument.defaultView:window;e.eval.call(e,t.innerHTML)}})})})},T.fn[r?e+"To":"insert"+(n?"Before":"After")]=function(t){return T(t)[e](this),this}}),Y.Z.prototype=d.prototype=T.fn,Y.uniq=N,Y.deserializeValue=b,T.zepto=Y,T}();!function(t){function e(t){return t._zid||(t._zid=h++)}function n(t,n,o,a){if(n=r(n),n.ns)var s=i(n.ns);return(v[e(t)]||[]).filter(function(t){return t&&(!n.e||t.e==n.e)&&(!n.ns||s.test(t.ns))&&(!o||e(t.fn)===e(o))&&(!a||t.sel==a)})}function r(t){var e=(""+t).split(".");return{e:e[0],ns:e.slice(1).sort().join(" ")}}function i(t){return new RegExp("(?:^| )"+t.replace(" "," .* ?")+"(?: |$)")}function o(t,e){return t.del&&!y&&t.e in x||!!e}function a(t){return b[t]||y&&x[t]||t}function s(n,i,s,u,l,h,p){var d=e(n),m=v[d]||(v[d]=[]);i.split(/\s/).forEach(function(e){if("ready"==e)return t(document).ready(s);var i=r(e);i.fn=s,i.sel=l,i.e in b&&(s=function(e){var n=e.relatedTarget;if(!n||n!==this&&!t.contains(this,n))return i.fn.apply(this,arguments)}),i.del=h;var d=h||s;i.proxy=function(t){if(t=c(t),!t.isImmediatePropagationStopped()){t.data=u;var e=d.apply(n,t._args==f?[t]:[t].concat(t._args));return e===!1&&(t.preventDefault(),t.stopPropagation()),e}},i.i=m.length,m.push(i),"addEventListener"in n&&n.addEventListener(a(i.e),i.proxy,o(i,p))})}function u(t,r,i,s,u){var c=e(t);(r||"").split(/\s/).forEach(function(e){n(t,e,i,s).forEach(function(e){delete v[c][e.i],"removeEventListener"in t&&t.removeEventListener(a(e.e),e.proxy,o(e,u))})})}function c(e,n){return!n&&e.isDefaultPrevented||(n||(n=e),t.each(T,function(t,r){var i=n[t];e[t]=function(){return this[r]=w,i&&i.apply(n,arguments)},e[r]=E}),e.timeStamp||(e.timeStamp=Date.now()),(n.defaultPrevented!==f?n.defaultPrevented:"returnValue"in n?n.returnValue===!1:n.getPreventDefault&&n.getPreventDefault())&&(e.isDefaultPrevented=w)),e}function l(t){var e,n={originalEvent:t};for(e in t)j.test(e)||t[e]===f||(n[e]=t[e]);return c(n,t)}var f,h=1,p=Array.prototype.slice,d=t.isFunction,m=function(t){return"string"==typeof t},v={},g={},y="onfocusin"in window,x={focus:"focusin",blur:"focusout"},b={mouseenter:"mouseover",mouseleave:"mouseout"};g.click=g.mousedown=g.mouseup=g.mousemove="MouseEvents",t.event={add:s,remove:u},t.proxy=function(n,r){var i=2 in arguments&&p.call(arguments,2);if(d(n)){var o=function(){return n.apply(r,i?i.concat(p.call(arguments)):arguments)};return o._zid=e(n),o}if(m(r))return i?(i.unshift(n[r],n),t.proxy.apply(null,i)):t.proxy(n[r],n);throw new TypeError("expected function")},t.fn.bind=function(t,e,n){return this.on(t,e,n)},t.fn.unbind=function(t,e){return this.off(t,e)},t.fn.one=function(t,e,n,r){return this.on(t,e,n,r,1)};var w=function(){return!0},E=function(){return!1},j=/^([A-Z]|returnValue$|layer[XY]$|webkitMovement[XY]$)/,T={preventDefault:"isDefaultPrevented",stopImmediatePropagation:"isImmediatePropagationStopped",stopPropagation:"isPropagationStopped"};t.fn.delegate=function(t,e,n){return this.on(e,t,n)},t.fn.undelegate=function(t,e,n){return this.off(e,t,n)},t.fn.live=function(e,n){return t(document.body).delegate(this.selector,e,n),this},t.fn.die=function(e,n){return t(document.body).undelegate(this.selector,e,n),this},t.fn.on=function(e,n,r,i,o){var a,c,h=this;return e&&!m(e)?(t.each(e,function(t,e){h.on(t,n,r,e,o)}),h):(m(n)||d(i)||i===!1||(i=r,r=n,n=f),i!==f&&r!==!1||(i=r,r=f),i===!1&&(i=E),h.each(function(f,h){o&&(a=function(t){return u(h,t.type,i),i.apply(this,arguments)}),n&&(c=function(e){var r,o=t(e.target).closest(n,h).get(0);if(o&&o!==h)return r=t.extend(l(e),{currentTarget:o,liveFired:h}),(a||i).apply(o,[r].concat(p.call(arguments,1)))}),s(h,e,i,r,n,c||a)}))},t.fn.off=function(e,n,r){var i=this;return e&&!m(e)?(t.each(e,function(t,e){i.off(t,n,e)}),i):(m(n)||d(r)||r===!1||(r=n,n=f),r===!1&&(r=E),i.each(function(){u(this,e,r,n)}))},t.fn.trigger=function(e,n){return e=m(e)||t.isPlainObject(e)?t.Event(e):c(e),e._args=n,this.each(function(){e.type in x&&"function"==typeof this[e.type]?this[e.type]():"dispatchEvent"in this?this.dispatchEvent(e):t(this).triggerHandler(e,n)})},t.fn.triggerHandler=function(e,r){var i,o;return this.each(function(a,s){i=l(m(e)?t.Event(e):e),i._args=r,i.target=s,t.each(n(s,e.type||e),function(t,e){if(o=e.proxy(i),i.isImmediatePropagationStopped())return!1})}),o},"focusin focusout focus blur load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select keydown keypress keyup error".split(" ").forEach(function(e){t.fn[e]=function(t){return 0 in arguments?this.bind(e,t):this.trigger(e)}}),t.Event=function(t,e){m(t)||(e=t,t=e.type);var n=document.createEvent(g[t]||"Events"),r=!0;if(e)for(var i in e)"bubbles"==i?r=!!e[i]:n[i]=e[i];return n.initEvent(t,r,!0),c(n)}}(e),function(t){function e(e,n,r){var i=t.Event(n);return t(e).trigger(i,r),!i.isDefaultPrevented()}function n(t,n,r,i){if(t.global)return e(n||x,r,i)}function r(e){e.global&&0===t.active++&&n(e,null,"ajaxStart")}function i(e){e.global&&!--t.active&&n(e,null,"ajaxStop")}function o(t,e){var r=e.context;return e.beforeSend.call(r,t,e)!==!1&&n(e,r,"ajaxBeforeSend",[t,e])!==!1&&void n(e,r,"ajaxSend",[t,e])}function a(t,e,r,i){var o=r.context,a="success";r.success.call(o,t,a,e),i&&i.resolveWith(o,[t,a,e]),n(r,o,"ajaxSuccess",[e,r,t]),u(a,e,r)}function s(t,e,r,i,o){var a=i.context;i.error.call(a,r,e,t),o&&o.rejectWith(a,[r,e,t]),n(i,a,"ajaxError",[r,i,t||e]),u(e,r,i)}function u(t,e,r){var o=r.context;r.complete.call(o,e,t),n(r,o,"ajaxComplete",[e,r]),i(r)}function c(t,e,n){if(n.dataFilter==l)return t;var r=n.context;return n.dataFilter.call(r,t,e)}function l(){}function f(t){return t&&(t=t.split(";",2)[0]),t&&(t==T?"html":t==j?"json":w.test(t)?"script":E.test(t)&&"xml")||"text"}function h(t,e){return""==e?t:(t+"&"+e).replace(/[&?]{1,2}/,"?")}function p(e){e.processData&&e.data&&"string"!=t.type(e.data)&&(e.data=t.param(e.data,e.traditional)),!e.data||e.type&&"GET"!=e.type.toUpperCase()&&"jsonp"!=e.dataType||(e.url=h(e.url,e.data),e.data=void 0)}function d(e,n,r,i){return t.isFunction(n)&&(i=r,r=n,n=void 0),t.isFunction(r)||(i=r,r=void 0),{url:e,data:n,success:r,dataType:i}}function m(e,n,r,i){var o,a=t.isArray(n),s=t.isPlainObject(n);t.each(n,function(n,u){o=t.type(u),i&&(n=r?i:i+"["+(s||"object"==o||"array"==o?n:"")+"]"),!i&&a?e.add(u.name,u.value):"array"==o||!r&&"object"==o?m(e,u,r,n):e.add(n,u)})}var v,g,y=+new Date,x=window.document,b=/)<[^<]*)*<\/script>/gi,w=/^(?:text|application)\/javascript/i,E=/^(?:text|application)\/xml/i,j="application/json",T="text/html",S=/^\s*$/,C=x.createElement("a");C.href=window.location.href,t.active=0,t.ajaxJSONP=function(e,n){if(!("type"in e))return t.ajax(e);var r,i,u=e.jsonpCallback,c=(t.isFunction(u)?u():u)||"Zepto"+y++,l=x.createElement("script"),f=window[c],h=function(e){t(l).triggerHandler("error",e||"abort")},p={abort:h};return n&&n.promise(p),t(l).on("load error",function(o,u){clearTimeout(i),t(l).off().remove(),"error"!=o.type&&r?a(r[0],p,e,n):s(null,u||"error",p,e,n),window[c]=f,r&&t.isFunction(f)&&f(r[0]),f=r=void 0}),o(p,e)===!1?(h("abort"),p):(window[c]=function(){r=arguments},l.src=e.url.replace(/\?(.+)=\?/,"?$1="+c),x.head.appendChild(l),e.timeout>0&&(i=setTimeout(function(){h("timeout")},e.timeout)),p)},t.ajaxSettings={type:"GET",beforeSend:l,success:l,error:l,complete:l,context:null,global:!0,xhr:function(){return new window.XMLHttpRequest},accepts:{script:"text/javascript, application/javascript, application/x-javascript",json:j,xml:"application/xml, text/xml",html:T,text:"text/plain"},crossDomain:!1,timeout:0,processData:!0,cache:!0,dataFilter:l},t.ajax=function(e){var n,i,u=t.extend({},e||{}),d=t.Deferred&&t.Deferred();for(v in t.ajaxSettings)void 0===u[v]&&(u[v]=t.ajaxSettings[v]);r(u),u.crossDomain||(n=x.createElement("a"),n.href=u.url,n.href=n.href,u.crossDomain=C.protocol+"//"+C.host!=n.protocol+"//"+n.host),u.url||(u.url=window.location.toString()),(i=u.url.indexOf("#"))>-1&&(u.url=u.url.slice(0,i)),p(u);var m=u.dataType,y=/\?.+=\?/.test(u.url);if(y&&(m="jsonp"),u.cache!==!1&&(e&&e.cache===!0||"script"!=m&&"jsonp"!=m)||(u.url=h(u.url,"_="+Date.now())),"jsonp"==m)return y||(u.url=h(u.url,u.jsonp?u.jsonp+"=?":u.jsonp===!1?"":"callback=?")),t.ajaxJSONP(u,d);var b,w=u.accepts[m],E={},j=function(t,e){E[t.toLowerCase()]=[t,e]},T=/^([\w-]+:)\/\//.test(u.url)?RegExp.$1:window.location.protocol,N=u.xhr(),O=N.setRequestHeader;if(d&&d.promise(N),u.crossDomain||j("X-Requested-With","XMLHttpRequest"),j("Accept",w||"*/*"),(w=u.mimeType||w)&&(w.indexOf(",")>-1&&(w=w.split(",",2)[0]),N.overrideMimeType&&N.overrideMimeType(w)),(u.contentType||u.contentType!==!1&&u.data&&"GET"!=u.type.toUpperCase())&&j("Content-Type",u.contentType||"application/x-www-form-urlencoded"),u.headers)for(g in u.headers)j(g,u.headers[g]);if(N.setRequestHeader=j,N.onreadystatechange=function(){if(4==N.readyState){N.onreadystatechange=l,clearTimeout(b);var e,n=!1;if(N.status>=200&&N.status<300||304==N.status||0==N.status&&"file:"==T){if(m=m||f(u.mimeType||N.getResponseHeader("content-type")),"arraybuffer"==N.responseType||"blob"==N.responseType)e=N.response;else{e=N.responseText;try{e=c(e,m,u),"script"==m?(0,eval)(e):"xml"==m?e=N.responseXML:"json"==m&&(e=S.test(e)?null:t.parseJSON(e))}catch(r){n=r}if(n)return s(n,"parsererror",N,u,d)}a(e,N,u,d)}else s(N.statusText||null,N.status?"error":"abort",N,u,d)}},o(N,u)===!1)return N.abort(),s(null,"abort",N,u,d),N;var P=!("async"in u)||u.async;if(N.open(u.type,u.url,P,u.username,u.password),u.xhrFields)for(g in u.xhrFields)N[g]=u.xhrFields[g];for(g in E)O.apply(N,E[g]);return u.timeout>0&&(b=setTimeout(function(){N.onreadystatechange=l,N.abort(),s(null,"timeout",N,u,d)},u.timeout)),N.send(u.data?u.data:null),N},t.get=function(){return t.ajax(d.apply(null,arguments))},t.post=function(){var e=d.apply(null,arguments);return e.type="POST",t.ajax(e)},t.getJSON=function(){var e=d.apply(null,arguments);return e.dataType="json",t.ajax(e)},t.fn.load=function(e,n,r){if(!this.length)return this;var i,o=this,a=e.split(/\s/),s=d(e,n,r),u=s.success;return a.length>1&&(s.url=a[0],i=a[1]),s.success=function(e){o.html(i?t("
    ").html(e.replace(b,"")).find(i):e),u&&u.apply(o,arguments)},t.ajax(s),this};var N=encodeURIComponent;t.param=function(e,n){var r=[];return r.add=function(e,n){t.isFunction(n)&&(n=n()),null==n&&(n=""),this.push(N(e)+"="+N(n))},m(r,e,n),r.join("&").replace(/%20/g,"+")}}(e),function(t){t.fn.serializeArray=function(){var e,n,r=[],i=function(t){return t.forEach?t.forEach(i):void r.push({name:e,value:t})};return this[0]&&t.each(this[0].elements,function(r,o){n=o.type,e=o.name,e&&"fieldset"!=o.nodeName.toLowerCase()&&!o.disabled&&"submit"!=n&&"reset"!=n&&"button"!=n&&"file"!=n&&("radio"!=n&&"checkbox"!=n||o.checked)&&i(t(o).val())}),r},t.fn.serialize=function(){var t=[];return this.serializeArray().forEach(function(e){t.push(encodeURIComponent(e.name)+"="+encodeURIComponent(e.value))}),t.join("&")},t.fn.submit=function(e){if(0 in arguments)this.bind("submit",e);else if(this.length){var n=t.Event("submit");this.eq(0).trigger(n),n.isDefaultPrevented()||this.get(0).submit()}return this}}(e),function(){try{getComputedStyle(void 0)}catch(t){var e=getComputedStyle;window.getComputedStyle=function(t,n){try{return e(t,n)}catch(r){return null}}}}(),t("zepto",e)});layui.define(["layer-mobile","zepto"],function(e){"use strict";var t=layui.zepto,a=layui["layer-mobile"],i=(layui.device(),"layui-upload-enter"),n="layui-upload-iframe",r={icon:2,shift:6},o={file:"文件",video:"视频",audio:"音频"};a.msg=function(e){return a.open({content:e||"",skin:"msg",time:2})};var s=function(e){this.options=e};s.prototype.init=function(){var e=this,a=e.options,r=t("body"),s=t(a.elem||".layui-upload-file"),u=t('');return t("#"+n)[0]||r.append(u),s.each(function(r,s){s=t(s);var u='',l=s.attr("lay-type")||a.type;a.unwrap||(u='
    '+u+''+(s.attr("lay-title")||a.title||"上传"+(o[l]||"图片"))+"
    "),u=t(u),a.unwrap||u.on("dragover",function(e){e.preventDefault(),t(this).addClass(i)}).on("dragleave",function(){t(this).removeClass(i)}).on("drop",function(){t(this).removeClass(i)}),s.parent("form").attr("target")===n&&(a.unwrap?s.unwrap():(s.parent().next().remove(),s.unwrap().unwrap())),s.wrap(u),s.off("change").on("change",function(){e.action(this,l)})})},s.prototype.action=function(e,i){var o=this,s=o.options,u=e.value,l=t(e),p=l.attr("lay-ext")||s.ext||"";if(u){switch(i){case"file":if(p&&!RegExp("\\w\\.("+p+")$","i").test(escape(u)))return a.msg("不支持该文件格式",r),e.value="";break;case"video":if(!RegExp("\\w\\.("+(p||"avi|mp4|wma|rmvb|rm|flash|3gp|flv")+")$","i").test(escape(u)))return a.msg("不支持该视频格式",r),e.value="";break;case"audio":if(!RegExp("\\w\\.("+(p||"mp3|wav|mid")+")$","i").test(escape(u)))return a.msg("不支持该音频格式",r),e.value="";break;default:if(!RegExp("\\w\\.("+(p||"jpg|png|gif|bmp|jpeg")+")$","i").test(escape(u)))return a.msg("不支持该图片格式",r),e.value=""}s.before&&s.before(e),l.parent().submit();var c=t("#"+n),f=setInterval(function(){var t;try{t=c.contents().find("body").text()}catch(i){a.msg("上传接口存在跨域",r),clearInterval(f)}if(t){clearInterval(f),c.contents().find("body").html("");try{t=JSON.parse(t)}catch(i){return t={},a.msg("请对上传接口返回JSON字符",r)}"function"==typeof s.success&&s.success(t,e)}},30);e.value=""}},e("upload-mobile",function(e){var t=new s(e=e||{});t.init()})});layui.define(function(i){i("layim-mobile",layui.v)});layui["layui.mobile"]||layui.config({base:layui.cache.dir+"lay/modules/mobile/"}).extend({"layer-mobile":"layer-mobile",zepto:"zepto","upload-mobile":"upload-mobile","layim-mobile":"layim-mobile"}),layui.define(["layer-mobile","zepto","layim-mobile"],function(l){l("mobile",{layer:layui["layer-mobile"],layim:layui["layim-mobile"]})}); \ No newline at end of file diff --git a/static/plugs/layui/lay/modules/table.js b/static/plugs/layui/lay/modules/table.js index 2237a172e..9e76e109d 100644 --- a/static/plugs/layui/lay/modules/table.js +++ b/static/plugs/layui/lay/modules/table.js @@ -1,2 +1,2 @@ -/** layui-v2.2.5 MIT License By https://www.layui.com */ - ;layui.define(["laytpl","laypage","layer","form"],function(e){"use strict";var t=layui.$,i=layui.laytpl,a=layui.laypage,l=layui.layer,n=layui.form,o=layui.hint(),r=layui.device(),d={config:{checkName:"LAY_CHECKED",indexName:"LAY_TABLE_INDEX"},cache:{},index:layui.table?layui.table.index+1e4:0,set:function(e){var i=this;return i.config=t.extend({},i.config,e),i},on:function(e,t){return layui.onevent.call(this,s,e,t)}},c=function(){var e=this,t=e.config,i=t.id;return i&&(c.config[i]=t),{reload:function(t){e.reload.call(e,t)},config:t}},s="table",u=".layui-table",h="layui-hide",f="layui-none",y="layui-table-view",p=".layui-table-header",m=".layui-table-body",v=".layui-table-main",g=".layui-table-fixed",x=".layui-table-fixed-l",b=".layui-table-fixed-r",k=".layui-table-tool",C=".layui-table-page",w=".layui-table-sort",N="layui-table-edit",F="layui-table-hover",W=function(e){var t='{{#if(item2.colspan){}} colspan="{{item2.colspan}}"{{#} if(item2.rowspan){}} rowspan="{{item2.rowspan}}"{{#}}}';return e=e||{},['',"","{{# layui.each(d.data.cols, function(i1, item1){ }}","","{{# layui.each(item1, function(i2, item2){ }}",'{{# if(item2.fixed && item2.fixed !== "right"){ left = true; } }}','{{# if(item2.fixed === "right"){ right = true; } }}',function(){return e.fixed&&"right"!==e.fixed?'{{# if(item2.fixed && item2.fixed !== "right"){ }}':"right"===e.fixed?'{{# if(item2.fixed === "right"){ }}':""}(),'",e.fixed?"{{# }; }}":"","{{# }); }}","","{{# }); }}","","
    ','
    1){ }}","group","{{# } else { }}","{{d.index}}-{{item2.field || i2}}",'{{# if(item2.type !== "normal"){ }}'," laytable-cell-{{ item2.type }}","{{# } }}","{{# } }}",'" {{#if(item2.align){}}align="{{item2.align}}"{{#}}}>','{{# if(item2.type === "checkbox"){ }}','',"{{# } else { }}",'{{item2.title||""}}',"{{# if(!(item2.colspan > 1) && item2.sort){ }}",'',"{{# } }}","{{# } }}","
    ","
    "].join("")},z=['',"","
    "].join(""),A=['
    ',"{{# if(d.data.toolbar){ }}",'
    ',"{{# } }}",'
    ',"{{# var left, right; }}",'
    ',W(),"
    ",'
    ',z,"
    ","{{# if(left){ }}",'
    ','
    ',W({fixed:!0}),"
    ",'
    ',z,"
    ","
    ","{{# }; }}","{{# if(right){ }}",'
    ','
    ',W({fixed:"right"}),'
    ',"
    ",'
    ',z,"
    ","
    ","{{# }; }}","
    ","{{# if(d.data.page){ }}",'
    ','
    ',"
    ","{{# } }}","","
    "].join(""),T=t(window),M=t(document),S=function(e){var i=this;i.index=++d.index,i.config=t.extend({},i.config,d.config,e),i.render()};S.prototype.config={limit:10,loading:!0,cellMinWidth:60,text:{none:"无数据"}},S.prototype.render=function(){var e=this,a=e.config;if(a.elem=t(a.elem),a.where=a.where||{},a.id=a.id||a.elem.attr("id"),a.request=t.extend({pageName:"page",limitName:"limit"},a.request),a.response=t.extend({statusName:"code",statusCode:0,msgName:"msg",dataName:"data",countName:"count"},a.response),"object"==typeof a.page&&(a.limit=a.page.limit||a.limit,a.limits=a.page.limits||a.limits,e.page=a.page.curr=a.page.curr||1,delete a.page.elem,delete a.page.jump),!a.elem[0])return e;e.setArea();var l=a.elem,n=l.next("."+y),o=e.elem=t(i(A).render({VIEW_CLASS:y,data:a,index:e.index}));if(a.index=e.index,n[0]&&n.remove(),l.after(o),e.layHeader=o.find(p),e.layMain=o.find(v),e.layBody=o.find(m),e.layFixed=o.find(g),e.layFixLeft=o.find(x),e.layFixRight=o.find(b),e.layTool=o.find(k),e.layPage=o.find(C),e.layTool.html(i(t(a.toolbar).html()||"").render(a)),a.height&&e.fullSize(),a.cols.length>1){var r=e.layFixed.find(p).find("th");r.height(e.layHeader.height()-1-parseFloat(r.css("padding-top"))-parseFloat(r.css("padding-bottom")))}e.pullData(e.page),e.events()},S.prototype.initOpts=function(e){var t=this,i=(t.config,{checkbox:48,space:15,numbers:40});e.checkbox&&(e.type="checkbox"),e.space&&(e.type="space"),e.type||(e.type="normal"),"normal"!==e.type&&(e.unresize=!0,e.width=e.width||i[e.type])},S.prototype.setArea=function(){var e=this,t=e.config,i=0,a=0,l=0,n=0,o=t.width||function(){var e=function(i){var a,l;i=i||t.elem.parent(),a=i.width();try{l="none"===i.css("display")}catch(n){}return!i[0]||a&&!l?a:e(i.parent())};return e()}();e.eachCols(function(){i++}),o-=function(){return"line"===t.skin||"nob"===t.skin?2:i+1}(),layui.each(t.cols,function(t,i){layui.each(i,function(t,l){var r;return l?(e.initOpts(l),r=l.width||0,void(l.colspan>1||(/\d+%$/.test(r)?l.width=r=Math.floor(parseFloat(r)/100*o):r||(l.width=r=0,a++),n+=r))):void i.splice(t,1)})}),e.autoColNums=a,o>n&&a&&(l=(o-n)/a),layui.each(t.cols,function(e,i){layui.each(i,function(e,i){var a=i.minWidth||t.cellMinWidth;i.colspan>1||0===i.width&&(i.width=Math.floor(l>=a?l:a))})}),t.height&&/^full-\d+$/.test(t.height)&&(e.fullHeightGap=t.height.split("-")[1],t.height=T.height()-e.fullHeightGap)},S.prototype.reload=function(e){var i=this;i.config.data&&i.config.data.constructor===Array&&delete i.config.data,i.config=t.extend({},i.config,e),i.render()},S.prototype.page=1,S.prototype.pullData=function(e,i){var a=this,n=a.config,o=n.request,r=n.response,d=function(){"object"==typeof n.initSort&&a.sort(n.initSort.field,n.initSort.type)};if(a.startTime=(new Date).getTime(),n.url){var c={};c[o.pageName]=e,c[o.limitName]=n.limit,t.ajax({type:n.method||"get",url:n.url,data:t.extend(c,n.where),dataType:"json",success:function(t){t[r.statusName]!=r.statusCode?(a.renderForm(),a.layMain.html('
    '+(t[r.msgName]||"返回的数据状态异常")+"
    ")):(a.renderData(t,e,t[r.countName]),d(),n.time=(new Date).getTime()-a.startTime+" ms"),i&&l.close(i),"function"==typeof n.done&&n.done(t,e,t[r.countName])},error:function(e,t){a.layMain.html('
    数据接口请求异常
    '),a.renderForm(),i&&l.close(i)}})}else if(n.data&&n.data.constructor===Array){var s={},u=e*n.limit-n.limit;s[r.dataName]=n.data.concat().splice(u,n.limit),s[r.countName]=n.data.length,a.renderData(s,e,n.data.length),d(),"function"==typeof n.done&&n.done(s,e,s[r.countName])}},S.prototype.eachCols=function(e){var i=t.extend(!0,[],this.config.cols),a=[],l=0;layui.each(i,function(e,t){layui.each(t,function(t,n){if(n.colspan>1){var o=0;l++,n.CHILD_COLS=[],layui.each(i[e+1],function(e,t){t.PARENT_COL||o==n.colspan||(t.PARENT_COL=l,n.CHILD_COLS.push(t),o+=t.colspan>1?t.colspan:1)})}n.PARENT_COL||a.push(n)})});var n=function(t){layui.each(t||a,function(t,i){return i.CHILD_COLS?n(i.CHILD_COLS):void e(t,i)})};n()},S.prototype.renderData=function(e,n,o,r){var c=this,s=c.config,u=e[s.response.dataName]||[],y=[],p=[],m=[],v=function(){return!r&&c.sortKey?c.sort(c.sortKey.field,c.sortKey.sort,!0):(layui.each(u,function(e,a){var l=[],o=[],u=[],h=e+s.limit*(n-1)+1;0!==a.length&&(r||(a[d.config.indexName]=e),c.eachCols(function(e,n){var r=n.field||e,f=a[r];c.getColElem(c.layHeader,r);if(void 0!==f&&null!==f||(f=""),!(n.colspan>1)){var y=['",'
    '+function(){var e=t.extend(!0,{LAY_INDEX:h},a);return"checkbox"===n.type?'":"numbers"===n.type?h:n.toolbar?i(t(n.toolbar).html()||"").render(e):n.templet?function(){return"function"==typeof n.templet?n.templet(e):i(t(n.templet).html()||String(f)).render(e)}():f}(),"
    "].join("");l.push(y),n.fixed&&"right"!==n.fixed&&o.push(y),"right"===n.fixed&&u.push(y)}}),y.push(''+l.join("")+""),p.push(''+o.join("")+""),m.push(''+u.join("")+""))}),c.layBody.scrollTop(0),c.layMain.find("."+f).remove(),c.layMain.find("tbody").html(y.join("")),c.layFixLeft.find("tbody").html(p.join("")),c.layFixRight.find("tbody").html(m.join("")),c.renderForm(),c.syncCheckAll(),c.haveInit?c.scrollPatch():setTimeout(function(){c.scrollPatch()},50),c.haveInit=!0,void l.close(c.tipsIndex))};return c.key=s.id||s.index,d.cache[c.key]=u,c.layPage[0===u.length&&1==n?"addClass":"removeClass"](h),r?v():0===u.length?(c.renderForm(),c.layFixed.remove(),c.layMain.find("tbody").html(""),c.layMain.find("."+f).remove(),c.layMain.append('
    '+s.text.none+"
    ")):(v(),void(s.page&&(s.page=t.extend({elem:"layui-table-page"+s.index,count:o,limit:s.limit,limits:s.limits||[10,20,30,40,50,60,70,80,90],groups:3,layout:["prev","page","next","skip","count","limit"],prev:'',next:'',jump:function(e,t){t||(c.page=e.curr,s.limit=e.limit,c.pullData(e.curr,c.loading()))}},s.page),s.page.count=o,a.render(s.page))))},S.prototype.getColElem=function(e,t){var i=this,a=i.config;return e.eq(0).find(".laytable-cell-"+(a.index+"-"+t)+":eq(0)")},S.prototype.renderForm=function(e){n.render(e,"LAY-table-"+this.index)},S.prototype.sort=function(e,i,a,l){var n,r,c=this,u={},h=c.config,f=h.elem.attr("lay-filter"),y=d.cache[c.key];"string"==typeof e&&c.layHeader.find("th").each(function(i,a){var l=t(this),o=l.data("field");if(o===e)return e=l,n=o,!1});try{var n=n||e.data("field");if(c.sortKey&&!a&&n===c.sortKey.field&&i===c.sortKey.sort)return;var p=c.layHeader.find("th .laytable-cell-"+h.index+"-"+n).find(w);c.layHeader.find("th").find(w).removeAttr("lay-sort"),p.attr("lay-sort",i||null),c.layFixed.find("th")}catch(m){return o.error("Table modules: Did not match to field")}c.sortKey={field:n,sort:i},"asc"===i?r=layui.sort(y,n):"desc"===i?r=layui.sort(y,n,!0):(r=layui.sort(y,d.config.indexName),delete c.sortKey),u[h.response.dataName]=r,c.renderData(u,c.page,c.count,!0),l&&layui.event.call(e,s,"sort("+f+")",{field:n,type:i})},S.prototype.loading=function(){var e=this,t=e.config;if(t.loading&&t.url)return l.msg("数据请求中",{icon:16,offset:[e.elem.offset().top+e.elem.height()/2-35-T.scrollTop()+"px",e.elem.offset().left+e.elem.width()/2-90-T.scrollLeft()+"px"],time:-1,anim:-1,fixed:!1})},S.prototype.setCheckData=function(e,t){var i=this,a=i.config,l=d.cache[i.key];l[e]&&l[e].constructor!==Array&&(l[e][a.checkName]=t)},S.prototype.syncCheckAll=function(){var e=this,t=e.config,i=e.layHeader.find('input[name="layTableCheckbox"]'),a=function(i){return e.eachCols(function(e,a){"checkbox"===a.type&&(a[t.checkName]=i)}),i};i[0]&&(d.checkStatus(e.key).isAll?(i[0].checked||(i.prop("checked",!0),e.renderForm("checkbox")),a(!0)):(i[0].checked&&(i.prop("checked",!1),e.renderForm("checkbox")),a(!1)))},S.prototype.getCssRule=function(e,t){var i=this,a=i.elem.find("style")[0],l=a.sheet||a.styleSheet||{},n=l.cssRules||l.rules;layui.each(n,function(a,l){if(l.selectorText===".laytable-cell-"+i.index+"-"+e)return t(l),!0})},S.prototype.fullSize=function(){var e,t=this,i=t.config,a=i.height;t.fullHeightGap&&(a=T.height()-t.fullHeightGap,a<135&&(a=135),t.elem.css("height",a)),e=parseFloat(a)-parseFloat(t.layHeader.height())-1,i.toolbar&&(e-=t.layTool.outerHeight()),i.page&&(e=e-t.layPage.outerHeight()-1),t.layMain.css("height",e)},S.prototype.getScrollWidth=function(e){var t=0;return e?t=e.offsetWidth-e.clientWidth:(e=document.createElement("div"),e.style.width="100px",e.style.height="100px",e.style.overflowY="scroll",document.body.appendChild(e),t=e.offsetWidth-e.clientWidth,document.body.removeChild(e)),t},S.prototype.scrollPatch=function(){var e=this,i=e.layMain.children("table"),a=e.layMain.width()-e.layMain.prop("clientWidth"),l=e.layMain.height()-e.layMain.prop("clientHeight"),n=e.getScrollWidth(e.layMain[0]),o=i.outerWidth()-e.layMain.width();if(e.autoColNums&&o<5&&!e.scrollPatchWStatus){var r=e.layHeader.eq(0).find("thead th:last-child"),d=r.data("field");e.getCssRule(d,function(t){var i=t.style.width||r.outerWidth();t.style.width=parseFloat(i)-n-o+"px",e.layMain.height()-e.layMain.prop("clientHeight")>0&&(t.style.width=parseFloat(t.style.width)-1+"px"),e.scrollPatchWStatus=!0})}if(a&&l){if(!e.elem.find(".layui-table-patch")[0]){var c=t('
    ');c.find("div").css({width:a}),e.layHeader.eq(0).find("thead tr").append(c)}}else e.layHeader.eq(0).find(".layui-table-patch").remove();var s=e.layMain.height(),u=s-l;e.layFixed.find(m).css("height",i.height()>u?u:"auto"),e.layFixRight[o>0?"removeClass":"addClass"](h),e.layFixRight.css("right",a-1)},S.prototype.events=function(){var e,a=this,n=a.config,o=t("body"),c={},u=a.layHeader.find("th"),h=".layui-table-cell",f=n.elem.attr("lay-filter");u.on("mousemove",function(e){var i=t(this),a=i.offset().left,l=e.clientX-a;i.attr("colspan")>1||i.data("unresize")||c.resizeStart||(c.allowResize=i.width()-l<=10,o.css("cursor",c.allowResize?"col-resize":""))}).on("mouseleave",function(){t(this);c.resizeStart||o.css("cursor","")}).on("mousedown",function(e){var i=t(this);if(c.allowResize){var l=i.data("field");e.preventDefault(),c.resizeStart=!0,c.offset=[e.clientX,e.clientY],a.getCssRule(l,function(e){var t=e.style.width||i.outerWidth();c.rule=e,c.ruleWidth=parseFloat(t),c.minWidth=i.data("minwidth")||n.cellMinWidth})}}),M.on("mousemove",function(t){if(c.resizeStart){if(t.preventDefault(),c.rule){var i=c.ruleWidth+t.clientX-c.offset[0];i');d[0].value=e.data("content")||o.text(),e.find("."+N)[0]||e.append(d),d.focus()}else o.find(".layui-form-switch,.layui-form-checkbox")[0]||Math.round(o.prop("scrollWidth"))>Math.round(o.outerWidth())&&(a.tipsIndex=l.tips(['
    ',o.html(),"
    ",''].join(""),o[0],{tips:[3,""],time:-1,anim:-1,maxWidth:r.ios||r.android?300:600,isOutAnim:!1,skin:"layui-table-tips",success:function(e,t){e.find(".layui-table-tips-c").on("click",function(){l.close(t)})}}))}),a.layBody.on("click","*[lay-event]",function(){var e=t(this),l=e.parents("tr").eq(0).data("index"),n=a.layBody.find('tr[data-index="'+l+'"]'),o="layui-table-click",r=d.cache[a.key][l];layui.event.call(this,s,"tool("+f+")",{data:d.clearCacheKey(r),event:e.attr("lay-event"),tr:n,del:function(){d.cache[a.key][l]=[],n.remove(),a.scrollPatch()},update:function(e){e=e||{},layui.each(e,function(e,l){if(e in r){var o,d=n.children('td[data-field="'+e+'"]');r[e]=l,a.eachCols(function(t,i){i.field==e&&i.templet&&(o=i.templet)}),d.children(h).html(o?i(t(o).html()||l).render(r):l),d.data("content",l)}})}}),n.addClass(o).siblings("tr").removeClass(o)}),a.layMain.on("scroll",function(){var e=t(this),i=e.scrollLeft(),n=e.scrollTop();a.layHeader.scrollLeft(i),a.layFixed.find(m).scrollTop(n),l.close(a.tipsIndex)}),T.on("resize",function(){a.fullSize(),a.scrollPatch()})},d.init=function(e,i){i=i||{};var a=this,l=t(e?'table[lay-filter="'+e+'"]':u+"[lay-data]"),n="Table element property lay-data configuration item has a syntax error: ";return l.each(function(){var a=t(this),l=a.attr("lay-data");try{l=new Function("return "+l)()}catch(r){o.error(n+l)}var c=[],s=t.extend({elem:this,cols:[],data:[],skin:a.attr("lay-skin"),size:a.attr("lay-size"),even:"string"==typeof a.attr("lay-even")},d.config,i,l);e&&a.hide(),a.find("thead>tr").each(function(e){s.cols[e]=[],t(this).children().each(function(i){var a=t(this),l=a.attr("lay-data");try{l=new Function("return "+l)()}catch(r){return o.error(n+l)}var d=t.extend({title:a.text(),colspan:a.attr("colspan")||0,rowspan:a.attr("rowspan")||0},l);d.colspan<2&&c.push(d),s.cols[e].push(d)})}),a.find("tbody>tr").each(function(e){var i=t(this),a={};i.children("td").each(function(e,i){var l=t(this),n=l.data("field");if(n)return a[n]=l.html()}),layui.each(c,function(e,t){var l=i.children("td").eq(e);a[t.field]=l.html()}),s.data[e]=a}),d.render(s)}),a},d.checkStatus=function(e){var t=0,i=0,a=[],l=d.cache[e]||[];return layui.each(l,function(e,l){return l.constructor===Array?void i++:void(l[d.config.checkName]&&(t++,a.push(d.clearCacheKey(l))))}),{data:a,isAll:!!l.length&&t===l.length-i}},c.config={},d.reload=function(e,i){var a=c.config[e];return i=i||{},a?(i.data&&i.data.constructor===Array&&delete a.data,d.render(t.extend(!0,{},a,i))):o.error("The ID option was not found in the table instance")},d.render=function(e){var t=new S(e);return c.call(t)},d.clearCacheKey=function(e){return e=t.extend({},e),delete e[d.config.checkName],delete e[d.config.indexName],e},d.init(),e(s,d)}); \ No newline at end of file +/** layui-v2.2.6 MIT License By https://www.layui.com */ + ;layui.define(["laytpl","laypage","layer","form"],function(e){"use strict";var t=layui.$,i=layui.laytpl,a=layui.laypage,l=layui.layer,n=layui.form,o=layui.hint(),r=layui.device(),d={config:{checkName:"LAY_CHECKED",indexName:"LAY_TABLE_INDEX"},cache:{},index:layui.table?layui.table.index+1e4:0,set:function(e){var i=this;return i.config=t.extend({},i.config,e),i},on:function(e,t){return layui.onevent.call(this,s,e,t)}},c=function(){var e=this,t=e.config,i=t.id;return i&&(c.config[i]=t),{reload:function(t){e.reload.call(e,t)},config:t}},s="table",u=".layui-table",h="layui-hide",f="layui-none",y="layui-table-view",p=".layui-table-header",m=".layui-table-body",v=".layui-table-main",g=".layui-table-fixed",x=".layui-table-fixed-l",b=".layui-table-fixed-r",k=".layui-table-tool",C=".layui-table-page",w=".layui-table-sort",N="layui-table-edit",T="layui-table-hover",F=function(e){var t='{{#if(item2.colspan){}} colspan="{{item2.colspan}}"{{#} if(item2.rowspan){}} rowspan="{{item2.rowspan}}"{{#}}}';return e=e||{},['',"","{{# layui.each(d.data.cols, function(i1, item1){ }}","","{{# layui.each(item1, function(i2, item2){ }}",'{{# if(item2.fixed && item2.fixed !== "right"){ left = true; } }}','{{# if(item2.fixed === "right"){ right = true; } }}',function(){return e.fixed&&"right"!==e.fixed?'{{# if(item2.fixed && item2.fixed !== "right"){ }}':"right"===e.fixed?'{{# if(item2.fixed === "right"){ }}':""}(),'",e.fixed?"{{# }; }}":"","{{# }); }}","","{{# }); }}","","
    ','
    1){ }}","group","{{# } else { }}","{{d.index}}-{{item2.field || i2}}",'{{# if(item2.type !== "normal"){ }}'," laytable-cell-{{ item2.type }}","{{# } }}","{{# } }}",'" {{#if(item2.align){}}align="{{item2.align}}"{{#}}}>','{{# if(item2.type === "checkbox"){ }}','',"{{# } else { }}",'{{item2.title||""}}',"{{# if(!(item2.colspan > 1) && item2.sort){ }}",'',"{{# } }}","{{# } }}","
    ","
    "].join("")},W=['',"","
    "].join(""),z=['
    ',"{{# if(d.data.toolbar){ }}",'
    ',"{{# } }}",'
    ',"{{# var left, right; }}",'
    ',F(),"
    ",'
    ',W,"
    ","{{# if(left){ }}",'
    ','
    ',F({fixed:!0}),"
    ",'
    ',W,"
    ","
    ","{{# }; }}","{{# if(right){ }}",'
    ','
    ',F({fixed:"right"}),'
    ',"
    ",'
    ',W,"
    ","
    ","{{# }; }}","
    ","{{# if(d.data.page){ }}",'
    ','
    ',"
    ","{{# } }}","","
    "].join(""),A=t(window),S=t(document),M=function(e){var i=this;i.index=++d.index,i.config=t.extend({},i.config,d.config,e),i.render()};M.prototype.config={limit:10,loading:!0,cellMinWidth:60,text:{none:"无数据"}},M.prototype.render=function(){var e=this,a=e.config;if(a.elem=t(a.elem),a.where=a.where||{},a.id=a.id||a.elem.attr("id"),a.request=t.extend({pageName:"page",limitName:"limit"},a.request),a.response=t.extend({statusName:"code",statusCode:0,msgName:"msg",dataName:"data",countName:"count"},a.response),"object"==typeof a.page&&(a.limit=a.page.limit||a.limit,a.limits=a.page.limits||a.limits,e.page=a.page.curr=a.page.curr||1,delete a.page.elem,delete a.page.jump),!a.elem[0])return e;e.setArea();var l=a.elem,n=l.next("."+y),o=e.elem=t(i(z).render({VIEW_CLASS:y,data:a,index:e.index}));if(a.index=e.index,n[0]&&n.remove(),l.after(o),e.layHeader=o.find(p),e.layMain=o.find(v),e.layBody=o.find(m),e.layFixed=o.find(g),e.layFixLeft=o.find(x),e.layFixRight=o.find(b),e.layTool=o.find(k),e.layPage=o.find(C),e.layTool.html(i(t(a.toolbar).html()||"").render(a)),a.height&&e.fullSize(),a.cols.length>1){var r=e.layFixed.find(p).find("th");r.height(e.layHeader.height()-1-parseFloat(r.css("padding-top"))-parseFloat(r.css("padding-bottom")))}e.pullData(e.page),e.events()},M.prototype.initOpts=function(e){var t=this,i=(t.config,{checkbox:48,space:15,numbers:40});e.checkbox&&(e.type="checkbox"),e.space&&(e.type="space"),e.type||(e.type="normal"),"normal"!==e.type&&(e.unresize=!0,e.width=e.width||i[e.type])},M.prototype.setArea=function(){var e=this,t=e.config,i=0,a=0,l=0,n=0,o=t.width||function(){var e=function(i){var a,l;i=i||t.elem.parent(),a=i.width();try{l="none"===i.css("display")}catch(n){}return!i[0]||a&&!l?a:e(i.parent())};return e()}();e.eachCols(function(){i++}),o-=function(){return"line"===t.skin||"nob"===t.skin?2:i+1}(),layui.each(t.cols,function(t,i){layui.each(i,function(t,l){var r;return l?(e.initOpts(l),r=l.width||0,void(l.colspan>1||(/\d+%$/.test(r)?l.width=r=Math.floor(parseFloat(r)/100*o):r||(l.width=r=0,a++),n+=r))):void i.splice(t,1)})}),e.autoColNums=a,o>n&&a&&(l=(o-n)/a),layui.each(t.cols,function(e,i){layui.each(i,function(e,i){var a=i.minWidth||t.cellMinWidth;i.colspan>1||0===i.width&&(i.width=Math.floor(l>=a?l:a))})}),t.height&&/^full-\d+$/.test(t.height)&&(e.fullHeightGap=t.height.split("-")[1],t.height=A.height()-e.fullHeightGap)},M.prototype.reload=function(e){var i=this;i.config.data&&i.config.data.constructor===Array&&delete i.config.data,i.config=t.extend({},i.config,e),i.render()},M.prototype.page=1,M.prototype.pullData=function(e,i){var a=this,n=a.config,o=n.request,r=n.response,d=function(){"object"==typeof n.initSort&&a.sort(n.initSort.field,n.initSort.type)};if(a.startTime=(new Date).getTime(),n.url){var c={};c[o.pageName]=e,c[o.limitName]=n.limit;var s=t.extend(c,n.where);n.contentType&&0==n.contentType.indexOf("application/json")&&(s=JSON.stringify(s)),t.ajax({type:n.method||"get",url:n.url,contentType:n.contentType,data:s,dataType:"json",headers:n.headers||{},success:function(t){t[r.statusName]!=r.statusCode?(a.renderForm(),a.layMain.html('
    '+(t[r.msgName]||"返回的数据状态异常")+"
    ")):(a.renderData(t,e,t[r.countName]),d(),n.time=(new Date).getTime()-a.startTime+" ms"),i&&l.close(i),"function"==typeof n.done&&n.done(t,e,t[r.countName])},error:function(e,t){a.layMain.html('
    数据接口请求异常
    '),a.renderForm(),i&&l.close(i)}})}else if(n.data&&n.data.constructor===Array){var u={},h=e*n.limit-n.limit;u[r.dataName]=n.data.concat().splice(h,n.limit),u[r.countName]=n.data.length,a.renderData(u,e,n.data.length),d(),"function"==typeof n.done&&n.done(u,e,u[r.countName])}},M.prototype.eachCols=function(e){var i=t.extend(!0,[],this.config.cols),a=[],l=0;layui.each(i,function(e,t){layui.each(t,function(t,n){if(n.colspan>1){var o=0;l++,n.CHILD_COLS=[],layui.each(i[e+1],function(e,t){t.PARENT_COL||o==n.colspan||(t.PARENT_COL=l,n.CHILD_COLS.push(t),o+=t.colspan>1?t.colspan:1)})}n.PARENT_COL||a.push(n)})});var n=function(t){layui.each(t||a,function(t,i){return i.CHILD_COLS?n(i.CHILD_COLS):void e(t,i)})};n()},M.prototype.renderData=function(e,n,o,r){var c=this,s=c.config,u=e[s.response.dataName]||[],y=[],p=[],m=[],v=function(){return!r&&c.sortKey?c.sort(c.sortKey.field,c.sortKey.sort,!0):(layui.each(u,function(e,a){var l=[],o=[],u=[],h=e+s.limit*(n-1)+1;0!==a.length&&(r||(a[d.config.indexName]=e),c.eachCols(function(e,n){var r=n.field||e,f=a[r];c.getColElem(c.layHeader,r);if(void 0!==f&&null!==f||(f=""),!(n.colspan>1)){var y=['",'
    '+function(){var e=t.extend(!0,{LAY_INDEX:h},a);return"checkbox"===n.type?'":"numbers"===n.type?h:n.toolbar?i(t(n.toolbar).html()||"").render(e):n.templet?function(){return"function"==typeof n.templet?n.templet(e):i(t(n.templet).html()||String(f)).render(e)}():f}(),"
    "].join("");l.push(y),n.fixed&&"right"!==n.fixed&&o.push(y),"right"===n.fixed&&u.push(y)}}),y.push(''+l.join("")+""),p.push(''+o.join("")+""),m.push(''+u.join("")+""))}),c.layBody.scrollTop(0),c.layMain.find("."+f).remove(),c.layMain.find("tbody").html(y.join("")),c.layFixLeft.find("tbody").html(p.join("")),c.layFixRight.find("tbody").html(m.join("")),c.renderForm(),c.syncCheckAll(),c.haveInit?c.scrollPatch():setTimeout(function(){c.scrollPatch()},50),c.haveInit=!0,void l.close(c.tipsIndex))};return c.key=s.id||s.index,d.cache[c.key]=u,c.layPage[0===u.length&&1==n?"addClass":"removeClass"](h),r?v():0===u.length?(c.renderForm(),c.layFixed.remove(),c.layMain.find("tbody").html(""),c.layMain.find("."+f).remove(),c.layMain.append('
    '+s.text.none+"
    ")):(v(),void(s.page&&(s.page=t.extend({elem:"layui-table-page"+s.index,count:o,limit:s.limit,limits:s.limits||[10,20,30,40,50,60,70,80,90],groups:3,layout:["prev","page","next","skip","count","limit"],prev:'',next:'',jump:function(e,t){t||(c.page=e.curr,s.limit=e.limit,c.pullData(e.curr,c.loading()))}},s.page),s.page.count=o,a.render(s.page))))},M.prototype.getColElem=function(e,t){var i=this,a=i.config;return e.eq(0).find(".laytable-cell-"+(a.index+"-"+t)+":eq(0)")},M.prototype.renderForm=function(e){n.render(e,"LAY-table-"+this.index)},M.prototype.sort=function(e,i,a,l){var n,r,c=this,u={},h=c.config,f=h.elem.attr("lay-filter"),y=d.cache[c.key];"string"==typeof e&&c.layHeader.find("th").each(function(i,a){var l=t(this),o=l.data("field");if(o===e)return e=l,n=o,!1});try{var n=n||e.data("field");if(c.sortKey&&!a&&n===c.sortKey.field&&i===c.sortKey.sort)return;var p=c.layHeader.find("th .laytable-cell-"+h.index+"-"+n).find(w);c.layHeader.find("th").find(w).removeAttr("lay-sort"),p.attr("lay-sort",i||null),c.layFixed.find("th")}catch(m){return o.error("Table modules: Did not match to field")}c.sortKey={field:n,sort:i},"asc"===i?r=layui.sort(y,n):"desc"===i?r=layui.sort(y,n,!0):(r=layui.sort(y,d.config.indexName),delete c.sortKey),u[h.response.dataName]=r,c.renderData(u,c.page,c.count,!0),l&&layui.event.call(e,s,"sort("+f+")",{field:n,type:i})},M.prototype.loading=function(){var e=this,t=e.config;if(t.loading&&t.url)return l.msg("数据请求中",{icon:16,offset:[e.elem.offset().top+e.elem.height()/2-35-A.scrollTop()+"px",e.elem.offset().left+e.elem.width()/2-90-A.scrollLeft()+"px"],time:-1,anim:-1,fixed:!1})},M.prototype.setCheckData=function(e,t){var i=this,a=i.config,l=d.cache[i.key];l[e]&&l[e].constructor!==Array&&(l[e][a.checkName]=t)},M.prototype.syncCheckAll=function(){var e=this,t=e.config,i=e.layHeader.find('input[name="layTableCheckbox"]'),a=function(i){return e.eachCols(function(e,a){"checkbox"===a.type&&(a[t.checkName]=i)}),i};i[0]&&(d.checkStatus(e.key).isAll?(i[0].checked||(i.prop("checked",!0),e.renderForm("checkbox")),a(!0)):(i[0].checked&&(i.prop("checked",!1),e.renderForm("checkbox")),a(!1)))},M.prototype.getCssRule=function(e,t){var i=this,a=i.elem.find("style")[0],l=a.sheet||a.styleSheet||{},n=l.cssRules||l.rules;layui.each(n,function(a,l){if(l.selectorText===".laytable-cell-"+i.index+"-"+e)return t(l),!0})},M.prototype.fullSize=function(){var e,t=this,i=t.config,a=i.height;t.fullHeightGap&&(a=A.height()-t.fullHeightGap,a<135&&(a=135),t.elem.css("height",a)),e=parseFloat(a)-parseFloat(t.layHeader.height())-1,i.toolbar&&(e-=t.layTool.outerHeight()),i.page&&(e=e-t.layPage.outerHeight()-1),t.layMain.css("height",e)},M.prototype.getScrollWidth=function(e){var t=0;return e?t=e.offsetWidth-e.clientWidth:(e=document.createElement("div"),e.style.width="100px",e.style.height="100px",e.style.overflowY="scroll",document.body.appendChild(e),t=e.offsetWidth-e.clientWidth,document.body.removeChild(e)),t},M.prototype.scrollPatch=function(){var e=this,i=e.layMain.children("table"),a=e.layMain.width()-e.layMain.prop("clientWidth"),l=e.layMain.height()-e.layMain.prop("clientHeight"),n=e.getScrollWidth(e.layMain[0]),o=i.outerWidth()-e.layMain.width();if(e.autoColNums&&o<5&&!e.scrollPatchWStatus){var r=e.layHeader.eq(0).find("thead th:last-child"),d=r.data("field");e.getCssRule(d,function(t){var i=t.style.width||r.outerWidth();t.style.width=parseFloat(i)-n-o+"px",e.layMain.height()-e.layMain.prop("clientHeight")>0&&(t.style.width=parseFloat(t.style.width)-1+"px"),e.scrollPatchWStatus=!0})}if(a&&l){if(!e.elem.find(".layui-table-patch")[0]){var c=t('
    ');c.find("div").css({width:a}),e.layHeader.eq(0).find("thead tr").append(c)}}else e.layHeader.eq(0).find(".layui-table-patch").remove();var s=e.layMain.height(),u=s-l;e.layFixed.find(m).css("height",i.height()>u?u:"auto"),e.layFixRight[o>0?"removeClass":"addClass"](h),e.layFixRight.css("right",a-1)},M.prototype.events=function(){var e,a=this,n=a.config,o=t("body"),c={},u=a.layHeader.find("th"),h=".layui-table-cell",f=n.elem.attr("lay-filter");u.on("mousemove",function(e){var i=t(this),a=i.offset().left,l=e.clientX-a;i.attr("colspan")>1||i.data("unresize")||c.resizeStart||(c.allowResize=i.width()-l<=10,o.css("cursor",c.allowResize?"col-resize":""))}).on("mouseleave",function(){t(this);c.resizeStart||o.css("cursor","")}).on("mousedown",function(e){var i=t(this);if(c.allowResize){var l=i.data("field");e.preventDefault(),c.resizeStart=!0,c.offset=[e.clientX,e.clientY],a.getCssRule(l,function(e){var t=e.style.width||i.outerWidth();c.rule=e,c.ruleWidth=parseFloat(t),c.minWidth=i.data("minwidth")||n.cellMinWidth})}}),S.on("mousemove",function(t){if(c.resizeStart){if(t.preventDefault(),c.rule){var i=c.ruleWidth+t.clientX-c.offset[0];i');d[0].value=e.data("content")||o.text(),e.find("."+N)[0]||e.append(d),d.focus()}else o.find(".layui-form-switch,.layui-form-checkbox")[0]||Math.round(o.prop("scrollWidth"))>Math.round(o.outerWidth())&&(a.tipsIndex=l.tips(['
    ',o.html(),"
    ",''].join(""),o[0],{tips:[3,""],time:-1,anim:-1,maxWidth:r.ios||r.android?300:600,isOutAnim:!1,skin:"layui-table-tips",success:function(e,t){e.find(".layui-table-tips-c").on("click",function(){l.close(t)})}}))}),a.layBody.on("click","*[lay-event]",function(){var e=t(this),l=e.parents("tr").eq(0).data("index"),n=a.layBody.find('tr[data-index="'+l+'"]'),o="layui-table-click",r=d.cache[a.key][l];layui.event.call(this,s,"tool("+f+")",{data:d.clearCacheKey(r),event:e.attr("lay-event"),tr:n,del:function(){d.cache[a.key][l]=[],n.remove(),a.scrollPatch()},update:function(e){e=e||{},layui.each(e,function(e,l){if(e in r){var o,d=n.children('td[data-field="'+e+'"]');r[e]=l,a.eachCols(function(t,i){i.field==e&&i.templet&&(o=i.templet)}),d.children(h).html(o?i(t(o).html()||l).render(r):l),d.data("content",l)}})}}),n.addClass(o).siblings("tr").removeClass(o)}),a.layMain.on("scroll",function(){var e=t(this),i=e.scrollLeft(),n=e.scrollTop();a.layHeader.scrollLeft(i),a.layFixed.find(m).scrollTop(n),l.close(a.tipsIndex)}),A.on("resize",function(){a.fullSize(),a.scrollPatch()})},d.init=function(e,i){i=i||{};var a=this,l=t(e?'table[lay-filter="'+e+'"]':u+"[lay-data]"),n="Table element property lay-data configuration item has a syntax error: ";return l.each(function(){var a=t(this),l=a.attr("lay-data");try{l=new Function("return "+l)()}catch(r){o.error(n+l)}var c=[],s=t.extend({elem:this,cols:[],data:[],skin:a.attr("lay-skin"),size:a.attr("lay-size"),even:"string"==typeof a.attr("lay-even")},d.config,i,l);e&&a.hide(),a.find("thead>tr").each(function(e){s.cols[e]=[],t(this).children().each(function(i){var a=t(this),l=a.attr("lay-data");try{l=new Function("return "+l)()}catch(r){return o.error(n+l)}var d=t.extend({title:a.text(),colspan:a.attr("colspan")||0,rowspan:a.attr("rowspan")||0},l);d.colspan<2&&c.push(d),s.cols[e].push(d)})}),a.find("tbody>tr").each(function(e){var i=t(this),a={};i.children("td").each(function(e,i){var l=t(this),n=l.data("field");if(n)return a[n]=l.html()}),layui.each(c,function(e,t){var l=i.children("td").eq(e);a[t.field]=l.html()}),s.data[e]=a}),d.render(s)}),a},d.checkStatus=function(e){var t=0,i=0,a=[],l=d.cache[e]||[];return layui.each(l,function(e,l){return l.constructor===Array?void i++:void(l[d.config.checkName]&&(t++,a.push(d.clearCacheKey(l))))}),{data:a,isAll:!!l.length&&t===l.length-i}},c.config={},d.reload=function(e,i){var a=c.config[e];return i=i||{},a?(i.data&&i.data.constructor===Array&&delete a.data,d.render(t.extend(!0,{},a,i))):o.error("The ID option was not found in the table instance")},d.render=function(e){var t=new M(e);return c.call(t)},d.clearCacheKey=function(e){return e=t.extend({},e),delete e[d.config.checkName],delete e[d.config.indexName],e},d.init(),e(s,d)}); \ No newline at end of file diff --git a/static/plugs/layui/lay/modules/tree.js b/static/plugs/layui/lay/modules/tree.js index aeabe40a9..2c3dd22c9 100644 --- a/static/plugs/layui/lay/modules/tree.js +++ b/static/plugs/layui/lay/modules/tree.js @@ -1,2 +1,2 @@ -/** layui-v2.2.5 MIT License By https://www.layui.com */ +/** layui-v2.2.6 MIT License By https://www.layui.com */ ;layui.define("jquery",function(e){"use strict";var o=layui.$,a=layui.hint(),i="layui-tree-enter",r=function(e){this.options=e},t={arrow:["",""],checkbox:["",""],radio:["",""],branch:["",""],leaf:""};r.prototype.init=function(e){var o=this;e.addClass("layui-box layui-tree"),o.options.skin&&e.addClass("layui-tree-skin-"+o.options.skin),o.tree(e),o.on(e)},r.prototype.tree=function(e,a){var i=this,r=i.options,n=a||r.nodes;layui.each(n,function(a,n){var l=n.children&&n.children.length>0,c=o('
      '),s=o(["
    • ",function(){return l?''+(n.spread?t.arrow[1]:t.arrow[0])+"":""}(),function(){return r.check?''+("checkbox"===r.check?t.checkbox[0]:"radio"===r.check?t.radio[0]:"")+"":""}(),function(){return'"+(''+(l?n.spread?t.branch[1]:t.branch[0]:t.leaf)+"")+(""+(n.name||"未命名")+"")}(),"
    • "].join(""));l&&(s.append(c),i.tree(c,n.children)),e.append(s),"function"==typeof r.click&&i.click(s,n),i.spread(s,n),r.drag&&i.drag(s,n)})},r.prototype.click=function(e,o){var a=this,i=a.options;e.children("a").on("click",function(e){layui.stope(e),i.click(o)})},r.prototype.spread=function(e,o){var a=this,i=(a.options,e.children(".layui-tree-spread")),r=e.children("ul"),n=e.children("a"),l=function(){e.data("spread")?(e.data("spread",null),r.removeClass("layui-show"),i.html(t.arrow[0]),n.find(".layui-icon").html(t.branch[0])):(e.data("spread",!0),r.addClass("layui-show"),i.html(t.arrow[1]),n.find(".layui-icon").html(t.branch[1]))};r[0]&&(i.on("click",l),n.on("dblclick",l))},r.prototype.on=function(e){var a=this,r=a.options,t="layui-tree-drag";e.find("i").on("selectstart",function(e){return!1}),r.drag&&o(document).on("mousemove",function(e){var i=a.move;if(i.from){var r=(i.to,o('
      '));e.preventDefault(),o("."+t)[0]||o("body").append(r);var n=o("."+t)[0]?o("."+t):r;n.addClass("layui-show").html(i.from.elem.children("a").html()),n.css({left:e.pageX+10,top:e.pageY+10})}}).on("mouseup",function(){var e=a.move;e.from&&(e.from.elem.children("a").removeClass(i),e.to&&e.to.elem.children("a").removeClass(i),a.move={},o("."+t).remove())})},r.prototype.move={},r.prototype.drag=function(e,a){var r=this,t=(r.options,e.children("a")),n=function(){var t=o(this),n=r.move;n.from&&(n.to={item:a,elem:e},t.addClass(i))};t.on("mousedown",function(){var o=r.move;o.from={item:a,elem:e}}),t.on("mouseenter",n).on("mousemove",n).on("mouseleave",function(){var e=o(this),a=r.move;a.from&&(delete a.to,e.removeClass(i))})},e("tree",function(e){var i=new r(e=e||{}),t=o(e.elem);return t[0]?void i.init(t):a.error("layui.tree 没有找到"+e.elem+"元素")})}); \ No newline at end of file diff --git a/static/plugs/layui/lay/modules/upload.js b/static/plugs/layui/lay/modules/upload.js index 4fbf66e98..795f61313 100644 --- a/static/plugs/layui/lay/modules/upload.js +++ b/static/plugs/layui/lay/modules/upload.js @@ -1,2 +1,2 @@ -/** layui-v2.2.5 MIT License By https://www.layui.com */ - ;layui.define("layer",function(e){"use strict";var i=layui.$,t=layui.layer,n=layui.hint(),a=layui.device(),o={config:{},set:function(e){var t=this;return t.config=i.extend({},t.config,e),t},on:function(e,i){return layui.onevent.call(this,r,e,i)}},l=function(){var e=this;return{upload:function(i){e.upload.call(e,i)},config:e.config}},r="upload",u="layui-upload-file",c="layui-upload-form",f="layui-upload-iframe",s="layui-upload-choose",p=function(e){var t=this;t.config=i.extend({},t.config,o.config,e),t.render()};p.prototype.config={accept:"images",exts:"",auto:!0,bindAction:"",url:"",field:"file",method:"post",data:{},drag:!0,size:0,number:0,multiple:!1},p.prototype.render=function(e){var t=this,e=t.config;e.elem=i(e.elem),e.bindAction=i(e.bindAction),t.file(),t.events()},p.prototype.file=function(){var e=this,t=e.config,n=e.elemFile=i(['"].join("")),o=t.elem.next();(o.hasClass(u)||o.hasClass(c))&&o.remove(),a.ie&&a.ie<10&&t.elem.wrap('
      '),e.isFile()?(e.elemFile=t.elem,t.field=t.elem[0].name):t.elem.after(n),a.ie&&a.ie<10&&e.initIE()},p.prototype.initIE=function(){var e=this,t=e.config,n=i(''),a=i(['
      ',"
      "].join(""));i("#"+f)[0]||i("body").append(n),t.elem.next().hasClass(f)||(e.elemFile.wrap(a),t.elem.next("."+f).append(function(){var e=[];return layui.each(t.data,function(i,t){e.push('')}),e.join("")}()))},p.prototype.msg=function(e){return t.msg(e,{icon:2,shift:6})},p.prototype.isFile=function(){var e=this.config.elem[0];if(e)return"input"===e.tagName.toLocaleLowerCase()&&"file"===e.type},p.prototype.preview=function(e){var i=this;window.FileReader&&layui.each(i.chooseFiles,function(i,t){var n=new FileReader;n.readAsDataURL(t),n.onload=function(){e&&e(i,t,this.result)}})},p.prototype.upload=function(e,t){var n,o=this,l=o.config,r=o.elemFile[0],u=function(){var t=0,n=0,a=e||o.files||o.chooseFiles||r.files,u=function(){l.multiple&&t+n===o.fileLength&&"function"==typeof l.allDone&&l.allDone({total:o.fileLength,successful:t,aborted:n})};layui.each(a,function(e,a){var r=new FormData;r.append(l.field,a),layui.each(l.data,function(e,i){r.append(e,i)}),i.ajax({url:l.url,type:l.method,data:r,contentType:!1,processData:!1,dataType:"json",success:function(i){t++,d(e,i),u()},error:function(){n++,o.msg("请求上传接口出现异常"),m(e),u()}})})},c=function(){var e=i("#"+f);o.elemFile.parent().submit(),clearInterval(p.timer),p.timer=setInterval(function(){var i,t=e.contents().find("body");try{i=t.text()}catch(n){o.msg("获取上传后的响应信息出现异常"),clearInterval(p.timer),m()}i&&(clearInterval(p.timer),t.html(""),d(0,i))},30)},d=function(e,i){if(o.elemFile.next("."+s).remove(),r.value="","object"!=typeof i)try{i=JSON.parse(i)}catch(t){return i={},o.msg("请对上传接口返回有效JSON")}"function"==typeof l.done&&l.done(i,e||0,function(e){o.upload(e)})},m=function(e){l.auto&&(r.value=""),"function"==typeof l.error&&l.error(e||0,function(e){o.upload(e)})},h=l.exts,v=function(){var i=[];return layui.each(e||o.chooseFiles,function(e,t){i.push(t.name)}),i}(),g={preview:function(e){o.preview(e)},upload:function(e,i){var t={};t[e]=i,o.upload(t)},pushFile:function(){return o.files=o.files||{},layui.each(o.chooseFiles,function(e,i){o.files[e]=i}),o.files}},y=function(){return"choose"===t?l.choose&&l.choose(g):(l.before&&l.before(g),a.ie?a.ie>9?u():c():void u())};if(v=0===v.length?r.value.match(/[^\/\\]+\..+/g)||[]||"":v,0!==v.length){switch(l.accept){case"file":if(h&&!RegExp("\\w\\.("+h+")$","i").test(escape(v)))return o.msg("选择的文件中包含不支持的格式"),r.value="";break;case"video":if(!RegExp("\\w\\.("+(h||"avi|mp4|wma|rmvb|rm|flash|3gp|flv")+")$","i").test(escape(v)))return o.msg("选择的视频中包含不支持的格式"),r.value="";break;case"audio":if(!RegExp("\\w\\.("+(h||"mp3|wav|mid")+")$","i").test(escape(v)))return o.msg("选择的音频中包含不支持的格式"),r.value="";break;default:if(layui.each(v,function(e,i){RegExp("\\w\\.("+(h||"jpg|png|gif|bmp|jpeg$")+")","i").test(escape(i))||(n=!0)}),n)return o.msg("选择的图片中包含不支持的格式"),r.value=""}if(o.fileLength=function(){var i=0,t=e||o.files||o.chooseFiles||r.files;return layui.each(t,function(){i++}),i}(),l.number&&o.fileLength>l.number)return o.msg("同时最多只能上传的数量为:"+l.number);if(l.size>0&&!(a.ie&&a.ie<10)){var F;if(layui.each(o.chooseFiles,function(e,i){if(i.size>1024*l.size){var t=l.size/1024;t=t>=1?Math.floor(t)+(t%1>0?t.toFixed(1):0)+"MB":l.size+"KB",r.value="",F=t}}),F)return o.msg("文件不能超过"+F)}y()}},p.prototype.events=function(){var e=this,t=e.config,o=function(i){e.chooseFiles={},layui.each(i,function(i,t){var n=(new Date).getTime();e.chooseFiles[n+"-"+i]=t})},l=function(i,n){var a=e.elemFile,o=i.length>1?i.length+"个文件":(i[0]||{}).name||a[0].value.match(/[^\/\\]+\..+/g)||[]||"";a.next().hasClass(s)&&a.next().remove(),e.upload(null,"choose"),e.isFile()||t.choose||a.after(''+o+"")};t.elem.off("upload.start").on("upload.start",function(){var a=i(this),o=a.attr("lay-data");if(o)try{o=new Function("return "+o)(),e.config=i.extend({},t,o)}catch(l){n.error("Upload element property lay-data configuration item has a syntax error: "+o)}e.config.item=a,e.elemFile[0].click()}),a.ie&&a.ie<10||t.elem.off("upload.over").on("upload.over",function(){var e=i(this);e.attr("lay-over","")}).off("upload.leave").on("upload.leave",function(){var e=i(this);e.removeAttr("lay-over")}).off("upload.drop").on("upload.drop",function(n,a){var r=i(this),u=a.originalEvent.dataTransfer.files||[];r.removeAttr("lay-over"),o(u),t.auto?e.upload(u):l(u)}),e.elemFile.off("upload.change").on("upload.change",function(){var i=this.files||[];o(i),t.auto?e.upload():l(i)}),t.bindAction.off("upload.action").on("upload.action",function(){e.upload()}),t.elem.data("haveEvents")||(e.elemFile.on("change",function(){i(this).trigger("upload.change")}),t.elem.on("click",function(){e.isFile()||i(this).trigger("upload.start")}),t.drag&&t.elem.on("dragover",function(e){e.preventDefault(),i(this).trigger("upload.over")}).on("dragleave",function(e){i(this).trigger("upload.leave")}).on("drop",function(e){e.preventDefault(),i(this).trigger("upload.drop",e)}),t.bindAction.on("click",function(){i(this).trigger("upload.action")}),t.elem.data("haveEvents",!0))},o.render=function(e){var i=new p(e);return l.call(i)},e(r,o)}); \ No newline at end of file +/** layui-v2.2.6 MIT License By https://www.layui.com */ + ;layui.define("layer",function(e){"use strict";var t=layui.$,i=layui.layer,n=layui.hint(),a=layui.device(),o={config:{},set:function(e){var i=this;return i.config=t.extend({},i.config,e),i},on:function(e,t){return layui.onevent.call(this,r,e,t)}},l=function(){var e=this;return{upload:function(t){e.upload.call(e,t)},config:e.config}},r="upload",u="layui-upload-file",c="layui-upload-form",f="layui-upload-iframe",s="layui-upload-choose",p=function(e){var i=this;i.config=t.extend({},i.config,o.config,e),i.render()};p.prototype.config={accept:"images",exts:"",auto:!0,bindAction:"",url:"",field:"file",method:"post",data:{},drag:!0,size:0,number:0,multiple:!1},p.prototype.render=function(e){var i=this,e=i.config;e.elem=t(e.elem),e.bindAction=t(e.bindAction),i.file(),i.events()},p.prototype.file=function(){var e=this,i=e.config,n=e.elemFile=t(['"].join("")),o=i.elem.next();(o.hasClass(u)||o.hasClass(c))&&o.remove(),a.ie&&a.ie<10&&i.elem.wrap('
      '),e.isFile()?(e.elemFile=i.elem,i.field=i.elem[0].name):i.elem.after(n),a.ie&&a.ie<10&&e.initIE()},p.prototype.initIE=function(){var e=this,i=e.config,n=t(''),a=t(['
      ',"
      "].join(""));t("#"+f)[0]||t("body").append(n),i.elem.next().hasClass(f)||(e.elemFile.wrap(a),i.elem.next("."+f).append(function(){var e=[];return layui.each(i.data,function(t,i){i="function"==typeof i?i():i,e.push('')}),e.join("")}()))},p.prototype.msg=function(e){return i.msg(e,{icon:2,shift:6})},p.prototype.isFile=function(){var e=this.config.elem[0];if(e)return"input"===e.tagName.toLocaleLowerCase()&&"file"===e.type},p.prototype.preview=function(e){var t=this;window.FileReader&&layui.each(t.chooseFiles,function(t,i){var n=new FileReader;n.readAsDataURL(i),n.onload=function(){e&&e(t,i,this.result)}})},p.prototype.upload=function(e,i){var n,o=this,l=o.config,r=o.elemFile[0],u=function(){var i=0,n=0,a=e||o.files||o.chooseFiles||r.files,u=function(){l.multiple&&i+n===o.fileLength&&"function"==typeof l.allDone&&l.allDone({total:o.fileLength,successful:i,aborted:n})};layui.each(a,function(e,a){var r=new FormData;r.append(l.field,a),layui.each(l.data,function(e,t){t="function"==typeof t?t():t,r.append(e,t)}),t.ajax({url:l.url,type:l.method,data:r,contentType:!1,processData:!1,dataType:"json",headers:l.headers||{},success:function(t){i++,d(e,t),u()},error:function(){n++,o.msg("请求上传接口出现异常"),m(e),u()}})})},c=function(){var e=t("#"+f);o.elemFile.parent().submit(),clearInterval(p.timer),p.timer=setInterval(function(){var t,i=e.contents().find("body");try{t=i.text()}catch(n){o.msg("获取上传后的响应信息出现异常"),clearInterval(p.timer),m()}t&&(clearInterval(p.timer),i.html(""),d(0,t))},30)},d=function(e,t){if(o.elemFile.next("."+s).remove(),r.value="","object"!=typeof t)try{t=JSON.parse(t)}catch(i){return t={},o.msg("请对上传接口返回有效JSON")}"function"==typeof l.done&&l.done(t,e||0,function(e){o.upload(e)})},m=function(e){l.auto&&(r.value=""),"function"==typeof l.error&&l.error(e||0,function(e){o.upload(e)})},h=l.exts,v=function(){var t=[];return layui.each(e||o.chooseFiles,function(e,i){t.push(i.name)}),t}(),g={preview:function(e){o.preview(e)},upload:function(e,t){var i={};i[e]=t,o.upload(i)},pushFile:function(){return o.files=o.files||{},layui.each(o.chooseFiles,function(e,t){o.files[e]=t}),o.files}},y=function(){return"choose"===i?l.choose&&l.choose(g):(l.before&&l.before(g),a.ie?a.ie>9?u():c():void u())};if(v=0===v.length?r.value.match(/[^\/\\]+\..+/g)||[]||"":v,0!==v.length){switch(l.accept){case"file":if(h&&!RegExp("\\w\\.("+h+")$","i").test(escape(v)))return o.msg("选择的文件中包含不支持的格式"),r.value="";break;case"video":if(!RegExp("\\w\\.("+(h||"avi|mp4|wma|rmvb|rm|flash|3gp|flv")+")$","i").test(escape(v)))return o.msg("选择的视频中包含不支持的格式"),r.value="";break;case"audio":if(!RegExp("\\w\\.("+(h||"mp3|wav|mid")+")$","i").test(escape(v)))return o.msg("选择的音频中包含不支持的格式"),r.value="";break;default:if(layui.each(v,function(e,t){RegExp("\\w\\.("+(h||"jpg|png|gif|bmp|jpeg$")+")","i").test(escape(t))||(n=!0)}),n)return o.msg("选择的图片中包含不支持的格式"),r.value=""}if(o.fileLength=function(){var t=0,i=e||o.files||o.chooseFiles||r.files;return layui.each(i,function(){t++}),t}(),l.number&&o.fileLength>l.number)return o.msg("同时最多只能上传的数量为:"+l.number);if(l.size>0&&!(a.ie&&a.ie<10)){var F;if(layui.each(o.chooseFiles,function(e,t){if(t.size>1024*l.size){var i=l.size/1024;i=i>=1?Math.floor(i)+(i%1>0?i.toFixed(1):0)+"MB":l.size+"KB",r.value="",F=i}}),F)return o.msg("文件不能超过"+F)}y()}},p.prototype.events=function(){var e=this,i=e.config,o=function(t){e.chooseFiles={},layui.each(t,function(t,i){var n=(new Date).getTime();e.chooseFiles[n+"-"+t]=i})},l=function(t,n){var a=e.elemFile,o=t.length>1?t.length+"个文件":(t[0]||{}).name||a[0].value.match(/[^\/\\]+\..+/g)||[]||"";a.next().hasClass(s)&&a.next().remove(),e.upload(null,"choose"),e.isFile()||i.choose||a.after(''+o+"")};i.elem.off("upload.start").on("upload.start",function(){var a=t(this),o=a.attr("lay-data");if(o)try{o=new Function("return "+o)(),e.config=t.extend({},i,o)}catch(l){n.error("Upload element property lay-data configuration item has a syntax error: "+o)}e.config.item=a,e.elemFile[0].click()}),a.ie&&a.ie<10||i.elem.off("upload.over").on("upload.over",function(){var e=t(this);e.attr("lay-over","")}).off("upload.leave").on("upload.leave",function(){var e=t(this);e.removeAttr("lay-over")}).off("upload.drop").on("upload.drop",function(n,a){var r=t(this),u=a.originalEvent.dataTransfer.files||[];r.removeAttr("lay-over"),o(u),i.auto?e.upload(u):l(u)}),e.elemFile.off("upload.change").on("upload.change",function(){var t=this.files||[];o(t),i.auto?e.upload():l(t)}),i.bindAction.off("upload.action").on("upload.action",function(){e.upload()}),i.elem.data("haveEvents")||(e.elemFile.on("change",function(){t(this).trigger("upload.change")}),i.elem.on("click",function(){e.isFile()||t(this).trigger("upload.start")}),i.drag&&i.elem.on("dragover",function(e){e.preventDefault(),t(this).trigger("upload.over")}).on("dragleave",function(e){t(this).trigger("upload.leave")}).on("drop",function(e){e.preventDefault(),t(this).trigger("upload.drop",e)}),i.bindAction.on("click",function(){t(this).trigger("upload.action")}),i.elem.data("haveEvents",!0))},o.render=function(e){var t=new p(e);return l.call(t)},e(r,o)}); \ No newline at end of file diff --git a/static/plugs/layui/lay/modules/util.js b/static/plugs/layui/lay/modules/util.js index 3a29621ae..d492cd48b 100644 --- a/static/plugs/layui/lay/modules/util.js +++ b/static/plugs/layui/lay/modules/util.js @@ -1,2 +1,2 @@ -/** layui-v2.2.5 MIT License By https://www.layui.com */ +/** layui-v2.2.6 MIT License By https://www.layui.com */ ;layui.define("jquery",function(e){"use strict";var t=layui.$,i={fixbar:function(e){var i,o,a="layui-fixbar",r="layui-fixbar-top",n=t(document),l=t("body");e=t.extend({showHeight:200},e),e.bar1=e.bar1===!0?"":e.bar1,e.bar2=e.bar2===!0?"":e.bar2,e.bgcolor=e.bgcolor?"background-color:"+e.bgcolor:"";var c=[e.bar1,e.bar2,""],g=t(['
        ',e.bar1?'
      • '+c[0]+"
      • ":"",e.bar2?'
      • '+c[1]+"
      • ":"",'
      • '+c[2]+"
      • ","
      "].join("")),s=g.find("."+r),u=function(){var t=n.scrollTop();t>=e.showHeight?i||(s.show(),i=1):i&&(s.hide(),i=0)};t("."+a)[0]||("object"==typeof e.css&&g.css(e.css),l.append(g),u(),g.find("li").on("click",function(){var i=t(this),o=i.attr("lay-type");"top"===o&&t("html,body").animate({scrollTop:0},200),e.click&&e.click.call(this,o)}),n.on("scroll",function(){clearTimeout(o),o=setTimeout(function(){u()},100)}))},countdown:function(e,t,i){var o=this,a="function"==typeof t,r=new Date(e).getTime(),n=new Date(!t||a?(new Date).getTime():t).getTime(),l=r-n,c=[Math.floor(l/864e5),Math.floor(l/36e5)%24,Math.floor(l/6e4)%60,Math.floor(l/1e3)%60];a&&(i=t);var g=setTimeout(function(){o.countdown(e,n+1e3,i)},1e3);return i&&i(l>0?c:[0,0,0,0],t,g),l<=0&&clearTimeout(g),g},timeAgo:function(e,t){var i=this,o=[[],[]],a=(new Date).getTime()-new Date(e).getTime();return a>6912e5?(a=new Date(e),o[0][0]=i.digit(a.getFullYear(),4),o[0][1]=i.digit(a.getMonth()+1),o[0][2]=i.digit(a.getDate()),t||(o[1][0]=i.digit(a.getHours()),o[1][1]=i.digit(a.getMinutes()),o[1][2]=i.digit(a.getSeconds())),o[0].join("-")+" "+o[1].join(":")):a>=864e5?(a/1e3/60/60/24|0)+"天前":a>=36e5?(a/1e3/60/60|0)+"小时前":a>=12e4?(a/1e3/60|0)+"分钟前":a<0?"未来":"刚刚"},digit:function(e,t){var i="";e=String(e),t=t||2;for(var o=e.length;o0;r--)if("interactive"===n[r].readyState){e=n[r].src;break}return e||n[o].src}();return e.substring(0,e.lastIndexOf("/")+1)}(),a=function(t){e.console&&console.error&&console.error("Layui hint: "+t)},i="undefined"!=typeof opera&&"[object Opera]"===opera.toString(),u={layer:"modules/layer",laydate:"modules/laydate",laypage:"modules/laypage",laytpl:"modules/laytpl",layim:"modules/layim",layedit:"modules/layedit",form:"modules/form",upload:"modules/upload",tree:"modules/tree",table:"modules/table",element:"modules/element",util:"modules/util",flow:"modules/flow",carousel:"modules/carousel",code:"modules/code",jquery:"modules/jquery",mobile:"modules/mobile","layui.all":"../layui.all"};o.prototype.cache=n,o.prototype.define=function(e,t){var o=this,r="function"==typeof e,a=function(){var e=function(e,t){layui[e]=t,n.status[e]=!0};return"function"==typeof t&&t(function(o,r){e(o,r),n.callback[o]=function(){t(e)}}),this};return r&&(t=e,e=[]),layui["layui.all"]||!layui["layui.all"]&&layui["layui.mobile"]?a.call(o):(o.use(e,a),o)},o.prototype.use=function(e,o,l){function s(e,t){var o="PLaySTATION 3"===navigator.platform?/^complete$/:/^(complete|loaded)$/;("load"===e.type||o.test((e.currentTarget||e.srcElement).readyState))&&(n.modules[f]=t,d.removeChild(v),function r(){return++m>1e3*n.timeout/4?a(f+" is not a valid module"):void(n.status[f]?c():setTimeout(r,4))}())}function c(){l.push(layui[f]),e.length>1?y.use(e.slice(1),o,l):"function"==typeof o&&o.apply(layui,l)}var y=this,p=n.dir=n.dir?n.dir:r,d=t.getElementsByTagName("head")[0];e="string"==typeof e?[e]:e,window.jQuery&&jQuery.fn.on&&(y.each(e,function(t,n){"jquery"===n&&e.splice(t,1)}),layui.jquery=layui.$=jQuery);var f=e[0],m=0;if(l=l||[],n.host=n.host||(p.match(/\/\/([\s\S]+?)\//)||["//"+location.host+"/"])[0],0===e.length||layui["layui.all"]&&u[f]||!layui["layui.all"]&&layui["layui.mobile"]&&u[f])return c(),y;if(n.modules[f])!function g(){return++m>1e3*n.timeout/4?a(f+" is not a valid module"):void("string"==typeof n.modules[f]&&n.status[f]?c():setTimeout(g,4))}();else{var v=t.createElement("script"),h=(u[f]?p+"lay/":/^\{\/\}/.test(y.modules[f])?"":n.base||"")+(y.modules[f]||f)+".js";h=h.replace(/^\{\/\}/,""),v.async=!0,v.charset="utf-8",v.src=h+function(){var e=n.version===!0?n.v||(new Date).getTime():n.version||"";return e?"?v="+e:""}(),d.appendChild(v),!v.attachEvent||v.attachEvent.toString&&v.attachEvent.toString().indexOf("[native code")<0||i?v.addEventListener("load",function(e){s(e,h)},!1):v.attachEvent("onreadystatechange",function(e){s(e,h)}),n.modules[f]=h}return y},o.prototype.getStyle=function(t,n){var o=t.currentStyle?t.currentStyle:e.getComputedStyle(t,null);return o[o.getPropertyValue?"getPropertyValue":"getAttribute"](n)},o.prototype.link=function(e,o,r){var i=this,u=t.createElement("link"),l=t.getElementsByTagName("head")[0];"string"==typeof o&&(r=o);var s=(r||e).replace(/\.|\//g,""),c=u.id="layuicss-"+s,y=0;return u.rel="stylesheet",u.href=e+(n.debug?"?v="+(new Date).getTime():""),u.media="all",t.getElementById(c)||l.appendChild(u),"function"!=typeof o?i:(function p(){return++y>1e3*n.timeout/100?a(e+" timeout"):void(1989===parseInt(i.getStyle(t.getElementById(c),"width"))?function(){o()}():setTimeout(p,100))}(),i)},n.callback={},o.prototype.factory=function(e){if(layui[e])return"function"==typeof n.callback[e]?n.callback[e]:null},o.prototype.addcss=function(e,t,o){return layui.link(n.dir+"css/"+e,t,o)},o.prototype.img=function(e,t,n){var o=new Image;return o.src=e,o.complete?t(o):(o.onload=function(){o.onload=null,t(o)},void(o.onerror=function(e){o.onerror=null,n(e)}))},o.prototype.config=function(e){e=e||{};for(var t in e)n[t]=e[t];return this},o.prototype.modules=function(){var e={};for(var t in u)e[t]=u[t];return e}(),o.prototype.extend=function(e){var t=this;e=e||{};for(var n in e)t[n]||t.modules[n]?a("模块名 "+n+" 已被占用"):t.modules[n]=e[n];return t},o.prototype.router=function(e){var t=this,e=e||location.hash,n={path:[],search:{},hash:(e.match(/[^#](#.*$)/)||[])[1]||""};return/^#\//.test(e)?(n.href=e=e.replace(/^#\//,""),e=e.replace(/([^#])(#.*$)/,"$1").split("/")||[],t.each(e,function(e,t){/^\w+=/.test(t)?function(){t=t.split("="),n.search[t[0]]=t[1]}():n.path.push(t)}),n):n},o.prototype.data=function(t,n,o){if(t=t||"layui",o=o||localStorage,e.JSON&&e.JSON.parse){if(null===n)return delete o[t];n="object"==typeof n?n:{key:n};try{var r=JSON.parse(o[t])}catch(a){var r={}}return"value"in n&&(r[n.key]=n.value),n.remove&&delete r[n.key],o[t]=JSON.stringify(r),n.key?r[n.key]:r}},o.prototype.sessionData=function(e,t){return this.data(e,t,sessionStorage)},o.prototype.device=function(t){var n=navigator.userAgent.toLowerCase(),o=function(e){var t=new RegExp(e+"/([^\\s\\_\\-]+)");return e=(n.match(t)||[])[1],e||!1},r={os:function(){return/windows/.test(n)?"windows":/linux/.test(n)?"linux":/iphone|ipod|ipad|ios/.test(n)?"ios":/mac/.test(n)?"mac":void 0}(),ie:function(){return!!(e.ActiveXObject||"ActiveXObject"in e)&&((n.match(/msie\s(\d+)/)||[])[1]||"11")}(),weixin:o("micromessenger")};return t&&!r[t]&&(r[t]=o(t)),r.android=/android/.test(n),r.ios="ios"===r.os,r},o.prototype.hint=function(){return{error:a}},o.prototype.each=function(e,t){var n,o=this;if("function"!=typeof t)return o;if(e=e||[],e.constructor===Object){for(n in e)if(t.call(e[n],n,e[n]))break}else for(n=0;na?1:r/g,">").replace(/'/g,"'").replace(/"/g,""")},error:function(e,r){var c="Laytpl Error:";return"object"==typeof console&&console.error(c+e+"\n"+(r||"")),c+e}},n=c.exp,t=function(e){this.tpl=e};t.pt=t.prototype,window.errors=0,t.pt.parse=function(e,t){var o=this,p=e,a=n("^"+r.open+"#",""),l=n(r.close+"$","");e=e.replace(/\s+|\r|\t|\n/g," ").replace(n(r.open+"#"),r.open+"# ").replace(n(r.close+"}"),"} "+r.close).replace(/\\/g,"\\\\").replace(n(r.open+"!(.+?)!"+r.close),function(e){return e=e.replace(n("^"+r.open+"!"),"").replace(n("!"+r.close),"").replace(n(r.open+"|"+r.close),function(e){return e.replace(/(.)/g,"\\$1")})}).replace(/(?="|')/g,"\\").replace(c.query(),function(e){return e=e.replace(a,"").replace(l,""),'";'+e.replace(/\\/g,"")+';view+="'}).replace(c.query(1),function(e){var c='"+(';return e.replace(/\s/g,"")===r.open+r.close?"":(e=e.replace(n(r.open+"|"+r.close),""),/^=/.test(e)&&(e=e.replace(/^=/,""),c='"+_escape_('),c+e.replace(/\\/g,"")+')+"')}),e='"use strict";var view = "'+e+'";return view;';try{return o.cache=e=new Function("d, _escape_",e),e(t,c.escape)}catch(u){return delete o.cache,c.error(u,p)}},t.pt.render=function(e,r){var n,t=this;return e?(n=t.cache?t.cache(e,c.escape):t.parse(t.tpl,e),r?void r(n):n):c.error("no data")};var o=function(e){return"string"!=typeof e?c.error("Template not found"):new t(e)};o.config=function(e){e=e||{};for(var c in e)r[c]=e[c]},o.v="1.2.0",e("laytpl",o)});layui.define(function(e){"use strict";var a=document,t="getElementById",n="getElementsByTagName",i="laypage",r="layui-disabled",u=function(e){var a=this;a.config=e||{},a.config.index=++s.index,a.render(!0)};u.prototype.type=function(){var e=this.config;if("object"==typeof e.elem)return void 0===e.elem.length?2:3},u.prototype.view=function(){var e=this,a=e.config,t=a.groups="groups"in a?0|a.groups:5;a.layout="object"==typeof a.layout?a.layout:["prev","page","next"],a.count=0|a.count,a.curr=0|a.curr||1,a.limits="object"==typeof a.limits?a.limits:[10,20,30,40,50],a.limit=0|a.limit||10,a.pages=Math.ceil(a.count/a.limit)||1,a.curr>a.pages&&(a.curr=a.pages),t<0?t=1:t>a.pages&&(t=a.pages),a.prev="prev"in a?a.prev:"上一页",a.next="next"in a?a.next:"下一页";var n=a.pages>t?Math.ceil((a.curr+(t>1?1:0))/(t>0?t:1)):1,i={prev:function(){return a.prev?''+a.prev+"":""}(),page:function(){var e=[];if(a.count<1)return"";n>1&&a.first!==!1&&0!==t&&e.push(''+(a.first||1)+"");var i=Math.floor((t-1)/2),r=n>1?a.curr-i:1,u=n>1?function(){var e=a.curr+(t-i-1);return e>a.pages?a.pages:e}():t;for(u-r2&&e.push('');r<=u;r++)r===a.curr?e.push('"+r+""):e.push(''+r+"");return a.pages>t&&a.pages>u&&a.last!==!1&&(u+1…'),0!==t&&e.push(''+(a.last||a.pages)+"")),e.join("")}(),next:function(){return a.next?''+a.next+"":""}(),count:'共 '+a.count+" 条",limit:function(){var e=['"}(),skip:function(){return['到第','','页',""].join("")}()};return['
      ',function(){var e=[];return layui.each(a.layout,function(a,t){i[t]&&e.push(i[t])}),e.join("")}(),"
      "].join("")},u.prototype.jump=function(e,a){if(e){var t=this,i=t.config,r=e.children,u=e[n]("button")[0],l=e[n]("input")[0],p=e[n]("select")[0],c=function(){var e=0|l.value.replace(/\s|\D/g,"");e&&(i.curr=e,t.render())};if(a)return c();for(var o=0,y=r.length;oi.pages||(i.curr=e,t.render())});p&&s.on(p,"change",function(){var e=this.value;i.curr*e>i.count&&(i.curr=Math.ceil(i.count/e)),i.limit=e,t.render()}),u&&s.on(u,"click",function(){c()})}},u.prototype.skip=function(e){if(e){var a=this,t=e[n]("input")[0];t&&s.on(t,"keyup",function(t){var n=this.value,i=t.keyCode;/^(37|38|39|40)$/.test(i)||(/\D/.test(n)&&(this.value=n.replace(/\D/,"")),13===i&&a.jump(e,!0))})}},u.prototype.render=function(e){var n=this,i=n.config,r=n.type(),u=n.view();2===r?i.elem&&(i.elem.innerHTML=u):3===r?i.elem.html(u):a[t](i.elem)&&(a[t](i.elem).innerHTML=u),i.jump&&i.jump(i,e);var s=a[t]("layui-laypage-"+i.index);n.jump(s),i.hash&&!e&&(location.hash="!"+i.hash+"="+i.curr),n.skip(s)};var s={render:function(e){var a=new u(e);return a.index},index:layui.laypage?layui.laypage.index+1e4:0,on:function(e,a,t){return e.attachEvent?e.attachEvent("on"+a,function(a){a.target=a.srcElement,t.call(e,a)}):e.addEventListener(a,t,!1),this}};e(i,s)});!function(){"use strict";var e=window.layui&&layui.define,t={getPath:function(){var e=document.currentScript?document.currentScript.src:function(){for(var e,t=document.scripts,n=t.length-1,a=n;a>0;a--)if("interactive"===t[a].readyState){e=t[a].src;break}return e||t[n].src}();return e.substring(0,e.lastIndexOf("/")+1)}(),getStyle:function(e,t){var n=e.currentStyle?e.currentStyle:window.getComputedStyle(e,null);return n[n.getPropertyValue?"getPropertyValue":"getAttribute"](t)},link:function(e,a,i){if(n.path){var r=document.getElementsByTagName("head")[0],o=document.createElement("link");"string"==typeof a&&(i=a);var s=(i||e).replace(/\.|\//g,""),l="layuicss-"+s,d=0;o.rel="stylesheet",o.href=n.path+e,o.id=l,document.getElementById(l)||r.appendChild(o),"function"==typeof a&&!function c(){return++d>80?window.console&&console.error("laydate.css: Invalid"):void(1989===parseInt(t.getStyle(document.getElementById(l),"width"))?a():setTimeout(c,100))}()}}},n={v:"5.0.9",config:{},index:window.laydate&&window.laydate.v?1e5:0,path:t.getPath,set:function(e){var t=this;return t.config=w.extend({},t.config,e),t},ready:function(a){var i="laydate",r="",o=(e?"modules/laydate/":"theme/")+"default/laydate.css?v="+n.v+r;return e?layui.addcss(o,a,i):t.link(o,a,i),this}},a=function(){var e=this;return{hint:function(t){e.hint.call(e,t)},config:e.config}},i="laydate",r=".layui-laydate",o="layui-this",s="laydate-disabled",l="开始日期超出了结束日期
      建议重新选择",d=[100,2e5],c="layui-laydate-static",m="layui-laydate-list",u="laydate-selected",h="layui-laydate-hint",y="laydate-day-prev",f="laydate-day-next",p="layui-laydate-footer",g=".laydate-btns-confirm",v="laydate-time-text",D=".laydate-btns-time",T=function(e){var t=this;t.index=++n.index,t.config=w.extend({},t.config,n.config,e),n.ready(function(){t.init()})},w=function(e){return new C(e)},C=function(e){for(var t=0,n="object"==typeof e?[e]:(this.selector=e,document.querySelectorAll(e||null));t0)return n[0].getAttribute(e)}():n.each(function(n,a){a.setAttribute(e,t)})},C.prototype.removeAttr=function(e){return this.each(function(t,n){n.removeAttribute(e)})},C.prototype.html=function(e){return this.each(function(t,n){n.innerHTML=e})},C.prototype.val=function(e){return this.each(function(t,n){n.value=e})},C.prototype.append=function(e){return this.each(function(t,n){"object"==typeof e?n.appendChild(e):n.innerHTML=n.innerHTML+e})},C.prototype.remove=function(e){return this.each(function(t,n){e?n.removeChild(e):n.parentNode.removeChild(n)})},C.prototype.on=function(e,t){return this.each(function(n,a){a.attachEvent?a.attachEvent("on"+e,function(e){e.target=e.srcElement,t.call(a,e)}):a.addEventListener(e,t,!1)})},C.prototype.off=function(e,t){return this.each(function(n,a){a.detachEvent?a.detachEvent("on"+e,t):a.removeEventListener(e,t,!1)})},T.isLeapYear=function(e){return e%4===0&&e%100!==0||e%400===0},T.prototype.config={type:"date",range:!1,format:"yyyy-MM-dd",value:null,min:"1900-1-1",max:"2099-12-31",trigger:"focus",show:!1,showBottom:!0,btns:["clear","now","confirm"],lang:"cn",theme:"default",position:null,calendar:!1,mark:{},zIndex:null,done:null,change:null},T.prototype.lang=function(){var e=this,t=e.config,n={cn:{weeks:["日","一","二","三","四","五","六"],time:["时","分","秒"],timeTips:"选择时间",startTime:"开始时间",endTime:"结束时间",dateTips:"返回日期",month:["一","二","三","四","五","六","七","八","九","十","十一","十二"],tools:{confirm:"确定",clear:"清空",now:"现在"}},en:{weeks:["Su","Mo","Tu","We","Th","Fr","Sa"],time:["Hours","Minutes","Seconds"],timeTips:"Select Time",startTime:"Start Time",endTime:"End Time",dateTips:"Select Date",month:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],tools:{confirm:"Confirm",clear:"Clear",now:"Now"}}};return n[t.lang]||n.cn},T.prototype.init=function(){var e=this,t=e.config,n="yyyy|y|MM|M|dd|d|HH|H|mm|m|ss|s",a="static"===t.position,i={year:"yyyy",month:"yyyy-MM",date:"yyyy-MM-dd",time:"HH:mm:ss",datetime:"yyyy-MM-dd HH:mm:ss"};t.elem=w(t.elem),t.eventElem=w(t.eventElem),t.elem[0]&&(t.range===!0&&(t.range="-"),t.format===i.date&&(t.format=i[t.type]),e.format=t.format.match(new RegExp(n+"|.","g"))||[],e.EXP_IF="",e.EXP_SPLIT="",w.each(e.format,function(t,a){var i=new RegExp(n).test(a)?"\\d{"+function(){return new RegExp(n).test(e.format[0===t?t+1:t-1]||"")?/^yyyy|y$/.test(a)?4:a.length:/^yyyy$/.test(a)?"1,4":/^y$/.test(a)?"1,308":"1,2"}()+"}":"\\"+a;e.EXP_IF=e.EXP_IF+i,e.EXP_SPLIT=e.EXP_SPLIT+"("+i+")"}),e.EXP_IF=new RegExp("^"+(t.range?e.EXP_IF+"\\s\\"+t.range+"\\s"+e.EXP_IF:e.EXP_IF)+"$"),e.EXP_SPLIT=new RegExp("^"+e.EXP_SPLIT+"$",""),e.isInput(t.elem[0])||"focus"===t.trigger&&(t.trigger="click"),t.elem.attr("lay-key")||(t.elem.attr("lay-key",e.index),t.eventElem.attr("lay-key",e.index)),t.mark=w.extend({},t.calendar&&"cn"===t.lang?{"0-1-1":"元旦","0-2-14":"情人","0-3-8":"妇女","0-3-12":"植树","0-4-1":"愚人","0-5-1":"劳动","0-5-4":"青年","0-6-1":"儿童","0-9-10":"教师","0-9-18":"国耻","0-10-1":"国庆","0-12-25":"圣诞"}:{},t.mark),w.each(["min","max"],function(e,n){var a=[],i=[];if("number"==typeof t[n]){var r=t[n],o=(new Date).getTime(),s=864e5,l=new Date(r?r0)return!0;var a=w.elem("div",{"class":"layui-laydate-header"}),i=[function(){var e=w.elem("i",{"class":"layui-icon laydate-icon laydate-prev-y"});return e.innerHTML="",e}(),function(){var e=w.elem("i",{"class":"layui-icon laydate-icon laydate-prev-m"});return e.innerHTML="",e}(),function(){var e=w.elem("div",{"class":"laydate-set-ym"}),t=w.elem("span"),n=w.elem("span");return e.appendChild(t),e.appendChild(n),e}(),function(){var e=w.elem("i",{"class":"layui-icon laydate-icon laydate-next-m"});return e.innerHTML="",e}(),function(){var e=w.elem("i",{"class":"layui-icon laydate-icon laydate-next-y"});return e.innerHTML="",e}()],d=w.elem("div",{"class":"layui-laydate-content"}),c=w.elem("table"),m=w.elem("thead"),u=w.elem("tr");w.each(i,function(e,t){a.appendChild(t)}),m.appendChild(u),w.each(new Array(6),function(e){var t=c.insertRow(0);w.each(new Array(7),function(a){if(0===e){var i=w.elem("th");i.innerHTML=n.weeks[a],u.appendChild(i)}t.insertCell(a)})}),c.insertBefore(m,c.children[0]),d.appendChild(c),r[e]=w.elem("div",{"class":"layui-laydate-main laydate-main-list-"+e}),r[e].appendChild(a),r[e].appendChild(d),o.push(i),s.push(d),l.push(c)}),w(d).html(function(){var e=[],i=[];return"datetime"===t.type&&e.push(''+n.timeTips+""),w.each(t.btns,function(e,r){var o=n.tools[r]||"btn";t.range&&"now"===r||(a&&"clear"===r&&(o="cn"===t.lang?"重置":"Reset"),i.push(''+o+""))}),e.push('"),e.join("")}()),w.each(r,function(e,t){i.appendChild(t)}),t.showBottom&&i.appendChild(d),/^#/.test(t.theme)){var m=w.elem("style"),u=["#{{id}} .layui-laydate-header{background-color:{{theme}};}","#{{id}} .layui-this{background-color:{{theme}} !important;}"].join("").replace(/{{id}}/g,e.elemID).replace(/{{theme}}/g,t.theme);"styleSheet"in m?(m.setAttribute("type","text/css"),m.styleSheet.cssText=u):m.innerHTML=u,w(i).addClass("laydate-theme-molv"),i.appendChild(m)}e.remove(T.thisElemDate),a?t.elem.append(i):(document.body.appendChild(i),e.position()),e.checkDate().calendar(),e.changeEvent(),T.thisElemDate=e.elemID,"function"==typeof t.ready&&t.ready(w.extend({},t.dateTime,{month:t.dateTime.month+1}))},T.prototype.remove=function(e){var t=this,n=(t.config,w("#"+(e||t.elemID)));return n.hasClass(c)||t.checkDate(function(){n.remove()}),t},T.prototype.position=function(){var e=this,t=e.config,n=e.bindElem||t.elem[0],a=n.getBoundingClientRect(),i=e.elem.offsetWidth,r=e.elem.offsetHeight,o=function(e){return e=e?"scrollLeft":"scrollTop",document.body[e]|document.documentElement[e]},s=function(e){return document.documentElement[e?"clientWidth":"clientHeight"]},l=5,d=a.left,c=a.bottom;d+i+l>s("width")&&(d=s("width")-i-l),c+r+l>s()&&(c=a.top>r?a.top-r:s()-r,c-=2*l),t.position&&(e.elem.style.position=t.position),e.elem.style.left=d+("fixed"===t.position?0:o(1))+"px",e.elem.style.top=c+("fixed"===t.position?0:o())+"px"},T.prototype.hint=function(e){var t=this,n=(t.config,w.elem("div",{"class":h}));n.innerHTML=e||"",w(t.elem).find("."+h).remove(),t.elem.appendChild(n),clearTimeout(t.hinTimer),t.hinTimer=setTimeout(function(){w(t.elem).find("."+h).remove()},3e3)},T.prototype.getAsYM=function(e,t,n){return n?t--:t++,t<0&&(t=11,e--),t>11&&(t=0,e++),[e,t]},T.prototype.systemDate=function(e){var t=e||new Date;return{year:t.getFullYear(),month:t.getMonth(),date:t.getDate(),hours:e?e.getHours():0,minutes:e?e.getMinutes():0,seconds:e?e.getSeconds():0}},T.prototype.checkDate=function(e){var t,a,i=this,r=(new Date,i.config),o=r.dateTime=r.dateTime||i.systemDate(),s=i.bindElem||r.elem[0],l=(i.isInput(s)?"val":"html",i.isInput(s)?s.value:"static"===r.position?"":s.innerHTML),c=function(e){e.year>d[1]&&(e.year=d[1],a=!0),e.month>11&&(e.month=11,a=!0),e.hours>23&&(e.hours=0,a=!0),e.minutes>59&&(e.minutes=0,e.hours++,a=!0),e.seconds>59&&(e.seconds=0,e.minutes++,a=!0),t=n.getEndDate(e.month+1,e.year),e.date>t&&(e.date=t,a=!0)},m=function(e,t,n){var o=["startTime","endTime"];t=(t.match(i.EXP_SPLIT)||[]).slice(1),n=n||0,r.range&&(i[o[n]]=i[o[n]]||{}),w.each(i.format,function(s,l){var c=parseFloat(t[s]);t[s].length必须遵循下述格式:
      "+(r.range?r.format+" "+r.range+" "+r.format:r.format)+"
      已为你重置"),a=!0):l&&l.constructor===Date?r.dateTime=i.systemDate(l):(r.dateTime=i.systemDate(),delete i.startState,delete i.endState,delete i.startDate,delete i.endDate,delete i.startTime,delete i.endTime),c(o),a&&l&&i.setValue(r.range?i.endDate?i.parse():"":i.parse()),e&&e(),i)},T.prototype.mark=function(e,t){var n,a=this,i=a.config;return w.each(i.mark,function(e,a){var i=e.split("-");i[0]!=t[0]&&0!=i[0]||i[1]!=t[1]&&0!=i[1]||i[2]!=t[2]||(n=a||t[2])}),n&&e.html(''+n+""),a},T.prototype.limit=function(e,t,n,a){var i,r=this,o=r.config,l={},d=o[n>41?"endDate":"dateTime"],c=w.extend({},d,t||{});return w.each({now:c,min:o.min,max:o.max},function(e,t){l[e]=r.newDate(w.extend({year:t.year,month:t.month,date:t.date},function(){var e={};return w.each(a,function(n,a){e[a]=t[a]}),e}())).getTime()}),i=l.nowl.max,e&&e[i?"addClass":"removeClass"](s),i},T.prototype.calendar=function(e){var t,a,i,r=this,s=r.config,l=e||s.dateTime,c=new Date,m=r.lang(),u="date"!==s.type&&"datetime"!==s.type,h=e?1:0,y=w(r.table[h]).find("td"),f=w(r.elemHeader[h][2]).find("span");if(l.yeard[1]&&(l.year=d[1],r.hint("最高只能支持到公元"+d[1]+"年")),r.firstDate||(r.firstDate=w.extend({},l)),c.setFullYear(l.year,l.month,1),t=c.getDay(),a=n.getEndDate(l.month||12,l.year),i=n.getEndDate(l.month+1,l.year),w.each(y,function(e,n){var d=[l.year,l.month],c=0;n=w(n),n.removeAttr("class"),e=t&&e=n.firstDate.year&&(r.month=a.max.month,r.date=a.max.date),n.limit(w(i),r,t),M++}),w(u[f?0:1]).attr("lay-ym",M-8+"-"+T[1]).html(b+p+" - "+(M-1+p))}else if("month"===e)w.each(new Array(12),function(e){var i=w.elem("li",{"lay-ym":e}),s={year:T[0],month:e};e+1==T[1]&&w(i).addClass(o),i.innerHTML=r.month[e]+(f?"月":""),d.appendChild(i),T[0]=n.firstDate.year&&(s.date=a.max.date),n.limit(w(i),s,t)}),w(u[f?0:1]).attr("lay-ym",T[0]+"-"+T[1]).html(T[0]+p);else if("time"===e){var E=function(){w(d).find("ol").each(function(e,a){w(a).find("li").each(function(a,i){n.limit(w(i),[{hours:a},{hours:n[x].hours,minutes:a},{hours:n[x].hours,minutes:n[x].minutes,seconds:a}][e],t,[["hours"],["hours","minutes"],["hours","minutes","seconds"]][e])})}),a.range||n.limit(w(n.footer).find(g),n[x],0,["hours","minutes","seconds"])};a.range?n[x]||(n[x]={hours:0,minutes:0,seconds:0}):n[x]=i,w.each([24,60,60],function(e,t){var a=w.elem("li"),i=["

      "+r.time[e]+"

        "];w.each(new Array(t),function(t){i.push(""+w.digit(t,2)+"")}),a.innerHTML=i.join("")+"
      ",d.appendChild(a)}),E()}if(y&&h.removeChild(y),h.appendChild(d),"year"===e||"month"===e)w(n.elemMain[t]).addClass("laydate-ym-show"),w(d).find("li").on("click",function(){var r=0|w(this).attr("lay-ym");if(!w(this).hasClass(s)){if(0===t)i[e]=r,l&&(n.startDate[e]=r),n.limit(w(n.footer).find(g),null,0);else if(l)n.endDate[e]=r;else{var c="year"===e?n.getAsYM(r,T[1]-1,"sub"):n.getAsYM(T[0],r,"sub");w.extend(i,{year:c[0],month:c[1]})}"year"===a.type||"month"===a.type?(w(d).find("."+o).removeClass(o),w(this).addClass(o),"month"===a.type&&"year"===e&&(n.listYM[t][0]=r,l&&(n[["startDate","endDate"][t]].year=r),n.list("month",t))):(n.checkDate("limit").calendar(),n.closeList()),n.setBtnStatus(),a.range||n.done(null,"change"),w(n.footer).find(D).removeClass(s)}});else{var S=w.elem("span",{"class":v}),k=function(){w(d).find("ol").each(function(e){var t=this,a=w(t).find("li");t.scrollTop=30*(n[x][C[e]]-2),t.scrollTop<=0&&a.each(function(e,n){if(!w(this).hasClass(s))return t.scrollTop=30*(e-2),!0})})},H=w(c[2]).find("."+v);k(),S.innerHTML=a.range?[r.startTime,r.endTime][t]:r.timeTips,w(n.elemMain[t]).addClass("laydate-time-show"),H[0]&&H.remove(),c[2].appendChild(S),w(d).find("ol").each(function(e){var t=this;w(t).find("li").on("click",function(){var r=0|this.innerHTML;w(this).hasClass(s)||(a.range?n[x][C[e]]=r:i[C[e]]=r,w(t).find("."+o).removeClass(o),w(this).addClass(o),E(),k(),(n.endDate||"time"===a.type)&&n.done(null,"change"),n.setBtnStatus())})})}return n},T.prototype.listYM=[],T.prototype.closeList=function(){var e=this;e.config;w.each(e.elemCont,function(t,n){w(this).find("."+m).remove(),w(e.elemMain[t]).removeClass("laydate-ym-show laydate-time-show")}),w(e.elem).find("."+v).remove()},T.prototype.setBtnStatus=function(e,t,n){var a,i=this,r=i.config,o=w(i.footer).find(g),d=r.range&&"date"!==r.type&&"time"!==r.type;d&&(t=t||i.startDate,n=n||i.endDate,a=i.newDate(t).getTime()>i.newDate(n).getTime(),i.limit(null,t)||i.limit(null,n)?o.addClass(s):o[a?"addClass":"removeClass"](s),e&&a&&i.hint("string"==typeof e?l.replace(/日期/g,e):l))},T.prototype.parse=function(e,t){var n=this,a=n.config,i=t||(e?w.extend({},n.endDate,n.endTime):a.range?w.extend({},n.startDate,n.startTime):a.dateTime),r=n.format.concat();return w.each(r,function(e,t){/yyyy|y/.test(t)?r[e]=w.digit(i.year,t.length):/MM|M/.test(t)?r[e]=w.digit(i.month+1,t.length):/dd|d/.test(t)?r[e]=w.digit(i.date,t.length):/HH|H/.test(t)?r[e]=w.digit(i.hours,t.length):/mm|m/.test(t)?r[e]=w.digit(i.minutes,t.length):/ss|s/.test(t)&&(r[e]=w.digit(i.seconds,t.length))}),a.range&&!e?r.join("")+" "+a.range+" "+n.parse(1):r.join("")},T.prototype.newDate=function(e){return e=e||{},new Date(e.year||1,e.month||0,e.date||1,e.hours||0,e.minutes||0,e.seconds||0)},T.prototype.setValue=function(e){var t=this,n=t.config,a=t.bindElem||n.elem[0],i=t.isInput(a)?"val":"html";return"static"===n.position||w(a)[i](e||""),this},T.prototype.stampRange=function(){var e,t,n=this,a=n.config,i=w(n.elem).find("td");if(a.range&&!n.endDate&&w(n.footer).find(g).addClass(s),n.endDate)return e=n.newDate({year:n.startDate.year,month:n.startDate.month,date:n.startDate.date}).getTime(),t=n.newDate({year:n.endDate.year,month:n.endDate.month,date:n.endDate.date}).getTime(),e>t?n.hint(l):void w.each(i,function(a,i){var r=w(i).attr("lay-ymd").split("-"),s=n.newDate({year:r[0],month:r[1]-1,date:r[2]}).getTime();w(i).removeClass(u+" "+o),s!==e&&s!==t||w(i).addClass(w(i).hasClass(y)||w(i).hasClass(f)?u:o),s>e&&s0&&t-1 in e)}function r(e,t,n){if(pe.isFunction(t))return pe.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return pe.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(Ce.test(t))return pe.filter(t,e,n);t=pe.filter(t,e)}return pe.grep(e,function(e){return pe.inArray(e,t)>-1!==n})}function i(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}function o(e){var t={};return pe.each(e.match(De)||[],function(e,n){t[n]=!0}),t}function a(){re.addEventListener?(re.removeEventListener("DOMContentLoaded",s),e.removeEventListener("load",s)):(re.detachEvent("onreadystatechange",s),e.detachEvent("onload",s))}function s(){(re.addEventListener||"load"===e.event.type||"complete"===re.readyState)&&(a(),pe.ready())}function u(e,t,n){if(void 0===n&&1===e.nodeType){var r="data-"+t.replace(_e,"-$1").toLowerCase();if(n=e.getAttribute(r),"string"==typeof n){try{n="true"===n||"false"!==n&&("null"===n?null:+n+""===n?+n:qe.test(n)?pe.parseJSON(n):n)}catch(i){}pe.data(e,t,n)}else n=void 0}return n}function l(e){var t;for(t in e)if(("data"!==t||!pe.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}function c(e,t,n,r){if(He(e)){var i,o,a=pe.expando,s=e.nodeType,u=s?pe.cache:e,l=s?e[a]:e[a]&&a;if(l&&u[l]&&(r||u[l].data)||void 0!==n||"string"!=typeof t)return l||(l=s?e[a]=ne.pop()||pe.guid++:a),u[l]||(u[l]=s?{}:{toJSON:pe.noop}),"object"!=typeof t&&"function"!=typeof t||(r?u[l]=pe.extend(u[l],t):u[l].data=pe.extend(u[l].data,t)),o=u[l],r||(o.data||(o.data={}),o=o.data),void 0!==n&&(o[pe.camelCase(t)]=n),"string"==typeof t?(i=o[t],null==i&&(i=o[pe.camelCase(t)])):i=o,i}}function f(e,t,n){if(He(e)){var r,i,o=e.nodeType,a=o?pe.cache:e,s=o?e[pe.expando]:pe.expando;if(a[s]){if(t&&(r=n?a[s]:a[s].data)){pe.isArray(t)?t=t.concat(pe.map(t,pe.camelCase)):t in r?t=[t]:(t=pe.camelCase(t),t=t in r?[t]:t.split(" ")),i=t.length;for(;i--;)delete r[t[i]];if(n?!l(r):!pe.isEmptyObject(r))return}(n||(delete a[s].data,l(a[s])))&&(o?pe.cleanData([e],!0):fe.deleteExpando||a!=a.window?delete a[s]:a[s]=void 0)}}}function d(e,t,n,r){var i,o=1,a=20,s=r?function(){return r.cur()}:function(){return pe.css(e,t,"")},u=s(),l=n&&n[3]||(pe.cssNumber[t]?"":"px"),c=(pe.cssNumber[t]||"px"!==l&&+u)&&Me.exec(pe.css(e,t));if(c&&c[3]!==l){l=l||c[3],n=n||[],c=+u||1;do o=o||".5",c/=o,pe.style(e,t,c+l);while(o!==(o=s()/u)&&1!==o&&--a)}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}function p(e){var t=ze.split("|"),n=e.createDocumentFragment();if(n.createElement)for(;t.length;)n.createElement(t.pop());return n}function h(e,t){var n,r,i=0,o="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):void 0;if(!o)for(o=[],n=e.childNodes||e;null!=(r=n[i]);i++)!t||pe.nodeName(r,t)?o.push(r):pe.merge(o,h(r,t));return void 0===t||t&&pe.nodeName(e,t)?pe.merge([e],o):o}function g(e,t){for(var n,r=0;null!=(n=e[r]);r++)pe._data(n,"globalEval",!t||pe._data(t[r],"globalEval"))}function m(e){Be.test(e.type)&&(e.defaultChecked=e.checked)}function y(e,t,n,r,i){for(var o,a,s,u,l,c,f,d=e.length,y=p(t),v=[],x=0;x"!==f[1]||Ve.test(a)?0:u:u.firstChild,o=a&&a.childNodes.length;o--;)pe.nodeName(c=a.childNodes[o],"tbody")&&!c.childNodes.length&&a.removeChild(c);for(pe.merge(v,u.childNodes),u.textContent="";u.firstChild;)u.removeChild(u.firstChild);u=y.lastChild}else v.push(t.createTextNode(a));for(u&&y.removeChild(u),fe.appendChecked||pe.grep(h(v,"input"),m),x=0;a=v[x++];)if(r&&pe.inArray(a,r)>-1)i&&i.push(a);else if(s=pe.contains(a.ownerDocument,a),u=h(y.appendChild(a),"script"),s&&g(u),n)for(o=0;a=u[o++];)Ie.test(a.type||"")&&n.push(a);return u=null,y}function v(){return!0}function x(){return!1}function b(){try{return re.activeElement}catch(e){}}function w(e,t,n,r,i,o){var a,s;if("object"==typeof t){"string"!=typeof n&&(r=r||n,n=void 0);for(s in t)w(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),i===!1)i=x;else if(!i)return e;return 1===o&&(a=i,i=function(e){return pe().off(e),a.apply(this,arguments)},i.guid=a.guid||(a.guid=pe.guid++)),e.each(function(){pe.event.add(this,t,i,r,n)})}function T(e,t){return pe.nodeName(e,"table")&&pe.nodeName(11!==t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function C(e){return e.type=(null!==pe.find.attr(e,"type"))+"/"+e.type,e}function E(e){var t=it.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function N(e,t){if(1===t.nodeType&&pe.hasData(e)){var n,r,i,o=pe._data(e),a=pe._data(t,o),s=o.events;if(s){delete a.handle,a.events={};for(n in s)for(r=0,i=s[n].length;r1&&"string"==typeof p&&!fe.checkClone&&rt.test(p))return e.each(function(i){var o=e.eq(i);g&&(t[0]=p.call(this,i,o.html())),S(o,t,n,r)});if(f&&(l=y(t,e[0].ownerDocument,!1,e,r),i=l.firstChild,1===l.childNodes.length&&(l=i),i||r)){for(s=pe.map(h(l,"script"),C),a=s.length;c")).appendTo(t.documentElement),t=(ut[0].contentWindow||ut[0].contentDocument).document,t.write(),t.close(),n=D(e,t),ut.detach()),lt[e]=n),n}function L(e,t){return{get:function(){return e()?void delete this.get:(this.get=t).apply(this,arguments)}}}function H(e){if(e in Et)return e;for(var t=e.charAt(0).toUpperCase()+e.slice(1),n=Ct.length;n--;)if(e=Ct[n]+t,e in Et)return e}function q(e,t){for(var n,r,i,o=[],a=0,s=e.length;a=0&&n=0},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},isPlainObject:function(e){var t;if(!e||"object"!==pe.type(e)||e.nodeType||pe.isWindow(e))return!1;try{if(e.constructor&&!ce.call(e,"constructor")&&!ce.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}if(!fe.ownFirst)for(t in e)return ce.call(e,t);for(t in e);return void 0===t||ce.call(e,t)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?ue[le.call(e)]||"object":typeof e},globalEval:function(t){t&&pe.trim(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(ge,"ms-").replace(me,ye)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t){var r,i=0;if(n(e))for(r=e.length;iT.cacheLength&&delete e[t.shift()],e[n+" "]=r}var t=[];return e}function r(e){return e[P]=!0,e}function i(e){var t=H.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function o(e,t){for(var n=e.split("|"),r=n.length;r--;)T.attrHandle[n[r]]=t}function a(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||V)-(~e.sourceIndex||V);if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function s(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function u(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function l(e){return r(function(t){return t=+t,r(function(n,r){for(var i,o=e([],n.length,t),a=o.length;a--;)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function c(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}function f(){}function d(e){for(var t=0,n=e.length,r="";t1?function(t,n,r){for(var i=e.length;i--;)if(!e[i](t,n,r))return!1;return!0}:e[0]}function g(e,n,r){for(var i=0,o=n.length;i-1&&(r[l]=!(a[l]=f))}}else x=m(x===a?x.splice(h,x.length):x),o?o(null,a,x,u):Q.apply(a,x)})}function v(e){for(var t,n,r,i=e.length,o=T.relative[e[0].type],a=o||T.relative[" "],s=o?1:0,u=p(function(e){return e===t},a,!0),l=p(function(e){return ee(t,e)>-1},a,!0),c=[function(e,n,r){var i=!o&&(r||n!==A)||((t=n).nodeType?u(e,n,r):l(e,n,r));return t=null,i}];s1&&h(c),s>1&&d(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(se,"$1"),n,s0,o=e.length>0,a=function(r,a,s,u,l){var c,f,d,p=0,h="0",g=r&&[],y=[],v=A,x=r||o&&T.find.TAG("*",l),b=W+=null==v?1:Math.random()||.1,w=x.length;for(l&&(A=a===H||a||l);h!==w&&null!=(c=x[h]);h++){if(o&&c){for(f=0,a||c.ownerDocument===H||(L(c),s=!_);d=e[f++];)if(d(c,a||H,s)){u.push(c);break}l&&(W=b)}i&&((c=!d&&c)&&p--,r&&g.push(c))}if(p+=h,i&&h!==p){for(f=0;d=n[f++];)d(g,y,a,s);if(r){if(p>0)for(;h--;)g[h]||y[h]||(y[h]=G.call(u));y=m(y)}Q.apply(u,y),l&&!r&&y.length>0&&p+n.length>1&&t.uniqueSort(u)}return l&&(W=b,A=v),g};return i?r(a):a}var b,w,T,C,E,N,k,S,A,D,j,L,H,q,_,F,M,O,R,P="sizzle"+1*new Date,B=e.document,W=0,I=0,$=n(),z=n(),X=n(),U=function(e,t){return e===t&&(j=!0),0},V=1<<31,Y={}.hasOwnProperty,J=[],G=J.pop,K=J.push,Q=J.push,Z=J.slice,ee=function(e,t){for(var n=0,r=e.length;n+~]|"+ne+")"+ne+"*"),ce=new RegExp("="+ne+"*([^\\]'\"]*?)"+ne+"*\\]","g"),fe=new RegExp(oe),de=new RegExp("^"+re+"$"),pe={ID:new RegExp("^#("+re+")"),CLASS:new RegExp("^\\.("+re+")"),TAG:new RegExp("^("+re+"|[*])"),ATTR:new RegExp("^"+ie),PSEUDO:new RegExp("^"+oe),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+ne+"*(even|odd|(([+-]|)(\\d*)n|)"+ne+"*(?:([+-]|)"+ne+"*(\\d+)|))"+ne+"*\\)|)","i"),bool:new RegExp("^(?:"+te+")$","i"),needsContext:new RegExp("^"+ne+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+ne+"*((?:-\\d)?\\d*)"+ne+"*\\)|)(?=[^-]|$)","i")},he=/^(?:input|select|textarea|button)$/i,ge=/^h\d$/i,me=/^[^{]+\{\s*\[native \w/,ye=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ve=/[+~]/,xe=/'|\\/g,be=new RegExp("\\\\([\\da-f]{1,6}"+ne+"?|("+ne+")|.)","ig"),we=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},Te=function(){L()};try{Q.apply(J=Z.call(B.childNodes),B.childNodes),J[B.childNodes.length].nodeType}catch(Ce){Q={apply:J.length?function(e,t){K.apply(e,Z.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}w=t.support={},E=t.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},L=t.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:B;return r!==H&&9===r.nodeType&&r.documentElement?(H=r,q=H.documentElement,_=!E(H),(n=H.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",Te,!1):n.attachEvent&&n.attachEvent("onunload",Te)),w.attributes=i(function(e){return e.className="i",!e.getAttribute("className")}),w.getElementsByTagName=i(function(e){return e.appendChild(H.createComment("")),!e.getElementsByTagName("*").length}),w.getElementsByClassName=me.test(H.getElementsByClassName),w.getById=i(function(e){return q.appendChild(e).id=P,!H.getElementsByName||!H.getElementsByName(P).length}),w.getById?(T.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&_){var n=t.getElementById(e);return n?[n]:[]}},T.filter.ID=function(e){var t=e.replace(be,we);return function(e){return e.getAttribute("id")===t}}):(delete T.find.ID,T.filter.ID=function(e){var t=e.replace(be,we);return function(e){var n="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}}),T.find.TAG=w.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):w.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){for(;n=o[i++];)1===n.nodeType&&r.push(n);return r}return o},T.find.CLASS=w.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&_)return t.getElementsByClassName(e)},M=[],F=[],(w.qsa=me.test(H.querySelectorAll))&&(i(function(e){q.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&F.push("[*^$]="+ne+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||F.push("\\["+ne+"*(?:value|"+te+")"),e.querySelectorAll("[id~="+P+"-]").length||F.push("~="),e.querySelectorAll(":checked").length||F.push(":checked"),e.querySelectorAll("a#"+P+"+*").length||F.push(".#.+[+~]")}),i(function(e){var t=H.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&F.push("name"+ne+"*[*^$|!~]?="),e.querySelectorAll(":enabled").length||F.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),F.push(",.*:")})),(w.matchesSelector=me.test(O=q.matches||q.webkitMatchesSelector||q.mozMatchesSelector||q.oMatchesSelector||q.msMatchesSelector))&&i(function(e){w.disconnectedMatch=O.call(e,"div"),O.call(e,"[s!='']:x"),M.push("!=",oe)}),F=F.length&&new RegExp(F.join("|")),M=M.length&&new RegExp(M.join("|")),t=me.test(q.compareDocumentPosition),R=t||me.test(q.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},U=t?function(e,t){if(e===t)return j=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n?n:(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1,1&n||!w.sortDetached&&t.compareDocumentPosition(e)===n?e===H||e.ownerDocument===B&&R(B,e)?-1:t===H||t.ownerDocument===B&&R(B,t)?1:D?ee(D,e)-ee(D,t):0:4&n?-1:1)}:function(e,t){if(e===t)return j=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,s=[e],u=[t];if(!i||!o)return e===H?-1:t===H?1:i?-1:o?1:D?ee(D,e)-ee(D,t):0;if(i===o)return a(e,t);for(n=e;n=n.parentNode;)s.unshift(n);for(n=t;n=n.parentNode;)u.unshift(n);for(;s[r]===u[r];)r++;return r?a(s[r],u[r]):s[r]===B?-1:u[r]===B?1:0},H):H},t.matches=function(e,n){return t(e,null,null,n)},t.matchesSelector=function(e,n){if((e.ownerDocument||e)!==H&&L(e),n=n.replace(ce,"='$1']"),w.matchesSelector&&_&&!X[n+" "]&&(!M||!M.test(n))&&(!F||!F.test(n)))try{var r=O.call(e,n);if(r||w.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(i){}return t(n,H,null,[e]).length>0},t.contains=function(e,t){return(e.ownerDocument||e)!==H&&L(e),R(e,t)},t.attr=function(e,t){(e.ownerDocument||e)!==H&&L(e);var n=T.attrHandle[t.toLowerCase()],r=n&&Y.call(T.attrHandle,t.toLowerCase())?n(e,t,!_):void 0;return void 0!==r?r:w.attributes||!_?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},t.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},t.uniqueSort=function(e){var t,n=[],r=0,i=0;if(j=!w.detectDuplicates,D=!w.sortStable&&e.slice(0),e.sort(U),j){for(;t=e[i++];)t===e[i]&&(r=n.push(i));for(;r--;)e.splice(n[r],1)}return D=null,e},C=t.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=C(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r++];)n+=C(t);return n},T=t.selectors={cacheLength:50,createPseudo:r,match:pe,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(be,we),e[3]=(e[3]||e[4]||e[5]||"").replace(be,we),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||t.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&t.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return pe.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&fe.test(n)&&(t=N(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(be,we).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=$[e+" "];return t||(t=new RegExp("(^|"+ne+")"+e+"("+ne+"|$)"))&&$(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,n,r){return function(i){var o=t.attr(i,e);return null==o?"!="===n:!n||(o+="","="===n?o===r:"!="===n?o!==r:"^="===n?r&&0===o.indexOf(r):"*="===n?r&&o.indexOf(r)>-1:"$="===n?r&&o.slice(-r.length)===r:"~="===n?(" "+o.replace(ae," ")+" ").indexOf(r)>-1:"|="===n&&(o===r||o.slice(0,r.length+1)===r+"-"))}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,f,d,p,h,g=o!==a?"nextSibling":"previousSibling",m=t.parentNode,y=s&&t.nodeName.toLowerCase(),v=!u&&!s,x=!1;if(m){if(o){for(;g;){for(d=t;d=d[g];)if(s?d.nodeName.toLowerCase()===y:1===d.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?m.firstChild:m.lastChild],a&&v){for(d=m,f=d[P]||(d[P]={}),c=f[d.uniqueID]||(f[d.uniqueID]={}), +/** layui-v2.2.6 MIT License By https://www.layui.com */ + ;!function(e){"use strict";var t=document,n={modules:{},status:{},timeout:10,event:{}},o=function(){this.v="2.2.6"},r=function(){var e=t.currentScript?t.currentScript.src:function(){for(var e,n=t.scripts,o=n.length-1,r=o;r>0;r--)if("interactive"===n[r].readyState){e=n[r].src;break}return e||n[o].src}();return e.substring(0,e.lastIndexOf("/")+1)}(),a=function(t){e.console&&console.error&&console.error("Layui hint: "+t)},i="undefined"!=typeof opera&&"[object Opera]"===opera.toString(),u={layer:"modules/layer",laydate:"modules/laydate",laypage:"modules/laypage",laytpl:"modules/laytpl",layim:"modules/layim",layedit:"modules/layedit",form:"modules/form",upload:"modules/upload",tree:"modules/tree",table:"modules/table",element:"modules/element",util:"modules/util",flow:"modules/flow",carousel:"modules/carousel",code:"modules/code",jquery:"modules/jquery",mobile:"modules/mobile","layui.all":"../layui.all"};o.prototype.cache=n,o.prototype.define=function(e,t){var o=this,r="function"==typeof e,a=function(){var e=function(e,t){layui[e]=t,n.status[e]=!0};return"function"==typeof t&&t(function(o,r){e(o,r),n.callback[o]=function(){t(e)}}),this};return r&&(t=e,e=[]),layui["layui.all"]||!layui["layui.all"]&&layui["layui.mobile"]?a.call(o):(o.use(e,a),o)},o.prototype.use=function(e,o,l){function s(e,t){var o="PLaySTATION 3"===navigator.platform?/^complete$/:/^(complete|loaded)$/;("load"===e.type||o.test((e.currentTarget||e.srcElement).readyState))&&(n.modules[f]=t,d.removeChild(v),function r(){return++m>1e3*n.timeout/4?a(f+" is not a valid module"):void(n.status[f]?c():setTimeout(r,4))}())}function c(){l.push(layui[f]),e.length>1?y.use(e.slice(1),o,l):"function"==typeof o&&o.apply(layui,l)}var y=this,p=n.dir=n.dir?n.dir:r,d=t.getElementsByTagName("head")[0];e="string"==typeof e?[e]:e,window.jQuery&&jQuery.fn.on&&(y.each(e,function(t,n){"jquery"===n&&e.splice(t,1)}),layui.jquery=layui.$=jQuery);var f=e[0],m=0;if(l=l||[],n.host=n.host||(p.match(/\/\/([\s\S]+?)\//)||["//"+location.host+"/"])[0],0===e.length||layui["layui.all"]&&u[f]||!layui["layui.all"]&&layui["layui.mobile"]&&u[f])return c(),y;if(n.modules[f])!function g(){return++m>1e3*n.timeout/4?a(f+" is not a valid module"):void("string"==typeof n.modules[f]&&n.status[f]?c():setTimeout(g,4))}();else{var v=t.createElement("script"),h=(u[f]?p+"lay/":/^\{\/\}/.test(y.modules[f])?"":n.base||"")+(y.modules[f]||f)+".js";h=h.replace(/^\{\/\}/,""),v.async=!0,v.charset="utf-8",v.src=h+function(){var e=n.version===!0?n.v||(new Date).getTime():n.version||"";return e?"?v="+e:""}(),d.appendChild(v),!v.attachEvent||v.attachEvent.toString&&v.attachEvent.toString().indexOf("[native code")<0||i?v.addEventListener("load",function(e){s(e,h)},!1):v.attachEvent("onreadystatechange",function(e){s(e,h)}),n.modules[f]=h}return y},o.prototype.getStyle=function(t,n){var o=t.currentStyle?t.currentStyle:e.getComputedStyle(t,null);return o[o.getPropertyValue?"getPropertyValue":"getAttribute"](n)},o.prototype.link=function(e,o,r){var i=this,u=t.createElement("link"),l=t.getElementsByTagName("head")[0];"string"==typeof o&&(r=o);var s=(r||e).replace(/\.|\//g,""),c=u.id="layuicss-"+s,y=0;return u.rel="stylesheet",u.href=e+(n.debug?"?v="+(new Date).getTime():""),u.media="all",t.getElementById(c)||l.appendChild(u),"function"!=typeof o?i:(function p(){return++y>1e3*n.timeout/100?a(e+" timeout"):void(1989===parseInt(i.getStyle(t.getElementById(c),"width"))?function(){o()}():setTimeout(p,100))}(),i)},n.callback={},o.prototype.factory=function(e){if(layui[e])return"function"==typeof n.callback[e]?n.callback[e]:null},o.prototype.addcss=function(e,t,o){return layui.link(n.dir+"css/"+e,t,o)},o.prototype.img=function(e,t,n){var o=new Image;return o.src=e,o.complete?t(o):(o.onload=function(){o.onload=null,t(o)},void(o.onerror=function(e){o.onerror=null,n(e)}))},o.prototype.config=function(e){e=e||{};for(var t in e)n[t]=e[t];return this},o.prototype.modules=function(){var e={};for(var t in u)e[t]=u[t];return e}(),o.prototype.extend=function(e){var t=this;e=e||{};for(var n in e)t[n]||t.modules[n]?a("模块名 "+n+" 已被占用"):t.modules[n]=e[n];return t},o.prototype.router=function(e){var t=this,e=e||location.hash,n={path:[],search:{},hash:(e.match(/[^#](#.*$)/)||[])[1]||""};return/^#\//.test(e)?(e=e.replace(/^#\//,""),n.href="/"+e,e=e.replace(/([^#])(#.*$)/,"$1").split("/")||[],t.each(e,function(e,t){/^\w+=/.test(t)?function(){t=t.split("="),n.search[t[0]]=t[1]}():n.path.push(t)}),n):n},o.prototype.data=function(t,n,o){if(t=t||"layui",o=o||localStorage,e.JSON&&e.JSON.parse){if(null===n)return delete o[t];n="object"==typeof n?n:{key:n};try{var r=JSON.parse(o[t])}catch(a){var r={}}return"value"in n&&(r[n.key]=n.value),n.remove&&delete r[n.key],o[t]=JSON.stringify(r),n.key?r[n.key]:r}},o.prototype.sessionData=function(e,t){return this.data(e,t,sessionStorage)},o.prototype.device=function(t){var n=navigator.userAgent.toLowerCase(),o=function(e){var t=new RegExp(e+"/([^\\s\\_\\-]+)");return e=(n.match(t)||[])[1],e||!1},r={os:function(){return/windows/.test(n)?"windows":/linux/.test(n)?"linux":/iphone|ipod|ipad|ios/.test(n)?"ios":/mac/.test(n)?"mac":void 0}(),ie:function(){return!!(e.ActiveXObject||"ActiveXObject"in e)&&((n.match(/msie\s(\d+)/)||[])[1]||"11")}(),weixin:o("micromessenger")};return t&&!r[t]&&(r[t]=o(t)),r.android=/android/.test(n),r.ios="ios"===r.os,r},o.prototype.hint=function(){return{error:a}},o.prototype.each=function(e,t){var n,o=this;if("function"!=typeof t)return o;if(e=e||[],e.constructor===Object){for(n in e)if(t.call(e[n],n,e[n]))break}else for(n=0;na?1:r/g,">").replace(/'/g,"'").replace(/"/g,""")},error:function(e,r){var c="Laytpl Error:";return"object"==typeof console&&console.error(c+e+"\n"+(r||"")),c+e}},n=c.exp,t=function(e){this.tpl=e};t.pt=t.prototype,window.errors=0,t.pt.parse=function(e,t){var o=this,p=e,a=n("^"+r.open+"#",""),l=n(r.close+"$","");e=e.replace(/\s+|\r|\t|\n/g," ").replace(n(r.open+"#"),r.open+"# ").replace(n(r.close+"}"),"} "+r.close).replace(/\\/g,"\\\\").replace(n(r.open+"!(.+?)!"+r.close),function(e){return e=e.replace(n("^"+r.open+"!"),"").replace(n("!"+r.close),"").replace(n(r.open+"|"+r.close),function(e){return e.replace(/(.)/g,"\\$1")})}).replace(/(?="|')/g,"\\").replace(c.query(),function(e){return e=e.replace(a,"").replace(l,""),'";'+e.replace(/\\/g,"")+';view+="'}).replace(c.query(1),function(e){var c='"+(';return e.replace(/\s/g,"")===r.open+r.close?"":(e=e.replace(n(r.open+"|"+r.close),""),/^=/.test(e)&&(e=e.replace(/^=/,""),c='"+_escape_('),c+e.replace(/\\/g,"")+')+"')}),e='"use strict";var view = "'+e+'";return view;';try{return o.cache=e=new Function("d, _escape_",e),e(t,c.escape)}catch(u){return delete o.cache,c.error(u,p)}},t.pt.render=function(e,r){var n,t=this;return e?(n=t.cache?t.cache(e,c.escape):t.parse(t.tpl,e),r?void r(n):n):c.error("no data")};var o=function(e){return"string"!=typeof e?c.error("Template not found"):new t(e)};o.config=function(e){e=e||{};for(var c in e)r[c]=e[c]},o.v="1.2.0",e("laytpl",o)});layui.define(function(e){"use strict";var a=document,t="getElementById",n="getElementsByTagName",i="laypage",r="layui-disabled",u=function(e){var a=this;a.config=e||{},a.config.index=++s.index,a.render(!0)};u.prototype.type=function(){var e=this.config;if("object"==typeof e.elem)return void 0===e.elem.length?2:3},u.prototype.view=function(){var e=this,a=e.config,t=a.groups="groups"in a?0|a.groups:5;a.layout="object"==typeof a.layout?a.layout:["prev","page","next"],a.count=0|a.count,a.curr=0|a.curr||1,a.limits="object"==typeof a.limits?a.limits:[10,20,30,40,50],a.limit=0|a.limit||10,a.pages=Math.ceil(a.count/a.limit)||1,a.curr>a.pages&&(a.curr=a.pages),t<0?t=1:t>a.pages&&(t=a.pages),a.prev="prev"in a?a.prev:"上一页",a.next="next"in a?a.next:"下一页";var n=a.pages>t?Math.ceil((a.curr+(t>1?1:0))/(t>0?t:1)):1,i={prev:function(){return a.prev?''+a.prev+"":""}(),page:function(){var e=[];if(a.count<1)return"";n>1&&a.first!==!1&&0!==t&&e.push(''+(a.first||1)+"");var i=Math.floor((t-1)/2),r=n>1?a.curr-i:1,u=n>1?function(){var e=a.curr+(t-i-1);return e>a.pages?a.pages:e}():t;for(u-r2&&e.push('');r<=u;r++)r===a.curr?e.push('"+r+""):e.push(''+r+"");return a.pages>t&&a.pages>u&&a.last!==!1&&(u+1…'),0!==t&&e.push(''+(a.last||a.pages)+"")),e.join("")}(),next:function(){return a.next?''+a.next+"":""}(),count:'共 '+a.count+" 条",limit:function(){var e=['"}(),skip:function(){return['到第','','页',""].join("")}()};return['
      ',function(){var e=[];return layui.each(a.layout,function(a,t){i[t]&&e.push(i[t])}),e.join("")}(),"
      "].join("")},u.prototype.jump=function(e,a){if(e){var t=this,i=t.config,r=e.children,u=e[n]("button")[0],l=e[n]("input")[0],p=e[n]("select")[0],c=function(){var e=0|l.value.replace(/\s|\D/g,"");e&&(i.curr=e,t.render())};if(a)return c();for(var o=0,y=r.length;oi.pages||(i.curr=e,t.render())});p&&s.on(p,"change",function(){var e=this.value;i.curr*e>i.count&&(i.curr=Math.ceil(i.count/e)),i.limit=e,t.render()}),u&&s.on(u,"click",function(){c()})}},u.prototype.skip=function(e){if(e){var a=this,t=e[n]("input")[0];t&&s.on(t,"keyup",function(t){var n=this.value,i=t.keyCode;/^(37|38|39|40)$/.test(i)||(/\D/.test(n)&&(this.value=n.replace(/\D/,"")),13===i&&a.jump(e,!0))})}},u.prototype.render=function(e){var n=this,i=n.config,r=n.type(),u=n.view();2===r?i.elem&&(i.elem.innerHTML=u):3===r?i.elem.html(u):a[t](i.elem)&&(a[t](i.elem).innerHTML=u),i.jump&&i.jump(i,e);var s=a[t]("layui-laypage-"+i.index);n.jump(s),i.hash&&!e&&(location.hash="!"+i.hash+"="+i.curr),n.skip(s)};var s={render:function(e){var a=new u(e);return a.index},index:layui.laypage?layui.laypage.index+1e4:0,on:function(e,a,t){return e.attachEvent?e.attachEvent("on"+a,function(a){a.target=a.srcElement,t.call(e,a)}):e.addEventListener(a,t,!1),this}};e(i,s)});!function(){"use strict";var e=window.layui&&layui.define,t={getPath:function(){var e=document.currentScript?document.currentScript.src:function(){for(var e,t=document.scripts,n=t.length-1,a=n;a>0;a--)if("interactive"===t[a].readyState){e=t[a].src;break}return e||t[n].src}();return e.substring(0,e.lastIndexOf("/")+1)}(),getStyle:function(e,t){var n=e.currentStyle?e.currentStyle:window.getComputedStyle(e,null);return n[n.getPropertyValue?"getPropertyValue":"getAttribute"](t)},link:function(e,a,i){if(n.path){var r=document.getElementsByTagName("head")[0],o=document.createElement("link");"string"==typeof a&&(i=a);var s=(i||e).replace(/\.|\//g,""),l="layuicss-"+s,d=0;o.rel="stylesheet",o.href=n.path+e,o.id=l,document.getElementById(l)||r.appendChild(o),"function"==typeof a&&!function c(){return++d>80?window.console&&console.error("laydate.css: Invalid"):void(1989===parseInt(t.getStyle(document.getElementById(l),"width"))?a():setTimeout(c,100))}()}}},n={v:"5.0.9",config:{},index:window.laydate&&window.laydate.v?1e5:0,path:t.getPath,set:function(e){var t=this;return t.config=w.extend({},t.config,e),t},ready:function(a){var i="laydate",r="",o=(e?"modules/laydate/":"theme/")+"default/laydate.css?v="+n.v+r;return e?layui.addcss(o,a,i):t.link(o,a,i),this}},a=function(){var e=this;return{hint:function(t){e.hint.call(e,t)},config:e.config}},i="laydate",r=".layui-laydate",o="layui-this",s="laydate-disabled",l="开始日期超出了结束日期
      建议重新选择",d=[100,2e5],c="layui-laydate-static",m="layui-laydate-list",u="laydate-selected",h="layui-laydate-hint",y="laydate-day-prev",f="laydate-day-next",p="layui-laydate-footer",g=".laydate-btns-confirm",v="laydate-time-text",D=".laydate-btns-time",T=function(e){var t=this;t.index=++n.index,t.config=w.extend({},t.config,n.config,e),n.ready(function(){t.init()})},w=function(e){return new C(e)},C=function(e){for(var t=0,n="object"==typeof e?[e]:(this.selector=e,document.querySelectorAll(e||null));t0)return n[0].getAttribute(e)}():n.each(function(n,a){a.setAttribute(e,t)})},C.prototype.removeAttr=function(e){return this.each(function(t,n){n.removeAttribute(e)})},C.prototype.html=function(e){return this.each(function(t,n){n.innerHTML=e})},C.prototype.val=function(e){return this.each(function(t,n){n.value=e})},C.prototype.append=function(e){return this.each(function(t,n){"object"==typeof e?n.appendChild(e):n.innerHTML=n.innerHTML+e})},C.prototype.remove=function(e){return this.each(function(t,n){e?n.removeChild(e):n.parentNode.removeChild(n)})},C.prototype.on=function(e,t){return this.each(function(n,a){a.attachEvent?a.attachEvent("on"+e,function(e){e.target=e.srcElement,t.call(a,e)}):a.addEventListener(e,t,!1)})},C.prototype.off=function(e,t){return this.each(function(n,a){a.detachEvent?a.detachEvent("on"+e,t):a.removeEventListener(e,t,!1)})},T.isLeapYear=function(e){return e%4===0&&e%100!==0||e%400===0},T.prototype.config={type:"date",range:!1,format:"yyyy-MM-dd",value:null,min:"1900-1-1",max:"2099-12-31",trigger:"focus",show:!1,showBottom:!0,btns:["clear","now","confirm"],lang:"cn",theme:"default",position:null,calendar:!1,mark:{},zIndex:null,done:null,change:null},T.prototype.lang=function(){var e=this,t=e.config,n={cn:{weeks:["日","一","二","三","四","五","六"],time:["时","分","秒"],timeTips:"选择时间",startTime:"开始时间",endTime:"结束时间",dateTips:"返回日期",month:["一","二","三","四","五","六","七","八","九","十","十一","十二"],tools:{confirm:"确定",clear:"清空",now:"现在"}},en:{weeks:["Su","Mo","Tu","We","Th","Fr","Sa"],time:["Hours","Minutes","Seconds"],timeTips:"Select Time",startTime:"Start Time",endTime:"End Time",dateTips:"Select Date",month:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],tools:{confirm:"Confirm",clear:"Clear",now:"Now"}}};return n[t.lang]||n.cn},T.prototype.init=function(){var e=this,t=e.config,n="yyyy|y|MM|M|dd|d|HH|H|mm|m|ss|s",a="static"===t.position,i={year:"yyyy",month:"yyyy-MM",date:"yyyy-MM-dd",time:"HH:mm:ss",datetime:"yyyy-MM-dd HH:mm:ss"};t.elem=w(t.elem),t.eventElem=w(t.eventElem),t.elem[0]&&(t.range===!0&&(t.range="-"),t.format===i.date&&(t.format=i[t.type]),e.format=t.format.match(new RegExp(n+"|.","g"))||[],e.EXP_IF="",e.EXP_SPLIT="",w.each(e.format,function(t,a){var i=new RegExp(n).test(a)?"\\d{"+function(){return new RegExp(n).test(e.format[0===t?t+1:t-1]||"")?/^yyyy|y$/.test(a)?4:a.length:/^yyyy$/.test(a)?"1,4":/^y$/.test(a)?"1,308":"1,2"}()+"}":"\\"+a;e.EXP_IF=e.EXP_IF+i,e.EXP_SPLIT=e.EXP_SPLIT+"("+i+")"}),e.EXP_IF=new RegExp("^"+(t.range?e.EXP_IF+"\\s\\"+t.range+"\\s"+e.EXP_IF:e.EXP_IF)+"$"),e.EXP_SPLIT=new RegExp("^"+e.EXP_SPLIT+"$",""),e.isInput(t.elem[0])||"focus"===t.trigger&&(t.trigger="click"),t.elem.attr("lay-key")||(t.elem.attr("lay-key",e.index),t.eventElem.attr("lay-key",e.index)),t.mark=w.extend({},t.calendar&&"cn"===t.lang?{"0-1-1":"元旦","0-2-14":"情人","0-3-8":"妇女","0-3-12":"植树","0-4-1":"愚人","0-5-1":"劳动","0-5-4":"青年","0-6-1":"儿童","0-9-10":"教师","0-9-18":"国耻","0-10-1":"国庆","0-12-25":"圣诞"}:{},t.mark),w.each(["min","max"],function(e,n){var a=[],i=[];if("number"==typeof t[n]){var r=t[n],o=(new Date).getTime(),s=864e5,l=new Date(r?r0)return!0;var a=w.elem("div",{"class":"layui-laydate-header"}),i=[function(){var e=w.elem("i",{"class":"layui-icon laydate-icon laydate-prev-y"});return e.innerHTML="",e}(),function(){var e=w.elem("i",{"class":"layui-icon laydate-icon laydate-prev-m"});return e.innerHTML="",e}(),function(){var e=w.elem("div",{"class":"laydate-set-ym"}),t=w.elem("span"),n=w.elem("span");return e.appendChild(t),e.appendChild(n),e}(),function(){var e=w.elem("i",{"class":"layui-icon laydate-icon laydate-next-m"});return e.innerHTML="",e}(),function(){var e=w.elem("i",{"class":"layui-icon laydate-icon laydate-next-y"});return e.innerHTML="",e}()],d=w.elem("div",{"class":"layui-laydate-content"}),c=w.elem("table"),m=w.elem("thead"),u=w.elem("tr");w.each(i,function(e,t){a.appendChild(t)}),m.appendChild(u),w.each(new Array(6),function(e){var t=c.insertRow(0);w.each(new Array(7),function(a){if(0===e){var i=w.elem("th");i.innerHTML=n.weeks[a],u.appendChild(i)}t.insertCell(a)})}),c.insertBefore(m,c.children[0]),d.appendChild(c),r[e]=w.elem("div",{"class":"layui-laydate-main laydate-main-list-"+e}),r[e].appendChild(a),r[e].appendChild(d),o.push(i),s.push(d),l.push(c)}),w(d).html(function(){var e=[],i=[];return"datetime"===t.type&&e.push(''+n.timeTips+""),w.each(t.btns,function(e,r){var o=n.tools[r]||"btn";t.range&&"now"===r||(a&&"clear"===r&&(o="cn"===t.lang?"重置":"Reset"),i.push(''+o+""))}),e.push('"),e.join("")}()),w.each(r,function(e,t){i.appendChild(t)}),t.showBottom&&i.appendChild(d),/^#/.test(t.theme)){var m=w.elem("style"),u=["#{{id}} .layui-laydate-header{background-color:{{theme}};}","#{{id}} .layui-this{background-color:{{theme}} !important;}"].join("").replace(/{{id}}/g,e.elemID).replace(/{{theme}}/g,t.theme);"styleSheet"in m?(m.setAttribute("type","text/css"),m.styleSheet.cssText=u):m.innerHTML=u,w(i).addClass("laydate-theme-molv"),i.appendChild(m)}e.remove(T.thisElemDate),a?t.elem.append(i):(document.body.appendChild(i),e.position()),e.checkDate().calendar(),e.changeEvent(),T.thisElemDate=e.elemID,"function"==typeof t.ready&&t.ready(w.extend({},t.dateTime,{month:t.dateTime.month+1}))},T.prototype.remove=function(e){var t=this,n=(t.config,w("#"+(e||t.elemID)));return n.hasClass(c)||t.checkDate(function(){n.remove()}),t},T.prototype.position=function(){var e=this,t=e.config,n=e.bindElem||t.elem[0],a=n.getBoundingClientRect(),i=e.elem.offsetWidth,r=e.elem.offsetHeight,o=function(e){return e=e?"scrollLeft":"scrollTop",document.body[e]|document.documentElement[e]},s=function(e){return document.documentElement[e?"clientWidth":"clientHeight"]},l=5,d=a.left,c=a.bottom;d+i+l>s("width")&&(d=s("width")-i-l),c+r+l>s()&&(c=a.top>r?a.top-r:s()-r,c-=2*l),t.position&&(e.elem.style.position=t.position),e.elem.style.left=d+("fixed"===t.position?0:o(1))+"px",e.elem.style.top=c+("fixed"===t.position?0:o())+"px"},T.prototype.hint=function(e){var t=this,n=(t.config,w.elem("div",{"class":h}));n.innerHTML=e||"",w(t.elem).find("."+h).remove(),t.elem.appendChild(n),clearTimeout(t.hinTimer),t.hinTimer=setTimeout(function(){w(t.elem).find("."+h).remove()},3e3)},T.prototype.getAsYM=function(e,t,n){return n?t--:t++,t<0&&(t=11,e--),t>11&&(t=0,e++),[e,t]},T.prototype.systemDate=function(e){var t=e||new Date;return{year:t.getFullYear(),month:t.getMonth(),date:t.getDate(),hours:e?e.getHours():0,minutes:e?e.getMinutes():0,seconds:e?e.getSeconds():0}},T.prototype.checkDate=function(e){var t,a,i=this,r=(new Date,i.config),o=r.dateTime=r.dateTime||i.systemDate(),s=i.bindElem||r.elem[0],l=(i.isInput(s)?"val":"html",i.isInput(s)?s.value:"static"===r.position?"":s.innerHTML),c=function(e){e.year>d[1]&&(e.year=d[1],a=!0),e.month>11&&(e.month=11,a=!0),e.hours>23&&(e.hours=0,a=!0),e.minutes>59&&(e.minutes=0,e.hours++,a=!0),e.seconds>59&&(e.seconds=0,e.minutes++,a=!0),t=n.getEndDate(e.month+1,e.year),e.date>t&&(e.date=t,a=!0)},m=function(e,t,n){var o=["startTime","endTime"];t=(t.match(i.EXP_SPLIT)||[]).slice(1),n=n||0,r.range&&(i[o[n]]=i[o[n]]||{}),w.each(i.format,function(s,l){var c=parseFloat(t[s]);t[s].length必须遵循下述格式:
      "+(r.range?r.format+" "+r.range+" "+r.format:r.format)+"
      已为你重置"),a=!0):l&&l.constructor===Date?r.dateTime=i.systemDate(l):(r.dateTime=i.systemDate(),delete i.startState,delete i.endState,delete i.startDate,delete i.endDate,delete i.startTime,delete i.endTime),c(o),a&&l&&i.setValue(r.range?i.endDate?i.parse():"":i.parse()),e&&e(),i)},T.prototype.mark=function(e,t){var n,a=this,i=a.config;return w.each(i.mark,function(e,a){var i=e.split("-");i[0]!=t[0]&&0!=i[0]||i[1]!=t[1]&&0!=i[1]||i[2]!=t[2]||(n=a||t[2])}),n&&e.html(''+n+""),a},T.prototype.limit=function(e,t,n,a){var i,r=this,o=r.config,l={},d=o[n>41?"endDate":"dateTime"],c=w.extend({},d,t||{});return w.each({now:c,min:o.min,max:o.max},function(e,t){l[e]=r.newDate(w.extend({year:t.year,month:t.month,date:t.date},function(){var e={};return w.each(a,function(n,a){e[a]=t[a]}),e}())).getTime()}),i=l.nowl.max,e&&e[i?"addClass":"removeClass"](s),i},T.prototype.calendar=function(e){var t,a,i,r=this,s=r.config,l=e||s.dateTime,c=new Date,m=r.lang(),u="date"!==s.type&&"datetime"!==s.type,h=e?1:0,y=w(r.table[h]).find("td"),f=w(r.elemHeader[h][2]).find("span");if(l.yeard[1]&&(l.year=d[1],r.hint("最高只能支持到公元"+d[1]+"年")),r.firstDate||(r.firstDate=w.extend({},l)),c.setFullYear(l.year,l.month,1),t=c.getDay(),a=n.getEndDate(l.month||12,l.year),i=n.getEndDate(l.month+1,l.year),w.each(y,function(e,n){var d=[l.year,l.month],c=0;n=w(n),n.removeAttr("class"),e=t&&e=n.firstDate.year&&(r.month=a.max.month,r.date=a.max.date),n.limit(w(i),r,t),M++}),w(u[f?0:1]).attr("lay-ym",M-8+"-"+T[1]).html(b+p+" - "+(M-1+p))}else if("month"===e)w.each(new Array(12),function(e){var i=w.elem("li",{"lay-ym":e}),s={year:T[0],month:e};e+1==T[1]&&w(i).addClass(o),i.innerHTML=r.month[e]+(f?"月":""),d.appendChild(i),T[0]=n.firstDate.year&&(s.date=a.max.date),n.limit(w(i),s,t)}),w(u[f?0:1]).attr("lay-ym",T[0]+"-"+T[1]).html(T[0]+p);else if("time"===e){var E=function(){w(d).find("ol").each(function(e,a){w(a).find("li").each(function(a,i){n.limit(w(i),[{hours:a},{hours:n[x].hours,minutes:a},{hours:n[x].hours,minutes:n[x].minutes,seconds:a}][e],t,[["hours"],["hours","minutes"],["hours","minutes","seconds"]][e])})}),a.range||n.limit(w(n.footer).find(g),n[x],0,["hours","minutes","seconds"])};a.range?n[x]||(n[x]={hours:0,minutes:0,seconds:0}):n[x]=i,w.each([24,60,60],function(e,t){var a=w.elem("li"),i=["

      "+r.time[e]+"

        "];w.each(new Array(t),function(t){i.push(""+w.digit(t,2)+"")}),a.innerHTML=i.join("")+"
      ",d.appendChild(a)}),E()}if(y&&h.removeChild(y),h.appendChild(d),"year"===e||"month"===e)w(n.elemMain[t]).addClass("laydate-ym-show"),w(d).find("li").on("click",function(){var r=0|w(this).attr("lay-ym");if(!w(this).hasClass(s)){if(0===t)i[e]=r,l&&(n.startDate[e]=r),n.limit(w(n.footer).find(g),null,0);else if(l)n.endDate[e]=r;else{var c="year"===e?n.getAsYM(r,T[1]-1,"sub"):n.getAsYM(T[0],r,"sub");w.extend(i,{year:c[0],month:c[1]})}"year"===a.type||"month"===a.type?(w(d).find("."+o).removeClass(o),w(this).addClass(o),"month"===a.type&&"year"===e&&(n.listYM[t][0]=r,l&&(n[["startDate","endDate"][t]].year=r),n.list("month",t))):(n.checkDate("limit").calendar(),n.closeList()),n.setBtnStatus(),a.range||n.done(null,"change"),w(n.footer).find(D).removeClass(s)}});else{var S=w.elem("span",{"class":v}),k=function(){w(d).find("ol").each(function(e){var t=this,a=w(t).find("li");t.scrollTop=30*(n[x][C[e]]-2),t.scrollTop<=0&&a.each(function(e,n){if(!w(this).hasClass(s))return t.scrollTop=30*(e-2),!0})})},H=w(c[2]).find("."+v);k(),S.innerHTML=a.range?[r.startTime,r.endTime][t]:r.timeTips,w(n.elemMain[t]).addClass("laydate-time-show"),H[0]&&H.remove(),c[2].appendChild(S),w(d).find("ol").each(function(e){var t=this;w(t).find("li").on("click",function(){var r=0|this.innerHTML;w(this).hasClass(s)||(a.range?n[x][C[e]]=r:i[C[e]]=r,w(t).find("."+o).removeClass(o),w(this).addClass(o),E(),k(),(n.endDate||"time"===a.type)&&n.done(null,"change"),n.setBtnStatus())})})}return n},T.prototype.listYM=[],T.prototype.closeList=function(){var e=this;e.config;w.each(e.elemCont,function(t,n){w(this).find("."+m).remove(),w(e.elemMain[t]).removeClass("laydate-ym-show laydate-time-show")}),w(e.elem).find("."+v).remove()},T.prototype.setBtnStatus=function(e,t,n){var a,i=this,r=i.config,o=w(i.footer).find(g),d=r.range&&"date"!==r.type&&"time"!==r.type;d&&(t=t||i.startDate,n=n||i.endDate,a=i.newDate(t).getTime()>i.newDate(n).getTime(),i.limit(null,t)||i.limit(null,n)?o.addClass(s):o[a?"addClass":"removeClass"](s),e&&a&&i.hint("string"==typeof e?l.replace(/日期/g,e):l))},T.prototype.parse=function(e,t){var n=this,a=n.config,i=t||(e?w.extend({},n.endDate,n.endTime):a.range?w.extend({},n.startDate,n.startTime):a.dateTime),r=n.format.concat();return w.each(r,function(e,t){/yyyy|y/.test(t)?r[e]=w.digit(i.year,t.length):/MM|M/.test(t)?r[e]=w.digit(i.month+1,t.length):/dd|d/.test(t)?r[e]=w.digit(i.date,t.length):/HH|H/.test(t)?r[e]=w.digit(i.hours,t.length):/mm|m/.test(t)?r[e]=w.digit(i.minutes,t.length):/ss|s/.test(t)&&(r[e]=w.digit(i.seconds,t.length))}),a.range&&!e?r.join("")+" "+a.range+" "+n.parse(1):r.join("")},T.prototype.newDate=function(e){return e=e||{},new Date(e.year||1,e.month||0,e.date||1,e.hours||0,e.minutes||0,e.seconds||0)},T.prototype.setValue=function(e){var t=this,n=t.config,a=t.bindElem||n.elem[0],i=t.isInput(a)?"val":"html";return"static"===n.position||w(a)[i](e||""),this},T.prototype.stampRange=function(){var e,t,n=this,a=n.config,i=w(n.elem).find("td");if(a.range&&!n.endDate&&w(n.footer).find(g).addClass(s),n.endDate)return e=n.newDate({year:n.startDate.year,month:n.startDate.month,date:n.startDate.date}).getTime(),t=n.newDate({year:n.endDate.year,month:n.endDate.month,date:n.endDate.date}).getTime(),e>t?n.hint(l):void w.each(i,function(a,i){var r=w(i).attr("lay-ymd").split("-"),s=n.newDate({year:r[0],month:r[1]-1,date:r[2]}).getTime();w(i).removeClass(u+" "+o),s!==e&&s!==t||w(i).addClass(w(i).hasClass(y)||w(i).hasClass(f)?u:o),s>e&&s0&&t-1 in e)}function r(e,t,n){if(pe.isFunction(t))return pe.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return pe.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(Ce.test(t))return pe.filter(t,e,n);t=pe.filter(t,e)}return pe.grep(e,function(e){return pe.inArray(e,t)>-1!==n})}function i(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}function o(e){var t={};return pe.each(e.match(De)||[],function(e,n){t[n]=!0}),t}function a(){re.addEventListener?(re.removeEventListener("DOMContentLoaded",s),e.removeEventListener("load",s)):(re.detachEvent("onreadystatechange",s),e.detachEvent("onload",s))}function s(){(re.addEventListener||"load"===e.event.type||"complete"===re.readyState)&&(a(),pe.ready())}function u(e,t,n){if(void 0===n&&1===e.nodeType){var r="data-"+t.replace(_e,"-$1").toLowerCase();if(n=e.getAttribute(r),"string"==typeof n){try{n="true"===n||"false"!==n&&("null"===n?null:+n+""===n?+n:qe.test(n)?pe.parseJSON(n):n)}catch(i){}pe.data(e,t,n)}else n=void 0}return n}function l(e){var t;for(t in e)if(("data"!==t||!pe.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}function c(e,t,n,r){if(He(e)){var i,o,a=pe.expando,s=e.nodeType,u=s?pe.cache:e,l=s?e[a]:e[a]&&a;if(l&&u[l]&&(r||u[l].data)||void 0!==n||"string"!=typeof t)return l||(l=s?e[a]=ne.pop()||pe.guid++:a),u[l]||(u[l]=s?{}:{toJSON:pe.noop}),"object"!=typeof t&&"function"!=typeof t||(r?u[l]=pe.extend(u[l],t):u[l].data=pe.extend(u[l].data,t)),o=u[l],r||(o.data||(o.data={}),o=o.data),void 0!==n&&(o[pe.camelCase(t)]=n),"string"==typeof t?(i=o[t],null==i&&(i=o[pe.camelCase(t)])):i=o,i}}function f(e,t,n){if(He(e)){var r,i,o=e.nodeType,a=o?pe.cache:e,s=o?e[pe.expando]:pe.expando;if(a[s]){if(t&&(r=n?a[s]:a[s].data)){pe.isArray(t)?t=t.concat(pe.map(t,pe.camelCase)):t in r?t=[t]:(t=pe.camelCase(t),t=t in r?[t]:t.split(" ")),i=t.length;for(;i--;)delete r[t[i]];if(n?!l(r):!pe.isEmptyObject(r))return}(n||(delete a[s].data,l(a[s])))&&(o?pe.cleanData([e],!0):fe.deleteExpando||a!=a.window?delete a[s]:a[s]=void 0)}}}function d(e,t,n,r){var i,o=1,a=20,s=r?function(){return r.cur()}:function(){return pe.css(e,t,"")},u=s(),l=n&&n[3]||(pe.cssNumber[t]?"":"px"),c=(pe.cssNumber[t]||"px"!==l&&+u)&&Me.exec(pe.css(e,t));if(c&&c[3]!==l){l=l||c[3],n=n||[],c=+u||1;do o=o||".5",c/=o,pe.style(e,t,c+l);while(o!==(o=s()/u)&&1!==o&&--a)}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}function p(e){var t=ze.split("|"),n=e.createDocumentFragment();if(n.createElement)for(;t.length;)n.createElement(t.pop());return n}function h(e,t){var n,r,i=0,o="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):void 0;if(!o)for(o=[],n=e.childNodes||e;null!=(r=n[i]);i++)!t||pe.nodeName(r,t)?o.push(r):pe.merge(o,h(r,t));return void 0===t||t&&pe.nodeName(e,t)?pe.merge([e],o):o}function g(e,t){for(var n,r=0;null!=(n=e[r]);r++)pe._data(n,"globalEval",!t||pe._data(t[r],"globalEval"))}function m(e){Be.test(e.type)&&(e.defaultChecked=e.checked)}function y(e,t,n,r,i){for(var o,a,s,u,l,c,f,d=e.length,y=p(t),v=[],x=0;x"!==f[1]||Ve.test(a)?0:u:u.firstChild,o=a&&a.childNodes.length;o--;)pe.nodeName(c=a.childNodes[o],"tbody")&&!c.childNodes.length&&a.removeChild(c);for(pe.merge(v,u.childNodes),u.textContent="";u.firstChild;)u.removeChild(u.firstChild);u=y.lastChild}else v.push(t.createTextNode(a));for(u&&y.removeChild(u),fe.appendChecked||pe.grep(h(v,"input"),m),x=0;a=v[x++];)if(r&&pe.inArray(a,r)>-1)i&&i.push(a);else if(s=pe.contains(a.ownerDocument,a),u=h(y.appendChild(a),"script"),s&&g(u),n)for(o=0;a=u[o++];)Ie.test(a.type||"")&&n.push(a);return u=null,y}function v(){return!0}function x(){return!1}function b(){try{return re.activeElement}catch(e){}}function w(e,t,n,r,i,o){var a,s;if("object"==typeof t){"string"!=typeof n&&(r=r||n,n=void 0);for(s in t)w(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),i===!1)i=x;else if(!i)return e;return 1===o&&(a=i,i=function(e){return pe().off(e),a.apply(this,arguments)},i.guid=a.guid||(a.guid=pe.guid++)),e.each(function(){pe.event.add(this,t,i,r,n)})}function T(e,t){return pe.nodeName(e,"table")&&pe.nodeName(11!==t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function C(e){return e.type=(null!==pe.find.attr(e,"type"))+"/"+e.type,e}function E(e){var t=it.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function N(e,t){if(1===t.nodeType&&pe.hasData(e)){var n,r,i,o=pe._data(e),a=pe._data(t,o),s=o.events;if(s){delete a.handle,a.events={};for(n in s)for(r=0,i=s[n].length;r1&&"string"==typeof p&&!fe.checkClone&&rt.test(p))return e.each(function(i){var o=e.eq(i);g&&(t[0]=p.call(this,i,o.html())),S(o,t,n,r)});if(f&&(l=y(t,e[0].ownerDocument,!1,e,r),i=l.firstChild,1===l.childNodes.length&&(l=i),i||r)){for(s=pe.map(h(l,"script"),C),a=s.length;c")).appendTo(t.documentElement),t=(ut[0].contentWindow||ut[0].contentDocument).document,t.write(),t.close(),n=D(e,t),ut.detach()),lt[e]=n),n}function L(e,t){return{get:function(){return e()?void delete this.get:(this.get=t).apply(this,arguments)}}}function H(e){if(e in Et)return e;for(var t=e.charAt(0).toUpperCase()+e.slice(1),n=Ct.length;n--;)if(e=Ct[n]+t,e in Et)return e}function q(e,t){for(var n,r,i,o=[],a=0,s=e.length;a=0&&n=0},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},isPlainObject:function(e){var t;if(!e||"object"!==pe.type(e)||e.nodeType||pe.isWindow(e))return!1;try{if(e.constructor&&!ce.call(e,"constructor")&&!ce.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}if(!fe.ownFirst)for(t in e)return ce.call(e,t);for(t in e);return void 0===t||ce.call(e,t)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?ue[le.call(e)]||"object":typeof e},globalEval:function(t){t&&pe.trim(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(ge,"ms-").replace(me,ye)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t){var r,i=0;if(n(e))for(r=e.length;iT.cacheLength&&delete e[t.shift()],e[n+" "]=r}var t=[];return e}function r(e){return e[P]=!0,e}function i(e){var t=H.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function o(e,t){for(var n=e.split("|"),r=n.length;r--;)T.attrHandle[n[r]]=t}function a(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||V)-(~e.sourceIndex||V);if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function s(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function u(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function l(e){return r(function(t){return t=+t,r(function(n,r){for(var i,o=e([],n.length,t),a=o.length;a--;)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function c(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}function f(){}function d(e){for(var t=0,n=e.length,r="";t1?function(t,n,r){for(var i=e.length;i--;)if(!e[i](t,n,r))return!1;return!0}:e[0]}function g(e,n,r){for(var i=0,o=n.length;i-1&&(r[l]=!(a[l]=f))}}else x=m(x===a?x.splice(h,x.length):x),o?o(null,a,x,u):Q.apply(a,x)})}function v(e){for(var t,n,r,i=e.length,o=T.relative[e[0].type],a=o||T.relative[" "],s=o?1:0,u=p(function(e){return e===t},a,!0),l=p(function(e){return ee(t,e)>-1},a,!0),c=[function(e,n,r){var i=!o&&(r||n!==A)||((t=n).nodeType?u(e,n,r):l(e,n,r));return t=null,i}];s1&&h(c),s>1&&d(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(se,"$1"),n,s0,o=e.length>0,a=function(r,a,s,u,l){var c,f,d,p=0,h="0",g=r&&[],y=[],v=A,x=r||o&&T.find.TAG("*",l),b=W+=null==v?1:Math.random()||.1,w=x.length;for(l&&(A=a===H||a||l);h!==w&&null!=(c=x[h]);h++){if(o&&c){for(f=0,a||c.ownerDocument===H||(L(c),s=!_);d=e[f++];)if(d(c,a||H,s)){u.push(c);break}l&&(W=b)}i&&((c=!d&&c)&&p--,r&&g.push(c))}if(p+=h,i&&h!==p){for(f=0;d=n[f++];)d(g,y,a,s);if(r){if(p>0)for(;h--;)g[h]||y[h]||(y[h]=G.call(u));y=m(y)}Q.apply(u,y),l&&!r&&y.length>0&&p+n.length>1&&t.uniqueSort(u)}return l&&(W=b,A=v),g};return i?r(a):a}var b,w,T,C,E,N,k,S,A,D,j,L,H,q,_,F,M,O,R,P="sizzle"+1*new Date,B=e.document,W=0,I=0,$=n(),z=n(),X=n(),U=function(e,t){return e===t&&(j=!0),0},V=1<<31,Y={}.hasOwnProperty,J=[],G=J.pop,K=J.push,Q=J.push,Z=J.slice,ee=function(e,t){for(var n=0,r=e.length;n+~]|"+ne+")"+ne+"*"),ce=new RegExp("="+ne+"*([^\\]'\"]*?)"+ne+"*\\]","g"),fe=new RegExp(oe),de=new RegExp("^"+re+"$"),pe={ID:new RegExp("^#("+re+")"),CLASS:new RegExp("^\\.("+re+")"),TAG:new RegExp("^("+re+"|[*])"),ATTR:new RegExp("^"+ie),PSEUDO:new RegExp("^"+oe),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+ne+"*(even|odd|(([+-]|)(\\d*)n|)"+ne+"*(?:([+-]|)"+ne+"*(\\d+)|))"+ne+"*\\)|)","i"),bool:new RegExp("^(?:"+te+")$","i"),needsContext:new RegExp("^"+ne+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+ne+"*((?:-\\d)?\\d*)"+ne+"*\\)|)(?=[^-]|$)","i")},he=/^(?:input|select|textarea|button)$/i,ge=/^h\d$/i,me=/^[^{]+\{\s*\[native \w/,ye=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ve=/[+~]/,xe=/'|\\/g,be=new RegExp("\\\\([\\da-f]{1,6}"+ne+"?|("+ne+")|.)","ig"),we=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},Te=function(){L()};try{Q.apply(J=Z.call(B.childNodes),B.childNodes),J[B.childNodes.length].nodeType}catch(Ce){Q={apply:J.length?function(e,t){K.apply(e,Z.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}w=t.support={},E=t.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},L=t.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:B;return r!==H&&9===r.nodeType&&r.documentElement?(H=r,q=H.documentElement,_=!E(H),(n=H.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",Te,!1):n.attachEvent&&n.attachEvent("onunload",Te)),w.attributes=i(function(e){return e.className="i",!e.getAttribute("className")}),w.getElementsByTagName=i(function(e){return e.appendChild(H.createComment("")),!e.getElementsByTagName("*").length}),w.getElementsByClassName=me.test(H.getElementsByClassName),w.getById=i(function(e){return q.appendChild(e).id=P,!H.getElementsByName||!H.getElementsByName(P).length}),w.getById?(T.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&_){var n=t.getElementById(e);return n?[n]:[]}},T.filter.ID=function(e){var t=e.replace(be,we);return function(e){return e.getAttribute("id")===t}}):(delete T.find.ID,T.filter.ID=function(e){var t=e.replace(be,we);return function(e){var n="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}}),T.find.TAG=w.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):w.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){for(;n=o[i++];)1===n.nodeType&&r.push(n);return r}return o},T.find.CLASS=w.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&_)return t.getElementsByClassName(e)},M=[],F=[],(w.qsa=me.test(H.querySelectorAll))&&(i(function(e){q.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&F.push("[*^$]="+ne+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||F.push("\\["+ne+"*(?:value|"+te+")"),e.querySelectorAll("[id~="+P+"-]").length||F.push("~="),e.querySelectorAll(":checked").length||F.push(":checked"),e.querySelectorAll("a#"+P+"+*").length||F.push(".#.+[+~]")}),i(function(e){var t=H.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&F.push("name"+ne+"*[*^$|!~]?="),e.querySelectorAll(":enabled").length||F.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),F.push(",.*:")})),(w.matchesSelector=me.test(O=q.matches||q.webkitMatchesSelector||q.mozMatchesSelector||q.oMatchesSelector||q.msMatchesSelector))&&i(function(e){w.disconnectedMatch=O.call(e,"div"),O.call(e,"[s!='']:x"),M.push("!=",oe)}),F=F.length&&new RegExp(F.join("|")),M=M.length&&new RegExp(M.join("|")),t=me.test(q.compareDocumentPosition),R=t||me.test(q.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},U=t?function(e,t){if(e===t)return j=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n?n:(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1,1&n||!w.sortDetached&&t.compareDocumentPosition(e)===n?e===H||e.ownerDocument===B&&R(B,e)?-1:t===H||t.ownerDocument===B&&R(B,t)?1:D?ee(D,e)-ee(D,t):0:4&n?-1:1)}:function(e,t){if(e===t)return j=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,s=[e],u=[t];if(!i||!o)return e===H?-1:t===H?1:i?-1:o?1:D?ee(D,e)-ee(D,t):0;if(i===o)return a(e,t);for(n=e;n=n.parentNode;)s.unshift(n);for(n=t;n=n.parentNode;)u.unshift(n);for(;s[r]===u[r];)r++;return r?a(s[r],u[r]):s[r]===B?-1:u[r]===B?1:0},H):H},t.matches=function(e,n){return t(e,null,null,n)},t.matchesSelector=function(e,n){if((e.ownerDocument||e)!==H&&L(e),n=n.replace(ce,"='$1']"),w.matchesSelector&&_&&!X[n+" "]&&(!M||!M.test(n))&&(!F||!F.test(n)))try{var r=O.call(e,n);if(r||w.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(i){}return t(n,H,null,[e]).length>0},t.contains=function(e,t){return(e.ownerDocument||e)!==H&&L(e),R(e,t)},t.attr=function(e,t){(e.ownerDocument||e)!==H&&L(e);var n=T.attrHandle[t.toLowerCase()],r=n&&Y.call(T.attrHandle,t.toLowerCase())?n(e,t,!_):void 0;return void 0!==r?r:w.attributes||!_?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},t.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},t.uniqueSort=function(e){var t,n=[],r=0,i=0;if(j=!w.detectDuplicates,D=!w.sortStable&&e.slice(0),e.sort(U),j){for(;t=e[i++];)t===e[i]&&(r=n.push(i));for(;r--;)e.splice(n[r],1)}return D=null,e},C=t.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=C(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r++];)n+=C(t);return n},T=t.selectors={cacheLength:50,createPseudo:r,match:pe,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(be,we),e[3]=(e[3]||e[4]||e[5]||"").replace(be,we),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||t.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&t.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return pe.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&fe.test(n)&&(t=N(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(be,we).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=$[e+" "];return t||(t=new RegExp("(^|"+ne+")"+e+"("+ne+"|$)"))&&$(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,n,r){return function(i){var o=t.attr(i,e);return null==o?"!="===n:!n||(o+="","="===n?o===r:"!="===n?o!==r:"^="===n?r&&0===o.indexOf(r):"*="===n?r&&o.indexOf(r)>-1:"$="===n?r&&o.slice(-r.length)===r:"~="===n?(" "+o.replace(ae," ")+" ").indexOf(r)>-1:"|="===n&&(o===r||o.slice(0,r.length+1)===r+"-"))}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,f,d,p,h,g=o!==a?"nextSibling":"previousSibling",m=t.parentNode,y=s&&t.nodeName.toLowerCase(),v=!u&&!s,x=!1;if(m){if(o){for(;g;){for(d=t;d=d[g];)if(s?d.nodeName.toLowerCase()===y:1===d.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?m.firstChild:m.lastChild],a&&v){for(d=m,f=d[P]||(d[P]={}),c=f[d.uniqueID]||(f[d.uniqueID]={}), l=c[e]||[],p=l[0]===W&&l[1],x=p&&l[2],d=p&&m.childNodes[p];d=++p&&d&&d[g]||(x=p=0)||h.pop();)if(1===d.nodeType&&++x&&d===t){c[e]=[W,p,x];break}}else if(v&&(d=t,f=d[P]||(d[P]={}),c=f[d.uniqueID]||(f[d.uniqueID]={}),l=c[e]||[],p=l[0]===W&&l[1],x=p),x===!1)for(;(d=++p&&d&&d[g]||(x=p=0)||h.pop())&&((s?d.nodeName.toLowerCase()!==y:1!==d.nodeType)||!++x||(v&&(f=d[P]||(d[P]={}),c=f[d.uniqueID]||(f[d.uniqueID]={}),c[e]=[W,x]),d!==t)););return x-=i,x===r||x%r===0&&x/r>=0}}},PSEUDO:function(e,n){var i,o=T.pseudos[e]||T.setFilters[e.toLowerCase()]||t.error("unsupported pseudo: "+e);return o[P]?o(n):o.length>1?(i=[e,e,"",n],T.setFilters.hasOwnProperty(e.toLowerCase())?r(function(e,t){for(var r,i=o(e,n),a=i.length;a--;)r=ee(e,i[a]),e[r]=!(t[r]=i[a])}):function(e){return o(e,0,i)}):o}},pseudos:{not:r(function(e){var t=[],n=[],i=k(e.replace(se,"$1"));return i[P]?r(function(e,t,n,r){for(var o,a=i(e,null,r,[]),s=e.length;s--;)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,r,o){return t[0]=e,i(t,null,o,n),t[0]=null,!n.pop()}}),has:r(function(e){return function(n){return t(e,n).length>0}}),contains:r(function(e){return e=e.replace(be,we),function(t){return(t.textContent||t.innerText||C(t)).indexOf(e)>-1}}),lang:r(function(e){return de.test(e||"")||t.error("unsupported lang: "+e),e=e.replace(be,we).toLowerCase(),function(t){var n;do if(n=_?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===q},focus:function(e){return e===H.activeElement&&(!H.hasFocus||H.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!T.pseudos.empty(e)},header:function(e){return ge.test(e.nodeName)},input:function(e){return he.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:l(function(){return[0]}),last:l(function(e,t){return[t-1]}),eq:l(function(e,t,n){return[n<0?n+t:n]}),even:l(function(e,t){for(var n=0;n=0;)e.push(r);return e}),gt:l(function(e,t,n){for(var r=n<0?n+t:n;++r2&&"ID"===(a=o[0]).type&&w.getById&&9===t.nodeType&&_&&T.relative[o[1].type]){if(t=(T.find.ID(a.matches[0].replace(be,we),t)||[])[0],!t)return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}for(i=pe.needsContext.test(e)?0:o.length;i--&&(a=o[i],!T.relative[s=a.type]);)if((u=T.find[s])&&(r=u(a.matches[0].replace(be,we),ve.test(o[0].type)&&c(t.parentNode)||t))){if(o.splice(i,1),e=r.length&&d(o),!e)return Q.apply(n,r),n;break}}return(l||k(e,f))(r,t,!_,n,!t||ve.test(e)&&c(t.parentNode)||t),n},w.sortStable=P.split("").sort(U).join("")===P,w.detectDuplicates=!!j,L(),w.sortDetached=i(function(e){return 1&e.compareDocumentPosition(H.createElement("div"))}),i(function(e){return e.innerHTML="","#"===e.firstChild.getAttribute("href")})||o("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),w.attributes&&i(function(e){return e.innerHTML="",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||o("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),i(function(e){return null==e.getAttribute("disabled")})||o(te,function(e,t,n){var r;if(!n)return e[t]===!0?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),t}(e);pe.find=ve,pe.expr=ve.selectors,pe.expr[":"]=pe.expr.pseudos,pe.uniqueSort=pe.unique=ve.uniqueSort,pe.text=ve.getText,pe.isXMLDoc=ve.isXML,pe.contains=ve.contains;var xe=function(e,t,n){for(var r=[],i=void 0!==n;(e=e[t])&&9!==e.nodeType;)if(1===e.nodeType){if(i&&pe(e).is(n))break;r.push(e)}return r},be=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},we=pe.expr.match.needsContext,Te=/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,Ce=/^.[^:#\[\.,]*$/;pe.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?pe.find.matchesSelector(r,e)?[r]:[]:pe.find.matches(e,pe.grep(t,function(e){return 1===e.nodeType}))},pe.fn.extend({find:function(e){var t,n=[],r=this,i=r.length;if("string"!=typeof e)return this.pushStack(pe(e).filter(function(){for(t=0;t1?pe.unique(n):n),n.selector=this.selector?this.selector+" "+e:e,n},filter:function(e){return this.pushStack(r(this,e||[],!1))},not:function(e){return this.pushStack(r(this,e||[],!0))},is:function(e){return!!r(this,"string"==typeof e&&we.test(e)?pe(e):e||[],!1).length}});var Ee,Ne=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,ke=pe.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||Ee,"string"==typeof e){if(r="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:Ne.exec(e),!r||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof pe?t[0]:t,pe.merge(this,pe.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:re,!0)),Te.test(r[1])&&pe.isPlainObject(t))for(r in t)pe.isFunction(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}if(i=re.getElementById(r[2]),i&&i.parentNode){if(i.id!==r[2])return Ee.find(e);this.length=1,this[0]=i}return this.context=re,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):pe.isFunction(e)?"undefined"!=typeof n.ready?n.ready(e):e(pe):(void 0!==e.selector&&(this.selector=e.selector,this.context=e.context),pe.makeArray(e,this))};ke.prototype=pe.fn,Ee=pe(re);var Se=/^(?:parents|prev(?:Until|All))/,Ae={children:!0,contents:!0,next:!0,prev:!0};pe.fn.extend({has:function(e){var t,n=pe(e,this),r=n.length;return this.filter(function(){for(t=0;t-1:1===n.nodeType&&pe.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?pe.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?pe.inArray(this[0],pe(e)):pe.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(pe.uniqueSort(pe.merge(this.get(),pe(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),pe.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return xe(e,"parentNode")},parentsUntil:function(e,t,n){return xe(e,"parentNode",n)},next:function(e){return i(e,"nextSibling")},prev:function(e){return i(e,"previousSibling")},nextAll:function(e){return xe(e,"nextSibling")},prevAll:function(e){return xe(e,"previousSibling")},nextUntil:function(e,t,n){return xe(e,"nextSibling",n)},prevUntil:function(e,t,n){return xe(e,"previousSibling",n)},siblings:function(e){return be((e.parentNode||{}).firstChild,e)},children:function(e){return be(e.firstChild)},contents:function(e){return pe.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:pe.merge([],e.childNodes)}},function(e,t){pe.fn[e]=function(n,r){var i=pe.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=pe.filter(r,i)),this.length>1&&(Ae[e]||(i=pe.uniqueSort(i)),Se.test(e)&&(i=i.reverse())),this.pushStack(i)}});var De=/\S+/g;pe.Callbacks=function(e){e="string"==typeof e?o(e):pe.extend({},e);var t,n,r,i,a=[],s=[],u=-1,l=function(){for(i=e.once,r=t=!0;s.length;u=-1)for(n=s.shift();++u-1;)a.splice(n,1),n<=u&&u--}),this},has:function(e){return e?pe.inArray(e,a)>-1:a.length>0},empty:function(){return a&&(a=[]),this},disable:function(){return i=s=[],a=n="",this},disabled:function(){return!a},lock:function(){return i=!0,n||c.disable(),this},locked:function(){return!!i},fireWith:function(e,n){return i||(n=n||[],n=[e,n.slice?n.slice():n],s.push(n),t||l()),this},fire:function(){return c.fireWith(this,arguments),this},fired:function(){return!!r}};return c},pe.extend({Deferred:function(e){var t=[["resolve","done",pe.Callbacks("once memory"),"resolved"],["reject","fail",pe.Callbacks("once memory"),"rejected"],["notify","progress",pe.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return pe.Deferred(function(n){pe.each(t,function(t,o){var a=pe.isFunction(e[t])&&e[t];i[o[1]](function(){var e=a&&a.apply(this,arguments);e&&pe.isFunction(e.promise)?e.promise().progress(n.notify).done(n.resolve).fail(n.reject):n[o[0]+"With"](this===r?n.promise():this,a?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?pe.extend(e,r):r}},i={};return r.pipe=r.then,pe.each(t,function(e,o){var a=o[2],s=o[3];r[o[1]]=a.add,s&&a.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=a.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t,n,r,i=0,o=ie.call(arguments),a=o.length,s=1!==a||e&&pe.isFunction(e.promise)?a:0,u=1===s?e:pe.Deferred(),l=function(e,n,r){return function(i){n[e]=this,r[e]=arguments.length>1?ie.call(arguments):i,r===t?u.notifyWith(n,r):--s||u.resolveWith(n,r)}};if(a>1)for(t=new Array(a),n=new Array(a),r=new Array(a);i0||(je.resolveWith(re,[pe]),pe.fn.triggerHandler&&(pe(re).triggerHandler("ready"),pe(re).off("ready"))))}}),pe.ready.promise=function(t){if(!je)if(je=pe.Deferred(),"complete"===re.readyState||"loading"!==re.readyState&&!re.documentElement.doScroll)e.setTimeout(pe.ready);else if(re.addEventListener)re.addEventListener("DOMContentLoaded",s),e.addEventListener("load",s);else{re.attachEvent("onreadystatechange",s),e.attachEvent("onload",s);var n=!1;try{n=null==e.frameElement&&re.documentElement}catch(r){}n&&n.doScroll&&!function i(){if(!pe.isReady){try{n.doScroll("left")}catch(t){return e.setTimeout(i,50)}a(),pe.ready()}}()}return je.promise(t)},pe.ready.promise();var Le;for(Le in pe(fe))break;fe.ownFirst="0"===Le,fe.inlineBlockNeedsLayout=!1,pe(function(){var e,t,n,r;n=re.getElementsByTagName("body")[0],n&&n.style&&(t=re.createElement("div"),r=re.createElement("div"),r.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",n.appendChild(r).appendChild(t),"undefined"!=typeof t.style.zoom&&(t.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",fe.inlineBlockNeedsLayout=e=3===t.offsetWidth,e&&(n.style.zoom=1)),n.removeChild(r))}),function(){var e=re.createElement("div");fe.deleteExpando=!0;try{delete e.test}catch(t){fe.deleteExpando=!1}e=null}();var He=function(e){var t=pe.noData[(e.nodeName+" ").toLowerCase()],n=+e.nodeType||1;return(1===n||9===n)&&(!t||t!==!0&&e.getAttribute("classid")===t)},qe=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,_e=/([A-Z])/g;pe.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(e){return e=e.nodeType?pe.cache[e[pe.expando]]:e[pe.expando],!!e&&!l(e)},data:function(e,t,n){return c(e,t,n)},removeData:function(e,t){return f(e,t)},_data:function(e,t,n){return c(e,t,n,!0)},_removeData:function(e,t){return f(e,t,!0)}}),pe.fn.extend({data:function(e,t){var n,r,i,o=this[0],a=o&&o.attributes;if(void 0===e){if(this.length&&(i=pe.data(o),1===o.nodeType&&!pe._data(o,"parsedAttrs"))){for(n=a.length;n--;)a[n]&&(r=a[n].name,0===r.indexOf("data-")&&(r=pe.camelCase(r.slice(5)),u(o,r,i[r])));pe._data(o,"parsedAttrs",!0)}return i}return"object"==typeof e?this.each(function(){pe.data(this,e)}):arguments.length>1?this.each(function(){pe.data(this,e,t)}):o?u(o,e,pe.data(o,e)):void 0},removeData:function(e){return this.each(function(){pe.removeData(this,e)})}}),pe.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=pe._data(e,t),n&&(!r||pe.isArray(n)?r=pe._data(e,t,pe.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=pe.queue(e,t),r=n.length,i=n.shift(),o=pe._queueHooks(e,t),a=function(){pe.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return pe._data(e,n)||pe._data(e,n,{empty:pe.Callbacks("once memory").add(function(){pe._removeData(e,t+"queue"),pe._removeData(e,n)})})}}),pe.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length
      a",fe.leadingWhitespace=3===e.firstChild.nodeType,fe.tbody=!e.getElementsByTagName("tbody").length,fe.htmlSerialize=!!e.getElementsByTagName("link").length,fe.html5Clone="<:nav>"!==re.createElement("nav").cloneNode(!0).outerHTML,n.type="checkbox",n.checked=!0,t.appendChild(n),fe.appendChecked=n.checked,e.innerHTML="",fe.noCloneChecked=!!e.cloneNode(!0).lastChild.defaultValue,t.appendChild(e),n=re.createElement("input"),n.setAttribute("type","radio"),n.setAttribute("checked","checked"),n.setAttribute("name","t"),e.appendChild(n),fe.checkClone=e.cloneNode(!0).cloneNode(!0).lastChild.checked,fe.noCloneEvent=!!e.addEventListener,e[pe.expando]=1,fe.attributes=!e.getAttribute(pe.expando)}();var Xe={option:[1,""],legend:[1,"
      ","
      "],area:[1,"",""],param:[1,"",""],thead:[1,"","
      "],tr:[2,"","
      "],col:[2,"","
      "],td:[3,"","
      "],_default:fe.htmlSerialize?[0,"",""]:[1,"X
      ","
      "]};Xe.optgroup=Xe.option,Xe.tbody=Xe.tfoot=Xe.colgroup=Xe.caption=Xe.thead,Xe.th=Xe.td;var Ue=/<|&#?\w+;/,Ve=/-1&&(h=p.split("."),p=h.shift(),h.sort()),a=p.indexOf(":")<0&&"on"+p,t=t[pe.expando]?t:new pe.Event(p,"object"==typeof t&&t),t.isTrigger=i?2:3,t.namespace=h.join("."),t.rnamespace=t.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=r),n=null==n?[t]:pe.makeArray(n,[t]),l=pe.event.special[p]||{},i||!l.trigger||l.trigger.apply(r,n)!==!1)){if(!i&&!l.noBubble&&!pe.isWindow(r)){for(u=l.delegateType||p,Ke.test(u+p)||(s=s.parentNode);s;s=s.parentNode)d.push(s),c=s;c===(r.ownerDocument||re)&&d.push(c.defaultView||c.parentWindow||e)}for(f=0;(s=d[f++])&&!t.isPropagationStopped();)t.type=f>1?u:l.bindType||p,o=(pe._data(s,"events")||{})[t.type]&&pe._data(s,"handle"),o&&o.apply(s,n),o=a&&s[a],o&&o.apply&&He(s)&&(t.result=o.apply(s,n),t.result===!1&&t.preventDefault());if(t.type=p,!i&&!t.isDefaultPrevented()&&(!l._default||l._default.apply(d.pop(),n)===!1)&&He(r)&&a&&r[p]&&!pe.isWindow(r)){c=r[a],c&&(r[a]=null),pe.event.triggered=p;try{r[p]()}catch(g){}pe.event.triggered=void 0,c&&(r[a]=c)}return t.result}},dispatch:function(e){e=pe.event.fix(e);var t,n,r,i,o,a=[],s=ie.call(arguments),u=(pe._data(this,"events")||{})[e.type]||[],l=pe.event.special[e.type]||{};if(s[0]=e,e.delegateTarget=this,!l.preDispatch||l.preDispatch.call(this,e)!==!1){for(a=pe.event.handlers.call(this,e,u),t=0;(i=a[t++])&&!e.isPropagationStopped();)for(e.currentTarget=i.elem,n=0;(o=i.handlers[n++])&&!e.isImmediatePropagationStopped();)e.rnamespace&&!e.rnamespace.test(o.namespace)||(e.handleObj=o,e.data=o.data,r=((pe.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,s),void 0!==r&&(e.result=r)===!1&&(e.preventDefault(),e.stopPropagation()));return l.postDispatch&&l.postDispatch.call(this,e),e.result}},handlers:function(e,t){var n,r,i,o,a=[],s=t.delegateCount,u=e.target;if(s&&u.nodeType&&("click"!==e.type||isNaN(e.button)||e.button<1))for(;u!=this;u=u.parentNode||this)if(1===u.nodeType&&(u.disabled!==!0||"click"!==e.type)){for(r=[],n=0;n-1:pe.find(i,this,null,[u]).length),r[i]&&r.push(o);r.length&&a.push({elem:u,handlers:r})}return s]","i"),tt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,nt=/\s*$/g,at=p(re),st=at.appendChild(re.createElement("div"));pe.extend({htmlPrefilter:function(e){return e.replace(tt,"<$1>")},clone:function(e,t,n){var r,i,o,a,s,u=pe.contains(e.ownerDocument,e);if(fe.html5Clone||pe.isXMLDoc(e)||!et.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(st.innerHTML=e.outerHTML,st.removeChild(o=st.firstChild)),!(fe.noCloneEvent&&fe.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||pe.isXMLDoc(e)))for(r=h(o),s=h(e),a=0;null!=(i=s[a]);++a)r[a]&&k(i,r[a]);if(t)if(n)for(s=s||h(e),r=r||h(o),a=0;null!=(i=s[a]);a++)N(i,r[a]);else N(e,o);return r=h(o,"script"),r.length>0&&g(r,!u&&h(e,"script")),r=s=i=null,o},cleanData:function(e,t){for(var n,r,i,o,a=0,s=pe.expando,u=pe.cache,l=fe.attributes,c=pe.event.special;null!=(n=e[a]);a++)if((t||He(n))&&(i=n[s],o=i&&u[i])){if(o.events)for(r in o.events)c[r]?pe.event.remove(n,r):pe.removeEvent(n,r,o.handle);u[i]&&(delete u[i],l||"undefined"==typeof n.removeAttribute?n[s]=void 0:n.removeAttribute(s),ne.push(i))}}}),pe.fn.extend({domManip:S,detach:function(e){return A(this,e,!0)},remove:function(e){return A(this,e)},text:function(e){return Pe(this,function(e){return void 0===e?pe.text(this):this.empty().append((this[0]&&this[0].ownerDocument||re).createTextNode(e))},null,e,arguments.length)},append:function(){return S(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=T(this,e);t.appendChild(e)}})},prepend:function(){return S(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=T(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return S(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return S(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++){for(1===e.nodeType&&pe.cleanData(h(e,!1));e.firstChild;)e.removeChild(e.firstChild);e.options&&pe.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return pe.clone(this,e,t)})},html:function(e){return Pe(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e)return 1===t.nodeType?t.innerHTML.replace(Ze,""):void 0;if("string"==typeof e&&!nt.test(e)&&(fe.htmlSerialize||!et.test(e))&&(fe.leadingWhitespace||!$e.test(e))&&!Xe[(We.exec(e)||["",""])[1].toLowerCase()]){e=pe.htmlPrefilter(e);try{for(;nt",t=l.getElementsByTagName("td"),t[0].style.cssText="margin:0;border:0;padding:0;display:none",o=0===t[0].offsetHeight,o&&(t[0].style.display="",t[1].style.display="none",o=0===t[0].offsetHeight)),f.removeChild(u)}var n,r,i,o,a,s,u=re.createElement("div"),l=re.createElement("div");l.style&&(l.style.cssText="float:left;opacity:.5",fe.opacity="0.5"===l.style.opacity,fe.cssFloat=!!l.style.cssFloat,l.style.backgroundClip="content-box",l.cloneNode(!0).style.backgroundClip="",fe.clearCloneStyle="content-box"===l.style.backgroundClip,u=re.createElement("div"),u.style.cssText="border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute",l.innerHTML="",u.appendChild(l),fe.boxSizing=""===l.style.boxSizing||""===l.style.MozBoxSizing||""===l.style.WebkitBoxSizing,pe.extend(fe,{reliableHiddenOffsets:function(){return null==n&&t(),o},boxSizingReliable:function(){return null==n&&t(),i},pixelMarginRight:function(){return null==n&&t(),r},pixelPosition:function(){return null==n&&t(),n},reliableMarginRight:function(){return null==n&&t(),a},reliableMarginLeft:function(){return null==n&&t(),s}}))}();var ht,gt,mt=/^(top|right|bottom|left)$/;e.getComputedStyle?(ht=function(t){var n=t.ownerDocument.defaultView;return n&&n.opener||(n=e),n.getComputedStyle(t)},gt=function(e,t,n){var r,i,o,a,s=e.style;return n=n||ht(e),a=n?n.getPropertyValue(t)||n[t]:void 0,""!==a&&void 0!==a||pe.contains(e.ownerDocument,e)||(a=pe.style(e,t)),n&&!fe.pixelMarginRight()&&ft.test(a)&&ct.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o),void 0===a?a:a+""}):pt.currentStyle&&(ht=function(e){return e.currentStyle},gt=function(e,t,n){var r,i,o,a,s=e.style;return n=n||ht(e),a=n?n[t]:void 0,null==a&&s&&s[t]&&(a=s[t]),ft.test(a)&&!mt.test(t)&&(r=s.left,i=e.runtimeStyle,o=i&&i.left,o&&(i.left=e.currentStyle.left),s.left="fontSize"===t?"1em":a,a=s.pixelLeft+"px",s.left=r,o&&(i.left=o)),void 0===a?a:a+""||"auto"});var yt=/alpha\([^)]*\)/i,vt=/opacity\s*=\s*([^)]*)/i,xt=/^(none|table(?!-c[ea]).+)/,bt=new RegExp("^("+Fe+")(.*)$","i"),wt={position:"absolute",visibility:"hidden",display:"block"},Tt={letterSpacing:"0",fontWeight:"400"},Ct=["Webkit","O","Moz","ms"],Et=re.createElement("div").style;pe.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=gt(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":fe.cssFloat?"cssFloat":"styleFloat"},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=pe.camelCase(t),u=e.style;if(t=pe.cssProps[s]||(pe.cssProps[s]=H(s)||s),a=pe.cssHooks[t]||pe.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:u[t];if(o=typeof n,"string"===o&&(i=Me.exec(n))&&i[1]&&(n=d(e,t,i),o="number"),null!=n&&n===n&&("number"===o&&(n+=i&&i[3]||(pe.cssNumber[s]?"":"px")),fe.clearCloneStyle||""!==n||0!==t.indexOf("background")||(u[t]="inherit"),!(a&&"set"in a&&void 0===(n=a.set(e,n,r)))))try{u[t]=n}catch(l){}}},css:function(e,t,n,r){var i,o,a,s=pe.camelCase(t);return t=pe.cssProps[s]||(pe.cssProps[s]=H(s)||s),a=pe.cssHooks[t]||pe.cssHooks[s],a&&"get"in a&&(o=a.get(e,!0,n)),void 0===o&&(o=gt(e,t,r)),"normal"===o&&t in Tt&&(o=Tt[t]),""===n||n?(i=parseFloat(o),n===!0||isFinite(i)?i||0:o):o}}),pe.each(["height","width"],function(e,t){pe.cssHooks[t]={get:function(e,n,r){if(n)return xt.test(pe.css(e,"display"))&&0===e.offsetWidth?dt(e,wt,function(){return M(e,t,r)}):M(e,t,r)},set:function(e,n,r){var i=r&&ht(e);return _(e,n,r?F(e,t,r,fe.boxSizing&&"border-box"===pe.css(e,"boxSizing",!1,i),i):0)}}}),fe.opacity||(pe.cssHooks.opacity={get:function(e,t){return vt.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=pe.isNumeric(t)?"alpha(opacity="+100*t+")":"",o=r&&r.filter||n.filter||"";n.zoom=1,(t>=1||""===t)&&""===pe.trim(o.replace(yt,""))&&n.removeAttribute&&(n.removeAttribute("filter"),""===t||r&&!r.filter)||(n.filter=yt.test(o)?o.replace(yt,i):o+" "+i)}}),pe.cssHooks.marginRight=L(fe.reliableMarginRight,function(e,t){if(t)return dt(e,{display:"inline-block"},gt,[e,"marginRight"])}),pe.cssHooks.marginLeft=L(fe.reliableMarginLeft,function(e,t){if(t)return(parseFloat(gt(e,"marginLeft"))||(pe.contains(e.ownerDocument,e)?e.getBoundingClientRect().left-dt(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}):0))+"px"}),pe.each({margin:"",padding:"",border:"Width"},function(e,t){pe.cssHooks[e+t]={expand:function(n){for(var r=0,i={},o="string"==typeof n?n.split(" "):[n];r<4;r++)i[e+Oe[r]+t]=o[r]||o[r-2]||o[0];return i}},ct.test(e)||(pe.cssHooks[e+t].set=_)}),pe.fn.extend({css:function(e,t){return Pe(this,function(e,t,n){var r,i,o={},a=0;if(pe.isArray(t)){for(r=ht(e),i=t.length;a1)},show:function(){return q(this,!0)},hide:function(){return q(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){Re(this)?pe(this).show():pe(this).hide()})}}),pe.Tween=O,O.prototype={constructor:O,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||pe.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(pe.cssNumber[n]?"":"px")},cur:function(){var e=O.propHooks[this.prop];return e&&e.get?e.get(this):O.propHooks._default.get(this)},run:function(e){var t,n=O.propHooks[this.prop];return this.options.duration?this.pos=t=pe.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):O.propHooks._default.set(this),this}},O.prototype.init.prototype=O.prototype,O.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=pe.css(e.elem,e.prop,""),t&&"auto"!==t?t:0)},set:function(e){pe.fx.step[e.prop]?pe.fx.step[e.prop](e):1!==e.elem.nodeType||null==e.elem.style[pe.cssProps[e.prop]]&&!pe.cssHooks[e.prop]?e.elem[e.prop]=e.now:pe.style(e.elem,e.prop,e.now+e.unit)}}},O.propHooks.scrollTop=O.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},pe.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},pe.fx=O.prototype.init,pe.fx.step={};var Nt,kt,St=/^(?:toggle|show|hide)$/,At=/queueHooks$/;pe.Animation=pe.extend($,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return d(n.elem,e,Me.exec(t),n),n}]},tweener:function(e,t){pe.isFunction(e)?(t=e,e=["*"]):e=e.match(De);for(var n,r=0,i=e.length;r
      a",e=n.getElementsByTagName("a")[0],t.setAttribute("type","checkbox"),n.appendChild(t),e=n.getElementsByTagName("a")[0],e.style.cssText="top:1px",fe.getSetAttribute="t"!==n.className,fe.style=/top/.test(e.getAttribute("style")),fe.hrefNormalized="/a"===e.getAttribute("href"),fe.checkOn=!!t.value,fe.optSelected=i.selected,fe.enctype=!!re.createElement("form").enctype,r.disabled=!0,fe.optDisabled=!i.disabled,t=re.createElement("input"),t.setAttribute("value",""),fe.input=""===t.getAttribute("value"),t.value="t",t.setAttribute("type","radio"),fe.radioValue="t"===t.value}();var Dt=/\r/g,jt=/[\x20\t\r\n\f]+/g;pe.fn.extend({val:function(e){var t,n,r,i=this[0];{if(arguments.length)return r=pe.isFunction(e),this.each(function(n){var i;1===this.nodeType&&(i=r?e.call(this,n,pe(this).val()):e,null==i?i="":"number"==typeof i?i+="":pe.isArray(i)&&(i=pe.map(i,function(e){return null==e?"":e+""})),t=pe.valHooks[this.type]||pe.valHooks[this.nodeName.toLowerCase()],t&&"set"in t&&void 0!==t.set(this,i,"value")||(this.value=i))});if(i)return t=pe.valHooks[i.type]||pe.valHooks[i.nodeName.toLowerCase()],t&&"get"in t&&void 0!==(n=t.get(i,"value"))?n:(n=i.value,"string"==typeof n?n.replace(Dt,""):null==n?"":n)}}}),pe.extend({valHooks:{option:{get:function(e){var t=pe.find.attr(e,"value");return null!=t?t:pe.trim(pe.text(e)).replace(jt," ")}},select:{get:function(e){for(var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||i<0,a=o?null:[],s=o?i+1:r.length,u=i<0?s:o?i:0;u-1)try{r.selected=n=!0}catch(s){r.scrollHeight}else r.selected=!1;return n||(e.selectedIndex=-1),i}}}}),pe.each(["radio","checkbox"],function(){pe.valHooks[this]={set:function(e,t){if(pe.isArray(t))return e.checked=pe.inArray(pe(e).val(),t)>-1}},fe.checkOn||(pe.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var Lt,Ht,qt=pe.expr.attrHandle,_t=/^(?:checked|selected)$/i,Ft=fe.getSetAttribute,Mt=fe.input;pe.fn.extend({attr:function(e,t){return Pe(this,pe.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){pe.removeAttr(this,e)})}}),pe.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?pe.prop(e,t,n):(1===o&&pe.isXMLDoc(e)||(t=t.toLowerCase(),i=pe.attrHooks[t]||(pe.expr.match.bool.test(t)?Ht:Lt)),void 0!==n?null===n?void pe.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:(r=pe.find.attr(e,t),null==r?void 0:r))},attrHooks:{type:{set:function(e,t){if(!fe.radioValue&&"radio"===t&&pe.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(De);if(o&&1===e.nodeType)for(;n=o[i++];)r=pe.propFix[n]||n,pe.expr.match.bool.test(n)?Mt&&Ft||!_t.test(n)?e[r]=!1:e[pe.camelCase("default-"+n)]=e[r]=!1:pe.attr(e,n,""),e.removeAttribute(Ft?n:r)}}),Ht={set:function(e,t,n){return t===!1?pe.removeAttr(e,n):Mt&&Ft||!_t.test(n)?e.setAttribute(!Ft&&pe.propFix[n]||n,n):e[pe.camelCase("default-"+n)]=e[n]=!0,n}},pe.each(pe.expr.match.bool.source.match(/\w+/g),function(e,t){var n=qt[t]||pe.find.attr;Mt&&Ft||!_t.test(t)?qt[t]=function(e,t,r){var i,o;return r||(o=qt[t],qt[t]=i,i=null!=n(e,t,r)?t.toLowerCase():null,qt[t]=o),i}:qt[t]=function(e,t,n){if(!n)return e[pe.camelCase("default-"+t)]?t.toLowerCase():null}}),Mt&&Ft||(pe.attrHooks.value={set:function(e,t,n){return pe.nodeName(e,"input")?void(e.defaultValue=t):Lt&&Lt.set(e,t,n)}}),Ft||(Lt={set:function(e,t,n){var r=e.getAttributeNode(n);if(r||e.setAttributeNode(r=e.ownerDocument.createAttribute(n)),r.value=t+="","value"===n||t===e.getAttribute(n))return t}},qt.id=qt.name=qt.coords=function(e,t,n){var r;if(!n)return(r=e.getAttributeNode(t))&&""!==r.value?r.value:null},pe.valHooks.button={get:function(e,t){var n=e.getAttributeNode(t);if(n&&n.specified)return n.value},set:Lt.set},pe.attrHooks.contenteditable={set:function(e,t,n){Lt.set(e,""!==t&&t,n)}},pe.each(["width","height"],function(e,t){pe.attrHooks[t]={set:function(e,n){if(""===n)return e.setAttribute(t,"auto"),n}}})),fe.style||(pe.attrHooks.style={get:function(e){return e.style.cssText||void 0},set:function(e,t){return e.style.cssText=t+""}});var Ot=/^(?:input|select|textarea|button|object)$/i,Rt=/^(?:a|area)$/i;pe.fn.extend({prop:function(e,t){return Pe(this,pe.prop,e,t,arguments.length>1)},removeProp:function(e){return e=pe.propFix[e]||e,this.each(function(){try{this[e]=void 0,delete this[e]}catch(t){}})}}),pe.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&pe.isXMLDoc(e)||(t=pe.propFix[t]||t,i=pe.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=pe.find.attr(e,"tabindex");return t?parseInt(t,10):Ot.test(e.nodeName)||Rt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),fe.hrefNormalized||pe.each(["href","src"],function(e,t){pe.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}}),fe.optSelected||(pe.propHooks.selected={get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),pe.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){pe.propFix[this.toLowerCase()]=this}),fe.enctype||(pe.propFix.enctype="encoding");var Pt=/[\t\r\n\f]/g;pe.fn.extend({addClass:function(e){var t,n,r,i,o,a,s,u=0;if(pe.isFunction(e))return this.each(function(t){pe(this).addClass(e.call(this,t,z(this)))});if("string"==typeof e&&e)for(t=e.match(De)||[];n=this[u++];)if(i=z(n),r=1===n.nodeType&&(" "+i+" ").replace(Pt," ")){for(a=0;o=t[a++];)r.indexOf(" "+o+" ")<0&&(r+=o+" ");s=pe.trim(r),i!==s&&pe.attr(n,"class",s)}return this},removeClass:function(e){var t,n,r,i,o,a,s,u=0;if(pe.isFunction(e))return this.each(function(t){pe(this).removeClass(e.call(this,t,z(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof e&&e)for(t=e.match(De)||[];n=this[u++];)if(i=z(n),r=1===n.nodeType&&(" "+i+" ").replace(Pt," ")){for(a=0;o=t[a++];)for(;r.indexOf(" "+o+" ")>-1;)r=r.replace(" "+o+" "," ");s=pe.trim(r),i!==s&&pe.attr(n,"class",s)}return this},toggleClass:function(e,t){var n=typeof e;return"boolean"==typeof t&&"string"===n?t?this.addClass(e):this.removeClass(e):pe.isFunction(e)?this.each(function(n){pe(this).toggleClass(e.call(this,n,z(this),t),t)}):this.each(function(){var t,r,i,o;if("string"===n)for(r=0,i=pe(this),o=e.match(De)||[];t=o[r++];)i.hasClass(t)?i.removeClass(t):i.addClass(t);else void 0!==e&&"boolean"!==n||(t=z(this),t&&pe._data(this,"__className__",t),pe.attr(this,"class",t||e===!1?"":pe._data(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;for(t=" "+e+" ";n=this[r++];)if(1===n.nodeType&&(" "+z(n)+" ").replace(Pt," ").indexOf(t)>-1)return!0;return!1}}),pe.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){pe.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),pe.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}});var Bt=e.location,Wt=pe.now(),It=/\?/,$t=/(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;pe.parseJSON=function(t){if(e.JSON&&e.JSON.parse)return e.JSON.parse(t+"");var n,r=null,i=pe.trim(t+"");return i&&!pe.trim(i.replace($t,function(e,t,i,o){return n&&t&&(r=0),0===r?e:(n=i||t,r+=!o-!i,"")}))?Function("return "+i)():pe.error("Invalid JSON: "+t)},pe.parseXML=function(t){var n,r;if(!t||"string"!=typeof t)return null;try{e.DOMParser?(r=new e.DOMParser,n=r.parseFromString(t,"text/xml")):(n=new e.ActiveXObject("Microsoft.XMLDOM"),n.async="false",n.loadXML(t))}catch(i){n=void 0}return n&&n.documentElement&&!n.getElementsByTagName("parsererror").length||pe.error("Invalid XML: "+t),n};var zt=/#.*$/,Xt=/([?&])_=[^&]*/,Ut=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Vt=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Yt=/^(?:GET|HEAD)$/,Jt=/^\/\//,Gt=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,Kt={},Qt={},Zt="*/".concat("*"),en=Bt.href,tn=Gt.exec(en.toLowerCase())||[];pe.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:en,type:"GET",isLocal:Vt.test(tn[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Zt,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":pe.parseJSON,"text xml":pe.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?V(V(e,pe.ajaxSettings),t):V(pe.ajaxSettings,e)},ajaxPrefilter:X(Kt),ajaxTransport:X(Qt),ajax:function(t,n){function r(t,n,r,i){var o,f,v,x,w,C=n;2!==b&&(b=2,u&&e.clearTimeout(u),c=void 0,s=i||"",T.readyState=t>0?4:0,o=t>=200&&t<300||304===t,r&&(x=Y(d,T,r)),x=J(d,x,T,o),o?(d.ifModified&&(w=T.getResponseHeader("Last-Modified"),w&&(pe.lastModified[a]=w),w=T.getResponseHeader("etag"),w&&(pe.etag[a]=w)),204===t||"HEAD"===d.type?C="nocontent":304===t?C="notmodified":(C=x.state,f=x.data,v=x.error,o=!v)):(v=C,!t&&C||(C="error",t<0&&(t=0))),T.status=t,T.statusText=(n||C)+"",o?g.resolveWith(p,[f,C,T]):g.rejectWith(p,[T,C,v]),T.statusCode(y),y=void 0,l&&h.trigger(o?"ajaxSuccess":"ajaxError",[T,d,o?f:v]),m.fireWith(p,[T,C]),l&&(h.trigger("ajaxComplete",[T,d]),--pe.active||pe.event.trigger("ajaxStop")))}"object"==typeof t&&(n=t,t=void 0),n=n||{};var i,o,a,s,u,l,c,f,d=pe.ajaxSetup({},n),p=d.context||d,h=d.context&&(p.nodeType||p.jquery)?pe(p):pe.event,g=pe.Deferred(),m=pe.Callbacks("once memory"),y=d.statusCode||{},v={},x={},b=0,w="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(2===b){if(!f)for(f={};t=Ut.exec(s);)f[t[1].toLowerCase()]=t[2];t=f[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===b?s:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return b||(e=x[n]=x[n]||e,v[e]=t),this},overrideMimeType:function(e){return b||(d.mimeType=e),this},statusCode:function(e){var t;if(e)if(b<2)for(t in e)y[t]=[y[t],e[t]];else T.always(e[T.status]);return this},abort:function(e){var t=e||w;return c&&c.abort(t),r(0,t),this}};if(g.promise(T).complete=m.add,T.success=T.done,T.error=T.fail,d.url=((t||d.url||en)+"").replace(zt,"").replace(Jt,tn[1]+"//"),d.type=n.method||n.type||d.method||d.type,d.dataTypes=pe.trim(d.dataType||"*").toLowerCase().match(De)||[""],null==d.crossDomain&&(i=Gt.exec(d.url.toLowerCase()),d.crossDomain=!(!i||i[1]===tn[1]&&i[2]===tn[2]&&(i[3]||("http:"===i[1]?"80":"443"))===(tn[3]||("http:"===tn[1]?"80":"443")))),d.data&&d.processData&&"string"!=typeof d.data&&(d.data=pe.param(d.data,d.traditional)),U(Kt,d,n,T),2===b)return T;l=pe.event&&d.global,l&&0===pe.active++&&pe.event.trigger("ajaxStart"),d.type=d.type.toUpperCase(),d.hasContent=!Yt.test(d.type),a=d.url,d.hasContent||(d.data&&(a=d.url+=(It.test(a)?"&":"?")+d.data,delete d.data),d.cache===!1&&(d.url=Xt.test(a)?a.replace(Xt,"$1_="+Wt++):a+(It.test(a)?"&":"?")+"_="+Wt++)),d.ifModified&&(pe.lastModified[a]&&T.setRequestHeader("If-Modified-Since",pe.lastModified[a]),pe.etag[a]&&T.setRequestHeader("If-None-Match",pe.etag[a])),(d.data&&d.hasContent&&d.contentType!==!1||n.contentType)&&T.setRequestHeader("Content-Type",d.contentType),T.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+("*"!==d.dataTypes[0]?", "+Zt+"; q=0.01":""):d.accepts["*"]);for(o in d.headers)T.setRequestHeader(o,d.headers[o]);if(d.beforeSend&&(d.beforeSend.call(p,T,d)===!1||2===b))return T.abort();w="abort";for(o in{success:1,error:1,complete:1})T[o](d[o]);if(c=U(Qt,d,n,T)){if(T.readyState=1,l&&h.trigger("ajaxSend",[T,d]),2===b)return T;d.async&&d.timeout>0&&(u=e.setTimeout(function(){T.abort("timeout")},d.timeout));try{b=1,c.send(v,r)}catch(C){if(!(b<2))throw C;r(-1,C)}}else r(-1,"No Transport");return T},getJSON:function(e,t,n){return pe.get(e,t,n,"json")},getScript:function(e,t){return pe.get(e,void 0,t,"script")}}),pe.each(["get","post"],function(e,t){pe[t]=function(e,n,r,i){return pe.isFunction(n)&&(i=i||r,r=n,n=void 0),pe.ajax(pe.extend({url:e,type:t,dataType:i,data:n,success:r},pe.isPlainObject(e)&&e))}}),pe._evalUrl=function(e){return pe.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},pe.fn.extend({wrapAll:function(e){if(pe.isFunction(e))return this.each(function(t){pe(this).wrapAll(e.call(this,t))});if(this[0]){var t=pe(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){for(var e=this;e.firstChild&&1===e.firstChild.nodeType;)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return pe.isFunction(e)?this.each(function(t){pe(this).wrapInner(e.call(this,t))}):this.each(function(){var t=pe(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=pe.isFunction(e);return this.each(function(n){pe(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){pe.nodeName(this,"body")||pe(this).replaceWith(this.childNodes)}).end()}}),pe.expr.filters.hidden=function(e){return fe.reliableHiddenOffsets()?e.offsetWidth<=0&&e.offsetHeight<=0&&!e.getClientRects().length:K(e)},pe.expr.filters.visible=function(e){return!pe.expr.filters.hidden(e)};var nn=/%20/g,rn=/\[\]$/,on=/\r?\n/g,an=/^(?:submit|button|image|reset|file)$/i,sn=/^(?:input|select|textarea|keygen)/i;pe.param=function(e,t){var n,r=[],i=function(e,t){t=pe.isFunction(t)?t():null==t?"":t,r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(void 0===t&&(t=pe.ajaxSettings&&pe.ajaxSettings.traditional),pe.isArray(e)||e.jquery&&!pe.isPlainObject(e))pe.each(e,function(){i(this.name,this.value)});else for(n in e)Q(n,e[n],t,i);return r.join("&").replace(nn,"+")},pe.fn.extend({serialize:function(){return pe.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=pe.prop(this,"elements");return e?pe.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!pe(this).is(":disabled")&&sn.test(this.nodeName)&&!an.test(e)&&(this.checked||!Be.test(e))}).map(function(e,t){var n=pe(this).val();return null==n?null:pe.isArray(n)?pe.map(n,function(e){return{name:t.name,value:e.replace(on,"\r\n")}}):{name:t.name,value:n.replace(on,"\r\n")}}).get()}}),pe.ajaxSettings.xhr=void 0!==e.ActiveXObject?function(){return this.isLocal?ee():re.documentMode>8?Z():/^(get|post|head|put|delete|options)$/i.test(this.type)&&Z()||ee()}:Z;var un=0,ln={},cn=pe.ajaxSettings.xhr();e.attachEvent&&e.attachEvent("onunload",function(){for(var e in ln)ln[e](void 0,!0)}),fe.cors=!!cn&&"withCredentials"in cn,cn=fe.ajax=!!cn,cn&&pe.ajaxTransport(function(t){if(!t.crossDomain||fe.cors){var n;return{send:function(r,i){var o,a=t.xhr(),s=++un;if(a.open(t.type,t.url,t.async,t.username,t.password),t.xhrFields)for(o in t.xhrFields)a[o]=t.xhrFields[o];t.mimeType&&a.overrideMimeType&&a.overrideMimeType(t.mimeType),t.crossDomain||r["X-Requested-With"]||(r["X-Requested-With"]="XMLHttpRequest");for(o in r)void 0!==r[o]&&a.setRequestHeader(o,r[o]+"");a.send(t.hasContent&&t.data||null),n=function(e,r){var o,u,l;if(n&&(r||4===a.readyState))if(delete ln[s],n=void 0,a.onreadystatechange=pe.noop,r)4!==a.readyState&&a.abort();else{l={},o=a.status,"string"==typeof a.responseText&&(l.text=a.responseText);try{u=a.statusText}catch(c){u=""}o||!t.isLocal||t.crossDomain?1223===o&&(o=204):o=l.text?200:404}l&&i(o,u,l,a.getAllResponseHeaders())},t.async?4===a.readyState?e.setTimeout(n):a.onreadystatechange=ln[s]=n:n()},abort:function(){n&&n(void 0,!0)}}}}),pe.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return pe.globalEval(e),e}}}),pe.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),pe.ajaxTransport("script",function(e){if(e.crossDomain){var t,n=re.head||pe("head")[0]||re.documentElement;return{send:function(r,i){t=re.createElement("script"),t.async=!0,e.scriptCharset&&(t.charset=e.scriptCharset),t.src=e.url,t.onload=t.onreadystatechange=function(e,n){(n||!t.readyState||/loaded|complete/.test(t.readyState))&&(t.onload=t.onreadystatechange=null,t.parentNode&&t.parentNode.removeChild(t),t=null,n||i(200,"success"))},n.insertBefore(t,n.firstChild)},abort:function(){t&&t.onload(void 0,!0)}}}});var fn=[],dn=/(=)\?(?=&|$)|\?\?/;pe.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=fn.pop()||pe.expando+"_"+Wt++;return this[e]=!0,e}}),pe.ajaxPrefilter("json jsonp",function(t,n,r){var i,o,a,s=t.jsonp!==!1&&(dn.test(t.url)?"url":"string"==typeof t.data&&0===(t.contentType||"").indexOf("application/x-www-form-urlencoded")&&dn.test(t.data)&&"data");if(s||"jsonp"===t.dataTypes[0])return i=t.jsonpCallback=pe.isFunction(t.jsonpCallback)?t.jsonpCallback():t.jsonpCallback,s?t[s]=t[s].replace(dn,"$1"+i):t.jsonp!==!1&&(t.url+=(It.test(t.url)?"&":"?")+t.jsonp+"="+i),t.converters["script json"]=function(){return a||pe.error(i+" was not called"),a[0]},t.dataTypes[0]="json",o=e[i],e[i]=function(){a=arguments},r.always(function(){void 0===o?pe(e).removeProp(i):e[i]=o,t[i]&&(t.jsonpCallback=n.jsonpCallback,fn.push(i)),a&&pe.isFunction(o)&&o(a[0]),a=o=void 0}),"script"}),pe.parseHTML=function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||re;var r=Te.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=y([e],t,i),i&&i.length&&pe(i).remove(),pe.merge([],r.childNodes))};var pn=pe.fn.load;return pe.fn.load=function(e,t,n){if("string"!=typeof e&&pn)return pn.apply(this,arguments);var r,i,o,a=this,s=e.indexOf(" ");return s>-1&&(r=pe.trim(e.slice(s,e.length)),e=e.slice(0,s)),pe.isFunction(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),a.length>0&&pe.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?pe("
      ").append(pe.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},pe.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){pe.fn[t]=function(e){return this.on(t,e)}}),pe.expr.filters.animated=function(e){return pe.grep(pe.timers,function(t){return e===t.elem}).length},pe.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l,c=pe.css(e,"position"),f=pe(e),d={};"static"===c&&(e.style.position="relative"),s=f.offset(),o=pe.css(e,"top"),u=pe.css(e,"left"),l=("absolute"===c||"fixed"===c)&&pe.inArray("auto",[o,u])>-1,l?(r=f.position(),a=r.top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),pe.isFunction(t)&&(t=t.call(e,n,pe.extend({},s))),null!=t.top&&(d.top=t.top-s.top+a),null!=t.left&&(d.left=t.left-s.left+i),"using"in t?t.using.call(e,d):f.css(d)}},pe.fn.extend({offset:function(e){if(arguments.length)return void 0===e?this:this.each(function(t){pe.offset.setOffset(this,e,t)});var t,n,r={top:0,left:0},i=this[0],o=i&&i.ownerDocument;if(o)return t=o.documentElement,pe.contains(t,i)?("undefined"!=typeof i.getBoundingClientRect&&(r=i.getBoundingClientRect()),n=te(o),{top:r.top+(n.pageYOffset||t.scrollTop)-(t.clientTop||0),left:r.left+(n.pageXOffset||t.scrollLeft)-(t.clientLeft||0)}):r},position:function(){if(this[0]){var e,t,n={top:0,left:0},r=this[0];return"fixed"===pe.css(r,"position")?t=r.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),pe.nodeName(e[0],"html")||(n=e.offset()),n.top+=pe.css(e[0],"borderTopWidth",!0),n.left+=pe.css(e[0],"borderLeftWidth",!0)),{top:t.top-n.top-pe.css(r,"marginTop",!0),left:t.left-n.left-pe.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){ -for(var e=this.offsetParent;e&&!pe.nodeName(e,"html")&&"static"===pe.css(e,"position");)e=e.offsetParent;return e||pt})}}),pe.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,t){var n=/Y/.test(t);pe.fn[e]=function(r){return Pe(this,function(e,r,i){var o=te(e);return void 0===i?o?t in o?o[t]:o.document.documentElement[r]:e[r]:void(o?o.scrollTo(n?pe(o).scrollLeft():i,n?i:pe(o).scrollTop()):e[r]=i)},e,r,arguments.length,null)}}),pe.each(["top","left"],function(e,t){pe.cssHooks[t]=L(fe.pixelPosition,function(e,n){if(n)return n=gt(e,t),ft.test(n)?pe(e).position()[t]+"px":n})}),pe.each({Height:"height",Width:"width"},function(e,t){pe.each({padding:"inner"+e,content:t,"":"outer"+e},function(n,r){pe.fn[r]=function(r,i){var o=arguments.length&&(n||"boolean"!=typeof r),a=n||(r===!0||i===!0?"margin":"border");return Pe(this,function(t,n,r){var i;return pe.isWindow(t)?t.document.documentElement["client"+e]:9===t.nodeType?(i=t.documentElement,Math.max(t.body["scroll"+e],i["scroll"+e],t.body["offset"+e],i["offset"+e],i["client"+e])):void 0===r?pe.css(t,n,a):pe.style(t,n,r,a)},t,o?r:void 0,o,null)}})}),pe.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}}),pe.fn.size=function(){return this.length},pe.fn.andSelf=pe.fn.addBack,layui.define(function(e){layui.$=pe,e("jquery",pe)}),pe});!function(e,t){"use strict";var i,n,a=e.layui&&layui.define,o={getPath:function(){var e=document.currentScript?document.currentScript.src:function(){for(var e,t=document.scripts,i=t.length-1,n=i;n>0;n--)if("interactive"===t[n].readyState){e=t[n].src;break}return e||t[i].src}();return e.substring(0,e.lastIndexOf("/")+1)}(),config:{},end:{},minIndex:0,minLeft:[],btn:["确定","取消"],type:["dialog","page","iframe","loading","tips"],getStyle:function(t,i){var n=t.currentStyle?t.currentStyle:e.getComputedStyle(t,null);return n[n.getPropertyValue?"getPropertyValue":"getAttribute"](i)},link:function(t,i,n){if(r.path){var a=document.getElementsByTagName("head")[0],s=document.createElement("link");"string"==typeof i&&(n=i);var l=(n||t).replace(/\.|\//g,""),f="layuicss-"+l,c=0;s.rel="stylesheet",s.href=r.path+t,s.id=f,document.getElementById(f)||a.appendChild(s),"function"==typeof i&&!function u(){return++c>80?e.console&&console.error("layer.css: Invalid"):void(1989===parseInt(o.getStyle(document.getElementById(f),"width"))?i():setTimeout(u,100))}()}}},r={v:"3.1.1",ie:function(){var t=navigator.userAgent.toLowerCase();return!!(e.ActiveXObject||"ActiveXObject"in e)&&((t.match(/msie\s(\d+)/)||[])[1]||"11")}(),index:e.layer&&e.layer.v?1e5:0,path:o.getPath,config:function(e,t){return e=e||{},r.cache=o.config=i.extend({},o.config,e),r.path=o.config.path||r.path,"string"==typeof e.extend&&(e.extend=[e.extend]),o.config.path&&r.ready(),e.extend?(a?layui.addcss("modules/layer/"+e.extend):o.link("theme/"+e.extend),this):this},ready:function(e){var t="layer",i="",n=(a?"modules/layer/":"theme/")+"default/layer.css?v="+r.v+i;return a?layui.addcss(n,e,t):o.link(n,e,t),this},alert:function(e,t,n){var a="function"==typeof t;return a&&(n=t),r.open(i.extend({content:e,yes:n},a?{}:t))},confirm:function(e,t,n,a){var s="function"==typeof t;return s&&(a=n,n=t),r.open(i.extend({content:e,btn:o.btn,yes:n,btn2:a},s?{}:t))},msg:function(e,n,a){var s="function"==typeof n,f=o.config.skin,c=(f?f+" "+f+"-msg":"")||"layui-layer-msg",u=l.anim.length-1;return s&&(a=n),r.open(i.extend({content:e,time:3e3,shade:!1,skin:c,title:!1,closeBtn:!1,btn:!1,resize:!1,end:a},s&&!o.config.skin?{skin:c+" layui-layer-hui",anim:u}:function(){return n=n||{},(n.icon===-1||n.icon===t&&!o.config.skin)&&(n.skin=c+" "+(n.skin||"layui-layer-hui")),n}()))},load:function(e,t){return r.open(i.extend({type:3,icon:e||0,resize:!1,shade:.01},t))},tips:function(e,t,n){return r.open(i.extend({type:4,content:[e,t],closeBtn:!1,time:3e3,shade:!1,resize:!1,fixed:!1,maxWidth:210},n))}},s=function(e){var t=this;t.index=++r.index,t.config=i.extend({},t.config,o.config,e),document.body?t.creat():setTimeout(function(){t.creat()},30)};s.pt=s.prototype;var l=["layui-layer",".layui-layer-title",".layui-layer-main",".layui-layer-dialog","layui-layer-iframe","layui-layer-content","layui-layer-btn","layui-layer-close"];l.anim=["layer-anim-00","layer-anim-01","layer-anim-02","layer-anim-03","layer-anim-04","layer-anim-05","layer-anim-06"],s.pt.config={type:0,shade:.3,fixed:!0,move:l[1],title:"信息",offset:"auto",area:"auto",closeBtn:1,time:0,zIndex:19891014,maxWidth:360,anim:0,isOutAnim:!0,icon:-1,moveType:1,resize:!0,scrollbar:!0,tips:2},s.pt.vessel=function(e,t){var n=this,a=n.index,r=n.config,s=r.zIndex+a,f="object"==typeof r.title,c=r.maxmin&&(1===r.type||2===r.type),u=r.title?'
      '+(f?r.title[0]:r.title)+"
      ":"";return r.zIndex=s,t([r.shade?'
      ':"",'
      '+(e&&2!=r.type?"":u)+'
      '+(0==r.type&&r.icon!==-1?'':"")+(1==r.type&&e?"":r.content||"")+'
      '+function(){var e=c?'':"";return r.closeBtn&&(e+=''),e}()+""+(r.btn?function(){var e="";"string"==typeof r.btn&&(r.btn=[r.btn]);for(var t=0,i=r.btn.length;t'+r.btn[t]+"";return'
      '+e+"
      "}():"")+(r.resize?'':"")+"
      "],u,i('
      ')),n},s.pt.creat=function(){var e=this,t=e.config,a=e.index,s=t.content,f="object"==typeof s,c=i("body");if(!t.id||!i("#"+t.id)[0]){switch("string"==typeof t.area&&(t.area="auto"===t.area?["",""]:[t.area,""]),t.shift&&(t.anim=t.shift),6==r.ie&&(t.fixed=!1),t.type){case 0:t.btn="btn"in t?t.btn:o.btn[0],r.closeAll("dialog");break;case 2:var s=t.content=f?t.content:[t.content||"http://layer.layui.com","auto"];t.content='';break;case 3:delete t.title,delete t.closeBtn,t.icon===-1&&0===t.icon,r.closeAll("loading");break;case 4:f||(t.content=[t.content,"body"]),t.follow=t.content[1],t.content=t.content[0]+'',delete t.title,t.tips="object"==typeof t.tips?t.tips:[t.tips,!0],t.tipsMore||r.closeAll("tips")}if(e.vessel(f,function(n,r,u){c.append(n[0]),f?function(){2==t.type||4==t.type?function(){i("body").append(n[1])}():function(){s.parents("."+l[0])[0]||(s.data("display",s.css("display")).show().addClass("layui-layer-wrap").wrap(n[1]),i("#"+l[0]+a).find("."+l[5]).before(r))}()}():c.append(n[1]),i(".layui-layer-move")[0]||c.append(o.moveElem=u),e.layero=i("#"+l[0]+a),t.scrollbar||l.html.css("overflow","hidden").attr("layer-full",a)}).auto(a),i("#layui-layer-shade"+e.index).css({"background-color":t.shade[1]||"#000",opacity:t.shade[0]||t.shade}),2==t.type&&6==r.ie&&e.layero.find("iframe").attr("src",s[0]),4==t.type?e.tips():e.offset(),t.fixed&&n.on("resize",function(){e.offset(),(/^\d+%$/.test(t.area[0])||/^\d+%$/.test(t.area[1]))&&e.auto(a),4==t.type&&e.tips()}),t.time<=0||setTimeout(function(){r.close(e.index)},t.time),e.move().callback(),l.anim[t.anim]){var u="layer-anim "+l.anim[t.anim];e.layero.addClass(u).one("webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend",function(){i(this).removeClass(u)})}t.isOutAnim&&e.layero.data("isOutAnim",!0)}},s.pt.auto=function(e){var t=this,a=t.config,o=i("#"+l[0]+e);""===a.area[0]&&a.maxWidth>0&&(r.ie&&r.ie<8&&a.btn&&o.width(o.innerWidth()),o.outerWidth()>a.maxWidth&&o.width(a.maxWidth));var s=[o.innerWidth(),o.innerHeight()],f=o.find(l[1]).outerHeight()||0,c=o.find("."+l[6]).outerHeight()||0,u=function(e){e=o.find(e),e.height(s[1]-f-c-2*(0|parseFloat(e.css("padding-top"))))};switch(a.type){case 2:u("iframe");break;default:""===a.area[1]?a.maxHeight>0&&o.outerHeight()>a.maxHeight?(s[1]=a.maxHeight,u("."+l[5])):a.fixed&&s[1]>=n.height()&&(s[1]=n.height(),u("."+l[5])):u("."+l[5])}return t},s.pt.offset=function(){var e=this,t=e.config,i=e.layero,a=[i.outerWidth(),i.outerHeight()],o="object"==typeof t.offset;e.offsetTop=(n.height()-a[1])/2,e.offsetLeft=(n.width()-a[0])/2,o?(e.offsetTop=t.offset[0],e.offsetLeft=t.offset[1]||e.offsetLeft):"auto"!==t.offset&&("t"===t.offset?e.offsetTop=0:"r"===t.offset?e.offsetLeft=n.width()-a[0]:"b"===t.offset?e.offsetTop=n.height()-a[1]:"l"===t.offset?e.offsetLeft=0:"lt"===t.offset?(e.offsetTop=0,e.offsetLeft=0):"lb"===t.offset?(e.offsetTop=n.height()-a[1],e.offsetLeft=0):"rt"===t.offset?(e.offsetTop=0,e.offsetLeft=n.width()-a[0]):"rb"===t.offset?(e.offsetTop=n.height()-a[1],e.offsetLeft=n.width()-a[0]):e.offsetTop=t.offset),t.fixed||(e.offsetTop=/%$/.test(e.offsetTop)?n.height()*parseFloat(e.offsetTop)/100:parseFloat(e.offsetTop),e.offsetLeft=/%$/.test(e.offsetLeft)?n.width()*parseFloat(e.offsetLeft)/100:parseFloat(e.offsetLeft),e.offsetTop+=n.scrollTop(),e.offsetLeft+=n.scrollLeft()),i.attr("minLeft")&&(e.offsetTop=n.height()-(i.find(l[1]).outerHeight()||0),e.offsetLeft=i.css("left")),i.css({top:e.offsetTop,left:e.offsetLeft})},s.pt.tips=function(){var e=this,t=e.config,a=e.layero,o=[a.outerWidth(),a.outerHeight()],r=i(t.follow);r[0]||(r=i("body"));var s={width:r.outerWidth(),height:r.outerHeight(),top:r.offset().top,left:r.offset().left},f=a.find(".layui-layer-TipsG"),c=t.tips[0];t.tips[1]||f.remove(),s.autoLeft=function(){s.left+o[0]-n.width()>0?(s.tipLeft=s.left+s.width-o[0],f.css({right:12,left:"auto"})):s.tipLeft=s.left},s.where=[function(){s.autoLeft(),s.tipTop=s.top-o[1]-10,f.removeClass("layui-layer-TipsB").addClass("layui-layer-TipsT").css("border-right-color",t.tips[1])},function(){s.tipLeft=s.left+s.width+10,s.tipTop=s.top,f.removeClass("layui-layer-TipsL").addClass("layui-layer-TipsR").css("border-bottom-color",t.tips[1])},function(){s.autoLeft(),s.tipTop=s.top+s.height+10,f.removeClass("layui-layer-TipsT").addClass("layui-layer-TipsB").css("border-right-color",t.tips[1])},function(){s.tipLeft=s.left-o[0]-10,s.tipTop=s.top,f.removeClass("layui-layer-TipsR").addClass("layui-layer-TipsL").css("border-bottom-color",t.tips[1])}],s.where[c-1](),1===c?s.top-(n.scrollTop()+o[1]+16)<0&&s.where[2]():2===c?n.width()-(s.left+s.width+o[0]+16)>0||s.where[3]():3===c?s.top-n.scrollTop()+s.height+o[1]+16-n.height()>0&&s.where[0]():4===c&&o[0]+16-s.left>0&&s.where[1](),a.find("."+l[5]).css({"background-color":t.tips[1],"padding-right":t.closeBtn?"30px":""}),a.css({left:s.tipLeft-(t.fixed?n.scrollLeft():0),top:s.tipTop-(t.fixed?n.scrollTop():0)})},s.pt.move=function(){var e=this,t=e.config,a=i(document),s=e.layero,l=s.find(t.move),f=s.find(".layui-layer-resize"),c={};return t.move&&l.css("cursor","move"),l.on("mousedown",function(e){e.preventDefault(),t.move&&(c.moveStart=!0,c.offset=[e.clientX-parseFloat(s.css("left")),e.clientY-parseFloat(s.css("top"))],o.moveElem.css("cursor","move").show())}),f.on("mousedown",function(e){e.preventDefault(),c.resizeStart=!0,c.offset=[e.clientX,e.clientY],c.area=[s.outerWidth(),s.outerHeight()],o.moveElem.css("cursor","se-resize").show()}),a.on("mousemove",function(i){if(c.moveStart){var a=i.clientX-c.offset[0],o=i.clientY-c.offset[1],l="fixed"===s.css("position");if(i.preventDefault(),c.stX=l?0:n.scrollLeft(),c.stY=l?0:n.scrollTop(),!t.moveOut){var f=n.width()-s.outerWidth()+c.stX,u=n.height()-s.outerHeight()+c.stY;af&&(a=f),ou&&(o=u)}s.css({left:a,top:o})}if(t.resize&&c.resizeStart){var a=i.clientX-c.offset[0],o=i.clientY-c.offset[1];i.preventDefault(),r.style(e.index,{width:c.area[0]+a,height:c.area[1]+o}),c.isResize=!0,t.resizing&&t.resizing(s)}}).on("mouseup",function(e){c.moveStart&&(delete c.moveStart,o.moveElem.hide(),t.moveEnd&&t.moveEnd(s)),c.resizeStart&&(delete c.resizeStart,o.moveElem.hide())}),e},s.pt.callback=function(){function e(){var e=a.cancel&&a.cancel(t.index,n);e===!1||r.close(t.index)}var t=this,n=t.layero,a=t.config;t.openLayer(),a.success&&(2==a.type?n.find("iframe").on("load",function(){a.success(n,t.index)}):a.success(n,t.index)),6==r.ie&&t.IE6(n),n.find("."+l[6]).children("a").on("click",function(){var e=i(this).index();if(0===e)a.yes?a.yes(t.index,n):a.btn1?a.btn1(t.index,n):r.close(t.index);else{var o=a["btn"+(e+1)]&&a["btn"+(e+1)](t.index,n);o===!1||r.close(t.index)}}),n.find("."+l[7]).on("click",e),a.shadeClose&&i("#layui-layer-shade"+t.index).on("click",function(){r.close(t.index)}),n.find(".layui-layer-min").on("click",function(){var e=a.min&&a.min(n);e===!1||r.min(t.index,a)}),n.find(".layui-layer-max").on("click",function(){i(this).hasClass("layui-layer-maxmin")?(r.restore(t.index),a.restore&&a.restore(n)):(r.full(t.index,a),setTimeout(function(){a.full&&a.full(n)},100))}),a.end&&(o.end[t.index]=a.end)},o.reselect=function(){i.each(i("select"),function(e,t){var n=i(this);n.parents("."+l[0])[0]||1==n.attr("layer")&&i("."+l[0]).length<1&&n.removeAttr("layer").show(),n=null})},s.pt.IE6=function(e){i("select").each(function(e,t){var n=i(this);n.parents("."+l[0])[0]||"none"===n.css("display")||n.attr({layer:"1"}).hide(),n=null})},s.pt.openLayer=function(){var e=this;r.zIndex=e.config.zIndex,r.setTop=function(e){var t=function(){r.zIndex++,e.css("z-index",r.zIndex+1)};return r.zIndex=parseInt(e[0].style.zIndex),e.on("mousedown",t),r.zIndex}},o.record=function(e){var t=[e.width(),e.height(),e.position().top,e.position().left+parseFloat(e.css("margin-left"))];e.find(".layui-layer-max").addClass("layui-layer-maxmin"),e.attr({area:t})},o.rescollbar=function(e){l.html.attr("layer-full")==e&&(l.html[0].style.removeProperty?l.html[0].style.removeProperty("overflow"):l.html[0].style.removeAttribute("overflow"),l.html.removeAttr("layer-full"))},e.layer=r,r.getChildFrame=function(e,t){return t=t||i("."+l[4]).attr("times"),i("#"+l[0]+t).find("iframe").contents().find(e)},r.getFrameIndex=function(e){return i("#"+e).parents("."+l[4]).attr("times")},r.iframeAuto=function(e){if(e){var t=r.getChildFrame("html",e).outerHeight(),n=i("#"+l[0]+e),a=n.find(l[1]).outerHeight()||0,o=n.find("."+l[6]).outerHeight()||0;n.css({height:t+a+o}),n.find("iframe").css({height:t})}},r.iframeSrc=function(e,t){i("#"+l[0]+e).find("iframe").attr("src",t)},r.style=function(e,t,n){var a=i("#"+l[0]+e),r=a.find(".layui-layer-content"),s=a.attr("type"),f=a.find(l[1]).outerHeight()||0,c=a.find("."+l[6]).outerHeight()||0;a.attr("minLeft");s!==o.type[3]&&s!==o.type[4]&&(n||(parseFloat(t.width)<=260&&(t.width=260),parseFloat(t.height)-f-c<=64&&(t.height=64+f+c)),a.css(t),c=a.find("."+l[6]).outerHeight(),s===o.type[2]?a.find("iframe").css({height:parseFloat(t.height)-f-c}):r.css({height:parseFloat(t.height)-f-c-parseFloat(r.css("padding-top"))-parseFloat(r.css("padding-bottom"))}))},r.min=function(e,t){var a=i("#"+l[0]+e),s=a.find(l[1]).outerHeight()||0,f=a.attr("minLeft")||181*o.minIndex+"px",c=a.css("position");o.record(a),o.minLeft[0]&&(f=o.minLeft[0],o.minLeft.shift()),a.attr("position",c),r.style(e,{width:180,height:s,left:f,top:n.height()-s,position:"fixed",overflow:"hidden"},!0),a.find(".layui-layer-min").hide(),"page"===a.attr("type")&&a.find(l[4]).hide(),o.rescollbar(e),a.attr("minLeft")||o.minIndex++,a.attr("minLeft",f)},r.restore=function(e){var t=i("#"+l[0]+e),n=t.attr("area").split(",");t.attr("type");r.style(e,{width:parseFloat(n[0]),height:parseFloat(n[1]),top:parseFloat(n[2]),left:parseFloat(n[3]),position:t.attr("position"),overflow:"visible"},!0),t.find(".layui-layer-max").removeClass("layui-layer-maxmin"),t.find(".layui-layer-min").show(),"page"===t.attr("type")&&t.find(l[4]).show(),o.rescollbar(e)},r.full=function(e){var t,a=i("#"+l[0]+e);o.record(a),l.html.attr("layer-full")||l.html.css("overflow","hidden").attr("layer-full",e),clearTimeout(t),t=setTimeout(function(){var t="fixed"===a.css("position");r.style(e,{top:t?0:n.scrollTop(),left:t?0:n.scrollLeft(),width:n.width(),height:n.height()},!0),a.find(".layui-layer-min").hide()},100)},r.title=function(e,t){var n=i("#"+l[0]+(t||r.index)).find(l[1]);n.html(e)},r.close=function(e){var t=i("#"+l[0]+e),n=t.attr("type"),a="layer-anim-close";if(t[0]){var s="layui-layer-wrap",f=function(){if(n===o.type[1]&&"object"===t.attr("conType")){t.children(":not(."+l[5]+")").remove();for(var a=t.find("."+s),r=0;r<2;r++)a.unwrap();a.css("display",a.data("display")).removeClass(s)}else{if(n===o.type[2])try{var f=i("#"+l[4]+e)[0];f.contentWindow.document.write(""),f.contentWindow.close(),t.find("."+l[5])[0].removeChild(f)}catch(c){}t[0].innerHTML="",t.remove()}"function"==typeof o.end[e]&&o.end[e](),delete o.end[e]};t.data("isOutAnim")&&t.addClass("layer-anim "+a),i("#layui-layer-moves, #layui-layer-shade"+e).remove(),6==r.ie&&o.reselect(),o.rescollbar(e),t.attr("minLeft")&&(o.minIndex--,o.minLeft.push(t.attr("minLeft"))),r.ie&&r.ie<10||!t.data("isOutAnim")?f():setTimeout(function(){f()},200)}},r.closeAll=function(e){i.each(i("."+l[0]),function(){var t=i(this),n=e?t.attr("type")===e:1;n&&r.close(t.attr("times")),n=null})};var f=r.cache||{},c=function(e){return f.skin?" "+f.skin+" "+f.skin+"-"+e:""};r.prompt=function(e,t){var a="";if(e=e||{},"function"==typeof e&&(t=e),e.area){var o=e.area;a='style="width: '+o[0]+"; height: "+o[1]+';"',delete e.area}var s,l=2==e.formType?'":function(){return''}(),f=e.success;return delete e.success,r.open(i.extend({type:1,btn:["确定","取消"],content:l,skin:"layui-layer-prompt"+c("prompt"),maxWidth:n.width(),success:function(t){s=t.find(".layui-layer-input"),s.val(e.value||"").focus(),"function"==typeof f&&f(t)},resize:!1,yes:function(i){var n=s.val();""===n?s.focus():n.length>(e.maxlength||500)?r.tips("最多输入"+(e.maxlength||500)+"个字数",s,{tips:1}):t&&t(n,i,s)}},e))},r.tab=function(e){e=e||{};var t=e.tab||{},n="layui-this",a=e.success;return delete e.success,r.open(i.extend({type:1,skin:"layui-layer-tab"+c("tab"),resize:!1,title:function(){var e=t.length,i=1,a="";if(e>0)for(a=''+t[0].title+"";i"+t[i].title+"";return a}(),content:'
        '+function(){var e=t.length,i=1,a="";if(e>0)for(a='
      • '+(t[0].content||"no content")+"
      • ";i'+(t[i].content||"no content")+"";return a}()+"
      ",success:function(t){var o=t.find(".layui-layer-title").children(),r=t.find(".layui-layer-tabmain").children();o.on("mousedown",function(t){t.stopPropagation?t.stopPropagation():t.cancelBubble=!0;var a=i(this),o=a.index();a.addClass(n).siblings().removeClass(n),r.eq(o).show().siblings().hide(),"function"==typeof e.change&&e.change(o)}),"function"==typeof a&&a(t)}},e))},r.photos=function(t,n,a){function o(e,t,i){var n=new Image;return n.src=e,n.complete?t(n):(n.onload=function(){n.onload=null,t(n)},void(n.onerror=function(e){n.onerror=null,i(e)}))}var s={};if(t=t||{},t.photos){var l=t.photos.constructor===Object,f=l?t.photos:{},u=f.data||[],d=f.start||0;s.imgIndex=(0|d)+1,t.img=t.img||"img";var y=t.success;if(delete t.success,l){if(0===u.length)return r.msg("没有图片")}else{var p=i(t.photos),h=function(){u=[],p.find(t.img).each(function(e){var t=i(this);t.attr("layer-index",e),u.push({alt:t.attr("alt"),pid:t.attr("layer-pid"),src:t.attr("layer-src")||t.attr("src"),thumb:t.attr("src")})})};if(h(),0===u.length)return;if(n||p.on("click",t.img,function(){var e=i(this),n=e.attr("layer-index");r.photos(i.extend(t,{photos:{start:n,data:u,tab:t.tab},full:t.full}),!0),h()}),!n)return}s.imgprev=function(e){s.imgIndex--,s.imgIndex<1&&(s.imgIndex=u.length),s.tabimg(e)},s.imgnext=function(e,t){s.imgIndex++,s.imgIndex>u.length&&(s.imgIndex=1,t)||s.tabimg(e)},s.keyup=function(e){if(!s.end){var t=e.keyCode;e.preventDefault(),37===t?s.imgprev(!0):39===t?s.imgnext(!0):27===t&&r.close(s.index)}},s.tabimg=function(e){if(!(u.length<=1))return f.start=s.imgIndex-1,r.close(s.index),r.photos(t,!0,e)},s.event=function(){s.bigimg.hover(function(){s.imgsee.show()},function(){s.imgsee.hide()}),s.bigimg.find(".layui-layer-imgprev").on("click",function(e){e.preventDefault(),s.imgprev()}),s.bigimg.find(".layui-layer-imgnext").on("click",function(e){e.preventDefault(),s.imgnext()}),i(document).on("keyup",s.keyup)},s.loadi=r.load(1,{shade:!("shade"in t)&&.9,scrollbar:!1}),o(u[d].src,function(n){r.close(s.loadi),s.index=r.open(i.extend({type:1,id:"layui-layer-photos",area:function(){var a=[n.width,n.height],o=[i(e).width()-100,i(e).height()-100];if(!t.full&&(a[0]>o[0]||a[1]>o[1])){var r=[a[0]/o[0],a[1]/o[1]];r[0]>r[1]?(a[0]=a[0]/r[0],a[1]=a[1]/r[0]):r[0]'+(u[d].alt||
      '+(u.length>1?'':"")+'
      '+(u[d].alt||"")+""+s.imgIndex+"/"+u.length+"
      ",success:function(e,i){s.bigimg=e.find(".layui-layer-phimg"),s.imgsee=e.find(".layui-layer-imguide,.layui-layer-imgbar"),s.event(e),t.tab&&t.tab(u[d],e),"function"==typeof y&&y(e)},end:function(){s.end=!0,i(document).off("keyup",s.keyup)}},t))},function(){r.close(s.loadi),r.msg("当前图片地址异常
      是否继续查看下一张?",{time:3e4,btn:["下一张","不看了"],yes:function(){u.length>1&&s.imgnext(!0,!0)}})})}},o.run=function(t){i=t,n=i(e),l.html=i("html"),r.open=function(e){var t=new s(e);return t.index}},e.layui&&layui.define?(r.ready(),layui.define("jquery",function(t){r.path=layui.cache.dir,o.run(layui.$),e.layer=r,t("layer",r)})):"function"==typeof define&&define.amd?define(["jquery"],function(){return o.run(e.jQuery),r}):function(){o.run(e.jQuery),r.ready()}()}(window);layui.define("jquery",function(i){"use strict";var t=layui.$,a=(layui.hint(),layui.device()),e="element",l="layui-this",n="layui-show",s=function(){this.config={}};s.prototype.set=function(i){var a=this;return t.extend(!0,a.config,i),a},s.prototype.on=function(i,t){return layui.onevent.call(this,e,i,t)},s.prototype.tabAdd=function(i,a){var e=".layui-tab-title",l=t(".layui-tab[lay-filter="+i+"]"),n=l.children(e),s=n.children(".layui-tab-bar"),o=l.children(".layui-tab-content"),c='
    • '+(a.title||"unnaming")+"
    • ";return s[0]?s.before(c):n.append(c),o.append('
      '+(a.content||"")+"
      "),y.hideTabMore(!0),y.tabAuto(),this},s.prototype.tabDelete=function(i,a){var e=".layui-tab-title",l=t(".layui-tab[lay-filter="+i+"]"),n=l.children(e),s=n.find('>li[lay-id="'+a+'"]');return y.tabDelete(null,s),this},s.prototype.tabChange=function(i,a){var e=".layui-tab-title",l=t(".layui-tab[lay-filter="+i+"]"),n=l.children(e),s=n.find('>li[lay-id="'+a+'"]');return y.tabClick.call(s[0],null,null,s),this},s.prototype.tab=function(i){i=i||{},v.on("click",i.headerElem,function(a){var e=t(this).index();y.tabClick.call(this,a,e,null,i)})},s.prototype.progress=function(i,a){var e="layui-progress",l=t("."+e+"[lay-filter="+i+"]"),n=l.find("."+e+"-bar"),s=n.find("."+e+"-text");return n.css("width",a),s.text(a),this};var o=".layui-nav",c="layui-nav-item",r="layui-nav-bar",u="layui-nav-tree",d="layui-nav-child",h="layui-nav-more",f="layui-anim layui-anim-upbit",y={tabClick:function(i,a,s,o){o=o||{};var c=s||t(this),a=a||c.parent().children("li").index(c),r=o.headerElem?c.parent():c.parents(".layui-tab").eq(0),u=o.bodyElem?t(o.bodyElem):r.children(".layui-tab-content").children(".layui-tab-item"),d=c.find("a"),h=r.attr("lay-filter");"javascript:;"!==d.attr("href")&&"_blank"===d.attr("target")||(c.addClass(l).siblings().removeClass(l),u.eq(a).addClass(n).siblings().removeClass(n)),layui.event.call(this,e,"tab("+h+")",{elem:r,index:a})},tabDelete:function(i,a){var n=a||t(this).parent(),s=n.index(),o=n.parents(".layui-tab").eq(0),c=o.children(".layui-tab-content").children(".layui-tab-item"),r=o.attr("lay-filter");n.hasClass(l)&&(n.next()[0]?y.tabClick.call(n.next()[0],null,s+1):n.prev()[0]&&y.tabClick.call(n.prev()[0],null,s-1)),n.remove(),c.eq(s).remove(),setTimeout(function(){y.tabAuto()},50),layui.event.call(this,e,"tabDelete("+r+")",{elem:o,index:s})},tabAuto:function(){var i="layui-tab-more",e="layui-tab-bar",l="layui-tab-close",n=this;t(".layui-tab").each(function(){var s=t(this),o=s.children(".layui-tab-title"),c=(s.children(".layui-tab-content").children(".layui-tab-item"),'lay-stope="tabmore"'),r=t('');if(n===window&&8!=a.ie&&y.hideTabMore(!0),s.attr("lay-allowClose")&&o.find("li").each(function(){var i=t(this);if(!i.find("."+l)[0]){var a=t('');a.on("click",y.tabDelete),i.append(a)}}),o.prop("scrollWidth")>o.outerWidth()+1){if(o.find("."+e)[0])return;o.append(r),s.attr("overflow",""),r.on("click",function(t){o[this.title?"removeClass":"addClass"](i),this.title=this.title?"":"收缩"})}else o.find("."+e).remove(),s.removeAttr("overflow")})},hideTabMore:function(i){var a=t(".layui-tab-title");i!==!0&&"tabmore"===t(i.target).attr("lay-stope")||(a.removeClass("layui-tab-more"),a.find(".layui-tab-bar").attr("title",""))},clickThis:function(){var i=t(this),a=i.parents(o),n=a.attr("lay-filter"),s=i.find("a"),c="string"==typeof i.attr("lay-unselect");i.find("."+d)[0]||("javascript:;"!==s.attr("href")&&"_blank"===s.attr("target")||c||(a.find("."+l).removeClass(l),i.addClass(l)),layui.event.call(this,e,"nav("+n+")",i))},clickChild:function(){var i=t(this),a=i.parents(o),n=a.attr("lay-filter");a.find("."+l).removeClass(l),i.addClass(l),layui.event.call(this,e,"nav("+n+")",i)},showChild:function(){var i=t(this),a=i.parents(o),e=i.parent(),l=i.siblings("."+d);a.hasClass(u)&&(l.removeClass(f),e["none"===l.css("display")?"addClass":"removeClass"](c+"ed"))},collapse:function(){var i=t(this),a=i.find(".layui-colla-icon"),l=i.siblings(".layui-colla-content"),s=i.parents(".layui-collapse").eq(0),o=s.attr("lay-filter"),c="none"===l.css("display");if("string"==typeof s.attr("lay-accordion")){var r=s.children(".layui-colla-item").children("."+n);r.siblings(".layui-colla-title").children(".layui-colla-icon").html(""),r.removeClass(n)}l[c?"addClass":"removeClass"](n),a.html(c?"":""),layui.event.call(this,e,"collapse("+o+")",{title:i,content:l,show:c})}};s.prototype.init=function(i,e){var l=function(){return e?'[lay-filter="'+e+'"]':""}(),s={tab:function(){y.tabAuto.call({})},nav:function(){var i=200,e={},s={},p={},v=function(l,o,c){var r=t(this),y=r.find("."+d);o.hasClass(u)?l.css({top:r.position().top,height:r.children("a").height(),opacity:1}):(y.addClass(f),l.css({left:r.position().left+parseFloat(r.css("marginLeft")),top:r.position().top+r.height()-l.height()}),e[c]=setTimeout(function(){l.css({width:r.width(),opacity:1})},a.ie&&a.ie<10?0:i),clearTimeout(p[c]),"block"===y.css("display")&&clearTimeout(s[c]),s[c]=setTimeout(function(){y.addClass(n),r.find("."+h).addClass(h+"d")},300))};t(o+l).each(function(a){var l=t(this),o=t(''),f=l.find("."+c);l.find("."+r)[0]||(l.append(o),f.on("mouseenter",function(){v.call(this,o,l,a)}).on("mouseleave",function(){l.hasClass(u)||(clearTimeout(s[a]),s[a]=setTimeout(function(){l.find("."+d).removeClass(n),l.find("."+h).removeClass(h+"d")},300))}),l.on("mouseleave",function(){clearTimeout(e[a]),p[a]=setTimeout(function(){l.hasClass(u)?o.css({height:0,top:o.position().top+o.height()/2,opacity:0}):o.css({width:0,left:o.position().left+o.width()/2,opacity:0})},i)})),f.each(function(){var i=t(this),a=i.find("."+d);if(a[0]&&!i.find("."+h)[0]){var e=i.children("a");e.append('')}i.off("click",y.clickThis).on("click",y.clickThis),i.children("a").off("click",y.showChild).on("click",y.showChild),a.children("dd").off("click",y.clickChild).on("click",y.clickChild)})})},breadcrumb:function(){var i=".layui-breadcrumb";t(i+l).each(function(){var i=t(this),a="lay-separator",e=i.attr(a)||"/",l=i.find("a");l.next("span["+a+"]")[0]||(l.each(function(i){i!==l.length-1&&t(this).after(""+e+"")}),i.css("visibility","visible"))})},progress:function(){var i="layui-progress";t("."+i+l).each(function(){var a=t(this),e=a.find(".layui-progress-bar"),l=e.attr("lay-percent");e.css("width",function(){return/^.+\/.+$/.test(l)?100*new Function("return "+l)()+"%":l}()),a.attr("lay-showPercent")&&setTimeout(function(){e.html(''+l+"")},350)})},collapse:function(){var i="layui-collapse";t("."+i+l).each(function(){var i=t(this).find(".layui-colla-item");i.each(function(){var i=t(this),a=i.find(".layui-colla-title"),e=i.find(".layui-colla-content"),l="none"===e.css("display");a.find(".layui-colla-icon").remove(),a.append(''+(l?"":"")+""),a.off("click",y.collapse).on("click",y.collapse)})})}};return s[i]?s[i]():layui.each(s,function(i,t){t()})},s.prototype.render=s.prototype.init;var p=new s,v=t(document);p.render();var b=".layui-tab-title li";v.on("click",b,y.tabClick),v.on("click",y.hideTabMore),t(window).on("resize",y.tabAuto),i(e,p)});layui.define("layer",function(e){"use strict";var i=layui.$,t=layui.layer,n=layui.hint(),a=layui.device(),o={config:{},set:function(e){var t=this;return t.config=i.extend({},t.config,e),t},on:function(e,i){return layui.onevent.call(this,r,e,i)}},l=function(){var e=this;return{upload:function(i){e.upload.call(e,i)},config:e.config}},r="upload",u="layui-upload-file",c="layui-upload-form",f="layui-upload-iframe",s="layui-upload-choose",p=function(e){var t=this;t.config=i.extend({},t.config,o.config,e),t.render()};p.prototype.config={accept:"images",exts:"",auto:!0,bindAction:"",url:"",field:"file",method:"post",data:{},drag:!0,size:0,number:0,multiple:!1},p.prototype.render=function(e){var t=this,e=t.config;e.elem=i(e.elem),e.bindAction=i(e.bindAction),t.file(),t.events()},p.prototype.file=function(){var e=this,t=e.config,n=e.elemFile=i(['"].join("")),o=t.elem.next();(o.hasClass(u)||o.hasClass(c))&&o.remove(),a.ie&&a.ie<10&&t.elem.wrap('
      '),e.isFile()?(e.elemFile=t.elem,t.field=t.elem[0].name):t.elem.after(n),a.ie&&a.ie<10&&e.initIE()},p.prototype.initIE=function(){var e=this,t=e.config,n=i(''),a=i(['
      ',"
      "].join(""));i("#"+f)[0]||i("body").append(n),t.elem.next().hasClass(f)||(e.elemFile.wrap(a),t.elem.next("."+f).append(function(){var e=[];return layui.each(t.data,function(i,t){e.push('')}),e.join("")}()))},p.prototype.msg=function(e){return t.msg(e,{icon:2,shift:6})},p.prototype.isFile=function(){var e=this.config.elem[0];if(e)return"input"===e.tagName.toLocaleLowerCase()&&"file"===e.type},p.prototype.preview=function(e){var i=this;window.FileReader&&layui.each(i.chooseFiles,function(i,t){var n=new FileReader;n.readAsDataURL(t),n.onload=function(){e&&e(i,t,this.result)}})},p.prototype.upload=function(e,t){var n,o=this,l=o.config,r=o.elemFile[0],u=function(){var t=0,n=0,a=e||o.files||o.chooseFiles||r.files,u=function(){l.multiple&&t+n===o.fileLength&&"function"==typeof l.allDone&&l.allDone({total:o.fileLength,successful:t,aborted:n})};layui.each(a,function(e,a){var r=new FormData;r.append(l.field,a),layui.each(l.data,function(e,i){r.append(e,i)}),i.ajax({url:l.url,type:l.method,data:r,contentType:!1,processData:!1,dataType:"json",success:function(i){t++,d(e,i),u()},error:function(){n++,o.msg("请求上传接口出现异常"),m(e),u()}})})},c=function(){var e=i("#"+f);o.elemFile.parent().submit(),clearInterval(p.timer),p.timer=setInterval(function(){var i,t=e.contents().find("body");try{i=t.text()}catch(n){o.msg("获取上传后的响应信息出现异常"),clearInterval(p.timer),m()}i&&(clearInterval(p.timer),t.html(""),d(0,i))},30)},d=function(e,i){if(o.elemFile.next("."+s).remove(),r.value="","object"!=typeof i)try{i=JSON.parse(i)}catch(t){return i={},o.msg("请对上传接口返回有效JSON")}"function"==typeof l.done&&l.done(i,e||0,function(e){o.upload(e)})},m=function(e){l.auto&&(r.value=""),"function"==typeof l.error&&l.error(e||0,function(e){o.upload(e)})},h=l.exts,v=function(){var i=[];return layui.each(e||o.chooseFiles,function(e,t){i.push(t.name)}),i}(),g={preview:function(e){o.preview(e)},upload:function(e,i){var t={};t[e]=i,o.upload(t)},pushFile:function(){return o.files=o.files||{},layui.each(o.chooseFiles,function(e,i){o.files[e]=i}),o.files}},y=function(){return"choose"===t?l.choose&&l.choose(g):(l.before&&l.before(g),a.ie?a.ie>9?u():c():void u())};if(v=0===v.length?r.value.match(/[^\/\\]+\..+/g)||[]||"":v,0!==v.length){switch(l.accept){case"file":if(h&&!RegExp("\\w\\.("+h+")$","i").test(escape(v)))return o.msg("选择的文件中包含不支持的格式"),r.value="";break;case"video":if(!RegExp("\\w\\.("+(h||"avi|mp4|wma|rmvb|rm|flash|3gp|flv")+")$","i").test(escape(v)))return o.msg("选择的视频中包含不支持的格式"),r.value="";break;case"audio":if(!RegExp("\\w\\.("+(h||"mp3|wav|mid")+")$","i").test(escape(v)))return o.msg("选择的音频中包含不支持的格式"),r.value="";break;default:if(layui.each(v,function(e,i){RegExp("\\w\\.("+(h||"jpg|png|gif|bmp|jpeg$")+")","i").test(escape(i))||(n=!0)}),n)return o.msg("选择的图片中包含不支持的格式"),r.value=""}if(o.fileLength=function(){var i=0,t=e||o.files||o.chooseFiles||r.files;return layui.each(t,function(){i++}),i}(),l.number&&o.fileLength>l.number)return o.msg("同时最多只能上传的数量为:"+l.number);if(l.size>0&&!(a.ie&&a.ie<10)){var F;if(layui.each(o.chooseFiles,function(e,i){if(i.size>1024*l.size){var t=l.size/1024;t=t>=1?Math.floor(t)+(t%1>0?t.toFixed(1):0)+"MB":l.size+"KB",r.value="",F=t}}),F)return o.msg("文件不能超过"+F)}y()}},p.prototype.events=function(){var e=this,t=e.config,o=function(i){e.chooseFiles={},layui.each(i,function(i,t){var n=(new Date).getTime();e.chooseFiles[n+"-"+i]=t})},l=function(i,n){var a=e.elemFile,o=i.length>1?i.length+"个文件":(i[0]||{}).name||a[0].value.match(/[^\/\\]+\..+/g)||[]||"";a.next().hasClass(s)&&a.next().remove(),e.upload(null,"choose"),e.isFile()||t.choose||a.after(''+o+"")};t.elem.off("upload.start").on("upload.start",function(){var a=i(this),o=a.attr("lay-data");if(o)try{o=new Function("return "+o)(),e.config=i.extend({},t,o)}catch(l){n.error("Upload element property lay-data configuration item has a syntax error: "+o)}e.config.item=a,e.elemFile[0].click()}),a.ie&&a.ie<10||t.elem.off("upload.over").on("upload.over",function(){var e=i(this);e.attr("lay-over","")}).off("upload.leave").on("upload.leave",function(){var e=i(this);e.removeAttr("lay-over")}).off("upload.drop").on("upload.drop",function(n,a){var r=i(this),u=a.originalEvent.dataTransfer.files||[];r.removeAttr("lay-over"),o(u),t.auto?e.upload(u):l(u)}),e.elemFile.off("upload.change").on("upload.change",function(){var i=this.files||[];o(i),t.auto?e.upload():l(i)}),t.bindAction.off("upload.action").on("upload.action",function(){e.upload()}),t.elem.data("haveEvents")||(e.elemFile.on("change",function(){i(this).trigger("upload.change")}),t.elem.on("click",function(){e.isFile()||i(this).trigger("upload.start")}),t.drag&&t.elem.on("dragover",function(e){e.preventDefault(),i(this).trigger("upload.over")}).on("dragleave",function(e){i(this).trigger("upload.leave")}).on("drop",function(e){e.preventDefault(),i(this).trigger("upload.drop",e)}),t.bindAction.on("click",function(){i(this).trigger("upload.action")}),t.elem.data("haveEvents",!0))},o.render=function(e){var i=new p(e);return l.call(i)},e(r,o)});layui.define("layer",function(e){"use strict";var t=layui.$,i=layui.layer,a=layui.hint(),n=layui.device(),l="form",r=".layui-form",s="layui-this",o="layui-hide",u="layui-disabled",c=function(){this.config={verify:{required:[/[\S]+/,"必填项不能为空"],phone:[/^1\d{10}$/,"请输入正确的手机号"],email:[/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/,"邮箱格式不正确"],url:[/(^#)|(^http(s*):\/\/[^\s]+\.[^\s]+)/,"链接格式不正确"],number:function(e){if(!e||isNaN(e))return"只能填写数字"},date:[/^(\d{4})[-\/](\d{1}|0\d{1}|1[0-2])([-\/](\d{1}|0\d{1}|[1-2][0-9]|3[0-1]))*$/,"日期格式不正确"],identity:[/(^\d{15}$)|(^\d{17}(x|X|\d)$)/,"请输入正确的身份证号"]}}};c.prototype.set=function(e){var i=this;return t.extend(!0,i.config,e),i},c.prototype.verify=function(e){var i=this;return t.extend(!0,i.config.verify,e),i},c.prototype.on=function(e,t){return layui.onevent.call(this,l,e,t)},c.prototype.render=function(e,i){var n=this,c=t(r+function(){return i?'[lay-filter="'+i+'"]':""}()),d={select:function(){var e,i="请选择",a="layui-form-select",n="layui-select-title",r="layui-select-none",d="",f=c.find("select"),y=function(i,l){t(i.target).parent().hasClass(n)&&!l||(t("."+a).removeClass(a+"ed "+a+"up"),e&&d&&e.val(d)),e=null},h=function(i,c,f){var h=t(this),p=i.find("."+n),m=p.find("input"),k=i.find("dl"),g=k.children("dd");if(!c){var x=function(){var e=i.offset().top+i.outerHeight()+5-v.scrollTop(),t=k.outerHeight();i.addClass(a+"ed"),g.removeClass(o),e+t>v.height()&&e>=t&&i.addClass(a+"up")},b=function(e){i.removeClass(a+"ed "+a+"up"),m.blur(),e||C(m.val(),function(e){e&&(d=k.find("."+s).html(),m&&m.val(d))})};p.on("click",function(e){i.hasClass(a+"ed")?b():(y(e,!0),x()),k.find("."+r).remove()}),p.find(".layui-edge").on("click",function(){m.focus()}),m.on("keyup",function(e){var t=e.keyCode;9===t&&x()}).on("keydown",function(e){var t=e.keyCode;9===t?b():13===t&&e.preventDefault()});var C=function(e,i,a){var n=0;layui.each(g,function(){var i=t(this),l=i.text(),r=l.indexOf(e)===-1;(""===e||"blur"===a?e!==l:r)&&n++,"keyup"===a&&i[r?"addClass":"removeClass"](o)});var l=n===g.length;return i(l),l},w=function(e){var t=this.value,i=e.keyCode;return 9!==i&&13!==i&&37!==i&&38!==i&&39!==i&&40!==i&&(C(t,function(e){e?k.find("."+r)[0]||k.append('

      无匹配项

      '):k.find("."+r).remove()},"keyup"),void(""===t&&k.find("."+r).remove()))};f&&m.on("keyup",w).on("blur",function(t){e=m,d=k.find("."+s).html(),setTimeout(function(){C(m.val(),function(e){d||m.val("")},"blur")},200)}),g.on("click",function(){var e=t(this),a=e.attr("lay-value"),n=h.attr("lay-filter");return!e.hasClass(u)&&(e.hasClass("layui-select-tips")?m.val(""):(m.val(e.text()),e.addClass(s)),e.siblings().removeClass(s),h.val(a).removeClass("layui-form-danger"),layui.event.call(this,l,"select("+n+")",{elem:h[0],value:a,othis:i}),b(!0),!1)}),i.find("dl>dt").on("click",function(e){return!1}),t(document).off("click",y).on("click",y)}};f.each(function(e,l){var r=t(this),o=r.next("."+a),c=this.disabled,d=l.value,f=t(l.options[l.selectedIndex]),y=l.options[0];if("string"==typeof r.attr("lay-ignore"))return r.show();var v="string"==typeof r.attr("lay-search"),p=y?y.value?i:y.innerHTML||i:i,m=t(['
      ','
      ','
      ','
      '+function(e){var t=[];return layui.each(e,function(e,a){0!==e||a.value?"optgroup"===a.tagName.toLowerCase()?t.push("
      "+a.label+"
      "):t.push('
      '+a.innerHTML+"
      "):t.push('
      '+(a.innerHTML||i)+"
      ")}),0===t.length&&t.push('
      没有选项
      '),t.join("")}(r.find("*"))+"
      ","
      "].join(""));o[0]&&o.remove(),r.after(m),h.call(this,m,c,v)})},checkbox:function(){var e={checkbox:["layui-form-checkbox","layui-form-checked","checkbox"],_switch:["layui-form-switch","layui-form-onswitch","switch"]},i=c.find("input[type=checkbox]"),a=function(e,i){var a=t(this);e.on("click",function(){var t=a.attr("lay-filter"),n=(a.attr("lay-text")||"").split("|");a[0].disabled||(a[0].checked?(a[0].checked=!1,e.removeClass(i[1]).find("em").text(n[1])):(a[0].checked=!0,e.addClass(i[1]).find("em").text(n[0])),layui.event.call(a[0],l,i[2]+"("+t+")",{elem:a[0],value:a[0].value,othis:e}))})};i.each(function(i,n){var l=t(this),r=l.attr("lay-skin"),s=(l.attr("lay-text")||"").split("|"),o=this.disabled;"switch"===r&&(r="_"+r);var c=e[r]||e.checkbox;if("string"==typeof l.attr("lay-ignore"))return l.show();var d=l.next("."+c[0]),f=t(['
      ',{_switch:""+((n.checked?s[0]:s[1])||"")+""}[r]||(n.title.replace(/\s/g,"")?""+n.title+"":"")+''+(r?"":"")+"","
      "].join(""));d[0]&&d.remove(),l.after(f),a.call(this,f,c)})},radio:function(){var e="layui-form-radio",i=["",""],a=c.find("input[type=radio]"),n=function(a){var n=t(this),s="layui-anim-scaleSpring";a.on("click",function(){var o=n[0].name,u=n.parents(r),c=n.attr("lay-filter"),d=u.find("input[name="+o.replace(/(\.|#|\[|\])/g,"\\$1")+"]");n[0].disabled||(layui.each(d,function(){var a=t(this).next("."+e);this.checked=!1,a.removeClass(e+"ed"),a.find(".layui-icon").removeClass(s).html(i[1])}),n[0].checked=!0,a.addClass(e+"ed"),a.find(".layui-icon").addClass(s).html(i[0]),layui.event.call(n[0],l,"radio("+c+")",{elem:n[0],value:n[0].value,othis:a}))})};a.each(function(a,l){var r=t(this),s=r.next("."+e),o=this.disabled;if("string"==typeof r.attr("lay-ignore"))return r.show();s[0]&&s.remove();var c=t(['
      ',''+i[l.checked?0:1]+"","
      "+function(){var e=l.title||"";return"string"==typeof r.next().attr("lay-radio")&&(e=r.next().html(),r.next().remove()),e}()+"
      ","
      "].join(""));r.after(c),n.call(this,c)})}};return e?d[e]?d[e]():a.error("不支持的"+e+"表单渲染"):layui.each(d,function(e,t){t()}),n};var d=function(){var e=t(this),a=f.config.verify,s=null,o="layui-form-danger",u={},c=e.parents(r),d=c.find("*[lay-verify]"),y=e.parents("form")[0],v=c.find("input,select,textarea"),h=e.attr("lay-filter");if(layui.each(d,function(e,l){var r=t(this),u=r.attr("lay-verify").split("|"),c=r.attr("lay-verType"),d=r.val();if(r.removeClass(o),layui.each(u,function(e,t){var u,f="",y="function"==typeof a[t];if(a[t]){var u=y?f=a[t](d,l):!a[t][0].test(d);if(f=f||a[t][1],u)return"tips"===c?i.tips(f,function(){return"string"==typeof r.attr("lay-ignore")||"select"!==l.tagName.toLowerCase()&&!/^checkbox|radio$/.test(l.type)?r:r.next()}(),{tips:1}):"alert"===c?i.alert(f,{title:"提示",shadeClose:!0}):i.msg(f,{icon:5,shift:6}),n.android||n.ios||l.focus(),r.addClass(o),s=!0}}),s)return s}),s)return!1;var p={};return layui.each(v,function(e,t){if(t.name=(t.name||"").replace(/^\s*|\s*&/,""),t.name){if(/^.*\[\]$/.test(t.name)){var i=t.name.match(/^(.*)\[\]$/g)[0];p[i]=0|p[i],t.name=t.name.replace(/^(.*)\[\]$/,"$1["+p[i]++ +"]")}/^checkbox|radio$/.test(t.type)&&!t.checked||(u[t.name]=t.value)}}),layui.event.call(this,l,"submit("+h+")",{elem:this,form:y,field:u})},f=new c,y=t(document),v=t(window);f.render(),y.on("reset",r,function(){var e=t(this).attr("lay-filter");setTimeout(function(){f.render(null,e)},50)}),y.on("submit",r,d).on("click","*[lay-submit]",d),e(l,f)});layui.define("jquery",function(e){"use strict";var o=layui.$,a=layui.hint(),i="layui-tree-enter",r=function(e){this.options=e},t={arrow:["",""],checkbox:["",""],radio:["",""],branch:["",""],leaf:""};r.prototype.init=function(e){var o=this;e.addClass("layui-box layui-tree"),o.options.skin&&e.addClass("layui-tree-skin-"+o.options.skin),o.tree(e),o.on(e)},r.prototype.tree=function(e,a){var i=this,r=i.options,n=a||r.nodes;layui.each(n,function(a,n){var l=n.children&&n.children.length>0,c=o('
        '),s=o(["
      • ",function(){return l?''+(n.spread?t.arrow[1]:t.arrow[0])+"":""}(),function(){return r.check?''+("checkbox"===r.check?t.checkbox[0]:"radio"===r.check?t.radio[0]:"")+"":""}(),function(){return'"+(''+(l?n.spread?t.branch[1]:t.branch[0]:t.leaf)+"")+(""+(n.name||"未命名")+"")}(),"
      • "].join(""));l&&(s.append(c),i.tree(c,n.children)),e.append(s),"function"==typeof r.click&&i.click(s,n),i.spread(s,n),r.drag&&i.drag(s,n)})},r.prototype.click=function(e,o){var a=this,i=a.options;e.children("a").on("click",function(e){layui.stope(e),i.click(o)})},r.prototype.spread=function(e,o){var a=this,i=(a.options,e.children(".layui-tree-spread")),r=e.children("ul"),n=e.children("a"),l=function(){e.data("spread")?(e.data("spread",null),r.removeClass("layui-show"),i.html(t.arrow[0]),n.find(".layui-icon").html(t.branch[0])):(e.data("spread",!0),r.addClass("layui-show"),i.html(t.arrow[1]),n.find(".layui-icon").html(t.branch[1]))};r[0]&&(i.on("click",l),n.on("dblclick",l))},r.prototype.on=function(e){var a=this,r=a.options,t="layui-tree-drag";e.find("i").on("selectstart",function(e){return!1}),r.drag&&o(document).on("mousemove",function(e){var i=a.move;if(i.from){var r=(i.to,o('
        '));e.preventDefault(),o("."+t)[0]||o("body").append(r);var n=o("."+t)[0]?o("."+t):r;n.addClass("layui-show").html(i.from.elem.children("a").html()),n.css({left:e.pageX+10,top:e.pageY+10})}}).on("mouseup",function(){var e=a.move;e.from&&(e.from.elem.children("a").removeClass(i),e.to&&e.to.elem.children("a").removeClass(i),a.move={},o("."+t).remove())})},r.prototype.move={},r.prototype.drag=function(e,a){var r=this,t=(r.options,e.children("a")),n=function(){var t=o(this),n=r.move;n.from&&(n.to={item:a,elem:e},t.addClass(i))};t.on("mousedown",function(){var o=r.move;o.from={item:a,elem:e}}),t.on("mouseenter",n).on("mousemove",n).on("mouseleave",function(){var e=o(this),a=r.move;a.from&&(delete a.to,e.removeClass(i))})},e("tree",function(e){var i=new r(e=e||{}),t=o(e.elem);return t[0]?void i.init(t):a.error("layui.tree 没有找到"+e.elem+"元素")})});layui.define(["laytpl","laypage","layer","form"],function(e){"use strict";var t=layui.$,i=layui.laytpl,a=layui.laypage,l=layui.layer,n=layui.form,o=layui.hint(),r=layui.device(),d={config:{checkName:"LAY_CHECKED",indexName:"LAY_TABLE_INDEX"},cache:{},index:layui.table?layui.table.index+1e4:0,set:function(e){var i=this;return i.config=t.extend({},i.config,e),i},on:function(e,t){return layui.onevent.call(this,s,e,t)}},c=function(){var e=this,t=e.config,i=t.id;return i&&(c.config[i]=t),{reload:function(t){e.reload.call(e,t)},config:t}},s="table",u=".layui-table",h="layui-hide",f="layui-none",y="layui-table-view",p=".layui-table-header",m=".layui-table-body",v=".layui-table-main",g=".layui-table-fixed",x=".layui-table-fixed-l",b=".layui-table-fixed-r",k=".layui-table-tool",C=".layui-table-page",w=".layui-table-sort",N="layui-table-edit",F="layui-table-hover",W=function(e){var t='{{#if(item2.colspan){}} colspan="{{item2.colspan}}"{{#} if(item2.rowspan){}} rowspan="{{item2.rowspan}}"{{#}}}';return e=e||{},['',"","{{# layui.each(d.data.cols, function(i1, item1){ }}","","{{# layui.each(item1, function(i2, item2){ }}",'{{# if(item2.fixed && item2.fixed !== "right"){ left = true; } }}','{{# if(item2.fixed === "right"){ right = true; } }}',function(){return e.fixed&&"right"!==e.fixed?'{{# if(item2.fixed && item2.fixed !== "right"){ }}':"right"===e.fixed?'{{# if(item2.fixed === "right"){ }}':""}(),'",e.fixed?"{{# }; }}":"","{{# }); }}","","{{# }); }}","","
        ','
        1){ }}","group","{{# } else { }}","{{d.index}}-{{item2.field || i2}}",'{{# if(item2.type !== "normal"){ }}'," laytable-cell-{{ item2.type }}","{{# } }}","{{# } }}",'" {{#if(item2.align){}}align="{{item2.align}}"{{#}}}>','{{# if(item2.type === "checkbox"){ }}','',"{{# } else { }}",'{{item2.title||""}}',"{{# if(!(item2.colspan > 1) && item2.sort){ }}",'',"{{# } }}","{{# } }}","
        ","
        "].join("")},z=['',"","
        "].join(""),A=['
        ',"{{# if(d.data.toolbar){ }}",'
        ',"{{# } }}",'
        ',"{{# var left, right; }}",'
        ',W(),"
        ",'
        ',z,"
        ","{{# if(left){ }}",'
        ','
        ',W({fixed:!0}),"
        ",'
        ',z,"
        ","
        ","{{# }; }}","{{# if(right){ }}",'
        ','
        ',W({fixed:"right"}),'
        ',"
        ",'
        ',z,"
        ","
        ","{{# }; }}","
        ","{{# if(d.data.page){ }}",'
        ','
        ',"
        ","{{# } }}","","
        "].join(""),T=t(window),M=t(document),S=function(e){var i=this;i.index=++d.index,i.config=t.extend({},i.config,d.config,e),i.render()};S.prototype.config={limit:10,loading:!0,cellMinWidth:60,text:{none:"无数据"}},S.prototype.render=function(){var e=this,a=e.config;if(a.elem=t(a.elem),a.where=a.where||{},a.id=a.id||a.elem.attr("id"),a.request=t.extend({pageName:"page",limitName:"limit"},a.request),a.response=t.extend({statusName:"code",statusCode:0,msgName:"msg",dataName:"data",countName:"count"},a.response),"object"==typeof a.page&&(a.limit=a.page.limit||a.limit,a.limits=a.page.limits||a.limits,e.page=a.page.curr=a.page.curr||1,delete a.page.elem,delete a.page.jump),!a.elem[0])return e;e.setArea();var l=a.elem,n=l.next("."+y),o=e.elem=t(i(A).render({VIEW_CLASS:y,data:a,index:e.index}));if(a.index=e.index,n[0]&&n.remove(),l.after(o),e.layHeader=o.find(p),e.layMain=o.find(v),e.layBody=o.find(m),e.layFixed=o.find(g),e.layFixLeft=o.find(x),e.layFixRight=o.find(b),e.layTool=o.find(k),e.layPage=o.find(C),e.layTool.html(i(t(a.toolbar).html()||"").render(a)),a.height&&e.fullSize(),a.cols.length>1){var r=e.layFixed.find(p).find("th");r.height(e.layHeader.height()-1-parseFloat(r.css("padding-top"))-parseFloat(r.css("padding-bottom")))}e.pullData(e.page),e.events()},S.prototype.initOpts=function(e){var t=this,i=(t.config,{checkbox:48,space:15,numbers:40});e.checkbox&&(e.type="checkbox"),e.space&&(e.type="space"),e.type||(e.type="normal"),"normal"!==e.type&&(e.unresize=!0,e.width=e.width||i[e.type])},S.prototype.setArea=function(){var e=this,t=e.config,i=0,a=0,l=0,n=0,o=t.width||function(){var e=function(i){var a,l;i=i||t.elem.parent(),a=i.width();try{l="none"===i.css("display")}catch(n){}return!i[0]||a&&!l?a:e(i.parent())};return e()}();e.eachCols(function(){i++}),o-=function(){return"line"===t.skin||"nob"===t.skin?2:i+1}(),layui.each(t.cols,function(t,i){layui.each(i,function(t,l){var r;return l?(e.initOpts(l),r=l.width||0,void(l.colspan>1||(/\d+%$/.test(r)?l.width=r=Math.floor(parseFloat(r)/100*o):r||(l.width=r=0,a++),n+=r))):void i.splice(t,1)})}),e.autoColNums=a,o>n&&a&&(l=(o-n)/a),layui.each(t.cols,function(e,i){layui.each(i,function(e,i){var a=i.minWidth||t.cellMinWidth;i.colspan>1||0===i.width&&(i.width=Math.floor(l>=a?l:a))})}),t.height&&/^full-\d+$/.test(t.height)&&(e.fullHeightGap=t.height.split("-")[1],t.height=T.height()-e.fullHeightGap)},S.prototype.reload=function(e){var i=this;i.config.data&&i.config.data.constructor===Array&&delete i.config.data,i.config=t.extend({},i.config,e),i.render()},S.prototype.page=1,S.prototype.pullData=function(e,i){var a=this,n=a.config,o=n.request,r=n.response,d=function(){"object"==typeof n.initSort&&a.sort(n.initSort.field,n.initSort.type)};if(a.startTime=(new Date).getTime(),n.url){var c={};c[o.pageName]=e,c[o.limitName]=n.limit,t.ajax({type:n.method||"get",url:n.url,data:t.extend(c,n.where),dataType:"json",success:function(t){t[r.statusName]!=r.statusCode?(a.renderForm(),a.layMain.html('
        '+(t[r.msgName]||"返回的数据状态异常")+"
        ")):(a.renderData(t,e,t[r.countName]),d(),n.time=(new Date).getTime()-a.startTime+" ms"),i&&l.close(i),"function"==typeof n.done&&n.done(t,e,t[r.countName])},error:function(e,t){a.layMain.html('
        数据接口请求异常
        '),a.renderForm(),i&&l.close(i)}})}else if(n.data&&n.data.constructor===Array){var s={},u=e*n.limit-n.limit;s[r.dataName]=n.data.concat().splice(u,n.limit),s[r.countName]=n.data.length,a.renderData(s,e,n.data.length),d(),"function"==typeof n.done&&n.done(s,e,s[r.countName])}},S.prototype.eachCols=function(e){var i=t.extend(!0,[],this.config.cols),a=[],l=0;layui.each(i,function(e,t){layui.each(t,function(t,n){if(n.colspan>1){var o=0;l++,n.CHILD_COLS=[],layui.each(i[e+1],function(e,t){t.PARENT_COL||o==n.colspan||(t.PARENT_COL=l,n.CHILD_COLS.push(t),o+=t.colspan>1?t.colspan:1)})}n.PARENT_COL||a.push(n)})});var n=function(t){layui.each(t||a,function(t,i){return i.CHILD_COLS?n(i.CHILD_COLS):void e(t,i)})};n()},S.prototype.renderData=function(e,n,o,r){var c=this,s=c.config,u=e[s.response.dataName]||[],y=[],p=[],m=[],v=function(){return!r&&c.sortKey?c.sort(c.sortKey.field,c.sortKey.sort,!0):(layui.each(u,function(e,a){var l=[],o=[],u=[],h=e+s.limit*(n-1)+1;0!==a.length&&(r||(a[d.config.indexName]=e),c.eachCols(function(e,n){var r=n.field||e,f=a[r];c.getColElem(c.layHeader,r);if(void 0!==f&&null!==f||(f=""),!(n.colspan>1)){var y=['",'
        '+function(){var e=t.extend(!0,{LAY_INDEX:h},a);return"checkbox"===n.type?'":"numbers"===n.type?h:n.toolbar?i(t(n.toolbar).html()||"").render(e):n.templet?function(){return"function"==typeof n.templet?n.templet(e):i(t(n.templet).html()||String(f)).render(e)}():f}(),"
        "].join("");l.push(y),n.fixed&&"right"!==n.fixed&&o.push(y),"right"===n.fixed&&u.push(y)}}),y.push(''+l.join("")+""),p.push(''+o.join("")+""),m.push(''+u.join("")+""))}),c.layBody.scrollTop(0),c.layMain.find("."+f).remove(),c.layMain.find("tbody").html(y.join("")),c.layFixLeft.find("tbody").html(p.join("")),c.layFixRight.find("tbody").html(m.join("")),c.renderForm(),c.syncCheckAll(),c.haveInit?c.scrollPatch():setTimeout(function(){c.scrollPatch()},50),c.haveInit=!0,void l.close(c.tipsIndex))};return c.key=s.id||s.index,d.cache[c.key]=u,c.layPage[0===u.length&&1==n?"addClass":"removeClass"](h),r?v():0===u.length?(c.renderForm(),c.layFixed.remove(),c.layMain.find("tbody").html(""),c.layMain.find("."+f).remove(),c.layMain.append('
        '+s.text.none+"
        ")):(v(),void(s.page&&(s.page=t.extend({elem:"layui-table-page"+s.index,count:o,limit:s.limit,limits:s.limits||[10,20,30,40,50,60,70,80,90],groups:3,layout:["prev","page","next","skip","count","limit"],prev:'',next:'',jump:function(e,t){t||(c.page=e.curr,s.limit=e.limit,c.pullData(e.curr,c.loading()))}},s.page),s.page.count=o,a.render(s.page))))},S.prototype.getColElem=function(e,t){var i=this,a=i.config;return e.eq(0).find(".laytable-cell-"+(a.index+"-"+t)+":eq(0)")},S.prototype.renderForm=function(e){n.render(e,"LAY-table-"+this.index)},S.prototype.sort=function(e,i,a,l){var n,r,c=this,u={},h=c.config,f=h.elem.attr("lay-filter"),y=d.cache[c.key];"string"==typeof e&&c.layHeader.find("th").each(function(i,a){var l=t(this),o=l.data("field");if(o===e)return e=l,n=o,!1});try{var n=n||e.data("field");if(c.sortKey&&!a&&n===c.sortKey.field&&i===c.sortKey.sort)return;var p=c.layHeader.find("th .laytable-cell-"+h.index+"-"+n).find(w);c.layHeader.find("th").find(w).removeAttr("lay-sort"),p.attr("lay-sort",i||null),c.layFixed.find("th")}catch(m){return o.error("Table modules: Did not match to field")}c.sortKey={field:n,sort:i},"asc"===i?r=layui.sort(y,n):"desc"===i?r=layui.sort(y,n,!0):(r=layui.sort(y,d.config.indexName),delete c.sortKey),u[h.response.dataName]=r,c.renderData(u,c.page,c.count,!0),l&&layui.event.call(e,s,"sort("+f+")",{field:n,type:i})},S.prototype.loading=function(){var e=this,t=e.config;if(t.loading&&t.url)return l.msg("数据请求中",{icon:16,offset:[e.elem.offset().top+e.elem.height()/2-35-T.scrollTop()+"px",e.elem.offset().left+e.elem.width()/2-90-T.scrollLeft()+"px"],time:-1,anim:-1,fixed:!1})},S.prototype.setCheckData=function(e,t){var i=this,a=i.config,l=d.cache[i.key];l[e]&&l[e].constructor!==Array&&(l[e][a.checkName]=t)},S.prototype.syncCheckAll=function(){var e=this,t=e.config,i=e.layHeader.find('input[name="layTableCheckbox"]'),a=function(i){return e.eachCols(function(e,a){"checkbox"===a.type&&(a[t.checkName]=i)}),i};i[0]&&(d.checkStatus(e.key).isAll?(i[0].checked||(i.prop("checked",!0),e.renderForm("checkbox")),a(!0)):(i[0].checked&&(i.prop("checked",!1),e.renderForm("checkbox")),a(!1)))},S.prototype.getCssRule=function(e,t){var i=this,a=i.elem.find("style")[0],l=a.sheet||a.styleSheet||{},n=l.cssRules||l.rules;layui.each(n,function(a,l){if(l.selectorText===".laytable-cell-"+i.index+"-"+e)return t(l),!0})},S.prototype.fullSize=function(){var e,t=this,i=t.config,a=i.height;t.fullHeightGap&&(a=T.height()-t.fullHeightGap,a<135&&(a=135),t.elem.css("height",a)),e=parseFloat(a)-parseFloat(t.layHeader.height())-1,i.toolbar&&(e-=t.layTool.outerHeight()),i.page&&(e=e-t.layPage.outerHeight()-1),t.layMain.css("height",e)},S.prototype.getScrollWidth=function(e){var t=0;return e?t=e.offsetWidth-e.clientWidth:(e=document.createElement("div"),e.style.width="100px",e.style.height="100px",e.style.overflowY="scroll",document.body.appendChild(e),t=e.offsetWidth-e.clientWidth,document.body.removeChild(e)),t},S.prototype.scrollPatch=function(){var e=this,i=e.layMain.children("table"),a=e.layMain.width()-e.layMain.prop("clientWidth"),l=e.layMain.height()-e.layMain.prop("clientHeight"),n=e.getScrollWidth(e.layMain[0]),o=i.outerWidth()-e.layMain.width();if(e.autoColNums&&o<5&&!e.scrollPatchWStatus){var r=e.layHeader.eq(0).find("thead th:last-child"),d=r.data("field");e.getCssRule(d,function(t){var i=t.style.width||r.outerWidth();t.style.width=parseFloat(i)-n-o+"px",e.layMain.height()-e.layMain.prop("clientHeight")>0&&(t.style.width=parseFloat(t.style.width)-1+"px"),e.scrollPatchWStatus=!0})}if(a&&l){if(!e.elem.find(".layui-table-patch")[0]){var c=t('
        ');c.find("div").css({width:a}),e.layHeader.eq(0).find("thead tr").append(c)}}else e.layHeader.eq(0).find(".layui-table-patch").remove();var s=e.layMain.height(),u=s-l;e.layFixed.find(m).css("height",i.height()>u?u:"auto"),e.layFixRight[o>0?"removeClass":"addClass"](h),e.layFixRight.css("right",a-1)},S.prototype.events=function(){var e,a=this,n=a.config,o=t("body"),c={},u=a.layHeader.find("th"),h=".layui-table-cell",f=n.elem.attr("lay-filter");u.on("mousemove",function(e){var i=t(this),a=i.offset().left,l=e.clientX-a;i.attr("colspan")>1||i.data("unresize")||c.resizeStart||(c.allowResize=i.width()-l<=10,o.css("cursor",c.allowResize?"col-resize":""))}).on("mouseleave",function(){t(this);c.resizeStart||o.css("cursor","")}).on("mousedown",function(e){var i=t(this);if(c.allowResize){var l=i.data("field");e.preventDefault(),c.resizeStart=!0,c.offset=[e.clientX,e.clientY],a.getCssRule(l,function(e){var t=e.style.width||i.outerWidth();c.rule=e,c.ruleWidth=parseFloat(t),c.minWidth=i.data("minwidth")||n.cellMinWidth})}}),M.on("mousemove",function(t){if(c.resizeStart){if(t.preventDefault(),c.rule){var i=c.ruleWidth+t.clientX-c.offset[0];i');d[0].value=e.data("content")||o.text(),e.find("."+N)[0]||e.append(d),d.focus()}else o.find(".layui-form-switch,.layui-form-checkbox")[0]||Math.round(o.prop("scrollWidth"))>Math.round(o.outerWidth())&&(a.tipsIndex=l.tips(['
        ',o.html(),"
        ",''].join(""),o[0],{tips:[3,""],time:-1,anim:-1,maxWidth:r.ios||r.android?300:600,isOutAnim:!1,skin:"layui-table-tips",success:function(e,t){e.find(".layui-table-tips-c").on("click",function(){l.close(t)})}}))}),a.layBody.on("click","*[lay-event]",function(){var e=t(this),l=e.parents("tr").eq(0).data("index"),n=a.layBody.find('tr[data-index="'+l+'"]'),o="layui-table-click",r=d.cache[a.key][l];layui.event.call(this,s,"tool("+f+")",{data:d.clearCacheKey(r),event:e.attr("lay-event"),tr:n,del:function(){d.cache[a.key][l]=[],n.remove(),a.scrollPatch()},update:function(e){e=e||{},layui.each(e,function(e,l){if(e in r){var o,d=n.children('td[data-field="'+e+'"]');r[e]=l,a.eachCols(function(t,i){i.field==e&&i.templet&&(o=i.templet)}),d.children(h).html(o?i(t(o).html()||l).render(r):l),d.data("content",l)}})}}),n.addClass(o).siblings("tr").removeClass(o)}),a.layMain.on("scroll",function(){var e=t(this),i=e.scrollLeft(),n=e.scrollTop();a.layHeader.scrollLeft(i),a.layFixed.find(m).scrollTop(n),l.close(a.tipsIndex)}),T.on("resize",function(){a.fullSize(),a.scrollPatch()})},d.init=function(e,i){i=i||{};var a=this,l=t(e?'table[lay-filter="'+e+'"]':u+"[lay-data]"),n="Table element property lay-data configuration item has a syntax error: ";return l.each(function(){var a=t(this),l=a.attr("lay-data");try{l=new Function("return "+l)()}catch(r){o.error(n+l)}var c=[],s=t.extend({elem:this,cols:[],data:[],skin:a.attr("lay-skin"),size:a.attr("lay-size"),even:"string"==typeof a.attr("lay-even")},d.config,i,l);e&&a.hide(),a.find("thead>tr").each(function(e){s.cols[e]=[],t(this).children().each(function(i){var a=t(this),l=a.attr("lay-data");try{l=new Function("return "+l)()}catch(r){return o.error(n+l)}var d=t.extend({title:a.text(),colspan:a.attr("colspan")||0,rowspan:a.attr("rowspan")||0},l);d.colspan<2&&c.push(d),s.cols[e].push(d)})}),a.find("tbody>tr").each(function(e){var i=t(this),a={};i.children("td").each(function(e,i){var l=t(this),n=l.data("field");if(n)return a[n]=l.html()}),layui.each(c,function(e,t){var l=i.children("td").eq(e);a[t.field]=l.html()}),s.data[e]=a}),d.render(s)}),a},d.checkStatus=function(e){var t=0,i=0,a=[],l=d.cache[e]||[];return layui.each(l,function(e,l){return l.constructor===Array?void i++:void(l[d.config.checkName]&&(t++,a.push(d.clearCacheKey(l))))}),{data:a,isAll:!!l.length&&t===l.length-i}},c.config={},d.reload=function(e,i){var a=c.config[e];return i=i||{},a?(i.data&&i.data.constructor===Array&&delete a.data,d.render(t.extend(!0,{},a,i))):o.error("The ID option was not found in the table instance")},d.render=function(e){var t=new S(e);return c.call(t)},d.clearCacheKey=function(e){return e=t.extend({},e),delete e[d.config.checkName],delete e[d.config.indexName],e},d.init(),e(s,d)});layui.define("jquery",function(e){"use strict";var i=layui.$,n=(layui.hint(),layui.device(),{config:{},set:function(e){var n=this;return n.config=i.extend({},n.config,e),n},on:function(e,i){return layui.onevent.call(this,t,e,i)}}),t="carousel",a="layui-this",l=">*[carousel-item]>*",o="layui-carousel-left",r="layui-carousel-right",d="layui-carousel-prev",s="layui-carousel-next",u="layui-carousel-arrow",c="layui-carousel-ind",m=function(e){var t=this;t.config=i.extend({},t.config,n.config,e),t.render()};m.prototype.config={width:"600px",height:"280px",full:!1,arrow:"hover",indicator:"inside",autoplay:!0,interval:3e3,anim:"",trigger:"click",index:0},m.prototype.render=function(){var e=this,n=e.config;n.elem=i(n.elem),n.elem[0]&&(e.elemItem=n.elem.find(l),n.index<0&&(n.index=0),n.index>=e.elemItem.length&&(n.index=e.elemItem.length-1),n.interval<800&&(n.interval=800),n.full?n.elem.css({position:"fixed",width:"100%",height:"100%",zIndex:9999}):n.elem.css({width:n.width,height:n.height}),n.elem.attr("lay-anim",n.anim),e.elemItem.eq(n.index).addClass(a),e.elemItem.length<=1||(e.indicator(),e.arrow(),e.autoplay(),e.events()))},m.prototype.reload=function(e){var n=this;clearInterval(n.timer),n.config=i.extend({},n.config,e),n.render()},m.prototype.prevIndex=function(){var e=this,i=e.config,n=i.index-1;return n<0&&(n=e.elemItem.length-1),n},m.prototype.nextIndex=function(){var e=this,i=e.config,n=i.index+1;return n>=e.elemItem.length&&(n=0),n},m.prototype.addIndex=function(e){var i=this,n=i.config;e=e||1,n.index=n.index+e,n.index>=i.elemItem.length&&(n.index=0)},m.prototype.subIndex=function(e){var i=this,n=i.config;e=e||1,n.index=n.index-e,n.index<0&&(n.index=i.elemItem.length-1)},m.prototype.autoplay=function(){var e=this,i=e.config;i.autoplay&&(e.timer=setInterval(function(){e.slide()},i.interval))},m.prototype.arrow=function(){var e=this,n=e.config,t=i(['",'"].join(""));n.elem.attr("lay-arrow",n.arrow),n.elem.find("."+u)[0]&&n.elem.find("."+u).remove(),n.elem.append(t),t.on("click",function(){var n=i(this),t=n.attr("lay-type");e.slide(t)})},m.prototype.indicator=function(){var e=this,n=e.config,t=e.elemInd=i(['
          ',function(){var i=[];return layui.each(e.elemItem,function(e){i.push("")}),i.join("")}(),"
        "].join(""));n.elem.attr("lay-indicator",n.indicator),n.elem.find("."+c)[0]&&n.elem.find("."+c).remove(),n.elem.append(t),"updown"===n.anim&&t.css("margin-top",-(t.height()/2)),t.find("li").on("hover"===n.trigger?"mouseover":n.trigger,function(){var t=i(this),a=t.index();a>n.index?e.slide("add",a-n.index):a',e.bar1?'
      • '+c[0]+"
      • ":"",e.bar2?'
      • '+c[1]+"
      • ":"",'
      • '+c[2]+"
      • ",""].join("")),s=g.find("."+r),u=function(){var t=n.scrollTop();t>=e.showHeight?i||(s.show(),i=1):i&&(s.hide(),i=0)};t("."+a)[0]||("object"==typeof e.css&&g.css(e.css),l.append(g),u(),g.find("li").on("click",function(){var i=t(this),o=i.attr("lay-type");"top"===o&&t("html,body").animate({scrollTop:0},200),e.click&&e.click.call(this,o)}),n.on("scroll",function(){clearTimeout(o),o=setTimeout(function(){u()},100)}))},countdown:function(e,t,i){var o=this,a="function"==typeof t,r=new Date(e).getTime(),n=new Date(!t||a?(new Date).getTime():t).getTime(),l=r-n,c=[Math.floor(l/864e5),Math.floor(l/36e5)%24,Math.floor(l/6e4)%60,Math.floor(l/1e3)%60];a&&(i=t);var g=setTimeout(function(){o.countdown(e,n+1e3,i)},1e3);return i&&i(l>0?c:[0,0,0,0],t,g),l<=0&&clearTimeout(g),g},timeAgo:function(e,t){var i=this,o=[[],[]],a=(new Date).getTime()-new Date(e).getTime();return a>6912e5?(a=new Date(e),o[0][0]=i.digit(a.getFullYear(),4),o[0][1]=i.digit(a.getMonth()+1),o[0][2]=i.digit(a.getDate()),t||(o[1][0]=i.digit(a.getHours()),o[1][1]=i.digit(a.getMinutes()),o[1][2]=i.digit(a.getSeconds())),o[0].join("-")+" "+o[1].join(":")):a>=864e5?(a/1e3/60/60/24|0)+"天前":a>=36e5?(a/1e3/60/60|0)+"小时前":a>=12e4?(a/1e3/60|0)+"分钟前":a<0?"未来":"刚刚"},digit:function(e,t){var i="";e=String(e),t=t||2;for(var o=e.length;o';o.prototype.load=function(e){var o,i,n,r,a=this,c=0;e=e||{};var f=l(e.elem);if(f[0]){var m=l(e.scrollElem||document),u=e.mb||50,s=!("isAuto"in e)||e.isAuto,v=e.end||"没有更多了",y=e.scrollElem&&e.scrollElem!==document,d="加载更多",h=l('");f.find(".layui-flow-more")[0]||f.append(h);var p=function(e,t){e=l(e),h.before(e),t=0==t||null,t?h.html(v):h.find("a").html(d),i=t,o=null,n&&n()},g=function(){o=!0,h.find("a").html(t),"function"==typeof e.done&&e.done(++c,p)};if(g(),h.find("a").on("click",function(){l(this);i||o||g()}),e.isLazyimg)var n=a.lazyimg({elem:e.elem+" img",scrollElem:e.scrollElem});return s?(m.on("scroll",function(){var e=l(this),t=e.scrollTop();r&&clearTimeout(r),i||(r=setTimeout(function(){var i=y?e.height():l(window).height(),n=y?e.prop("scrollHeight"):document.documentElement.scrollHeight;n-t-i<=u&&(o||g())},100))}),a):a}},o.prototype.lazyimg=function(e){var o,t=this,i=0;e=e||{};var n=l(e.scrollElem||document),r=e.elem||"img",a=e.scrollElem&&e.scrollElem!==document,c=function(e,l){var o=n.scrollTop(),r=o+l,c=a?function(){return e.offset().top-n.offset().top+o}():e.offset().top;if(c>=o&&c<=r&&!e.attr("src")){var m=e.attr("lay-src");layui.img(m,function(){var l=t.lazyimg.elem.eq(i);e.attr("src",m).removeAttr("lay-src"),l[0]&&f(l),i++})}},f=function(e,o){var f=a?(o||n).height():l(window).height(),m=n.scrollTop(),u=m+f;if(t.lazyimg.elem=l(r),e)c(e,f);else for(var s=0;su)break}};if(f(),!o){var m;n.on("scroll",function(){var e=l(this);m&&clearTimeout(m),m=setTimeout(function(){f(null,e)},50)}),o=!0}return f},e("flow",new o)});layui.define(["layer","form"],function(t){"use strict";var e=layui.$,i=layui.layer,a=layui.form,l=(layui.hint(),layui.device()),n="layedit",o="layui-show",r="layui-disabled",c=function(){var t=this;t.index=0,t.config={tool:["strong","italic","underline","del","|","left","center","right","|","link","unlink","face","image"],hideTool:[],height:280}};c.prototype.set=function(t){var i=this;return e.extend(!0,i.config,t),i},c.prototype.on=function(t,e){return layui.onevent(n,t,e)},c.prototype.build=function(t,i){i=i||{};var a=this,n=a.config,r="layui-layedit",c=e("#"+t),u="LAY_layedit_"+ ++a.index,d=c.next("."+r),y=e.extend({},n,i),f=function(){var t=[],e={};return layui.each(y.hideTool,function(t,i){e[i]=!0}),layui.each(y.tool,function(i,a){C[a]&&!e[a]&&t.push(C[a])}),t.join("")}(),m=e(['
        ','
        '+f+"
        ",'
        ','',"
        ","
        "].join(""));return l.ie&&l.ie<8?c.removeClass("layui-hide").addClass(o):(d[0]&&d.remove(),s.call(a,m,c[0],y),c.addClass("layui-hide").after(m),a.index)},c.prototype.getContent=function(t){var e=u(t);if(e[0])return d(e[0].document.body.innerHTML)},c.prototype.getText=function(t){var i=u(t);if(i[0])return e(i[0].document.body).text()},c.prototype.setContent=function(t,i,a){var l=u(t);l[0]&&(a?e(l[0].document.body).append(i):e(l[0].document.body).html(i),layedit.sync(t))},c.prototype.sync=function(t){var i=u(t);if(i[0]){var a=e("#"+i[1].attr("textarea"));a.val(d(i[0].document.body.innerHTML))}},c.prototype.getSelection=function(t){var e=u(t);if(e[0]){var i=m(e[0].document);return document.selection?i.text:i.toString()}};var s=function(t,i,a){var l=this,n=t.find("iframe");n.css({height:a.height}).on("load",function(){var o=n.contents(),r=n.prop("contentWindow"),c=o.find("head"),s=e([""].join("")),u=o.find("body");c.append(s),u.attr("contenteditable","true").css({"min-height":a.height}).html(i.value||""),y.apply(l,[r,n,i,a]),g.call(l,r,t,a)})},u=function(t){var i=e("#LAY_layedit_"+t),a=i.prop("contentWindow");return[a,i]},d=function(t){return 8==l.ie&&(t=t.replace(/<.+>/g,function(t){return t.toLowerCase()})),t},y=function(t,a,n,o){var r=t.document,c=e(r.body);c.on("keydown",function(t){var e=t.keyCode;if(13===e){var a=m(r),l=p(a),n=l.parentNode;if("pre"===n.tagName.toLowerCase()){if(t.shiftKey)return;return i.msg("请暂时用shift+enter"),!1}r.execCommand("formatBlock",!1,"

        ")}}),e(n).parents("form").on("submit",function(){var t=c.html();8==l.ie&&(t=t.replace(/<.+>/g,function(t){return t.toLowerCase()})),n.value=t}),c.on("paste",function(e){r.execCommand("formatBlock",!1,"

        "),setTimeout(function(){f.call(t,c),n.value=c.html()},100)})},f=function(t){var i=this;i.document;t.find("*[style]").each(function(){var t=this.style.textAlign;this.removeAttribute("style"),e(this).css({"text-align":t||""})}),t.find("table").addClass("layui-table"),t.find("script,link").remove()},m=function(t){return t.selection?t.selection.createRange():t.getSelection().getRangeAt(0)},p=function(t){return t.endContainer||t.parentElement().childNodes[0]},v=function(t,i,a){var l=this.document,n=document.createElement(t);for(var o in i)n.setAttribute(o,i[o]);if(n.removeAttribute("text"),l.selection){var r=a.text||i.text;if("a"===t&&!r)return;r&&(n.innerHTML=r),a.pasteHTML(e(n).prop("outerHTML")),a.select()}else{var r=a.toString()||i.text;if("a"===t&&!r)return;r&&(n.innerHTML=r),a.deleteContents(),a.insertNode(n)}},h=function(t,i){var a=this.document,l="layedit-tool-active",n=p(m(a)),o=function(e){return t.find(".layedit-tool-"+e)};i&&i[i.hasClass(l)?"removeClass":"addClass"](l),t.find(">i").removeClass(l),o("unlink").addClass(r),e(n).parents().each(function(){var t=this.tagName.toLowerCase(),e=this.style.textAlign;"b"!==t&&"strong"!==t||o("b").addClass(l),"i"!==t&&"em"!==t||o("i").addClass(l),"u"===t&&o("u").addClass(l),"strike"===t&&o("d").addClass(l),"p"===t&&("center"===e?o("center").addClass(l):"right"===e?o("right").addClass(l):o("left").addClass(l)),"a"===t&&(o("link").addClass(l),o("unlink").removeClass(r))})},g=function(t,a,l){var n=t.document,o=e(n.body),c={link:function(i){var a=p(i),l=e(a).parent();b.call(o,{href:l.attr("href"),target:l.attr("target")},function(e){var a=l[0];"A"===a.tagName?a.href=e.url:v.call(t,"a",{target:e.target,href:e.url,text:e.url},i)})},unlink:function(t){n.execCommand("unlink")},face:function(e){x.call(this,function(i){v.call(t,"img",{src:i.src,alt:i.alt},e)})},image:function(a){var n=this;layui.use("upload",function(o){var r=l.uploadImage||{};o.render({url:r.url,method:r.type,elem:e(n).find("input")[0],done:function(e){0==e.code?(e.data=e.data||{},v.call(t,"img",{src:e.data.src,alt:e.data.title},a)):i.msg(e.msg||"上传失败")}})})},code:function(e){k.call(o,function(i){v.call(t,"pre",{text:i.code,"lay-lang":i.lang},e)})},help:function(){i.open({type:2,title:"帮助",area:["600px","380px"],shadeClose:!0,shade:.1,skin:"layui-layer-msg",content:["http://www.layui.com/about/layedit/help.html","no"]})}},s=a.find(".layui-layedit-tool"),u=function(){var i=e(this),a=i.attr("layedit-event"),l=i.attr("lay-command");if(!i.hasClass(r)){o.focus();var u=m(n);u.commonAncestorContainer;l?(n.execCommand(l),/justifyLeft|justifyCenter|justifyRight/.test(l)&&n.execCommand("formatBlock",!1,"

        "),setTimeout(function(){o.focus()},10)):c[a]&&c[a].call(this,u),h.call(t,s,i)}},d=/image/;s.find(">i").on("mousedown",function(){var t=e(this),i=t.attr("layedit-event");d.test(i)||u.call(this)}).on("click",function(){var t=e(this),i=t.attr("layedit-event");d.test(i)&&u.call(this)}),o.on("click",function(){h.call(t,s),i.close(x.index)})},b=function(t,e){var l=this,n=i.open({type:1,id:"LAY_layedit_link",area:"350px",shade:.05,shadeClose:!0,moveType:1,title:"超链接",skin:"layui-layer-msg",content:['

          ','
        • ','','
          ','',"
          ","
        • ",'
        • ','','
          ','",'","
          ","
        • ",'
        • ','','',"
        • ","
        "].join(""),success:function(t,n){var o="submit(layedit-link-yes)";a.render("radio"),t.find(".layui-btn-primary").on("click",function(){i.close(n),l.focus()}),a.on(o,function(t){i.close(b.index),e&&e(t.field)})}});b.index=n},x=function(t){var a=function(){var t=["[微笑]","[嘻嘻]","[哈哈]","[可爱]","[可怜]","[挖鼻]","[吃惊]","[害羞]","[挤眼]","[闭嘴]","[鄙视]","[爱你]","[泪]","[偷笑]","[亲亲]","[生病]","[太开心]","[白眼]","[右哼哼]","[左哼哼]","[嘘]","[衰]","[委屈]","[吐]","[哈欠]","[抱抱]","[怒]","[疑问]","[馋嘴]","[拜拜]","[思考]","[汗]","[困]","[睡]","[钱]","[失望]","[酷]","[色]","[哼]","[鼓掌]","[晕]","[悲伤]","[抓狂]","[黑线]","[阴险]","[怒骂]","[互粉]","[心]","[伤心]","[猪头]","[熊猫]","[兔子]","[ok]","[耶]","[good]","[NO]","[赞]","[来]","[弱]","[草泥马]","[神马]","[囧]","[浮云]","[给力]","[围观]","[威武]","[奥特曼]","[礼物]","[钟]","[话筒]","[蜡烛]","[蛋糕]"],e={};return layui.each(t,function(t,i){e[i]=layui.cache.dir+"images/face/"+t+".gif"}),e}();return x.hide=x.hide||function(t){"face"!==e(t.target).attr("layedit-event")&&i.close(x.index)},x.index=i.tips(function(){var t=[];return layui.each(a,function(e,i){t.push('
      • '+e+'
      • ')}),'
          '+t.join("")+"
        "}(),this,{tips:1,time:0,skin:"layui-box layui-util-face",maxWidth:500,success:function(l,n){l.css({marginTop:-4,marginLeft:-10}).find(".layui-clear>li").on("click",function(){t&&t({src:a[this.title],alt:this.title}),i.close(n)}),e(document).off("click",x.hide).on("click",x.hide)}})},k=function(t){var e=this,l=i.open({type:1,id:"LAY_layedit_code",area:"550px",shade:.05,shadeClose:!0,moveType:1,title:"插入代码",skin:"layui-layer-msg",content:['
          ','
        • ','','
          ','","
          ","
        • ",'
        • ','','
          ','',"
          ","
        • ",'
        • ','','',"
        • ","
        "].join(""),success:function(l,n){var o="submit(layedit-code-yes)";a.render("select"),l.find(".layui-btn-primary").on("click",function(){i.close(n),e.focus()}),a.on(o,function(e){i.close(k.index),t&&t(e.field)})}});k.index=l},C={html:'',strong:'',italic:'',underline:'',del:'',"|":'',left:'',center:'',right:'',link:'',unlink:'',face:'',image:'',code:'',help:''},w=new c;t(n,w)});layui.define("jquery",function(e){"use strict";var a=layui.$,l="http://www.layui.com/doc/modules/code.html";e("code",function(e){var t=[];e=e||{},e.elem=a(e.elem||".layui-code"),e.about=!("about"in e)||e.about,e.elem.each(function(){t.push(this)}),layui.each(t.reverse(),function(t,i){var c=a(i),o=c.html();(c.attr("lay-encode")||e.encode)&&(o=o.replace(/&(?!#?[a-zA-Z0-9]+;)/g,"&").replace(//g,">").replace(/'/g,"'").replace(/"/g,""")),c.html('
        1. '+o.replace(/[\r\t\n]+/g,"
        2. ")+"
        "),c.find(">.layui-code-h3")[0]||c.prepend('

        '+(c.attr("lay-title")||e.title||"code")+(e.about?'layui.code':"")+"

        ");var d=c.find(">.layui-code-ol");c.addClass("layui-box layui-code-view"),(c.attr("lay-skin")||e.skin)&&c.addClass("layui-code-"+(c.attr("lay-skin")||e.skin)),(d.find("li").length/100|0)>0&&d.css("margin-left",(d.find("li").length/100|0)+"px"),(c.attr("lay-height")||e.height)&&d.css("max-height",c.attr("lay-height")||e.height)})})}).addcss("modules/code.css","skincodecss"); \ No newline at end of file +for(var e=this.offsetParent;e&&!pe.nodeName(e,"html")&&"static"===pe.css(e,"position");)e=e.offsetParent;return e||pt})}}),pe.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,t){var n=/Y/.test(t);pe.fn[e]=function(r){return Pe(this,function(e,r,i){var o=te(e);return void 0===i?o?t in o?o[t]:o.document.documentElement[r]:e[r]:void(o?o.scrollTo(n?pe(o).scrollLeft():i,n?i:pe(o).scrollTop()):e[r]=i)},e,r,arguments.length,null)}}),pe.each(["top","left"],function(e,t){pe.cssHooks[t]=L(fe.pixelPosition,function(e,n){if(n)return n=gt(e,t),ft.test(n)?pe(e).position()[t]+"px":n})}),pe.each({Height:"height",Width:"width"},function(e,t){pe.each({padding:"inner"+e,content:t,"":"outer"+e},function(n,r){pe.fn[r]=function(r,i){var o=arguments.length&&(n||"boolean"!=typeof r),a=n||(r===!0||i===!0?"margin":"border");return Pe(this,function(t,n,r){var i;return pe.isWindow(t)?t.document.documentElement["client"+e]:9===t.nodeType?(i=t.documentElement,Math.max(t.body["scroll"+e],i["scroll"+e],t.body["offset"+e],i["offset"+e],i["client"+e])):void 0===r?pe.css(t,n,a):pe.style(t,n,r,a)},t,o?r:void 0,o,null)}})}),pe.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}}),pe.fn.size=function(){return this.length},pe.fn.andSelf=pe.fn.addBack,layui.define(function(e){layui.$=pe,e("jquery",pe)}),pe});!function(e,t){"use strict";var i,n,a=e.layui&&layui.define,o={getPath:function(){var e=document.currentScript?document.currentScript.src:function(){for(var e,t=document.scripts,i=t.length-1,n=i;n>0;n--)if("interactive"===t[n].readyState){e=t[n].src;break}return e||t[i].src}();return e.substring(0,e.lastIndexOf("/")+1)}(),config:{},end:{},minIndex:0,minLeft:[],btn:["确定","取消"],type:["dialog","page","iframe","loading","tips"],getStyle:function(t,i){var n=t.currentStyle?t.currentStyle:e.getComputedStyle(t,null);return n[n.getPropertyValue?"getPropertyValue":"getAttribute"](i)},link:function(t,i,n){if(r.path){var a=document.getElementsByTagName("head")[0],s=document.createElement("link");"string"==typeof i&&(n=i);var l=(n||t).replace(/\.|\//g,""),f="layuicss-"+l,c=0;s.rel="stylesheet",s.href=r.path+t,s.id=f,document.getElementById(f)||a.appendChild(s),"function"==typeof i&&!function u(){return++c>80?e.console&&console.error("layer.css: Invalid"):void(1989===parseInt(o.getStyle(document.getElementById(f),"width"))?i():setTimeout(u,100))}()}}},r={v:"3.1.1",ie:function(){var t=navigator.userAgent.toLowerCase();return!!(e.ActiveXObject||"ActiveXObject"in e)&&((t.match(/msie\s(\d+)/)||[])[1]||"11")}(),index:e.layer&&e.layer.v?1e5:0,path:o.getPath,config:function(e,t){return e=e||{},r.cache=o.config=i.extend({},o.config,e),r.path=o.config.path||r.path,"string"==typeof e.extend&&(e.extend=[e.extend]),o.config.path&&r.ready(),e.extend?(a?layui.addcss("modules/layer/"+e.extend):o.link("theme/"+e.extend),this):this},ready:function(e){var t="layer",i="",n=(a?"modules/layer/":"theme/")+"default/layer.css?v="+r.v+i;return a?layui.addcss(n,e,t):o.link(n,e,t),this},alert:function(e,t,n){var a="function"==typeof t;return a&&(n=t),r.open(i.extend({content:e,yes:n},a?{}:t))},confirm:function(e,t,n,a){var s="function"==typeof t;return s&&(a=n,n=t),r.open(i.extend({content:e,btn:o.btn,yes:n,btn2:a},s?{}:t))},msg:function(e,n,a){var s="function"==typeof n,f=o.config.skin,c=(f?f+" "+f+"-msg":"")||"layui-layer-msg",u=l.anim.length-1;return s&&(a=n),r.open(i.extend({content:e,time:3e3,shade:!1,skin:c,title:!1,closeBtn:!1,btn:!1,resize:!1,end:a},s&&!o.config.skin?{skin:c+" layui-layer-hui",anim:u}:function(){return n=n||{},(n.icon===-1||n.icon===t&&!o.config.skin)&&(n.skin=c+" "+(n.skin||"layui-layer-hui")),n}()))},load:function(e,t){return r.open(i.extend({type:3,icon:e||0,resize:!1,shade:.01},t))},tips:function(e,t,n){return r.open(i.extend({type:4,content:[e,t],closeBtn:!1,time:3e3,shade:!1,resize:!1,fixed:!1,maxWidth:210},n))}},s=function(e){var t=this;t.index=++r.index,t.config=i.extend({},t.config,o.config,e),document.body?t.creat():setTimeout(function(){t.creat()},30)};s.pt=s.prototype;var l=["layui-layer",".layui-layer-title",".layui-layer-main",".layui-layer-dialog","layui-layer-iframe","layui-layer-content","layui-layer-btn","layui-layer-close"];l.anim=["layer-anim-00","layer-anim-01","layer-anim-02","layer-anim-03","layer-anim-04","layer-anim-05","layer-anim-06"],s.pt.config={type:0,shade:.3,fixed:!0,move:l[1],title:"信息",offset:"auto",area:"auto",closeBtn:1,time:0,zIndex:19891014,maxWidth:360,anim:0,isOutAnim:!0,icon:-1,moveType:1,resize:!0,scrollbar:!0,tips:2},s.pt.vessel=function(e,t){var n=this,a=n.index,r=n.config,s=r.zIndex+a,f="object"==typeof r.title,c=r.maxmin&&(1===r.type||2===r.type),u=r.title?'
        '+(f?r.title[0]:r.title)+"
        ":"";return r.zIndex=s,t([r.shade?'
        ':"",'
        '+(e&&2!=r.type?"":u)+'
        '+(0==r.type&&r.icon!==-1?'':"")+(1==r.type&&e?"":r.content||"")+'
        '+function(){var e=c?'':"";return r.closeBtn&&(e+=''),e}()+""+(r.btn?function(){var e="";"string"==typeof r.btn&&(r.btn=[r.btn]);for(var t=0,i=r.btn.length;t'+r.btn[t]+"";return'
        '+e+"
        "}():"")+(r.resize?'':"")+"
        "],u,i('
        ')),n},s.pt.creat=function(){var e=this,t=e.config,a=e.index,s=t.content,f="object"==typeof s,c=i("body");if(!t.id||!i("#"+t.id)[0]){switch("string"==typeof t.area&&(t.area="auto"===t.area?["",""]:[t.area,""]),t.shift&&(t.anim=t.shift),6==r.ie&&(t.fixed=!1),t.type){case 0:t.btn="btn"in t?t.btn:o.btn[0],r.closeAll("dialog");break;case 2:var s=t.content=f?t.content:[t.content||"http://layer.layui.com","auto"];t.content='';break;case 3:delete t.title,delete t.closeBtn,t.icon===-1&&0===t.icon,r.closeAll("loading");break;case 4:f||(t.content=[t.content,"body"]),t.follow=t.content[1],t.content=t.content[0]+'',delete t.title,t.tips="object"==typeof t.tips?t.tips:[t.tips,!0],t.tipsMore||r.closeAll("tips")}if(e.vessel(f,function(n,r,u){c.append(n[0]),f?function(){2==t.type||4==t.type?function(){i("body").append(n[1])}():function(){s.parents("."+l[0])[0]||(s.data("display",s.css("display")).show().addClass("layui-layer-wrap").wrap(n[1]),i("#"+l[0]+a).find("."+l[5]).before(r))}()}():c.append(n[1]),i(".layui-layer-move")[0]||c.append(o.moveElem=u),e.layero=i("#"+l[0]+a),t.scrollbar||l.html.css("overflow","hidden").attr("layer-full",a)}).auto(a),i("#layui-layer-shade"+e.index).css({"background-color":t.shade[1]||"#000",opacity:t.shade[0]||t.shade}),2==t.type&&6==r.ie&&e.layero.find("iframe").attr("src",s[0]),4==t.type?e.tips():e.offset(),t.fixed&&n.on("resize",function(){e.offset(),(/^\d+%$/.test(t.area[0])||/^\d+%$/.test(t.area[1]))&&e.auto(a),4==t.type&&e.tips()}),t.time<=0||setTimeout(function(){r.close(e.index)},t.time),e.move().callback(),l.anim[t.anim]){var u="layer-anim "+l.anim[t.anim];e.layero.addClass(u).one("webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend",function(){i(this).removeClass(u)})}t.isOutAnim&&e.layero.data("isOutAnim",!0)}},s.pt.auto=function(e){var t=this,a=t.config,o=i("#"+l[0]+e);""===a.area[0]&&a.maxWidth>0&&(r.ie&&r.ie<8&&a.btn&&o.width(o.innerWidth()),o.outerWidth()>a.maxWidth&&o.width(a.maxWidth));var s=[o.innerWidth(),o.innerHeight()],f=o.find(l[1]).outerHeight()||0,c=o.find("."+l[6]).outerHeight()||0,u=function(e){e=o.find(e),e.height(s[1]-f-c-2*(0|parseFloat(e.css("padding-top"))))};switch(a.type){case 2:u("iframe");break;default:""===a.area[1]?a.maxHeight>0&&o.outerHeight()>a.maxHeight?(s[1]=a.maxHeight,u("."+l[5])):a.fixed&&s[1]>=n.height()&&(s[1]=n.height(),u("."+l[5])):u("."+l[5])}return t},s.pt.offset=function(){var e=this,t=e.config,i=e.layero,a=[i.outerWidth(),i.outerHeight()],o="object"==typeof t.offset;e.offsetTop=(n.height()-a[1])/2,e.offsetLeft=(n.width()-a[0])/2,o?(e.offsetTop=t.offset[0],e.offsetLeft=t.offset[1]||e.offsetLeft):"auto"!==t.offset&&("t"===t.offset?e.offsetTop=0:"r"===t.offset?e.offsetLeft=n.width()-a[0]:"b"===t.offset?e.offsetTop=n.height()-a[1]:"l"===t.offset?e.offsetLeft=0:"lt"===t.offset?(e.offsetTop=0,e.offsetLeft=0):"lb"===t.offset?(e.offsetTop=n.height()-a[1],e.offsetLeft=0):"rt"===t.offset?(e.offsetTop=0,e.offsetLeft=n.width()-a[0]):"rb"===t.offset?(e.offsetTop=n.height()-a[1],e.offsetLeft=n.width()-a[0]):e.offsetTop=t.offset),t.fixed||(e.offsetTop=/%$/.test(e.offsetTop)?n.height()*parseFloat(e.offsetTop)/100:parseFloat(e.offsetTop),e.offsetLeft=/%$/.test(e.offsetLeft)?n.width()*parseFloat(e.offsetLeft)/100:parseFloat(e.offsetLeft),e.offsetTop+=n.scrollTop(),e.offsetLeft+=n.scrollLeft()),i.attr("minLeft")&&(e.offsetTop=n.height()-(i.find(l[1]).outerHeight()||0),e.offsetLeft=i.css("left")),i.css({top:e.offsetTop,left:e.offsetLeft})},s.pt.tips=function(){var e=this,t=e.config,a=e.layero,o=[a.outerWidth(),a.outerHeight()],r=i(t.follow);r[0]||(r=i("body"));var s={width:r.outerWidth(),height:r.outerHeight(),top:r.offset().top,left:r.offset().left},f=a.find(".layui-layer-TipsG"),c=t.tips[0];t.tips[1]||f.remove(),s.autoLeft=function(){s.left+o[0]-n.width()>0?(s.tipLeft=s.left+s.width-o[0],f.css({right:12,left:"auto"})):s.tipLeft=s.left},s.where=[function(){s.autoLeft(),s.tipTop=s.top-o[1]-10,f.removeClass("layui-layer-TipsB").addClass("layui-layer-TipsT").css("border-right-color",t.tips[1])},function(){s.tipLeft=s.left+s.width+10,s.tipTop=s.top,f.removeClass("layui-layer-TipsL").addClass("layui-layer-TipsR").css("border-bottom-color",t.tips[1])},function(){s.autoLeft(),s.tipTop=s.top+s.height+10,f.removeClass("layui-layer-TipsT").addClass("layui-layer-TipsB").css("border-right-color",t.tips[1])},function(){s.tipLeft=s.left-o[0]-10,s.tipTop=s.top,f.removeClass("layui-layer-TipsR").addClass("layui-layer-TipsL").css("border-bottom-color",t.tips[1])}],s.where[c-1](),1===c?s.top-(n.scrollTop()+o[1]+16)<0&&s.where[2]():2===c?n.width()-(s.left+s.width+o[0]+16)>0||s.where[3]():3===c?s.top-n.scrollTop()+s.height+o[1]+16-n.height()>0&&s.where[0]():4===c&&o[0]+16-s.left>0&&s.where[1](),a.find("."+l[5]).css({"background-color":t.tips[1],"padding-right":t.closeBtn?"30px":""}),a.css({left:s.tipLeft-(t.fixed?n.scrollLeft():0),top:s.tipTop-(t.fixed?n.scrollTop():0)})},s.pt.move=function(){var e=this,t=e.config,a=i(document),s=e.layero,l=s.find(t.move),f=s.find(".layui-layer-resize"),c={};return t.move&&l.css("cursor","move"),l.on("mousedown",function(e){e.preventDefault(),t.move&&(c.moveStart=!0,c.offset=[e.clientX-parseFloat(s.css("left")),e.clientY-parseFloat(s.css("top"))],o.moveElem.css("cursor","move").show())}),f.on("mousedown",function(e){e.preventDefault(),c.resizeStart=!0,c.offset=[e.clientX,e.clientY],c.area=[s.outerWidth(),s.outerHeight()],o.moveElem.css("cursor","se-resize").show()}),a.on("mousemove",function(i){if(c.moveStart){var a=i.clientX-c.offset[0],o=i.clientY-c.offset[1],l="fixed"===s.css("position");if(i.preventDefault(),c.stX=l?0:n.scrollLeft(),c.stY=l?0:n.scrollTop(),!t.moveOut){var f=n.width()-s.outerWidth()+c.stX,u=n.height()-s.outerHeight()+c.stY;af&&(a=f),ou&&(o=u)}s.css({left:a,top:o})}if(t.resize&&c.resizeStart){var a=i.clientX-c.offset[0],o=i.clientY-c.offset[1];i.preventDefault(),r.style(e.index,{width:c.area[0]+a,height:c.area[1]+o}),c.isResize=!0,t.resizing&&t.resizing(s)}}).on("mouseup",function(e){c.moveStart&&(delete c.moveStart,o.moveElem.hide(),t.moveEnd&&t.moveEnd(s)),c.resizeStart&&(delete c.resizeStart,o.moveElem.hide())}),e},s.pt.callback=function(){function e(){var e=a.cancel&&a.cancel(t.index,n);e===!1||r.close(t.index)}var t=this,n=t.layero,a=t.config;t.openLayer(),a.success&&(2==a.type?n.find("iframe").on("load",function(){a.success(n,t.index)}):a.success(n,t.index)),6==r.ie&&t.IE6(n),n.find("."+l[6]).children("a").on("click",function(){var e=i(this).index();if(0===e)a.yes?a.yes(t.index,n):a.btn1?a.btn1(t.index,n):r.close(t.index);else{var o=a["btn"+(e+1)]&&a["btn"+(e+1)](t.index,n);o===!1||r.close(t.index)}}),n.find("."+l[7]).on("click",e),a.shadeClose&&i("#layui-layer-shade"+t.index).on("click",function(){r.close(t.index)}),n.find(".layui-layer-min").on("click",function(){var e=a.min&&a.min(n);e===!1||r.min(t.index,a)}),n.find(".layui-layer-max").on("click",function(){i(this).hasClass("layui-layer-maxmin")?(r.restore(t.index),a.restore&&a.restore(n)):(r.full(t.index,a),setTimeout(function(){a.full&&a.full(n)},100))}),a.end&&(o.end[t.index]=a.end)},o.reselect=function(){i.each(i("select"),function(e,t){var n=i(this);n.parents("."+l[0])[0]||1==n.attr("layer")&&i("."+l[0]).length<1&&n.removeAttr("layer").show(),n=null})},s.pt.IE6=function(e){i("select").each(function(e,t){var n=i(this);n.parents("."+l[0])[0]||"none"===n.css("display")||n.attr({layer:"1"}).hide(),n=null})},s.pt.openLayer=function(){var e=this;r.zIndex=e.config.zIndex,r.setTop=function(e){var t=function(){r.zIndex++,e.css("z-index",r.zIndex+1)};return r.zIndex=parseInt(e[0].style.zIndex),e.on("mousedown",t),r.zIndex}},o.record=function(e){var t=[e.width(),e.height(),e.position().top,e.position().left+parseFloat(e.css("margin-left"))];e.find(".layui-layer-max").addClass("layui-layer-maxmin"),e.attr({area:t})},o.rescollbar=function(e){l.html.attr("layer-full")==e&&(l.html[0].style.removeProperty?l.html[0].style.removeProperty("overflow"):l.html[0].style.removeAttribute("overflow"),l.html.removeAttr("layer-full"))},e.layer=r,r.getChildFrame=function(e,t){return t=t||i("."+l[4]).attr("times"),i("#"+l[0]+t).find("iframe").contents().find(e)},r.getFrameIndex=function(e){return i("#"+e).parents("."+l[4]).attr("times")},r.iframeAuto=function(e){if(e){var t=r.getChildFrame("html",e).outerHeight(),n=i("#"+l[0]+e),a=n.find(l[1]).outerHeight()||0,o=n.find("."+l[6]).outerHeight()||0;n.css({height:t+a+o}),n.find("iframe").css({height:t})}},r.iframeSrc=function(e,t){i("#"+l[0]+e).find("iframe").attr("src",t)},r.style=function(e,t,n){var a=i("#"+l[0]+e),r=a.find(".layui-layer-content"),s=a.attr("type"),f=a.find(l[1]).outerHeight()||0,c=a.find("."+l[6]).outerHeight()||0;a.attr("minLeft");s!==o.type[3]&&s!==o.type[4]&&(n||(parseFloat(t.width)<=260&&(t.width=260),parseFloat(t.height)-f-c<=64&&(t.height=64+f+c)),a.css(t),c=a.find("."+l[6]).outerHeight(),s===o.type[2]?a.find("iframe").css({height:parseFloat(t.height)-f-c}):r.css({height:parseFloat(t.height)-f-c-parseFloat(r.css("padding-top"))-parseFloat(r.css("padding-bottom"))}))},r.min=function(e,t){var a=i("#"+l[0]+e),s=a.find(l[1]).outerHeight()||0,f=a.attr("minLeft")||181*o.minIndex+"px",c=a.css("position");o.record(a),o.minLeft[0]&&(f=o.minLeft[0],o.minLeft.shift()),a.attr("position",c),r.style(e,{width:180,height:s,left:f,top:n.height()-s,position:"fixed",overflow:"hidden"},!0),a.find(".layui-layer-min").hide(),"page"===a.attr("type")&&a.find(l[4]).hide(),o.rescollbar(e),a.attr("minLeft")||o.minIndex++,a.attr("minLeft",f)},r.restore=function(e){var t=i("#"+l[0]+e),n=t.attr("area").split(",");t.attr("type");r.style(e,{width:parseFloat(n[0]),height:parseFloat(n[1]),top:parseFloat(n[2]),left:parseFloat(n[3]),position:t.attr("position"),overflow:"visible"},!0),t.find(".layui-layer-max").removeClass("layui-layer-maxmin"),t.find(".layui-layer-min").show(),"page"===t.attr("type")&&t.find(l[4]).show(),o.rescollbar(e)},r.full=function(e){var t,a=i("#"+l[0]+e);o.record(a),l.html.attr("layer-full")||l.html.css("overflow","hidden").attr("layer-full",e),clearTimeout(t),t=setTimeout(function(){var t="fixed"===a.css("position");r.style(e,{top:t?0:n.scrollTop(),left:t?0:n.scrollLeft(),width:n.width(),height:n.height()},!0),a.find(".layui-layer-min").hide()},100)},r.title=function(e,t){var n=i("#"+l[0]+(t||r.index)).find(l[1]);n.html(e)},r.close=function(e){var t=i("#"+l[0]+e),n=t.attr("type"),a="layer-anim-close";if(t[0]){var s="layui-layer-wrap",f=function(){if(n===o.type[1]&&"object"===t.attr("conType")){t.children(":not(."+l[5]+")").remove();for(var a=t.find("."+s),r=0;r<2;r++)a.unwrap();a.css("display",a.data("display")).removeClass(s)}else{if(n===o.type[2])try{var f=i("#"+l[4]+e)[0];f.contentWindow.document.write(""),f.contentWindow.close(),t.find("."+l[5])[0].removeChild(f)}catch(c){}t[0].innerHTML="",t.remove()}"function"==typeof o.end[e]&&o.end[e](),delete o.end[e]};t.data("isOutAnim")&&t.addClass("layer-anim "+a),i("#layui-layer-moves, #layui-layer-shade"+e).remove(),6==r.ie&&o.reselect(),o.rescollbar(e),t.attr("minLeft")&&(o.minIndex--,o.minLeft.push(t.attr("minLeft"))),r.ie&&r.ie<10||!t.data("isOutAnim")?f():setTimeout(function(){f()},200)}},r.closeAll=function(e){i.each(i("."+l[0]),function(){var t=i(this),n=e?t.attr("type")===e:1;n&&r.close(t.attr("times")),n=null})};var f=r.cache||{},c=function(e){return f.skin?" "+f.skin+" "+f.skin+"-"+e:""};r.prompt=function(e,t){var a="";if(e=e||{},"function"==typeof e&&(t=e),e.area){var o=e.area;a='style="width: '+o[0]+"; height: "+o[1]+';"',delete e.area}var s,l=2==e.formType?'":function(){return''}(),f=e.success;return delete e.success,r.open(i.extend({type:1,btn:["确定","取消"],content:l,skin:"layui-layer-prompt"+c("prompt"),maxWidth:n.width(),success:function(t){s=t.find(".layui-layer-input"),s.val(e.value||"").focus(),"function"==typeof f&&f(t)},resize:!1,yes:function(i){var n=s.val();""===n?s.focus():n.length>(e.maxlength||500)?r.tips("最多输入"+(e.maxlength||500)+"个字数",s,{tips:1}):t&&t(n,i,s)}},e))},r.tab=function(e){e=e||{};var t=e.tab||{},n="layui-this",a=e.success;return delete e.success,r.open(i.extend({type:1,skin:"layui-layer-tab"+c("tab"),resize:!1,title:function(){var e=t.length,i=1,a="";if(e>0)for(a=''+t[0].title+"";i"+t[i].title+"";return a}(),content:'
          '+function(){var e=t.length,i=1,a="";if(e>0)for(a='
        • '+(t[0].content||"no content")+"
        • ";i'+(t[i].content||"no content")+"";return a}()+"
        ",success:function(t){var o=t.find(".layui-layer-title").children(),r=t.find(".layui-layer-tabmain").children();o.on("mousedown",function(t){t.stopPropagation?t.stopPropagation():t.cancelBubble=!0;var a=i(this),o=a.index();a.addClass(n).siblings().removeClass(n),r.eq(o).show().siblings().hide(),"function"==typeof e.change&&e.change(o)}),"function"==typeof a&&a(t)}},e))},r.photos=function(t,n,a){function o(e,t,i){var n=new Image;return n.src=e,n.complete?t(n):(n.onload=function(){n.onload=null,t(n)},void(n.onerror=function(e){n.onerror=null,i(e)}))}var s={};if(t=t||{},t.photos){var l=t.photos.constructor===Object,f=l?t.photos:{},u=f.data||[],d=f.start||0;s.imgIndex=(0|d)+1,t.img=t.img||"img";var y=t.success;if(delete t.success,l){if(0===u.length)return r.msg("没有图片")}else{var p=i(t.photos),h=function(){u=[],p.find(t.img).each(function(e){var t=i(this);t.attr("layer-index",e),u.push({alt:t.attr("alt"),pid:t.attr("layer-pid"),src:t.attr("layer-src")||t.attr("src"),thumb:t.attr("src")})})};if(h(),0===u.length)return;if(n||p.on("click",t.img,function(){var e=i(this),n=e.attr("layer-index");r.photos(i.extend(t,{photos:{start:n,data:u,tab:t.tab},full:t.full}),!0),h()}),!n)return}s.imgprev=function(e){s.imgIndex--,s.imgIndex<1&&(s.imgIndex=u.length),s.tabimg(e)},s.imgnext=function(e,t){s.imgIndex++,s.imgIndex>u.length&&(s.imgIndex=1,t)||s.tabimg(e)},s.keyup=function(e){if(!s.end){var t=e.keyCode;e.preventDefault(),37===t?s.imgprev(!0):39===t?s.imgnext(!0):27===t&&r.close(s.index)}},s.tabimg=function(e){if(!(u.length<=1))return f.start=s.imgIndex-1,r.close(s.index),r.photos(t,!0,e)},s.event=function(){s.bigimg.hover(function(){s.imgsee.show()},function(){s.imgsee.hide()}),s.bigimg.find(".layui-layer-imgprev").on("click",function(e){e.preventDefault(),s.imgprev()}),s.bigimg.find(".layui-layer-imgnext").on("click",function(e){e.preventDefault(),s.imgnext()}),i(document).on("keyup",s.keyup)},s.loadi=r.load(1,{shade:!("shade"in t)&&.9,scrollbar:!1}),o(u[d].src,function(n){r.close(s.loadi),s.index=r.open(i.extend({type:1,id:"layui-layer-photos",area:function(){var a=[n.width,n.height],o=[i(e).width()-100,i(e).height()-100];if(!t.full&&(a[0]>o[0]||a[1]>o[1])){var r=[a[0]/o[0],a[1]/o[1]];r[0]>r[1]?(a[0]=a[0]/r[0],a[1]=a[1]/r[0]):r[0]'+(u[d].alt||
        '+(u.length>1?'':"")+'
        '+(u[d].alt||"")+""+s.imgIndex+"/"+u.length+"
        ",success:function(e,i){s.bigimg=e.find(".layui-layer-phimg"),s.imgsee=e.find(".layui-layer-imguide,.layui-layer-imgbar"),s.event(e),t.tab&&t.tab(u[d],e),"function"==typeof y&&y(e)},end:function(){s.end=!0,i(document).off("keyup",s.keyup)}},t))},function(){r.close(s.loadi),r.msg("当前图片地址异常
        是否继续查看下一张?",{time:3e4,btn:["下一张","不看了"],yes:function(){u.length>1&&s.imgnext(!0,!0)}})})}},o.run=function(t){i=t,n=i(e),l.html=i("html"),r.open=function(e){var t=new s(e);return t.index}},e.layui&&layui.define?(r.ready(),layui.define("jquery",function(t){r.path=layui.cache.dir,o.run(layui.$),e.layer=r,t("layer",r)})):"function"==typeof define&&define.amd?define(["jquery"],function(){return o.run(e.jQuery),r}):function(){o.run(e.jQuery),r.ready()}()}(window);layui.define("jquery",function(t){"use strict";var a=layui.$,i=(layui.hint(),layui.device()),e="element",l="layui-this",n="layui-show",s=function(){this.config={}};s.prototype.set=function(t){var i=this;return a.extend(!0,i.config,t),i},s.prototype.on=function(t,a){return layui.onevent.call(this,e,t,a)},s.prototype.tabAdd=function(t,i){var e=".layui-tab-title",l=a(".layui-tab[lay-filter="+t+"]"),n=l.children(e),s=n.children(".layui-tab-bar"),o=l.children(".layui-tab-content"),r='
      • "+(i.title||"unnaming")+"
      • ";return s[0]?s.before(r):n.append(r),o.append('
        '+(i.content||"")+"
        "),f.hideTabMore(!0),f.tabAuto(),this},s.prototype.tabDelete=function(t,i){var e=".layui-tab-title",l=a(".layui-tab[lay-filter="+t+"]"),n=l.children(e),s=n.find('>li[lay-id="'+i+'"]');return f.tabDelete(null,s),this},s.prototype.tabChange=function(t,i){var e=".layui-tab-title",l=a(".layui-tab[lay-filter="+t+"]"),n=l.children(e),s=n.find('>li[lay-id="'+i+'"]');return f.tabClick.call(s[0],null,null,s),this},s.prototype.tab=function(t){t=t||{},b.on("click",t.headerElem,function(i){var e=a(this).index();f.tabClick.call(this,i,e,null,t)})},s.prototype.progress=function(t,i){var e="layui-progress",l=a("."+e+"[lay-filter="+t+"]"),n=l.find("."+e+"-bar"),s=n.find("."+e+"-text");return n.css("width",i),s.text(i),this};var o=".layui-nav",r="layui-nav-item",c="layui-nav-bar",u="layui-nav-tree",d="layui-nav-child",y="layui-nav-more",h="layui-anim layui-anim-upbit",f={tabClick:function(t,i,s,o){o=o||{};var r=s||a(this),i=i||r.parent().children("li").index(r),c=o.headerElem?r.parent():r.parents(".layui-tab").eq(0),u=o.bodyElem?a(o.bodyElem):c.children(".layui-tab-content").children(".layui-tab-item"),d=r.find("a"),y=c.attr("lay-filter");"javascript:;"!==d.attr("href")&&"_blank"===d.attr("target")||(r.addClass(l).siblings().removeClass(l),u.eq(i).addClass(n).siblings().removeClass(n)),layui.event.call(this,e,"tab("+y+")",{elem:c,index:i})},tabDelete:function(t,i){var n=i||a(this).parent(),s=n.index(),o=n.parents(".layui-tab").eq(0),r=o.children(".layui-tab-content").children(".layui-tab-item"),c=o.attr("lay-filter");n.hasClass(l)&&(n.next()[0]?f.tabClick.call(n.next()[0],null,s+1):n.prev()[0]&&f.tabClick.call(n.prev()[0],null,s-1)),n.remove(),r.eq(s).remove(),setTimeout(function(){f.tabAuto()},50),layui.event.call(this,e,"tabDelete("+c+")",{elem:o,index:s})},tabAuto:function(){var t="layui-tab-more",e="layui-tab-bar",l="layui-tab-close",n=this;a(".layui-tab").each(function(){var s=a(this),o=s.children(".layui-tab-title"),r=(s.children(".layui-tab-content").children(".layui-tab-item"),'lay-stope="tabmore"'),c=a('');if(n===window&&8!=i.ie&&f.hideTabMore(!0),s.attr("lay-allowClose")&&o.find("li").each(function(){var t=a(this);if(!t.find("."+l)[0]){var i=a('');i.on("click",f.tabDelete),t.append(i)}}),"string"!=typeof s.attr("lay-unauto"))if(o.prop("scrollWidth")>o.outerWidth()+1){if(o.find("."+e)[0])return;o.append(c),s.attr("overflow",""),c.on("click",function(a){o[this.title?"removeClass":"addClass"](t),this.title=this.title?"":"收缩"})}else o.find("."+e).remove(),s.removeAttr("overflow")})},hideTabMore:function(t){var i=a(".layui-tab-title");t!==!0&&"tabmore"===a(t.target).attr("lay-stope")||(i.removeClass("layui-tab-more"),i.find(".layui-tab-bar").attr("title",""))},clickThis:function(){var t=a(this),i=t.parents(o),n=i.attr("lay-filter"),s=t.parent(),c=t.siblings("."+d),y="string"==typeof s.attr("lay-unselect");"javascript:;"!==t.attr("href")&&"_blank"===t.attr("target")||y||c[0]||(i.find("."+l).removeClass(l),s.addClass(l)),i.hasClass(u)&&(c.removeClass(h),c[0]&&(s["none"===c.css("display")?"addClass":"removeClass"](r+"ed"),"all"===i.attr("lay-shrink")&&s.siblings().removeClass(r+"ed"))),layui.event.call(this,e,"nav("+n+")",t)},collapse:function(){var t=a(this),i=t.find(".layui-colla-icon"),l=t.siblings(".layui-colla-content"),s=t.parents(".layui-collapse").eq(0),o=s.attr("lay-filter"),r="none"===l.css("display");if("string"==typeof s.attr("lay-accordion")){var c=s.children(".layui-colla-item").children("."+n);c.siblings(".layui-colla-title").children(".layui-colla-icon").html(""),c.removeClass(n)}l[r?"addClass":"removeClass"](n),i.html(r?"":""),layui.event.call(this,e,"collapse("+o+")",{title:t,content:l,show:r})}};s.prototype.init=function(t,e){var l=function(){return e?'[lay-filter="'+e+'"]':""}(),s={tab:function(){f.tabAuto.call({})},nav:function(){var t=200,e={},s={},p={},b=function(l,o,r){var c=a(this),f=c.find("."+d);o.hasClass(u)?l.css({top:c.position().top,height:c.children("a").outerHeight(),opacity:1}):(f.addClass(h),l.css({left:c.position().left+parseFloat(c.css("marginLeft")),top:c.position().top+c.height()-l.height()}),e[r]=setTimeout(function(){l.css({width:c.width(),opacity:1})},i.ie&&i.ie<10?0:t),clearTimeout(p[r]),"block"===f.css("display")&&clearTimeout(s[r]),s[r]=setTimeout(function(){f.addClass(n),c.find("."+y).addClass(y+"d")},300))};a(o+l).each(function(i){var l=a(this),o=a(''),h=l.find("."+r);l.find("."+c)[0]||(l.append(o),h.on("mouseenter",function(){b.call(this,o,l,i)}).on("mouseleave",function(){l.hasClass(u)||(clearTimeout(s[i]),s[i]=setTimeout(function(){l.find("."+d).removeClass(n),l.find("."+y).removeClass(y+"d")},300))}),l.on("mouseleave",function(){clearTimeout(e[i]),p[i]=setTimeout(function(){l.hasClass(u)?o.css({height:0,top:o.position().top+o.height()/2,opacity:0}):o.css({width:0,left:o.position().left+o.width()/2,opacity:0})},t)})),h.find("a").each(function(){var t=a(this),i=(t.parent(),t.siblings("."+d));i[0]&&!t.children("."+y)[0]&&t.append(''),t.off("click",f.clickThis).on("click",f.clickThis)})})},breadcrumb:function(){var t=".layui-breadcrumb";a(t+l).each(function(){var t=a(this),i="lay-separator",e=t.attr(i)||"/",l=t.find("a");l.next("span["+i+"]")[0]||(l.each(function(t){t!==l.length-1&&a(this).after(""+e+"")}),t.css("visibility","visible"))})},progress:function(){var t="layui-progress";a("."+t+l).each(function(){var i=a(this),e=i.find(".layui-progress-bar"),l=e.attr("lay-percent");e.css("width",function(){return/^.+\/.+$/.test(l)?100*new Function("return "+l)()+"%":l}()),i.attr("lay-showPercent")&&setTimeout(function(){e.html(''+l+"")},350)})},collapse:function(){var t="layui-collapse";a("."+t+l).each(function(){var t=a(this).find(".layui-colla-item");t.each(function(){var t=a(this),i=t.find(".layui-colla-title"),e=t.find(".layui-colla-content"),l="none"===e.css("display");i.find(".layui-colla-icon").remove(),i.append(''+(l?"":"")+""),i.off("click",f.collapse).on("click",f.collapse)})})}};return s[t]?s[t]():layui.each(s,function(t,a){a()})},s.prototype.render=s.prototype.init;var p=new s,b=a(document);p.render();var v=".layui-tab-title li";b.on("click",v,f.tabClick),b.on("click",f.hideTabMore),a(window).on("resize",f.tabAuto),t(e,p)});layui.define("layer",function(e){"use strict";var t=layui.$,i=layui.layer,n=layui.hint(),a=layui.device(),o={config:{},set:function(e){var i=this;return i.config=t.extend({},i.config,e),i},on:function(e,t){return layui.onevent.call(this,r,e,t)}},l=function(){var e=this;return{upload:function(t){e.upload.call(e,t)},config:e.config}},r="upload",u="layui-upload-file",c="layui-upload-form",f="layui-upload-iframe",s="layui-upload-choose",p=function(e){var i=this;i.config=t.extend({},i.config,o.config,e),i.render()};p.prototype.config={accept:"images",exts:"",auto:!0,bindAction:"",url:"",field:"file",method:"post",data:{},drag:!0,size:0,number:0,multiple:!1},p.prototype.render=function(e){var i=this,e=i.config;e.elem=t(e.elem),e.bindAction=t(e.bindAction),i.file(),i.events()},p.prototype.file=function(){var e=this,i=e.config,n=e.elemFile=t(['"].join("")),o=i.elem.next();(o.hasClass(u)||o.hasClass(c))&&o.remove(),a.ie&&a.ie<10&&i.elem.wrap('
        '),e.isFile()?(e.elemFile=i.elem,i.field=i.elem[0].name):i.elem.after(n),a.ie&&a.ie<10&&e.initIE()},p.prototype.initIE=function(){var e=this,i=e.config,n=t(''),a=t(['
        ',"
        "].join(""));t("#"+f)[0]||t("body").append(n),i.elem.next().hasClass(f)||(e.elemFile.wrap(a),i.elem.next("."+f).append(function(){var e=[];return layui.each(i.data,function(t,i){i="function"==typeof i?i():i,e.push('')}),e.join("")}()))},p.prototype.msg=function(e){return i.msg(e,{icon:2,shift:6})},p.prototype.isFile=function(){var e=this.config.elem[0];if(e)return"input"===e.tagName.toLocaleLowerCase()&&"file"===e.type},p.prototype.preview=function(e){var t=this;window.FileReader&&layui.each(t.chooseFiles,function(t,i){var n=new FileReader;n.readAsDataURL(i),n.onload=function(){e&&e(t,i,this.result)}})},p.prototype.upload=function(e,i){var n,o=this,l=o.config,r=o.elemFile[0],u=function(){var i=0,n=0,a=e||o.files||o.chooseFiles||r.files,u=function(){l.multiple&&i+n===o.fileLength&&"function"==typeof l.allDone&&l.allDone({total:o.fileLength,successful:i,aborted:n})};layui.each(a,function(e,a){var r=new FormData;r.append(l.field,a),layui.each(l.data,function(e,t){t="function"==typeof t?t():t,r.append(e,t)}),t.ajax({url:l.url,type:l.method,data:r,contentType:!1,processData:!1,dataType:"json",headers:l.headers||{},success:function(t){i++,d(e,t),u()},error:function(){n++,o.msg("请求上传接口出现异常"),m(e),u()}})})},c=function(){var e=t("#"+f);o.elemFile.parent().submit(),clearInterval(p.timer),p.timer=setInterval(function(){var t,i=e.contents().find("body");try{t=i.text()}catch(n){o.msg("获取上传后的响应信息出现异常"),clearInterval(p.timer),m()}t&&(clearInterval(p.timer),i.html(""),d(0,t))},30)},d=function(e,t){if(o.elemFile.next("."+s).remove(),r.value="","object"!=typeof t)try{t=JSON.parse(t)}catch(i){return t={},o.msg("请对上传接口返回有效JSON")}"function"==typeof l.done&&l.done(t,e||0,function(e){o.upload(e)})},m=function(e){l.auto&&(r.value=""),"function"==typeof l.error&&l.error(e||0,function(e){o.upload(e)})},h=l.exts,v=function(){var t=[];return layui.each(e||o.chooseFiles,function(e,i){t.push(i.name)}),t}(),g={preview:function(e){o.preview(e)},upload:function(e,t){var i={};i[e]=t,o.upload(i)},pushFile:function(){return o.files=o.files||{},layui.each(o.chooseFiles,function(e,t){o.files[e]=t}),o.files}},y=function(){return"choose"===i?l.choose&&l.choose(g):(l.before&&l.before(g),a.ie?a.ie>9?u():c():void u())};if(v=0===v.length?r.value.match(/[^\/\\]+\..+/g)||[]||"":v,0!==v.length){switch(l.accept){case"file":if(h&&!RegExp("\\w\\.("+h+")$","i").test(escape(v)))return o.msg("选择的文件中包含不支持的格式"),r.value="";break;case"video":if(!RegExp("\\w\\.("+(h||"avi|mp4|wma|rmvb|rm|flash|3gp|flv")+")$","i").test(escape(v)))return o.msg("选择的视频中包含不支持的格式"),r.value="";break;case"audio":if(!RegExp("\\w\\.("+(h||"mp3|wav|mid")+")$","i").test(escape(v)))return o.msg("选择的音频中包含不支持的格式"),r.value="";break;default:if(layui.each(v,function(e,t){RegExp("\\w\\.("+(h||"jpg|png|gif|bmp|jpeg$")+")","i").test(escape(t))||(n=!0)}),n)return o.msg("选择的图片中包含不支持的格式"),r.value=""}if(o.fileLength=function(){var t=0,i=e||o.files||o.chooseFiles||r.files;return layui.each(i,function(){t++}),t}(),l.number&&o.fileLength>l.number)return o.msg("同时最多只能上传的数量为:"+l.number);if(l.size>0&&!(a.ie&&a.ie<10)){var F;if(layui.each(o.chooseFiles,function(e,t){if(t.size>1024*l.size){var i=l.size/1024;i=i>=1?Math.floor(i)+(i%1>0?i.toFixed(1):0)+"MB":l.size+"KB",r.value="",F=i}}),F)return o.msg("文件不能超过"+F)}y()}},p.prototype.events=function(){var e=this,i=e.config,o=function(t){e.chooseFiles={},layui.each(t,function(t,i){var n=(new Date).getTime();e.chooseFiles[n+"-"+t]=i})},l=function(t,n){var a=e.elemFile,o=t.length>1?t.length+"个文件":(t[0]||{}).name||a[0].value.match(/[^\/\\]+\..+/g)||[]||"";a.next().hasClass(s)&&a.next().remove(),e.upload(null,"choose"),e.isFile()||i.choose||a.after(''+o+"")};i.elem.off("upload.start").on("upload.start",function(){var a=t(this),o=a.attr("lay-data");if(o)try{o=new Function("return "+o)(),e.config=t.extend({},i,o)}catch(l){n.error("Upload element property lay-data configuration item has a syntax error: "+o)}e.config.item=a,e.elemFile[0].click()}),a.ie&&a.ie<10||i.elem.off("upload.over").on("upload.over",function(){var e=t(this);e.attr("lay-over","")}).off("upload.leave").on("upload.leave",function(){var e=t(this);e.removeAttr("lay-over")}).off("upload.drop").on("upload.drop",function(n,a){var r=t(this),u=a.originalEvent.dataTransfer.files||[];r.removeAttr("lay-over"),o(u),i.auto?e.upload(u):l(u)}),e.elemFile.off("upload.change").on("upload.change",function(){var t=this.files||[];o(t),i.auto?e.upload():l(t)}),i.bindAction.off("upload.action").on("upload.action",function(){e.upload()}),i.elem.data("haveEvents")||(e.elemFile.on("change",function(){t(this).trigger("upload.change")}),i.elem.on("click",function(){e.isFile()||t(this).trigger("upload.start")}),i.drag&&i.elem.on("dragover",function(e){e.preventDefault(),t(this).trigger("upload.over")}).on("dragleave",function(e){t(this).trigger("upload.leave")}).on("drop",function(e){e.preventDefault(),t(this).trigger("upload.drop",e)}),i.bindAction.on("click",function(){t(this).trigger("upload.action")}),i.elem.data("haveEvents",!0))},o.render=function(e){var t=new p(e);return l.call(t)},e(r,o)});layui.define("layer",function(e){"use strict";var t=layui.$,i=layui.layer,a=layui.hint(),n=layui.device(),l="form",r=".layui-form",s="layui-this",o="layui-hide",u="layui-disabled",c=function(){this.config={verify:{required:[/[\S]+/,"必填项不能为空"],phone:[/^1\d{10}$/,"请输入正确的手机号"],email:[/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/,"邮箱格式不正确"],url:[/(^#)|(^http(s*):\/\/[^\s]+\.[^\s]+)/,"链接格式不正确"],number:function(e){if(!e||isNaN(e))return"只能填写数字"},date:[/^(\d{4})[-\/](\d{1}|0\d{1}|1[0-2])([-\/](\d{1}|0\d{1}|[1-2][0-9]|3[0-1]))*$/,"日期格式不正确"],identity:[/(^\d{15}$)|(^\d{17}(x|X|\d)$)/,"请输入正确的身份证号"]}}};c.prototype.set=function(e){var i=this;return t.extend(!0,i.config,e),i},c.prototype.verify=function(e){var i=this;return t.extend(!0,i.config.verify,e),i},c.prototype.on=function(e,t){return layui.onevent.call(this,l,e,t)},c.prototype.render=function(e,i){var n=this,c=t(r+function(){return i?'[lay-filter="'+i+'"]':""}()),d={select:function(){var e,i="请选择",a="layui-form-select",n="layui-select-title",r="layui-select-none",d="",f=c.find("select"),y=function(i,l){t(i.target).parent().hasClass(n)&&!l||(t("."+a).removeClass(a+"ed "+a+"up"),e&&d&&e.val(d)),e=null},h=function(i,c,f){var h=t(this),p=i.find("."+n),m=p.find("input"),k=i.find("dl"),g=k.children("dd");if(!c){var x=function(){var e=i.offset().top+i.outerHeight()+5-v.scrollTop(),t=k.outerHeight();i.addClass(a+"ed"),g.removeClass(o),e+t>v.height()&&e>=t&&i.addClass(a+"up")},b=function(e){i.removeClass(a+"ed "+a+"up"),m.blur(),e||C(m.val(),function(e){e&&(d=k.find("."+s).html(),m&&m.val(d))})};p.on("click",function(e){i.hasClass(a+"ed")?b():(y(e,!0),x()),k.find("."+r).remove()}),p.find(".layui-edge").on("click",function(){m.focus()}),m.on("keyup",function(e){var t=e.keyCode;9===t&&x()}).on("keydown",function(e){var t=e.keyCode;9===t?b():13===t&&e.preventDefault()});var C=function(e,i,a){var n=0;layui.each(g,function(){var i=t(this),l=i.text(),r=l.indexOf(e)===-1;(""===e||"blur"===a?e!==l:r)&&n++,"keyup"===a&&i[r?"addClass":"removeClass"](o)});var l=n===g.length;return i(l),l},w=function(e){var t=this.value,i=e.keyCode;return 9!==i&&13!==i&&37!==i&&38!==i&&39!==i&&40!==i&&(C(t,function(e){e?k.find("."+r)[0]||k.append('

        无匹配项

        '):k.find("."+r).remove()},"keyup"),void(""===t&&k.find("."+r).remove()))};f&&m.on("keyup",w).on("blur",function(t){e=m,d=k.find("."+s).html(),setTimeout(function(){C(m.val(),function(e){d||m.val("")},"blur")},200)}),g.on("click",function(){var e=t(this),a=e.attr("lay-value"),n=h.attr("lay-filter");return!e.hasClass(u)&&(e.hasClass("layui-select-tips")?m.val(""):(m.val(e.text()),e.addClass(s)),e.siblings().removeClass(s),h.val(a).removeClass("layui-form-danger"),layui.event.call(this,l,"select("+n+")",{elem:h[0],value:a,othis:i}),b(!0),!1)}),i.find("dl>dt").on("click",function(e){return!1}),t(document).off("click",y).on("click",y)}};f.each(function(e,l){var r=t(this),o=r.next("."+a),c=this.disabled,d=l.value,f=t(l.options[l.selectedIndex]),y=l.options[0];if("string"==typeof r.attr("lay-ignore"))return r.show();var v="string"==typeof r.attr("lay-search"),p=y?y.value?i:y.innerHTML||i:i,m=t(['
        ','
        ','
        ','
        '+function(e){var t=[];return layui.each(e,function(e,a){0!==e||a.value?"optgroup"===a.tagName.toLowerCase()?t.push("
        "+a.label+"
        "):t.push('
        '+a.innerHTML+"
        "):t.push('
        '+(a.innerHTML||i)+"
        ")}),0===t.length&&t.push('
        没有选项
        '),t.join("")}(r.find("*"))+"
        ","
        "].join(""));o[0]&&o.remove(),r.after(m),h.call(this,m,c,v)})},checkbox:function(){var e={checkbox:["layui-form-checkbox","layui-form-checked","checkbox"],_switch:["layui-form-switch","layui-form-onswitch","switch"]},i=c.find("input[type=checkbox]"),a=function(e,i){var a=t(this);e.on("click",function(){var t=a.attr("lay-filter"),n=(a.attr("lay-text")||"").split("|");a[0].disabled||(a[0].checked?(a[0].checked=!1,e.removeClass(i[1]).find("em").text(n[1])):(a[0].checked=!0,e.addClass(i[1]).find("em").text(n[0])),layui.event.call(a[0],l,i[2]+"("+t+")",{elem:a[0],value:a[0].value,othis:e}))})};i.each(function(i,n){var l=t(this),r=l.attr("lay-skin"),s=(l.attr("lay-text")||"").split("|"),o=this.disabled;"switch"===r&&(r="_"+r);var c=e[r]||e.checkbox;if("string"==typeof l.attr("lay-ignore"))return l.show();var d=l.next("."+c[0]),f=t(['
        ',{_switch:""+((n.checked?s[0]:s[1])||"")+""}[r]||(n.title.replace(/\s/g,"")?""+n.title+"":"")+''+(r?"":"")+"","
        "].join(""));d[0]&&d.remove(),l.after(f),a.call(this,f,c)})},radio:function(){var e="layui-form-radio",i=["",""],a=c.find("input[type=radio]"),n=function(a){var n=t(this),s="layui-anim-scaleSpring";a.on("click",function(){var o=n[0].name,u=n.parents(r),c=n.attr("lay-filter"),d=u.find("input[name="+o.replace(/(\.|#|\[|\])/g,"\\$1")+"]");n[0].disabled||(layui.each(d,function(){var a=t(this).next("."+e);this.checked=!1,a.removeClass(e+"ed"),a.find(".layui-icon").removeClass(s).html(i[1])}),n[0].checked=!0,a.addClass(e+"ed"),a.find(".layui-icon").addClass(s).html(i[0]),layui.event.call(n[0],l,"radio("+c+")",{elem:n[0],value:n[0].value,othis:a}))})};a.each(function(a,l){var r=t(this),s=r.next("."+e),o=this.disabled;if("string"==typeof r.attr("lay-ignore"))return r.show();s[0]&&s.remove();var c=t(['
        ',''+i[l.checked?0:1]+"","
        "+function(){var e=l.title||"";return"string"==typeof r.next().attr("lay-radio")&&(e=r.next().html(),r.next().remove()),e}()+"
        ","
        "].join(""));r.after(c),n.call(this,c)})}};return e?d[e]?d[e]():a.error("不支持的"+e+"表单渲染"):layui.each(d,function(e,t){t()}),n};var d=function(){var e=t(this),a=f.config.verify,s=null,o="layui-form-danger",u={},c=e.parents(r),d=c.find("*[lay-verify]"),y=e.parents("form")[0],v=c.find("input,select,textarea"),h=e.attr("lay-filter");if(layui.each(d,function(e,l){var r=t(this),u=r.attr("lay-verify").split("|"),c=r.attr("lay-verType"),d=r.val();if(r.removeClass(o),layui.each(u,function(e,t){var u,f="",y="function"==typeof a[t];if(a[t]){var u=y?f=a[t](d,l):!a[t][0].test(d);if(f=f||a[t][1],u)return"tips"===c?i.tips(f,function(){return"string"==typeof r.attr("lay-ignore")||"select"!==l.tagName.toLowerCase()&&!/^checkbox|radio$/.test(l.type)?r:r.next()}(),{tips:1}):"alert"===c?i.alert(f,{title:"提示",shadeClose:!0}):i.msg(f,{icon:5,shift:6}),n.android||n.ios||l.focus(),r.addClass(o),s=!0}}),s)return s}),s)return!1;var p={};return layui.each(v,function(e,t){if(t.name=(t.name||"").replace(/^\s*|\s*&/,""),t.name){if(/^.*\[\]$/.test(t.name)){var i=t.name.match(/^(.*)\[\]$/g)[0];p[i]=0|p[i],t.name=t.name.replace(/^(.*)\[\]$/,"$1["+p[i]++ +"]")}/^checkbox|radio$/.test(t.type)&&!t.checked||(u[t.name]=t.value)}}),layui.event.call(this,l,"submit("+h+")",{elem:this,form:y,field:u})},f=new c,y=t(document),v=t(window);f.render(),y.on("reset",r,function(){var e=t(this).attr("lay-filter");setTimeout(function(){f.render(null,e)},50)}),y.on("submit",r,d).on("click","*[lay-submit]",d),e(l,f)});layui.define("jquery",function(e){"use strict";var o=layui.$,a=layui.hint(),i="layui-tree-enter",r=function(e){this.options=e},t={arrow:["",""],checkbox:["",""],radio:["",""],branch:["",""],leaf:""};r.prototype.init=function(e){var o=this;e.addClass("layui-box layui-tree"),o.options.skin&&e.addClass("layui-tree-skin-"+o.options.skin),o.tree(e),o.on(e)},r.prototype.tree=function(e,a){var i=this,r=i.options,n=a||r.nodes;layui.each(n,function(a,n){var l=n.children&&n.children.length>0,c=o('
          '),s=o(["
        • ",function(){return l?''+(n.spread?t.arrow[1]:t.arrow[0])+"":""}(),function(){return r.check?''+("checkbox"===r.check?t.checkbox[0]:"radio"===r.check?t.radio[0]:"")+"":""}(),function(){return'"+(''+(l?n.spread?t.branch[1]:t.branch[0]:t.leaf)+"")+(""+(n.name||"未命名")+"")}(),"
        • "].join(""));l&&(s.append(c),i.tree(c,n.children)),e.append(s),"function"==typeof r.click&&i.click(s,n),i.spread(s,n),r.drag&&i.drag(s,n)})},r.prototype.click=function(e,o){var a=this,i=a.options;e.children("a").on("click",function(e){layui.stope(e),i.click(o)})},r.prototype.spread=function(e,o){var a=this,i=(a.options,e.children(".layui-tree-spread")),r=e.children("ul"),n=e.children("a"),l=function(){e.data("spread")?(e.data("spread",null),r.removeClass("layui-show"),i.html(t.arrow[0]),n.find(".layui-icon").html(t.branch[0])):(e.data("spread",!0),r.addClass("layui-show"),i.html(t.arrow[1]),n.find(".layui-icon").html(t.branch[1]))};r[0]&&(i.on("click",l),n.on("dblclick",l))},r.prototype.on=function(e){var a=this,r=a.options,t="layui-tree-drag";e.find("i").on("selectstart",function(e){return!1}),r.drag&&o(document).on("mousemove",function(e){var i=a.move;if(i.from){var r=(i.to,o('
          '));e.preventDefault(),o("."+t)[0]||o("body").append(r);var n=o("."+t)[0]?o("."+t):r;n.addClass("layui-show").html(i.from.elem.children("a").html()),n.css({left:e.pageX+10,top:e.pageY+10})}}).on("mouseup",function(){var e=a.move;e.from&&(e.from.elem.children("a").removeClass(i),e.to&&e.to.elem.children("a").removeClass(i),a.move={},o("."+t).remove())})},r.prototype.move={},r.prototype.drag=function(e,a){var r=this,t=(r.options,e.children("a")),n=function(){var t=o(this),n=r.move;n.from&&(n.to={item:a,elem:e},t.addClass(i))};t.on("mousedown",function(){var o=r.move;o.from={item:a,elem:e}}),t.on("mouseenter",n).on("mousemove",n).on("mouseleave",function(){var e=o(this),a=r.move;a.from&&(delete a.to,e.removeClass(i))})},e("tree",function(e){var i=new r(e=e||{}),t=o(e.elem);return t[0]?void i.init(t):a.error("layui.tree 没有找到"+e.elem+"元素")})});layui.define(["laytpl","laypage","layer","form"],function(e){"use strict";var t=layui.$,i=layui.laytpl,a=layui.laypage,l=layui.layer,n=layui.form,o=layui.hint(),r=layui.device(),d={config:{checkName:"LAY_CHECKED",indexName:"LAY_TABLE_INDEX"},cache:{},index:layui.table?layui.table.index+1e4:0,set:function(e){var i=this;return i.config=t.extend({},i.config,e),i},on:function(e,t){return layui.onevent.call(this,s,e,t)}},c=function(){var e=this,t=e.config,i=t.id;return i&&(c.config[i]=t),{reload:function(t){e.reload.call(e,t)},config:t}},s="table",u=".layui-table",h="layui-hide",f="layui-none",y="layui-table-view",p=".layui-table-header",m=".layui-table-body",v=".layui-table-main",g=".layui-table-fixed",x=".layui-table-fixed-l",b=".layui-table-fixed-r",k=".layui-table-tool",C=".layui-table-page",w=".layui-table-sort",N="layui-table-edit",T="layui-table-hover",F=function(e){var t='{{#if(item2.colspan){}} colspan="{{item2.colspan}}"{{#} if(item2.rowspan){}} rowspan="{{item2.rowspan}}"{{#}}}';return e=e||{},['',"","{{# layui.each(d.data.cols, function(i1, item1){ }}","","{{# layui.each(item1, function(i2, item2){ }}",'{{# if(item2.fixed && item2.fixed !== "right"){ left = true; } }}','{{# if(item2.fixed === "right"){ right = true; } }}',function(){return e.fixed&&"right"!==e.fixed?'{{# if(item2.fixed && item2.fixed !== "right"){ }}':"right"===e.fixed?'{{# if(item2.fixed === "right"){ }}':""}(),'",e.fixed?"{{# }; }}":"","{{# }); }}","","{{# }); }}","","
          ','
          1){ }}","group","{{# } else { }}","{{d.index}}-{{item2.field || i2}}",'{{# if(item2.type !== "normal"){ }}'," laytable-cell-{{ item2.type }}","{{# } }}","{{# } }}",'" {{#if(item2.align){}}align="{{item2.align}}"{{#}}}>','{{# if(item2.type === "checkbox"){ }}','',"{{# } else { }}",'{{item2.title||""}}',"{{# if(!(item2.colspan > 1) && item2.sort){ }}",'',"{{# } }}","{{# } }}","
          ","
          "].join("")},W=['',"","
          "].join(""),z=['
          ',"{{# if(d.data.toolbar){ }}",'
          ',"{{# } }}",'
          ',"{{# var left, right; }}",'
          ',F(),"
          ",'
          ',W,"
          ","{{# if(left){ }}",'
          ','
          ',F({fixed:!0}),"
          ",'
          ',W,"
          ","
          ","{{# }; }}","{{# if(right){ }}",'
          ','
          ',F({fixed:"right"}),'
          ',"
          ",'
          ',W,"
          ","
          ","{{# }; }}","
          ","{{# if(d.data.page){ }}",'
          ','
          ',"
          ","{{# } }}","","
          "].join(""),A=t(window),S=t(document),M=function(e){var i=this;i.index=++d.index,i.config=t.extend({},i.config,d.config,e),i.render()};M.prototype.config={limit:10,loading:!0,cellMinWidth:60,text:{none:"无数据"}},M.prototype.render=function(){var e=this,a=e.config;if(a.elem=t(a.elem),a.where=a.where||{},a.id=a.id||a.elem.attr("id"),a.request=t.extend({pageName:"page",limitName:"limit"},a.request),a.response=t.extend({statusName:"code",statusCode:0,msgName:"msg",dataName:"data",countName:"count"},a.response),"object"==typeof a.page&&(a.limit=a.page.limit||a.limit,a.limits=a.page.limits||a.limits,e.page=a.page.curr=a.page.curr||1,delete a.page.elem,delete a.page.jump),!a.elem[0])return e;e.setArea();var l=a.elem,n=l.next("."+y),o=e.elem=t(i(z).render({VIEW_CLASS:y,data:a,index:e.index}));if(a.index=e.index,n[0]&&n.remove(),l.after(o),e.layHeader=o.find(p),e.layMain=o.find(v),e.layBody=o.find(m),e.layFixed=o.find(g),e.layFixLeft=o.find(x),e.layFixRight=o.find(b),e.layTool=o.find(k),e.layPage=o.find(C),e.layTool.html(i(t(a.toolbar).html()||"").render(a)),a.height&&e.fullSize(),a.cols.length>1){var r=e.layFixed.find(p).find("th");r.height(e.layHeader.height()-1-parseFloat(r.css("padding-top"))-parseFloat(r.css("padding-bottom")))}e.pullData(e.page),e.events()},M.prototype.initOpts=function(e){var t=this,i=(t.config,{checkbox:48,space:15,numbers:40});e.checkbox&&(e.type="checkbox"),e.space&&(e.type="space"),e.type||(e.type="normal"),"normal"!==e.type&&(e.unresize=!0,e.width=e.width||i[e.type])},M.prototype.setArea=function(){var e=this,t=e.config,i=0,a=0,l=0,n=0,o=t.width||function(){var e=function(i){var a,l;i=i||t.elem.parent(),a=i.width();try{l="none"===i.css("display")}catch(n){}return!i[0]||a&&!l?a:e(i.parent())};return e()}();e.eachCols(function(){i++}),o-=function(){return"line"===t.skin||"nob"===t.skin?2:i+1}(),layui.each(t.cols,function(t,i){layui.each(i,function(t,l){var r;return l?(e.initOpts(l),r=l.width||0,void(l.colspan>1||(/\d+%$/.test(r)?l.width=r=Math.floor(parseFloat(r)/100*o):r||(l.width=r=0,a++),n+=r))):void i.splice(t,1)})}),e.autoColNums=a,o>n&&a&&(l=(o-n)/a),layui.each(t.cols,function(e,i){layui.each(i,function(e,i){var a=i.minWidth||t.cellMinWidth;i.colspan>1||0===i.width&&(i.width=Math.floor(l>=a?l:a))})}),t.height&&/^full-\d+$/.test(t.height)&&(e.fullHeightGap=t.height.split("-")[1],t.height=A.height()-e.fullHeightGap)},M.prototype.reload=function(e){var i=this;i.config.data&&i.config.data.constructor===Array&&delete i.config.data,i.config=t.extend({},i.config,e),i.render()},M.prototype.page=1,M.prototype.pullData=function(e,i){var a=this,n=a.config,o=n.request,r=n.response,d=function(){"object"==typeof n.initSort&&a.sort(n.initSort.field,n.initSort.type)};if(a.startTime=(new Date).getTime(),n.url){var c={};c[o.pageName]=e,c[o.limitName]=n.limit;var s=t.extend(c,n.where);n.contentType&&0==n.contentType.indexOf("application/json")&&(s=JSON.stringify(s)),t.ajax({type:n.method||"get",url:n.url,contentType:n.contentType,data:s,dataType:"json",headers:n.headers||{},success:function(t){t[r.statusName]!=r.statusCode?(a.renderForm(),a.layMain.html('
          '+(t[r.msgName]||"返回的数据状态异常")+"
          ")):(a.renderData(t,e,t[r.countName]),d(),n.time=(new Date).getTime()-a.startTime+" ms"),i&&l.close(i),"function"==typeof n.done&&n.done(t,e,t[r.countName])},error:function(e,t){a.layMain.html('
          数据接口请求异常
          '),a.renderForm(),i&&l.close(i)}})}else if(n.data&&n.data.constructor===Array){var u={},h=e*n.limit-n.limit;u[r.dataName]=n.data.concat().splice(h,n.limit),u[r.countName]=n.data.length,a.renderData(u,e,n.data.length),d(),"function"==typeof n.done&&n.done(u,e,u[r.countName])}},M.prototype.eachCols=function(e){var i=t.extend(!0,[],this.config.cols),a=[],l=0;layui.each(i,function(e,t){layui.each(t,function(t,n){if(n.colspan>1){var o=0;l++,n.CHILD_COLS=[],layui.each(i[e+1],function(e,t){t.PARENT_COL||o==n.colspan||(t.PARENT_COL=l,n.CHILD_COLS.push(t),o+=t.colspan>1?t.colspan:1)})}n.PARENT_COL||a.push(n)})});var n=function(t){layui.each(t||a,function(t,i){return i.CHILD_COLS?n(i.CHILD_COLS):void e(t,i)})};n()},M.prototype.renderData=function(e,n,o,r){var c=this,s=c.config,u=e[s.response.dataName]||[],y=[],p=[],m=[],v=function(){return!r&&c.sortKey?c.sort(c.sortKey.field,c.sortKey.sort,!0):(layui.each(u,function(e,a){var l=[],o=[],u=[],h=e+s.limit*(n-1)+1;0!==a.length&&(r||(a[d.config.indexName]=e),c.eachCols(function(e,n){var r=n.field||e,f=a[r];c.getColElem(c.layHeader,r);if(void 0!==f&&null!==f||(f=""),!(n.colspan>1)){var y=['",'
          '+function(){var e=t.extend(!0,{LAY_INDEX:h},a);return"checkbox"===n.type?'":"numbers"===n.type?h:n.toolbar?i(t(n.toolbar).html()||"").render(e):n.templet?function(){return"function"==typeof n.templet?n.templet(e):i(t(n.templet).html()||String(f)).render(e)}():f}(),"
          "].join("");l.push(y),n.fixed&&"right"!==n.fixed&&o.push(y),"right"===n.fixed&&u.push(y)}}),y.push(''+l.join("")+""),p.push(''+o.join("")+""),m.push(''+u.join("")+""))}),c.layBody.scrollTop(0),c.layMain.find("."+f).remove(),c.layMain.find("tbody").html(y.join("")),c.layFixLeft.find("tbody").html(p.join("")),c.layFixRight.find("tbody").html(m.join("")),c.renderForm(),c.syncCheckAll(),c.haveInit?c.scrollPatch():setTimeout(function(){c.scrollPatch()},50),c.haveInit=!0,void l.close(c.tipsIndex))};return c.key=s.id||s.index,d.cache[c.key]=u,c.layPage[0===u.length&&1==n?"addClass":"removeClass"](h),r?v():0===u.length?(c.renderForm(),c.layFixed.remove(),c.layMain.find("tbody").html(""),c.layMain.find("."+f).remove(),c.layMain.append('
          '+s.text.none+"
          ")):(v(),void(s.page&&(s.page=t.extend({elem:"layui-table-page"+s.index,count:o,limit:s.limit,limits:s.limits||[10,20,30,40,50,60,70,80,90],groups:3,layout:["prev","page","next","skip","count","limit"],prev:'',next:'',jump:function(e,t){t||(c.page=e.curr,s.limit=e.limit,c.pullData(e.curr,c.loading()))}},s.page),s.page.count=o,a.render(s.page))))},M.prototype.getColElem=function(e,t){var i=this,a=i.config;return e.eq(0).find(".laytable-cell-"+(a.index+"-"+t)+":eq(0)")},M.prototype.renderForm=function(e){n.render(e,"LAY-table-"+this.index)},M.prototype.sort=function(e,i,a,l){var n,r,c=this,u={},h=c.config,f=h.elem.attr("lay-filter"),y=d.cache[c.key];"string"==typeof e&&c.layHeader.find("th").each(function(i,a){var l=t(this),o=l.data("field");if(o===e)return e=l,n=o,!1});try{var n=n||e.data("field");if(c.sortKey&&!a&&n===c.sortKey.field&&i===c.sortKey.sort)return;var p=c.layHeader.find("th .laytable-cell-"+h.index+"-"+n).find(w);c.layHeader.find("th").find(w).removeAttr("lay-sort"),p.attr("lay-sort",i||null),c.layFixed.find("th")}catch(m){return o.error("Table modules: Did not match to field")}c.sortKey={field:n,sort:i},"asc"===i?r=layui.sort(y,n):"desc"===i?r=layui.sort(y,n,!0):(r=layui.sort(y,d.config.indexName),delete c.sortKey),u[h.response.dataName]=r,c.renderData(u,c.page,c.count,!0),l&&layui.event.call(e,s,"sort("+f+")",{field:n,type:i})},M.prototype.loading=function(){var e=this,t=e.config;if(t.loading&&t.url)return l.msg("数据请求中",{icon:16,offset:[e.elem.offset().top+e.elem.height()/2-35-A.scrollTop()+"px",e.elem.offset().left+e.elem.width()/2-90-A.scrollLeft()+"px"],time:-1,anim:-1,fixed:!1})},M.prototype.setCheckData=function(e,t){var i=this,a=i.config,l=d.cache[i.key];l[e]&&l[e].constructor!==Array&&(l[e][a.checkName]=t)},M.prototype.syncCheckAll=function(){var e=this,t=e.config,i=e.layHeader.find('input[name="layTableCheckbox"]'),a=function(i){return e.eachCols(function(e,a){"checkbox"===a.type&&(a[t.checkName]=i)}),i};i[0]&&(d.checkStatus(e.key).isAll?(i[0].checked||(i.prop("checked",!0),e.renderForm("checkbox")),a(!0)):(i[0].checked&&(i.prop("checked",!1),e.renderForm("checkbox")),a(!1)))},M.prototype.getCssRule=function(e,t){var i=this,a=i.elem.find("style")[0],l=a.sheet||a.styleSheet||{},n=l.cssRules||l.rules;layui.each(n,function(a,l){if(l.selectorText===".laytable-cell-"+i.index+"-"+e)return t(l),!0})},M.prototype.fullSize=function(){var e,t=this,i=t.config,a=i.height;t.fullHeightGap&&(a=A.height()-t.fullHeightGap,a<135&&(a=135),t.elem.css("height",a)),e=parseFloat(a)-parseFloat(t.layHeader.height())-1,i.toolbar&&(e-=t.layTool.outerHeight()),i.page&&(e=e-t.layPage.outerHeight()-1),t.layMain.css("height",e)},M.prototype.getScrollWidth=function(e){var t=0;return e?t=e.offsetWidth-e.clientWidth:(e=document.createElement("div"),e.style.width="100px",e.style.height="100px",e.style.overflowY="scroll",document.body.appendChild(e),t=e.offsetWidth-e.clientWidth,document.body.removeChild(e)),t},M.prototype.scrollPatch=function(){var e=this,i=e.layMain.children("table"),a=e.layMain.width()-e.layMain.prop("clientWidth"),l=e.layMain.height()-e.layMain.prop("clientHeight"),n=e.getScrollWidth(e.layMain[0]),o=i.outerWidth()-e.layMain.width();if(e.autoColNums&&o<5&&!e.scrollPatchWStatus){var r=e.layHeader.eq(0).find("thead th:last-child"),d=r.data("field");e.getCssRule(d,function(t){var i=t.style.width||r.outerWidth();t.style.width=parseFloat(i)-n-o+"px",e.layMain.height()-e.layMain.prop("clientHeight")>0&&(t.style.width=parseFloat(t.style.width)-1+"px"),e.scrollPatchWStatus=!0})}if(a&&l){if(!e.elem.find(".layui-table-patch")[0]){var c=t('
          ');c.find("div").css({width:a}),e.layHeader.eq(0).find("thead tr").append(c)}}else e.layHeader.eq(0).find(".layui-table-patch").remove();var s=e.layMain.height(),u=s-l;e.layFixed.find(m).css("height",i.height()>u?u:"auto"),e.layFixRight[o>0?"removeClass":"addClass"](h),e.layFixRight.css("right",a-1)},M.prototype.events=function(){var e,a=this,n=a.config,o=t("body"),c={},u=a.layHeader.find("th"),h=".layui-table-cell",f=n.elem.attr("lay-filter");u.on("mousemove",function(e){var i=t(this),a=i.offset().left,l=e.clientX-a;i.attr("colspan")>1||i.data("unresize")||c.resizeStart||(c.allowResize=i.width()-l<=10,o.css("cursor",c.allowResize?"col-resize":""))}).on("mouseleave",function(){t(this);c.resizeStart||o.css("cursor","")}).on("mousedown",function(e){var i=t(this);if(c.allowResize){var l=i.data("field");e.preventDefault(),c.resizeStart=!0,c.offset=[e.clientX,e.clientY],a.getCssRule(l,function(e){var t=e.style.width||i.outerWidth();c.rule=e,c.ruleWidth=parseFloat(t),c.minWidth=i.data("minwidth")||n.cellMinWidth})}}),S.on("mousemove",function(t){if(c.resizeStart){if(t.preventDefault(),c.rule){var i=c.ruleWidth+t.clientX-c.offset[0];i');d[0].value=e.data("content")||o.text(),e.find("."+N)[0]||e.append(d),d.focus()}else o.find(".layui-form-switch,.layui-form-checkbox")[0]||Math.round(o.prop("scrollWidth"))>Math.round(o.outerWidth())&&(a.tipsIndex=l.tips(['
          ',o.html(),"
          ",''].join(""),o[0],{tips:[3,""],time:-1,anim:-1,maxWidth:r.ios||r.android?300:600,isOutAnim:!1,skin:"layui-table-tips",success:function(e,t){e.find(".layui-table-tips-c").on("click",function(){l.close(t)})}}))}),a.layBody.on("click","*[lay-event]",function(){var e=t(this),l=e.parents("tr").eq(0).data("index"),n=a.layBody.find('tr[data-index="'+l+'"]'),o="layui-table-click",r=d.cache[a.key][l];layui.event.call(this,s,"tool("+f+")",{data:d.clearCacheKey(r),event:e.attr("lay-event"),tr:n,del:function(){d.cache[a.key][l]=[],n.remove(),a.scrollPatch()},update:function(e){e=e||{},layui.each(e,function(e,l){if(e in r){var o,d=n.children('td[data-field="'+e+'"]');r[e]=l,a.eachCols(function(t,i){i.field==e&&i.templet&&(o=i.templet)}),d.children(h).html(o?i(t(o).html()||l).render(r):l),d.data("content",l)}})}}),n.addClass(o).siblings("tr").removeClass(o)}),a.layMain.on("scroll",function(){var e=t(this),i=e.scrollLeft(),n=e.scrollTop();a.layHeader.scrollLeft(i),a.layFixed.find(m).scrollTop(n),l.close(a.tipsIndex)}),A.on("resize",function(){a.fullSize(),a.scrollPatch()})},d.init=function(e,i){i=i||{};var a=this,l=t(e?'table[lay-filter="'+e+'"]':u+"[lay-data]"),n="Table element property lay-data configuration item has a syntax error: ";return l.each(function(){var a=t(this),l=a.attr("lay-data");try{l=new Function("return "+l)()}catch(r){o.error(n+l)}var c=[],s=t.extend({elem:this,cols:[],data:[],skin:a.attr("lay-skin"),size:a.attr("lay-size"),even:"string"==typeof a.attr("lay-even")},d.config,i,l);e&&a.hide(),a.find("thead>tr").each(function(e){s.cols[e]=[],t(this).children().each(function(i){var a=t(this),l=a.attr("lay-data");try{l=new Function("return "+l)()}catch(r){return o.error(n+l)}var d=t.extend({title:a.text(),colspan:a.attr("colspan")||0,rowspan:a.attr("rowspan")||0},l);d.colspan<2&&c.push(d),s.cols[e].push(d)})}),a.find("tbody>tr").each(function(e){var i=t(this),a={};i.children("td").each(function(e,i){var l=t(this),n=l.data("field");if(n)return a[n]=l.html()}),layui.each(c,function(e,t){var l=i.children("td").eq(e);a[t.field]=l.html()}),s.data[e]=a}),d.render(s)}),a},d.checkStatus=function(e){var t=0,i=0,a=[],l=d.cache[e]||[];return layui.each(l,function(e,l){return l.constructor===Array?void i++:void(l[d.config.checkName]&&(t++,a.push(d.clearCacheKey(l))))}),{data:a,isAll:!!l.length&&t===l.length-i}},c.config={},d.reload=function(e,i){var a=c.config[e];return i=i||{},a?(i.data&&i.data.constructor===Array&&delete a.data,d.render(t.extend(!0,{},a,i))):o.error("The ID option was not found in the table instance")},d.render=function(e){var t=new M(e);return c.call(t)},d.clearCacheKey=function(e){return e=t.extend({},e),delete e[d.config.checkName],delete e[d.config.indexName],e},d.init(),e(s,d)});layui.define("jquery",function(e){"use strict";var i=layui.$,n=(layui.hint(),layui.device(),{config:{},set:function(e){var n=this;return n.config=i.extend({},n.config,e),n},on:function(e,i){return layui.onevent.call(this,t,e,i)}}),t="carousel",a="layui-this",l=">*[carousel-item]>*",o="layui-carousel-left",r="layui-carousel-right",d="layui-carousel-prev",s="layui-carousel-next",u="layui-carousel-arrow",c="layui-carousel-ind",m=function(e){var t=this;t.config=i.extend({},t.config,n.config,e),t.render()};m.prototype.config={width:"600px",height:"280px",full:!1,arrow:"hover",indicator:"inside",autoplay:!0,interval:3e3,anim:"",trigger:"click",index:0},m.prototype.render=function(){var e=this,n=e.config;n.elem=i(n.elem),n.elem[0]&&(e.elemItem=n.elem.find(l),n.index<0&&(n.index=0),n.index>=e.elemItem.length&&(n.index=e.elemItem.length-1),n.interval<800&&(n.interval=800),n.full?n.elem.css({position:"fixed",width:"100%",height:"100%",zIndex:9999}):n.elem.css({width:n.width,height:n.height}),n.elem.attr("lay-anim",n.anim),e.elemItem.eq(n.index).addClass(a),e.elemItem.length<=1||(e.indicator(),e.arrow(),e.autoplay(),e.events()))},m.prototype.reload=function(e){var n=this;clearInterval(n.timer),n.config=i.extend({},n.config,e),n.render()},m.prototype.prevIndex=function(){var e=this,i=e.config,n=i.index-1;return n<0&&(n=e.elemItem.length-1),n},m.prototype.nextIndex=function(){var e=this,i=e.config,n=i.index+1;return n>=e.elemItem.length&&(n=0),n},m.prototype.addIndex=function(e){var i=this,n=i.config;e=e||1,n.index=n.index+e,n.index>=i.elemItem.length&&(n.index=0)},m.prototype.subIndex=function(e){var i=this,n=i.config;e=e||1,n.index=n.index-e,n.index<0&&(n.index=i.elemItem.length-1)},m.prototype.autoplay=function(){var e=this,i=e.config;i.autoplay&&(e.timer=setInterval(function(){e.slide()},i.interval))},m.prototype.arrow=function(){var e=this,n=e.config,t=i(['",'"].join(""));n.elem.attr("lay-arrow",n.arrow),n.elem.find("."+u)[0]&&n.elem.find("."+u).remove(),n.elem.append(t),t.on("click",function(){var n=i(this),t=n.attr("lay-type");e.slide(t)})},m.prototype.indicator=function(){var e=this,n=e.config,t=e.elemInd=i(['
            ',function(){var i=[];return layui.each(e.elemItem,function(e){i.push("")}),i.join("")}(),"
          "].join(""));n.elem.attr("lay-indicator",n.indicator),n.elem.find("."+c)[0]&&n.elem.find("."+c).remove(),n.elem.append(t),"updown"===n.anim&&t.css("margin-top",-(t.height()/2)),t.find("li").on("hover"===n.trigger?"mouseover":n.trigger,function(){var t=i(this),a=t.index();a>n.index?e.slide("add",a-n.index):a',e.bar1?'
        • '+c[0]+"
        • ":"",e.bar2?'
        • '+c[1]+"
        • ":"",'
        • '+c[2]+"
        • ",""].join("")),s=g.find("."+r),u=function(){var t=n.scrollTop();t>=e.showHeight?i||(s.show(),i=1):i&&(s.hide(),i=0)};t("."+a)[0]||("object"==typeof e.css&&g.css(e.css),l.append(g),u(),g.find("li").on("click",function(){var i=t(this),o=i.attr("lay-type");"top"===o&&t("html,body").animate({scrollTop:0},200),e.click&&e.click.call(this,o)}),n.on("scroll",function(){clearTimeout(o),o=setTimeout(function(){u()},100)}))},countdown:function(e,t,i){var o=this,a="function"==typeof t,r=new Date(e).getTime(),n=new Date(!t||a?(new Date).getTime():t).getTime(),l=r-n,c=[Math.floor(l/864e5),Math.floor(l/36e5)%24,Math.floor(l/6e4)%60,Math.floor(l/1e3)%60];a&&(i=t);var g=setTimeout(function(){o.countdown(e,n+1e3,i)},1e3);return i&&i(l>0?c:[0,0,0,0],t,g),l<=0&&clearTimeout(g),g},timeAgo:function(e,t){var i=this,o=[[],[]],a=(new Date).getTime()-new Date(e).getTime();return a>6912e5?(a=new Date(e),o[0][0]=i.digit(a.getFullYear(),4),o[0][1]=i.digit(a.getMonth()+1),o[0][2]=i.digit(a.getDate()),t||(o[1][0]=i.digit(a.getHours()),o[1][1]=i.digit(a.getMinutes()),o[1][2]=i.digit(a.getSeconds())),o[0].join("-")+" "+o[1].join(":")):a>=864e5?(a/1e3/60/60/24|0)+"天前":a>=36e5?(a/1e3/60/60|0)+"小时前":a>=12e4?(a/1e3/60|0)+"分钟前":a<0?"未来":"刚刚"},digit:function(e,t){var i="";e=String(e),t=t||2;for(var o=e.length;o';o.prototype.load=function(e){var o,i,n,r,a=this,c=0;e=e||{};var f=l(e.elem);if(f[0]){var m=l(e.scrollElem||document),u=e.mb||50,s=!("isAuto"in e)||e.isAuto,v=e.end||"没有更多了",y=e.scrollElem&&e.scrollElem!==document,d="加载更多",h=l('");f.find(".layui-flow-more")[0]||f.append(h);var p=function(e,t){e=l(e),h.before(e),t=0==t||null,t?h.html(v):h.find("a").html(d),i=t,o=null,n&&n()},g=function(){o=!0,h.find("a").html(t),"function"==typeof e.done&&e.done(++c,p)};if(g(),h.find("a").on("click",function(){l(this);i||o||g()}),e.isLazyimg)var n=a.lazyimg({elem:e.elem+" img",scrollElem:e.scrollElem});return s?(m.on("scroll",function(){var e=l(this),t=e.scrollTop();r&&clearTimeout(r),i||(r=setTimeout(function(){var i=y?e.height():l(window).height(),n=y?e.prop("scrollHeight"):document.documentElement.scrollHeight;n-t-i<=u&&(o||g())},100))}),a):a}},o.prototype.lazyimg=function(e){var o,t=this,i=0;e=e||{};var n=l(e.scrollElem||document),r=e.elem||"img",a=e.scrollElem&&e.scrollElem!==document,c=function(e,l){var o=n.scrollTop(),r=o+l,c=a?function(){return e.offset().top-n.offset().top+o}():e.offset().top;if(c>=o&&c<=r&&!e.attr("src")){var m=e.attr("lay-src");layui.img(m,function(){var l=t.lazyimg.elem.eq(i);e.attr("src",m).removeAttr("lay-src"),l[0]&&f(l),i++})}},f=function(e,o){var f=a?(o||n).height():l(window).height(),m=n.scrollTop(),u=m+f;if(t.lazyimg.elem=l(r),e)c(e,f);else for(var s=0;su)break}};if(f(),!o){var m;n.on("scroll",function(){var e=l(this);m&&clearTimeout(m),m=setTimeout(function(){f(null,e)},50)}),o=!0}return f},e("flow",new o)});layui.define(["layer","form"],function(t){"use strict";var e=layui.$,i=layui.layer,a=layui.form,l=(layui.hint(),layui.device()),n="layedit",o="layui-show",r="layui-disabled",c=function(){var t=this;t.index=0,t.config={tool:["strong","italic","underline","del","|","left","center","right","|","link","unlink","face","image"],hideTool:[],height:280}};c.prototype.set=function(t){var i=this;return e.extend(!0,i.config,t),i},c.prototype.on=function(t,e){return layui.onevent(n,t,e)},c.prototype.build=function(t,i){i=i||{};var a=this,n=a.config,r="layui-layedit",c=e("string"==typeof t?"#"+t:t),u="LAY_layedit_"+ ++a.index,d=c.next("."+r),y=e.extend({},n,i),f=function(){var t=[],e={};return layui.each(y.hideTool,function(t,i){e[i]=!0}),layui.each(y.tool,function(i,a){C[a]&&!e[a]&&t.push(C[a])}),t.join("")}(),m=e(['
          ','
          '+f+"
          ",'
          ','',"
          ","
          "].join(""));return l.ie&&l.ie<8?c.removeClass("layui-hide").addClass(o):(d[0]&&d.remove(),s.call(a,m,c[0],y),c.addClass("layui-hide").after(m),a.index)},c.prototype.getContent=function(t){var e=u(t);if(e[0])return d(e[0].document.body.innerHTML)},c.prototype.getText=function(t){var i=u(t);if(i[0])return e(i[0].document.body).text()},c.prototype.setContent=function(t,i,a){var l=u(t);l[0]&&(a?e(l[0].document.body).append(i):e(l[0].document.body).html(i),layedit.sync(t))},c.prototype.sync=function(t){var i=u(t);if(i[0]){var a=e("#"+i[1].attr("textarea"));a.val(d(i[0].document.body.innerHTML))}},c.prototype.getSelection=function(t){var e=u(t);if(e[0]){var i=m(e[0].document);return document.selection?i.text:i.toString()}};var s=function(t,i,a){var l=this,n=t.find("iframe");n.css({height:a.height}).on("load",function(){var o=n.contents(),r=n.prop("contentWindow"),c=o.find("head"),s=e([""].join("")),u=o.find("body");c.append(s),u.attr("contenteditable","true").css({"min-height":a.height}).html(i.value||""),y.apply(l,[r,n,i,a]),g.call(l,r,t,a)})},u=function(t){var i=e("#LAY_layedit_"+t),a=i.prop("contentWindow");return[a,i]},d=function(t){return 8==l.ie&&(t=t.replace(/<.+>/g,function(t){return t.toLowerCase()})),t},y=function(t,a,n,o){var r=t.document,c=e(r.body);c.on("keydown",function(t){var e=t.keyCode;if(13===e){var a=m(r),l=p(a),n=l.parentNode;if("pre"===n.tagName.toLowerCase()){if(t.shiftKey)return;return i.msg("请暂时用shift+enter"),!1}r.execCommand("formatBlock",!1,"

          ")}}),e(n).parents("form").on("submit",function(){var t=c.html();8==l.ie&&(t=t.replace(/<.+>/g,function(t){return t.toLowerCase()})),n.value=t}),c.on("paste",function(e){r.execCommand("formatBlock",!1,"

          "),setTimeout(function(){f.call(t,c),n.value=c.html()},100)})},f=function(t){var i=this;i.document;t.find("*[style]").each(function(){var t=this.style.textAlign;this.removeAttribute("style"),e(this).css({"text-align":t||""})}),t.find("table").addClass("layui-table"),t.find("script,link").remove()},m=function(t){return t.selection?t.selection.createRange():t.getSelection().getRangeAt(0)},p=function(t){return t.endContainer||t.parentElement().childNodes[0]},v=function(t,i,a){var l=this.document,n=document.createElement(t);for(var o in i)n.setAttribute(o,i[o]);if(n.removeAttribute("text"),l.selection){var r=a.text||i.text;if("a"===t&&!r)return;r&&(n.innerHTML=r),a.pasteHTML(e(n).prop("outerHTML")),a.select()}else{var r=a.toString()||i.text;if("a"===t&&!r)return;r&&(n.innerHTML=r),a.deleteContents(),a.insertNode(n)}},h=function(t,i){var a=this.document,l="layedit-tool-active",n=p(m(a)),o=function(e){return t.find(".layedit-tool-"+e)};i&&i[i.hasClass(l)?"removeClass":"addClass"](l),t.find(">i").removeClass(l),o("unlink").addClass(r),e(n).parents().each(function(){var t=this.tagName.toLowerCase(),e=this.style.textAlign;"b"!==t&&"strong"!==t||o("b").addClass(l),"i"!==t&&"em"!==t||o("i").addClass(l),"u"===t&&o("u").addClass(l),"strike"===t&&o("d").addClass(l),"p"===t&&("center"===e?o("center").addClass(l):"right"===e?o("right").addClass(l):o("left").addClass(l)),"a"===t&&(o("link").addClass(l),o("unlink").removeClass(r))})},g=function(t,a,l){var n=t.document,o=e(n.body),c={link:function(i){var a=p(i),l=e(a).parent();b.call(o,{href:l.attr("href"),target:l.attr("target")},function(e){var a=l[0];"A"===a.tagName?a.href=e.url:v.call(t,"a",{target:e.target,href:e.url,text:e.url},i)})},unlink:function(t){n.execCommand("unlink")},face:function(e){x.call(this,function(i){v.call(t,"img",{src:i.src,alt:i.alt},e)})},image:function(a){var n=this;layui.use("upload",function(o){var r=l.uploadImage||{};o.render({url:r.url,method:r.type,elem:e(n).find("input")[0],done:function(e){0==e.code?(e.data=e.data||{},v.call(t,"img",{src:e.data.src,alt:e.data.title},a)):i.msg(e.msg||"上传失败")}})})},code:function(e){k.call(o,function(i){v.call(t,"pre",{text:i.code,"lay-lang":i.lang},e)})},help:function(){i.open({type:2,title:"帮助",area:["600px","380px"],shadeClose:!0,shade:.1,skin:"layui-layer-msg",content:["http://www.layui.com/about/layedit/help.html","no"]})}},s=a.find(".layui-layedit-tool"),u=function(){var i=e(this),a=i.attr("layedit-event"),l=i.attr("lay-command");if(!i.hasClass(r)){o.focus();var u=m(n);u.commonAncestorContainer;l?(n.execCommand(l),/justifyLeft|justifyCenter|justifyRight/.test(l)&&n.execCommand("formatBlock",!1,"

          "),setTimeout(function(){o.focus()},10)):c[a]&&c[a].call(this,u),h.call(t,s,i)}},d=/image/;s.find(">i").on("mousedown",function(){var t=e(this),i=t.attr("layedit-event");d.test(i)||u.call(this)}).on("click",function(){var t=e(this),i=t.attr("layedit-event");d.test(i)&&u.call(this)}),o.on("click",function(){h.call(t,s),i.close(x.index)})},b=function(t,e){var l=this,n=i.open({type:1,id:"LAY_layedit_link",area:"350px",shade:.05,shadeClose:!0,moveType:1,title:"超链接",skin:"layui-layer-msg",content:['

            ','
          • ','','
            ','',"
            ","
          • ",'
          • ','','
            ','",'","
            ","
          • ",'
          • ','','',"
          • ","
          "].join(""),success:function(t,n){var o="submit(layedit-link-yes)";a.render("radio"),t.find(".layui-btn-primary").on("click",function(){i.close(n),l.focus()}),a.on(o,function(t){i.close(b.index),e&&e(t.field)})}});b.index=n},x=function(t){var a=function(){var t=["[微笑]","[嘻嘻]","[哈哈]","[可爱]","[可怜]","[挖鼻]","[吃惊]","[害羞]","[挤眼]","[闭嘴]","[鄙视]","[爱你]","[泪]","[偷笑]","[亲亲]","[生病]","[太开心]","[白眼]","[右哼哼]","[左哼哼]","[嘘]","[衰]","[委屈]","[吐]","[哈欠]","[抱抱]","[怒]","[疑问]","[馋嘴]","[拜拜]","[思考]","[汗]","[困]","[睡]","[钱]","[失望]","[酷]","[色]","[哼]","[鼓掌]","[晕]","[悲伤]","[抓狂]","[黑线]","[阴险]","[怒骂]","[互粉]","[心]","[伤心]","[猪头]","[熊猫]","[兔子]","[ok]","[耶]","[good]","[NO]","[赞]","[来]","[弱]","[草泥马]","[神马]","[囧]","[浮云]","[给力]","[围观]","[威武]","[奥特曼]","[礼物]","[钟]","[话筒]","[蜡烛]","[蛋糕]"],e={};return layui.each(t,function(t,i){e[i]=layui.cache.dir+"images/face/"+t+".gif"}),e}();return x.hide=x.hide||function(t){"face"!==e(t.target).attr("layedit-event")&&i.close(x.index)},x.index=i.tips(function(){var t=[];return layui.each(a,function(e,i){t.push('
        • '+e+'
        • ')}),'
            '+t.join("")+"
          "}(),this,{tips:1,time:0,skin:"layui-box layui-util-face",maxWidth:500,success:function(l,n){l.css({marginTop:-4,marginLeft:-10}).find(".layui-clear>li").on("click",function(){t&&t({src:a[this.title],alt:this.title}),i.close(n)}),e(document).off("click",x.hide).on("click",x.hide)}})},k=function(t){var e=this,l=i.open({type:1,id:"LAY_layedit_code",area:"550px",shade:.05,shadeClose:!0,moveType:1,title:"插入代码",skin:"layui-layer-msg",content:['
            ','
          • ','','
            ','","
            ","
          • ",'
          • ','','
            ','',"
            ","
          • ",'
          • ','','',"
          • ","
          "].join(""),success:function(l,n){var o="submit(layedit-code-yes)";a.render("select"),l.find(".layui-btn-primary").on("click",function(){i.close(n),e.focus()}),a.on(o,function(e){i.close(k.index),t&&t(e.field)})}});k.index=l},C={html:'',strong:'',italic:'',underline:'',del:'',"|":'',left:'',center:'',right:'',link:'',unlink:'',face:'',image:'',code:'',help:''},w=new c;t(n,w)});layui.define("jquery",function(e){"use strict";var a=layui.$,l="http://www.layui.com/doc/modules/code.html";e("code",function(e){var t=[];e=e||{},e.elem=a(e.elem||".layui-code"),e.about=!("about"in e)||e.about,e.elem.each(function(){t.push(this)}),layui.each(t.reverse(),function(t,i){var c=a(i),o=c.html();(c.attr("lay-encode")||e.encode)&&(o=o.replace(/&(?!#?[a-zA-Z0-9]+;)/g,"&").replace(//g,">").replace(/'/g,"'").replace(/"/g,""")),c.html('
          1. '+o.replace(/[\r\t\n]+/g,"
          2. ")+"
          "),c.find(">.layui-code-h3")[0]||c.prepend('

          '+(c.attr("lay-title")||e.title||"code")+(e.about?'layui.code':"")+"

          ");var d=c.find(">.layui-code-ol");c.addClass("layui-box layui-code-view"),(c.attr("lay-skin")||e.skin)&&c.addClass("layui-code-"+(c.attr("lay-skin")||e.skin)),(d.find("li").length/100|0)>0&&d.css("margin-left",(d.find("li").length/100|0)+"px"),(c.attr("lay-height")||e.height)&&d.css("max-height",c.attr("lay-height")||e.height)})})}).addcss("modules/code.css","skincodecss"); \ No newline at end of file diff --git a/static/plugs/layui/layui.js b/static/plugs/layui/layui.js index 8faa576fb..35f63b829 100644 --- a/static/plugs/layui/layui.js +++ b/static/plugs/layui/layui.js @@ -1,2 +1,2 @@ -/** layui-v2.2.5 MIT License By https://www.layui.com */ - ;!function(e){"use strict";var t=document,n={modules:{},status:{},timeout:10,event:{}},o=function(){this.v="2.2.5"},r=function(){var e=t.currentScript?t.currentScript.src:function(){for(var e,n=t.scripts,o=n.length-1,r=o;r>0;r--)if("interactive"===n[r].readyState){e=n[r].src;break}return e||n[o].src}();return e.substring(0,e.lastIndexOf("/")+1)}(),a=function(t){e.console&&console.error&&console.error("Layui hint: "+t)},i="undefined"!=typeof opera&&"[object Opera]"===opera.toString(),u={layer:"modules/layer",laydate:"modules/laydate",laypage:"modules/laypage",laytpl:"modules/laytpl",layim:"modules/layim",layedit:"modules/layedit",form:"modules/form",upload:"modules/upload",tree:"modules/tree",table:"modules/table",element:"modules/element",util:"modules/util",flow:"modules/flow",carousel:"modules/carousel",code:"modules/code",jquery:"modules/jquery",mobile:"modules/mobile","layui.all":"../layui.all"};o.prototype.cache=n,o.prototype.define=function(e,t){var o=this,r="function"==typeof e,a=function(){var e=function(e,t){layui[e]=t,n.status[e]=!0};return"function"==typeof t&&t(function(o,r){e(o,r),n.callback[o]=function(){t(e)}}),this};return r&&(t=e,e=[]),layui["layui.all"]||!layui["layui.all"]&&layui["layui.mobile"]?a.call(o):(o.use(e,a),o)},o.prototype.use=function(e,o,l){function s(e,t){var o="PLaySTATION 3"===navigator.platform?/^complete$/:/^(complete|loaded)$/;("load"===e.type||o.test((e.currentTarget||e.srcElement).readyState))&&(n.modules[f]=t,d.removeChild(v),function r(){return++m>1e3*n.timeout/4?a(f+" is not a valid module"):void(n.status[f]?c():setTimeout(r,4))}())}function c(){l.push(layui[f]),e.length>1?y.use(e.slice(1),o,l):"function"==typeof o&&o.apply(layui,l)}var y=this,p=n.dir=n.dir?n.dir:r,d=t.getElementsByTagName("head")[0];e="string"==typeof e?[e]:e,window.jQuery&&jQuery.fn.on&&(y.each(e,function(t,n){"jquery"===n&&e.splice(t,1)}),layui.jquery=layui.$=jQuery);var f=e[0],m=0;if(l=l||[],n.host=n.host||(p.match(/\/\/([\s\S]+?)\//)||["//"+location.host+"/"])[0],0===e.length||layui["layui.all"]&&u[f]||!layui["layui.all"]&&layui["layui.mobile"]&&u[f])return c(),y;if(n.modules[f])!function g(){return++m>1e3*n.timeout/4?a(f+" is not a valid module"):void("string"==typeof n.modules[f]&&n.status[f]?c():setTimeout(g,4))}();else{var v=t.createElement("script"),h=(u[f]?p+"lay/":/^\{\/\}/.test(y.modules[f])?"":n.base||"")+(y.modules[f]||f)+".js";h=h.replace(/^\{\/\}/,""),v.async=!0,v.charset="utf-8",v.src=h+function(){var e=n.version===!0?n.v||(new Date).getTime():n.version||"";return e?"?v="+e:""}(),d.appendChild(v),!v.attachEvent||v.attachEvent.toString&&v.attachEvent.toString().indexOf("[native code")<0||i?v.addEventListener("load",function(e){s(e,h)},!1):v.attachEvent("onreadystatechange",function(e){s(e,h)}),n.modules[f]=h}return y},o.prototype.getStyle=function(t,n){var o=t.currentStyle?t.currentStyle:e.getComputedStyle(t,null);return o[o.getPropertyValue?"getPropertyValue":"getAttribute"](n)},o.prototype.link=function(e,o,r){var i=this,u=t.createElement("link"),l=t.getElementsByTagName("head")[0];"string"==typeof o&&(r=o);var s=(r||e).replace(/\.|\//g,""),c=u.id="layuicss-"+s,y=0;return u.rel="stylesheet",u.href=e+(n.debug?"?v="+(new Date).getTime():""),u.media="all",t.getElementById(c)||l.appendChild(u),"function"!=typeof o?i:(function p(){return++y>1e3*n.timeout/100?a(e+" timeout"):void(1989===parseInt(i.getStyle(t.getElementById(c),"width"))?function(){o()}():setTimeout(p,100))}(),i)},n.callback={},o.prototype.factory=function(e){if(layui[e])return"function"==typeof n.callback[e]?n.callback[e]:null},o.prototype.addcss=function(e,t,o){return layui.link(n.dir+"css/"+e,t,o)},o.prototype.img=function(e,t,n){var o=new Image;return o.src=e,o.complete?t(o):(o.onload=function(){o.onload=null,t(o)},void(o.onerror=function(e){o.onerror=null,n(e)}))},o.prototype.config=function(e){e=e||{};for(var t in e)n[t]=e[t];return this},o.prototype.modules=function(){var e={};for(var t in u)e[t]=u[t];return e}(),o.prototype.extend=function(e){var t=this;e=e||{};for(var n in e)t[n]||t.modules[n]?a("模块名 "+n+" 已被占用"):t.modules[n]=e[n];return t},o.prototype.router=function(e){var t=this,e=e||location.hash,n={path:[],search:{},hash:(e.match(/[^#](#.*$)/)||[])[1]||""};return/^#\//.test(e)?(n.href=e=e.replace(/^#\//,""),e=e.replace(/([^#])(#.*$)/,"$1").split("/")||[],t.each(e,function(e,t){/^\w+=/.test(t)?function(){t=t.split("="),n.search[t[0]]=t[1]}():n.path.push(t)}),n):n},o.prototype.data=function(t,n,o){if(t=t||"layui",o=o||localStorage,e.JSON&&e.JSON.parse){if(null===n)return delete o[t];n="object"==typeof n?n:{key:n};try{var r=JSON.parse(o[t])}catch(a){var r={}}return"value"in n&&(r[n.key]=n.value),n.remove&&delete r[n.key],o[t]=JSON.stringify(r),n.key?r[n.key]:r}},o.prototype.sessionData=function(e,t){return this.data(e,t,sessionStorage)},o.prototype.device=function(t){var n=navigator.userAgent.toLowerCase(),o=function(e){var t=new RegExp(e+"/([^\\s\\_\\-]+)");return e=(n.match(t)||[])[1],e||!1},r={os:function(){return/windows/.test(n)?"windows":/linux/.test(n)?"linux":/iphone|ipod|ipad|ios/.test(n)?"ios":/mac/.test(n)?"mac":void 0}(),ie:function(){return!!(e.ActiveXObject||"ActiveXObject"in e)&&((n.match(/msie\s(\d+)/)||[])[1]||"11")}(),weixin:o("micromessenger")};return t&&!r[t]&&(r[t]=o(t)),r.android=/android/.test(n),r.ios="ios"===r.os,r},o.prototype.hint=function(){return{error:a}},o.prototype.each=function(e,t){var n,o=this;if("function"!=typeof t)return o;if(e=e||[],e.constructor===Object){for(n in e)if(t.call(e[n],n,e[n]))break}else for(n=0;na?1:r0;r--)if("interactive"===n[r].readyState){e=n[r].src;break}return e||n[o].src}();return e.substring(0,e.lastIndexOf("/")+1)}(),a=function(t){e.console&&console.error&&console.error("Layui hint: "+t)},i="undefined"!=typeof opera&&"[object Opera]"===opera.toString(),u={layer:"modules/layer",laydate:"modules/laydate",laypage:"modules/laypage",laytpl:"modules/laytpl",layim:"modules/layim",layedit:"modules/layedit",form:"modules/form",upload:"modules/upload",tree:"modules/tree",table:"modules/table",element:"modules/element",util:"modules/util",flow:"modules/flow",carousel:"modules/carousel",code:"modules/code",jquery:"modules/jquery",mobile:"modules/mobile","layui.all":"../layui.all"};o.prototype.cache=n,o.prototype.define=function(e,t){var o=this,r="function"==typeof e,a=function(){var e=function(e,t){layui[e]=t,n.status[e]=!0};return"function"==typeof t&&t(function(o,r){e(o,r),n.callback[o]=function(){t(e)}}),this};return r&&(t=e,e=[]),layui["layui.all"]||!layui["layui.all"]&&layui["layui.mobile"]?a.call(o):(o.use(e,a),o)},o.prototype.use=function(e,o,l){function s(e,t){var o="PLaySTATION 3"===navigator.platform?/^complete$/:/^(complete|loaded)$/;("load"===e.type||o.test((e.currentTarget||e.srcElement).readyState))&&(n.modules[f]=t,d.removeChild(v),function r(){return++m>1e3*n.timeout/4?a(f+" is not a valid module"):void(n.status[f]?c():setTimeout(r,4))}())}function c(){l.push(layui[f]),e.length>1?y.use(e.slice(1),o,l):"function"==typeof o&&o.apply(layui,l)}var y=this,p=n.dir=n.dir?n.dir:r,d=t.getElementsByTagName("head")[0];e="string"==typeof e?[e]:e,window.jQuery&&jQuery.fn.on&&(y.each(e,function(t,n){"jquery"===n&&e.splice(t,1)}),layui.jquery=layui.$=jQuery);var f=e[0],m=0;if(l=l||[],n.host=n.host||(p.match(/\/\/([\s\S]+?)\//)||["//"+location.host+"/"])[0],0===e.length||layui["layui.all"]&&u[f]||!layui["layui.all"]&&layui["layui.mobile"]&&u[f])return c(),y;if(n.modules[f])!function g(){return++m>1e3*n.timeout/4?a(f+" is not a valid module"):void("string"==typeof n.modules[f]&&n.status[f]?c():setTimeout(g,4))}();else{var v=t.createElement("script"),h=(u[f]?p+"lay/":/^\{\/\}/.test(y.modules[f])?"":n.base||"")+(y.modules[f]||f)+".js";h=h.replace(/^\{\/\}/,""),v.async=!0,v.charset="utf-8",v.src=h+function(){var e=n.version===!0?n.v||(new Date).getTime():n.version||"";return e?"?v="+e:""}(),d.appendChild(v),!v.attachEvent||v.attachEvent.toString&&v.attachEvent.toString().indexOf("[native code")<0||i?v.addEventListener("load",function(e){s(e,h)},!1):v.attachEvent("onreadystatechange",function(e){s(e,h)}),n.modules[f]=h}return y},o.prototype.getStyle=function(t,n){var o=t.currentStyle?t.currentStyle:e.getComputedStyle(t,null);return o[o.getPropertyValue?"getPropertyValue":"getAttribute"](n)},o.prototype.link=function(e,o,r){var i=this,u=t.createElement("link"),l=t.getElementsByTagName("head")[0];"string"==typeof o&&(r=o);var s=(r||e).replace(/\.|\//g,""),c=u.id="layuicss-"+s,y=0;return u.rel="stylesheet",u.href=e+(n.debug?"?v="+(new Date).getTime():""),u.media="all",t.getElementById(c)||l.appendChild(u),"function"!=typeof o?i:(function p(){return++y>1e3*n.timeout/100?a(e+" timeout"):void(1989===parseInt(i.getStyle(t.getElementById(c),"width"))?function(){o()}():setTimeout(p,100))}(),i)},n.callback={},o.prototype.factory=function(e){if(layui[e])return"function"==typeof n.callback[e]?n.callback[e]:null},o.prototype.addcss=function(e,t,o){return layui.link(n.dir+"css/"+e,t,o)},o.prototype.img=function(e,t,n){var o=new Image;return o.src=e,o.complete?t(o):(o.onload=function(){o.onload=null,t(o)},void(o.onerror=function(e){o.onerror=null,n(e)}))},o.prototype.config=function(e){e=e||{};for(var t in e)n[t]=e[t];return this},o.prototype.modules=function(){var e={};for(var t in u)e[t]=u[t];return e}(),o.prototype.extend=function(e){var t=this;e=e||{};for(var n in e)t[n]||t.modules[n]?a("模块名 "+n+" 已被占用"):t.modules[n]=e[n];return t},o.prototype.router=function(e){var t=this,e=e||location.hash,n={path:[],search:{},hash:(e.match(/[^#](#.*$)/)||[])[1]||""};return/^#\//.test(e)?(e=e.replace(/^#\//,""),n.href="/"+e,e=e.replace(/([^#])(#.*$)/,"$1").split("/")||[],t.each(e,function(e,t){/^\w+=/.test(t)?function(){t=t.split("="),n.search[t[0]]=t[1]}():n.path.push(t)}),n):n},o.prototype.data=function(t,n,o){if(t=t||"layui",o=o||localStorage,e.JSON&&e.JSON.parse){if(null===n)return delete o[t];n="object"==typeof n?n:{key:n};try{var r=JSON.parse(o[t])}catch(a){var r={}}return"value"in n&&(r[n.key]=n.value),n.remove&&delete r[n.key],o[t]=JSON.stringify(r),n.key?r[n.key]:r}},o.prototype.sessionData=function(e,t){return this.data(e,t,sessionStorage)},o.prototype.device=function(t){var n=navigator.userAgent.toLowerCase(),o=function(e){var t=new RegExp(e+"/([^\\s\\_\\-]+)");return e=(n.match(t)||[])[1],e||!1},r={os:function(){return/windows/.test(n)?"windows":/linux/.test(n)?"linux":/iphone|ipod|ipad|ios/.test(n)?"ios":/mac/.test(n)?"mac":void 0}(),ie:function(){return!!(e.ActiveXObject||"ActiveXObject"in e)&&((n.match(/msie\s(\d+)/)||[])[1]||"11")}(),weixin:o("micromessenger")};return t&&!r[t]&&(r[t]=o(t)),r.android=/android/.test(n),r.ios="ios"===r.os,r},o.prototype.hint=function(){return{error:a}},o.prototype.each=function(e,t){var n,o=this;if("function"!=typeof t)return o;if(e=e||[],e.constructor===Object){for(n in e)if(t.call(e[n],n,e[n]))break}else for(n=0;na?1:r Date: Wed, 4 Apr 2018 16:40:44 +0800 Subject: [PATCH 110/153] =?UTF-8?q?[=E6=9B=B4=E6=96=B0]=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=8A=A0=E8=BD=BD=E6=97=B6=E9=97=B4=E5=A4=84=E7=90=86=20#IIP88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- static/admin.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/static/admin.js b/static/admin.js index 0978bb567..57954f608 100644 --- a/static/admin.js +++ b/static/admin.js @@ -169,7 +169,7 @@ $(function () { return false; } if (typeof (res) === 'object') { - return $.msg.auto(res, time); + return $.msg.auto(res, res.wait ? res.wait : time); } self.show(res); } From 6454207b0a768f6584d56a8cab150ccac5f7b39a Mon Sep 17 00:00:00 2001 From: Anyon Date: Sun, 8 Apr 2018 10:10:44 +0800 Subject: [PATCH 111/153] =?UTF-8?q?[=E6=9B=B4=E6=96=B0]=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=90=8E=E5=8F=B0=E7=AE=A1=E7=90=86js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- static/admin.js | 288 ++++++++++++++++++++++++------------------------ 1 file changed, 143 insertions(+), 145 deletions(-) diff --git a/static/admin.js b/static/admin.js index 57954f608..f92d516fb 100644 --- a/static/admin.js +++ b/static/admin.js @@ -253,20 +253,156 @@ $(function () { $cur.data('input').value = tmp.join('|'); $cur.remove(), $.msg.close(dialogIndex); }); - }) + }); $(this).before($tpl); } }).trigger('change'); }; - // 注册对象到JqFn - $.fn.validate = function (callback, options) { - return (new validate()).check(this, callback, options); - }; - // 注册对象到Jq $.validate = function (form, callback, options) { - return (new validate()).check(form, callback, options); + return (new function () { + var self = this; + // 表单元素 + this.tags = 'input,textarea,select'; + // 检测元素事件 + this.checkEvent = {change: true, blur: true, keyup: false}; + // 去除字符串两头的空格 + this.trim = function (str) { + return str.replace(/(^\s*)|(\s*$)/g, ''); + }; + // 标签元素是否可见 + this.isVisible = function (ele) { + return $(ele).is(':visible'); + }; + // 检测属性是否有定义 + this.hasProp = function (ele, prop) { + if (typeof prop !== "string") { + return false; + } + var attrProp = ele.getAttribute(prop); + return (typeof attrProp !== 'undefined' && attrProp !== null && attrProp !== false); + }; + // 判断表单元素是否为空 + this.isEmpty = function (ele, value) { + var trimValue = this.trim(ele.value); + value = value || ele.getAttribute('placeholder'); + return (trimValue === "" || trimValue === value); + }; + // 正则验证表单元素 + this.isRegex = function (ele, regex, params) { + var inputValue = ele.value, dealValue = this.trim(inputValue); + regex = regex || ele.getAttribute('pattern'); + if (dealValue === "" || !regex) { + return true; + } + if (dealValue !== inputValue) { + (ele.tagName.toLowerCase() !== "textarea") ? (ele.value = dealValue) : (ele.innerHTML = dealValue); + } + return new RegExp(regex, params || 'i').test(dealValue); + }; + // 检侧所的表单元素 + this.isAllpass = function (elements, options) { + if (!elements) { + return true; + } + var allpass = true, self = this, params = options || {}; + if (elements.size && elements.size() === 1 && elements.get(0).tagName.toLowerCase() === "form") { + elements = $(elements).find(self.tags); + } else if (elements.tagName && elements.tagName.toLowerCase() === "form") { + elements = $(elements).find(self.tags); + } + elements.each(function () { + if (self.checkInput(this, params) === false) { + return $(this).focus(), (allpass = false); + } + }); + return allpass; + }; + // 验证标志 + this.remind = function (input) { + return this.isVisible(input) ? this.showError(input, input.getAttribute('title') || '') : false; + }; + // 检测表单单元 + this.checkInput = function (input) { + var type = (input.getAttribute("type") + "").replace(/\W+$/, "").toLowerCase(); + var tag = input.tagName.toLowerCase(), isRequired = this.hasProp(input, "required"); + if (this.hasProp(input, 'data-auto-none') || input.disabled || type === 'submit' || type === 'reset' || type === 'file' || type === 'image' || !this.isVisible(input)) { + return; + } + var allpass = true; + if (type === "radio" && isRequired) { + var radiopass = false, eleRadios = input.name ? $("input[type='radio'][name='" + input.name + "']") : $(input); + eleRadios.each(function () { + (radiopass === false && $(this).is("[checked]")) && (radiopass = true); + }); + if (radiopass === false) { + allpass = this.remind(eleRadios.get(0), type, tag); + } else { + this.hideError(input); + } + } else if (type === "checkbox" && isRequired && !$(input).is("[checked]")) { + allpass = this.remind(input, type, tag); + } else if (tag === "select" && isRequired && !input.value) { + allpass = this.remind(input, type, tag); + } else if ((isRequired && this.isEmpty(input)) || !(allpass = this.isRegex(input))) { + allpass ? this.remind(input, type, "empty") : this.remind(input, type, tag); + allpass = false; + } else { + this.hideError(input); + } + return allpass; + }; + // 错误消息显示 + this.showError = function (ele, content) { + $(ele).addClass('validate-error'), this.insertError(ele); + $($(ele).data('input-info')).addClass('fadeInRight animated').css({width: 'auto'}).html(content); + }; + // 错误消息消除 + this.hideError = function (ele) { + $(ele).removeClass('validate-error'), this.insertError(ele); + $($(ele).data('input-info')).removeClass('fadeInRight').css({width: '30px'}).html(''); + }; + // 错误消息标签插入 + this.insertError = function (ele) { + var $html = $(''); + $html.css({top: $(ele).position().top + 'px', paddingBottom: $(ele).css('paddingBottom'), lineHeight: $(ele).css('height')}); + $(ele).data('input-info') || $(ele).data('input-info', $html.insertAfter(ele)); + }; + // 表单验证入口 + this.check = function (form, callback, options) { + var params = $.extend({}, options || {}); + $(form).attr("novalidate", "novalidate"); + $(form).find(self.tags).map(function () { + for (var i in self.checkEvent) { + if (self.checkEvent[i] === true) { + $(this).off(i, func).on(i, func); + } + } + + function func() { + self.checkInput(this); + } + }); + $(form).bind("submit", function (event) { + if (self.isAllpass($(this).find(self.tags), params) && typeof callback === 'function') { + if (typeof CKEDITOR === 'object' && typeof CKEDITOR.instances === 'object') { + for (var instance in CKEDITOR.instances) { + CKEDITOR.instances[instance].updateElement(); + } + } + callback.call(this, $(form).serialize()); + } + return event.preventDefault(), false; + }); + return $(form).data('validate', this); + }; + }).check(form, callback, options); + }; + + // 注册对象到JqFn + $.fn.validate = function (callback, options) { + return $.validate(this, callback, options); }; // 自动监听规则内表单 @@ -290,144 +426,6 @@ $(function () { }); }; - // 表单验证 - function validate() { - var self = this; - // 表单元素 - this.tags = 'input,textarea,select'; - // 检测元素事件 - this.checkEvent = {change: true, blur: true, keyup: false}; - // 去除字符串两头的空格 - this.trim = function (str) { - return str.replace(/(^\s*)|(\s*$)/g, ''); - }; - // 标签元素是否可见 - this.isVisible = function (ele) { - return $(ele).is(':visible'); - }; - // 检测属性是否有定义 - this.hasProp = function (ele, prop) { - if (typeof prop !== "string") { - return false; - } - var attrProp = ele.getAttribute(prop); - return (typeof attrProp !== 'undefined' && attrProp !== null && attrProp !== false); - }; - // 判断表单元素是否为空 - this.isEmpty = function (ele, value) { - var trimValue = this.trim(ele.value); - value = value || ele.getAttribute('placeholder'); - return (trimValue === "" || trimValue === value); - }; - // 正则验证表单元素 - this.isRegex = function (ele, regex, params) { - var inputValue = ele.value, dealValue = this.trim(inputValue); - regex = regex || ele.getAttribute('pattern'); - if (dealValue === "" || !regex) { - return true; - } - if (dealValue !== inputValue) { - (ele.tagName.toLowerCase() !== "textarea") ? (ele.value = dealValue) : (ele.innerHTML = dealValue); - } - return new RegExp(regex, params || 'i').test(dealValue); - }; - // 检侧所的表单元素 - this.isAllpass = function (elements, options) { - if (!elements) { - return true; - } - var allpass = true, self = this, params = options || {}; - if (elements.size && elements.size() === 1 && elements.get(0).tagName.toLowerCase() === "form") { - elements = $(elements).find(self.tags); - } else if (elements.tagName && elements.tagName.toLowerCase() === "form") { - elements = $(elements).find(self.tags); - } - elements.each(function () { - if (self.checkInput(this, params) === false) { - return $(this).focus(), (allpass = false); - } - }); - return allpass; - }; - // 验证标志 - this.remind = function (input) { - return this.isVisible(input) ? this.showError(input, input.getAttribute('title') || '') : false; - }; - // 检测表单单元 - this.checkInput = function (input) { - var type = (input.getAttribute("type") + "").replace(/\W+$/, "").toLowerCase(); - var tag = input.tagName.toLowerCase(), isRequired = this.hasProp(input, "required"); - if (this.hasProp(input, 'data-auto-none') || input.disabled || type === 'submit' || type === 'reset' || type === 'file' || type === 'image' || !this.isVisible(input)) { - return; - } - var allpass = true; - if (type === "radio" && isRequired) { - var radiopass = false, eleRadios = input.name ? $("input[type='radio'][name='" + input.name + "']") : $(input); - eleRadios.each(function () { - (radiopass === false && $(this).is("[checked]")) && (radiopass = true); - }); - if (radiopass === false) { - allpass = this.remind(eleRadios.get(0), type, tag); - } else { - this.hideError(input); - } - } else if (type === "checkbox" && isRequired && !$(input).is("[checked]")) { - allpass = this.remind(input, type, tag); - } else if (tag === "select" && isRequired && !input.value) { - allpass = this.remind(input, type, tag); - } else if ((isRequired && this.isEmpty(input)) || !(allpass = this.isRegex(input))) { - allpass ? this.remind(input, type, "empty") : this.remind(input, type, tag); - allpass = false; - } else { - this.hideError(input); - } - return allpass; - }; - // 错误消息显示 - this.showError = function (ele, content) { - $(ele).addClass('validate-error'), this.insertError(ele); - $($(ele).data('input-info')).addClass('fadeInRight animated').css({width: 'auto'}).html(content); - }; - // 错误消息消除 - this.hideError = function (ele) { - $(ele).removeClass('validate-error'), this.insertError(ele); - $($(ele).data('input-info')).removeClass('fadeInRight').css({width: '30px'}).html(''); - }; - // 错误消息标签插入 - this.insertError = function (ele) { - var $html = $(''); - $html.css({top: $(ele).position().top + 'px', paddingBottom: $(ele).css('paddingBottom'), lineHeight: $(ele).css('height')}); - $(ele).data('input-info') || $(ele).data('input-info', $html.insertAfter(ele)); - }; - // 表单验证入口 - this.check = function (form, callback, options) { - var params = $.extend({}, options || {}); - $(form).attr("novalidate", "novalidate"); - $(form).find(self.tags).map(function () { - for (var i in self.checkEvent) { - if (self.checkEvent[i] === true) { - $(this).off(i, func).on(i, func); - } - } - - function func() { - self.checkInput(this); - } - }); - $(form).bind("submit", function (event) { - if (self.isAllpass($(this).find(self.tags), params) && typeof callback === 'function') { - if (typeof CKEDITOR === 'object' && typeof CKEDITOR.instances === 'object') { - for (var instance in CKEDITOR.instances) { - CKEDITOR.instances[instance].updateElement(); - } - } - callback.call(this, $(form).serialize()); - } - return event.preventDefault(), false; - }); - return $(form).data('validate', this); - }; - } /*! 后台菜单辅助插件 */ $.menu = new function () { From a21ca2337c4c60b723f076af69624921f4cd3aa6 Mon Sep 17 00:00:00 2001 From: Anyon Date: Sun, 8 Apr 2018 10:19:17 +0800 Subject: [PATCH 112/153] =?UTF-8?q?[=E6=9B=B4=E6=96=B0]=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=90=8E=E5=8F=B0=E7=AE=A1=E7=90=86=E6=8E=A7=E5=88=B6JS?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- static/admin.js | 275 ++++++++++++++++++++++++------------------------ 1 file changed, 137 insertions(+), 138 deletions(-) diff --git a/static/admin.js b/static/admin.js index f92d516fb..3f2044efd 100644 --- a/static/admin.js +++ b/static/admin.js @@ -117,7 +117,7 @@ $(function () { this.errMsg = '{status}服务器繁忙,请稍候再试!'; // 内容区域动态加载后初始化 this.reInit = function ($container) { - $.validate.listen.call(this), JPlaceHolder.init(); + $.vali.listen(this), JPlaceHolder.init(); $container.find('[required]').parent().prevAll('label').addClass('label-required'); }; // 在内容区显示视图 @@ -214,53 +214,101 @@ $(function () { }; }; - // 上传单个图片 - $.fn.uploadOneImage = function () { - var name = $(this).attr('name') || 'image'; - var type = $(this).data('type') || 'png,jpg'; - var $tpl = $(''); - $(this).hide().attr('name', name).after($tpl).on('change', function () { - $tpl.get(0).style = this.value ? 'background-image:url(' + this.value + ')' : ''; - }).trigger('change'); - }; - - // 上传多个图片 - $.fn.uploadMultipleImage = function () { - var type = $(this).data('type') || 'png,jpg'; - var name = $(this).attr('name') || 'umt-image'; - var $tpl = $(''); - $(this).hide().attr('name', name).after($tpl).on('change', function () { - var input = this, values = [], srcs = this.value.split('|'); - $(this).prevAll('.uploadimage').map(function () { - values.push($(this).attr('data-tips-image')); - }), $(this).prevAll('.uploadimage').remove(), values.reverse(); - for (var i in srcs) { - srcs[i] && values.push(srcs[i]); + /*! 后台菜单辅助插件 */ + $.menu = new function () { + // 计算URL地址中有效的URI + this.getUri = function (uri) { + uri = uri || window.location.href; + uri = (uri.indexOf(window.location.host) > -1 ? uri.split(window.location.host)[1] : uri).split('?')[0]; + return (uri.indexOf('#') !== -1 ? uri.split('#')[1] : uri); + }; + // 通过URI查询最有可能的菜单NODE + this.queryNode = function (url) { + var node = location.href.replace(/.*spm=([\d\-m]+).*/ig, '$1'); + if (!/^m\-/.test(node)) { + var $menu = $('[data-menu-node][data-open*="' + url.replace(/\.html$/ig, '') + '"]'); + return $menu.size() ? $menu.get(0).getAttribute('data-menu-node') : ''; } - this.value = values.join('|'); - for (var i in values) { - var tpl = ''; - var $tpl = $(tpl).attr('data-tips-image', values[i]).css('backgroundImage', 'url(' + values[i] + ')'); - $tpl.data('input', input).data('srcs', values).data('index', i); - $tpl.on('click', 'a', function (e) { - e.stopPropagation(); - var $cur = $(this).parent(); - var dialogIndex = $.msg.confirm('确定要移除这张图片吗?', function () { - var data = $cur.data('srcs'), tmp = []; - for (var i in data) { - i !== $cur.data('index') && tmp.push(data[i]); + return node; + }; + // URL转URI + this.parseUri = function (uri, obj) { + var params = {}; + if (uri.indexOf('?') > -1) { + var serach = uri.split('?')[1].split('&'); + for (var i in serach) { + if (serach[i].indexOf('=') > -1) { + var arr = serach[i].split('='); + try { + params[arr[0]] = window.decodeURIComponent(window.decodeURIComponent(arr[1].replace(/%2B/ig, ' '))); + } catch (e) { + console.log([e, uri, serach, arr]); } - $cur.data('input').value = tmp.join('|'); - $cur.remove(), $.msg.close(dialogIndex); - }); - }); - $(this).before($tpl); + } + } } - }).trigger('change'); + uri = this.getUri(uri); + params.spm = obj && obj.getAttribute('data-menu-node') || this.queryNode(uri); + delete params[""]; + var query = '?' + $.param(params); + return uri + (query !== '?' ? query : ''); + }; + // 后台菜单动作初始化 + this.listen = function () { + var self = this; + // 左则二级菜单展示 + $('[data-submenu-layout]>a').on('click', function () { + $(this).parent().toggleClass('open'); + self.syncOpenStatus(1); + }); + // 同步二级菜单展示状态 + this.syncOpenStatus = function (mode) { + $('[data-submenu-layout]').map(function () { + var node = $(this).attr('data-submenu-layout'); + if (mode === 1) { + var type = (this.className || '').indexOf('open') > -1 ? 2 : 1; + layui.data('menu', {key: node, value: type}); + } else { + var type = layui.data('menu')[node] || 2; + (type === 2) && $(this).addClass('open'); + } + }); + }; + window.onhashchange = function () { + var hash = window.location.hash || ''; + if (hash.length < 1) { + return $('[data-menu-node][data-open!="#"]:first').trigger('click'); + } + $.form.load(hash); + self.syncOpenStatus(2); + // 菜单选择切换 + var node = self.queryNode(self.getUri()); + if (/^m\-/.test(node)) { + var $all = $('a[data-menu-node]'), tmp = node.split('-'), tmpNode = tmp.shift(); + while (tmp.length > 0) { + tmpNode = tmpNode + '-' + tmp.shift(); + $all = $all.not($('a[data-menu-node="' + tmpNode + '"]').addClass('active')); + } + $all.removeClass('active'); + // 菜单模式切换 + if (node.split('-').length > 2) { + var _tmp = node.split('-'), _node = _tmp.shift() + '-' + _tmp.shift(); + $('[data-menu-layout]').not($('[data-menu-layout="' + _node + '"]').removeClass('hide')).addClass('hide'); + $('[data-menu-node="' + node + '"]').parent('div').parent('div').addClass('open'); + $('body.framework').removeClass('mini'); + } else { + $('body.framework').addClass('mini'); + } + self.syncOpenStatus(1); + } + }; + // URI初始化动作 + window.onhashchange.call(this); + }; }; // 注册对象到Jq - $.validate = function (form, callback, options) { + $.vali = function (form, callback, options) { return (new function () { var self = this; // 表单元素 @@ -400,17 +448,12 @@ $(function () { }).check(form, callback, options); }; - // 注册对象到JqFn - $.fn.validate = function (callback, options) { - return $.validate(this, callback, options); - }; - // 自动监听规则内表单 - $.validate.listen = function () { + $.vali.listen = function () { $('form[data-auto]').map(function () { if ($(this).attr('data-listen') !== 'true') { var callbackname = $(this).attr('data-callback'); - $(this).attr('data-listen', 'true').validate(function (data) { + $(this).attr('data-listen', 'true').vali(function (data) { var method = this.getAttribute('method') || 'POST'; var tips = this.getAttribute('data-tips') || undefined; var url = this.getAttribute('action') || window.location.href; @@ -426,98 +469,54 @@ $(function () { }); }; + // 注册对象到JqFn + $.fn.vali = function (callback, options) { + return $.vali(this, callback, options); + }; - /*! 后台菜单辅助插件 */ - $.menu = new function () { - // 计算URL地址中有效的URI - this.getUri = function (uri) { - uri = uri || window.location.href; - uri = (uri.indexOf(window.location.host) > -1 ? uri.split(window.location.host)[1] : uri).split('?')[0]; - return (uri.indexOf('#') !== -1 ? uri.split('#')[1] : uri); - }; - // 通过URI查询最有可能的菜单NODE - this.queryNode = function (url) { - var node = location.href.replace(/.*spm=([\d\-m]+).*/ig, '$1'); - if (!/^m\-/.test(node)) { - var $menu = $('[data-menu-node][data-open*="' + url.replace(/\.html$/ig, '') + '"]'); - return $menu.size() ? $menu.get(0).getAttribute('data-menu-node') : ''; + // 上传单个图片 + $.fn.uploadOneImage = function () { + var name = $(this).attr('name') || 'image'; + var type = $(this).data('type') || 'png,jpg'; + var $tpl = $(''); + $(this).hide().attr('name', name).after($tpl).on('change', function () { + $tpl.get(0).style = this.value ? 'background-image:url(' + this.value + ')' : ''; + }).trigger('change'); + }; + + // 上传多个图片 + $.fn.uploadMultipleImage = function () { + var type = $(this).data('type') || 'png,jpg'; + var name = $(this).attr('name') || 'umt-image'; + var $tpl = $(''); + $(this).hide().attr('name', name).after($tpl).on('change', function () { + var input = this, values = [], srcs = this.value.split('|'); + $(this).prevAll('.uploadimage').map(function () { + values.push($(this).attr('data-tips-image')); + }), $(this).prevAll('.uploadimage').remove(), values.reverse(); + for (var i in srcs) { + srcs[i] && values.push(srcs[i]); } - return node; - }; - // URL转URI - this.parseUri = function (uri, obj) { - var params = {}; - if (uri.indexOf('?') > -1) { - var serach = uri.split('?')[1].split('&'); - for (var i in serach) { - if (serach[i].indexOf('=') > -1) { - var arr = serach[i].split('='); - try { - params[arr[0]] = window.decodeURIComponent(window.decodeURIComponent(arr[1].replace(/%2B/ig, ' '))); - } catch (e) { - console.log([e, uri, serach, arr]); + this.value = values.join('|'); + for (var i in values) { + var tpl = ''; + var $tpl = $(tpl).attr('data-tips-image', values[i]).css('backgroundImage', 'url(' + values[i] + ')'); + $tpl.data('input', input).data('srcs', values).data('index', i); + $tpl.on('click', 'a', function (e) { + e.stopPropagation(); + var $cur = $(this).parent(); + var dialogIndex = $.msg.confirm('确定要移除这张图片吗?', function () { + var data = $cur.data('srcs'), tmp = []; + for (var i in data) { + i !== $cur.data('index') && tmp.push(data[i]); } - } - } - } - uri = this.getUri(uri); - params.spm = obj && obj.getAttribute('data-menu-node') || this.queryNode(uri); - delete params[""]; - var query = '?' + $.param(params); - return uri + (query !== '?' ? query : ''); - }; - // 后台菜单动作初始化 - this.listen = function () { - var self = this; - // 左则二级菜单展示 - $('[data-submenu-layout]>a').on('click', function () { - $(this).parent().toggleClass('open'); - self.syncOpenStatus(1); - }); - // 同步二级菜单展示状态 - this.syncOpenStatus = function (mode) { - $('[data-submenu-layout]').map(function () { - var node = $(this).attr('data-submenu-layout'); - if (mode === 1) { - var type = (this.className || '').indexOf('open') > -1 ? 2 : 1; - layui.data('menu', {key: node, value: type}); - } else { - var type = layui.data('menu')[node] || 2; - (type === 2) && $(this).addClass('open'); - } + $cur.data('input').value = tmp.join('|'); + $cur.remove(), $.msg.close(dialogIndex); + }); }); - }; - window.onhashchange = function () { - var hash = window.location.hash || ''; - if (hash.length < 1) { - return $('[data-menu-node][data-open!="#"]:first').trigger('click'); - } - $.form.load(hash); - self.syncOpenStatus(2); - // 菜单选择切换 - var node = self.queryNode(self.getUri()); - if (/^m\-/.test(node)) { - var $all = $('a[data-menu-node]'), tmp = node.split('-'), tmpNode = tmp.shift(); - while (tmp.length > 0) { - tmpNode = tmpNode + '-' + tmp.shift(); - $all = $all.not($('a[data-menu-node="' + tmpNode + '"]').addClass('active')); - } - $all.removeClass('active'); - // 菜单模式切换 - if (node.split('-').length > 2) { - var _tmp = node.split('-'), _node = _tmp.shift() + '-' + _tmp.shift(); - $('[data-menu-layout]').not($('[data-menu-layout="' + _node + '"]').removeClass('hide')).addClass('hide'); - $('[data-menu-node="' + node + '"]').parent('div').parent('div').addClass('open'); - $('body.framework').removeClass('mini'); - } else { - $('body.framework').addClass('mini'); - } - self.syncOpenStatus(1); - } - }; - // URI初始化动作 - window.onhashchange.call(this); - }; + $(this).before($tpl); + } + }).trigger('change'); }; /*! 注册 data-load 事件行为 */ @@ -658,5 +657,5 @@ $(function () { /*! 初始化 */ $.menu.listen(); - $.validate.listen(this); + $.vali.listen(); }); \ No newline at end of file From c0c4a057121a5482a3740f0786c9d61dd6048d26 Mon Sep 17 00:00:00 2001 From: Anyon Date: Sun, 8 Apr 2018 10:21:35 +0800 Subject: [PATCH 113/153] =?UTF-8?q?[=E6=9B=B4=E6=96=B0]=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=90=8E=E5=8F=B0=E7=AE=A1=E7=90=86JS?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- static/admin.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/static/admin.js b/static/admin.js index 3f2044efd..97900b3df 100644 --- a/static/admin.js +++ b/static/admin.js @@ -169,7 +169,7 @@ $(function () { return false; } if (typeof (res) === 'object') { - return $.msg.auto(res, res.wait ? res.wait : time); + return $.msg.auto(res, time || res.wait || undefined); } self.show(res); } From d01cd8bb8b9523c3754c58f9baf51e5bd55103e3 Mon Sep 17 00:00:00 2001 From: Anyon Date: Sun, 8 Apr 2018 10:27:09 +0800 Subject: [PATCH 114/153] =?UTF-8?q?[=E6=9B=B4=E6=96=B0]=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E6=A8=A1=E6=9D=BF=EF=BC=88=E5=90=8C=E6=AD=A5JS=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/goods/view/spec/form.html | 2 +- application/wechat/view/news/form.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/application/goods/view/spec/form.html b/application/goods/view/spec/form.html index cab3e4070..9d60ff2e2 100644 --- a/application/goods/view/spec/form.html +++ b/application/goods/view/spec/form.html @@ -121,7 +121,7 @@ }; // 表单验证 - $('#spec-form').validate(function (ret) { + $('#spec-form').vali(function (ret) { try { var spect_param = []; for (var i in $rootScope.paramList) { diff --git a/application/wechat/view/news/form.html b/application/wechat/view/news/form.html index 80cdd8e3c..a8860bf37 100644 --- a/application/wechat/view/news/form.html +++ b/application/wechat/view/news/form.html @@ -124,7 +124,7 @@ /*! 默认编辑第一篇图文 */ editor = window.createEditor('[name="content"]'); - $form.validate(); + $form.vali(); /*! 上传图片 */ $body.on('change', '.upload-image-box input', function () { From 9ef4479be807b06893e6d0477be823af0d515baf Mon Sep 17 00:00:00 2001 From: Anyon Date: Sun, 8 Apr 2018 10:30:45 +0800 Subject: [PATCH 115/153] =?UTF-8?q?[=E6=9B=B4=E6=96=B0]=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E6=A8=A1=E6=9D=BF=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/admin/view/menu/index.html | 2 +- extend/service/ToolsService.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/application/admin/view/menu/index.html b/application/admin/view/menu/index.html index 2e23588cf..f34799631 100644 --- a/application/admin/view/menu/index.html +++ b/application/admin/view/menu/index.html @@ -43,7 +43,7 @@ - {$vo.spl|raw}{$vo.title} + {$vo.spl|raw}{$vo.title} {$vo.url} {if $vo.status eq 0}已禁用{elseif $vo.status eq 1}使用中{/if} diff --git a/extend/service/ToolsService.php b/extend/service/ToolsService.php index 119fca01f..9c3234ea8 100644 --- a/extend/service/ToolsService.php +++ b/extend/service/ToolsService.php @@ -121,7 +121,7 @@ class ToolsService $attr[$path] = "{$ppath}-{$attr[$id]}"; $attr['sub'] = isset($attr['sub']) ? $attr['sub'] : []; $attr['spt'] = substr_count($ppath, '-'); - $attr['spl'] = str_repeat("    ├ ", $attr['spt']); + $attr['spl'] = str_repeat("   ├  ", $attr['spt']); $sub = $attr['sub']; unset($attr['sub']); $tree[] = $attr; From 04425db6e810d384eb890e1bce17977fb73f5113 Mon Sep 17 00:00:00 2001 From: Anyon Date: Sun, 8 Apr 2018 10:37:18 +0800 Subject: [PATCH 116/153] =?UTF-8?q?[=E6=9B=B4=E6=96=B0]=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E8=8A=82=E7=82=B9=E6=A8=A1=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/admin/view/node/index.html | 28 +++++++++++++------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/application/admin/view/node/index.html b/application/admin/view/node/index.html index 671d68bc7..99e99b451 100644 --- a/application/admin/view/node/index.html +++ b/application/admin/view/node/index.html @@ -28,7 +28,7 @@ - {$vo.spl|raw} {$vo.node} + {$vo.spl|raw} {$vo.node} {if auth("$classuri/save")} {/if} @@ -46,36 +46,36 @@ {/if} {if auth("$classuri/save") and $vo.spt eq 2} -  ├─ +   ├─  -       ├─ +      ├─  -       ├─ +      ├─  {/if} - + From a89ecc87d7c8e7486c10ad7cdf007740712cc8d4 Mon Sep 17 00:00:00 2001 From: Anyon Date: Sun, 8 Apr 2018 10:50:46 +0800 Subject: [PATCH 117/153] =?UTF-8?q?[=E6=9B=B4=E6=96=B0]=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E6=A8=A1=E6=9D=BF=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/goods/view/product/form.html | 10 +++++++++- static/theme/css/console.css | 2 +- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/application/goods/view/product/form.html b/application/goods/view/product/form.html index ea3cab946..4c1d45af6 100644 --- a/application/goods/view/product/form.html +++ b/application/goods/view/product/form.html @@ -68,10 +68,13 @@
          + + + +
          产品LOGO 产品图片
          @@ -80,6 +83,7 @@
          @@ -322,7 +326,11 @@ .background-item { padding: 15px; - background: #f5f5f5; + background: #efefef; + } + + .background-item thead tr { + background: #e0e0e0 } .price-input-td { diff --git a/static/theme/css/console.css b/static/theme/css/console.css index 5f101641e..4e4c9b302 100644 --- a/static/theme/css/console.css +++ b/static/theme/css/console.css @@ -49,7 +49,7 @@ a{color:#06C;cursor:pointer}a:hover{color:#039}input::-ms-clear{display:none}but .pace .pace-progress{background:#22df80;position:fixed;z-index:2000;top:0;right:100%;width:100%;height:2px} .uploadimage{display:inline-block;width:80px;height:80px;background: url('../img/image.png') no-repeat center center;background-size:cover;cursor:pointer} .uploadimagemtl{margin-right:8px;} -.uploadimagemtl a{color:#fff;width:20px;height:20px;float:right;display:none;line-height:20px;text-align:center;background:rgba(0, 0, 0, 0.5)} +.uploadimagemtl a{color:#fff;width:20px;height:20px;float:right;display:none;line-height:22px;text-align:center;background:rgba(0, 0, 0, 0.5)} .uploadimagemtl:hover a{display:inline-block;cursor:pointer} .uploadimagemtl:hover a:hover{color:#fff;text-decoration:none} .hr-line-dashed{border-top:1px dashed #e7eaec;color:#fff;background-color:#fff;height:1px;margin:20px 0} From 58bcbabf1ef54010bb146d89bb2e1dba9a861273 Mon Sep 17 00:00:00 2001 From: Anyon Date: Sun, 8 Apr 2018 11:03:14 +0800 Subject: [PATCH 118/153] =?UTF-8?q?[=E6=9B=B4=E6=96=B0]=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E9=BB=98=E8=AE=A4=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/app.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/app.php b/config/app.php index 570363494..31a6cd419 100644 --- a/config/app.php +++ b/config/app.php @@ -38,7 +38,7 @@ return [ // 是否开启多语言 'lang_switch_on' => false, // 默认全局过滤方法 用逗号分隔多个 - 'default_filter' => 'htmlentities,trim', + 'default_filter' => 'trim', // 默认语言 'default_lang' => 'zh-cn', // 应用类库后缀 From 4c89480a8e75d03909c342a45612f6614849ac90 Mon Sep 17 00:00:00 2001 From: Anyon Date: Sun, 8 Apr 2018 11:05:32 +0800 Subject: [PATCH 119/153] =?UTF-8?q?[=E6=9B=B4=E6=96=B0]=E5=85=A8=E9=83=A8?= =?UTF-8?q?=E5=8E=BB=E9=99=A4htmlspecialchars=E8=BE=93=E5=85=A5=E8=BF=87?= =?UTF-8?q?=E6=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/wechat/controller/Keys.php | 1 - application/wechat/controller/News.php | 3 +-- application/wechat/controller/Review.php | 1 - 3 files changed, 1 insertion(+), 4 deletions(-) diff --git a/application/wechat/controller/Keys.php b/application/wechat/controller/Keys.php index d2d67a0fe..d4f1d71e3 100644 --- a/application/wechat/controller/Keys.php +++ b/application/wechat/controller/Keys.php @@ -180,7 +180,6 @@ class Keys extends BasicAdmin if ($this->request->isPost() && isset($data['keys'])) { $db = Db::name($this->table)->where('keys', $data['keys']); !empty($data['id']) && $db->where('id', 'neq', $data['id']); - $data['content'] = htmlspecialchars_decode($data['content']); $db->count() > 0 && $this->error('关键字已经存在,请使用其它关键字!'); } } diff --git a/application/wechat/controller/News.php b/application/wechat/controller/News.php index 48766ad3e..a34397874 100644 --- a/application/wechat/controller/News.php +++ b/application/wechat/controller/News.php @@ -172,7 +172,6 @@ class News extends BasicAdmin foreach ($data as &$vo) { $vo['create_by'] = session('user.id'); $vo['create_at'] = date('Y-m-d H:i:s'); - $vo['content'] = htmlspecialchars_decode($vo['content']); if (empty($vo['digest'])) { $vo['digest'] = mb_substr(strip_tags(str_replace(["\s", ' '], '', $vo['content'])), 0, 120); } @@ -280,7 +279,7 @@ class News extends BasicAdmin $article['content'] = preg_replace_callback("//i", function ($matches) { $src = MediaService::uploadImage($matches[2]); return ""; - }, htmlspecialchars_decode($article['content'])); + }, $article['content']); } $wechat = WechatService::media(); // 如果已经上传过,先删除之前的历史记录 diff --git a/application/wechat/controller/Review.php b/application/wechat/controller/Review.php index c656e4021..f84c20024 100644 --- a/application/wechat/controller/Review.php +++ b/application/wechat/controller/Review.php @@ -48,7 +48,6 @@ class Review extends Controller if (!empty($article['content_source_url'])) { $this->redirect($article['content_source_url']); } - $article['content'] = htmlspecialchars_decode($article['content']); $this->assign('vo', $article); } $this->assign('type', $type); From 30366ce37d401335720ba12bd33c5f25f355e34e Mon Sep 17 00:00:00 2001 From: Anyon Date: Sun, 8 Apr 2018 14:45:58 +0800 Subject: [PATCH 120/153] =?UTF-8?q?[=E6=9B=B4=E6=96=B0]=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E5=A4=9A=E6=96=87=E4=BB=B6=E4=B8=8A=E4=BC=A0=E9=87=8D=E5=A4=8D?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/admin/view/plugs/upfile.html | 46 ++++++++++++------------ 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/application/admin/view/plugs/upfile.html b/application/admin/view/plugs/upfile.html index 3f4f80530..3bb3976ec 100644 --- a/application/admin/view/plugs/upfile.html +++ b/application/admin/view/plugs/upfile.html @@ -47,35 +47,35 @@ top.$('[name="{$field}"]').map(function () { top.$(this).attr('data-srcs', ret.url).attr('data-md5', file.md5).val(url).trigger('change'); }); - var index = top.layer.getFrameIndex(window.name); - top.layer.close(index); - /*{/if} {$mode}*/ + top.layer.close(top.layer.getFrameIndex(window.name)); + /*{/if}*/ } - function confirmSelected() { - var srcs = new Array(), md5s = new Array(); - $('[data-md5] .success').map(function () { - var $li = $(this).parents('[data-md5]'); - md5s.push($li.attr('data-md5')); - srcs.push($li.attr('data-src')); - }); - if (srcs.length < 1) { - return top.$.msg.tips('还没有选择文件,请勾选需要使用的文件!'); - } - top.$('[name="{$field}"]').map(function () { - top.$(this).attr('data-srcs', srcs.join('|')).attr('data-md5', md5s.join('|')).val(srcs.join('|')).trigger('change'); - }); - var index = top.layer.getFrameIndex(window.name); - top.layer.close(index); - } + var isSuccessState = false; function completed() { var btnHTML = '完成上传'; - $('.uploadBtn').on('click', function () { - if (this.innerHTML === btnHTML) { - confirmSelected.call(this); + $('.uploadBtn').html(btnHTML).on('click', successSelected); + + function successSelected() { + if (!isSuccessState && this.innerHTML === btnHTML) { + isSuccessState = true; + console.log(btnHTML); + var srcs = [], md5s = []; + $('[data-md5] .success').map(function () { + var $li = $(this).parents('[data-md5]'); + md5s.push($li.attr('data-md5')); + srcs.push($li.attr('data-src')); + }); + if (srcs.length < 1) { + return top.$.msg.tips('还没有选择文件,请勾选需要使用的文件!'); + } + top.$('[name="{$field}"]').map(function () { + top.$(this).attr('data-srcs', srcs.join('|')).attr('data-md5', md5s.join('|')).val(srcs.join('|')).trigger('change'); + }); + top.layer.close(top.layer.getFrameIndex(window.name)); } - }).html(btnHTML); + } } // 当domReady的时候开始初始化 From bf74cf529eccdc1fcd4c73600ea0f0a6838efe70 Mon Sep 17 00:00:00 2001 From: Anyon Date: Sun, 8 Apr 2018 14:46:43 +0800 Subject: [PATCH 121/153] =?UTF-8?q?[=E6=9B=B4=E6=96=B0]=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E5=A4=9A=E6=96=87=E4=BB=B6=E4=B8=8A=E4=BC=A0=E9=87=8D=E5=A4=8D?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/admin/view/plugs/upfile.html | 1 - 1 file changed, 1 deletion(-) diff --git a/application/admin/view/plugs/upfile.html b/application/admin/view/plugs/upfile.html index 3bb3976ec..0f816b963 100644 --- a/application/admin/view/plugs/upfile.html +++ b/application/admin/view/plugs/upfile.html @@ -60,7 +60,6 @@ function successSelected() { if (!isSuccessState && this.innerHTML === btnHTML) { isSuccessState = true; - console.log(btnHTML); var srcs = [], md5s = []; $('[data-md5] .success').map(function () { var $li = $(this).parents('[data-md5]'); From 367b595660f0e025b5f750acf3c6738b2510bee7 Mon Sep 17 00:00:00 2001 From: Anyon Date: Sun, 8 Apr 2018 16:38:26 +0800 Subject: [PATCH 122/153] =?UTF-8?q?[=E6=9B=B4=E6=96=B0]=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E6=96=87=E6=A1=A3=E6=8F=8F=E8=BF=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 911ab9689..26bae0f9d 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,10 @@ ThinkAdmin for PHP Documentation -- +认真看看文档可能会对你的开发有所帮助哦! + +文档地址:[ThinkAdmin 开发文档](https://www.kancloud.cn/zoujingli/thinkadmin/content) + PHP开发技术交流(QQ群 513350915) [![PHP微信开发群 (SDK)](http://pub.idqqimg.com/wpa/images/group.png)](http://shang.qq.com/wpa/qunwpa?idkey=ae25cf789dafbef62e50a980ffc31242f150bc61a61164458216dd98c411832a) From b8ef8028a025a462b6e1ac041acc46a16443be9b Mon Sep 17 00:00:00 2001 From: Anyon Date: Sun, 8 Apr 2018 16:46:13 +0800 Subject: [PATCH 123/153] =?UTF-8?q?[=E6=9B=B4=E6=96=B0]=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: anyon --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 26bae0f9d..5422fb4b5 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,7 @@ Documentation 文档地址:[ThinkAdmin 开发文档](https://www.kancloud.cn/zoujingli/thinkadmin/content) + PHP开发技术交流(QQ群 513350915) [![PHP微信开发群 (SDK)](http://pub.idqqimg.com/wpa/images/group.png)](http://shang.qq.com/wpa/qunwpa?idkey=ae25cf789dafbef62e50a980ffc31242f150bc61a61164458216dd98c411832a) From 6953639ded6238b5bca185ab0883c6e7f01a2cca Mon Sep 17 00:00:00 2001 From: Anyon Date: Sun, 8 Apr 2018 17:06:00 +0800 Subject: [PATCH 124/153] =?UTF-8?q?[=E6=9B=B4=E6=96=B0]ComposerUpdate?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- thinkphp/convention.php | 2 + thinkphp/helper.php | 5 -- thinkphp/library/think/App.php | 19 +++--- thinkphp/library/think/Container.php | 2 +- thinkphp/library/think/Controller.php | 4 -- thinkphp/library/think/Loader.php | 4 +- thinkphp/library/think/Log.php | 3 + thinkphp/library/think/Middleware.php | 60 ++++++++++++------- thinkphp/library/think/Request.php | 22 +++++-- thinkphp/library/think/Route.php | 5 +- thinkphp/library/think/Url.php | 10 ++-- thinkphp/library/think/Validate.php | 2 +- thinkphp/library/think/cache/driver/File.php | 10 +++- thinkphp/library/think/cache/driver/Redis.php | 35 ----------- thinkphp/library/think/db/Builder.php | 31 +++------- thinkphp/library/think/db/builder/Mysql.php | 27 --------- thinkphp/library/think/log/driver/File.php | 7 ++- thinkphp/library/think/route/Dispatch.php | 4 ++ thinkphp/library/think/route/Domain.php | 15 +++-- thinkphp/library/think/route/Rule.php | 14 ++++- thinkphp/library/think/route/RuleGroup.php | 2 +- thinkphp/library/think/route/RuleItem.php | 14 +++++ thinkphp/library/think/route/RuleName.php | 2 +- .../library/think/route/dispatch/Module.php | 24 +++++--- thinkphp/library/think/route/dispatch/Url.php | 9 ++- thinkphp/library/think/view/driver/Php.php | 4 +- thinkphp/library/think/view/driver/Think.php | 4 +- vendor/autoload.php | 2 +- vendor/composer/autoload_classmap.php | 1 + vendor/composer/autoload_real.php | 14 ++--- vendor/composer/autoload_static.php | 9 +-- vendor/composer/installed.json | 16 ++--- 32 files changed, 197 insertions(+), 185 deletions(-) diff --git a/thinkphp/convention.php b/thinkphp/convention.php index 4cae2c34c..3e2d31ffb 100644 --- a/thinkphp/convention.php +++ b/thinkphp/convention.php @@ -138,6 +138,8 @@ return [ // +---------------------------------------------------------------------- 'template' => [ + // 默认模板渲染规则 1 解析为小写+下划线 2 全部转换小写 + 'auto_rule' => 1, // 模板引擎类型 支持 php think 支持扩展 'type' => 'Think', // 视图基础目录,配置目录为所有模块的视图起始目录 diff --git a/thinkphp/helper.php b/thinkphp/helper.php index 18ade67df..30670f9f1 100644 --- a/thinkphp/helper.php +++ b/thinkphp/helper.php @@ -29,7 +29,6 @@ use think\facade\Request; use think\facade\Route; use think\facade\Session; use think\facade\Url; -use think\Loader; use think\Response; use think\route\RuleItem; @@ -659,10 +658,6 @@ if (!function_exists('view')) { */ function view($template = '', $vars = [], $code = 200, $filter = null) { - if ('' === $template) { - $template = Loader::parseName(request()->action(true)); - } - return Response::create($template, 'view', $code)->assign($vars)->filter($filter); } } diff --git a/thinkphp/library/think/App.php b/thinkphp/library/think/App.php index fb59cfd8c..6da1888b5 100644 --- a/thinkphp/library/think/App.php +++ b/thinkphp/library/think/App.php @@ -20,7 +20,7 @@ use think\route\Dispatch; */ class App implements \ArrayAccess { - const VERSION = '5.1.7'; + const VERSION = '5.1.8'; /** * 当前模块路径 @@ -269,12 +269,13 @@ class App implements \ArrayAccess if ('' == $module) { // 加载系统助手函数 include $this->thinkPath . 'helper.php'; - // 加载全局中间件 - if (is_file($path . 'middleware.php')) { - $middleware = include $path . 'middleware.php'; - if (is_array($middleware)) { - $this->middleware->import($middleware); - } + } + + // 加载中间件 + if (is_file($path . 'middleware.php')) { + $middleware = include $path . 'middleware.php'; + if (is_array($middleware)) { + $this->middleware->import($middleware); } } @@ -492,6 +493,10 @@ class App implements \ArrayAccess } } + if (is_file($this->runtimePath . 'rule_regex.php')) { + $this->route->setRuleRegexs(include $this->runtimePath . 'rule_regex.php'); + } + // 是否强制路由模式 $must = !is_null($this->routeMust) ? $this->routeMust : $this->config('app.url_route_must'); diff --git a/thinkphp/library/think/Container.php b/thinkphp/library/think/Container.php index b138e6003..08c48a076 100644 --- a/thinkphp/library/think/Container.php +++ b/thinkphp/library/think/Container.php @@ -165,7 +165,7 @@ class Container * 创建类的实例 * @access public * @param string $abstract 类名或者标识 - * @param array|true $args 变量 + * @param array|true $vars 变量 * @param bool $newInstance 是否每次创建新的实例 * @return object */ diff --git a/thinkphp/library/think/Controller.php b/thinkphp/library/think/Controller.php index 28909c89f..ffa381866 100644 --- a/thinkphp/library/think/Controller.php +++ b/thinkphp/library/think/Controller.php @@ -118,10 +118,6 @@ class Controller */ protected function fetch($template = '', $vars = [], $config = []) { - if ('' === $template) { - $template = Loader::parseName($this->request->action(true)); - } - return $this->view->fetch($template, $vars, $config); } diff --git a/thinkphp/library/think/Loader.php b/thinkphp/library/think/Loader.php index d8065f23c..6354f9e47 100644 --- a/thinkphp/library/think/Loader.php +++ b/thinkphp/library/think/Loader.php @@ -58,7 +58,9 @@ class Loader // 注册系统自动加载 spl_autoload_register($autoload ?: 'think\\Loader::autoload', true, true); - $path = realpath(dirname($_SERVER['SCRIPT_FILENAME'])); + $scriptName = 'cli' == PHP_SAPI ? getcwd() . DIRECTORY_SEPARATOR . $_SERVER['argv'][0] : $_SERVER['SCRIPT_FILENAME']; + + $path = realpath(dirname($scriptName)); if ('cli-server' == PHP_SAPI || !is_file('./think')) { $rootPath = dirname($path) . DIRECTORY_SEPARATOR; diff --git a/thinkphp/library/think/Log.php b/thinkphp/library/think/Log.php index 0e8248dfd..b584ee78f 100644 --- a/thinkphp/library/think/Log.php +++ b/thinkphp/library/think/Log.php @@ -80,6 +80,9 @@ class Log implements LoggerInterface $this->config = $config; unset($config['type']); + if (!empty($config['close'])) { + $this->allowWrite = false; + } if (class_exists($class)) { $this->driver = new $class($config); diff --git a/thinkphp/library/think/Middleware.php b/thinkphp/library/think/Middleware.php index 296de275b..6c2d22116 100644 --- a/thinkphp/library/think/Middleware.php +++ b/thinkphp/library/think/Middleware.php @@ -11,6 +11,10 @@ namespace think; +use InvalidArgumentException; +use LogicException; +use think\exception\HttpResponseException; + class Middleware { protected $queue = []; @@ -33,7 +37,9 @@ class Middleware $middleware = $this->buildMiddleware($middleware); - $this->queue[] = $middleware; + if ($middleware) { + $this->queue[] = $middleware; + } } /** @@ -47,7 +53,9 @@ class Middleware $middleware = $this->buildMiddleware($middleware); - array_unshift($this->queue, $middleware); + if ($middleware) { + array_unshift($this->queue, $middleware); + } } /** @@ -73,25 +81,27 @@ class Middleware } if ($middleware instanceof \Closure) { - return [$middleware, null]; + return [$middleware, isset($param) ? $param : null]; } if (!is_string($middleware)) { - throw new \InvalidArgumentException('The middleware is invalid'); + throw new InvalidArgumentException('The middleware is invalid'); } if (false === strpos($middleware, '\\')) { - $value = Container::get('config')->get('middleware.' . $middleware); - $class = $value ?: Container::get('app')->getNamespace() . '\\http\\middleware\\' . $middleware; - } else { - $class = $middleware; + $value = Container::get('config')->get('middleware.' . $middleware); + $middleware = $value ?: Container::get('app')->getNamespace() . '\\http\\middleware\\' . $middleware; } - if (strpos($class, ':')) { - list($class, $param) = explode(':', $class, 2); + if (is_array($middleware)) { + return $this->import($middleware); } - return [[Container::get($class), 'handle'], isset($param) ? $param : null]; + if (strpos($middleware, ':')) { + list($middleware, $param) = explode(':', $middleware, 2); + } + + return [[Container::get($middleware), 'handle'], isset($param) ? $param : null]; } protected function resolve() @@ -99,19 +109,23 @@ class Middleware return function (Request $request) { $middleware = array_shift($this->queue); - if (null !== $middleware) { - list($call, $param) = $middleware; - - $response = call_user_func_array($call, [$request, $this->resolve(), $param]); - - if (!$response instanceof Response) { - throw new \LogicException('The middleware must return Response instance'); - } - - return $response; - } else { - throw new \InvalidArgumentException('The queue was exhausted, with no response returned'); + if (null === $middleware) { + throw new InvalidArgumentException('The queue was exhausted, with no response returned'); } + + list($call, $param) = $middleware; + + try { + $response = call_user_func_array($call, [$request, $this->resolve(), $param]); + } catch (HttpResponseException $exception) { + $response = $exception->getResponse(); + } + + if (!$response instanceof Response) { + throw new LogicException('The middleware must return Response instance'); + } + + return $response; }; } diff --git a/thinkphp/library/think/Request.php b/thinkphp/library/think/Request.php index 66b88ce9c..16db947bb 100644 --- a/thinkphp/library/think/Request.php +++ b/thinkphp/library/think/Request.php @@ -323,10 +323,12 @@ class Request $server['PATH_INFO'] = ''; $server['REQUEST_METHOD'] = strtoupper($method); $info = parse_url($uri); + if (isset($info['host'])) { $server['SERVER_NAME'] = $info['host']; $server['HTTP_HOST'] = $info['host']; } + if (isset($info['scheme'])) { if ('https' === $info['scheme']) { $server['HTTPS'] = 'on'; @@ -336,27 +338,34 @@ class Request $server['SERVER_PORT'] = 80; } } + if (isset($info['port'])) { $server['SERVER_PORT'] = $info['port']; $server['HTTP_HOST'] = $server['HTTP_HOST'] . ':' . $info['port']; } + if (isset($info['user'])) { $server['PHP_AUTH_USER'] = $info['user']; } + if (isset($info['pass'])) { $server['PHP_AUTH_PW'] = $info['pass']; } + if (!isset($info['path'])) { $info['path'] = '/'; } - $options = []; + + $options = []; + $queryString = ''; + $options[strtolower($method)] = $params; - $queryString = ''; + if (isset($info['query'])) { parse_str(html_entity_decode($info['query']), $query); if (!empty($params)) { $params = array_replace($query, $params); - $queryString = http_build_query($query, '', '&'); + $queryString = http_build_query($params, '', '&'); } else { $params = $query; $queryString = $info['query']; @@ -364,6 +373,7 @@ class Request } elseif (!empty($params)) { $queryString = http_build_query($params, '', '&'); } + if ($queryString) { parse_str($queryString, $get); $options['get'] = isset($options['get']) ? array_merge($get, $options['get']) : $get; @@ -1557,7 +1567,11 @@ class Request return $ip[$type]; } - if ($adv) { + $httpAgentIp = $this->config->get('http_agent_ip'); + + if ($httpAgentIp && isset($_SERVER[$httpAgentIp])) { + $ip = $_SERVER[$httpAgentIp]; + } elseif ($adv) { if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { $arr = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']); $pos = array_search('unknown', $arr); diff --git a/thinkphp/library/think/Route.php b/thinkphp/library/think/Route.php index 81f914b9f..645fb9e1d 100644 --- a/thinkphp/library/think/Route.php +++ b/thinkphp/library/think/Route.php @@ -313,6 +313,8 @@ class Route { if (is_null($domain)) { $domain = $this->domain; + } elseif (!strpos($domain, '.')) { + $domain .= '.' . $this->request->rootDomain(); } $subDomain = $this->request->subDomain(); @@ -596,8 +598,7 @@ class Route $group = new RuleGroup($this, $this->group, $rule, null, $option, $pattern); foreach ($this->methodPrefix as $type => $val) { - $item = $this->$type(':action', $val . ':action'); - $group->addRuleItem($item, $type); + $group->addRule('', $val . '', $type); } return $group->prefix($route . '/'); diff --git a/thinkphp/library/think/Url.php b/thinkphp/library/think/Url.php index a7281df46..1e4dfd7d2 100644 --- a/thinkphp/library/think/Url.php +++ b/thinkphp/library/think/Url.php @@ -124,7 +124,7 @@ class Url if ($alias) { // 别名路由解析 foreach ($alias as $key => $item) { - $val = $item->gerRoute(); + $val = $item->getRoute(); if (0 === strpos($url, $val)) { $url = $key . substr($url, strlen($val)); @@ -148,7 +148,7 @@ class Url // 检测URL绑定 if (!$this->bindCheck) { - $bind = $this->app['route']->getBind(); + $bind = $this->app['route']->getBind($domain ?: null); if ($bind && 0 === strpos($url, $bind)) { $url = substr($url, strlen($bind) + 1); @@ -252,11 +252,11 @@ class Url return ''; } + $rootDomain = $this->app['request']->rootDomain(); if (true === $domain) { // 自动判断域名 - $domain = $this->app['config']->get('app_host') ?: $this->app['request']->host(); - $rootDomain = $this->app['config']->get('url_domain_root'); + $domain = $this->app['config']->get('app_host') ?: $this->app['request']->host(); $domains = $this->app['route']->getDomains(); @@ -286,6 +286,8 @@ class Url } } } + } elseif (!strpos($domain, '.')) { + $domain .= '.' . $rootDomain; } if (false !== strpos($domain, '://')) { diff --git a/thinkphp/library/think/Validate.php b/thinkphp/library/think/Validate.php index 4abfc6b25..930f7d0fa 100644 --- a/thinkphp/library/think/Validate.php +++ b/thinkphp/library/think/Validate.php @@ -749,7 +749,7 @@ class Validate $result = in_array($value, [true, false, 0, 1, '0', '1'], true); break; case 'number': - $result = is_numeric($value); + $result = ctype_digit($value); break; case 'array': // 是否为数组 diff --git a/thinkphp/library/think/cache/driver/File.php b/thinkphp/library/think/cache/driver/File.php index 3ff1a0128..5f10200bf 100644 --- a/thinkphp/library/think/cache/driver/File.php +++ b/thinkphp/library/think/cache/driver/File.php @@ -59,10 +59,11 @@ class File extends Driver private function init() { // 创建项目缓存目录 - if (!is_dir($this->options['path'])) { - if (mkdir($this->options['path'], 0755, true)) { + try { + if (!is_dir($this->options['path']) && mkdir($this->options['path'], 0755, true)) { return true; } + } catch (\Exception $e) { } return false; @@ -92,7 +93,10 @@ class File extends Driver $dir = dirname($filename); if ($auto && !is_dir($dir)) { - mkdir($dir, 0755, true); + try { + mkdir($dir, 0755, true); + } catch (\Exception $e) { + } } return $filename; diff --git a/thinkphp/library/think/cache/driver/Redis.php b/thinkphp/library/think/cache/driver/Redis.php index 2f019608c..77958c334 100644 --- a/thinkphp/library/think/cache/driver/Redis.php +++ b/thinkphp/library/think/cache/driver/Redis.php @@ -203,39 +203,4 @@ class Redis extends Driver return $this->handler->flushDB(); } - /** - * 如果不存在则写入缓存 - * @access public - * @param string $name 缓存变量名 - * @param mixed $value 存储数据 - * @param int $expire 有效时间 0为永久 - * @return mixed - */ - public function remember($name, $value, $expire = null) - { - if (is_null($expire)) { - $expire = $this->options['expire']; - } - - // 没有过期参数时,使用setnx - if (!$expire) { - $key = $this->getCacheKey($name); - $val = $this->serialize($value); - $res = $this->handler->setnx($key, $val); - if ($res) { - $this->writeTimes++; - return $value; - } else { - return $this->get($name); - } - } - - if ($this->has($name)) { - return $this->get($name); - } else { - $this->set($name, $value, $expire); - } - - return $value; - } } diff --git a/thinkphp/library/think/db/Builder.php b/thinkphp/library/think/db/Builder.php index d6a5df4e7..78ea0f4a9 100644 --- a/thinkphp/library/think/db/Builder.php +++ b/thinkphp/library/think/db/Builder.php @@ -143,11 +143,6 @@ abstract class Builder case 'DEC': $result[$item] = $item . ' - ' . floatval($val[1]); break; - default: - $value = $this->parseArrayData($query, $val); - if ($value) { - $result[$item] = $value; - } } } elseif (is_scalar($val)) { // 过滤非标量数据 @@ -158,18 +153,6 @@ abstract class Builder return $result; } - /** - * 数组数据解析 - * @access protected - * @param Query $query 查询对象 - * @param array $data - * @return mixed - */ - protected function parseArrayData(Query $query, $data) - { - return false; - } - /** * 数据绑定处理 * @access protected @@ -492,13 +475,13 @@ abstract class Builder /** * 表达式查询 * @access protected - * @param Query $query 查询对象 - * @param string $key - * @param string $exp - * @param mixed $value - * @param string $field - * @param string $bindName - * @param integer $bindType + * @param Query $query 查询对象 + * @param string $key + * @param string $exp + * @param Expression $value + * @param string $field + * @param string $bindName + * @param integer $bindType * @return string */ protected function parseExp(Query $query, $key, $exp, Expression $value, $field, $bindName, $bindType) diff --git a/thinkphp/library/think/db/builder/Mysql.php b/thinkphp/library/think/db/builder/Mysql.php index f5cd5f400..a73fa293d 100644 --- a/thinkphp/library/think/db/builder/Mysql.php +++ b/thinkphp/library/think/db/builder/Mysql.php @@ -173,33 +173,6 @@ class Mysql extends Builder return $fieldsStr; } - /** - * 数组数据解析 - * @access protected - * @param Query $query 查询对象 - * @param array $data - * @return mixed - */ - protected function parseArrayData(Query $query, $data) - { - list($type, $value) = $data; - - switch (strtolower($type)) { - case 'point': - $fun = isset($data[2]) ? $data[2] : 'GeomFromText'; - $point = isset($data[3]) ? $data[3] : 'POINT'; - if (is_array($value)) { - $value = implode(' ', $value); - } - $result = $fun . '(\'' . $point . '(' . $value . ')\')'; - break; - default: - $result = false; - } - - return $result; - } - /** * 随机排序 * @access protected diff --git a/thinkphp/library/think/log/driver/File.php b/thinkphp/library/think/log/driver/File.php index f71509222..1db14925b 100644 --- a/thinkphp/library/think/log/driver/File.php +++ b/thinkphp/library/think/log/driver/File.php @@ -61,8 +61,11 @@ class File $filename = date('Ymd') . $cli . '.log'; $files = glob($this->config['path'] . '*.log'); - if (count($files) > $this->config['max_files']) { - unlink($files[0]); + try { + if (count($files) > $this->config['max_files']) { + unlink($files[0]); + } + } catch (\Exception $e) { } } else { $filename = date('Ym') . DIRECTORY_SEPARATOR . date('d') . $cli . '.log'; diff --git a/thinkphp/library/think/route/Dispatch.php b/thinkphp/library/think/route/Dispatch.php index ca6b5d63d..ec7e15497 100644 --- a/thinkphp/library/think/route/Dispatch.php +++ b/thinkphp/library/think/route/Dispatch.php @@ -32,8 +32,12 @@ abstract class Dispatch $this->dispatch = $dispatch; $this->param = $param; $this->code = $code; + $this->init(); } + protected function init() + {} + public function convert($convert) { $this->convert = $convert; diff --git a/thinkphp/library/think/route/Domain.php b/thinkphp/library/think/route/Domain.php index 08581908e..9043017c4 100644 --- a/thinkphp/library/think/route/Domain.php +++ b/thinkphp/library/think/route/Domain.php @@ -20,6 +20,8 @@ use think\route\dispatch\Module as ModuleDispatch; class Domain extends RuleGroup { + protected $bind; + /** * 架构函数 * @access public @@ -68,6 +70,12 @@ class Domain extends RuleGroup return $result; } + // 添加域名中间件 + if (!empty($this->option['middleware'])) { + Container::get('middleware')->import($this->option['middleware']); + unset($this->option['middleware']); + } + return parent::check($request, $url, $depr, $completeMatch); } @@ -79,6 +87,7 @@ class Domain extends RuleGroup */ public function bind($bind) { + $this->bind = $bind; $this->router->bind($bind, $this->domain); return $this; @@ -110,10 +119,8 @@ class Domain extends RuleGroup */ private function checkUrlBind($url, $depr = '/') { - $bind = $this->router->getBind($this->domain); - - if (!empty($bind)) { - + if (!empty($this->bind)) { + $bind = $this->bind; $this->parseBindAppendParam($bind); // 记录绑定信息 diff --git a/thinkphp/library/think/route/Rule.php b/thinkphp/library/think/route/Rule.php index 92f1ce9de..8d53c4377 100644 --- a/thinkphp/library/think/route/Rule.php +++ b/thinkphp/library/think/route/Rule.php @@ -97,6 +97,16 @@ abstract class Rule return $this->name; } + /** + * 获取Parent对象 + * @access public + * @return $this|null + */ + public function getParent() + { + return $this->parent; + } + /** * 获取变量规则定义 * @access public @@ -635,9 +645,7 @@ abstract class Rule { // 添加中间件 if (!empty($option['middleware'])) { - foreach ($option['middleware'] as $middleware) { - Container::get('middleware')->add($middleware); - } + Container::get('middleware')->import($option['middleware']); } // 绑定模型数据 diff --git a/thinkphp/library/think/route/RuleGroup.php b/thinkphp/library/think/route/RuleGroup.php index 4f2f7d147..bf8c65897 100644 --- a/thinkphp/library/think/route/RuleGroup.php +++ b/thinkphp/library/think/route/RuleGroup.php @@ -232,7 +232,7 @@ class RuleGroup extends Rule */ public function lazy($lazy = true) { - if (!$lazy && !is_object($this->rule)) { + if (!$lazy) { $this->parseGroupRule($this->rule); $this->rule = null; } diff --git a/thinkphp/library/think/route/RuleItem.php b/thinkphp/library/think/route/RuleItem.php index b7873b0cf..27e5e7548 100644 --- a/thinkphp/library/think/route/RuleItem.php +++ b/thinkphp/library/think/route/RuleItem.php @@ -139,6 +139,20 @@ class RuleItem extends Rule return $this; } + /** + * 设置别名 + * @access public + * @param string $name + * @return $this + */ + public function name($name) + { + $this->name = $name; + $this->setRuleName(true); + + return $this; + } + /** * 设置路由标识 用于URL反解生成 * @access protected diff --git a/thinkphp/library/think/route/RuleName.php b/thinkphp/library/think/route/RuleName.php index 460ccab39..408a7c93e 100644 --- a/thinkphp/library/think/route/RuleName.php +++ b/thinkphp/library/think/route/RuleName.php @@ -25,7 +25,7 @@ class RuleName */ public function set($name, $value, $first = false) { - if ($first) { + if ($first && isset($this->item[$name])) { array_unshift($this->item[$name], $value); } else { $this->item[$name][] = $value; diff --git a/thinkphp/library/think/route/dispatch/Module.php b/thinkphp/library/think/route/dispatch/Module.php index ed8e21ec0..26c92e94d 100644 --- a/thinkphp/library/think/route/dispatch/Module.php +++ b/thinkphp/library/think/route/dispatch/Module.php @@ -20,7 +20,10 @@ use think\route\Dispatch; class Module extends Dispatch { - public function run() + protected $controller; + protected $actionName; + + protected function init() { $result = $this->dispatch; @@ -78,21 +81,25 @@ class Module extends Dispatch // 是否自动转换控制器和操作名 $convert = is_bool($this->convert) ? $this->convert : $this->app->config('app.url_convert'); // 获取控制器名 - $controller = strip_tags($result[1] ?: $this->app->config('app.default_controller')); - $controller = $convert ? strtolower($controller) : $controller; + $controller = strip_tags($result[1] ?: $this->app->config('app.default_controller')); + $this->controller = $convert ? strtolower($controller) : $controller; // 获取操作名 - $actionName = strip_tags($result[2] ?: $this->app->config('app.default_action')); + $this->actionName = strip_tags($result[2] ?: $this->app->config('app.default_action')); // 设置当前请求的控制器、操作 - $this->app['request']->controller(Loader::parseName($controller, 1))->action($actionName); + $this->app['request']->controller(Loader::parseName($this->controller, 1))->action($this->actionName); // 监听module_init $this->app['hook']->listen('module_init'); + } + + public function run() + { // 实例化控制器 try { - $instance = $this->app->controller($controller, + $instance = $this->app->controller($this->controller, $this->app->config('app.url_controller_layer'), $this->app->config('app.controller_suffix'), $this->app->config('app.empty_controller')); @@ -101,7 +108,7 @@ class Module extends Dispatch } // 获取当前操作名 - $action = $actionName . $this->app->config('app.action_suffix'); + $action = $this->actionName . $this->app->config('app.action_suffix'); if (is_callable([$instance, $action])) { // 执行操作方法 @@ -121,7 +128,7 @@ class Module extends Dispatch } elseif (is_callable([$instance, '_empty'])) { // 空操作 $call = [$instance, '_empty']; - $vars = [$actionName]; + $vars = [$this->actionName]; $reflect = new ReflectionMethod($instance, '_empty'); } else { // 操作不存在 @@ -129,7 +136,6 @@ class Module extends Dispatch } $this->app['hook']->listen('action_begin', $call); - return Container::getInstance()->invokeReflectMethod($instance, $reflect, $vars); } } diff --git a/thinkphp/library/think/route/dispatch/Url.php b/thinkphp/library/think/route/dispatch/Url.php index 1d5b9d01a..f26197aae 100644 --- a/thinkphp/library/think/route/dispatch/Url.php +++ b/thinkphp/library/think/route/dispatch/Url.php @@ -17,13 +17,18 @@ use think\route\Dispatch; class Url extends Dispatch { - public function run() + protected function init() { // 解析默认的URL规则 $url = str_replace($this->param['depr'], '|', $this->dispatch); $result = $this->parseUrl($url); - return (new Module($result))->run(); + $this->dispatch = new Module($result); + } + + public function run() + { + return $this->dispatch->run(); } /** diff --git a/thinkphp/library/think/view/driver/Php.php b/thinkphp/library/think/view/driver/Php.php index e2091aada..6e5db3bd7 100644 --- a/thinkphp/library/think/view/driver/Php.php +++ b/thinkphp/library/think/view/driver/Php.php @@ -19,6 +19,8 @@ class Php { // 模板引擎参数 protected $config = [ + // 默认模板渲染规则 1 解析为小写+下划线 2 全部转换小写 + 'auto_rule' => 1, // 视图基础目录(集中式) 'view_base' => '', // 模板起始路径 @@ -139,7 +141,7 @@ class Php if ($controller) { if ('' == $template) { // 如果模板文件名为空 按照默认规则定位 - $template = str_replace('.', DIRECTORY_SEPARATOR, $controller) . $depr . $request->action(); + $template = str_replace('.', DIRECTORY_SEPARATOR, $controller) . $depr . (1 == $this->config['auto_rule'] ? Loader::parseName($request->action(true)) : $request->action()); } elseif (false === strpos($template, $depr)) { $template = str_replace('.', DIRECTORY_SEPARATOR, $controller) . $depr . $template; } diff --git a/thinkphp/library/think/view/driver/Think.php b/thinkphp/library/think/view/driver/Think.php index 83daa1c57..137acf859 100644 --- a/thinkphp/library/think/view/driver/Think.php +++ b/thinkphp/library/think/view/driver/Think.php @@ -22,6 +22,8 @@ class Think private $template; // 模板引擎参数 protected $config = [ + // 默认模板渲染规则 1 解析为小写+下划线 2 全部转换小写 + 'auto_rule' => 1, // 视图基础目录(集中式) 'view_base' => '', // 模板起始路径 @@ -133,7 +135,7 @@ class Think if ($controller) { if ('' == $template) { // 如果模板文件名为空 按照默认规则定位 - $template = str_replace('.', DIRECTORY_SEPARATOR, $controller) . $depr . $request->action(); + $template = str_replace('.', DIRECTORY_SEPARATOR, $controller) . $depr . (1 == $this->config['auto_rule'] ? Loader::parseName($request->action(true)) : $request->action()); } elseif (false === strpos($template, $depr)) { $template = str_replace('.', DIRECTORY_SEPARATOR, $controller) . $depr . $template; } diff --git a/vendor/autoload.php b/vendor/autoload.php index b72f4a932..36f820f85 100644 --- a/vendor/autoload.php +++ b/vendor/autoload.php @@ -4,4 +4,4 @@ require_once __DIR__ . '/composer/autoload_real.php'; -return ComposerAutoloaderInit95af81df6ac420fb6c658e7c9ee159af::getLoader(); +return ComposerAutoloaderInit79258ae6ab31236f56857875fcbedea2::getLoader(); diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php index c18d97a36..a750b2486 100644 --- a/vendor/composer/autoload_classmap.php +++ b/vendor/composer/autoload_classmap.php @@ -163,6 +163,7 @@ return array( 'app\\wechat\\controller\\News' => $baseDir . '/application/wechat/controller/News.php', 'app\\wechat\\controller\\Review' => $baseDir . '/application/wechat/controller/Review.php', 'app\\wechat\\controller\\Tags' => $baseDir . '/application/wechat/controller/Tags.php', + 'app\\wechat\\controller\\api\\Js' => $baseDir . '/application/wechat/controller/api/Js.php', 'app\\wechat\\controller\\api\\Push' => $baseDir . '/application/wechat/controller/api/Push.php', 'app\\wechat\\controller\\api\\Tools' => $baseDir . '/application/wechat/controller/api/Tools.php', 'app\\wechat\\service\\FansService' => $baseDir . '/application/wechat/service/FansService.php', diff --git a/vendor/composer/autoload_real.php b/vendor/composer/autoload_real.php index 8d2b66e79..3dfc01a8e 100644 --- a/vendor/composer/autoload_real.php +++ b/vendor/composer/autoload_real.php @@ -2,7 +2,7 @@ // autoload_real.php @generated by Composer -class ComposerAutoloaderInit95af81df6ac420fb6c658e7c9ee159af +class ComposerAutoloaderInit79258ae6ab31236f56857875fcbedea2 { private static $loader; @@ -19,15 +19,15 @@ class ComposerAutoloaderInit95af81df6ac420fb6c658e7c9ee159af return self::$loader; } - spl_autoload_register(array('ComposerAutoloaderInit95af81df6ac420fb6c658e7c9ee159af', 'loadClassLoader'), true, true); + spl_autoload_register(array('ComposerAutoloaderInit79258ae6ab31236f56857875fcbedea2', 'loadClassLoader'), true, true); self::$loader = $loader = new \Composer\Autoload\ClassLoader(); - spl_autoload_unregister(array('ComposerAutoloaderInit95af81df6ac420fb6c658e7c9ee159af', 'loadClassLoader')); + spl_autoload_unregister(array('ComposerAutoloaderInit79258ae6ab31236f56857875fcbedea2', 'loadClassLoader')); $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); if ($useStaticLoader) { require_once __DIR__ . '/autoload_static.php'; - call_user_func(\Composer\Autoload\ComposerStaticInit95af81df6ac420fb6c658e7c9ee159af::getInitializer($loader)); + call_user_func(\Composer\Autoload\ComposerStaticInit79258ae6ab31236f56857875fcbedea2::getInitializer($loader)); } else { $map = require __DIR__ . '/autoload_namespaces.php'; foreach ($map as $namespace => $path) { @@ -48,19 +48,19 @@ class ComposerAutoloaderInit95af81df6ac420fb6c658e7c9ee159af $loader->register(true); if ($useStaticLoader) { - $includeFiles = Composer\Autoload\ComposerStaticInit95af81df6ac420fb6c658e7c9ee159af::$files; + $includeFiles = Composer\Autoload\ComposerStaticInit79258ae6ab31236f56857875fcbedea2::$files; } else { $includeFiles = require __DIR__ . '/autoload_files.php'; } foreach ($includeFiles as $fileIdentifier => $file) { - composerRequire95af81df6ac420fb6c658e7c9ee159af($fileIdentifier, $file); + composerRequire79258ae6ab31236f56857875fcbedea2($fileIdentifier, $file); } return $loader; } } -function composerRequire95af81df6ac420fb6c658e7c9ee159af($fileIdentifier, $file) +function composerRequire79258ae6ab31236f56857875fcbedea2($fileIdentifier, $file) { if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { require $file; diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index d77aefaf3..0ab186a6e 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -4,7 +4,7 @@ namespace Composer\Autoload; -class ComposerStaticInit95af81df6ac420fb6c658e7c9ee159af +class ComposerStaticInit79258ae6ab31236f56857875fcbedea2 { public static $files = array ( '1cfd2761b63b0a29ed23657ea394cb2d' => __DIR__ . '/..' . '/topthink/think-captcha/src/helper.php', @@ -241,6 +241,7 @@ class ComposerStaticInit95af81df6ac420fb6c658e7c9ee159af 'app\\wechat\\controller\\News' => __DIR__ . '/../..' . '/application/wechat/controller/News.php', 'app\\wechat\\controller\\Review' => __DIR__ . '/../..' . '/application/wechat/controller/Review.php', 'app\\wechat\\controller\\Tags' => __DIR__ . '/../..' . '/application/wechat/controller/Tags.php', + 'app\\wechat\\controller\\api\\Js' => __DIR__ . '/../..' . '/application/wechat/controller/api/Js.php', 'app\\wechat\\controller\\api\\Push' => __DIR__ . '/../..' . '/application/wechat/controller/api/Push.php', 'app\\wechat\\controller\\api\\Tools' => __DIR__ . '/../..' . '/application/wechat/controller/api/Tools.php', 'app\\wechat\\service\\FansService' => __DIR__ . '/../..' . '/application/wechat/service/FansService.php', @@ -257,9 +258,9 @@ class ComposerStaticInit95af81df6ac420fb6c658e7c9ee159af public static function getInitializer(ClassLoader $loader) { return \Closure::bind(function () use ($loader) { - $loader->prefixLengthsPsr4 = ComposerStaticInit95af81df6ac420fb6c658e7c9ee159af::$prefixLengthsPsr4; - $loader->prefixDirsPsr4 = ComposerStaticInit95af81df6ac420fb6c658e7c9ee159af::$prefixDirsPsr4; - $loader->classMap = ComposerStaticInit95af81df6ac420fb6c658e7c9ee159af::$classMap; + $loader->prefixLengthsPsr4 = ComposerStaticInit79258ae6ab31236f56857875fcbedea2::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInit79258ae6ab31236f56857875fcbedea2::$prefixDirsPsr4; + $loader->classMap = ComposerStaticInit79258ae6ab31236f56857875fcbedea2::$classMap; }, null, ClassLoader::class); } diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index 277d7f926..e47427012 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -175,17 +175,17 @@ }, { "name": "topthink/framework", - "version": "v5.1.7", - "version_normalized": "5.1.7.0", + "version": "v5.1.8", + "version_normalized": "5.1.8.0", "source": { "type": "git", "url": "https://github.com/top-think/framework.git", - "reference": "81a93819dbbd66774405daf9c27a9219232dba9a" + "reference": "8f6c84abd9e2f9db5a071168c0153724b54b083c" }, "dist": { "type": "zip", - "url": "https://files.phpcomposer.com/files/top-think/framework/81a93819dbbd66774405daf9c27a9219232dba9a.zip", - "reference": "81a93819dbbd66774405daf9c27a9219232dba9a", + "url": "https://files.phpcomposer.com/files/top-think/framework/8f6c84abd9e2f9db5a071168c0153724b54b083c.zip", + "reference": "8f6c84abd9e2f9db5a071168c0153724b54b083c", "shasum": "" }, "require": { @@ -201,7 +201,7 @@ "sebastian/phpcpd": "2.*", "squizlabs/php_codesniffer": "2.*" }, - "time": "2018-03-29T04:16:43+00:00", + "time": "2018-04-06T05:28:49+00:00", "type": "think-framework", "installation-source": "dist", "notification-url": "https://packagist.org/downloads/", @@ -269,8 +269,8 @@ }, { "name": "symfony/options-resolver", - "version": "v3.4.6", - "version_normalized": "3.4.6.0", + "version": "v3.4.8", + "version_normalized": "3.4.8.0", "source": { "type": "git", "url": "https://github.com/symfony/options-resolver.git", From e5ce93580a0238f25b969dca32b7e3226493a0c4 Mon Sep 17 00:00:00 2001 From: Anyon Date: Sun, 8 Apr 2018 17:25:30 +0800 Subject: [PATCH 125/153] =?UTF-8?q?[=E6=9B=B4=E6=96=B0]ComposerUpdate?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vendor/autoload.php | 2 +- vendor/composer/autoload_real.php | 14 +++++++------- vendor/composer/autoload_static.php | 8 ++++---- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/vendor/autoload.php b/vendor/autoload.php index 36f820f85..76228d04e 100644 --- a/vendor/autoload.php +++ b/vendor/autoload.php @@ -4,4 +4,4 @@ require_once __DIR__ . '/composer/autoload_real.php'; -return ComposerAutoloaderInit79258ae6ab31236f56857875fcbedea2::getLoader(); +return ComposerAutoloaderInite4fb47040b4d13be57998c7f2032295b::getLoader(); diff --git a/vendor/composer/autoload_real.php b/vendor/composer/autoload_real.php index 3dfc01a8e..123f9502e 100644 --- a/vendor/composer/autoload_real.php +++ b/vendor/composer/autoload_real.php @@ -2,7 +2,7 @@ // autoload_real.php @generated by Composer -class ComposerAutoloaderInit79258ae6ab31236f56857875fcbedea2 +class ComposerAutoloaderInite4fb47040b4d13be57998c7f2032295b { private static $loader; @@ -19,15 +19,15 @@ class ComposerAutoloaderInit79258ae6ab31236f56857875fcbedea2 return self::$loader; } - spl_autoload_register(array('ComposerAutoloaderInit79258ae6ab31236f56857875fcbedea2', 'loadClassLoader'), true, true); + spl_autoload_register(array('ComposerAutoloaderInite4fb47040b4d13be57998c7f2032295b', 'loadClassLoader'), true, true); self::$loader = $loader = new \Composer\Autoload\ClassLoader(); - spl_autoload_unregister(array('ComposerAutoloaderInit79258ae6ab31236f56857875fcbedea2', 'loadClassLoader')); + spl_autoload_unregister(array('ComposerAutoloaderInite4fb47040b4d13be57998c7f2032295b', 'loadClassLoader')); $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); if ($useStaticLoader) { require_once __DIR__ . '/autoload_static.php'; - call_user_func(\Composer\Autoload\ComposerStaticInit79258ae6ab31236f56857875fcbedea2::getInitializer($loader)); + call_user_func(\Composer\Autoload\ComposerStaticInite4fb47040b4d13be57998c7f2032295b::getInitializer($loader)); } else { $map = require __DIR__ . '/autoload_namespaces.php'; foreach ($map as $namespace => $path) { @@ -48,19 +48,19 @@ class ComposerAutoloaderInit79258ae6ab31236f56857875fcbedea2 $loader->register(true); if ($useStaticLoader) { - $includeFiles = Composer\Autoload\ComposerStaticInit79258ae6ab31236f56857875fcbedea2::$files; + $includeFiles = Composer\Autoload\ComposerStaticInite4fb47040b4d13be57998c7f2032295b::$files; } else { $includeFiles = require __DIR__ . '/autoload_files.php'; } foreach ($includeFiles as $fileIdentifier => $file) { - composerRequire79258ae6ab31236f56857875fcbedea2($fileIdentifier, $file); + composerRequiree4fb47040b4d13be57998c7f2032295b($fileIdentifier, $file); } return $loader; } } -function composerRequire79258ae6ab31236f56857875fcbedea2($fileIdentifier, $file) +function composerRequiree4fb47040b4d13be57998c7f2032295b($fileIdentifier, $file) { if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { require $file; diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index 0ab186a6e..def704c82 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -4,7 +4,7 @@ namespace Composer\Autoload; -class ComposerStaticInit79258ae6ab31236f56857875fcbedea2 +class ComposerStaticInite4fb47040b4d13be57998c7f2032295b { public static $files = array ( '1cfd2761b63b0a29ed23657ea394cb2d' => __DIR__ . '/..' . '/topthink/think-captcha/src/helper.php', @@ -258,9 +258,9 @@ class ComposerStaticInit79258ae6ab31236f56857875fcbedea2 public static function getInitializer(ClassLoader $loader) { return \Closure::bind(function () use ($loader) { - $loader->prefixLengthsPsr4 = ComposerStaticInit79258ae6ab31236f56857875fcbedea2::$prefixLengthsPsr4; - $loader->prefixDirsPsr4 = ComposerStaticInit79258ae6ab31236f56857875fcbedea2::$prefixDirsPsr4; - $loader->classMap = ComposerStaticInit79258ae6ab31236f56857875fcbedea2::$classMap; + $loader->prefixLengthsPsr4 = ComposerStaticInite4fb47040b4d13be57998c7f2032295b::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInite4fb47040b4d13be57998c7f2032295b::$prefixDirsPsr4; + $loader->classMap = ComposerStaticInite4fb47040b4d13be57998c7f2032295b::$classMap; }, null, ClassLoader::class); } From f17e5c00a36882cdf08c5bff94f2908607c7d7f0 Mon Sep 17 00:00:00 2001 From: Anyon Date: Sun, 8 Apr 2018 17:46:59 +0800 Subject: [PATCH 126/153] =?UTF-8?q?[=E6=9B=B4=E6=96=B0]ComposerUpdate?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- thinkphp/convention.php | 2 + thinkphp/helper.php | 5 -- thinkphp/library/think/App.php | 19 +++--- thinkphp/library/think/Container.php | 2 +- thinkphp/library/think/Controller.php | 4 -- thinkphp/library/think/Loader.php | 4 +- thinkphp/library/think/Log.php | 3 + thinkphp/library/think/Middleware.php | 60 ++++++++++++------- thinkphp/library/think/Request.php | 22 +++++-- thinkphp/library/think/Route.php | 5 +- thinkphp/library/think/Url.php | 10 ++-- thinkphp/library/think/Validate.php | 2 +- thinkphp/library/think/cache/driver/File.php | 10 +++- thinkphp/library/think/cache/driver/Redis.php | 35 ----------- thinkphp/library/think/db/Builder.php | 31 +++------- thinkphp/library/think/db/builder/Mysql.php | 27 --------- thinkphp/library/think/log/driver/File.php | 7 ++- thinkphp/library/think/route/Dispatch.php | 4 ++ thinkphp/library/think/route/Domain.php | 15 +++-- thinkphp/library/think/route/Rule.php | 14 ++++- thinkphp/library/think/route/RuleGroup.php | 2 +- thinkphp/library/think/route/RuleItem.php | 14 +++++ thinkphp/library/think/route/RuleName.php | 2 +- .../library/think/route/dispatch/Module.php | 24 +++++--- thinkphp/library/think/route/dispatch/Url.php | 9 ++- thinkphp/library/think/view/driver/Php.php | 4 +- thinkphp/library/think/view/driver/Think.php | 4 +- vendor/autoload.php | 2 +- vendor/composer/autoload_classmap.php | 1 + vendor/composer/autoload_real.php | 14 ++--- vendor/composer/autoload_static.php | 9 +-- vendor/composer/installed.json | 16 ++--- 32 files changed, 197 insertions(+), 185 deletions(-) diff --git a/thinkphp/convention.php b/thinkphp/convention.php index 4cae2c34c..3e2d31ffb 100644 --- a/thinkphp/convention.php +++ b/thinkphp/convention.php @@ -138,6 +138,8 @@ return [ // +---------------------------------------------------------------------- 'template' => [ + // 默认模板渲染规则 1 解析为小写+下划线 2 全部转换小写 + 'auto_rule' => 1, // 模板引擎类型 支持 php think 支持扩展 'type' => 'Think', // 视图基础目录,配置目录为所有模块的视图起始目录 diff --git a/thinkphp/helper.php b/thinkphp/helper.php index 18ade67df..30670f9f1 100644 --- a/thinkphp/helper.php +++ b/thinkphp/helper.php @@ -29,7 +29,6 @@ use think\facade\Request; use think\facade\Route; use think\facade\Session; use think\facade\Url; -use think\Loader; use think\Response; use think\route\RuleItem; @@ -659,10 +658,6 @@ if (!function_exists('view')) { */ function view($template = '', $vars = [], $code = 200, $filter = null) { - if ('' === $template) { - $template = Loader::parseName(request()->action(true)); - } - return Response::create($template, 'view', $code)->assign($vars)->filter($filter); } } diff --git a/thinkphp/library/think/App.php b/thinkphp/library/think/App.php index fb59cfd8c..6da1888b5 100644 --- a/thinkphp/library/think/App.php +++ b/thinkphp/library/think/App.php @@ -20,7 +20,7 @@ use think\route\Dispatch; */ class App implements \ArrayAccess { - const VERSION = '5.1.7'; + const VERSION = '5.1.8'; /** * 当前模块路径 @@ -269,12 +269,13 @@ class App implements \ArrayAccess if ('' == $module) { // 加载系统助手函数 include $this->thinkPath . 'helper.php'; - // 加载全局中间件 - if (is_file($path . 'middleware.php')) { - $middleware = include $path . 'middleware.php'; - if (is_array($middleware)) { - $this->middleware->import($middleware); - } + } + + // 加载中间件 + if (is_file($path . 'middleware.php')) { + $middleware = include $path . 'middleware.php'; + if (is_array($middleware)) { + $this->middleware->import($middleware); } } @@ -492,6 +493,10 @@ class App implements \ArrayAccess } } + if (is_file($this->runtimePath . 'rule_regex.php')) { + $this->route->setRuleRegexs(include $this->runtimePath . 'rule_regex.php'); + } + // 是否强制路由模式 $must = !is_null($this->routeMust) ? $this->routeMust : $this->config('app.url_route_must'); diff --git a/thinkphp/library/think/Container.php b/thinkphp/library/think/Container.php index b138e6003..08c48a076 100644 --- a/thinkphp/library/think/Container.php +++ b/thinkphp/library/think/Container.php @@ -165,7 +165,7 @@ class Container * 创建类的实例 * @access public * @param string $abstract 类名或者标识 - * @param array|true $args 变量 + * @param array|true $vars 变量 * @param bool $newInstance 是否每次创建新的实例 * @return object */ diff --git a/thinkphp/library/think/Controller.php b/thinkphp/library/think/Controller.php index 28909c89f..ffa381866 100644 --- a/thinkphp/library/think/Controller.php +++ b/thinkphp/library/think/Controller.php @@ -118,10 +118,6 @@ class Controller */ protected function fetch($template = '', $vars = [], $config = []) { - if ('' === $template) { - $template = Loader::parseName($this->request->action(true)); - } - return $this->view->fetch($template, $vars, $config); } diff --git a/thinkphp/library/think/Loader.php b/thinkphp/library/think/Loader.php index d8065f23c..6354f9e47 100644 --- a/thinkphp/library/think/Loader.php +++ b/thinkphp/library/think/Loader.php @@ -58,7 +58,9 @@ class Loader // 注册系统自动加载 spl_autoload_register($autoload ?: 'think\\Loader::autoload', true, true); - $path = realpath(dirname($_SERVER['SCRIPT_FILENAME'])); + $scriptName = 'cli' == PHP_SAPI ? getcwd() . DIRECTORY_SEPARATOR . $_SERVER['argv'][0] : $_SERVER['SCRIPT_FILENAME']; + + $path = realpath(dirname($scriptName)); if ('cli-server' == PHP_SAPI || !is_file('./think')) { $rootPath = dirname($path) . DIRECTORY_SEPARATOR; diff --git a/thinkphp/library/think/Log.php b/thinkphp/library/think/Log.php index 0e8248dfd..b584ee78f 100644 --- a/thinkphp/library/think/Log.php +++ b/thinkphp/library/think/Log.php @@ -80,6 +80,9 @@ class Log implements LoggerInterface $this->config = $config; unset($config['type']); + if (!empty($config['close'])) { + $this->allowWrite = false; + } if (class_exists($class)) { $this->driver = new $class($config); diff --git a/thinkphp/library/think/Middleware.php b/thinkphp/library/think/Middleware.php index 296de275b..6c2d22116 100644 --- a/thinkphp/library/think/Middleware.php +++ b/thinkphp/library/think/Middleware.php @@ -11,6 +11,10 @@ namespace think; +use InvalidArgumentException; +use LogicException; +use think\exception\HttpResponseException; + class Middleware { protected $queue = []; @@ -33,7 +37,9 @@ class Middleware $middleware = $this->buildMiddleware($middleware); - $this->queue[] = $middleware; + if ($middleware) { + $this->queue[] = $middleware; + } } /** @@ -47,7 +53,9 @@ class Middleware $middleware = $this->buildMiddleware($middleware); - array_unshift($this->queue, $middleware); + if ($middleware) { + array_unshift($this->queue, $middleware); + } } /** @@ -73,25 +81,27 @@ class Middleware } if ($middleware instanceof \Closure) { - return [$middleware, null]; + return [$middleware, isset($param) ? $param : null]; } if (!is_string($middleware)) { - throw new \InvalidArgumentException('The middleware is invalid'); + throw new InvalidArgumentException('The middleware is invalid'); } if (false === strpos($middleware, '\\')) { - $value = Container::get('config')->get('middleware.' . $middleware); - $class = $value ?: Container::get('app')->getNamespace() . '\\http\\middleware\\' . $middleware; - } else { - $class = $middleware; + $value = Container::get('config')->get('middleware.' . $middleware); + $middleware = $value ?: Container::get('app')->getNamespace() . '\\http\\middleware\\' . $middleware; } - if (strpos($class, ':')) { - list($class, $param) = explode(':', $class, 2); + if (is_array($middleware)) { + return $this->import($middleware); } - return [[Container::get($class), 'handle'], isset($param) ? $param : null]; + if (strpos($middleware, ':')) { + list($middleware, $param) = explode(':', $middleware, 2); + } + + return [[Container::get($middleware), 'handle'], isset($param) ? $param : null]; } protected function resolve() @@ -99,19 +109,23 @@ class Middleware return function (Request $request) { $middleware = array_shift($this->queue); - if (null !== $middleware) { - list($call, $param) = $middleware; - - $response = call_user_func_array($call, [$request, $this->resolve(), $param]); - - if (!$response instanceof Response) { - throw new \LogicException('The middleware must return Response instance'); - } - - return $response; - } else { - throw new \InvalidArgumentException('The queue was exhausted, with no response returned'); + if (null === $middleware) { + throw new InvalidArgumentException('The queue was exhausted, with no response returned'); } + + list($call, $param) = $middleware; + + try { + $response = call_user_func_array($call, [$request, $this->resolve(), $param]); + } catch (HttpResponseException $exception) { + $response = $exception->getResponse(); + } + + if (!$response instanceof Response) { + throw new LogicException('The middleware must return Response instance'); + } + + return $response; }; } diff --git a/thinkphp/library/think/Request.php b/thinkphp/library/think/Request.php index 66b88ce9c..16db947bb 100644 --- a/thinkphp/library/think/Request.php +++ b/thinkphp/library/think/Request.php @@ -323,10 +323,12 @@ class Request $server['PATH_INFO'] = ''; $server['REQUEST_METHOD'] = strtoupper($method); $info = parse_url($uri); + if (isset($info['host'])) { $server['SERVER_NAME'] = $info['host']; $server['HTTP_HOST'] = $info['host']; } + if (isset($info['scheme'])) { if ('https' === $info['scheme']) { $server['HTTPS'] = 'on'; @@ -336,27 +338,34 @@ class Request $server['SERVER_PORT'] = 80; } } + if (isset($info['port'])) { $server['SERVER_PORT'] = $info['port']; $server['HTTP_HOST'] = $server['HTTP_HOST'] . ':' . $info['port']; } + if (isset($info['user'])) { $server['PHP_AUTH_USER'] = $info['user']; } + if (isset($info['pass'])) { $server['PHP_AUTH_PW'] = $info['pass']; } + if (!isset($info['path'])) { $info['path'] = '/'; } - $options = []; + + $options = []; + $queryString = ''; + $options[strtolower($method)] = $params; - $queryString = ''; + if (isset($info['query'])) { parse_str(html_entity_decode($info['query']), $query); if (!empty($params)) { $params = array_replace($query, $params); - $queryString = http_build_query($query, '', '&'); + $queryString = http_build_query($params, '', '&'); } else { $params = $query; $queryString = $info['query']; @@ -364,6 +373,7 @@ class Request } elseif (!empty($params)) { $queryString = http_build_query($params, '', '&'); } + if ($queryString) { parse_str($queryString, $get); $options['get'] = isset($options['get']) ? array_merge($get, $options['get']) : $get; @@ -1557,7 +1567,11 @@ class Request return $ip[$type]; } - if ($adv) { + $httpAgentIp = $this->config->get('http_agent_ip'); + + if ($httpAgentIp && isset($_SERVER[$httpAgentIp])) { + $ip = $_SERVER[$httpAgentIp]; + } elseif ($adv) { if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { $arr = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']); $pos = array_search('unknown', $arr); diff --git a/thinkphp/library/think/Route.php b/thinkphp/library/think/Route.php index 81f914b9f..645fb9e1d 100644 --- a/thinkphp/library/think/Route.php +++ b/thinkphp/library/think/Route.php @@ -313,6 +313,8 @@ class Route { if (is_null($domain)) { $domain = $this->domain; + } elseif (!strpos($domain, '.')) { + $domain .= '.' . $this->request->rootDomain(); } $subDomain = $this->request->subDomain(); @@ -596,8 +598,7 @@ class Route $group = new RuleGroup($this, $this->group, $rule, null, $option, $pattern); foreach ($this->methodPrefix as $type => $val) { - $item = $this->$type(':action', $val . ':action'); - $group->addRuleItem($item, $type); + $group->addRule('', $val . '', $type); } return $group->prefix($route . '/'); diff --git a/thinkphp/library/think/Url.php b/thinkphp/library/think/Url.php index a7281df46..1e4dfd7d2 100644 --- a/thinkphp/library/think/Url.php +++ b/thinkphp/library/think/Url.php @@ -124,7 +124,7 @@ class Url if ($alias) { // 别名路由解析 foreach ($alias as $key => $item) { - $val = $item->gerRoute(); + $val = $item->getRoute(); if (0 === strpos($url, $val)) { $url = $key . substr($url, strlen($val)); @@ -148,7 +148,7 @@ class Url // 检测URL绑定 if (!$this->bindCheck) { - $bind = $this->app['route']->getBind(); + $bind = $this->app['route']->getBind($domain ?: null); if ($bind && 0 === strpos($url, $bind)) { $url = substr($url, strlen($bind) + 1); @@ -252,11 +252,11 @@ class Url return ''; } + $rootDomain = $this->app['request']->rootDomain(); if (true === $domain) { // 自动判断域名 - $domain = $this->app['config']->get('app_host') ?: $this->app['request']->host(); - $rootDomain = $this->app['config']->get('url_domain_root'); + $domain = $this->app['config']->get('app_host') ?: $this->app['request']->host(); $domains = $this->app['route']->getDomains(); @@ -286,6 +286,8 @@ class Url } } } + } elseif (!strpos($domain, '.')) { + $domain .= '.' . $rootDomain; } if (false !== strpos($domain, '://')) { diff --git a/thinkphp/library/think/Validate.php b/thinkphp/library/think/Validate.php index 4abfc6b25..930f7d0fa 100644 --- a/thinkphp/library/think/Validate.php +++ b/thinkphp/library/think/Validate.php @@ -749,7 +749,7 @@ class Validate $result = in_array($value, [true, false, 0, 1, '0', '1'], true); break; case 'number': - $result = is_numeric($value); + $result = ctype_digit($value); break; case 'array': // 是否为数组 diff --git a/thinkphp/library/think/cache/driver/File.php b/thinkphp/library/think/cache/driver/File.php index 3ff1a0128..5f10200bf 100644 --- a/thinkphp/library/think/cache/driver/File.php +++ b/thinkphp/library/think/cache/driver/File.php @@ -59,10 +59,11 @@ class File extends Driver private function init() { // 创建项目缓存目录 - if (!is_dir($this->options['path'])) { - if (mkdir($this->options['path'], 0755, true)) { + try { + if (!is_dir($this->options['path']) && mkdir($this->options['path'], 0755, true)) { return true; } + } catch (\Exception $e) { } return false; @@ -92,7 +93,10 @@ class File extends Driver $dir = dirname($filename); if ($auto && !is_dir($dir)) { - mkdir($dir, 0755, true); + try { + mkdir($dir, 0755, true); + } catch (\Exception $e) { + } } return $filename; diff --git a/thinkphp/library/think/cache/driver/Redis.php b/thinkphp/library/think/cache/driver/Redis.php index 2f019608c..77958c334 100644 --- a/thinkphp/library/think/cache/driver/Redis.php +++ b/thinkphp/library/think/cache/driver/Redis.php @@ -203,39 +203,4 @@ class Redis extends Driver return $this->handler->flushDB(); } - /** - * 如果不存在则写入缓存 - * @access public - * @param string $name 缓存变量名 - * @param mixed $value 存储数据 - * @param int $expire 有效时间 0为永久 - * @return mixed - */ - public function remember($name, $value, $expire = null) - { - if (is_null($expire)) { - $expire = $this->options['expire']; - } - - // 没有过期参数时,使用setnx - if (!$expire) { - $key = $this->getCacheKey($name); - $val = $this->serialize($value); - $res = $this->handler->setnx($key, $val); - if ($res) { - $this->writeTimes++; - return $value; - } else { - return $this->get($name); - } - } - - if ($this->has($name)) { - return $this->get($name); - } else { - $this->set($name, $value, $expire); - } - - return $value; - } } diff --git a/thinkphp/library/think/db/Builder.php b/thinkphp/library/think/db/Builder.php index d6a5df4e7..78ea0f4a9 100644 --- a/thinkphp/library/think/db/Builder.php +++ b/thinkphp/library/think/db/Builder.php @@ -143,11 +143,6 @@ abstract class Builder case 'DEC': $result[$item] = $item . ' - ' . floatval($val[1]); break; - default: - $value = $this->parseArrayData($query, $val); - if ($value) { - $result[$item] = $value; - } } } elseif (is_scalar($val)) { // 过滤非标量数据 @@ -158,18 +153,6 @@ abstract class Builder return $result; } - /** - * 数组数据解析 - * @access protected - * @param Query $query 查询对象 - * @param array $data - * @return mixed - */ - protected function parseArrayData(Query $query, $data) - { - return false; - } - /** * 数据绑定处理 * @access protected @@ -492,13 +475,13 @@ abstract class Builder /** * 表达式查询 * @access protected - * @param Query $query 查询对象 - * @param string $key - * @param string $exp - * @param mixed $value - * @param string $field - * @param string $bindName - * @param integer $bindType + * @param Query $query 查询对象 + * @param string $key + * @param string $exp + * @param Expression $value + * @param string $field + * @param string $bindName + * @param integer $bindType * @return string */ protected function parseExp(Query $query, $key, $exp, Expression $value, $field, $bindName, $bindType) diff --git a/thinkphp/library/think/db/builder/Mysql.php b/thinkphp/library/think/db/builder/Mysql.php index f5cd5f400..a73fa293d 100644 --- a/thinkphp/library/think/db/builder/Mysql.php +++ b/thinkphp/library/think/db/builder/Mysql.php @@ -173,33 +173,6 @@ class Mysql extends Builder return $fieldsStr; } - /** - * 数组数据解析 - * @access protected - * @param Query $query 查询对象 - * @param array $data - * @return mixed - */ - protected function parseArrayData(Query $query, $data) - { - list($type, $value) = $data; - - switch (strtolower($type)) { - case 'point': - $fun = isset($data[2]) ? $data[2] : 'GeomFromText'; - $point = isset($data[3]) ? $data[3] : 'POINT'; - if (is_array($value)) { - $value = implode(' ', $value); - } - $result = $fun . '(\'' . $point . '(' . $value . ')\')'; - break; - default: - $result = false; - } - - return $result; - } - /** * 随机排序 * @access protected diff --git a/thinkphp/library/think/log/driver/File.php b/thinkphp/library/think/log/driver/File.php index f71509222..1db14925b 100644 --- a/thinkphp/library/think/log/driver/File.php +++ b/thinkphp/library/think/log/driver/File.php @@ -61,8 +61,11 @@ class File $filename = date('Ymd') . $cli . '.log'; $files = glob($this->config['path'] . '*.log'); - if (count($files) > $this->config['max_files']) { - unlink($files[0]); + try { + if (count($files) > $this->config['max_files']) { + unlink($files[0]); + } + } catch (\Exception $e) { } } else { $filename = date('Ym') . DIRECTORY_SEPARATOR . date('d') . $cli . '.log'; diff --git a/thinkphp/library/think/route/Dispatch.php b/thinkphp/library/think/route/Dispatch.php index ca6b5d63d..ec7e15497 100644 --- a/thinkphp/library/think/route/Dispatch.php +++ b/thinkphp/library/think/route/Dispatch.php @@ -32,8 +32,12 @@ abstract class Dispatch $this->dispatch = $dispatch; $this->param = $param; $this->code = $code; + $this->init(); } + protected function init() + {} + public function convert($convert) { $this->convert = $convert; diff --git a/thinkphp/library/think/route/Domain.php b/thinkphp/library/think/route/Domain.php index 08581908e..9043017c4 100644 --- a/thinkphp/library/think/route/Domain.php +++ b/thinkphp/library/think/route/Domain.php @@ -20,6 +20,8 @@ use think\route\dispatch\Module as ModuleDispatch; class Domain extends RuleGroup { + protected $bind; + /** * 架构函数 * @access public @@ -68,6 +70,12 @@ class Domain extends RuleGroup return $result; } + // 添加域名中间件 + if (!empty($this->option['middleware'])) { + Container::get('middleware')->import($this->option['middleware']); + unset($this->option['middleware']); + } + return parent::check($request, $url, $depr, $completeMatch); } @@ -79,6 +87,7 @@ class Domain extends RuleGroup */ public function bind($bind) { + $this->bind = $bind; $this->router->bind($bind, $this->domain); return $this; @@ -110,10 +119,8 @@ class Domain extends RuleGroup */ private function checkUrlBind($url, $depr = '/') { - $bind = $this->router->getBind($this->domain); - - if (!empty($bind)) { - + if (!empty($this->bind)) { + $bind = $this->bind; $this->parseBindAppendParam($bind); // 记录绑定信息 diff --git a/thinkphp/library/think/route/Rule.php b/thinkphp/library/think/route/Rule.php index 92f1ce9de..8d53c4377 100644 --- a/thinkphp/library/think/route/Rule.php +++ b/thinkphp/library/think/route/Rule.php @@ -97,6 +97,16 @@ abstract class Rule return $this->name; } + /** + * 获取Parent对象 + * @access public + * @return $this|null + */ + public function getParent() + { + return $this->parent; + } + /** * 获取变量规则定义 * @access public @@ -635,9 +645,7 @@ abstract class Rule { // 添加中间件 if (!empty($option['middleware'])) { - foreach ($option['middleware'] as $middleware) { - Container::get('middleware')->add($middleware); - } + Container::get('middleware')->import($option['middleware']); } // 绑定模型数据 diff --git a/thinkphp/library/think/route/RuleGroup.php b/thinkphp/library/think/route/RuleGroup.php index 4f2f7d147..bf8c65897 100644 --- a/thinkphp/library/think/route/RuleGroup.php +++ b/thinkphp/library/think/route/RuleGroup.php @@ -232,7 +232,7 @@ class RuleGroup extends Rule */ public function lazy($lazy = true) { - if (!$lazy && !is_object($this->rule)) { + if (!$lazy) { $this->parseGroupRule($this->rule); $this->rule = null; } diff --git a/thinkphp/library/think/route/RuleItem.php b/thinkphp/library/think/route/RuleItem.php index b7873b0cf..27e5e7548 100644 --- a/thinkphp/library/think/route/RuleItem.php +++ b/thinkphp/library/think/route/RuleItem.php @@ -139,6 +139,20 @@ class RuleItem extends Rule return $this; } + /** + * 设置别名 + * @access public + * @param string $name + * @return $this + */ + public function name($name) + { + $this->name = $name; + $this->setRuleName(true); + + return $this; + } + /** * 设置路由标识 用于URL反解生成 * @access protected diff --git a/thinkphp/library/think/route/RuleName.php b/thinkphp/library/think/route/RuleName.php index 460ccab39..408a7c93e 100644 --- a/thinkphp/library/think/route/RuleName.php +++ b/thinkphp/library/think/route/RuleName.php @@ -25,7 +25,7 @@ class RuleName */ public function set($name, $value, $first = false) { - if ($first) { + if ($first && isset($this->item[$name])) { array_unshift($this->item[$name], $value); } else { $this->item[$name][] = $value; diff --git a/thinkphp/library/think/route/dispatch/Module.php b/thinkphp/library/think/route/dispatch/Module.php index ed8e21ec0..26c92e94d 100644 --- a/thinkphp/library/think/route/dispatch/Module.php +++ b/thinkphp/library/think/route/dispatch/Module.php @@ -20,7 +20,10 @@ use think\route\Dispatch; class Module extends Dispatch { - public function run() + protected $controller; + protected $actionName; + + protected function init() { $result = $this->dispatch; @@ -78,21 +81,25 @@ class Module extends Dispatch // 是否自动转换控制器和操作名 $convert = is_bool($this->convert) ? $this->convert : $this->app->config('app.url_convert'); // 获取控制器名 - $controller = strip_tags($result[1] ?: $this->app->config('app.default_controller')); - $controller = $convert ? strtolower($controller) : $controller; + $controller = strip_tags($result[1] ?: $this->app->config('app.default_controller')); + $this->controller = $convert ? strtolower($controller) : $controller; // 获取操作名 - $actionName = strip_tags($result[2] ?: $this->app->config('app.default_action')); + $this->actionName = strip_tags($result[2] ?: $this->app->config('app.default_action')); // 设置当前请求的控制器、操作 - $this->app['request']->controller(Loader::parseName($controller, 1))->action($actionName); + $this->app['request']->controller(Loader::parseName($this->controller, 1))->action($this->actionName); // 监听module_init $this->app['hook']->listen('module_init'); + } + + public function run() + { // 实例化控制器 try { - $instance = $this->app->controller($controller, + $instance = $this->app->controller($this->controller, $this->app->config('app.url_controller_layer'), $this->app->config('app.controller_suffix'), $this->app->config('app.empty_controller')); @@ -101,7 +108,7 @@ class Module extends Dispatch } // 获取当前操作名 - $action = $actionName . $this->app->config('app.action_suffix'); + $action = $this->actionName . $this->app->config('app.action_suffix'); if (is_callable([$instance, $action])) { // 执行操作方法 @@ -121,7 +128,7 @@ class Module extends Dispatch } elseif (is_callable([$instance, '_empty'])) { // 空操作 $call = [$instance, '_empty']; - $vars = [$actionName]; + $vars = [$this->actionName]; $reflect = new ReflectionMethod($instance, '_empty'); } else { // 操作不存在 @@ -129,7 +136,6 @@ class Module extends Dispatch } $this->app['hook']->listen('action_begin', $call); - return Container::getInstance()->invokeReflectMethod($instance, $reflect, $vars); } } diff --git a/thinkphp/library/think/route/dispatch/Url.php b/thinkphp/library/think/route/dispatch/Url.php index 1d5b9d01a..f26197aae 100644 --- a/thinkphp/library/think/route/dispatch/Url.php +++ b/thinkphp/library/think/route/dispatch/Url.php @@ -17,13 +17,18 @@ use think\route\Dispatch; class Url extends Dispatch { - public function run() + protected function init() { // 解析默认的URL规则 $url = str_replace($this->param['depr'], '|', $this->dispatch); $result = $this->parseUrl($url); - return (new Module($result))->run(); + $this->dispatch = new Module($result); + } + + public function run() + { + return $this->dispatch->run(); } /** diff --git a/thinkphp/library/think/view/driver/Php.php b/thinkphp/library/think/view/driver/Php.php index e2091aada..6e5db3bd7 100644 --- a/thinkphp/library/think/view/driver/Php.php +++ b/thinkphp/library/think/view/driver/Php.php @@ -19,6 +19,8 @@ class Php { // 模板引擎参数 protected $config = [ + // 默认模板渲染规则 1 解析为小写+下划线 2 全部转换小写 + 'auto_rule' => 1, // 视图基础目录(集中式) 'view_base' => '', // 模板起始路径 @@ -139,7 +141,7 @@ class Php if ($controller) { if ('' == $template) { // 如果模板文件名为空 按照默认规则定位 - $template = str_replace('.', DIRECTORY_SEPARATOR, $controller) . $depr . $request->action(); + $template = str_replace('.', DIRECTORY_SEPARATOR, $controller) . $depr . (1 == $this->config['auto_rule'] ? Loader::parseName($request->action(true)) : $request->action()); } elseif (false === strpos($template, $depr)) { $template = str_replace('.', DIRECTORY_SEPARATOR, $controller) . $depr . $template; } diff --git a/thinkphp/library/think/view/driver/Think.php b/thinkphp/library/think/view/driver/Think.php index 83daa1c57..137acf859 100644 --- a/thinkphp/library/think/view/driver/Think.php +++ b/thinkphp/library/think/view/driver/Think.php @@ -22,6 +22,8 @@ class Think private $template; // 模板引擎参数 protected $config = [ + // 默认模板渲染规则 1 解析为小写+下划线 2 全部转换小写 + 'auto_rule' => 1, // 视图基础目录(集中式) 'view_base' => '', // 模板起始路径 @@ -133,7 +135,7 @@ class Think if ($controller) { if ('' == $template) { // 如果模板文件名为空 按照默认规则定位 - $template = str_replace('.', DIRECTORY_SEPARATOR, $controller) . $depr . $request->action(); + $template = str_replace('.', DIRECTORY_SEPARATOR, $controller) . $depr . (1 == $this->config['auto_rule'] ? Loader::parseName($request->action(true)) : $request->action()); } elseif (false === strpos($template, $depr)) { $template = str_replace('.', DIRECTORY_SEPARATOR, $controller) . $depr . $template; } diff --git a/vendor/autoload.php b/vendor/autoload.php index b72f4a932..370320b1c 100644 --- a/vendor/autoload.php +++ b/vendor/autoload.php @@ -4,4 +4,4 @@ require_once __DIR__ . '/composer/autoload_real.php'; -return ComposerAutoloaderInit95af81df6ac420fb6c658e7c9ee159af::getLoader(); +return ComposerAutoloaderInit89214cd95eb7c7c04f32b98e8012aa49::getLoader(); diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php index c18d97a36..a750b2486 100644 --- a/vendor/composer/autoload_classmap.php +++ b/vendor/composer/autoload_classmap.php @@ -163,6 +163,7 @@ return array( 'app\\wechat\\controller\\News' => $baseDir . '/application/wechat/controller/News.php', 'app\\wechat\\controller\\Review' => $baseDir . '/application/wechat/controller/Review.php', 'app\\wechat\\controller\\Tags' => $baseDir . '/application/wechat/controller/Tags.php', + 'app\\wechat\\controller\\api\\Js' => $baseDir . '/application/wechat/controller/api/Js.php', 'app\\wechat\\controller\\api\\Push' => $baseDir . '/application/wechat/controller/api/Push.php', 'app\\wechat\\controller\\api\\Tools' => $baseDir . '/application/wechat/controller/api/Tools.php', 'app\\wechat\\service\\FansService' => $baseDir . '/application/wechat/service/FansService.php', diff --git a/vendor/composer/autoload_real.php b/vendor/composer/autoload_real.php index 8d2b66e79..6797dae11 100644 --- a/vendor/composer/autoload_real.php +++ b/vendor/composer/autoload_real.php @@ -2,7 +2,7 @@ // autoload_real.php @generated by Composer -class ComposerAutoloaderInit95af81df6ac420fb6c658e7c9ee159af +class ComposerAutoloaderInit89214cd95eb7c7c04f32b98e8012aa49 { private static $loader; @@ -19,15 +19,15 @@ class ComposerAutoloaderInit95af81df6ac420fb6c658e7c9ee159af return self::$loader; } - spl_autoload_register(array('ComposerAutoloaderInit95af81df6ac420fb6c658e7c9ee159af', 'loadClassLoader'), true, true); + spl_autoload_register(array('ComposerAutoloaderInit89214cd95eb7c7c04f32b98e8012aa49', 'loadClassLoader'), true, true); self::$loader = $loader = new \Composer\Autoload\ClassLoader(); - spl_autoload_unregister(array('ComposerAutoloaderInit95af81df6ac420fb6c658e7c9ee159af', 'loadClassLoader')); + spl_autoload_unregister(array('ComposerAutoloaderInit89214cd95eb7c7c04f32b98e8012aa49', 'loadClassLoader')); $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); if ($useStaticLoader) { require_once __DIR__ . '/autoload_static.php'; - call_user_func(\Composer\Autoload\ComposerStaticInit95af81df6ac420fb6c658e7c9ee159af::getInitializer($loader)); + call_user_func(\Composer\Autoload\ComposerStaticInit89214cd95eb7c7c04f32b98e8012aa49::getInitializer($loader)); } else { $map = require __DIR__ . '/autoload_namespaces.php'; foreach ($map as $namespace => $path) { @@ -48,19 +48,19 @@ class ComposerAutoloaderInit95af81df6ac420fb6c658e7c9ee159af $loader->register(true); if ($useStaticLoader) { - $includeFiles = Composer\Autoload\ComposerStaticInit95af81df6ac420fb6c658e7c9ee159af::$files; + $includeFiles = Composer\Autoload\ComposerStaticInit89214cd95eb7c7c04f32b98e8012aa49::$files; } else { $includeFiles = require __DIR__ . '/autoload_files.php'; } foreach ($includeFiles as $fileIdentifier => $file) { - composerRequire95af81df6ac420fb6c658e7c9ee159af($fileIdentifier, $file); + composerRequire89214cd95eb7c7c04f32b98e8012aa49($fileIdentifier, $file); } return $loader; } } -function composerRequire95af81df6ac420fb6c658e7c9ee159af($fileIdentifier, $file) +function composerRequire89214cd95eb7c7c04f32b98e8012aa49($fileIdentifier, $file) { if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { require $file; diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index d77aefaf3..6c4c81d93 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -4,7 +4,7 @@ namespace Composer\Autoload; -class ComposerStaticInit95af81df6ac420fb6c658e7c9ee159af +class ComposerStaticInit89214cd95eb7c7c04f32b98e8012aa49 { public static $files = array ( '1cfd2761b63b0a29ed23657ea394cb2d' => __DIR__ . '/..' . '/topthink/think-captcha/src/helper.php', @@ -241,6 +241,7 @@ class ComposerStaticInit95af81df6ac420fb6c658e7c9ee159af 'app\\wechat\\controller\\News' => __DIR__ . '/../..' . '/application/wechat/controller/News.php', 'app\\wechat\\controller\\Review' => __DIR__ . '/../..' . '/application/wechat/controller/Review.php', 'app\\wechat\\controller\\Tags' => __DIR__ . '/../..' . '/application/wechat/controller/Tags.php', + 'app\\wechat\\controller\\api\\Js' => __DIR__ . '/../..' . '/application/wechat/controller/api/Js.php', 'app\\wechat\\controller\\api\\Push' => __DIR__ . '/../..' . '/application/wechat/controller/api/Push.php', 'app\\wechat\\controller\\api\\Tools' => __DIR__ . '/../..' . '/application/wechat/controller/api/Tools.php', 'app\\wechat\\service\\FansService' => __DIR__ . '/../..' . '/application/wechat/service/FansService.php', @@ -257,9 +258,9 @@ class ComposerStaticInit95af81df6ac420fb6c658e7c9ee159af public static function getInitializer(ClassLoader $loader) { return \Closure::bind(function () use ($loader) { - $loader->prefixLengthsPsr4 = ComposerStaticInit95af81df6ac420fb6c658e7c9ee159af::$prefixLengthsPsr4; - $loader->prefixDirsPsr4 = ComposerStaticInit95af81df6ac420fb6c658e7c9ee159af::$prefixDirsPsr4; - $loader->classMap = ComposerStaticInit95af81df6ac420fb6c658e7c9ee159af::$classMap; + $loader->prefixLengthsPsr4 = ComposerStaticInit89214cd95eb7c7c04f32b98e8012aa49::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInit89214cd95eb7c7c04f32b98e8012aa49::$prefixDirsPsr4; + $loader->classMap = ComposerStaticInit89214cd95eb7c7c04f32b98e8012aa49::$classMap; }, null, ClassLoader::class); } diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index 277d7f926..e47427012 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -175,17 +175,17 @@ }, { "name": "topthink/framework", - "version": "v5.1.7", - "version_normalized": "5.1.7.0", + "version": "v5.1.8", + "version_normalized": "5.1.8.0", "source": { "type": "git", "url": "https://github.com/top-think/framework.git", - "reference": "81a93819dbbd66774405daf9c27a9219232dba9a" + "reference": "8f6c84abd9e2f9db5a071168c0153724b54b083c" }, "dist": { "type": "zip", - "url": "https://files.phpcomposer.com/files/top-think/framework/81a93819dbbd66774405daf9c27a9219232dba9a.zip", - "reference": "81a93819dbbd66774405daf9c27a9219232dba9a", + "url": "https://files.phpcomposer.com/files/top-think/framework/8f6c84abd9e2f9db5a071168c0153724b54b083c.zip", + "reference": "8f6c84abd9e2f9db5a071168c0153724b54b083c", "shasum": "" }, "require": { @@ -201,7 +201,7 @@ "sebastian/phpcpd": "2.*", "squizlabs/php_codesniffer": "2.*" }, - "time": "2018-03-29T04:16:43+00:00", + "time": "2018-04-06T05:28:49+00:00", "type": "think-framework", "installation-source": "dist", "notification-url": "https://packagist.org/downloads/", @@ -269,8 +269,8 @@ }, { "name": "symfony/options-resolver", - "version": "v3.4.6", - "version_normalized": "3.4.6.0", + "version": "v3.4.8", + "version_normalized": "3.4.8.0", "source": { "type": "git", "url": "https://github.com/symfony/options-resolver.git", From 6a6203b706be30dedc7852c5dac6d4d8fd03296a Mon Sep 17 00:00:00 2001 From: Anyon Date: Sun, 8 Apr 2018 17:48:50 +0800 Subject: [PATCH 127/153] =?UTF-8?q?[=E6=9B=B4=E6=96=B0]ComposerUpdate?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vendor/autoload.php | 2 +- vendor/composer/autoload_real.php | 14 +++++++------- vendor/composer/autoload_static.php | 8 ++++---- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/vendor/autoload.php b/vendor/autoload.php index 370320b1c..21d2ce33e 100644 --- a/vendor/autoload.php +++ b/vendor/autoload.php @@ -4,4 +4,4 @@ require_once __DIR__ . '/composer/autoload_real.php'; -return ComposerAutoloaderInit89214cd95eb7c7c04f32b98e8012aa49::getLoader(); +return ComposerAutoloaderInite6a3550bebe8900ede192a6ad5fc3f6f::getLoader(); diff --git a/vendor/composer/autoload_real.php b/vendor/composer/autoload_real.php index 6797dae11..3a0e22077 100644 --- a/vendor/composer/autoload_real.php +++ b/vendor/composer/autoload_real.php @@ -2,7 +2,7 @@ // autoload_real.php @generated by Composer -class ComposerAutoloaderInit89214cd95eb7c7c04f32b98e8012aa49 +class ComposerAutoloaderInite6a3550bebe8900ede192a6ad5fc3f6f { private static $loader; @@ -19,15 +19,15 @@ class ComposerAutoloaderInit89214cd95eb7c7c04f32b98e8012aa49 return self::$loader; } - spl_autoload_register(array('ComposerAutoloaderInit89214cd95eb7c7c04f32b98e8012aa49', 'loadClassLoader'), true, true); + spl_autoload_register(array('ComposerAutoloaderInite6a3550bebe8900ede192a6ad5fc3f6f', 'loadClassLoader'), true, true); self::$loader = $loader = new \Composer\Autoload\ClassLoader(); - spl_autoload_unregister(array('ComposerAutoloaderInit89214cd95eb7c7c04f32b98e8012aa49', 'loadClassLoader')); + spl_autoload_unregister(array('ComposerAutoloaderInite6a3550bebe8900ede192a6ad5fc3f6f', 'loadClassLoader')); $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); if ($useStaticLoader) { require_once __DIR__ . '/autoload_static.php'; - call_user_func(\Composer\Autoload\ComposerStaticInit89214cd95eb7c7c04f32b98e8012aa49::getInitializer($loader)); + call_user_func(\Composer\Autoload\ComposerStaticInite6a3550bebe8900ede192a6ad5fc3f6f::getInitializer($loader)); } else { $map = require __DIR__ . '/autoload_namespaces.php'; foreach ($map as $namespace => $path) { @@ -48,19 +48,19 @@ class ComposerAutoloaderInit89214cd95eb7c7c04f32b98e8012aa49 $loader->register(true); if ($useStaticLoader) { - $includeFiles = Composer\Autoload\ComposerStaticInit89214cd95eb7c7c04f32b98e8012aa49::$files; + $includeFiles = Composer\Autoload\ComposerStaticInite6a3550bebe8900ede192a6ad5fc3f6f::$files; } else { $includeFiles = require __DIR__ . '/autoload_files.php'; } foreach ($includeFiles as $fileIdentifier => $file) { - composerRequire89214cd95eb7c7c04f32b98e8012aa49($fileIdentifier, $file); + composerRequiree6a3550bebe8900ede192a6ad5fc3f6f($fileIdentifier, $file); } return $loader; } } -function composerRequire89214cd95eb7c7c04f32b98e8012aa49($fileIdentifier, $file) +function composerRequiree6a3550bebe8900ede192a6ad5fc3f6f($fileIdentifier, $file) { if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { require $file; diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index 6c4c81d93..20cedd372 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -4,7 +4,7 @@ namespace Composer\Autoload; -class ComposerStaticInit89214cd95eb7c7c04f32b98e8012aa49 +class ComposerStaticInite6a3550bebe8900ede192a6ad5fc3f6f { public static $files = array ( '1cfd2761b63b0a29ed23657ea394cb2d' => __DIR__ . '/..' . '/topthink/think-captcha/src/helper.php', @@ -258,9 +258,9 @@ class ComposerStaticInit89214cd95eb7c7c04f32b98e8012aa49 public static function getInitializer(ClassLoader $loader) { return \Closure::bind(function () use ($loader) { - $loader->prefixLengthsPsr4 = ComposerStaticInit89214cd95eb7c7c04f32b98e8012aa49::$prefixLengthsPsr4; - $loader->prefixDirsPsr4 = ComposerStaticInit89214cd95eb7c7c04f32b98e8012aa49::$prefixDirsPsr4; - $loader->classMap = ComposerStaticInit89214cd95eb7c7c04f32b98e8012aa49::$classMap; + $loader->prefixLengthsPsr4 = ComposerStaticInite6a3550bebe8900ede192a6ad5fc3f6f::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInite6a3550bebe8900ede192a6ad5fc3f6f::$prefixDirsPsr4; + $loader->classMap = ComposerStaticInite6a3550bebe8900ede192a6ad5fc3f6f::$classMap; }, null, ClassLoader::class); } From 07c5e8c29db7938784a1f3973262aa74a89113ac Mon Sep 17 00:00:00 2001 From: Anyon Date: Sun, 8 Apr 2018 17:49:27 +0800 Subject: [PATCH 128/153] =?UTF-8?q?[=E6=9B=B4=E6=96=B0]ComposerUpate?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vendor/autoload.php | 2 +- vendor/composer/autoload_real.php | 14 +++++++------- vendor/composer/autoload_static.php | 8 ++++---- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/vendor/autoload.php b/vendor/autoload.php index 21d2ce33e..f7d40d51a 100644 --- a/vendor/autoload.php +++ b/vendor/autoload.php @@ -4,4 +4,4 @@ require_once __DIR__ . '/composer/autoload_real.php'; -return ComposerAutoloaderInite6a3550bebe8900ede192a6ad5fc3f6f::getLoader(); +return ComposerAutoloaderInitff72d310a6fe6b875cf519783b635305::getLoader(); diff --git a/vendor/composer/autoload_real.php b/vendor/composer/autoload_real.php index 3a0e22077..c71153087 100644 --- a/vendor/composer/autoload_real.php +++ b/vendor/composer/autoload_real.php @@ -2,7 +2,7 @@ // autoload_real.php @generated by Composer -class ComposerAutoloaderInite6a3550bebe8900ede192a6ad5fc3f6f +class ComposerAutoloaderInitff72d310a6fe6b875cf519783b635305 { private static $loader; @@ -19,15 +19,15 @@ class ComposerAutoloaderInite6a3550bebe8900ede192a6ad5fc3f6f return self::$loader; } - spl_autoload_register(array('ComposerAutoloaderInite6a3550bebe8900ede192a6ad5fc3f6f', 'loadClassLoader'), true, true); + spl_autoload_register(array('ComposerAutoloaderInitff72d310a6fe6b875cf519783b635305', 'loadClassLoader'), true, true); self::$loader = $loader = new \Composer\Autoload\ClassLoader(); - spl_autoload_unregister(array('ComposerAutoloaderInite6a3550bebe8900ede192a6ad5fc3f6f', 'loadClassLoader')); + spl_autoload_unregister(array('ComposerAutoloaderInitff72d310a6fe6b875cf519783b635305', 'loadClassLoader')); $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); if ($useStaticLoader) { require_once __DIR__ . '/autoload_static.php'; - call_user_func(\Composer\Autoload\ComposerStaticInite6a3550bebe8900ede192a6ad5fc3f6f::getInitializer($loader)); + call_user_func(\Composer\Autoload\ComposerStaticInitff72d310a6fe6b875cf519783b635305::getInitializer($loader)); } else { $map = require __DIR__ . '/autoload_namespaces.php'; foreach ($map as $namespace => $path) { @@ -48,19 +48,19 @@ class ComposerAutoloaderInite6a3550bebe8900ede192a6ad5fc3f6f $loader->register(true); if ($useStaticLoader) { - $includeFiles = Composer\Autoload\ComposerStaticInite6a3550bebe8900ede192a6ad5fc3f6f::$files; + $includeFiles = Composer\Autoload\ComposerStaticInitff72d310a6fe6b875cf519783b635305::$files; } else { $includeFiles = require __DIR__ . '/autoload_files.php'; } foreach ($includeFiles as $fileIdentifier => $file) { - composerRequiree6a3550bebe8900ede192a6ad5fc3f6f($fileIdentifier, $file); + composerRequireff72d310a6fe6b875cf519783b635305($fileIdentifier, $file); } return $loader; } } -function composerRequiree6a3550bebe8900ede192a6ad5fc3f6f($fileIdentifier, $file) +function composerRequireff72d310a6fe6b875cf519783b635305($fileIdentifier, $file) { if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { require $file; diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index 20cedd372..3b0735f8c 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -4,7 +4,7 @@ namespace Composer\Autoload; -class ComposerStaticInite6a3550bebe8900ede192a6ad5fc3f6f +class ComposerStaticInitff72d310a6fe6b875cf519783b635305 { public static $files = array ( '1cfd2761b63b0a29ed23657ea394cb2d' => __DIR__ . '/..' . '/topthink/think-captcha/src/helper.php', @@ -258,9 +258,9 @@ class ComposerStaticInite6a3550bebe8900ede192a6ad5fc3f6f public static function getInitializer(ClassLoader $loader) { return \Closure::bind(function () use ($loader) { - $loader->prefixLengthsPsr4 = ComposerStaticInite6a3550bebe8900ede192a6ad5fc3f6f::$prefixLengthsPsr4; - $loader->prefixDirsPsr4 = ComposerStaticInite6a3550bebe8900ede192a6ad5fc3f6f::$prefixDirsPsr4; - $loader->classMap = ComposerStaticInite6a3550bebe8900ede192a6ad5fc3f6f::$classMap; + $loader->prefixLengthsPsr4 = ComposerStaticInitff72d310a6fe6b875cf519783b635305::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInitff72d310a6fe6b875cf519783b635305::$prefixDirsPsr4; + $loader->classMap = ComposerStaticInitff72d310a6fe6b875cf519783b635305::$classMap; }, null, ClassLoader::class); } From 604d5a38218647b3b3541c7b2a0522ffa0d9414a Mon Sep 17 00:00:00 2001 From: cxphps <94620616@qq.com> Date: Sun, 8 Apr 2018 17:51:03 +0800 Subject: [PATCH 129/153] =?UTF-8?q?[=E6=9B=B4=E6=96=B0]update?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vendor/autoload.php | 2 +- vendor/composer/autoload_real.php | 14 +++++++------- vendor/composer/autoload_static.php | 8 ++++---- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/vendor/autoload.php b/vendor/autoload.php index f7d40d51a..24920f0b5 100644 --- a/vendor/autoload.php +++ b/vendor/autoload.php @@ -4,4 +4,4 @@ require_once __DIR__ . '/composer/autoload_real.php'; -return ComposerAutoloaderInitff72d310a6fe6b875cf519783b635305::getLoader(); +return ComposerAutoloaderInite426deb88d2f68dc4c00943634b9e82f::getLoader(); diff --git a/vendor/composer/autoload_real.php b/vendor/composer/autoload_real.php index c71153087..76272b275 100644 --- a/vendor/composer/autoload_real.php +++ b/vendor/composer/autoload_real.php @@ -2,7 +2,7 @@ // autoload_real.php @generated by Composer -class ComposerAutoloaderInitff72d310a6fe6b875cf519783b635305 +class ComposerAutoloaderInite426deb88d2f68dc4c00943634b9e82f { private static $loader; @@ -19,15 +19,15 @@ class ComposerAutoloaderInitff72d310a6fe6b875cf519783b635305 return self::$loader; } - spl_autoload_register(array('ComposerAutoloaderInitff72d310a6fe6b875cf519783b635305', 'loadClassLoader'), true, true); + spl_autoload_register(array('ComposerAutoloaderInite426deb88d2f68dc4c00943634b9e82f', 'loadClassLoader'), true, true); self::$loader = $loader = new \Composer\Autoload\ClassLoader(); - spl_autoload_unregister(array('ComposerAutoloaderInitff72d310a6fe6b875cf519783b635305', 'loadClassLoader')); + spl_autoload_unregister(array('ComposerAutoloaderInite426deb88d2f68dc4c00943634b9e82f', 'loadClassLoader')); $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); if ($useStaticLoader) { require_once __DIR__ . '/autoload_static.php'; - call_user_func(\Composer\Autoload\ComposerStaticInitff72d310a6fe6b875cf519783b635305::getInitializer($loader)); + call_user_func(\Composer\Autoload\ComposerStaticInite426deb88d2f68dc4c00943634b9e82f::getInitializer($loader)); } else { $map = require __DIR__ . '/autoload_namespaces.php'; foreach ($map as $namespace => $path) { @@ -48,19 +48,19 @@ class ComposerAutoloaderInitff72d310a6fe6b875cf519783b635305 $loader->register(true); if ($useStaticLoader) { - $includeFiles = Composer\Autoload\ComposerStaticInitff72d310a6fe6b875cf519783b635305::$files; + $includeFiles = Composer\Autoload\ComposerStaticInite426deb88d2f68dc4c00943634b9e82f::$files; } else { $includeFiles = require __DIR__ . '/autoload_files.php'; } foreach ($includeFiles as $fileIdentifier => $file) { - composerRequireff72d310a6fe6b875cf519783b635305($fileIdentifier, $file); + composerRequiree426deb88d2f68dc4c00943634b9e82f($fileIdentifier, $file); } return $loader; } } -function composerRequireff72d310a6fe6b875cf519783b635305($fileIdentifier, $file) +function composerRequiree426deb88d2f68dc4c00943634b9e82f($fileIdentifier, $file) { if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { require $file; diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index 3b0735f8c..5c81ed958 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -4,7 +4,7 @@ namespace Composer\Autoload; -class ComposerStaticInitff72d310a6fe6b875cf519783b635305 +class ComposerStaticInite426deb88d2f68dc4c00943634b9e82f { public static $files = array ( '1cfd2761b63b0a29ed23657ea394cb2d' => __DIR__ . '/..' . '/topthink/think-captcha/src/helper.php', @@ -258,9 +258,9 @@ class ComposerStaticInitff72d310a6fe6b875cf519783b635305 public static function getInitializer(ClassLoader $loader) { return \Closure::bind(function () use ($loader) { - $loader->prefixLengthsPsr4 = ComposerStaticInitff72d310a6fe6b875cf519783b635305::$prefixLengthsPsr4; - $loader->prefixDirsPsr4 = ComposerStaticInitff72d310a6fe6b875cf519783b635305::$prefixDirsPsr4; - $loader->classMap = ComposerStaticInitff72d310a6fe6b875cf519783b635305::$classMap; + $loader->prefixLengthsPsr4 = ComposerStaticInite426deb88d2f68dc4c00943634b9e82f::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInite426deb88d2f68dc4c00943634b9e82f::$prefixDirsPsr4; + $loader->classMap = ComposerStaticInite426deb88d2f68dc4c00943634b9e82f::$classMap; }, null, ClassLoader::class); } From 3912b066e3cda4a3fd067569b65a8f7227c1ca4b Mon Sep 17 00:00:00 2001 From: CXPHP Date: Mon, 9 Apr 2018 11:07:45 +0800 Subject: [PATCH 130/153] =?UTF-8?q?[=E6=9B=B4=E6=96=B0]=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E6=8F=8F=E8=BF=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 5422fb4b5..b566c575d 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,12 @@ ThinkAdmin for PHP -- +大道致简 for ThinkAdmin + * ThinkAdmin 是一个基于 Thinkphp 5.1.x 开发的后台管理系统,集成后台系统常用功能。 * 项目安装及二次开发请参考 ThinkPHP 官方文档及下面的服务环境说明,数据库 sql 文件存放于项目根目录下。 >* 注意:项目测试请另行搭建环境并创建数据库(数据库配置 config/database.php), 切勿直接使用测试环境数据! ->* 如果系统提示“测试系统禁止操作等字样”,可以修改项目路由配置(route/route.php),清空里面的路由记录。 ->* 当前版本使用ThinkPHP5.1.x版本,对PHP版本要求不低于php5.6,具体请查阅ThinkPHP官方文档。 +>* 如果系统提示“测试系统禁止操作等字样”,可以修改项目路由配置(route/route.php), 清空里面的路由记录。 +>* 当前版本使用 ThinkPHP 5.1.x 版本,对PHP版本要求不低于php5.6,具体请查阅ThinkPHP官方文档。 Documentation From 78c51c4d70873dafc28aa0f118260dd214048772 Mon Sep 17 00:00:00 2001 From: Zou Date: Mon, 9 Apr 2018 11:10:08 +0800 Subject: [PATCH 131/153] =?UTF-8?q?[=E6=9B=B4=E6=96=B0]ComposerUpdate?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vendor/autoload.php | 2 +- vendor/composer/autoload_real.php | 14 +++++++------- vendor/composer/autoload_static.php | 8 ++++---- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/vendor/autoload.php b/vendor/autoload.php index 24920f0b5..80e825887 100644 --- a/vendor/autoload.php +++ b/vendor/autoload.php @@ -4,4 +4,4 @@ require_once __DIR__ . '/composer/autoload_real.php'; -return ComposerAutoloaderInite426deb88d2f68dc4c00943634b9e82f::getLoader(); +return ComposerAutoloaderInit43992a57ed87c49b4a47d76ebf3dabf5::getLoader(); diff --git a/vendor/composer/autoload_real.php b/vendor/composer/autoload_real.php index 76272b275..ed0d2f5ed 100644 --- a/vendor/composer/autoload_real.php +++ b/vendor/composer/autoload_real.php @@ -2,7 +2,7 @@ // autoload_real.php @generated by Composer -class ComposerAutoloaderInite426deb88d2f68dc4c00943634b9e82f +class ComposerAutoloaderInit43992a57ed87c49b4a47d76ebf3dabf5 { private static $loader; @@ -19,15 +19,15 @@ class ComposerAutoloaderInite426deb88d2f68dc4c00943634b9e82f return self::$loader; } - spl_autoload_register(array('ComposerAutoloaderInite426deb88d2f68dc4c00943634b9e82f', 'loadClassLoader'), true, true); + spl_autoload_register(array('ComposerAutoloaderInit43992a57ed87c49b4a47d76ebf3dabf5', 'loadClassLoader'), true, true); self::$loader = $loader = new \Composer\Autoload\ClassLoader(); - spl_autoload_unregister(array('ComposerAutoloaderInite426deb88d2f68dc4c00943634b9e82f', 'loadClassLoader')); + spl_autoload_unregister(array('ComposerAutoloaderInit43992a57ed87c49b4a47d76ebf3dabf5', 'loadClassLoader')); $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); if ($useStaticLoader) { require_once __DIR__ . '/autoload_static.php'; - call_user_func(\Composer\Autoload\ComposerStaticInite426deb88d2f68dc4c00943634b9e82f::getInitializer($loader)); + call_user_func(\Composer\Autoload\ComposerStaticInit43992a57ed87c49b4a47d76ebf3dabf5::getInitializer($loader)); } else { $map = require __DIR__ . '/autoload_namespaces.php'; foreach ($map as $namespace => $path) { @@ -48,19 +48,19 @@ class ComposerAutoloaderInite426deb88d2f68dc4c00943634b9e82f $loader->register(true); if ($useStaticLoader) { - $includeFiles = Composer\Autoload\ComposerStaticInite426deb88d2f68dc4c00943634b9e82f::$files; + $includeFiles = Composer\Autoload\ComposerStaticInit43992a57ed87c49b4a47d76ebf3dabf5::$files; } else { $includeFiles = require __DIR__ . '/autoload_files.php'; } foreach ($includeFiles as $fileIdentifier => $file) { - composerRequiree426deb88d2f68dc4c00943634b9e82f($fileIdentifier, $file); + composerRequire43992a57ed87c49b4a47d76ebf3dabf5($fileIdentifier, $file); } return $loader; } } -function composerRequiree426deb88d2f68dc4c00943634b9e82f($fileIdentifier, $file) +function composerRequire43992a57ed87c49b4a47d76ebf3dabf5($fileIdentifier, $file) { if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { require $file; diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index 5c81ed958..f037a7349 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -4,7 +4,7 @@ namespace Composer\Autoload; -class ComposerStaticInite426deb88d2f68dc4c00943634b9e82f +class ComposerStaticInit43992a57ed87c49b4a47d76ebf3dabf5 { public static $files = array ( '1cfd2761b63b0a29ed23657ea394cb2d' => __DIR__ . '/..' . '/topthink/think-captcha/src/helper.php', @@ -258,9 +258,9 @@ class ComposerStaticInite426deb88d2f68dc4c00943634b9e82f public static function getInitializer(ClassLoader $loader) { return \Closure::bind(function () use ($loader) { - $loader->prefixLengthsPsr4 = ComposerStaticInite426deb88d2f68dc4c00943634b9e82f::$prefixLengthsPsr4; - $loader->prefixDirsPsr4 = ComposerStaticInite426deb88d2f68dc4c00943634b9e82f::$prefixDirsPsr4; - $loader->classMap = ComposerStaticInite426deb88d2f68dc4c00943634b9e82f::$classMap; + $loader->prefixLengthsPsr4 = ComposerStaticInit43992a57ed87c49b4a47d76ebf3dabf5::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInit43992a57ed87c49b4a47d76ebf3dabf5::$prefixDirsPsr4; + $loader->classMap = ComposerStaticInit43992a57ed87c49b4a47d76ebf3dabf5::$classMap; }, null, ClassLoader::class); } From 5965240159d7da1127cebf806b4d497ec6e0eaa7 Mon Sep 17 00:00:00 2001 From: ThinkPHP Date: Mon, 9 Apr 2018 11:16:31 +0800 Subject: [PATCH 132/153] =?UTF-8?q?[=E6=9B=B4=E6=96=B0]=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E6=8F=8F=E8=BF=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b566c575d..86caa816a 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ ThinkAdmin for PHP -- -大道致简 for ThinkAdmin +## 大道至简·悟在天成 * ThinkAdmin 是一个基于 Thinkphp 5.1.x 开发的后台管理系统,集成后台系统常用功能。 * 项目安装及二次开发请参考 ThinkPHP 官方文档及下面的服务环境说明,数据库 sql 文件存放于项目根目录下。 From 4c40fdfcccd25a3f22acf6516b2b15708bf011db Mon Sep 17 00:00:00 2001 From: evalor Date: Mon, 9 Apr 2018 18:34:43 +0800 Subject: [PATCH 133/153] =?UTF-8?q?=E6=B7=BB=E5=8A=A0linux=E7=8E=AF?= =?UTF-8?q?=E5=A2=83=E5=88=9D=E5=A7=8B=E5=8C=96=E8=84=9A=E6=9C=AC=E5=B9=B6?= =?UTF-8?q?=E8=BF=81=E7=A7=BB=E8=84=9A=E6=9C=AC=E8=87=B3bin=E7=9B=AE?= =?UTF-8?q?=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bin/.htaccess | 2 ++ build.cmd => bin/build.cmd | 0 bin/build.sh | 37 +++++++++++++++++++++++++++++++++++++ 3 files changed, 39 insertions(+) create mode 100644 bin/.htaccess rename build.cmd => bin/build.cmd (100%) create mode 100644 bin/build.sh diff --git a/bin/.htaccess b/bin/.htaccess new file mode 100644 index 000000000..baa56e5a3 --- /dev/null +++ b/bin/.htaccess @@ -0,0 +1,2 @@ +order allow,deny +deny from all \ No newline at end of file diff --git a/build.cmd b/bin/build.cmd similarity index 100% rename from build.cmd rename to bin/build.cmd diff --git a/bin/build.sh b/bin/build.sh new file mode 100644 index 000000000..53ab9a613 --- /dev/null +++ b/bin/build.sh @@ -0,0 +1,37 @@ +#!/bin/bash +PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin +LANG=en_US.UTF-8 + +export PATH + +echo " ++---------------------------------------------------------------------- +| ThinkAdmin environmental preparation tools ++---------------------------------------------------------------------- +| GtiHub : https://github.com/zoujingli/ThinkAdmin ++---------------------------------------------------------------------- +| document : https://www.kancloud.cn/zoujingli/thinkadmin/323614 ++---------------------------------------------------------------------- +" + +hasComposer=`command -v composer` + +echo -e "\033[34mConfirm the existence of the command....\033[0m" + +if [ ! -f "${hasComposer}" ]; then +echo -e "\033[31mComposer Not Found! Initialization cannot continue. \033[0m" +exit +fi + +echo -e "\033[34mClean up the running environment....\033[0m" +rm -rf ./vendor +rm -rf ./thinkphp +rm -rf ./composer.lock + +echo -e "\033[34mComposer install....\033[0m" +composer install --profile --prefer-dist --optimize-autoloader + +echo -e "\033[34mMake Autoload....\033[0m" +composer dump-autoload --optimize + +echo -e "\033[31mEnvironmental preparation success!\033[0m" \ No newline at end of file From 024e470b4f6c395f4ac3a2f9d081e07e56c0ff45 Mon Sep 17 00:00:00 2001 From: Anyon Date: Mon, 9 Apr 2018 18:39:33 +0800 Subject: [PATCH 134/153] =?UTF-8?q?[=E6=9B=B4=E6=96=B0]=E6=A0=BC=E5=BC=8F?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- route/route.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/route/route.php b/route/route.php index 078c1107e..7cc9375f5 100644 --- a/route/route.php +++ b/route/route.php @@ -15,7 +15,7 @@ use think\facade\Route; /* 去除下面注释可启用禁用功能 */ - return []; +return []; /* 测试环境禁止操作路由绑定 */ Route::post('admin/user/pass', function () { From 1471ade3b862eca5451e4933c7b2f63e665ab983 Mon Sep 17 00:00:00 2001 From: ThinkPHP Date: Tue, 10 Apr 2018 14:48:00 +0800 Subject: [PATCH 135/153] =?UTF-8?q?[=E6=9B=B4=E6=96=B0]ComposerUpdate?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vendor/autoload.php | 2 +- vendor/composer/autoload_real.php | 14 +++++++------- vendor/composer/autoload_static.php | 8 ++++---- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/vendor/autoload.php b/vendor/autoload.php index 80e825887..0047111a6 100644 --- a/vendor/autoload.php +++ b/vendor/autoload.php @@ -4,4 +4,4 @@ require_once __DIR__ . '/composer/autoload_real.php'; -return ComposerAutoloaderInit43992a57ed87c49b4a47d76ebf3dabf5::getLoader(); +return ComposerAutoloaderInit33664714c3aeb065c5c84573408fd6a4::getLoader(); diff --git a/vendor/composer/autoload_real.php b/vendor/composer/autoload_real.php index ed0d2f5ed..0a545102f 100644 --- a/vendor/composer/autoload_real.php +++ b/vendor/composer/autoload_real.php @@ -2,7 +2,7 @@ // autoload_real.php @generated by Composer -class ComposerAutoloaderInit43992a57ed87c49b4a47d76ebf3dabf5 +class ComposerAutoloaderInit33664714c3aeb065c5c84573408fd6a4 { private static $loader; @@ -19,15 +19,15 @@ class ComposerAutoloaderInit43992a57ed87c49b4a47d76ebf3dabf5 return self::$loader; } - spl_autoload_register(array('ComposerAutoloaderInit43992a57ed87c49b4a47d76ebf3dabf5', 'loadClassLoader'), true, true); + spl_autoload_register(array('ComposerAutoloaderInit33664714c3aeb065c5c84573408fd6a4', 'loadClassLoader'), true, true); self::$loader = $loader = new \Composer\Autoload\ClassLoader(); - spl_autoload_unregister(array('ComposerAutoloaderInit43992a57ed87c49b4a47d76ebf3dabf5', 'loadClassLoader')); + spl_autoload_unregister(array('ComposerAutoloaderInit33664714c3aeb065c5c84573408fd6a4', 'loadClassLoader')); $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); if ($useStaticLoader) { require_once __DIR__ . '/autoload_static.php'; - call_user_func(\Composer\Autoload\ComposerStaticInit43992a57ed87c49b4a47d76ebf3dabf5::getInitializer($loader)); + call_user_func(\Composer\Autoload\ComposerStaticInit33664714c3aeb065c5c84573408fd6a4::getInitializer($loader)); } else { $map = require __DIR__ . '/autoload_namespaces.php'; foreach ($map as $namespace => $path) { @@ -48,19 +48,19 @@ class ComposerAutoloaderInit43992a57ed87c49b4a47d76ebf3dabf5 $loader->register(true); if ($useStaticLoader) { - $includeFiles = Composer\Autoload\ComposerStaticInit43992a57ed87c49b4a47d76ebf3dabf5::$files; + $includeFiles = Composer\Autoload\ComposerStaticInit33664714c3aeb065c5c84573408fd6a4::$files; } else { $includeFiles = require __DIR__ . '/autoload_files.php'; } foreach ($includeFiles as $fileIdentifier => $file) { - composerRequire43992a57ed87c49b4a47d76ebf3dabf5($fileIdentifier, $file); + composerRequire33664714c3aeb065c5c84573408fd6a4($fileIdentifier, $file); } return $loader; } } -function composerRequire43992a57ed87c49b4a47d76ebf3dabf5($fileIdentifier, $file) +function composerRequire33664714c3aeb065c5c84573408fd6a4($fileIdentifier, $file) { if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { require $file; diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index f037a7349..8bae52afa 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -4,7 +4,7 @@ namespace Composer\Autoload; -class ComposerStaticInit43992a57ed87c49b4a47d76ebf3dabf5 +class ComposerStaticInit33664714c3aeb065c5c84573408fd6a4 { public static $files = array ( '1cfd2761b63b0a29ed23657ea394cb2d' => __DIR__ . '/..' . '/topthink/think-captcha/src/helper.php', @@ -258,9 +258,9 @@ class ComposerStaticInit43992a57ed87c49b4a47d76ebf3dabf5 public static function getInitializer(ClassLoader $loader) { return \Closure::bind(function () use ($loader) { - $loader->prefixLengthsPsr4 = ComposerStaticInit43992a57ed87c49b4a47d76ebf3dabf5::$prefixLengthsPsr4; - $loader->prefixDirsPsr4 = ComposerStaticInit43992a57ed87c49b4a47d76ebf3dabf5::$prefixDirsPsr4; - $loader->classMap = ComposerStaticInit43992a57ed87c49b4a47d76ebf3dabf5::$classMap; + $loader->prefixLengthsPsr4 = ComposerStaticInit33664714c3aeb065c5c84573408fd6a4::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInit33664714c3aeb065c5c84573408fd6a4::$prefixDirsPsr4; + $loader->classMap = ComposerStaticInit33664714c3aeb065c5c84573408fd6a4::$classMap; }, null, ClassLoader::class); } From b88cb0384d3e4c742baa1e808d63d33d7b2b0972 Mon Sep 17 00:00:00 2001 From: Anyon Date: Wed, 11 Apr 2018 14:36:47 +0800 Subject: [PATCH 136/153] =?UTF-8?q?[=E6=9B=B4=E6=96=B0]=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=8D=95=E5=9B=BE=E7=89=87=E4=B8=8A=E4=BC=A0IE=E5=85=BC?= =?UTF-8?q?=E5=AE=B9=20#89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- static/admin.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/static/admin.js b/static/admin.js index 97900b3df..2f9b82cec 100644 --- a/static/admin.js +++ b/static/admin.js @@ -479,8 +479,8 @@ $(function () { var name = $(this).attr('name') || 'image'; var type = $(this).data('type') || 'png,jpg'; var $tpl = $(''); - $(this).hide().attr('name', name).after($tpl).on('change', function () { - $tpl.get(0).style = this.value ? 'background-image:url(' + this.value + ')' : ''; + $(this).attr('name', name).after($tpl).on('change', function () { + !!this.value && $tpl.css('backgroundImage', 'url(' + this.value + ')'); }).trigger('change'); }; @@ -489,7 +489,7 @@ $(function () { var type = $(this).data('type') || 'png,jpg'; var name = $(this).attr('name') || 'umt-image'; var $tpl = $(''); - $(this).hide().attr('name', name).after($tpl).on('change', function () { + $(this).attr('name', name).after($tpl).on('change', function () { var input = this, values = [], srcs = this.value.split('|'); $(this).prevAll('.uploadimage').map(function () { values.push($(this).attr('data-tips-image')); From d4ff09fb7ce24fa5535c922942120205f8c6452e Mon Sep 17 00:00:00 2001 From: Anyon Date: Wed, 11 Apr 2018 14:38:26 +0800 Subject: [PATCH 137/153] =?UTF-8?q?[=E6=9B=B4=E6=96=B0]=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E5=95=86=E5=93=81=E7=BC=96=E8=BE=91=E5=9B=9E=E8=B7=B3=E5=9C=B0?= =?UTF-8?q?=E5=9D=80=20=20#95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/goods/controller/Product.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/application/goods/controller/Product.php b/application/goods/controller/Product.php index bee714380..1c0042f75 100644 --- a/application/goods/controller/Product.php +++ b/application/goods/controller/Product.php @@ -105,7 +105,7 @@ class Product extends BasicAdmin } catch (\Exception $e) { $this->error('产品添加失败,请稍候再试!'); } - list($base, $spm, $url) = [url('@admin'), $this->request->get('spm'), url('store/goods/index')]; + list($base, $spm, $url) = [url('@admin'), $this->request->get('spm'), url('goods/product/index')]; $this->success('添加产品成功!', "{$base}#{$url}?spm={$spm}"); } From 1f103c53abfb4f2a2af454f0ba6402fbe3032634 Mon Sep 17 00:00:00 2001 From: Anyon Date: Wed, 11 Apr 2018 14:44:43 +0800 Subject: [PATCH 138/153] =?UTF-8?q?[=E6=9B=B4=E6=96=B0]=E7=A7=BB=E5=8A=A8b?= =?UTF-8?q?uild=E5=B7=A5=E5=85=B7=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bin/.htaccess | 2 -- bin/build.cmd => build.cmd | 0 bin/build.sh => build.sh | 0 3 files changed, 2 deletions(-) delete mode 100644 bin/.htaccess rename bin/build.cmd => build.cmd (100%) rename bin/build.sh => build.sh (100%) diff --git a/bin/.htaccess b/bin/.htaccess deleted file mode 100644 index baa56e5a3..000000000 --- a/bin/.htaccess +++ /dev/null @@ -1,2 +0,0 @@ -order allow,deny -deny from all \ No newline at end of file diff --git a/bin/build.cmd b/build.cmd similarity index 100% rename from bin/build.cmd rename to build.cmd diff --git a/bin/build.sh b/build.sh similarity index 100% rename from bin/build.sh rename to build.sh From bb564d240c6e65c6decea52199cc98a961dbfa05 Mon Sep 17 00:00:00 2001 From: Anyon Date: Wed, 11 Apr 2018 14:47:09 +0800 Subject: [PATCH 139/153] =?UTF-8?q?[=E6=9B=B4=E6=96=B0]=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E6=8F=8F=E8=BF=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 86caa816a..77b4c23bd 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ ThinkAdmin for PHP -- -## 大道至简·悟在天成 +## 大道至简 · 悟在天成 * ThinkAdmin 是一个基于 Thinkphp 5.1.x 开发的后台管理系统,集成后台系统常用功能。 * 项目安装及二次开发请参考 ThinkPHP 官方文档及下面的服务环境说明,数据库 sql 文件存放于项目根目录下。 From 6825f83aba770eee7261050987bb6fe83ad86cdd Mon Sep 17 00:00:00 2001 From: Anyon Date: Thu, 12 Apr 2018 16:16:04 +0800 Subject: [PATCH 140/153] =?UTF-8?q?[=E6=9B=B4=E6=96=B0]=E5=8E=BB=E9=99=A4?= =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E5=9B=BE=E7=89=87=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- static/plugs/ckeditor/config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/static/plugs/ckeditor/config.js b/static/plugs/ckeditor/config.js index 1572676f4..76a825266 100644 --- a/static/plugs/ckeditor/config.js +++ b/static/plugs/ckeditor/config.js @@ -27,7 +27,7 @@ var field = '_editor_upload_' + Math.floor(Math.random() * 100000); var url = window.ROOT_URL + '/index.php/admin/plugs/upfile.html?mode=one&type=png,jpg,gif,jpeg&field=' + field; $('').attr('name', field).appendTo(editor.element.$).on('change', function () { - var element = CKEDITOR.dom.element.createFromHtml(''); + var element = CKEDITOR.dom.element.createFromHtml(''); editor.insertElement(element), $(this).remove(); }); $.form.iframe(url, '插入图片'); From 7f4e9ca7fb0f3a4accf434bcc778ab81d2338365 Mon Sep 17 00:00:00 2001 From: Anyon Date: Thu, 12 Apr 2018 16:26:22 +0800 Subject: [PATCH 141/153] =?UTF-8?q?[=E6=9B=B4=E6=96=B0]=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E4=BA=A7=E5=93=81=E5=93=81=E7=89=8C=E8=A1=A8=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/goods/view/brand/form.html | 47 +++++++++++++++++--------- 1 file changed, 31 insertions(+), 16 deletions(-) diff --git a/application/goods/view/brand/form.html b/application/goods/view/brand/form.html index eb8e086e9..9db6c4522 100644 --- a/application/goods/view/brand/form.html +++ b/application/goods/view/brand/form.html @@ -11,23 +11,28 @@
          - +
          -
          -
          -

          品牌Logo图片

          - - -
          -
          - -
          -
          -

          品牌封面图片

          - - -
          -
          + + + + + + + + + + + + + +
          品牌LOGO品牌图片
          + + + + + +
          @@ -63,5 +68,15 @@ window.createEditor('[name="brand_detail"]', {height: 500}); }); + {/block} \ No newline at end of file From 564b2c27db4c1e7c2f4e5b16f221c1c79e88c11e Mon Sep 17 00:00:00 2001 From: Anyon Date: Thu, 12 Apr 2018 16:55:32 +0800 Subject: [PATCH 142/153] =?UTF-8?q?[=E6=9B=B4=E6=96=B0]ComposerUpdate?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- thinkphp/lang/zh-cn.php | 1 + thinkphp/library/think/App.php | 10 +- thinkphp/library/think/Db.php | 1 + thinkphp/library/think/Loader.php | 38 +- thinkphp/library/think/Model.php | 19 +- thinkphp/library/think/Request.php | 13 +- thinkphp/library/think/Validate.php | 2 +- thinkphp/library/think/db/Builder.php | 83 +-- thinkphp/library/think/db/Connection.php | 4 +- thinkphp/library/think/db/Query.php | 27 +- thinkphp/library/think/db/builder/Mysql.php | 7 +- thinkphp/library/think/db/builder/Pgsql.php | 3 +- thinkphp/library/think/db/builder/Sqlite.php | 3 +- thinkphp/library/think/db/builder/Sqlsrv.php | 52 +- .../think/model/concern/SoftDelete.php | 38 +- thinkphp/library/think/route/Rule.php | 2 +- thinkphp/library/think/route/RuleGroup.php | 2 +- thinkphp/library/think/route/RuleItem.php | 2 +- .../library/think/route/dispatch/Module.php | 15 +- thinkphp/library/think/view/driver/Php.php | 10 +- thinkphp/library/think/view/driver/Think.php | 11 +- vendor/aliyuncs/oss-sdk-php/build-phar.sh | 0 vendor/autoload.php | 2 +- vendor/composer/ClassLoader.php | 4 +- vendor/composer/autoload_files.php | 2 +- vendor/composer/autoload_real.php | 14 +- vendor/composer/autoload_static.php | 10 +- vendor/composer/installed.json | 684 +++++++++--------- vendor/endroid/qr-code/.travis.yml | 42 +- vendor/endroid/qr-code/README.md | 264 +++---- .../endroid/qr-code/assets/data/qrv10_0.dat | Bin .../endroid/qr-code/assets/data/qrv10_1.dat | Bin .../endroid/qr-code/assets/data/qrv10_2.dat | Bin .../endroid/qr-code/assets/data/qrv10_3.dat | Bin .../endroid/qr-code/assets/data/qrv11_0.dat | Bin .../endroid/qr-code/assets/data/qrv11_1.dat | Bin .../endroid/qr-code/assets/data/qrv11_2.dat | Bin .../endroid/qr-code/assets/data/qrv11_3.dat | Bin .../endroid/qr-code/assets/data/qrv12_0.dat | Bin .../endroid/qr-code/assets/data/qrv12_1.dat | Bin .../endroid/qr-code/assets/data/qrv12_2.dat | Bin .../endroid/qr-code/assets/data/qrv12_3.dat | Bin .../endroid/qr-code/assets/data/qrv13_0.dat | Bin .../endroid/qr-code/assets/data/qrv13_1.dat | Bin .../endroid/qr-code/assets/data/qrv13_2.dat | Bin .../endroid/qr-code/assets/data/qrv13_3.dat | Bin .../endroid/qr-code/assets/data/qrv14_0.dat | Bin .../endroid/qr-code/assets/data/qrv14_1.dat | Bin .../endroid/qr-code/assets/data/qrv14_2.dat | Bin .../endroid/qr-code/assets/data/qrv14_3.dat | Bin .../endroid/qr-code/assets/data/qrv15_0.dat | Bin .../endroid/qr-code/assets/data/qrv15_1.dat | Bin .../endroid/qr-code/assets/data/qrv15_2.dat | Bin .../endroid/qr-code/assets/data/qrv15_3.dat | Bin .../endroid/qr-code/assets/data/qrv16_0.dat | Bin .../endroid/qr-code/assets/data/qrv16_1.dat | Bin .../endroid/qr-code/assets/data/qrv16_2.dat | Bin .../endroid/qr-code/assets/data/qrv16_3.dat | Bin .../endroid/qr-code/assets/data/qrv17_0.dat | Bin .../endroid/qr-code/assets/data/qrv17_1.dat | Bin .../endroid/qr-code/assets/data/qrv17_2.dat | Bin .../endroid/qr-code/assets/data/qrv17_3.dat | Bin .../endroid/qr-code/assets/data/qrv18_0.dat | Bin .../endroid/qr-code/assets/data/qrv18_1.dat | Bin .../endroid/qr-code/assets/data/qrv18_2.dat | Bin .../endroid/qr-code/assets/data/qrv18_3.dat | Bin .../endroid/qr-code/assets/data/qrv19_0.dat | Bin .../endroid/qr-code/assets/data/qrv19_1.dat | Bin .../endroid/qr-code/assets/data/qrv19_2.dat | Bin .../endroid/qr-code/assets/data/qrv19_3.dat | Bin vendor/endroid/qr-code/assets/data/qrv1_0.dat | Bin vendor/endroid/qr-code/assets/data/qrv1_1.dat | Bin vendor/endroid/qr-code/assets/data/qrv1_2.dat | Bin vendor/endroid/qr-code/assets/data/qrv1_3.dat | Bin .../endroid/qr-code/assets/data/qrv20_0.dat | Bin .../endroid/qr-code/assets/data/qrv20_1.dat | Bin .../endroid/qr-code/assets/data/qrv20_2.dat | Bin .../endroid/qr-code/assets/data/qrv20_3.dat | Bin .../endroid/qr-code/assets/data/qrv21_0.dat | Bin .../endroid/qr-code/assets/data/qrv21_1.dat | Bin .../endroid/qr-code/assets/data/qrv21_2.dat | Bin .../endroid/qr-code/assets/data/qrv21_3.dat | Bin .../endroid/qr-code/assets/data/qrv22_0.dat | Bin .../endroid/qr-code/assets/data/qrv22_1.dat | 0 .../endroid/qr-code/assets/data/qrv22_2.dat | Bin .../endroid/qr-code/assets/data/qrv22_3.dat | Bin .../endroid/qr-code/assets/data/qrv23_0.dat | Bin .../endroid/qr-code/assets/data/qrv23_1.dat | 0 .../endroid/qr-code/assets/data/qrv23_2.dat | Bin .../endroid/qr-code/assets/data/qrv23_3.dat | Bin .../endroid/qr-code/assets/data/qrv24_0.dat | Bin .../endroid/qr-code/assets/data/qrv24_1.dat | 0 .../endroid/qr-code/assets/data/qrv24_2.dat | Bin .../endroid/qr-code/assets/data/qrv24_3.dat | Bin .../endroid/qr-code/assets/data/qrv25_0.dat | 0 .../endroid/qr-code/assets/data/qrv25_1.dat | 0 .../endroid/qr-code/assets/data/qrv25_2.dat | Bin .../endroid/qr-code/assets/data/qrv25_3.dat | Bin .../endroid/qr-code/assets/data/qrv26_0.dat | 0 .../endroid/qr-code/assets/data/qrv26_1.dat | 0 .../endroid/qr-code/assets/data/qrv26_2.dat | Bin .../endroid/qr-code/assets/data/qrv26_3.dat | 0 .../endroid/qr-code/assets/data/qrv27_0.dat | 0 .../endroid/qr-code/assets/data/qrv27_1.dat | 0 .../endroid/qr-code/assets/data/qrv27_2.dat | 0 .../endroid/qr-code/assets/data/qrv27_3.dat | 0 .../endroid/qr-code/assets/data/qrv28_0.dat | 0 .../endroid/qr-code/assets/data/qrv28_1.dat | 0 .../endroid/qr-code/assets/data/qrv28_2.dat | 0 .../endroid/qr-code/assets/data/qrv28_3.dat | 0 .../endroid/qr-code/assets/data/qrv29_0.dat | 0 .../endroid/qr-code/assets/data/qrv29_1.dat | 0 .../endroid/qr-code/assets/data/qrv29_2.dat | 0 .../endroid/qr-code/assets/data/qrv29_3.dat | 0 vendor/endroid/qr-code/assets/data/qrv2_0.dat | Bin vendor/endroid/qr-code/assets/data/qrv2_1.dat | Bin vendor/endroid/qr-code/assets/data/qrv2_2.dat | Bin vendor/endroid/qr-code/assets/data/qrv2_3.dat | Bin .../endroid/qr-code/assets/data/qrv30_0.dat | 0 .../endroid/qr-code/assets/data/qrv30_1.dat | 0 .../endroid/qr-code/assets/data/qrv30_2.dat | 0 .../endroid/qr-code/assets/data/qrv30_3.dat | 0 .../endroid/qr-code/assets/data/qrv31_0.dat | 0 .../endroid/qr-code/assets/data/qrv31_1.dat | 0 .../endroid/qr-code/assets/data/qrv31_2.dat | 0 .../endroid/qr-code/assets/data/qrv31_3.dat | 0 .../endroid/qr-code/assets/data/qrv32_0.dat | 0 .../endroid/qr-code/assets/data/qrv32_1.dat | 0 .../endroid/qr-code/assets/data/qrv32_2.dat | 0 .../endroid/qr-code/assets/data/qrv32_3.dat | 0 .../endroid/qr-code/assets/data/qrv33_0.dat | 0 .../endroid/qr-code/assets/data/qrv33_1.dat | 0 .../endroid/qr-code/assets/data/qrv33_2.dat | 0 .../endroid/qr-code/assets/data/qrv33_3.dat | 0 .../endroid/qr-code/assets/data/qrv34_0.dat | 0 .../endroid/qr-code/assets/data/qrv34_1.dat | 0 .../endroid/qr-code/assets/data/qrv34_2.dat | 0 .../endroid/qr-code/assets/data/qrv34_3.dat | 0 .../endroid/qr-code/assets/data/qrv35_0.dat | 0 .../endroid/qr-code/assets/data/qrv35_1.dat | 0 .../endroid/qr-code/assets/data/qrv35_2.dat | 0 .../endroid/qr-code/assets/data/qrv35_3.dat | 0 .../endroid/qr-code/assets/data/qrv36_0.dat | 0 .../endroid/qr-code/assets/data/qrv36_1.dat | 0 .../endroid/qr-code/assets/data/qrv36_2.dat | 0 .../endroid/qr-code/assets/data/qrv36_3.dat | 0 .../endroid/qr-code/assets/data/qrv37_0.dat | 0 .../endroid/qr-code/assets/data/qrv37_1.dat | 0 .../endroid/qr-code/assets/data/qrv37_2.dat | 0 .../endroid/qr-code/assets/data/qrv37_3.dat | 0 .../endroid/qr-code/assets/data/qrv38_0.dat | 0 .../endroid/qr-code/assets/data/qrv38_1.dat | 0 .../endroid/qr-code/assets/data/qrv38_2.dat | 0 .../endroid/qr-code/assets/data/qrv38_3.dat | 0 .../endroid/qr-code/assets/data/qrv39_0.dat | 0 .../endroid/qr-code/assets/data/qrv39_1.dat | 0 .../endroid/qr-code/assets/data/qrv39_2.dat | 0 .../endroid/qr-code/assets/data/qrv39_3.dat | 0 vendor/endroid/qr-code/assets/data/qrv3_0.dat | Bin vendor/endroid/qr-code/assets/data/qrv3_1.dat | Bin vendor/endroid/qr-code/assets/data/qrv3_2.dat | Bin vendor/endroid/qr-code/assets/data/qrv3_3.dat | Bin .../endroid/qr-code/assets/data/qrv40_0.dat | 0 .../endroid/qr-code/assets/data/qrv40_1.dat | 0 .../endroid/qr-code/assets/data/qrv40_2.dat | 0 .../endroid/qr-code/assets/data/qrv40_3.dat | 0 vendor/endroid/qr-code/assets/data/qrv4_0.dat | Bin vendor/endroid/qr-code/assets/data/qrv4_1.dat | Bin vendor/endroid/qr-code/assets/data/qrv4_2.dat | Bin vendor/endroid/qr-code/assets/data/qrv4_3.dat | Bin vendor/endroid/qr-code/assets/data/qrv5_0.dat | Bin vendor/endroid/qr-code/assets/data/qrv5_1.dat | Bin vendor/endroid/qr-code/assets/data/qrv5_2.dat | Bin vendor/endroid/qr-code/assets/data/qrv5_3.dat | Bin vendor/endroid/qr-code/assets/data/qrv6_0.dat | Bin vendor/endroid/qr-code/assets/data/qrv6_1.dat | Bin vendor/endroid/qr-code/assets/data/qrv6_2.dat | Bin vendor/endroid/qr-code/assets/data/qrv6_3.dat | Bin vendor/endroid/qr-code/assets/data/qrv7_0.dat | Bin vendor/endroid/qr-code/assets/data/qrv7_1.dat | Bin vendor/endroid/qr-code/assets/data/qrv7_2.dat | Bin vendor/endroid/qr-code/assets/data/qrv7_3.dat | Bin vendor/endroid/qr-code/assets/data/qrv8_0.dat | Bin vendor/endroid/qr-code/assets/data/qrv8_1.dat | Bin vendor/endroid/qr-code/assets/data/qrv8_2.dat | Bin vendor/endroid/qr-code/assets/data/qrv8_3.dat | Bin vendor/endroid/qr-code/assets/data/qrv9_0.dat | Bin vendor/endroid/qr-code/assets/data/qrv9_1.dat | Bin vendor/endroid/qr-code/assets/data/qrv9_2.dat | Bin vendor/endroid/qr-code/assets/data/qrv9_3.dat | Bin vendor/endroid/qr-code/assets/data/qrvfr1.dat | 0 .../endroid/qr-code/assets/data/qrvfr10.dat | 0 .../endroid/qr-code/assets/data/qrvfr11.dat | 0 .../endroid/qr-code/assets/data/qrvfr12.dat | 0 .../endroid/qr-code/assets/data/qrvfr13.dat | 0 .../endroid/qr-code/assets/data/qrvfr14.dat | 0 .../endroid/qr-code/assets/data/qrvfr15.dat | 0 .../endroid/qr-code/assets/data/qrvfr16.dat | 0 .../endroid/qr-code/assets/data/qrvfr17.dat | 0 .../endroid/qr-code/assets/data/qrvfr18.dat | 0 .../endroid/qr-code/assets/data/qrvfr19.dat | 0 vendor/endroid/qr-code/assets/data/qrvfr2.dat | 0 .../endroid/qr-code/assets/data/qrvfr20.dat | 0 .../endroid/qr-code/assets/data/qrvfr21.dat | 0 .../endroid/qr-code/assets/data/qrvfr22.dat | 0 .../endroid/qr-code/assets/data/qrvfr23.dat | 0 .../endroid/qr-code/assets/data/qrvfr24.dat | 0 .../endroid/qr-code/assets/data/qrvfr25.dat | 0 .../endroid/qr-code/assets/data/qrvfr26.dat | 0 .../endroid/qr-code/assets/data/qrvfr27.dat | 0 .../endroid/qr-code/assets/data/qrvfr28.dat | 0 .../endroid/qr-code/assets/data/qrvfr29.dat | 0 vendor/endroid/qr-code/assets/data/qrvfr3.dat | 0 .../endroid/qr-code/assets/data/qrvfr30.dat | 0 .../endroid/qr-code/assets/data/qrvfr31.dat | 0 .../endroid/qr-code/assets/data/qrvfr32.dat | 0 .../endroid/qr-code/assets/data/qrvfr33.dat | 0 .../endroid/qr-code/assets/data/qrvfr34.dat | 0 .../endroid/qr-code/assets/data/qrvfr35.dat | 0 .../endroid/qr-code/assets/data/qrvfr36.dat | 0 .../endroid/qr-code/assets/data/qrvfr37.dat | 0 .../endroid/qr-code/assets/data/qrvfr38.dat | 0 .../endroid/qr-code/assets/data/qrvfr39.dat | 0 vendor/endroid/qr-code/assets/data/qrvfr4.dat | 0 .../endroid/qr-code/assets/data/qrvfr40.dat | 0 vendor/endroid/qr-code/assets/data/qrvfr5.dat | 0 vendor/endroid/qr-code/assets/data/qrvfr6.dat | 0 vendor/endroid/qr-code/assets/data/qrvfr7.dat | 0 vendor/endroid/qr-code/assets/data/qrvfr8.dat | 0 vendor/endroid/qr-code/assets/data/qrvfr9.dat | 0 vendor/endroid/qr-code/assets/data/rsc10.dat | 0 vendor/endroid/qr-code/assets/data/rsc13.dat | 0 vendor/endroid/qr-code/assets/data/rsc15.dat | 0 vendor/endroid/qr-code/assets/data/rsc16.dat | 0 vendor/endroid/qr-code/assets/data/rsc17.dat | 0 vendor/endroid/qr-code/assets/data/rsc18.dat | 0 vendor/endroid/qr-code/assets/data/rsc20.dat | 0 vendor/endroid/qr-code/assets/data/rsc22.dat | 0 vendor/endroid/qr-code/assets/data/rsc24.dat | 0 vendor/endroid/qr-code/assets/data/rsc26.dat | 0 vendor/endroid/qr-code/assets/data/rsc28.dat | 0 vendor/endroid/qr-code/assets/data/rsc30.dat | 0 vendor/endroid/qr-code/assets/data/rsc32.dat | 0 vendor/endroid/qr-code/assets/data/rsc34.dat | 0 vendor/endroid/qr-code/assets/data/rsc36.dat | 0 vendor/endroid/qr-code/assets/data/rsc40.dat | 0 vendor/endroid/qr-code/assets/data/rsc42.dat | 0 vendor/endroid/qr-code/assets/data/rsc44.dat | 0 vendor/endroid/qr-code/assets/data/rsc46.dat | 0 vendor/endroid/qr-code/assets/data/rsc48.dat | 0 vendor/endroid/qr-code/assets/data/rsc50.dat | 0 vendor/endroid/qr-code/assets/data/rsc52.dat | 0 vendor/endroid/qr-code/assets/data/rsc54.dat | 0 vendor/endroid/qr-code/assets/data/rsc56.dat | 0 vendor/endroid/qr-code/assets/data/rsc58.dat | 0 vendor/endroid/qr-code/assets/data/rsc60.dat | 0 vendor/endroid/qr-code/assets/data/rsc62.dat | 0 vendor/endroid/qr-code/assets/data/rsc64.dat | 0 vendor/endroid/qr-code/assets/data/rsc66.dat | 0 vendor/endroid/qr-code/assets/data/rsc68.dat | 0 vendor/endroid/qr-code/assets/data/rsc7.dat | 0 .../endroid/qr-code/assets/font/opensans.ttf | Bin vendor/endroid/qr-code/assets/image/b.png | Bin vendor/endroid/qr-code/assets/image/d.png | Bin vendor/endroid/qr-code/assets/image/logo.png | Bin vendor/endroid/qr-code/assets/image/qrv1.png | Bin vendor/endroid/qr-code/assets/image/qrv10.png | Bin vendor/endroid/qr-code/assets/image/qrv11.png | Bin vendor/endroid/qr-code/assets/image/qrv12.png | Bin vendor/endroid/qr-code/assets/image/qrv13.png | Bin vendor/endroid/qr-code/assets/image/qrv14.png | Bin vendor/endroid/qr-code/assets/image/qrv15.png | Bin vendor/endroid/qr-code/assets/image/qrv16.png | Bin vendor/endroid/qr-code/assets/image/qrv17.png | Bin vendor/endroid/qr-code/assets/image/qrv18.png | Bin vendor/endroid/qr-code/assets/image/qrv19.png | Bin vendor/endroid/qr-code/assets/image/qrv2.png | Bin vendor/endroid/qr-code/assets/image/qrv20.png | Bin vendor/endroid/qr-code/assets/image/qrv21.png | Bin vendor/endroid/qr-code/assets/image/qrv22.png | Bin vendor/endroid/qr-code/assets/image/qrv23.png | Bin vendor/endroid/qr-code/assets/image/qrv24.png | Bin vendor/endroid/qr-code/assets/image/qrv25.png | Bin vendor/endroid/qr-code/assets/image/qrv26.png | Bin vendor/endroid/qr-code/assets/image/qrv27.png | Bin vendor/endroid/qr-code/assets/image/qrv28.png | Bin vendor/endroid/qr-code/assets/image/qrv29.png | Bin vendor/endroid/qr-code/assets/image/qrv3.png | Bin vendor/endroid/qr-code/assets/image/qrv30.png | Bin vendor/endroid/qr-code/assets/image/qrv31.png | Bin vendor/endroid/qr-code/assets/image/qrv32.png | Bin vendor/endroid/qr-code/assets/image/qrv33.png | Bin vendor/endroid/qr-code/assets/image/qrv34.png | Bin vendor/endroid/qr-code/assets/image/qrv35.png | Bin vendor/endroid/qr-code/assets/image/qrv36.png | Bin vendor/endroid/qr-code/assets/image/qrv37.png | Bin vendor/endroid/qr-code/assets/image/qrv38.png | Bin vendor/endroid/qr-code/assets/image/qrv39.png | Bin vendor/endroid/qr-code/assets/image/qrv4.png | Bin vendor/endroid/qr-code/assets/image/qrv40.png | Bin vendor/endroid/qr-code/assets/image/qrv5.png | Bin vendor/endroid/qr-code/assets/image/qrv6.png | Bin vendor/endroid/qr-code/assets/image/qrv7.png | Bin vendor/endroid/qr-code/assets/image/qrv8.png | Bin vendor/endroid/qr-code/assets/image/qrv9.png | Bin vendor/endroid/qr-code/composer.json | 0 .../Bundle/Controller/QrCodeController.php | 0 .../DependencyInjection/Configuration.php | 0 .../src/Bundle/Resources/config/services.yml | 0 .../Bundle/Twig/Extension/QrCodeExtension.php | 0 .../Exceptions/DataDoesntExistsException.php | 0 .../FreeTypeLibraryMissingException.php | 0 .../ImageFunctionFailedException.php | 0 .../ImageFunctionUnknownException.php | 0 .../Exceptions/ImageSizeTooLargeException.php | 0 .../Exceptions/ImageTypeInvalidException.php | 0 .../Exceptions/VersionTooLargeException.php | 0 vendor/endroid/qr-code/src/QrCode.php | 0 vendor/endroid/qr-code/tests/QrCodeTest.php | 0 vendor/qiniu/php-sdk/test-env.sh | 0 vendor/zoujingli/ip2region/test.php | 28 +- .../zoujingli/wechat-developer/WeChat/Pay.php | 20 +- 322 files changed, 756 insertions(+), 657 deletions(-) mode change 100644 => 100755 vendor/aliyuncs/oss-sdk-php/build-phar.sh mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv10_0.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv10_1.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv10_2.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv10_3.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv11_0.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv11_1.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv11_2.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv11_3.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv12_0.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv12_1.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv12_2.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv12_3.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv13_0.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv13_1.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv13_2.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv13_3.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv14_0.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv14_1.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv14_2.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv14_3.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv15_0.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv15_1.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv15_2.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv15_3.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv16_0.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv16_1.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv16_2.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv16_3.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv17_0.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv17_1.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv17_2.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv17_3.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv18_0.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv18_1.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv18_2.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv18_3.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv19_0.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv19_1.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv19_2.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv19_3.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv1_0.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv1_1.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv1_2.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv1_3.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv20_0.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv20_1.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv20_2.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv20_3.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv21_0.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv21_1.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv21_2.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv21_3.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv22_0.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv22_1.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv22_2.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv22_3.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv23_0.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv23_1.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv23_2.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv23_3.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv24_0.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv24_1.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv24_2.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv24_3.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv25_0.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv25_1.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv25_2.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv25_3.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv26_0.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv26_1.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv26_2.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv26_3.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv27_0.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv27_1.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv27_2.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv27_3.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv28_0.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv28_1.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv28_2.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv28_3.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv29_0.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv29_1.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv29_2.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv29_3.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv2_0.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv2_1.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv2_2.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv2_3.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv30_0.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv30_1.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv30_2.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv30_3.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv31_0.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv31_1.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv31_2.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv31_3.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv32_0.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv32_1.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv32_2.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv32_3.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv33_0.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv33_1.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv33_2.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv33_3.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv34_0.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv34_1.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv34_2.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv34_3.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv35_0.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv35_1.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv35_2.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv35_3.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv36_0.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv36_1.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv36_2.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv36_3.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv37_0.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv37_1.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv37_2.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv37_3.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv38_0.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv38_1.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv38_2.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv38_3.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv39_0.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv39_1.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv39_2.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv39_3.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv3_0.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv3_1.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv3_2.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv3_3.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv40_0.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv40_1.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv40_2.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv40_3.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv4_0.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv4_1.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv4_2.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv4_3.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv5_0.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv5_1.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv5_2.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv5_3.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv6_0.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv6_1.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv6_2.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv6_3.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv7_0.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv7_1.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv7_2.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv7_3.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv8_0.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv8_1.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv8_2.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv8_3.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv9_0.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv9_1.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv9_2.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrv9_3.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrvfr1.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrvfr10.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrvfr11.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrvfr12.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrvfr13.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrvfr14.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrvfr15.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrvfr16.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrvfr17.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrvfr18.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrvfr19.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrvfr2.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrvfr20.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrvfr21.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrvfr22.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrvfr23.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrvfr24.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrvfr25.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrvfr26.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrvfr27.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrvfr28.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrvfr29.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrvfr3.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrvfr30.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrvfr31.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrvfr32.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrvfr33.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrvfr34.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrvfr35.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrvfr36.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrvfr37.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrvfr38.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrvfr39.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrvfr4.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrvfr40.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrvfr5.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrvfr6.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrvfr7.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrvfr8.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/qrvfr9.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/rsc10.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/rsc13.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/rsc15.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/rsc16.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/rsc17.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/rsc18.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/rsc20.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/rsc22.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/rsc24.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/rsc26.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/rsc28.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/rsc30.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/rsc32.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/rsc34.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/rsc36.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/rsc40.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/rsc42.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/rsc44.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/rsc46.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/rsc48.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/rsc50.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/rsc52.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/rsc54.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/rsc56.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/rsc58.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/rsc60.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/rsc62.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/rsc64.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/rsc66.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/rsc68.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/data/rsc7.dat mode change 100644 => 100755 vendor/endroid/qr-code/assets/font/opensans.ttf mode change 100644 => 100755 vendor/endroid/qr-code/assets/image/b.png mode change 100644 => 100755 vendor/endroid/qr-code/assets/image/d.png mode change 100644 => 100755 vendor/endroid/qr-code/assets/image/logo.png mode change 100644 => 100755 vendor/endroid/qr-code/assets/image/qrv1.png mode change 100644 => 100755 vendor/endroid/qr-code/assets/image/qrv10.png mode change 100644 => 100755 vendor/endroid/qr-code/assets/image/qrv11.png mode change 100644 => 100755 vendor/endroid/qr-code/assets/image/qrv12.png mode change 100644 => 100755 vendor/endroid/qr-code/assets/image/qrv13.png mode change 100644 => 100755 vendor/endroid/qr-code/assets/image/qrv14.png mode change 100644 => 100755 vendor/endroid/qr-code/assets/image/qrv15.png mode change 100644 => 100755 vendor/endroid/qr-code/assets/image/qrv16.png mode change 100644 => 100755 vendor/endroid/qr-code/assets/image/qrv17.png mode change 100644 => 100755 vendor/endroid/qr-code/assets/image/qrv18.png mode change 100644 => 100755 vendor/endroid/qr-code/assets/image/qrv19.png mode change 100644 => 100755 vendor/endroid/qr-code/assets/image/qrv2.png mode change 100644 => 100755 vendor/endroid/qr-code/assets/image/qrv20.png mode change 100644 => 100755 vendor/endroid/qr-code/assets/image/qrv21.png mode change 100644 => 100755 vendor/endroid/qr-code/assets/image/qrv22.png mode change 100644 => 100755 vendor/endroid/qr-code/assets/image/qrv23.png mode change 100644 => 100755 vendor/endroid/qr-code/assets/image/qrv24.png mode change 100644 => 100755 vendor/endroid/qr-code/assets/image/qrv25.png mode change 100644 => 100755 vendor/endroid/qr-code/assets/image/qrv26.png mode change 100644 => 100755 vendor/endroid/qr-code/assets/image/qrv27.png mode change 100644 => 100755 vendor/endroid/qr-code/assets/image/qrv28.png mode change 100644 => 100755 vendor/endroid/qr-code/assets/image/qrv29.png mode change 100644 => 100755 vendor/endroid/qr-code/assets/image/qrv3.png mode change 100644 => 100755 vendor/endroid/qr-code/assets/image/qrv30.png mode change 100644 => 100755 vendor/endroid/qr-code/assets/image/qrv31.png mode change 100644 => 100755 vendor/endroid/qr-code/assets/image/qrv32.png mode change 100644 => 100755 vendor/endroid/qr-code/assets/image/qrv33.png mode change 100644 => 100755 vendor/endroid/qr-code/assets/image/qrv34.png mode change 100644 => 100755 vendor/endroid/qr-code/assets/image/qrv35.png mode change 100644 => 100755 vendor/endroid/qr-code/assets/image/qrv36.png mode change 100644 => 100755 vendor/endroid/qr-code/assets/image/qrv37.png mode change 100644 => 100755 vendor/endroid/qr-code/assets/image/qrv38.png mode change 100644 => 100755 vendor/endroid/qr-code/assets/image/qrv39.png mode change 100644 => 100755 vendor/endroid/qr-code/assets/image/qrv4.png mode change 100644 => 100755 vendor/endroid/qr-code/assets/image/qrv40.png mode change 100644 => 100755 vendor/endroid/qr-code/assets/image/qrv5.png mode change 100644 => 100755 vendor/endroid/qr-code/assets/image/qrv6.png mode change 100644 => 100755 vendor/endroid/qr-code/assets/image/qrv7.png mode change 100644 => 100755 vendor/endroid/qr-code/assets/image/qrv8.png mode change 100644 => 100755 vendor/endroid/qr-code/assets/image/qrv9.png mode change 100644 => 100755 vendor/endroid/qr-code/composer.json mode change 100644 => 100755 vendor/endroid/qr-code/src/Bundle/Controller/QrCodeController.php mode change 100644 => 100755 vendor/endroid/qr-code/src/Bundle/DependencyInjection/Configuration.php mode change 100644 => 100755 vendor/endroid/qr-code/src/Bundle/Resources/config/services.yml mode change 100644 => 100755 vendor/endroid/qr-code/src/Bundle/Twig/Extension/QrCodeExtension.php mode change 100644 => 100755 vendor/endroid/qr-code/src/Exceptions/DataDoesntExistsException.php mode change 100644 => 100755 vendor/endroid/qr-code/src/Exceptions/FreeTypeLibraryMissingException.php mode change 100644 => 100755 vendor/endroid/qr-code/src/Exceptions/ImageFunctionFailedException.php mode change 100644 => 100755 vendor/endroid/qr-code/src/Exceptions/ImageFunctionUnknownException.php mode change 100644 => 100755 vendor/endroid/qr-code/src/Exceptions/ImageSizeTooLargeException.php mode change 100644 => 100755 vendor/endroid/qr-code/src/Exceptions/ImageTypeInvalidException.php mode change 100644 => 100755 vendor/endroid/qr-code/src/Exceptions/VersionTooLargeException.php mode change 100644 => 100755 vendor/endroid/qr-code/src/QrCode.php mode change 100644 => 100755 vendor/endroid/qr-code/tests/QrCodeTest.php mode change 100644 => 100755 vendor/qiniu/php-sdk/test-env.sh diff --git a/thinkphp/lang/zh-cn.php b/thinkphp/lang/zh-cn.php index 16b1bb7ce..5a3e0bd6b 100644 --- a/thinkphp/lang/zh-cn.php +++ b/thinkphp/lang/zh-cn.php @@ -69,6 +69,7 @@ return [ 'chunk not support order' => 'Chunk不支持调用order方法', 'route pattern error' => '路由变量规则定义错误', 'route behavior will not support' => '路由行为废弃(使用中间件替代)', + 'closure not support cache(true)' => '使用闭包查询不支持cache(true),请指定缓存Key', // 上传错误信息 'unknown upload error' => '未知上传错误!', diff --git a/thinkphp/library/think/App.php b/thinkphp/library/think/App.php index 6da1888b5..039a876aa 100644 --- a/thinkphp/library/think/App.php +++ b/thinkphp/library/think/App.php @@ -20,7 +20,7 @@ use think\route\Dispatch; */ class App implements \ArrayAccess { - const VERSION = '5.1.8'; + const VERSION = '5.1.9'; /** * 当前模块路径 @@ -126,7 +126,7 @@ class App implements \ArrayAccess public function __construct($appPath = '') { - $this->appPath = $appPath ?: $this->getAppPath(); + $this->appPath = $appPath ? realpath($appPath) : $this->getAppPath(); $this->container = Container::getInstance(); } @@ -164,7 +164,7 @@ class App implements \ArrayAccess $this->beginTime = microtime(true); $this->beginMem = memory_get_usage(); $this->thinkPath = dirname(dirname(__DIR__)) . DIRECTORY_SEPARATOR; - $this->rootPath = dirname(realpath($this->appPath)) . DIRECTORY_SEPARATOR; + $this->rootPath = dirname($this->appPath) . DIRECTORY_SEPARATOR; $this->runtimePath = $this->rootPath . 'runtime' . DIRECTORY_SEPARATOR; $this->routePath = $this->rootPath . 'route' . DIRECTORY_SEPARATOR; $this->configPath = $this->rootPath . 'config' . DIRECTORY_SEPARATOR; @@ -756,9 +756,7 @@ class App implements \ArrayAccess public function getAppPath() { if (is_null($this->appPath)) { - $scriptName = 'cli' == PHP_SAPI ? getcwd() . DIRECTORY_SEPARATOR . $_SERVER['argv'][0] : $_SERVER['SCRIPT_FILENAME']; - - $this->appPath = realpath(dirname(dirname($scriptName)) . DIRECTORY_SEPARATOR . 'application') . DIRECTORY_SEPARATOR; + $this->appPath = Loader::getRootPath() . 'application' . DIRECTORY_SEPARATOR; } return $this->appPath; diff --git a/thinkphp/library/think/Db.php b/thinkphp/library/think/Db.php index 6ce22f391..9be2dd2ea 100644 --- a/thinkphp/library/think/Db.php +++ b/thinkphp/library/think/Db.php @@ -15,6 +15,7 @@ namespace think; * Class Db * @package think * @method \think\db\Query connect(array $config =[], mixed $name = false) static 连接/切换数据库连接 + * @method \think\db\Query master() static 从主服务器读取数据 * @method \think\db\Query table(string $table) static 指定数据表(含前缀) * @method \think\db\Query name(string $name) static 指定数据表(不含前缀) * @method \think\db\Query where(mixed $field, string $op = null, mixed $condition = null) static 查询条件 diff --git a/thinkphp/library/think/Loader.php b/thinkphp/library/think/Loader.php index 6354f9e47..e2bed16f4 100644 --- a/thinkphp/library/think/Loader.php +++ b/thinkphp/library/think/Loader.php @@ -52,21 +52,37 @@ class Loader */ private static $composerPath; + // 获取应用根目录 + public static function getRootPath() + { + if ('cli' == PHP_SAPI) { + $cwdPath = getcwd(); + + if (0 === strpos($_SERVER['argv'][0], $cwdPath)) { + $scriptName = $_SERVER['argv'][0]; + } else { + $scriptName = $cwdPath . DIRECTORY_SEPARATOR . $_SERVER['argv'][0]; + } + } else { + $scriptName = $_SERVER['SCRIPT_FILENAME']; + } + + $path = realpath(dirname($scriptName)); + + if (!is_file($path . DIRECTORY_SEPARATOR . 'think')) { + $path = dirname($path); + } + + return $path . DIRECTORY_SEPARATOR; + } + // 注册自动加载机制 public static function register($autoload = '') { // 注册系统自动加载 spl_autoload_register($autoload ?: 'think\\Loader::autoload', true, true); - $scriptName = 'cli' == PHP_SAPI ? getcwd() . DIRECTORY_SEPARATOR . $_SERVER['argv'][0] : $_SERVER['SCRIPT_FILENAME']; - - $path = realpath(dirname($scriptName)); - - if ('cli-server' == PHP_SAPI || !is_file('./think')) { - $rootPath = dirname($path) . DIRECTORY_SEPARATOR; - } else { - $rootPath = $path . DIRECTORY_SEPARATOR; - } + $rootPath = self::getRootPath(); self::$composerPath = $rootPath . 'vendor' . DIRECTORY_SEPARATOR . 'composer' . DIRECTORY_SEPARATOR; @@ -338,6 +354,10 @@ class Loader if (is_file(self::$composerPath . 'autoload_files.php')) { $includeFiles = require self::$composerPath . 'autoload_files.php'; foreach ($includeFiles as $fileIdentifier => $file) { + if (isset($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { + continue; + } + if (empty(self::$autoloadFiles[$fileIdentifier])) { __require_file($file); self::$autoloadFiles[$fileIdentifier] = true; diff --git a/thinkphp/library/think/Model.php b/thinkphp/library/think/Model.php index 433e6d096..9a98a4084 100644 --- a/thinkphp/library/think/Model.php +++ b/thinkphp/library/think/Model.php @@ -104,6 +104,12 @@ abstract class Model implements \JsonSerializable, \ArrayAccess */ protected $error; + /** + * 软删除字段默认值 + * @var mixed + */ + protected $defaultSoftDelete; + /** * 架构函数 * @access public @@ -245,11 +251,8 @@ abstract class Model implements \JsonSerializable, \ArrayAccess if ($useBaseQuery) { // 软删除 - if (method_exists($this, 'getDeleteTimeField')) { - $field = $this->getDeleteTimeField(true); - if ($field) { - $query->useSoftDelete($field); - } + if (method_exists($this, 'withNoTrashed')) { + $this->withNoTrashed($query); } // 全局作用域 @@ -469,7 +472,7 @@ abstract class Model implements \JsonSerializable, \ArrayAccess foreach ((array) $pk as $key) { if (isset($data[$key])) { - $array[$key] = [$key, '=', $data[$key]]; + $array[] = [$key, '=', $data[$key]]; unset($data[$key]); } } @@ -574,10 +577,10 @@ abstract class Model implements \JsonSerializable, \ArrayAccess } /** - * 字段值(延迟)增长 + * 字段值(延迟)减少 * @access public * @param string $field 字段名 - * @param integer $step 增长值 + * @param integer $step 减少值 * @param integer $lazyTime 延时时间(s) * @return integer|true * @throws Exception diff --git a/thinkphp/library/think/Request.php b/thinkphp/library/think/Request.php index 16db947bb..c627d06d7 100644 --- a/thinkphp/library/think/Request.php +++ b/thinkphp/library/think/Request.php @@ -1588,9 +1588,18 @@ class Request $ip = $_SERVER['REMOTE_ADDR']; } + // IP地址类型 + $ip_mode = (strpos($ip, ':') === false) ? 'ipv4' : 'ipv6'; + // IP地址合法验证 - $long = sprintf("%u", ip2long($ip)); - $ip = $long ? [$ip, $long] : ['0.0.0.0', 0]; + if (filter_var($ip, FILTER_VALIDATE_IP) !== $ip) { + $ip = ($ip_mode === 'ipv4') ? '0.0.0.0' : '::'; + } + + // 如果是ipv4地址,则直接使用ip2long返回int类型ip;如果是ipv6地址,暂时不支持,直接返回0 + $long_ip = ($ip_mode === 'ipv4') ? sprintf("%u", ip2long($ip)) : 0; + + $ip = [$ip, $long_ip]; return $ip[$type]; } diff --git a/thinkphp/library/think/Validate.php b/thinkphp/library/think/Validate.php index 930f7d0fa..bb1700459 100644 --- a/thinkphp/library/think/Validate.php +++ b/thinkphp/library/think/Validate.php @@ -749,7 +749,7 @@ class Validate $result = in_array($value, [true, false, 0, 1, '0', '1'], true); break; case 'number': - $result = ctype_digit($value); + $result = ctype_digit((string) $value); break; case 'array': // 是否为数组 diff --git a/thinkphp/library/think/db/Builder.php b/thinkphp/library/think/db/Builder.php index 78ea0f4a9..31e5fc5e9 100644 --- a/thinkphp/library/think/db/Builder.php +++ b/thinkphp/library/think/db/Builder.php @@ -113,7 +113,7 @@ abstract class Builder $result = []; foreach ($data as $key => $val) { - $item = $this->parseKey($query, $key); + $item = $this->parseKey($query, $key, true); if ($val instanceof Expression) { $result[$item] = $val->getValue(); @@ -183,9 +183,10 @@ abstract class Builder * @access public * @param Query $query 查询对象 * @param string $key 字段名 + * @param bool $strict 严格检测 * @return string */ - public function parseKey(Query $query, $key) + public function parseKey(Query $query, $key, $strict = false) { return $key; } @@ -209,7 +210,7 @@ abstract class Builder if ($field instanceof Expression) { $array[] = $field->getValue(); } elseif (!is_numeric($key)) { - $array[] = $this->parseKey($query, $key) . ' AS ' . $this->parseKey($query, $field); + $array[] = $this->parseKey($query, $key) . ' AS ' . $this->parseKey($query, $field, true); } else { $array[] = $this->parseKey($query, $field); } @@ -363,7 +364,7 @@ abstract class Builder protected function parseWhereItem(Query $query, $field, $val, $rule = '', $binds = [], $bindName = null) { // 字段分析 - $key = $field ? $this->parseKey($query, $field) : ''; + $key = $field ? $this->parseKey($query, $field, true) : ''; // 查询规则和条件 if (!is_array($val)) { @@ -808,45 +809,43 @@ abstract class Builder return ''; } - if (is_array($order)) { - $array = []; + $array = []; - foreach ($order as $key => $val) { - if ($val instanceof Expression) { - $array[] = $val->getValue(); - } elseif (is_array($val)) { - if (isset($val['sort'])) { - $sort = ' ' . $val['sort']; - unset($val['sort']); - } else { - $sort = ''; - } - - $options = $query->getOptions(); - $bind = $this->connection->getFieldsBind($options['table']); - - foreach ($val as $k => $item) { - $val[$k] = $this->parseDataBind($query, $key, $item, $bind, $k); - } - - $array[] = 'field(' . $this->parseKey($query, $key) . ',' . implode(',', $val) . ')' . $sort; - } elseif (is_numeric($key)) { - if ('[rand]' == $val) { - $array[] = $this->parseRand($query); - } elseif (false === strpos($val, '(')) { - $array[] = $this->parseKey($query, $val); - } else { - $array[] = $val; - } + foreach ($order as $key => $val) { + if ($val instanceof Expression) { + $array[] = $val->getValue(); + } elseif (is_array($val)) { + if (isset($val['sort'])) { + $sort = ' ' . $val['sort']; + unset($val['sort']); } else { - $sort = in_array(strtolower(trim($val)), ['asc', 'desc']) ? ' ' . $val : ''; - $array[] = $this->parseKey($query, $key) . ' ' . $sort; + $sort = ''; } - } - $order = implode(',', $array); + $options = $query->getOptions(); + $bind = $this->connection->getFieldsBind($options['table']); + + foreach ($val as $k => $item) { + $val[$k] = $this->parseDataBind($query, $key, $item, $bind, $k); + } + + $array[] = 'field(' . $this->parseKey($query, $key, true) . ',' . implode(',', $val) . ')' . $sort; + } elseif ('[rand]' == $val) { + $array[] = $this->parseRand($query); + } else { + if (is_numeric($key)) { + list($key, $sort) = explode(' ', strpos($val, ' ') ? $val : $val . ' '); + } else { + $sort = $val; + } + + $sort = in_array(strtolower($sort), ['asc', 'desc'], true) ? ' ' . $sort : ''; + $array[] = $this->parseKey($query, $key, true) . $sort; + } } + $order = implode(',', $array); + return ' ORDER BY ' . $order; } @@ -950,11 +949,7 @@ abstract class Builder return ''; } - if (is_array($index)) { - $index = join(",", $index); - } - - return sprintf(" FORCE INDEX ( %s ) ", $index); + return sprintf(" FORCE INDEX ( %s ) ", is_array($index) ? implode(',', $index) : $index); } /** @@ -1070,7 +1065,7 @@ abstract class Builder $fields = []; foreach ($insertFields as $field) { - $fields[] = $this->parseKey($query, $field); + $fields[] = $this->parseKey($query, $field, true); } return str_replace( @@ -1102,7 +1097,7 @@ abstract class Builder } foreach ($fields as &$field) { - $field = $this->parseKey($query, $field); + $field = $this->parseKey($query, $field, true); } return 'INSERT INTO ' . $this->parseTable($query, $table, $options) . ' (' . implode(',', $fields) . ') ' . $this->select($options); diff --git a/thinkphp/library/think/db/Connection.php b/thinkphp/library/think/db/Connection.php index 142e80443..aa1b74028 100644 --- a/thinkphp/library/think/db/Connection.php +++ b/thinkphp/library/think/db/Connection.php @@ -2076,7 +2076,7 @@ abstract class Connection { if (is_scalar($value)) { $data = $value; - } elseif (is_array($value) && isset($value[1], $value[2]) && in_array($value[1], ['=', 'eq'])) { + } elseif (is_array($value) && isset($value[1], $value[2]) && in_array($value[1], ['=', 'eq'], true) && is_scalar($value[2])) { $data = $value[2]; } @@ -2089,7 +2089,7 @@ abstract class Connection try { return md5($prefix . serialize($query->getOptions()) . serialize($query->getBind(false))); } catch (\Exception $e) { - return; + throw new Exception('closure not support cache(true)'); } } diff --git a/thinkphp/library/think/db/Query.php b/thinkphp/library/think/db/Query.php index ddb2bbea7..0329e1c29 100644 --- a/thinkphp/library/think/db/Query.php +++ b/thinkphp/library/think/db/Query.php @@ -1357,7 +1357,7 @@ class Query public function useSoftDelete($field, $condition = null) { if ($field) { - $this->options['soft_delete'] = [$field, $condition ?: ['null', '']]; + $this->options['soft_delete'] = [$field, $condition]; } return $this; @@ -1447,7 +1447,6 @@ class Query return $this->parseArrayWhereItems($field, $logic); } elseif ($field instanceof \Closure) { $where = $field; - $field = ''; } elseif (is_string($field)) { if (preg_match('/[,=\<\'\"\(\s]/', $field)) { return $this->whereRaw($field, $op); @@ -1460,11 +1459,7 @@ class Query } if (!empty($where)) { - if (isset($this->options['where'][$logic][$field])) { - $this->options['where'][$logic][] = $where; - } else { - $this->options['where'][$logic][$field] = $where; - } + $this->options['where'][$logic][] = $where; } return $this; @@ -1490,9 +1485,13 @@ class Query if (in_array(strtoupper($op), ['NULL', 'NOTNULL', 'NOT NULL'], true)) { // null查询 $where = [$field, $op, '']; + } elseif (in_array(strtolower($op), ['=', 'eq', null], true)) { + $where = [$field, 'NULL', '']; + } elseif (in_array(strtolower($op), ['<>', 'neq'], true)) { + $where = [$field, 'NOTNULL', '']; } else { // 字段相等查询 - $where = is_null($op) ? [$field, 'NULL', ''] : [$field, '=', $op]; + $where = [$field, '=', $op]; } } else { $where = $field ? [$field, $op, $condition] : null; @@ -1513,11 +1512,7 @@ class Query if (key($field) !== 0) { $where = []; foreach ($field as $key => $val) { - if (is_null($val)) { - $where[$key] = [$key, 'NULL', '']; - } else { - $where[$key] = !is_scalar($val) ? $val : [$key, '=', $val]; - } + $where[] = is_null($val) ? [$key, 'NULL', ''] : [$key, '=', $val]; } } else { // 数组批量查询 @@ -1777,7 +1772,11 @@ class Query $field = $this->options['via'] . '.' . $field; } - $field = empty($order) ? $field : [$field => $order]; + if (strpos($field, ',')) { + $field = array_map('trim', explode(',', $field)); + } else { + $field = empty($order) ? $field : [$field => $order]; + } } elseif (!empty($this->options['via'])) { foreach ($field as $key => $val) { if (is_numeric($key)) { diff --git a/thinkphp/library/think/db/builder/Mysql.php b/thinkphp/library/think/db/builder/Mysql.php index a73fa293d..a17657d9f 100644 --- a/thinkphp/library/think/db/builder/Mysql.php +++ b/thinkphp/library/think/db/builder/Mysql.php @@ -105,9 +105,10 @@ class Mysql extends Builder * @access public * @param Query $query 查询对象 * @param string $key 字段名 + * @param bool $strict 严格检测 * @return string */ - public function parseKey(Query $query, $key) + public function parseKey(Query $query, $key, $strict = false) { if (is_int($key)) { return $key; @@ -118,7 +119,7 @@ class Mysql extends Builder // JSON字段支持 list($field, $name) = explode('->', $key, 2); - $key = 'json_extract(' . $this->parseKey($query, $field) . ', \'$.' . str_replace('->', '.', $name) . '\')'; + return 'json_extract(' . $this->parseKey($query, $field) . ', \'$.' . str_replace('->', '.', $name) . '\')'; } elseif (strpos($key, '.') && !preg_match('/[,\'\"\(\)`\s]/', $key)) { list($table, $key) = explode('.', $key, 2); @@ -134,7 +135,7 @@ class Mysql extends Builder } } - if (!preg_match('/[,\'\"\*\(\)`.\s]/', $key)) { + if ($strict || !preg_match('/[,\'\"\*\(\)`.\s]/', $key)) { $key = '`' . $key . '`'; } diff --git a/thinkphp/library/think/db/builder/Pgsql.php b/thinkphp/library/think/db/builder/Pgsql.php index 4db6932de..32373b64d 100644 --- a/thinkphp/library/think/db/builder/Pgsql.php +++ b/thinkphp/library/think/db/builder/Pgsql.php @@ -51,9 +51,10 @@ class Pgsql extends Builder * @access public * @param Query $query 查询对象 * @param string $key 字段名 + * @param bool $strict 严格检测 * @return string */ - public function parseKey(Query $query, $key) + public function parseKey(Query $query, $key, $strict = false) { $key = trim($key); diff --git a/thinkphp/library/think/db/builder/Sqlite.php b/thinkphp/library/think/db/builder/Sqlite.php index 141410c1e..9b244617e 100644 --- a/thinkphp/library/think/db/builder/Sqlite.php +++ b/thinkphp/library/think/db/builder/Sqlite.php @@ -59,9 +59,10 @@ class Sqlite extends Builder * @access public * @param Query $query 查询对象 * @param string $key 字段名 + * @param bool $strict 严格检测 * @return string */ - public function parseKey(Query $query, $key) + public function parseKey(Query $query, $key, $strict = false) { $key = trim($key); if (strpos($key, '.')) { diff --git a/thinkphp/library/think/db/builder/Sqlsrv.php b/thinkphp/library/think/db/builder/Sqlsrv.php index b95e234ba..4d3dc15bc 100644 --- a/thinkphp/library/think/db/builder/Sqlsrv.php +++ b/thinkphp/library/think/db/builder/Sqlsrv.php @@ -12,6 +12,7 @@ namespace think\db\builder; use think\db\Builder; +use think\db\Expression; use think\db\Query; /** @@ -35,28 +36,30 @@ class Sqlsrv extends Builder */ protected function parseOrder(Query $query, $order) { - if (is_array($order)) { - $array = []; - - foreach ($order as $key => $val) { - if (is_numeric($key)) { - if (false === strpos($val, '(')) { - $array[] = $this->parseKey($query, $val); - } elseif ('[rand]' == $val) { - $array[] = $this->parseRand($query); - } else { - $array[] = $val; - } - } else { - $sort = in_array(strtolower(trim($val)), ['asc', 'desc']) ? ' ' . $val : ''; - $array[] = $this->parseKey($query, $key) . ' ' . $sort; - } - } - - $order = implode(',', $array); + if (empty($order)) { + return ' ORDER BY rand()'; } - return !empty($order) ? ' ORDER BY ' . $order : ' ORDER BY rand()'; + $array = []; + + foreach ($order as $key => $val) { + if ($val instanceof Expression) { + $array[] = $val->getValue(); + } elseif ('[rand]' == $val) { + $array[] = $this->parseRand($query); + } else { + if (is_numeric($key)) { + list($key, $sort) = explode(' ', strpos($val, ' ') ? $val : $val . ' '); + } else { + $sort = $val; + } + + $sort = in_array(strtolower($sort), ['asc', 'desc'], true) ? ' ' . $sort : ''; + $array[] = $this->parseKey($query, $key, true) . $sort; + } + } + + return ' ORDER BY ' . implode(',', $array); } /** @@ -75,10 +78,15 @@ class Sqlsrv extends Builder * @access public * @param Query $query 查询对象 * @param string $key 字段名 + * @param bool $strict 严格检测 * @return string */ - public function parseKey(Query $query, $key) + public function parseKey(Query $query, $key, $strict = false) { + if (is_int($key)) { + return $key; + } + $key = trim($key); if (strpos($key, '.') && !preg_match('/[,\'\"\(\)\[\s]/', $key)) { @@ -96,7 +104,7 @@ class Sqlsrv extends Builder } } - if (!is_numeric($key) && !preg_match('/[,\'\"\*\(\)\[.\s]/', $key)) { + if ($strict || !preg_match('/[,\'\"\*\(\)\[.\s]/', $key)) { $key = '[' . $key . ']'; } diff --git a/thinkphp/library/think/model/concern/SoftDelete.php b/thinkphp/library/think/model/concern/SoftDelete.php index 473f9e3ea..68b4c1972 100644 --- a/thinkphp/library/think/model/concern/SoftDelete.php +++ b/thinkphp/library/think/model/concern/SoftDelete.php @@ -51,11 +51,23 @@ trait SoftDelete if ($field) { return $model ->db(false) - ->useSoftDelete($field, ['not null', '']); + ->useSoftDelete($field, $model->getWithTrashedExp()); } + return $model->db(false); } + /** + * 获取软删除数据的查询条件 + * @access protected + * @return array + */ + protected function getWithTrashedExp() + { + return is_null($this->defaultSoftDelete) ? + ['notnull', ''] : ['<>', $this->defaultSoftDelete]; + } + /** * 删除当前的记录 * @access public @@ -143,16 +155,17 @@ trait SoftDelete $name = $this->getDeleteTimeField(); if (empty($where)) { - $pk = $this->getPk(); - $where[$pk] = [$pk, '=', $this->getData($pk)]; + $pk = $this->getPk(); + + $where[] = [$pk, '=', $this->getData($pk)]; } if ($name) { // 恢复删除 return $this->db(false) ->where($where) - ->useSoftDelete($name, ['not null', '']) - ->update([$name => null]); + ->useSoftDelete($name, $this->getWithTrashedExp()) + ->update([$name => $this->defaultSoftDelete]); } return 0; @@ -183,4 +196,19 @@ trait SoftDelete return $field; } + + /** + * 查询的时候默认排除软删除数据 + * @access protected + * @param Query $query + * @return void + */ + protected function withNoTrashed($query) + { + $field = $this->getDeleteTimeField(true); + + if ($field) { + $query->useSoftDelete($field, $this->defaultSoftDelete); + } + } } diff --git a/thinkphp/library/think/route/Rule.php b/thinkphp/library/think/route/Rule.php index 8d53c4377..8f9d47e92 100644 --- a/thinkphp/library/think/route/Rule.php +++ b/thinkphp/library/think/route/Rule.php @@ -864,7 +864,7 @@ abstract class Rule $request->route($var); // 路由到模块/控制器/操作 - return (new ModuleDispatch([$module, $controller, $action]))->convert(false); + return new ModuleDispatch([$module, $controller, $action], [], false); } /** diff --git a/thinkphp/library/think/route/RuleGroup.php b/thinkphp/library/think/route/RuleGroup.php index bf8c65897..1fe3b2722 100644 --- a/thinkphp/library/think/route/RuleGroup.php +++ b/thinkphp/library/think/route/RuleGroup.php @@ -316,7 +316,7 @@ class RuleGroup extends Rule } try { - if (!empty($regex) && preg_match('/^(?:' . implode('|', $regex) . ')/', $url, $match)) { + if (!empty($regex) && preg_match('/^(?:' . implode('|', $regex) . ')/u', $url, $match)) { $var = []; foreach ($match as $key => $val) { if (is_string($key) && '' !== $val) { diff --git a/thinkphp/library/think/route/RuleItem.php b/thinkphp/library/think/route/RuleItem.php index 27e5e7548..117c1a9bd 100644 --- a/thinkphp/library/think/route/RuleItem.php +++ b/thinkphp/library/think/route/RuleItem.php @@ -309,7 +309,7 @@ class RuleItem extends Rule $regex = $this->buildRuleRegex($rule, $matches[0], $pattern, $option, $completeMatch); try { - if (!preg_match('/^' . $regex . ($completeMatch ? '$' : '') . '/', $url, $match)) { + if (!preg_match('/^' . $regex . ($completeMatch ? '$' : '') . '/u', $url, $match)) { return false; } } catch (\Exception $e) { diff --git a/thinkphp/library/think/route/dispatch/Module.php b/thinkphp/library/think/route/dispatch/Module.php index 26c92e94d..ec341997f 100644 --- a/thinkphp/library/think/route/dispatch/Module.php +++ b/thinkphp/library/think/route/dispatch/Module.php @@ -23,6 +23,15 @@ class Module extends Dispatch protected $controller; protected $actionName; + public function __construct($dispatch, $param = [], $convert = null) + { + $this->app = Container::get('app'); + $this->dispatch = $dispatch; + $this->param = $param; + $this->convert = $convert; + $this->init(); + } + protected function init() { $result = $this->dispatch; @@ -90,13 +99,13 @@ class Module extends Dispatch // 设置当前请求的控制器、操作 $this->app['request']->controller(Loader::parseName($this->controller, 1))->action($this->actionName); - // 监听module_init - $this->app['hook']->listen('module_init'); - } public function run() { + // 监听module_init + $this->app['hook']->listen('module_init'); + // 实例化控制器 try { $instance = $this->app->controller($this->controller, diff --git a/thinkphp/library/think/view/driver/Php.php b/thinkphp/library/think/view/driver/Php.php index 6e5db3bd7..f69871528 100644 --- a/thinkphp/library/think/view/driver/Php.php +++ b/thinkphp/library/think/view/driver/Php.php @@ -141,7 +141,7 @@ class Php if ($controller) { if ('' == $template) { // 如果模板文件名为空 按照默认规则定位 - $template = str_replace('.', DIRECTORY_SEPARATOR, $controller) . $depr . (1 == $this->config['auto_rule'] ? Loader::parseName($request->action(true)) : $request->action()); + $template = str_replace('.', DIRECTORY_SEPARATOR, $controller) . $depr . $this->getActionTemplate($request); } elseif (false === strpos($template, $depr)) { $template = str_replace('.', DIRECTORY_SEPARATOR, $controller) . $depr . $template; } @@ -153,6 +153,14 @@ class Php return $path . ltrim($template, '/') . '.' . ltrim($this->config['view_suffix'], '.'); } + protected function getActionTemplate($request) + { + $rule = [$request->action(true), Loader::parseName($request->action(true)), $request->action()]; + $type = $this->config['auto_rule']; + + return isset($rule[$type]) ? $rule[$type] : $rule[0]; + } + /** * 配置模板引擎 * @access private diff --git a/thinkphp/library/think/view/driver/Think.php b/thinkphp/library/think/view/driver/Think.php index 137acf859..834a8c032 100644 --- a/thinkphp/library/think/view/driver/Think.php +++ b/thinkphp/library/think/view/driver/Think.php @@ -132,10 +132,11 @@ class Think if (0 !== strpos($template, '/')) { $template = str_replace(['/', ':'], $depr, $template); $controller = Loader::parseName($request->controller()); + if ($controller) { if ('' == $template) { // 如果模板文件名为空 按照默认规则定位 - $template = str_replace('.', DIRECTORY_SEPARATOR, $controller) . $depr . (1 == $this->config['auto_rule'] ? Loader::parseName($request->action(true)) : $request->action()); + $template = str_replace('.', DIRECTORY_SEPARATOR, $controller) . $depr . $this->getActionTemplate($request); } elseif (false === strpos($template, $depr)) { $template = str_replace('.', DIRECTORY_SEPARATOR, $controller) . $depr . $template; } @@ -147,6 +148,14 @@ class Think return $path . ltrim($template, '/') . '.' . ltrim($this->config['view_suffix'], '.'); } + protected function getActionTemplate($request) + { + $rule = [$request->action(true), Loader::parseName($request->action(true)), $request->action()]; + $type = $this->config['auto_rule']; + + return isset($rule[$type]) ? $rule[$type] : $rule[0]; + } + /** * 配置或者获取模板引擎参数 * @access private diff --git a/vendor/aliyuncs/oss-sdk-php/build-phar.sh b/vendor/aliyuncs/oss-sdk-php/build-phar.sh old mode 100644 new mode 100755 diff --git a/vendor/autoload.php b/vendor/autoload.php index 0047111a6..626c40b0e 100644 --- a/vendor/autoload.php +++ b/vendor/autoload.php @@ -4,4 +4,4 @@ require_once __DIR__ . '/composer/autoload_real.php'; -return ComposerAutoloaderInit33664714c3aeb065c5c84573408fd6a4::getLoader(); +return ComposerAutoloaderInitc20a6e9f7e4c957b608b8084ee731eb0::getLoader(); diff --git a/vendor/composer/ClassLoader.php b/vendor/composer/ClassLoader.php index 2c72175e7..dc02dfb11 100644 --- a/vendor/composer/ClassLoader.php +++ b/vendor/composer/ClassLoader.php @@ -379,9 +379,9 @@ class ClassLoader $subPath = substr($subPath, 0, $lastPos); $search = $subPath.'\\'; if (isset($this->prefixDirsPsr4[$search])) { + $pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1); foreach ($this->prefixDirsPsr4[$search] as $dir) { - $length = $this->prefixLengthsPsr4[$first][$search]; - if (file_exists($file = $dir . DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $length))) { + if (file_exists($file = $dir . $pathEnd)) { return $file; } } diff --git a/vendor/composer/autoload_files.php b/vendor/composer/autoload_files.php index d83d945e0..4598fc38b 100644 --- a/vendor/composer/autoload_files.php +++ b/vendor/composer/autoload_files.php @@ -6,6 +6,6 @@ $vendorDir = dirname(dirname(__FILE__)); $baseDir = dirname($vendorDir); return array( - '1cfd2761b63b0a29ed23657ea394cb2d' => $vendorDir . '/topthink/think-captcha/src/helper.php', '841780ea2e1d6545ea3a253239d59c05' => $vendorDir . '/qiniu/php-sdk/src/Qiniu/functions.php', + '1cfd2761b63b0a29ed23657ea394cb2d' => $vendorDir . '/topthink/think-captcha/src/helper.php', ); diff --git a/vendor/composer/autoload_real.php b/vendor/composer/autoload_real.php index 0a545102f..2bbd72ff8 100644 --- a/vendor/composer/autoload_real.php +++ b/vendor/composer/autoload_real.php @@ -2,7 +2,7 @@ // autoload_real.php @generated by Composer -class ComposerAutoloaderInit33664714c3aeb065c5c84573408fd6a4 +class ComposerAutoloaderInitc20a6e9f7e4c957b608b8084ee731eb0 { private static $loader; @@ -19,15 +19,15 @@ class ComposerAutoloaderInit33664714c3aeb065c5c84573408fd6a4 return self::$loader; } - spl_autoload_register(array('ComposerAutoloaderInit33664714c3aeb065c5c84573408fd6a4', 'loadClassLoader'), true, true); + spl_autoload_register(array('ComposerAutoloaderInitc20a6e9f7e4c957b608b8084ee731eb0', 'loadClassLoader'), true, true); self::$loader = $loader = new \Composer\Autoload\ClassLoader(); - spl_autoload_unregister(array('ComposerAutoloaderInit33664714c3aeb065c5c84573408fd6a4', 'loadClassLoader')); + spl_autoload_unregister(array('ComposerAutoloaderInitc20a6e9f7e4c957b608b8084ee731eb0', 'loadClassLoader')); $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); if ($useStaticLoader) { require_once __DIR__ . '/autoload_static.php'; - call_user_func(\Composer\Autoload\ComposerStaticInit33664714c3aeb065c5c84573408fd6a4::getInitializer($loader)); + call_user_func(\Composer\Autoload\ComposerStaticInitc20a6e9f7e4c957b608b8084ee731eb0::getInitializer($loader)); } else { $map = require __DIR__ . '/autoload_namespaces.php'; foreach ($map as $namespace => $path) { @@ -48,19 +48,19 @@ class ComposerAutoloaderInit33664714c3aeb065c5c84573408fd6a4 $loader->register(true); if ($useStaticLoader) { - $includeFiles = Composer\Autoload\ComposerStaticInit33664714c3aeb065c5c84573408fd6a4::$files; + $includeFiles = Composer\Autoload\ComposerStaticInitc20a6e9f7e4c957b608b8084ee731eb0::$files; } else { $includeFiles = require __DIR__ . '/autoload_files.php'; } foreach ($includeFiles as $fileIdentifier => $file) { - composerRequire33664714c3aeb065c5c84573408fd6a4($fileIdentifier, $file); + composerRequirec20a6e9f7e4c957b608b8084ee731eb0($fileIdentifier, $file); } return $loader; } } -function composerRequire33664714c3aeb065c5c84573408fd6a4($fileIdentifier, $file) +function composerRequirec20a6e9f7e4c957b608b8084ee731eb0($fileIdentifier, $file) { if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { require $file; diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index 8bae52afa..e8d727d37 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -4,11 +4,11 @@ namespace Composer\Autoload; -class ComposerStaticInit33664714c3aeb065c5c84573408fd6a4 +class ComposerStaticInitc20a6e9f7e4c957b608b8084ee731eb0 { public static $files = array ( - '1cfd2761b63b0a29ed23657ea394cb2d' => __DIR__ . '/..' . '/topthink/think-captcha/src/helper.php', '841780ea2e1d6545ea3a253239d59c05' => __DIR__ . '/..' . '/qiniu/php-sdk/src/Qiniu/functions.php', + '1cfd2761b63b0a29ed23657ea394cb2d' => __DIR__ . '/..' . '/topthink/think-captcha/src/helper.php', ); public static $prefixLengthsPsr4 = array ( @@ -258,9 +258,9 @@ class ComposerStaticInit33664714c3aeb065c5c84573408fd6a4 public static function getInitializer(ClassLoader $loader) { return \Closure::bind(function () use ($loader) { - $loader->prefixLengthsPsr4 = ComposerStaticInit33664714c3aeb065c5c84573408fd6a4::$prefixLengthsPsr4; - $loader->prefixDirsPsr4 = ComposerStaticInit33664714c3aeb065c5c84573408fd6a4::$prefixDirsPsr4; - $loader->classMap = ComposerStaticInit33664714c3aeb065c5c84573408fd6a4::$classMap; + $loader->prefixLengthsPsr4 = ComposerStaticInitc20a6e9f7e4c957b608b8084ee731eb0::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInitc20a6e9f7e4c957b608b8084ee731eb0::$prefixDirsPsr4; + $loader->classMap = ComposerStaticInitc20a6e9f7e4c957b608b8084ee731eb0::$classMap; }, null, ClassLoader::class); } diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index e47427012..44f3cbf94 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -1,109 +1,32 @@ [ { - "name": "topthink/think-installer", - "version": "v1.0.12", - "version_normalized": "1.0.12.0", + "name": "aliyuncs/oss-sdk-php", + "version": "v2.3.0", + "version_normalized": "2.3.0.0", "source": { "type": "git", - "url": "https://github.com/top-think/think-installer.git", - "reference": "1be326e68f63de4e95977ed50f46ae75f017556d" + "url": "https://github.com/aliyun/aliyun-oss-php-sdk.git", + "reference": "e69f57916678458642ac9d2fd341ae78a56996c8" }, "dist": { "type": "zip", - "url": "https://files.phpcomposer.com/files/top-think/think-installer/1be326e68f63de4e95977ed50f46ae75f017556d.zip", - "reference": "1be326e68f63de4e95977ed50f46ae75f017556d", + "url": "https://api.github.com/repos/aliyun/aliyun-oss-php-sdk/zipball/e69f57916678458642ac9d2fd341ae78a56996c8", + "reference": "e69f57916678458642ac9d2fd341ae78a56996c8", "shasum": "" }, "require": { - "composer-plugin-api": "^1.0" + "php": ">=5.3" }, "require-dev": { - "composer/composer": "1.0.*@dev" + "phpunit/phpunit": "~4.0", + "satooshi/php-coveralls": "~1.0" }, - "time": "2017-05-27T06:58:09+00:00", - "type": "composer-plugin", - "extra": { - "class": "think\\composer\\Plugin" - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "think\\composer\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "Apache-2.0" - ], - "authors": [ - { - "name": "yunwuxin", - "email": "448901948@qq.com" - } - ] - }, - { - "name": "zoujingli/ip2region", - "version": "dev-master", - "version_normalized": "9999999-dev", - "source": { - "type": "git", - "url": "https://github.com/zoujingli/ip2region.git", - "reference": "5d981fbf3b574bad7fe9652e7aecba0920f54325" - }, - "dist": { - "type": "zip", - "url": "https://files.phpcomposer.com/files/zoujingli/ip2region/5d981fbf3b574bad7fe9652e7aecba0920f54325.zip", - "reference": "5d981fbf3b574bad7fe9652e7aecba0920f54325", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "time": "2017-11-09T03:36:17+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "classmap": [ - "Ip2Region.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "Apache 2.0" - ], - "description": "Ip2Region", - "homepage": "https://github.com/zoujingli/Ip2Region", - "keywords": [ - "Ip2Region" - ] - }, - { - "name": "zoujingli/wechat-developer", - "version": "v1.0.4", - "version_normalized": "1.0.4.0", - "source": { - "type": "git", - "url": "https://github.com/zoujingli/WeChatDeveloper.git", - "reference": "9ba300d0b171fd83e9b958d4f25ed4b0b3d16469" - }, - "dist": { - "type": "zip", - "url": "https://files.phpcomposer.com/files/zoujingli/WeChatDeveloper/9ba300d0b171fd83e9b958d4f25ed4b0b3d16469.zip", - "reference": "9ba300d0b171fd83e9b958d4f25ed4b0b3d16469", - "shasum": "" - }, - "require": { - "ext-curl": "*", - "ext-openssl": "*", - "php": ">=5.4" - }, - "time": "2018-03-26T06:32:30+00:00", + "time": "2018-01-08T06:59:35+00:00", "type": "library", "installation-source": "dist", "autoload": { "psr-4": { - "WeChat\\": "WeChat" + "OSS\\": "src/OSS" } }, "notification-url": "https://packagist.org/downloads/", @@ -112,216 +35,12 @@ ], "authors": [ { - "name": "Anyon", - "email": "zoujingli@qq.com", - "homepage": "http://ctolog.com" + "name": "Aliyuncs", + "homepage": "http://www.aliyun.com" } ], - "description": "WeChat platform and WeChat payment development tools", - "homepage": "https://github.com/zoujingli/WeChatDeveloper", - "keywords": [ - "WeChatDeveloper", - "wechat", - "wechatpay" - ] - }, - { - "name": "zoujingli/weopen-developer", - "version": "dev-master", - "version_normalized": "9999999-dev", - "source": { - "type": "git", - "url": "https://github.com/zoujingli/WeOpenDeveloper.git", - "reference": "8bb75bc08488a43964c00f027b21b93ed58e8d5a" - }, - "dist": { - "type": "zip", - "url": "https://files.phpcomposer.com/files/zoujingli/WeOpenDeveloper/8bb75bc08488a43964c00f027b21b93ed58e8d5a.zip", - "reference": "8bb75bc08488a43964c00f027b21b93ed58e8d5a", - "shasum": "" - }, - "require": { - "ext-curl": "*", - "ext-openssl": "*", - "php": ">=5.4", - "zoujingli/wechat-developer": "^1.0.0" - }, - "time": "2018-03-21T05:06:35+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "WeOpen\\": "WeOpen" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Anyon", - "email": "zoujingli@qq.com", - "homepage": "http://ctolog.com" - } - ], - "description": "WeChat Open development of SDK", - "homepage": "https://github.com/zoujingli/WeOpenDeveloper", - "keywords": [ - "WeChatOpen", - "WeChatOpenDeveloper", - "wechat" - ] - }, - { - "name": "topthink/framework", - "version": "v5.1.8", - "version_normalized": "5.1.8.0", - "source": { - "type": "git", - "url": "https://github.com/top-think/framework.git", - "reference": "8f6c84abd9e2f9db5a071168c0153724b54b083c" - }, - "dist": { - "type": "zip", - "url": "https://files.phpcomposer.com/files/top-think/framework/8f6c84abd9e2f9db5a071168c0153724b54b083c.zip", - "reference": "8f6c84abd9e2f9db5a071168c0153724b54b083c", - "shasum": "" - }, - "require": { - "php": ">=5.6.0", - "topthink/think-installer": "~1.0" - }, - "require-dev": { - "johnkary/phpunit-speedtrap": "^1.0", - "mikey179/vfsstream": "~1.6", - "phpdocumentor/reflection-docblock": "^2.0", - "phploc/phploc": "2.*", - "phpunit/phpunit": "^5.0|^6.0", - "sebastian/phpcpd": "2.*", - "squizlabs/php_codesniffer": "2.*" - }, - "time": "2018-04-06T05:28:49+00:00", - "type": "think-framework", - "installation-source": "dist", - "notification-url": "https://packagist.org/downloads/", - "license": [ - "Apache-2.0" - ], - "authors": [ - { - "name": "liu21st", - "email": "liu21st@gmail.com" - }, - { - "name": "yunwuxin", - "email": "448901948@qq.com" - } - ], - "description": "the new thinkphp framework", - "homepage": "http://thinkphp.cn/", - "keywords": [ - "framework", - "orm", - "thinkphp" - ] - }, - { - "name": "topthink/think-captcha", - "version": "v2.0.2", - "version_normalized": "2.0.2.0", - "source": { - "type": "git", - "url": "https://github.com/top-think/think-captcha.git", - "reference": "54c8a51552f99ff9ea89ea9c272383a8f738ceee" - }, - "dist": { - "type": "zip", - "url": "https://files.phpcomposer.com/files/top-think/think-captcha/54c8a51552f99ff9ea89ea9c272383a8f738ceee.zip", - "reference": "54c8a51552f99ff9ea89ea9c272383a8f738ceee", - "shasum": "" - }, - "require": { - "topthink/framework": "5.1.*" - }, - "time": "2017-12-31T16:37:49+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "think\\captcha\\": "src/" - }, - "files": [ - "src/helper.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "Apache-2.0" - ], - "authors": [ - { - "name": "yunwuxin", - "email": "448901948@qq.com" - } - ], - "description": "captcha package for thinkphp5" - }, - { - "name": "symfony/options-resolver", - "version": "v3.4.8", - "version_normalized": "3.4.8.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/options-resolver.git", - "reference": "f3109a6aedd20e35c3a33190e932c2b063b7b50e" - }, - "dist": { - "type": "zip", - "url": "https://files.phpcomposer.com/files/symfony/options-resolver/f3109a6aedd20e35c3a33190e932c2b063b7b50e.zip", - "reference": "f3109a6aedd20e35c3a33190e932c2b063b7b50e", - "shasum": "" - }, - "require": { - "php": "^5.5.9|>=7.0.8" - }, - "time": "2018-01-11T07:56:07+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Component\\OptionsResolver\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony OptionsResolver Component", - "homepage": "https://symfony.com", - "keywords": [ - "config", - "configuration", - "options" - ] + "description": "Aliyun OSS SDK for PHP", + "homepage": "http://www.aliyun.com/product/oss/" }, { "name": "endroid/qr-code", @@ -334,7 +53,7 @@ }, "dist": { "type": "zip", - "url": "https://files.phpcomposer.com/files/endroid/qr-code/c9644bec2a9cc9318e98d1437de3c628dcd1ef93.zip", + "url": "https://api.github.com/repos/endroid/qr-code/zipball/c9644bec2a9cc9318e98d1437de3c628dcd1ef93", "reference": "c9644bec2a9cc9318e98d1437de3c628dcd1ef93", "shasum": "" }, @@ -385,49 +104,6 @@ "symfony" ] }, - { - "name": "aliyuncs/oss-sdk-php", - "version": "v2.3.0", - "version_normalized": "2.3.0.0", - "source": { - "type": "git", - "url": "https://github.com/aliyun/aliyun-oss-php-sdk.git", - "reference": "e69f57916678458642ac9d2fd341ae78a56996c8" - }, - "dist": { - "type": "zip", - "url": "https://files.phpcomposer.com/files/aliyun/aliyun-oss-php-sdk/e69f57916678458642ac9d2fd341ae78a56996c8.zip", - "reference": "e69f57916678458642ac9d2fd341ae78a56996c8", - "shasum": "" - }, - "require": { - "php": ">=5.3" - }, - "require-dev": { - "phpunit/phpunit": "~4.0", - "satooshi/php-coveralls": "~1.0" - }, - "time": "2018-01-08T06:59:35+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "OSS\\": "src/OSS" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Aliyuncs", - "homepage": "http://www.aliyun.com" - } - ], - "description": "Aliyun OSS SDK for PHP", - "homepage": "http://www.aliyun.com/product/oss/" - }, { "name": "qiniu/php-sdk", "version": "v7.2.3", @@ -439,7 +115,7 @@ }, "dist": { "type": "zip", - "url": "https://files.phpcomposer.com/files/qiniu/php-sdk/67852ba9cdd7f48e0e080961abebafee134fb329.zip", + "url": "https://api.github.com/repos/qiniu/php-sdk/zipball/67852ba9cdd7f48e0e080961abebafee134fb329", "reference": "67852ba9cdd7f48e0e080961abebafee134fb329", "shasum": "" }, @@ -480,5 +156,329 @@ "sdk", "storage" ] + }, + { + "name": "symfony/options-resolver", + "version": "v3.4.8", + "version_normalized": "3.4.8.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/options-resolver.git", + "reference": "f3109a6aedd20e35c3a33190e932c2b063b7b50e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/options-resolver/zipball/f3109a6aedd20e35c3a33190e932c2b063b7b50e", + "reference": "f3109a6aedd20e35c3a33190e932c2b063b7b50e", + "shasum": "" + }, + "require": { + "php": "^5.5.9|>=7.0.8" + }, + "time": "2018-01-11T07:56:07+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Symfony\\Component\\OptionsResolver\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony OptionsResolver Component", + "homepage": "https://symfony.com", + "keywords": [ + "config", + "configuration", + "options" + ] + }, + { + "name": "topthink/framework", + "version": "v5.1.9", + "version_normalized": "5.1.9.0", + "source": { + "type": "git", + "url": "https://github.com/top-think/framework.git", + "reference": "fff4acf5727d7f83f059026098c681042db75bb7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/top-think/framework/zipball/fff4acf5727d7f83f059026098c681042db75bb7", + "reference": "fff4acf5727d7f83f059026098c681042db75bb7", + "shasum": "" + }, + "require": { + "php": ">=5.6.0", + "topthink/think-installer": "~1.0" + }, + "require-dev": { + "johnkary/phpunit-speedtrap": "^1.0", + "mikey179/vfsstream": "~1.6", + "phpdocumentor/reflection-docblock": "^2.0", + "phploc/phploc": "2.*", + "phpunit/phpunit": "^5.0|^6.0", + "sebastian/phpcpd": "2.*", + "squizlabs/php_codesniffer": "2.*" + }, + "time": "2018-04-12T08:33:20+00:00", + "type": "think-framework", + "installation-source": "dist", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "liu21st", + "email": "liu21st@gmail.com" + }, + { + "name": "yunwuxin", + "email": "448901948@qq.com" + } + ], + "description": "the new thinkphp framework", + "homepage": "http://thinkphp.cn/", + "keywords": [ + "framework", + "orm", + "thinkphp" + ] + }, + { + "name": "topthink/think-captcha", + "version": "v2.0.2", + "version_normalized": "2.0.2.0", + "source": { + "type": "git", + "url": "https://github.com/top-think/think-captcha.git", + "reference": "54c8a51552f99ff9ea89ea9c272383a8f738ceee" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/top-think/think-captcha/zipball/54c8a51552f99ff9ea89ea9c272383a8f738ceee", + "reference": "54c8a51552f99ff9ea89ea9c272383a8f738ceee", + "shasum": "" + }, + "require": { + "topthink/framework": "5.1.*" + }, + "time": "2017-12-31T16:37:49+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-4": { + "think\\captcha\\": "src/" + }, + "files": [ + "src/helper.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "yunwuxin", + "email": "448901948@qq.com" + } + ], + "description": "captcha package for thinkphp5" + }, + { + "name": "topthink/think-installer", + "version": "v1.0.12", + "version_normalized": "1.0.12.0", + "source": { + "type": "git", + "url": "https://github.com/top-think/think-installer.git", + "reference": "1be326e68f63de4e95977ed50f46ae75f017556d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/top-think/think-installer/zipball/1be326e68f63de4e95977ed50f46ae75f017556d", + "reference": "1be326e68f63de4e95977ed50f46ae75f017556d", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.0" + }, + "require-dev": { + "composer/composer": "1.0.*@dev" + }, + "time": "2017-05-27T06:58:09+00:00", + "type": "composer-plugin", + "extra": { + "class": "think\\composer\\Plugin" + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "think\\composer\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "yunwuxin", + "email": "448901948@qq.com" + } + ] + }, + { + "name": "zoujingli/ip2region", + "version": "dev-master", + "version_normalized": "9999999-dev", + "source": { + "type": "git", + "url": "https://github.com/zoujingli/ip2region.git", + "reference": "5d981fbf3b574bad7fe9652e7aecba0920f54325" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/zoujingli/ip2region/zipball/5d981fbf3b574bad7fe9652e7aecba0920f54325", + "reference": "5d981fbf3b574bad7fe9652e7aecba0920f54325", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "time": "2017-11-09T03:36:17+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "classmap": [ + "Ip2Region.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache 2.0" + ], + "description": "Ip2Region", + "homepage": "https://github.com/zoujingli/Ip2Region", + "keywords": [ + "Ip2Region" + ] + }, + { + "name": "zoujingli/wechat-developer", + "version": "v1.0.5", + "version_normalized": "1.0.5.0", + "source": { + "type": "git", + "url": "https://github.com/zoujingli/WeChatDeveloper.git", + "reference": "e05fe6bb24438d15259a6af4915bd0638dc3914a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/zoujingli/WeChatDeveloper/zipball/e05fe6bb24438d15259a6af4915bd0638dc3914a", + "reference": "e05fe6bb24438d15259a6af4915bd0638dc3914a", + "shasum": "" + }, + "require": { + "ext-curl": "*", + "ext-openssl": "*", + "php": ">=5.4" + }, + "time": "2018-04-09T11:07:00+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-4": { + "WeChat\\": "WeChat" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Anyon", + "email": "zoujingli@qq.com", + "homepage": "http://ctolog.com" + } + ], + "description": "WeChat platform and WeChat payment development tools", + "homepage": "https://github.com/zoujingli/WeChatDeveloper", + "keywords": [ + "WeChatDeveloper", + "wechat", + "wechatpay" + ] + }, + { + "name": "zoujingli/weopen-developer", + "version": "dev-master", + "version_normalized": "9999999-dev", + "source": { + "type": "git", + "url": "https://github.com/zoujingli/WeOpenDeveloper.git", + "reference": "8bb75bc08488a43964c00f027b21b93ed58e8d5a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/zoujingli/WeOpenDeveloper/zipball/8bb75bc08488a43964c00f027b21b93ed58e8d5a", + "reference": "8bb75bc08488a43964c00f027b21b93ed58e8d5a", + "shasum": "" + }, + "require": { + "ext-curl": "*", + "ext-openssl": "*", + "php": ">=5.4", + "zoujingli/wechat-developer": "^1.0.0" + }, + "time": "2018-03-21T05:06:35+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-4": { + "WeOpen\\": "WeOpen" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Anyon", + "email": "zoujingli@qq.com", + "homepage": "http://ctolog.com" + } + ], + "description": "WeChat Open development of SDK", + "homepage": "https://github.com/zoujingli/WeOpenDeveloper", + "keywords": [ + "WeChatOpen", + "WeChatOpenDeveloper", + "wechat" + ] } ] diff --git a/vendor/endroid/qr-code/.travis.yml b/vendor/endroid/qr-code/.travis.yml index de30ea6f7..9233d9aa1 100644 --- a/vendor/endroid/qr-code/.travis.yml +++ b/vendor/endroid/qr-code/.travis.yml @@ -1,21 +1,21 @@ -language: php - -php: - - 5.4 - - 5.5 - - 5.6 - - 7.0 - - 7.1 - - hhvm - -matrix: - fast_finish: true - -before_install: - - if [[ "$TRAVIS_PHP_VERSION" != "hhvm" ]]; then phpenv config-rm xdebug.ini; fi; - - composer self-update && composer install --no-interaction - -script: bin/phpunit - -notifications: - email: info@endroid.nl +language: php + +php: + - 5.4 + - 5.5 + - 5.6 + - 7.0 + - 7.1 + - hhvm + +matrix: + fast_finish: true + +before_install: + - if [[ "$TRAVIS_PHP_VERSION" != "hhvm" ]]; then phpenv config-rm xdebug.ini; fi; + - composer self-update && composer install --no-interaction + +script: bin/phpunit + +notifications: + email: info@endroid.nl diff --git a/vendor/endroid/qr-code/README.md b/vendor/endroid/qr-code/README.md index 2c51a989f..c4fcf39a7 100644 --- a/vendor/endroid/qr-code/README.md +++ b/vendor/endroid/qr-code/README.md @@ -1,132 +1,132 @@ -QR Code -======= - -*By [endroid](http://endroid.nl/)* - -[![Latest Stable Version](http://img.shields.io/packagist/v/endroid/qrcode.svg)](https://packagist.org/packages/endroid/qrcode) -[![Build Status](http://img.shields.io/travis/endroid/QrCode.svg)](http://travis-ci.org/endroid/QrCode) -[![Total Downloads](http://img.shields.io/packagist/dt/endroid/qrcode.svg)](https://packagist.org/packages/endroid/qrcode) -[![Monthly Downloads](http://img.shields.io/packagist/dm/endroid/qrcode.svg)](https://packagist.org/packages/endroid/qrcode) -[![License](http://img.shields.io/packagist/l/endroid/qrcode.svg)](https://packagist.org/packages/endroid/qrcode) - -This library based on QRcode Perl CGI & PHP scripts by Y. Swetake helps you generate images containing a QR code. - -## Installation - -Use [Composer](https://getcomposer.org/) to install the library. - -``` bash -$ composer require endroid/qrcode -``` - -## Usage - -```php -use Endroid\QrCode\QrCode; - -$qrCode = new QrCode(); -$qrCode - ->setText('Life is too short to be generating QR codes') - ->setSize(300) - ->setPadding(10) - ->setErrorCorrection('high') - ->setForegroundColor(['r' => 0, 'g' => 0, 'b' => 0, 'a' => 0]) - ->setBackgroundColor(['r' => 255, 'g' => 255, 'b' => 255, 'a' => 0]) - ->setLabel('Scan the code') - ->setLabelFontSize(16) - ->setImageType(QrCode::IMAGE_TYPE_PNG) -; - -// now we can directly output the qrcode -header('Content-Type: '.$qrCode->getContentType()); -$qrCode->render(); - -// save it to a file -$qrCode->save('qrcode.png'); - -// or create a response object -$response = new Response($qrCode->get(), 200, ['Content-Type' => $qrCode->getContentType()]); -``` - -![QR Code](http://endroid.nl/qrcode/Life%20is%20too%20short%20to%20be%20generating%20QR%20codes.png?label=Scan%20the%20code) - -## Symfony integration - -Register the Symfony bundle in the kernel. - -```php -// app/AppKernel.php - -public function registerBundles() -{ - $bundles = [ - // ... - new Endroid\QrCode\Bundle\EndroidQrCodeBundle(), - ]; -} -``` - -The default parameters can be overridden via the configuration. -Alpha channel available range is [0, 127] in foreground and background colors. - -```yaml -endroid_qr_code: - size: 100 - padding: 10 - extension: gif - error_correction_level: high - foreground_color: { r: 0, g: 0, b: 0, a: 0 } - background_color: { r: 255, g: 255, b: 255, a: 0 } - label: 'My label' - label_font_size: 16 -``` - -Now you can retrieve the factory as follows. - -```php -$factory = $this->get('endroid.qrcode.factory'); -$factory->createQrCode(); -``` - -Add the following section to your routing to be able to handle QR code URLs. -This step can be skipped when you only use data URIs to display your images. - -``` yml -EndroidQrCodeBundle: - resource: "@EndroidQrCodeBundle/Controller/" - type: annotation - prefix: /qrcode -``` - -After installation and configuration, QR codes can be generated by appending -the QR code text to the url as mounted, followed by .png, .jpg or .gif. - -## Twig extension - -The bundle also provides a Twig extension for quickly generating QR code urls. -Optional parameters are extension, size, padding and errorCorrectionLevel. When -a parameter is omitted, the value in the bundle configuration is used. - -``` twig - - - -``` - -You can also use the data URI helper to embed the QR code within your HTML -instead of requiring a separate HTTP request to load your image. - -``` twig - -``` - -## Versioning - -Version numbers follow the MAJOR.MINOR.PATCH scheme. Backwards compatibility -breaking changes will be kept to a minimum but be aware that these can occur. -Lock your dependencies for production and test your code when upgrading. - -## License - -This bundle is under the MIT license. For the full copyright and license -information please view the LICENSE file that was distributed with this source code. +QR Code +======= + +*By [endroid](http://endroid.nl/)* + +[![Latest Stable Version](http://img.shields.io/packagist/v/endroid/qrcode.svg)](https://packagist.org/packages/endroid/qrcode) +[![Build Status](http://img.shields.io/travis/endroid/QrCode.svg)](http://travis-ci.org/endroid/QrCode) +[![Total Downloads](http://img.shields.io/packagist/dt/endroid/qrcode.svg)](https://packagist.org/packages/endroid/qrcode) +[![Monthly Downloads](http://img.shields.io/packagist/dm/endroid/qrcode.svg)](https://packagist.org/packages/endroid/qrcode) +[![License](http://img.shields.io/packagist/l/endroid/qrcode.svg)](https://packagist.org/packages/endroid/qrcode) + +This library based on QRcode Perl CGI & PHP scripts by Y. Swetake helps you generate images containing a QR code. + +## Installation + +Use [Composer](https://getcomposer.org/) to install the library. + +``` bash +$ composer require endroid/qrcode +``` + +## Usage + +```php +use Endroid\QrCode\QrCode; + +$qrCode = new QrCode(); +$qrCode + ->setText('Life is too short to be generating QR codes') + ->setSize(300) + ->setPadding(10) + ->setErrorCorrection('high') + ->setForegroundColor(['r' => 0, 'g' => 0, 'b' => 0, 'a' => 0]) + ->setBackgroundColor(['r' => 255, 'g' => 255, 'b' => 255, 'a' => 0]) + ->setLabel('Scan the code') + ->setLabelFontSize(16) + ->setImageType(QrCode::IMAGE_TYPE_PNG) +; + +// now we can directly output the qrcode +header('Content-Type: '.$qrCode->getContentType()); +$qrCode->render(); + +// save it to a file +$qrCode->save('qrcode.png'); + +// or create a response object +$response = new Response($qrCode->get(), 200, ['Content-Type' => $qrCode->getContentType()]); +``` + +![QR Code](http://endroid.nl/qrcode/Life%20is%20too%20short%20to%20be%20generating%20QR%20codes.png?label=Scan%20the%20code) + +## Symfony integration + +Register the Symfony bundle in the kernel. + +```php +// app/AppKernel.php + +public function registerBundles() +{ + $bundles = [ + // ... + new Endroid\QrCode\Bundle\EndroidQrCodeBundle(), + ]; +} +``` + +The default parameters can be overridden via the configuration. +Alpha channel available range is [0, 127] in foreground and background colors. + +```yaml +endroid_qr_code: + size: 100 + padding: 10 + extension: gif + error_correction_level: high + foreground_color: { r: 0, g: 0, b: 0, a: 0 } + background_color: { r: 255, g: 255, b: 255, a: 0 } + label: 'My label' + label_font_size: 16 +``` + +Now you can retrieve the factory as follows. + +```php +$factory = $this->get('endroid.qrcode.factory'); +$factory->createQrCode(); +``` + +Add the following section to your routing to be able to handle QR code URLs. +This step can be skipped when you only use data URIs to display your images. + +``` yml +EndroidQrCodeBundle: + resource: "@EndroidQrCodeBundle/Controller/" + type: annotation + prefix: /qrcode +``` + +After installation and configuration, QR codes can be generated by appending +the QR code text to the url as mounted, followed by .png, .jpg or .gif. + +## Twig extension + +The bundle also provides a Twig extension for quickly generating QR code urls. +Optional parameters are extension, size, padding and errorCorrectionLevel. When +a parameter is omitted, the value in the bundle configuration is used. + +``` twig + + + +``` + +You can also use the data URI helper to embed the QR code within your HTML +instead of requiring a separate HTTP request to load your image. + +``` twig + +``` + +## Versioning + +Version numbers follow the MAJOR.MINOR.PATCH scheme. Backwards compatibility +breaking changes will be kept to a minimum but be aware that these can occur. +Lock your dependencies for production and test your code when upgrading. + +## License + +This bundle is under the MIT license. For the full copyright and license +information please view the LICENSE file that was distributed with this source code. diff --git a/vendor/endroid/qr-code/assets/data/qrv10_0.dat b/vendor/endroid/qr-code/assets/data/qrv10_0.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv10_1.dat b/vendor/endroid/qr-code/assets/data/qrv10_1.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv10_2.dat b/vendor/endroid/qr-code/assets/data/qrv10_2.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv10_3.dat b/vendor/endroid/qr-code/assets/data/qrv10_3.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv11_0.dat b/vendor/endroid/qr-code/assets/data/qrv11_0.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv11_1.dat b/vendor/endroid/qr-code/assets/data/qrv11_1.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv11_2.dat b/vendor/endroid/qr-code/assets/data/qrv11_2.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv11_3.dat b/vendor/endroid/qr-code/assets/data/qrv11_3.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv12_0.dat b/vendor/endroid/qr-code/assets/data/qrv12_0.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv12_1.dat b/vendor/endroid/qr-code/assets/data/qrv12_1.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv12_2.dat b/vendor/endroid/qr-code/assets/data/qrv12_2.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv12_3.dat b/vendor/endroid/qr-code/assets/data/qrv12_3.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv13_0.dat b/vendor/endroid/qr-code/assets/data/qrv13_0.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv13_1.dat b/vendor/endroid/qr-code/assets/data/qrv13_1.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv13_2.dat b/vendor/endroid/qr-code/assets/data/qrv13_2.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv13_3.dat b/vendor/endroid/qr-code/assets/data/qrv13_3.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv14_0.dat b/vendor/endroid/qr-code/assets/data/qrv14_0.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv14_1.dat b/vendor/endroid/qr-code/assets/data/qrv14_1.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv14_2.dat b/vendor/endroid/qr-code/assets/data/qrv14_2.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv14_3.dat b/vendor/endroid/qr-code/assets/data/qrv14_3.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv15_0.dat b/vendor/endroid/qr-code/assets/data/qrv15_0.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv15_1.dat b/vendor/endroid/qr-code/assets/data/qrv15_1.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv15_2.dat b/vendor/endroid/qr-code/assets/data/qrv15_2.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv15_3.dat b/vendor/endroid/qr-code/assets/data/qrv15_3.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv16_0.dat b/vendor/endroid/qr-code/assets/data/qrv16_0.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv16_1.dat b/vendor/endroid/qr-code/assets/data/qrv16_1.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv16_2.dat b/vendor/endroid/qr-code/assets/data/qrv16_2.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv16_3.dat b/vendor/endroid/qr-code/assets/data/qrv16_3.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv17_0.dat b/vendor/endroid/qr-code/assets/data/qrv17_0.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv17_1.dat b/vendor/endroid/qr-code/assets/data/qrv17_1.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv17_2.dat b/vendor/endroid/qr-code/assets/data/qrv17_2.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv17_3.dat b/vendor/endroid/qr-code/assets/data/qrv17_3.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv18_0.dat b/vendor/endroid/qr-code/assets/data/qrv18_0.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv18_1.dat b/vendor/endroid/qr-code/assets/data/qrv18_1.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv18_2.dat b/vendor/endroid/qr-code/assets/data/qrv18_2.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv18_3.dat b/vendor/endroid/qr-code/assets/data/qrv18_3.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv19_0.dat b/vendor/endroid/qr-code/assets/data/qrv19_0.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv19_1.dat b/vendor/endroid/qr-code/assets/data/qrv19_1.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv19_2.dat b/vendor/endroid/qr-code/assets/data/qrv19_2.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv19_3.dat b/vendor/endroid/qr-code/assets/data/qrv19_3.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv1_0.dat b/vendor/endroid/qr-code/assets/data/qrv1_0.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv1_1.dat b/vendor/endroid/qr-code/assets/data/qrv1_1.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv1_2.dat b/vendor/endroid/qr-code/assets/data/qrv1_2.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv1_3.dat b/vendor/endroid/qr-code/assets/data/qrv1_3.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv20_0.dat b/vendor/endroid/qr-code/assets/data/qrv20_0.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv20_1.dat b/vendor/endroid/qr-code/assets/data/qrv20_1.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv20_2.dat b/vendor/endroid/qr-code/assets/data/qrv20_2.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv20_3.dat b/vendor/endroid/qr-code/assets/data/qrv20_3.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv21_0.dat b/vendor/endroid/qr-code/assets/data/qrv21_0.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv21_1.dat b/vendor/endroid/qr-code/assets/data/qrv21_1.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv21_2.dat b/vendor/endroid/qr-code/assets/data/qrv21_2.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv21_3.dat b/vendor/endroid/qr-code/assets/data/qrv21_3.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv22_0.dat b/vendor/endroid/qr-code/assets/data/qrv22_0.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv22_1.dat b/vendor/endroid/qr-code/assets/data/qrv22_1.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv22_2.dat b/vendor/endroid/qr-code/assets/data/qrv22_2.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv22_3.dat b/vendor/endroid/qr-code/assets/data/qrv22_3.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv23_0.dat b/vendor/endroid/qr-code/assets/data/qrv23_0.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv23_1.dat b/vendor/endroid/qr-code/assets/data/qrv23_1.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv23_2.dat b/vendor/endroid/qr-code/assets/data/qrv23_2.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv23_3.dat b/vendor/endroid/qr-code/assets/data/qrv23_3.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv24_0.dat b/vendor/endroid/qr-code/assets/data/qrv24_0.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv24_1.dat b/vendor/endroid/qr-code/assets/data/qrv24_1.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv24_2.dat b/vendor/endroid/qr-code/assets/data/qrv24_2.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv24_3.dat b/vendor/endroid/qr-code/assets/data/qrv24_3.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv25_0.dat b/vendor/endroid/qr-code/assets/data/qrv25_0.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv25_1.dat b/vendor/endroid/qr-code/assets/data/qrv25_1.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv25_2.dat b/vendor/endroid/qr-code/assets/data/qrv25_2.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv25_3.dat b/vendor/endroid/qr-code/assets/data/qrv25_3.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv26_0.dat b/vendor/endroid/qr-code/assets/data/qrv26_0.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv26_1.dat b/vendor/endroid/qr-code/assets/data/qrv26_1.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv26_2.dat b/vendor/endroid/qr-code/assets/data/qrv26_2.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv26_3.dat b/vendor/endroid/qr-code/assets/data/qrv26_3.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv27_0.dat b/vendor/endroid/qr-code/assets/data/qrv27_0.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv27_1.dat b/vendor/endroid/qr-code/assets/data/qrv27_1.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv27_2.dat b/vendor/endroid/qr-code/assets/data/qrv27_2.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv27_3.dat b/vendor/endroid/qr-code/assets/data/qrv27_3.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv28_0.dat b/vendor/endroid/qr-code/assets/data/qrv28_0.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv28_1.dat b/vendor/endroid/qr-code/assets/data/qrv28_1.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv28_2.dat b/vendor/endroid/qr-code/assets/data/qrv28_2.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv28_3.dat b/vendor/endroid/qr-code/assets/data/qrv28_3.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv29_0.dat b/vendor/endroid/qr-code/assets/data/qrv29_0.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv29_1.dat b/vendor/endroid/qr-code/assets/data/qrv29_1.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv29_2.dat b/vendor/endroid/qr-code/assets/data/qrv29_2.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv29_3.dat b/vendor/endroid/qr-code/assets/data/qrv29_3.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv2_0.dat b/vendor/endroid/qr-code/assets/data/qrv2_0.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv2_1.dat b/vendor/endroid/qr-code/assets/data/qrv2_1.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv2_2.dat b/vendor/endroid/qr-code/assets/data/qrv2_2.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv2_3.dat b/vendor/endroid/qr-code/assets/data/qrv2_3.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv30_0.dat b/vendor/endroid/qr-code/assets/data/qrv30_0.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv30_1.dat b/vendor/endroid/qr-code/assets/data/qrv30_1.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv30_2.dat b/vendor/endroid/qr-code/assets/data/qrv30_2.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv30_3.dat b/vendor/endroid/qr-code/assets/data/qrv30_3.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv31_0.dat b/vendor/endroid/qr-code/assets/data/qrv31_0.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv31_1.dat b/vendor/endroid/qr-code/assets/data/qrv31_1.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv31_2.dat b/vendor/endroid/qr-code/assets/data/qrv31_2.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv31_3.dat b/vendor/endroid/qr-code/assets/data/qrv31_3.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv32_0.dat b/vendor/endroid/qr-code/assets/data/qrv32_0.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv32_1.dat b/vendor/endroid/qr-code/assets/data/qrv32_1.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv32_2.dat b/vendor/endroid/qr-code/assets/data/qrv32_2.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv32_3.dat b/vendor/endroid/qr-code/assets/data/qrv32_3.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv33_0.dat b/vendor/endroid/qr-code/assets/data/qrv33_0.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv33_1.dat b/vendor/endroid/qr-code/assets/data/qrv33_1.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv33_2.dat b/vendor/endroid/qr-code/assets/data/qrv33_2.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv33_3.dat b/vendor/endroid/qr-code/assets/data/qrv33_3.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv34_0.dat b/vendor/endroid/qr-code/assets/data/qrv34_0.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv34_1.dat b/vendor/endroid/qr-code/assets/data/qrv34_1.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv34_2.dat b/vendor/endroid/qr-code/assets/data/qrv34_2.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv34_3.dat b/vendor/endroid/qr-code/assets/data/qrv34_3.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv35_0.dat b/vendor/endroid/qr-code/assets/data/qrv35_0.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv35_1.dat b/vendor/endroid/qr-code/assets/data/qrv35_1.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv35_2.dat b/vendor/endroid/qr-code/assets/data/qrv35_2.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv35_3.dat b/vendor/endroid/qr-code/assets/data/qrv35_3.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv36_0.dat b/vendor/endroid/qr-code/assets/data/qrv36_0.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv36_1.dat b/vendor/endroid/qr-code/assets/data/qrv36_1.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv36_2.dat b/vendor/endroid/qr-code/assets/data/qrv36_2.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv36_3.dat b/vendor/endroid/qr-code/assets/data/qrv36_3.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv37_0.dat b/vendor/endroid/qr-code/assets/data/qrv37_0.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv37_1.dat b/vendor/endroid/qr-code/assets/data/qrv37_1.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv37_2.dat b/vendor/endroid/qr-code/assets/data/qrv37_2.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv37_3.dat b/vendor/endroid/qr-code/assets/data/qrv37_3.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv38_0.dat b/vendor/endroid/qr-code/assets/data/qrv38_0.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv38_1.dat b/vendor/endroid/qr-code/assets/data/qrv38_1.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv38_2.dat b/vendor/endroid/qr-code/assets/data/qrv38_2.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv38_3.dat b/vendor/endroid/qr-code/assets/data/qrv38_3.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv39_0.dat b/vendor/endroid/qr-code/assets/data/qrv39_0.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv39_1.dat b/vendor/endroid/qr-code/assets/data/qrv39_1.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv39_2.dat b/vendor/endroid/qr-code/assets/data/qrv39_2.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv39_3.dat b/vendor/endroid/qr-code/assets/data/qrv39_3.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv3_0.dat b/vendor/endroid/qr-code/assets/data/qrv3_0.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv3_1.dat b/vendor/endroid/qr-code/assets/data/qrv3_1.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv3_2.dat b/vendor/endroid/qr-code/assets/data/qrv3_2.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv3_3.dat b/vendor/endroid/qr-code/assets/data/qrv3_3.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv40_0.dat b/vendor/endroid/qr-code/assets/data/qrv40_0.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv40_1.dat b/vendor/endroid/qr-code/assets/data/qrv40_1.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv40_2.dat b/vendor/endroid/qr-code/assets/data/qrv40_2.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv40_3.dat b/vendor/endroid/qr-code/assets/data/qrv40_3.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv4_0.dat b/vendor/endroid/qr-code/assets/data/qrv4_0.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv4_1.dat b/vendor/endroid/qr-code/assets/data/qrv4_1.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv4_2.dat b/vendor/endroid/qr-code/assets/data/qrv4_2.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv4_3.dat b/vendor/endroid/qr-code/assets/data/qrv4_3.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv5_0.dat b/vendor/endroid/qr-code/assets/data/qrv5_0.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv5_1.dat b/vendor/endroid/qr-code/assets/data/qrv5_1.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv5_2.dat b/vendor/endroid/qr-code/assets/data/qrv5_2.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv5_3.dat b/vendor/endroid/qr-code/assets/data/qrv5_3.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv6_0.dat b/vendor/endroid/qr-code/assets/data/qrv6_0.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv6_1.dat b/vendor/endroid/qr-code/assets/data/qrv6_1.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv6_2.dat b/vendor/endroid/qr-code/assets/data/qrv6_2.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv6_3.dat b/vendor/endroid/qr-code/assets/data/qrv6_3.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv7_0.dat b/vendor/endroid/qr-code/assets/data/qrv7_0.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv7_1.dat b/vendor/endroid/qr-code/assets/data/qrv7_1.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv7_2.dat b/vendor/endroid/qr-code/assets/data/qrv7_2.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv7_3.dat b/vendor/endroid/qr-code/assets/data/qrv7_3.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv8_0.dat b/vendor/endroid/qr-code/assets/data/qrv8_0.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv8_1.dat b/vendor/endroid/qr-code/assets/data/qrv8_1.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv8_2.dat b/vendor/endroid/qr-code/assets/data/qrv8_2.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv8_3.dat b/vendor/endroid/qr-code/assets/data/qrv8_3.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv9_0.dat b/vendor/endroid/qr-code/assets/data/qrv9_0.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv9_1.dat b/vendor/endroid/qr-code/assets/data/qrv9_1.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv9_2.dat b/vendor/endroid/qr-code/assets/data/qrv9_2.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrv9_3.dat b/vendor/endroid/qr-code/assets/data/qrv9_3.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrvfr1.dat b/vendor/endroid/qr-code/assets/data/qrvfr1.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrvfr10.dat b/vendor/endroid/qr-code/assets/data/qrvfr10.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrvfr11.dat b/vendor/endroid/qr-code/assets/data/qrvfr11.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrvfr12.dat b/vendor/endroid/qr-code/assets/data/qrvfr12.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrvfr13.dat b/vendor/endroid/qr-code/assets/data/qrvfr13.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrvfr14.dat b/vendor/endroid/qr-code/assets/data/qrvfr14.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrvfr15.dat b/vendor/endroid/qr-code/assets/data/qrvfr15.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrvfr16.dat b/vendor/endroid/qr-code/assets/data/qrvfr16.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrvfr17.dat b/vendor/endroid/qr-code/assets/data/qrvfr17.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrvfr18.dat b/vendor/endroid/qr-code/assets/data/qrvfr18.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrvfr19.dat b/vendor/endroid/qr-code/assets/data/qrvfr19.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrvfr2.dat b/vendor/endroid/qr-code/assets/data/qrvfr2.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrvfr20.dat b/vendor/endroid/qr-code/assets/data/qrvfr20.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrvfr21.dat b/vendor/endroid/qr-code/assets/data/qrvfr21.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrvfr22.dat b/vendor/endroid/qr-code/assets/data/qrvfr22.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrvfr23.dat b/vendor/endroid/qr-code/assets/data/qrvfr23.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrvfr24.dat b/vendor/endroid/qr-code/assets/data/qrvfr24.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrvfr25.dat b/vendor/endroid/qr-code/assets/data/qrvfr25.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrvfr26.dat b/vendor/endroid/qr-code/assets/data/qrvfr26.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrvfr27.dat b/vendor/endroid/qr-code/assets/data/qrvfr27.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrvfr28.dat b/vendor/endroid/qr-code/assets/data/qrvfr28.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrvfr29.dat b/vendor/endroid/qr-code/assets/data/qrvfr29.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrvfr3.dat b/vendor/endroid/qr-code/assets/data/qrvfr3.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrvfr30.dat b/vendor/endroid/qr-code/assets/data/qrvfr30.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrvfr31.dat b/vendor/endroid/qr-code/assets/data/qrvfr31.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrvfr32.dat b/vendor/endroid/qr-code/assets/data/qrvfr32.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrvfr33.dat b/vendor/endroid/qr-code/assets/data/qrvfr33.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrvfr34.dat b/vendor/endroid/qr-code/assets/data/qrvfr34.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrvfr35.dat b/vendor/endroid/qr-code/assets/data/qrvfr35.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrvfr36.dat b/vendor/endroid/qr-code/assets/data/qrvfr36.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrvfr37.dat b/vendor/endroid/qr-code/assets/data/qrvfr37.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrvfr38.dat b/vendor/endroid/qr-code/assets/data/qrvfr38.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrvfr39.dat b/vendor/endroid/qr-code/assets/data/qrvfr39.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrvfr4.dat b/vendor/endroid/qr-code/assets/data/qrvfr4.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrvfr40.dat b/vendor/endroid/qr-code/assets/data/qrvfr40.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrvfr5.dat b/vendor/endroid/qr-code/assets/data/qrvfr5.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrvfr6.dat b/vendor/endroid/qr-code/assets/data/qrvfr6.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrvfr7.dat b/vendor/endroid/qr-code/assets/data/qrvfr7.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrvfr8.dat b/vendor/endroid/qr-code/assets/data/qrvfr8.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/qrvfr9.dat b/vendor/endroid/qr-code/assets/data/qrvfr9.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/rsc10.dat b/vendor/endroid/qr-code/assets/data/rsc10.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/rsc13.dat b/vendor/endroid/qr-code/assets/data/rsc13.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/rsc15.dat b/vendor/endroid/qr-code/assets/data/rsc15.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/rsc16.dat b/vendor/endroid/qr-code/assets/data/rsc16.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/rsc17.dat b/vendor/endroid/qr-code/assets/data/rsc17.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/rsc18.dat b/vendor/endroid/qr-code/assets/data/rsc18.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/rsc20.dat b/vendor/endroid/qr-code/assets/data/rsc20.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/rsc22.dat b/vendor/endroid/qr-code/assets/data/rsc22.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/rsc24.dat b/vendor/endroid/qr-code/assets/data/rsc24.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/rsc26.dat b/vendor/endroid/qr-code/assets/data/rsc26.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/rsc28.dat b/vendor/endroid/qr-code/assets/data/rsc28.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/rsc30.dat b/vendor/endroid/qr-code/assets/data/rsc30.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/rsc32.dat b/vendor/endroid/qr-code/assets/data/rsc32.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/rsc34.dat b/vendor/endroid/qr-code/assets/data/rsc34.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/rsc36.dat b/vendor/endroid/qr-code/assets/data/rsc36.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/rsc40.dat b/vendor/endroid/qr-code/assets/data/rsc40.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/rsc42.dat b/vendor/endroid/qr-code/assets/data/rsc42.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/rsc44.dat b/vendor/endroid/qr-code/assets/data/rsc44.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/rsc46.dat b/vendor/endroid/qr-code/assets/data/rsc46.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/rsc48.dat b/vendor/endroid/qr-code/assets/data/rsc48.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/rsc50.dat b/vendor/endroid/qr-code/assets/data/rsc50.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/rsc52.dat b/vendor/endroid/qr-code/assets/data/rsc52.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/rsc54.dat b/vendor/endroid/qr-code/assets/data/rsc54.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/rsc56.dat b/vendor/endroid/qr-code/assets/data/rsc56.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/rsc58.dat b/vendor/endroid/qr-code/assets/data/rsc58.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/rsc60.dat b/vendor/endroid/qr-code/assets/data/rsc60.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/rsc62.dat b/vendor/endroid/qr-code/assets/data/rsc62.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/rsc64.dat b/vendor/endroid/qr-code/assets/data/rsc64.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/rsc66.dat b/vendor/endroid/qr-code/assets/data/rsc66.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/rsc68.dat b/vendor/endroid/qr-code/assets/data/rsc68.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/data/rsc7.dat b/vendor/endroid/qr-code/assets/data/rsc7.dat old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/font/opensans.ttf b/vendor/endroid/qr-code/assets/font/opensans.ttf old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/image/b.png b/vendor/endroid/qr-code/assets/image/b.png old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/image/d.png b/vendor/endroid/qr-code/assets/image/d.png old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/image/logo.png b/vendor/endroid/qr-code/assets/image/logo.png old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/image/qrv1.png b/vendor/endroid/qr-code/assets/image/qrv1.png old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/image/qrv10.png b/vendor/endroid/qr-code/assets/image/qrv10.png old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/image/qrv11.png b/vendor/endroid/qr-code/assets/image/qrv11.png old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/image/qrv12.png b/vendor/endroid/qr-code/assets/image/qrv12.png old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/image/qrv13.png b/vendor/endroid/qr-code/assets/image/qrv13.png old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/image/qrv14.png b/vendor/endroid/qr-code/assets/image/qrv14.png old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/image/qrv15.png b/vendor/endroid/qr-code/assets/image/qrv15.png old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/image/qrv16.png b/vendor/endroid/qr-code/assets/image/qrv16.png old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/image/qrv17.png b/vendor/endroid/qr-code/assets/image/qrv17.png old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/image/qrv18.png b/vendor/endroid/qr-code/assets/image/qrv18.png old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/image/qrv19.png b/vendor/endroid/qr-code/assets/image/qrv19.png old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/image/qrv2.png b/vendor/endroid/qr-code/assets/image/qrv2.png old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/image/qrv20.png b/vendor/endroid/qr-code/assets/image/qrv20.png old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/image/qrv21.png b/vendor/endroid/qr-code/assets/image/qrv21.png old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/image/qrv22.png b/vendor/endroid/qr-code/assets/image/qrv22.png old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/image/qrv23.png b/vendor/endroid/qr-code/assets/image/qrv23.png old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/image/qrv24.png b/vendor/endroid/qr-code/assets/image/qrv24.png old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/image/qrv25.png b/vendor/endroid/qr-code/assets/image/qrv25.png old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/image/qrv26.png b/vendor/endroid/qr-code/assets/image/qrv26.png old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/image/qrv27.png b/vendor/endroid/qr-code/assets/image/qrv27.png old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/image/qrv28.png b/vendor/endroid/qr-code/assets/image/qrv28.png old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/image/qrv29.png b/vendor/endroid/qr-code/assets/image/qrv29.png old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/image/qrv3.png b/vendor/endroid/qr-code/assets/image/qrv3.png old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/image/qrv30.png b/vendor/endroid/qr-code/assets/image/qrv30.png old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/image/qrv31.png b/vendor/endroid/qr-code/assets/image/qrv31.png old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/image/qrv32.png b/vendor/endroid/qr-code/assets/image/qrv32.png old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/image/qrv33.png b/vendor/endroid/qr-code/assets/image/qrv33.png old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/image/qrv34.png b/vendor/endroid/qr-code/assets/image/qrv34.png old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/image/qrv35.png b/vendor/endroid/qr-code/assets/image/qrv35.png old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/image/qrv36.png b/vendor/endroid/qr-code/assets/image/qrv36.png old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/image/qrv37.png b/vendor/endroid/qr-code/assets/image/qrv37.png old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/image/qrv38.png b/vendor/endroid/qr-code/assets/image/qrv38.png old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/image/qrv39.png b/vendor/endroid/qr-code/assets/image/qrv39.png old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/image/qrv4.png b/vendor/endroid/qr-code/assets/image/qrv4.png old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/image/qrv40.png b/vendor/endroid/qr-code/assets/image/qrv40.png old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/image/qrv5.png b/vendor/endroid/qr-code/assets/image/qrv5.png old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/image/qrv6.png b/vendor/endroid/qr-code/assets/image/qrv6.png old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/image/qrv7.png b/vendor/endroid/qr-code/assets/image/qrv7.png old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/image/qrv8.png b/vendor/endroid/qr-code/assets/image/qrv8.png old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/assets/image/qrv9.png b/vendor/endroid/qr-code/assets/image/qrv9.png old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/composer.json b/vendor/endroid/qr-code/composer.json old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/src/Bundle/Controller/QrCodeController.php b/vendor/endroid/qr-code/src/Bundle/Controller/QrCodeController.php old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/src/Bundle/DependencyInjection/Configuration.php b/vendor/endroid/qr-code/src/Bundle/DependencyInjection/Configuration.php old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/src/Bundle/Resources/config/services.yml b/vendor/endroid/qr-code/src/Bundle/Resources/config/services.yml old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/src/Bundle/Twig/Extension/QrCodeExtension.php b/vendor/endroid/qr-code/src/Bundle/Twig/Extension/QrCodeExtension.php old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/src/Exceptions/DataDoesntExistsException.php b/vendor/endroid/qr-code/src/Exceptions/DataDoesntExistsException.php old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/src/Exceptions/FreeTypeLibraryMissingException.php b/vendor/endroid/qr-code/src/Exceptions/FreeTypeLibraryMissingException.php old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/src/Exceptions/ImageFunctionFailedException.php b/vendor/endroid/qr-code/src/Exceptions/ImageFunctionFailedException.php old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/src/Exceptions/ImageFunctionUnknownException.php b/vendor/endroid/qr-code/src/Exceptions/ImageFunctionUnknownException.php old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/src/Exceptions/ImageSizeTooLargeException.php b/vendor/endroid/qr-code/src/Exceptions/ImageSizeTooLargeException.php old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/src/Exceptions/ImageTypeInvalidException.php b/vendor/endroid/qr-code/src/Exceptions/ImageTypeInvalidException.php old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/src/Exceptions/VersionTooLargeException.php b/vendor/endroid/qr-code/src/Exceptions/VersionTooLargeException.php old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/src/QrCode.php b/vendor/endroid/qr-code/src/QrCode.php old mode 100644 new mode 100755 diff --git a/vendor/endroid/qr-code/tests/QrCodeTest.php b/vendor/endroid/qr-code/tests/QrCodeTest.php old mode 100644 new mode 100755 diff --git a/vendor/qiniu/php-sdk/test-env.sh b/vendor/qiniu/php-sdk/test-env.sh old mode 100644 new mode 100755 diff --git a/vendor/zoujingli/ip2region/test.php b/vendor/zoujingli/ip2region/test.php index 45981c3db..2e97d7d14 100644 --- a/vendor/zoujingli/ip2region/test.php +++ b/vendor/zoujingli/ip2region/test.php @@ -1,15 +1,15 @@ -btreeSearch($ip); - -var_export($info, true); - -// array ( -// 'city_id' => 2163, -// 'region' => '中国|华南|广东省|深圳市|鹏博士', +btreeSearch($ip); + +var_export($info, true); + +// array ( +// 'city_id' => 2163, +// 'region' => '中国|华南|广东省|深圳市|鹏博士', // ) \ No newline at end of file diff --git a/vendor/zoujingli/wechat-developer/WeChat/Pay.php b/vendor/zoujingli/wechat-developer/WeChat/Pay.php index 260e8be4b..f5c4ab974 100644 --- a/vendor/zoujingli/wechat-developer/WeChat/Pay.php +++ b/vendor/zoujingli/wechat-developer/WeChat/Pay.php @@ -196,7 +196,7 @@ class Pay public function createTransfers(array $options) { $url = 'https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers'; - return $this->callPostApi($url, $options, true); + return $this->callPostApi($url, $options, true, 'MD5', false); } /** @@ -208,7 +208,7 @@ class Pay public function queryTransfers($partner_trade_no) { $url = 'https://api.mch.weixin.qq.com/mmpaymkttransfers/gettransferinfo'; - return $this->callPostApi($url, ['partner_trade_no' => $partner_trade_no], true); + return $this->callPostApi($url, ['partner_trade_no' => $partner_trade_no], true, 'MD5', false); } /** @@ -230,9 +230,10 @@ class Pay /** * 生成支付签名 * @param array $data + * @param string $signType * @return string */ - public function getPaySign(array $data) + public function getPaySign(array $data, $signType = 'MD5') { unset($data['sign']); ksort($data); @@ -240,6 +241,9 @@ class Pay foreach ($data as $k => $v) { $str .= "{$k}={$v}&"; } + if ($signType === 'MD5') { + return strtoupper(md5("{$str}key={$key}")); + } return strtoupper(hash_hmac('SHA256', "{$str}key={$key}", $key)); } @@ -248,10 +252,12 @@ class Pay * @param string $url 请求 * @param array $data 接口参数 * @param bool $isCert 是否需要使用双向证书 + * @param string $signType 数据签名类型 MD5|SHA256 + * @param bool $needSignType 是否需要传签名类型参数 * @return array * @throws InvalidResponseException */ - public function callPostApi($url, array $data, $isCert = false) + public function callPostApi($url, array $data, $isCert = false, $signType = 'HMAC-SHA256', $needSignType = true) { $option = []; if ($isCert) { @@ -264,8 +270,10 @@ class Pay $option['ssl_key'] = $this->config->get('ssl_key'); } $params = $this->params->merge($data); - $params['sign_type'] = 'HMAC-SHA256'; - $params['sign'] = $this->getPaySign($params); + if ($needSignType) { + $params['sign_type'] = strtoupper($signType); + } + $params['sign'] = $this->getPaySign($params, $signType); $result = Tools::xml2arr(Tools::post($url, Tools::arr2xml($params), $option)); if ($result['return_code'] !== 'SUCCESS') { throw new InvalidResponseException($result['return_msg'], '0'); From f207ac52eb4cd1bb4423f5a3d5a022103207a687 Mon Sep 17 00:00:00 2001 From: Anyon Date: Thu, 12 Apr 2018 19:16:53 +0800 Subject: [PATCH 143/153] =?UTF-8?q?[=E6=9B=B4=E6=96=B0]ThinkPHP=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E5=9B=9E=E9=80=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- composer.json | 2 +- thinkphp/lang/zh-cn.php | 1 - thinkphp/library/think/App.php | 10 +- thinkphp/library/think/Db.php | 1 - thinkphp/library/think/Loader.php | 38 +- thinkphp/library/think/Model.php | 19 +- thinkphp/library/think/Request.php | 13 +- thinkphp/library/think/Validate.php | 2 +- thinkphp/library/think/db/Builder.php | 83 ++- thinkphp/library/think/db/Connection.php | 4 +- thinkphp/library/think/db/Query.php | 27 +- thinkphp/library/think/db/builder/Mysql.php | 7 +- thinkphp/library/think/db/builder/Pgsql.php | 3 +- thinkphp/library/think/db/builder/Sqlite.php | 3 +- thinkphp/library/think/db/builder/Sqlsrv.php | 42 +- .../think/model/concern/SoftDelete.php | 38 +- thinkphp/library/think/route/Rule.php | 2 +- thinkphp/library/think/route/RuleGroup.php | 2 +- thinkphp/library/think/route/RuleItem.php | 2 +- .../library/think/route/dispatch/Module.php | 15 +- thinkphp/library/think/view/driver/Php.php | 10 +- thinkphp/library/think/view/driver/Think.php | 11 +- vendor/autoload.php | 2 +- vendor/composer/ClassLoader.php | 4 +- vendor/composer/autoload_files.php | 2 +- vendor/composer/autoload_real.php | 14 +- vendor/composer/autoload_static.php | 10 +- vendor/composer/installed.json | 684 +++++++++--------- 28 files changed, 480 insertions(+), 571 deletions(-) diff --git a/composer.json b/composer.json index 8a2e7a1c4..ef0e8f3d6 100644 --- a/composer.json +++ b/composer.json @@ -18,7 +18,7 @@ "require": { "php": ">=5.6.0", "endroid/qr-code": "^1.9", - "topthink/framework": "5.1.*", + "topthink/framework": "5.1.8", "zoujingli/ip2region": "dev-master", "aliyuncs/oss-sdk-php": "^2.2", "zoujingli/weopen-developer": "dev-master", diff --git a/thinkphp/lang/zh-cn.php b/thinkphp/lang/zh-cn.php index 5a3e0bd6b..16b1bb7ce 100644 --- a/thinkphp/lang/zh-cn.php +++ b/thinkphp/lang/zh-cn.php @@ -69,7 +69,6 @@ return [ 'chunk not support order' => 'Chunk不支持调用order方法', 'route pattern error' => '路由变量规则定义错误', 'route behavior will not support' => '路由行为废弃(使用中间件替代)', - 'closure not support cache(true)' => '使用闭包查询不支持cache(true),请指定缓存Key', // 上传错误信息 'unknown upload error' => '未知上传错误!', diff --git a/thinkphp/library/think/App.php b/thinkphp/library/think/App.php index 039a876aa..6da1888b5 100644 --- a/thinkphp/library/think/App.php +++ b/thinkphp/library/think/App.php @@ -20,7 +20,7 @@ use think\route\Dispatch; */ class App implements \ArrayAccess { - const VERSION = '5.1.9'; + const VERSION = '5.1.8'; /** * 当前模块路径 @@ -126,7 +126,7 @@ class App implements \ArrayAccess public function __construct($appPath = '') { - $this->appPath = $appPath ? realpath($appPath) : $this->getAppPath(); + $this->appPath = $appPath ?: $this->getAppPath(); $this->container = Container::getInstance(); } @@ -164,7 +164,7 @@ class App implements \ArrayAccess $this->beginTime = microtime(true); $this->beginMem = memory_get_usage(); $this->thinkPath = dirname(dirname(__DIR__)) . DIRECTORY_SEPARATOR; - $this->rootPath = dirname($this->appPath) . DIRECTORY_SEPARATOR; + $this->rootPath = dirname(realpath($this->appPath)) . DIRECTORY_SEPARATOR; $this->runtimePath = $this->rootPath . 'runtime' . DIRECTORY_SEPARATOR; $this->routePath = $this->rootPath . 'route' . DIRECTORY_SEPARATOR; $this->configPath = $this->rootPath . 'config' . DIRECTORY_SEPARATOR; @@ -756,7 +756,9 @@ class App implements \ArrayAccess public function getAppPath() { if (is_null($this->appPath)) { - $this->appPath = Loader::getRootPath() . 'application' . DIRECTORY_SEPARATOR; + $scriptName = 'cli' == PHP_SAPI ? getcwd() . DIRECTORY_SEPARATOR . $_SERVER['argv'][0] : $_SERVER['SCRIPT_FILENAME']; + + $this->appPath = realpath(dirname(dirname($scriptName)) . DIRECTORY_SEPARATOR . 'application') . DIRECTORY_SEPARATOR; } return $this->appPath; diff --git a/thinkphp/library/think/Db.php b/thinkphp/library/think/Db.php index 9be2dd2ea..6ce22f391 100644 --- a/thinkphp/library/think/Db.php +++ b/thinkphp/library/think/Db.php @@ -15,7 +15,6 @@ namespace think; * Class Db * @package think * @method \think\db\Query connect(array $config =[], mixed $name = false) static 连接/切换数据库连接 - * @method \think\db\Query master() static 从主服务器读取数据 * @method \think\db\Query table(string $table) static 指定数据表(含前缀) * @method \think\db\Query name(string $name) static 指定数据表(不含前缀) * @method \think\db\Query where(mixed $field, string $op = null, mixed $condition = null) static 查询条件 diff --git a/thinkphp/library/think/Loader.php b/thinkphp/library/think/Loader.php index e2bed16f4..6354f9e47 100644 --- a/thinkphp/library/think/Loader.php +++ b/thinkphp/library/think/Loader.php @@ -52,37 +52,21 @@ class Loader */ private static $composerPath; - // 获取应用根目录 - public static function getRootPath() - { - if ('cli' == PHP_SAPI) { - $cwdPath = getcwd(); - - if (0 === strpos($_SERVER['argv'][0], $cwdPath)) { - $scriptName = $_SERVER['argv'][0]; - } else { - $scriptName = $cwdPath . DIRECTORY_SEPARATOR . $_SERVER['argv'][0]; - } - } else { - $scriptName = $_SERVER['SCRIPT_FILENAME']; - } - - $path = realpath(dirname($scriptName)); - - if (!is_file($path . DIRECTORY_SEPARATOR . 'think')) { - $path = dirname($path); - } - - return $path . DIRECTORY_SEPARATOR; - } - // 注册自动加载机制 public static function register($autoload = '') { // 注册系统自动加载 spl_autoload_register($autoload ?: 'think\\Loader::autoload', true, true); - $rootPath = self::getRootPath(); + $scriptName = 'cli' == PHP_SAPI ? getcwd() . DIRECTORY_SEPARATOR . $_SERVER['argv'][0] : $_SERVER['SCRIPT_FILENAME']; + + $path = realpath(dirname($scriptName)); + + if ('cli-server' == PHP_SAPI || !is_file('./think')) { + $rootPath = dirname($path) . DIRECTORY_SEPARATOR; + } else { + $rootPath = $path . DIRECTORY_SEPARATOR; + } self::$composerPath = $rootPath . 'vendor' . DIRECTORY_SEPARATOR . 'composer' . DIRECTORY_SEPARATOR; @@ -354,10 +338,6 @@ class Loader if (is_file(self::$composerPath . 'autoload_files.php')) { $includeFiles = require self::$composerPath . 'autoload_files.php'; foreach ($includeFiles as $fileIdentifier => $file) { - if (isset($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { - continue; - } - if (empty(self::$autoloadFiles[$fileIdentifier])) { __require_file($file); self::$autoloadFiles[$fileIdentifier] = true; diff --git a/thinkphp/library/think/Model.php b/thinkphp/library/think/Model.php index 9a98a4084..433e6d096 100644 --- a/thinkphp/library/think/Model.php +++ b/thinkphp/library/think/Model.php @@ -104,12 +104,6 @@ abstract class Model implements \JsonSerializable, \ArrayAccess */ protected $error; - /** - * 软删除字段默认值 - * @var mixed - */ - protected $defaultSoftDelete; - /** * 架构函数 * @access public @@ -251,8 +245,11 @@ abstract class Model implements \JsonSerializable, \ArrayAccess if ($useBaseQuery) { // 软删除 - if (method_exists($this, 'withNoTrashed')) { - $this->withNoTrashed($query); + if (method_exists($this, 'getDeleteTimeField')) { + $field = $this->getDeleteTimeField(true); + if ($field) { + $query->useSoftDelete($field); + } } // 全局作用域 @@ -472,7 +469,7 @@ abstract class Model implements \JsonSerializable, \ArrayAccess foreach ((array) $pk as $key) { if (isset($data[$key])) { - $array[] = [$key, '=', $data[$key]]; + $array[$key] = [$key, '=', $data[$key]]; unset($data[$key]); } } @@ -577,10 +574,10 @@ abstract class Model implements \JsonSerializable, \ArrayAccess } /** - * 字段值(延迟)减少 + * 字段值(延迟)增长 * @access public * @param string $field 字段名 - * @param integer $step 减少值 + * @param integer $step 增长值 * @param integer $lazyTime 延时时间(s) * @return integer|true * @throws Exception diff --git a/thinkphp/library/think/Request.php b/thinkphp/library/think/Request.php index c627d06d7..16db947bb 100644 --- a/thinkphp/library/think/Request.php +++ b/thinkphp/library/think/Request.php @@ -1588,18 +1588,9 @@ class Request $ip = $_SERVER['REMOTE_ADDR']; } - // IP地址类型 - $ip_mode = (strpos($ip, ':') === false) ? 'ipv4' : 'ipv6'; - // IP地址合法验证 - if (filter_var($ip, FILTER_VALIDATE_IP) !== $ip) { - $ip = ($ip_mode === 'ipv4') ? '0.0.0.0' : '::'; - } - - // 如果是ipv4地址,则直接使用ip2long返回int类型ip;如果是ipv6地址,暂时不支持,直接返回0 - $long_ip = ($ip_mode === 'ipv4') ? sprintf("%u", ip2long($ip)) : 0; - - $ip = [$ip, $long_ip]; + $long = sprintf("%u", ip2long($ip)); + $ip = $long ? [$ip, $long] : ['0.0.0.0', 0]; return $ip[$type]; } diff --git a/thinkphp/library/think/Validate.php b/thinkphp/library/think/Validate.php index bb1700459..930f7d0fa 100644 --- a/thinkphp/library/think/Validate.php +++ b/thinkphp/library/think/Validate.php @@ -749,7 +749,7 @@ class Validate $result = in_array($value, [true, false, 0, 1, '0', '1'], true); break; case 'number': - $result = ctype_digit((string) $value); + $result = ctype_digit($value); break; case 'array': // 是否为数组 diff --git a/thinkphp/library/think/db/Builder.php b/thinkphp/library/think/db/Builder.php index 31e5fc5e9..78ea0f4a9 100644 --- a/thinkphp/library/think/db/Builder.php +++ b/thinkphp/library/think/db/Builder.php @@ -113,7 +113,7 @@ abstract class Builder $result = []; foreach ($data as $key => $val) { - $item = $this->parseKey($query, $key, true); + $item = $this->parseKey($query, $key); if ($val instanceof Expression) { $result[$item] = $val->getValue(); @@ -183,10 +183,9 @@ abstract class Builder * @access public * @param Query $query 查询对象 * @param string $key 字段名 - * @param bool $strict 严格检测 * @return string */ - public function parseKey(Query $query, $key, $strict = false) + public function parseKey(Query $query, $key) { return $key; } @@ -210,7 +209,7 @@ abstract class Builder if ($field instanceof Expression) { $array[] = $field->getValue(); } elseif (!is_numeric($key)) { - $array[] = $this->parseKey($query, $key) . ' AS ' . $this->parseKey($query, $field, true); + $array[] = $this->parseKey($query, $key) . ' AS ' . $this->parseKey($query, $field); } else { $array[] = $this->parseKey($query, $field); } @@ -364,7 +363,7 @@ abstract class Builder protected function parseWhereItem(Query $query, $field, $val, $rule = '', $binds = [], $bindName = null) { // 字段分析 - $key = $field ? $this->parseKey($query, $field, true) : ''; + $key = $field ? $this->parseKey($query, $field) : ''; // 查询规则和条件 if (!is_array($val)) { @@ -809,42 +808,44 @@ abstract class Builder return ''; } - $array = []; + if (is_array($order)) { + $array = []; - foreach ($order as $key => $val) { - if ($val instanceof Expression) { - $array[] = $val->getValue(); - } elseif (is_array($val)) { - if (isset($val['sort'])) { - $sort = ' ' . $val['sort']; - unset($val['sort']); + foreach ($order as $key => $val) { + if ($val instanceof Expression) { + $array[] = $val->getValue(); + } elseif (is_array($val)) { + if (isset($val['sort'])) { + $sort = ' ' . $val['sort']; + unset($val['sort']); + } else { + $sort = ''; + } + + $options = $query->getOptions(); + $bind = $this->connection->getFieldsBind($options['table']); + + foreach ($val as $k => $item) { + $val[$k] = $this->parseDataBind($query, $key, $item, $bind, $k); + } + + $array[] = 'field(' . $this->parseKey($query, $key) . ',' . implode(',', $val) . ')' . $sort; + } elseif (is_numeric($key)) { + if ('[rand]' == $val) { + $array[] = $this->parseRand($query); + } elseif (false === strpos($val, '(')) { + $array[] = $this->parseKey($query, $val); + } else { + $array[] = $val; + } } else { - $sort = ''; + $sort = in_array(strtolower(trim($val)), ['asc', 'desc']) ? ' ' . $val : ''; + $array[] = $this->parseKey($query, $key) . ' ' . $sort; } - - $options = $query->getOptions(); - $bind = $this->connection->getFieldsBind($options['table']); - - foreach ($val as $k => $item) { - $val[$k] = $this->parseDataBind($query, $key, $item, $bind, $k); - } - - $array[] = 'field(' . $this->parseKey($query, $key, true) . ',' . implode(',', $val) . ')' . $sort; - } elseif ('[rand]' == $val) { - $array[] = $this->parseRand($query); - } else { - if (is_numeric($key)) { - list($key, $sort) = explode(' ', strpos($val, ' ') ? $val : $val . ' '); - } else { - $sort = $val; - } - - $sort = in_array(strtolower($sort), ['asc', 'desc'], true) ? ' ' . $sort : ''; - $array[] = $this->parseKey($query, $key, true) . $sort; } - } - $order = implode(',', $array); + $order = implode(',', $array); + } return ' ORDER BY ' . $order; } @@ -949,7 +950,11 @@ abstract class Builder return ''; } - return sprintf(" FORCE INDEX ( %s ) ", is_array($index) ? implode(',', $index) : $index); + if (is_array($index)) { + $index = join(",", $index); + } + + return sprintf(" FORCE INDEX ( %s ) ", $index); } /** @@ -1065,7 +1070,7 @@ abstract class Builder $fields = []; foreach ($insertFields as $field) { - $fields[] = $this->parseKey($query, $field, true); + $fields[] = $this->parseKey($query, $field); } return str_replace( @@ -1097,7 +1102,7 @@ abstract class Builder } foreach ($fields as &$field) { - $field = $this->parseKey($query, $field, true); + $field = $this->parseKey($query, $field); } return 'INSERT INTO ' . $this->parseTable($query, $table, $options) . ' (' . implode(',', $fields) . ') ' . $this->select($options); diff --git a/thinkphp/library/think/db/Connection.php b/thinkphp/library/think/db/Connection.php index aa1b74028..142e80443 100644 --- a/thinkphp/library/think/db/Connection.php +++ b/thinkphp/library/think/db/Connection.php @@ -2076,7 +2076,7 @@ abstract class Connection { if (is_scalar($value)) { $data = $value; - } elseif (is_array($value) && isset($value[1], $value[2]) && in_array($value[1], ['=', 'eq'], true) && is_scalar($value[2])) { + } elseif (is_array($value) && isset($value[1], $value[2]) && in_array($value[1], ['=', 'eq'])) { $data = $value[2]; } @@ -2089,7 +2089,7 @@ abstract class Connection try { return md5($prefix . serialize($query->getOptions()) . serialize($query->getBind(false))); } catch (\Exception $e) { - throw new Exception('closure not support cache(true)'); + return; } } diff --git a/thinkphp/library/think/db/Query.php b/thinkphp/library/think/db/Query.php index 0329e1c29..ddb2bbea7 100644 --- a/thinkphp/library/think/db/Query.php +++ b/thinkphp/library/think/db/Query.php @@ -1357,7 +1357,7 @@ class Query public function useSoftDelete($field, $condition = null) { if ($field) { - $this->options['soft_delete'] = [$field, $condition]; + $this->options['soft_delete'] = [$field, $condition ?: ['null', '']]; } return $this; @@ -1447,6 +1447,7 @@ class Query return $this->parseArrayWhereItems($field, $logic); } elseif ($field instanceof \Closure) { $where = $field; + $field = ''; } elseif (is_string($field)) { if (preg_match('/[,=\<\'\"\(\s]/', $field)) { return $this->whereRaw($field, $op); @@ -1459,7 +1460,11 @@ class Query } if (!empty($where)) { - $this->options['where'][$logic][] = $where; + if (isset($this->options['where'][$logic][$field])) { + $this->options['where'][$logic][] = $where; + } else { + $this->options['where'][$logic][$field] = $where; + } } return $this; @@ -1485,13 +1490,9 @@ class Query if (in_array(strtoupper($op), ['NULL', 'NOTNULL', 'NOT NULL'], true)) { // null查询 $where = [$field, $op, '']; - } elseif (in_array(strtolower($op), ['=', 'eq', null], true)) { - $where = [$field, 'NULL', '']; - } elseif (in_array(strtolower($op), ['<>', 'neq'], true)) { - $where = [$field, 'NOTNULL', '']; } else { // 字段相等查询 - $where = [$field, '=', $op]; + $where = is_null($op) ? [$field, 'NULL', ''] : [$field, '=', $op]; } } else { $where = $field ? [$field, $op, $condition] : null; @@ -1512,7 +1513,11 @@ class Query if (key($field) !== 0) { $where = []; foreach ($field as $key => $val) { - $where[] = is_null($val) ? [$key, 'NULL', ''] : [$key, '=', $val]; + if (is_null($val)) { + $where[$key] = [$key, 'NULL', '']; + } else { + $where[$key] = !is_scalar($val) ? $val : [$key, '=', $val]; + } } } else { // 数组批量查询 @@ -1772,11 +1777,7 @@ class Query $field = $this->options['via'] . '.' . $field; } - if (strpos($field, ',')) { - $field = array_map('trim', explode(',', $field)); - } else { - $field = empty($order) ? $field : [$field => $order]; - } + $field = empty($order) ? $field : [$field => $order]; } elseif (!empty($this->options['via'])) { foreach ($field as $key => $val) { if (is_numeric($key)) { diff --git a/thinkphp/library/think/db/builder/Mysql.php b/thinkphp/library/think/db/builder/Mysql.php index a17657d9f..a73fa293d 100644 --- a/thinkphp/library/think/db/builder/Mysql.php +++ b/thinkphp/library/think/db/builder/Mysql.php @@ -105,10 +105,9 @@ class Mysql extends Builder * @access public * @param Query $query 查询对象 * @param string $key 字段名 - * @param bool $strict 严格检测 * @return string */ - public function parseKey(Query $query, $key, $strict = false) + public function parseKey(Query $query, $key) { if (is_int($key)) { return $key; @@ -119,7 +118,7 @@ class Mysql extends Builder // JSON字段支持 list($field, $name) = explode('->', $key, 2); - return 'json_extract(' . $this->parseKey($query, $field) . ', \'$.' . str_replace('->', '.', $name) . '\')'; + $key = 'json_extract(' . $this->parseKey($query, $field) . ', \'$.' . str_replace('->', '.', $name) . '\')'; } elseif (strpos($key, '.') && !preg_match('/[,\'\"\(\)`\s]/', $key)) { list($table, $key) = explode('.', $key, 2); @@ -135,7 +134,7 @@ class Mysql extends Builder } } - if ($strict || !preg_match('/[,\'\"\*\(\)`.\s]/', $key)) { + if (!preg_match('/[,\'\"\*\(\)`.\s]/', $key)) { $key = '`' . $key . '`'; } diff --git a/thinkphp/library/think/db/builder/Pgsql.php b/thinkphp/library/think/db/builder/Pgsql.php index 32373b64d..4db6932de 100644 --- a/thinkphp/library/think/db/builder/Pgsql.php +++ b/thinkphp/library/think/db/builder/Pgsql.php @@ -51,10 +51,9 @@ class Pgsql extends Builder * @access public * @param Query $query 查询对象 * @param string $key 字段名 - * @param bool $strict 严格检测 * @return string */ - public function parseKey(Query $query, $key, $strict = false) + public function parseKey(Query $query, $key) { $key = trim($key); diff --git a/thinkphp/library/think/db/builder/Sqlite.php b/thinkphp/library/think/db/builder/Sqlite.php index 9b244617e..141410c1e 100644 --- a/thinkphp/library/think/db/builder/Sqlite.php +++ b/thinkphp/library/think/db/builder/Sqlite.php @@ -59,10 +59,9 @@ class Sqlite extends Builder * @access public * @param Query $query 查询对象 * @param string $key 字段名 - * @param bool $strict 严格检测 * @return string */ - public function parseKey(Query $query, $key, $strict = false) + public function parseKey(Query $query, $key) { $key = trim($key); if (strpos($key, '.')) { diff --git a/thinkphp/library/think/db/builder/Sqlsrv.php b/thinkphp/library/think/db/builder/Sqlsrv.php index 4d3dc15bc..b95e234ba 100644 --- a/thinkphp/library/think/db/builder/Sqlsrv.php +++ b/thinkphp/library/think/db/builder/Sqlsrv.php @@ -12,7 +12,6 @@ namespace think\db\builder; use think\db\Builder; -use think\db\Expression; use think\db\Query; /** @@ -36,30 +35,28 @@ class Sqlsrv extends Builder */ protected function parseOrder(Query $query, $order) { - if (empty($order)) { - return ' ORDER BY rand()'; - } + if (is_array($order)) { + $array = []; - $array = []; - - foreach ($order as $key => $val) { - if ($val instanceof Expression) { - $array[] = $val->getValue(); - } elseif ('[rand]' == $val) { - $array[] = $this->parseRand($query); - } else { + foreach ($order as $key => $val) { if (is_numeric($key)) { - list($key, $sort) = explode(' ', strpos($val, ' ') ? $val : $val . ' '); + if (false === strpos($val, '(')) { + $array[] = $this->parseKey($query, $val); + } elseif ('[rand]' == $val) { + $array[] = $this->parseRand($query); + } else { + $array[] = $val; + } } else { - $sort = $val; + $sort = in_array(strtolower(trim($val)), ['asc', 'desc']) ? ' ' . $val : ''; + $array[] = $this->parseKey($query, $key) . ' ' . $sort; } - - $sort = in_array(strtolower($sort), ['asc', 'desc'], true) ? ' ' . $sort : ''; - $array[] = $this->parseKey($query, $key, true) . $sort; } + + $order = implode(',', $array); } - return ' ORDER BY ' . implode(',', $array); + return !empty($order) ? ' ORDER BY ' . $order : ' ORDER BY rand()'; } /** @@ -78,15 +75,10 @@ class Sqlsrv extends Builder * @access public * @param Query $query 查询对象 * @param string $key 字段名 - * @param bool $strict 严格检测 * @return string */ - public function parseKey(Query $query, $key, $strict = false) + public function parseKey(Query $query, $key) { - if (is_int($key)) { - return $key; - } - $key = trim($key); if (strpos($key, '.') && !preg_match('/[,\'\"\(\)\[\s]/', $key)) { @@ -104,7 +96,7 @@ class Sqlsrv extends Builder } } - if ($strict || !preg_match('/[,\'\"\*\(\)\[.\s]/', $key)) { + if (!is_numeric($key) && !preg_match('/[,\'\"\*\(\)\[.\s]/', $key)) { $key = '[' . $key . ']'; } diff --git a/thinkphp/library/think/model/concern/SoftDelete.php b/thinkphp/library/think/model/concern/SoftDelete.php index 68b4c1972..473f9e3ea 100644 --- a/thinkphp/library/think/model/concern/SoftDelete.php +++ b/thinkphp/library/think/model/concern/SoftDelete.php @@ -51,23 +51,11 @@ trait SoftDelete if ($field) { return $model ->db(false) - ->useSoftDelete($field, $model->getWithTrashedExp()); + ->useSoftDelete($field, ['not null', '']); } - return $model->db(false); } - /** - * 获取软删除数据的查询条件 - * @access protected - * @return array - */ - protected function getWithTrashedExp() - { - return is_null($this->defaultSoftDelete) ? - ['notnull', ''] : ['<>', $this->defaultSoftDelete]; - } - /** * 删除当前的记录 * @access public @@ -155,17 +143,16 @@ trait SoftDelete $name = $this->getDeleteTimeField(); if (empty($where)) { - $pk = $this->getPk(); - - $where[] = [$pk, '=', $this->getData($pk)]; + $pk = $this->getPk(); + $where[$pk] = [$pk, '=', $this->getData($pk)]; } if ($name) { // 恢复删除 return $this->db(false) ->where($where) - ->useSoftDelete($name, $this->getWithTrashedExp()) - ->update([$name => $this->defaultSoftDelete]); + ->useSoftDelete($name, ['not null', '']) + ->update([$name => null]); } return 0; @@ -196,19 +183,4 @@ trait SoftDelete return $field; } - - /** - * 查询的时候默认排除软删除数据 - * @access protected - * @param Query $query - * @return void - */ - protected function withNoTrashed($query) - { - $field = $this->getDeleteTimeField(true); - - if ($field) { - $query->useSoftDelete($field, $this->defaultSoftDelete); - } - } } diff --git a/thinkphp/library/think/route/Rule.php b/thinkphp/library/think/route/Rule.php index 8f9d47e92..8d53c4377 100644 --- a/thinkphp/library/think/route/Rule.php +++ b/thinkphp/library/think/route/Rule.php @@ -864,7 +864,7 @@ abstract class Rule $request->route($var); // 路由到模块/控制器/操作 - return new ModuleDispatch([$module, $controller, $action], [], false); + return (new ModuleDispatch([$module, $controller, $action]))->convert(false); } /** diff --git a/thinkphp/library/think/route/RuleGroup.php b/thinkphp/library/think/route/RuleGroup.php index 1fe3b2722..bf8c65897 100644 --- a/thinkphp/library/think/route/RuleGroup.php +++ b/thinkphp/library/think/route/RuleGroup.php @@ -316,7 +316,7 @@ class RuleGroup extends Rule } try { - if (!empty($regex) && preg_match('/^(?:' . implode('|', $regex) . ')/u', $url, $match)) { + if (!empty($regex) && preg_match('/^(?:' . implode('|', $regex) . ')/', $url, $match)) { $var = []; foreach ($match as $key => $val) { if (is_string($key) && '' !== $val) { diff --git a/thinkphp/library/think/route/RuleItem.php b/thinkphp/library/think/route/RuleItem.php index 117c1a9bd..27e5e7548 100644 --- a/thinkphp/library/think/route/RuleItem.php +++ b/thinkphp/library/think/route/RuleItem.php @@ -309,7 +309,7 @@ class RuleItem extends Rule $regex = $this->buildRuleRegex($rule, $matches[0], $pattern, $option, $completeMatch); try { - if (!preg_match('/^' . $regex . ($completeMatch ? '$' : '') . '/u', $url, $match)) { + if (!preg_match('/^' . $regex . ($completeMatch ? '$' : '') . '/', $url, $match)) { return false; } } catch (\Exception $e) { diff --git a/thinkphp/library/think/route/dispatch/Module.php b/thinkphp/library/think/route/dispatch/Module.php index ec341997f..26c92e94d 100644 --- a/thinkphp/library/think/route/dispatch/Module.php +++ b/thinkphp/library/think/route/dispatch/Module.php @@ -23,15 +23,6 @@ class Module extends Dispatch protected $controller; protected $actionName; - public function __construct($dispatch, $param = [], $convert = null) - { - $this->app = Container::get('app'); - $this->dispatch = $dispatch; - $this->param = $param; - $this->convert = $convert; - $this->init(); - } - protected function init() { $result = $this->dispatch; @@ -99,13 +90,13 @@ class Module extends Dispatch // 设置当前请求的控制器、操作 $this->app['request']->controller(Loader::parseName($this->controller, 1))->action($this->actionName); + // 监听module_init + $this->app['hook']->listen('module_init'); + } public function run() { - // 监听module_init - $this->app['hook']->listen('module_init'); - // 实例化控制器 try { $instance = $this->app->controller($this->controller, diff --git a/thinkphp/library/think/view/driver/Php.php b/thinkphp/library/think/view/driver/Php.php index f69871528..6e5db3bd7 100644 --- a/thinkphp/library/think/view/driver/Php.php +++ b/thinkphp/library/think/view/driver/Php.php @@ -141,7 +141,7 @@ class Php if ($controller) { if ('' == $template) { // 如果模板文件名为空 按照默认规则定位 - $template = str_replace('.', DIRECTORY_SEPARATOR, $controller) . $depr . $this->getActionTemplate($request); + $template = str_replace('.', DIRECTORY_SEPARATOR, $controller) . $depr . (1 == $this->config['auto_rule'] ? Loader::parseName($request->action(true)) : $request->action()); } elseif (false === strpos($template, $depr)) { $template = str_replace('.', DIRECTORY_SEPARATOR, $controller) . $depr . $template; } @@ -153,14 +153,6 @@ class Php return $path . ltrim($template, '/') . '.' . ltrim($this->config['view_suffix'], '.'); } - protected function getActionTemplate($request) - { - $rule = [$request->action(true), Loader::parseName($request->action(true)), $request->action()]; - $type = $this->config['auto_rule']; - - return isset($rule[$type]) ? $rule[$type] : $rule[0]; - } - /** * 配置模板引擎 * @access private diff --git a/thinkphp/library/think/view/driver/Think.php b/thinkphp/library/think/view/driver/Think.php index 834a8c032..137acf859 100644 --- a/thinkphp/library/think/view/driver/Think.php +++ b/thinkphp/library/think/view/driver/Think.php @@ -132,11 +132,10 @@ class Think if (0 !== strpos($template, '/')) { $template = str_replace(['/', ':'], $depr, $template); $controller = Loader::parseName($request->controller()); - if ($controller) { if ('' == $template) { // 如果模板文件名为空 按照默认规则定位 - $template = str_replace('.', DIRECTORY_SEPARATOR, $controller) . $depr . $this->getActionTemplate($request); + $template = str_replace('.', DIRECTORY_SEPARATOR, $controller) . $depr . (1 == $this->config['auto_rule'] ? Loader::parseName($request->action(true)) : $request->action()); } elseif (false === strpos($template, $depr)) { $template = str_replace('.', DIRECTORY_SEPARATOR, $controller) . $depr . $template; } @@ -148,14 +147,6 @@ class Think return $path . ltrim($template, '/') . '.' . ltrim($this->config['view_suffix'], '.'); } - protected function getActionTemplate($request) - { - $rule = [$request->action(true), Loader::parseName($request->action(true)), $request->action()]; - $type = $this->config['auto_rule']; - - return isset($rule[$type]) ? $rule[$type] : $rule[0]; - } - /** * 配置或者获取模板引擎参数 * @access private diff --git a/vendor/autoload.php b/vendor/autoload.php index 626c40b0e..9102730b4 100644 --- a/vendor/autoload.php +++ b/vendor/autoload.php @@ -4,4 +4,4 @@ require_once __DIR__ . '/composer/autoload_real.php'; -return ComposerAutoloaderInitc20a6e9f7e4c957b608b8084ee731eb0::getLoader(); +return ComposerAutoloaderInit2549c3dd10544eb5636e5209890b3eea::getLoader(); diff --git a/vendor/composer/ClassLoader.php b/vendor/composer/ClassLoader.php index dc02dfb11..2c72175e7 100644 --- a/vendor/composer/ClassLoader.php +++ b/vendor/composer/ClassLoader.php @@ -379,9 +379,9 @@ class ClassLoader $subPath = substr($subPath, 0, $lastPos); $search = $subPath.'\\'; if (isset($this->prefixDirsPsr4[$search])) { - $pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1); foreach ($this->prefixDirsPsr4[$search] as $dir) { - if (file_exists($file = $dir . $pathEnd)) { + $length = $this->prefixLengthsPsr4[$first][$search]; + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $length))) { return $file; } } diff --git a/vendor/composer/autoload_files.php b/vendor/composer/autoload_files.php index 4598fc38b..d83d945e0 100644 --- a/vendor/composer/autoload_files.php +++ b/vendor/composer/autoload_files.php @@ -6,6 +6,6 @@ $vendorDir = dirname(dirname(__FILE__)); $baseDir = dirname($vendorDir); return array( - '841780ea2e1d6545ea3a253239d59c05' => $vendorDir . '/qiniu/php-sdk/src/Qiniu/functions.php', '1cfd2761b63b0a29ed23657ea394cb2d' => $vendorDir . '/topthink/think-captcha/src/helper.php', + '841780ea2e1d6545ea3a253239d59c05' => $vendorDir . '/qiniu/php-sdk/src/Qiniu/functions.php', ); diff --git a/vendor/composer/autoload_real.php b/vendor/composer/autoload_real.php index 2bbd72ff8..0a06a3f5e 100644 --- a/vendor/composer/autoload_real.php +++ b/vendor/composer/autoload_real.php @@ -2,7 +2,7 @@ // autoload_real.php @generated by Composer -class ComposerAutoloaderInitc20a6e9f7e4c957b608b8084ee731eb0 +class ComposerAutoloaderInit2549c3dd10544eb5636e5209890b3eea { private static $loader; @@ -19,15 +19,15 @@ class ComposerAutoloaderInitc20a6e9f7e4c957b608b8084ee731eb0 return self::$loader; } - spl_autoload_register(array('ComposerAutoloaderInitc20a6e9f7e4c957b608b8084ee731eb0', 'loadClassLoader'), true, true); + spl_autoload_register(array('ComposerAutoloaderInit2549c3dd10544eb5636e5209890b3eea', 'loadClassLoader'), true, true); self::$loader = $loader = new \Composer\Autoload\ClassLoader(); - spl_autoload_unregister(array('ComposerAutoloaderInitc20a6e9f7e4c957b608b8084ee731eb0', 'loadClassLoader')); + spl_autoload_unregister(array('ComposerAutoloaderInit2549c3dd10544eb5636e5209890b3eea', 'loadClassLoader')); $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); if ($useStaticLoader) { require_once __DIR__ . '/autoload_static.php'; - call_user_func(\Composer\Autoload\ComposerStaticInitc20a6e9f7e4c957b608b8084ee731eb0::getInitializer($loader)); + call_user_func(\Composer\Autoload\ComposerStaticInit2549c3dd10544eb5636e5209890b3eea::getInitializer($loader)); } else { $map = require __DIR__ . '/autoload_namespaces.php'; foreach ($map as $namespace => $path) { @@ -48,19 +48,19 @@ class ComposerAutoloaderInitc20a6e9f7e4c957b608b8084ee731eb0 $loader->register(true); if ($useStaticLoader) { - $includeFiles = Composer\Autoload\ComposerStaticInitc20a6e9f7e4c957b608b8084ee731eb0::$files; + $includeFiles = Composer\Autoload\ComposerStaticInit2549c3dd10544eb5636e5209890b3eea::$files; } else { $includeFiles = require __DIR__ . '/autoload_files.php'; } foreach ($includeFiles as $fileIdentifier => $file) { - composerRequirec20a6e9f7e4c957b608b8084ee731eb0($fileIdentifier, $file); + composerRequire2549c3dd10544eb5636e5209890b3eea($fileIdentifier, $file); } return $loader; } } -function composerRequirec20a6e9f7e4c957b608b8084ee731eb0($fileIdentifier, $file) +function composerRequire2549c3dd10544eb5636e5209890b3eea($fileIdentifier, $file) { if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { require $file; diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index e8d727d37..804694091 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -4,11 +4,11 @@ namespace Composer\Autoload; -class ComposerStaticInitc20a6e9f7e4c957b608b8084ee731eb0 +class ComposerStaticInit2549c3dd10544eb5636e5209890b3eea { public static $files = array ( - '841780ea2e1d6545ea3a253239d59c05' => __DIR__ . '/..' . '/qiniu/php-sdk/src/Qiniu/functions.php', '1cfd2761b63b0a29ed23657ea394cb2d' => __DIR__ . '/..' . '/topthink/think-captcha/src/helper.php', + '841780ea2e1d6545ea3a253239d59c05' => __DIR__ . '/..' . '/qiniu/php-sdk/src/Qiniu/functions.php', ); public static $prefixLengthsPsr4 = array ( @@ -258,9 +258,9 @@ class ComposerStaticInitc20a6e9f7e4c957b608b8084ee731eb0 public static function getInitializer(ClassLoader $loader) { return \Closure::bind(function () use ($loader) { - $loader->prefixLengthsPsr4 = ComposerStaticInitc20a6e9f7e4c957b608b8084ee731eb0::$prefixLengthsPsr4; - $loader->prefixDirsPsr4 = ComposerStaticInitc20a6e9f7e4c957b608b8084ee731eb0::$prefixDirsPsr4; - $loader->classMap = ComposerStaticInitc20a6e9f7e4c957b608b8084ee731eb0::$classMap; + $loader->prefixLengthsPsr4 = ComposerStaticInit2549c3dd10544eb5636e5209890b3eea::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInit2549c3dd10544eb5636e5209890b3eea::$prefixDirsPsr4; + $loader->classMap = ComposerStaticInit2549c3dd10544eb5636e5209890b3eea::$classMap; }, null, ClassLoader::class); } diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index 44f3cbf94..5f73c1953 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -1,32 +1,109 @@ [ { - "name": "aliyuncs/oss-sdk-php", - "version": "v2.3.0", - "version_normalized": "2.3.0.0", + "name": "topthink/think-installer", + "version": "v1.0.12", + "version_normalized": "1.0.12.0", "source": { "type": "git", - "url": "https://github.com/aliyun/aliyun-oss-php-sdk.git", - "reference": "e69f57916678458642ac9d2fd341ae78a56996c8" + "url": "https://github.com/top-think/think-installer.git", + "reference": "1be326e68f63de4e95977ed50f46ae75f017556d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/aliyun/aliyun-oss-php-sdk/zipball/e69f57916678458642ac9d2fd341ae78a56996c8", - "reference": "e69f57916678458642ac9d2fd341ae78a56996c8", + "url": "https://files.phpcomposer.com/files/top-think/think-installer/1be326e68f63de4e95977ed50f46ae75f017556d.zip", + "reference": "1be326e68f63de4e95977ed50f46ae75f017556d", "shasum": "" }, "require": { - "php": ">=5.3" + "composer-plugin-api": "^1.0" }, "require-dev": { - "phpunit/phpunit": "~4.0", - "satooshi/php-coveralls": "~1.0" + "composer/composer": "1.0.*@dev" }, - "time": "2018-01-08T06:59:35+00:00", + "time": "2017-05-27T06:58:09+00:00", + "type": "composer-plugin", + "extra": { + "class": "think\\composer\\Plugin" + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "think\\composer\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "yunwuxin", + "email": "448901948@qq.com" + } + ] + }, + { + "name": "zoujingli/ip2region", + "version": "dev-master", + "version_normalized": "9999999-dev", + "source": { + "type": "git", + "url": "https://github.com/zoujingli/ip2region.git", + "reference": "5d981fbf3b574bad7fe9652e7aecba0920f54325" + }, + "dist": { + "type": "zip", + "url": "https://files.phpcomposer.com/files/zoujingli/ip2region/5d981fbf3b574bad7fe9652e7aecba0920f54325.zip", + "reference": "5d981fbf3b574bad7fe9652e7aecba0920f54325", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "time": "2017-11-09T03:36:17+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "classmap": [ + "Ip2Region.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache 2.0" + ], + "description": "Ip2Region", + "homepage": "https://github.com/zoujingli/Ip2Region", + "keywords": [ + "Ip2Region" + ] + }, + { + "name": "zoujingli/wechat-developer", + "version": "v1.0.5", + "version_normalized": "1.0.5.0", + "source": { + "type": "git", + "url": "https://github.com/zoujingli/WeChatDeveloper.git", + "reference": "e05fe6bb24438d15259a6af4915bd0638dc3914a" + }, + "dist": { + "type": "zip", + "url": "https://files.phpcomposer.com/files/zoujingli/WeChatDeveloper/e05fe6bb24438d15259a6af4915bd0638dc3914a.zip", + "reference": "e05fe6bb24438d15259a6af4915bd0638dc3914a", + "shasum": "" + }, + "require": { + "ext-curl": "*", + "ext-openssl": "*", + "php": ">=5.4" + }, + "time": "2018-04-09T11:07:00+00:00", "type": "library", "installation-source": "dist", "autoload": { "psr-4": { - "OSS\\": "src/OSS" + "WeChat\\": "WeChat" } }, "notification-url": "https://packagist.org/downloads/", @@ -35,12 +112,216 @@ ], "authors": [ { - "name": "Aliyuncs", - "homepage": "http://www.aliyun.com" + "name": "Anyon", + "email": "zoujingli@qq.com", + "homepage": "http://ctolog.com" } ], - "description": "Aliyun OSS SDK for PHP", - "homepage": "http://www.aliyun.com/product/oss/" + "description": "WeChat platform and WeChat payment development tools", + "homepage": "https://github.com/zoujingli/WeChatDeveloper", + "keywords": [ + "WeChatDeveloper", + "wechat", + "wechatpay" + ] + }, + { + "name": "zoujingli/weopen-developer", + "version": "dev-master", + "version_normalized": "9999999-dev", + "source": { + "type": "git", + "url": "https://github.com/zoujingli/WeOpenDeveloper.git", + "reference": "8bb75bc08488a43964c00f027b21b93ed58e8d5a" + }, + "dist": { + "type": "zip", + "url": "https://files.phpcomposer.com/files/zoujingli/WeOpenDeveloper/8bb75bc08488a43964c00f027b21b93ed58e8d5a.zip", + "reference": "8bb75bc08488a43964c00f027b21b93ed58e8d5a", + "shasum": "" + }, + "require": { + "ext-curl": "*", + "ext-openssl": "*", + "php": ">=5.4", + "zoujingli/wechat-developer": "^1.0.0" + }, + "time": "2018-03-21T05:06:35+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-4": { + "WeOpen\\": "WeOpen" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Anyon", + "email": "zoujingli@qq.com", + "homepage": "http://ctolog.com" + } + ], + "description": "WeChat Open development of SDK", + "homepage": "https://github.com/zoujingli/WeOpenDeveloper", + "keywords": [ + "WeChatOpen", + "WeChatOpenDeveloper", + "wechat" + ] + }, + { + "name": "topthink/framework", + "version": "v5.1.8", + "version_normalized": "5.1.8.0", + "source": { + "type": "git", + "url": "https://github.com/top-think/framework.git", + "reference": "8f6c84abd9e2f9db5a071168c0153724b54b083c" + }, + "dist": { + "type": "zip", + "url": "https://files.phpcomposer.com/files/top-think/framework/8f6c84abd9e2f9db5a071168c0153724b54b083c.zip", + "reference": "8f6c84abd9e2f9db5a071168c0153724b54b083c", + "shasum": "" + }, + "require": { + "php": ">=5.6.0", + "topthink/think-installer": "~1.0" + }, + "require-dev": { + "johnkary/phpunit-speedtrap": "^1.0", + "mikey179/vfsstream": "~1.6", + "phpdocumentor/reflection-docblock": "^2.0", + "phploc/phploc": "2.*", + "phpunit/phpunit": "^5.0|^6.0", + "sebastian/phpcpd": "2.*", + "squizlabs/php_codesniffer": "2.*" + }, + "time": "2018-04-06T05:28:49+00:00", + "type": "think-framework", + "installation-source": "dist", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "liu21st", + "email": "liu21st@gmail.com" + }, + { + "name": "yunwuxin", + "email": "448901948@qq.com" + } + ], + "description": "the new thinkphp framework", + "homepage": "http://thinkphp.cn/", + "keywords": [ + "framework", + "orm", + "thinkphp" + ] + }, + { + "name": "topthink/think-captcha", + "version": "v2.0.2", + "version_normalized": "2.0.2.0", + "source": { + "type": "git", + "url": "https://github.com/top-think/think-captcha.git", + "reference": "54c8a51552f99ff9ea89ea9c272383a8f738ceee" + }, + "dist": { + "type": "zip", + "url": "https://files.phpcomposer.com/files/top-think/think-captcha/54c8a51552f99ff9ea89ea9c272383a8f738ceee.zip", + "reference": "54c8a51552f99ff9ea89ea9c272383a8f738ceee", + "shasum": "" + }, + "require": { + "topthink/framework": "5.1.*" + }, + "time": "2017-12-31T16:37:49+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-4": { + "think\\captcha\\": "src/" + }, + "files": [ + "src/helper.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "yunwuxin", + "email": "448901948@qq.com" + } + ], + "description": "captcha package for thinkphp5" + }, + { + "name": "symfony/options-resolver", + "version": "v3.4.8", + "version_normalized": "3.4.8.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/options-resolver.git", + "reference": "f3109a6aedd20e35c3a33190e932c2b063b7b50e" + }, + "dist": { + "type": "zip", + "url": "https://files.phpcomposer.com/files/symfony/options-resolver/f3109a6aedd20e35c3a33190e932c2b063b7b50e.zip", + "reference": "f3109a6aedd20e35c3a33190e932c2b063b7b50e", + "shasum": "" + }, + "require": { + "php": "^5.5.9|>=7.0.8" + }, + "time": "2018-01-11T07:56:07+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Symfony\\Component\\OptionsResolver\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony OptionsResolver Component", + "homepage": "https://symfony.com", + "keywords": [ + "config", + "configuration", + "options" + ] }, { "name": "endroid/qr-code", @@ -53,7 +334,7 @@ }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/endroid/qr-code/zipball/c9644bec2a9cc9318e98d1437de3c628dcd1ef93", + "url": "https://files.phpcomposer.com/files/endroid/qr-code/c9644bec2a9cc9318e98d1437de3c628dcd1ef93.zip", "reference": "c9644bec2a9cc9318e98d1437de3c628dcd1ef93", "shasum": "" }, @@ -104,6 +385,49 @@ "symfony" ] }, + { + "name": "aliyuncs/oss-sdk-php", + "version": "v2.3.0", + "version_normalized": "2.3.0.0", + "source": { + "type": "git", + "url": "https://github.com/aliyun/aliyun-oss-php-sdk.git", + "reference": "e69f57916678458642ac9d2fd341ae78a56996c8" + }, + "dist": { + "type": "zip", + "url": "https://files.phpcomposer.com/files/aliyun/aliyun-oss-php-sdk/e69f57916678458642ac9d2fd341ae78a56996c8.zip", + "reference": "e69f57916678458642ac9d2fd341ae78a56996c8", + "shasum": "" + }, + "require": { + "php": ">=5.3" + }, + "require-dev": { + "phpunit/phpunit": "~4.0", + "satooshi/php-coveralls": "~1.0" + }, + "time": "2018-01-08T06:59:35+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-4": { + "OSS\\": "src/OSS" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Aliyuncs", + "homepage": "http://www.aliyun.com" + } + ], + "description": "Aliyun OSS SDK for PHP", + "homepage": "http://www.aliyun.com/product/oss/" + }, { "name": "qiniu/php-sdk", "version": "v7.2.3", @@ -115,7 +439,7 @@ }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/qiniu/php-sdk/zipball/67852ba9cdd7f48e0e080961abebafee134fb329", + "url": "https://files.phpcomposer.com/files/qiniu/php-sdk/67852ba9cdd7f48e0e080961abebafee134fb329.zip", "reference": "67852ba9cdd7f48e0e080961abebafee134fb329", "shasum": "" }, @@ -156,329 +480,5 @@ "sdk", "storage" ] - }, - { - "name": "symfony/options-resolver", - "version": "v3.4.8", - "version_normalized": "3.4.8.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/options-resolver.git", - "reference": "f3109a6aedd20e35c3a33190e932c2b063b7b50e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/options-resolver/zipball/f3109a6aedd20e35c3a33190e932c2b063b7b50e", - "reference": "f3109a6aedd20e35c3a33190e932c2b063b7b50e", - "shasum": "" - }, - "require": { - "php": "^5.5.9|>=7.0.8" - }, - "time": "2018-01-11T07:56:07+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Component\\OptionsResolver\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony OptionsResolver Component", - "homepage": "https://symfony.com", - "keywords": [ - "config", - "configuration", - "options" - ] - }, - { - "name": "topthink/framework", - "version": "v5.1.9", - "version_normalized": "5.1.9.0", - "source": { - "type": "git", - "url": "https://github.com/top-think/framework.git", - "reference": "fff4acf5727d7f83f059026098c681042db75bb7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/top-think/framework/zipball/fff4acf5727d7f83f059026098c681042db75bb7", - "reference": "fff4acf5727d7f83f059026098c681042db75bb7", - "shasum": "" - }, - "require": { - "php": ">=5.6.0", - "topthink/think-installer": "~1.0" - }, - "require-dev": { - "johnkary/phpunit-speedtrap": "^1.0", - "mikey179/vfsstream": "~1.6", - "phpdocumentor/reflection-docblock": "^2.0", - "phploc/phploc": "2.*", - "phpunit/phpunit": "^5.0|^6.0", - "sebastian/phpcpd": "2.*", - "squizlabs/php_codesniffer": "2.*" - }, - "time": "2018-04-12T08:33:20+00:00", - "type": "think-framework", - "installation-source": "dist", - "notification-url": "https://packagist.org/downloads/", - "license": [ - "Apache-2.0" - ], - "authors": [ - { - "name": "liu21st", - "email": "liu21st@gmail.com" - }, - { - "name": "yunwuxin", - "email": "448901948@qq.com" - } - ], - "description": "the new thinkphp framework", - "homepage": "http://thinkphp.cn/", - "keywords": [ - "framework", - "orm", - "thinkphp" - ] - }, - { - "name": "topthink/think-captcha", - "version": "v2.0.2", - "version_normalized": "2.0.2.0", - "source": { - "type": "git", - "url": "https://github.com/top-think/think-captcha.git", - "reference": "54c8a51552f99ff9ea89ea9c272383a8f738ceee" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/top-think/think-captcha/zipball/54c8a51552f99ff9ea89ea9c272383a8f738ceee", - "reference": "54c8a51552f99ff9ea89ea9c272383a8f738ceee", - "shasum": "" - }, - "require": { - "topthink/framework": "5.1.*" - }, - "time": "2017-12-31T16:37:49+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "think\\captcha\\": "src/" - }, - "files": [ - "src/helper.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "Apache-2.0" - ], - "authors": [ - { - "name": "yunwuxin", - "email": "448901948@qq.com" - } - ], - "description": "captcha package for thinkphp5" - }, - { - "name": "topthink/think-installer", - "version": "v1.0.12", - "version_normalized": "1.0.12.0", - "source": { - "type": "git", - "url": "https://github.com/top-think/think-installer.git", - "reference": "1be326e68f63de4e95977ed50f46ae75f017556d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/top-think/think-installer/zipball/1be326e68f63de4e95977ed50f46ae75f017556d", - "reference": "1be326e68f63de4e95977ed50f46ae75f017556d", - "shasum": "" - }, - "require": { - "composer-plugin-api": "^1.0" - }, - "require-dev": { - "composer/composer": "1.0.*@dev" - }, - "time": "2017-05-27T06:58:09+00:00", - "type": "composer-plugin", - "extra": { - "class": "think\\composer\\Plugin" - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "think\\composer\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "Apache-2.0" - ], - "authors": [ - { - "name": "yunwuxin", - "email": "448901948@qq.com" - } - ] - }, - { - "name": "zoujingli/ip2region", - "version": "dev-master", - "version_normalized": "9999999-dev", - "source": { - "type": "git", - "url": "https://github.com/zoujingli/ip2region.git", - "reference": "5d981fbf3b574bad7fe9652e7aecba0920f54325" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/zoujingli/ip2region/zipball/5d981fbf3b574bad7fe9652e7aecba0920f54325", - "reference": "5d981fbf3b574bad7fe9652e7aecba0920f54325", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "time": "2017-11-09T03:36:17+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "classmap": [ - "Ip2Region.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "Apache 2.0" - ], - "description": "Ip2Region", - "homepage": "https://github.com/zoujingli/Ip2Region", - "keywords": [ - "Ip2Region" - ] - }, - { - "name": "zoujingli/wechat-developer", - "version": "v1.0.5", - "version_normalized": "1.0.5.0", - "source": { - "type": "git", - "url": "https://github.com/zoujingli/WeChatDeveloper.git", - "reference": "e05fe6bb24438d15259a6af4915bd0638dc3914a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/zoujingli/WeChatDeveloper/zipball/e05fe6bb24438d15259a6af4915bd0638dc3914a", - "reference": "e05fe6bb24438d15259a6af4915bd0638dc3914a", - "shasum": "" - }, - "require": { - "ext-curl": "*", - "ext-openssl": "*", - "php": ">=5.4" - }, - "time": "2018-04-09T11:07:00+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "WeChat\\": "WeChat" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Anyon", - "email": "zoujingli@qq.com", - "homepage": "http://ctolog.com" - } - ], - "description": "WeChat platform and WeChat payment development tools", - "homepage": "https://github.com/zoujingli/WeChatDeveloper", - "keywords": [ - "WeChatDeveloper", - "wechat", - "wechatpay" - ] - }, - { - "name": "zoujingli/weopen-developer", - "version": "dev-master", - "version_normalized": "9999999-dev", - "source": { - "type": "git", - "url": "https://github.com/zoujingli/WeOpenDeveloper.git", - "reference": "8bb75bc08488a43964c00f027b21b93ed58e8d5a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/zoujingli/WeOpenDeveloper/zipball/8bb75bc08488a43964c00f027b21b93ed58e8d5a", - "reference": "8bb75bc08488a43964c00f027b21b93ed58e8d5a", - "shasum": "" - }, - "require": { - "ext-curl": "*", - "ext-openssl": "*", - "php": ">=5.4", - "zoujingli/wechat-developer": "^1.0.0" - }, - "time": "2018-03-21T05:06:35+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "WeOpen\\": "WeOpen" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Anyon", - "email": "zoujingli@qq.com", - "homepage": "http://ctolog.com" - } - ], - "description": "WeChat Open development of SDK", - "homepage": "https://github.com/zoujingli/WeOpenDeveloper", - "keywords": [ - "WeChatOpen", - "WeChatOpenDeveloper", - "wechat" - ] } ] From 04b48184e9221437541a5542ec540db1e25ea8ea Mon Sep 17 00:00:00 2001 From: Anyon Date: Thu, 12 Apr 2018 19:28:11 +0800 Subject: [PATCH 144/153] =?UTF-8?q?[=E6=9B=B4=E6=96=B0]ThinkPHP=E5=8D=87?= =?UTF-8?q?=E7=BA=A7=E8=87=B35.1.9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- composer.json | 2 +- thinkphp/lang/zh-cn.php | 1 + thinkphp/library/think/App.php | 10 +-- thinkphp/library/think/Db.php | 1 + thinkphp/library/think/Loader.php | 38 +++++++-- thinkphp/library/think/Model.php | 19 +++-- thinkphp/library/think/Request.php | 13 ++- thinkphp/library/think/Validate.php | 2 +- thinkphp/library/think/db/Builder.php | 83 +++++++++---------- thinkphp/library/think/db/Connection.php | 4 +- thinkphp/library/think/db/Query.php | 27 +++--- thinkphp/library/think/db/builder/Mysql.php | 7 +- thinkphp/library/think/db/builder/Pgsql.php | 3 +- thinkphp/library/think/db/builder/Sqlite.php | 3 +- thinkphp/library/think/db/builder/Sqlsrv.php | 52 +++++++----- .../think/model/concern/SoftDelete.php | 38 +++++++-- thinkphp/library/think/route/Rule.php | 2 +- thinkphp/library/think/route/RuleGroup.php | 2 +- thinkphp/library/think/route/RuleItem.php | 2 +- .../library/think/route/dispatch/Module.php | 15 +++- thinkphp/library/think/view/driver/Php.php | 10 ++- thinkphp/library/think/view/driver/Think.php | 11 ++- vendor/autoload.php | 2 +- vendor/composer/autoload_real.php | 14 ++-- vendor/composer/autoload_static.php | 8 +- vendor/composer/installed.json | 12 +-- 26 files changed, 236 insertions(+), 145 deletions(-) diff --git a/composer.json b/composer.json index ef0e8f3d6..8a2e7a1c4 100644 --- a/composer.json +++ b/composer.json @@ -18,7 +18,7 @@ "require": { "php": ">=5.6.0", "endroid/qr-code": "^1.9", - "topthink/framework": "5.1.8", + "topthink/framework": "5.1.*", "zoujingli/ip2region": "dev-master", "aliyuncs/oss-sdk-php": "^2.2", "zoujingli/weopen-developer": "dev-master", diff --git a/thinkphp/lang/zh-cn.php b/thinkphp/lang/zh-cn.php index 16b1bb7ce..5a3e0bd6b 100644 --- a/thinkphp/lang/zh-cn.php +++ b/thinkphp/lang/zh-cn.php @@ -69,6 +69,7 @@ return [ 'chunk not support order' => 'Chunk不支持调用order方法', 'route pattern error' => '路由变量规则定义错误', 'route behavior will not support' => '路由行为废弃(使用中间件替代)', + 'closure not support cache(true)' => '使用闭包查询不支持cache(true),请指定缓存Key', // 上传错误信息 'unknown upload error' => '未知上传错误!', diff --git a/thinkphp/library/think/App.php b/thinkphp/library/think/App.php index 6da1888b5..02a2e6fb4 100644 --- a/thinkphp/library/think/App.php +++ b/thinkphp/library/think/App.php @@ -20,7 +20,7 @@ use think\route\Dispatch; */ class App implements \ArrayAccess { - const VERSION = '5.1.8'; + const VERSION = '5.1.9'; /** * 当前模块路径 @@ -126,7 +126,7 @@ class App implements \ArrayAccess public function __construct($appPath = '') { - $this->appPath = $appPath ?: $this->getAppPath(); + $this->appPath = $appPath ? realpath($appPath) . DIRECTORY_SEPARATOR : $this->getAppPath(); $this->container = Container::getInstance(); } @@ -164,7 +164,7 @@ class App implements \ArrayAccess $this->beginTime = microtime(true); $this->beginMem = memory_get_usage(); $this->thinkPath = dirname(dirname(__DIR__)) . DIRECTORY_SEPARATOR; - $this->rootPath = dirname(realpath($this->appPath)) . DIRECTORY_SEPARATOR; + $this->rootPath = dirname($this->appPath) . DIRECTORY_SEPARATOR; $this->runtimePath = $this->rootPath . 'runtime' . DIRECTORY_SEPARATOR; $this->routePath = $this->rootPath . 'route' . DIRECTORY_SEPARATOR; $this->configPath = $this->rootPath . 'config' . DIRECTORY_SEPARATOR; @@ -756,9 +756,7 @@ class App implements \ArrayAccess public function getAppPath() { if (is_null($this->appPath)) { - $scriptName = 'cli' == PHP_SAPI ? getcwd() . DIRECTORY_SEPARATOR . $_SERVER['argv'][0] : $_SERVER['SCRIPT_FILENAME']; - - $this->appPath = realpath(dirname(dirname($scriptName)) . DIRECTORY_SEPARATOR . 'application') . DIRECTORY_SEPARATOR; + $this->appPath = Loader::getRootPath() . 'application' . DIRECTORY_SEPARATOR; } return $this->appPath; diff --git a/thinkphp/library/think/Db.php b/thinkphp/library/think/Db.php index 6ce22f391..9be2dd2ea 100644 --- a/thinkphp/library/think/Db.php +++ b/thinkphp/library/think/Db.php @@ -15,6 +15,7 @@ namespace think; * Class Db * @package think * @method \think\db\Query connect(array $config =[], mixed $name = false) static 连接/切换数据库连接 + * @method \think\db\Query master() static 从主服务器读取数据 * @method \think\db\Query table(string $table) static 指定数据表(含前缀) * @method \think\db\Query name(string $name) static 指定数据表(不含前缀) * @method \think\db\Query where(mixed $field, string $op = null, mixed $condition = null) static 查询条件 diff --git a/thinkphp/library/think/Loader.php b/thinkphp/library/think/Loader.php index 6354f9e47..e2bed16f4 100644 --- a/thinkphp/library/think/Loader.php +++ b/thinkphp/library/think/Loader.php @@ -52,21 +52,37 @@ class Loader */ private static $composerPath; + // 获取应用根目录 + public static function getRootPath() + { + if ('cli' == PHP_SAPI) { + $cwdPath = getcwd(); + + if (0 === strpos($_SERVER['argv'][0], $cwdPath)) { + $scriptName = $_SERVER['argv'][0]; + } else { + $scriptName = $cwdPath . DIRECTORY_SEPARATOR . $_SERVER['argv'][0]; + } + } else { + $scriptName = $_SERVER['SCRIPT_FILENAME']; + } + + $path = realpath(dirname($scriptName)); + + if (!is_file($path . DIRECTORY_SEPARATOR . 'think')) { + $path = dirname($path); + } + + return $path . DIRECTORY_SEPARATOR; + } + // 注册自动加载机制 public static function register($autoload = '') { // 注册系统自动加载 spl_autoload_register($autoload ?: 'think\\Loader::autoload', true, true); - $scriptName = 'cli' == PHP_SAPI ? getcwd() . DIRECTORY_SEPARATOR . $_SERVER['argv'][0] : $_SERVER['SCRIPT_FILENAME']; - - $path = realpath(dirname($scriptName)); - - if ('cli-server' == PHP_SAPI || !is_file('./think')) { - $rootPath = dirname($path) . DIRECTORY_SEPARATOR; - } else { - $rootPath = $path . DIRECTORY_SEPARATOR; - } + $rootPath = self::getRootPath(); self::$composerPath = $rootPath . 'vendor' . DIRECTORY_SEPARATOR . 'composer' . DIRECTORY_SEPARATOR; @@ -338,6 +354,10 @@ class Loader if (is_file(self::$composerPath . 'autoload_files.php')) { $includeFiles = require self::$composerPath . 'autoload_files.php'; foreach ($includeFiles as $fileIdentifier => $file) { + if (isset($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { + continue; + } + if (empty(self::$autoloadFiles[$fileIdentifier])) { __require_file($file); self::$autoloadFiles[$fileIdentifier] = true; diff --git a/thinkphp/library/think/Model.php b/thinkphp/library/think/Model.php index 433e6d096..9a98a4084 100644 --- a/thinkphp/library/think/Model.php +++ b/thinkphp/library/think/Model.php @@ -104,6 +104,12 @@ abstract class Model implements \JsonSerializable, \ArrayAccess */ protected $error; + /** + * 软删除字段默认值 + * @var mixed + */ + protected $defaultSoftDelete; + /** * 架构函数 * @access public @@ -245,11 +251,8 @@ abstract class Model implements \JsonSerializable, \ArrayAccess if ($useBaseQuery) { // 软删除 - if (method_exists($this, 'getDeleteTimeField')) { - $field = $this->getDeleteTimeField(true); - if ($field) { - $query->useSoftDelete($field); - } + if (method_exists($this, 'withNoTrashed')) { + $this->withNoTrashed($query); } // 全局作用域 @@ -469,7 +472,7 @@ abstract class Model implements \JsonSerializable, \ArrayAccess foreach ((array) $pk as $key) { if (isset($data[$key])) { - $array[$key] = [$key, '=', $data[$key]]; + $array[] = [$key, '=', $data[$key]]; unset($data[$key]); } } @@ -574,10 +577,10 @@ abstract class Model implements \JsonSerializable, \ArrayAccess } /** - * 字段值(延迟)增长 + * 字段值(延迟)减少 * @access public * @param string $field 字段名 - * @param integer $step 增长值 + * @param integer $step 减少值 * @param integer $lazyTime 延时时间(s) * @return integer|true * @throws Exception diff --git a/thinkphp/library/think/Request.php b/thinkphp/library/think/Request.php index 16db947bb..c627d06d7 100644 --- a/thinkphp/library/think/Request.php +++ b/thinkphp/library/think/Request.php @@ -1588,9 +1588,18 @@ class Request $ip = $_SERVER['REMOTE_ADDR']; } + // IP地址类型 + $ip_mode = (strpos($ip, ':') === false) ? 'ipv4' : 'ipv6'; + // IP地址合法验证 - $long = sprintf("%u", ip2long($ip)); - $ip = $long ? [$ip, $long] : ['0.0.0.0', 0]; + if (filter_var($ip, FILTER_VALIDATE_IP) !== $ip) { + $ip = ($ip_mode === 'ipv4') ? '0.0.0.0' : '::'; + } + + // 如果是ipv4地址,则直接使用ip2long返回int类型ip;如果是ipv6地址,暂时不支持,直接返回0 + $long_ip = ($ip_mode === 'ipv4') ? sprintf("%u", ip2long($ip)) : 0; + + $ip = [$ip, $long_ip]; return $ip[$type]; } diff --git a/thinkphp/library/think/Validate.php b/thinkphp/library/think/Validate.php index 930f7d0fa..bb1700459 100644 --- a/thinkphp/library/think/Validate.php +++ b/thinkphp/library/think/Validate.php @@ -749,7 +749,7 @@ class Validate $result = in_array($value, [true, false, 0, 1, '0', '1'], true); break; case 'number': - $result = ctype_digit($value); + $result = ctype_digit((string) $value); break; case 'array': // 是否为数组 diff --git a/thinkphp/library/think/db/Builder.php b/thinkphp/library/think/db/Builder.php index 78ea0f4a9..31e5fc5e9 100644 --- a/thinkphp/library/think/db/Builder.php +++ b/thinkphp/library/think/db/Builder.php @@ -113,7 +113,7 @@ abstract class Builder $result = []; foreach ($data as $key => $val) { - $item = $this->parseKey($query, $key); + $item = $this->parseKey($query, $key, true); if ($val instanceof Expression) { $result[$item] = $val->getValue(); @@ -183,9 +183,10 @@ abstract class Builder * @access public * @param Query $query 查询对象 * @param string $key 字段名 + * @param bool $strict 严格检测 * @return string */ - public function parseKey(Query $query, $key) + public function parseKey(Query $query, $key, $strict = false) { return $key; } @@ -209,7 +210,7 @@ abstract class Builder if ($field instanceof Expression) { $array[] = $field->getValue(); } elseif (!is_numeric($key)) { - $array[] = $this->parseKey($query, $key) . ' AS ' . $this->parseKey($query, $field); + $array[] = $this->parseKey($query, $key) . ' AS ' . $this->parseKey($query, $field, true); } else { $array[] = $this->parseKey($query, $field); } @@ -363,7 +364,7 @@ abstract class Builder protected function parseWhereItem(Query $query, $field, $val, $rule = '', $binds = [], $bindName = null) { // 字段分析 - $key = $field ? $this->parseKey($query, $field) : ''; + $key = $field ? $this->parseKey($query, $field, true) : ''; // 查询规则和条件 if (!is_array($val)) { @@ -808,45 +809,43 @@ abstract class Builder return ''; } - if (is_array($order)) { - $array = []; + $array = []; - foreach ($order as $key => $val) { - if ($val instanceof Expression) { - $array[] = $val->getValue(); - } elseif (is_array($val)) { - if (isset($val['sort'])) { - $sort = ' ' . $val['sort']; - unset($val['sort']); - } else { - $sort = ''; - } - - $options = $query->getOptions(); - $bind = $this->connection->getFieldsBind($options['table']); - - foreach ($val as $k => $item) { - $val[$k] = $this->parseDataBind($query, $key, $item, $bind, $k); - } - - $array[] = 'field(' . $this->parseKey($query, $key) . ',' . implode(',', $val) . ')' . $sort; - } elseif (is_numeric($key)) { - if ('[rand]' == $val) { - $array[] = $this->parseRand($query); - } elseif (false === strpos($val, '(')) { - $array[] = $this->parseKey($query, $val); - } else { - $array[] = $val; - } + foreach ($order as $key => $val) { + if ($val instanceof Expression) { + $array[] = $val->getValue(); + } elseif (is_array($val)) { + if (isset($val['sort'])) { + $sort = ' ' . $val['sort']; + unset($val['sort']); } else { - $sort = in_array(strtolower(trim($val)), ['asc', 'desc']) ? ' ' . $val : ''; - $array[] = $this->parseKey($query, $key) . ' ' . $sort; + $sort = ''; } - } - $order = implode(',', $array); + $options = $query->getOptions(); + $bind = $this->connection->getFieldsBind($options['table']); + + foreach ($val as $k => $item) { + $val[$k] = $this->parseDataBind($query, $key, $item, $bind, $k); + } + + $array[] = 'field(' . $this->parseKey($query, $key, true) . ',' . implode(',', $val) . ')' . $sort; + } elseif ('[rand]' == $val) { + $array[] = $this->parseRand($query); + } else { + if (is_numeric($key)) { + list($key, $sort) = explode(' ', strpos($val, ' ') ? $val : $val . ' '); + } else { + $sort = $val; + } + + $sort = in_array(strtolower($sort), ['asc', 'desc'], true) ? ' ' . $sort : ''; + $array[] = $this->parseKey($query, $key, true) . $sort; + } } + $order = implode(',', $array); + return ' ORDER BY ' . $order; } @@ -950,11 +949,7 @@ abstract class Builder return ''; } - if (is_array($index)) { - $index = join(",", $index); - } - - return sprintf(" FORCE INDEX ( %s ) ", $index); + return sprintf(" FORCE INDEX ( %s ) ", is_array($index) ? implode(',', $index) : $index); } /** @@ -1070,7 +1065,7 @@ abstract class Builder $fields = []; foreach ($insertFields as $field) { - $fields[] = $this->parseKey($query, $field); + $fields[] = $this->parseKey($query, $field, true); } return str_replace( @@ -1102,7 +1097,7 @@ abstract class Builder } foreach ($fields as &$field) { - $field = $this->parseKey($query, $field); + $field = $this->parseKey($query, $field, true); } return 'INSERT INTO ' . $this->parseTable($query, $table, $options) . ' (' . implode(',', $fields) . ') ' . $this->select($options); diff --git a/thinkphp/library/think/db/Connection.php b/thinkphp/library/think/db/Connection.php index 142e80443..aa1b74028 100644 --- a/thinkphp/library/think/db/Connection.php +++ b/thinkphp/library/think/db/Connection.php @@ -2076,7 +2076,7 @@ abstract class Connection { if (is_scalar($value)) { $data = $value; - } elseif (is_array($value) && isset($value[1], $value[2]) && in_array($value[1], ['=', 'eq'])) { + } elseif (is_array($value) && isset($value[1], $value[2]) && in_array($value[1], ['=', 'eq'], true) && is_scalar($value[2])) { $data = $value[2]; } @@ -2089,7 +2089,7 @@ abstract class Connection try { return md5($prefix . serialize($query->getOptions()) . serialize($query->getBind(false))); } catch (\Exception $e) { - return; + throw new Exception('closure not support cache(true)'); } } diff --git a/thinkphp/library/think/db/Query.php b/thinkphp/library/think/db/Query.php index ddb2bbea7..0329e1c29 100644 --- a/thinkphp/library/think/db/Query.php +++ b/thinkphp/library/think/db/Query.php @@ -1357,7 +1357,7 @@ class Query public function useSoftDelete($field, $condition = null) { if ($field) { - $this->options['soft_delete'] = [$field, $condition ?: ['null', '']]; + $this->options['soft_delete'] = [$field, $condition]; } return $this; @@ -1447,7 +1447,6 @@ class Query return $this->parseArrayWhereItems($field, $logic); } elseif ($field instanceof \Closure) { $where = $field; - $field = ''; } elseif (is_string($field)) { if (preg_match('/[,=\<\'\"\(\s]/', $field)) { return $this->whereRaw($field, $op); @@ -1460,11 +1459,7 @@ class Query } if (!empty($where)) { - if (isset($this->options['where'][$logic][$field])) { - $this->options['where'][$logic][] = $where; - } else { - $this->options['where'][$logic][$field] = $where; - } + $this->options['where'][$logic][] = $where; } return $this; @@ -1490,9 +1485,13 @@ class Query if (in_array(strtoupper($op), ['NULL', 'NOTNULL', 'NOT NULL'], true)) { // null查询 $where = [$field, $op, '']; + } elseif (in_array(strtolower($op), ['=', 'eq', null], true)) { + $where = [$field, 'NULL', '']; + } elseif (in_array(strtolower($op), ['<>', 'neq'], true)) { + $where = [$field, 'NOTNULL', '']; } else { // 字段相等查询 - $where = is_null($op) ? [$field, 'NULL', ''] : [$field, '=', $op]; + $where = [$field, '=', $op]; } } else { $where = $field ? [$field, $op, $condition] : null; @@ -1513,11 +1512,7 @@ class Query if (key($field) !== 0) { $where = []; foreach ($field as $key => $val) { - if (is_null($val)) { - $where[$key] = [$key, 'NULL', '']; - } else { - $where[$key] = !is_scalar($val) ? $val : [$key, '=', $val]; - } + $where[] = is_null($val) ? [$key, 'NULL', ''] : [$key, '=', $val]; } } else { // 数组批量查询 @@ -1777,7 +1772,11 @@ class Query $field = $this->options['via'] . '.' . $field; } - $field = empty($order) ? $field : [$field => $order]; + if (strpos($field, ',')) { + $field = array_map('trim', explode(',', $field)); + } else { + $field = empty($order) ? $field : [$field => $order]; + } } elseif (!empty($this->options['via'])) { foreach ($field as $key => $val) { if (is_numeric($key)) { diff --git a/thinkphp/library/think/db/builder/Mysql.php b/thinkphp/library/think/db/builder/Mysql.php index a73fa293d..a17657d9f 100644 --- a/thinkphp/library/think/db/builder/Mysql.php +++ b/thinkphp/library/think/db/builder/Mysql.php @@ -105,9 +105,10 @@ class Mysql extends Builder * @access public * @param Query $query 查询对象 * @param string $key 字段名 + * @param bool $strict 严格检测 * @return string */ - public function parseKey(Query $query, $key) + public function parseKey(Query $query, $key, $strict = false) { if (is_int($key)) { return $key; @@ -118,7 +119,7 @@ class Mysql extends Builder // JSON字段支持 list($field, $name) = explode('->', $key, 2); - $key = 'json_extract(' . $this->parseKey($query, $field) . ', \'$.' . str_replace('->', '.', $name) . '\')'; + return 'json_extract(' . $this->parseKey($query, $field) . ', \'$.' . str_replace('->', '.', $name) . '\')'; } elseif (strpos($key, '.') && !preg_match('/[,\'\"\(\)`\s]/', $key)) { list($table, $key) = explode('.', $key, 2); @@ -134,7 +135,7 @@ class Mysql extends Builder } } - if (!preg_match('/[,\'\"\*\(\)`.\s]/', $key)) { + if ($strict || !preg_match('/[,\'\"\*\(\)`.\s]/', $key)) { $key = '`' . $key . '`'; } diff --git a/thinkphp/library/think/db/builder/Pgsql.php b/thinkphp/library/think/db/builder/Pgsql.php index 4db6932de..32373b64d 100644 --- a/thinkphp/library/think/db/builder/Pgsql.php +++ b/thinkphp/library/think/db/builder/Pgsql.php @@ -51,9 +51,10 @@ class Pgsql extends Builder * @access public * @param Query $query 查询对象 * @param string $key 字段名 + * @param bool $strict 严格检测 * @return string */ - public function parseKey(Query $query, $key) + public function parseKey(Query $query, $key, $strict = false) { $key = trim($key); diff --git a/thinkphp/library/think/db/builder/Sqlite.php b/thinkphp/library/think/db/builder/Sqlite.php index 141410c1e..9b244617e 100644 --- a/thinkphp/library/think/db/builder/Sqlite.php +++ b/thinkphp/library/think/db/builder/Sqlite.php @@ -59,9 +59,10 @@ class Sqlite extends Builder * @access public * @param Query $query 查询对象 * @param string $key 字段名 + * @param bool $strict 严格检测 * @return string */ - public function parseKey(Query $query, $key) + public function parseKey(Query $query, $key, $strict = false) { $key = trim($key); if (strpos($key, '.')) { diff --git a/thinkphp/library/think/db/builder/Sqlsrv.php b/thinkphp/library/think/db/builder/Sqlsrv.php index b95e234ba..4d3dc15bc 100644 --- a/thinkphp/library/think/db/builder/Sqlsrv.php +++ b/thinkphp/library/think/db/builder/Sqlsrv.php @@ -12,6 +12,7 @@ namespace think\db\builder; use think\db\Builder; +use think\db\Expression; use think\db\Query; /** @@ -35,28 +36,30 @@ class Sqlsrv extends Builder */ protected function parseOrder(Query $query, $order) { - if (is_array($order)) { - $array = []; - - foreach ($order as $key => $val) { - if (is_numeric($key)) { - if (false === strpos($val, '(')) { - $array[] = $this->parseKey($query, $val); - } elseif ('[rand]' == $val) { - $array[] = $this->parseRand($query); - } else { - $array[] = $val; - } - } else { - $sort = in_array(strtolower(trim($val)), ['asc', 'desc']) ? ' ' . $val : ''; - $array[] = $this->parseKey($query, $key) . ' ' . $sort; - } - } - - $order = implode(',', $array); + if (empty($order)) { + return ' ORDER BY rand()'; } - return !empty($order) ? ' ORDER BY ' . $order : ' ORDER BY rand()'; + $array = []; + + foreach ($order as $key => $val) { + if ($val instanceof Expression) { + $array[] = $val->getValue(); + } elseif ('[rand]' == $val) { + $array[] = $this->parseRand($query); + } else { + if (is_numeric($key)) { + list($key, $sort) = explode(' ', strpos($val, ' ') ? $val : $val . ' '); + } else { + $sort = $val; + } + + $sort = in_array(strtolower($sort), ['asc', 'desc'], true) ? ' ' . $sort : ''; + $array[] = $this->parseKey($query, $key, true) . $sort; + } + } + + return ' ORDER BY ' . implode(',', $array); } /** @@ -75,10 +78,15 @@ class Sqlsrv extends Builder * @access public * @param Query $query 查询对象 * @param string $key 字段名 + * @param bool $strict 严格检测 * @return string */ - public function parseKey(Query $query, $key) + public function parseKey(Query $query, $key, $strict = false) { + if (is_int($key)) { + return $key; + } + $key = trim($key); if (strpos($key, '.') && !preg_match('/[,\'\"\(\)\[\s]/', $key)) { @@ -96,7 +104,7 @@ class Sqlsrv extends Builder } } - if (!is_numeric($key) && !preg_match('/[,\'\"\*\(\)\[.\s]/', $key)) { + if ($strict || !preg_match('/[,\'\"\*\(\)\[.\s]/', $key)) { $key = '[' . $key . ']'; } diff --git a/thinkphp/library/think/model/concern/SoftDelete.php b/thinkphp/library/think/model/concern/SoftDelete.php index 473f9e3ea..68b4c1972 100644 --- a/thinkphp/library/think/model/concern/SoftDelete.php +++ b/thinkphp/library/think/model/concern/SoftDelete.php @@ -51,11 +51,23 @@ trait SoftDelete if ($field) { return $model ->db(false) - ->useSoftDelete($field, ['not null', '']); + ->useSoftDelete($field, $model->getWithTrashedExp()); } + return $model->db(false); } + /** + * 获取软删除数据的查询条件 + * @access protected + * @return array + */ + protected function getWithTrashedExp() + { + return is_null($this->defaultSoftDelete) ? + ['notnull', ''] : ['<>', $this->defaultSoftDelete]; + } + /** * 删除当前的记录 * @access public @@ -143,16 +155,17 @@ trait SoftDelete $name = $this->getDeleteTimeField(); if (empty($where)) { - $pk = $this->getPk(); - $where[$pk] = [$pk, '=', $this->getData($pk)]; + $pk = $this->getPk(); + + $where[] = [$pk, '=', $this->getData($pk)]; } if ($name) { // 恢复删除 return $this->db(false) ->where($where) - ->useSoftDelete($name, ['not null', '']) - ->update([$name => null]); + ->useSoftDelete($name, $this->getWithTrashedExp()) + ->update([$name => $this->defaultSoftDelete]); } return 0; @@ -183,4 +196,19 @@ trait SoftDelete return $field; } + + /** + * 查询的时候默认排除软删除数据 + * @access protected + * @param Query $query + * @return void + */ + protected function withNoTrashed($query) + { + $field = $this->getDeleteTimeField(true); + + if ($field) { + $query->useSoftDelete($field, $this->defaultSoftDelete); + } + } } diff --git a/thinkphp/library/think/route/Rule.php b/thinkphp/library/think/route/Rule.php index 8d53c4377..8f9d47e92 100644 --- a/thinkphp/library/think/route/Rule.php +++ b/thinkphp/library/think/route/Rule.php @@ -864,7 +864,7 @@ abstract class Rule $request->route($var); // 路由到模块/控制器/操作 - return (new ModuleDispatch([$module, $controller, $action]))->convert(false); + return new ModuleDispatch([$module, $controller, $action], [], false); } /** diff --git a/thinkphp/library/think/route/RuleGroup.php b/thinkphp/library/think/route/RuleGroup.php index bf8c65897..1fe3b2722 100644 --- a/thinkphp/library/think/route/RuleGroup.php +++ b/thinkphp/library/think/route/RuleGroup.php @@ -316,7 +316,7 @@ class RuleGroup extends Rule } try { - if (!empty($regex) && preg_match('/^(?:' . implode('|', $regex) . ')/', $url, $match)) { + if (!empty($regex) && preg_match('/^(?:' . implode('|', $regex) . ')/u', $url, $match)) { $var = []; foreach ($match as $key => $val) { if (is_string($key) && '' !== $val) { diff --git a/thinkphp/library/think/route/RuleItem.php b/thinkphp/library/think/route/RuleItem.php index 27e5e7548..117c1a9bd 100644 --- a/thinkphp/library/think/route/RuleItem.php +++ b/thinkphp/library/think/route/RuleItem.php @@ -309,7 +309,7 @@ class RuleItem extends Rule $regex = $this->buildRuleRegex($rule, $matches[0], $pattern, $option, $completeMatch); try { - if (!preg_match('/^' . $regex . ($completeMatch ? '$' : '') . '/', $url, $match)) { + if (!preg_match('/^' . $regex . ($completeMatch ? '$' : '') . '/u', $url, $match)) { return false; } } catch (\Exception $e) { diff --git a/thinkphp/library/think/route/dispatch/Module.php b/thinkphp/library/think/route/dispatch/Module.php index 26c92e94d..ec341997f 100644 --- a/thinkphp/library/think/route/dispatch/Module.php +++ b/thinkphp/library/think/route/dispatch/Module.php @@ -23,6 +23,15 @@ class Module extends Dispatch protected $controller; protected $actionName; + public function __construct($dispatch, $param = [], $convert = null) + { + $this->app = Container::get('app'); + $this->dispatch = $dispatch; + $this->param = $param; + $this->convert = $convert; + $this->init(); + } + protected function init() { $result = $this->dispatch; @@ -90,13 +99,13 @@ class Module extends Dispatch // 设置当前请求的控制器、操作 $this->app['request']->controller(Loader::parseName($this->controller, 1))->action($this->actionName); - // 监听module_init - $this->app['hook']->listen('module_init'); - } public function run() { + // 监听module_init + $this->app['hook']->listen('module_init'); + // 实例化控制器 try { $instance = $this->app->controller($this->controller, diff --git a/thinkphp/library/think/view/driver/Php.php b/thinkphp/library/think/view/driver/Php.php index 6e5db3bd7..f69871528 100644 --- a/thinkphp/library/think/view/driver/Php.php +++ b/thinkphp/library/think/view/driver/Php.php @@ -141,7 +141,7 @@ class Php if ($controller) { if ('' == $template) { // 如果模板文件名为空 按照默认规则定位 - $template = str_replace('.', DIRECTORY_SEPARATOR, $controller) . $depr . (1 == $this->config['auto_rule'] ? Loader::parseName($request->action(true)) : $request->action()); + $template = str_replace('.', DIRECTORY_SEPARATOR, $controller) . $depr . $this->getActionTemplate($request); } elseif (false === strpos($template, $depr)) { $template = str_replace('.', DIRECTORY_SEPARATOR, $controller) . $depr . $template; } @@ -153,6 +153,14 @@ class Php return $path . ltrim($template, '/') . '.' . ltrim($this->config['view_suffix'], '.'); } + protected function getActionTemplate($request) + { + $rule = [$request->action(true), Loader::parseName($request->action(true)), $request->action()]; + $type = $this->config['auto_rule']; + + return isset($rule[$type]) ? $rule[$type] : $rule[0]; + } + /** * 配置模板引擎 * @access private diff --git a/thinkphp/library/think/view/driver/Think.php b/thinkphp/library/think/view/driver/Think.php index 137acf859..834a8c032 100644 --- a/thinkphp/library/think/view/driver/Think.php +++ b/thinkphp/library/think/view/driver/Think.php @@ -132,10 +132,11 @@ class Think if (0 !== strpos($template, '/')) { $template = str_replace(['/', ':'], $depr, $template); $controller = Loader::parseName($request->controller()); + if ($controller) { if ('' == $template) { // 如果模板文件名为空 按照默认规则定位 - $template = str_replace('.', DIRECTORY_SEPARATOR, $controller) . $depr . (1 == $this->config['auto_rule'] ? Loader::parseName($request->action(true)) : $request->action()); + $template = str_replace('.', DIRECTORY_SEPARATOR, $controller) . $depr . $this->getActionTemplate($request); } elseif (false === strpos($template, $depr)) { $template = str_replace('.', DIRECTORY_SEPARATOR, $controller) . $depr . $template; } @@ -147,6 +148,14 @@ class Think return $path . ltrim($template, '/') . '.' . ltrim($this->config['view_suffix'], '.'); } + protected function getActionTemplate($request) + { + $rule = [$request->action(true), Loader::parseName($request->action(true)), $request->action()]; + $type = $this->config['auto_rule']; + + return isset($rule[$type]) ? $rule[$type] : $rule[0]; + } + /** * 配置或者获取模板引擎参数 * @access private diff --git a/vendor/autoload.php b/vendor/autoload.php index 9102730b4..90f0880f8 100644 --- a/vendor/autoload.php +++ b/vendor/autoload.php @@ -4,4 +4,4 @@ require_once __DIR__ . '/composer/autoload_real.php'; -return ComposerAutoloaderInit2549c3dd10544eb5636e5209890b3eea::getLoader(); +return ComposerAutoloaderInitb638b5638d156ef1335e2a3a226be4ad::getLoader(); diff --git a/vendor/composer/autoload_real.php b/vendor/composer/autoload_real.php index 0a06a3f5e..0e9b94c3f 100644 --- a/vendor/composer/autoload_real.php +++ b/vendor/composer/autoload_real.php @@ -2,7 +2,7 @@ // autoload_real.php @generated by Composer -class ComposerAutoloaderInit2549c3dd10544eb5636e5209890b3eea +class ComposerAutoloaderInitb638b5638d156ef1335e2a3a226be4ad { private static $loader; @@ -19,15 +19,15 @@ class ComposerAutoloaderInit2549c3dd10544eb5636e5209890b3eea return self::$loader; } - spl_autoload_register(array('ComposerAutoloaderInit2549c3dd10544eb5636e5209890b3eea', 'loadClassLoader'), true, true); + spl_autoload_register(array('ComposerAutoloaderInitb638b5638d156ef1335e2a3a226be4ad', 'loadClassLoader'), true, true); self::$loader = $loader = new \Composer\Autoload\ClassLoader(); - spl_autoload_unregister(array('ComposerAutoloaderInit2549c3dd10544eb5636e5209890b3eea', 'loadClassLoader')); + spl_autoload_unregister(array('ComposerAutoloaderInitb638b5638d156ef1335e2a3a226be4ad', 'loadClassLoader')); $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); if ($useStaticLoader) { require_once __DIR__ . '/autoload_static.php'; - call_user_func(\Composer\Autoload\ComposerStaticInit2549c3dd10544eb5636e5209890b3eea::getInitializer($loader)); + call_user_func(\Composer\Autoload\ComposerStaticInitb638b5638d156ef1335e2a3a226be4ad::getInitializer($loader)); } else { $map = require __DIR__ . '/autoload_namespaces.php'; foreach ($map as $namespace => $path) { @@ -48,19 +48,19 @@ class ComposerAutoloaderInit2549c3dd10544eb5636e5209890b3eea $loader->register(true); if ($useStaticLoader) { - $includeFiles = Composer\Autoload\ComposerStaticInit2549c3dd10544eb5636e5209890b3eea::$files; + $includeFiles = Composer\Autoload\ComposerStaticInitb638b5638d156ef1335e2a3a226be4ad::$files; } else { $includeFiles = require __DIR__ . '/autoload_files.php'; } foreach ($includeFiles as $fileIdentifier => $file) { - composerRequire2549c3dd10544eb5636e5209890b3eea($fileIdentifier, $file); + composerRequireb638b5638d156ef1335e2a3a226be4ad($fileIdentifier, $file); } return $loader; } } -function composerRequire2549c3dd10544eb5636e5209890b3eea($fileIdentifier, $file) +function composerRequireb638b5638d156ef1335e2a3a226be4ad($fileIdentifier, $file) { if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { require $file; diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index 804694091..02cf3f224 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -4,7 +4,7 @@ namespace Composer\Autoload; -class ComposerStaticInit2549c3dd10544eb5636e5209890b3eea +class ComposerStaticInitb638b5638d156ef1335e2a3a226be4ad { public static $files = array ( '1cfd2761b63b0a29ed23657ea394cb2d' => __DIR__ . '/..' . '/topthink/think-captcha/src/helper.php', @@ -258,9 +258,9 @@ class ComposerStaticInit2549c3dd10544eb5636e5209890b3eea public static function getInitializer(ClassLoader $loader) { return \Closure::bind(function () use ($loader) { - $loader->prefixLengthsPsr4 = ComposerStaticInit2549c3dd10544eb5636e5209890b3eea::$prefixLengthsPsr4; - $loader->prefixDirsPsr4 = ComposerStaticInit2549c3dd10544eb5636e5209890b3eea::$prefixDirsPsr4; - $loader->classMap = ComposerStaticInit2549c3dd10544eb5636e5209890b3eea::$classMap; + $loader->prefixLengthsPsr4 = ComposerStaticInitb638b5638d156ef1335e2a3a226be4ad::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInitb638b5638d156ef1335e2a3a226be4ad::$prefixDirsPsr4; + $loader->classMap = ComposerStaticInitb638b5638d156ef1335e2a3a226be4ad::$classMap; }, null, ClassLoader::class); } diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index 5f73c1953..3b331147b 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -175,17 +175,17 @@ }, { "name": "topthink/framework", - "version": "v5.1.8", - "version_normalized": "5.1.8.0", + "version": "v5.1.9", + "version_normalized": "5.1.9.0", "source": { "type": "git", "url": "https://github.com/top-think/framework.git", - "reference": "8f6c84abd9e2f9db5a071168c0153724b54b083c" + "reference": "c49df2fa54879105e451f7eaaf841d218206f02f" }, "dist": { "type": "zip", - "url": "https://files.phpcomposer.com/files/top-think/framework/8f6c84abd9e2f9db5a071168c0153724b54b083c.zip", - "reference": "8f6c84abd9e2f9db5a071168c0153724b54b083c", + "url": "https://files.phpcomposer.com/files/top-think/framework/c49df2fa54879105e451f7eaaf841d218206f02f.zip", + "reference": "c49df2fa54879105e451f7eaaf841d218206f02f", "shasum": "" }, "require": { @@ -201,7 +201,7 @@ "sebastian/phpcpd": "2.*", "squizlabs/php_codesniffer": "2.*" }, - "time": "2018-04-06T05:28:49+00:00", + "time": "2018-04-12T11:16:28+00:00", "type": "think-framework", "installation-source": "dist", "notification-url": "https://packagist.org/downloads/", From 32dfa15790d558d5a4a70fd3fb5fbae6a37ad15c Mon Sep 17 00:00:00 2001 From: Anyon Date: Fri, 13 Apr 2018 13:29:30 +0800 Subject: [PATCH 145/153] =?UTF-8?q?[=E6=9B=B4=E6=96=B0]=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E4=BA=A7=E5=93=81=E4=BF=A1=E6=81=AF=E7=BC=96=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/goods/service/ProductService.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/application/goods/service/ProductService.php b/application/goods/service/ProductService.php index f9b1928f7..2eec57c0a 100644 --- a/application/goods/service/ProductService.php +++ b/application/goods/service/ProductService.php @@ -44,7 +44,7 @@ class ProductService return ['list' => $goodsList, 'cate' => $cateList, 'brand' => $brandList]; } // 读取产品详情列表 - $specWhere = ['status' => '1', 'is_deleted' => '0', ['goods_id', 'in', array_column($goodsList, 'id')]]; + $specWhere = [['status', 'eq', '1'], ['is_deleted', 'eq', '0'], ['goods_id', 'in', array_column($goodsList, 'id')]]; $specField = 'id,goods_id,goods_spec,goods_number,market_price,selling_price,goods_stock,goods_sale'; $specList = Db::name('GoodsList')->where($specWhere)->column($specField); foreach ($specList as $key => $spec) { From 699e4e038a13c5e48eee538dc95a0d47688adec4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E6=99=AF=E7=AB=8B?= Date: Sat, 14 Apr 2018 19:25:20 +0800 Subject: [PATCH 146/153] =?UTF-8?q?[=E6=9B=B4=E6=96=B0]ComposerUpdate=20fo?= =?UTF-8?q?r=20ThinkPHP?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- thinkphp/.gitignore | 8 - thinkphp/.htaccess | 1 - thinkphp/CONTRIBUTING.md | 119 - thinkphp/LICENSE.txt | 32 - thinkphp/README.md | 60 - thinkphp/base.php | 105 - thinkphp/composer.json | 35 - thinkphp/convention.php | 302 -- thinkphp/helper.php | 691 ---- thinkphp/lang/zh-cn.php | 141 - thinkphp/library/think/App.php | 916 ----- thinkphp/library/think/Build.php | 407 --- thinkphp/library/think/Cache.php | 117 - thinkphp/library/think/Collection.php | 388 -- thinkphp/library/think/Config.php | 313 -- thinkphp/library/think/Console.php | 794 ----- thinkphp/library/think/Container.php | 365 -- thinkphp/library/think/Controller.php | 239 -- thinkphp/library/think/Cookie.php | 262 -- thinkphp/library/think/Db.php | 72 - thinkphp/library/think/Debug.php | 258 -- thinkphp/library/think/Env.php | 109 - thinkphp/library/think/Error.php | 128 - thinkphp/library/think/Exception.php | 56 - thinkphp/library/think/Facade.php | 126 - thinkphp/library/think/File.php | 494 --- thinkphp/library/think/Hook.php | 212 -- thinkphp/library/think/Lang.php | 265 -- thinkphp/library/think/Loader.php | 405 --- thinkphp/library/think/Log.php | 398 --- thinkphp/library/think/Middleware.php | 132 - thinkphp/library/think/Model.php | 1014 ------ thinkphp/library/think/Paginator.php | 437 --- thinkphp/library/think/Process.php | 1268 ------- thinkphp/library/think/Request.php | 1966 ----------- thinkphp/library/think/Response.php | 401 --- thinkphp/library/think/Route.php | 858 ----- thinkphp/library/think/Session.php | 531 --- thinkphp/library/think/Template.php | 1304 ------- thinkphp/library/think/Url.php | 357 -- thinkphp/library/think/Validate.php | 1487 -------- thinkphp/library/think/View.php | 236 -- thinkphp/library/think/cache/Driver.php | 353 -- thinkphp/library/think/cache/driver/File.php | 305 -- thinkphp/library/think/cache/driver/Lite.php | 209 -- .../library/think/cache/driver/Memcache.php | 203 -- .../library/think/cache/driver/Memcached.php | 216 -- thinkphp/library/think/cache/driver/Redis.php | 206 -- .../library/think/cache/driver/Sqlite.php | 233 -- .../library/think/cache/driver/Wincache.php | 174 - .../library/think/cache/driver/Xcache.php | 177 - thinkphp/library/think/config/driver/Ini.php | 24 - thinkphp/library/think/config/driver/Json.php | 26 - thinkphp/library/think/config/driver/Xml.php | 33 - thinkphp/library/think/console/Command.php | 470 --- thinkphp/library/think/console/Input.php | 464 --- thinkphp/library/think/console/LICENSE | 19 - thinkphp/library/think/console/Output.php | 222 -- thinkphp/library/think/console/bin/README.md | 1 - .../library/think/console/bin/hiddeninput.exe | Bin 9216 -> 0 bytes .../library/think/console/command/Build.php | 60 - .../library/think/console/command/Clear.php | 45 - .../library/think/console/command/Help.php | 69 - .../library/think/console/command/Lists.php | 74 - .../library/think/console/command/Make.php | 111 - .../think/console/command/RunServer.php | 54 - .../think/console/command/make/Controller.php | 57 - .../think/console/command/make/Middleware.php | 36 - .../think/console/command/make/Model.php | 36 - .../command/make/stubs/controller.api.stub | 64 - .../command/make/stubs/controller.plain.stub | 10 - .../command/make/stubs/controller.stub | 85 - .../command/make/stubs/middleware.stub | 10 - .../console/command/make/stubs/model.stub | 10 - .../console/command/optimize/Autoload.php | 280 -- .../think/console/command/optimize/Config.php | 110 - .../think/console/command/optimize/Route.php | 68 - .../think/console/command/optimize/Schema.php | 121 - .../library/think/console/input/Argument.php | 115 - .../think/console/input/Definition.php | 375 -- .../library/think/console/input/Option.php | 190 - thinkphp/library/think/console/output/Ask.php | 340 -- .../think/console/output/Descriptor.php | 319 -- .../think/console/output/Formatter.php | 198 -- .../library/think/console/output/Question.php | 211 -- .../console/output/descriptor/Console.php | 149 - .../think/console/output/driver/Buffer.php | 52 - .../think/console/output/driver/Console.php | 368 -- .../think/console/output/driver/Nothing.php | 33 - .../think/console/output/formatter/Stack.php | 116 - .../think/console/output/formatter/Style.php | 189 - .../think/console/output/question/Choice.php | 163 - .../console/output/question/Confirmation.php | 57 - thinkphp/library/think/db/Builder.php | 1166 ------ thinkphp/library/think/db/Connection.php | 2152 ----------- thinkphp/library/think/db/Expression.php | 48 - thinkphp/library/think/db/Query.php | 3143 ----------------- thinkphp/library/think/db/builder/Mysql.php | 188 - thinkphp/library/think/db/builder/Pgsql.php | 98 - thinkphp/library/think/db/builder/Sqlite.php | 89 - thinkphp/library/think/db/builder/Sqlsrv.php | 149 - thinkphp/library/think/db/connector/Mysql.php | 157 - thinkphp/library/think/db/connector/Pgsql.php | 116 - .../library/think/db/connector/Sqlite.php | 108 - .../library/think/db/connector/Sqlsrv.php | 138 - thinkphp/library/think/db/connector/pgsql.sql | 117 - .../think/db/exception/BindParamException.php | 36 - .../db/exception/DataNotFoundException.php | 44 - .../db/exception/ModelNotFoundException.php | 45 - thinkphp/library/think/debug/Console.php | 156 - thinkphp/library/think/debug/Html.php | 106 - .../exception/ClassNotFoundException.php | 32 - .../library/think/exception/DbException.php | 44 - .../think/exception/ErrorException.php | 56 - thinkphp/library/think/exception/Handle.php | 306 -- .../library/think/exception/HttpException.php | 36 - .../think/exception/HttpResponseException.php | 33 - .../library/think/exception/PDOException.php | 40 - .../exception/RouteNotFoundException.php | 22 - .../exception/TemplateNotFoundException.php | 33 - .../think/exception/ThrowableError.php | 47 - .../think/exception/ValidateException.php | 33 - thinkphp/library/think/facade/App.php | 54 - thinkphp/library/think/facade/Build.php | 24 - thinkphp/library/think/facade/Cache.php | 36 - thinkphp/library/think/facade/Config.php | 27 - thinkphp/library/think/facade/Cookie.php | 30 - thinkphp/library/think/facade/Debug.php | 31 - thinkphp/library/think/facade/Env.php | 25 - thinkphp/library/think/facade/Hook.php | 28 - thinkphp/library/think/facade/Lang.php | 32 - thinkphp/library/think/facade/Log.php | 40 - thinkphp/library/think/facade/Middleware.php | 27 - thinkphp/library/think/facade/Request.php | 88 - thinkphp/library/think/facade/Response.php | 38 - thinkphp/library/think/facade/Route.php | 48 - thinkphp/library/think/facade/Session.php | 37 - thinkphp/library/think/facade/Url.php | 24 - thinkphp/library/think/facade/Validate.php | 65 - thinkphp/library/think/facade/View.php | 31 - thinkphp/library/think/log/driver/File.php | 163 - thinkphp/library/think/log/driver/Socket.php | 274 -- thinkphp/library/think/log/driver/Test.php | 30 - thinkphp/library/think/model/Collection.php | 84 - thinkphp/library/think/model/Pivot.php | 42 - thinkphp/library/think/model/Relation.php | 151 - .../library/think/model/concern/Attribute.php | 574 --- .../think/model/concern/Conversion.php | 276 -- .../think/model/concern/ModelEvent.php | 157 - .../think/model/concern/RelationShip.php | 643 ---- .../think/model/concern/SoftDelete.php | 214 -- .../library/think/model/concern/TimeStamp.php | 79 - .../think/model/relation/BelongsTo.php | 247 -- .../think/model/relation/BelongsToMany.php | 631 ---- .../library/think/model/relation/HasMany.php | 325 -- .../think/model/relation/HasManyThrough.php | 155 - .../library/think/model/relation/HasOne.php | 226 -- .../think/model/relation/MorphMany.php | 322 -- .../library/think/model/relation/MorphOne.php | 245 -- .../library/think/model/relation/MorphTo.php | 306 -- .../library/think/model/relation/OneToOne.php | 342 -- .../library/think/paginator/Collection.php | 74 - .../think/paginator/driver/Bootstrap.php | 206 -- thinkphp/library/think/process/Builder.php | 233 -- thinkphp/library/think/process/Utils.php | 75 - .../library/think/process/exception/Faild.php | 42 - .../think/process/exception/Failed.php | 42 - .../think/process/exception/Timeout.php | 61 - .../library/think/process/pipes/Pipes.php | 93 - thinkphp/library/think/process/pipes/Unix.php | 196 - .../library/think/process/pipes/Windows.php | 228 -- thinkphp/library/think/response/Json.php | 51 - thinkphp/library/think/response/Jsonp.php | 59 - thinkphp/library/think/response/Jump.php | 36 - thinkphp/library/think/response/Redirect.php | 116 - thinkphp/library/think/response/View.php | 99 - thinkphp/library/think/response/Xml.php | 116 - thinkphp/library/think/route/AliasRule.php | 126 - thinkphp/library/think/route/Dispatch.php | 60 - thinkphp/library/think/route/Domain.php | 233 -- thinkphp/library/think/route/Resource.php | 156 - thinkphp/library/think/route/Rule.php | 1087 ------ thinkphp/library/think/route/RuleGroup.php | 523 --- thinkphp/library/think/route/RuleItem.php | 330 -- thinkphp/library/think/route/RuleName.php | 63 - .../library/think/route/dispatch/Callback.php | 27 - .../think/route/dispatch/Controller.php | 30 - .../library/think/route/dispatch/Module.php | 150 - .../library/think/route/dispatch/Redirect.php | 23 - .../library/think/route/dispatch/Response.php | 23 - thinkphp/library/think/route/dispatch/Url.php | 195 - .../library/think/route/dispatch/View.php | 26 - .../library/think/session/driver/Memcache.php | 124 - .../think/session/driver/Memcached.php | 135 - .../library/think/session/driver/Redis.php | 169 - thinkphp/library/think/template/TagLib.php | 351 -- .../library/think/template/driver/File.php | 79 - thinkphp/library/think/template/taglib/Cx.php | 724 ---- .../library/think/validate/ValidateRule.php | 171 - thinkphp/library/think/view/driver/Php.php | 182 - thinkphp/library/think/view/driver/Think.php | 183 - thinkphp/library/traits/controller/Jump.php | 158 - thinkphp/logo.png | Bin 6995 -> 0 bytes thinkphp/phpunit.xml.dist | 41 - thinkphp/tpl/default_index.tpl | 10 - thinkphp/tpl/dispatch_jump.tpl | 49 - thinkphp/tpl/page_trace.tpl | 71 - thinkphp/tpl/think_exception.tpl | 507 --- vendor/aliyuncs/oss-sdk-php/.coveralls.yml | 2 - vendor/aliyuncs/oss-sdk-php/.gitignore | 8 - vendor/aliyuncs/oss-sdk-php/.travis.yml | 21 - vendor/aliyuncs/oss-sdk-php/CHANGELOG.md | 92 - vendor/aliyuncs/oss-sdk-php/LICENSE.md | 21 - vendor/aliyuncs/oss-sdk-php/README-CN.md | 149 - vendor/aliyuncs/oss-sdk-php/README.md | 150 - vendor/aliyuncs/oss-sdk-php/autoload.php | 11 - vendor/aliyuncs/oss-sdk-php/build-phar.sh | 13 - vendor/aliyuncs/oss-sdk-php/composer.json | 24 - vendor/aliyuncs/oss-sdk-php/example.jpg | Bin 21839 -> 0 bytes vendor/aliyuncs/oss-sdk-php/index.php | 3 - vendor/aliyuncs/oss-sdk-php/phpunit.xml | 19 - .../aliyuncs/oss-sdk-php/samples/Bucket.php | 167 - .../oss-sdk-php/samples/BucketCors.php | 108 - .../oss-sdk-php/samples/BucketLifecycle.php | 109 - .../oss-sdk-php/samples/BucketLogging.php | 95 - .../oss-sdk-php/samples/BucketReferer.php | 101 - .../oss-sdk-php/samples/BucketWebsite.php | 92 - .../aliyuncs/oss-sdk-php/samples/Callback.php | 83 - .../aliyuncs/oss-sdk-php/samples/Common.php | 84 - .../aliyuncs/oss-sdk-php/samples/Config.php | 15 - vendor/aliyuncs/oss-sdk-php/samples/Image.php | 87 - .../oss-sdk-php/samples/LiveChannel.php | 125 - .../oss-sdk-php/samples/MultipartUpload.php | 182 - .../aliyuncs/oss-sdk-php/samples/Object.php | 517 --- .../aliyuncs/oss-sdk-php/samples/RunAll.php | 13 - .../oss-sdk-php/samples/Signature.php | 143 - .../oss-sdk-php/src/OSS/Core/MimeTypes.php | 262 -- .../oss-sdk-php/src/OSS/Core/OssException.php | 54 - .../oss-sdk-php/src/OSS/Core/OssUtil.php | 461 --- .../aliyuncs/oss-sdk-php/src/OSS/Http/LICENSE | 25 - .../oss-sdk-php/src/OSS/Http/RequestCore.php | 896 ----- .../src/OSS/Http/RequestCore_Exception.php | 8 - .../oss-sdk-php/src/OSS/Http/ResponseCore.php | 56 - .../oss-sdk-php/src/OSS/Model/BucketInfo.php | 78 - .../src/OSS/Model/BucketListInfo.php | 39 - .../oss-sdk-php/src/OSS/Model/CnameConfig.php | 99 - .../oss-sdk-php/src/OSS/Model/CorsConfig.php | 113 - .../oss-sdk-php/src/OSS/Model/CorsRule.php | 150 - .../src/OSS/Model/GetLiveChannelHistory.php | 34 - .../src/OSS/Model/GetLiveChannelInfo.php | 68 - .../src/OSS/Model/GetLiveChannelStatus.php | 107 - .../src/OSS/Model/LifecycleAction.php | 88 - .../src/OSS/Model/LifecycleConfig.php | 107 - .../src/OSS/Model/LifecycleRule.php | 126 - .../src/OSS/Model/ListMultipartUploadInfo.php | 134 - .../src/OSS/Model/ListPartsInfo.php | 97 - .../src/OSS/Model/LiveChannelConfig.php | 121 - .../src/OSS/Model/LiveChannelHistory.php | 59 - .../src/OSS/Model/LiveChannelInfo.php | 107 - .../src/OSS/Model/LiveChannelListInfo.php | 107 - .../src/OSS/Model/LoggingConfig.php | 86 - .../oss-sdk-php/src/OSS/Model/ObjectInfo.php | 93 - .../src/OSS/Model/ObjectListInfo.php | 126 - .../oss-sdk-php/src/OSS/Model/PartInfo.php | 63 - .../oss-sdk-php/src/OSS/Model/PrefixInfo.php | 36 - .../src/OSS/Model/RefererConfig.php | 93 - .../src/OSS/Model/StorageCapacityConfig.php | 74 - .../oss-sdk-php/src/OSS/Model/UploadInfo.php | 55 - .../src/OSS/Model/WebsiteConfig.php | 76 - .../oss-sdk-php/src/OSS/Model/XmlConfig.php | 27 - .../oss-sdk-php/src/OSS/OssClient.php | 2739 -------------- .../oss-sdk-php/src/OSS/Result/AclResult.php | 32 - .../src/OSS/Result/AppendResult.php | 27 - .../oss-sdk-php/src/OSS/Result/BodyResult.php | 19 - .../src/OSS/Result/CallbackResult.php | 21 - .../src/OSS/Result/CopyObjectResult.php | 30 - .../src/OSS/Result/DeleteObjectsResult.php | 27 - .../src/OSS/Result/ExistResult.php | 35 - .../src/OSS/Result/GetCnameResult.php | 19 - .../src/OSS/Result/GetCorsResult.php | 35 - .../src/OSS/Result/GetLifecycleResult.php | 41 - .../Result/GetLiveChannelHistoryResult.php | 19 - .../OSS/Result/GetLiveChannelInfoResult.php | 19 - .../OSS/Result/GetLiveChannelStatusResult.php | 19 - .../src/OSS/Result/GetLocationResult.php | 30 - .../src/OSS/Result/GetLoggingResult.php | 41 - .../src/OSS/Result/GetRefererResult.php | 41 - .../OSS/Result/GetStorageCapacityResult.php | 34 - .../src/OSS/Result/GetWebsiteResult.php | 40 - .../src/OSS/Result/HeaderResult.php | 23 - .../Result/InitiateMultipartUploadResult.php | 29 - .../src/OSS/Result/ListBucketsResult.php | 33 - .../src/OSS/Result/ListLiveChannelResult.php | 16 - .../OSS/Result/ListMultipartUploadResult.php | 55 - .../src/OSS/Result/ListObjectsResult.php | 71 - .../src/OSS/Result/ListPartsResult.php | 42 - .../src/OSS/Result/PutLiveChannelResult.php | 16 - .../src/OSS/Result/PutSetDeleteResult.php | 20 - .../oss-sdk-php/src/OSS/Result/Result.php | 175 - .../src/OSS/Result/SymlinkResult.php | 24 - .../src/OSS/Result/UploadPartResult.php | 28 - .../tests/OSS/Tests/AclResultTest.php | 59 - .../tests/OSS/Tests/BodyResultTest.php | 26 - .../tests/OSS/Tests/BucketCnameTest.php | 77 - .../tests/OSS/Tests/BucketInfoTest.php | 21 - .../tests/OSS/Tests/BucketLiveChannelTest.php | 283 -- .../tests/OSS/Tests/CallbackTest.php | 297 -- .../tests/OSS/Tests/CnameConfigTest.php | 77 - .../oss-sdk-php/tests/OSS/Tests/Common.php | 70 - .../tests/OSS/Tests/ContentTypeTest.php | 133 - .../tests/OSS/Tests/CopyObjectResult.php | 52 - .../tests/OSS/Tests/CorsConfigTest.php | 140 - .../tests/OSS/Tests/ExistResultTest.php | 38 - .../tests/OSS/Tests/GetCorsResultTest.php | 67 - .../OSS/Tests/GetLifecycleResultTest.php | 59 - .../tests/OSS/Tests/GetLoggingResultTest.php | 51 - .../tests/OSS/Tests/GetRefererResultTest.php | 51 - .../tests/OSS/Tests/GetWebsiteResultTest.php | 50 - .../tests/OSS/Tests/HeaderResultTest.php | 23 - .../oss-sdk-php/tests/OSS/Tests/HttpTest.php | 77 - .../InitiateMultipartUploadResultTest.php | 47 - .../tests/OSS/Tests/LifecycleConfigTest.php | 130 - .../tests/OSS/Tests/ListBucketsResultTest.php | 97 - .../Tests/ListMultipartUploadResultTest.php | 114 - .../tests/OSS/Tests/ListObjectsResultTest.php | 151 - .../tests/OSS/Tests/ListPartsResultTest.php | 62 - .../tests/OSS/Tests/LiveChannelXmlTest.php | 249 -- .../tests/OSS/Tests/LoggingConfigTest.php | 47 - .../tests/OSS/Tests/MimeTypesTest.php | 13 - .../tests/OSS/Tests/ObjectAclTest.php | 28 - .../OSS/Tests/OssClientBucketCorsTest.php | 84 - .../Tests/OssClientBucketLifecycleTest.php | 57 - .../OSS/Tests/OssClientBucketLoggingTest.php | 43 - .../OSS/Tests/OssClientBucketRefererTest.php | 48 - .../OssClientBucketStorageCapacityTest.php | 56 - .../tests/OSS/Tests/OssClientBucketTest.php | 113 - .../OSS/Tests/OssClientBucketWebsiteTest.php | 46 - .../tests/OSS/Tests/OssClientImageTest.php | 100 - .../Tests/OssClientMultipartUploadTest.php | 313 -- .../tests/OSS/Tests/OssClientObjectTest.php | 588 --- .../OSS/Tests/OssClientRestoreObjectTest.php | 96 - .../OSS/Tests/OssClientSignatureTest.php | 111 - .../tests/OSS/Tests/OssClientTest.php | 216 -- .../tests/OSS/Tests/OssExceptionTest.php | 19 - .../tests/OSS/Tests/OssUtilTest.php | 225 -- .../OSS/Tests/PutSetDeleteResultTest.php | 66 - .../tests/OSS/Tests/RefererConfigTest.php | 54 - .../tests/OSS/Tests/StorageCapacityTest.php | 59 - .../tests/OSS/Tests/SymlinkTest.php | 74 - .../tests/OSS/Tests/TestOssClientBase.php | 51 - .../tests/OSS/Tests/UploadPartResultTest.php | 33 - .../tests/OSS/Tests/WebsiteConfigTest.php | 56 - vendor/autoload.php | 7 - vendor/composer/ClassLoader.php | 445 --- vendor/composer/LICENSE | 21 - vendor/composer/autoload_classmap.php | 178 - vendor/composer/autoload_files.php | 11 - vendor/composer/autoload_namespaces.php | 9 - vendor/composer/autoload_psr4.php | 18 - vendor/composer/autoload_real.php | 70 - vendor/composer/autoload_static.php | 267 -- vendor/composer/installed.json | 484 --- vendor/endroid/qr-code/.gitignore | 5 - vendor/endroid/qr-code/.travis.yml | 21 - vendor/endroid/qr-code/LICENSE | 19 - vendor/endroid/qr-code/README.md | 132 - .../endroid/qr-code/assets/data/qrv10_0.dat | Bin 8340 -> 0 bytes .../endroid/qr-code/assets/data/qrv10_1.dat | Bin 8339 -> 0 bytes .../endroid/qr-code/assets/data/qrv10_2.dat | Bin 8343 -> 0 bytes .../endroid/qr-code/assets/data/qrv10_3.dat | Bin 8343 -> 0 bytes .../endroid/qr-code/assets/data/qrv11_0.dat | Bin 9732 -> 0 bytes .../endroid/qr-code/assets/data/qrv11_1.dat | Bin 9731 -> 0 bytes .../endroid/qr-code/assets/data/qrv11_2.dat | Bin 9738 -> 0 bytes .../endroid/qr-code/assets/data/qrv11_3.dat | Bin 9735 -> 0 bytes .../endroid/qr-code/assets/data/qrv12_0.dat | Bin 11223 -> 0 bytes .../endroid/qr-code/assets/data/qrv12_1.dat | Bin 11219 -> 0 bytes .../endroid/qr-code/assets/data/qrv12_2.dat | Bin 11226 -> 0 bytes .../endroid/qr-code/assets/data/qrv12_3.dat | Bin 11225 -> 0 bytes .../endroid/qr-code/assets/data/qrv13_0.dat | Bin 12808 -> 0 bytes .../endroid/qr-code/assets/data/qrv13_1.dat | Bin 12803 -> 0 bytes .../endroid/qr-code/assets/data/qrv13_2.dat | Bin 12815 -> 0 bytes .../endroid/qr-code/assets/data/qrv13_3.dat | Bin 12811 -> 0 bytes .../endroid/qr-code/assets/data/qrv14_0.dat | Bin 13993 -> 0 bytes .../endroid/qr-code/assets/data/qrv14_1.dat | Bin 13988 -> 0 bytes .../endroid/qr-code/assets/data/qrv14_2.dat | Bin 14000 -> 0 bytes .../endroid/qr-code/assets/data/qrv14_3.dat | Bin 14000 -> 0 bytes .../endroid/qr-code/assets/data/qrv15_0.dat | Bin 15770 -> 0 bytes .../endroid/qr-code/assets/data/qrv15_1.dat | Bin 15766 -> 0 bytes .../endroid/qr-code/assets/data/qrv15_2.dat | Bin 15778 -> 0 bytes .../endroid/qr-code/assets/data/qrv15_3.dat | Bin 15772 -> 0 bytes .../endroid/qr-code/assets/data/qrv16_0.dat | Bin 17642 -> 0 bytes .../endroid/qr-code/assets/data/qrv16_1.dat | Bin 17638 -> 0 bytes .../endroid/qr-code/assets/data/qrv16_2.dat | Bin 17648 -> 0 bytes .../endroid/qr-code/assets/data/qrv16_3.dat | Bin 17649 -> 0 bytes .../endroid/qr-code/assets/data/qrv17_0.dat | Bin 19611 -> 0 bytes .../endroid/qr-code/assets/data/qrv17_1.dat | Bin 19606 -> 0 bytes .../endroid/qr-code/assets/data/qrv17_2.dat | Bin 19619 -> 0 bytes .../endroid/qr-code/assets/data/qrv17_3.dat | Bin 19616 -> 0 bytes .../endroid/qr-code/assets/data/qrv18_0.dat | Bin 21677 -> 0 bytes .../endroid/qr-code/assets/data/qrv18_1.dat | Bin 21670 -> 0 bytes .../endroid/qr-code/assets/data/qrv18_2.dat | Bin 21685 -> 0 bytes .../endroid/qr-code/assets/data/qrv18_3.dat | Bin 21682 -> 0 bytes .../endroid/qr-code/assets/data/qrv19_0.dat | Bin 23838 -> 0 bytes .../endroid/qr-code/assets/data/qrv19_1.dat | Bin 23831 -> 0 bytes .../endroid/qr-code/assets/data/qrv19_2.dat | Bin 23849 -> 0 bytes .../endroid/qr-code/assets/data/qrv19_3.dat | Bin 23845 -> 0 bytes vendor/endroid/qr-code/assets/data/qrv1_0.dat | Bin 656 -> 0 bytes vendor/endroid/qr-code/assets/data/qrv1_1.dat | Bin 656 -> 0 bytes vendor/endroid/qr-code/assets/data/qrv1_2.dat | Bin 656 -> 0 bytes vendor/endroid/qr-code/assets/data/qrv1_3.dat | Bin 656 -> 0 bytes .../endroid/qr-code/assets/data/qrv20_0.dat | Bin 26096 -> 0 bytes .../endroid/qr-code/assets/data/qrv20_1.dat | Bin 26088 -> 0 bytes .../endroid/qr-code/assets/data/qrv20_2.dat | Bin 26105 -> 0 bytes .../endroid/qr-code/assets/data/qrv20_3.dat | Bin 26100 -> 0 bytes .../endroid/qr-code/assets/data/qrv21_0.dat | Bin 27804 -> 0 bytes .../endroid/qr-code/assets/data/qrv21_1.dat | Bin 27795 -> 0 bytes .../endroid/qr-code/assets/data/qrv21_2.dat | Bin 27812 -> 0 bytes .../endroid/qr-code/assets/data/qrv21_3.dat | Bin 27810 -> 0 bytes .../endroid/qr-code/assets/data/qrv22_0.dat | Bin 30252 -> 0 bytes .../endroid/qr-code/assets/data/qrv22_1.dat | 209 -- .../endroid/qr-code/assets/data/qrv22_2.dat | Bin 30269 -> 0 bytes .../endroid/qr-code/assets/data/qrv22_3.dat | Bin 30258 -> 0 bytes .../endroid/qr-code/assets/data/qrv23_0.dat | Bin 32797 -> 0 bytes .../endroid/qr-code/assets/data/qrv23_1.dat | 217 -- .../endroid/qr-code/assets/data/qrv23_2.dat | Bin 32809 -> 0 bytes .../endroid/qr-code/assets/data/qrv23_3.dat | Bin 32804 -> 0 bytes .../endroid/qr-code/assets/data/qrv24_0.dat | Bin 35439 -> 0 bytes .../endroid/qr-code/assets/data/qrv24_1.dat | 225 -- .../endroid/qr-code/assets/data/qrv24_2.dat | Bin 35451 -> 0 bytes .../endroid/qr-code/assets/data/qrv24_3.dat | Bin 35446 -> 0 bytes .../endroid/qr-code/assets/data/qrv25_0.dat | 233 -- .../endroid/qr-code/assets/data/qrv25_1.dat | 233 -- .../endroid/qr-code/assets/data/qrv25_2.dat | Bin 38190 -> 0 bytes .../endroid/qr-code/assets/data/qrv25_3.dat | Bin 38184 -> 0 bytes .../endroid/qr-code/assets/data/qrv26_0.dat | 241 -- .../endroid/qr-code/assets/data/qrv26_1.dat | 241 -- .../endroid/qr-code/assets/data/qrv26_2.dat | Bin 41024 -> 0 bytes .../endroid/qr-code/assets/data/qrv26_3.dat | 241 -- .../endroid/qr-code/assets/data/qrv27_0.dat | 249 -- .../endroid/qr-code/assets/data/qrv27_1.dat | 249 -- .../endroid/qr-code/assets/data/qrv27_2.dat | 249 -- .../endroid/qr-code/assets/data/qrv27_3.dat | 249 -- .../endroid/qr-code/assets/data/qrv28_0.dat | 257 -- .../endroid/qr-code/assets/data/qrv28_1.dat | 257 -- .../endroid/qr-code/assets/data/qrv28_2.dat | 257 -- .../endroid/qr-code/assets/data/qrv28_3.dat | 257 -- .../endroid/qr-code/assets/data/qrv29_0.dat | 265 -- .../endroid/qr-code/assets/data/qrv29_1.dat | 265 -- .../endroid/qr-code/assets/data/qrv29_2.dat | 265 -- .../endroid/qr-code/assets/data/qrv29_3.dat | 265 -- vendor/endroid/qr-code/assets/data/qrv2_0.dat | Bin 1109 -> 0 bytes vendor/endroid/qr-code/assets/data/qrv2_1.dat | Bin 1109 -> 0 bytes vendor/endroid/qr-code/assets/data/qrv2_2.dat | Bin 1109 -> 0 bytes vendor/endroid/qr-code/assets/data/qrv2_3.dat | Bin 1109 -> 0 bytes .../endroid/qr-code/assets/data/qrv30_0.dat | 273 -- .../endroid/qr-code/assets/data/qrv30_1.dat | 273 -- .../endroid/qr-code/assets/data/qrv30_2.dat | 273 -- .../endroid/qr-code/assets/data/qrv30_3.dat | 273 -- .../endroid/qr-code/assets/data/qrv31_0.dat | 281 -- .../endroid/qr-code/assets/data/qrv31_1.dat | 281 -- .../endroid/qr-code/assets/data/qrv31_2.dat | 281 -- .../endroid/qr-code/assets/data/qrv31_3.dat | 281 -- .../endroid/qr-code/assets/data/qrv32_0.dat | 289 -- .../endroid/qr-code/assets/data/qrv32_1.dat | 289 -- .../endroid/qr-code/assets/data/qrv32_2.dat | 289 -- .../endroid/qr-code/assets/data/qrv32_3.dat | 289 -- .../endroid/qr-code/assets/data/qrv33_0.dat | 297 -- .../endroid/qr-code/assets/data/qrv33_1.dat | 297 -- .../endroid/qr-code/assets/data/qrv33_2.dat | 297 -- .../endroid/qr-code/assets/data/qrv33_3.dat | 297 -- .../endroid/qr-code/assets/data/qrv34_0.dat | 305 -- .../endroid/qr-code/assets/data/qrv34_1.dat | 305 -- .../endroid/qr-code/assets/data/qrv34_2.dat | 305 -- .../endroid/qr-code/assets/data/qrv34_3.dat | 305 -- .../endroid/qr-code/assets/data/qrv35_0.dat | 313 -- .../endroid/qr-code/assets/data/qrv35_1.dat | 313 -- .../endroid/qr-code/assets/data/qrv35_2.dat | 313 -- .../endroid/qr-code/assets/data/qrv35_3.dat | 313 -- .../endroid/qr-code/assets/data/qrv36_0.dat | 321 -- .../endroid/qr-code/assets/data/qrv36_1.dat | 321 -- .../endroid/qr-code/assets/data/qrv36_2.dat | 321 -- .../endroid/qr-code/assets/data/qrv36_3.dat | 321 -- .../endroid/qr-code/assets/data/qrv37_0.dat | 329 -- .../endroid/qr-code/assets/data/qrv37_1.dat | 329 -- .../endroid/qr-code/assets/data/qrv37_2.dat | 329 -- .../endroid/qr-code/assets/data/qrv37_3.dat | 329 -- .../endroid/qr-code/assets/data/qrv38_0.dat | 337 -- .../endroid/qr-code/assets/data/qrv38_1.dat | 337 -- .../endroid/qr-code/assets/data/qrv38_2.dat | 337 -- .../endroid/qr-code/assets/data/qrv38_3.dat | 337 -- .../endroid/qr-code/assets/data/qrv39_0.dat | 345 -- .../endroid/qr-code/assets/data/qrv39_1.dat | 345 -- .../endroid/qr-code/assets/data/qrv39_2.dat | 345 -- .../endroid/qr-code/assets/data/qrv39_3.dat | 345 -- vendor/endroid/qr-code/assets/data/qrv3_0.dat | Bin 1733 -> 0 bytes vendor/endroid/qr-code/assets/data/qrv3_1.dat | Bin 1733 -> 0 bytes vendor/endroid/qr-code/assets/data/qrv3_2.dat | Bin 1734 -> 0 bytes vendor/endroid/qr-code/assets/data/qrv3_3.dat | Bin 1734 -> 0 bytes .../endroid/qr-code/assets/data/qrv40_0.dat | 353 -- .../endroid/qr-code/assets/data/qrv40_1.dat | 353 -- .../endroid/qr-code/assets/data/qrv40_2.dat | 353 -- .../endroid/qr-code/assets/data/qrv40_3.dat | 353 -- vendor/endroid/qr-code/assets/data/qrv4_0.dat | Bin 2454 -> 0 bytes vendor/endroid/qr-code/assets/data/qrv4_1.dat | Bin 2453 -> 0 bytes vendor/endroid/qr-code/assets/data/qrv4_2.dat | Bin 2456 -> 0 bytes vendor/endroid/qr-code/assets/data/qrv4_3.dat | Bin 2454 -> 0 bytes vendor/endroid/qr-code/assets/data/qrv5_0.dat | Bin 3270 -> 0 bytes vendor/endroid/qr-code/assets/data/qrv5_1.dat | Bin 3269 -> 0 bytes vendor/endroid/qr-code/assets/data/qrv5_2.dat | Bin 3272 -> 0 bytes vendor/endroid/qr-code/assets/data/qrv5_3.dat | Bin 3272 -> 0 bytes vendor/endroid/qr-code/assets/data/qrv6_0.dat | Bin 4184 -> 0 bytes vendor/endroid/qr-code/assets/data/qrv6_1.dat | Bin 4182 -> 0 bytes vendor/endroid/qr-code/assets/data/qrv6_2.dat | Bin 4184 -> 0 bytes vendor/endroid/qr-code/assets/data/qrv6_3.dat | Bin 4184 -> 0 bytes vendor/endroid/qr-code/assets/data/qrv7_0.dat | Bin 4739 -> 0 bytes vendor/endroid/qr-code/assets/data/qrv7_1.dat | Bin 4737 -> 0 bytes vendor/endroid/qr-code/assets/data/qrv7_2.dat | Bin 4740 -> 0 bytes vendor/endroid/qr-code/assets/data/qrv7_3.dat | Bin 4741 -> 0 bytes vendor/endroid/qr-code/assets/data/qrv8_0.dat | Bin 5843 -> 0 bytes vendor/endroid/qr-code/assets/data/qrv8_1.dat | Bin 5841 -> 0 bytes vendor/endroid/qr-code/assets/data/qrv8_2.dat | Bin 5845 -> 0 bytes vendor/endroid/qr-code/assets/data/qrv8_3.dat | Bin 5845 -> 0 bytes vendor/endroid/qr-code/assets/data/qrv9_0.dat | Bin 7044 -> 0 bytes vendor/endroid/qr-code/assets/data/qrv9_1.dat | Bin 7041 -> 0 bytes vendor/endroid/qr-code/assets/data/qrv9_2.dat | Bin 7047 -> 0 bytes vendor/endroid/qr-code/assets/data/qrv9_3.dat | Bin 7047 -> 0 bytes vendor/endroid/qr-code/assets/data/qrvfr1.dat | 21 - .../endroid/qr-code/assets/data/qrvfr10.dat | 57 - .../endroid/qr-code/assets/data/qrvfr11.dat | 61 - .../endroid/qr-code/assets/data/qrvfr12.dat | 65 - .../endroid/qr-code/assets/data/qrvfr13.dat | 69 - .../endroid/qr-code/assets/data/qrvfr14.dat | 73 - .../endroid/qr-code/assets/data/qrvfr15.dat | 77 - .../endroid/qr-code/assets/data/qrvfr16.dat | 81 - .../endroid/qr-code/assets/data/qrvfr17.dat | 85 - .../endroid/qr-code/assets/data/qrvfr18.dat | 89 - .../endroid/qr-code/assets/data/qrvfr19.dat | 93 - vendor/endroid/qr-code/assets/data/qrvfr2.dat | 25 - .../endroid/qr-code/assets/data/qrvfr20.dat | 97 - .../endroid/qr-code/assets/data/qrvfr21.dat | 101 - .../endroid/qr-code/assets/data/qrvfr22.dat | 105 - .../endroid/qr-code/assets/data/qrvfr23.dat | 109 - .../endroid/qr-code/assets/data/qrvfr24.dat | 113 - .../endroid/qr-code/assets/data/qrvfr25.dat | 117 - .../endroid/qr-code/assets/data/qrvfr26.dat | 121 - .../endroid/qr-code/assets/data/qrvfr27.dat | 125 - .../endroid/qr-code/assets/data/qrvfr28.dat | 129 - .../endroid/qr-code/assets/data/qrvfr29.dat | 133 - vendor/endroid/qr-code/assets/data/qrvfr3.dat | 29 - .../endroid/qr-code/assets/data/qrvfr30.dat | 137 - .../endroid/qr-code/assets/data/qrvfr31.dat | 141 - .../endroid/qr-code/assets/data/qrvfr32.dat | 145 - .../endroid/qr-code/assets/data/qrvfr33.dat | 149 - .../endroid/qr-code/assets/data/qrvfr34.dat | 153 - .../endroid/qr-code/assets/data/qrvfr35.dat | 157 - .../endroid/qr-code/assets/data/qrvfr36.dat | 161 - .../endroid/qr-code/assets/data/qrvfr37.dat | 165 - .../endroid/qr-code/assets/data/qrvfr38.dat | 169 - .../endroid/qr-code/assets/data/qrvfr39.dat | 173 - vendor/endroid/qr-code/assets/data/qrvfr4.dat | 33 - .../endroid/qr-code/assets/data/qrvfr40.dat | 177 - vendor/endroid/qr-code/assets/data/qrvfr5.dat | 37 - vendor/endroid/qr-code/assets/data/qrvfr6.dat | 41 - vendor/endroid/qr-code/assets/data/qrvfr7.dat | 45 - vendor/endroid/qr-code/assets/data/qrvfr8.dat | 49 - vendor/endroid/qr-code/assets/data/qrvfr9.dat | 53 - vendor/endroid/qr-code/assets/data/rsc10.dat | 11 - vendor/endroid/qr-code/assets/data/rsc13.dat | 14 - vendor/endroid/qr-code/assets/data/rsc15.dat | 17 - vendor/endroid/qr-code/assets/data/rsc16.dat | 17 - vendor/endroid/qr-code/assets/data/rsc17.dat | 18 - vendor/endroid/qr-code/assets/data/rsc18.dat | 19 - vendor/endroid/qr-code/assets/data/rsc20.dat | 21 - vendor/endroid/qr-code/assets/data/rsc22.dat | 23 - vendor/endroid/qr-code/assets/data/rsc24.dat | 25 - vendor/endroid/qr-code/assets/data/rsc26.dat | 27 - vendor/endroid/qr-code/assets/data/rsc28.dat | 29 - vendor/endroid/qr-code/assets/data/rsc30.dat | 31 - vendor/endroid/qr-code/assets/data/rsc32.dat | 33 - vendor/endroid/qr-code/assets/data/rsc34.dat | 36 - vendor/endroid/qr-code/assets/data/rsc36.dat | 73 - vendor/endroid/qr-code/assets/data/rsc40.dat | 41 - vendor/endroid/qr-code/assets/data/rsc42.dat | 43 - vendor/endroid/qr-code/assets/data/rsc44.dat | 45 - vendor/endroid/qr-code/assets/data/rsc46.dat | 47 - vendor/endroid/qr-code/assets/data/rsc48.dat | 49 - vendor/endroid/qr-code/assets/data/rsc50.dat | 51 - vendor/endroid/qr-code/assets/data/rsc52.dat | 106 - vendor/endroid/qr-code/assets/data/rsc54.dat | 55 - vendor/endroid/qr-code/assets/data/rsc56.dat | 57 - vendor/endroid/qr-code/assets/data/rsc58.dat | 59 - vendor/endroid/qr-code/assets/data/rsc60.dat | 61 - vendor/endroid/qr-code/assets/data/rsc62.dat | 63 - vendor/endroid/qr-code/assets/data/rsc64.dat | 66 - vendor/endroid/qr-code/assets/data/rsc66.dat | 68 - vendor/endroid/qr-code/assets/data/rsc68.dat | 69 - vendor/endroid/qr-code/assets/data/rsc7.dat | 8 - .../endroid/qr-code/assets/font/opensans.ttf | Bin 217360 -> 0 bytes vendor/endroid/qr-code/assets/image/b.png | Bin 851 -> 0 bytes vendor/endroid/qr-code/assets/image/d.png | Bin 848 -> 0 bytes vendor/endroid/qr-code/assets/image/logo.png | Bin 7448 -> 0 bytes vendor/endroid/qr-code/assets/image/qrv1.png | Bin 137 -> 0 bytes vendor/endroid/qr-code/assets/image/qrv10.png | Bin 227 -> 0 bytes vendor/endroid/qr-code/assets/image/qrv11.png | Bin 223 -> 0 bytes vendor/endroid/qr-code/assets/image/qrv12.png | Bin 224 -> 0 bytes vendor/endroid/qr-code/assets/image/qrv13.png | Bin 225 -> 0 bytes vendor/endroid/qr-code/assets/image/qrv14.png | Bin 232 -> 0 bytes vendor/endroid/qr-code/assets/image/qrv15.png | Bin 233 -> 0 bytes vendor/endroid/qr-code/assets/image/qrv16.png | Bin 231 -> 0 bytes vendor/endroid/qr-code/assets/image/qrv17.png | Bin 228 -> 0 bytes vendor/endroid/qr-code/assets/image/qrv18.png | Bin 238 -> 0 bytes vendor/endroid/qr-code/assets/image/qrv19.png | Bin 242 -> 0 bytes vendor/endroid/qr-code/assets/image/qrv2.png | Bin 155 -> 0 bytes vendor/endroid/qr-code/assets/image/qrv20.png | Bin 239 -> 0 bytes vendor/endroid/qr-code/assets/image/qrv21.png | Bin 255 -> 0 bytes vendor/endroid/qr-code/assets/image/qrv22.png | Bin 241 -> 0 bytes vendor/endroid/qr-code/assets/image/qrv23.png | Bin 236 -> 0 bytes vendor/endroid/qr-code/assets/image/qrv24.png | Bin 263 -> 0 bytes vendor/endroid/qr-code/assets/image/qrv25.png | Bin 262 -> 0 bytes vendor/endroid/qr-code/assets/image/qrv26.png | Bin 258 -> 0 bytes vendor/endroid/qr-code/assets/image/qrv27.png | Bin 257 -> 0 bytes vendor/endroid/qr-code/assets/image/qrv28.png | Bin 252 -> 0 bytes vendor/endroid/qr-code/assets/image/qrv29.png | Bin 248 -> 0 bytes vendor/endroid/qr-code/assets/image/qrv3.png | Bin 154 -> 0 bytes vendor/endroid/qr-code/assets/image/qrv30.png | Bin 275 -> 0 bytes vendor/endroid/qr-code/assets/image/qrv31.png | Bin 271 -> 0 bytes vendor/endroid/qr-code/assets/image/qrv32.png | Bin 283 -> 0 bytes vendor/endroid/qr-code/assets/image/qrv33.png | Bin 265 -> 0 bytes vendor/endroid/qr-code/assets/image/qrv34.png | Bin 268 -> 0 bytes vendor/endroid/qr-code/assets/image/qrv35.png | Bin 261 -> 0 bytes vendor/endroid/qr-code/assets/image/qrv36.png | Bin 282 -> 0 bytes vendor/endroid/qr-code/assets/image/qrv37.png | Bin 286 -> 0 bytes vendor/endroid/qr-code/assets/image/qrv38.png | Bin 285 -> 0 bytes vendor/endroid/qr-code/assets/image/qrv39.png | Bin 278 -> 0 bytes vendor/endroid/qr-code/assets/image/qrv4.png | Bin 161 -> 0 bytes vendor/endroid/qr-code/assets/image/qrv40.png | Bin 277 -> 0 bytes vendor/endroid/qr-code/assets/image/qrv5.png | Bin 160 -> 0 bytes vendor/endroid/qr-code/assets/image/qrv6.png | Bin 165 -> 0 bytes vendor/endroid/qr-code/assets/image/qrv7.png | Bin 204 -> 0 bytes vendor/endroid/qr-code/assets/image/qrv8.png | Bin 222 -> 0 bytes vendor/endroid/qr-code/assets/image/qrv9.png | Bin 223 -> 0 bytes vendor/endroid/qr-code/composer.json | 45 - vendor/endroid/qr-code/phpunit.xml.dist | 11 - .../Bundle/Controller/QrCodeController.php | 50 - .../DependencyInjection/Configuration.php | 60 - .../EndroidQrCodeExtension.php | 34 - .../src/Bundle/EndroidQrCodeBundle.php | 16 - .../src/Bundle/Resources/config/services.yml | 10 - .../Bundle/Twig/Extension/QrCodeExtension.php | 99 - .../Exceptions/DataDoesntExistsException.php | 14 - .../FreeTypeLibraryMissingException.php | 14 - .../ImageFunctionFailedException.php | 14 - .../ImageFunctionUnknownException.php | 14 - .../Exceptions/ImageSizeTooLargeException.php | 14 - .../Exceptions/ImageTypeInvalidException.php | 14 - .../Exceptions/VersionTooLargeException.php | 14 - .../qr-code/src/Factory/QrCodeFactory.php | 122 - vendor/endroid/qr-code/src/QrCode.php | 1591 --------- .../Controller/QrCodeControllerTest.php | 33 - .../tests/Bundle/EndroidQrCodeBundleTest.php | 20 - .../qr-code/tests/Bundle/app/.gitignore | 2 - .../qr-code/tests/Bundle/app/AppKernel.php | 36 - .../qr-code/tests/Bundle/app/bootstrap.php | 7 - .../tests/Bundle/app/config/config.yml | 6 - .../tests/Bundle/app/config/routing.yml | 4 - vendor/endroid/qr-code/tests/QrCodeTest.php | 122 - vendor/qiniu/php-sdk/.gitignore | 12 - vendor/qiniu/php-sdk/.scrutinizer.yml | 35 - vendor/qiniu/php-sdk/.travis.yml | 23 - vendor/qiniu/php-sdk/CHANGELOG.md | 92 - vendor/qiniu/php-sdk/CONTRIBUTING.md | 30 - vendor/qiniu/php-sdk/LICENSE | 22 - vendor/qiniu/php-sdk/README.md | 75 - vendor/qiniu/php-sdk/autoload.php | 14 - vendor/qiniu/php-sdk/composer.json | 26 - vendor/qiniu/php-sdk/examples/README.md | 10 - .../php-sdk/examples/cdn_get_bandwidth.php | 40 - .../qiniu/php-sdk/examples/cdn_get_flux.php | 34 - .../php-sdk/examples/cdn_get_log_list.php | 29 - .../examples/cdn_refresh_urls_dirs.php | 52 - .../examples/cdn_timestamp_antileech.php | 19 - .../php-sdk/examples/image_url_builder.php | 74 - .../php-sdk/examples/persistent_fop_init.php | 19 - .../examples/persistent_fop_status.php | 12 - vendor/qiniu/php-sdk/examples/pfop_mkzip.php | 43 - vendor/qiniu/php-sdk/examples/pfop_vframe.php | 46 - .../php-sdk/examples/pfop_video_avthumb.php | 47 - .../qiniu/php-sdk/examples/pfop_watermark.php | 52 - vendor/qiniu/php-sdk/examples/php-logo.png | Bin 65062 -> 0 bytes vendor/qiniu/php-sdk/examples/prefop.php | 29 - vendor/qiniu/php-sdk/examples/qetag.php | 11 - .../php-sdk/examples/rs_batch_change_mime.php | 28 - .../php-sdk/examples/rs_batch_change_type.php | 34 - .../qiniu/php-sdk/examples/rs_batch_copy.php | 36 - .../php-sdk/examples/rs_batch_delete.php | 28 - .../examples/rs_batch_delete_after_days.php | 34 - .../qiniu/php-sdk/examples/rs_batch_move.php | 36 - .../qiniu/php-sdk/examples/rs_batch_stat.php | 28 - .../php-sdk/examples/rs_bucket_domains.php | 19 - vendor/qiniu/php-sdk/examples/rs_buckets.php | 19 - .../qiniu/php-sdk/examples/rs_change_mime.php | 20 - .../qiniu/php-sdk/examples/rs_change_type.php | 20 - vendor/qiniu/php-sdk/examples/rs_copy.php | 22 - vendor/qiniu/php-sdk/examples/rs_delete.php | 17 - .../php-sdk/examples/rs_delete_after_days.php | 20 - .../php-sdk/examples/rs_download_urls.php | 17 - vendor/qiniu/php-sdk/examples/rs_fetch.php | 34 - vendor/qiniu/php-sdk/examples/rs_move.php | 22 - vendor/qiniu/php-sdk/examples/rs_prefetch.php | 17 - vendor/qiniu/php-sdk/examples/rs_stat.php | 19 - .../php-sdk/examples/rsf_list_bucket.php | 46 - .../qiniu/php-sdk/examples/rsf_list_files.php | 38 - vendor/qiniu/php-sdk/examples/saveas.php | 28 - .../php-sdk/examples/upload_and_callback.php | 31 - .../php-sdk/examples/upload_and_pfop.php | 38 - .../php-sdk/examples/upload_mgr_init.php | 18 - .../php-sdk/examples/upload_multi_demos.php | 85 - .../php-sdk/examples/upload_simple_file.php | 37 - .../qiniu/php-sdk/examples/upload_tokens.php | 68 - .../examples/upload_verify_callback.php | 32 - vendor/qiniu/php-sdk/phpunit.xml.dist | 19 - vendor/qiniu/php-sdk/src/Qiniu/Auth.php | 187 - .../php-sdk/src/Qiniu/Cdn/CdnManager.php | 190 - vendor/qiniu/php-sdk/src/Qiniu/Config.php | 134 - vendor/qiniu/php-sdk/src/Qiniu/Etag.php | 76 - .../qiniu/php-sdk/src/Qiniu/Http/Client.php | 145 - vendor/qiniu/php-sdk/src/Qiniu/Http/Error.php | 35 - .../qiniu/php-sdk/src/Qiniu/Http/Request.php | 18 - .../qiniu/php-sdk/src/Qiniu/Http/Response.php | 176 - .../src/Qiniu/Processing/ImageUrlBuilder.php | 282 -- .../src/Qiniu/Processing/Operation.php | 60 - .../src/Qiniu/Processing/PersistentFop.php | 94 - .../src/Qiniu/Storage/BucketManager.php | 475 --- .../src/Qiniu/Storage/FormUploader.php | 139 - .../src/Qiniu/Storage/ResumeUploader.php | 169 - .../src/Qiniu/Storage/UploadManager.php | 144 - vendor/qiniu/php-sdk/src/Qiniu/Zone.php | 171 - vendor/qiniu/php-sdk/src/Qiniu/functions.php | 264 -- vendor/qiniu/php-sdk/test-env.sh | 4 - .../php-sdk/tests/Qiniu/Tests/AuthTest.php | 71 - .../php-sdk/tests/Qiniu/Tests/Base64Test.php | 14 - .../php-sdk/tests/Qiniu/Tests/BucketTest.php | 227 -- .../tests/Qiniu/Tests/CdnManagerTest.php | 50 - .../php-sdk/tests/Qiniu/Tests/Crc32Test.php | 21 - .../tests/Qiniu/Tests/DownloadTest.php | 25 - .../php-sdk/tests/Qiniu/Tests/EtagTest.php | 52 - .../php-sdk/tests/Qiniu/Tests/FopTest.php | 37 - .../php-sdk/tests/Qiniu/Tests/FormUpTest.php | 59 - .../php-sdk/tests/Qiniu/Tests/HttpTest.php | 43 - .../tests/Qiniu/Tests/ImageUrlBuilderTest.php | 261 -- .../php-sdk/tests/Qiniu/Tests/PfopTest.php | 66 - .../tests/Qiniu/Tests/ResumeUpTest.php | 60 - .../php-sdk/tests/Qiniu/Tests/ZoneTest.php | 59 - vendor/qiniu/php-sdk/tests/bootstrap.php | 43 - vendor/symfony/options-resolver/.gitignore | 3 - vendor/symfony/options-resolver/CHANGELOG.md | 52 - .../Debug/OptionsResolverIntrospector.php | 102 - .../Exception/AccessException.php | 22 - .../Exception/ExceptionInterface.php | 21 - .../Exception/InvalidArgumentException.php | 21 - .../Exception/InvalidOptionsException.php | 23 - .../Exception/MissingOptionsException.php | 23 - .../Exception/NoConfigurationException.php | 26 - .../Exception/NoSuchOptionException.php | 26 - .../Exception/OptionDefinitionException.php | 21 - .../Exception/UndefinedOptionsException.php | 24 - vendor/symfony/options-resolver/LICENSE | 19 - vendor/symfony/options-resolver/Options.php | 22 - .../options-resolver/OptionsResolver.php | 1081 ------ vendor/symfony/options-resolver/README.md | 15 - .../Debug/OptionsResolverIntrospectorTest.php | 203 -- .../Tests/OptionsResolverTest.php | 1653 --------- vendor/symfony/options-resolver/composer.json | 33 - .../symfony/options-resolver/phpunit.xml.dist | 31 - vendor/topthink/think-captcha/.gitignore | 3 - vendor/topthink/think-captcha/LICENSE | 32 - vendor/topthink/think-captcha/README.md | 33 - .../topthink/think-captcha/assets/bgs/1.jpg | Bin 30428 -> 0 bytes .../topthink/think-captcha/assets/bgs/2.jpg | Bin 29677 -> 0 bytes .../topthink/think-captcha/assets/bgs/3.jpg | Bin 32109 -> 0 bytes .../topthink/think-captcha/assets/bgs/4.jpg | Bin 29081 -> 0 bytes .../topthink/think-captcha/assets/bgs/5.jpg | Bin 27940 -> 0 bytes .../topthink/think-captcha/assets/bgs/6.jpg | Bin 31381 -> 0 bytes .../topthink/think-captcha/assets/bgs/7.jpg | Bin 30234 -> 0 bytes .../topthink/think-captcha/assets/bgs/8.jpg | Bin 30188 -> 0 bytes .../topthink/think-captcha/assets/ttfs/1.ttf | Bin 57520 -> 0 bytes .../topthink/think-captcha/assets/ttfs/2.ttf | Bin 28328 -> 0 bytes .../topthink/think-captcha/assets/ttfs/3.ttf | Bin 39308 -> 0 bytes .../topthink/think-captcha/assets/ttfs/4.ttf | Bin 34852 -> 0 bytes .../topthink/think-captcha/assets/ttfs/5.ttf | Bin 32664 -> 0 bytes .../topthink/think-captcha/assets/ttfs/6.ttf | Bin 28036 -> 0 bytes .../think-captcha/assets/zhttfs/1.ttf | Bin 2183628 -> 0 bytes vendor/topthink/think-captcha/composer.json | 22 - vendor/topthink/think-captcha/src/Captcha.php | 320 -- .../think-captcha/src/CaptchaController.php | 23 - vendor/topthink/think-captcha/src/helper.php | 59 - vendor/topthink/think-installer/.gitignore | 3 - vendor/topthink/think-installer/composer.json | 25 - .../topthink/think-installer/src/Plugin.php | 26 - .../think-installer/src/ThinkExtend.php | 77 - .../think-installer/src/ThinkFramework.php | 59 - .../think-installer/src/ThinkTesting.php | 68 - vendor/zoujingli/ip2region/Ip2Region.php | 361 -- vendor/zoujingli/ip2region/LICENSE.md | 225 -- vendor/zoujingli/ip2region/README.md | 50 - vendor/zoujingli/ip2region/composer.json | 18 - vendor/zoujingli/ip2region/ip2region.db | Bin 2724467 -> 0 bytes vendor/zoujingli/ip2region/test.php | 15 - vendor/zoujingli/wechat-developer/.gitignore | 5 - .../wechat-developer/MIT-LICENSE.txt | 21 - vendor/zoujingli/wechat-developer/README.md | 136 - .../wechat-developer/Test/config.php | 28 - .../Test/pay-download-bill.php | 40 - .../wechat-developer/Test/pay-order-close.php | 37 - .../Test/pay-order-create.php | 45 - .../wechat-developer/Test/pay-order-query.php | 40 - .../Test/pay-refund-create.php | 42 - .../Test/pay-refund-query.php | 42 - .../Test/wechat-jssdk-sign.php | 36 - .../wechat-developer/Test/wechat-menu-get.php | 36 - .../Test/wechat-qrcode-create.php | 40 - .../wechat-developer/Test/wechat-user-get.php | 42 - .../wechat-developer/WeChat/Card.php | 616 ---- .../WeChat/Contracts/BasicPushEvent.php | 228 -- .../WeChat/Contracts/BasicWeChat.php | 205 -- .../WeChat/Contracts/DataArray.php | 124 - .../WeChat/Contracts/DataError.php | 194 - .../WeChat/Contracts/Prpcrypt.php | 189 - .../WeChat/Contracts/Tools.php | 315 -- .../wechat-developer/WeChat/Custom.php | 251 -- .../Exceptions/InvalidArgumentException.php | 40 - .../Exceptions/InvalidDecryptException.php | 40 - .../Exceptions/InvalidResponseException.php | 41 - .../WeChat/Exceptions/LocalCacheException.php | 42 - .../wechat-developer/WeChat/Limit.php | 42 - .../wechat-developer/WeChat/Media.php | 183 - .../wechat-developer/WeChat/Menu.php | 112 - .../wechat-developer/WeChat/Oauth.php | 91 - .../zoujingli/wechat-developer/WeChat/Pay.php | 283 -- .../wechat-developer/WeChat/Product.php | 178 - .../wechat-developer/WeChat/Qrcode.php | 77 - .../wechat-developer/WeChat/Receive.php | 164 - .../wechat-developer/WeChat/Scan.php | 199 -- .../wechat-developer/WeChat/Script.php | 121 - .../wechat-developer/WeChat/Shake.php | 364 -- .../wechat-developer/WeChat/Tags.php | 124 - .../wechat-developer/WeChat/Template.php | 110 - .../wechat-developer/WeChat/User.php | 132 - .../wechat-developer/WeChat/Wifi.php | 285 -- .../zoujingli/wechat-developer/composer.json | 29 - vendor/zoujingli/wechat-developer/include.php | 21 - vendor/zoujingli/weopen-developer/.gitignore | 4 - vendor/zoujingli/weopen-developer/README.md | 124 - .../zoujingli/weopen-developer/Test/open.php | 57 - .../weopen-developer/Test/wechat.sql | 27 - .../weopen-developer/WeOpen/Service.php | 325 -- .../zoujingli/weopen-developer/composer.json | 30 - 857 files changed, 107812 deletions(-) delete mode 100644 thinkphp/.gitignore delete mode 100644 thinkphp/.htaccess delete mode 100644 thinkphp/CONTRIBUTING.md delete mode 100644 thinkphp/LICENSE.txt delete mode 100644 thinkphp/README.md delete mode 100644 thinkphp/base.php delete mode 100644 thinkphp/composer.json delete mode 100644 thinkphp/convention.php delete mode 100644 thinkphp/helper.php delete mode 100644 thinkphp/lang/zh-cn.php delete mode 100644 thinkphp/library/think/App.php delete mode 100644 thinkphp/library/think/Build.php delete mode 100644 thinkphp/library/think/Cache.php delete mode 100644 thinkphp/library/think/Collection.php delete mode 100644 thinkphp/library/think/Config.php delete mode 100644 thinkphp/library/think/Console.php delete mode 100644 thinkphp/library/think/Container.php delete mode 100644 thinkphp/library/think/Controller.php delete mode 100644 thinkphp/library/think/Cookie.php delete mode 100644 thinkphp/library/think/Db.php delete mode 100644 thinkphp/library/think/Debug.php delete mode 100644 thinkphp/library/think/Env.php delete mode 100644 thinkphp/library/think/Error.php delete mode 100644 thinkphp/library/think/Exception.php delete mode 100644 thinkphp/library/think/Facade.php delete mode 100644 thinkphp/library/think/File.php delete mode 100644 thinkphp/library/think/Hook.php delete mode 100644 thinkphp/library/think/Lang.php delete mode 100644 thinkphp/library/think/Loader.php delete mode 100644 thinkphp/library/think/Log.php delete mode 100644 thinkphp/library/think/Middleware.php delete mode 100644 thinkphp/library/think/Model.php delete mode 100644 thinkphp/library/think/Paginator.php delete mode 100644 thinkphp/library/think/Process.php delete mode 100644 thinkphp/library/think/Request.php delete mode 100644 thinkphp/library/think/Response.php delete mode 100644 thinkphp/library/think/Route.php delete mode 100644 thinkphp/library/think/Session.php delete mode 100644 thinkphp/library/think/Template.php delete mode 100644 thinkphp/library/think/Url.php delete mode 100644 thinkphp/library/think/Validate.php delete mode 100644 thinkphp/library/think/View.php delete mode 100644 thinkphp/library/think/cache/Driver.php delete mode 100644 thinkphp/library/think/cache/driver/File.php delete mode 100644 thinkphp/library/think/cache/driver/Lite.php delete mode 100644 thinkphp/library/think/cache/driver/Memcache.php delete mode 100644 thinkphp/library/think/cache/driver/Memcached.php delete mode 100644 thinkphp/library/think/cache/driver/Redis.php delete mode 100644 thinkphp/library/think/cache/driver/Sqlite.php delete mode 100644 thinkphp/library/think/cache/driver/Wincache.php delete mode 100644 thinkphp/library/think/cache/driver/Xcache.php delete mode 100644 thinkphp/library/think/config/driver/Ini.php delete mode 100644 thinkphp/library/think/config/driver/Json.php delete mode 100644 thinkphp/library/think/config/driver/Xml.php delete mode 100644 thinkphp/library/think/console/Command.php delete mode 100644 thinkphp/library/think/console/Input.php delete mode 100644 thinkphp/library/think/console/LICENSE delete mode 100644 thinkphp/library/think/console/Output.php delete mode 100644 thinkphp/library/think/console/bin/README.md delete mode 100644 thinkphp/library/think/console/bin/hiddeninput.exe delete mode 100644 thinkphp/library/think/console/command/Build.php delete mode 100644 thinkphp/library/think/console/command/Clear.php delete mode 100644 thinkphp/library/think/console/command/Help.php delete mode 100644 thinkphp/library/think/console/command/Lists.php delete mode 100644 thinkphp/library/think/console/command/Make.php delete mode 100644 thinkphp/library/think/console/command/RunServer.php delete mode 100644 thinkphp/library/think/console/command/make/Controller.php delete mode 100644 thinkphp/library/think/console/command/make/Middleware.php delete mode 100644 thinkphp/library/think/console/command/make/Model.php delete mode 100644 thinkphp/library/think/console/command/make/stubs/controller.api.stub delete mode 100644 thinkphp/library/think/console/command/make/stubs/controller.plain.stub delete mode 100644 thinkphp/library/think/console/command/make/stubs/controller.stub delete mode 100644 thinkphp/library/think/console/command/make/stubs/middleware.stub delete mode 100644 thinkphp/library/think/console/command/make/stubs/model.stub delete mode 100644 thinkphp/library/think/console/command/optimize/Autoload.php delete mode 100644 thinkphp/library/think/console/command/optimize/Config.php delete mode 100644 thinkphp/library/think/console/command/optimize/Route.php delete mode 100644 thinkphp/library/think/console/command/optimize/Schema.php delete mode 100644 thinkphp/library/think/console/input/Argument.php delete mode 100644 thinkphp/library/think/console/input/Definition.php delete mode 100644 thinkphp/library/think/console/input/Option.php delete mode 100644 thinkphp/library/think/console/output/Ask.php delete mode 100644 thinkphp/library/think/console/output/Descriptor.php delete mode 100644 thinkphp/library/think/console/output/Formatter.php delete mode 100644 thinkphp/library/think/console/output/Question.php delete mode 100644 thinkphp/library/think/console/output/descriptor/Console.php delete mode 100644 thinkphp/library/think/console/output/driver/Buffer.php delete mode 100644 thinkphp/library/think/console/output/driver/Console.php delete mode 100644 thinkphp/library/think/console/output/driver/Nothing.php delete mode 100644 thinkphp/library/think/console/output/formatter/Stack.php delete mode 100644 thinkphp/library/think/console/output/formatter/Style.php delete mode 100644 thinkphp/library/think/console/output/question/Choice.php delete mode 100644 thinkphp/library/think/console/output/question/Confirmation.php delete mode 100644 thinkphp/library/think/db/Builder.php delete mode 100644 thinkphp/library/think/db/Connection.php delete mode 100644 thinkphp/library/think/db/Expression.php delete mode 100644 thinkphp/library/think/db/Query.php delete mode 100644 thinkphp/library/think/db/builder/Mysql.php delete mode 100644 thinkphp/library/think/db/builder/Pgsql.php delete mode 100644 thinkphp/library/think/db/builder/Sqlite.php delete mode 100644 thinkphp/library/think/db/builder/Sqlsrv.php delete mode 100644 thinkphp/library/think/db/connector/Mysql.php delete mode 100644 thinkphp/library/think/db/connector/Pgsql.php delete mode 100644 thinkphp/library/think/db/connector/Sqlite.php delete mode 100644 thinkphp/library/think/db/connector/Sqlsrv.php delete mode 100644 thinkphp/library/think/db/connector/pgsql.sql delete mode 100644 thinkphp/library/think/db/exception/BindParamException.php delete mode 100644 thinkphp/library/think/db/exception/DataNotFoundException.php delete mode 100644 thinkphp/library/think/db/exception/ModelNotFoundException.php delete mode 100644 thinkphp/library/think/debug/Console.php delete mode 100644 thinkphp/library/think/debug/Html.php delete mode 100644 thinkphp/library/think/exception/ClassNotFoundException.php delete mode 100644 thinkphp/library/think/exception/DbException.php delete mode 100644 thinkphp/library/think/exception/ErrorException.php delete mode 100644 thinkphp/library/think/exception/Handle.php delete mode 100644 thinkphp/library/think/exception/HttpException.php delete mode 100644 thinkphp/library/think/exception/HttpResponseException.php delete mode 100644 thinkphp/library/think/exception/PDOException.php delete mode 100644 thinkphp/library/think/exception/RouteNotFoundException.php delete mode 100644 thinkphp/library/think/exception/TemplateNotFoundException.php delete mode 100644 thinkphp/library/think/exception/ThrowableError.php delete mode 100644 thinkphp/library/think/exception/ValidateException.php delete mode 100644 thinkphp/library/think/facade/App.php delete mode 100644 thinkphp/library/think/facade/Build.php delete mode 100644 thinkphp/library/think/facade/Cache.php delete mode 100644 thinkphp/library/think/facade/Config.php delete mode 100644 thinkphp/library/think/facade/Cookie.php delete mode 100644 thinkphp/library/think/facade/Debug.php delete mode 100644 thinkphp/library/think/facade/Env.php delete mode 100644 thinkphp/library/think/facade/Hook.php delete mode 100644 thinkphp/library/think/facade/Lang.php delete mode 100644 thinkphp/library/think/facade/Log.php delete mode 100644 thinkphp/library/think/facade/Middleware.php delete mode 100644 thinkphp/library/think/facade/Request.php delete mode 100644 thinkphp/library/think/facade/Response.php delete mode 100644 thinkphp/library/think/facade/Route.php delete mode 100644 thinkphp/library/think/facade/Session.php delete mode 100644 thinkphp/library/think/facade/Url.php delete mode 100644 thinkphp/library/think/facade/Validate.php delete mode 100644 thinkphp/library/think/facade/View.php delete mode 100644 thinkphp/library/think/log/driver/File.php delete mode 100644 thinkphp/library/think/log/driver/Socket.php delete mode 100644 thinkphp/library/think/log/driver/Test.php delete mode 100644 thinkphp/library/think/model/Collection.php delete mode 100644 thinkphp/library/think/model/Pivot.php delete mode 100644 thinkphp/library/think/model/Relation.php delete mode 100644 thinkphp/library/think/model/concern/Attribute.php delete mode 100644 thinkphp/library/think/model/concern/Conversion.php delete mode 100644 thinkphp/library/think/model/concern/ModelEvent.php delete mode 100644 thinkphp/library/think/model/concern/RelationShip.php delete mode 100644 thinkphp/library/think/model/concern/SoftDelete.php delete mode 100644 thinkphp/library/think/model/concern/TimeStamp.php delete mode 100644 thinkphp/library/think/model/relation/BelongsTo.php delete mode 100644 thinkphp/library/think/model/relation/BelongsToMany.php delete mode 100644 thinkphp/library/think/model/relation/HasMany.php delete mode 100644 thinkphp/library/think/model/relation/HasManyThrough.php delete mode 100644 thinkphp/library/think/model/relation/HasOne.php delete mode 100644 thinkphp/library/think/model/relation/MorphMany.php delete mode 100644 thinkphp/library/think/model/relation/MorphOne.php delete mode 100644 thinkphp/library/think/model/relation/MorphTo.php delete mode 100644 thinkphp/library/think/model/relation/OneToOne.php delete mode 100644 thinkphp/library/think/paginator/Collection.php delete mode 100644 thinkphp/library/think/paginator/driver/Bootstrap.php delete mode 100644 thinkphp/library/think/process/Builder.php delete mode 100644 thinkphp/library/think/process/Utils.php delete mode 100644 thinkphp/library/think/process/exception/Faild.php delete mode 100644 thinkphp/library/think/process/exception/Failed.php delete mode 100644 thinkphp/library/think/process/exception/Timeout.php delete mode 100644 thinkphp/library/think/process/pipes/Pipes.php delete mode 100644 thinkphp/library/think/process/pipes/Unix.php delete mode 100644 thinkphp/library/think/process/pipes/Windows.php delete mode 100644 thinkphp/library/think/response/Json.php delete mode 100644 thinkphp/library/think/response/Jsonp.php delete mode 100644 thinkphp/library/think/response/Jump.php delete mode 100644 thinkphp/library/think/response/Redirect.php delete mode 100644 thinkphp/library/think/response/View.php delete mode 100644 thinkphp/library/think/response/Xml.php delete mode 100644 thinkphp/library/think/route/AliasRule.php delete mode 100644 thinkphp/library/think/route/Dispatch.php delete mode 100644 thinkphp/library/think/route/Domain.php delete mode 100644 thinkphp/library/think/route/Resource.php delete mode 100644 thinkphp/library/think/route/Rule.php delete mode 100644 thinkphp/library/think/route/RuleGroup.php delete mode 100644 thinkphp/library/think/route/RuleItem.php delete mode 100644 thinkphp/library/think/route/RuleName.php delete mode 100644 thinkphp/library/think/route/dispatch/Callback.php delete mode 100644 thinkphp/library/think/route/dispatch/Controller.php delete mode 100644 thinkphp/library/think/route/dispatch/Module.php delete mode 100644 thinkphp/library/think/route/dispatch/Redirect.php delete mode 100644 thinkphp/library/think/route/dispatch/Response.php delete mode 100644 thinkphp/library/think/route/dispatch/Url.php delete mode 100644 thinkphp/library/think/route/dispatch/View.php delete mode 100644 thinkphp/library/think/session/driver/Memcache.php delete mode 100644 thinkphp/library/think/session/driver/Memcached.php delete mode 100644 thinkphp/library/think/session/driver/Redis.php delete mode 100644 thinkphp/library/think/template/TagLib.php delete mode 100644 thinkphp/library/think/template/driver/File.php delete mode 100644 thinkphp/library/think/template/taglib/Cx.php delete mode 100644 thinkphp/library/think/validate/ValidateRule.php delete mode 100644 thinkphp/library/think/view/driver/Php.php delete mode 100644 thinkphp/library/think/view/driver/Think.php delete mode 100644 thinkphp/library/traits/controller/Jump.php delete mode 100644 thinkphp/logo.png delete mode 100644 thinkphp/phpunit.xml.dist delete mode 100644 thinkphp/tpl/default_index.tpl delete mode 100644 thinkphp/tpl/dispatch_jump.tpl delete mode 100644 thinkphp/tpl/page_trace.tpl delete mode 100644 thinkphp/tpl/think_exception.tpl delete mode 100644 vendor/aliyuncs/oss-sdk-php/.coveralls.yml delete mode 100644 vendor/aliyuncs/oss-sdk-php/.gitignore delete mode 100644 vendor/aliyuncs/oss-sdk-php/.travis.yml delete mode 100644 vendor/aliyuncs/oss-sdk-php/CHANGELOG.md delete mode 100644 vendor/aliyuncs/oss-sdk-php/LICENSE.md delete mode 100644 vendor/aliyuncs/oss-sdk-php/README-CN.md delete mode 100644 vendor/aliyuncs/oss-sdk-php/README.md delete mode 100644 vendor/aliyuncs/oss-sdk-php/autoload.php delete mode 100755 vendor/aliyuncs/oss-sdk-php/build-phar.sh delete mode 100644 vendor/aliyuncs/oss-sdk-php/composer.json delete mode 100644 vendor/aliyuncs/oss-sdk-php/example.jpg delete mode 100644 vendor/aliyuncs/oss-sdk-php/index.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/phpunit.xml delete mode 100644 vendor/aliyuncs/oss-sdk-php/samples/Bucket.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/samples/BucketCors.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/samples/BucketLifecycle.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/samples/BucketLogging.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/samples/BucketReferer.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/samples/BucketWebsite.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/samples/Callback.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/samples/Common.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/samples/Config.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/samples/Image.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/samples/LiveChannel.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/samples/MultipartUpload.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/samples/Object.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/samples/RunAll.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/samples/Signature.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/src/OSS/Core/MimeTypes.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/src/OSS/Core/OssException.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/src/OSS/Core/OssUtil.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/src/OSS/Http/LICENSE delete mode 100644 vendor/aliyuncs/oss-sdk-php/src/OSS/Http/RequestCore.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/src/OSS/Http/RequestCore_Exception.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/src/OSS/Http/ResponseCore.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/src/OSS/Model/BucketInfo.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/src/OSS/Model/BucketListInfo.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/src/OSS/Model/CnameConfig.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/src/OSS/Model/CorsConfig.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/src/OSS/Model/CorsRule.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/src/OSS/Model/GetLiveChannelHistory.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/src/OSS/Model/GetLiveChannelInfo.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/src/OSS/Model/GetLiveChannelStatus.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/src/OSS/Model/LifecycleAction.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/src/OSS/Model/LifecycleConfig.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/src/OSS/Model/LifecycleRule.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/src/OSS/Model/ListMultipartUploadInfo.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/src/OSS/Model/ListPartsInfo.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/src/OSS/Model/LiveChannelConfig.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/src/OSS/Model/LiveChannelHistory.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/src/OSS/Model/LiveChannelInfo.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/src/OSS/Model/LiveChannelListInfo.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/src/OSS/Model/LoggingConfig.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/src/OSS/Model/ObjectInfo.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/src/OSS/Model/ObjectListInfo.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/src/OSS/Model/PartInfo.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/src/OSS/Model/PrefixInfo.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/src/OSS/Model/RefererConfig.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/src/OSS/Model/StorageCapacityConfig.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/src/OSS/Model/UploadInfo.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/src/OSS/Model/WebsiteConfig.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/src/OSS/Model/XmlConfig.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/src/OSS/OssClient.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/src/OSS/Result/AclResult.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/src/OSS/Result/AppendResult.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/src/OSS/Result/BodyResult.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/src/OSS/Result/CallbackResult.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/src/OSS/Result/CopyObjectResult.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/src/OSS/Result/DeleteObjectsResult.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/src/OSS/Result/ExistResult.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/src/OSS/Result/GetCnameResult.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/src/OSS/Result/GetCorsResult.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/src/OSS/Result/GetLifecycleResult.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/src/OSS/Result/GetLiveChannelHistoryResult.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/src/OSS/Result/GetLiveChannelInfoResult.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/src/OSS/Result/GetLiveChannelStatusResult.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/src/OSS/Result/GetLocationResult.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/src/OSS/Result/GetLoggingResult.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/src/OSS/Result/GetRefererResult.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/src/OSS/Result/GetStorageCapacityResult.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/src/OSS/Result/GetWebsiteResult.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/src/OSS/Result/HeaderResult.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/src/OSS/Result/InitiateMultipartUploadResult.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/src/OSS/Result/ListBucketsResult.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/src/OSS/Result/ListLiveChannelResult.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/src/OSS/Result/ListMultipartUploadResult.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/src/OSS/Result/ListObjectsResult.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/src/OSS/Result/ListPartsResult.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/src/OSS/Result/PutLiveChannelResult.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/src/OSS/Result/PutSetDeleteResult.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/src/OSS/Result/Result.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/src/OSS/Result/SymlinkResult.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/src/OSS/Result/UploadPartResult.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/AclResultTest.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/BodyResultTest.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/BucketCnameTest.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/BucketInfoTest.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/BucketLiveChannelTest.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/CallbackTest.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/CnameConfigTest.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/Common.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/ContentTypeTest.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/CopyObjectResult.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/CorsConfigTest.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/ExistResultTest.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/GetCorsResultTest.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/GetLifecycleResultTest.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/GetLoggingResultTest.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/GetRefererResultTest.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/GetWebsiteResultTest.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/HeaderResultTest.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/HttpTest.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/InitiateMultipartUploadResultTest.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/LifecycleConfigTest.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/ListBucketsResultTest.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/ListMultipartUploadResultTest.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/ListObjectsResultTest.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/ListPartsResultTest.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/LiveChannelXmlTest.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/LoggingConfigTest.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/MimeTypesTest.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/ObjectAclTest.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/OssClientBucketCorsTest.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/OssClientBucketLifecycleTest.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/OssClientBucketLoggingTest.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/OssClientBucketRefererTest.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/OssClientBucketStorageCapacityTest.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/OssClientBucketTest.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/OssClientBucketWebsiteTest.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/OssClientImageTest.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/OssClientMultipartUploadTest.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/OssClientObjectTest.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/OssClientRestoreObjectTest.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/OssClientSignatureTest.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/OssClientTest.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/OssExceptionTest.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/OssUtilTest.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/PutSetDeleteResultTest.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/RefererConfigTest.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/StorageCapacityTest.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/SymlinkTest.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/TestOssClientBase.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/UploadPartResultTest.php delete mode 100644 vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/WebsiteConfigTest.php delete mode 100644 vendor/autoload.php delete mode 100644 vendor/composer/ClassLoader.php delete mode 100644 vendor/composer/LICENSE delete mode 100644 vendor/composer/autoload_classmap.php delete mode 100644 vendor/composer/autoload_files.php delete mode 100644 vendor/composer/autoload_namespaces.php delete mode 100644 vendor/composer/autoload_psr4.php delete mode 100644 vendor/composer/autoload_real.php delete mode 100644 vendor/composer/autoload_static.php delete mode 100644 vendor/composer/installed.json delete mode 100644 vendor/endroid/qr-code/.gitignore delete mode 100644 vendor/endroid/qr-code/.travis.yml delete mode 100644 vendor/endroid/qr-code/LICENSE delete mode 100644 vendor/endroid/qr-code/README.md delete mode 100755 vendor/endroid/qr-code/assets/data/qrv10_0.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv10_1.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv10_2.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv10_3.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv11_0.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv11_1.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv11_2.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv11_3.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv12_0.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv12_1.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv12_2.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv12_3.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv13_0.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv13_1.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv13_2.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv13_3.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv14_0.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv14_1.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv14_2.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv14_3.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv15_0.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv15_1.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv15_2.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv15_3.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv16_0.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv16_1.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv16_2.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv16_3.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv17_0.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv17_1.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv17_2.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv17_3.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv18_0.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv18_1.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv18_2.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv18_3.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv19_0.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv19_1.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv19_2.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv19_3.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv1_0.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv1_1.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv1_2.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv1_3.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv20_0.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv20_1.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv20_2.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv20_3.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv21_0.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv21_1.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv21_2.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv21_3.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv22_0.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv22_1.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv22_2.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv22_3.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv23_0.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv23_1.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv23_2.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv23_3.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv24_0.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv24_1.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv24_2.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv24_3.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv25_0.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv25_1.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv25_2.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv25_3.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv26_0.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv26_1.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv26_2.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv26_3.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv27_0.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv27_1.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv27_2.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv27_3.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv28_0.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv28_1.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv28_2.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv28_3.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv29_0.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv29_1.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv29_2.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv29_3.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv2_0.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv2_1.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv2_2.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv2_3.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv30_0.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv30_1.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv30_2.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv30_3.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv31_0.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv31_1.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv31_2.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv31_3.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv32_0.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv32_1.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv32_2.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv32_3.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv33_0.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv33_1.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv33_2.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv33_3.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv34_0.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv34_1.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv34_2.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv34_3.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv35_0.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv35_1.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv35_2.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv35_3.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv36_0.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv36_1.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv36_2.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv36_3.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv37_0.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv37_1.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv37_2.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv37_3.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv38_0.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv38_1.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv38_2.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv38_3.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv39_0.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv39_1.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv39_2.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv39_3.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv3_0.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv3_1.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv3_2.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv3_3.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv40_0.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv40_1.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv40_2.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv40_3.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv4_0.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv4_1.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv4_2.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv4_3.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv5_0.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv5_1.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv5_2.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv5_3.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv6_0.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv6_1.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv6_2.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv6_3.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv7_0.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv7_1.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv7_2.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv7_3.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv8_0.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv8_1.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv8_2.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv8_3.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv9_0.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv9_1.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv9_2.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrv9_3.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrvfr1.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrvfr10.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrvfr11.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrvfr12.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrvfr13.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrvfr14.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrvfr15.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrvfr16.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrvfr17.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrvfr18.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrvfr19.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrvfr2.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrvfr20.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrvfr21.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrvfr22.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrvfr23.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrvfr24.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrvfr25.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrvfr26.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrvfr27.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrvfr28.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrvfr29.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrvfr3.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrvfr30.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrvfr31.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrvfr32.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrvfr33.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrvfr34.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrvfr35.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrvfr36.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrvfr37.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrvfr38.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrvfr39.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrvfr4.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrvfr40.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrvfr5.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrvfr6.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrvfr7.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrvfr8.dat delete mode 100755 vendor/endroid/qr-code/assets/data/qrvfr9.dat delete mode 100755 vendor/endroid/qr-code/assets/data/rsc10.dat delete mode 100755 vendor/endroid/qr-code/assets/data/rsc13.dat delete mode 100755 vendor/endroid/qr-code/assets/data/rsc15.dat delete mode 100755 vendor/endroid/qr-code/assets/data/rsc16.dat delete mode 100755 vendor/endroid/qr-code/assets/data/rsc17.dat delete mode 100755 vendor/endroid/qr-code/assets/data/rsc18.dat delete mode 100755 vendor/endroid/qr-code/assets/data/rsc20.dat delete mode 100755 vendor/endroid/qr-code/assets/data/rsc22.dat delete mode 100755 vendor/endroid/qr-code/assets/data/rsc24.dat delete mode 100755 vendor/endroid/qr-code/assets/data/rsc26.dat delete mode 100755 vendor/endroid/qr-code/assets/data/rsc28.dat delete mode 100755 vendor/endroid/qr-code/assets/data/rsc30.dat delete mode 100755 vendor/endroid/qr-code/assets/data/rsc32.dat delete mode 100755 vendor/endroid/qr-code/assets/data/rsc34.dat delete mode 100755 vendor/endroid/qr-code/assets/data/rsc36.dat delete mode 100755 vendor/endroid/qr-code/assets/data/rsc40.dat delete mode 100755 vendor/endroid/qr-code/assets/data/rsc42.dat delete mode 100755 vendor/endroid/qr-code/assets/data/rsc44.dat delete mode 100755 vendor/endroid/qr-code/assets/data/rsc46.dat delete mode 100755 vendor/endroid/qr-code/assets/data/rsc48.dat delete mode 100755 vendor/endroid/qr-code/assets/data/rsc50.dat delete mode 100755 vendor/endroid/qr-code/assets/data/rsc52.dat delete mode 100755 vendor/endroid/qr-code/assets/data/rsc54.dat delete mode 100755 vendor/endroid/qr-code/assets/data/rsc56.dat delete mode 100755 vendor/endroid/qr-code/assets/data/rsc58.dat delete mode 100755 vendor/endroid/qr-code/assets/data/rsc60.dat delete mode 100755 vendor/endroid/qr-code/assets/data/rsc62.dat delete mode 100755 vendor/endroid/qr-code/assets/data/rsc64.dat delete mode 100755 vendor/endroid/qr-code/assets/data/rsc66.dat delete mode 100755 vendor/endroid/qr-code/assets/data/rsc68.dat delete mode 100755 vendor/endroid/qr-code/assets/data/rsc7.dat delete mode 100755 vendor/endroid/qr-code/assets/font/opensans.ttf delete mode 100755 vendor/endroid/qr-code/assets/image/b.png delete mode 100755 vendor/endroid/qr-code/assets/image/d.png delete mode 100755 vendor/endroid/qr-code/assets/image/logo.png delete mode 100755 vendor/endroid/qr-code/assets/image/qrv1.png delete mode 100755 vendor/endroid/qr-code/assets/image/qrv10.png delete mode 100755 vendor/endroid/qr-code/assets/image/qrv11.png delete mode 100755 vendor/endroid/qr-code/assets/image/qrv12.png delete mode 100755 vendor/endroid/qr-code/assets/image/qrv13.png delete mode 100755 vendor/endroid/qr-code/assets/image/qrv14.png delete mode 100755 vendor/endroid/qr-code/assets/image/qrv15.png delete mode 100755 vendor/endroid/qr-code/assets/image/qrv16.png delete mode 100755 vendor/endroid/qr-code/assets/image/qrv17.png delete mode 100755 vendor/endroid/qr-code/assets/image/qrv18.png delete mode 100755 vendor/endroid/qr-code/assets/image/qrv19.png delete mode 100755 vendor/endroid/qr-code/assets/image/qrv2.png delete mode 100755 vendor/endroid/qr-code/assets/image/qrv20.png delete mode 100755 vendor/endroid/qr-code/assets/image/qrv21.png delete mode 100755 vendor/endroid/qr-code/assets/image/qrv22.png delete mode 100755 vendor/endroid/qr-code/assets/image/qrv23.png delete mode 100755 vendor/endroid/qr-code/assets/image/qrv24.png delete mode 100755 vendor/endroid/qr-code/assets/image/qrv25.png delete mode 100755 vendor/endroid/qr-code/assets/image/qrv26.png delete mode 100755 vendor/endroid/qr-code/assets/image/qrv27.png delete mode 100755 vendor/endroid/qr-code/assets/image/qrv28.png delete mode 100755 vendor/endroid/qr-code/assets/image/qrv29.png delete mode 100755 vendor/endroid/qr-code/assets/image/qrv3.png delete mode 100755 vendor/endroid/qr-code/assets/image/qrv30.png delete mode 100755 vendor/endroid/qr-code/assets/image/qrv31.png delete mode 100755 vendor/endroid/qr-code/assets/image/qrv32.png delete mode 100755 vendor/endroid/qr-code/assets/image/qrv33.png delete mode 100755 vendor/endroid/qr-code/assets/image/qrv34.png delete mode 100755 vendor/endroid/qr-code/assets/image/qrv35.png delete mode 100755 vendor/endroid/qr-code/assets/image/qrv36.png delete mode 100755 vendor/endroid/qr-code/assets/image/qrv37.png delete mode 100755 vendor/endroid/qr-code/assets/image/qrv38.png delete mode 100755 vendor/endroid/qr-code/assets/image/qrv39.png delete mode 100755 vendor/endroid/qr-code/assets/image/qrv4.png delete mode 100755 vendor/endroid/qr-code/assets/image/qrv40.png delete mode 100755 vendor/endroid/qr-code/assets/image/qrv5.png delete mode 100755 vendor/endroid/qr-code/assets/image/qrv6.png delete mode 100755 vendor/endroid/qr-code/assets/image/qrv7.png delete mode 100755 vendor/endroid/qr-code/assets/image/qrv8.png delete mode 100755 vendor/endroid/qr-code/assets/image/qrv9.png delete mode 100755 vendor/endroid/qr-code/composer.json delete mode 100644 vendor/endroid/qr-code/phpunit.xml.dist delete mode 100755 vendor/endroid/qr-code/src/Bundle/Controller/QrCodeController.php delete mode 100755 vendor/endroid/qr-code/src/Bundle/DependencyInjection/Configuration.php delete mode 100644 vendor/endroid/qr-code/src/Bundle/DependencyInjection/EndroidQrCodeExtension.php delete mode 100644 vendor/endroid/qr-code/src/Bundle/EndroidQrCodeBundle.php delete mode 100755 vendor/endroid/qr-code/src/Bundle/Resources/config/services.yml delete mode 100755 vendor/endroid/qr-code/src/Bundle/Twig/Extension/QrCodeExtension.php delete mode 100755 vendor/endroid/qr-code/src/Exceptions/DataDoesntExistsException.php delete mode 100755 vendor/endroid/qr-code/src/Exceptions/FreeTypeLibraryMissingException.php delete mode 100755 vendor/endroid/qr-code/src/Exceptions/ImageFunctionFailedException.php delete mode 100755 vendor/endroid/qr-code/src/Exceptions/ImageFunctionUnknownException.php delete mode 100755 vendor/endroid/qr-code/src/Exceptions/ImageSizeTooLargeException.php delete mode 100755 vendor/endroid/qr-code/src/Exceptions/ImageTypeInvalidException.php delete mode 100755 vendor/endroid/qr-code/src/Exceptions/VersionTooLargeException.php delete mode 100644 vendor/endroid/qr-code/src/Factory/QrCodeFactory.php delete mode 100755 vendor/endroid/qr-code/src/QrCode.php delete mode 100644 vendor/endroid/qr-code/tests/Bundle/Controller/QrCodeControllerTest.php delete mode 100644 vendor/endroid/qr-code/tests/Bundle/EndroidQrCodeBundleTest.php delete mode 100644 vendor/endroid/qr-code/tests/Bundle/app/.gitignore delete mode 100644 vendor/endroid/qr-code/tests/Bundle/app/AppKernel.php delete mode 100644 vendor/endroid/qr-code/tests/Bundle/app/bootstrap.php delete mode 100644 vendor/endroid/qr-code/tests/Bundle/app/config/config.yml delete mode 100644 vendor/endroid/qr-code/tests/Bundle/app/config/routing.yml delete mode 100755 vendor/endroid/qr-code/tests/QrCodeTest.php delete mode 100644 vendor/qiniu/php-sdk/.gitignore delete mode 100644 vendor/qiniu/php-sdk/.scrutinizer.yml delete mode 100644 vendor/qiniu/php-sdk/.travis.yml delete mode 100644 vendor/qiniu/php-sdk/CHANGELOG.md delete mode 100644 vendor/qiniu/php-sdk/CONTRIBUTING.md delete mode 100644 vendor/qiniu/php-sdk/LICENSE delete mode 100644 vendor/qiniu/php-sdk/README.md delete mode 100644 vendor/qiniu/php-sdk/autoload.php delete mode 100644 vendor/qiniu/php-sdk/composer.json delete mode 100644 vendor/qiniu/php-sdk/examples/README.md delete mode 100644 vendor/qiniu/php-sdk/examples/cdn_get_bandwidth.php delete mode 100644 vendor/qiniu/php-sdk/examples/cdn_get_flux.php delete mode 100644 vendor/qiniu/php-sdk/examples/cdn_get_log_list.php delete mode 100644 vendor/qiniu/php-sdk/examples/cdn_refresh_urls_dirs.php delete mode 100644 vendor/qiniu/php-sdk/examples/cdn_timestamp_antileech.php delete mode 100644 vendor/qiniu/php-sdk/examples/image_url_builder.php delete mode 100644 vendor/qiniu/php-sdk/examples/persistent_fop_init.php delete mode 100644 vendor/qiniu/php-sdk/examples/persistent_fop_status.php delete mode 100644 vendor/qiniu/php-sdk/examples/pfop_mkzip.php delete mode 100644 vendor/qiniu/php-sdk/examples/pfop_vframe.php delete mode 100644 vendor/qiniu/php-sdk/examples/pfop_video_avthumb.php delete mode 100644 vendor/qiniu/php-sdk/examples/pfop_watermark.php delete mode 100644 vendor/qiniu/php-sdk/examples/php-logo.png delete mode 100644 vendor/qiniu/php-sdk/examples/prefop.php delete mode 100644 vendor/qiniu/php-sdk/examples/qetag.php delete mode 100644 vendor/qiniu/php-sdk/examples/rs_batch_change_mime.php delete mode 100644 vendor/qiniu/php-sdk/examples/rs_batch_change_type.php delete mode 100644 vendor/qiniu/php-sdk/examples/rs_batch_copy.php delete mode 100644 vendor/qiniu/php-sdk/examples/rs_batch_delete.php delete mode 100644 vendor/qiniu/php-sdk/examples/rs_batch_delete_after_days.php delete mode 100644 vendor/qiniu/php-sdk/examples/rs_batch_move.php delete mode 100644 vendor/qiniu/php-sdk/examples/rs_batch_stat.php delete mode 100644 vendor/qiniu/php-sdk/examples/rs_bucket_domains.php delete mode 100644 vendor/qiniu/php-sdk/examples/rs_buckets.php delete mode 100644 vendor/qiniu/php-sdk/examples/rs_change_mime.php delete mode 100644 vendor/qiniu/php-sdk/examples/rs_change_type.php delete mode 100644 vendor/qiniu/php-sdk/examples/rs_copy.php delete mode 100644 vendor/qiniu/php-sdk/examples/rs_delete.php delete mode 100644 vendor/qiniu/php-sdk/examples/rs_delete_after_days.php delete mode 100644 vendor/qiniu/php-sdk/examples/rs_download_urls.php delete mode 100644 vendor/qiniu/php-sdk/examples/rs_fetch.php delete mode 100644 vendor/qiniu/php-sdk/examples/rs_move.php delete mode 100644 vendor/qiniu/php-sdk/examples/rs_prefetch.php delete mode 100644 vendor/qiniu/php-sdk/examples/rs_stat.php delete mode 100644 vendor/qiniu/php-sdk/examples/rsf_list_bucket.php delete mode 100644 vendor/qiniu/php-sdk/examples/rsf_list_files.php delete mode 100644 vendor/qiniu/php-sdk/examples/saveas.php delete mode 100644 vendor/qiniu/php-sdk/examples/upload_and_callback.php delete mode 100644 vendor/qiniu/php-sdk/examples/upload_and_pfop.php delete mode 100644 vendor/qiniu/php-sdk/examples/upload_mgr_init.php delete mode 100644 vendor/qiniu/php-sdk/examples/upload_multi_demos.php delete mode 100644 vendor/qiniu/php-sdk/examples/upload_simple_file.php delete mode 100644 vendor/qiniu/php-sdk/examples/upload_tokens.php delete mode 100644 vendor/qiniu/php-sdk/examples/upload_verify_callback.php delete mode 100644 vendor/qiniu/php-sdk/phpunit.xml.dist delete mode 100644 vendor/qiniu/php-sdk/src/Qiniu/Auth.php delete mode 100644 vendor/qiniu/php-sdk/src/Qiniu/Cdn/CdnManager.php delete mode 100644 vendor/qiniu/php-sdk/src/Qiniu/Config.php delete mode 100644 vendor/qiniu/php-sdk/src/Qiniu/Etag.php delete mode 100644 vendor/qiniu/php-sdk/src/Qiniu/Http/Client.php delete mode 100644 vendor/qiniu/php-sdk/src/Qiniu/Http/Error.php delete mode 100644 vendor/qiniu/php-sdk/src/Qiniu/Http/Request.php delete mode 100644 vendor/qiniu/php-sdk/src/Qiniu/Http/Response.php delete mode 100644 vendor/qiniu/php-sdk/src/Qiniu/Processing/ImageUrlBuilder.php delete mode 100644 vendor/qiniu/php-sdk/src/Qiniu/Processing/Operation.php delete mode 100644 vendor/qiniu/php-sdk/src/Qiniu/Processing/PersistentFop.php delete mode 100644 vendor/qiniu/php-sdk/src/Qiniu/Storage/BucketManager.php delete mode 100644 vendor/qiniu/php-sdk/src/Qiniu/Storage/FormUploader.php delete mode 100644 vendor/qiniu/php-sdk/src/Qiniu/Storage/ResumeUploader.php delete mode 100644 vendor/qiniu/php-sdk/src/Qiniu/Storage/UploadManager.php delete mode 100644 vendor/qiniu/php-sdk/src/Qiniu/Zone.php delete mode 100644 vendor/qiniu/php-sdk/src/Qiniu/functions.php delete mode 100755 vendor/qiniu/php-sdk/test-env.sh delete mode 100644 vendor/qiniu/php-sdk/tests/Qiniu/Tests/AuthTest.php delete mode 100644 vendor/qiniu/php-sdk/tests/Qiniu/Tests/Base64Test.php delete mode 100644 vendor/qiniu/php-sdk/tests/Qiniu/Tests/BucketTest.php delete mode 100644 vendor/qiniu/php-sdk/tests/Qiniu/Tests/CdnManagerTest.php delete mode 100644 vendor/qiniu/php-sdk/tests/Qiniu/Tests/Crc32Test.php delete mode 100644 vendor/qiniu/php-sdk/tests/Qiniu/Tests/DownloadTest.php delete mode 100644 vendor/qiniu/php-sdk/tests/Qiniu/Tests/EtagTest.php delete mode 100644 vendor/qiniu/php-sdk/tests/Qiniu/Tests/FopTest.php delete mode 100644 vendor/qiniu/php-sdk/tests/Qiniu/Tests/FormUpTest.php delete mode 100644 vendor/qiniu/php-sdk/tests/Qiniu/Tests/HttpTest.php delete mode 100644 vendor/qiniu/php-sdk/tests/Qiniu/Tests/ImageUrlBuilderTest.php delete mode 100644 vendor/qiniu/php-sdk/tests/Qiniu/Tests/PfopTest.php delete mode 100644 vendor/qiniu/php-sdk/tests/Qiniu/Tests/ResumeUpTest.php delete mode 100644 vendor/qiniu/php-sdk/tests/Qiniu/Tests/ZoneTest.php delete mode 100644 vendor/qiniu/php-sdk/tests/bootstrap.php delete mode 100644 vendor/symfony/options-resolver/.gitignore delete mode 100644 vendor/symfony/options-resolver/CHANGELOG.md delete mode 100644 vendor/symfony/options-resolver/Debug/OptionsResolverIntrospector.php delete mode 100644 vendor/symfony/options-resolver/Exception/AccessException.php delete mode 100644 vendor/symfony/options-resolver/Exception/ExceptionInterface.php delete mode 100644 vendor/symfony/options-resolver/Exception/InvalidArgumentException.php delete mode 100644 vendor/symfony/options-resolver/Exception/InvalidOptionsException.php delete mode 100644 vendor/symfony/options-resolver/Exception/MissingOptionsException.php delete mode 100644 vendor/symfony/options-resolver/Exception/NoConfigurationException.php delete mode 100644 vendor/symfony/options-resolver/Exception/NoSuchOptionException.php delete mode 100644 vendor/symfony/options-resolver/Exception/OptionDefinitionException.php delete mode 100644 vendor/symfony/options-resolver/Exception/UndefinedOptionsException.php delete mode 100644 vendor/symfony/options-resolver/LICENSE delete mode 100644 vendor/symfony/options-resolver/Options.php delete mode 100644 vendor/symfony/options-resolver/OptionsResolver.php delete mode 100644 vendor/symfony/options-resolver/README.md delete mode 100644 vendor/symfony/options-resolver/Tests/Debug/OptionsResolverIntrospectorTest.php delete mode 100644 vendor/symfony/options-resolver/Tests/OptionsResolverTest.php delete mode 100644 vendor/symfony/options-resolver/composer.json delete mode 100644 vendor/symfony/options-resolver/phpunit.xml.dist delete mode 100644 vendor/topthink/think-captcha/.gitignore delete mode 100644 vendor/topthink/think-captcha/LICENSE delete mode 100644 vendor/topthink/think-captcha/README.md delete mode 100644 vendor/topthink/think-captcha/assets/bgs/1.jpg delete mode 100644 vendor/topthink/think-captcha/assets/bgs/2.jpg delete mode 100644 vendor/topthink/think-captcha/assets/bgs/3.jpg delete mode 100644 vendor/topthink/think-captcha/assets/bgs/4.jpg delete mode 100644 vendor/topthink/think-captcha/assets/bgs/5.jpg delete mode 100644 vendor/topthink/think-captcha/assets/bgs/6.jpg delete mode 100644 vendor/topthink/think-captcha/assets/bgs/7.jpg delete mode 100644 vendor/topthink/think-captcha/assets/bgs/8.jpg delete mode 100644 vendor/topthink/think-captcha/assets/ttfs/1.ttf delete mode 100644 vendor/topthink/think-captcha/assets/ttfs/2.ttf delete mode 100644 vendor/topthink/think-captcha/assets/ttfs/3.ttf delete mode 100644 vendor/topthink/think-captcha/assets/ttfs/4.ttf delete mode 100644 vendor/topthink/think-captcha/assets/ttfs/5.ttf delete mode 100644 vendor/topthink/think-captcha/assets/ttfs/6.ttf delete mode 100644 vendor/topthink/think-captcha/assets/zhttfs/1.ttf delete mode 100644 vendor/topthink/think-captcha/composer.json delete mode 100644 vendor/topthink/think-captcha/src/Captcha.php delete mode 100644 vendor/topthink/think-captcha/src/CaptchaController.php delete mode 100644 vendor/topthink/think-captcha/src/helper.php delete mode 100644 vendor/topthink/think-installer/.gitignore delete mode 100644 vendor/topthink/think-installer/composer.json delete mode 100644 vendor/topthink/think-installer/src/Plugin.php delete mode 100644 vendor/topthink/think-installer/src/ThinkExtend.php delete mode 100644 vendor/topthink/think-installer/src/ThinkFramework.php delete mode 100644 vendor/topthink/think-installer/src/ThinkTesting.php delete mode 100644 vendor/zoujingli/ip2region/Ip2Region.php delete mode 100644 vendor/zoujingli/ip2region/LICENSE.md delete mode 100644 vendor/zoujingli/ip2region/README.md delete mode 100644 vendor/zoujingli/ip2region/composer.json delete mode 100644 vendor/zoujingli/ip2region/ip2region.db delete mode 100644 vendor/zoujingli/ip2region/test.php delete mode 100644 vendor/zoujingli/wechat-developer/.gitignore delete mode 100644 vendor/zoujingli/wechat-developer/MIT-LICENSE.txt delete mode 100644 vendor/zoujingli/wechat-developer/README.md delete mode 100644 vendor/zoujingli/wechat-developer/Test/config.php delete mode 100644 vendor/zoujingli/wechat-developer/Test/pay-download-bill.php delete mode 100644 vendor/zoujingli/wechat-developer/Test/pay-order-close.php delete mode 100644 vendor/zoujingli/wechat-developer/Test/pay-order-create.php delete mode 100644 vendor/zoujingli/wechat-developer/Test/pay-order-query.php delete mode 100644 vendor/zoujingli/wechat-developer/Test/pay-refund-create.php delete mode 100644 vendor/zoujingli/wechat-developer/Test/pay-refund-query.php delete mode 100644 vendor/zoujingli/wechat-developer/Test/wechat-jssdk-sign.php delete mode 100644 vendor/zoujingli/wechat-developer/Test/wechat-menu-get.php delete mode 100644 vendor/zoujingli/wechat-developer/Test/wechat-qrcode-create.php delete mode 100644 vendor/zoujingli/wechat-developer/Test/wechat-user-get.php delete mode 100644 vendor/zoujingli/wechat-developer/WeChat/Card.php delete mode 100644 vendor/zoujingli/wechat-developer/WeChat/Contracts/BasicPushEvent.php delete mode 100644 vendor/zoujingli/wechat-developer/WeChat/Contracts/BasicWeChat.php delete mode 100644 vendor/zoujingli/wechat-developer/WeChat/Contracts/DataArray.php delete mode 100644 vendor/zoujingli/wechat-developer/WeChat/Contracts/DataError.php delete mode 100644 vendor/zoujingli/wechat-developer/WeChat/Contracts/Prpcrypt.php delete mode 100644 vendor/zoujingli/wechat-developer/WeChat/Contracts/Tools.php delete mode 100644 vendor/zoujingli/wechat-developer/WeChat/Custom.php delete mode 100644 vendor/zoujingli/wechat-developer/WeChat/Exceptions/InvalidArgumentException.php delete mode 100644 vendor/zoujingli/wechat-developer/WeChat/Exceptions/InvalidDecryptException.php delete mode 100644 vendor/zoujingli/wechat-developer/WeChat/Exceptions/InvalidResponseException.php delete mode 100644 vendor/zoujingli/wechat-developer/WeChat/Exceptions/LocalCacheException.php delete mode 100644 vendor/zoujingli/wechat-developer/WeChat/Limit.php delete mode 100644 vendor/zoujingli/wechat-developer/WeChat/Media.php delete mode 100644 vendor/zoujingli/wechat-developer/WeChat/Menu.php delete mode 100644 vendor/zoujingli/wechat-developer/WeChat/Oauth.php delete mode 100644 vendor/zoujingli/wechat-developer/WeChat/Pay.php delete mode 100644 vendor/zoujingli/wechat-developer/WeChat/Product.php delete mode 100644 vendor/zoujingli/wechat-developer/WeChat/Qrcode.php delete mode 100644 vendor/zoujingli/wechat-developer/WeChat/Receive.php delete mode 100644 vendor/zoujingli/wechat-developer/WeChat/Scan.php delete mode 100644 vendor/zoujingli/wechat-developer/WeChat/Script.php delete mode 100644 vendor/zoujingli/wechat-developer/WeChat/Shake.php delete mode 100644 vendor/zoujingli/wechat-developer/WeChat/Tags.php delete mode 100644 vendor/zoujingli/wechat-developer/WeChat/Template.php delete mode 100644 vendor/zoujingli/wechat-developer/WeChat/User.php delete mode 100644 vendor/zoujingli/wechat-developer/WeChat/Wifi.php delete mode 100644 vendor/zoujingli/wechat-developer/composer.json delete mode 100644 vendor/zoujingli/wechat-developer/include.php delete mode 100644 vendor/zoujingli/weopen-developer/.gitignore delete mode 100644 vendor/zoujingli/weopen-developer/README.md delete mode 100644 vendor/zoujingli/weopen-developer/Test/open.php delete mode 100644 vendor/zoujingli/weopen-developer/Test/wechat.sql delete mode 100644 vendor/zoujingli/weopen-developer/WeOpen/Service.php delete mode 100644 vendor/zoujingli/weopen-developer/composer.json diff --git a/thinkphp/.gitignore b/thinkphp/.gitignore deleted file mode 100644 index f7775ba41..000000000 --- a/thinkphp/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -/vendor -composer.phar -composer.lock -.DS_Store -Thumbs.db -/phpunit.xml -/.idea -/.vscode \ No newline at end of file diff --git a/thinkphp/.htaccess b/thinkphp/.htaccess deleted file mode 100644 index 3418e55a6..000000000 --- a/thinkphp/.htaccess +++ /dev/null @@ -1 +0,0 @@ -deny from all \ No newline at end of file diff --git a/thinkphp/CONTRIBUTING.md b/thinkphp/CONTRIBUTING.md deleted file mode 100644 index 6cefcb38c..000000000 --- a/thinkphp/CONTRIBUTING.md +++ /dev/null @@ -1,119 +0,0 @@ -如何贡献我的源代码 -=== - -此文档介绍了 ThinkPHP 团队的组成以及运转机制,您提交的代码将给 ThinkPHP 项目带来什么好处,以及如何才能加入我们的行列。 - -## 通过 Github 贡献代码 - -ThinkPHP 目前使用 Git 来控制程序版本,如果你想为 ThinkPHP 贡献源代码,请先大致了解 Git 的使用方法。我们目前把项目托管在 GitHub 上,任何 GitHub 用户都可以向我们贡献代码。 - -参与的方式很简单,`fork`一份 ThinkPHP 的代码到你的仓库中,修改后提交,并向我们发起`pull request`申请,我们会及时对代码进行审查并处理你的申请并。审查通过后,你的代码将被`merge`进我们的仓库中,这样你就会自动出现在贡献者名单里了,非常方便。 - -我们希望你贡献的代码符合: - -* ThinkPHP 的编码规范 -* 适当的注释,能让其他人读懂 -* 遵循 Apache2 开源协议 - -**如果想要了解更多细节或有任何疑问,请继续阅读下面的内容** - -### 注意事项 - -* 本项目代码格式化标准选用 [**PSR-2**](http://www.kancloud.cn/thinkphp/php-fig-psr/3141); -* 类名和类文件名遵循 [**PSR-4**](http://www.kancloud.cn/thinkphp/php-fig-psr/3144); -* 对于 Issues 的处理,请使用诸如 `fix #xxx(Issue ID)` 的 commit title 直接关闭 issue。 -* 系统会自动在 PHP 5.4 5.5 5.6 7.0 和 HHVM 上测试修改,其中 HHVM 下的测试容许报错,请确保你的修改符合 PHP 5.4 ~ 5.6 和 PHP 7.0 的语法规范; -* 管理员不会合并造成 CI faild 的修改,若出现 CI faild 请检查自己的源代码或修改相应的[单元测试文件](tests); - -## GitHub Issue - -GitHub 提供了 Issue 功能,该功能可以用于: - -* 提出 bug -* 提出功能改进 -* 反馈使用体验 - -该功能不应该用于: - - * 提出修改意见(涉及代码署名和修订追溯问题) - * 不友善的言论 - -## 快速修改 - -**GitHub 提供了快速编辑文件的功能** - -1. 登录 GitHub 帐号; -2. 浏览项目文件,找到要进行修改的文件; -3. 点击右上角铅笔图标进行修改; -4. 填写 `Commit changes` 相关内容(Title 必填); -5. 提交修改,等待 CI 验证和管理员合并。 - -**若您需要一次提交大量修改,请继续阅读下面的内容** - -## 完整流程 - -1. `fork`本项目; -2. 克隆(`clone`)你 `fork` 的项目到本地; -3. 新建分支(`branch`)并检出(`checkout`)新分支; -4. 添加本项目到你的本地 git 仓库作为上游(`upstream`); -5. 进行修改,若你的修改包含方法或函数的增减,请记得修改[单元测试文件](tests); -6. 变基(衍合 `rebase`)你的分支到上游 master 分支; -7. `push` 你的本地仓库到 GitHub; -8. 提交 `pull request`; -9. 等待 CI 验证(若不通过则重复 5~7,GitHub 会自动更新你的 `pull request`); -10. 等待管理员处理,并及时 `rebase` 你的分支到上游 master 分支(若上游 master 分支有修改)。 - -*若有必要,可以 `git push -f` 强行推送 rebase 后的分支到自己的 `fork`* - -*绝对不可以使用 `git push -f` 强行推送修改到上游* - -### 注意事项 - -* 若对上述流程有任何不清楚的地方,请查阅 GIT 教程,如 [这个](http://backlogtool.com/git-guide/cn/); -* 对于代码**不同方面**的修改,请在自己 `fork` 的项目中**创建不同的分支**(原因参见`完整流程`第9条备注部分); -* 变基及交互式变基操作参见 [Git 交互式变基](http://pakchoi.me/2015/03/17/git-interactive-rebase/) - -## 推荐资源 - -### 开发环境 - -* XAMPP for Windows 5.5.x -* WampServer (for Windows) -* upupw Apache PHP5.4 ( for Windows) - -或自行安装 - -- Apache / Nginx -- PHP 5.4 ~ 5.6 -- MySQL / MariaDB - -*Windows 用户推荐添加 PHP bin 目录到 PATH,方便使用 composer* - -*Linux 用户自行配置环境, Mac 用户推荐使用内置 Apache 配合 Homebrew 安装 PHP 和 MariaDB* - -### 编辑器 - -Sublime Text 3 + phpfmt 插件 - -phpfmt 插件参数 - -```json -{ - "autocomplete": true, - "enable_auto_align": true, - "format_on_save": true, - "indent_with_space": true, - "psr1_naming": false, - "psr2": true, - "version": 4 -} -``` - -或其他 编辑器 / IDE 配合 PSR2 自动格式化工具 - -### Git GUI - -* SourceTree -* GitHub Desktop - -或其他 Git 图形界面客户端 diff --git a/thinkphp/LICENSE.txt b/thinkphp/LICENSE.txt deleted file mode 100644 index 574a39c40..000000000 --- a/thinkphp/LICENSE.txt +++ /dev/null @@ -1,32 +0,0 @@ - -ThinkPHP遵循Apache2开源协议发布,并提供免费使用。 -版权所有Copyright © 2006-2016 by ThinkPHP (http://thinkphp.cn) -All rights reserved。 -ThinkPHP® 商标和著作权所有者为上海顶想信息科技有限公司。 - -Apache Licence是著名的非盈利开源组织Apache采用的协议。 -该协议和BSD类似,鼓励代码共享和尊重原作者的著作权, -允许代码修改,再作为开源或商业软件发布。需要满足 -的条件: -1. 需要给代码的用户一份Apache Licence ; -2. 如果你修改了代码,需要在被修改的文件中说明; -3. 在延伸的代码中(修改和有源代码衍生的代码中)需要 -带有原来代码中的协议,商标,专利声明和其他原来作者规 -定需要包含的说明; -4. 如果再发布的产品中包含一个Notice文件,则在Notice文 -件中需要带有本协议内容。你可以在Notice中增加自己的 -许可,但不可以表现为对Apache Licence构成更改。 -具体的协议参考:http://www.apache.org/licenses/LICENSE-2.0 - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. diff --git a/thinkphp/README.md b/thinkphp/README.md deleted file mode 100644 index 52c34a4bf..000000000 --- a/thinkphp/README.md +++ /dev/null @@ -1,60 +0,0 @@ -![](http://www.thinkphp.cn/Uploads/editor/2016-06-23/576b4732a6e04.png) - -ThinkPHP 5.1 —— 12载初心,你值得信赖的PHP框架 -=============== - -[![Build Status](https://travis-ci.org/top-think/framework.svg?branch=master)](https://travis-ci.org/top-think/framework) -[![Total Downloads](https://poser.pugx.org/topthink/framework/downloads)](https://packagist.org/packages/topthink/framework) -[![Latest Stable Version](https://poser.pugx.org/topthink/framework/v/stable)](https://packagist.org/packages/topthink/framework) -[![License](https://poser.pugx.org/topthink/framework/license)](https://packagist.org/packages/topthink/framework) - -ThinkPHP5.1对底层架构做了进一步的改进,减少依赖,其主要特性包括: - - + 采用容器统一管理对象 - + 支持Facade - + 更易用的路由 - + 注解路由支持 - + 路由跨域请求支持 - + 验证类增强 - + 配置和路由目录独立 - + 取消系统常量 - + 类库别名机制 - + 模型和数据库增强 - + 依赖注入完善 - + 支持PSR-3日志规范 - -### 废除的功能: - - + 聚合模型 - + 内置控制器扩展类 - + 模型自动验证 - -> ThinkPHP5.1的运行环境要求PHP5.6+。 - - -## 在线手册 - -+ [完全开发手册](https://www.kancloud.cn/manual/thinkphp5_1/content) -+ [升级指导](https://www.kancloud.cn/manual/thinkphp5_1/354155) - -## 命名规范 - -`ThinkPHP5`遵循PSR-2命名规范和PSR-4自动加载规范。 - -## 参与开发 - -请参阅 [ThinkPHP5 核心框架包](https://github.com/top-think/framework)。 - -## 版权信息 - -ThinkPHP遵循Apache2开源协议发布,并提供免费使用。 - -本项目包含的第三方源码和二进制文件之版权信息另行标注。 - -版权所有Copyright © 2006-2018 by ThinkPHP (http://thinkphp.cn) - -All rights reserved。 - -ThinkPHP® 商标和著作权所有者为上海顶想信息科技有限公司。 - -更多细节参阅 [LICENSE.txt](LICENSE.txt) diff --git a/thinkphp/base.php b/thinkphp/base.php deleted file mode 100644 index aad321d6a..000000000 --- a/thinkphp/base.php +++ /dev/null @@ -1,105 +0,0 @@ - -// +---------------------------------------------------------------------- -namespace think; - -// 载入Loader类 -require __DIR__ . '/library/think/Loader.php'; - -// 注册自动加载 -Loader::register(); - -// 注册错误和异常处理机制 -Error::register(); - -// 实现日志接口 -if (interface_exists('Psr\Log\LoggerInterface')) { - interface LoggerInterface extends \Psr\Log\LoggerInterface - {} -} else { - interface LoggerInterface - {} -} - -// 注册核心类到容器 -Container::getInstance()->bind([ - 'app' => App::class, - 'build' => Build::class, - 'cache' => Cache::class, - 'config' => Config::class, - 'cookie' => Cookie::class, - 'debug' => Debug::class, - 'env' => Env::class, - 'hook' => Hook::class, - 'lang' => Lang::class, - 'log' => Log::class, - 'middleware' => Middleware::class, - 'request' => Request::class, - 'response' => Response::class, - 'route' => Route::class, - 'session' => Session::class, - 'url' => Url::class, - 'validate' => Validate::class, - 'view' => View::class, - 'rule_name' => route\RuleName::class, - // 接口依赖注入 - 'think\LoggerInterface' => Log::class, -]); - -// 注册核心类的静态代理 -Facade::bind([ - facade\App::class => App::class, - facade\Build::class => Build::class, - facade\Cache::class => Cache::class, - facade\Config::class => Config::class, - facade\Cookie::class => Cookie::class, - facade\Debug::class => Debug::class, - facade\Env::class => Env::class, - facade\Hook::class => Hook::class, - facade\Lang::class => Lang::class, - facade\Log::class => Log::class, - facade\Middleware::class => Middleware::class, - facade\Request::class => Request::class, - facade\Response::class => Response::class, - facade\Route::class => Route::class, - facade\Session::class => Session::class, - facade\Url::class => Url::class, - facade\Validate::class => Validate::class, - facade\View::class => View::class, -]); - -// 注册类库别名 -Loader::addClassAlias([ - 'App' => facade\App::class, - 'Build' => facade\Build::class, - 'Cache' => facade\Cache::class, - 'Config' => facade\Config::class, - 'Cookie' => facade\Cookie::class, - 'Db' => Db::class, - 'Debug' => facade\Debug::class, - 'Env' => facade\Env::class, - 'Facade' => Facade::class, - 'Hook' => facade\Hook::class, - 'Lang' => facade\Lang::class, - 'Log' => facade\Log::class, - 'Request' => facade\Request::class, - 'Response' => facade\Response::class, - 'Route' => facade\Route::class, - 'Session' => facade\Session::class, - 'Url' => facade\Url::class, - 'Validate' => facade\Validate::class, - 'View' => facade\View::class, -]); - -// 加载惯例配置文件 -facade\Config::set(include __DIR__ . '/convention.php'); - -// 加载composer autofile文件 -Loader::loadComposerAutoloadFiles(); diff --git a/thinkphp/composer.json b/thinkphp/composer.json deleted file mode 100644 index 3e504960e..000000000 --- a/thinkphp/composer.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "name": "topthink/framework", - "description": "the new thinkphp framework", - "type": "think-framework", - "keywords": [ - "framework", - "thinkphp", - "ORM" - ], - "homepage": "http://thinkphp.cn/", - "license": "Apache-2.0", - "authors": [ - { - "name": "liu21st", - "email": "liu21st@gmail.com" - }, - { - "name": "yunwuxin", - "email": "448901948@qq.com" - } - ], - "require": { - "php": ">=5.6.0", - "topthink/think-installer": "~1.0" - }, - "require-dev": { - "phpunit/phpunit": "^5.0|^6.0", - "johnkary/phpunit-speedtrap": "^1.0", - "mikey179/vfsStream": "~1.6", - "phploc/phploc": "2.*", - "sebastian/phpcpd": "2.*", - "squizlabs/php_codesniffer": "2.*", - "phpdocumentor/reflection-docblock": "^2.0" - } -} diff --git a/thinkphp/convention.php b/thinkphp/convention.php deleted file mode 100644 index 3e2d31ffb..000000000 --- a/thinkphp/convention.php +++ /dev/null @@ -1,302 +0,0 @@ - [ - // 应用名称 - 'app_name' => '', - // 应用地址 - 'app_host' => '', - // 应用调试模式 - 'app_debug' => false, - // 应用Trace - 'app_trace' => false, - // 应用模式状态 - 'app_status' => '', - // 是否支持多模块 - 'app_multi_module' => true, - // 入口自动绑定模块 - 'auto_bind_module' => false, - // 注册的根命名空间 - 'root_namespace' => [], - // 默认输出类型 - 'default_return_type' => 'html', - // 默认AJAX 数据返回格式,可选json xml ... - 'default_ajax_return' => 'json', - // 默认JSONP格式返回的处理方法 - 'default_jsonp_handler' => 'jsonpReturn', - // 默认JSONP处理方法 - 'var_jsonp_handler' => 'callback', - // 默认时区 - 'default_timezone' => 'Asia/Shanghai', - // 是否开启多语言 - 'lang_switch_on' => false, - // 默认全局过滤方法 用逗号分隔多个 - 'default_filter' => '', - // 默认语言 - 'default_lang' => 'zh-cn', - // 应用类库后缀 - 'class_suffix' => false, - // 控制器类后缀 - 'controller_suffix' => false, - - // +---------------------------------------------------------------------- - // | 模块设置 - // +---------------------------------------------------------------------- - - // 默认模块名 - 'default_module' => 'index', - // 禁止访问模块 - 'deny_module_list' => ['common'], - // 默认控制器名 - 'default_controller' => 'Index', - // 默认操作名 - 'default_action' => 'index', - // 默认验证器 - 'default_validate' => '', - // 默认的空模块名 - 'empty_module' => '', - // 默认的空控制器名 - 'empty_controller' => 'Error', - // 操作方法前缀 - 'use_action_prefix' => false, - // 操作方法后缀 - 'action_suffix' => '', - // 自动搜索控制器 - 'controller_auto_search' => false, - - // +---------------------------------------------------------------------- - // | URL设置 - // +---------------------------------------------------------------------- - - // PATHINFO变量名 用于兼容模式 - 'var_pathinfo' => 's', - // 兼容PATH_INFO获取 - 'pathinfo_fetch' => ['ORIG_PATH_INFO', 'REDIRECT_PATH_INFO', 'REDIRECT_URL'], - // pathinfo分隔符 - 'pathinfo_depr' => '/', - // HTTPS代理标识 - 'https_agent_name' => '', - // URL伪静态后缀 - 'url_html_suffix' => 'html', - // URL普通方式参数 用于自动生成 - 'url_common_param' => false, - // URL参数方式 0 按名称成对解析 1 按顺序解析 - 'url_param_type' => 0, - // 是否开启路由延迟解析 - 'url_lazy_route' => false, - // 是否强制使用路由 - 'url_route_must' => false, - // 合并路由规则 - 'route_rule_merge' => false, - // 路由是否完全匹配 - 'route_complete_match' => false, - // 使用注解路由 - 'route_annotation' => false, - // 域名根,如thinkphp.cn - 'url_domain_root' => '', - // 是否自动转换URL中的控制器和操作名 - 'url_convert' => true, - // 默认的访问控制器层 - 'url_controller_layer' => 'controller', - // 表单请求类型伪装变量 - 'var_method' => '_method', - // 表单ajax伪装变量 - 'var_ajax' => '_ajax', - // 表单pjax伪装变量 - 'var_pjax' => '_pjax', - // 是否开启请求缓存 true自动缓存 支持设置请求缓存规则 - 'request_cache' => false, - // 请求缓存有效期 - 'request_cache_expire' => null, - // 全局请求缓存排除规则 - 'request_cache_except' => [], - - // 默认跳转页面对应的模板文件 - 'dispatch_success_tmpl' => __DIR__ . '/tpl/dispatch_jump.tpl', - 'dispatch_error_tmpl' => __DIR__ . '/tpl/dispatch_jump.tpl', - - // +---------------------------------------------------------------------- - // | 异常及错误设置 - // +---------------------------------------------------------------------- - - // 异常页面的模板文件 - 'exception_tmpl' => __DIR__ . '/tpl/think_exception.tpl', - - // 错误显示信息,非调试模式有效 - 'error_message' => '页面错误!请稍后再试~', - // 显示错误信息 - 'show_error_msg' => false, - // 异常处理handle类 留空使用 \think\exception\Handle - 'exception_handle' => '', - ], - - // +---------------------------------------------------------------------- - // | 模板设置 - // +---------------------------------------------------------------------- - - 'template' => [ - // 默认模板渲染规则 1 解析为小写+下划线 2 全部转换小写 - 'auto_rule' => 1, - // 模板引擎类型 支持 php think 支持扩展 - 'type' => 'Think', - // 视图基础目录,配置目录为所有模块的视图起始目录 - 'view_base' => '', - // 当前模板的视图目录 留空为自动获取 - 'view_path' => '', - // 模板后缀 - 'view_suffix' => 'html', - // 模板文件名分隔符 - 'view_depr' => DIRECTORY_SEPARATOR, - // 模板引擎普通标签开始标记 - 'tpl_begin' => '{', - // 模板引擎普通标签结束标记 - 'tpl_end' => '}', - // 标签库标签开始标记 - 'taglib_begin' => '{', - // 标签库标签结束标记 - 'taglib_end' => '}', - ], - - // +---------------------------------------------------------------------- - // | 日志设置 - // +---------------------------------------------------------------------- - - 'log' => [ - // 日志记录方式,内置 file socket 支持扩展 - 'type' => 'File', - // 日志保存目录 - //'path' => LOG_PATH, - // 日志记录级别 - 'level' => [], - // 是否记录trace信息到日志 - 'record_trace' => false, - ], - - // +---------------------------------------------------------------------- - // | Trace设置 开启 app_trace 后 有效 - // +---------------------------------------------------------------------- - 'trace' => [ - // 内置Html Console 支持扩展 - 'type' => 'Html', - 'file' => __DIR__ . '/tpl/page_trace.tpl', - ], - - // +---------------------------------------------------------------------- - // | 缓存设置 - // +---------------------------------------------------------------------- - - 'cache' => [ - // 驱动方式 - 'type' => 'File', - // 缓存保存目录 - //'path' => CACHE_PATH, - // 缓存前缀 - 'prefix' => '', - // 缓存有效期 0表示永久缓存 - 'expire' => 0, - ], - - // +---------------------------------------------------------------------- - // | 会话设置 - // +---------------------------------------------------------------------- - - 'session' => [ - 'id' => '', - // SESSION_ID的提交变量,解决flash上传跨域 - 'var_session_id' => '', - // SESSION 前缀 - 'prefix' => 'think', - // 驱动方式 支持redis memcache memcached - 'type' => '', - // 是否自动开启 SESSION - 'auto_start' => true, - 'httponly' => true, - 'secure' => false, - ], - - // +---------------------------------------------------------------------- - // | Cookie设置 - // +---------------------------------------------------------------------- - 'cookie' => [ - // cookie 名称前缀 - 'prefix' => '', - // cookie 保存时间 - 'expire' => 0, - // cookie 保存路径 - 'path' => '/', - // cookie 有效域名 - 'domain' => '', - // cookie 启用安全传输 - 'secure' => false, - // httponly设置 - 'httponly' => '', - // 是否使用 setcookie - 'setcookie' => true, - ], - - // +---------------------------------------------------------------------- - // | 数据库设置 - // +---------------------------------------------------------------------- - - 'database' => [ - // 数据库类型 - 'type' => 'mysql', - // 数据库连接DSN配置 - 'dsn' => '', - // 服务器地址 - 'hostname' => '127.0.0.1', - // 数据库名 - 'database' => '', - // 数据库用户名 - 'username' => 'root', - // 数据库密码 - 'password' => '', - // 数据库连接端口 - 'hostport' => '', - // 数据库连接参数 - 'params' => [], - // 数据库编码默认采用utf8 - 'charset' => 'utf8', - // 数据库表前缀 - 'prefix' => '', - // 数据库调试模式 - 'debug' => false, - // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器) - 'deploy' => 0, - // 数据库读写是否分离 主从式有效 - 'rw_separate' => false, - // 读写分离后 主服务器数量 - 'master_num' => 1, - // 指定从服务器序号 - 'slave_no' => '', - // 是否严格检查字段是否存在 - 'fields_strict' => true, - // 数据集返回类型 - 'resultset_type' => 'array', - // 自动写入时间戳字段 - 'auto_timestamp' => false, - // 时间字段取出后的默认时间格式 - 'datetime_format' => 'Y-m-d H:i:s', - // 是否需要进行SQL性能分析 - 'sql_explain' => false, - // 查询对象 - 'query' => '\\think\\db\\Query', - ], - - //分页配置 - 'paginate' => [ - 'type' => 'bootstrap', - 'var_page' => 'page', - 'list_rows' => 15, - ], - - //控制台配置 - 'console' => [ - 'name' => 'Think Console', - 'version' => '0.1', - 'user' => null, - ], -]; diff --git a/thinkphp/helper.php b/thinkphp/helper.php deleted file mode 100644 index 30670f9f1..000000000 --- a/thinkphp/helper.php +++ /dev/null @@ -1,691 +0,0 @@ - -// +---------------------------------------------------------------------- - -//------------------------ -// ThinkPHP 助手函数 -//------------------------- - -use think\Container; -use think\Db; -use think\exception\HttpException; -use think\exception\HttpResponseException; -use think\facade\Cache; -use think\facade\Config; -use think\facade\Cookie; -use think\facade\Debug; -use think\facade\Env; -use think\facade\Hook; -use think\facade\Lang; -use think\facade\Log; -use think\facade\Request; -use think\facade\Route; -use think\facade\Session; -use think\facade\Url; -use think\Response; -use think\route\RuleItem; - -if (!function_exists('abort')) { - /** - * 抛出HTTP异常 - * @param integer|Response $code 状态码 或者 Response对象实例 - * @param string $message 错误信息 - * @param array $header 参数 - */ - function abort($code, $message = null, $header = []) - { - if ($code instanceof Response) { - throw new HttpResponseException($code); - } else { - throw new HttpException($code, $message, null, $header); - } - } -} - -if (!function_exists('action')) { - /** - * 调用模块的操作方法 参数格式 [模块/控制器/]操作 - * @param string $url 调用地址 - * @param string|array $vars 调用参数 支持字符串和数组 - * @param string $layer 要调用的控制层名称 - * @param bool $appendSuffix 是否添加类名后缀 - * @return mixed - */ - function action($url, $vars = [], $layer = 'controller', $appendSuffix = false) - { - return app()->action($url, $vars, $layer, $appendSuffix); - } -} - -if (!function_exists('app')) { - /** - * 快速获取容器中的实例 支持依赖注入 - * @param string $name 类名或标识 默认获取当前应用实例 - * @param array $args 参数 - * @param bool $newInstance 是否每次创建新的实例 - * @return object - */ - function app($name = 'think\App', $args = [], $newInstance = false) - { - return Container::get($name, $args, $newInstance); - } -} - -if (!function_exists('behavior')) { - /** - * 执行某个行为(run方法) 支持依赖注入 - * @param mixed $behavior 行为类名或者别名 - * @param mixed $args 参数 - * @return mixed - */ - function behavior($behavior, $args = null) - { - return Hook::exec($behavior, $args); - } -} - -if (!function_exists('bind')) { - /** - * 绑定一个类到容器 - * @access public - * @param string $abstract 类标识、接口 - * @param mixed $concrete 要绑定的类、闭包或者实例 - * @return Container - */ - function bind($abstract, $concrete = null) - { - return Container::getInstance()->bind($abstract, $concrete); - } -} - -if (!function_exists('cache')) { - /** - * 缓存管理 - * @param mixed $name 缓存名称,如果为数组表示进行缓存设置 - * @param mixed $value 缓存值 - * @param mixed $options 缓存参数 - * @param string $tag 缓存标签 - * @return mixed - */ - function cache($name, $value = '', $options = null, $tag = null) - { - if (is_array($options)) { - // 缓存操作的同时初始化 - Cache::connect($options); - } elseif (is_array($name)) { - // 缓存初始化 - return Cache::connect($name); - } - - if ('' === $value) { - // 获取缓存 - return 0 === strpos($name, '?') ? Cache::has(substr($name, 1)) : Cache::get($name); - } elseif (is_null($value)) { - // 删除缓存 - return Cache::rm($name); - } else { - // 缓存数据 - if (is_array($options)) { - $expire = isset($options['expire']) ? $options['expire'] : null; //修复查询缓存无法设置过期时间 - } else { - $expire = is_numeric($options) ? $options : null; //默认快捷缓存设置过期时间 - } - - if (is_null($tag)) { - return Cache::set($name, $value, $expire); - } else { - return Cache::tag($tag)->set($name, $value, $expire); - } - } - } -} - -if (!function_exists('call')) { - /** - * 调用反射执行callable 支持依赖注入 - * @param mixed $callable 支持闭包等callable写法 - * @param array $args 参数 - * @return mixed - */ - function call($callable, $args = []) - { - return Container::getInstance()->invoke($callable, $args); - } -} - -if (!function_exists('class_basename')) { - /** - * 获取类名(不包含命名空间) - * - * @param string|object $class - * @return string - */ - function class_basename($class) - { - $class = is_object($class) ? get_class($class) : $class; - return basename(str_replace('\\', '/', $class)); - } -} - -if (!function_exists('class_uses_recursive')) { - /** - *获取一个类里所有用到的trait,包括父类的 - * - * @param $class - * @return array - */ - function class_uses_recursive($class) - { - if (is_object($class)) { - $class = get_class($class); - } - - $results = []; - $classes = array_merge([$class => $class], class_parents($class)); - foreach ($classes as $class) { - $results += trait_uses_recursive($class); - } - - return array_unique($results); - } -} - -if (!function_exists('config')) { - /** - * 获取和设置配置参数 - * @param string|array $name 参数名 - * @param mixed $value 参数值 - * @return mixed - */ - function config($name = '', $value = null) - { - if (is_null($value) && is_string($name)) { - if ('.' == substr($name, -1)) { - return Config::pull(substr($name, 0, -1)); - } - - return 0 === strpos($name, '?') ? Config::has(substr($name, 1)) : Config::get($name); - } else { - return Config::set($name, $value); - } - } -} - -if (!function_exists('container')) { - /** - * 获取容器对象实例 - * @return Container - */ - function container() - { - return Container::getInstance(); - } -} - -if (!function_exists('controller')) { - /** - * 实例化控制器 格式:[模块/]控制器 - * @param string $name 资源地址 - * @param string $layer 控制层名称 - * @param bool $appendSuffix 是否添加类名后缀 - * @return \think\Controller - */ - function controller($name, $layer = 'controller', $appendSuffix = false) - { - return app()->controller($name, $layer, $appendSuffix); - } -} - -if (!function_exists('cookie')) { - /** - * Cookie管理 - * @param string|array $name cookie名称,如果为数组表示进行cookie设置 - * @param mixed $value cookie值 - * @param mixed $option 参数 - * @return mixed - */ - function cookie($name, $value = '', $option = null) - { - if (is_array($name)) { - // 初始化 - Cookie::init($name); - } elseif (is_null($name)) { - // 清除 - Cookie::clear($value); - } elseif ('' === $value) { - // 获取 - return 0 === strpos($name, '?') ? Cookie::has(substr($name, 1), $option) : Cookie::get($name); - } elseif (is_null($value)) { - // 删除 - return Cookie::delete($name); - } else { - // 设置 - return Cookie::set($name, $value, $option); - } - } -} - -if (!function_exists('db')) { - /** - * 实例化数据库类 - * @param string $name 操作的数据表名称(不含前缀) - * @param array|string $config 数据库配置参数 - * @param bool $force 是否强制重新连接 - * @return \think\db\Query - */ - function db($name = '', $config = [], $force = true) - { - return Db::connect($config, $force)->name($name); - } -} - -if (!function_exists('debug')) { - /** - * 记录时间(微秒)和内存使用情况 - * @param string $start 开始标签 - * @param string $end 结束标签 - * @param integer|string $dec 小数位 如果是m 表示统计内存占用 - * @return mixed - */ - function debug($start, $end = '', $dec = 6) - { - if ('' == $end) { - Debug::remark($start); - } else { - return 'm' == $dec ? Debug::getRangeMem($start, $end) : Debug::getRangeTime($start, $end, $dec); - } - } -} - -if (!function_exists('dump')) { - /** - * 浏览器友好的变量输出 - * @param mixed $var 变量 - * @param boolean $echo 是否输出 默认为true 如果为false 则返回输出字符串 - * @param string $label 标签 默认为空 - * @return void|string - */ - function dump($var, $echo = true, $label = null) - { - return Debug::dump($var, $echo, $label); - } -} - -if (!function_exists('env')) { - /** - * 获取环境变量值 - * @access public - * @param string $name 环境变量名(支持二级 .号分割) - * @param string $default 默认值 - * @return mixed - */ - function env($name = null, $default = null) - { - return Env::get($name, $default); - } -} - -if (!function_exists('exception')) { - /** - * 抛出异常处理 - * - * @param string $msg 异常消息 - * @param integer $code 异常代码 默认为0 - * @param string $exception 异常类 - * - * @throws Exception - */ - function exception($msg, $code = 0, $exception = '') - { - $e = $exception ?: '\think\Exception'; - throw new $e($msg, $code); - } -} - -if (!function_exists('halt')) { - /** - * 调试变量并且中断输出 - * @param mixed $var 调试变量或者信息 - */ - function halt($var) - { - dump($var); - - throw new HttpResponseException(new Response); - } -} - -if (!function_exists('input')) { - /** - * 获取输入数据 支持默认值和过滤 - * @param string $key 获取的变量名 - * @param mixed $default 默认值 - * @param string $filter 过滤方法 - * @return mixed - */ - function input($key = '', $default = null, $filter = '') - { - if (0 === strpos($key, '?')) { - $key = substr($key, 1); - $has = true; - } - - if ($pos = strpos($key, '.')) { - // 指定参数来源 - $method = substr($key, 0, $pos); - if (in_array($method, ['get', 'post', 'put', 'patch', 'delete', 'route', 'param', 'request', 'session', 'cookie', 'server', 'env', 'path', 'file'])) { - $key = substr($key, $pos + 1); - } else { - $method = 'param'; - } - } else { - // 默认为自动判断 - $method = 'param'; - } - - if (isset($has)) { - return request()->has($key, $method, $default); - } else { - return request()->$method($key, $default, $filter); - } - } -} - -if (!function_exists('json')) { - /** - * 获取\think\response\Json对象实例 - * @param mixed $data 返回的数据 - * @param integer $code 状态码 - * @param array $header 头部 - * @param array $options 参数 - * @return \think\response\Json - */ - function json($data = [], $code = 200, $header = [], $options = []) - { - return Response::create($data, 'json', $code, $header, $options); - } -} - -if (!function_exists('jsonp')) { - /** - * 获取\think\response\Jsonp对象实例 - * @param mixed $data 返回的数据 - * @param integer $code 状态码 - * @param array $header 头部 - * @param array $options 参数 - * @return \think\response\Jsonp - */ - function jsonp($data = [], $code = 200, $header = [], $options = []) - { - return Response::create($data, 'jsonp', $code, $header, $options); - } -} - -if (!function_exists('lang')) { - /** - * 获取语言变量值 - * @param string $name 语言变量名 - * @param array $vars 动态变量值 - * @param string $lang 语言 - * @return mixed - */ - function lang($name, $vars = [], $lang = '') - { - return Lang::get($name, $vars, $lang); - } -} - -if (!function_exists('model')) { - /** - * 实例化Model - * @param string $name Model名称 - * @param string $layer 业务层名称 - * @param bool $appendSuffix 是否添加类名后缀 - * @return \think\Model - */ - function model($name = '', $layer = 'model', $appendSuffix = false) - { - return app()->model($name, $layer, $appendSuffix); - } -} - -if (!function_exists('parse_name')) { - /** - * 字符串命名风格转换 - * type 0 将Java风格转换为C的风格 1 将C风格转换为Java的风格 - * @param string $name 字符串 - * @param integer $type 转换类型 - * @param bool $ucfirst 首字母是否大写(驼峰规则) - * @return string - */ - function parse_name($name, $type = 0, $ucfirst = true) - { - if ($type) { - $name = preg_replace_callback('/_([a-zA-Z])/', function ($match) { - return strtoupper($match[1]); - }, $name); - - return $ucfirst ? ucfirst($name) : lcfirst($name); - } else { - return strtolower(trim(preg_replace("/[A-Z]/", "_\\0", $name), "_")); - } - } -} - -if (!function_exists('redirect')) { - /** - * 获取\think\response\Redirect对象实例 - * @param mixed $url 重定向地址 支持Url::build方法的地址 - * @param array|integer $params 额外参数 - * @param integer $code 状态码 - * @return \think\response\Redirect - */ - function redirect($url = [], $params = [], $code = 302) - { - if (is_integer($params)) { - $code = $params; - $params = []; - } - - return Response::create($url, 'redirect', $code)->params($params); - } -} - -if (!function_exists('request')) { - /** - * 获取当前Request对象实例 - * @return Request - */ - function request() - { - return app('request'); - } -} - -if (!function_exists('response')) { - /** - * 创建普通 Response 对象实例 - * @param mixed $data 输出数据 - * @param int|string $code 状态码 - * @param array $header 头信息 - * @param string $type - * @return Response - */ - function response($data = [], $code = 200, $header = [], $type = 'html') - { - return Response::create($data, $type, $code, $header); - } -} - -if (!function_exists('route')) { - /** - * 路由注册 - * @param string $rule 路由规则 - * @param mixed $route 路由地址 - * @param array $option 路由参数 - * @param array $pattern 变量规则 - * @return RuleItem - */ - function route($rule, $route, $option = [], $pattern = []) - { - return Route::rule($rule, $route, '*', $option, $pattern); - } -} - -if (!function_exists('session')) { - /** - * Session管理 - * @param string|array $name session名称,如果为数组表示进行session设置 - * @param mixed $value session值 - * @param string $prefix 前缀 - * @return mixed - */ - function session($name, $value = '', $prefix = null) - { - if (is_array($name)) { - // 初始化 - Session::init($name); - } elseif (is_null($name)) { - // 清除 - Session::clear($value); - } elseif ('' === $value) { - // 判断或获取 - return 0 === strpos($name, '?') ? Session::has(substr($name, 1), $prefix) : Session::get($name, $prefix); - } elseif (is_null($value)) { - // 删除 - return Session::delete($name, $prefix); - } else { - // 设置 - return Session::set($name, $value, $prefix); - } - } -} - -if (!function_exists('token')) { - /** - * 生成表单令牌 - * @param string $name 令牌名称 - * @param mixed $type 令牌生成方法 - * @return string - */ - function token($name = '__token__', $type = 'md5') - { - $token = Request::token($name, $type); - - return ''; - } -} - -if (!function_exists('trace')) { - /** - * 记录日志信息 - * @param mixed $log log信息 支持字符串和数组 - * @param string $level 日志级别 - * @return array|void - */ - function trace($log = '[think]', $level = 'log') - { - if ('[think]' === $log) { - return Log::getLog(); - } else { - Log::record($log, $level); - } - } -} - -if (!function_exists('trait_uses_recursive')) { - /** - * 获取一个trait里所有引用到的trait - * - * @param string $trait - * @return array - */ - function trait_uses_recursive($trait) - { - $traits = class_uses($trait); - foreach ($traits as $trait) { - $traits += trait_uses_recursive($trait); - } - - return $traits; - } -} - -if (!function_exists('url')) { - /** - * Url生成 - * @param string $url 路由地址 - * @param string|array $vars 变量 - * @param bool|string $suffix 生成的URL后缀 - * @param bool|string $domain 域名 - * @return string - */ - function url($url = '', $vars = '', $suffix = true, $domain = false) - { - return Url::build($url, $vars, $suffix, $domain); - } -} - -if (!function_exists('validate')) { - /** - * 实例化验证器 - * @param string $name 验证器名称 - * @param string $layer 业务层名称 - * @param bool $appendSuffix 是否添加类名后缀 - * @return \think\Validate - */ - function validate($name = '', $layer = 'validate', $appendSuffix = false) - { - return app()->validate($name, $layer, $appendSuffix); - } -} - -if (!function_exists('view')) { - /** - * 渲染模板输出 - * @param string $template 模板文件 - * @param array $vars 模板变量 - * @param integer $code 状态码 - * @param callable $filter 内容过滤 - * @return \think\response\View - */ - function view($template = '', $vars = [], $code = 200, $filter = null) - { - return Response::create($template, 'view', $code)->assign($vars)->filter($filter); - } -} - -if (!function_exists('widget')) { - /** - * 渲染输出Widget - * @param string $name Widget名称 - * @param array $data 传入的参数 - * @return mixed - */ - function widget($name, $data = []) - { - return app()->action($name, $data, 'widget'); - } -} - -if (!function_exists('xml')) { - /** - * 获取\think\response\Xml对象实例 - * @param mixed $data 返回的数据 - * @param integer $code 状态码 - * @param array $header 头部 - * @param array $options 参数 - * @return \think\response\Xml - */ - function xml($data = [], $code = 200, $header = [], $options = []) - { - return Response::create($data, 'xml', $code, $header, $options); - } -} diff --git a/thinkphp/lang/zh-cn.php b/thinkphp/lang/zh-cn.php deleted file mode 100644 index 5a3e0bd6b..000000000 --- a/thinkphp/lang/zh-cn.php +++ /dev/null @@ -1,141 +0,0 @@ - -// +---------------------------------------------------------------------- - -// 核心中文语言包 -return [ - // 系统错误提示 - 'Undefined variable' => '未定义变量', - 'Undefined index' => '未定义数组索引', - 'Undefined offset' => '未定义数组下标', - 'Parse error' => '语法解析错误', - 'Type error' => '类型错误', - 'Fatal error' => '致命错误', - 'syntax error' => '语法错误', - - // 框架核心错误提示 - 'dispatch type not support' => '不支持的调度类型', - 'method param miss' => '方法参数错误', - 'method not exists' => '方法不存在', - 'function not exists' => '函数不存在', - 'module not exists' => '模块不存在', - 'controller not exists' => '控制器不存在', - 'class not exists' => '类不存在', - 'property not exists' => '类的属性不存在', - 'template not exists' => '模板文件不存在', - 'illegal controller name' => '非法的控制器名称', - 'illegal action name' => '非法的操作名称', - 'url suffix deny' => '禁止的URL后缀访问', - 'Route Not Found' => '当前访问路由未定义或不匹配', - 'Undefined db type' => '未定义数据库类型', - 'variable type error' => '变量类型错误', - 'PSR-4 error' => 'PSR-4 规范错误', - 'not support total' => '简洁模式下不能获取数据总数', - 'not support last' => '简洁模式下不能获取最后一页', - 'error session handler' => '错误的SESSION处理器类', - 'not allow php tag' => '模板不允许使用PHP语法', - 'not support' => '不支持', - 'redisd master' => 'Redisd 主服务器错误', - 'redisd slave' => 'Redisd 从服务器错误', - 'must run at sae' => '必须在SAE运行', - 'memcache init error' => '未开通Memcache服务,请在SAE管理平台初始化Memcache服务', - 'KVDB init error' => '没有初始化KVDB,请在SAE管理平台初始化KVDB服务', - 'fields not exists' => '数据表字段不存在', - 'where express error' => '查询表达式错误', - 'no data to update' => '没有任何数据需要更新', - 'miss data to insert' => '缺少需要写入的数据', - 'miss complex primary data' => '缺少复合主键数据', - 'miss update condition' => '缺少更新条件', - 'model data Not Found' => '模型数据不存在', - 'table data not Found' => '表数据不存在', - 'delete without condition' => '没有条件不会执行删除操作', - 'miss relation data' => '缺少关联表数据', - 'tag attr must' => '模板标签属性必须', - 'tag error' => '模板标签错误', - 'cache write error' => '缓存写入失败', - 'sae mc write error' => 'SAE mc 写入错误', - 'route name not exists' => '路由标识不存在(或参数不够)', - 'invalid request' => '非法请求', - 'bind attr has exists' => '模型的属性已经存在', - 'relation data not exists' => '关联数据不存在', - 'relation not support' => '关联不支持', - 'chunk not support order' => 'Chunk不支持调用order方法', - 'route pattern error' => '路由变量规则定义错误', - 'route behavior will not support' => '路由行为废弃(使用中间件替代)', - 'closure not support cache(true)' => '使用闭包查询不支持cache(true),请指定缓存Key', - - // 上传错误信息 - 'unknown upload error' => '未知上传错误!', - 'file write error' => '文件写入失败!', - 'upload temp dir not found' => '找不到临时文件夹!', - 'no file to uploaded' => '没有文件被上传!', - 'only the portion of file is uploaded' => '文件只有部分被上传!', - 'upload File size exceeds the maximum value' => '上传文件大小超过了最大值!', - 'upload write error' => '文件上传保存错误!', - 'has the same filename: {:filename}' => '存在同名文件:{:filename}', - 'upload illegal files' => '非法上传文件', - 'illegal image files' => '非法图片文件', - 'extensions to upload is not allowed' => '上传文件后缀不允许', - 'mimetype to upload is not allowed' => '上传文件MIME类型不允许!', - 'filesize not match' => '上传文件大小不符!', - 'directory {:path} creation failed' => '目录 {:path} 创建失败!', - - 'The middleware must return Response instance' => '中间件方法必须返回Response对象实例', - 'The queue was exhausted, with no response returned' => '中间件队列为空', - // Validate Error Message - ':attribute require' => ':attribute不能为空', - ':attribute must' => ':attribute必须', - ':attribute must be numeric' => ':attribute必须是数字', - ':attribute must be integer' => ':attribute必须是整数', - ':attribute must be float' => ':attribute必须是浮点数', - ':attribute must be bool' => ':attribute必须是布尔值', - ':attribute not a valid email address' => ':attribute格式不符', - ':attribute not a valid mobile' => ':attribute格式不符', - ':attribute must be a array' => ':attribute必须是数组', - ':attribute must be yes,on or 1' => ':attribute必须是yes、on或者1', - ':attribute not a valid datetime' => ':attribute不是一个有效的日期或时间格式', - ':attribute not a valid file' => ':attribute不是有效的上传文件', - ':attribute not a valid image' => ':attribute不是有效的图像文件', - ':attribute must be alpha' => ':attribute只能是字母', - ':attribute must be alpha-numeric' => ':attribute只能是字母和数字', - ':attribute must be alpha-numeric, dash, underscore' => ':attribute只能是字母、数字和下划线_及破折号-', - ':attribute not a valid domain or ip' => ':attribute不是有效的域名或者IP', - ':attribute must be chinese' => ':attribute只能是汉字', - ':attribute must be chinese or alpha' => ':attribute只能是汉字、字母', - ':attribute must be chinese,alpha-numeric' => ':attribute只能是汉字、字母和数字', - ':attribute must be chinese,alpha-numeric,underscore, dash' => ':attribute只能是汉字、字母、数字和下划线_及破折号-', - ':attribute not a valid url' => ':attribute不是有效的URL地址', - ':attribute not a valid ip' => ':attribute不是有效的IP地址', - ':attribute must be dateFormat of :rule' => ':attribute必须使用日期格式 :rule', - ':attribute must be in :rule' => ':attribute必须在 :rule 范围内', - ':attribute be notin :rule' => ':attribute不能在 :rule 范围内', - ':attribute must between :1 - :2' => ':attribute只能在 :1 - :2 之间', - ':attribute not between :1 - :2' => ':attribute不能在 :1 - :2 之间', - 'size of :attribute must be :rule' => ':attribute长度不符合要求 :rule', - 'max size of :attribute must be :rule' => ':attribute长度不能超过 :rule', - 'min size of :attribute must be :rule' => ':attribute长度不能小于 :rule', - ':attribute cannot be less than :rule' => ':attribute日期不能小于 :rule', - ':attribute cannot exceed :rule' => ':attribute日期不能超过 :rule', - ':attribute not within :rule' => '不在有效期内 :rule', - 'access IP is not allowed' => '不允许的IP访问', - 'access IP denied' => '禁止的IP访问', - ':attribute out of accord with :2' => ':attribute和确认字段:2不一致', - ':attribute cannot be same with :2' => ':attribute和比较字段:2不能相同', - ':attribute must greater than or equal :rule' => ':attribute必须大于等于 :rule', - ':attribute must greater than :rule' => ':attribute必须大于 :rule', - ':attribute must less than or equal :rule' => ':attribute必须小于等于 :rule', - ':attribute must less than :rule' => ':attribute必须小于 :rule', - ':attribute must equal :rule' => ':attribute必须等于 :rule', - ':attribute has exists' => ':attribute已存在', - ':attribute not conform to the rules' => ':attribute不符合指定规则', - 'invalid Request method' => '无效的请求类型', - 'invalid token' => '令牌数据无效', - 'not conform to the rules' => '规则错误', -]; diff --git a/thinkphp/library/think/App.php b/thinkphp/library/think/App.php deleted file mode 100644 index 02a2e6fb4..000000000 --- a/thinkphp/library/think/App.php +++ /dev/null @@ -1,916 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think; - -use think\exception\ClassNotFoundException; -use think\exception\HttpResponseException; -use think\route\Dispatch; - -/** - * App 应用管理 - */ -class App implements \ArrayAccess -{ - const VERSION = '5.1.9'; - - /** - * 当前模块路径 - * @var string - */ - protected $modulePath; - - /** - * 应用调试模式 - * @var bool - */ - protected $debug = true; - - /** - * 应用开始时间 - * @var float - */ - protected $beginTime; - - /** - * 应用内存初始占用 - * @var integer - */ - protected $beginMem; - - /** - * 应用类库命名空间 - * @var string - */ - protected $namespace = 'app'; - - /** - * 应用类库后缀 - * @var bool - */ - protected $suffix = false; - - /** - * 严格路由检测 - * @var bool - */ - protected $routeMust; - - /** - * 应用类库目录 - * @var string - */ - protected $appPath; - - /** - * 框架目录 - * @var string - */ - protected $thinkPath; - - /** - * 应用根目录 - * @var string - */ - protected $rootPath; - - /** - * 运行时目录 - * @var string - */ - protected $runtimePath; - - /** - * 配置目录 - * @var string - */ - protected $configPath; - - /** - * 路由目录 - * @var string - */ - protected $routePath; - - /** - * 配置后缀 - * @var string - */ - protected $configExt; - - /** - * 应用调度实例 - * @var Dispatch - */ - protected $dispatch; - - /** - * 容器对象实例 - * @var Container - */ - protected $container; - - /** - * 绑定模块(控制器) - * @var string - */ - protected $bind; - - public function __construct($appPath = '') - { - $this->appPath = $appPath ? realpath($appPath) . DIRECTORY_SEPARATOR : $this->getAppPath(); - $this->container = Container::getInstance(); - } - - /** - * 绑定模块或者控制器 - * @access public - * @param string $bind - * @return $this - */ - public function bind($bind) - { - $this->bind = $bind; - return $this; - } - - /** - * 设置应用类库目录 - * @access public - * @param string $path 路径 - * @return $this - */ - public function path($path) - { - $this->appPath = $path; - return $this; - } - - /** - * 初始化应用 - * @access public - * @return void - */ - public function initialize() - { - $this->beginTime = microtime(true); - $this->beginMem = memory_get_usage(); - $this->thinkPath = dirname(dirname(__DIR__)) . DIRECTORY_SEPARATOR; - $this->rootPath = dirname($this->appPath) . DIRECTORY_SEPARATOR; - $this->runtimePath = $this->rootPath . 'runtime' . DIRECTORY_SEPARATOR; - $this->routePath = $this->rootPath . 'route' . DIRECTORY_SEPARATOR; - $this->configPath = $this->rootPath . 'config' . DIRECTORY_SEPARATOR; - - // 设置路径环境变量 - $this->env->set([ - 'think_path' => $this->thinkPath, - 'root_path' => $this->rootPath, - 'app_path' => $this->appPath, - 'config_path' => $this->configPath, - 'route_path' => $this->routePath, - 'runtime_path' => $this->runtimePath, - 'extend_path' => $this->rootPath . 'extend' . DIRECTORY_SEPARATOR, - 'vendor_path' => $this->rootPath . 'vendor' . DIRECTORY_SEPARATOR, - ]); - - // 加载环境变量配置文件 - if (is_file($this->rootPath . '.env')) { - $this->env->load($this->rootPath . '.env'); - } - - $this->namespace = $this->env->get('app_namespace', $this->namespace); - $this->env->set('app_namespace', $this->namespace); - - // 注册应用命名空间 - Loader::addNamespace($this->namespace, $this->appPath); - - $this->configExt = $this->env->get('config_ext', '.php'); - - // 初始化应用 - $this->init(); - - // 开启类名后缀 - $this->suffix = $this->config('app.class_suffix'); - - // 应用调试模式 - $this->debug = $this->env->get('app_debug', $this->config('app.app_debug')); - $this->env->set('app_debug', $this->debug); - - if (!$this->debug) { - ini_set('display_errors', 'Off'); - } elseif (PHP_SAPI != 'cli') { - //重新申请一块比较大的buffer - if (ob_get_level() > 0) { - $output = ob_get_clean(); - } - ob_start(); - if (!empty($output)) { - echo $output; - } - } - - // 注册根命名空间 - if (!empty($this->config('app.root_namespace'))) { - Loader::addNamespace($this->config('app.root_namespace')); - } - - // 注册类库别名 - Loader::addClassAlias($this->config->pull('alias')); - - // 设置系统时区 - date_default_timezone_set($this->config('app.default_timezone')); - - // 读取语言包 - $this->loadLangPack(); - - // 监听app_init - $this->hook->listen('app_init'); - } - - /** - * 初始化应用或模块 - * @access public - * @param string $module 模块名 - * @return void - */ - public function init($module = '') - { - // 定位模块目录 - $module = $module ? $module . DIRECTORY_SEPARATOR : ''; - $path = $this->appPath . $module; - - // 加载初始化文件 - if (is_file($path . 'init.php')) { - include $path . 'init.php'; - } elseif (is_file($this->runtimePath . $module . 'init.php')) { - include $this->runtimePath . $module . 'init.php'; - } else { - // 加载行为扩展文件 - if (is_file($path . 'tags.php')) { - $tags = include $path . 'tags.php'; - if (is_array($tags)) { - $this->hook->import($tags); - } - } - - // 加载公共文件 - if (is_file($path . 'common.php')) { - include $path . 'common.php'; - } - - if ('' == $module) { - // 加载系统助手函数 - include $this->thinkPath . 'helper.php'; - } - - // 加载中间件 - if (is_file($path . 'middleware.php')) { - $middleware = include $path . 'middleware.php'; - if (is_array($middleware)) { - $this->middleware->import($middleware); - } - } - - // 注册服务的容器对象实例 - if (is_file($path . 'provider.php')) { - $provider = include $path . 'provider.php'; - if (is_array($provider)) { - $this->container->bind($provider); - } - } - - // 自动读取配置文件 - if (is_dir($path . 'config')) { - $dir = $path . 'config'; - } elseif (is_dir($this->configPath . $module)) { - $dir = $this->configPath . $module; - } - - $files = isset($dir) ? scandir($dir) : []; - - foreach ($files as $file) { - if ('.' . pathinfo($file, PATHINFO_EXTENSION) === $this->configExt) { - $filename = $dir . DIRECTORY_SEPARATOR . $file; - $this->config->load($filename, pathinfo($file, PATHINFO_FILENAME)); - } - } - } - - $this->request->filter($this->config('app.default_filter')); - } - - /** - * 执行应用程序 - * @access public - * @return Response - * @throws Exception - */ - public function run() - { - try { - // 初始化应用 - $this->initialize(); - - if ($this->bind) { - // 模块/控制器绑定 - $this->route->bind($this->bind); - } elseif ($this->config('app.auto_bind_module')) { - // 入口自动绑定 - $name = pathinfo($this->request->baseFile(), PATHINFO_FILENAME); - if ($name && 'index' != $name && is_dir($this->appPath . $name)) { - $this->route->bind($name); - } - } - - // 监听app_dispatch - $this->hook->listen('app_dispatch'); - - // 获取应用调度信息 - $dispatch = $this->dispatch; - if (empty($dispatch)) { - // 路由检测 - $this->route - ->lazy($this->config('app.url_lazy_route')) - ->autoSearchController($this->config('app.controller_auto_search')) - ->mergeRuleRegex($this->config('app.route_rule_merge')); - - $dispatch = $this->routeCheck(); - } - - // 记录当前调度信息 - $this->request->dispatch($dispatch); - - // 记录路由和请求信息 - if ($this->debug) { - $this->log('[ ROUTE ] ' . var_export($this->request->routeInfo(), true)); - $this->log('[ HEADER ] ' . var_export($this->request->header(), true)); - $this->log('[ PARAM ] ' . var_export($this->request->param(), true)); - } - - // 监听app_begin - $this->hook->listen('app_begin'); - - // 请求缓存检查 - $this->request->cache( - $this->config('app.request_cache'), - $this->config('app.request_cache_expire'), - $this->config('app.request_cache_except') - ); - - $data = null; - } catch (HttpResponseException $exception) { - $dispatch = null; - $data = $exception->getResponse(); - } - - $this->middleware->add(function (Request $request, $next) use ($dispatch, $data) { - if (is_null($data)) { - try { - // 执行调度 - $data = $dispatch->run(); - } catch (HttpResponseException $exception) { - $data = $exception->getResponse(); - } - } - - // 输出数据到客户端 - if ($data instanceof Response) { - $response = $data; - } elseif (!is_null($data)) { - // 默认自动识别响应输出类型 - $isAjax = $request->isAjax(); - $type = $isAjax ? $this->config('app.default_ajax_return') : $this->config('app.default_return_type'); - - $response = Response::create($data, $type); - } else { - $response = Response::create(); - } - return $response; - }); - - $response = $this->middleware->dispatch($this->request); - - // 监听app_end - $this->hook->listen('app_end', $response); - - return $response; - } - - protected function loadLangPack() - { - // 读取默认语言 - $this->lang->range($this->config('app.default_lang')); - if ($this->config('app.lang_switch_on')) { - // 开启多语言机制 检测当前语言 - $this->lang->detect(); - } - - $this->request->langset($this->lang->range()); - - // 加载系统语言包 - $this->lang->load([ - $this->thinkPath . 'lang' . DIRECTORY_SEPARATOR . $this->request->langset() . '.php', - $this->appPath . 'lang' . DIRECTORY_SEPARATOR . $this->request->langset() . '.php', - ]); - } - - /** - * 设置当前请求的调度信息 - * @access public - * @param Dispatch $dispatch 调度信息 - * @return $this - */ - public function dispatch(Dispatch $dispatch) - { - $this->dispatch = $dispatch; - return $this; - } - - /** - * 记录调试信息 - * @access public - * @param mixed $msg 调试信息 - * @param string $type 信息类型 - * @return void - */ - public function log($msg, $type = 'info') - { - $this->debug && $this->log->record($msg, $type); - } - - /** - * 获取配置参数 为空则获取所有配置 - * @access public - * @param string $name 配置参数名(支持二级配置 .号分割) - * @return mixed - */ - public function config($name = '') - { - return $this->config->get($name); - } - - /** - * URL路由检测(根据PATH_INFO) - * @access public - * @return Dispatch - */ - public function routeCheck() - { - $path = $this->request->path(); - $depr = $this->config('app.pathinfo_depr'); - - // 路由检测 - $files = scandir($this->routePath); - foreach ($files as $file) { - if (strpos($file, '.php')) { - $filename = $this->routePath . $file; - // 导入路由配置 - $rules = include $filename; - if (is_array($rules)) { - $this->route->import($rules); - } - } - } - - if ($this->config('app.route_annotation')) { - // 自动生成路由定义 - if ($this->debug) { - $this->build->buildRoute($this->config('app.controller_suffix')); - } - - $filename = $this->runtimePath . 'build_route.php'; - - if (is_file($filename)) { - include $filename; - } - } - - if (is_file($this->runtimePath . 'rule_regex.php')) { - $this->route->setRuleRegexs(include $this->runtimePath . 'rule_regex.php'); - } - - // 是否强制路由模式 - $must = !is_null($this->routeMust) ? $this->routeMust : $this->config('app.url_route_must'); - - // 路由检测 返回一个Dispatch对象 - return $this->route->check($path, $depr, $must, $this->config('app.route_complete_match')); - } - - /** - * 设置应用的路由检测机制 - * @access public - * @param bool $must 是否强制检测路由 - * @return $this - */ - public function routeMust($must = false) - { - $this->routeMust = $must; - return $this; - } - - /** - * 解析模块和类名 - * @access protected - * @param string $name 资源地址 - * @param string $layer 验证层名称 - * @param bool $appendSuffix 是否添加类名后缀 - * @return array - */ - protected function parseModuleAndClass($name, $layer, $appendSuffix) - { - if (false !== strpos($name, '\\')) { - $class = $name; - $module = $this->request->module(); - } else { - if (strpos($name, '/')) { - list($module, $name) = explode('/', $name, 2); - } else { - $module = $this->request->module(); - } - - $class = $this->parseClass($module, $layer, $name, $appendSuffix); - } - - return [$module, $class]; - } - - /** - * 实例化应用类库 - * @access public - * @param string $name 类名称 - * @param string $layer 业务层名称 - * @param bool $appendSuffix 是否添加类名后缀 - * @param string $common 公共模块名 - * @return object - * @throws ClassNotFoundException - */ - public function create($name, $layer, $appendSuffix = false, $common = 'common') - { - $guid = $name . $layer; - - if ($this->__isset($guid)) { - return $this->__get($guid); - } - - list($module, $class) = $this->parseModuleAndClass($name, $layer, $appendSuffix); - - if (class_exists($class)) { - $object = $this->__get($class); - } else { - $class = str_replace('\\' . $module . '\\', '\\' . $common . '\\', $class); - if (class_exists($class)) { - $object = $this->__get($class); - } else { - throw new ClassNotFoundException('class not exists:' . $class, $class); - } - } - - $this->__set($guid, $class); - - return $object; - } - - /** - * 实例化(分层)模型 - * @access public - * @param string $name Model名称 - * @param string $layer 业务层名称 - * @param bool $appendSuffix 是否添加类名后缀 - * @param string $common 公共模块名 - * @return Model - * @throws ClassNotFoundException - */ - public function model($name = '', $layer = 'model', $appendSuffix = false, $common = 'common') - { - return $this->create($name, $layer, $appendSuffix, $common); - } - - /** - * 实例化(分层)控制器 格式:[模块名/]控制器名 - * @access public - * @param string $name 资源地址 - * @param string $layer 控制层名称 - * @param bool $appendSuffix 是否添加类名后缀 - * @param string $empty 空控制器名称 - * @return object - * @throws ClassNotFoundException - */ - public function controller($name, $layer = 'controller', $appendSuffix = false, $empty = '') - { - list($module, $class) = $this->parseModuleAndClass($name, $layer, $appendSuffix); - - if (class_exists($class)) { - return $this->__get($class); - } elseif ($empty && class_exists($emptyClass = $this->parseClass($module, $layer, $empty, $appendSuffix))) { - return $this->__get($emptyClass); - } - - throw new ClassNotFoundException('class not exists:' . $class, $class); - } - - /** - * 实例化验证类 格式:[模块名/]验证器名 - * @access public - * @param string $name 资源地址 - * @param string $layer 验证层名称 - * @param bool $appendSuffix 是否添加类名后缀 - * @param string $common 公共模块名 - * @return Validate - * @throws ClassNotFoundException - */ - public function validate($name = '', $layer = 'validate', $appendSuffix = false, $common = 'common') - { - $name = $name ?: $this->config('default_validate'); - - if (empty($name)) { - return new Validate; - } - - return $this->create($name, $layer, $appendSuffix, $common); - } - - /** - * 数据库初始化 - * @access public - * @param mixed $config 数据库配置 - * @param bool|string $name 连接标识 true 强制重新连接 - * @return \think\db\Query - */ - public function db($config = [], $name = false) - { - return Db::connect($config, $name); - } - - /** - * 远程调用模块的操作方法 参数格式 [模块/控制器/]操作 - * @access public - * @param string $url 调用地址 - * @param string|array $vars 调用参数 支持字符串和数组 - * @param string $layer 要调用的控制层名称 - * @param bool $appendSuffix 是否添加类名后缀 - * @return mixed - * @throws ClassNotFoundException - */ - public function action($url, $vars = [], $layer = 'controller', $appendSuffix = false) - { - $info = pathinfo($url); - $action = $info['basename']; - $module = '.' != $info['dirname'] ? $info['dirname'] : $this->request->controller(); - $class = $this->controller($module, $layer, $appendSuffix); - - if (is_scalar($vars)) { - if (strpos($vars, '=')) { - parse_str($vars, $vars); - } else { - $vars = [$vars]; - } - } - - return $this->container->invokeMethod([$class, $action . $this->config('action_suffix')], $vars); - } - - /** - * 解析应用类的类名 - * @access public - * @param string $module 模块名 - * @param string $layer 层名 controller model ... - * @param string $name 类名 - * @param bool $appendSuffix - * @return string - */ - public function parseClass($module, $layer, $name, $appendSuffix = false) - { - $name = str_replace(['/', '.'], '\\', $name); - $array = explode('\\', $name); - $class = Loader::parseName(array_pop($array), 1) . ($this->suffix || $appendSuffix ? ucfirst($layer) : ''); - $path = $array ? implode('\\', $array) . '\\' : ''; - - return $this->namespace . '\\' . ($module ? $module . '\\' : '') . $layer . '\\' . $path . $class; - } - - /** - * 获取框架版本 - * @access public - * @return string - */ - public function version() - { - return static::VERSION; - } - - /** - * 是否为调试模式 - * @access public - * @return bool - */ - public function isDebug() - { - return $this->debug; - } - - /** - * 获取模块路径 - * @access public - * @return string - */ - public function getModulePath() - { - return $this->modulePath; - } - - /** - * 设置模块路径 - * @access public - * @param string $path 路径 - * @return void - */ - public function setModulePath($path) - { - $this->modulePath = $path; - $this->env->set('module_path', $path); - } - - /** - * 获取应用根目录 - * @access public - * @return string - */ - public function getRootPath() - { - return $this->rootPath; - } - - /** - * 获取应用类库目录 - * @access public - * @return string - */ - public function getAppPath() - { - if (is_null($this->appPath)) { - $this->appPath = Loader::getRootPath() . 'application' . DIRECTORY_SEPARATOR; - } - - return $this->appPath; - } - - /** - * 获取应用运行时目录 - * @access public - * @return string - */ - public function getRuntimePath() - { - return $this->runtimePath; - } - - /** - * 获取核心框架目录 - * @access public - * @return string - */ - public function getThinkPath() - { - return $this->thinkPath; - } - - /** - * 获取路由目录 - * @access public - * @return string - */ - public function getRoutePath() - { - return $this->routePath; - } - - /** - * 获取应用配置目录 - * @access public - * @return string - */ - public function getConfigPath() - { - return $this->configPath; - } - - /** - * 获取配置后缀 - * @access public - * @return string - */ - public function getConfigExt() - { - return $this->configExt; - } - - /** - * 获取应用类库命名空间 - * @access public - * @return string - */ - public function getNamespace() - { - return $this->namespace; - } - - /** - * 设置应用类库命名空间 - * @access public - * @param string $namespace 命名空间名称 - * @return $this - */ - public function setNamespace($namespace) - { - $this->namespace = $namespace; - return $this; - } - - /** - * 是否启用类库后缀 - * @access public - * @return bool - */ - public function getSuffix() - { - return $this->suffix; - } - - /** - * 获取应用开启时间 - * @access public - * @return float - */ - public function getBeginTime() - { - return $this->beginTime; - } - - /** - * 获取应用初始内存占用 - * @access public - * @return integer - */ - public function getBeginMem() - { - return $this->beginMem; - } - - /** - * 获取容器实例 - * @access public - * @return Container - */ - public function container() - { - return $this->container; - } - - public function __set($name, $value) - { - $this->container->bind($name, $value); - } - - public function __get($name) - { - return $this->container->make($name); - } - - public function __isset($name) - { - return $this->container->bound($name); - } - - public function __unset($name) - { - $this->container->__unset($name); - } - - public function offsetExists($key) - { - return $this->__isset($key); - } - - public function offsetGet($key) - { - return $this->__get($key); - } - - public function offsetSet($key, $value) - { - $this->__set($key, $value); - } - - public function offsetUnset($key) - { - $this->__unset($key); - } -} diff --git a/thinkphp/library/think/Build.php b/thinkphp/library/think/Build.php deleted file mode 100644 index 6de014023..000000000 --- a/thinkphp/library/think/Build.php +++ /dev/null @@ -1,407 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think; - -class Build -{ - /** - * 应用对象 - * @var App - */ - protected $app; - - /** - * 应用目录 - * @var string - */ - protected $basePath; - - public function __construct(App $app) - { - $this->app = $app; - $this->basePath = $this->app->getAppPath(); - } - - /** - * 根据传入的build资料创建目录和文件 - * @access public - * @param array $build build列表 - * @param string $namespace 应用类库命名空间 - * @param bool $suffix 类库后缀 - * @return void - */ - public function run(array $build = [], $namespace = 'app', $suffix = false) - { - // 锁定 - $lockfile = $this->basePath . 'build.lock'; - - if (is_writable($lockfile)) { - return; - } elseif (!touch($lockfile)) { - throw new Exception('应用目录[' . $this->basePath . ']不可写,目录无法自动生成!
          请手动生成项目目录~', 10006); - } - - foreach ($build as $module => $list) { - if ('__dir__' == $module) { - // 创建目录列表 - $this->buildDir($list); - } elseif ('__file__' == $module) { - // 创建文件列表 - $this->buildFile($list); - } else { - // 创建模块 - $this->module($module, $list, $namespace, $suffix); - } - } - - // 解除锁定 - unlink($lockfile); - } - - /** - * 创建目录 - * @access protected - * @param array $list 目录列表 - * @return void - */ - protected function buildDir($list) - { - foreach ($list as $dir) { - $this->checkDirBuild($this->basePath . $dir); - } - } - - /** - * 创建文件 - * @access protected - * @param array $list 文件列表 - * @return void - */ - protected function buildFile($list) - { - foreach ($list as $file) { - if (!is_dir($this->basePath . dirname($file))) { - // 创建目录 - mkdir($this->basePath . dirname($file), 0755, true); - } - - if (!is_file($this->basePath . $file)) { - file_put_contents($this->basePath . $file, 'php' == pathinfo($file, PATHINFO_EXTENSION) ? "basePath . $module)) { - // 创建模块目录 - mkdir($this->basePath . $module); - } - - if (basename($this->app->getRuntimePath()) != $module) { - // 创建配置文件和公共文件 - $this->buildCommon($module); - // 创建模块的默认页面 - $this->buildHello($module, $namespace, $suffix); - } - - if (empty($list)) { - // 创建默认的模块目录和文件 - $list = [ - '__file__' => ['common.php'], - '__dir__' => ['controller', 'model', 'view', 'config'], - ]; - } - - // 创建子目录和文件 - foreach ($list as $path => $file) { - $modulePath = $this->basePath . $module . DIRECTORY_SEPARATOR; - if ('__dir__' == $path) { - // 生成子目录 - foreach ($file as $dir) { - $this->checkDirBuild($modulePath . $dir); - } - } elseif ('__file__' == $path) { - // 生成(空白)文件 - foreach ($file as $name) { - if (!is_file($modulePath . $name)) { - file_put_contents($modulePath . $name, 'php' == pathinfo($name, PATHINFO_EXTENSION) ? "checkDirBuild(dirname($filename)); - $content = ''; - break; - default: - // 其他文件 - $content = "app->getNameSpace(); - $modules = glob($this->basePath . '*', GLOB_ONLYDIR); - $content = 'app->config('app.url_controller_layer'); - } - - foreach ($modules as $module) { - $module = basename($module); - - if (in_array($module, $this->app->config('app.deny_module_list'))) { - continue; - } - - $path = $this->basePath . $module . DIRECTORY_SEPARATOR . $layer . DIRECTORY_SEPARATOR; - $content .= $this->buildDirRoute($path, $namespace, $module, $suffix, $layer); - } - - $filename = $this->app->getRuntimePath() . 'build_route.php'; - file_put_contents($filename, $content); - - return $filename; - } - - /** - * 生成子目录控制器类的路由规则 - * @access protected - * @param string $path 控制器目录 - * @param string $namespace 应用命名空间 - * @param string $module 模块 - * @param bool $suffix 类库后缀 - * @param string $layer 控制器层目录名 - * @return string - */ - protected function buildDirRoute($path, $namespace, $module, $suffix, $layer) - { - $content = ''; - $controllers = glob($path . '*.php'); - - foreach ($controllers as $controller) { - $controller = basename($controller, '.php'); - - if ($suffix) { - // 控制器后缀 - $controller = substr($controller, 0, -10); - } - - $class = new \ReflectionClass($namespace . '\\' . $module . '\\' . $layer . '\\' . $controller); - - if (strpos($layer, DIRECTORY_SEPARATOR)) { - // 多级控制器 - $level = str_replace(DIRECTORY_SEPARATOR, '.', substr($layer, 11)); - $controller = $level . '.' . $controller; - } - - $content .= $this->getControllerRoute($class, $module, $controller); - } - - $subDir = glob($path . '*', GLOB_ONLYDIR); - - foreach ($subDir as $dir) { - $content .= $this->buildDirRoute($dir . DIRECTORY_SEPARATOR, $namespace, $module, $suffix, $layer . '\\' . basename($dir)); - } - - return $content; - } - - /** - * 生成控制器类的路由规则 - * @access protected - * @param string $class 控制器完整类名 - * @param string $module 模块名 - * @param string $controller 控制器名 - * @return string - */ - protected function getControllerRoute($class, $module, $controller) - { - $content = ''; - $comment = $class->getDocComment(); - - if (false !== strpos($comment, '@route(')) { - $comment = $this->parseRouteComment($comment); - $route = $module . '/' . $controller; - $comment = preg_replace('/route\(\s?([\'\"][\-\_\/\:\<\>\?\$\[\]\w]+[\'\"])\s?\)/is', 'Route::resourece(\1,\'' . $route . '\')', $comment); - $content .= PHP_EOL . $comment; - } elseif (false !== strpos($comment, '@alias(')) { - $comment = $this->parseRouteComment($comment, '@alias('); - $route = $module . '/' . $controller; - $comment = preg_replace('/alias\(\s?([\'\"][\-\_\/\w]+[\'\"])\s?\)/is', 'Route::alias(\1,\'' . $route . '\')', $comment); - $content .= PHP_EOL . $comment; - } - - $methods = $class->getMethods(\ReflectionMethod::IS_PUBLIC); - - foreach ($methods as $method) { - $comment = $this->getMethodRouteComment($module, $controller, $method); - if ($comment) { - $content .= PHP_EOL . $comment; - } - } - - return $content; - } - - /** - * 解析路由注释 - * @access protected - * @param string $comment - * @param string $tag - * @return string - */ - protected function parseRouteComment($comment, $tag = '@route(') - { - $comment = substr($comment, 3, -2); - $comment = explode(PHP_EOL, substr(strstr(trim($comment), $tag), 1)); - $comment = array_map(function ($item) {return trim(trim($item), ' \t*');}, $comment); - - if (count($comment) > 1) { - $key = array_search('', $comment); - $comment = array_slice($comment, 0, false === $key ? 1 : $key); - } - - $comment = implode(PHP_EOL . "\t", $comment) . ';'; - - if (strpos($comment, '{')) { - $comment = preg_replace_callback('/\{\s?.*?\s?\}/s', function ($matches) { - return false !== strpos($matches[0], '"') ? '[' . substr(var_export(json_decode($matches[0], true), true), 7, -1) . ']' : $matches[0]; - }, $comment); - } - return $comment; - } - - /** - * 获取方法的路由注释 - * @access protected - * @param string $module 模块 - * @param string $controller 控制器名 - * @param \ReflectMethod $reflectMethod - * @return string|void - */ - protected function getMethodRouteComment($module, $controller, $reflectMethod) - { - $comment = $reflectMethod->getDocComment(); - - if (false !== strpos($comment, '@route(')) { - $comment = $this->parseRouteComment($comment); - $action = $reflectMethod->getName(); - - if ($suffix = $this->app->config('app.action_suffix')) { - $action = substr($action, 0, -strlen($suffix)); - } - - $route = $module . '/' . $controller . '/' . $action; - $comment = preg_replace('/route\s?\(\s?([\'\"][\-\_\/\:\<\>\?\$\[\]\w]+[\'\"])\s?\,?\s?[\'\"]?(\w+?)[\'\"]?\s?\)/is', 'Route::\2(\1,\'' . $route . '\')', $comment); - $comment = preg_replace('/route\s?\(\s?([\'\"][\-\_\/\:\<\>\?\$\[\]\w]+[\'\"])\s?\)/is', 'Route::rule(\1,\'' . $route . '\')', $comment); - - return $comment; - } - } - - /** - * 创建模块的欢迎页面 - * @access protected - * @param string $module 模块名 - * @param string $namespace 应用类库命名空间 - * @param bool $suffix 类库后缀 - * @return void - */ - protected function buildHello($module, $namespace, $suffix = false) - { - $filename = $this->basePath . ($module ? $module . DIRECTORY_SEPARATOR : '') . 'controller' . DIRECTORY_SEPARATOR . 'Index' . ($suffix ? 'Controller' : '') . '.php'; - if (!is_file($filename)) { - $content = file_get_contents($this->app->getThinkPath() . 'tpl' . DIRECTORY_SEPARATOR . 'default_index.tpl'); - $content = str_replace(['{$app}', '{$module}', '{layer}', '{$suffix}'], [$namespace, $module ? $module . '\\' : '', 'controller', $suffix ? 'Controller' : ''], $content); - $this->checkDirBuild(dirname($filename)); - - file_put_contents($filename, $content); - } - } - - /** - * 创建模块的公共文件 - * @access protected - * @param string $module 模块名 - * @return void - */ - protected function buildCommon($module) - { - $filename = $this->app->getConfigPath() . ($module ? $module . DIRECTORY_SEPARATOR : '') . 'app.php'; - $this->checkDirBuild(dirname($filename)); - - if (!is_file($filename)) { - file_put_contents($filename, "basePath . ($module ? $module . DIRECTORY_SEPARATOR : '') . 'common.php'; - - if (!is_file($filename)) { - file_put_contents($filename, " -// +---------------------------------------------------------------------- - -namespace think; - -use think\cache\Driver; - -class Cache -{ - /** - * 缓存实例 - * @var array - */ - protected $instance = []; - - /** - * 应用对象 - * @var App - */ - protected $app; - - /** - * 操作句柄 - * @var object - */ - protected $handler; - - public function __construct(App $app) - { - $this->app = $app; - } - - /** - * 连接缓存 - * @access public - * @param array $options 配置数组 - * @param bool|string $name 缓存连接标识 true 强制重新连接 - * @return Driver - */ - public function connect(array $options = [], $name = false) - { - $type = !empty($options['type']) ? $options['type'] : 'File'; - - if (false === $name) { - $name = md5(serialize($options)); - } - - if (true === $name || !isset($this->instance[$name])) { - $class = false !== strpos($type, '\\') ? $type : '\\think\\cache\\driver\\' . ucwords($type); - - // 记录初始化信息 - $this->app->log('[ CACHE ] INIT ' . $type); - - if (true === $name) { - $name = md5(serialize($options)); - } - - $this->instance[$name] = new $class($options); - } - - return $this->instance[$name]; - } - - /** - * 自动初始化缓存 - * @access public - * @param array $options 配置数组 - * @return Driver - */ - public function init(array $options = []) - { - if (is_null($this->handler)) { - // 自动初始化缓存 - $config = $this->app['config']; - - if (empty($options) && 'complex' == $config->get('cache.type')) { - $default = $config->get('cache.default'); - $options = $config->get('cache.' . $default['type']) ?: $default; - } elseif (empty($options)) { - $options = $config->pull('cache'); - } - - $this->handler = $this->connect($options); - } - - return $this->handler; - } - - /** - * 切换缓存类型 需要配置 cache.type 为 complex - * @access public - * @param string $name 缓存标识 - * @return Driver - */ - public function store($name = '') - { - if ('' !== $name && 'complex' == $this->app['config']->get('cache.type')) { - return $this->connect($this->app['config']->get('cache.' . $name), strtolower($name)); - } - - return $this->init(); - } - - public function __call($method, $args) - { - return call_user_func_array([$this->init(), $method], $args); - } - -} diff --git a/thinkphp/library/think/Collection.php b/thinkphp/library/think/Collection.php deleted file mode 100644 index 929b51939..000000000 --- a/thinkphp/library/think/Collection.php +++ /dev/null @@ -1,388 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think; - -use ArrayAccess; -use ArrayIterator; -use Countable; -use IteratorAggregate; -use JsonSerializable; - -class Collection implements ArrayAccess, Countable, IteratorAggregate, JsonSerializable -{ - /** - * 数据集数据 - * @var array - */ - protected $items = []; - - public function __construct($items = []) - { - $this->items = $this->convertToArray($items); - } - - public static function make($items = []) - { - return new static($items); - } - - /** - * 是否为空 - * @access public - * @return bool - */ - public function isEmpty() - { - return empty($this->items); - } - - public function toArray() - { - return array_map(function ($value) { - return ($value instanceof Model || $value instanceof self) ? $value->toArray() : $value; - }, $this->items); - } - - public function all() - { - return $this->items; - } - - /** - * 合并数组 - * - * @access public - * @param mixed $items - * @return static - */ - public function merge($items) - { - return new static(array_merge($this->items, $this->convertToArray($items))); - } - - /** - * 比较数组,返回差集 - * - * @access public - * @param mixed $items - * @return static - */ - public function diff($items) - { - return new static(array_diff($this->items, $this->convertToArray($items))); - } - - /** - * 交换数组中的键和值 - * - * @access public - * @return static - */ - public function flip() - { - return new static(array_flip($this->items)); - } - - /** - * 比较数组,返回交集 - * - * @access public - * @param mixed $items - * @return static - */ - public function intersect($items) - { - return new static(array_intersect($this->items, $this->convertToArray($items))); - } - - /** - * 返回数组中所有的键名 - * - * @access public - * @return static - */ - public function keys() - { - return new static(array_keys($this->items)); - } - - /** - * 删除数组的最后一个元素(出栈) - * - * @access public - * @return mixed - */ - public function pop() - { - return array_pop($this->items); - } - - /** - * 通过使用用户自定义函数,以字符串返回数组 - * - * @access public - * @param callable $callback - * @param mixed $initial - * @return mixed - */ - public function reduce(callable $callback, $initial = null) - { - return array_reduce($this->items, $callback, $initial); - } - - /** - * 以相反的顺序返回数组。 - * - * @access public - * @return static - */ - public function reverse() - { - return new static(array_reverse($this->items)); - } - - /** - * 删除数组中首个元素,并返回被删除元素的值 - * - * @access public - * @return mixed - */ - public function shift() - { - return array_shift($this->items); - } - - /** - * 在数组结尾插入一个元素 - * @access public - * @param mixed $value - * @param mixed $key - * @return void - */ - public function push($value, $key = null) - { - if (is_null($key)) { - $this->items[] = $value; - } else { - $this->items[$key] = $value; - } - } - - /** - * 把一个数组分割为新的数组块. - * - * @access public - * @param int $size - * @param bool $preserveKeys - * @return static - */ - public function chunk($size, $preserveKeys = false) - { - $chunks = []; - - foreach (array_chunk($this->items, $size, $preserveKeys) as $chunk) { - $chunks[] = new static($chunk); - } - - return new static($chunks); - } - - /** - * 在数组开头插入一个元素 - * @access public - * @param mixed $value - * @param mixed $key - * @return void - */ - public function unshift($value, $key = null) - { - if (is_null($key)) { - array_unshift($this->items, $value); - } else { - $this->items = [$key => $value] + $this->items; - } - } - - /** - * 给每个元素执行个回调 - * - * @access public - * @param callable $callback - * @return $this - */ - public function each(callable $callback) - { - foreach ($this->items as $key => $item) { - $result = $callback($item, $key); - - if (false === $result) { - break; - } elseif (!is_object($item)) { - $this->items[$key] = $result; - } - } - - return $this; - } - - /** - * 用回调函数过滤数组中的元素 - * @access public - * @param callable|null $callback - * @return static - */ - public function filter(callable $callback = null) - { - if ($callback) { - return new static(array_filter($this->items, $callback)); - } - - return new static(array_filter($this->items)); - } - - /** - * 返回数据中指定的一列 - * @access public - * @param mixed $columnKey 键名 - * @param mixed $indexKey 作为索引值的列 - * @return array - */ - public function column($columnKey, $indexKey = null) - { - return array_column($this->items, $columnKey, $indexKey); - } - - /** - * 对数组排序 - * - * @access public - * @param callable|null $callback - * @return static - */ - public function sort(callable $callback = null) - { - $items = $this->items; - - $callback = $callback ?: function ($a, $b) { - return $a == $b ? 0 : (($a < $b) ? -1 : 1); - - }; - - uasort($items, $callback); - - return new static($items); - } - - /** - * 将数组打乱 - * - * @access public - * @return static - */ - public function shuffle() - { - $items = $this->items; - - shuffle($items); - - return new static($items); - } - - /** - * 截取数组 - * - * @access public - * @param int $offset - * @param int $length - * @param bool $preserveKeys - * @return static - */ - public function slice($offset, $length = null, $preserveKeys = false) - { - return new static(array_slice($this->items, $offset, $length, $preserveKeys)); - } - - // ArrayAccess - public function offsetExists($offset) - { - return array_key_exists($offset, $this->items); - } - - public function offsetGet($offset) - { - return $this->items[$offset]; - } - - public function offsetSet($offset, $value) - { - if (is_null($offset)) { - $this->items[] = $value; - } else { - $this->items[$offset] = $value; - } - } - - public function offsetUnset($offset) - { - unset($this->items[$offset]); - } - - //Countable - public function count() - { - return count($this->items); - } - - //IteratorAggregate - public function getIterator() - { - return new ArrayIterator($this->items); - } - - //JsonSerializable - public function jsonSerialize() - { - return $this->toArray(); - } - - /** - * 转换当前数据集为JSON字符串 - * @access public - * @param integer $options json参数 - * @return string - */ - public function toJson($options = JSON_UNESCAPED_UNICODE) - { - return json_encode($this->toArray(), $options); - } - - public function __toString() - { - return $this->toJson(); - } - - /** - * 转换成数组 - * - * @access public - * @param mixed $items - * @return array - */ - protected function convertToArray($items) - { - if ($items instanceof self) { - return $items->all(); - } - - return (array) $items; - } -} diff --git a/thinkphp/library/think/Config.php b/thinkphp/library/think/Config.php deleted file mode 100644 index 603c655f4..000000000 --- a/thinkphp/library/think/Config.php +++ /dev/null @@ -1,313 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think; - -class Config implements \ArrayAccess -{ - /** - * 配置参数 - * @var array - */ - private $config = []; - - /** - * 缓存前缀 - * @var string - */ - private $prefix = 'app'; - - /** - * 设置配置参数默认前缀 - * @access public - * @param string $prefix 前缀 - * @return void - */ - public function setDefaultPrefix($prefix) - { - $this->prefix = $prefix; - } - - /** - * 解析配置文件或内容 - * @access public - * @param string $config 配置文件路径或内容 - * @param string $type 配置解析类型 - * @param string $name 配置名(如设置即表示二级配置) - * @return mixed - */ - public function parse($config, $type = '', $name = '') - { - if (empty($type)) { - $type = pathinfo($config, PATHINFO_EXTENSION); - } - - $class = false !== strpos($type, '\\') ? $type : '\\think\\config\\driver\\' . ucwords($type); - - return $this->set((new $class())->parse($config), $name); - } - - /** - * 加载配置文件(多种格式) - * @access public - * @param string $file 配置文件名 - * @param string $name 一级配置名 - * @return mixed - */ - public function load($file, $name = '') - { - if (is_file($file)) { - $name = strtolower($name); - $type = pathinfo($file, PATHINFO_EXTENSION); - - if ('php' == $type) { - return $this->set(include $file, $name); - } elseif ('yaml' == $type && function_exists('yaml_parse_file')) { - return $this->set(yaml_parse_file($file), $name); - } - return $this->parse($file, $type, $name); - } - - return $this->config; - } - - /** - * 自动加载配置文件(PHP格式) - * @access public - * @param string $name 配置名 - * @return void - */ - protected function autoLoad($name) - { - // 如果尚未载入 则动态加载配置文件 - $module = Container::get('request')->module(); - $module = $module ? $module . DIRECTORY_SEPARATOR : ''; - $app = Container::get('app'); - $path = $app->getAppPath() . $module; - - if (is_dir($path . 'config')) { - $file = $path . 'config' . DIRECTORY_SEPARATOR . $name . $app->getConfigExt(); - } elseif (is_dir($app->getConfigPath() . $module)) { - $file = $app->getConfigPath() . $module . $name . $app->getConfigExt(); - } - - if (isset($file) && is_file($file)) { - $this->load($file, $name); - } - } - - /** - * 检测配置是否存在 - * @access public - * @param string $name 配置参数名(支持多级配置 .号分割) - * @return bool - */ - public function has($name) - { - if (!strpos($name, '.')) { - $name = $this->prefix . '.' . $name; - } - - return !is_null($this->get($name)) ? true : false; - } - - /** - * 获取一级配置 - * @access public - * @param string $name 一级配置名 - * @return array - */ - public function pull($name) - { - $name = strtolower($name); - - if (!isset($this->config[$name])) { - // 如果尚未载入 则动态加载配置文件 - $this->autoLoad($name); - } - - return isset($this->config[$name]) ? $this->config[$name] : []; - } - - /** - * 获取配置参数 为空则获取所有配置 - * @access public - * @param string $name 配置参数名(支持多级配置 .号分割) - * @return mixed - */ - public function get($name = null) - { - // 无参数时获取所有 - if (empty($name)) { - return $this->config; - } - - if (!strpos($name, '.')) { - $name = $this->prefix . '.' . $name; - } elseif ('.' == substr($name, -1)) { - return $this->pull(substr($name, 0, -1)); - } - - $name = explode('.', $name); - $name[0] = strtolower($name[0]); - $config = $this->config; - - if (!isset($config[$name[0]])) { - // 如果尚未载入 则动态加载配置文件 - $this->autoLoad($name[0]); - } - - // 按.拆分成多维数组进行判断 - foreach ($name as $val) { - if (isset($config[$val])) { - $config = $config[$val]; - } else { - return; - } - } - - return $config; - } - - /** - * 设置配置参数 name为数组则为批量设置 - * @access public - * @param string|array $name 配置参数名(支持三级配置 .号分割) - * @param mixed $value 配置值 - * @return mixed - */ - public function set($name, $value = null) - { - if (is_string($name)) { - if (!strpos($name, '.')) { - $name = $this->prefix . '.' . $name; - } - - $name = explode('.', $name, 3); - - if (count($name) == 2) { - $this->config[strtolower($name[0])][$name[1]] = $value; - } else { - $this->config[strtolower($name[0])][$name[1]][$name[2]] = $value; - } - - return $value; - } elseif (is_array($name)) { - // 批量设置 - if (!empty($value)) { - if (isset($this->config[$value])) { - $result = array_merge($this->config[$value], $name); - } else { - $result = $name; - } - - $this->config[$value] = $result; - } else { - $result = $this->config = array_merge($this->config, $name); - } - } else { - // 为空直接返回 已有配置 - $result = $this->config; - } - - return $result; - } - - /** - * 移除配置 - * @access public - * @param string $name 配置参数名(支持三级配置 .号分割) - * @return void - */ - public function remove($name) - { - if (!strpos($name, '.')) { - $name = $this->prefix . '.' . $name; - } - - $name = explode('.', $name, 3); - - if (count($name) == 2) { - unset($this->config[strtolower($name[0])][$name[1]]); - } else { - unset($this->config[strtolower($name[0])][$name[1]][$name[2]]); - } - } - - /** - * 重置配置参数 - * @access public - * @param string $prefix 配置前缀名 - * @return void - */ - public function reset($prefix = '') - { - if ('' === $prefix) { - $this->config = []; - } else { - $this->config[$prefix] = []; - } - } - - /** - * 设置配置 - * @access public - * @param string $name 参数名 - * @param mixed $value 值 - */ - public function __set($name, $value) - { - return $this->set($name, $value); - } - - /** - * 获取配置参数 - * @access public - * @param string $name 参数名 - * @return mixed - */ - public function __get($name) - { - return $this->get($name); - } - - /** - * 检测是否存在参数 - * @access public - * @param string $name 参数名 - * @return bool - */ - public function __isset($name) - { - return $this->has($name); - } - - // ArrayAccess - public function offsetSet($name, $value) - { - $this->set($name, $value); - } - - public function offsetExists($name) - { - return $this->has($name); - } - - public function offsetUnset($name) - { - $this->remove($name); - } - - public function offsetGet($name) - { - return $this->get($name); - } -} diff --git a/thinkphp/library/think/Console.php b/thinkphp/library/think/Console.php deleted file mode 100644 index 8782aa92e..000000000 --- a/thinkphp/library/think/Console.php +++ /dev/null @@ -1,794 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think; - -use think\console\Command; -use think\console\command\Help as HelpCommand; -use think\console\Input; -use think\console\input\Argument as InputArgument; -use think\console\input\Definition as InputDefinition; -use think\console\input\Option as InputOption; -use think\console\Output; -use think\console\output\driver\Buffer; - -class Console -{ - - private $name; - private $version; - - /** @var Command[] */ - private $commands = []; - - private $wantHelps = false; - - private $catchExceptions = true; - private $autoExit = true; - private $definition; - private $defaultCommand; - - private static $defaultCommands = [ - "think\\console\\command\\Help", - "think\\console\\command\\Lists", - "think\\console\\command\\Build", - "think\\console\\command\\Clear", - "think\\console\\command\\make\\Controller", - "think\\console\\command\\make\\Model", - "think\\console\\command\\make\\Middleware", - "think\\console\\command\\optimize\\Autoload", - "think\\console\\command\\optimize\\Config", - "think\\console\\command\\optimize\\Schema", - "think\\console\\command\\optimize\\Route", - "think\\console\\command\\RunServer", - ]; - - /** - * Console constructor. - * @access public - * @param string $name 名称 - * @param string $version 版本 - * @param null|string $user 执行用户 - */ - public function __construct($name = 'UNKNOWN', $version = 'UNKNOWN', $user = null) - { - $this->name = $name; - $this->version = $version; - - if ($user) { - $this->setUser($user); - } - - $this->defaultCommand = 'list'; - $this->definition = $this->getDefaultInputDefinition(); - - foreach ($this->getDefaultCommands() as $command) { - $this->add($command); - } - } - - /** - * 设置执行用户 - * @param $user - */ - public function setUser($user) - { - $user = posix_getpwnam($user); - if ($user) { - posix_setuid($user['uid']); - posix_setgid($user['gid']); - } - } - - /** - * 初始化 Console - * @access public - * @param bool $run 是否运行 Console - * @return int|Console - */ - public static function init($run = true) - { - static $console; - - if (!$console) { - $config = Container::get('config')->pull('console'); - // 实例化 console - $console = new self($config['name'], $config['version'], $config['user']); - - // 读取指令集 - $file = Container::get('env')->get('app_path') . 'command.php'; - - if (is_file($file)) { - $commands = include $file; - - if (is_array($commands)) { - foreach ($commands as $command) { - if (class_exists($command) && is_subclass_of($command, "\\think\\console\\Command")) { - // 注册指令 - $console->add(new $command()); - } - } - } - } - } - - if ($run) { - // 运行 - return $console->run(); - } else { - return $console; - } - } - - /** - * @access public - * @param string $command - * @param array $parameters - * @param string $driver - * @return Output|Buffer - */ - public static function call($command, array $parameters = [], $driver = 'buffer') - { - $console = self::init(false); - - array_unshift($parameters, $command); - - $input = new Input($parameters); - $output = new Output($driver); - - $console->setCatchExceptions(false); - $console->find($command)->run($input, $output); - - return $output; - } - - /** - * 执行当前的指令 - * @access public - * @return int - * @throws \Exception - * @api - */ - public function run() - { - $input = new Input(); - $output = new Output(); - - $this->configureIO($input, $output); - - try { - $exitCode = $this->doRun($input, $output); - } catch (\Exception $e) { - if (!$this->catchExceptions) { - throw $e; - } - - $output->renderException($e); - - $exitCode = $e->getCode(); - if (is_numeric($exitCode)) { - $exitCode = (int) $exitCode; - if (0 === $exitCode) { - $exitCode = 1; - } - } else { - $exitCode = 1; - } - } - - if ($this->autoExit) { - if ($exitCode > 255) { - $exitCode = 255; - } - - exit($exitCode); - } - - return $exitCode; - } - - /** - * 执行指令 - * @access public - * @param Input $input - * @param Output $output - * @return int - */ - public function doRun(Input $input, Output $output) - { - if (true === $input->hasParameterOption(['--version', '-V'])) { - $output->writeln($this->getLongVersion()); - - return 0; - } - - $name = $this->getCommandName($input); - - if (true === $input->hasParameterOption(['--help', '-h'])) { - if (!$name) { - $name = 'help'; - $input = new Input(['help']); - } else { - $this->wantHelps = true; - } - } - - if (!$name) { - $name = $this->defaultCommand; - $input = new Input([$this->defaultCommand]); - } - - $command = $this->find($name); - - $exitCode = $this->doRunCommand($command, $input, $output); - - return $exitCode; - } - - /** - * 设置输入参数定义 - * @access public - * @param InputDefinition $definition - */ - public function setDefinition(InputDefinition $definition) - { - $this->definition = $definition; - } - - /** - * 获取输入参数定义 - * @access public - * @return InputDefinition The InputDefinition instance - */ - public function getDefinition() - { - return $this->definition; - } - - /** - * Gets the help message. - * @access public - * @return string A help message. - */ - public function getHelp() - { - return $this->getLongVersion(); - } - - /** - * 是否捕获异常 - * @access public - * @param bool $boolean - * @api - */ - public function setCatchExceptions($boolean) - { - $this->catchExceptions = (bool) $boolean; - } - - /** - * 是否自动退出 - * @access public - * @param bool $boolean - * @api - */ - public function setAutoExit($boolean) - { - $this->autoExit = (bool) $boolean; - } - - /** - * 获取名称 - * @access public - * @return string - */ - public function getName() - { - return $this->name; - } - - /** - * 设置名称 - * @access public - * @param string $name - */ - public function setName($name) - { - $this->name = $name; - } - - /** - * 获取版本 - * @access public - * @return string - * @api - */ - public function getVersion() - { - return $this->version; - } - - /** - * 设置版本 - * @access public - * @param string $version - */ - public function setVersion($version) - { - $this->version = $version; - } - - /** - * 获取完整的版本号 - * @access public - * @return string - */ - public function getLongVersion() - { - if ('UNKNOWN' !== $this->getName() && 'UNKNOWN' !== $this->getVersion()) { - return sprintf('%s version %s', $this->getName(), $this->getVersion()); - } - - return 'Console Tool'; - } - - /** - * 注册一个指令 - * @access public - * @param string $name - * @return Command - */ - public function register($name) - { - return $this->add(new Command($name)); - } - - /** - * 添加指令 - * @access public - * @param Command[] $commands - */ - public function addCommands(array $commands) - { - foreach ($commands as $command) { - $this->add($command); - } - } - - /** - * 添加一个指令 - * @access public - * @param Command $command - * @return Command - */ - public function add(Command $command) - { - $command->setConsole($this); - - if (!$command->isEnabled()) { - $command->setConsole(null); - return; - } - - if (null === $command->getDefinition()) { - throw new \LogicException(sprintf('Command class "%s" is not correctly initialized. You probably forgot to call the parent constructor.', get_class($command))); - } - - $this->commands[$command->getName()] = $command; - - foreach ($command->getAliases() as $alias) { - $this->commands[$alias] = $command; - } - - return $command; - } - - /** - * 获取指令 - * @access public - * @param string $name 指令名称 - * @return Command - * @throws \InvalidArgumentException - */ - public function get($name) - { - if (!isset($this->commands[$name])) { - throw new \InvalidArgumentException(sprintf('The command "%s" does not exist.', $name)); - } - - $command = $this->commands[$name]; - - if ($this->wantHelps) { - $this->wantHelps = false; - - /** @var HelpCommand $helpCommand */ - $helpCommand = $this->get('help'); - $helpCommand->setCommand($command); - - return $helpCommand; - } - - return $command; - } - - /** - * 某个指令是否存在 - * @access public - * @param string $name 指令名称 - * @return bool - */ - public function has($name) - { - return isset($this->commands[$name]); - } - - /** - * 获取所有的命名空间 - * @access public - * @return array - */ - public function getNamespaces() - { - $namespaces = []; - foreach ($this->commands as $command) { - $namespaces = array_merge($namespaces, $this->extractAllNamespaces($command->getName())); - - foreach ($command->getAliases() as $alias) { - $namespaces = array_merge($namespaces, $this->extractAllNamespaces($alias)); - } - } - - return array_values(array_unique(array_filter($namespaces))); - } - - /** - * 查找注册命名空间中的名称或缩写。 - * @access public - * @param string $namespace - * @return string - * @throws \InvalidArgumentException - */ - public function findNamespace($namespace) - { - $allNamespaces = $this->getNamespaces(); - $expr = preg_replace_callback('{([^:]+|)}', function ($matches) { - return preg_quote($matches[1]) . '[^:]*'; - }, $namespace); - $namespaces = preg_grep('{^' . $expr . '}', $allNamespaces); - - if (empty($namespaces)) { - $message = sprintf('There are no commands defined in the "%s" namespace.', $namespace); - - if ($alternatives = $this->findAlternatives($namespace, $allNamespaces)) { - if (1 == count($alternatives)) { - $message .= "\n\nDid you mean this?\n "; - } else { - $message .= "\n\nDid you mean one of these?\n "; - } - - $message .= implode("\n ", $alternatives); - } - - throw new \InvalidArgumentException($message); - } - - $exact = in_array($namespace, $namespaces, true); - if (count($namespaces) > 1 && !$exact) { - throw new \InvalidArgumentException(sprintf('The namespace "%s" is ambiguous (%s).', $namespace, $this->getAbbreviationSuggestions(array_values($namespaces)))); - } - - return $exact ? $namespace : reset($namespaces); - } - - /** - * 查找指令 - * @access public - * @param string $name 名称或者别名 - * @return Command - * @throws \InvalidArgumentException - */ - public function find($name) - { - $allCommands = array_keys($this->commands); - - $expr = preg_replace_callback('{([^:]+|)}', function ($matches) { - return preg_quote($matches[1]) . '[^:]*'; - }, $name); - - $commands = preg_grep('{^' . $expr . '}', $allCommands); - - if (empty($commands) || count(preg_grep('{^' . $expr . '$}', $commands)) < 1) { - if (false !== $pos = strrpos($name, ':')) { - $this->findNamespace(substr($name, 0, $pos)); - } - - $message = sprintf('Command "%s" is not defined.', $name); - - if ($alternatives = $this->findAlternatives($name, $allCommands)) { - if (1 == count($alternatives)) { - $message .= "\n\nDid you mean this?\n "; - } else { - $message .= "\n\nDid you mean one of these?\n "; - } - $message .= implode("\n ", $alternatives); - } - - throw new \InvalidArgumentException($message); - } - - if (count($commands) > 1) { - $commandList = $this->commands; - - $commands = array_filter($commands, function ($nameOrAlias) use ($commandList, $commands) { - $commandName = $commandList[$nameOrAlias]->getName(); - - return $commandName === $nameOrAlias || !in_array($commandName, $commands); - }); - } - - $exact = in_array($name, $commands, true); - if (count($commands) > 1 && !$exact) { - $suggestions = $this->getAbbreviationSuggestions(array_values($commands)); - - throw new \InvalidArgumentException(sprintf('Command "%s" is ambiguous (%s).', $name, $suggestions)); - } - - return $this->get($exact ? $name : reset($commands)); - } - - /** - * 获取所有的指令 - * @access public - * @param string $namespace 命名空间 - * @return Command[] - * @api - */ - public function all($namespace = null) - { - if (null === $namespace) { - return $this->commands; - } - - $commands = []; - foreach ($this->commands as $name => $command) { - if ($this->extractNamespace($name, substr_count($namespace, ':') + 1) === $namespace) { - $commands[$name] = $command; - } - } - - return $commands; - } - - /** - * 获取可能的指令名 - * @access public - * @param array $names - * @return array - */ - public static function getAbbreviations($names) - { - $abbrevs = []; - foreach ($names as $name) { - for ($len = strlen($name); $len > 0; --$len) { - $abbrev = substr($name, 0, $len); - $abbrevs[$abbrev][] = $name; - } - } - - return $abbrevs; - } - - /** - * 配置基于用户的参数和选项的输入和输出实例。 - * @access protected - * @param Input $input 输入实例 - * @param Output $output 输出实例 - */ - protected function configureIO(Input $input, Output $output) - { - if (true === $input->hasParameterOption(['--ansi'])) { - $output->setDecorated(true); - } elseif (true === $input->hasParameterOption(['--no-ansi'])) { - $output->setDecorated(false); - } - - if (true === $input->hasParameterOption(['--no-interaction', '-n'])) { - $input->setInteractive(false); - } - - if (true === $input->hasParameterOption(['--quiet', '-q'])) { - $output->setVerbosity(Output::VERBOSITY_QUIET); - } else { - if ($input->hasParameterOption('-vvv') || $input->hasParameterOption('--verbose=3') || $input->getParameterOption('--verbose') === 3) { - $output->setVerbosity(Output::VERBOSITY_DEBUG); - } elseif ($input->hasParameterOption('-vv') || $input->hasParameterOption('--verbose=2') || $input->getParameterOption('--verbose') === 2) { - $output->setVerbosity(Output::VERBOSITY_VERY_VERBOSE); - } elseif ($input->hasParameterOption('-v') || $input->hasParameterOption('--verbose=1') || $input->hasParameterOption('--verbose') || $input->getParameterOption('--verbose')) { - $output->setVerbosity(Output::VERBOSITY_VERBOSE); - } - } - } - - /** - * 执行指令 - * @access protected - * @param Command $command 指令实例 - * @param Input $input 输入实例 - * @param Output $output 输出实例 - * @return int - * @throws \Exception - */ - protected function doRunCommand(Command $command, Input $input, Output $output) - { - return $command->run($input, $output); - } - - /** - * 获取指令的基础名称 - * @access protected - * @param Input $input - * @return string - */ - protected function getCommandName(Input $input) - { - return $input->getFirstArgument(); - } - - /** - * 获取默认输入定义 - * @access protected - * @return InputDefinition - */ - protected function getDefaultInputDefinition() - { - return new InputDefinition([ - new InputArgument('command', InputArgument::REQUIRED, 'The command to execute'), - new InputOption('--help', '-h', InputOption::VALUE_NONE, 'Display this help message'), - new InputOption('--version', '-V', InputOption::VALUE_NONE, 'Display this console version'), - new InputOption('--quiet', '-q', InputOption::VALUE_NONE, 'Do not output any message'), - new InputOption('--verbose', '-v|vv|vvv', InputOption::VALUE_NONE, 'Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug'), - new InputOption('--ansi', '', InputOption::VALUE_NONE, 'Force ANSI output'), - new InputOption('--no-ansi', '', InputOption::VALUE_NONE, 'Disable ANSI output'), - new InputOption('--no-interaction', '-n', InputOption::VALUE_NONE, 'Do not ask any interactive question'), - ]); - } - - /** - * 设置默认命令 - * @access protected - * @return Command[] An array of default Command instances - */ - protected function getDefaultCommands() - { - $defaultCommands = []; - - foreach (self::$defaultCommands as $classname) { - if (class_exists($classname) && is_subclass_of($classname, "think\\console\\Command")) { - $defaultCommands[] = new $classname(); - } - } - - return $defaultCommands; - } - - public static function addDefaultCommands(array $classnames) - { - self::$defaultCommands = array_merge(self::$defaultCommands, $classnames); - } - - /** - * 获取可能的建议 - * @access private - * @param array $abbrevs - * @return string - */ - private function getAbbreviationSuggestions($abbrevs) - { - return sprintf('%s, %s%s', $abbrevs[0], $abbrevs[1], count($abbrevs) > 2 ? sprintf(' and %d more', count($abbrevs) - 2) : ''); - } - - /** - * 返回命名空间部分 - * @access public - * @param string $name 指令 - * @param string $limit 部分的命名空间的最大数量 - * @return string - */ - public function extractNamespace($name, $limit = null) - { - $parts = explode(':', $name); - array_pop($parts); - - return implode(':', null === $limit ? $parts : array_slice($parts, 0, $limit)); - } - - /** - * 查找可替代的建议 - * @access private - * @param string $name - * @param array|\Traversable $collection - * @return array - */ - private function findAlternatives($name, $collection) - { - $threshold = 1e3; - $alternatives = []; - - $collectionParts = []; - foreach ($collection as $item) { - $collectionParts[$item] = explode(':', $item); - } - - foreach (explode(':', $name) as $i => $subname) { - foreach ($collectionParts as $collectionName => $parts) { - $exists = isset($alternatives[$collectionName]); - if (!isset($parts[$i]) && $exists) { - $alternatives[$collectionName] += $threshold; - continue; - } elseif (!isset($parts[$i])) { - continue; - } - - $lev = levenshtein($subname, $parts[$i]); - if ($lev <= strlen($subname) / 3 || '' !== $subname && false !== strpos($parts[$i], $subname)) { - $alternatives[$collectionName] = $exists ? $alternatives[$collectionName] + $lev : $lev; - } elseif ($exists) { - $alternatives[$collectionName] += $threshold; - } - } - } - - foreach ($collection as $item) { - $lev = levenshtein($name, $item); - if ($lev <= strlen($name) / 3 || false !== strpos($item, $name)) { - $alternatives[$item] = isset($alternatives[$item]) ? $alternatives[$item] - $lev : $lev; - } - } - - $alternatives = array_filter($alternatives, function ($lev) use ($threshold) { - return $lev < 2 * $threshold; - }); - asort($alternatives); - - return array_keys($alternatives); - } - - /** - * 设置默认的指令 - * @access public - * @param string $commandName The Command name - */ - public function setDefaultCommand($commandName) - { - $this->defaultCommand = $commandName; - } - - /** - * 返回所有的命名空间 - * @access private - * @param string $name - * @return array - */ - private function extractAllNamespaces($name) - { - $parts = explode(':', $name, -1); - $namespaces = []; - - foreach ($parts as $part) { - if (count($namespaces)) { - $namespaces[] = end($namespaces) . ':' . $part; - } else { - $namespaces[] = $part; - } - } - - return $namespaces; - } - -} diff --git a/thinkphp/library/think/Container.php b/thinkphp/library/think/Container.php deleted file mode 100644 index 08c48a076..000000000 --- a/thinkphp/library/think/Container.php +++ /dev/null @@ -1,365 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think; - -use Closure; -use InvalidArgumentException; -use ReflectionClass; -use ReflectionException; -use ReflectionFunction; -use ReflectionMethod; -use think\exception\ClassNotFoundException; - -class Container -{ - /** - * 容器对象实例 - * @var Container - */ - protected static $instance; - - /** - * 容器中的对象实例 - * @var array - */ - protected $instances = []; - - /** - * 容器绑定标识 - * @var array - */ - protected $bind = []; - - /** - * 获取当前容器的实例(单例) - * @access public - * @return static - */ - public static function getInstance() - { - if (is_null(static::$instance)) { - static::$instance = new static; - } - - return static::$instance; - } - - /** - * 获取容器中的对象实例 - * @access public - * @param string $abstract 类名或者标识 - * @param array|true $vars 变量 - * @param bool $newInstance 是否每次创建新的实例 - * @return object - */ - public static function get($abstract, $vars = [], $newInstance = false) - { - return static::getInstance()->make($abstract, $vars, $newInstance); - } - - /** - * 绑定一个类、闭包、实例、接口实现到容器 - * @access public - * @param string $abstract 类标识、接口 - * @param mixed $concrete 要绑定的类、闭包或者实例 - * @return Container - */ - public static function set($abstract, $concrete = null) - { - return static::getInstance()->bind($abstract, $concrete); - } - - /** - * 移除容器中的对象实例 - * @access public - * @param string $abstract 类标识、接口 - * @return void - */ - public static function remove($abstract) - { - return static::getInstance()->delete($abstract); - } - - /** - * 清除容器中的对象实例 - * @access public - * @return void - */ - public static function clear() - { - return static::getInstance()->flush(); - } - - /** - * 绑定一个类、闭包、实例、接口实现到容器 - * @access public - * @param string|array $abstract 类标识、接口 - * @param mixed $concrete 要绑定的类、闭包或者实例 - * @return $this - */ - public function bind($abstract, $concrete = null) - { - if (is_array($abstract)) { - $this->bind = array_merge($this->bind, $abstract); - } elseif ($concrete instanceof Closure) { - $this->bind[$abstract] = $concrete; - } elseif (is_object($concrete)) { - $this->instances[$abstract] = $concrete; - } else { - $this->bind[$abstract] = $concrete; - } - - return $this; - } - - /** - * 绑定一个类实例当容器 - * @access public - * @param string $abstract 类名或者标识 - * @param object $instance 类的实例 - * @return $this - */ - public function instance($abstract, $instance) - { - if (isset($this->bind[$abstract])) { - $abstract = $this->bind[$abstract]; - } - - $this->instances[$abstract] = $instance; - - return $this; - } - - /** - * 判断容器中是否存在类及标识 - * @access public - * @param string $abstract 类名或者标识 - * @return bool - */ - public function bound($abstract) - { - return isset($this->bind[$abstract]) || isset($this->instances[$abstract]); - } - - /** - * 判断容器中是否存在类及标识 - * @access public - * @param string $name 类名或者标识 - * @return bool - */ - public function has($name) - { - return $this->bound($name); - } - - /** - * 创建类的实例 - * @access public - * @param string $abstract 类名或者标识 - * @param array|true $vars 变量 - * @param bool $newInstance 是否每次创建新的实例 - * @return object - */ - public function make($abstract, $vars = [], $newInstance = false) - { - if (true === $vars) { - // 总是创建新的实例化对象 - $newInstance = true; - $vars = []; - } - - if (isset($this->instances[$abstract]) && !$newInstance) { - return $this->instances[$abstract]; - } - - if (isset($this->bind[$abstract])) { - $concrete = $this->bind[$abstract]; - - if ($concrete instanceof Closure) { - $object = $this->invokeFunction($concrete, $vars); - } else { - $object = $this->make($concrete, $vars, $newInstance); - } - } else { - $object = $this->invokeClass($abstract, $vars); - } - - if (!$newInstance) { - $this->instances[$abstract] = $object; - } - - return $object; - } - - /** - * 删除容器中的对象实例 - * @access public - * @param string $abstract 类名或者标识 - * @return void - */ - public function delete($abstract) - { - if (isset($this->instances[$abstract])) { - unset($this->instances[$abstract]); - } - } - - /** - * 清除容器中的对象实例 - * @access public - * @return void - */ - public function flush() - { - $this->instances = []; - $this->bind = []; - } - - /** - * 执行函数或者闭包方法 支持参数调用 - * @access public - * @param mixed $function 函数或者闭包 - * @param array $vars 参数 - * @return mixed - */ - public function invokeFunction($function, $vars = []) - { - try { - $reflect = new ReflectionFunction($function); - - $args = $this->bindParams($reflect, $vars); - - return $reflect->invokeArgs($args); - } catch (ReflectionException $e) { - throw new Exception('function not exists: ' . $function . '()'); - } - } - - /** - * 调用反射执行类的方法 支持参数绑定 - * @access public - * @param mixed $method 方法 - * @param array $vars 参数 - * @return mixed - */ - public function invokeMethod($method, $vars = []) - { - try { - if (is_array($method)) { - $class = is_object($method[0]) ? $method[0] : $this->invokeClass($method[0]); - $reflect = new ReflectionMethod($class, $method[1]); - } else { - // 静态方法 - $reflect = new ReflectionMethod($method); - } - - $args = $this->bindParams($reflect, $vars); - - return $reflect->invokeArgs(isset($class) ? $class : null, $args); - } catch (ReflectionException $e) { - throw new Exception('method not exists: ' . (is_array($method) ? $method[0] . '::' . $method[1] : $method) . '()'); - } - } - - /** - * 调用反射执行类的方法 支持参数绑定 - * @access public - * @param object $instance 对象实例 - * @param mixed $reflect 反射类 - * @param array $vars 参数 - * @return mixed - */ - public function invokeReflectMethod($instance, $reflect, $vars = []) - { - $args = $this->bindParams($reflect, $vars); - - return $reflect->invokeArgs($instance, $args); - } - - /** - * 调用反射执行callable 支持参数绑定 - * @access public - * @param mixed $callable - * @param array $vars 参数 - * @return mixed - */ - public function invoke($callable, $vars = []) - { - if ($callable instanceof Closure) { - return $this->invokeFunction($callable, $vars); - } - - return $this->invokeMethod($callable, $vars); - } - - /** - * 调用反射执行类的实例化 支持依赖注入 - * @access public - * @param string $class 类名 - * @param array $vars 参数 - * @return mixed - */ - public function invokeClass($class, $vars = []) - { - try { - $reflect = new ReflectionClass($class); - - $constructor = $reflect->getConstructor(); - - $args = $constructor ? $this->bindParams($constructor, $vars) : []; - - return $reflect->newInstanceArgs($args); - } catch (ReflectionException $e) { - throw new ClassNotFoundException('class not exists: ' . $class, $class); - } - } - - /** - * 绑定参数 - * @access protected - * @param \ReflectionMethod|\ReflectionFunction $reflect 反射类 - * @param array $vars 参数 - * @return array - */ - protected function bindParams($reflect, $vars = []) - { - if ($reflect->getNumberOfParameters() == 0) { - return []; - } - - // 判断数组类型 数字数组时按顺序绑定参数 - reset($vars); - $type = key($vars) === 0 ? 1 : 0; - $params = $reflect->getParameters(); - - foreach ($params as $param) { - $name = $param->getName(); - $class = $param->getClass(); - - if ($class) { - $className = $class->getName(); - $args[] = $this->make($className); - } elseif (1 == $type && !empty($vars)) { - $args[] = array_shift($vars); - } elseif (0 == $type && isset($vars[$name])) { - $args[] = $vars[$name]; - } elseif ($param->isDefaultValueAvailable()) { - $args[] = $param->getDefaultValue(); - } else { - throw new InvalidArgumentException('method param miss:' . $name); - } - } - - return $args; - } - -} diff --git a/thinkphp/library/think/Controller.php b/thinkphp/library/think/Controller.php deleted file mode 100644 index ffa381866..000000000 --- a/thinkphp/library/think/Controller.php +++ /dev/null @@ -1,239 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think; - -use think\exception\ValidateException; -use traits\controller\Jump; - -class Controller -{ - use Jump; - - /** - * 视图类实例 - * @var \think\View - */ - protected $view; - - /** - * Request实例 - * @var \think\Request - */ - protected $request; - - /** - * 应用实例 - * @var \think\App - */ - protected $app; - - /** - * 验证失败是否抛出异常 - * @var bool - */ - protected $failException = false; - - /** - * 是否批量验证 - * @var bool - */ - protected $batchValidate = false; - - /** - * 前置操作方法列表 - * @var array $beforeActionList - */ - protected $beforeActionList = []; - - /** - * 构造方法 - * @access public - */ - public function __construct() - { - $this->request = Container::get('request'); - $this->app = Container::get('app'); - $this->view = Container::get('view')->init( - $this->app['config']->pull('template') - ); - - // 控制器初始化 - $this->initialize(); - - // 前置操作方法 - foreach ((array) $this->beforeActionList as $method => $options) { - is_numeric($method) ? - $this->beforeAction($options) : - $this->beforeAction($method, $options); - } - } - - // 初始化 - protected function initialize() - {} - - /** - * 前置操作 - * @access protected - * @param string $method 前置操作方法名 - * @param array $options 调用参数 ['only'=>[...]] 或者['except'=>[...]] - */ - protected function beforeAction($method, $options = []) - { - if (isset($options['only'])) { - if (is_string($options['only'])) { - $options['only'] = explode(',', $options['only']); - } - if (!in_array($this->request->action(), $options['only'])) { - return; - } - } elseif (isset($options['except'])) { - if (is_string($options['except'])) { - $options['except'] = explode(',', $options['except']); - } - if (in_array($this->request->action(), $options['except'])) { - return; - } - } - - call_user_func([$this, $method]); - } - - /** - * 加载模板输出 - * @access protected - * @param string $template 模板文件名 - * @param array $vars 模板输出变量 - * @param array $config 模板参数 - * @return mixed - */ - protected function fetch($template = '', $vars = [], $config = []) - { - return $this->view->fetch($template, $vars, $config); - } - - /** - * 渲染内容输出 - * @access protected - * @param string $content 模板内容 - * @param array $vars 模板输出变量 - * @param array $config 模板参数 - * @return mixed - */ - protected function display($content = '', $vars = [], $config = []) - { - return $this->view->display($content, $vars, $config); - } - - /** - * 模板变量赋值 - * @access protected - * @param mixed $name 要显示的模板变量 - * @param mixed $value 变量的值 - * @return $this - */ - protected function assign($name, $value = '') - { - $this->view->assign($name, $value); - - return $this; - } - - /** - * 视图过滤 - * @access protected - * @param Callable $filter 过滤方法或闭包 - * @return $this - */ - protected function filter($filter) - { - $this->view->filter($filter); - - return $this; - } - - /** - * 初始化模板引擎 - * @access protected - * @param array|string $engine 引擎参数 - * @return $this - */ - protected function engine($engine) - { - $this->view->engine($engine); - - return $this; - } - - /** - * 设置验证失败后是否抛出异常 - * @access protected - * @param bool $fail 是否抛出异常 - * @return $this - */ - protected function validateFailException($fail = true) - { - $this->failException = $fail; - - return $this; - } - - /** - * 验证数据 - * @access protected - * @param array $data 数据 - * @param string|array $validate 验证器名或者验证规则数组 - * @param array $message 提示信息 - * @param bool $batch 是否批量验证 - * @param mixed $callback 回调方法(闭包) - * @return array|string|true - * @throws ValidateException - */ - protected function validate($data, $validate, $message = [], $batch = false, $callback = null) - { - if (is_array($validate)) { - $v = $this->app->validate(); - $v->rule($validate); - } else { - if (strpos($validate, '.')) { - // 支持场景 - list($validate, $scene) = explode('.', $validate); - } - $v = $this->app->validate($validate); - if (!empty($scene)) { - $v->scene($scene); - } - } - - // 是否批量验证 - if ($batch || $this->batchValidate) { - $v->batch(true); - } - - if (is_array($message)) { - $v->message($message); - } - - if ($callback && is_callable($callback)) { - call_user_func_array($callback, [$v, &$data]); - } - - if (!$v->check($data)) { - if ($this->failException) { - throw new ValidateException($v->getError()); - } - return $v->getError(); - } - - return true; - } -} diff --git a/thinkphp/library/think/Cookie.php b/thinkphp/library/think/Cookie.php deleted file mode 100644 index c645fde69..000000000 --- a/thinkphp/library/think/Cookie.php +++ /dev/null @@ -1,262 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think; - -class Cookie -{ - /** - * 配置参数 - * @var array - */ - protected $config = [ - // cookie 名称前缀 - 'prefix' => '', - // cookie 保存时间 - 'expire' => 0, - // cookie 保存路径 - 'path' => '/', - // cookie 有效域名 - 'domain' => '', - // cookie 启用安全传输 - 'secure' => false, - // httponly设置 - 'httponly' => false, - // 是否使用 setcookie - 'setcookie' => true, - ]; - - /** - * 是否初始化 - * @var bool - */ - protected $init; - - /** - * Cookie初始化 - * @access public - * @param array $config - * @return void - */ - public function init(array $config = []) - { - if (empty($config)) { - $config = Container::get('config')->pull('cookie'); - } - - $this->config = array_merge($this->config, array_change_key_case($config)); - - if (!empty($this->config['httponly'])) { - ini_set('session.cookie_httponly', 1); - } - - $this->init = true; - } - - /** - * 设置或者获取cookie作用域(前缀) - * @access public - * @param string $prefix - * @return string|void - */ - public function prefix($prefix = '') - { - if (empty($prefix)) { - return $this->config['prefix']; - } - - $this->config['prefix'] = $prefix; - } - - /** - * Cookie 设置、获取、删除 - * - * @access public - * @param string $name cookie名称 - * @param mixed $value cookie值 - * @param mixed $option 可选参数 可能会是 null|integer|string - * @return void - */ - public function set($name, $value = '', $option = null) - { - !isset($this->init) && $this->init(); - - // 参数设置(会覆盖黙认设置) - if (!is_null($option)) { - if (is_numeric($option)) { - $option = ['expire' => $option]; - } elseif (is_string($option)) { - parse_str($option, $option); - } - - $config = array_merge($this->config, array_change_key_case($option)); - } else { - $config = $this->config; - } - - $name = $config['prefix'] . $name; - - // 设置cookie - if (is_array($value)) { - array_walk_recursive($value, [$this, 'jsonFormatProtect'], 'encode'); - $value = 'think:' . json_encode($value); - } - - $expire = !empty($config['expire']) ? $_SERVER['REQUEST_TIME'] + intval($config['expire']) : 0; - - if ($config['setcookie']) { - setcookie($name, $value, $expire, $config['path'], $config['domain'], $config['secure'], $config['httponly']); - } - - $_COOKIE[$name] = $value; - } - - /** - * 永久保存Cookie数据 - * @access public - * @param string $name cookie名称 - * @param mixed $value cookie值 - * @param mixed $option 可选参数 可能会是 null|integer|string - * @return void - */ - public function forever($name, $value = '', $option = null) - { - if (is_null($option) || is_numeric($option)) { - $option = []; - } - - $option['expire'] = 315360000; - - $this->set($name, $value, $option); - } - - /** - * 判断Cookie数据 - * @access public - * @param string $name cookie名称 - * @param string|null $prefix cookie前缀 - * @return bool - */ - public function has($name, $prefix = null) - { - !isset($this->init) && $this->init(); - - $prefix = !is_null($prefix) ? $prefix : $this->config['prefix']; - $name = $prefix . $name; - - return isset($_COOKIE[$name]); - } - - /** - * Cookie获取 - * @access public - * @param string $name cookie名称 留空获取全部 - * @param string|null $prefix cookie前缀 - * @return mixed - */ - public function get($name = '', $prefix = null) - { - !isset($this->init) && $this->init(); - - $prefix = !is_null($prefix) ? $prefix : $this->config['prefix']; - $key = $prefix . $name; - - if ('' == $name) { - if ($prefix) { - $value = []; - foreach ($_COOKIE as $k => $val) { - if (0 === strpos($k, $prefix)) { - $value[$k] = $val; - } - } - } else { - $value = $_COOKIE; - } - } elseif (isset($_COOKIE[$key])) { - $value = $_COOKIE[$key]; - - if (0 === strpos($value, 'think:')) { - $value = substr($value, 6); - $value = json_decode($value, true); - array_walk_recursive($value, [$this, 'jsonFormatProtect'], 'decode'); - } - } else { - $value = null; - } - - return $value; - } - - /** - * Cookie删除 - * @access public - * @param string $name cookie名称 - * @param string|null $prefix cookie前缀 - * @return void - */ - public function delete($name, $prefix = null) - { - !isset($this->init) && $this->init(); - - $config = $this->config; - $prefix = !is_null($prefix) ? $prefix : $config['prefix']; - $name = $prefix . $name; - - if ($config['setcookie']) { - setcookie($name, '', $_SERVER['REQUEST_TIME'] - 3600, $config['path'], $config['domain'], $config['secure'], $config['httponly']); - } - - // 删除指定cookie - unset($_COOKIE[$name]); - } - - /** - * Cookie清空 - * @access public - * @param string|null $prefix cookie前缀 - * @return void - */ - public function clear($prefix = null) - { - // 清除指定前缀的所有cookie - if (empty($_COOKIE)) { - return; - } - - !isset($this->init) && $this->init(); - - // 要删除的cookie前缀,不指定则删除config设置的指定前缀 - $config = $this->config; - $prefix = !is_null($prefix) ? $prefix : $config['prefix']; - - if ($prefix) { - // 如果前缀为空字符串将不作处理直接返回 - foreach ($_COOKIE as $key => $val) { - if (0 === strpos($key, $prefix)) { - if ($config['setcookie']) { - setcookie($key, '', $_SERVER['REQUEST_TIME'] - 3600, $config['path'], $config['domain'], $config['secure'], $config['httponly']); - } - unset($_COOKIE[$key]); - } - } - } - - return; - } - - private function jsonFormatProtect(&$val, $key, $type = 'encode') - { - if (!empty($val) && true !== $val) { - $val = 'decode' == $type ? urldecode($val) : urlencode($val); - } - } - -} diff --git a/thinkphp/library/think/Db.php b/thinkphp/library/think/Db.php deleted file mode 100644 index 9be2dd2ea..000000000 --- a/thinkphp/library/think/Db.php +++ /dev/null @@ -1,72 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think; - -/** - * Class Db - * @package think - * @method \think\db\Query connect(array $config =[], mixed $name = false) static 连接/切换数据库连接 - * @method \think\db\Query master() static 从主服务器读取数据 - * @method \think\db\Query table(string $table) static 指定数据表(含前缀) - * @method \think\db\Query name(string $name) static 指定数据表(不含前缀) - * @method \think\db\Query where(mixed $field, string $op = null, mixed $condition = null) static 查询条件 - * @method \think\db\Query join(mixed $join, mixed $condition = null, string $type = 'INNER') static JOIN查询 - * @method \think\db\Query view(mixed $join, mixed $field = null, mixed $on = null, string $type = 'INNER') static 视图查询 - * @method \think\db\Query union(mixed $union, boolean $all = false) static UNION查询 - * @method \think\db\Query limit(mixed $offset, integer $length = null) static 查询LIMIT - * @method \think\db\Query order(mixed $field, string $order = null) static 查询ORDER - * @method \think\db\Query cache(mixed $key = null , integer $expire = null) static 设置查询缓存 - * @method mixed value(string $field) static 获取某个字段的值 - * @method array column(string $field, string $key = '') static 获取某个列的值 - * @method mixed find(mixed $data = null) static 查询单个记录 - * @method mixed select(mixed $data = null) static 查询多个记录 - * @method integer insert(array $data, boolean $replace = false, boolean $getLastInsID = false, string $sequence = null) static 插入一条记录 - * @method integer insertGetId(array $data, boolean $replace = false, string $sequence = null) static 插入一条记录并返回自增ID - * @method integer insertAll(array $dataSet) static 插入多条记录 - * @method integer update(array $data) static 更新记录 - * @method integer delete(mixed $data = null) static 删除记录 - * @method boolean chunk(integer $count, callable $callback, string $column = null) static 分块获取数据 - * @method \Generator cursor(mixed $data = null) static 使用游标查找记录 - * @method mixed query(string $sql, array $bind = [], boolean $master = false, bool $pdo = false) static SQL查询 - * @method integer execute(string $sql, array $bind = [], boolean $fetch = false, boolean $getLastInsID = false, string $sequence = null) static SQL执行 - * @method \think\Paginator paginate(integer $listRows = 15, mixed $simple = null, array $config = []) static 分页查询 - * @method mixed transaction(callable $callback) static 执行数据库事务 - * @method void startTrans() static 启动事务 - * @method void commit() static 用于非自动提交状态下面的查询提交 - * @method void rollback() static 事务回滚 - * @method boolean batchQuery(array $sqlArray) static 批处理执行SQL语句 - * @method string getLastInsID(string $sequence = null) static 获取最近插入的ID - * @method mixed getConfig(string $name = '') static 获取数据库的配置参数 - */ -class Db -{ - /** - * 查询次数 - * @var integer - */ - public static $queryTimes = 0; - - /** - * 执行次数 - * @var integer - */ - public static $executeTimes = 0; - - public static function __callStatic($method, $args) - { - $class = Container::get('config')->get('database.query') ?: '\\think\\db\\Query'; - - $query = new $class(); - - return call_user_func_array([$query, $method], $args); - } -} diff --git a/thinkphp/library/think/Debug.php b/thinkphp/library/think/Debug.php deleted file mode 100644 index 75003770b..000000000 --- a/thinkphp/library/think/Debug.php +++ /dev/null @@ -1,258 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think; - -use think\exception\ClassNotFoundException; -use think\model\Collection as ModelCollection; -use think\response\Redirect; - -class Debug -{ - /** - * 区间时间信息 - * @var array - */ - protected $info = []; - - /** - * 区间内存信息 - * @var array - */ - protected $mem = []; - - /** - * 应用对象 - * @var App - */ - protected $app; - - public function __construct(App $app) - { - $this->app = $app; - } - - /** - * 记录时间(微秒)和内存使用情况 - * @access public - * @param string $name 标记位置 - * @param mixed $value 标记值 留空则取当前 time 表示仅记录时间 否则同时记录时间和内存 - * @return void - */ - public function remark($name, $value = '') - { - // 记录时间和内存使用 - $this->info[$name] = is_float($value) ? $value : microtime(true); - - if ('time' != $value) { - $this->mem['mem'][$name] = is_float($value) ? $value : memory_get_usage(); - $this->mem['peak'][$name] = memory_get_peak_usage(); - } - } - - /** - * 统计某个区间的时间(微秒)使用情况 - * @access public - * @param string $start 开始标签 - * @param string $end 结束标签 - * @param integer|string $dec 小数位 - * @return integer - */ - public function getRangeTime($start, $end, $dec = 6) - { - if (!isset($this->info[$end])) { - $this->info[$end] = microtime(true); - } - - return number_format(($this->info[$end] - $this->info[$start]), $dec); - } - - /** - * 统计从开始到统计时的时间(微秒)使用情况 - * @access public - * @param integer|string $dec 小数位 - * @return integer - */ - public function getUseTime($dec = 6) - { - return number_format((microtime(true) - $this->app->getBeginTime()), $dec); - } - - /** - * 获取当前访问的吞吐率情况 - * @access public - * @return string - */ - public function getThroughputRate() - { - return number_format(1 / $this->getUseTime(), 2) . 'req/s'; - } - - /** - * 记录区间的内存使用情况 - * @access public - * @param string $start 开始标签 - * @param string $end 结束标签 - * @param integer|string $dec 小数位 - * @return string - */ - public function getRangeMem($start, $end, $dec = 2) - { - if (!isset($this->mem['mem'][$end])) { - $this->mem['mem'][$end] = memory_get_usage(); - } - - $size = $this->mem['mem'][$end] - $this->mem['mem'][$start]; - $a = ['B', 'KB', 'MB', 'GB', 'TB']; - $pos = 0; - - while ($size >= 1024) { - $size /= 1024; - $pos++; - } - - return round($size, $dec) . " " . $a[$pos]; - } - - /** - * 统计从开始到统计时的内存使用情况 - * @access public - * @param integer|string $dec 小数位 - * @return string - */ - public function getUseMem($dec = 2) - { - $size = memory_get_usage() - $this->app->getBeginMem(); - $a = ['B', 'KB', 'MB', 'GB', 'TB']; - $pos = 0; - - while ($size >= 1024) { - $size /= 1024; - $pos++; - } - - return round($size, $dec) . " " . $a[$pos]; - } - - /** - * 统计区间的内存峰值情况 - * @access public - * @param string $start 开始标签 - * @param string $end 结束标签 - * @param integer|string $dec 小数位 - * @return string - */ - public function getMemPeak($start, $end, $dec = 2) - { - if (!isset($this->mem['peak'][$end])) { - $this->mem['peak'][$end] = memory_get_peak_usage(); - } - - $size = $this->mem['peak'][$end] - $this->mem['peak'][$start]; - $a = ['B', 'KB', 'MB', 'GB', 'TB']; - $pos = 0; - - while ($size >= 1024) { - $size /= 1024; - $pos++; - } - - return round($size, $dec) . " " . $a[$pos]; - } - - /** - * 获取文件加载信息 - * @access public - * @param bool $detail 是否显示详细 - * @return integer|array - */ - public function getFile($detail = false) - { - if ($detail) { - $files = get_included_files(); - $info = []; - - foreach ($files as $key => $file) { - $info[] = $file . ' ( ' . number_format(filesize($file) / 1024, 2) . ' KB )'; - } - - return $info; - } - - return count(get_included_files()); - } - - /** - * 浏览器友好的变量输出 - * @access public - * @param mixed $var 变量 - * @param boolean $echo 是否输出 默认为true 如果为false 则返回输出字符串 - * @param string $label 标签 默认为空 - * @param integer $flags htmlspecialchars flags - * @return void|string - */ - public function dump($var, $echo = true, $label = null, $flags = ENT_SUBSTITUTE) - { - $label = (null === $label) ? '' : rtrim($label) . ':'; - if ($var instanceof Model || $var instanceof ModelCollection) { - $var = $var->toArray(); - } - - ob_start(); - var_dump($var); - - $output = ob_get_clean(); - $output = preg_replace('/\]\=\>\n(\s+)/m', '] => ', $output); - - if (PHP_SAPI == 'cli') { - $output = PHP_EOL . $label . $output . PHP_EOL; - } else { - if (!extension_loaded('xdebug')) { - $output = htmlspecialchars($output, $flags); - } - $output = '
          ' . $label . $output . '
          '; - } - if ($echo) { - echo($output); - return; - } - return $output; - } - - public function inject(Response $response, &$content) - { - $config = $this->app['config']->pull('trace'); - $type = isset($config['type']) ? $config['type'] : 'Html'; - $class = false !== strpos($type, '\\') ? $type : '\\think\\debug\\' . ucwords($type); - unset($config['type']); - - if (class_exists($class)) { - $trace = new $class($config); - } else { - throw new ClassNotFoundException('class not exists:' . $class, $class); - } - - if ($response instanceof Redirect) { - //TODO 记录 - } else { - $output = $trace->output($response, $this->app['log']->getLog()); - if (is_string($output)) { - // trace调试信息注入 - $pos = strripos($content, ''); - if (false !== $pos) { - $content = substr($content, 0, $pos) . $output . substr($content, $pos); - } else { - $content = $content . $output; - } - } - } - } -} diff --git a/thinkphp/library/think/Env.php b/thinkphp/library/think/Env.php deleted file mode 100644 index ef5d9468d..000000000 --- a/thinkphp/library/think/Env.php +++ /dev/null @@ -1,109 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think; - -class Env -{ - /** - * 环境变量数据 - * @var array - */ - protected $data = []; - - public function __construct() - { - $this->data = $_ENV; - } - - /** - * 读取环境变量定义文件 - * @access public - * @param string $file 环境变量定义文件 - * @return void - */ - public function load($file) - { - $env = parse_ini_file($file, true); - $this->set($env); - } - - /** - * 获取环境变量值 - * @access public - * @param string $name 环境变量名 - * @param mixed $default 默认值 - * @return mixed - */ - public function get($name = null, $default = null) - { - if (is_null($name)) { - return $this->data; - } - - $name = strtoupper(str_replace('.', '_', $name)); - - if (isset($this->data[$name])) { - return $this->data[$name]; - } - - return $this->getEnv($name, $default); - } - - protected function getEnv($name, $default = null) - { - $result = getenv('PHP_' . $name); - - if (false === $result) { - return $default; - } - - if ('false' === $result) { - $result = false; - } elseif ('true' === $result) { - $result = true; - } - - if (!isset($this->data[$name])) { - $this->data[$name] = $result; - } - - return $result; - } - - /** - * 设置环境变量值 - * @access public - * @param string|array $env 环境变量 - * @param mixed $value 值 - * @return void - */ - public function set($env, $value = null) - { - if (is_array($env)) { - $env = array_change_key_case($env, CASE_UPPER); - - foreach ($env as $key => $val) { - if (is_array($val)) { - foreach ($val as $k => $v) { - $this->data[$key . '_' . strtoupper($k)] = $v; - } - } else { - $this->data[$key] = $val; - } - } - } else { - $name = strtoupper(str_replace('.', '_', $env)); - - $this->data[$name] = $value; - } - } -} diff --git a/thinkphp/library/think/Error.php b/thinkphp/library/think/Error.php deleted file mode 100644 index b8c8fc585..000000000 --- a/thinkphp/library/think/Error.php +++ /dev/null @@ -1,128 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think; - -use think\console\Output as ConsoleOutput; -use think\exception\ErrorException; -use think\exception\Handle; -use think\exception\ThrowableError; - -class Error -{ - /** - * 注册异常处理 - * @access public - * @return void - */ - public static function register() - { - error_reporting(E_ALL); - set_error_handler([__CLASS__, 'appError']); - set_exception_handler([__CLASS__, 'appException']); - register_shutdown_function([__CLASS__, 'appShutdown']); - } - - /** - * Exception Handler - * @access public - * @param \Exception|\Throwable $e - */ - public static function appException($e) - { - if (!$e instanceof \Exception) { - $e = new ThrowableError($e); - } - - self::getExceptionHandler()->report($e); - - if (PHP_SAPI == 'cli') { - self::getExceptionHandler()->renderForConsole(new ConsoleOutput, $e); - } else { - self::getExceptionHandler()->render($e)->send(); - } - } - - /** - * Error Handler - * @access public - * @param integer $errno 错误编号 - * @param integer $errstr 详细错误信息 - * @param string $errfile 出错的文件 - * @param integer $errline 出错行号 - * @throws ErrorException - */ - public static function appError($errno, $errstr, $errfile = '', $errline = 0) - { - $exception = new ErrorException($errno, $errstr, $errfile, $errline); - if (error_reporting() & $errno) { - // 将错误信息托管至 think\exception\ErrorException - throw $exception; - } - - self::getExceptionHandler()->report($exception); - } - - /** - * Shutdown Handler - * @access public - */ - public static function appShutdown() - { - if (!is_null($error = error_get_last()) && self::isFatal($error['type'])) { - // 将错误信息托管至think\ErrorException - $exception = new ErrorException($error['type'], $error['message'], $error['file'], $error['line']); - - self::appException($exception); - } - - // 写入日志 - Container::get('log')->save(); - } - - /** - * 确定错误类型是否致命 - * - * @access protected - * @param int $type - * @return bool - */ - protected static function isFatal($type) - { - return in_array($type, [E_ERROR, E_CORE_ERROR, E_COMPILE_ERROR, E_PARSE]); - } - - /** - * Get an instance of the exception handler. - * - * @access public - * @return Handle - */ - public static function getExceptionHandler() - { - static $handle; - - if (!$handle) { - // 异常处理handle - $class = Container::get('config')->get('exception_handle'); - if ($class && is_string($class) && class_exists($class) && is_subclass_of($class, "\\think\\exception\\Handle")) { - $handle = new $class; - } else { - $handle = new Handle; - if ($class instanceof \Closure) { - $handle->setRender($class); - } - } - } - - return $handle; - } -} diff --git a/thinkphp/library/think/Exception.php b/thinkphp/library/think/Exception.php deleted file mode 100644 index 414a090ad..000000000 --- a/thinkphp/library/think/Exception.php +++ /dev/null @@ -1,56 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think; - -class Exception extends \Exception -{ - - /** - * 保存异常页面显示的额外Debug数据 - * @var array - */ - protected $data = []; - - /** - * 设置异常额外的Debug数据 - * 数据将会显示为下面的格式 - * - * Exception Data - * -------------------------------------------------- - * Label 1 - * key1 value1 - * key2 value2 - * Label 2 - * key1 value1 - * key2 value2 - * - * @access protected - * @param string $label 数据分类,用于异常页面显示 - * @param array $data 需要显示的数据,必须为关联数组 - */ - final protected function setData($label, array $data) - { - $this->data[$label] = $data; - } - - /** - * 获取异常额外Debug数据 - * 主要用于输出到异常页面便于调试 - * @access public - * @return array 由setData设置的Debug数据 - */ - final public function getData() - { - return $this->data; - } - -} diff --git a/thinkphp/library/think/Facade.php b/thinkphp/library/think/Facade.php deleted file mode 100644 index c455f6626..000000000 --- a/thinkphp/library/think/Facade.php +++ /dev/null @@ -1,126 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think; - -class Facade -{ - /** - * 绑定对象 - * @var array - */ - protected static $bind = []; - - /** - * 始终创建新的对象实例 - * @var bool - */ - protected static $alwaysNewInstance; - - /** - * 绑定类的静态代理 - * @static - * @access public - * @param string|array $name 类标识 - * @param string $class 类名 - * @return object - */ - public static function bind($name, $class = null) - { - if (__CLASS__ != static::class) { - return self::__callStatic('bind', func_get_args()); - } - - if (is_array($name)) { - self::$bind = array_merge(self::$bind, $name); - } else { - self::$bind[$name] = $class; - } - } - - /** - * 创建Facade实例 - * @static - * @access protected - * @param string $class 类名或标识 - * @param array $args 变量 - * @param bool $newInstance 是否每次创建新的实例 - * @return object - */ - protected static function createFacade($class = '', $args = [], $newInstance = false) - { - $class = $class ?: static::class; - $facadeClass = static::getFacadeClass(); - - if ($facadeClass) { - $class = $facadeClass; - } elseif (isset(self::$bind[$class])) { - $class = self::$bind[$class]; - } - - if (static::$alwaysNewInstance) { - $newInstance = true; - } - - return Container::getInstance()->make($class, $args, $newInstance); - } - - /** - * 获取当前Facade对应类名 - * @access protected - * @return string - */ - protected static function getFacadeClass() - {} - - /** - * 带参数实例化当前Facade类 - * @access public - * @return object - */ - public static function instance(...$args) - { - if (__CLASS__ != static::class) { - return self::__callStatic('instance', $args); - } - - return self::createFacade('', $args); - } - - /** - * 调用类的实例 - * @access public - * @param string $class 类名或者标识 - * @param array|true $args 变量 - * @param bool $newInstance 是否每次创建新的实例 - * @return object - */ - public static function make($class, $args = [], $newInstance = false) - { - if (__CLASS__ != static::class) { - return self::__callStatic('make', func_get_args()); - } - - if (true === $args) { - // 总是创建新的实例化对象 - $newInstance = true; - $args = []; - } - - return self::createFacade($class, $args, $newInstance); - } - - // 调用实际类的方法 - public static function __callStatic($method, $params) - { - return call_user_func_array([static::createFacade(), $method], $params); - } -} diff --git a/thinkphp/library/think/File.php b/thinkphp/library/think/File.php deleted file mode 100644 index e9985690c..000000000 --- a/thinkphp/library/think/File.php +++ /dev/null @@ -1,494 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think; - -use SplFileObject; - -class File extends SplFileObject -{ - /** - * 错误信息 - * @var string - */ - private $error = ''; - - /** - * 当前完整文件名 - * @var string - */ - protected $filename; - - /** - * 上传文件名 - * @var string - */ - protected $saveName; - - /** - * 上传文件命名规则 - * @var string - */ - protected $rule = 'date'; - - /** - * 上传文件验证规则 - * @var array - */ - protected $validate = []; - - /** - * 是否单元测试 - * @var bool - */ - protected $isTest; - - /** - * 上传文件信息 - * @var array - */ - protected $info = []; - - /** - * 文件hash规则 - * @var array - */ - protected $hash = []; - - public function __construct($filename, $mode = 'r') - { - parent::__construct($filename, $mode); - - $this->filename = $this->getRealPath() ?: $this->getPathname(); - } - - /** - * 是否测试 - * @access public - * @param bool $test 是否测试 - * @return $this - */ - public function isTest($test = false) - { - $this->isTest = $test; - - return $this; - } - - /** - * 设置上传信息 - * @access public - * @param array $info 上传文件信息 - * @return $this - */ - public function setUploadInfo($info) - { - $this->info = $info; - - return $this; - } - - /** - * 获取上传文件的信息 - * @access public - * @param string $name - * @return array|string - */ - public function getInfo($name = '') - { - return isset($this->info[$name]) ? $this->info[$name] : $this->info; - } - - /** - * 获取上传文件的文件名 - * @access public - * @return string - */ - public function getSaveName() - { - return $this->saveName; - } - - /** - * 设置上传文件的保存文件名 - * @access public - * @param string $saveName - * @return $this - */ - public function setSaveName($saveName) - { - $this->saveName = $saveName; - - return $this; - } - - /** - * 获取文件的哈希散列值 - * @access public - * @param string $type - * @return string - */ - public function hash($type = 'sha1') - { - if (!isset($this->hash[$type])) { - $this->hash[$type] = hash_file($type, $this->filename); - } - - return $this->hash[$type]; - } - - /** - * 检查目录是否可写 - * @access protected - * @param string $path 目录 - * @return boolean - */ - protected function checkPath($path) - { - if (is_dir($path)) { - return true; - } - - if (mkdir($path, 0755, true)) { - return true; - } - - $this->error = ['directory {:path} creation failed', ['path' => $path]]; - return false; - } - - /** - * 获取文件类型信息 - * @access public - * @return string - */ - public function getMime() - { - $finfo = finfo_open(FILEINFO_MIME_TYPE); - - return finfo_file($finfo, $this->filename); - } - - /** - * 设置文件的命名规则 - * @access public - * @param string $rule 文件命名规则 - * @return $this - */ - public function rule($rule) - { - $this->rule = $rule; - - return $this; - } - - /** - * 设置上传文件的验证规则 - * @access public - * @param array $rule 验证规则 - * @return $this - */ - public function validate($rule = []) - { - $this->validate = $rule; - - return $this; - } - - /** - * 检测是否合法的上传文件 - * @access public - * @return bool - */ - public function isValid() - { - if ($this->isTest) { - return is_file($this->filename); - } - - return is_uploaded_file($this->filename); - } - - /** - * 检测上传文件 - * @access public - * @param array $rule 验证规则 - * @return bool - */ - public function check($rule = []) - { - $rule = $rule ?: $this->validate; - - if ((isset($rule['size']) && !$this->checkSize($rule['size'])) - || (isset($rule['type']) && !$this->checkMime($rule['type'])) - || (isset($rule['ext']) && !$this->checkExt($rule['ext'])) - || !$this->checkImg()) { - return false; - } - - return true; - } - - /** - * 检测上传文件后缀 - * @access public - * @param array|string $ext 允许后缀 - * @return bool - */ - public function checkExt($ext) - { - if (is_string($ext)) { - $ext = explode(',', $ext); - } - - $extension = strtolower(pathinfo($this->getInfo('name'), PATHINFO_EXTENSION)); - - if (!in_array($extension, $ext)) { - $this->error = 'extensions to upload is not allowed'; - return false; - } - - return true; - } - - /** - * 检测图像文件 - * @access public - * @return bool - */ - public function checkImg() - { - $extension = strtolower(pathinfo($this->getInfo('name'), PATHINFO_EXTENSION)); - - /* 对图像文件进行严格检测 */ - if (in_array($extension, ['gif', 'jpg', 'jpeg', 'bmp', 'png', 'swf']) && !in_array($this->getImageType($this->filename), [1, 2, 3, 4, 6, 13])) { - $this->error = 'illegal image files'; - return false; - } - - return true; - } - - // 判断图像类型 - protected function getImageType($image) - { - if (function_exists('exif_imagetype')) { - return exif_imagetype($image); - } - - try { - $info = getimagesize($image); - return $info ? $info[2] : false; - } catch (\Exception $e) { - return false; - } - } - - /** - * 检测上传文件大小 - * @access public - * @param integer $size 最大大小 - * @return bool - */ - public function checkSize($size) - { - if ($this->getSize() > $size) { - $this->error = 'filesize not match'; - return false; - } - - return true; - } - - /** - * 检测上传文件类型 - * @access public - * @param array|string $mime 允许类型 - * @return bool - */ - public function checkMime($mime) - { - if (is_string($mime)) { - $mime = explode(',', $mime); - } - - if (!in_array(strtolower($this->getMime()), $mime)) { - $this->error = 'mimetype to upload is not allowed'; - return false; - } - - return true; - } - - /** - * 移动文件 - * @access public - * @param string $path 保存路径 - * @param string|bool $savename 保存的文件名 默认自动生成 - * @param boolean $replace 同名文件是否覆盖 - * @return false|File false-失败 否则返回File实例 - */ - public function move($path, $savename = true, $replace = true) - { - // 文件上传失败,捕获错误代码 - if (!empty($this->info['error'])) { - $this->error($this->info['error']); - return false; - } - - // 检测合法性 - if (!$this->isValid()) { - $this->error = 'upload illegal files'; - return false; - } - - // 验证上传 - if (!$this->check()) { - return false; - } - - $path = rtrim($path, DIRECTORY_SEPARATOR) . DIRECTORY_SEPARATOR; - // 文件保存命名规则 - $saveName = $this->buildSaveName($savename); - $filename = $path . $saveName; - - // 检测目录 - if (false === $this->checkPath(dirname($filename))) { - return false; - } - - /* 不覆盖同名文件 */ - if (!$replace && is_file($filename)) { - $this->error = ['has the same filename: {:filename}', ['filename' => $filename]]; - return false; - } - - /* 移动文件 */ - if ($this->isTest) { - rename($this->filename, $filename); - } elseif (!move_uploaded_file($this->filename, $filename)) { - $this->error = 'upload write error'; - return false; - } - - // 返回 File对象实例 - $file = new self($filename); - $file->setSaveName($saveName); - $file->setUploadInfo($this->info); - - return $file; - } - - /** - * 获取保存文件名 - * @access protected - * @param string|bool $savename 保存的文件名 默认自动生成 - * @return string - */ - protected function buildSaveName($savename) - { - if (true === $savename) { - // 自动生成文件名 - $savename = $this->autoBuildName(); - } elseif ('' === $savename || false === $savename) { - // 保留原文件名 - $savename = $this->getInfo('name'); - } - - if (!strpos($savename, '.')) { - $savename .= '.' . pathinfo($this->getInfo('name'), PATHINFO_EXTENSION); - } - - return $savename; - } - - /** - * 自动生成文件名 - * @access protected - * @return string - */ - protected function autoBuildName() - { - if ($this->rule instanceof \Closure) { - $savename = call_user_func_array($this->rule, [$this]); - } else { - switch ($this->rule) { - case 'date': - $savename = date('Ymd') . DIRECTORY_SEPARATOR . md5(microtime(true)); - break; - default: - if (in_array($this->rule, hash_algos())) { - $hash = $this->hash($this->rule); - $savename = substr($hash, 0, 2) . DIRECTORY_SEPARATOR . substr($hash, 2); - } elseif (is_callable($this->rule)) { - $savename = call_user_func($this->rule); - } else { - $savename = date('Ymd') . DIRECTORY_SEPARATOR . md5(microtime(true)); - } - } - } - - return $savename; - } - - /** - * 获取错误代码信息 - * @access private - * @param int $errorNo 错误号 - */ - private function error($errorNo) - { - switch ($errorNo) { - case 1: - case 2: - $this->error = 'upload File size exceeds the maximum value'; - break; - case 3: - $this->error = 'only the portion of file is uploaded'; - break; - case 4: - $this->error = 'no file to uploaded'; - break; - case 6: - $this->error = 'upload temp dir not found'; - break; - case 7: - $this->error = 'file write error'; - break; - default: - $this->error = 'unknown upload error'; - } - } - - /** - * 获取错误信息(支持多语言) - * @access public - * @return string - */ - public function getError() - { - $lang = Container::get('lang'); - - if (is_array($this->error)) { - list($msg, $vars) = $this->error; - } else { - $msg = $this->error; - $vars = []; - } - - return $lang->has($msg) ? $lang->get($msg, $vars) : $msg; - } - - public function __call($method, $args) - { - return $this->hash($method); - } -} diff --git a/thinkphp/library/think/Hook.php b/thinkphp/library/think/Hook.php deleted file mode 100644 index b82fb5a09..000000000 --- a/thinkphp/library/think/Hook.php +++ /dev/null @@ -1,212 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think; - -class Hook -{ - /** - * 钩子行为定义 - * @var array - */ - private $tags = []; - - /** - * 绑定行为列表 - * @var array - */ - protected $bind = []; - - /** - * 入口方法名称 - * @var string - */ - private static $portal = 'run'; - - /** - * 指定入口方法名称 - * @access public - * @param string $name 方法名 - * @return $this - */ - public function portal($name) - { - self::$portal = $name; - return $this; - } - - /** - * 指定行为标识 便于调用 - * @access public - * @param string|array $name 行为标识 - * @param mixed $behavior 行为 - * @return $this - */ - public function alias($name, $behavior = null) - { - if (is_array($name)) { - $this->bind = array_merge($this->bind, $name); - } else { - $this->bind[$name] = $behavior; - } - - return $this; - } - - /** - * 动态添加行为扩展到某个标签 - * @access public - * @param string $tag 标签名称 - * @param mixed $behavior 行为名称 - * @param bool $first 是否放到开头执行 - * @return void - */ - public function add($tag, $behavior, $first = false) - { - isset($this->tags[$tag]) || $this->tags[$tag] = []; - - if (is_array($behavior) && !is_callable($behavior)) { - if (!array_key_exists('_overlay', $behavior)) { - $this->tags[$tag] = array_merge($this->tags[$tag], $behavior); - } else { - unset($behavior['_overlay']); - $this->tags[$tag] = $behavior; - } - } elseif ($first) { - array_unshift($this->tags[$tag], $behavior); - } else { - $this->tags[$tag][] = $behavior; - } - } - - /** - * 批量导入插件 - * @access public - * @param array $tags 插件信息 - * @param bool $recursive 是否递归合并 - * @return void - */ - public function import(array $tags, $recursive = true) - { - if ($recursive) { - foreach ($tags as $tag => $behavior) { - $this->add($tag, $behavior); - } - } else { - $this->tags = $tags + $this->tags; - } - } - - /** - * 获取插件信息 - * @access public - * @param string $tag 插件位置 留空获取全部 - * @return array - */ - public function get($tag = '') - { - if (empty($tag)) { - //获取全部的插件信息 - return $this->tags; - } - - return array_key_exists($tag, $this->tags) ? $this->tags[$tag] : []; - } - - /** - * 监听标签的行为 - * @access public - * @param string $tag 标签名称 - * @param mixed $params 传入参数 - * @param bool $once 只获取一个有效返回值 - * @return mixed - */ - public function listen($tag, $params = null, $once = false) - { - $results = []; - $tags = $this->get($tag); - - foreach ($tags as $key => $name) { - $results[$key] = $this->execTag($name, $tag, $params); - - if (false === $results[$key] || (!is_null($results[$key]) && $once)) { - break; - } - } - - return $once ? end($results) : $results; - } - - /** - * 执行行为 - * @access public - * @param mixed $class 行为 - * @param mixed $params 参数 - * @return mixed - */ - public function exec($class, $params = null) - { - if ($class instanceof \Closure || is_array($class)) { - $method = $class; - } else { - if (isset($this->bind[$class])) { - $class = $this->bind[$class]; - } - $method = [$class, self::$portal]; - } - - return Container::getInstance()->invoke($method, [$params]); - } - - /** - * 执行某个标签的行为 - * @access protected - * @param mixed $class 要执行的行为 - * @param string $tag 方法名(标签名) - * @param mixed $params 参数 - * @return mixed - */ - protected function execTag($class, $tag = '', $params = null) - { - $app = Container::get('app'); - - $app->isDebug() && $app['debug']->remark('behavior_start', 'time'); - - $method = Loader::parseName($tag, 1, false); - - if ($class instanceof \Closure) { - $call = $class; - $class = 'Closure'; - } elseif (strpos($class, '::')) { - $call = $class; - } else { - $obj = Container::get($class); - - if (!is_callable([$obj, $method])) { - $method = self::$portal; - } - - $call = [$class, $method]; - $class = $class . '->' . $method; - } - - $result = Container::getInstance()->invoke($call, [$params]); - - if ($app->isDebug()) { - $debug = $app['debug']; - $debug->remark('behavior_end', 'time'); - $app->log('[ BEHAVIOR ] Run ' . $class . ' @' . $tag . ' [ RunTime:' . $debug->getRangeTime('behavior_start', 'behavior_end') . 's ]'); - } - - return $result; - } - -} diff --git a/thinkphp/library/think/Lang.php b/thinkphp/library/think/Lang.php deleted file mode 100644 index 2168c13a5..000000000 --- a/thinkphp/library/think/Lang.php +++ /dev/null @@ -1,265 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think; - -class Lang -{ - /** - * 多语言信息 - * @var array - */ - private $lang = []; - - /** - * 当前语言 - * @var string - */ - private $range = 'zh-cn'; - - /** - * 多语言自动侦测变量名 - * @var string - */ - protected $langDetectVar = 'lang'; - - /** - * 多语言cookie变量 - * @var string - */ - protected $langCookieVar = 'think_var'; - - /** - * 允许的多语言列表 - * @var array - */ - protected $allowLangList = []; - - /** - * Accept-Language转义为对应语言包名称 系统默认配置 - * @var string - */ - protected $acceptLanguage = [ - 'zh-hans-cn' => 'zh-cn', - ]; - - // 设定当前的语言 - public function range($range = '') - { - if ('' == $range) { - return $this->range; - } else { - $this->range = $range; - } - } - - /** - * 设置语言定义(不区分大小写) - * @access public - * @param string|array $name 语言变量 - * @param string $value 语言值 - * @param string $range 语言作用域 - * @return mixed - */ - public function set($name, $value = null, $range = '') - { - $range = $range ?: $this->range; - // 批量定义 - if (!isset($this->lang[$range])) { - $this->lang[$range] = []; - } - - if (is_array($name)) { - return $this->lang[$range] = array_change_key_case($name) + $this->lang[$range]; - } - - return $this->lang[$range][strtolower($name)] = $value; - } - - /** - * 加载语言定义(不区分大小写) - * @access public - * @param string|array $file 语言文件 - * @param string $range 语言作用域 - * @return array - */ - public function load($file, $range = '') - { - $range = $range ?: $this->range; - if (!isset($this->lang[$range])) { - $this->lang[$range] = []; - } - - // 批量定义 - if (is_string($file)) { - $file = [$file]; - } - - $lang = []; - - foreach ($file as $_file) { - if (is_file($_file)) { - // 记录加载信息 - Container::get('app')->log('[ LANG ] ' . $_file); - $_lang = include $_file; - if (is_array($_lang)) { - $lang = array_change_key_case($_lang) + $lang; - } - } - } - - if (!empty($lang)) { - $this->lang[$range] = $lang + $this->lang[$range]; - } - - return $this->lang[$range]; - } - - /** - * 获取语言定义(不区分大小写) - * @access public - * @param string|null $name 语言变量 - * @param string $range 语言作用域 - * @return bool - */ - public function has($name, $range = '') - { - $range = $range ?: $this->range; - - return isset($this->lang[$range][strtolower($name)]); - } - - /** - * 获取语言定义(不区分大小写) - * @access public - * @param string|null $name 语言变量 - * @param array $vars 变量替换 - * @param string $range 语言作用域 - * @return mixed - */ - public function get($name = null, $vars = [], $range = '') - { - $range = $range ?: $this->range; - - // 空参数返回所有定义 - if (empty($name)) { - return $this->lang[$range]; - } - - $key = strtolower($name); - $value = isset($this->lang[$range][$key]) ? $this->lang[$range][$key] : $name; - - // 变量解析 - if (!empty($vars) && is_array($vars)) { - /** - * Notes: - * 为了检测的方便,数字索引的判断仅仅是参数数组的第一个元素的key为数字0 - * 数字索引采用的是系统的 sprintf 函数替换,用法请参考 sprintf 函数 - */ - if (key($vars) === 0) { - // 数字索引解析 - array_unshift($vars, $value); - $value = call_user_func_array('sprintf', $vars); - } else { - // 关联索引解析 - $replace = array_keys($vars); - foreach ($replace as &$v) { - $v = "{:{$v}}"; - } - $value = str_replace($replace, $vars, $value); - } - } - - return $value; - } - - /** - * 自动侦测设置获取语言选择 - * @access public - * @return string - */ - public function detect() - { - // 自动侦测设置获取语言选择 - $langSet = ''; - - if (isset($_GET[$this->langDetectVar])) { - // url中设置了语言变量 - $langSet = strtolower($_GET[$this->langDetectVar]); - } elseif (isset($_COOKIE[$this->langCookieVar])) { - // Cookie中设置了语言变量 - $langSet = strtolower($_COOKIE[$this->langCookieVar]); - } elseif (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) { - // 自动侦测浏览器语言 - preg_match('/^([a-z\d\-]+)/i', $_SERVER['HTTP_ACCEPT_LANGUAGE'], $matches); - $langSet = strtolower($matches[1]); - $acceptLangs = Container::get('config')->get('header_accept_lang'); - if (isset($acceptLangs[$langSet])) { - $langSet = $acceptLangs[$langSet]; - } elseif (isset($this->acceptLanguage[$langSet])) { - $langSet = $this->acceptLanguage[$langSet]; - } - } - - if (empty($this->allowLangList) || in_array($langSet, $this->allowLangList)) { - // 合法的语言 - $this->range = $langSet ?: $this->range; - } - - return $this->range; - } - - /** - * 设置当前语言到Cookie - * @access public - * @param string $lang 语言 - * @return void - */ - public function saveToCookie($lang = null) - { - $range = $lang ?: $this->range; - - $_COOKIE[$this->langCookieVar] = $range; - } - - /** - * 设置语言自动侦测的变量 - * @access public - * @param string $var 变量名称 - * @return void - */ - public function setLangDetectVar($var) - { - $this->langDetectVar = $var; - } - - /** - * 设置语言的cookie保存变量 - * @access public - * @param string $var 变量名称 - * @return void - */ - public function setLangCookieVar($var) - { - $this->langCookieVar = $var; - } - - /** - * 设置允许的语言列表 - * @access public - * @param array $list 语言列表 - * @return void - */ - public function setAllowLangList($list) - { - $this->allowLangList = $list; - } -} diff --git a/thinkphp/library/think/Loader.php b/thinkphp/library/think/Loader.php deleted file mode 100644 index e2bed16f4..000000000 --- a/thinkphp/library/think/Loader.php +++ /dev/null @@ -1,405 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think; - -class Loader -{ - /** - * 类名映射信息 - * @var array - */ - protected static $classMap = []; - - /** - * 类库别名 - * @var array - */ - protected static $classAlias = []; - - /** - * PSR-4 - * @var array - */ - private static $prefixLengthsPsr4 = []; - private static $prefixDirsPsr4 = []; - private static $fallbackDirsPsr4 = []; - - /** - * PSR-0 - * @var array - */ - private static $prefixesPsr0 = []; - private static $fallbackDirsPsr0 = []; - - /** - * 自动加载的文件列表 - * @var array - */ - private static $autoloadFiles = []; - - /** - * Composer安装路径 - * @var string - */ - private static $composerPath; - - // 获取应用根目录 - public static function getRootPath() - { - if ('cli' == PHP_SAPI) { - $cwdPath = getcwd(); - - if (0 === strpos($_SERVER['argv'][0], $cwdPath)) { - $scriptName = $_SERVER['argv'][0]; - } else { - $scriptName = $cwdPath . DIRECTORY_SEPARATOR . $_SERVER['argv'][0]; - } - } else { - $scriptName = $_SERVER['SCRIPT_FILENAME']; - } - - $path = realpath(dirname($scriptName)); - - if (!is_file($path . DIRECTORY_SEPARATOR . 'think')) { - $path = dirname($path); - } - - return $path . DIRECTORY_SEPARATOR; - } - - // 注册自动加载机制 - public static function register($autoload = '') - { - // 注册系统自动加载 - spl_autoload_register($autoload ?: 'think\\Loader::autoload', true, true); - - $rootPath = self::getRootPath(); - - self::$composerPath = $rootPath . 'vendor' . DIRECTORY_SEPARATOR . 'composer' . DIRECTORY_SEPARATOR; - - // Composer自动加载支持 - if (is_dir(self::$composerPath)) { - if (is_file(self::$composerPath . 'autoload_static.php')) { - require self::$composerPath . 'autoload_static.php'; - - $declaredClass = get_declared_classes(); - $composerClass = array_pop($declaredClass); - - foreach (['prefixLengthsPsr4', 'prefixDirsPsr4', 'prefixesPsr0', 'classMap'] as $attr) { - if (property_exists($composerClass, $attr)) { - self::${$attr} = $composerClass::${$attr}; - } - } - } else { - self::registerComposerLoader(self::$composerPath); - } - } - - // 注册命名空间定义 - self::addNamespace([ - 'think' => __DIR__, - 'traits' => dirname(__DIR__) . DIRECTORY_SEPARATOR . 'traits', - ]); - - // 加载类库映射文件 - if (is_file($rootPath . 'runtime' . DIRECTORY_SEPARATOR . 'classmap.php')) { - self::addClassMap(__include_file($rootPath . 'runtime' . DIRECTORY_SEPARATOR . 'classmap.php')); - } - - // 自动加载extend目录 - self::addAutoLoadDir($rootPath . 'extend'); - } - - // 自动加载 - public static function autoload($class) - { - if (isset(self::$classAlias[$class])) { - return class_alias(self::$classAlias[$class], $class); - } - - if ($file = self::findFile($class)) { - - // Win环境严格区分大小写 - if (strpos(PHP_OS, 'WIN') !== false && pathinfo($file, PATHINFO_FILENAME) != pathinfo(realpath($file), PATHINFO_FILENAME)) { - return false; - } - - __include_file($file); - return true; - } - } - - /** - * 查找文件 - * @access private - * @param string $class - * @return string|false - */ - private static function findFile($class) - { - if (!empty(self::$classMap[$class])) { - // 类库映射 - return self::$classMap[$class]; - } - - // 查找 PSR-4 - $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . '.php'; - - $first = $class[0]; - if (isset(self::$prefixLengthsPsr4[$first])) { - foreach (self::$prefixLengthsPsr4[$first] as $prefix => $length) { - if (0 === strpos($class, $prefix)) { - foreach (self::$prefixDirsPsr4[$prefix] as $dir) { - if (is_file($file = $dir . DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $length))) { - return $file; - } - } - } - } - } - - // 查找 PSR-4 fallback dirs - foreach (self::$fallbackDirsPsr4 as $dir) { - if (is_file($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) { - return $file; - } - } - - // 查找 PSR-0 - if (false !== $pos = strrpos($class, '\\')) { - // namespaced class name - $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1) - . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR); - } else { - // PEAR-like class name - $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . '.php'; - } - - if (isset(self::$prefixesPsr0[$first])) { - foreach (self::$prefixesPsr0[$first] as $prefix => $dirs) { - if (0 === strpos($class, $prefix)) { - foreach ($dirs as $dir) { - if (is_file($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { - return $file; - } - } - } - } - } - - // 查找 PSR-0 fallback dirs - foreach (self::$fallbackDirsPsr0 as $dir) { - if (is_file($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { - return $file; - } - } - - return self::$classMap[$class] = false; - } - - // 注册classmap - public static function addClassMap($class, $map = '') - { - if (is_array($class)) { - self::$classMap = array_merge(self::$classMap, $class); - } else { - self::$classMap[$class] = $map; - } - } - - // 注册命名空间 - public static function addNamespace($namespace, $path = '') - { - if (is_array($namespace)) { - foreach ($namespace as $prefix => $paths) { - self::addPsr4($prefix . '\\', rtrim($paths, DIRECTORY_SEPARATOR), true); - } - } else { - self::addPsr4($namespace . '\\', rtrim($path, DIRECTORY_SEPARATOR), true); - } - } - - // 添加Ps0空间 - private static function addPsr0($prefix, $paths, $prepend = false) - { - if (!$prefix) { - if ($prepend) { - self::$fallbackDirsPsr0 = array_merge( - (array) $paths, - self::$fallbackDirsPsr0 - ); - } else { - self::$fallbackDirsPsr0 = array_merge( - self::$fallbackDirsPsr0, - (array) $paths - ); - } - - return; - } - - $first = $prefix[0]; - if (!isset(self::$prefixesPsr0[$first][$prefix])) { - self::$prefixesPsr0[$first][$prefix] = (array) $paths; - - return; - } - - if ($prepend) { - self::$prefixesPsr0[$first][$prefix] = array_merge( - (array) $paths, - self::$prefixesPsr0[$first][$prefix] - ); - } else { - self::$prefixesPsr0[$first][$prefix] = array_merge( - self::$prefixesPsr0[$first][$prefix], - (array) $paths - ); - } - } - - // 添加Psr4空间 - private static function addPsr4($prefix, $paths, $prepend = false) - { - if (!$prefix) { - // Register directories for the root namespace. - if ($prepend) { - self::$fallbackDirsPsr4 = array_merge( - (array) $paths, - self::$fallbackDirsPsr4 - ); - } else { - self::$fallbackDirsPsr4 = array_merge( - self::$fallbackDirsPsr4, - (array) $paths - ); - } - } elseif (!isset(self::$prefixDirsPsr4[$prefix])) { - // Register directories for a new namespace. - $length = strlen($prefix); - if ('\\' !== $prefix[$length - 1]) { - throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); - } - - self::$prefixLengthsPsr4[$prefix[0]][$prefix] = $length; - self::$prefixDirsPsr4[$prefix] = (array) $paths; - } elseif ($prepend) { - // Prepend directories for an already registered namespace. - self::$prefixDirsPsr4[$prefix] = array_merge( - (array) $paths, - self::$prefixDirsPsr4[$prefix] - ); - } else { - // Append directories for an already registered namespace. - self::$prefixDirsPsr4[$prefix] = array_merge( - self::$prefixDirsPsr4[$prefix], - (array) $paths - ); - } - } - - // 注册自动加载类库目录 - public static function addAutoLoadDir($path) - { - self::$fallbackDirsPsr4[] = $path; - } - - // 注册类别名 - public static function addClassAlias($alias, $class = null) - { - if (is_array($alias)) { - self::$classAlias = array_merge(self::$classAlias, $alias); - } else { - self::$classAlias[$alias] = $class; - } - } - - // 注册composer自动加载 - public static function registerComposerLoader($composerPath) - { - if (is_file($composerPath . 'autoload_namespaces.php')) { - $map = require $composerPath . 'autoload_namespaces.php'; - foreach ($map as $namespace => $path) { - self::addPsr0($namespace, $path); - } - } - - if (is_file($composerPath . 'autoload_psr4.php')) { - $map = require $composerPath . 'autoload_psr4.php'; - foreach ($map as $namespace => $path) { - self::addPsr4($namespace, $path); - } - } - - if (is_file($composerPath . 'autoload_classmap.php')) { - $classMap = require $composerPath . 'autoload_classmap.php'; - if ($classMap) { - self::addClassMap($classMap); - } - } - } - - // 加载composer autofile文件 - public static function loadComposerAutoloadFiles() - { - if (is_file(self::$composerPath . 'autoload_files.php')) { - $includeFiles = require self::$composerPath . 'autoload_files.php'; - foreach ($includeFiles as $fileIdentifier => $file) { - if (isset($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { - continue; - } - - if (empty(self::$autoloadFiles[$fileIdentifier])) { - __require_file($file); - self::$autoloadFiles[$fileIdentifier] = true; - } - } - } - } - - /** - * 字符串命名风格转换 - * type 0 将Java风格转换为C的风格 1 将C风格转换为Java的风格 - * @access public - * @param string $name 字符串 - * @param integer $type 转换类型 - * @param bool $ucfirst 首字母是否大写(驼峰规则) - * @return string - */ - public static function parseName($name, $type = 0, $ucfirst = true) - { - if ($type) { - $name = preg_replace_callback('/_([a-zA-Z])/', function ($match) { - return strtoupper($match[1]); - }, $name); - return $ucfirst ? ucfirst($name) : lcfirst($name); - } - - return strtolower(trim(preg_replace("/[A-Z]/", "_\\0", $name), "_")); - } -} - -/** - * 作用范围隔离 - * - * @param $file - * @return mixed - */ -function __include_file($file) -{ - return include $file; -} - -function __require_file($file) -{ - return require $file; -} diff --git a/thinkphp/library/think/Log.php b/thinkphp/library/think/Log.php deleted file mode 100644 index b584ee78f..000000000 --- a/thinkphp/library/think/Log.php +++ /dev/null @@ -1,398 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think; - -use think\exception\ClassNotFoundException; - -class Log implements LoggerInterface -{ - const EMERGENCY = 'emergency'; - const ALERT = 'alert'; - const CRITICAL = 'critical'; - const ERROR = 'error'; - const WARNING = 'warning'; - const NOTICE = 'notice'; - const INFO = 'info'; - const DEBUG = 'debug'; - const SQL = 'sql'; - - /** - * 日志信息 - * @var array - */ - protected $log = []; - - /** - * 配置参数 - * @var array - */ - protected $config = []; - - /** - * 日志写入驱动 - * @var object - */ - protected $driver; - - /** - * 日志授权key - * @var string - */ - protected $key; - - /** - * 是否允许日志写入 - * @var bool - */ - protected $allowWrite = true; - - /** - * 应用对象 - * @var App - */ - protected $app; - - public function __construct(App $app) - { - $this->app = $app; - } - - /** - * 日志初始化 - * @access public - * @param array $config - * @return $this - */ - public function init($config = []) - { - $type = isset($config['type']) ? $config['type'] : 'File'; - $class = false !== strpos($type, '\\') ? $type : '\\think\\log\\driver\\' . ucwords($type); - - $this->config = $config; - - unset($config['type']); - if (!empty($config['close'])) { - $this->allowWrite = false; - } - - if (class_exists($class)) { - $this->driver = new $class($config); - } else { - throw new ClassNotFoundException('class not exists:' . $class, $class); - } - - // 记录初始化信息 - $this->app->isDebug() && $this->record('[ LOG ] INIT ' . $type); - - return $this; - } - - /** - * 获取日志信息 - * @access public - * @param string $type 信息类型 - * @return array - */ - public function getLog($type = '') - { - return $type ? $this->log[$type] : $this->log; - } - - /** - * 记录日志信息 - * @access public - * @param mixed $msg 日志信息 - * @param string $type 日志级别 - * @param array $context 替换内容 - * @return $this - */ - public function record($msg, $type = 'info', array $context = []) - { - if (!$this->allowWrite) { - return; - } - - if (is_string($msg)) { - $replace = []; - foreach ($context as $key => $val) { - $replace['{' . $key . '}'] = $val; - } - - $msg = strtr($msg, $replace); - } - - $this->log[$type][] = $msg; - - if (PHP_SAPI == 'cli') { - // 命令行日志实时写入 - $this->save(); - } - - return $this; - } - - /** - * 清空日志信息 - * @access public - * @return $this - */ - public function clear() - { - $this->log = []; - - return $this; - } - - /** - * 当前日志记录的授权key - * @access public - * @param string $key 授权key - * @return $this - */ - public function key($key) - { - $this->key = $key; - - return $this; - } - - /** - * 检查日志写入权限 - * @access public - * @param array $config 当前日志配置参数 - * @return bool - */ - public function check($config) - { - if ($this->key && !empty($config['allow_key']) && !in_array($this->key, $config['allow_key'])) { - return false; - } - - return true; - } - - /** - * 关闭本次请求日志写入 - * @access public - * @return $this - */ - public function close() - { - $this->allowWrite = false; - $this->log = []; - - return $this; - } - - /** - * 保存调试信息 - * @access public - * @return bool - */ - public function save() - { - if (empty($this->log) || !$this->allowWrite) { - return true; - } - - if (is_null($this->driver)) { - $this->init($this->app['config']->pull('log')); - } - - if (!$this->check($this->config)) { - // 检测日志写入权限 - return false; - } - - if (empty($this->config['level'])) { - // 获取全部日志 - $log = $this->log; - if (!$this->app->isDebug() && isset($log['debug'])) { - unset($log['debug']); - } - } else { - // 记录允许级别 - $log = []; - foreach ($this->config['level'] as $level) { - if (isset($this->log[$level])) { - $log[$level] = $this->log[$level]; - } - } - } - - $result = $this->driver->save($log); - if ($result) { - $this->log = []; - } - - return $result; - } - - /** - * 实时写入日志信息 并支持行为 - * @access public - * @param mixed $msg 调试信息 - * @param string $type 日志级别 - * @param bool $force 是否强制写入 - * @return bool - */ - public function write($msg, $type = 'info', $force = false) - { - // 封装日志信息 - $log = $this->log; - - if (true === $force || empty($this->config['level'])) { - $log[$type][] = $msg; - } elseif (in_array($type, $this->config['level'])) { - $log[$type][] = $msg; - } else { - return false; - } - - // 监听log_write - $this->app['hook']->listen('log_write', $log); - - if (is_null($this->driver)) { - $this->init($this->app['config']->pull('log')); - } - - // 写入日志 - $result = $this->driver->save($log); - - if ($result) { - $this->log = []; - } - - return $result; - } - - /** - * 记录日志信息 - * @access public - * @param string $level 日志级别 - * @param mixed $message 日志信息 - * @param array $context 替换内容 - * @return void - */ - public function log($level, $message, array $context = []) - { - $this->record($message, $level, $context); - } - - /** - * 记录emergency信息 - * @access public - * @param mixed $message 日志信息 - * @param array $context 替换内容 - * @return void - */ - public function emergency($message, array $context = []) - { - $this->log(__FUNCTION__, $message, $context); - } - - /** - * 记录警报信息 - * @access public - * @param mixed $message 日志信息 - * @param array $context 替换内容 - * @return void - */ - public function alert($message, array $context = []) - { - $this->log(__FUNCTION__, $message, $context); - } - - /** - * 记录紧急情况 - * @access public - * @param mixed $message 日志信息 - * @param array $context 替换内容 - * @return void - */ - public function critical($message, array $context = []) - { - $this->log(__FUNCTION__, $message, $context); - } - - /** - * 记录错误信息 - * @access public - * @param mixed $message 日志信息 - * @param array $context 替换内容 - * @return void - */ - public function error($message, array $context = []) - { - $this->log(__FUNCTION__, $message, $context); - } - - /** - * 记录warning信息 - * @access public - * @param mixed $message 日志信息 - * @param array $context 替换内容 - * @return void - */ - public function warning($message, array $context = []) - { - $this->log(__FUNCTION__, $message, $context); - } - - /** - * 记录notice信息 - * @access public - * @param mixed $message 日志信息 - * @param array $context 替换内容 - * @return void - */ - public function notice($message, array $context = []) - { - $this->log(__FUNCTION__, $message, $context); - } - - /** - * 记录一般信息 - * @access public - * @param mixed $message 日志信息 - * @param array $context 替换内容 - * @return void - */ - public function info($message, array $context = []) - { - $this->log(__FUNCTION__, $message, $context); - } - - /** - * 记录调试信息 - * @access public - * @param mixed $message 日志信息 - * @param array $context 替换内容 - * @return void - */ - public function debug($message, array $context = []) - { - $this->log(__FUNCTION__, $message, $context); - } - - /** - * 记录sql信息 - * @access public - * @param mixed $message 日志信息 - * @param array $context 替换内容 - * @return void - */ - public function sql($message, array $context = []) - { - $this->log(__FUNCTION__, $message, $context); - } -} diff --git a/thinkphp/library/think/Middleware.php b/thinkphp/library/think/Middleware.php deleted file mode 100644 index 6c2d22116..000000000 --- a/thinkphp/library/think/Middleware.php +++ /dev/null @@ -1,132 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think; - -use InvalidArgumentException; -use LogicException; -use think\exception\HttpResponseException; - -class Middleware -{ - protected $queue = []; - - public function import(array $middlewares = []) - { - foreach ($middlewares as $middleware) { - $this->add($middleware); - } - } - - /** - * {@inheritdoc} - */ - public function add($middleware) - { - if (is_null($middleware)) { - return; - } - - $middleware = $this->buildMiddleware($middleware); - - if ($middleware) { - $this->queue[] = $middleware; - } - } - - /** - * {@inheritdoc} - */ - public function unshift($middleware) - { - if (is_null($middleware)) { - return; - } - - $middleware = $this->buildMiddleware($middleware); - - if ($middleware) { - array_unshift($this->queue, $middleware); - } - } - - /** - * {@inheritdoc} - */ - public function all() - { - return $this->queue; - } - - /** - * {@inheritdoc} - */ - public function dispatch(Request $request) - { - return call_user_func($this->resolve(), $request); - } - - protected function buildMiddleware($middleware) - { - if (is_array($middleware)) { - list($middleware, $param) = $middleware; - } - - if ($middleware instanceof \Closure) { - return [$middleware, isset($param) ? $param : null]; - } - - if (!is_string($middleware)) { - throw new InvalidArgumentException('The middleware is invalid'); - } - - if (false === strpos($middleware, '\\')) { - $value = Container::get('config')->get('middleware.' . $middleware); - $middleware = $value ?: Container::get('app')->getNamespace() . '\\http\\middleware\\' . $middleware; - } - - if (is_array($middleware)) { - return $this->import($middleware); - } - - if (strpos($middleware, ':')) { - list($middleware, $param) = explode(':', $middleware, 2); - } - - return [[Container::get($middleware), 'handle'], isset($param) ? $param : null]; - } - - protected function resolve() - { - return function (Request $request) { - $middleware = array_shift($this->queue); - - if (null === $middleware) { - throw new InvalidArgumentException('The queue was exhausted, with no response returned'); - } - - list($call, $param) = $middleware; - - try { - $response = call_user_func_array($call, [$request, $this->resolve(), $param]); - } catch (HttpResponseException $exception) { - $response = $exception->getResponse(); - } - - if (!$response instanceof Response) { - throw new LogicException('The middleware must return Response instance'); - } - - return $response; - }; - } - -} diff --git a/thinkphp/library/think/Model.php b/thinkphp/library/think/Model.php deleted file mode 100644 index 9a98a4084..000000000 --- a/thinkphp/library/think/Model.php +++ /dev/null @@ -1,1014 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think; - -use think\db\Query; - -/** - * Class Model - * @package think - * @mixin Query - */ -abstract class Model implements \JsonSerializable, \ArrayAccess -{ - use model\concern\Attribute; - use model\concern\RelationShip; - use model\concern\ModelEvent; - use model\concern\TimeStamp; - use model\concern\Conversion; - - /** - * 是否更新数据 - * @var bool - */ - private $isUpdate = false; - - /** - * 是否强制更新所有数据 - * @var bool - */ - private $force = false; - - /** - * 更新条件 - * @var array - */ - private $updateWhere; - - /** - * 数据库配置信息 - * @var array|string - */ - protected $connection = []; - - /** - * 数据库查询对象类名 - * @var string - */ - protected $query; - - /** - * 模型名称 - * @var string - */ - protected $name; - - /** - * 数据表名称 - * @var string - */ - protected $table; - - /** - * 写入自动完成定义 - * @var array - */ - protected $auto = []; - - /** - * 新增自动完成定义 - * @var array - */ - protected $insert = []; - - /** - * 更新自动完成定义 - * @var array - */ - protected $update = []; - - /** - * 初始化过的模型. - * @var array - */ - protected static $initialized = []; - - /** - * 查询对象实例 - * @var Query - */ - protected $queryInstance; - - /** - * 错误信息 - * @var mixed - */ - protected $error; - - /** - * 软删除字段默认值 - * @var mixed - */ - protected $defaultSoftDelete; - - /** - * 架构函数 - * @access public - * @param array|object $data 数据 - */ - public function __construct($data = []) - { - if (is_object($data)) { - $this->data = get_object_vars($data); - } else { - $this->data = $data; - } - - if ($this->disuse) { - // 废弃字段 - foreach ((array) $this->disuse as $key) { - if (array_key_exists($key, $this->data)) { - unset($this->data[$key]); - } - } - } - - // 记录原始数据 - $this->origin = $this->data; - - $config = Container::get('config'); - - if (empty($this->name)) { - // 当前模型名 - $name = str_replace('\\', '/', static::class); - $this->name = basename($name); - if ($config->get('class_suffix')) { - $suffix = basename(dirname($name)); - $this->name = substr($this->name, 0, -strlen($suffix)); - } - } - - if (is_null($this->autoWriteTimestamp)) { - // 自动写入时间戳 - $this->autoWriteTimestamp = $config->get('database.auto_timestamp'); - } - - if (is_null($this->dateFormat)) { - // 设置时间戳格式 - $this->dateFormat = $config->get('database.datetime_format'); - } - - if (is_null($this->resultSetType)) { - $this->resultSetType = $config->get('database.resultset_type'); - } - - if (is_null($this->query)) { - // 设置查询对象 - $this->query = $config->get('database.query'); - } - - if (!empty($this->connection) && is_array($this->connection)) { - // 设置模型的数据库连接 - $this->connection = array_merge($config->pull('database'), $this->connection); - } - - // 执行初始化操作 - $this->initialize(); - } - - /** - * 获取当前模型名称 - * @access public - * @return string - */ - public function getName() - { - return $this->name; - } - - /** - * 创建新的模型实例 - * @access public - * @param array|object $data 数据 - * @param bool $isUpdate 是否为更新 - * @param mixed $where 更新条件 - * @return Model - */ - public function newInstance($data = [], $isUpdate = false, $where = null) - { - return (new static($data))->isUpdate($isUpdate, $where); - } - - /** - * 创建模型的查询对象 - * @access protected - * @return Query - */ - protected function buildQuery() - { - // 设置当前模型 确保查询返回模型对象 - $class = $this->query; - $query = (new $class())->connect($this->connection)->model($this)->json($this->json); - - // 设置当前数据表和模型名 - if (!empty($this->table)) { - $query->table($this->table); - } else { - $query->name($this->name); - } - - if (!empty($this->pk)) { - $query->pk($this->pk); - } - - return $query; - } - - /** - * 获取当前模型的数据库查询对象 - * @access public - * @param Query $query 查询对象实例 - * @return $this - */ - public function setQuery($query) - { - $this->queryInstance = $query; - return $this; - } - - /** - * 获取当前模型的数据库查询对象 - * @access public - * @param bool $useBaseQuery 是否调用全局查询范围 - * @return Query - */ - public function db($useBaseQuery = true) - { - if ($this->queryInstance) { - return $this->queryInstance; - } - - $query = $this->buildQuery(); - - if ($useBaseQuery) { - // 软删除 - if (method_exists($this, 'withNoTrashed')) { - $this->withNoTrashed($query); - } - - // 全局作用域 - if (method_exists($this, 'base')) { - call_user_func_array([$this, 'base'], [ & $query]); - } - } - - // 返回当前模型的数据库查询对象 - return $query; - } - - /** - * 初始化模型 - * @access protected - * @return void - */ - protected function initialize() - { - if (!isset(static::$initialized[static::class])) { - static::$initialized[static::class] = true; - static::init(); - } - } - - /** - * 初始化处理 - * @access protected - * @return void - */ - protected static function init() - {} - - /** - * 数据自动完成 - * @access protected - * @param array $auto 要自动更新的字段列表 - * @return void - */ - protected function autoCompleteData($auto = []) - { - foreach ($auto as $field => $value) { - if (is_integer($field)) { - $field = $value; - $value = null; - } - - if (!isset($this->data[$field])) { - $default = null; - } else { - $default = $this->data[$field]; - } - - $this->setAttr($field, !is_null($value) ? $value : $default); - } - } - - /** - * 更新是否强制写入数据 而不做比较 - * @access public - * @param bool $force - * @return $this - */ - public function force($force = true) - { - $this->force = $force; - return $this; - } - - /** - * 保存当前数据对象 - * @access public - * @param array $data 数据 - * @param array $where 更新条件 - * @param string $sequence 自增序列名 - * @return integer|false - */ - public function save($data = [], $where = [], $sequence = null) - { - if (is_string($data)) { - $sequence = $data; - $data = []; - } - - if (!$this->checkBeforeSave($data, $where)) { - return false; - } - - $result = $this->isUpdate ? $this->updateData($where) : $this->insertData($sequence); - - if (false === $result) { - return false; - } - - // 写入回调 - $this->trigger('after_write'); - - // 重新记录原始数据 - $this->origin = $this->data; - - return $result; - } - - /** - * 写入之前检查数据 - * @access protected - * @param array $data 数据 - * @param array $where 保存条件 - * @return bool - */ - protected function checkBeforeSave($data, $where) - { - if (!empty($data)) { - - // 数据对象赋值 - foreach ($data as $key => $value) { - $this->setAttr($key, $value, $data); - } - - if (!empty($where)) { - $this->isUpdate = true; - $this->updateWhere = $where; - } - } - - // 数据自动完成 - $this->autoCompleteData($this->auto); - - // 事件回调 - if (false === $this->trigger('before_write')) { - return false; - } - - return true; - } - - /** - * 检查数据是否允许写入 - * @access protected - * @param array $append 自动完成的字段列表 - * @return array - */ - protected function checkAllowFields(array $append = []) - { - // 检测字段 - if (empty($this->field) || true === $this->field) { - $query = $this->db(false); - $table = $this->table ?: $query->getTable(); - - $this->field = $query->getConnection()->getTableFields($table); - - $field = $this->field; - } else { - $field = array_merge($this->field, $append); - - if ($this->autoWriteTimestamp) { - array_push($field, $this->createTime, $this->updateTime); - } - } - - if ($this->disuse) { - // 废弃字段 - $field = array_diff($field, (array) $this->disuse); - } - return $field; - } - - /** - * 保存写入数据 - * @access protected - * @param array $where 保存条件 - * @return int|false - */ - protected function updateData($where) - { - // 自动更新 - $this->autoCompleteData($this->update); - - // 事件回调 - if (false === $this->trigger('before_update')) { - return false; - } - - // 获取有更新的数据 - $data = $this->getChangedData(); - - if (empty($data)) { - // 关联更新 - if (!empty($this->relationWrite)) { - $this->autoRelationUpdate(); - } - - return 0; - } elseif ($this->autoWriteTimestamp && $this->updateTime && !isset($data[$this->updateTime])) { - // 自动写入更新时间 - $data[$this->updateTime] = $this->autoWriteTimestamp($this->updateTime); - - $this->data[$this->updateTime] = $data[$this->updateTime]; - } - - if (empty($where) && !empty($this->updateWhere)) { - $where = $this->updateWhere; - } - - // 检查允许字段 - $allowFields = $this->checkAllowFields(array_merge($this->auto, $this->update)); - - // 保留主键数据 - foreach ($this->data as $key => $val) { - if ($this->isPk($key)) { - $data[$key] = $val; - } - } - - $pk = $this->getPk(); - $array = []; - - foreach ((array) $pk as $key) { - if (isset($data[$key])) { - $array[] = [$key, '=', $data[$key]]; - unset($data[$key]); - } - } - - if (!empty($array)) { - $where = $array; - } - - foreach ((array) $this->relationWrite as $name => $val) { - if (is_array($val)) { - foreach ($val as $key) { - if (isset($data[$key])) { - unset($data[$key]); - } - } - } - } - - // 模型更新 - $result = $this->db(false)->where($where)->strict(false)->field($allowFields)->update($data); - - // 关联更新 - if (!empty($this->relationWrite)) { - $this->autoRelationUpdate(); - } - - // 更新回调 - $this->trigger('after_update'); - - return $result; - } - - /** - * 新增写入数据 - * @access protected - * @param string $sequence 自增名 - * @return int|false - */ - protected function insertData($sequence) - { - // 自动写入 - $this->autoCompleteData($this->insert); - - // 时间戳自动写入 - $this->checkTimeStampWrite(); - - if (false === $this->trigger('before_insert')) { - return false; - } - - // 检查允许字段 - $allowFields = $this->checkAllowFields(array_merge($this->auto, $this->insert)); - - $result = $this->db(false)->strict(false)->field($allowFields)->insert($this->data, false, false, $sequence); - - // 获取自动增长主键 - if ($result && $insertId = $this->db(false)->getLastInsID($sequence)) { - $pk = $this->getPk(); - - foreach ((array) $pk as $key) { - if (!isset($this->data[$key]) || '' == $this->data[$key]) { - $this->data[$key] = $insertId; - } - } - } - - // 关联写入 - if (!empty($this->relationWrite)) { - $this->autoRelationInsert(); - } - - // 标记为更新 - $this->isUpdate = true; - - // 新增回调 - $this->trigger('after_insert'); - - return $result; - } - - /** - * 字段值(延迟)增长 - * @access public - * @param string $field 字段名 - * @param integer $step 增长值 - * @param integer $lazyTime 延时时间(s) - * @return integer|true - * @throws Exception - */ - public function setInc($field, $step = 1, $lazyTime = 0) - { - // 读取更新条件 - $where = $this->getWhere(); - - $result = $this->db(false)->where($where)->setInc($field, $step, $lazyTime); - - if (true !== $result) { - $this->data[$field] += $step; - } - - return $result; - } - - /** - * 字段值(延迟)减少 - * @access public - * @param string $field 字段名 - * @param integer $step 减少值 - * @param integer $lazyTime 延时时间(s) - * @return integer|true - * @throws Exception - */ - public function setDec($field, $step = 1, $lazyTime = 0) - { - // 读取更新条件 - $where = $this->getWhere(); - - $result = $this->db(false)->where($where)->setDec($field, $step, $lazyTime); - - if (true !== $result) { - $this->data[$field] -= $step; - } - - return $result; - } - - /** - * 获取当前的更新条件 - * @access protected - * @return mixed - */ - protected function getWhere() - { - // 删除条件 - $pk = $this->getPk(); - - if (is_string($pk) && isset($this->data[$pk])) { - $where[] = [$pk, '=', $this->data[$pk]]; - } elseif (!empty($this->updateWhere)) { - $where = $this->updateWhere; - } else { - $where = null; - } - - return $where; - } - - /** - * 保存多个数据到当前数据对象 - * @access public - * @param array $dataSet 数据 - * @param boolean $replace 是否自动识别更新和写入 - * @return Collection - * @throws \Exception - */ - public function saveAll($dataSet, $replace = true) - { - $result = []; - - $db = $this->db(false); - $db->startTrans(); - - try { - $pk = $this->getPk(); - - if (is_string($pk) && $replace) { - $auto = true; - } - - foreach ($dataSet as $key => $data) { - if ($this->isUpdate || (!empty($auto) && isset($data[$pk]))) { - $result[$key] = self::update($data, [], $this->field); - } else { - $result[$key] = self::create($data, $this->field); - } - } - - $db->commit(); - - return $this->toCollection($result); - } catch (\Exception $e) { - $db->rollback(); - throw $e; - } - } - - /** - * 是否为更新数据 - * @access public - * @param mixed $update - * @param mixed $where - * @return $this - */ - public function isUpdate($update = true, $where = null) - { - if (is_bool($update)) { - $this->isUpdate = $update; - - if (!empty($where)) { - $this->updateWhere = $where; - } - } else { - $this->isUpdate = true; - $this->updateWhere = $update; - } - - return $this; - } - - /** - * 删除当前的记录 - * @access public - * @return integer - */ - public function delete() - { - if (false === $this->trigger('before_delete')) { - return false; - } - - // 读取更新条件 - $where = $this->getWhere(); - - // 删除当前模型数据 - $result = $this->db(false)->where($where)->delete(); - - // 关联删除 - if (!empty($this->relationWrite)) { - $this->autoRelationDelete(); - } - - $this->trigger('after_delete'); - - // 清空数据 - $this->data = []; - $this->origin = []; - - return $result; - } - - /** - * 设置自动完成的字段( 规则通过修改器定义) - * @access public - * @param array $fields 需要自动完成的字段 - * @return $this - */ - public function auto($fields) - { - $this->auto = $fields; - - return $this; - } - - /** - * 写入数据 - * @access public - * @param array $data 数据数组 - * @param array|true $field 允许字段 - * @return static - */ - public static function create($data = [], $field = null) - { - $model = new static(); - - if (!empty($field)) { - $model->allowField($field); - } - - $model->isUpdate(false)->save($data, []); - - return $model; - } - - /** - * 更新数据 - * @access public - * @param array $data 数据数组 - * @param array $where 更新条件 - * @param array|true $field 允许字段 - * @return static - */ - public static function update($data = [], $where = [], $field = null) - { - $model = new static(); - - if (!empty($field)) { - $model->allowField($field); - } - - $model->isUpdate(true)->save($data, $where); - - return $model; - } - - /** - * 查找单条记录 - * @access public - * @param mixed $data 主键值或者查询条件(闭包) - * @param mixed $with 关联预查询 - * @param bool $cache 是否缓存 - * @param bool $failException 是否抛出异常 - * @return static|null - * @throws exception\DbException - */ - public static function get($data, $with = [], $cache = false, $failException = false) - { - if (is_null($data)) { - return; - } - - if (true === $with || is_int($with)) { - $cache = $with; - $with = []; - } - - $query = static::parseQuery($data, $with, $cache); - - return $query->failException($failException)->find($data); - } - - /** - * 查找单条记录 如果不存在直接抛出异常 - * @access public - * @param mixed $data 主键值或者查询条件(闭包) - * @param mixed $with 关联预查询 - * @param bool $cache 是否缓存 - * @return static|null - * @throws exception\DbException - */ - public static function getOrFail($data, $with = [], $cache = false) - { - return self::get($data, $with, $cache, true); - } - - /** - * 查找所有记录 - * @access public - * @param mixed $data 主键列表或者查询条件(闭包) - * @param array|string $with 关联预查询 - * @param bool $cache 是否缓存 - * @return static[]|false - * @throws exception\DbException - */ - public static function all($data = null, $with = [], $cache = false) - { - if (true === $with || is_int($with)) { - $cache = $with; - $with = []; - } - - $query = static::parseQuery($data, $with, $cache); - - return $query->select($data); - } - - /** - * 分析查询表达式 - * @access public - * @param mixed $data 主键列表或者查询条件(闭包) - * @param string $with 关联预查询 - * @param bool $cache 是否缓存 - * @return Query - */ - protected static function parseQuery(&$data, $with, $cache) - { - $result = self::with($with)->cache($cache); - - if (is_array($data) && key($data) !== 0) { - $result = $result->where($data); - $data = null; - } elseif ($data instanceof \Closure) { - $data($result); - $data = null; - } elseif ($data instanceof Query) { - $result = $data->with($with)->cache($cache); - $data = null; - } - - return $result; - } - - /** - * 删除记录 - * @access public - * @param mixed $data 主键列表 支持闭包查询条件 - * @return integer 成功删除的记录数 - */ - public static function destroy($data) - { - if (empty($data) && 0 !== $data) { - return 0; - } - - $model = new static(); - - $query = $model->db(); - - if (is_array($data) && key($data) !== 0) { - $query->where($data); - $data = null; - } elseif ($data instanceof \Closure) { - $data($query); - $data = null; - } - - $resultSet = $query->select($data); - $count = 0; - - if ($resultSet) { - foreach ($resultSet as $data) { - $result = $data->delete(); - $count += $result; - } - } - - return $count; - } - - /** - * 获取错误信息 - * @access public - * @return mixed - */ - public function getError() - { - return $this->error; - } - - /** - * 解序列化后处理 - */ - public function __wakeup() - { - $this->initialize(); - } - - public function __debugInfo() - { - return [ - 'data' => $this->data, - 'relation' => $this->relation, - ]; - } - - /** - * 修改器 设置数据对象的值 - * @access public - * @param string $name 名称 - * @param mixed $value 值 - * @return void - */ - public function __set($name, $value) - { - $this->setAttr($name, $value); - } - - /** - * 获取器 获取数据对象的值 - * @access public - * @param string $name 名称 - * @return mixed - */ - public function __get($name) - { - return $this->getAttr($name); - } - - /** - * 检测数据对象的值 - * @access public - * @param string $name 名称 - * @return boolean - */ - public function __isset($name) - { - if (array_key_exists($name, $this->data) || array_key_exists($name, $this->relation)) { - return true; - } - - return false; - } - - /** - * 销毁数据对象的值 - * @access public - * @param string $name 名称 - * @return void - */ - public function __unset($name) - { - unset($this->data[$name], $this->relation[$name]); - } - - // ArrayAccess - public function offsetSet($name, $value) - { - $this->setAttr($name, $value); - } - - public function offsetExists($name) - { - return $this->__isset($name); - } - - public function offsetUnset($name) - { - $this->__unset($name); - } - - public function offsetGet($name) - { - return $this->getAttr($name); - } - - /** - * 设置是否使用全局查询范围 - * @access public - * @param bool $use 是否启用全局查询范围 - * @return Query - */ - public static function useGlobalScope($use) - { - $model = new static(); - - return $model->db($use); - } - - public function __call($method, $args) - { - return call_user_func_array([$this->db(), $method], $args); - } - - public static function __callStatic($method, $args) - { - $model = new static(); - - return call_user_func_array([$model->db(), $method], $args); - } -} diff --git a/thinkphp/library/think/Paginator.php b/thinkphp/library/think/Paginator.php deleted file mode 100644 index e2f9b898f..000000000 --- a/thinkphp/library/think/Paginator.php +++ /dev/null @@ -1,437 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think; - -use ArrayAccess; -use ArrayIterator; -use Countable; -use IteratorAggregate; -use JsonSerializable; -use Traversable; - -abstract class Paginator implements ArrayAccess, Countable, IteratorAggregate, JsonSerializable -{ - /** - * 是否简洁模式 - * @var bool - */ - protected $simple = false; - - /** - * 数据集 - * @var Collection - */ - protected $items; - - /** - * 当前页 - * @var integer - */ - protected $currentPage; - - /** - * 最后一页 - * @var integer - */ - protected $lastPage; - - /** - * 数据总数 - * @var integer|null - */ - protected $total; - - /** - * 每页数量 - * @var integer - */ - protected $listRows; - - /** - * 是否有下一页 - * @var bool - */ - protected $hasMore; - - /** - * 分页配置 - * @var array - */ - protected $options = [ - 'var_page' => 'page', - 'path' => '/', - 'query' => [], - 'fragment' => '', - ]; - - public function __construct($items, $listRows, $currentPage = null, $total = null, $simple = false, $options = []) - { - $this->options = array_merge($this->options, $options); - - $this->options['path'] = '/' != $this->options['path'] ? rtrim($this->options['path'], '/') : $this->options['path']; - - $this->simple = $simple; - $this->listRows = $listRows; - - if (!$items instanceof Collection) { - $items = Collection::make($items); - } - - if ($simple) { - $this->currentPage = $this->setCurrentPage($currentPage); - $this->hasMore = count($items) > ($this->listRows); - $items = $items->slice(0, $this->listRows); - } else { - $this->total = $total; - $this->lastPage = (int) ceil($total / $listRows); - $this->currentPage = $this->setCurrentPage($currentPage); - $this->hasMore = $this->currentPage < $this->lastPage; - } - $this->items = $items; - } - - /** - * @access public - * @param $items - * @param $listRows - * @param null $currentPage - * @param null $total - * @param bool $simple - * @param array $options - * @return Paginator - */ - public static function make($items, $listRows, $currentPage = null, $total = null, $simple = false, $options = []) - { - return new static($items, $listRows, $currentPage, $total, $simple, $options); - } - - protected function setCurrentPage($currentPage) - { - if (!$this->simple && $currentPage > $this->lastPage) { - return $this->lastPage > 0 ? $this->lastPage : 1; - } - - return $currentPage; - } - - /** - * 获取页码对应的链接 - * - * @access protected - * @param $page - * @return string - */ - protected function url($page) - { - if ($page <= 0) { - $page = 1; - } - - if (strpos($this->options['path'], '[PAGE]') === false) { - $parameters = [$this->options['var_page'] => $page]; - $path = $this->options['path']; - } else { - $parameters = []; - $path = str_replace('[PAGE]', $page, $this->options['path']); - } - - if (count($this->options['query']) > 0) { - $parameters = array_merge($this->options['query'], $parameters); - } - - $url = $path; - if (!empty($parameters)) { - $url .= '?' . http_build_query($parameters, null, '&'); - } - - return $url . $this->buildFragment(); - } - - /** - * 自动获取当前页码 - * @access public - * @param string $varPage - * @param int $default - * @return int - */ - public static function getCurrentPage($varPage = 'page', $default = 1) - { - $page = Container::get('request')->param($varPage); - - if (filter_var($page, FILTER_VALIDATE_INT) !== false && (int) $page >= 1) { - return $page; - } - - return $default; - } - - /** - * 自动获取当前的path - * @access public - * @return string - */ - public static function getCurrentPath() - { - return Container::get('request')->baseUrl(); - } - - public function total() - { - if ($this->simple) { - throw new \DomainException('not support total'); - } - - return $this->total; - } - - public function listRows() - { - return $this->listRows; - } - - public function currentPage() - { - return $this->currentPage; - } - - public function lastPage() - { - if ($this->simple) { - throw new \DomainException('not support last'); - } - - return $this->lastPage; - } - - /** - * 数据是否足够分页 - * @access public - * @return boolean - */ - public function hasPages() - { - return !(1 == $this->currentPage && !$this->hasMore); - } - - /** - * 创建一组分页链接 - * - * @access public - * @param int $start - * @param int $end - * @return array - */ - public function getUrlRange($start, $end) - { - $urls = []; - - for ($page = $start; $page <= $end; $page++) { - $urls[$page] = $this->url($page); - } - - return $urls; - } - - /** - * 设置URL锚点 - * - * @access public - * @param string|null $fragment - * @return $this - */ - public function fragment($fragment) - { - $this->options['fragment'] = $fragment; - - return $this; - } - - /** - * 添加URL参数 - * - * @access public - * @param array|string $key - * @param string|null $value - * @return $this - */ - public function appends($key, $value = null) - { - if (!is_array($key)) { - $queries = [$key => $value]; - } else { - $queries = $key; - } - - foreach ($queries as $k => $v) { - if ($k !== $this->options['var_page']) { - $this->options['query'][$k] = $v; - } - } - - return $this; - } - - /** - * 构造锚点字符串 - * - * @access public - * @return string - */ - protected function buildFragment() - { - return $this->options['fragment'] ? '#' . $this->options['fragment'] : ''; - } - - /** - * 渲染分页html - * @access public - * @return mixed - */ - abstract public function render(); - - public function items() - { - return $this->items->all(); - } - - public function getCollection() - { - return $this->items; - } - - public function isEmpty() - { - return $this->items->isEmpty(); - } - - /** - * 给每个元素执行个回调 - * - * @access public - * @param callable $callback - * @return $this - */ - public function each(callable $callback) - { - foreach ($this->items as $key => $item) { - $result = $callback($item, $key); - - if (false === $result) { - break; - } elseif (!is_object($item)) { - $this->items[$key] = $result; - } - } - - return $this; - } - - /** - * Retrieve an external iterator - * @access public - * @return Traversable An instance of an object implementing Iterator or - * Traversable - */ - public function getIterator() - { - return new ArrayIterator($this->items->all()); - } - - /** - * Whether a offset exists - * @access public - * @param mixed $offset - * @return bool - */ - public function offsetExists($offset) - { - return $this->items->offsetExists($offset); - } - - /** - * Offset to retrieve - * @access public - * @param mixed $offset - * @return mixed - */ - public function offsetGet($offset) - { - return $this->items->offsetGet($offset); - } - - /** - * Offset to set - * @access public - * @param mixed $offset - * @param mixed $value - */ - public function offsetSet($offset, $value) - { - $this->items->offsetSet($offset, $value); - } - - /** - * Offset to unset - * @access public - * @param mixed $offset - * @return void - * @since 5.0.0 - */ - public function offsetUnset($offset) - { - $this->items->offsetUnset($offset); - } - - /** - * Count elements of an object - */ - public function count() - { - return $this->items->count(); - } - - public function __toString() - { - return (string) $this->render(); - } - - public function toArray() - { - try { - $total = $this->total(); - } catch (\DomainException $e) { - $total = null; - } - - return [ - 'total' => $total, - 'per_page' => $this->listRows(), - 'current_page' => $this->currentPage(), - 'last_page' => $this->lastPage, - 'data' => $this->items->toArray(), - ]; - } - - /** - * Specify data which should be serialized to JSON - */ - public function jsonSerialize() - { - return $this->toArray(); - } - - public function __call($name, $arguments) - { - return call_user_func_array([$this->getCollection(), $name], $arguments); - } - -} diff --git a/thinkphp/library/think/Process.php b/thinkphp/library/think/Process.php deleted file mode 100644 index 3b574db49..000000000 --- a/thinkphp/library/think/Process.php +++ /dev/null @@ -1,1268 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think; - -use think\process\exception\Failed as ProcessFailedException; -use think\process\exception\Timeout as ProcessTimeoutException; -use think\process\pipes\Pipes; -use think\process\pipes\Unix as UnixPipes; -use think\process\pipes\Windows as WindowsPipes; -use think\process\Utils; - -class Process -{ - - const ERR = 'err'; - const OUT = 'out'; - - const STATUS_READY = 'ready'; - const STATUS_STARTED = 'started'; - const STATUS_TERMINATED = 'terminated'; - - const STDIN = 0; - const STDOUT = 1; - const STDERR = 2; - - const TIMEOUT_PRECISION = 0.2; - - private $callback; - private $commandline; - private $cwd; - private $env; - private $input; - private $starttime; - private $lastOutputTime; - private $timeout; - private $idleTimeout; - private $options; - private $exitcode; - private $fallbackExitcode; - private $processInformation; - private $outputDisabled = false; - private $stdout; - private $stderr; - private $enhanceWindowsCompatibility = true; - private $enhanceSigchildCompatibility; - private $process; - private $status = self::STATUS_READY; - private $incrementalOutputOffset = 0; - private $incrementalErrorOutputOffset = 0; - private $tty; - private $pty; - - private $useFileHandles = false; - - /** @var Pipes */ - private $processPipes; - - private $latestSignal; - - private static $sigchild; - - /** - * @var array - */ - public static $exitCodes = [ - 0 => 'OK', - 1 => 'General error', - 2 => 'Misuse of shell builtins', - 126 => 'Invoked command cannot execute', - 127 => 'Command not found', - 128 => 'Invalid exit argument', - // signals - 129 => 'Hangup', - 130 => 'Interrupt', - 131 => 'Quit and dump core', - 132 => 'Illegal instruction', - 133 => 'Trace/breakpoint trap', - 134 => 'Process aborted', - 135 => 'Bus error: "access to undefined portion of memory object"', - 136 => 'Floating point exception: "erroneous arithmetic operation"', - 137 => 'Kill (terminate immediately)', - 138 => 'User-defined 1', - 139 => 'Segmentation violation', - 140 => 'User-defined 2', - 141 => 'Write to pipe with no one reading', - 142 => 'Signal raised by alarm', - 143 => 'Termination (request to terminate)', - // 144 - not defined - 145 => 'Child process terminated, stopped (or continued*)', - 146 => 'Continue if stopped', - 147 => 'Stop executing temporarily', - 148 => 'Terminal stop signal', - 149 => 'Background process attempting to read from tty ("in")', - 150 => 'Background process attempting to write to tty ("out")', - 151 => 'Urgent data available on socket', - 152 => 'CPU time limit exceeded', - 153 => 'File size limit exceeded', - 154 => 'Signal raised by timer counting virtual time: "virtual timer expired"', - 155 => 'Profiling timer expired', - // 156 - not defined - 157 => 'Pollable event', - // 158 - not defined - 159 => 'Bad syscall', - ]; - - /** - * 构造方法 - * @access public - * @param string $commandline 指令 - * @param string|null $cwd 工作目录 - * @param array|null $env 环境变量 - * @param string|null $input 输入 - * @param int|float|null $timeout 超时时间 - * @param array $options proc_open的选项 - * @throws \RuntimeException - * @api - */ - public function __construct($commandline, $cwd = null, array $env = null, $input = null, $timeout = 60, array $options = []) - { - if (!function_exists('proc_open')) { - throw new \RuntimeException('The Process class relies on proc_open, which is not available on your PHP installation.'); - } - - $this->commandline = $commandline; - $this->cwd = $cwd; - - if (null === $this->cwd && (defined('ZEND_THREAD_SAFE') || '\\' === DIRECTORY_SEPARATOR)) { - $this->cwd = getcwd(); - } - if (null !== $env) { - $this->setEnv($env); - } - - $this->input = $input; - $this->setTimeout($timeout); - $this->useFileHandles = '\\' === DIRECTORY_SEPARATOR; - $this->pty = false; - $this->enhanceWindowsCompatibility = true; - $this->enhanceSigchildCompatibility = '\\' !== DIRECTORY_SEPARATOR && $this->isSigchildEnabled(); - $this->options = array_replace([ - 'suppress_errors' => true, - 'binary_pipes' => true, - ], $options); - } - - public function __destruct() - { - $this->stop(); - } - - public function __clone() - { - $this->resetProcessData(); - } - - /** - * 运行指令 - * @access public - * @param callback|null $callback - * @return int - */ - public function run($callback = null) - { - $this->start($callback); - - return $this->wait(); - } - - /** - * 运行指令 - * @access public - * @param callable|null $callback - * @return self - * @throws \RuntimeException - * @throws ProcessFailedException - */ - public function mustRun($callback = null) - { - if ($this->isSigchildEnabled() && !$this->enhanceSigchildCompatibility) { - throw new \RuntimeException('This PHP has been compiled with --enable-sigchild. You must use setEnhanceSigchildCompatibility() to use this method.'); - } - - if (0 !== $this->run($callback)) { - throw new ProcessFailedException($this); - } - - return $this; - } - - /** - * 启动进程并写到 STDIN 输入后返回。 - * @access public - * @param callable|null $callback - * @throws \RuntimeException - * @throws \RuntimeException - * @throws \LogicException - */ - public function start($callback = null) - { - if ($this->isRunning()) { - throw new \RuntimeException('Process is already running'); - } - if ($this->outputDisabled && null !== $callback) { - throw new \LogicException('Output has been disabled, enable it to allow the use of a callback.'); - } - - $this->resetProcessData(); - $this->starttime = $this->lastOutputTime = microtime(true); - $this->callback = $this->buildCallback($callback); - $descriptors = $this->getDescriptors(); - - $commandline = $this->commandline; - - if ('\\' === DIRECTORY_SEPARATOR && $this->enhanceWindowsCompatibility) { - $commandline = 'cmd /V:ON /E:ON /C "(' . $commandline . ')'; - foreach ($this->processPipes->getFiles() as $offset => $filename) { - $commandline .= ' ' . $offset . '>' . Utils::escapeArgument($filename); - } - $commandline .= '"'; - - if (!isset($this->options['bypass_shell'])) { - $this->options['bypass_shell'] = true; - } - } - - $this->process = proc_open($commandline, $descriptors, $this->processPipes->pipes, $this->cwd, $this->env, $this->options); - - if (!is_resource($this->process)) { - throw new \RuntimeException('Unable to launch a new process.'); - } - $this->status = self::STATUS_STARTED; - - if ($this->tty) { - return; - } - - $this->updateStatus(false); - $this->checkTimeout(); - } - - /** - * 重启进程 - * @access public - * @param callable|null $callback - * @return Process - * @throws \RuntimeException - * @throws \RuntimeException - */ - public function restart($callback = null) - { - if ($this->isRunning()) { - throw new \RuntimeException('Process is already running'); - } - - $process = clone $this; - $process->start($callback); - - return $process; - } - - /** - * 等待要终止的进程 - * @access public - * @param callable|null $callback - * @return int - */ - public function wait($callback = null) - { - $this->requireProcessIsStarted(__FUNCTION__); - - $this->updateStatus(false); - if (null !== $callback) { - $this->callback = $this->buildCallback($callback); - } - - do { - $this->checkTimeout(); - $running = '\\' === DIRECTORY_SEPARATOR ? $this->isRunning() : $this->processPipes->areOpen(); - $close = '\\' !== DIRECTORY_SEPARATOR || !$running; - $this->readPipes(true, $close); - } while ($running); - - while ($this->isRunning()) { - usleep(1000); - } - - if ($this->processInformation['signaled'] && $this->processInformation['termsig'] !== $this->latestSignal) { - throw new \RuntimeException(sprintf('The process has been signaled with signal "%s".', $this->processInformation['termsig'])); - } - - return $this->exitcode; - } - - /** - * 获取PID - * @access public - * @return int|null - * @throws \RuntimeException - */ - public function getPid() - { - if ($this->isSigchildEnabled()) { - throw new \RuntimeException('This PHP has been compiled with --enable-sigchild. The process identifier can not be retrieved.'); - } - - $this->updateStatus(false); - - return $this->isRunning() ? $this->processInformation['pid'] : null; - } - - /** - * 将一个 POSIX 信号发送到进程中 - * @access public - * @param int $signal - * @return Process - */ - public function signal($signal) - { - $this->doSignal($signal, true); - - return $this; - } - - /** - * 禁用从底层过程获取输出和错误输出。 - * @access public - * @return Process - */ - public function disableOutput() - { - if ($this->isRunning()) { - throw new \RuntimeException('Disabling output while the process is running is not possible.'); - } - if (null !== $this->idleTimeout) { - throw new \LogicException('Output can not be disabled while an idle timeout is set.'); - } - - $this->outputDisabled = true; - - return $this; - } - - /** - * 开启从底层过程获取输出和错误输出。 - * @access public - * @return Process - * @throws \RuntimeException - */ - public function enableOutput() - { - if ($this->isRunning()) { - throw new \RuntimeException('Enabling output while the process is running is not possible.'); - } - - $this->outputDisabled = false; - - return $this; - } - - /** - * 输出是否禁用 - * @access public - * @return bool - */ - public function isOutputDisabled() - { - return $this->outputDisabled; - } - - /** - * 获取当前的输出管道 - * @access public - * @return string - * @throws \LogicException - * @api - */ - public function getOutput() - { - if ($this->outputDisabled) { - throw new \LogicException('Output has been disabled.'); - } - - $this->requireProcessIsStarted(__FUNCTION__); - - $this->readPipes(false, '\\' === DIRECTORY_SEPARATOR ? !$this->processInformation['running'] : true); - - return $this->stdout; - } - - /** - * 以增量方式返回的输出结果。 - * @access public - * @return string - */ - public function getIncrementalOutput() - { - $this->requireProcessIsStarted(__FUNCTION__); - - $data = $this->getOutput(); - - $latest = substr($data, $this->incrementalOutputOffset); - - if (false === $latest) { - return ''; - } - - $this->incrementalOutputOffset = strlen($data); - - return $latest; - } - - /** - * 清空输出 - * @access public - * @return Process - */ - public function clearOutput() - { - $this->stdout = ''; - $this->incrementalOutputOffset = 0; - - return $this; - } - - /** - * 返回当前的错误输出的过程 (STDERR)。 - * @access public - * @return string - */ - public function getErrorOutput() - { - if ($this->outputDisabled) { - throw new \LogicException('Output has been disabled.'); - } - - $this->requireProcessIsStarted(__FUNCTION__); - - $this->readPipes(false, '\\' === DIRECTORY_SEPARATOR ? !$this->processInformation['running'] : true); - - return $this->stderr; - } - - /** - * 以增量方式返回 errorOutput - * @access public - * @return string - */ - public function getIncrementalErrorOutput() - { - $this->requireProcessIsStarted(__FUNCTION__); - - $data = $this->getErrorOutput(); - - $latest = substr($data, $this->incrementalErrorOutputOffset); - - if (false === $latest) { - return ''; - } - - $this->incrementalErrorOutputOffset = strlen($data); - - return $latest; - } - - /** - * 清空 errorOutput - * @access public - * @return Process - */ - public function clearErrorOutput() - { - $this->stderr = ''; - $this->incrementalErrorOutputOffset = 0; - - return $this; - } - - /** - * 获取退出码 - * @access public - * @return null|int - */ - public function getExitCode() - { - if ($this->isSigchildEnabled() && !$this->enhanceSigchildCompatibility) { - throw new \RuntimeException('This PHP has been compiled with --enable-sigchild. You must use setEnhanceSigchildCompatibility() to use this method.'); - } - - $this->updateStatus(false); - - return $this->exitcode; - } - - /** - * 获取退出文本 - * @access public - * @return null|string - */ - public function getExitCodeText() - { - if (null === $exitcode = $this->getExitCode()) { - return; - } - - return isset(self::$exitCodes[$exitcode]) ? self::$exitCodes[$exitcode] : 'Unknown error'; - } - - /** - * 检查是否成功 - * @access public - * @return bool - */ - public function isSuccessful() - { - return 0 === $this->getExitCode(); - } - - /** - * 是否未捕获的信号已被终止子进程 - * @access public - * @return bool - */ - public function hasBeenSignaled() - { - $this->requireProcessIsTerminated(__FUNCTION__); - - if ($this->isSigchildEnabled()) { - throw new \RuntimeException('This PHP has been compiled with --enable-sigchild. Term signal can not be retrieved.'); - } - - $this->updateStatus(false); - - return $this->processInformation['signaled']; - } - - /** - * 返回导致子进程终止其执行的数。 - * @access public - * @return int - */ - public function getTermSignal() - { - $this->requireProcessIsTerminated(__FUNCTION__); - - if ($this->isSigchildEnabled()) { - throw new \RuntimeException('This PHP has been compiled with --enable-sigchild. Term signal can not be retrieved.'); - } - - $this->updateStatus(false); - - return $this->processInformation['termsig']; - } - - /** - * 检查子进程信号是否已停止 - * @access public - * @return bool - */ - public function hasBeenStopped() - { - $this->requireProcessIsTerminated(__FUNCTION__); - - $this->updateStatus(false); - - return $this->processInformation['stopped']; - } - - /** - * 返回导致子进程停止其执行的数。 - * @access public - * @return int - */ - public function getStopSignal() - { - $this->requireProcessIsTerminated(__FUNCTION__); - - $this->updateStatus(false); - - return $this->processInformation['stopsig']; - } - - /** - * 检查是否正在运行 - * @access public - * @return bool - */ - public function isRunning() - { - if (self::STATUS_STARTED !== $this->status) { - return false; - } - - $this->updateStatus(false); - - return $this->processInformation['running']; - } - - /** - * 检查是否已开始 - * @access public - * @return bool - */ - public function isStarted() - { - return self::STATUS_READY != $this->status; - } - - /** - * 检查是否已终止 - * @access public - * @return bool - */ - public function isTerminated() - { - $this->updateStatus(false); - - return self::STATUS_TERMINATED == $this->status; - } - - /** - * 获取当前的状态 - * @access public - * @return string - */ - public function getStatus() - { - $this->updateStatus(false); - - return $this->status; - } - - /** - * 终止进程 - * @access public - */ - public function stop() - { - if ($this->isRunning()) { - if ('\\' === DIRECTORY_SEPARATOR && !$this->isSigchildEnabled()) { - exec(sprintf('taskkill /F /T /PID %d 2>&1', $this->getPid()), $output, $exitCode); - if ($exitCode > 0) { - throw new \RuntimeException('Unable to kill the process'); - } - } else { - $pids = preg_split('/\s+/', `ps -o pid --no-heading --ppid {$this->getPid()}`); - foreach ($pids as $pid) { - if (is_numeric($pid)) { - posix_kill($pid, 9); - } - } - } - } - - $this->updateStatus(false); - if ($this->processInformation['running']) { - $this->close(); - } - - return $this->exitcode; - } - - /** - * 添加一行输出 - * @access public - * @param string $line - */ - public function addOutput($line) -{ - $this->lastOutputTime = microtime(true); - $this->stdout .= $line; - } - - /** - * 添加一行错误输出 - * @access public - * @param string $line - */ - public function addErrorOutput($line) -{ - $this->lastOutputTime = microtime(true); - $this->stderr .= $line; - } - - /** - * 获取被执行的指令 - * @access public - * @return string - */ - public function getCommandLine() -{ - return $this->commandline; - } - - /** - * 设置指令 - * @access public - * @param string $commandline - * @return self - */ - public function setCommandLine($commandline) -{ - $this->commandline = $commandline; - - return $this; - } - - /** - * 获取超时时间 - * @access public - * @return float|null - */ - public function getTimeout() -{ - return $this->timeout; - } - - /** - * 获取idle超时时间 - * @access public - * @return float|null - */ - public function getIdleTimeout() -{ - return $this->idleTimeout; - } - - /** - * 设置超时时间 - * @access public - * @param int|float|null $timeout - * @return self - */ - public function setTimeout($timeout) -{ - $this->timeout = $this->validateTimeout($timeout); - - return $this; - } - - /** - * 设置idle超时时间 - * @access public - * @param int|float|null $timeout - * @return self - */ - public function setIdleTimeout($timeout) -{ - if (null !== $timeout && $this->outputDisabled) { - throw new \LogicException('Idle timeout can not be set while the output is disabled.'); - } - - $this->idleTimeout = $this->validateTimeout($timeout); - - return $this; - } - - /** - * 设置TTY - * @access public - * @param bool $tty - * @return self - */ - public function setTty($tty) -{ - if ('\\' === DIRECTORY_SEPARATOR && $tty) { - throw new \RuntimeException('TTY mode is not supported on Windows platform.'); - } - if ($tty && (!file_exists('/dev/tty') || !is_readable('/dev/tty'))) { - throw new \RuntimeException('TTY mode requires /dev/tty to be readable.'); - } - - $this->tty = (bool) $tty; - - return $this; - } - - /** - * 检查是否是tty模式 - * @access public - * @return bool - */ - public function isTty() -{ - return $this->tty; - } - - /** - * 设置pty模式 - * @access public - * @param bool $bool - * @return self - */ - public function setPty($bool) -{ - $this->pty = (bool) $bool; - - return $this; - } - - /** - * 是否是pty模式 - * @access public - * @return bool - */ - public function isPty() -{ - return $this->pty; - } - - /** - * 获取工作目录 - * @access public - * @return string|null - */ - public function getWorkingDirectory() -{ - if (null === $this->cwd) { - return getcwd() ?: null; - } - - return $this->cwd; - } - - /** - * 设置工作目录 - * @access public - * @param string $cwd - * @return self - */ - public function setWorkingDirectory($cwd) -{ - $this->cwd = $cwd; - - return $this; - } - - /** - * 获取环境变量 - * @access public - * @return array - */ - public function getEnv() -{ - return $this->env; - } - - /** - * 设置环境变量 - * @access public - * @param array $env - * @return self - */ - public function setEnv(array $env) -{ - $env = array_filter($env, function ($value) { - return !is_array($value); - }); - - $this->env = []; - foreach ($env as $key => $value) { - $this->env[(binary) $key] = (binary) $value; - } - - return $this; - } - - /** - * 获取输入 - * @access public - * @return null|string - */ - public function getInput() -{ - return $this->input; - } - - /** - * 设置输入 - * @access public - * @param mixed $input - * @return self - */ - public function setInput($input) -{ - if ($this->isRunning()) { - throw new \LogicException('Input can not be set while the process is running.'); - } - - $this->input = Utils::validateInput(sprintf('%s::%s', __CLASS__, __FUNCTION__), $input); - - return $this; - } - - /** - * 获取proc_open的选项 - * @access public - * @return array - */ - public function getOptions() -{ - return $this->options; - } - - /** - * 设置proc_open的选项 - * @access public - * @param array $options - * @return self - */ - public function setOptions(array $options) -{ - $this->options = $options; - - return $this; - } - - /** - * 是否兼容windows - * @access public - * @return bool - */ - public function getEnhanceWindowsCompatibility() -{ - return $this->enhanceWindowsCompatibility; - } - - /** - * 设置是否兼容windows - * @access public - * @param bool $enhance - * @return self - */ - public function setEnhanceWindowsCompatibility($enhance) -{ - $this->enhanceWindowsCompatibility = (bool) $enhance; - - return $this; - } - - /** - * 返回是否 sigchild 兼容模式激活 - * @access public - * @return bool - */ - public function getEnhanceSigchildCompatibility() -{ - return $this->enhanceSigchildCompatibility; - } - - /** - * 激活 sigchild 兼容性模式。 - * @access public - * @param bool $enhance - * @return self - */ - public function setEnhanceSigchildCompatibility($enhance) -{ - $this->enhanceSigchildCompatibility = (bool) $enhance; - - return $this; - } - - /** - * 是否超时 - */ - public function checkTimeout() -{ - if (self::STATUS_STARTED !== $this->status) { - return; - } - - if (null !== $this->timeout && $this->timeout < microtime(true) - $this->starttime) { - $this->stop(); - - throw new ProcessTimeoutException($this, ProcessTimeoutException::TYPE_GENERAL); - } - - if (null !== $this->idleTimeout && $this->idleTimeout < microtime(true) - $this->lastOutputTime) { - $this->stop(); - - throw new ProcessTimeoutException($this, ProcessTimeoutException::TYPE_IDLE); - } - } - - /** - * 是否支持pty - * @access public - * @return bool - */ - public static function isPtySupported() -{ - static $result; - - if (null !== $result) { - return $result; - } - - if ('\\' === DIRECTORY_SEPARATOR) { - return $result = false; - } - - $proc = @proc_open('echo 1', [['pty'], ['pty'], ['pty']], $pipes); - if (is_resource($proc)) { - proc_close($proc); - - return $result = true; - } - - return $result = false; - } - - /** - * 创建所需的 proc_open 的描述符 - * @access private - * @return array - */ - private function getDescriptors() -{ - if ('\\' === DIRECTORY_SEPARATOR) { - $this->processPipes = WindowsPipes::create($this, $this->input); - } else { - $this->processPipes = UnixPipes::create($this, $this->input); - } - $descriptors = $this->processPipes->getDescriptors($this->outputDisabled); - - if (!$this->useFileHandles && $this->enhanceSigchildCompatibility && $this->isSigchildEnabled()) { - - $descriptors = array_merge($descriptors, [['pipe', 'w']]); - - $this->commandline = '(' . $this->commandline . ') 3>/dev/null; code=$?; echo $code >&3; exit $code'; - } - - return $descriptors; - } - - /** - * 建立 wait () 使用的回调。 - * @access protected - * @param callable|null $callback - * @return callable - */ - protected function buildCallback($callback) -{ - $out = self::OUT; - $callback = function ($type, $data) use ($callback, $out) { - if ($out == $type) { - $this->addOutput($data); - } else { - $this->addErrorOutput($data); - } - - if (null !== $callback) { - call_user_func($callback, $type, $data); - } - }; - - return $callback; - } - - /** - * 更新状态 - * @access protected - * @param bool $blocking - */ - protected function updateStatus($blocking) -{ - if (self::STATUS_STARTED !== $this->status) { - return; - } - - $this->processInformation = proc_get_status($this->process); - $this->captureExitCode(); - - $this->readPipes($blocking, '\\' === DIRECTORY_SEPARATOR ? !$this->processInformation['running'] : true); - - if (!$this->processInformation['running']) { - $this->close(); - } - } - - /** - * 是否开启 '--enable-sigchild' - * @access protected - * @return bool - */ - protected function isSigchildEnabled() -{ - if (null !== self::$sigchild) { - return self::$sigchild; - } - - if (!function_exists('phpinfo')) { - return self::$sigchild = false; - } - - ob_start(); - phpinfo(INFO_GENERAL); - - return self::$sigchild = false !== strpos(ob_get_clean(), '--enable-sigchild'); - } - - /** - * 验证是否超时 - * @access private - * @param int|float|null $timeout - * @return float|null - */ - private function validateTimeout($timeout) -{ - $timeout = (float) $timeout; - - if (0.0 === $timeout) { - $timeout = null; - } elseif ($timeout < 0) { - throw new \InvalidArgumentException('The timeout value must be a valid positive integer or float number.'); - } - - return $timeout; - } - - /** - * 读取pipes - * @access private - * @param bool $blocking - * @param bool $close - */ - private function readPipes($blocking, $close) -{ - $result = $this->processPipes->readAndWrite($blocking, $close); - - $callback = $this->callback; - foreach ($result as $type => $data) { - if (3 == $type) { - $this->fallbackExitcode = (int) $data; - } else { - $callback(self::STDOUT === $type ? self::OUT : self::ERR, $data); - } - } - } - - /** - * 捕获退出码 - */ - private function captureExitCode() -{ - if (isset($this->processInformation['exitcode']) && -1 != $this->processInformation['exitcode']) { - $this->exitcode = $this->processInformation['exitcode']; - } - } - - /** - * 关闭资源 - * @access private - * @return int 退出码 - */ - private function close() -{ - $this->processPipes->close(); - if (is_resource($this->process)) { - $exitcode = proc_close($this->process); - } else { - $exitcode = -1; - } - - $this->exitcode = -1 !== $exitcode ? $exitcode : (null !== $this->exitcode ? $this->exitcode : -1); - $this->status = self::STATUS_TERMINATED; - - if (-1 === $this->exitcode && null !== $this->fallbackExitcode) { - $this->exitcode = $this->fallbackExitcode; - } elseif (-1 === $this->exitcode && $this->processInformation['signaled'] - && 0 < $this->processInformation['termsig'] - ) { - $this->exitcode = 128 + $this->processInformation['termsig']; - } - - return $this->exitcode; - } - - /** - * 重置数据 - */ - private function resetProcessData() -{ - $this->starttime = null; - $this->callback = null; - $this->exitcode = null; - $this->fallbackExitcode = null; - $this->processInformation = null; - $this->stdout = null; - $this->stderr = null; - $this->process = null; - $this->latestSignal = null; - $this->status = self::STATUS_READY; - $this->incrementalOutputOffset = 0; - $this->incrementalErrorOutputOffset = 0; - } - - /** - * 将一个 POSIX 信号发送到进程中。 - * @access private - * @param int $signal - * @param bool $throwException - * @return bool - */ - private function doSignal($signal, $throwException) -{ - if (!$this->isRunning()) { - if ($throwException) { - throw new \LogicException('Can not send signal on a non running process.'); - } - - return false; - } - - if ($this->isSigchildEnabled()) { - if ($throwException) { - throw new \RuntimeException('This PHP has been compiled with --enable-sigchild. The process can not be signaled.'); - } - - return false; - } - - if (true !== @proc_terminate($this->process, $signal)) { - if ($throwException) { - throw new \RuntimeException(sprintf('Error while sending signal `%s`.', $signal)); - } - - return false; - } - - $this->latestSignal = $signal; - - return true; - } - - /** - * 确保进程已经开启 - * @access private - * @param string $functionName - */ - private function requireProcessIsStarted($functionName) -{ - if (!$this->isStarted()) { - throw new \LogicException(sprintf('Process must be started before calling %s.', $functionName)); - } - } - - /** - * 确保进程已经终止 - * @access private - * @param string $functionName - */ - private function requireProcessIsTerminated($functionName) -{ - if (!$this->isTerminated()) { - throw new \LogicException(sprintf('Process must be terminated before calling %s.', $functionName)); - } - } -} diff --git a/thinkphp/library/think/Request.php b/thinkphp/library/think/Request.php deleted file mode 100644 index c627d06d7..000000000 --- a/thinkphp/library/think/Request.php +++ /dev/null @@ -1,1966 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think; - -use think\exception\HttpResponseException; - -class Request -{ - /** - * 对象实例 - * @var object - */ - protected $instance; - - /** - * 配置对象 - * @var Config - */ - protected $config; - - /** - * 请求类型 - * @var string - */ - protected $method; - - /** - * 域名(含协议及端口) - * @var string - */ - protected $domain; - - /** - * 子域名 - * @var string - */ - protected $subDomain; - - /** - * 泛域名 - * @var string - */ - protected $panDomain; - - /** - * 当前URL地址 - * @var string - */ - protected $url; - - /** - * 基础URL - * @var string - */ - protected $baseUrl; - - /** - * 当前执行的文件 - * @var string - */ - protected $baseFile; - - /** - * 访问的ROOT地址 - * @var string - */ - protected $root; - - /** - * pathinfo - * @var string - */ - protected $pathinfo; - - /** - * pathinfo(不含后缀) - * @var string - */ - protected $path; - - /** - * 当前路由信息 - * @var array - */ - protected $routeInfo = []; - - /** - * 当前调度信息 - * @var array - */ - protected $dispatch = []; - - /** - * 当前模块名 - * @var string - */ - protected $module; - - /** - * 当前控制器名 - * @var string - */ - protected $controller; - - /** - * 当前操作名 - * @var string - */ - protected $action; - - /** - * 当前语言集 - * @var string - */ - protected $langset; - - /** - * 当前请求参数 - * @var array - */ - protected $param = []; - - /** - * 当前GET参数 - * @var array - */ - protected $get = []; - - /** - * 当前POST参数 - * @var array - */ - protected $post = []; - - /** - * 当前REQUEST参数 - * @var array - */ - protected $request = []; - - /** - * 当前ROUTE参数 - * @var array - */ - protected $route = []; - - /** - * 当前PUT参数 - * @var array - */ - protected $put; - - /** - * 当前SESSION参数 - * @var array - */ - protected $session = []; - - /** - * 当前FILE参数 - * @var array - */ - protected $file = []; - - /** - * 当前COOKIE参数 - * @var array - */ - protected $cookie = []; - - /** - * 当前SERVER参数 - * @var array - */ - protected $server = []; - - /** - * 当前ENV参数 - * @var array - */ - protected $env = []; - - /** - * 当前HEADER参数 - * @var array - */ - protected $header = []; - - /** - * 资源类型定义 - * @var array - */ - protected $mimeType = [ - 'xml' => 'application/xml,text/xml,application/x-xml', - 'json' => 'application/json,text/x-json,application/jsonrequest,text/json', - 'js' => 'text/javascript,application/javascript,application/x-javascript', - 'css' => 'text/css', - 'rss' => 'application/rss+xml', - 'yaml' => 'application/x-yaml,text/yaml', - 'atom' => 'application/atom+xml', - 'pdf' => 'application/pdf', - 'text' => 'text/plain', - 'image' => 'image/png,image/jpg,image/jpeg,image/pjpeg,image/gif,image/webp,image/*', - 'csv' => 'text/csv', - 'html' => 'text/html,application/xhtml+xml,*/*', - ]; - - /** - * 当前请求内容 - * @var string - */ - protected $content; - - /** - * 全局过滤规则 - * @var array - */ - protected $filter; - - /** - * 扩展方法 - * @var array - */ - protected $hook = []; - - /** - * php://input内容 - * @var string - */ - // php://input - protected $input; - - /** - * 请求缓存 - * @var array - */ - protected $cache; - - /** - * 缓存是否检查 - * @var bool - */ - protected $isCheckCache; - - /** - * 请求安全Key - * @var string - */ - protected $secureKey; - - /** - * 架构函数 - * @access public - * @param array $options 参数 - */ - public function __construct($options = []) - { - foreach ($options as $name => $item) { - if (property_exists($this, $name)) { - $this->$name = $item; - } - } - - $this->config = Container::get('config'); - - if (is_null($this->filter)) { - $this->filter = $this->config->get('default_filter'); - } - - // 保存 php://input - $this->input = file_get_contents('php://input'); - } - - public function __call($method, $args) - { - if (array_key_exists($method, $this->hook)) { - array_unshift($args, $this); - return call_user_func_array($this->hook[$method], $args); - } - - throw new Exception('method not exists:' . static::class . '->' . $method); - } - - /** - * Hook 方法注入 - * @access public - * @param string|array $method 方法名 - * @param mixed $callback callable - * @return void - */ - public function hook($method, $callback = null) - { - if (is_array($method)) { - $this->hook = array_merge($this->hook, $method); - } else { - $this->hook[$method] = $callback; - } - } - - /** - * 创建一个URL请求 - * @access public - * @param string $uri URL地址 - * @param string $method 请求类型 - * @param array $params 请求参数 - * @param array $cookie - * @param array $files - * @param array $server - * @param string $content - * @return \think\Request - */ - public function create($uri, $method = 'GET', $params = [], $cookie = [], $files = [], $server = [], $content = null) - { - $server['PATH_INFO'] = ''; - $server['REQUEST_METHOD'] = strtoupper($method); - $info = parse_url($uri); - - if (isset($info['host'])) { - $server['SERVER_NAME'] = $info['host']; - $server['HTTP_HOST'] = $info['host']; - } - - if (isset($info['scheme'])) { - if ('https' === $info['scheme']) { - $server['HTTPS'] = 'on'; - $server['SERVER_PORT'] = 443; - } else { - unset($server['HTTPS']); - $server['SERVER_PORT'] = 80; - } - } - - if (isset($info['port'])) { - $server['SERVER_PORT'] = $info['port']; - $server['HTTP_HOST'] = $server['HTTP_HOST'] . ':' . $info['port']; - } - - if (isset($info['user'])) { - $server['PHP_AUTH_USER'] = $info['user']; - } - - if (isset($info['pass'])) { - $server['PHP_AUTH_PW'] = $info['pass']; - } - - if (!isset($info['path'])) { - $info['path'] = '/'; - } - - $options = []; - $queryString = ''; - - $options[strtolower($method)] = $params; - - if (isset($info['query'])) { - parse_str(html_entity_decode($info['query']), $query); - if (!empty($params)) { - $params = array_replace($query, $params); - $queryString = http_build_query($params, '', '&'); - } else { - $params = $query; - $queryString = $info['query']; - } - } elseif (!empty($params)) { - $queryString = http_build_query($params, '', '&'); - } - - if ($queryString) { - parse_str($queryString, $get); - $options['get'] = isset($options['get']) ? array_merge($get, $options['get']) : $get; - } - - $server['REQUEST_URI'] = $info['path'] . ('' !== $queryString ? '?' . $queryString : ''); - $server['QUERY_STRING'] = $queryString; - $options['cookie'] = $cookie; - $options['param'] = $params; - $options['file'] = $files; - $options['server'] = $server; - $options['url'] = $server['REQUEST_URI']; - $options['baseUrl'] = $info['path']; - $options['pathinfo'] = '/' == $info['path'] ? '/' : ltrim($info['path'], '/'); - $options['method'] = $server['REQUEST_METHOD']; - $options['domain'] = isset($info['scheme']) ? $info['scheme'] . '://' . $server['HTTP_HOST'] : ''; - $options['content'] = $content; - - foreach ($options as $name => $item) { - if (property_exists($this, $name)) { - $this->$name = $item; - } - } - - return $this; - } - - /** - * 设置或获取当前包含协议的域名 - * @access public - * @param string $domain 域名 - * @return string|$this - */ - public function domain($domain = null) - { - if (!is_null($domain)) { - $this->domain = $domain; - return $this; - } elseif (!$this->domain) { - $this->domain = $this->scheme() . '://' . $this->host(); - } - - return $this->domain; - } - - /** - * 获取当前根域名 - * @access public - * @return string - */ - public function rootDomain() - { - $root = $this->config->get('app.url_domain_root'); - - if (!$root) { - $item = explode('.', $this->host()); - $count = count($item); - $root = $count > 1 ? $item[$count - 2] . '.' . $item[$count - 1] : $item[0]; - } - - return $root; - } - - /** - * 获取当前子域名 - * @access public - * @return string - */ - public function subDomain() - { - if (is_null($this->subDomain)) { - // 获取当前主域名 - $rootDomain = $this->config->get('app.url_domain_root'); - - if ($rootDomain) { - // 配置域名根 例如 thinkphp.cn 163.com.cn 如果是国家级域名 com.cn net.cn 之类的域名需要配置 - $domain = explode('.', rtrim(stristr($this->host(), $rootDomain, true), '.')); - } else { - $domain = explode('.', $this->host(), -2); - } - - $this->subDomain = implode('.', $domain); - } - - return $this->subDomain; - } - - /** - * 设置或获取当前泛域名的值 - * @access public - * @param string $domain 域名 - * @return string|$this - */ - public function panDomain($domain = null) - { - if (is_null($domain)) { - return $this->panDomain; - } - - $this->panDomain = $domain; - return $this; - } - - /** - * 设置或获取当前完整URL 包括QUERY_STRING - * @access public - * @param string|true $url URL地址 true 带域名获取 - * @return string|$this - */ - public function url($url = null) - { - if (!is_null($url) && true !== $url) { - $this->url = $url; - return $this; - } elseif (!$this->url) { - if ($this->isCli()) { - $this->url = isset($_SERVER['argv'][1]) ? $_SERVER['argv'][1] : ''; - } elseif (isset($_SERVER['HTTP_X_REWRITE_URL'])) { - $this->url = $_SERVER['HTTP_X_REWRITE_URL']; - } elseif (isset($_SERVER['REQUEST_URI'])) { - $this->url = $_SERVER['REQUEST_URI']; - } elseif (isset($_SERVER['ORIG_PATH_INFO'])) { - $this->url = $_SERVER['ORIG_PATH_INFO'] . (!empty($_SERVER['QUERY_STRING']) ? '?' . $_SERVER['QUERY_STRING'] : ''); - } else { - $this->url = ''; - } - } - - return true === $url ? $this->domain() . $this->url : $this->url; - } - - /** - * 设置或获取当前URL 不含QUERY_STRING - * @access public - * @param string $url URL地址 - * @return string|$this - */ - public function baseUrl($url = null) - { - if (!is_null($url) && true !== $url) { - $this->baseUrl = $url; - return $this; - } elseif (!$this->baseUrl) { - $str = $this->url(); - $this->baseUrl = strpos($str, '?') ? strstr($str, '?', true) : $str; - } - - return true === $url ? $this->domain() . $this->baseUrl : $this->baseUrl; - } - - /** - * 设置或获取当前执行的文件 SCRIPT_NAME - * @access public - * @param string $file 当前执行的文件 - * @return string|$this - */ - public function baseFile($file = null) - { - if (!is_null($file) && true !== $file) { - $this->baseFile = $file; - return $this; - } elseif (!$this->baseFile) { - $url = ''; - if (!$this->isCli()) { - $script_name = basename($_SERVER['SCRIPT_FILENAME']); - if (basename($_SERVER['SCRIPT_NAME']) === $script_name) { - $url = $_SERVER['SCRIPT_NAME']; - } elseif (basename($_SERVER['PHP_SELF']) === $script_name) { - $url = $_SERVER['PHP_SELF']; - } elseif (isset($_SERVER['ORIG_SCRIPT_NAME']) && basename($_SERVER['ORIG_SCRIPT_NAME']) === $script_name) { - $url = $_SERVER['ORIG_SCRIPT_NAME']; - } elseif (($pos = strpos($_SERVER['PHP_SELF'], '/' . $script_name)) !== false) { - $url = substr($_SERVER['SCRIPT_NAME'], 0, $pos) . '/' . $script_name; - } elseif (isset($_SERVER['DOCUMENT_ROOT']) && strpos($_SERVER['SCRIPT_FILENAME'], $_SERVER['DOCUMENT_ROOT']) === 0) { - $url = str_replace('\\', '/', str_replace($_SERVER['DOCUMENT_ROOT'], '', $_SERVER['SCRIPT_FILENAME'])); - } - } - $this->baseFile = $url; - } - - return true === $file ? $this->domain() . $this->baseFile : $this->baseFile; - } - - /** - * 设置或获取URL访问根地址 - * @access public - * @param string $url URL地址 - * @return string|$this - */ - public function root($url = null) - { - if (!is_null($url) && true !== $url) { - $this->root = $url; - return $this; - } elseif (!$this->root) { - $file = $this->baseFile(); - if ($file && 0 !== strpos($this->url(), $file)) { - $file = str_replace('\\', '/', dirname($file)); - } - $this->root = rtrim($file, '/'); - } - - return true === $url ? $this->domain() . $this->root : $this->root; - } - - /** - * 获取URL访问根目录 - * @access public - * @return string - */ - public function rootUrl() - { - $base = $this->root(); - $root = strpos($base, '.') ? ltrim(dirname($base), DIRECTORY_SEPARATOR) : $base; - - if ('' != $root) { - $root = '/' . ltrim($root, '/'); - } - - return $root; - } - - /** - * 获取当前请求URL的pathinfo信息(含URL后缀) - * @access public - * @return string - */ - public function pathinfo() - { - if (is_null($this->pathinfo)) { - if (isset($_GET[$this->config->get('var_pathinfo')])) { - // 判断URL里面是否有兼容模式参数 - $_SERVER['PATH_INFO'] = $_GET[$this->config->get('var_pathinfo')]; - unset($_GET[$this->config->get('var_pathinfo')]); - } elseif ($this->isCli()) { - // CLI模式下 index.php module/controller/action/params/... - $_SERVER['PATH_INFO'] = isset($_SERVER['argv'][1]) ? $_SERVER['argv'][1] : ''; - } elseif ('cli-server' == PHP_SAPI) { - $_SERVER['PATH_INFO'] = strpos($_SERVER['REQUEST_URI'], '?') ? strstr($_SERVER['REQUEST_URI'], '?', true) : $_SERVER['REQUEST_URI']; - } - - // 分析PATHINFO信息 - if (!isset($_SERVER['PATH_INFO'])) { - foreach ($this->config->get('pathinfo_fetch') as $type) { - if (!empty($_SERVER[$type])) { - $_SERVER['PATH_INFO'] = (0 === strpos($_SERVER[$type], $_SERVER['SCRIPT_NAME'])) ? - substr($_SERVER[$type], strlen($_SERVER['SCRIPT_NAME'])) : $_SERVER[$type]; - break; - } - } - } - - $this->pathinfo = empty($_SERVER['PATH_INFO']) || '/' == $_SERVER['PATH_INFO'] ? '' : ltrim($_SERVER['PATH_INFO'], '/'); - } - - return $this->pathinfo; - } - - /** - * 获取当前请求URL的pathinfo信息(不含URL后缀) - * @access public - * @return string - */ - public function path() - { - if (is_null($this->path)) { - $suffix = $this->config->get('url_html_suffix'); - $pathinfo = $this->pathinfo(); - if (false === $suffix) { - // 禁止伪静态访问 - $this->path = $pathinfo; - } elseif ($suffix) { - // 去除正常的URL后缀 - $this->path = preg_replace('/\.(' . ltrim($suffix, '.') . ')$/i', '', $pathinfo); - } else { - // 允许任何后缀访问 - $this->path = preg_replace('/\.' . $this->ext() . '$/i', '', $pathinfo); - } - } - - return $this->path; - } - - /** - * 当前URL的访问后缀 - * @access public - * @return string - */ - public function ext() - { - return pathinfo($this->pathinfo(), PATHINFO_EXTENSION); - } - - /** - * 获取当前请求的时间 - * @access public - * @param bool $float 是否使用浮点类型 - * @return integer|float - */ - public function time($float = false) - { - return $float ? $_SERVER['REQUEST_TIME_FLOAT'] : $_SERVER['REQUEST_TIME']; - } - - /** - * 当前请求的资源类型 - * @access public - * @return false|string - */ - public function type() - { - $accept = $this->server('HTTP_ACCEPT'); - - if (empty($accept)) { - return false; - } - - foreach ($this->mimeType as $key => $val) { - $array = explode(',', $val); - foreach ($array as $k => $v) { - if (stristr($accept, $v)) { - return $key; - } - } - } - - return false; - } - - /** - * 设置资源类型 - * @access public - * @param string|array $type 资源类型名 - * @param string $val 资源类型 - * @return void - */ - public function mimeType($type, $val = '') - { - if (is_array($type)) { - $this->mimeType = array_merge($this->mimeType, $type); - } else { - $this->mimeType[$type] = $val; - } - } - - /** - * 当前的请求类型 - * @access public - * @param bool $method true 获取原始请求类型 - * @return string - */ - public function method($method = false) - { - if (true === $method) { - // 获取原始请求类型 - return $this->isCli() ? 'GET' : (isset($this->server['REQUEST_METHOD']) ? $this->server['REQUEST_METHOD'] : $_SERVER['REQUEST_METHOD']); - } elseif (!$this->method) { - if (isset($_POST[$this->config->get('var_method')])) { - $this->method = strtoupper($_POST[$this->config->get('var_method')]); - $this->{$this->method}($_POST); - } elseif (isset($_SERVER['HTTP_X_HTTP_METHOD_OVERRIDE'])) { - $this->method = strtoupper($_SERVER['HTTP_X_HTTP_METHOD_OVERRIDE']); - } else { - $this->method = $this->isCli() ? 'GET' : (isset($this->server['REQUEST_METHOD']) ? $this->server['REQUEST_METHOD'] : $_SERVER['REQUEST_METHOD']); - } - } - - return $this->method; - } - - /** - * 是否为GET请求 - * @access public - * @return bool - */ - public function isGet() - { - return $this->method() == 'GET'; - } - - /** - * 是否为POST请求 - * @access public - * @return bool - */ - public function isPost() - { - return $this->method() == 'POST'; - } - - /** - * 是否为PUT请求 - * @access public - * @return bool - */ - public function isPut() - { - return $this->method() == 'PUT'; - } - - /** - * 是否为DELTE请求 - * @access public - * @return bool - */ - public function isDelete() - { - return $this->method() == 'DELETE'; - } - - /** - * 是否为HEAD请求 - * @access public - * @return bool - */ - public function isHead() - { - return $this->method() == 'HEAD'; - } - - /** - * 是否为PATCH请求 - * @access public - * @return bool - */ - public function isPatch() - { - return $this->method() == 'PATCH'; - } - - /** - * 是否为OPTIONS请求 - * @access public - * @return bool - */ - public function isOptions() - { - return $this->method() == 'OPTIONS'; - } - - /** - * 是否为cli - * @access public - * @return bool - */ - public function isCli() - { - return PHP_SAPI == 'cli'; - } - - /** - * 是否为cgi - * @access public - * @return bool - */ - public function isCgi() - { - return strpos(PHP_SAPI, 'cgi') === 0; - } - - /** - * 获取当前请求的参数 - * @access public - * @param mixed $name 变量名 - * @param mixed $default 默认值 - * @param string|array $filter 过滤方法 - * @return mixed - */ - public function param($name = '', $default = null, $filter = '') - { - if (empty($this->param)) { - $method = $this->method(true); - - // 自动获取请求变量 - switch ($method) { - case 'POST': - $vars = $this->post(false); - break; - case 'PUT': - case 'DELETE': - case 'PATCH': - $vars = $this->put(false); - break; - default: - $vars = []; - } - - // 当前请求参数和URL地址中的参数合并 - $this->param = array_merge($this->get(false), $vars, $this->route(false)); - } - - if (true === $name) { - // 获取包含文件上传信息的数组 - $file = $this->file(); - $data = is_array($file) ? array_merge($this->param, $file) : $this->param; - return $this->input($data, '', $default, $filter); - } - - return $this->input($this->param, $name, $default, $filter); - } - - /** - * 设置获取路由参数 - * @access public - * @param mixed $name 变量名 - * @param mixed $default 默认值 - * @param string|array $filter 过滤方法 - * @return mixed - */ - public function route($name = '', $default = null, $filter = '') - { - if (is_array($name)) { - $this->param = []; - return $this->route = array_merge($this->route, $name); - } - - return $this->input($this->route, $name, $default, $filter); - } - - /** - * 设置获取GET参数 - * @access public - * @param mixed $name 变量名 - * @param mixed $default 默认值 - * @param string|array $filter 过滤方法 - * @return mixed - */ - public function get($name = '', $default = null, $filter = '') - { - if (empty($this->get)) { - $this->get = $_GET; - } - - if (is_array($name)) { - $this->param = []; - return $this->get = array_merge($this->get, $name); - } - - return $this->input($this->get, $name, $default, $filter); - } - - /** - * 设置获取POST参数 - * @access public - * @param mixed $name 变量名 - * @param mixed $default 默认值 - * @param string|array $filter 过滤方法 - * @return mixed - */ - public function post($name = '', $default = null, $filter = '') - { - if (empty($this->post)) { - $content = $this->input; - if (empty($_POST) && false !== strpos($this->contentType(), 'application/json')) { - $this->post = (array) json_decode($content, true); - } else { - $this->post = $_POST; - } - } - - if (is_array($name)) { - $this->param = []; - return $this->post = array_merge($this->post, $name); - } - - return $this->input($this->post, $name, $default, $filter); - } - - /** - * 设置获取PUT参数 - * @access public - * @param mixed $name 变量名 - * @param mixed $default 默认值 - * @param string|array $filter 过滤方法 - * @return mixed - */ - public function put($name = '', $default = null, $filter = '') - { - if (is_null($this->put)) { - $content = $this->input; - if (false !== strpos($this->contentType(), 'application/json')) { - $this->put = (array) json_decode($content, true); - } else { - parse_str($content, $this->put); - } - } - - if (is_array($name)) { - $this->param = []; - return $this->put = is_null($this->put) ? $name : array_merge($this->put, $name); - } - - return $this->input($this->put, $name, $default, $filter); - } - - /** - * 设置获取DELETE参数 - * @access public - * @param mixed $name 变量名 - * @param mixed $default 默认值 - * @param string|array $filter 过滤方法 - * @return mixed - */ - public function delete($name = '', $default = null, $filter = '') - { - return $this->put($name, $default, $filter); - } - - /** - * 设置获取PATCH参数 - * @access public - * @param mixed $name 变量名 - * @param mixed $default 默认值 - * @param string|array $filter 过滤方法 - * @return mixed - */ - public function patch($name = '', $default = null, $filter = '') - { - return $this->put($name, $default, $filter); - } - - /** - * 获取request变量 - * @access public - * @param mixed $name 数据名称 - * @param string $default 默认值 - * @param string|array $filter 过滤方法 - * @return mixed - */ - public function request($name = '', $default = null, $filter = '') - { - if (empty($this->request)) { - $this->request = $_REQUEST; - } - - if (is_array($name)) { - $this->param = []; - return $this->request = array_merge($this->request, $name); - } - - return $this->input($this->request, $name, $default, $filter); - } - - /** - * 获取session数据 - * @access public - * @param mixed $name 数据名称 - * @param string $default 默认值 - * @param string|array $filter 过滤方法 - * @return mixed - */ - public function session($name = '', $default = null, $filter = '') - { - if (empty($this->session)) { - $this->session = Container::get('session')->get(); - } - - if (is_array($name)) { - return $this->session = array_merge($this->session, $name); - } - - return $this->input($this->session, $name, $default, $filter); - } - - /** - * 获取cookie参数 - * @access public - * @param mixed $name 数据名称 - * @param string $default 默认值 - * @param string|array $filter 过滤方法 - * @return mixed - */ - public function cookie($name = '', $default = null, $filter = '') - { - $cookie = Container::get('cookie'); - - if (empty($this->cookie)) { - $this->cookie = $cookie->get(); - } - - if (is_array($name)) { - return $this->cookie = array_merge($this->cookie, $name); - } elseif (!empty($name)) { - $data = $cookie->has($name) ? $cookie->get($name) : $default; - } else { - $data = $this->cookie; - } - - // 解析过滤器 - $filter = $this->getFilter($filter, $default); - - if (is_array($data)) { - array_walk_recursive($data, [$this, 'filterValue'], $filter); - reset($data); - } else { - $this->filterValue($data, $name, $filter); - } - - return $data; - } - - /** - * 获取server参数 - * @access public - * @param mixed $name 数据名称 - * @param string $default 默认值 - * @param string|array $filter 过滤方法 - * @return mixed - */ - public function server($name = '', $default = null, $filter = '') - { - if (empty($this->server)) { - $this->server = $_SERVER; - } - - if (is_array($name)) { - return $this->server = array_merge($this->server, $name); - } - - return $this->input($this->server, false === $name ? false : strtoupper($name), $default, $filter); - } - - /** - * 获取上传的文件信息 - * @access public - * @param string|array $name 名称 - * @return null|array|\think\File - */ - public function file($name = '') - { - if (empty($this->file)) { - $this->file = isset($_FILES) ? $_FILES : []; - } - - if (is_array($name)) { - return $this->file = array_merge($this->file, $name); - } - - $files = $this->file; - if (!empty($files)) { - // 处理上传文件 - $array = $this->dealUploadFile($files); - - if (strpos($name, '.')) { - list($name, $sub) = explode('.', $name); - } - - if ('' === $name) { - // 获取全部文件 - return $array; - } elseif (isset($sub) && isset($array[$name][$sub])) { - return $array[$name][$sub]; - } elseif (isset($array[$name])) { - return $array[$name]; - } - } - - return; - } - - protected function dealUploadFile($files) - { - $array = []; - foreach ($files as $key => $file) { - if (is_array($file['name'])) { - $item = []; - $keys = array_keys($file); - $count = count($file['name']); - - for ($i = 0; $i < $count; $i++) { - if (empty($file['tmp_name'][$i]) || !is_file($file['tmp_name'][$i])) { - continue; - } - - $temp['key'] = $key; - - foreach ($keys as $_key) { - $temp[$_key] = $file[$_key][$i]; - } - - $item[] = (new File($temp['tmp_name']))->setUploadInfo($temp); - } - - $array[$key] = $item; - } else { - if ($file instanceof File) { - $array[$key] = $file; - } else { - if (empty($file['tmp_name']) || !is_file($file['tmp_name'])) { - continue; - } - - $array[$key] = (new File($file['tmp_name']))->setUploadInfo($file); - } - } - } - - return $array; - } - - /** - * 获取环境变量 - * @access public - * @param mixed $name 数据名称 - * @param string $default 默认值 - * @param string|array $filter 过滤方法 - * @return mixed - */ - public function env($name = '', $default = null, $filter = '') - { - if (empty($this->env)) { - $this->env = Container::get('env')->get(); - } - - if (is_array($name)) { - return $this->env = array_merge($this->env, $name); - } - - return $this->input($this->env, false === $name ? false : strtoupper($name), $default, $filter); - } - - /** - * 设置或者获取当前的Header - * @access public - * @param string|array $name header名称 - * @param string $default 默认值 - * @return string - */ - public function header($name = '', $default = null) - { - if (empty($this->header)) { - $header = []; - if (function_exists('apache_request_headers') && $result = apache_request_headers()) { - $header = $result; - } else { - $server = $this->server ?: $_SERVER; - foreach ($server as $key => $val) { - if (0 === strpos($key, 'HTTP_')) { - $key = str_replace('_', '-', strtolower(substr($key, 5))); - $header[$key] = $val; - } - } - if (isset($server['CONTENT_TYPE'])) { - $header['content-type'] = $server['CONTENT_TYPE']; - } - if (isset($server['CONTENT_LENGTH'])) { - $header['content-length'] = $server['CONTENT_LENGTH']; - } - } - $this->header = array_change_key_case($header); - } - - if (is_array($name)) { - return $this->header = array_merge($this->header, $name); - } - - if ('' === $name) { - return $this->header; - } - - $name = str_replace('_', '-', strtolower($name)); - - return isset($this->header[$name]) ? $this->header[$name] : $default; - } - - /** - * 获取变量 支持过滤和默认值 - * @access public - * @param array $data 数据源 - * @param string|false $name 字段名 - * @param mixed $default 默认值 - * @param string|array $filter 过滤函数 - * @return mixed - */ - public function input($data = [], $name = '', $default = null, $filter = '') - { - if (false === $name) { - // 获取原始数据 - return $data; - } - - $name = (string) $name; - if ('' != $name) { - // 解析name - if (strpos($name, '/')) { - list($name, $type) = explode('/', $name); - } else { - $type = 's'; - } - - // 按.拆分成多维数组进行判断 - foreach (explode('.', $name) as $val) { - if (isset($data[$val])) { - $data = $data[$val]; - } else { - // 无输入数据,返回默认值 - return $default; - } - } - - if (is_object($data)) { - return $data; - } - } - - // 解析过滤器 - $filter = $this->getFilter($filter, $default); - - if (is_array($data)) { - array_walk_recursive($data, [$this, 'filterValue'], $filter); - reset($data); - } else { - $this->filterValue($data, $name, $filter); - } - - if (isset($type) && $data !== $default) { - // 强制类型转换 - $this->typeCast($data, $type); - } - - return $data; - } - - /** - * 设置或获取当前的过滤规则 - * @access public - * @param mixed $filter 过滤规则 - * @return mixed - */ - public function filter($filter = null) - { - if (is_null($filter)) { - return $this->filter; - } - - $this->filter = $filter; - } - - protected function getFilter($filter, $default) - { - if (is_null($filter)) { - $filter = []; - } else { - $filter = $filter ?: $this->filter; - if (is_string($filter) && false === strpos($filter, '/')) { - $filter = explode(',', $filter); - } else { - $filter = (array) $filter; - } - } - - $filter[] = $default; - - return $filter; - } - - /** - * 递归过滤给定的值 - * @access public - * @param mixed $value 键值 - * @param mixed $key 键名 - * @param array $filters 过滤方法+默认值 - * @return mixed - */ - private function filterValue(&$value, $key, $filters) - { - $default = array_pop($filters); - - foreach ($filters as $filter) { - if (is_callable($filter)) { - // 调用函数或者方法过滤 - $value = call_user_func($filter, $value); - } elseif (is_scalar($value)) { - if (false !== strpos($filter, '/')) { - // 正则过滤 - if (!preg_match($filter, $value)) { - // 匹配不成功返回默认值 - $value = $default; - break; - } - } elseif (!empty($filter)) { - // filter函数不存在时, 则使用filter_var进行过滤 - // filter为非整形值时, 调用filter_id取得过滤id - $value = filter_var($value, is_int($filter) ? $filter : filter_id($filter)); - if (false === $value) { - $value = $default; - break; - } - } - } - } - - return $value; - } - - /** - * 强制类型转换 - * @access public - * @param string $data - * @param string $type - * @return mixed - */ - private function typeCast(&$data, $type) - { - switch (strtolower($type)) { - // 数组 - case 'a': - $data = (array) $data; - break; - // 数字 - case 'd': - $data = (int) $data; - break; - // 浮点 - case 'f': - $data = (float) $data; - break; - // 布尔 - case 'b': - $data = (boolean) $data; - break; - // 字符串 - case 's': - default: - if (is_scalar($data)) { - $data = (string) $data; - } else { - throw new \InvalidArgumentException('variable type error:' . gettype($data)); - } - } - } - - /** - * 是否存在某个请求参数 - * @access public - * @param string $name 变量名 - * @param string $type 变量类型 - * @param bool $checkEmpty 是否检测空值 - * @return mixed - */ - public function has($name, $type = 'param', $checkEmpty = false) - { - if (empty($this->$type)) { - $param = $this->$type(); - } else { - $param = $this->$type; - } - - // 按.拆分成多维数组进行判断 - foreach (explode('.', $name) as $val) { - if (isset($param[$val])) { - $param = $param[$val]; - } else { - return false; - } - } - - return ($checkEmpty && '' === $param) ? false : true; - } - - /** - * 获取指定的参数 - * @access public - * @param string|array $name 变量名 - * @param string $type 变量类型 - * @return mixed - */ - public function only($name, $type = 'param') - { - $param = $this->$type(); - - if (is_string($name)) { - $name = explode(',', $name); - } - - $item = []; - foreach ($name as $key => $val) { - - if (is_int($key)) { - $default = null; - $key = $val; - } else { - $default = $val; - } - - if (isset($param[$key])) { - $item[$key] = $param[$key]; - } elseif (isset($default)) { - $item[$key] = $default; - } - } - - return $item; - } - - /** - * 排除指定参数获取 - * @access public - * @param string|array $name 变量名 - * @param string $type 变量类型 - * @return mixed - */ - public function except($name, $type = 'param') - { - $param = $this->$type(); - if (is_string($name)) { - $name = explode(',', $name); - } - - foreach ($name as $key) { - if (isset($param[$key])) { - unset($param[$key]); - } - } - - return $param; - } - - /** - * 当前是否ssl - * @access public - * @return bool - */ - public function isSsl() - { - $server = array_merge($_SERVER, $this->server); - - if (isset($server['HTTPS']) && ('1' == $server['HTTPS'] || 'on' == strtolower($server['HTTPS']))) { - return true; - } elseif (isset($server['REQUEST_SCHEME']) && 'https' == $server['REQUEST_SCHEME']) { - return true; - } elseif (isset($server['SERVER_PORT']) && ('443' == $server['SERVER_PORT'])) { - return true; - } elseif (isset($server['HTTP_X_FORWARDED_PROTO']) && 'https' == $server['HTTP_X_FORWARDED_PROTO']) { - return true; - } elseif ($this->config->get('https_agent_name') && isset($server[$this->config->get('https_agent_name')])) { - return true; - } - - return false; - } - - /** - * 当前是否Ajax请求 - * @access public - * @param bool $ajax true 获取原始ajax请求 - * @return bool - */ - public function isAjax($ajax = false) - { - $value = $this->server('HTTP_X_REQUESTED_WITH', '', 'strtolower'); - $result = ('xmlhttprequest' == $value) ? true : false; - - if (true === $ajax) { - return $result; - } - - return $this->param($this->config->get('var_ajax')) ? true : $result; - } - - /** - * 当前是否Pjax请求 - * @access public - * @param bool $pjax true 获取原始pjax请求 - * @return bool - */ - public function isPjax($pjax = false) - { - $result = !is_null($this->server('HTTP_X_PJAX')) ? true : false; - - if (true === $pjax) { - return $result; - } - - return $this->param($this->config->get('var_pjax')) ? true : $result; - } - - /** - * 获取客户端IP地址 - * @access public - * @param integer $type 返回类型 0 返回IP地址 1 返回IPV4地址数字 - * @param boolean $adv 是否进行高级模式获取(有可能被伪装) - * @return mixed - */ - public function ip($type = 0, $adv = true) - { - $type = $type ? 1 : 0; - static $ip = null; - - if (null !== $ip) { - return $ip[$type]; - } - - $httpAgentIp = $this->config->get('http_agent_ip'); - - if ($httpAgentIp && isset($_SERVER[$httpAgentIp])) { - $ip = $_SERVER[$httpAgentIp]; - } elseif ($adv) { - if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { - $arr = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']); - $pos = array_search('unknown', $arr); - if (false !== $pos) { - unset($arr[$pos]); - } - $ip = trim(current($arr)); - } elseif (isset($_SERVER['HTTP_CLIENT_IP'])) { - $ip = $_SERVER['HTTP_CLIENT_IP']; - } elseif (isset($_SERVER['REMOTE_ADDR'])) { - $ip = $_SERVER['REMOTE_ADDR']; - } - } elseif (isset($_SERVER['REMOTE_ADDR'])) { - $ip = $_SERVER['REMOTE_ADDR']; - } - - // IP地址类型 - $ip_mode = (strpos($ip, ':') === false) ? 'ipv4' : 'ipv6'; - - // IP地址合法验证 - if (filter_var($ip, FILTER_VALIDATE_IP) !== $ip) { - $ip = ($ip_mode === 'ipv4') ? '0.0.0.0' : '::'; - } - - // 如果是ipv4地址,则直接使用ip2long返回int类型ip;如果是ipv6地址,暂时不支持,直接返回0 - $long_ip = ($ip_mode === 'ipv4') ? sprintf("%u", ip2long($ip)) : 0; - - $ip = [$ip, $long_ip]; - - return $ip[$type]; - } - - /** - * 检测是否使用手机访问 - * @access public - * @return bool - */ - public function isMobile() - { - if (isset($_SERVER['HTTP_VIA']) && stristr($_SERVER['HTTP_VIA'], "wap")) { - return true; - } elseif (isset($_SERVER['HTTP_ACCEPT']) && strpos(strtoupper($_SERVER['HTTP_ACCEPT']), "VND.WAP.WML")) { - return true; - } elseif (isset($_SERVER['HTTP_X_WAP_PROFILE']) || isset($_SERVER['HTTP_PROFILE'])) { - return true; - } elseif (isset($_SERVER['HTTP_USER_AGENT']) && preg_match('/(blackberry|configuration\/cldc|hp |hp-|htc |htc_|htc-|iemobile|kindle|midp|mmp|motorola|mobile|nokia|opera mini|opera |Googlebot-Mobile|YahooSeeker\/M1A1-R2D2|android|iphone|ipod|mobi|palm|palmos|pocket|portalmmm|ppc;|smartphone|sonyericsson|sqh|spv|symbian|treo|up.browser|up.link|vodafone|windows ce|xda |xda_)/i', $_SERVER['HTTP_USER_AGENT'])) { - return true; - } - - return false; - } - - /** - * 当前URL地址中的scheme参数 - * @access public - * @return string - */ - public function scheme() - { - return $this->isSsl() ? 'https' : 'http'; - } - - /** - * 当前请求URL地址中的query参数 - * @access public - * @return string - */ - public function query() - { - return $this->server('QUERY_STRING'); - } - - /** - * 当前请求的host - * @access public - * @return string - */ - public function host() - { - if (isset($_SERVER['HTTP_X_REAL_HOST'])) { - return $_SERVER['HTTP_X_REAL_HOST']; - } - - return $this->server('HTTP_HOST'); - } - - /** - * 当前请求URL地址中的port参数 - * @access public - * @return integer - */ - public function port() - { - return $this->server('SERVER_PORT'); - } - - /** - * 当前请求 SERVER_PROTOCOL - * @access public - * @return integer - */ - public function protocol() - { - return $this->server('SERVER_PROTOCOL'); - } - - /** - * 当前请求 REMOTE_PORT - * @access public - * @return integer - */ - public function remotePort() - { - return $this->server('REMOTE_PORT'); - } - - /** - * 当前请求 HTTP_CONTENT_TYPE - * @access public - * @return string - */ - public function contentType() - { - $contentType = $this->server('CONTENT_TYPE'); - - if ($contentType) { - if (strpos($contentType, ';')) { - list($type) = explode(';', $contentType); - } else { - $type = $contentType; - } - return trim($type); - } - - return ''; - } - - /** - * 获取当前请求的路由信息 - * @access public - * @param array $route 路由名称 - * @return array - */ - public function routeInfo($route = []) - { - if (!empty($route)) { - $this->routeInfo = $route; - } - - return $this->routeInfo; - } - - /** - * 设置或者获取当前请求的调度信息 - * @access public - * @param array $dispatch 调度信息 - * @return array - */ - public function dispatch($dispatch = null) - { - if (!is_null($dispatch)) { - $this->dispatch = $dispatch; - } - - return $this->dispatch; - } - - /** - * 获取当前请求的安全Key - * @access public - * @return string - */ - public function secureKey() - { - if (is_null($this->secureKey)) { - $this->secureKey = uniqid('', true); - } - - return $this->secureKey; - } - - /** - * 设置或者获取当前的模块名 - * @access public - * @param string $module 模块名 - * @return string|Request - */ - public function module($module = null) - { - if (!is_null($module)) { - $this->module = $module; - return $this; - } - - return $this->module ?: ''; - } - - /** - * 设置或者获取当前的控制器名 - * @access public - * @param string $controller 控制器名 - * @return string|Request - */ - public function controller($controller = null) - { - if (!is_null($controller)) { - $this->controller = $controller; - return $this; - } - - return $this->controller ?: ''; - } - - /** - * 设置或者获取当前的操作名 - * @access public - * @param string $action 操作名 - * @return string|Request - */ - public function action($action = null) - { - if (!is_null($action) && !is_bool($action)) { - $this->action = $action; - return $this; - } - - $name = $this->action ?: ''; - return true === $action ? $name : strtolower($name); - } - - /** - * 设置或者获取当前的语言 - * @access public - * @param string $lang 语言名 - * @return string|Request - */ - public function langset($lang = null) - { - if (!is_null($lang)) { - $this->langset = $lang; - return $this; - } - - return $this->langset ?: ''; - } - - /** - * 设置或者获取当前请求的content - * @access public - * @return string - */ - public function getContent() - { - if (is_null($this->content)) { - $this->content = $this->input; - } - - return $this->content; - } - - /** - * 获取当前请求的php://input - * @access public - * @return string - */ - public function getInput() - { - return $this->input; - } - - /** - * 生成请求令牌 - * @access public - * @param string $name 令牌名称 - * @param mixed $type 令牌生成方法 - * @return string - */ - public function token($name = '__token__', $type = 'md5') - { - $type = is_callable($type) ? $type : 'md5'; - $token = call_user_func($type, $_SERVER['REQUEST_TIME_FLOAT']); - - if ($this->isAjax()) { - header($name . ': ' . $token); - } - - Container::get('session')->set($name, $token); - - return $token; - } - - /** - * 设置当前地址的请求缓存 - * @access public - * @param string $key 缓存标识,支持变量规则 ,例如 item/:name/:id - * @param mixed $expire 缓存有效期 - * @param array $except 缓存排除 - * @param string $tag 缓存标签 - * @return void - */ - public function cache($key, $expire = null, $except = [], $tag = null) - { - if (!is_array($except)) { - $tag = $except; - $except = []; - } - - if (false === $key || !$this->isGet() || $this->isCheckCache || false === $expire) { - // 关闭当前缓存 - return; - } - - // 标记请求缓存检查 - $this->isCheckCache = true; - - foreach ($except as $rule) { - if (0 === stripos($this->url(), $rule)) { - return; - } - } - - if ($key instanceof \Closure) { - $key = call_user_func_array($key, [$this]); - } elseif (true === $key) { - // 自动缓存功能 - $key = '__URL__'; - } elseif (strpos($key, '|')) { - list($key, $fun) = explode('|', $key); - } - - // 特殊规则替换 - if (false !== strpos($key, '__')) { - $key = str_replace(['__MODULE__', '__CONTROLLER__', '__ACTION__', '__URL__'], [$this->module, $this->controller, $this->action, md5($this->url(true))], $key); - } - - if (false !== strpos($key, ':')) { - $param = $this->param(); - foreach ($param as $item => $val) { - if (is_string($val) && false !== strpos($key, ':' . $item)) { - $key = str_replace(':' . $item, $val, $key); - } - } - } elseif (strpos($key, ']')) { - if ('[' . $this->ext() . ']' == $key) { - // 缓存某个后缀的请求 - $key = md5($this->url()); - } else { - return; - } - } - - if (isset($fun)) { - $key = $fun($key); - } - $cache = Container::get('cache'); - - if (strtotime($this->server('HTTP_IF_MODIFIED_SINCE')) + $expire > $_SERVER['REQUEST_TIME']) { - // 读取缓存 - $response = Response::create()->code(304); - throw new HttpResponseException($response); - } elseif ($cache->has($key)) { - list($content, $header) = $cache->get($key); - - $response = Response::create($content)->header($header); - throw new HttpResponseException($response); - } - - $this->cache = [$key, $expire, $tag]; - } - - /** - * 读取请求缓存设置 - * @access public - * @return array - */ - public function getCache() - { - return $this->cache; - } - - /** - * 获取请求数据的值 - * @access public - * @param string $name 名称 - * @return mixed - */ - public function __get($name) - { - return $this->param($name); - } - -} diff --git a/thinkphp/library/think/Response.php b/thinkphp/library/think/Response.php deleted file mode 100644 index de8feaac9..000000000 --- a/thinkphp/library/think/Response.php +++ /dev/null @@ -1,401 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think; - -use think\response\Redirect as RedirectResponse; - -class Response -{ - /** - * 原始数据 - * @var mixed - */ - protected $data; - - /** - * 当前contentType - * @var string - */ - protected $contentType = 'text/html'; - - /** - * 字符集 - * @var string - */ - protected $charset = 'utf-8'; - - /** - * 状态码 - * @var integer - */ - protected $code = 200; - - /** - * 是否允许请求缓存 - * @var bool - */ - protected $allowCache = true; - - /** - * 输出参数 - * @var array - */ - protected $options = []; - - /** - * header参数 - * @var array - */ - protected $header = []; - - /** - * 输出内容 - * @var string - */ - protected $content = null; - - /** - * 架构函数 - * @access public - * @param mixed $data 输出数据 - * @param int $code - * @param array $header - * @param array $options 输出参数 - */ - public function __construct($data = '', $code = 200, array $header = [], $options = []) - { - $this->data($data); - - if (!empty($options)) { - $this->options = array_merge($this->options, $options); - } - - $this->contentType($this->contentType, $this->charset); - - $this->code = $code; - $this->header = array_merge($this->header, $header); - } - - /** - * 创建Response对象 - * @access public - * @param mixed $data 输出数据 - * @param string $type 输出类型 - * @param int $code - * @param array $header - * @param array $options 输出参数 - * @return Response - */ - public static function create($data = '', $type = '', $code = 200, array $header = [], $options = []) - { - $class = false !== strpos($type, '\\') ? $type : '\\think\\response\\' . ucfirst(strtolower($type)); - - if (class_exists($class)) { - return new $class($data, $code, $header, $options); - } - - return new static($data, $code, $header, $options); - } - - /** - * 发送数据到客户端 - * @access public - * @return void - * @throws \InvalidArgumentException - */ - public function send() - { - // 监听response_send - Container::get('hook')->listen('response_send', $this); - - // 处理输出数据 - $data = $this->getContent(); - - // Trace调试注入 - if ('cli' != PHP_SAPI && Container::get('env')->get('app_trace', Container::get('app')->config('app.app_trace'))) { - Container::get('debug')->inject($this, $data); - } - - if (200 == $this->code && $this->allowCache) { - $cache = Container::get('request')->getCache(); - if ($cache) { - $this->header['Cache-Control'] = 'max-age=' . $cache[1] . ',must-revalidate'; - $this->header['Last-Modified'] = gmdate('D, d M Y H:i:s') . ' GMT'; - $this->header['Expires'] = gmdate('D, d M Y H:i:s', $_SERVER['REQUEST_TIME'] + $cache[1]) . ' GMT'; - - Container::get('cache')->tag($cache[2])->set($cache[0], [$data, $this->header], $cache[1]); - } - } - - if (!headers_sent() && !empty($this->header)) { - // 发送状态码 - http_response_code($this->code); - // 发送头部信息 - foreach ($this->header as $name => $val) { - header($name . (!is_null($val) ? ':' . $val : '')); - } - } - - $this->sendData($data); - - if (function_exists('fastcgi_finish_request')) { - // 提高页面响应 - fastcgi_finish_request(); - } - - // 监听response_end - Container::get('hook')->listen('response_end', $this); - - // 清空当次请求有效的数据 - if (!($this instanceof RedirectResponse)) { - Container::get('session')->flush(); - } - } - - /** - * 处理数据 - * @access protected - * @param mixed $data 要处理的数据 - * @return mixed - */ - protected function output($data) - { - return $data; - } - - /** - * 输出数据 - * @access protected - * @param string $data 要处理的数据 - * @return void - */ - protected function sendData($data) - { - echo $data; - } - - /** - * 输出的参数 - * @access public - * @param mixed $options 输出参数 - * @return $this - */ - public function options($options = []) - { - $this->options = array_merge($this->options, $options); - - return $this; - } - - /** - * 输出数据设置 - * @access public - * @param mixed $data 输出数据 - * @return $this - */ - public function data($data) - { - $this->data = $data; - - return $this; - } - - /** - * 是否允许请求缓存 - * @access public - * @param bool $cache 允许请求缓存 - * @return $this - */ - public function allowCache($cache) - { - $this->allowCache = $cache; - - return $this; - } - - /** - * 设置响应头 - * @access public - * @param string|array $name 参数名 - * @param string $value 参数值 - * @return $this - */ - public function header($name, $value = null) - { - if (is_array($name)) { - $this->header = array_merge($this->header, $name); - } else { - $this->header[$name] = $value; - } - - return $this; - } - - /** - * 设置页面输出内容 - * @access public - * @param mixed $content - * @return $this - */ - public function content($content) - { - if (null !== $content && !is_string($content) && !is_numeric($content) && !is_callable([ - $content, - '__toString', - ]) - ) { - throw new \InvalidArgumentException(sprintf('variable type error: %s', gettype($content))); - } - - $this->content = (string) $content; - - return $this; - } - - /** - * 发送HTTP状态 - * @access public - * @param integer $code 状态码 - * @return $this - */ - public function code($code) - { - $this->code = $code; - - return $this; - } - - /** - * LastModified - * @access public - * @param string $time - * @return $this - */ - public function lastModified($time) - { - $this->header['Last-Modified'] = $time; - - return $this; - } - - /** - * Expires - * @access public - * @param string $time - * @return $this - */ - public function expires($time) - { - $this->header['Expires'] = $time; - - return $this; - } - - /** - * ETag - * @access public - * @param string $eTag - * @return $this - */ - public function eTag($eTag) - { - $this->header['ETag'] = $eTag; - - return $this; - } - - /** - * 页面缓存控制 - * @access public - * @param string $cache 状态码 - * @return $this - */ - public function cacheControl($cache) - { - $this->header['Cache-control'] = $cache; - - return $this; - } - - /** - * 页面输出类型 - * @access public - * @param string $contentType 输出类型 - * @param string $charset 输出编码 - * @return $this - */ - public function contentType($contentType, $charset = 'utf-8') - { - $this->header['Content-Type'] = $contentType . '; charset=' . $charset; - - return $this; - } - - /** - * 获取头部信息 - * @access public - * @param string $name 头部名称 - * @return mixed - */ - public function getHeader($name = '') - { - if (!empty($name)) { - return isset($this->header[$name]) ? $this->header[$name] : null; - } - - return $this->header; - } - - /** - * 获取原始数据 - * @access public - * @return mixed - */ - public function getData() - { - return $this->data; - } - - /** - * 获取输出数据 - * @access public - * @return mixed - */ - public function getContent() - { - if (null == $this->content) { - $content = $this->output($this->data); - - if (null !== $content && !is_string($content) && !is_numeric($content) && !is_callable([ - $content, - '__toString', - ]) - ) { - throw new \InvalidArgumentException(sprintf('variable type error: %s', gettype($content))); - } - - $this->content = (string) $content; - } - - return $this->content; - } - - /** - * 获取状态码 - * @access public - * @return integer - */ - public function getCode() - { - return $this->code; - } -} diff --git a/thinkphp/library/think/Route.php b/thinkphp/library/think/Route.php deleted file mode 100644 index 645fb9e1d..000000000 --- a/thinkphp/library/think/Route.php +++ /dev/null @@ -1,858 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think; - -use think\exception\RouteNotFoundException; -use think\route\AliasRule; -use think\route\dispatch\Url as UrlDispatch; -use think\route\Domain; -use think\route\Resource; -use think\route\RuleGroup; -use think\route\RuleItem; - -class Route -{ - /** - * REST定义 - * @var array - */ - protected $rest = [ - 'index' => ['get', '', 'index'], - 'create' => ['get', '/create', 'create'], - 'edit' => ['get', '/:id/edit', 'edit'], - 'read' => ['get', '/:id', 'read'], - 'save' => ['post', '', 'save'], - 'update' => ['put', '/:id', 'update'], - 'delete' => ['delete', '/:id', 'delete'], - ]; - - /** - * 请求方法前缀定义 - * @var array - */ - protected $methodPrefix = [ - 'get' => 'get', - 'post' => 'post', - 'put' => 'put', - 'delete' => 'delete', - 'patch' => 'patch', - ]; - - /** - * 配置对象 - * @var Config - */ - protected $config; - - /** - * 请求对象 - * @var Request - */ - protected $request; - - /** - * 当前HOST - * @var string - */ - protected $host; - - /** - * 当前域名 - * @var string - */ - protected $domain; - - /** - * 当前分组对象 - * @var RuleGroup - */ - protected $group; - - /** - * 路由绑定 - * @var array - */ - protected $bind = []; - - /** - * 域名对象 - * @var array - */ - protected $domains = []; - - /** - * 跨域路由规则 - * @var RuleGroup - */ - protected $cross; - - /** - * 路由别名 - * @var array - */ - protected $alias = []; - - /** - * 路由是否延迟解析 - * @var bool - */ - protected $lazy = true; - - /** - * (分组)路由规则是否合并解析 - * @var bool - */ - protected $mergeRuleRegex = true; - - /** - * 路由解析自动搜索多级控制器 - * @var bool - */ - protected $autoSearchController = true; - - public function __construct(Request $request) - { - $this->request = $request; - $this->host = $this->request->host(); - - $this->setDefaultDomain(); - } - - /** - * 设置路由域名及分组(包括资源路由)是否延迟解析 - * @access public - * @param bool $lazy 路由是否延迟解析 - * @return $this - */ - public function lazy($lazy = true) - { - $this->lazy = $lazy; - return $this; - } - - /** - * 设置路由域名及分组(包括资源路由)是否合并解析 - * @access public - * @param bool $merge 路由是否合并解析 - * @return $this - */ - public function mergeRuleRegex($merge = true) - { - $this->mergeRuleRegex = $merge; - $this->group->mergeRuleRegex($merge); - - return $this; - } - - /** - * 设置路由自动解析是否搜索多级控制器 - * @access public - * @param bool $auto 是否自动搜索多级控制器 - * @return $this - */ - public function autoSearchController($auto = true) - { - $this->autoSearchController = $auto; - return $this; - } - - /** - * 初始化默认域名 - * @access protected - * @return void - */ - protected function setDefaultDomain() - { - // 默认域名 - $this->domain = $this->host; - - // 注册默认域名 - $domain = new Domain($this, $this->host); - - $this->domains[$this->host] = $domain; - - // 默认分组 - $this->group = $domain; - } - - /** - * 设置当前域名 - * @access public - * @param RuleGroup $group 域名 - * @return void - */ - public function setGroup(RuleGroup $group) - { - $this->group = $group; - } - - /** - * 获取当前分组 - * @access public - * @return RuleGroup - */ - public function getGroup() - { - return $this->group; - } - - /** - * 注册变量规则 - * @access public - * @param string|array $name 变量名 - * @param string $rule 变量规则 - * @return $this - */ - public function pattern($name, $rule = '') - { - $this->group->pattern($name, $rule); - - return $this; - } - - /** - * 注册路由参数 - * @access public - * @param string|array $name 参数名 - * @param mixed $value 值 - * @return $this - */ - public function option($name, $value = '') - { - $this->group->option($name, $value); - - return $this; - } - - /** - * 注册域名路由 - * @access public - * @param string|array $name 子域名 - * @param mixed $rule 路由规则 - * @param array $option 路由参数 - * @param array $pattern 变量规则 - * @return Domain - */ - public function domain($name, $rule = '', $option = [], $pattern = []) - { - // 支持多个域名使用相同路由规则 - $domainName = is_array($name) ? array_shift($name) : $name; - - if ('*' != $domainName && !strpos($domainName, '.')) { - $domainName .= '.' . $this->request->rootDomain(); - } - - if (!isset($this->domains[$domainName])) { - $domain = (new Domain($this, $domainName, $rule, $option, $pattern)) - ->lazy($this->lazy) - ->mergeRuleRegex($this->mergeRuleRegex); - - $this->domains[$domainName] = $domain; - } else { - $domain = $this->domains[$domainName]; - $domain->parseGroupRule($rule); - } - - if (is_array($name) && !empty($name)) { - $root = $this->request->rootDomain(); - foreach ($name as $item) { - if (!strpos($item, '.')) { - $item .= '.' . $root; - } - - $this->domains[$item] = $domainName; - } - } - - // 返回域名对象 - return $domain; - } - - /** - * 获取域名 - * @access public - * @return array - */ - public function getDomains() - { - return $this->domains; - } - - /** - * 设置路由绑定 - * @access public - * @param string $bind 绑定信息 - * @param string $domain 域名 - * @return $this - */ - public function bind($bind, $domain = null) - { - $domain = is_null($domain) ? $this->domain : $domain; - - $this->bind[$domain] = $bind; - - return $this; - } - - /** - * 读取路由绑定 - * @access public - * @param string $domain 域名 - * @return string|null - */ - public function getBind($domain = null) - { - if (is_null($domain)) { - $domain = $this->domain; - } elseif (!strpos($domain, '.')) { - $domain .= '.' . $this->request->rootDomain(); - } - - $subDomain = $this->request->subDomain(); - - if (strpos($subDomain, '.')) { - $name = '*' . strstr($subDomain, '.'); - } - - if (isset($this->bind[$domain])) { - $result = $this->bind[$domain]; - } elseif (isset($name) && isset($this->bind[$name])) { - $result = $this->bind[$name]; - } elseif (isset($this->bind['*'])) { - $result = $this->bind['*']; - } else { - $result = null; - } - - return $result; - } - - /** - * 读取路由标识 - * @access public - * @param string $name 路由标识 - * @return mixed - */ - public function getName($name = null) - { - return Container::get('rule_name')->get($name); - } - - /** - * 批量导入路由标识 - * @access public - * @param array $name 路由标识 - * @return $this - */ - public function setName($name) - { - Container::get('rule_name')->import($name); - return $this; - } - - /** - * 导入配置文件的路由规则 - * @access public - * @param array $rules 路由规则 - * @param string $type 请求类型 - * @return void - */ - public function import(array $rules, $type = '*') - { - // 检查域名部署 - if (isset($rules['__domain__'])) { - foreach ($rules['__domain__'] as $key => $rule) { - $this->domain($key, $rule); - } - unset($rules['__domain__']); - } - - // 检查变量规则 - if (isset($rules['__pattern__'])) { - $this->pattern($rules['__pattern__']); - unset($rules['__pattern__']); - } - - // 检查路由别名 - if (isset($rules['__alias__'])) { - $this->alias($rules['__alias__']); - unset($rules['__alias__']); - } - - // 检查资源路由 - if (isset($rules['__rest__'])) { - foreach ($rules['__rest__'] as $key => $rule) { - $this->resource($key, $rule); - } - unset($rules['__rest__']); - } - - // 检查路由规则(包含分组) - foreach ($rules as $key => $val) { - if (is_numeric($key)) { - $key = array_shift($val); - } - - if (empty($val)) { - continue; - } - - if (is_string($key) && 0 === strpos($key, '[')) { - $key = substr($key, 1, -1); - $this->group($key, $val); - } elseif (is_array($val)) { - $this->rule($key, $val[0], $type, $val[1], isset($val[2]) ? $val[2] : []); - } else { - $this->rule($key, $val, $type); - } - } - } - - /** - * 注册路由规则 - * @access public - * @param string $rule 路由规则 - * @param mixed $route 路由地址 - * @param string $method 请求类型 - * @param array $option 路由参数 - * @param array $pattern 变量规则 - * @return RuleItem - */ - public function rule($rule, $route, $method = '*', array $option = [], array $pattern = []) - { - return $this->group->addRule($rule, $route, $method, $option, $pattern); - } - - /** - * 设置跨域有效路由规则 - * @access public - * @param Rule $rule 路由规则 - * @param string $method 请求类型 - * @return $this - */ - public function setCrossDomainRule($rule, $method = '*') - { - if (!isset($this->cross)) { - $this->cross = (new RuleGroup($this))->mergeRuleRegex($this->mergeRuleRegex); - } - - $this->cross->addRuleItem($rule, $method); - - return $this; - } - - /** - * 批量注册路由规则 - * @access public - * @param array $rules 路由规则 - * @param string $method 请求类型 - * @param array $option 路由参数 - * @param array $pattern 变量规则 - * @return void - */ - public function rules($rules, $method = '*', array $option = [], array $pattern = []) - { - $this->group->addRules($rules, $method, $option, $pattern); - } - - /** - * 注册路由分组 - * @access public - * @param string|array $name 分组名称或者参数 - * @param array|\Closure $route 分组路由 - * @param array $option 路由参数 - * @param array $pattern 变量规则 - * @return RuleGroup - */ - public function group($name, $route, array $option = [], array $pattern = []) - { - if (is_array($name)) { - $option = $name; - $name = isset($option['name']) ? $option['name'] : ''; - } - - return (new RuleGroup($this, $this->group, $name, $route, $option, $pattern)) - ->lazy($this->lazy) - ->mergeRuleRegex($this->mergeRuleRegex); - } - - /** - * 注册路由 - * @access public - * @param string $rule 路由规则 - * @param mixed $route 路由地址 - * @param array $option 路由参数 - * @param array $pattern 变量规则 - * @return RuleItem - */ - public function any($rule, $route = '', array $option = [], array $pattern = []) - { - return $this->rule($rule, $route, '*', $option, $pattern); - } - - /** - * 注册GET路由 - * @access public - * @param string $rule 路由规则 - * @param mixed $route 路由地址 - * @param array $option 路由参数 - * @param array $pattern 变量规则 - * @return RuleItem - */ - public function get($rule, $route = '', array $option = [], array $pattern = []) - { - return $this->rule($rule, $route, 'GET', $option, $pattern); - } - - /** - * 注册POST路由 - * @access public - * @param string $rule 路由规则 - * @param mixed $route 路由地址 - * @param array $option 路由参数 - * @param array $pattern 变量规则 - * @return RuleItem - */ - public function post($rule, $route = '', array $option = [], array $pattern = []) - { - return $this->rule($rule, $route, 'POST', $option, $pattern); - } - - /** - * 注册PUT路由 - * @access public - * @param string $rule 路由规则 - * @param mixed $route 路由地址 - * @param array $option 路由参数 - * @param array $pattern 变量规则 - * @return RuleItem - */ - public function put($rule, $route = '', array $option = [], array $pattern = []) - { - return $this->rule($rule, $route, 'PUT', $option, $pattern); - } - - /** - * 注册DELETE路由 - * @access public - * @param string $rule 路由规则 - * @param mixed $route 路由地址 - * @param array $option 路由参数 - * @param array $pattern 变量规则 - * @return RuleItem - */ - public function delete($rule, $route = '', array $option = [], array $pattern = []) - { - return $this->rule($rule, $route, 'DELETE', $option, $pattern); - } - - /** - * 注册PATCH路由 - * @access public - * @param string $rule 路由规则 - * @param mixed $route 路由地址 - * @param array $option 路由参数 - * @param array $pattern 变量规则 - * @return RuleItem - */ - public function patch($rule, $route = '', array $option = [], array $pattern = []) - { - return $this->rule($rule, $route, 'PATCH', $option, $pattern); - } - - /** - * 注册资源路由 - * @access public - * @param string $rule 路由规则 - * @param string $route 路由地址 - * @param array $option 路由参数 - * @param array $pattern 变量规则 - * @return Resource - */ - public function resource($rule, $route = '', array $option = [], array $pattern = []) - { - return (new Resource($this, $this->group, $rule, $route, $option, $pattern, $this->rest)) - ->lazy($this->lazy); - } - - /** - * 注册控制器路由 操作方法对应不同的请求前缀 - * @access public - * @param string $rule 路由规则 - * @param string $route 路由地址 - * @param array $option 路由参数 - * @param array $pattern 变量规则 - * @return RuleGroup - */ - public function controller($rule, $route = '', array $option = [], array $pattern = []) - { - $group = new RuleGroup($this, $this->group, $rule, null, $option, $pattern); - - foreach ($this->methodPrefix as $type => $val) { - $group->addRule('', $val . '', $type); - } - - return $group->prefix($route . '/'); - } - - /** - * 注册视图路由 - * @access public - * @param string|array $rule 路由规则 - * @param string $template 路由模板地址 - * @param array $vars 模板变量 - * @param array $option 路由参数 - * @param array $pattern 变量规则 - * @return RuleItem - */ - public function view($rule, $template = '', array $vars = [], array $option = [], array $pattern = []) - { - return $this->rule($rule, $template, 'GET', $option, $pattern)->view($vars); - } - - /** - * 注册重定向路由 - * @access public - * @param string|array $rule 路由规则 - * @param string $route 路由地址 - * @param array $status 状态码 - * @param array $option 路由参数 - * @param array $pattern 变量规则 - * @return RuleItem - */ - public function redirect($rule, $route = '', $status = 301, array $option = [], array $pattern = []) - { - return $this->rule($rule, $route, '*', $option, $pattern)->redirect()->status($status); - } - - /** - * 注册别名路由 - * @access public - * @param string $rule 路由别名 - * @param string $route 路由地址 - * @param array $option 路由参数 - * @return AliasRule - */ - public function alias($rule, $route, array $option = []) - { - $aliasRule = new AliasRule($this, $this->group, $rule, $route, $option); - - $this->alias[$rule] = $aliasRule; - - return $aliasRule; - } - - /** - * 获取别名路由定义 - * @access public - * @param string $name 路由别名 - * @return string|array|null - */ - public function getAlias($name = null) - { - if (is_null($name)) { - return $this->alias; - } - - return isset($this->alias[$name]) ? $this->alias[$name] : null; - } - - /** - * 设置不同请求类型下面的方法前缀 - * @access public - * @param string|array $method 请求类型 - * @param string $prefix 类型前缀 - * @return $this - */ - public function setMethodPrefix($method, $prefix = '') - { - if (is_array($method)) { - $this->methodPrefix = array_merge($this->methodPrefix, array_change_key_case($method)); - } else { - $this->methodPrefix[strtolower($method)] = $prefix; - } - - return $this; - } - - /** - * 获取请求类型的方法前缀 - * @access public - * @param string $method 请求类型 - * @param string $prefix 类型前缀 - * @return string|null - */ - public function getMethodPrefix($method) - { - $method = strtolower($method); - - return isset($this->methodPrefix[$method]) ? $this->methodPrefix[$method] : null; - } - - /** - * rest方法定义和修改 - * @access public - * @param string $name 方法名称 - * @param array|bool $resource 资源 - * @return $this - */ - public function rest($name, $resource = []) - { - if (is_array($name)) { - $this->rest = $resource ? $name : array_merge($this->rest, $name); - } else { - $this->rest[$name] = $resource; - } - - return $this; - } - - /** - * 获取rest方法定义的参数 - * @access public - * @param string $name 方法名称 - * @return array|null - */ - public function getRest($name = null) - { - if (is_null($name)) { - return $this->rest; - } - - return isset($this->rest[$name]) ? $this->rest[$name] : null; - } - - /** - * 注册未匹配路由规则后的处理 - * @access public - * @param string $route 路由地址 - * @param string $method 请求类型 - * @param array $option 路由参数 - * @return RuleItem - */ - public function miss($route, $method = '*', array $option = []) - { - return $this->group->addMissRule($route, $method, $option); - } - - /** - * 注册一个自动解析的URL路由 - * @access public - * @param string $route 路由地址 - * @return RuleItem - */ - public function auto($route) - { - return $this->group->addAutoRule($route); - } - - /** - * 检测URL路由 - * @access public - * @param string $url URL地址 - * @param string $depr URL分隔符 - * @param bool $must 是否强制路由 - * @param bool $completeMatch 路由是否完全匹配 - * @return Dispatch - * @throws RouteNotFoundException - */ - public function check($url, $depr = '/', $must = false, $completeMatch = false) - { - // 自动检测域名路由 - $domain = $this->checkDomain(); - $url = str_replace($depr, '|', $url); - - $result = $domain->check($this->request, $url, $depr, $completeMatch); - - if (false === $result && !empty($this->cross)) { - // 检测跨域路由 - $result = $this->cross->check($this->request, $url, $depr, $completeMatch); - } - - if (false !== $result) { - // 路由匹配 - return $result; - } elseif ($must) { - // 强制路由不匹配则抛出异常 - throw new RouteNotFoundException(); - } - - // 默认路由解析 - return new UrlDispatch($url, ['depr' => $depr, 'auto_search' => $this->autoSearchController]); - } - - /** - * 检测域名的路由规则 - * @access protected - * @return Domain - */ - protected function checkDomain() - { - // 获取当前子域名 - $subDomain = $this->request->subDomain(); - - $item = false; - - if ($subDomain && count($this->domains) > 1) { - $domain = explode('.', $subDomain); - $domain2 = array_pop($domain); - - if ($domain) { - // 存在三级域名 - $domain3 = array_pop($domain); - } - - if ($subDomain && isset($this->domains[$subDomain])) { - // 子域名配置 - $item = $this->domains[$subDomain]; - } elseif (isset($this->domains['*.' . $domain2]) && !empty($domain3)) { - // 泛三级域名 - $item = $this->domains['*.' . $domain2]; - $panDomain = $domain3; - } elseif (isset($this->domains['*']) && !empty($domain2)) { - // 泛二级域名 - if ('www' != $domain2) { - $item = $this->domains['*']; - $panDomain = $domain2; - } - } - - if (isset($panDomain)) { - // 保存当前泛域名 - $this->request->panDomain($panDomain); - } - } - - if (false === $item) { - // 检测当前完整域名 - $item = $this->domains[$this->host]; - } - - if (is_string($item)) { - $item = $this->domains[$item]; - } - - return $item; - } - - /** - * 设置全局的路由分组参数 - * @access public - * @param string $method 方法名 - * @param array $args 调用参数 - * @return RuleGroup - */ - public function __call($method, $args) - { - return call_user_func_array([$this->group, $method], $args); - } -} diff --git a/thinkphp/library/think/Session.php b/thinkphp/library/think/Session.php deleted file mode 100644 index f52bbc623..000000000 --- a/thinkphp/library/think/Session.php +++ /dev/null @@ -1,531 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think; - -use think\exception\ClassNotFoundException; - -class Session -{ - /** - * 前缀 - * @var string - */ - protected $prefix = ''; - - /** - * 是否初始化 - * @var bool - */ - protected $init = null; - - /** - * 锁驱动 - * @var object - */ - protected $lockDriver = null; - - /** - * 锁key - * @var string - */ - protected $sessKey = 'PHPSESSID'; - - /** - * 锁超时时间 - * @var integer - */ - protected $lockTimeout = 3; - - /** - * 是否启用锁机制 - * @var bool - */ - protected $lock = false; - - /** - * 设置或者获取session作用域(前缀) - * @access public - * @param string $prefix - * @return string|void - */ - public function prefix($prefix = '') - { - empty($this->init) && $this->boot(); - - if (empty($prefix) && null !== $prefix) { - return $this->prefix; - } else { - $this->prefix = $prefix; - } - } - - /** - * session初始化 - * @access public - * @param array $config - * @return void - * @throws \think\Exception - */ - public function init(array $config = []) - { - if (empty($config)) { - $config = Container::get('config')->pull('session'); - } - - // 记录初始化信息 - Container::get('app')->log('[ SESSION ] INIT ' . var_export($config, true)); - $isDoStart = false; - if (isset($config['use_trans_sid'])) { - ini_set('session.use_trans_sid', $config['use_trans_sid'] ? 1 : 0); - } - - // 启动session - if (!empty($config['auto_start']) && PHP_SESSION_ACTIVE != session_status()) { - ini_set('session.auto_start', 0); - $isDoStart = true; - } - - if (isset($config['prefix'])) { - $this->prefix = $config['prefix']; - } - - if (isset($config['use_lock'])) { - $this->lock = $config['use_lock']; - } - - if (isset($config['var_session_id']) && isset($_REQUEST[$config['var_session_id']])) { - session_id($_REQUEST[$config['var_session_id']]); - } elseif (isset($config['id']) && !empty($config['id'])) { - session_id($config['id']); - } - - if (isset($config['name'])) { - session_name($config['name']); - } - - if (isset($config['path'])) { - session_save_path($config['path']); - } - - if (isset($config['domain'])) { - ini_set('session.cookie_domain', $config['domain']); - } - - if (isset($config['expire'])) { - ini_set('session.gc_maxlifetime', $config['expire']); - ini_set('session.cookie_lifetime', $config['expire']); - } - - if (isset($config['secure'])) { - ini_set('session.cookie_secure', $config['secure']); - } - - if (isset($config['httponly'])) { - ini_set('session.cookie_httponly', $config['httponly']); - } - - if (isset($config['use_cookies'])) { - ini_set('session.use_cookies', $config['use_cookies'] ? 1 : 0); - } - - if (isset($config['cache_limiter'])) { - session_cache_limiter($config['cache_limiter']); - } - - if (isset($config['cache_expire'])) { - session_cache_expire($config['cache_expire']); - } - - if (!empty($config['type'])) { - // 读取session驱动 - $class = false !== strpos($config['type'], '\\') ? $config['type'] : '\\think\\session\\driver\\' . ucwords($config['type']); - - // 检查驱动类 - if (!class_exists($class) || !session_set_save_handler(new $class($config))) { - throw new ClassNotFoundException('error session handler:' . $class, $class); - } - } - - if ($isDoStart) { - session_start(); - $this->init = true; - } else { - $this->init = false; - } - } - - /** - * session自动启动或者初始化 - * @access public - * @return void - */ - public function boot() - { - if (is_null($this->init)) { - $this->init(); - } elseif (false === $this->init) { - if (PHP_SESSION_ACTIVE != session_status()) { - session_start(); - } - $this->init = true; - } - } - - /** - * session设置 - * @access public - * @param string $name session名称 - * @param mixed $value session值 - * @param string|null $prefix 作用域(前缀) - * @return void - */ - public function set($name, $value, $prefix = null) - { - $this->lock(); - - empty($this->init) && $this->boot(); - - $prefix = !is_null($prefix) ? $prefix : $this->prefix; - - if (strpos($name, '.')) { - // 二维数组赋值 - list($name1, $name2) = explode('.', $name); - if ($prefix) { - $_SESSION[$prefix][$name1][$name2] = $value; - } else { - $_SESSION[$name1][$name2] = $value; - } - } elseif ($prefix) { - $_SESSION[$prefix][$name] = $value; - } else { - $_SESSION[$name] = $value; - } - - $this->unlock(); - } - - /** - * session获取 - * @access public - * @param string $name session名称 - * @param string|null $prefix 作用域(前缀) - * @return mixed - */ - public function get($name = '', $prefix = null) - { - $this->lock(); - - empty($this->init) && $this->boot(); - - $prefix = !is_null($prefix) ? $prefix : $this->prefix; - - $value = $prefix ? (!empty($_SESSION[$prefix]) ? $_SESSION[$prefix] : []) : $_SESSION; - - if ('' != $name) { - $name = explode('.', $name); - - foreach ($name as $val) { - if (isset($value[$val])) { - $value = $value[$val]; - } else { - $value = null; - break; - } - } - } - - $this->unlock(); - - return $value; - } - - /** - * session 读写锁驱动实例化 - */ - protected function initDriver() - { - // 不在 init 方法中实例化lockDriver,是因为 init 方法不一定先于 set 或 get 方法调用 - $config = Container::get('config')->pull('session'); - - if (!empty($config['type']) && isset($config['use_lock']) && $config['use_lock']) { - // 读取session驱动 - $class = false !== strpos($config['type'], '\\') ? $config['type'] : '\\think\\session\\driver\\' . ucwords($config['type']); - - // 检查驱动类及类中是否存在 lock 和 unlock 函数 - if (class_exists($class) && method_exists($class, 'lock') && method_exists($class, 'unlock')) { - $this->lockDriver = new $class($config); - } - } - - // 通过cookie获得session_id - if (isset($config['name']) && $config['name']) { - $this->sessKey = $config['name']; - } - - if (isset($config['lock_timeout']) && $config['lock_timeout'] > 0) { - $this->lockTimeout = $config['lock_timeout']; - } - } - - /** - * session 读写加锁 - * @access protected - * @return void - */ - protected function lock() - { - if (empty($this->lock)) { - return; - } - - $this->initDriver(); - - if (null !== $this->lockDriver && method_exists($this->lockDriver, 'lock')) { - $t = time(); - // 使用 session_id 作为互斥条件,即只对同一 session_id 的会话互斥。第一次请求没有 session_id - $sessID = isset($_COOKIE[$this->sessKey]) ? $_COOKIE[$this->sessKey] : ''; - - do { - if (time() - $t > $this->lockTimeout) { - $this->unlock(); - } - } while (!$this->lockDriver->lock($sessID, $this->lockTimeout)); - } - } - - /** - * session 读写解锁 - * @access protected - * @return void - */ - protected function unlock() - { - if (empty($this->lock)) { - return; - } - - $this->pause(); - - if ($this->lockDriver && method_exists($this->lockDriver, 'unlock')) { - $sessID = isset($_COOKIE[$this->sessKey]) ? $_COOKIE[$this->sessKey] : ''; - $this->lockDriver->unlock($sessID); - } - } - - /** - * session获取并删除 - * @access public - * @param string $name session名称 - * @param string|null $prefix 作用域(前缀) - * @return mixed - */ - public function pull($name, $prefix = null) - { - $result = $this->get($name, $prefix); - - if ($result) { - $this->delete($name, $prefix); - return $result; - } else { - return; - } - } - - /** - * session设置 下一次请求有效 - * @access public - * @param string $name session名称 - * @param mixed $value session值 - * @param string|null $prefix 作用域(前缀) - * @return void - */ - public function flash($name, $value) - { - $this->set($name, $value); - - if (!$this->has('__flash__.__time__')) { - $this->set('__flash__.__time__', $_SERVER['REQUEST_TIME_FLOAT']); - } - - $this->push('__flash__', $name); - } - - /** - * 清空当前请求的session数据 - * @access public - * @return void - */ - public function flush() - { - if (!$this->init) { - return; - } - - $item = $this->get('__flash__'); - - if (!empty($item)) { - $time = $item['__time__']; - - if ($_SERVER['REQUEST_TIME_FLOAT'] > $time) { - unset($item['__time__']); - $this->delete($item); - $this->set('__flash__', []); - } - } - } - - /** - * 删除session数据 - * @access public - * @param string|array $name session名称 - * @param string|null $prefix 作用域(前缀) - * @return void - */ - public function delete($name, $prefix = null) - { - empty($this->init) && $this->boot(); - - $prefix = !is_null($prefix) ? $prefix : $this->prefix; - - if (is_array($name)) { - foreach ($name as $key) { - $this->delete($key, $prefix); - } - } elseif (strpos($name, '.')) { - list($name1, $name2) = explode('.', $name); - if ($prefix) { - unset($_SESSION[$prefix][$name1][$name2]); - } else { - unset($_SESSION[$name1][$name2]); - } - } else { - if ($prefix) { - unset($_SESSION[$prefix][$name]); - } else { - unset($_SESSION[$name]); - } - } - } - - /** - * 清空session数据 - * @access public - * @param string|null $prefix 作用域(前缀) - * @return void - */ - public function clear($prefix = null) - { - empty($this->init) && $this->boot(); - $prefix = !is_null($prefix) ? $prefix : $this->prefix; - - if ($prefix) { - unset($_SESSION[$prefix]); - } else { - $_SESSION = []; - } - } - - /** - * 判断session数据 - * @access public - * @param string $name session名称 - * @param string|null $prefix - * @return bool - */ - public function has($name, $prefix = null) - { - empty($this->init) && $this->boot(); - $prefix = !is_null($prefix) ? $prefix : $this->prefix; - - if (strpos($name, '.')) { - // 支持数组 - list($name1, $name2) = explode('.', $name); - - return $prefix ? isset($_SESSION[$prefix][$name1][$name2]) : isset($_SESSION[$name1][$name2]); - } else { - return $prefix ? isset($_SESSION[$prefix][$name]) : isset($_SESSION[$name]); - } - } - - /** - * 添加数据到一个session数组 - * @access public - * @param string $key - * @param mixed $value - * @return void - */ - public function push($key, $value) - { - $array = $this->get($key); - - if (is_null($array)) { - $array = []; - } - - $array[] = $value; - - $this->set($key, $array); - } - - /** - * 启动session - * @access public - * @return void - */ - public function start() - { - session_start(); - - $this->init = true; - } - - /** - * 销毁session - * @access public - * @return void - */ - public function destroy() - { - if (!empty($_SESSION)) { - $_SESSION = []; - } - - session_unset(); - session_destroy(); - - $this->init = null; - $this->lockDriver = null; - } - - /** - * 重新生成session_id - * @access public - * @param bool $delete 是否删除关联会话文件 - * @return void - */ - public function regenerate($delete = false) - { - session_regenerate_id($delete); - } - - /** - * 暂停session - * @access public - * @return void - */ - public function pause() - { - // 暂停session - session_write_close(); - $this->init = false; - } -} diff --git a/thinkphp/library/think/Template.php b/thinkphp/library/think/Template.php deleted file mode 100644 index ef4a197f4..000000000 --- a/thinkphp/library/think/Template.php +++ /dev/null @@ -1,1304 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think; - -use think\exception\TemplateNotFoundException; - -/** - * ThinkPHP分离出来的模板引擎 - * 支持XML标签和普通标签的模板解析 - * 编译型模板引擎 支持动态缓存 - */ -class Template -{ - /** - * 模板变量 - * @var array - */ - protected $data = []; - - /** - * 模板配置参数 - * @var array - */ - protected $config = [ - 'view_path' => '', // 模板路径 - 'view_base' => '', - 'view_suffix' => 'html', // 默认模板文件后缀 - 'view_depr' => DIRECTORY_SEPARATOR, - 'cache_suffix' => 'php', // 默认模板缓存后缀 - 'tpl_deny_func_list' => 'echo,exit', // 模板引擎禁用函数 - 'tpl_deny_php' => false, // 默认模板引擎是否禁用PHP原生代码 - 'tpl_begin' => '{', // 模板引擎普通标签开始标记 - 'tpl_end' => '}', // 模板引擎普通标签结束标记 - 'strip_space' => false, // 是否去除模板文件里面的html空格与换行 - 'tpl_cache' => true, // 是否开启模板编译缓存,设为false则每次都会重新编译 - 'compile_type' => 'file', // 模板编译类型 - 'cache_prefix' => '', // 模板缓存前缀标识,可以动态改变 - 'cache_time' => 0, // 模板缓存有效期 0 为永久,(以数字为值,单位:秒) - 'layout_on' => false, // 布局模板开关 - 'layout_name' => 'layout', // 布局模板入口文件 - 'layout_item' => '{__CONTENT__}', // 布局模板的内容替换标识 - 'taglib_begin' => '{', // 标签库标签开始标记 - 'taglib_end' => '}', // 标签库标签结束标记 - 'taglib_load' => true, // 是否使用内置标签库之外的其它标签库,默认自动检测 - 'taglib_build_in' => 'cx', // 内置标签库名称(标签使用不必指定标签库名称),以逗号分隔 注意解析顺序 - 'taglib_pre_load' => '', // 需要额外加载的标签库(须指定标签库名称),多个以逗号分隔 - 'display_cache' => false, // 模板渲染缓存 - 'cache_id' => '', // 模板缓存ID - 'tpl_replace_string' => [], - 'tpl_var_identify' => 'array', // .语法变量识别,array|object|'', 为空时自动识别 - 'default_filter' => 'htmlentities', // 默认过滤方法 用于普通标签输出 - ]; - - /** - * 保留内容信息 - * @var array - */ - private $literal = []; - - /** - * 模板包含信息 - * @var array - */ - private $includeFile = []; - - /** - * 模板存储对象 - * @var object - */ - protected $storage; - - /** - * 架构函数 - * @access public - * @param array $config - */ - public function __construct(array $config = []) - { - $this->config['cache_path'] = Container::get('app')->getRuntimePath() . 'temp/'; - $this->config = array_merge($this->config, $config); - - $this->config['taglib_begin_origin'] = $this->config['taglib_begin']; - $this->config['taglib_end_origin'] = $this->config['taglib_end']; - - $this->config['taglib_begin'] = preg_quote($this->config['taglib_begin'], '/'); - $this->config['taglib_end'] = preg_quote($this->config['taglib_end'], '/'); - $this->config['tpl_begin'] = preg_quote($this->config['tpl_begin'], '/'); - $this->config['tpl_end'] = preg_quote($this->config['tpl_end'], '/'); - - // 初始化模板编译存储器 - $type = $this->config['compile_type'] ? $this->config['compile_type'] : 'File'; - $class = false !== strpos($type, '\\') ? $type : '\\think\\template\\driver\\' . ucwords($type); - - $this->storage = new $class(); - } - - /** - * 模板变量赋值 - * @access public - * @param mixed $name - * @param mixed $value - * @return void - */ - public function assign($name, $value = '') - { - if (is_array($name)) { - $this->data = array_merge($this->data, $name); - } else { - $this->data[$name] = $value; - } - } - - /** - * 模板引擎参数赋值 - * @access public - * @param mixed $name - * @param mixed $value - */ - public function __set($name, $value) - { - $this->config[$name] = $value; - } - - /** - * 模板引擎配置项 - * @access public - * @param array|string $config - * @return void|array - */ - public function config($config) - { - if (is_array($config)) { - $this->config = array_merge($this->config, $config); - } elseif (isset($this->config[$config])) { - return $this->config[$config]; - } - } - - /** - * 模板变量获取 - * @access public - * @param string $name 变量名 - * @return mixed - */ - public function get($name = '') - { - if ('' == $name) { - return $this->data; - } - - $data = $this->data; - - foreach (explode('.', $name) as $key => $val) { - if (isset($data[$val])) { - $data = $data[$val]; - } else { - $data = null; - break; - } - } - - return $data; - } - - /** - * 渲染模板文件 - * @access public - * @param string $template 模板文件 - * @param array $vars 模板变量 - * @param array $config 模板参数 - * @return void - */ - public function fetch($template, $vars = [], $config = []) - { - if ($vars) { - $this->data = $vars; - } - - if ($config) { - $this->config($config); - } - - $cache = Container::get('cache'); - - if (!empty($this->config['cache_id']) && $this->config['display_cache']) { - // 读取渲染缓存 - $cacheContent = $cache->get($this->config['cache_id']); - - if (false !== $cacheContent) { - echo $cacheContent; - return; - } - } - - $template = $this->parseTemplateFile($template); - - if ($template) { - $cacheFile = $this->config['cache_path'] . $this->config['cache_prefix'] . md5($this->config['layout_on'] . $this->config['layout_name'] . $template) . '.' . ltrim($this->config['cache_suffix'], '.'); - - if (!$this->checkCache($cacheFile)) { - // 缓存无效 重新模板编译 - $content = file_get_contents($template); - $this->compiler($content, $cacheFile); - } - - // 页面缓存 - ob_start(); - ob_implicit_flush(0); - - // 读取编译存储 - $this->storage->read($cacheFile, $this->data); - - // 获取并清空缓存 - $content = ob_get_clean(); - - if (!empty($this->config['cache_id']) && $this->config['display_cache']) { - // 缓存页面输出 - $cache->set($this->config['cache_id'], $content, $this->config['cache_time']); - } - - echo $content; - } - } - - /** - * 渲染模板内容 - * @access public - * @param string $content 模板内容 - * @param array $vars 模板变量 - * @param array $config 模板参数 - * @return void - */ - public function display($content, $vars = [], $config = []) - { - if ($vars) { - $this->data = $vars; - } - - if ($config) { - $this->config($config); - } - - $cacheFile = $this->config['cache_path'] . $this->config['cache_prefix'] . md5($content) . '.' . ltrim($this->config['cache_suffix'], '.'); - - if (!$this->checkCache($cacheFile)) { - // 缓存无效 模板编译 - $this->compiler($content, $cacheFile); - } - - // 读取编译存储 - $this->storage->read($cacheFile, $this->data); - } - - /** - * 设置布局 - * @access public - * @param mixed $name 布局模板名称 false 则关闭布局 - * @param string $replace 布局模板内容替换标识 - * @return object - */ - public function layout($name, $replace = '') - { - if (false === $name) { - // 关闭布局 - $this->config['layout_on'] = false; - } else { - // 开启布局 - $this->config['layout_on'] = true; - - // 名称必须为字符串 - if (is_string($name)) { - $this->config['layout_name'] = $name; - } - - if (!empty($replace)) { - $this->config['layout_item'] = $replace; - } - } - - return $this; - } - - /** - * 检查编译缓存是否有效 - * 如果无效则需要重新编译 - * @access private - * @param string $cacheFile 缓存文件名 - * @return boolean - */ - private function checkCache($cacheFile) - { - if (!$this->config['tpl_cache'] || !is_file($cacheFile) || !$handle = @fopen($cacheFile, "r")) { - return false; - } - - // 读取第一行 - preg_match('/\/\*(.+?)\*\//', fgets($handle), $matches); - - if (!isset($matches[1])) { - return false; - } - - $includeFile = unserialize($matches[1]); - - if (!is_array($includeFile)) { - return false; - } - - // 检查模板文件是否有更新 - foreach ($includeFile as $path => $time) { - if (is_file($path) && filemtime($path) > $time) { - // 模板文件如果有更新则缓存需要更新 - return false; - } - } - - // 检查编译存储是否有效 - return $this->storage->check($cacheFile, $this->config['cache_time']); - } - - /** - * 检查编译缓存是否存在 - * @access public - * @param string $cacheId 缓存的id - * @return boolean - */ - public function isCache($cacheId) - { - if ($cacheId && $this->config['display_cache']) { - // 缓存页面输出 - return Container::get('cache')->has($cacheId); - } - - return false; - } - - /** - * 编译模板文件内容 - * @access private - * @param string $content 模板内容 - * @param string $cacheFile 缓存文件名 - * @return void - */ - private function compiler(&$content, $cacheFile) - { - // 判断是否启用布局 - if ($this->config['layout_on']) { - if (false !== strpos($content, '{__NOLAYOUT__}')) { - // 可以单独定义不使用布局 - $content = str_replace('{__NOLAYOUT__}', '', $content); - } else { - // 读取布局模板 - $layoutFile = $this->parseTemplateFile($this->config['layout_name']); - - if ($layoutFile) { - // 替换布局的主体内容 - $content = str_replace($this->config['layout_item'], $content, file_get_contents($layoutFile)); - } - } - } else { - $content = str_replace('{__NOLAYOUT__}', '', $content); - } - - // 模板解析 - $this->parse($content); - - if ($this->config['strip_space']) { - /* 去除html空格与换行 */ - $find = ['~>\s+<~', '~>(\s+\n|\r)~']; - $replace = ['><', '>']; - $content = preg_replace($find, $replace, $content); - } - - // 优化生成的php代码 - $content = preg_replace('/\?>\s*<\?php\s(?!echo\b)/s', '', $content); - - // 模板过滤输出 - $replace = $this->config['tpl_replace_string']; - $content = str_replace(array_keys($replace), array_values($replace), $content); - - // 添加安全代码及模板引用记录 - $content = 'includeFile) . '*/ ?>' . "\n" . $content; - // 编译存储 - $this->storage->write($cacheFile, $content); - - $this->includeFile = []; - } - - /** - * 模板解析入口 - * 支持普通标签和TagLib解析 支持自定义标签库 - * @access public - * @param string $content 要解析的模板内容 - * @return void - */ - public function parse(&$content) - { - // 内容为空不解析 - if (empty($content)) { - return; - } - - // 替换literal标签内容 - $this->parseLiteral($content); - - // 解析继承 - $this->parseExtend($content); - - // 解析布局 - $this->parseLayout($content); - - // 检查include语法 - $this->parseInclude($content); - - // 替换包含文件中literal标签内容 - $this->parseLiteral($content); - - // 检查PHP语法 - $this->parsePhp($content); - - // 获取需要引入的标签库列表 - // 标签库只需要定义一次,允许引入多个一次 - // 一般放在文件的最前面 - // 格式: - // 当TAGLIB_LOAD配置为true时才会进行检测 - if ($this->config['taglib_load']) { - $tagLibs = $this->getIncludeTagLib($content); - - if (!empty($tagLibs)) { - // 对导入的TagLib进行解析 - foreach ($tagLibs as $tagLibName) { - $this->parseTagLib($tagLibName, $content); - } - } - } - - // 预先加载的标签库 无需在每个模板中使用taglib标签加载 但必须使用标签库XML前缀 - if ($this->config['taglib_pre_load']) { - $tagLibs = explode(',', $this->config['taglib_pre_load']); - - foreach ($tagLibs as $tag) { - $this->parseTagLib($tag, $content); - } - } - - // 内置标签库 无需使用taglib标签导入就可以使用 并且不需使用标签库XML前缀 - $tagLibs = explode(',', $this->config['taglib_build_in']); - - foreach ($tagLibs as $tag) { - $this->parseTagLib($tag, $content, true); - } - - // 解析普通模板标签 {$tagName} - $this->parseTag($content); - - // 还原被替换的Literal标签 - $this->parseLiteral($content, true); - } - - /** - * 检查PHP语法 - * @access private - * @param string $content 要解析的模板内容 - * @return void - * @throws \think\Exception - */ - private function parsePhp(&$content) - { - // 短标签的情况要将' . "\n", $content); - - // PHP语法检查 - if ($this->config['tpl_deny_php'] && false !== strpos($content, 'getRegex('layout'), $content, $matches)) { - // 替换Layout标签 - $content = str_replace($matches[0], '', $content); - // 解析Layout标签 - $array = $this->parseAttr($matches[0]); - - if (!$this->config['layout_on'] || $this->config['layout_name'] != $array['name']) { - // 读取布局模板 - $layoutFile = $this->parseTemplateFile($array['name']); - - if ($layoutFile) { - $replace = isset($array['replace']) ? $array['replace'] : $this->config['layout_item']; - // 替换布局的主体内容 - $content = str_replace($replace, $content, file_get_contents($layoutFile)); - } - } - } else { - $content = str_replace('{__NOLAYOUT__}', '', $content); - } - } - - /** - * 解析模板中的include标签 - * @access private - * @param string $content 要解析的模板内容 - * @return void - */ - private function parseInclude(&$content) - { - $regex = $this->getRegex('include'); - $func = function ($template) use (&$func, &$regex, &$content) { - if (preg_match_all($regex, $template, $matches, PREG_SET_ORDER)) { - foreach ($matches as $match) { - $array = $this->parseAttr($match[0]); - $file = $array['file']; - unset($array['file']); - - // 分析模板文件名并读取内容 - $parseStr = $this->parseTemplateName($file); - - foreach ($array as $k => $v) { - // 以$开头字符串转换成模板变量 - if (0 === strpos($v, '$')) { - $v = $this->get(substr($v, 1)); - } - - $parseStr = str_replace('[' . $k . ']', $v, $parseStr); - } - - $content = str_replace($match[0], $parseStr, $content); - // 再次对包含文件进行模板分析 - $func($parseStr); - } - unset($matches); - } - }; - - // 替换模板中的include标签 - $func($content); - } - - /** - * 解析模板中的extend标签 - * @access private - * @param string $content 要解析的模板内容 - * @return void - */ - private function parseExtend(&$content) - { - $regex = $this->getRegex('extend'); - $array = $blocks = $baseBlocks = []; - $extend = ''; - - $func = function ($template) use (&$func, &$regex, &$array, &$extend, &$blocks, &$baseBlocks) { - if (preg_match($regex, $template, $matches)) { - if (!isset($array[$matches['name']])) { - $array[$matches['name']] = 1; - // 读取继承模板 - $extend = $this->parseTemplateName($matches['name']); - - // 递归检查继承 - $func($extend); - - // 取得block标签内容 - $blocks = array_merge($blocks, $this->parseBlock($template)); - - return; - } - } else { - // 取得顶层模板block标签内容 - $baseBlocks = $this->parseBlock($template, true); - - if (empty($extend)) { - // 无extend标签但有block标签的情况 - $extend = $template; - } - } - }; - - $func($content); - - if (!empty($extend)) { - if ($baseBlocks) { - $children = []; - foreach ($baseBlocks as $name => $val) { - $replace = $val['content']; - - if (!empty($children[$name])) { - // 如果包含有子block标签 - foreach ($children[$name] as $key) { - $replace = str_replace($baseBlocks[$key]['begin'] . $baseBlocks[$key]['content'] . $baseBlocks[$key]['end'], $blocks[$key]['content'], $replace); - } - } - - if (isset($blocks[$name])) { - // 带有{__block__}表示与所继承模板的相应标签合并,而不是覆盖 - $replace = str_replace(['{__BLOCK__}', '{__block__}'], $replace, $blocks[$name]['content']); - - if (!empty($val['parent'])) { - // 如果不是最顶层的block标签 - $parent = $val['parent']; - - if (isset($blocks[$parent])) { - $blocks[$parent]['content'] = str_replace($blocks[$name]['begin'] . $blocks[$name]['content'] . $blocks[$name]['end'], $replace, $blocks[$parent]['content']); - } - - $blocks[$name]['content'] = $replace; - $children[$parent][] = $name; - - continue; - } - } elseif (!empty($val['parent'])) { - // 如果子标签没有被继承则用原值 - $children[$val['parent']][] = $name; - $blocks[$name] = $val; - } - - if (!$val['parent']) { - // 替换模板中的顶级block标签 - $extend = str_replace($val['begin'] . $val['content'] . $val['end'], $replace, $extend); - } - } - } - - $content = $extend; - unset($blocks, $baseBlocks); - } - } - - /** - * 替换页面中的literal标签 - * @access private - * @param string $content 模板内容 - * @param boolean $restore 是否为还原 - * @return void - */ - private function parseLiteral(&$content, $restore = false) - { - $regex = $this->getRegex($restore ? 'restoreliteral' : 'literal'); - - if (preg_match_all($regex, $content, $matches, PREG_SET_ORDER)) { - if (!$restore) { - $count = count($this->literal); - - // 替换literal标签 - foreach ($matches as $match) { - $this->literal[] = substr($match[0], strlen($match[1]), -strlen($match[2])); - $content = str_replace($match[0], "", $content); - $count++; - } - } else { - // 还原literal标签 - foreach ($matches as $match) { - $content = str_replace($match[0], $this->literal[$match[1]], $content); - } - - // 清空literal记录 - $this->literal = []; - } - - unset($matches); - } - } - - /** - * 获取模板中的block标签 - * @access private - * @param string $content 模板内容 - * @param boolean $sort 是否排序 - * @return array - */ - private function parseBlock(&$content, $sort = false) - { - $regex = $this->getRegex('block'); - $result = []; - - if (preg_match_all($regex, $content, $matches, PREG_SET_ORDER | PREG_OFFSET_CAPTURE)) { - $right = $keys = []; - - foreach ($matches as $match) { - if (empty($match['name'][0])) { - if (count($right) > 0) { - $tag = array_pop($right); - $start = $tag['offset'] + strlen($tag['tag']); - $length = $match[0][1] - $start; - - $result[$tag['name']] = [ - 'begin' => $tag['tag'], - 'content' => substr($content, $start, $length), - 'end' => $match[0][0], - 'parent' => count($right) ? end($right)['name'] : '', - ]; - - $keys[$tag['name']] = $match[0][1]; - } - } else { - // 标签头压入栈 - $right[] = [ - 'name' => $match[2][0], - 'offset' => $match[0][1], - 'tag' => $match[0][0], - ]; - } - } - - unset($right, $matches); - - if ($sort) { - // 按block标签结束符在模板中的位置排序 - array_multisort($keys, $result); - } - } - - return $result; - } - - /** - * 搜索模板页面中包含的TagLib库 - * 并返回列表 - * @access private - * @param string $content 模板内容 - * @return array|null - */ - private function getIncludeTagLib(&$content) - { - // 搜索是否有TagLib标签 - if (preg_match($this->getRegex('taglib'), $content, $matches)) { - // 替换TagLib标签 - $content = str_replace($matches[0], '', $content); - - return explode(',', $matches['name']); - } - } - - /** - * TagLib库解析 - * @access public - * @param string $tagLib 要解析的标签库 - * @param string $content 要解析的模板内容 - * @param boolean $hide 是否隐藏标签库前缀 - * @return void - */ - public function parseTagLib($tagLib, &$content, $hide = false) - { - if (false !== strpos($tagLib, '\\')) { - // 支持指定标签库的命名空间 - $className = $tagLib; - $tagLib = substr($tagLib, strrpos($tagLib, '\\') + 1); - } else { - $className = '\\think\\template\\taglib\\' . ucwords($tagLib); - } - - $tLib = new $className($this); - - $tLib->parseTag($content, $hide ? '' : $tagLib); - } - - /** - * 分析标签属性 - * @access public - * @param string $str 属性字符串 - * @param string $name 不为空时返回指定的属性名 - * @return array - */ - public function parseAttr($str, $name = null) - { - $regex = '/\s+(?>(?P[\w-]+)\s*)=(?>\s*)([\"\'])(?P(?:(?!\\2).)*)\\2/is'; - $array = []; - - if (preg_match_all($regex, $str, $matches, PREG_SET_ORDER)) { - foreach ($matches as $match) { - $array[$match['name']] = $match['value']; - } - unset($matches); - } - - if (!empty($name) && isset($array[$name])) { - return $array[$name]; - } - - return $array; - } - - /** - * 模板标签解析 - * 格式: {TagName:args [|content] } - * @access private - * @param string $content 要解析的模板内容 - * @return void - */ - private function parseTag(&$content) - { - $regex = $this->getRegex('tag'); - - if (preg_match_all($regex, $content, $matches, PREG_SET_ORDER)) { - foreach ($matches as $match) { - $str = stripslashes($match[1]); - $flag = substr($str, 0, 1); - - switch ($flag) { - case '$': - // 解析模板变量 格式 {$varName} - // 是否带有?号 - if (false !== $pos = strpos($str, '?')) { - $array = preg_split('/([!=]={1,2}|(?<]={0,1})/', substr($str, 0, $pos), 2, PREG_SPLIT_DELIM_CAPTURE); - $name = $array[0]; - - $this->parseVar($name); - //$this->parseVarFunction($name); - - $str = trim(substr($str, $pos + 1)); - $this->parseVar($str); - $first = substr($str, 0, 1); - - if (strpos($name, ')')) { - // $name为对象或是自动识别,或者含有函数 - if (isset($array[1])) { - $this->parseVar($array[2]); - $name .= $array[1] . $array[2]; - } - - switch ($first) { - case '?': - $this->parseVarFunction($name); - $str = ''; - break; - case '=': - $str = ''; - break; - default: - $str = ''; - } - } else { - if (isset($array[1])) { - $express = true; - $this->parseVar($array[2]); - $express = $name . $array[1] . $array[2]; - } else { - $express = false; - } - - if (in_array($first, ['?', '=', ':'])) { - $str = trim(substr($str, 1)); - if ('$' == substr($str, 0, 1)) { - $str = $this->parseVarFunction($str); - } - } - - // $name为数组 - switch ($first) { - case '?': - // {$varname??'xxx'} $varname有定义则输出$varname,否则输出xxx - $str = 'parseVarFunction($name) . ' : ' . $str . '; ?>'; - break; - case '=': - // {$varname?='xxx'} $varname为真时才输出xxx - $str = ''; - break; - case ':': - // {$varname?:'xxx'} $varname为真时输出$varname,否则输出xxx - $str = 'parseVarFunction($name) . ' : ' . $str . '; ?>'; - break; - default: - if (strpos($str, ':')) { - // {$varname ? 'a' : 'b'} $varname为真时输出a,否则输出b - $array = explode(':', $str, 2); - - $array[0] = '$' == substr(trim($array[0]), 0, 1) ? $this->parseVarFunction($array[0]) : $array[0]; - $array[1] = '$' == substr(trim($array[1]), 0, 1) ? $this->parseVarFunction($array[1]) : $array[1]; - - $str = implode(' : ', $array); - } - $str = ''; - } - } - } else { - $this->parseVar($str); - $this->parseVarFunction($str); - $str = ''; - } - break; - case ':': - // 输出某个函数的结果 - $str = substr($str, 1); - $this->parseVar($str); - $str = ''; - break; - case '~': - // 执行某个函数 - $str = substr($str, 1); - $this->parseVar($str); - $str = ''; - break; - case '-': - case '+': - // 输出计算 - $this->parseVar($str); - $str = ''; - break; - case '/': - // 注释标签 - $flag2 = substr($str, 1, 1); - if ('/' == $flag2 || ('*' == $flag2 && substr(rtrim($str), -2) == '*/')) { - $str = ''; - } - break; - default: - // 未识别的标签直接返回 - $str = $this->config['tpl_begin'] . $str . $this->config['tpl_end']; - break; - } - - $content = str_replace($match[0], $str, $content); - } - - unset($matches); - } - } - - /** - * 模板变量解析,支持使用函数 - * 格式: {$varname|function1|function2=arg1,arg2} - * @access public - * @param string $varStr 变量数据 - * @return void - */ - public function parseVar(&$varStr) - { - $varStr = trim($varStr); - - if (preg_match_all('/\$[a-zA-Z_](?>\w*)(?:[:\.][0-9a-zA-Z_](?>\w*))+/', $varStr, $matches, PREG_OFFSET_CAPTURE)) { - static $_varParseList = []; - - while ($matches[0]) { - $match = array_pop($matches[0]); - - //如果已经解析过该变量字串,则直接返回变量值 - if (isset($_varParseList[$match[0]])) { - $parseStr = $_varParseList[$match[0]]; - } else { - if (strpos($match[0], '.')) { - $vars = explode('.', $match[0]); - $first = array_shift($vars); - - if ('$Think' == $first) { - // 所有以Think.打头的以特殊变量对待 无需模板赋值就可以输出 - $parseStr = $this->parseThinkVar($vars); - } elseif ('$Request' == $first) { - // 获取Request请求对象参数 - $method = array_shift($vars); - if (!empty($vars)) { - $params = implode('.', $vars); - if ('true' != $params) { - $params = '\'' . $params . '\''; - } - } else { - $params = ''; - } - - $parseStr = 'app(\'request\')->' . $method . '(' . $params . ')'; - } else { - switch ($this->config['tpl_var_identify']) { - case 'array': // 识别为数组 - $parseStr = $first . '[\'' . implode('\'][\'', $vars) . '\']'; - break; - case 'obj': // 识别为对象 - $parseStr = $first . '->' . implode('->', $vars); - break; - default: // 自动判断数组或对象 - $parseStr = '(is_array(' . $first . ')?' . $first . '[\'' . implode('\'][\'', $vars) . '\']:' . $first . '->' . implode('->', $vars) . ')'; - } - } - } else { - $parseStr = str_replace(':', '->', $match[0]); - } - - $_varParseList[$match[0]] = $parseStr; - } - - $varStr = substr_replace($varStr, $parseStr, $match[1], strlen($match[0])); - } - unset($matches); - } - } - - /** - * 对模板中使用了函数的变量进行解析 - * 格式 {$varname|function1|function2=arg1,arg2} - * @access public - * @param string $varStr 变量字符串 - * @param bool $autoescape 自动转义 - * @return void - */ - public function parseVarFunction(&$varStr, $autoescape = true) - { - if (!$autoescape && false === strpos($varStr, '|')) { - return $varStr; - } elseif ($autoescape && !preg_match('/\|(\s)?raw(\||\s)?/i', $varStr)) { - $varStr .= '|' . $this->config['default_filter']; - } - - static $_varFunctionList = []; - - $_key = md5($varStr); - - //如果已经解析过该变量字串,则直接返回变量值 - if (isset($_varFunctionList[$_key])) { - $varStr = $_varFunctionList[$_key]; - } else { - $varArray = explode('|', $varStr); - - // 取得变量名称 - $name = trim(array_shift($varArray)); - - // 对变量使用函数 - $length = count($varArray); - - // 取得模板禁止使用函数列表 - $template_deny_funs = explode(',', $this->config['tpl_deny_func_list']); - - for ($i = 0; $i < $length; $i++) { - $args = explode('=', $varArray[$i], 2); - - // 模板函数过滤 - $fun = trim($args[0]); - if (in_array($fun, $template_deny_funs)) { - continue; - } - - switch (strtolower($fun)) { - case 'raw': - continue; - case 'date': - $name = 'date(' . $args[1] . ',!is_numeric(' . $name . ')? strtotime(' . $name . ') : ' . $name . ')'; - break; - case 'first': - $name = 'current(' . $name . ')'; - break; - case 'last': - $name = 'end(' . $name . ')'; - break; - case 'upper': - $name = 'strtoupper(' . $name . ')'; - break; - case 'lower': - $name = 'strtolower(' . $name . ')'; - break; - case 'format': - $name = 'sprintf(' . $args[1] . ',' . $name . ')'; - break; - case 'default': // 特殊模板函数 - if (false === strpos($name, '(')) { - $name = '(isset(' . $name . ') && (' . $name . ' !== \'\')?' . $name . ':' . $args[1] . ')'; - } else { - $name = '(' . $name . ' ?: ' . $args[1] . ')'; - } - break; - default: // 通用模板函数 - if (isset($args[1])) { - if (strstr($args[1], '###')) { - $args[1] = str_replace('###', $name, $args[1]); - $name = "$fun($args[1])"; - } else { - $name = "$fun($name,$args[1])"; - } - } else { - if (!empty($args[0])) { - $name = "$fun($name)"; - } - } - } - } - - $_varFunctionList[$_key] = $name; - $varStr = $name; - } - return $varStr; - } - - /** - * 特殊模板变量解析 - * 格式 以 $Think. 打头的变量属于特殊模板变量 - * @access public - * @param array $vars 变量数组 - * @return string - */ - public function parseThinkVar($vars) - { - $type = strtoupper(trim(array_shift($vars))); - $param = implode('.', $vars); - - if ($vars) { - switch ($type) { - case 'SERVER': - $parseStr = 'app(\'request\')->server(\'' . $param . '\')'; - break; - case 'GET': - $parseStr = 'app(\'request\')->get(\'' . $param . '\')'; - break; - case 'POST': - $parseStr = 'app(\'request\')->post(\'' . $param . '\')'; - break; - case 'COOKIE': - $parseStr = 'app(\'cookie\')->get(\'' . $param . '\')'; - break; - case 'SESSION': - $parseStr = 'app(\'session\')->get(\'' . $param . '\')'; - break; - case 'ENV': - $parseStr = 'app(\'request\')->env(\'' . $param . '\')'; - break; - case 'REQUEST': - $parseStr = 'app(\'request\')->request(\'' . $param . '\')'; - break; - case 'CONST': - $parseStr = strtoupper($param); - break; - case 'LANG': - $parseStr = 'app(\'lang\')->get(\'' . $param . '\')'; - break; - case 'CONFIG': - $parseStr = 'app(\'config\')->get(\'' . $param . '\')'; - break; - default: - $parseStr = '\'\''; - break; - } - } else { - switch ($type) { - case 'NOW': - $parseStr = "date('Y-m-d g:i a',time())"; - break; - case 'VERSION': - $parseStr = 'app()->version()'; - break; - case 'LDELIM': - $parseStr = '\'' . ltrim($this->config['tpl_begin'], '\\') . '\''; - break; - case 'RDELIM': - $parseStr = '\'' . ltrim($this->config['tpl_end'], '\\') . '\''; - break; - default: - if (defined($type)) { - $parseStr = $type; - } else { - $parseStr = ''; - } - } - } - - return $parseStr; - } - - /** - * 分析加载的模板文件并读取内容 支持多个模板文件读取 - * @access private - * @param string $templateName 模板文件名 - * @return string - */ - private function parseTemplateName($templateName) - { - $array = explode(',', $templateName); - $parseStr = ''; - - foreach ($array as $templateName) { - if (empty($templateName)) { - continue; - } - - if (0 === strpos($templateName, '$')) { - //支持加载变量文件名 - $templateName = $this->get(substr($templateName, 1)); - } - - $template = $this->parseTemplateFile($templateName); - - if ($template) { - // 获取模板文件内容 - $parseStr .= file_get_contents($template); - } - } - - return $parseStr; - } - - /** - * 解析模板文件名 - * @access private - * @param string $template 文件名 - * @return string|false - */ - private function parseTemplateFile($template) - { - if ('' == pathinfo($template, PATHINFO_EXTENSION)) { - if (strpos($template, '@')) { - list($module, $template) = explode('@', $template); - } - - if (0 !== strpos($template, '/')) { - $template = str_replace(['/', ':'], $this->config['view_depr'], $template); - } else { - $template = str_replace(['/', ':'], $this->config['view_depr'], substr($template, 1)); - } - - if ($this->config['view_base']) { - $module = isset($module) ? $module : Container::get('request')->module(); - $path = $this->config['view_base'] . ($module ? $module . DIRECTORY_SEPARATOR : ''); - } else { - $path = isset($module) ? Container::get('app')->getAppPath() . $module . DIRECTORY_SEPARATOR . basename($this->config['view_path']) . DIRECTORY_SEPARATOR : $this->config['view_path']; - } - - $template = $path . $template . '.' . ltrim($this->config['view_suffix'], '.'); - } - - if (is_file($template)) { - // 记录模板文件的更新时间 - $this->includeFile[$template] = filemtime($template); - - return $template; - } - - throw new TemplateNotFoundException('template not exists:' . $template, $template); - } - - /** - * 按标签生成正则 - * @access private - * @param string $tagName 标签名 - * @return string - */ - private function getRegex($tagName) - { - $regex = ''; - if ('tag' == $tagName) { - $begin = $this->config['tpl_begin']; - $end = $this->config['tpl_end']; - - if (strlen(ltrim($begin, '\\')) == 1 && strlen(ltrim($end, '\\')) == 1) { - $regex = $begin . '((?:[\$]{1,2}[a-wA-w_]|[\:\~][\$a-wA-w_]|[+]{2}[\$][a-wA-w_]|[-]{2}[\$][a-wA-w_]|\/[\*\/])(?>[^' . $end . ']*))' . $end; - } else { - $regex = $begin . '((?:[\$]{1,2}[a-wA-w_]|[\:\~][\$a-wA-w_]|[+]{2}[\$][a-wA-w_]|[-]{2}[\$][a-wA-w_]|\/[\*\/])(?>(?:(?!' . $end . ').)*))' . $end; - } - } else { - $begin = $this->config['taglib_begin']; - $end = $this->config['taglib_end']; - $single = strlen(ltrim($begin, '\\')) == 1 && strlen(ltrim($end, '\\')) == 1 ? true : false; - - switch ($tagName) { - case 'block': - if ($single) { - $regex = $begin . '(?:' . $tagName . '\b(?>(?:(?!name=).)*)\bname=([\'\"])(?P[\$\w\-\/\.]+)\\1(?>[^' . $end . ']*)|\/' . $tagName . ')' . $end; - } else { - $regex = $begin . '(?:' . $tagName . '\b(?>(?:(?!name=).)*)\bname=([\'\"])(?P[\$\w\-\/\.]+)\\1(?>(?:(?!' . $end . ').)*)|\/' . $tagName . ')' . $end; - } - break; - case 'literal': - if ($single) { - $regex = '(' . $begin . $tagName . '\b(?>[^' . $end . ']*)' . $end . ')'; - $regex .= '(?:(?>[^' . $begin . ']*)(?>(?!' . $begin . '(?>' . $tagName . '\b[^' . $end . ']*|\/' . $tagName . ')' . $end . ')' . $begin . '[^' . $begin . ']*)*)'; - $regex .= '(' . $begin . '\/' . $tagName . $end . ')'; - } else { - $regex = '(' . $begin . $tagName . '\b(?>(?:(?!' . $end . ').)*)' . $end . ')'; - $regex .= '(?:(?>(?:(?!' . $begin . ').)*)(?>(?!' . $begin . '(?>' . $tagName . '\b(?>(?:(?!' . $end . ').)*)|\/' . $tagName . ')' . $end . ')' . $begin . '(?>(?:(?!' . $begin . ').)*))*)'; - $regex .= '(' . $begin . '\/' . $tagName . $end . ')'; - } - break; - case 'restoreliteral': - $regex = ''; - break; - case 'include': - $name = 'file'; - case 'taglib': - case 'layout': - case 'extend': - if (empty($name)) { - $name = 'name'; - } - if ($single) { - $regex = $begin . $tagName . '\b(?>(?:(?!' . $name . '=).)*)\b' . $name . '=([\'\"])(?P[\$\w\-\/\.\:@,\\\\]+)\\1(?>[^' . $end . ']*)' . $end; - } else { - $regex = $begin . $tagName . '\b(?>(?:(?!' . $name . '=).)*)\b' . $name . '=([\'\"])(?P[\$\w\-\/\.\:@,\\\\]+)\\1(?>(?:(?!' . $end . ').)*)' . $end; - } - break; - } - } - - return '/' . $regex . '/is'; - } -} diff --git a/thinkphp/library/think/Url.php b/thinkphp/library/think/Url.php deleted file mode 100644 index 1e4dfd7d2..000000000 --- a/thinkphp/library/think/Url.php +++ /dev/null @@ -1,357 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think; - -class Url -{ - /** - * ROOT地址 - * @var string - */ - protected $root; - - /** - * 绑定检查 - * @var bool - */ - protected $bindCheck; - - /** - * 应用对象 - * @var App - */ - protected $app; - - public function __construct(App $app) - { - $this->app = $app; - - if (is_file($app->getRuntimePath() . 'route.php')) { - // 读取路由映射文件 - $app['route']->setName(include $app->getRuntimePath() . 'route.php'); - } - } - - /** - * URL生成 支持路由反射 - * @access public - * @param string $url 路由地址 - * @param string|array $vars 参数(支持数组和字符串)a=val&b=val2... ['a'=>'val1', 'b'=>'val2'] - * @param string|bool $suffix 伪静态后缀,默认为true表示获取配置值 - * @param boolean|string $domain 是否显示域名 或者直接传入域名 - * @return string - */ - public function build($url = '', $vars = '', $suffix = true, $domain = false) - { - // 解析URL - if (0 === strpos($url, '[') && $pos = strpos($url, ']')) { - // [name] 表示使用路由命名标识生成URL - $name = substr($url, 1, $pos - 1); - $url = 'name' . substr($url, $pos + 1); - } - - if (false === strpos($url, '://') && 0 !== strpos($url, '/')) { - $info = parse_url($url); - $url = !empty($info['path']) ? $info['path'] : ''; - - if (isset($info['fragment'])) { - // 解析锚点 - $anchor = $info['fragment']; - - if (false !== strpos($anchor, '?')) { - // 解析参数 - list($anchor, $info['query']) = explode('?', $anchor, 2); - } - - if (false !== strpos($anchor, '@')) { - // 解析域名 - list($anchor, $domain) = explode('@', $anchor, 2); - } - } elseif (strpos($url, '@') && false === strpos($url, '\\')) { - // 解析域名 - list($url, $domain) = explode('@', $url, 2); - } - } - - // 解析参数 - if (is_string($vars)) { - // aaa=1&bbb=2 转换成数组 - parse_str($vars, $vars); - } - - if ($url) { - $rule = $this->app['route']->getName(isset($name) ? $name : $url . (isset($info['query']) ? '?' . $info['query'] : '')); - - if (is_null($rule) && isset($info['query'])) { - $rule = $this->app['route']->getName($url); - // 解析地址里面参数 合并到vars - parse_str($info['query'], $params); - $vars = array_merge($params, $vars); - unset($info['query']); - } - } - - if (!empty($rule) && $match = $this->getRuleUrl($rule, $vars)) { - // 匹配路由命名标识 - $url = $match[0]; - - if (!empty($match[1])) { - $host = $this->app['config']->get('app_host') ?: $this->app['request']->host(); - if ($domain || $match[1] != $host) { - $domain = $match[1]; - } - } - - if (!is_null($match[2])) { - $suffix = $match[2]; - } - } elseif (!empty($rule) && isset($name)) { - throw new \InvalidArgumentException('route name not exists:' . $name); - } else { - // 检查别名路由 - $alias = $this->app['route']->getAlias(); - $matchAlias = false; - - if ($alias) { - // 别名路由解析 - foreach ($alias as $key => $item) { - $val = $item->getRoute(); - - if (0 === strpos($url, $val)) { - $url = $key . substr($url, strlen($val)); - $matchAlias = true; - break; - } - } - } - - if (!$matchAlias) { - // 路由标识不存在 直接解析 - $url = $this->parseUrl($url); - } - - if (isset($info['query'])) { - // 解析地址里面参数 合并到vars - parse_str($info['query'], $params); - $vars = array_merge($params, $vars); - } - } - - // 检测URL绑定 - if (!$this->bindCheck) { - $bind = $this->app['route']->getBind($domain ?: null); - - if ($bind && 0 === strpos($url, $bind)) { - $url = substr($url, strlen($bind) + 1); - } - - } - // 还原URL分隔符 - $depr = $this->app['config']->get('pathinfo_depr'); - $url = str_replace('/', $depr, $url); - - // URL后缀 - if ('/' == substr($url, -1) || '' == $url) { - $suffix = ''; - } else { - $suffix = $this->parseSuffix($suffix); - } - - // 锚点 - $anchor = !empty($anchor) ? '#' . $anchor : ''; - - // 参数组装 - if (!empty($vars)) { - // 添加参数 - if ($this->app['config']->get('url_common_param')) { - $vars = http_build_query($vars); - $url .= $suffix . '?' . $vars . $anchor; - } else { - $paramType = $this->app['config']->get('url_param_type'); - - foreach ($vars as $var => $val) { - if ('' !== trim($val)) { - if ($paramType) { - $url .= $depr . urlencode($val); - } else { - $url .= $depr . $var . $depr . urlencode($val); - } - } - } - - $url .= $suffix . $anchor; - } - } else { - $url .= $suffix . $anchor; - } - - // 检测域名 - $domain = $this->parseDomain($url, $domain); - - // URL组装 - $url = $domain . rtrim($this->root ?: $this->app['request']->root(), '/') . '/' . ltrim($url, '/'); - - $this->bindCheck = false; - - return $url; - } - - // 直接解析URL地址 - protected function parseUrl($url) - { - $request = $this->app['request']; - - if (0 === strpos($url, '/')) { - // 直接作为路由地址解析 - $url = substr($url, 1); - } elseif (false !== strpos($url, '\\')) { - // 解析到类 - $url = ltrim(str_replace('\\', '/', $url), '/'); - } elseif (0 === strpos($url, '@')) { - // 解析到控制器 - $url = substr($url, 1); - } else { - // 解析到 模块/控制器/操作 - $module = $request->module(); - $module = $module ? $module . '/' : ''; - $controller = $request->controller(); - - if ('' == $url) { - $action = $request->action(); - } else { - $path = explode('/', $url); - $action = array_pop($path); - $controller = empty($path) ? $controller : array_pop($path); - $module = empty($path) ? $module : array_pop($path) . '/'; - } - - if ($this->app['config']->get('url_convert')) { - $action = strtolower($action); - $controller = Loader::parseName($controller); - } - - $url = $module . $controller . '/' . $action; - } - - return $url; - } - - // 检测域名 - protected function parseDomain(&$url, $domain) - { - if (!$domain) { - return ''; - } - - $rootDomain = $this->app['request']->rootDomain(); - if (true === $domain) { - - // 自动判断域名 - $domain = $this->app['config']->get('app_host') ?: $this->app['request']->host(); - - $domains = $this->app['route']->getDomains(); - - if ($domains) { - $route_domain = array_keys($domains); - foreach ($route_domain as $domain_prefix) { - if (0 === strpos($domain_prefix, '*.') && strpos($domain, ltrim($domain_prefix, '*.')) !== false) { - foreach ($domains as $key => $rule) { - $rule = is_array($rule) ? $rule[0] : $rule; - if (is_string($rule) && false === strpos($key, '*') && 0 === strpos($url, $rule)) { - $url = ltrim($url, $rule); - $domain = $key; - - // 生成对应子域名 - if (!empty($rootDomain)) { - $domain .= $rootDomain; - } - break; - } elseif (false !== strpos($key, '*')) { - if (!empty($rootDomain)) { - $domain .= $rootDomain; - } - - break; - } - } - } - } - } - } elseif (!strpos($domain, '.')) { - $domain .= '.' . $rootDomain; - } - - if (false !== strpos($domain, '://')) { - $scheme = ''; - } else { - $scheme = $this->app['request']->isSsl() || $this->app['config']->get('is_https') ? 'https://' : 'http://'; - - } - - return $scheme . $domain; - } - - // 解析URL后缀 - protected function parseSuffix($suffix) - { - if ($suffix) { - $suffix = true === $suffix ? $this->app['config']->get('url_html_suffix') : $suffix; - - if ($pos = strpos($suffix, '|')) { - $suffix = substr($suffix, 0, $pos); - } - } - - return (empty($suffix) || 0 === strpos($suffix, '.')) ? $suffix : '.' . $suffix; - } - - // 匹配路由地址 - public function getRuleUrl($rule, &$vars = []) - { - foreach ($rule as $item) { - list($url, $pattern, $domain, $suffix) = $item; - if (empty($pattern)) { - return [rtrim($url, '?/-'), $domain, $suffix]; - } - - $type = $this->app['config']->get('url_common_param'); - - foreach ($pattern as $key => $val) { - if (isset($vars[$key])) { - $url = str_replace(['[:' . $key . ']', '<' . $key . '?>', ':' . $key, '<' . $key . '>'], $type ? $vars[$key] : urlencode($vars[$key]), $url); - unset($vars[$key]); - $url = str_replace(['/?', '-?'], ['/', '-'], $url); - $result = [rtrim($url, '?/-'), $domain, $suffix]; - } elseif (2 == $val) { - $url = str_replace(['/[:' . $key . ']', '[:' . $key . ']', '<' . $key . '?>'], '', $url); - $url = str_replace(['/?', '-?'], ['/', '-'], $url); - $result = [rtrim($url, '?/-'), $domain, $suffix]; - } else { - break; - } - } - - if (isset($result)) { - return $result; - } - } - - return false; - } - - // 指定当前生成URL地址的root - public function root($root) - { - $this->root = $root; - $this->app['request']->root($root); - } -} diff --git a/thinkphp/library/think/Validate.php b/thinkphp/library/think/Validate.php deleted file mode 100644 index bb1700459..000000000 --- a/thinkphp/library/think/Validate.php +++ /dev/null @@ -1,1487 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think; - -use think\exception\ClassNotFoundException; -use think\validate\ValidateRule; - -class Validate -{ - - /** - * 自定义验证类型 - * @var array - */ - protected static $type = []; - - /** - * 验证类型别名 - * @var array - */ - protected $alias = [ - '>' => 'gt', '>=' => 'egt', '<' => 'lt', '<=' => 'elt', '=' => 'eq', 'same' => 'eq', - ]; - - /** - * 当前验证规则 - * @var array - */ - protected $rule = []; - - /** - * 验证提示信息 - * @var array - */ - protected $message = []; - - /** - * 验证字段描述 - * @var array - */ - protected $field = []; - - /** - * 默认规则提示 - * @var array - */ - protected static $typeMsg = [ - 'require' => ':attribute require', - 'must' => ':attribute must', - 'number' => ':attribute must be numeric', - 'integer' => ':attribute must be integer', - 'float' => ':attribute must be float', - 'boolean' => ':attribute must be bool', - 'email' => ':attribute not a valid email address', - 'mobile' => ':attribute not a valid mobile', - 'array' => ':attribute must be a array', - 'accepted' => ':attribute must be yes,on or 1', - 'date' => ':attribute not a valid datetime', - 'file' => ':attribute not a valid file', - 'image' => ':attribute not a valid image', - 'alpha' => ':attribute must be alpha', - 'alphaNum' => ':attribute must be alpha-numeric', - 'alphaDash' => ':attribute must be alpha-numeric, dash, underscore', - 'activeUrl' => ':attribute not a valid domain or ip', - 'chs' => ':attribute must be chinese', - 'chsAlpha' => ':attribute must be chinese or alpha', - 'chsAlphaNum' => ':attribute must be chinese,alpha-numeric', - 'chsDash' => ':attribute must be chinese,alpha-numeric,underscore, dash', - 'url' => ':attribute not a valid url', - 'ip' => ':attribute not a valid ip', - 'dateFormat' => ':attribute must be dateFormat of :rule', - 'in' => ':attribute must be in :rule', - 'notIn' => ':attribute be notin :rule', - 'between' => ':attribute must between :1 - :2', - 'notBetween' => ':attribute not between :1 - :2', - 'length' => 'size of :attribute must be :rule', - 'max' => 'max size of :attribute must be :rule', - 'min' => 'min size of :attribute must be :rule', - 'after' => ':attribute cannot be less than :rule', - 'before' => ':attribute cannot exceed :rule', - 'expire' => ':attribute not within :rule', - 'allowIp' => 'access IP is not allowed', - 'denyIp' => 'access IP denied', - 'confirm' => ':attribute out of accord with :2', - 'different' => ':attribute cannot be same with :2', - 'egt' => ':attribute must greater than or equal :rule', - 'gt' => ':attribute must greater than :rule', - 'elt' => ':attribute must less than or equal :rule', - 'lt' => ':attribute must less than :rule', - 'eq' => ':attribute must equal :rule', - 'unique' => ':attribute has exists', - 'regex' => ':attribute not conform to the rules', - 'method' => 'invalid Request method', - 'token' => 'invalid token', - 'fileSize' => 'filesize not match', - 'fileExt' => 'extensions to upload is not allowed', - 'fileMime' => 'mimetype to upload is not allowed', - ]; - - /** - * 当前验证场景 - * @var array - */ - protected $currentScene = null; - - /** - * 内置正则验证规则 - * @var array - */ - protected $regex = [ - 'alpha' => '/^[A-Za-z]+$/', - 'alphaNum' => '/^[A-Za-z0-9]+$/', - 'alphaDash' => '/^[A-Za-z0-9\-\_]+$/', - 'chs' => '/^[\x{4e00}-\x{9fa5}]+$/u', - 'chsAlpha' => '/^[\x{4e00}-\x{9fa5}a-zA-Z]+$/u', - 'chsAlphaNum' => '/^[\x{4e00}-\x{9fa5}a-zA-Z0-9]+$/u', - 'chsDash' => '/^[\x{4e00}-\x{9fa5}a-zA-Z0-9\_\-]+$/u', - 'mobile' => '/^1[3-9][0-9]\d{8}$/', - 'idCard' => '/(^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$)|(^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{2}$)/', - 'zip' => '/\d{6}/', - ]; - - /** - * Filter_var 规则 - * @var array - */ - protected $filter = [ - 'email' => FILTER_VALIDATE_EMAIL, - 'ip' => [FILTER_VALIDATE_IP, FILTER_FLAG_IPV4 | FILTER_FLAG_IPV6], - 'integer' => FILTER_VALIDATE_INT, - 'url' => FILTER_VALIDATE_URL, - 'macAddr' => FILTER_VALIDATE_MAC, - 'float' => FILTER_VALIDATE_FLOAT, - ]; - - /** - * 验证场景定义 - * @var array - */ - protected $scene = []; - - /** - * 验证失败错误信息 - * @var array - */ - protected $error = []; - - /** - * 是否批量验证 - * @var bool - */ - protected $batch = false; - - /** - * 场景需要验证的规则 - * @var array - */ - protected $only = []; - - /** - * 场景需要移除的验证规则 - * @var array - */ - protected $remove = []; - - /** - * 场景需要追加的验证规则 - * @var array - */ - protected $append = []; - - /** - * 架构函数 - * @access public - * @param array $rules 验证规则 - * @param array $message 验证提示信息 - * @param array $field 验证字段描述信息 - */ - public function __construct(array $rules = [], array $message = [], array $field = []) - { - $this->rule = $rules + $this->rule; - $this->message = array_merge($this->message, $message); - $this->field = array_merge($this->field, $field); - } - - /** - * 创建一个验证器类 - * @access public - * @param array $rules 验证规则 - * @param array $message 验证提示信息 - * @param array $field 验证字段描述信息 - * @return Validate - */ - public static function make(array $rules = [], array $message = [], array $field = []) - { - return new self($rules, $message, $field); - } - - /** - * 添加字段验证规则 - * @access protected - * @param string|array $name 字段名称或者规则数组 - * @param mixed $rule 验证规则或者字段描述信息 - * @return $this - */ - public function rule($name, $rule = '') - { - if (is_array($name)) { - $this->rule = $name + $this->rule; - if (is_array($rule)) { - $this->field = array_merge($this->field, $rule); - } - } else { - $this->rule[$name] = $rule; - } - - return $this; - } - - /** - * 注册扩展验证(类型)规则 - * @access public - * @param string $type 验证规则类型 - * @param mixed $callback callback方法(或闭包) - * @return void - */ - public static function extend($type, $callback = null) - { - if (is_array($type)) { - self::$type = array_merge(self::$type, $type); - } else { - self::$type[$type] = $callback; - } - } - - /** - * 设置验证规则的默认提示信息 - * @access public - * @param string|array $type 验证规则类型名称或者数组 - * @param string $msg 验证提示信息 - * @return void - */ - public static function setTypeMsg($type, $msg = null) - { - if (is_array($type)) { - self::$typeMsg = array_merge(self::$typeMsg, $type); - } else { - self::$typeMsg[$type] = $msg; - } - } - - /** - * 设置提示信息 - * @access public - * @param string|array $name 字段名称 - * @param string $message 提示信息 - * @return Validate - */ - public function message($name, $message = '') - { - if (is_array($name)) { - $this->message = array_merge($this->message, $name); - } else { - $this->message[$name] = $message; - } - - return $this; - } - - /** - * 设置验证场景 - * @access public - * @param string $name 场景名 - * @return $this - */ - public function scene($name) - { - // 设置当前场景 - $this->currentScene = $name; - - return $this; - } - - /** - * 判断是否存在某个验证场景 - * @access public - * @param string $name 场景名 - * @return bool - */ - public function hasScene($name) - { - return isset($this->scene[$name]) || method_exists($this, 'scene' . $name); - } - - /** - * 设置批量验证 - * @access public - * @param bool $batch 是否批量验证 - * @return $this - */ - public function batch($batch = true) - { - $this->batch = $batch; - - return $this; - } - - /** - * 指定需要验证的字段列表 - * @access public - * @param array $fields 字段名 - * @return $this - */ - public function only($fields) - { - $this->only = $fields; - - return $this; - } - - /** - * 移除某个字段的验证规则 - * @access public - * @param string|array $field 字段名 - * @param mixed $rule 验证规则 true 移除所有规则 - * @return $this - */ - public function remove($field, $rule = true) - { - if (is_array($field)) { - foreach ($field as $key => $rule) { - if (is_int($key)) { - $this->remove($rule); - } else { - $this->remove($key, $rule); - } - } - } else { - if (is_string($rule)) { - $rule = explode('|', $rule); - } - - $this->remove[$field] = $rule; - } - - return $this; - } - - /** - * 追加某个字段的验证规则 - * @access public - * @param string|array $field 字段名 - * @param mixed $rule 验证规则 - * @return $this - */ - public function append($field, $rule = null) - { - if (is_array($field)) { - foreach ($field as $key => $rule) { - $this->append($key, $rule); - } - } else { - if (is_string($rule)) { - $rule = explode('|', $rule); - } - - $this->append[$field] = $rule; - } - - return $this; - } - - /** - * 数据自动验证 - * @access public - * @param array $data 数据 - * @param mixed $rules 验证规则 - * @param string $scene 验证场景 - * @return bool - */ - public function check($data, $rules = [], $scene = '') - { - $this->error = []; - - if (empty($rules)) { - // 读取验证规则 - $rules = $this->rule; - } - - // 获取场景定义 - $this->getScene($scene); - - foreach ($this->append as $key => $rule) { - if (!isset($rules[$key])) { - $rules[$key] = $rule; - } - } - - foreach ($rules as $key => $rule) { - // field => 'rule1|rule2...' field => ['rule1','rule2',...] - if (strpos($key, '|')) { - // 字段|描述 用于指定属性名称 - list($key, $title) = explode('|', $key); - } else { - $title = isset($this->field[$key]) ? $this->field[$key] : $key; - } - - // 场景检测 - if (!empty($this->only) && !in_array($key, $this->only)) { - continue; - } - - // 获取数据 支持二维数组 - $value = $this->getDataValue($data, $key); - - // 字段验证 - if ($rule instanceof \Closure) { - $result = call_user_func_array($rule, [$value, $data]); - } elseif ($rule instanceof ValidateRule) { - // 验证因子 - $result = $this->checkItem($key, $value, $rule->getRule(), $data, $rule->getTitle() ?: $title, $rule->getMsg()); - } else { - $result = $this->checkItem($key, $value, $rule, $data, $title); - } - - if (true !== $result) { - // 没有返回true 则表示验证失败 - if (!empty($this->batch)) { - // 批量验证 - if (is_array($result)) { - $this->error = array_merge($this->error, $result); - } else { - $this->error[$key] = $result; - } - } else { - $this->error = $result; - return false; - } - } - } - - return !empty($this->error) ? false : true; - } - - /** - * 根据验证规则验证数据 - * @access public - * @param mixed $value 字段值 - * @param mixed $rules 验证规则 - * @return bool - */ - public function checkRule($value, $rules) - { - if ($rules instanceof \Closure) { - return call_user_func_array($rules, [$value]); - } elseif ($rules instanceof ValidateRule) { - $rules = $rules->getRule(); - } elseif (is_string($rules)) { - $rules = explode('|', $rules); - } - - foreach ($rules as $key => $rule) { - if ($rule instanceof \Closure) { - $result = call_user_func_array($rule, [$value]); - } else { - // 判断验证类型 - list($type, $rule) = $this->getValidateType($key, $rule); - - $callback = isset(self::$type[$type]) ? self::$type[$type] : [$this, $type]; - - $result = call_user_func_array($callback, [$value, $rule]); - } - - if (true !== $result) { - return $result; - } - } - - return true; - } - - /** - * 验证单个字段规则 - * @access protected - * @param string $field 字段名 - * @param mixed $value 字段值 - * @param mixed $rules 验证规则 - * @param array $data 数据 - * @param string $title 字段描述 - * @param array $msg 提示信息 - * @return mixed - */ - protected function checkItem($field, $value, $rules, $data, $title = '', $msg = []) - { - if (isset($this->remove[$field]) && true === $this->remove[$field] && empty($this->append[$field])) { - // 字段已经移除 无需验证 - return true; - } - - // 支持多规则验证 require|in:a,b,c|... 或者 ['require','in'=>'a,b,c',...] - if (is_string($rules)) { - $rules = explode('|', $rules); - } - - if (isset($this->append[$field])) { - // 追加额外的验证规则 - $rules = array_merge($rules, $this->append[$field]); - } - - $i = 0; - foreach ($rules as $key => $rule) { - if ($rule instanceof \Closure) { - $result = call_user_func_array($rule, [$value, $data]); - $info = is_numeric($key) ? '' : $key; - } else { - // 判断验证类型 - list($type, $rule, $info) = $this->getValidateType($key, $rule); - - if (isset($this->append[$field]) && in_array($info, $this->append[$field])) { - - } elseif (isset($this->remove[$field]) && in_array($info, $this->remove[$field])) { - // 规则已经移除 - $i++; - continue; - } - - if ('must' == $info || 0 === strpos($info, 'require') || (!is_null($value) && '' !== $value)) { - // 验证类型 - $callback = isset(self::$type[$type]) ? self::$type[$type] : [$this, $type]; - // 验证数据 - $result = call_user_func_array($callback, [$value, $rule, $data, $field, $title]); - } else { - $result = true; - } - } - - if (false === $result) { - // 验证失败 返回错误信息 - if (!empty($msg[$i])) { - $message = $msg[$i]; - if (is_string($message) && strpos($message, '{%') === 0) { - $message = Lang::get(substr($message, 2, -1)); - } - } else { - $message = $this->getRuleMsg($field, $title, $info, $rule); - } - - return $message; - } elseif (true !== $result) { - // 返回自定义错误信息 - if (is_string($result) && false !== strpos($result, ':')) { - $result = str_replace( - [':attribute', ':rule'], - [$title, (string) $rule], - $result); - } - - return $result; - } - $i++; - } - - return $result; - } - - /** - * 获取当前验证类型及规则 - * @access public - * @param mixed $key - * @param mixed $rule - * @return array - */ - protected function getValidateType($key, $rule) - { - // 判断验证类型 - if (!is_numeric($key)) { - return [$key, $rule, $key]; - } - - if (strpos($rule, ':')) { - list($type, $rule) = explode(':', $rule, 2); - if (isset($this->alias[$type])) { - // 判断别名 - $type = $this->alias[$type]; - } - $info = $type; - } elseif (method_exists($this, $rule)) { - $type = $rule; - $info = $rule; - $rule = ''; - } else { - $type = 'is'; - $info = $rule; - } - - return [$type, $rule, $info]; - } - - /** - * 验证是否和某个字段的值一致 - * @access public - * @param mixed $value 字段值 - * @param mixed $rule 验证规则 - * @param array $data 数据 - * @param string $field 字段名 - * @return bool - */ - public function confirm($value, $rule, $data = [], $field = '') - { - if ('' == $rule) { - if (strpos($field, '_confirm')) { - $rule = strstr($field, '_confirm', true); - } else { - $rule = $field . '_confirm'; - } - } - - return $this->getDataValue($data, $rule) === $value; - } - - /** - * 验证是否和某个字段的值是否不同 - * @access public - * @param mixed $value 字段值 - * @param mixed $rule 验证规则 - * @param array $data 数据 - * @return bool - */ - public function different($value, $rule, $data = []) - { - return $this->getDataValue($data, $rule) != $value; - } - - /** - * 验证是否大于等于某个值 - * @access public - * @param mixed $value 字段值 - * @param mixed $rule 验证规则 - * @param array $data 数据 - * @return bool - */ - public function egt($value, $rule, $data = []) - { - return $value >= $this->getDataValue($data, $rule); - } - - /** - * 验证是否大于某个值 - * @access public - * @param mixed $value 字段值 - * @param mixed $rule 验证规则 - * @param array $data 数据 - * @return bool - */ - public function gt($value, $rule, $data) - { - return $value > $this->getDataValue($data, $rule); - } - - /** - * 验证是否小于等于某个值 - * @access public - * @param mixed $value 字段值 - * @param mixed $rule 验证规则 - * @param array $data 数据 - * @return bool - */ - public function elt($value, $rule, $data = []) - { - return $value <= $this->getDataValue($data, $rule); - } - - /** - * 验证是否小于某个值 - * @access public - * @param mixed $value 字段值 - * @param mixed $rule 验证规则 - * @param array $data 数据 - * @return bool - */ - public function lt($value, $rule, $data = []) - { - return $value < $this->getDataValue($data, $rule); - } - - /** - * 验证是否等于某个值 - * @access public - * @param mixed $value 字段值 - * @param mixed $rule 验证规则 - * @return bool - */ - public function eq($value, $rule) - { - return $value == $rule; - } - - /** - * 必须验证 - * @access public - * @param mixed $value 字段值 - * @param mixed $rule 验证规则 - * @return bool - */ - public function must($value, $rule = null) - { - return !empty($value) || '0' == $value; - } - - /** - * 验证字段值是否为有效格式 - * @access public - * @param mixed $value 字段值 - * @param string $rule 验证规则 - * @param array $data 验证数据 - * @return bool - */ - public function is($value, $rule, $data = []) - { - switch (Loader::parseName($rule, 1, false)) { - case 'require': - // 必须 - $result = !empty($value) || '0' == $value; - break; - case 'accepted': - // 接受 - $result = in_array($value, ['1', 'on', 'yes']); - break; - case 'date': - // 是否是一个有效日期 - $result = false !== strtotime($value); - break; - case 'activeUrl': - // 是否为有效的网址 - $result = checkdnsrr($value); - break; - case 'boolean': - case 'bool': - // 是否为布尔值 - $result = in_array($value, [true, false, 0, 1, '0', '1'], true); - break; - case 'number': - $result = ctype_digit((string) $value); - break; - case 'array': - // 是否为数组 - $result = is_array($value); - break; - case 'file': - $result = $value instanceof File; - break; - case 'image': - $result = $value instanceof File && in_array($this->getImageType($value->getRealPath()), [1, 2, 3, 6]); - break; - case 'token': - $result = $this->token($value, '__token__', $data); - break; - default: - if (isset(self::$type[$rule])) { - // 注册的验证规则 - $result = call_user_func_array(self::$type[$rule], [$value]); - } elseif (isset($this->filter[$rule])) { - // Filter_var验证规则 - $result = $this->filter($value, $this->filter[$rule]); - } else { - // 正则验证 - $result = $this->regex($value, $rule); - } - } - - return $result; - } - - // 判断图像类型 - protected function getImageType($image) - { - if (function_exists('exif_imagetype')) { - return exif_imagetype($image); - } - - try { - $info = getimagesize($image); - return $info ? $info[2] : false; - } catch (\Exception $e) { - return false; - } - } - - /** - * 验证是否为合格的域名或者IP 支持A,MX,NS,SOA,PTR,CNAME,AAAA,A6, SRV,NAPTR,TXT 或者 ANY类型 - * @access public - * @param mixed $value 字段值 - * @param mixed $rule 验证规则 - * @return bool - */ - public function activeUrl($value, $rule = 'MX') - { - if (!in_array($rule, ['A', 'MX', 'NS', 'SOA', 'PTR', 'CNAME', 'AAAA', 'A6', 'SRV', 'NAPTR', 'TXT', 'ANY'])) { - $rule = 'MX'; - } - - return checkdnsrr($value, $rule); - } - - /** - * 验证是否有效IP - * @access public - * @param mixed $value 字段值 - * @param mixed $rule 验证规则 ipv4 ipv6 - * @return bool - */ - public function ip($value, $rule = 'ipv4') - { - if (!in_array($rule, ['ipv4', 'ipv6'])) { - $rule = 'ipv4'; - } - - return $this->filter($value, [FILTER_VALIDATE_IP, 'ipv6' == $rule ? FILTER_FLAG_IPV6 : FILTER_FLAG_IPV4]); - } - - /** - * 验证上传文件后缀 - * @access public - * @param mixed $file 上传文件 - * @param mixed $rule 验证规则 - * @return bool - */ - public function fileExt($file, $rule) - { - if (is_array($file)) { - foreach ($file as $item) { - if (!($item instanceof File) || !$item->checkExt($rule)) { - return false; - } - } - return true; - } elseif ($file instanceof File) { - return $file->checkExt($rule); - } - - return false; - } - - /** - * 验证上传文件类型 - * @access public - * @param mixed $file 上传文件 - * @param mixed $rule 验证规则 - * @return bool - */ - public function fileMime($file, $rule) - { - if (is_array($file)) { - foreach ($file as $item) { - if (!($item instanceof File) || !$item->checkMime($rule)) { - return false; - } - } - return true; - } elseif ($file instanceof File) { - return $file->checkMime($rule); - } - - return false; - } - - /** - * 验证上传文件大小 - * @access public - * @param mixed $file 上传文件 - * @param mixed $rule 验证规则 - * @return bool - */ - public function fileSize($file, $rule) - { - if (is_array($file)) { - foreach ($file as $item) { - if (!($item instanceof File) || !$item->checkSize($rule)) { - return false; - } - } - return true; - } elseif ($file instanceof File) { - return $file->checkSize($rule); - } - - return false; - } - - /** - * 验证图片的宽高及类型 - * @access public - * @param mixed $file 上传文件 - * @param mixed $rule 验证规则 - * @return bool - */ - public function image($file, $rule) - { - if (!($file instanceof File)) { - return false; - } - - if ($rule) { - $rule = explode(',', $rule); - - list($width, $height, $type) = getimagesize($file->getRealPath()); - - if (isset($rule[2])) { - $imageType = strtolower($rule[2]); - - if ('jpeg' == $imageType) { - $imageType = 'jpg'; - } - - if (image_type_to_extension($type, false) != $imageType) { - return false; - } - } - - list($w, $h) = $rule; - - return $w == $width && $h == $height; - } - - return in_array($this->getImageType($file->getRealPath()), [1, 2, 3, 6]); - } - - /** - * 验证请求类型 - * @access public - * @param mixed $value 字段值 - * @param mixed $rule 验证规则 - * @return bool - */ - public function method($value, $rule) - { - $method = Container::get('request')->method(); - return strtoupper($rule) == $method; - } - - /** - * 验证时间和日期是否符合指定格式 - * @access public - * @param mixed $value 字段值 - * @param mixed $rule 验证规则 - * @return bool - */ - public function dateFormat($value, $rule) - { - $info = date_parse_from_format($rule, $value); - return 0 == $info['warning_count'] && 0 == $info['error_count']; - } - - /** - * 验证是否唯一 - * @access public - * @param mixed $value 字段值 - * @param mixed $rule 验证规则 格式:数据表,字段名,排除ID,主键名 - * @param array $data 数据 - * @param string $field 验证字段名 - * @return bool - */ - public function unique($value, $rule, $data, $field) - { - if (is_string($rule)) { - $rule = explode(',', $rule); - } - - if (false !== strpos($rule[0], '\\')) { - // 指定模型类 - $db = new $rule[0]; - } else { - try { - $db = Container::get('app')->model($rule[0]); - } catch (ClassNotFoundException $e) { - $db = Db::name($rule[0]); - } - } - - $key = isset($rule[1]) ? $rule[1] : $field; - - if (strpos($key, '^')) { - // 支持多个字段验证 - $fields = explode('^', $key); - foreach ($fields as $key) { - $map[] = [$key, '=', $data[$key]]; - } - } else { - $map[] = [$key, '=', $data[$field]]; - } - - $pk = !empty($rule[3]) ? $rule[3] : $db->getPk(); - - if (is_string($pk)) { - if (isset($rule[2])) { - $map[] = [$pk, '<>', $rule[2]]; - } elseif (isset($data[$pk])) { - $map[] = [$pk, '<>', $data[$pk]]; - } - } - - if ($db->where($map)->field($pk)->find()) { - return false; - } - - return true; - } - - /** - * 使用行为类验证 - * @access public - * @param mixed $value 字段值 - * @param mixed $rule 验证规则 - * @param array $data 数据 - * @return mixed - */ - public function behavior($value, $rule, $data) - { - return Container::get('hook')->exec($rule, $data); - } - - /** - * 使用filter_var方式验证 - * @access public - * @param mixed $value 字段值 - * @param mixed $rule 验证规则 - * @return bool - */ - public function filter($value, $rule) - { - if (is_string($rule) && strpos($rule, ',')) { - list($rule, $param) = explode(',', $rule); - } elseif (is_array($rule)) { - $param = isset($rule[1]) ? $rule[1] : null; - $rule = $rule[0]; - } else { - $param = null; - } - - return false !== filter_var($value, is_int($rule) ? $rule : filter_id($rule), $param); - } - - /** - * 验证某个字段等于某个值的时候必须 - * @access public - * @param mixed $value 字段值 - * @param mixed $rule 验证规则 - * @param array $data 数据 - * @return bool - */ - public function requireIf($value, $rule, $data) - { - list($field, $val) = explode(',', $rule); - - if ($this->getDataValue($data, $field) == $val) { - return !empty($value) || '0' == $value; - } - - return true; - } - - /** - * 通过回调方法验证某个字段是否必须 - * @access public - * @param mixed $value 字段值 - * @param mixed $rule 验证规则 - * @param array $data 数据 - * @return bool - */ - public function requireCallback($value, $rule, $data) - { - $result = call_user_func_array($rule, [$value, $data]); - - if ($result) { - return !empty($value) || '0' == $value; - } - - return true; - } - - /** - * 验证某个字段有值的情况下必须 - * @access public - * @param mixed $value 字段值 - * @param mixed $rule 验证规则 - * @param array $data 数据 - * @return bool - */ - public function requireWith($value, $rule, $data) - { - $val = $this->getDataValue($data, $rule); - - if (!empty($val)) { - return !empty($value) || '0' == $value; - } - - return true; - } - - /** - * 验证是否在范围内 - * @access public - * @param mixed $value 字段值 - * @param mixed $rule 验证规则 - * @return bool - */ - public function in($value, $rule) - { - return in_array($value, is_array($rule) ? $rule : explode(',', $rule)); - } - - /** - * 验证是否不在某个范围 - * @access public - * @param mixed $value 字段值 - * @param mixed $rule 验证规则 - * @return bool - */ - public function notIn($value, $rule) - { - return !in_array($value, is_array($rule) ? $rule : explode(',', $rule)); - } - - /** - * between验证数据 - * @access public - * @param mixed $value 字段值 - * @param mixed $rule 验证规则 - * @return bool - */ - public function between($value, $rule) - { - if (is_string($rule)) { - $rule = explode(',', $rule); - } - list($min, $max) = $rule; - - return $value >= $min && $value <= $max; - } - - /** - * 使用notbetween验证数据 - * @access public - * @param mixed $value 字段值 - * @param mixed $rule 验证规则 - * @return bool - */ - public function notBetween($value, $rule) - { - if (is_string($rule)) { - $rule = explode(',', $rule); - } - list($min, $max) = $rule; - - return $value < $min || $value > $max; - } - - /** - * 验证数据长度 - * @access public - * @param mixed $value 字段值 - * @param mixed $rule 验证规则 - * @return bool - */ - public function length($value, $rule) - { - if (is_array($value)) { - $length = count($value); - } elseif ($value instanceof File) { - $length = $value->getSize(); - } else { - $length = mb_strlen((string) $value); - } - - if (strpos($rule, ',')) { - // 长度区间 - list($min, $max) = explode(',', $rule); - return $length >= $min && $length <= $max; - } - - // 指定长度 - return $length == $rule; - } - - /** - * 验证数据最大长度 - * @access public - * @param mixed $value 字段值 - * @param mixed $rule 验证规则 - * @return bool - */ - public function max($value, $rule) - { - if (is_array($value)) { - $length = count($value); - } elseif ($value instanceof File) { - $length = $value->getSize(); - } else { - $length = mb_strlen((string) $value); - } - - return $length <= $rule; - } - - /** - * 验证数据最小长度 - * @access public - * @param mixed $value 字段值 - * @param mixed $rule 验证规则 - * @return bool - */ - public function min($value, $rule) - { - if (is_array($value)) { - $length = count($value); - } elseif ($value instanceof File) { - $length = $value->getSize(); - } else { - $length = mb_strlen((string) $value); - } - - return $length >= $rule; - } - - /** - * 验证日期 - * @access public - * @param mixed $value 字段值 - * @param mixed $rule 验证规则 - * @return bool - */ - public function after($value, $rule) - { - return strtotime($value) >= strtotime($rule); - } - - /** - * 验证日期 - * @access public - * @param mixed $value 字段值 - * @param mixed $rule 验证规则 - * @return bool - */ - public function before($value, $rule) - { - return strtotime($value) <= strtotime($rule); - } - - /** - * 验证有效期 - * @access public - * @param mixed $value 字段值 - * @param mixed $rule 验证规则 - * @return bool - */ - public function expire($value, $rule) - { - if (is_string($rule)) { - $rule = explode(',', $rule); - } - - list($start, $end) = $rule; - - if (!is_numeric($start)) { - $start = strtotime($start); - } - - if (!is_numeric($end)) { - $end = strtotime($end); - } - - return $_SERVER['REQUEST_TIME'] >= $start && $_SERVER['REQUEST_TIME'] <= $end; - } - - /** - * 验证IP许可 - * @access public - * @param string $value 字段值 - * @param mixed $rule 验证规则 - * @return mixed - */ - public function allowIp($value, $rule) - { - return in_array($value, is_array($rule) ? $rule : explode(',', $rule)); - } - - /** - * 验证IP禁用 - * @access public - * @param string $value 字段值 - * @param mixed $rule 验证规则 - * @return mixed - */ - public function denyIp($value, $rule) - { - return !in_array($value, is_array($rule) ? $rule : explode(',', $rule)); - } - - /** - * 使用正则验证数据 - * @access public - * @param mixed $value 字段值 - * @param mixed $rule 验证规则 正则规则或者预定义正则名 - * @return bool - */ - public function regex($value, $rule) - { - if (isset($this->regex[$rule])) { - $rule = $this->regex[$rule]; - } - - if (0 !== strpos($rule, '/') && !preg_match('/\/[imsU]{0,4}$/', $rule)) { - // 不是正则表达式则两端补上/ - $rule = '/^' . $rule . '$/'; - } - - return is_scalar($value) && 1 === preg_match($rule, (string) $value); - } - - /** - * 验证表单令牌 - * @access public - * @param mixed $value 字段值 - * @param mixed $rule 验证规则 - * @param array $data 数据 - * @return bool - */ - public function token($value, $rule, $data) - { - $rule = !empty($rule) ? $rule : '__token__'; - $session = Container::get('session'); - - if (!isset($data[$rule]) || !$session->has($rule)) { - // 令牌数据无效 - return false; - } - - // 令牌验证 - if (isset($data[$rule]) && $session->get($rule) === $data[$rule]) { - // 防止重复提交 - $session->delete($rule); // 验证完成销毁session - return true; - } - - // 开启TOKEN重置 - $session->delete($rule); - - return false; - } - - // 获取错误信息 - public function getError() - { - return $this->error; - } - - /** - * 获取数据值 - * @access protected - * @param array $data 数据 - * @param string $key 数据标识 支持二维 - * @return mixed - */ - protected function getDataValue($data, $key) - { - if (is_numeric($key)) { - $value = $key; - } elseif (strpos($key, '.')) { - // 支持二维数组验证 - list($name1, $name2) = explode('.', $key); - $value = isset($data[$name1][$name2]) ? $data[$name1][$name2] : null; - } else { - $value = isset($data[$key]) ? $data[$key] : null; - } - - return $value; - } - - /** - * 获取验证规则的错误提示信息 - * @access protected - * @param string $attribute 字段英文名 - * @param string $title 字段描述名 - * @param string $type 验证规则名称 - * @param mixed $rule 验证规则数据 - * @return string - */ - protected function getRuleMsg($attribute, $title, $type, $rule) - { - $lang = Container::get('lang'); - - if (isset($this->message[$attribute . '.' . $type])) { - $msg = $this->message[$attribute . '.' . $type]; - } elseif (isset($this->message[$attribute][$type])) { - $msg = $this->message[$attribute][$type]; - } elseif (isset($this->message[$attribute])) { - $msg = $this->message[$attribute]; - } elseif (isset(self::$typeMsg[$type])) { - $msg = self::$typeMsg[$type]; - } elseif (0 === strpos($type, 'require')) { - $msg = self::$typeMsg['require']; - } else { - $msg = $title . $lang->get('not conform to the rules'); - } - - if (is_string($msg) && 0 === strpos($msg, '{%')) { - $msg = $lang->get(substr($msg, 2, -1)); - } elseif ($lang->has($msg)) { - $msg = $lang->get($msg); - } - - if (is_string($msg) && is_scalar($rule) && false !== strpos($msg, ':')) { - // 变量替换 - if (is_string($rule) && strpos($rule, ',')) { - $array = array_pad(explode(',', $rule), 3, ''); - } else { - $array = array_pad([], 3, ''); - } - $msg = str_replace( - [':attribute', ':rule', ':1', ':2', ':3'], - [$title, (string) $rule, $array[0], $array[1], $array[2]], - $msg); - } - - return $msg; - } - - /** - * 获取数据验证的场景 - * @access protected - * @param string $scene 验证场景 - * @return void - */ - protected function getScene($scene = '') - { - if (empty($scene)) { - // 读取指定场景 - $scene = $this->currentScene; - } - - $this->only = $this->append = $this->remove = []; - - if (empty($scene)) { - return; - } - - if (method_exists($this, 'scene' . $scene)) { - call_user_func([$this, 'scene' . $scene]); - } elseif (isset($this->scene[$scene])) { - // 如果设置了验证适用场景 - $scene = $this->scene[$scene]; - - if (is_string($scene)) { - $scene = explode(',', $scene); - } - - $this->only = $scene; - } - } - - /** - * 动态方法 直接调用is方法进行验证 - * @access public - * @param string $method 方法名 - * @param array $args 调用参数 - * @return bool - */ - public function __call($method, $args) - { - if ('is' == strtolower(substr($method, 0, 2))) { - $method = substr($method, 2); - } - - array_push($args, lcfirst($method)); - - return call_user_func_array([$this, 'is'], $args); - } -} diff --git a/thinkphp/library/think/View.php b/thinkphp/library/think/View.php deleted file mode 100644 index 6127235d9..000000000 --- a/thinkphp/library/think/View.php +++ /dev/null @@ -1,236 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think; - -class View -{ - /** - * 模板引擎实例 - * @var object - */ - public $engine; - - /** - * 模板变量 - * @var array - */ - protected $data = []; - - /** - * 内容过滤 - * @var mixed - */ - protected $filter; - - /** - * 全局模板变量 - * @var array - */ - protected static $var = []; - - /** - * 初始化 - * @access public - * @param mixed $engine 模板引擎参数 - * @return $this - */ - public function init($engine = []) - { - // 初始化模板引擎 - $this->engine($engine); - - return $this; - } - - /** - * 模板变量静态赋值 - * @access public - * @param mixed $name 变量名 - * @param mixed $value 变量值 - * @return $this - */ - public function share($name, $value = '') - { - if (is_array($name)) { - self::$var = array_merge(self::$var, $name); - } else { - self::$var[$name] = $value; - } - - return $this; - } - - /** - * 模板变量赋值 - * @access public - * @param mixed $name 变量名 - * @param mixed $value 变量值 - * @return $this - */ - public function assign($name, $value = '') - { - if (is_array($name)) { - $this->data = array_merge($this->data, $name); - } else { - $this->data[$name] = $value; - } - - return $this; - } - - /** - * 设置当前模板解析的引擎 - * @access public - * @param array|string $options 引擎参数 - * @return $this - */ - public function engine($options = []) - { - if (is_string($options)) { - $type = $options; - $options = []; - } else { - $type = !empty($options['type']) ? $options['type'] : 'Think'; - } - - $class = false !== strpos($type, '\\') ? $type : '\\think\\view\\driver\\' . ucfirst($type); - - if (isset($options['type'])) { - unset($options['type']); - } - - $this->engine = new $class($options); - - return $this; - } - - /** - * 配置模板引擎 - * @access public - * @param string|array $name 参数名 - * @param mixed $value 参数值 - * @return $this - */ - public function config($name, $value = null) - { - $this->engine->config($name, $value); - - return $this; - } - - /** - * 检查模板是否存在 - * @access public - * @param string|array $name 参数名 - * @return bool - */ - public function exists($name) - { - return $this->engine->exists($name); - } - - /** - * 视图过滤 - * @access public - * @param Callable $filter 过滤方法或闭包 - * @return $this - */ - public function filter($filter) - { - $this->filter = $filter; - return $this; - } - - /** - * 解析和获取模板内容 用于输出 - * @access public - * @param string $template 模板文件名或者内容 - * @param array $vars 模板输出变量 - * @param array $config 模板参数 - * @param bool $renderContent 是否渲染内容 - * @return string - * @throws \Exception - */ - public function fetch($template = '', $vars = [], $config = [], $renderContent = false) - { - // 模板变量 - $vars = array_merge(self::$var, $this->data, $vars); - - // 页面缓存 - ob_start(); - ob_implicit_flush(0); - - // 渲染输出 - try { - $method = $renderContent ? 'display' : 'fetch'; - $this->engine->$method($template, $vars, $config); - } catch (\Exception $e) { - ob_end_clean(); - throw $e; - } - - // 获取并清空缓存 - $content = ob_get_clean(); - - if ($this->filter) { - $content = call_user_func_array($this->filter, [$content]); - } - - return $content; - } - - /** - * 渲染内容输出 - * @access public - * @param string $content 内容 - * @param array $vars 模板输出变量 - * @param array $config 模板参数 - * @return mixed - */ - public function display($content, $vars = [], $config = []) - { - return $this->fetch($content, $vars, $config, true); - } - - /** - * 模板变量赋值 - * @access public - * @param string $name 变量名 - * @param mixed $value 变量值 - */ - public function __set($name, $value) - { - $this->data[$name] = $value; - } - - /** - * 取得模板显示变量的值 - * @access protected - * @param string $name 模板变量 - * @return mixed - */ - public function __get($name) - { - return $this->data[$name]; - } - - /** - * 检测模板变量是否设置 - * @access public - * @param string $name 模板变量名 - * @return bool - */ - public function __isset($name) - { - return isset($this->data[$name]); - } -} diff --git a/thinkphp/library/think/cache/Driver.php b/thinkphp/library/think/cache/Driver.php deleted file mode 100644 index f0ec7baf4..000000000 --- a/thinkphp/library/think/cache/Driver.php +++ /dev/null @@ -1,353 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\cache; - -use think\Container; - -/** - * 缓存基础类 - */ -abstract class Driver -{ - /** - * 驱动句柄 - * @var object - */ - protected $handler = null; - - /** - * 缓存读取次数 - * @var integer - */ - protected $readTimes = 0; - - /** - * 缓存写入次数 - * @var integer - */ - protected $writeTimes = 0; - - /** - * 缓存参数 - * @var array - */ - protected $options = []; - - /** - * 缓存标签 - * @var string - */ - protected $tag; - - /** - * 序列化方法 - * @var array - */ - protected static $serialize = ['serialize', 'unserialize', 'think_serialize:', 16]; - - /** - * 判断缓存是否存在 - * @access public - * @param string $name 缓存变量名 - * @return bool - */ - abstract public function has($name); - - /** - * 读取缓存 - * @access public - * @param string $name 缓存变量名 - * @param mixed $default 默认值 - * @return mixed - */ - abstract public function get($name, $default = false); - - /** - * 写入缓存 - * @access public - * @param string $name 缓存变量名 - * @param mixed $value 存储数据 - * @param int $expire 有效时间 0为永久 - * @return boolean - */ - abstract public function set($name, $value, $expire = null); - - /** - * 自增缓存(针对数值缓存) - * @access public - * @param string $name 缓存变量名 - * @param int $step 步长 - * @return false|int - */ - abstract public function inc($name, $step = 1); - - /** - * 自减缓存(针对数值缓存) - * @access public - * @param string $name 缓存变量名 - * @param int $step 步长 - * @return false|int - */ - abstract public function dec($name, $step = 1); - - /** - * 删除缓存 - * @access public - * @param string $name 缓存变量名 - * @return boolean - */ - abstract public function rm($name); - - /** - * 清除缓存 - * @access public - * @param string $tag 标签名 - * @return boolean - */ - abstract public function clear($tag = null); - - /** - * 获取有效期 - * @access protected - * @param integer|\DateTime $expire 有效期 - * @return integer - */ - protected function getExpireTime($expire) - { - if ($expire instanceof \DateTime) { - $expire = $expire->getTimestamp() - time(); - } - - return $expire; - } - - /** - * 获取实际的缓存标识 - * @access protected - * @param string $name 缓存名 - * @return string - */ - protected function getCacheKey($name) - { - return $this->options['prefix'] . $name; - } - - /** - * 读取缓存并删除 - * @access public - * @param string $name 缓存变量名 - * @return mixed - */ - public function pull($name) - { - $result = $this->get($name, false); - - if ($result) { - $this->rm($name); - return $result; - } else { - return; - } - } - - /** - * 如果不存在则写入缓存 - * @access public - * @param string $name 缓存变量名 - * @param mixed $value 存储数据 - * @param int $expire 有效时间 0为永久 - * @return mixed - */ - public function remember($name, $value, $expire = null) - { - if (!$this->has($name)) { - $time = time(); - while ($time + 5 > time() && $this->has($name . '_lock')) { - // 存在锁定则等待 - usleep(200000); - } - - try { - // 锁定 - $this->set($name . '_lock', true); - - if ($value instanceof \Closure) { - // 获取缓存数据 - $value = Container::getInstance()->invokeFunction($value); - } - - // 缓存数据 - $this->set($name, $value, $expire); - - // 解锁 - $this->rm($name . '_lock'); - } catch (\Exception $e) { - $this->rm($name . '_lock'); - throw $e; - } catch (\throwable $e) { - $this->rm($name . '_lock'); - throw $e; - } - } else { - $value = $this->get($name); - } - - return $value; - } - - /** - * 缓存标签 - * @access public - * @param string $name 标签名 - * @param string|array $keys 缓存标识 - * @param bool $overlay 是否覆盖 - * @return $this - */ - public function tag($name, $keys = null, $overlay = false) - { - if (is_null($name)) { - - } elseif (is_null($keys)) { - $this->tag = $name; - } else { - $key = 'tag_' . md5($name); - - if (is_string($keys)) { - $keys = explode(',', $keys); - } - - $keys = array_map([$this, 'getCacheKey'], $keys); - - if ($overlay) { - $value = $keys; - } else { - $value = array_unique(array_merge($this->getTagItem($name), $keys)); - } - - $this->set($key, implode(',', $value), 0); - } - - return $this; - } - - /** - * 更新标签 - * @access protected - * @param string $name 缓存标识 - * @return void - */ - protected function setTagItem($name) - { - if ($this->tag) { - $key = 'tag_' . md5($this->tag); - $prev = $this->tag; - $this->tag = null; - - if ($this->has($key)) { - $value = explode(',', $this->get($key)); - $value[] = $name; - $value = implode(',', array_unique($value)); - } else { - $value = $name; - } - - $this->set($key, $value, 0); - $this->tag = $prev; - } - } - - /** - * 获取标签包含的缓存标识 - * @access protected - * @param string $tag 缓存标签 - * @return array - */ - protected function getTagItem($tag) - { - $key = 'tag_' . md5($tag); - $value = $this->get($key); - - if ($value) { - return array_filter(explode(',', $value)); - } else { - return []; - } - } - - /** - * 序列化数据 - * @access protected - * @param mixed $data - * @return string - */ - protected function serialize($data) - { - if (is_scalar($data) || !$this->options['serialize']) { - return $data; - } - - $serialize = self::$serialize[0]; - - return self::$serialize[2] . $serialize($data); - } - - /** - * 反序列化数据 - * @access protected - * @param string $data - * @return mixed - */ - protected function unserialize($data) - { - if ($this->options['serialize'] && 0 === strpos($data, self::$serialize[2])) { - $unserialize = self::$serialize[1]; - - return $unserialize(substr($data, self::$serialize[3])); - } else { - return $data; - } - } - - /** - * 注册序列化机制 - * @access public - * @param callable $serialize 序列化方法 - * @param callable $unserialize 反序列化方法 - * @param string $prefix 序列化前缀标识 - * @return $this - */ - public static function registerSerialize($serialize, $unserialize, $prefix = 'think_serialize:') - { - self::$serialize = [$serialize, $unserialize, $prefix, strlen($prefix)]; - } - - /** - * 返回句柄对象,可执行其它高级方法 - * - * @access public - * @return object - */ - public function handler() - { - return $this->handler; - } - - public function getReadTimes() - { - return $this->readTimes; - } - - public function getWriteTimes() - { - return $this->writeTimes; - } -} diff --git a/thinkphp/library/think/cache/driver/File.php b/thinkphp/library/think/cache/driver/File.php deleted file mode 100644 index 5f10200bf..000000000 --- a/thinkphp/library/think/cache/driver/File.php +++ /dev/null @@ -1,305 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\cache\driver; - -use think\cache\Driver; -use think\Container; - -/** - * 文件类型缓存类 - * @author liu21st - */ -class File extends Driver -{ - protected $options = [ - 'expire' => 0, - 'cache_subdir' => true, - 'prefix' => '', - 'path' => '', - 'hash_type' => 'md5', - 'data_compress' => false, - 'serialize' => true, - ]; - - protected $expire; - - /** - * 架构函数 - * @param array $options - */ - public function __construct($options = []) - { - if (!empty($options)) { - $this->options = array_merge($this->options, $options); - } - - if (empty($this->options['path'])) { - $this->options['path'] = Container::get('app')->getRuntimePath() . 'cache' . DIRECTORY_SEPARATOR; - } elseif (substr($this->options['path'], -1) != DIRECTORY_SEPARATOR) { - $this->options['path'] .= DIRECTORY_SEPARATOR; - } - - $this->init(); - } - - /** - * 初始化检查 - * @access private - * @return boolean - */ - private function init() - { - // 创建项目缓存目录 - try { - if (!is_dir($this->options['path']) && mkdir($this->options['path'], 0755, true)) { - return true; - } - } catch (\Exception $e) { - } - - return false; - } - - /** - * 取得变量的存储文件名 - * @access protected - * @param string $name 缓存变量名 - * @param bool $auto 是否自动创建目录 - * @return string - */ - protected function getCacheKey($name, $auto = false) - { - $name = hash($this->options['hash_type'], $name); - - if ($this->options['cache_subdir']) { - // 使用子目录 - $name = substr($name, 0, 2) . DIRECTORY_SEPARATOR . substr($name, 2); - } - - if ($this->options['prefix']) { - $name = $this->options['prefix'] . DIRECTORY_SEPARATOR . $name; - } - - $filename = $this->options['path'] . $name . '.php'; - $dir = dirname($filename); - - if ($auto && !is_dir($dir)) { - try { - mkdir($dir, 0755, true); - } catch (\Exception $e) { - } - } - - return $filename; - } - - /** - * 判断缓存是否存在 - * @access public - * @param string $name 缓存变量名 - * @return bool - */ - public function has($name) - { - return $this->get($name) ? true : false; - } - - /** - * 读取缓存 - * @access public - * @param string $name 缓存变量名 - * @param mixed $default 默认值 - * @return mixed - */ - public function get($name, $default = false) - { - $this->readTimes++; - - $filename = $this->getCacheKey($name); - - if (!is_file($filename)) { - return $default; - } - - $content = file_get_contents($filename); - $this->expire = null; - - if (false !== $content) { - $expire = (int) substr($content, 8, 12); - if (0 != $expire && time() > filemtime($filename) + $expire) { - //缓存过期删除缓存文件 - $this->unlink($filename); - return $default; - } - - $this->expire = $expire; - $content = substr($content, 32); - - if ($this->options['data_compress'] && function_exists('gzcompress')) { - //启用数据压缩 - $content = gzuncompress($content); - } - return $this->unserialize($content); - } else { - return $default; - } - } - - /** - * 写入缓存 - * @access public - * @param string $name 缓存变量名 - * @param mixed $value 存储数据 - * @param int|\DateTime $expire 有效时间 0为永久 - * @return boolean - */ - public function set($name, $value, $expire = null) - { - $this->writeTimes++; - - if (is_null($expire)) { - $expire = $this->options['expire']; - } - - $expire = $this->getExpireTime($expire); - $filename = $this->getCacheKey($name, true); - - if ($this->tag && !is_file($filename)) { - $first = true; - } - - $data = $this->serialize($value); - - if ($this->options['data_compress'] && function_exists('gzcompress')) { - //数据压缩 - $data = gzcompress($data, 3); - } - - $data = "\n" . $data; - $result = file_put_contents($filename, $data); - - if ($result) { - isset($first) && $this->setTagItem($filename); - clearstatcache(); - return true; - } else { - return false; - } - } - - /** - * 自增缓存(针对数值缓存) - * @access public - * @param string $name 缓存变量名 - * @param int $step 步长 - * @return false|int - */ - public function inc($name, $step = 1) - { - if ($this->has($name)) { - $value = $this->get($name) + $step; - $expire = $this->expire; - } else { - $value = $step; - $expire = 0; - } - - return $this->set($name, $value, $expire) ? $value : false; - } - - /** - * 自减缓存(针对数值缓存) - * @access public - * @param string $name 缓存变量名 - * @param int $step 步长 - * @return false|int - */ - public function dec($name, $step = 1) - { - if ($this->has($name)) { - $value = $this->get($name) - $step; - $expire = $this->expire; - } else { - $value = -$step; - $expire = 0; - } - - return $this->set($name, $value, $expire) ? $value : false; - } - - /** - * 删除缓存 - * @access public - * @param string $name 缓存变量名 - * @return boolean - */ - public function rm($name) - { - $this->writeTimes++; - - try { - return $this->unlink($this->getCacheKey($name)); - } catch (\Exception $e) { - } - } - - /** - * 清除缓存 - * @access public - * @param string $tag 标签名 - * @return boolean - */ - public function clear($tag = null) - { - if ($tag) { - // 指定标签清除 - $keys = $this->getTagItem($tag); - foreach ($keys as $key) { - $this->unlink($key); - } - $this->rm('tag_' . md5($tag)); - return true; - } - - $this->writeTimes++; - - $files = (array) glob($this->options['path'] . ($this->options['prefix'] ? $this->options['prefix'] . DIRECTORY_SEPARATOR : '') . '*'); - - foreach ($files as $path) { - if (is_dir($path)) { - $matches = glob($path . DIRECTORY_SEPARATOR . '*.php'); - if (is_array($matches)) { - array_map('unlink', $matches); - } - rmdir($path); - } else { - unlink($path); - } - } - - return true; - } - - /** - * 判断文件是否存在后,删除 - * @access private - * @param string $path - * @return bool - * @author byron sampson - * @return boolean - */ - private function unlink($path) - { - return is_file($path) && unlink($path); - } - -} diff --git a/thinkphp/library/think/cache/driver/Lite.php b/thinkphp/library/think/cache/driver/Lite.php deleted file mode 100644 index 544663c05..000000000 --- a/thinkphp/library/think/cache/driver/Lite.php +++ /dev/null @@ -1,209 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\cache\driver; - -use think\cache\Driver; - -/** - * 文件类型缓存类 - * @author liu21st - */ -class Lite extends Driver -{ - protected $options = [ - 'prefix' => '', - 'path' => '', - 'expire' => 0, // 等于 10*365*24*3600(10年) - ]; - - /** - * 架构函数 - * @access public - * - * @param array $options - */ - public function __construct($options = []) - { - if (!empty($options)) { - $this->options = array_merge($this->options, $options); - } - - if (substr($this->options['path'], -1) != DIRECTORY_SEPARATOR) { - $this->options['path'] .= DIRECTORY_SEPARATOR; - } - - } - - /** - * 取得变量的存储文件名 - * @access protected - * @param string $name 缓存变量名 - * @return string - */ - protected function getCacheKey($name) - { - return $this->options['path'] . $this->options['prefix'] . md5($name) . '.php'; - } - - /** - * 判断缓存是否存在 - * @access public - * @param string $name 缓存变量名 - * @return mixed - */ - public function has($name) - { - return $this->get($name) ? true : false; - } - - /** - * 读取缓存 - * @access public - * @param string $name 缓存变量名 - * @param mixed $default 默认值 - * @return mixed - */ - public function get($name, $default = false) - { - $this->readTimes++; - - $filename = $this->getCacheKey($name); - - if (is_file($filename)) { - // 判断是否过期 - $mtime = filemtime($filename); - - if ($mtime < time()) { - // 清除已经过期的文件 - unlink($filename); - return $default; - } - - return include $filename; - } else { - return $default; - } - } - - /** - * 写入缓存 - * @access public - * @param string $name 缓存变量名 - * @param mixed $value 存储数据 - * @param int|\DateTime $expire 有效时间 0为永久 - * @return bool - */ - public function set($name, $value, $expire = null) - { - $this->writeTimes++; - - if (is_null($expire)) { - $expire = $this->options['expire']; - } - - if ($expire instanceof \DateTime) { - $expire = $expire->getTimestamp(); - } else { - $expire = 0 === $expire ? 10 * 365 * 24 * 3600 : $expire; - $expire = time() + $expire; - } - - $filename = $this->getCacheKey($name); - - if ($this->tag && !is_file($filename)) { - $first = true; - } - - $ret = file_put_contents($filename, ("setTagItem($filename); - touch($filename, $expire); - } - - return $ret; - } - - /** - * 自增缓存(针对数值缓存) - * @access public - * @param string $name 缓存变量名 - * @param int $step 步长 - * @return false|int - */ - public function inc($name, $step = 1) - { - if ($this->has($name)) { - $value = $this->get($name) + $step; - } else { - $value = $step; - } - - return $this->set($name, $value, 0) ? $value : false; - } - - /** - * 自减缓存(针对数值缓存) - * @access public - * @param string $name 缓存变量名 - * @param int $step 步长 - * @return false|int - */ - public function dec($name, $step = 1) - { - if ($this->has($name)) { - $value = $this->get($name) - $step; - } else { - $value = -$step; - } - - return $this->set($name, $value, 0) ? $value : false; - } - - /** - * 删除缓存 - * @access public - * @param string $name 缓存变量名 - * @return boolean - */ - public function rm($name) - { - $this->writeTimes++; - - return unlink($this->getCacheKey($name)); - } - - /** - * 清除缓存 - * @access public - * @param string $tag 标签名 - * @return bool - */ - public function clear($tag = null) - { - if ($tag) { - // 指定标签清除 - $keys = $this->getTagItem($tag); - foreach ($keys as $key) { - unlink($key); - } - - $this->rm('tag_' . md5($tag)); - return true; - } - - $this->writeTimes++; - - array_map("unlink", glob($this->options['path'] . ($this->options['prefix'] ? $this->options['prefix'] . DIRECTORY_SEPARATOR : '') . '*.php')); - } -} diff --git a/thinkphp/library/think/cache/driver/Memcache.php b/thinkphp/library/think/cache/driver/Memcache.php deleted file mode 100644 index ea2c0e234..000000000 --- a/thinkphp/library/think/cache/driver/Memcache.php +++ /dev/null @@ -1,203 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\cache\driver; - -use think\cache\Driver; - -class Memcache extends Driver -{ - protected $options = [ - 'host' => '127.0.0.1', - 'port' => 11211, - 'expire' => 0, - 'timeout' => 0, // 超时时间(单位:毫秒) - 'persistent' => true, - 'prefix' => '', - 'serialize' => true, - ]; - - /** - * 架构函数 - * @access public - * @param array $options 缓存参数 - * @throws \BadFunctionCallException - */ - public function __construct($options = []) - { - if (!extension_loaded('memcache')) { - throw new \BadFunctionCallException('not support: memcache'); - } - - if (!empty($options)) { - $this->options = array_merge($this->options, $options); - } - - $this->handler = new \Memcache; - - // 支持集群 - $hosts = explode(',', $this->options['host']); - $ports = explode(',', $this->options['port']); - - if (empty($ports[0])) { - $ports[0] = 11211; - } - - // 建立连接 - foreach ((array) $hosts as $i => $host) { - $port = isset($ports[$i]) ? $ports[$i] : $ports[0]; - $this->options['timeout'] > 0 ? - $this->handler->addServer($host, $port, $this->options['persistent'], 1, $this->options['timeout']) : - $this->handler->addServer($host, $port, $this->options['persistent'], 1); - } - } - - /** - * 判断缓存 - * @access public - * @param string $name 缓存变量名 - * @return bool - */ - public function has($name) - { - $key = $this->getCacheKey($name); - - return $this->handler->get($key) ? true : false; - } - - /** - * 读取缓存 - * @access public - * @param string $name 缓存变量名 - * @param mixed $default 默认值 - * @return mixed - */ - public function get($name, $default = false) - { - $this->readTimes++; - - $result = $this->handler->get($this->getCacheKey($name)); - - return false !== $result ? $this->unserialize($result) : $default; - } - - /** - * 写入缓存 - * @access public - * @param string $name 缓存变量名 - * @param mixed $value 存储数据 - * @param int|DateTime $expire 有效时间(秒) - * @return bool - */ - public function set($name, $value, $expire = null) - { - $this->writeTimes++; - - if (is_null($expire)) { - $expire = $this->options['expire']; - } - - if ($this->tag && !$this->has($name)) { - $first = true; - } - - $key = $this->getCacheKey($name); - $expire = $this->getExpireTime($expire); - $value = $this->serialize($value); - - if ($this->handler->set($key, $value, 0, $expire)) { - isset($first) && $this->setTagItem($key); - return true; - } - - return false; - } - - /** - * 自增缓存(针对数值缓存) - * @access public - * @param string $name 缓存变量名 - * @param int $step 步长 - * @return false|int - */ - public function inc($name, $step = 1) - { - $this->writeTimes++; - - $key = $this->getCacheKey($name); - - if ($this->handler->get($key)) { - return $this->handler->increment($key, $step); - } - - return $this->handler->set($key, $step); - } - - /** - * 自减缓存(针对数值缓存) - * @access public - * @param string $name 缓存变量名 - * @param int $step 步长 - * @return false|int - */ - public function dec($name, $step = 1) - { - $this->writeTimes++; - - $key = $this->getCacheKey($name); - $value = $this->handler->get($key) - $step; - $res = $this->handler->set($key, $value); - - return !$res ? false : $value; - } - - /** - * 删除缓存 - * @access public - * @param string $name 缓存变量名 - * @param bool|false $ttl - * @return bool - */ - public function rm($name, $ttl = false) - { - $this->writeTimes++; - - $key = $this->getCacheKey($name); - - return false === $ttl ? - $this->handler->delete($key) : - $this->handler->delete($key, $ttl); - } - - /** - * 清除缓存 - * @access public - * @param string $tag 标签名 - * @return bool - */ - public function clear($tag = null) - { - if ($tag) { - // 指定标签清除 - $keys = $this->getTagItem($tag); - foreach ($keys as $key) { - $this->handler->delete($key); - } - - $this->rm('tag_' . md5($tag)); - return true; - } - - $this->writeTimes++; - - return $this->handler->flush(); - } -} diff --git a/thinkphp/library/think/cache/driver/Memcached.php b/thinkphp/library/think/cache/driver/Memcached.php deleted file mode 100644 index d04fac087..000000000 --- a/thinkphp/library/think/cache/driver/Memcached.php +++ /dev/null @@ -1,216 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\cache\driver; - -use think\cache\Driver; - -class Memcached extends Driver -{ - protected $options = [ - 'host' => '127.0.0.1', - 'port' => 11211, - 'expire' => 0, - 'timeout' => 0, // 超时时间(单位:毫秒) - 'prefix' => '', - 'username' => '', //账号 - 'password' => '', //密码 - 'option' => [], - 'serialize' => true, - ]; - - /** - * 架构函数 - * @access public - * @param array $options 缓存参数 - */ - public function __construct($options = []) - { - if (!extension_loaded('memcached')) { - throw new \BadFunctionCallException('not support: memcached'); - } - - if (!empty($options)) { - $this->options = array_merge($this->options, $options); - } - - $this->handler = new \Memcached; - - if (!empty($this->options['option'])) { - $this->handler->setOptions($this->options['option']); - } - - // 设置连接超时时间(单位:毫秒) - if ($this->options['timeout'] > 0) { - $this->handler->setOption(\Memcached::OPT_CONNECT_TIMEOUT, $this->options['timeout']); - } - - // 支持集群 - $hosts = explode(',', $this->options['host']); - $ports = explode(',', $this->options['port']); - if (empty($ports[0])) { - $ports[0] = 11211; - } - - // 建立连接 - $servers = []; - foreach ((array) $hosts as $i => $host) { - $servers[] = [$host, (isset($ports[$i]) ? $ports[$i] : $ports[0]), 1]; - } - - $this->handler->addServers($servers); - - if ('' != $this->options['username']) { - $this->handler->setOption(\Memcached::OPT_BINARY_PROTOCOL, true); - $this->handler->setSaslAuthData($this->options['username'], $this->options['password']); - } - } - - /** - * 判断缓存 - * @access public - * @param string $name 缓存变量名 - * @return bool - */ - public function has($name) - { - $key = $this->getCacheKey($name); - - return $this->handler->get($key) ? true : false; - } - - /** - * 读取缓存 - * @access public - * @param string $name 缓存变量名 - * @param mixed $default 默认值 - * @return mixed - */ - public function get($name, $default = false) - { - $this->readTimes++; - - $result = $this->handler->get($this->getCacheKey($name)); - - return false !== $result ? $this->unserialize($result) : $default; - } - - /** - * 写入缓存 - * @access public - * @param string $name 缓存变量名 - * @param mixed $value 存储数据 - * @param integer|\DateTime $expire 有效时间(秒) - * @return bool - */ - public function set($name, $value, $expire = null) - { - $this->writeTimes++; - - if (is_null($expire)) { - $expire = $this->options['expire']; - } - - if ($this->tag && !$this->has($name)) { - $first = true; - } - - $key = $this->getCacheKey($name); - $expire = $this->getExpireTime($expire); - $value = $this->serialize($value); - - if ($this->handler->set($key, $value, $expire)) { - isset($first) && $this->setTagItem($key); - return true; - } - - return false; - } - - /** - * 自增缓存(针对数值缓存) - * @access public - * @param string $name 缓存变量名 - * @param int $step 步长 - * @return false|int - */ - public function inc($name, $step = 1) - { - $this->writeTimes++; - - $key = $this->getCacheKey($name); - - if ($this->handler->get($key)) { - return $this->handler->increment($key, $step); - } - - return $this->handler->set($key, $step); - } - - /** - * 自减缓存(针对数值缓存) - * @access public - * @param string $name 缓存变量名 - * @param int $step 步长 - * @return false|int - */ - public function dec($name, $step = 1) - { - $this->writeTimes++; - - $key = $this->getCacheKey($name); - $value = $this->handler->get($key) - $step; - $res = $this->handler->set($key, $value); - - return !$res ? false : $value; - } - - /** - * 删除缓存 - * @access public - * @param string $name 缓存变量名 - * @param bool|false $ttl - * @return bool - */ - public function rm($name, $ttl = false) - { - $this->writeTimes++; - - $key = $this->getCacheKey($name); - - return false === $ttl ? - $this->handler->delete($key) : - $this->handler->delete($key, $ttl); - } - - /** - * 清除缓存 - * @access public - * @param string $tag 标签名 - * @return bool - */ - public function clear($tag = null) - { - if ($tag) { - // 指定标签清除 - $keys = $this->getTagItem($tag); - - $this->handler->deleteMulti($keys); - $this->rm('tag_' . md5($tag)); - - return true; - } - - $this->writeTimes++; - - return $this->handler->flush(); - } -} diff --git a/thinkphp/library/think/cache/driver/Redis.php b/thinkphp/library/think/cache/driver/Redis.php deleted file mode 100644 index 77958c334..000000000 --- a/thinkphp/library/think/cache/driver/Redis.php +++ /dev/null @@ -1,206 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\cache\driver; - -use think\cache\Driver; - -/** - * Redis缓存驱动,适合单机部署、有前端代理实现高可用的场景,性能最好 - * 有需要在业务层实现读写分离、或者使用RedisCluster的需求,请使用Redisd驱动 - * - * 要求安装phpredis扩展:https://github.com/nicolasff/phpredis - * @author 尘缘 <130775@qq.com> - */ -class Redis extends Driver -{ - protected $options = [ - 'host' => '127.0.0.1', - 'port' => 6379, - 'password' => '', - 'select' => 0, - 'timeout' => 0, - 'expire' => 0, - 'persistent' => false, - 'prefix' => '', - 'serialize' => true, - ]; - - /** - * 架构函数 - * @access public - * @param array $options 缓存参数 - */ - public function __construct($options = []) - { - if (!extension_loaded('redis')) { - throw new \BadFunctionCallException('not support: redis'); - } - - if (!empty($options)) { - $this->options = array_merge($this->options, $options); - } - - $this->handler = new \Redis; - - if ($this->options['persistent']) { - $this->handler->pconnect($this->options['host'], $this->options['port'], $this->options['timeout'], 'persistent_id_' . $this->options['select']); - } else { - $this->handler->connect($this->options['host'], $this->options['port'], $this->options['timeout']); - } - - if ('' != $this->options['password']) { - $this->handler->auth($this->options['password']); - } - - if (0 != $this->options['select']) { - $this->handler->select($this->options['select']); - } - } - - /** - * 判断缓存 - * @access public - * @param string $name 缓存变量名 - * @return bool - */ - public function has($name) - { - return $this->handler->exists($this->getCacheKey($name)); - } - - /** - * 读取缓存 - * @access public - * @param string $name 缓存变量名 - * @param mixed $default 默认值 - * @return mixed - */ - public function get($name, $default = false) - { - $this->readTimes++; - - $value = $this->handler->get($this->getCacheKey($name)); - - if (is_null($value) || false === $value) { - return $default; - } - - return $this->unserialize($value); - } - - /** - * 写入缓存 - * @access public - * @param string $name 缓存变量名 - * @param mixed $value 存储数据 - * @param integer|\DateTime $expire 有效时间(秒) - * @return boolean - */ - public function set($name, $value, $expire = null) - { - $this->writeTimes++; - - if (is_null($expire)) { - $expire = $this->options['expire']; - } - - if ($this->tag && !$this->has($name)) { - $first = true; - } - - $key = $this->getCacheKey($name); - $expire = $this->getExpireTime($expire); - - $value = $this->serialize($value); - - if ($expire) { - $result = $this->handler->setex($key, $expire, $value); - } else { - $result = $this->handler->set($key, $value); - } - - isset($first) && $this->setTagItem($key); - - return $result; - } - - /** - * 自增缓存(针对数值缓存) - * @access public - * @param string $name 缓存变量名 - * @param int $step 步长 - * @return false|int - */ - public function inc($name, $step = 1) - { - $this->writeTimes++; - - $key = $this->getCacheKey($name); - - return $this->handler->incrby($key, $step); - } - - /** - * 自减缓存(针对数值缓存) - * @access public - * @param string $name 缓存变量名 - * @param int $step 步长 - * @return false|int - */ - public function dec($name, $step = 1) - { - $this->writeTimes++; - - $key = $this->getCacheKey($name); - - return $this->handler->decrby($key, $step); - } - - /** - * 删除缓存 - * @access public - * @param string $name 缓存变量名 - * @return boolean - */ - public function rm($name) - { - $this->writeTimes++; - - return $this->handler->delete($this->getCacheKey($name)); - } - - /** - * 清除缓存 - * @access public - * @param string $tag 标签名 - * @return boolean - */ - public function clear($tag = null) - { - if ($tag) { - // 指定标签清除 - $keys = $this->getTagItem($tag); - - foreach ($keys as $key) { - $this->handler->delete($key); - } - - $this->rm('tag_' . md5($tag)); - return true; - } - - $this->writeTimes++; - - return $this->handler->flushDB(); - } - -} diff --git a/thinkphp/library/think/cache/driver/Sqlite.php b/thinkphp/library/think/cache/driver/Sqlite.php deleted file mode 100644 index 7e78ec12d..000000000 --- a/thinkphp/library/think/cache/driver/Sqlite.php +++ /dev/null @@ -1,233 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\cache\driver; - -use think\cache\Driver; - -/** - * Sqlite缓存驱动 - * @author liu21st - */ -class Sqlite extends Driver -{ - protected $options = [ - 'db' => ':memory:', - 'table' => 'sharedmemory', - 'prefix' => '', - 'expire' => 0, - 'persistent' => false, - 'serialize' => true, - ]; - - /** - * 架构函数 - * @access public - * @param array $options 缓存参数 - * @throws \BadFunctionCallException - */ - public function __construct($options = []) - { - if (!extension_loaded('sqlite')) { - throw new \BadFunctionCallException('not support: sqlite'); - } - - if (!empty($options)) { - $this->options = array_merge($this->options, $options); - } - - $func = $this->options['persistent'] ? 'sqlite_popen' : 'sqlite_open'; - - $this->handler = $func($this->options['db']); - } - - /** - * 获取实际的缓存标识 - * @access public - * @param string $name 缓存名 - * @return string - */ - protected function getCacheKey($name) - { - return $this->options['prefix'] . sqlite_escape_string($name); - } - - /** - * 判断缓存 - * @access public - * @param string $name 缓存变量名 - * @return bool - */ - public function has($name) - { - $name = $this->getCacheKey($name); - - $sql = 'SELECT value FROM ' . $this->options['table'] . ' WHERE var=\'' . $name . '\' AND (expire=0 OR expire >' . time() . ') LIMIT 1'; - $result = sqlite_query($this->handler, $sql); - - return sqlite_num_rows($result); - } - - /** - * 读取缓存 - * @access public - * @param string $name 缓存变量名 - * @param mixed $default 默认值 - * @return mixed - */ - public function get($name, $default = false) - { - $this->readTimes++; - - $name = $this->getCacheKey($name); - - $sql = 'SELECT value FROM ' . $this->options['table'] . ' WHERE var=\'' . $name . '\' AND (expire=0 OR expire >' . time() . ') LIMIT 1'; - - $result = sqlite_query($this->handler, $sql); - - if (sqlite_num_rows($result)) { - $content = sqlite_fetch_single($result); - if (function_exists('gzcompress')) { - //启用数据压缩 - $content = gzuncompress($content); - } - - return $this->unserialize($content); - } - - return $default; - } - - /** - * 写入缓存 - * @access public - * @param string $name 缓存变量名 - * @param mixed $value 存储数据 - * @param integer|\DateTime $expire 有效时间(秒) - * @return boolean - */ - public function set($name, $value, $expire = null) - { - $this->writeTimes++; - - $name = $this->getCacheKey($name); - - $value = sqlite_escape_string($this->serialize($value)); - - if (is_null($expire)) { - $expire = $this->options['expire']; - } - - if ($expire instanceof \DateTime) { - $expire = $expire->getTimestamp(); - } else { - $expire = (0 == $expire) ? 0 : (time() + $expire); //缓存有效期为0表示永久缓存 - } - - if (function_exists('gzcompress')) { - //数据压缩 - $value = gzcompress($value, 3); - } - - if ($this->tag) { - $tag = $this->tag; - $this->tag = null; - } else { - $tag = ''; - } - - $sql = 'REPLACE INTO ' . $this->options['table'] . ' (var, value, expire, tag) VALUES (\'' . $name . '\', \'' . $value . '\', \'' . $expire . '\', \'' . $tag . '\')'; - - if (sqlite_query($this->handler, $sql)) { - return true; - } - - return false; - } - - /** - * 自增缓存(针对数值缓存) - * @access public - * @param string $name 缓存变量名 - * @param int $step 步长 - * @return false|int - */ - public function inc($name, $step = 1) - { - if ($this->has($name)) { - $value = $this->get($name) + $step; - } else { - $value = $step; - } - - return $this->set($name, $value, 0) ? $value : false; - } - - /** - * 自减缓存(针对数值缓存) - * @access public - * @param string $name 缓存变量名 - * @param int $step 步长 - * @return false|int - */ - public function dec($name, $step = 1) - { - if ($this->has($name)) { - $value = $this->get($name) - $step; - } else { - $value = -$step; - } - - return $this->set($name, $value, 0) ? $value : false; - } - - /** - * 删除缓存 - * @access public - * @param string $name 缓存变量名 - * @return boolean - */ - public function rm($name) - { - $this->writeTimes++; - - $name = $this->getCacheKey($name); - - $sql = 'DELETE FROM ' . $this->options['table'] . ' WHERE var=\'' . $name . '\''; - sqlite_query($this->handler, $sql); - - return true; - } - - /** - * 清除缓存 - * @access public - * @param string $tag 标签名 - * @return boolean - */ - public function clear($tag = null) - { - if ($tag) { - $name = sqlite_escape_string($tag); - $sql = 'DELETE FROM ' . $this->options['table'] . ' WHERE tag=\'' . $name . '\''; - sqlite_query($this->handler, $sql); - return true; - } - - $this->writeTimes++; - - $sql = 'DELETE FROM ' . $this->options['table']; - - sqlite_query($this->handler, $sql); - - return true; - } -} diff --git a/thinkphp/library/think/cache/driver/Wincache.php b/thinkphp/library/think/cache/driver/Wincache.php deleted file mode 100644 index 10966e786..000000000 --- a/thinkphp/library/think/cache/driver/Wincache.php +++ /dev/null @@ -1,174 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\cache\driver; - -use think\cache\Driver; - -/** - * Wincache缓存驱动 - * @author liu21st - */ -class Wincache extends Driver -{ - protected $options = [ - 'prefix' => '', - 'expire' => 0, - 'serialize' => true, - ]; - - /** - * 架构函数 - * @access public - * @param array $options 缓存参数 - * @throws \BadFunctionCallException - */ - public function __construct($options = []) - { - if (!function_exists('wincache_ucache_info')) { - throw new \BadFunctionCallException('not support: WinCache'); - } - - if (!empty($options)) { - $this->options = array_merge($this->options, $options); - } - } - - /** - * 判断缓存 - * @access public - * @param string $name 缓存变量名 - * @return bool - */ - public function has($name) - { - $this->readTimes++; - - $key = $this->getCacheKey($name); - - return wincache_ucache_exists($key); - } - - /** - * 读取缓存 - * @access public - * @param string $name 缓存变量名 - * @param mixed $default 默认值 - * @return mixed - */ - public function get($name, $default = false) - { - $this->readTimes++; - - $key = $this->getCacheKey($name); - - return wincache_ucache_exists($key) ? $this->unserialize(wincache_ucache_get($key)) : $default; - } - - /** - * 写入缓存 - * @access public - * @param string $name 缓存变量名 - * @param mixed $value 存储数据 - * @param integer|\DateTime $expire 有效时间(秒) - * @return boolean - */ - public function set($name, $value, $expire = null) - { - $this->writeTimes++; - - if (is_null($expire)) { - $expire = $this->options['expire']; - } - - $key = $this->getCacheKey($name); - $expire = $this->getExpireTime($expire); - $value = $this->serialize($value); - - if ($this->tag && !$this->has($name)) { - $first = true; - } - - if (wincache_ucache_set($key, $value, $expire)) { - isset($first) && $this->setTagItem($key); - return true; - } - - return false; - } - - /** - * 自增缓存(针对数值缓存) - * @access public - * @param string $name 缓存变量名 - * @param int $step 步长 - * @return false|int - */ - public function inc($name, $step = 1) - { - $this->writeTimes++; - - $key = $this->getCacheKey($name); - - return wincache_ucache_inc($key, $step); - } - - /** - * 自减缓存(针对数值缓存) - * @access public - * @param string $name 缓存变量名 - * @param int $step 步长 - * @return false|int - */ - public function dec($name, $step = 1) - { - $this->writeTimes++; - - $key = $this->getCacheKey($name); - - return wincache_ucache_dec($key, $step); - } - - /** - * 删除缓存 - * @access public - * @param string $name 缓存变量名 - * @return boolean - */ - public function rm($name) - { - $this->writeTimes++; - - return wincache_ucache_delete($this->getCacheKey($name)); - } - - /** - * 清除缓存 - * @access public - * @param string $tag 标签名 - * @return boolean - */ - public function clear($tag = null) - { - if ($tag) { - $keys = $this->getTagItem($tag); - foreach ($keys as $key) { - wincache_ucache_delete($key); - } - $this->rm('tag_' . md5($tag)); - return true; - } else { - $this->writeTimes++; - return wincache_ucache_clear(); - } - } - -} diff --git a/thinkphp/library/think/cache/driver/Xcache.php b/thinkphp/library/think/cache/driver/Xcache.php deleted file mode 100644 index 6d1bf3f6c..000000000 --- a/thinkphp/library/think/cache/driver/Xcache.php +++ /dev/null @@ -1,177 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\cache\driver; - -use think\cache\Driver; - -/** - * Xcache缓存驱动 - * @author liu21st - */ -class Xcache extends Driver -{ - protected $options = [ - 'prefix' => '', - 'expire' => 0, - 'serialize' => true, - ]; - - /** - * 架构函数 - * @access public - * @param array $options 缓存参数 - * @throws \BadFunctionCallException - */ - public function __construct($options = []) - { - if (!function_exists('xcache_info')) { - throw new \BadFunctionCallException('not support: Xcache'); - } - - if (!empty($options)) { - $this->options = array_merge($this->options, $options); - } - } - - /** - * 判断缓存 - * @access public - * @param string $name 缓存变量名 - * @return bool - */ - public function has($name) - { - $key = $this->getCacheKey($name); - - return xcache_isset($key); - } - - /** - * 读取缓存 - * @access public - * @param string $name 缓存变量名 - * @param mixed $default 默认值 - * @return mixed - */ - public function get($name, $default = false) - { - $this->readTimes++; - - $key = $this->getCacheKey($name); - - return xcache_isset($key) ? $this->unserialize(xcache_get($key)) : $default; - } - - /** - * 写入缓存 - * @access public - * @param string $name 缓存变量名 - * @param mixed $value 存储数据 - * @param integer|\DateTime $expire 有效时间(秒) - * @return boolean - */ - public function set($name, $value, $expire = null) - { - $this->writeTimes++; - - if (is_null($expire)) { - $expire = $this->options['expire']; - } - - if ($this->tag && !$this->has($name)) { - $first = true; - } - - $key = $this->getCacheKey($name); - $expire = $this->getExpireTime($expire); - $value = $this->serialize($value); - - if (xcache_set($key, $value, $expire)) { - isset($first) && $this->setTagItem($key); - return true; - } - - return false; - } - - /** - * 自增缓存(针对数值缓存) - * @access public - * @param string $name 缓存变量名 - * @param int $step 步长 - * @return false|int - */ - public function inc($name, $step = 1) - { - $this->writeTimes++; - - $key = $this->getCacheKey($name); - - return xcache_inc($key, $step); - } - - /** - * 自减缓存(针对数值缓存) - * @access public - * @param string $name 缓存变量名 - * @param int $step 步长 - * @return false|int - */ - public function dec($name, $step = 1) - { - $this->writeTimes++; - - $key = $this->getCacheKey($name); - - return xcache_dec($key, $step); - } - - /** - * 删除缓存 - * @access public - * @param string $name 缓存变量名 - * @return boolean - */ - public function rm($name) - { - $this->writeTimes++; - - return xcache_unset($this->getCacheKey($name)); - } - - /** - * 清除缓存 - * @access public - * @param string $tag 标签名 - * @return boolean - */ - public function clear($tag = null) - { - if ($tag) { - // 指定标签清除 - $keys = $this->getTagItem($tag); - foreach ($keys as $key) { - xcache_unset($key); - } - $this->rm('tag_' . md5($tag)); - return true; - } - - $this->writeTimes++; - - if (function_exists('xcache_unset_by_prefix')) { - return xcache_unset_by_prefix($this->options['prefix']); - } else { - return false; - } - } -} diff --git a/thinkphp/library/think/config/driver/Ini.php b/thinkphp/library/think/config/driver/Ini.php deleted file mode 100644 index bcd12b697..000000000 --- a/thinkphp/library/think/config/driver/Ini.php +++ /dev/null @@ -1,24 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\config\driver; - -class Ini -{ - public function parse($config) - { - if (is_file($config)) { - return parse_ini_file($config, true); - } else { - return parse_ini_string($config, true); - } - } -} diff --git a/thinkphp/library/think/config/driver/Json.php b/thinkphp/library/think/config/driver/Json.php deleted file mode 100644 index 808bfff80..000000000 --- a/thinkphp/library/think/config/driver/Json.php +++ /dev/null @@ -1,26 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\config\driver; - -class Json -{ - public function parse($config) - { - if (is_file($config)) { - $config = file_get_contents($config); - } - - $result = json_decode($config, true); - - return $result; - } -} diff --git a/thinkphp/library/think/config/driver/Xml.php b/thinkphp/library/think/config/driver/Xml.php deleted file mode 100644 index b149b57fa..000000000 --- a/thinkphp/library/think/config/driver/Xml.php +++ /dev/null @@ -1,33 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\config\driver; - -class Xml -{ - public function parse($config) - { - if (is_file($config)) { - $content = simplexml_load_file($config); - } else { - $content = simplexml_load_string($config); - } - - $result = (array) $content; - foreach ($result as $key => $val) { - if (is_object($val)) { - $result[$key] = (array) $val; - } - } - - return $result; - } -} diff --git a/thinkphp/library/think/console/Command.php b/thinkphp/library/think/console/Command.php deleted file mode 100644 index d0caad2f6..000000000 --- a/thinkphp/library/think/console/Command.php +++ /dev/null @@ -1,470 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\console; - -use think\Console; -use think\console\input\Argument; -use think\console\input\Definition; -use think\console\input\Option; - -class Command -{ - - /** @var Console */ - private $console; - private $name; - private $aliases = []; - private $definition; - private $help; - private $description; - private $ignoreValidationErrors = false; - private $consoleDefinitionMerged = false; - private $consoleDefinitionMergedWithArgs = false; - private $code; - private $synopsis = []; - private $usages = []; - - /** @var Input */ - protected $input; - - /** @var Output */ - protected $output; - - /** - * 构造方法 - * @param string|null $name 命令名称,如果没有设置则比如在 configure() 里设置 - * @throws \LogicException - * @api - */ - public function __construct($name = null) - { - $this->definition = new Definition(); - - if (null !== $name) { - $this->setName($name); - } - - $this->configure(); - - if (!$this->name) { - throw new \LogicException(sprintf('The command defined in "%s" cannot have an empty name.', get_class($this))); - } - } - - /** - * 忽略验证错误 - */ - public function ignoreValidationErrors() - { - $this->ignoreValidationErrors = true; - } - - /** - * 设置控制台 - * @param Console $console - */ - public function setConsole(Console $console = null) - { - $this->console = $console; - } - - /** - * 获取控制台 - * @return Console - * @api - */ - public function getConsole() - { - return $this->console; - } - - /** - * 是否有效 - * @return bool - */ - public function isEnabled() - { - return true; - } - - /** - * 配置指令 - */ - protected function configure() - { - } - - /** - * 执行指令 - * @param Input $input - * @param Output $output - * @return null|int - * @throws \LogicException - * @see setCode() - */ - protected function execute(Input $input, Output $output) - { - throw new \LogicException('You must override the execute() method in the concrete command class.'); - } - - /** - * 用户验证 - * @param Input $input - * @param Output $output - */ - protected function interact(Input $input, Output $output) - { - } - - /** - * 初始化 - * @param Input $input An InputInterface instance - * @param Output $output An OutputInterface instance - */ - protected function initialize(Input $input, Output $output) - { - } - - /** - * 执行 - * @param Input $input - * @param Output $output - * @return int - * @throws \Exception - * @see setCode() - * @see execute() - */ - public function run(Input $input, Output $output) - { - $this->input = $input; - $this->output = $output; - - $this->getSynopsis(true); - $this->getSynopsis(false); - - $this->mergeConsoleDefinition(); - - try { - $input->bind($this->definition); - } catch (\Exception $e) { - if (!$this->ignoreValidationErrors) { - throw $e; - } - } - - $this->initialize($input, $output); - - if ($input->isInteractive()) { - $this->interact($input, $output); - } - - $input->validate(); - - if ($this->code) { - $statusCode = call_user_func($this->code, $input, $output); - } else { - $statusCode = $this->execute($input, $output); - } - - return is_numeric($statusCode) ? (int) $statusCode : 0; - } - - /** - * 设置执行代码 - * @param callable $code callable(InputInterface $input, OutputInterface $output) - * @return Command - * @throws \InvalidArgumentException - * @see execute() - */ - public function setCode(callable $code) - { - if (!is_callable($code)) { - throw new \InvalidArgumentException('Invalid callable provided to Command::setCode.'); - } - - if (PHP_VERSION_ID >= 50400 && $code instanceof \Closure) { - $r = new \ReflectionFunction($code); - if (null === $r->getClosureThis()) { - $code = \Closure::bind($code, $this); - } - } - - $this->code = $code; - - return $this; - } - - /** - * 合并参数定义 - * @param bool $mergeArgs - */ - public function mergeConsoleDefinition($mergeArgs = true) - { - if (null === $this->console - || (true === $this->consoleDefinitionMerged - && ($this->consoleDefinitionMergedWithArgs || !$mergeArgs)) - ) { - return; - } - - if ($mergeArgs) { - $currentArguments = $this->definition->getArguments(); - $this->definition->setArguments($this->console->getDefinition()->getArguments()); - $this->definition->addArguments($currentArguments); - } - - $this->definition->addOptions($this->console->getDefinition()->getOptions()); - - $this->consoleDefinitionMerged = true; - if ($mergeArgs) { - $this->consoleDefinitionMergedWithArgs = true; - } - } - - /** - * 设置参数定义 - * @param array|Definition $definition - * @return Command - * @api - */ - public function setDefinition($definition) - { - if ($definition instanceof Definition) { - $this->definition = $definition; - } else { - $this->definition->setDefinition($definition); - } - - $this->consoleDefinitionMerged = false; - - return $this; - } - - /** - * 获取参数定义 - * @return Definition - * @api - */ - public function getDefinition() - { - return $this->definition; - } - - /** - * 获取当前指令的参数定义 - * @return Definition - */ - public function getNativeDefinition() - { - return $this->getDefinition(); - } - - /** - * 添加参数 - * @param string $name 名称 - * @param int $mode 类型 - * @param string $description 描述 - * @param mixed $default 默认值 - * @return Command - */ - public function addArgument($name, $mode = null, $description = '', $default = null) - { - $this->definition->addArgument(new Argument($name, $mode, $description, $default)); - - return $this; - } - - /** - * 添加选项 - * @param string $name 选项名称 - * @param string $shortcut 别名 - * @param int $mode 类型 - * @param string $description 描述 - * @param mixed $default 默认值 - * @return Command - */ - public function addOption($name, $shortcut = null, $mode = null, $description = '', $default = null) - { - $this->definition->addOption(new Option($name, $shortcut, $mode, $description, $default)); - - return $this; - } - - /** - * 设置指令名称 - * @param string $name - * @return Command - * @throws \InvalidArgumentException - */ - public function setName($name) - { - $this->validateName($name); - - $this->name = $name; - - return $this; - } - - /** - * 获取指令名称 - * @return string - */ - public function getName() - { - return $this->name; - } - - /** - * 设置描述 - * @param string $description - * @return Command - */ - public function setDescription($description) - { - $this->description = $description; - - return $this; - } - - /** - * 获取描述 - * @return string - */ - public function getDescription() - { - return $this->description; - } - - /** - * 设置帮助信息 - * @param string $help - * @return Command - */ - public function setHelp($help) - { - $this->help = $help; - - return $this; - } - - /** - * 获取帮助信息 - * @return string - */ - public function getHelp() - { - return $this->help; - } - - /** - * 描述信息 - * @return string - */ - public function getProcessedHelp() - { - $name = $this->name; - - $placeholders = [ - '%command.name%', - '%command.full_name%', - ]; - $replacements = [ - $name, - $_SERVER['PHP_SELF'] . ' ' . $name, - ]; - - return str_replace($placeholders, $replacements, $this->getHelp()); - } - - /** - * 设置别名 - * @param string[] $aliases - * @return Command - * @throws \InvalidArgumentException - */ - public function setAliases($aliases) - { - if (!is_array($aliases) && !$aliases instanceof \Traversable) { - throw new \InvalidArgumentException('$aliases must be an array or an instance of \Traversable'); - } - - foreach ($aliases as $alias) { - $this->validateName($alias); - } - - $this->aliases = $aliases; - - return $this; - } - - /** - * 获取别名 - * @return array - */ - public function getAliases() - { - return $this->aliases; - } - - /** - * 获取简介 - * @param bool $short 是否简单的 - * @return string - */ - public function getSynopsis($short = false) - { - $key = $short ? 'short' : 'long'; - - if (!isset($this->synopsis[$key])) { - $this->synopsis[$key] = trim(sprintf('%s %s', $this->name, $this->definition->getSynopsis($short))); - } - - return $this->synopsis[$key]; - } - - /** - * 添加用法介绍 - * @param string $usage - * @return $this - */ - public function addUsage($usage) - { - if (0 !== strpos($usage, $this->name)) { - $usage = sprintf('%s %s', $this->name, $usage); - } - - $this->usages[] = $usage; - - return $this; - } - - /** - * 获取用法介绍 - * @return array - */ - public function getUsages() - { - return $this->usages; - } - - /** - * 验证指令名称 - * @param string $name - * @throws \InvalidArgumentException - */ - private function validateName($name) - { - if (!preg_match('/^[^\:]++(\:[^\:]++)*$/', $name)) { - throw new \InvalidArgumentException(sprintf('Command name "%s" is invalid.', $name)); - } - } -} diff --git a/thinkphp/library/think/console/Input.php b/thinkphp/library/think/console/Input.php deleted file mode 100644 index 2482dfdc0..000000000 --- a/thinkphp/library/think/console/Input.php +++ /dev/null @@ -1,464 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\console; - -use think\console\input\Argument; -use think\console\input\Definition; -use think\console\input\Option; - -class Input -{ - - /** - * @var Definition - */ - protected $definition; - - /** - * @var Option[] - */ - protected $options = []; - - /** - * @var Argument[] - */ - protected $arguments = []; - - protected $interactive = true; - - private $tokens; - private $parsed; - - public function __construct($argv = null) - { - if (null === $argv) { - $argv = $_SERVER['argv']; - // 去除命令名 - array_shift($argv); - } - - $this->tokens = $argv; - - $this->definition = new Definition(); - } - - protected function setTokens(array $tokens) - { - $this->tokens = $tokens; - } - - /** - * 绑定实例 - * @param Definition $definition A InputDefinition instance - */ - public function bind(Definition $definition) - { - $this->arguments = []; - $this->options = []; - $this->definition = $definition; - - $this->parse(); - } - - /** - * 解析参数 - */ - protected function parse() - { - $parseOptions = true; - $this->parsed = $this->tokens; - while (null !== $token = array_shift($this->parsed)) { - if ($parseOptions && '' == $token) { - $this->parseArgument($token); - } elseif ($parseOptions && '--' == $token) { - $parseOptions = false; - } elseif ($parseOptions && 0 === strpos($token, '--')) { - $this->parseLongOption($token); - } elseif ($parseOptions && '-' === $token[0] && '-' !== $token) { - $this->parseShortOption($token); - } else { - $this->parseArgument($token); - } - } - } - - /** - * 解析短选项 - * @param string $token 当前的指令. - */ - private function parseShortOption($token) - { - $name = substr($token, 1); - - if (strlen($name) > 1) { - if ($this->definition->hasShortcut($name[0]) - && $this->definition->getOptionForShortcut($name[0])->acceptValue() - ) { - $this->addShortOption($name[0], substr($name, 1)); - } else { - $this->parseShortOptionSet($name); - } - } else { - $this->addShortOption($name, null); - } - } - - /** - * 解析短选项 - * @param string $name 当前指令 - * @throws \RuntimeException - */ - private function parseShortOptionSet($name) - { - $len = strlen($name); - for ($i = 0; $i < $len; ++$i) { - if (!$this->definition->hasShortcut($name[$i])) { - throw new \RuntimeException(sprintf('The "-%s" option does not exist.', $name[$i])); - } - - $option = $this->definition->getOptionForShortcut($name[$i]); - if ($option->acceptValue()) { - $this->addLongOption($option->getName(), $i === $len - 1 ? null : substr($name, $i + 1)); - - break; - } else { - $this->addLongOption($option->getName(), null); - } - } - } - - /** - * 解析完整选项 - * @param string $token 当前指令 - */ - private function parseLongOption($token) - { - $name = substr($token, 2); - - if (false !== $pos = strpos($name, '=')) { - $this->addLongOption(substr($name, 0, $pos), substr($name, $pos + 1)); - } else { - $this->addLongOption($name, null); - } - } - - /** - * 解析参数 - * @param string $token 当前指令 - * @throws \RuntimeException - */ - private function parseArgument($token) - { - $c = count($this->arguments); - - if ($this->definition->hasArgument($c)) { - $arg = $this->definition->getArgument($c); - - $this->arguments[$arg->getName()] = $arg->isArray() ? [$token] : $token; - - } elseif ($this->definition->hasArgument($c - 1) && $this->definition->getArgument($c - 1)->isArray()) { - $arg = $this->definition->getArgument($c - 1); - - $this->arguments[$arg->getName()][] = $token; - } else { - throw new \RuntimeException('Too many arguments.'); - } - } - - /** - * 添加一个短选项的值 - * @param string $shortcut 短名称 - * @param mixed $value 值 - * @throws \RuntimeException - */ - private function addShortOption($shortcut, $value) - { - if (!$this->definition->hasShortcut($shortcut)) { - throw new \RuntimeException(sprintf('The "-%s" option does not exist.', $shortcut)); - } - - $this->addLongOption($this->definition->getOptionForShortcut($shortcut)->getName(), $value); - } - - /** - * 添加一个完整选项的值 - * @param string $name 选项名 - * @param mixed $value 值 - * @throws \RuntimeException - */ - private function addLongOption($name, $value) - { - if (!$this->definition->hasOption($name)) { - throw new \RuntimeException(sprintf('The "--%s" option does not exist.', $name)); - } - - $option = $this->definition->getOption($name); - - if (false === $value) { - $value = null; - } - - if (null !== $value && !$option->acceptValue()) { - throw new \RuntimeException(sprintf('The "--%s" option does not accept a value.', $name, $value)); - } - - if (null === $value && $option->acceptValue() && count($this->parsed)) { - $next = array_shift($this->parsed); - if (isset($next[0]) && '-' !== $next[0]) { - $value = $next; - } elseif (empty($next)) { - $value = ''; - } else { - array_unshift($this->parsed, $next); - } - } - - if (null === $value) { - if ($option->isValueRequired()) { - throw new \RuntimeException(sprintf('The "--%s" option requires a value.', $name)); - } - - if (!$option->isArray()) { - $value = $option->isValueOptional() ? $option->getDefault() : true; - } - } - - if ($option->isArray()) { - $this->options[$name][] = $value; - } else { - $this->options[$name] = $value; - } - } - - /** - * 获取第一个参数 - * @return string|null - */ - public function getFirstArgument() - { - foreach ($this->tokens as $token) { - if ($token && '-' === $token[0]) { - continue; - } - - return $token; - } - return; - } - - /** - * 检查原始参数是否包含某个值 - * @param string|array $values 需要检查的值 - * @return bool - */ - public function hasParameterOption($values) - { - $values = (array) $values; - - foreach ($this->tokens as $token) { - foreach ($values as $value) { - if ($token === $value || 0 === strpos($token, $value . '=')) { - return true; - } - } - } - - return false; - } - - /** - * 获取原始选项的值 - * @param string|array $values 需要检查的值 - * @param mixed $default 默认值 - * @return mixed The option value - */ - public function getParameterOption($values, $default = false) - { - $values = (array) $values; - $tokens = $this->tokens; - - while (0 < count($tokens)) { - $token = array_shift($tokens); - - foreach ($values as $value) { - if ($token === $value || 0 === strpos($token, $value . '=')) { - if (false !== $pos = strpos($token, '=')) { - return substr($token, $pos + 1); - } - - return array_shift($tokens); - } - } - } - - return $default; - } - - /** - * 验证输入 - * @throws \RuntimeException - */ - public function validate() - { - if (count($this->arguments) < $this->definition->getArgumentRequiredCount()) { - throw new \RuntimeException('Not enough arguments.'); - } - } - - /** - * 检查输入是否是交互的 - * @return bool - */ - public function isInteractive() - { - return $this->interactive; - } - - /** - * 设置输入的交互 - * @param bool - */ - public function setInteractive($interactive) - { - $this->interactive = (bool) $interactive; - } - - /** - * 获取所有的参数 - * @return Argument[] - */ - public function getArguments() - { - return array_merge($this->definition->getArgumentDefaults(), $this->arguments); - } - - /** - * 根据名称获取参数 - * @param string $name 参数名 - * @return mixed - * @throws \InvalidArgumentException - */ - public function getArgument($name) - { - if (!$this->definition->hasArgument($name)) { - throw new \InvalidArgumentException(sprintf('The "%s" argument does not exist.', $name)); - } - - return isset($this->arguments[$name]) ? $this->arguments[$name] : $this->definition->getArgument($name) - ->getDefault(); - } - - /** - * 设置参数的值 - * @param string $name 参数名 - * @param string $value 值 - * @throws \InvalidArgumentException - */ - public function setArgument($name, $value) - { - if (!$this->definition->hasArgument($name)) { - throw new \InvalidArgumentException(sprintf('The "%s" argument does not exist.', $name)); - } - - $this->arguments[$name] = $value; - } - - /** - * 检查是否存在某个参数 - * @param string|int $name 参数名或位置 - * @return bool - */ - public function hasArgument($name) - { - return $this->definition->hasArgument($name); - } - - /** - * 获取所有的选项 - * @return Option[] - */ - public function getOptions() - { - return array_merge($this->definition->getOptionDefaults(), $this->options); - } - - /** - * 获取选项值 - * @param string $name 选项名称 - * @return mixed - * @throws \InvalidArgumentException - */ - public function getOption($name) - { - if (!$this->definition->hasOption($name)) { - throw new \InvalidArgumentException(sprintf('The "%s" option does not exist.', $name)); - } - - return isset($this->options[$name]) ? $this->options[$name] : $this->definition->getOption($name)->getDefault(); - } - - /** - * 设置选项值 - * @param string $name 选项名 - * @param string|bool $value 值 - * @throws \InvalidArgumentException - */ - public function setOption($name, $value) - { - if (!$this->definition->hasOption($name)) { - throw new \InvalidArgumentException(sprintf('The "%s" option does not exist.', $name)); - } - - $this->options[$name] = $value; - } - - /** - * 是否有某个选项 - * @param string $name 选项名 - * @return bool - */ - public function hasOption($name) - { - return $this->definition->hasOption($name) && isset($this->options[$name]); - } - - /** - * 转义指令 - * @param string $token - * @return string - */ - public function escapeToken($token) - { - return preg_match('{^[\w-]+$}', $token) ? $token : escapeshellarg($token); - } - - /** - * 返回传递给命令的参数的字符串 - * @return string - */ - public function __toString() - { - $tokens = array_map(function ($token) { - if (preg_match('{^(-[^=]+=)(.+)}', $token, $match)) { - return $match[1] . $this->escapeToken($match[2]); - } - - if ($token && '-' !== $token[0]) { - return $this->escapeToken($token); - } - - return $token; - }, $this->tokens); - - return implode(' ', $tokens); - } -} diff --git a/thinkphp/library/think/console/LICENSE b/thinkphp/library/think/console/LICENSE deleted file mode 100644 index 0abe056e1..000000000 --- a/thinkphp/library/think/console/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2004-2016 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 -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. \ No newline at end of file diff --git a/thinkphp/library/think/console/Output.php b/thinkphp/library/think/console/Output.php deleted file mode 100644 index 65dc9fb81..000000000 --- a/thinkphp/library/think/console/Output.php +++ /dev/null @@ -1,222 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\console; - -use Exception; -use think\console\output\Ask; -use think\console\output\Descriptor; -use think\console\output\driver\Buffer; -use think\console\output\driver\Console; -use think\console\output\driver\Nothing; -use think\console\output\Question; -use think\console\output\question\Choice; -use think\console\output\question\Confirmation; - -/** - * Class Output - * @package think\console - * - * @see \think\console\output\driver\Console::setDecorated - * @method void setDecorated($decorated) - * - * @see \think\console\output\driver\Buffer::fetch - * @method string fetch() - * - * @method void info($message) - * @method void error($message) - * @method void comment($message) - * @method void warning($message) - * @method void highlight($message) - * @method void question($message) - */ -class Output -{ - const VERBOSITY_QUIET = 0; - const VERBOSITY_NORMAL = 1; - const VERBOSITY_VERBOSE = 2; - const VERBOSITY_VERY_VERBOSE = 3; - const VERBOSITY_DEBUG = 4; - - const OUTPUT_NORMAL = 0; - const OUTPUT_RAW = 1; - const OUTPUT_PLAIN = 2; - - private $verbosity = self::VERBOSITY_NORMAL; - - /** @var Buffer|Console|Nothing */ - private $handle = null; - - protected $styles = [ - 'info', - 'error', - 'comment', - 'question', - 'highlight', - 'warning' - ]; - - public function __construct($driver = 'console') - { - $class = '\\think\\console\\output\\driver\\' . ucwords($driver); - - $this->handle = new $class($this); - } - - public function ask(Input $input, $question, $default = null, $validator = null) - { - $question = new Question($question, $default); - $question->setValidator($validator); - - return $this->askQuestion($input, $question); - } - - public function askHidden(Input $input, $question, $validator = null) - { - $question = new Question($question); - - $question->setHidden(true); - $question->setValidator($validator); - - return $this->askQuestion($input, $question); - } - - public function confirm(Input $input, $question, $default = true) - { - return $this->askQuestion($input, new Confirmation($question, $default)); - } - - /** - * {@inheritdoc} - */ - public function choice(Input $input, $question, array $choices, $default = null) - { - if (null !== $default) { - $values = array_flip($choices); - $default = $values[$default]; - } - - return $this->askQuestion($input, new Choice($question, $choices, $default)); - } - - protected function askQuestion(Input $input, Question $question) - { - $ask = new Ask($input, $this, $question); - $answer = $ask->run(); - - if ($input->isInteractive()) { - $this->newLine(); - } - - return $answer; - } - - protected function block($style, $message) - { - $this->writeln("<{$style}>{$message}"); - } - - /** - * 输出空行 - * @param int $count - */ - public function newLine($count = 1) - { - $this->write(str_repeat(PHP_EOL, $count)); - } - - /** - * 输出信息并换行 - * @param string $messages - * @param int $type - */ - public function writeln($messages, $type = self::OUTPUT_NORMAL) - { - $this->write($messages, true, $type); - } - - /** - * 输出信息 - * @param string $messages - * @param bool $newline - * @param int $type - */ - public function write($messages, $newline = false, $type = self::OUTPUT_NORMAL) - { - $this->handle->write($messages, $newline, $type); - } - - public function renderException(\Exception $e) - { - $this->handle->renderException($e); - } - - /** - * {@inheritdoc} - */ - public function setVerbosity($level) - { - $this->verbosity = (int) $level; - } - - /** - * {@inheritdoc} - */ - public function getVerbosity() - { - return $this->verbosity; - } - - public function isQuiet() - { - return self::VERBOSITY_QUIET === $this->verbosity; - } - - public function isVerbose() - { - return self::VERBOSITY_VERBOSE <= $this->verbosity; - } - - public function isVeryVerbose() - { - return self::VERBOSITY_VERY_VERBOSE <= $this->verbosity; - } - - public function isDebug() - { - return self::VERBOSITY_DEBUG <= $this->verbosity; - } - - public function describe($object, array $options = []) - { - $descriptor = new Descriptor(); - $options = array_merge([ - 'raw_text' => false, - ], $options); - - $descriptor->describe($this, $object, $options); - } - - public function __call($method, $args) - { - if (in_array($method, $this->styles)) { - array_unshift($args, $method); - return call_user_func_array([$this, 'block'], $args); - } - - if ($this->handle && method_exists($this->handle, $method)) { - return call_user_func_array([$this->handle, $method], $args); - } else { - throw new Exception('method not exists:' . __CLASS__ . '->' . $method); - } - } - -} diff --git a/thinkphp/library/think/console/bin/README.md b/thinkphp/library/think/console/bin/README.md deleted file mode 100644 index 9acc52fba..000000000 --- a/thinkphp/library/think/console/bin/README.md +++ /dev/null @@ -1 +0,0 @@ -console 工具使用 hiddeninput.exe 在 windows 上隐藏密码输入,该二进制文件由第三方提供,相关源码和其他细节可以在 [Hidden Input](https://github.com/Seldaek/hidden-input) 找到。 diff --git a/thinkphp/library/think/console/bin/hiddeninput.exe b/thinkphp/library/think/console/bin/hiddeninput.exe deleted file mode 100644 index c8cf65e8d819e6e525121cf6b21f1c2429746038..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9216 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 J0sQ~1{4brj`U(I5 diff --git a/thinkphp/library/think/console/command/Build.php b/thinkphp/library/think/console/command/Build.php deleted file mode 100644 index 2b83199b1..000000000 --- a/thinkphp/library/think/console/command/Build.php +++ /dev/null @@ -1,60 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\console\command; - -use think\console\Command; -use think\console\Input; -use think\console\input\Option; -use think\console\Output; -use think\facade\App; -use think\facade\Build as AppBuild; - -class Build extends Command -{ - - /** - * {@inheritdoc} - */ - protected function configure() - { - $this->setName('build') - ->setDefinition([ - new Option('config', null, Option::VALUE_OPTIONAL, "build.php path"), - new Option('module', null, Option::VALUE_OPTIONAL, "module name"), - ]) - ->setDescription('Build Application Dirs'); - } - - protected function execute(Input $input, Output $output) - { - if ($input->hasOption('module')) { - AppBuild::module($input->getOption('module')); - $output->writeln("Successed"); - return; - } - - if ($input->hasOption('config')) { - $build = include $input->getOption('config'); - } else { - $build = include App::getAppPath() . 'build.php'; - } - - if (empty($build)) { - $output->writeln("Build Config Is Empty"); - return; - } - - AppBuild::run($build); - $output->writeln("Successed"); - - } -} diff --git a/thinkphp/library/think/console/command/Clear.php b/thinkphp/library/think/console/command/Clear.php deleted file mode 100644 index 9896aea56..000000000 --- a/thinkphp/library/think/console/command/Clear.php +++ /dev/null @@ -1,45 +0,0 @@ - -// +---------------------------------------------------------------------- -namespace think\console\command; - -use think\console\Command; -use think\console\Input; -use think\console\input\Option; -use think\console\Output; -use think\facade\App; - -class Clear extends Command -{ - protected function configure() - { - // 指令配置 - $this - ->setName('clear') - ->addOption('path', 'd', Option::VALUE_OPTIONAL, 'path to clear', null) - ->setDescription('Clear runtime file'); - } - - protected function execute(Input $input, Output $output) - { - $path = $input->getOption('path') ?: App::getRuntimePath(); - $files = scandir($path); - if ($files) { - foreach ($files as $file) { - if ('.' != $file && '..' != $file && is_dir($path . $file)) { - array_map('unlink', glob($path . $file . DIRECTORY_SEPARATOR . '*.*')); - } elseif ('.gitignore' != $file && is_file($path . $file)) { - unlink($path . $file); - } - } - } - $output->writeln("Clear Successed"); - } -} diff --git a/thinkphp/library/think/console/command/Help.php b/thinkphp/library/think/console/command/Help.php deleted file mode 100644 index bae2c6533..000000000 --- a/thinkphp/library/think/console/command/Help.php +++ /dev/null @@ -1,69 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\console\command; - -use think\console\Command; -use think\console\Input; -use think\console\input\Argument as InputArgument; -use think\console\input\Option as InputOption; -use think\console\Output; - -class Help extends Command -{ - - private $command; - - /** - * {@inheritdoc} - */ - protected function configure() - { - $this->ignoreValidationErrors(); - - $this->setName('help')->setDefinition([ - new InputArgument('command_name', InputArgument::OPTIONAL, 'The command name', 'help'), - new InputOption('raw', null, InputOption::VALUE_NONE, 'To output raw command help'), - ])->setDescription('Displays help for a command')->setHelp(<<%command.name% command displays help for a given command: - - php %command.full_name% list - -To display the list of available commands, please use the list command. -EOF - ); - } - - /** - * Sets the command. - * @param Command $command The command to set - */ - public function setCommand(Command $command) - { - $this->command = $command; - } - - /** - * {@inheritdoc} - */ - protected function execute(Input $input, Output $output) - { - if (null === $this->command) { - $this->command = $this->getConsole()->find($input->getArgument('command_name')); - } - - $output->describe($this->command, [ - 'raw_text' => $input->getOption('raw'), - ]); - - $this->command = null; - } -} diff --git a/thinkphp/library/think/console/command/Lists.php b/thinkphp/library/think/console/command/Lists.php deleted file mode 100644 index 084ddaa23..000000000 --- a/thinkphp/library/think/console/command/Lists.php +++ /dev/null @@ -1,74 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\console\command; - -use think\console\Command; -use think\console\Input; -use think\console\Output; -use think\console\input\Argument as InputArgument; -use think\console\input\Option as InputOption; -use think\console\input\Definition as InputDefinition; - -class Lists extends Command -{ - - /** - * {@inheritdoc} - */ - protected function configure() - { - $this->setName('list')->setDefinition($this->createDefinition())->setDescription('Lists commands')->setHelp(<<%command.name% command lists all commands: - - php %command.full_name% - -You can also display the commands for a specific namespace: - - php %command.full_name% test - -It's also possible to get raw list of commands (useful for embedding command runner): - - php %command.full_name% --raw -EOF - ); - } - - /** - * {@inheritdoc} - */ - public function getNativeDefinition() - { - return $this->createDefinition(); - } - - /** - * {@inheritdoc} - */ - protected function execute(Input $input, Output $output) - { - $output->describe($this->getConsole(), [ - 'raw_text' => $input->getOption('raw'), - 'namespace' => $input->getArgument('namespace'), - ]); - } - - /** - * {@inheritdoc} - */ - private function createDefinition() - { - return new InputDefinition([ - new InputArgument('namespace', InputArgument::OPTIONAL, 'The namespace name'), - new InputOption('raw', null, InputOption::VALUE_NONE, 'To output raw command list') - ]); - } -} diff --git a/thinkphp/library/think/console/command/Make.php b/thinkphp/library/think/console/command/Make.php deleted file mode 100644 index 3bdfc6b9d..000000000 --- a/thinkphp/library/think/console/command/Make.php +++ /dev/null @@ -1,111 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\console\command; - -use think\console\Command; -use think\console\Input; -use think\console\input\Argument; -use think\console\Output; -use think\facade\App; -use think\facade\Config; -use think\facade\Env; - -abstract class Make extends Command -{ - - protected $type; - - abstract protected function getStub(); - - protected function configure() - { - $this->addArgument('name', Argument::REQUIRED, "The name of the class"); - } - - protected function execute(Input $input, Output $output) - { - - $name = trim($input->getArgument('name')); - - $classname = $this->getClassName($name); - - $pathname = $this->getPathName($classname); - - if (is_file($pathname)) { - $output->writeln('' . $this->type . ' already exists!'); - return false; - } - - if (!is_dir(dirname($pathname))) { - mkdir(strtolower(dirname($pathname)), 0755, true); - } - - file_put_contents($pathname, $this->buildClass($classname)); - - $output->writeln('' . $this->type . ' created successfully.'); - - } - - protected function buildClass($name) - { - $stub = file_get_contents($this->getStub()); - - $namespace = trim(implode('\\', array_slice(explode('\\', $name), 0, -1)), '\\'); - - $class = str_replace($namespace . '\\', '', $name); - - return str_replace(['{%className%}', '{%namespace%}', '{%app_namespace%}'], [ - $class, - $namespace, - App::getNamespace(), - ], $stub); - - } - - protected function getPathName($name) - { - $name = str_replace(App::getNamespace() . '\\', '', $name); - - return Env::get('app_path') . ltrim(str_replace('\\', '/', $name), '/') . '.php'; - } - - protected function getClassName($name) - { - $appNamespace = App::getNamespace(); - - if (strpos($name, $appNamespace . '\\') !== false) { - return $name; - } - - if (Config::get('app_multi_module')) { - if (strpos($name, '/')) { - list($module, $name) = explode('/', $name, 2); - } else { - $module = 'common'; - } - } else { - $module = null; - } - - if (strpos($name, '/') !== false) { - $name = str_replace('/', '\\', $name); - } - - return $this->getNamespace($appNamespace, $module) . '\\' . $name; - } - - protected function getNamespace($appNamespace, $module) - { - return $module ? ($appNamespace . '\\' . $module) : $appNamespace; - } - -} diff --git a/thinkphp/library/think/console/command/RunServer.php b/thinkphp/library/think/console/command/RunServer.php deleted file mode 100644 index 4dd610b6e..000000000 --- a/thinkphp/library/think/console/command/RunServer.php +++ /dev/null @@ -1,54 +0,0 @@ - -// +---------------------------------------------------------------------- -namespace think\console\command; - -use think\console\Command; -use think\console\Input; -use think\console\input\Option; -use think\console\Output; -use think\facade\App; - -class RunServer extends Command -{ - - public function configure() - { - $this->setName('run') - ->addOption('host', 'H', Option::VALUE_OPTIONAL, - 'The host to server the application on', '127.0.0.1') - ->addOption('port', 'p', Option::VALUE_OPTIONAL, - 'The port to server the application on', 8000) - ->addOption('root', 'r', Option::VALUE_OPTIONAL, - 'The document root of the application', App::getRootPath() . 'public') - ->setDescription('PHP Built-in Server for ThinkPHP'); - } - - public function execute(Input $input, Output $output) - { - $host = $input->getOption('host'); - $port = $input->getOption('port'); - $root = $input->getOption('root'); - - $command = sprintf( - 'php -S %s:%d -t %s %s', - $host, - $port, - escapeshellarg($root), - escapeshellarg($root . DIRECTORY_SEPARATOR . 'router.php') - ); - - $output->writeln(sprintf('ThinkPHP Development server is started On ', $host, $port)); - $output->writeln(sprintf('You can exit with `CTRL-C`')); - $output->writeln(sprintf('Document root is: %s', $root)); - passthru($command); - } - -} diff --git a/thinkphp/library/think/console/command/make/Controller.php b/thinkphp/library/think/console/command/make/Controller.php deleted file mode 100644 index e4cc5bb57..000000000 --- a/thinkphp/library/think/console/command/make/Controller.php +++ /dev/null @@ -1,57 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\console\command\make; - -use think\console\command\Make; -use think\console\input\Option; -use think\facade\Config; - -class Controller extends Make -{ - - protected $type = "Controller"; - - protected function configure() - { - parent::configure(); - $this->setName('make:controller') - ->addOption('api', null, Option::VALUE_NONE, 'Generate an api controller class.') - ->addOption('plain', null, Option::VALUE_NONE, 'Generate an empty controller class.') - ->setDescription('Create a new resource controller class'); - } - - protected function getStub() - { - $stubPath = __DIR__ . DIRECTORY_SEPARATOR . 'stubs' . DIRECTORY_SEPARATOR; - - if ($this->input->getOption('api')) { - return $stubPath . 'controller.api.stub'; - } - - if ($this->input->getOption('plain')) { - return $stubPath . 'controller.plain.stub'; - } - - return $stubPath . 'controller.stub'; - } - - protected function getClassName($name) - { - return parent::getClassName($name) . (Config::get('controller_suffix') ? ucfirst(Config::get('url_controller_layer')) : ''); - } - - protected function getNamespace($appNamespace, $module) - { - return parent::getNamespace($appNamespace, $module) . '\controller'; - } - -} diff --git a/thinkphp/library/think/console/command/make/Middleware.php b/thinkphp/library/think/console/command/make/Middleware.php deleted file mode 100644 index bfe821b03..000000000 --- a/thinkphp/library/think/console/command/make/Middleware.php +++ /dev/null @@ -1,36 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\console\command\make; - -use think\console\command\Make; - -class Middleware extends Make -{ - protected $type = "Middleware"; - - protected function configure() - { - parent::configure(); - $this->setName('make:middleware') - ->setDescription('Create a new middleware class'); - } - - protected function getStub() - { - return __DIR__ . DIRECTORY_SEPARATOR . 'stubs' . DIRECTORY_SEPARATOR . 'middleware.stub'; - } - - protected function getNamespace($appNamespace, $module) - { - return parent::getNamespace($appNamespace, 'http') . '\middleware'; - } -} diff --git a/thinkphp/library/think/console/command/make/Model.php b/thinkphp/library/think/console/command/make/Model.php deleted file mode 100644 index 03e6b3fcd..000000000 --- a/thinkphp/library/think/console/command/make/Model.php +++ /dev/null @@ -1,36 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\console\command\make; - -use think\console\command\Make; - -class Model extends Make -{ - protected $type = "Model"; - - protected function configure() - { - parent::configure(); - $this->setName('make:model') - ->setDescription('Create a new model class'); - } - - protected function getStub() - { - return __DIR__ . DIRECTORY_SEPARATOR . 'stubs' . DIRECTORY_SEPARATOR . 'model.stub'; - } - - protected function getNamespace($appNamespace, $module) - { - return parent::getNamespace($appNamespace, $module) . '\model'; - } -} diff --git a/thinkphp/library/think/console/command/make/stubs/controller.api.stub b/thinkphp/library/think/console/command/make/stubs/controller.api.stub deleted file mode 100644 index aed9edfbd..000000000 --- a/thinkphp/library/think/console/command/make/stubs/controller.api.stub +++ /dev/null @@ -1,64 +0,0 @@ - -// +---------------------------------------------------------------------- -namespace think\console\command\optimize; - -use think\console\Command; -use think\console\Input; -use think\console\Output; -use think\Container; - -class Autoload extends Command -{ - - protected function configure() - { - $this->setName('optimize:autoload') - ->setDescription('Optimizes PSR0 and PSR4 packages to be loaded with classmaps too, good for production.'); - } - - protected function execute(Input $input, Output $output) - { - - $classmapFile = <<getNamespace() . '\\' => realpath(rtrim($app->getAppPath())), - 'think\\' => $app->getAppPath() . 'library/think', - 'traits\\' => $app->getAppPath() . 'library/traits', - '' => realpath(rtrim($app->getRootPath() . 'extend')), - ]; - - krsort($namespacesToScan); - $classMap = []; - foreach ($namespacesToScan as $namespace => $dir) { - - if (!is_dir($dir)) { - continue; - } - - $namespaceFilter = '' === $namespace ? null : $namespace; - $classMap = $this->addClassMapCode($dir, $namespaceFilter, $classMap); - } - - ksort($classMap); - foreach ($classMap as $class => $code) { - $classmapFile .= ' ' . var_export($class, true) . ' => ' . $code; - } - $classmapFile .= "];\n"; - $runtimePath = $app->getRuntimePath(); - if (!is_dir($runtimePath)) { - @mkdir($runtimePath, 0755, true); - } - - file_put_contents($runtimePath . 'classmap.php', $classmapFile); - - $output->writeln('Succeed!'); - } - - protected function addClassMapCode($dir, $namespace, $classMap) - { - foreach ($this->createMap($dir, $namespace) as $class => $path) { - - $pathCode = $this->getPathCode($path) . ",\n"; - - if (!isset($classMap[$class])) { - $classMap[$class] = $pathCode; - } elseif ($classMap[$class] !== $pathCode && !preg_match('{/(test|fixture|example|stub)s?/}i', strtr($classMap[$class] . ' ' . $path, '\\', '/'))) { - $this->output->writeln( - 'Warning: Ambiguous class resolution, "' . $class . '"' . - ' was found in both "' . str_replace(["',\n"], [ - '', - ], $classMap[$class]) . '" and "' . $path . '", the first will be used.' - ); - } - } - return $classMap; - } - - protected function getPathCode($path) - { - $baseDir = ''; - $app = Container::get('app'); - $appPath = $this->normalizePath(realpath($app->getAppPath())); - $libPath = $this->normalizePath(realpath($app->getThinkPath() . 'library')); - $extendPath = $this->normalizePath(realpath($app->getRootPath() . 'extend')); - $path = $this->normalizePath($path); - - if (strpos($path, $libPath . '/') === 0) { - $path = substr($path, strlen($app->getThinkPath() . 'library')); - $baseDir = "'" . $libPath . "/'"; - } elseif (strpos($path, $appPath . '/') === 0) { - $path = substr($path, strlen($appPath) + 1); - $baseDir = "'" . $appPath . "/'"; - } elseif (strpos($path, $extendPath . '/') === 0) { - $path = substr($path, strlen($extendPath) + 1); - $baseDir = "'" . $extendPath . "/'"; - } - - if (false !== $path) { - $baseDir .= " . "; - } - - return $baseDir . ((false !== $path) ? var_export($path, true) : ""); - } - - protected function normalizePath($path) - { - $parts = []; - $path = strtr($path, '\\', '/'); - $prefix = ''; - $absolute = false; - - if (preg_match('{^([0-9a-z]+:(?://(?:[a-z]:)?)?)}i', $path, $match)) { - $prefix = $match[1]; - $path = substr($path, strlen($prefix)); - } - - if (substr($path, 0, 1) === '/') { - $absolute = true; - $path = substr($path, 1); - } - - $up = false; - foreach (explode('/', $path) as $chunk) { - if ('..' === $chunk && ($absolute || $up)) { - array_pop($parts); - $up = !(empty($parts) || '..' === end($parts)); - } elseif ('.' !== $chunk && '' !== $chunk) { - $parts[] = $chunk; - $up = '..' !== $chunk; - } - } - - return $prefix . ($absolute ? '/' : '') . implode('/', $parts); - } - - protected function createMap($path, $namespace = null) - { - if (is_string($path)) { - if (is_file($path)) { - $path = [new \SplFileInfo($path)]; - } elseif (is_dir($path)) { - - $objects = new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($path), \RecursiveIteratorIterator::SELF_FIRST); - - $path = []; - - /** @var \SplFileInfo $object */ - foreach ($objects as $object) { - if ($object->isFile() && $object->getExtension() == 'php') { - $path[] = $object; - } - } - } else { - throw new \RuntimeException( - 'Could not scan for classes inside "' . $path . - '" which does not appear to be a file nor a folder' - ); - } - } - - $map = []; - - /** @var \SplFileInfo $file */ - foreach ($path as $file) { - $filePath = $file->getRealPath(); - - if (pathinfo($filePath, PATHINFO_EXTENSION) != 'php') { - continue; - } - - $classes = $this->findClasses($filePath); - - foreach ($classes as $class) { - if (null !== $namespace && 0 !== strpos($class, $namespace)) { - continue; - } - - if (!isset($map[$class])) { - $map[$class] = $filePath; - } elseif ($map[$class] !== $filePath && !preg_match('{/(test|fixture|example|stub)s?/}i', strtr($map[$class] . ' ' . $filePath, '\\', '/'))) { - $this->output->writeln( - 'Warning: Ambiguous class resolution, "' . $class . '"' . - ' was found in both "' . $map[$class] . '" and "' . $filePath . '", the first will be used.' - ); - } - } - } - - return $map; - } - - protected function findClasses($path) - { - $extraTypes = '|trait'; - - $contents = @php_strip_whitespace($path); - if (!$contents) { - if (!file_exists($path)) { - $message = 'File at "%s" does not exist, check your classmap definitions'; - } elseif (!is_readable($path)) { - $message = 'File at "%s" is not readable, check its permissions'; - } elseif ('' === trim(file_get_contents($path))) { - return []; - } else { - $message = 'File at "%s" could not be parsed as PHP, it may be binary or corrupted'; - } - $error = error_get_last(); - if (isset($error['message'])) { - $message .= PHP_EOL . 'The following message may be helpful:' . PHP_EOL . $error['message']; - } - throw new \RuntimeException(sprintf($message, $path)); - } - - if (!preg_match('{\b(?:class|interface' . $extraTypes . ')\s}i', $contents)) { - return []; - } - - // strip heredocs/nowdocs - $contents = preg_replace('{<<<\s*(\'?)(\w+)\\1(?:\r\n|\n|\r)(?:.*?)(?:\r\n|\n|\r)\\2(?=\r\n|\n|\r|;)}s', 'null', $contents); - // strip strings - $contents = preg_replace('{"[^"\\\\]*+(\\\\.[^"\\\\]*+)*+"|\'[^\'\\\\]*+(\\\\.[^\'\\\\]*+)*+\'}s', 'null', $contents); - // strip leading non-php code if needed - if (substr($contents, 0, 2) !== '.+<\?}s', '?>'); - if (false !== $pos && false === strpos(substr($contents, $pos), '])(?Pclass|interface' . $extraTypes . ') \s++ (?P[a-zA-Z_\x7f-\xff:][a-zA-Z0-9_\x7f-\xff:\-]*+) - | \b(?])(?Pnamespace) (?P\s++[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*+(?:\s*+\\\\\s*+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*+)*+)? \s*+ [\{;] - ) - }ix', $contents, $matches); - - $classes = []; - $namespace = ''; - - for ($i = 0, $len = count($matches['type']); $i < $len; $i++) { - if (!empty($matches['ns'][$i])) { - $namespace = str_replace([' ', "\t", "\r", "\n"], '', $matches['nsname'][$i]) . '\\'; - } else { - $name = $matches['name'][$i]; - if (':' === $name[0]) { - $name = 'xhp' . substr(str_replace(['-', ':'], ['_', '__'], $name), 1); - } elseif ('enum' === $matches['type'][$i]) { - $name = rtrim($name, ':'); - } - $classes[] = ltrim($namespace . $name, '\\'); - } - } - - return $classes; - } - -} diff --git a/thinkphp/library/think/console/command/optimize/Config.php b/thinkphp/library/think/console/command/optimize/Config.php deleted file mode 100644 index 9b692b33b..000000000 --- a/thinkphp/library/think/console/command/optimize/Config.php +++ /dev/null @@ -1,110 +0,0 @@ - -// +---------------------------------------------------------------------- -namespace think\console\command\optimize; - -use think\console\Command; -use think\console\Input; -use think\console\input\Argument; -use think\console\Output; -use think\Container; -use think\facade\App; - -class Config extends Command -{ - /** @var Output */ - protected $output; - - protected function configure() - { - $this->setName('optimize:config') - ->addArgument('module', Argument::OPTIONAL, 'Build module config cache .') - ->setDescription('Build config and common file cache.'); - } - - protected function execute(Input $input, Output $output) - { - if ($input->getArgument('module')) { - $module = $input->getArgument('module') . DIRECTORY_SEPARATOR; - } else { - $module = ''; - } - - $content = 'buildCacheContent($module); - $runtimePath = App::getRuntimePath(); - if (!is_dir($runtimePath . $module)) { - @mkdir($runtimePath . $module, 0755, true); - } - - file_put_contents($runtimePath . $module . 'init.php', $content); - - $output->writeln('Succeed!'); - } - - protected function buildCacheContent($module) - { - $content = '// This cache file is automatically generated at:' . date('Y-m-d H:i:s') . PHP_EOL; - $path = realpath(App::getAppPath() . $module) . DIRECTORY_SEPARATOR; - if ($module) { - $configPath = is_dir($path . 'config') ? $path . 'config' : App::getConfigPath() . $module; - } else { - $configPath = App::getConfigPath(); - } - $ext = App::getConfigExt(); - $config = Container::get('config'); - - $files = is_dir($configPath) ? scandir($configPath) : []; - - foreach ($files as $file) { - if ('.' . pathinfo($file, PATHINFO_EXTENSION) === $ext) { - $filename = $configPath . DIRECTORY_SEPARATOR . $file; - $config->load($filename, pathinfo($file, PATHINFO_FILENAME)); - } - } - - // 加载行为扩展文件 - if (is_file($path . 'tags.php')) { - $tags = include $path . 'tags.php'; - if (is_array($tags)) { - $content .= PHP_EOL . '\think\facade\Hook::import(' . (var_export($tags, true)) . ');' . PHP_EOL; - } - } - - // 加载公共文件 - if (is_file($path . 'common.php')) { - $common = substr(php_strip_whitespace($path . 'common.php'), 6); - if ($common) { - $content .= PHP_EOL . $common . PHP_EOL; - } - } - - if ('' == $module) { - $content .= PHP_EOL . substr(php_strip_whitespace(App::getThinkPath() . 'helper.php'), 6) . PHP_EOL; - - if (is_file($path . 'middleware.php')) { - $middleware = include $path . 'middleware.php'; - if (is_array($middleware)) { - $content .= PHP_EOL . '\think\Container::get("middleware")->import(' . var_export($middleware, true) . ');' . PHP_EOL; - } - } - } - - if (is_file($path . 'provider.php')) { - $provider = include $path . 'provider.php'; - if (is_array($provider)) { - $content .= PHP_EOL . '\think\Container::getInstance()->bind(' . var_export($provider, true) . ');' . PHP_EOL; - } - } - - $content .= PHP_EOL . '\think\facade\Config::set(' . var_export($config->get(), true) . ');' . PHP_EOL; - - return $content; - } -} diff --git a/thinkphp/library/think/console/command/optimize/Route.php b/thinkphp/library/think/console/command/optimize/Route.php deleted file mode 100644 index b6ad5b52d..000000000 --- a/thinkphp/library/think/console/command/optimize/Route.php +++ /dev/null @@ -1,68 +0,0 @@ - -// +---------------------------------------------------------------------- -namespace think\console\command\optimize; - -use think\console\Command; -use think\console\Input; -use think\console\Output; -use think\Container; - -class Route extends Command -{ - /** @var Output */ - protected $output; - - protected function configure() - { - $this->setName('optimize:route') - ->setDescription('Build route cache.'); - } - - protected function execute(Input $input, Output $output) - { - $filename = Container::get('app')->getRuntimePath() . 'route.php'; - if (is_file($filename)) { - unlink($filename); - } - file_put_contents($filename, $this->buildRouteCache()); - $output->writeln('Succeed!'); - } - - protected function buildRouteCache() - { - Container::get('route')->setName([]); - Container::get('route')->lazy(false); - // 路由检测 - $path = Container::get('app')->getRoutePath(); - - $files = is_dir($path) ? scandir($path) : []; - - foreach ($files as $file) { - if (strpos($file, '.php')) { - $filename = $path . DIRECTORY_SEPARATOR . $file; - // 导入路由配置 - $rules = include $filename; - if (is_array($rules)) { - Container::get('route')->import($rules); - } - } - } - - if (Container::get('config')->get('route_annotation')) { - include Container::get('build')->buildRoute(); - } - - $content = 'getName(), true) . ';'; - return $content; - } - -} diff --git a/thinkphp/library/think/console/command/optimize/Schema.php b/thinkphp/library/think/console/command/optimize/Schema.php deleted file mode 100644 index 61620badd..000000000 --- a/thinkphp/library/think/console/command/optimize/Schema.php +++ /dev/null @@ -1,121 +0,0 @@ - -// +---------------------------------------------------------------------- -namespace think\console\command\optimize; - -use think\console\Command; -use think\console\Input; -use think\console\input\Option; -use think\console\Output; -use think\Db; -use think\facade\App; - -class Schema extends Command -{ - /** @var Output */ - protected $output; - - protected function configure() - { - $this->setName('optimize:schema') - ->addOption('db', null, Option::VALUE_REQUIRED, 'db name .') - ->addOption('table', null, Option::VALUE_REQUIRED, 'table name .') - ->addOption('module', null, Option::VALUE_REQUIRED, 'module name .') - ->setDescription('Build database schema cache.'); - } - - protected function execute(Input $input, Output $output) - { - if (!is_dir(App::getRuntimePath() . 'schema')) { - @mkdir(App::getRuntimePath() . 'schema', 0755, true); - } - - if ($input->hasOption('module')) { - $module = $input->getOption('module'); - // 读取模型 - $path = App::getAppPath() . $module . DIRECTORY_SEPARATOR . 'model'; - $list = is_dir($path) ? scandir($path) : []; - $namespace = App::getNamespace(); - - foreach ($list as $file) { - if (0 === strpos($file, '.')) { - continue; - } - $class = '\\' . $namespace . '\\' . $module . '\\model\\' . pathinfo($file, PATHINFO_FILENAME); - $this->buildModelSchema($class); - } - - $output->writeln('Succeed!'); - return; - } elseif ($input->hasOption('table')) { - $table = $input->getOption('table'); - if (!strpos($table, '.')) { - $dbName = Db::getConfig('database'); - } - - $tables[] = $table; - } elseif ($input->hasOption('db')) { - $dbName = $input->getOption('db'); - $tables = Db::getConnection()->getTables($dbName); - } elseif (!\think\facade\Config::get('app_multi_module')) { - $namespace = App::getNamespace(); - $path = App::getAppPath() . 'model'; - $list = is_dir($path) ? scandir($path) : []; - - foreach ($list as $file) { - if (0 === strpos($file, '.')) { - continue; - } - $class = '\\' . $namespace . '\\model\\' . pathinfo($file, PATHINFO_FILENAME); - $this->buildModelSchema($class); - } - - $output->writeln('Succeed!'); - return; - } else { - $tables = Db::getConnection()->getTables(); - } - - $db = isset($dbName) ? $dbName . '.' : ''; - $this->buildDataBaseSchema($tables, $db); - - $output->writeln('Succeed!'); - } - - protected function buildModelSchema($class) - { - $reflect = new \ReflectionClass($class); - if (!$reflect->isAbstract() && $reflect->isSubclassOf('\think\Model')) { - $table = $class::getTable(); - $dbName = $class::getConfig('database'); - $content = 'getFields($table); - $content .= var_export($info, true) . ';'; - - file_put_contents(App::getRuntimePath() . 'schema' . DIRECTORY_SEPARATOR . $dbName . '.' . $table . '.php', $content); - } - } - - protected function buildDataBaseSchema($tables, $db) - { - if ('' == $db) { - $dbName = Db::getConfig('database') . '.'; - } else { - $dbName = $db; - } - - foreach ($tables as $table) { - $content = 'getFields($db . $table); - $content .= var_export($info, true) . ';'; - file_put_contents(App::getRuntimePath() . 'schema' . DIRECTORY_SEPARATOR . $dbName . $table . '.php', $content); - } - } -} diff --git a/thinkphp/library/think/console/input/Argument.php b/thinkphp/library/think/console/input/Argument.php deleted file mode 100644 index 16223bbeb..000000000 --- a/thinkphp/library/think/console/input/Argument.php +++ /dev/null @@ -1,115 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\console\input; - -class Argument -{ - - const REQUIRED = 1; - const OPTIONAL = 2; - const IS_ARRAY = 4; - - private $name; - private $mode; - private $default; - private $description; - - /** - * 构造方法 - * @param string $name 参数名 - * @param int $mode 参数类型: self::REQUIRED 或者 self::OPTIONAL - * @param string $description 描述 - * @param mixed $default 默认值 (仅 self::OPTIONAL 类型有效) - * @throws \InvalidArgumentException - */ - public function __construct($name, $mode = null, $description = '', $default = null) - { - if (null === $mode) { - $mode = self::OPTIONAL; - } elseif (!is_int($mode) || $mode > 7 || $mode < 1) { - throw new \InvalidArgumentException(sprintf('Argument mode "%s" is not valid.', $mode)); - } - - $this->name = $name; - $this->mode = $mode; - $this->description = $description; - - $this->setDefault($default); - } - - /** - * 获取参数名 - * @return string - */ - public function getName() - { - return $this->name; - } - - /** - * 是否必须 - * @return bool - */ - public function isRequired() - { - return self::REQUIRED === (self::REQUIRED & $this->mode); - } - - /** - * 该参数是否接受数组 - * @return bool - */ - public function isArray() - { - return self::IS_ARRAY === (self::IS_ARRAY & $this->mode); - } - - /** - * 设置默认值 - * @param mixed $default 默认值 - * @throws \LogicException - */ - public function setDefault($default = null) - { - if (self::REQUIRED === $this->mode && null !== $default) { - throw new \LogicException('Cannot set a default value except for InputArgument::OPTIONAL mode.'); - } - - if ($this->isArray()) { - if (null === $default) { - $default = []; - } elseif (!is_array($default)) { - throw new \LogicException('A default value for an array argument must be an array.'); - } - } - - $this->default = $default; - } - - /** - * 获取默认值 - * @return mixed - */ - public function getDefault() - { - return $this->default; - } - - /** - * 获取描述 - * @return string - */ - public function getDescription() - { - return $this->description; - } -} diff --git a/thinkphp/library/think/console/input/Definition.php b/thinkphp/library/think/console/input/Definition.php deleted file mode 100644 index c71977ec3..000000000 --- a/thinkphp/library/think/console/input/Definition.php +++ /dev/null @@ -1,375 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\console\input; - -class Definition -{ - - /** - * @var Argument[] - */ - private $arguments; - - private $requiredCount; - private $hasAnArrayArgument = false; - private $hasOptional; - - /** - * @var Option[] - */ - private $options; - private $shortcuts; - - /** - * 构造方法 - * @param array $definition - * @api - */ - public function __construct(array $definition = []) - { - $this->setDefinition($definition); - } - - /** - * 设置指令的定义 - * @param array $definition 定义的数组 - */ - public function setDefinition(array $definition) - { - $arguments = []; - $options = []; - foreach ($definition as $item) { - if ($item instanceof Option) { - $options[] = $item; - } else { - $arguments[] = $item; - } - } - - $this->setArguments($arguments); - $this->setOptions($options); - } - - /** - * 设置参数 - * @param Argument[] $arguments 参数数组 - */ - public function setArguments($arguments = []) - { - $this->arguments = []; - $this->requiredCount = 0; - $this->hasOptional = false; - $this->hasAnArrayArgument = false; - $this->addArguments($arguments); - } - - /** - * 添加参数 - * @param Argument[] $arguments 参数数组 - * @api - */ - public function addArguments($arguments = []) - { - if (null !== $arguments) { - foreach ($arguments as $argument) { - $this->addArgument($argument); - } - } - } - - /** - * 添加一个参数 - * @param Argument $argument 参数 - * @throws \LogicException - */ - public function addArgument(Argument $argument) - { - if (isset($this->arguments[$argument->getName()])) { - throw new \LogicException(sprintf('An argument with name "%s" already exists.', $argument->getName())); - } - - if ($this->hasAnArrayArgument) { - throw new \LogicException('Cannot add an argument after an array argument.'); - } - - if ($argument->isRequired() && $this->hasOptional) { - throw new \LogicException('Cannot add a required argument after an optional one.'); - } - - if ($argument->isArray()) { - $this->hasAnArrayArgument = true; - } - - if ($argument->isRequired()) { - ++$this->requiredCount; - } else { - $this->hasOptional = true; - } - - $this->arguments[$argument->getName()] = $argument; - } - - /** - * 根据名称或者位置获取参数 - * @param string|int $name 参数名或者位置 - * @return Argument 参数 - * @throws \InvalidArgumentException - */ - public function getArgument($name) - { - if (!$this->hasArgument($name)) { - throw new \InvalidArgumentException(sprintf('The "%s" argument does not exist.', $name)); - } - - $arguments = is_int($name) ? array_values($this->arguments) : $this->arguments; - - return $arguments[$name]; - } - - /** - * 根据名称或位置检查是否具有某个参数 - * @param string|int $name 参数名或者位置 - * @return bool - * @api - */ - public function hasArgument($name) - { - $arguments = is_int($name) ? array_values($this->arguments) : $this->arguments; - - return isset($arguments[$name]); - } - - /** - * 获取所有的参数 - * @return Argument[] 参数数组 - */ - public function getArguments() - { - return $this->arguments; - } - - /** - * 获取参数数量 - * @return int - */ - public function getArgumentCount() - { - return $this->hasAnArrayArgument ? PHP_INT_MAX : count($this->arguments); - } - - /** - * 获取必填的参数的数量 - * @return int - */ - public function getArgumentRequiredCount() - { - return $this->requiredCount; - } - - /** - * 获取参数默认值 - * @return array - */ - public function getArgumentDefaults() - { - $values = []; - foreach ($this->arguments as $argument) { - $values[$argument->getName()] = $argument->getDefault(); - } - - return $values; - } - - /** - * 设置选项 - * @param Option[] $options 选项数组 - */ - public function setOptions($options = []) - { - $this->options = []; - $this->shortcuts = []; - $this->addOptions($options); - } - - /** - * 添加选项 - * @param Option[] $options 选项数组 - * @api - */ - public function addOptions($options = []) - { - foreach ($options as $option) { - $this->addOption($option); - } - } - - /** - * 添加一个选项 - * @param Option $option 选项 - * @throws \LogicException - * @api - */ - public function addOption(Option $option) - { - if (isset($this->options[$option->getName()]) && !$option->equals($this->options[$option->getName()])) { - throw new \LogicException(sprintf('An option named "%s" already exists.', $option->getName())); - } - - if ($option->getShortcut()) { - foreach (explode('|', $option->getShortcut()) as $shortcut) { - if (isset($this->shortcuts[$shortcut]) - && !$option->equals($this->options[$this->shortcuts[$shortcut]]) - ) { - throw new \LogicException(sprintf('An option with shortcut "%s" already exists.', $shortcut)); - } - } - } - - $this->options[$option->getName()] = $option; - if ($option->getShortcut()) { - foreach (explode('|', $option->getShortcut()) as $shortcut) { - $this->shortcuts[$shortcut] = $option->getName(); - } - } - } - - /** - * 根据名称获取选项 - * @param string $name 选项名 - * @return Option - * @throws \InvalidArgumentException - * @api - */ - public function getOption($name) - { - if (!$this->hasOption($name)) { - throw new \InvalidArgumentException(sprintf('The "--%s" option does not exist.', $name)); - } - - return $this->options[$name]; - } - - /** - * 根据名称检查是否有这个选项 - * @param string $name 选项名 - * @return bool - * @api - */ - public function hasOption($name) - { - return isset($this->options[$name]); - } - - /** - * 获取所有选项 - * @return Option[] - * @api - */ - public function getOptions() - { - return $this->options; - } - - /** - * 根据名称检查某个选项是否有短名称 - * @param string $name 短名称 - * @return bool - */ - public function hasShortcut($name) - { - return isset($this->shortcuts[$name]); - } - - /** - * 根据短名称获取选项 - * @param string $shortcut 短名称 - * @return Option - */ - public function getOptionForShortcut($shortcut) - { - return $this->getOption($this->shortcutToName($shortcut)); - } - - /** - * 获取所有选项的默认值 - * @return array - */ - public function getOptionDefaults() - { - $values = []; - foreach ($this->options as $option) { - $values[$option->getName()] = $option->getDefault(); - } - - return $values; - } - - /** - * 根据短名称获取选项名 - * @param string $shortcut 短名称 - * @return string - * @throws \InvalidArgumentException - */ - private function shortcutToName($shortcut) - { - if (!isset($this->shortcuts[$shortcut])) { - throw new \InvalidArgumentException(sprintf('The "-%s" option does not exist.', $shortcut)); - } - - return $this->shortcuts[$shortcut]; - } - - /** - * 获取该指令的介绍 - * @param bool $short 是否简洁介绍 - * @return string - */ - public function getSynopsis($short = false) - { - $elements = []; - - if ($short && $this->getOptions()) { - $elements[] = '[options]'; - } elseif (!$short) { - foreach ($this->getOptions() as $option) { - $value = ''; - if ($option->acceptValue()) { - $value = sprintf(' %s%s%s', $option->isValueOptional() ? '[' : '', strtoupper($option->getName()), $option->isValueOptional() ? ']' : ''); - } - - $shortcut = $option->getShortcut() ? sprintf('-%s|', $option->getShortcut()) : ''; - $elements[] = sprintf('[%s--%s%s]', $shortcut, $option->getName(), $value); - } - } - - if (count($elements) && $this->getArguments()) { - $elements[] = '[--]'; - } - - foreach ($this->getArguments() as $argument) { - $element = '<' . $argument->getName() . '>'; - if (!$argument->isRequired()) { - $element = '[' . $element . ']'; - } elseif ($argument->isArray()) { - $element .= ' (' . $element . ')'; - } - - if ($argument->isArray()) { - $element .= '...'; - } - - $elements[] = $element; - } - - return implode(' ', $elements); - } -} diff --git a/thinkphp/library/think/console/input/Option.php b/thinkphp/library/think/console/input/Option.php deleted file mode 100644 index e5707c9ae..000000000 --- a/thinkphp/library/think/console/input/Option.php +++ /dev/null @@ -1,190 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\console\input; - -class Option -{ - - const VALUE_NONE = 1; - const VALUE_REQUIRED = 2; - const VALUE_OPTIONAL = 4; - const VALUE_IS_ARRAY = 8; - - private $name; - private $shortcut; - private $mode; - private $default; - private $description; - - /** - * 构造方法 - * @param string $name 选项名 - * @param string|array $shortcut 短名称,多个用|隔开或者使用数组 - * @param int $mode 选项类型(可选类型为 self::VALUE_*) - * @param string $description 描述 - * @param mixed $default 默认值 (类型为 self::VALUE_REQUIRED 或者 self::VALUE_NONE 的时候必须为null) - * @throws \InvalidArgumentException - */ - public function __construct($name, $shortcut = null, $mode = null, $description = '', $default = null) - { - if (0 === strpos($name, '--')) { - $name = substr($name, 2); - } - - if (empty($name)) { - throw new \InvalidArgumentException('An option name cannot be empty.'); - } - - if (empty($shortcut)) { - $shortcut = null; - } - - if (null !== $shortcut) { - if (is_array($shortcut)) { - $shortcut = implode('|', $shortcut); - } - $shortcuts = preg_split('{(\|)-?}', ltrim($shortcut, '-')); - $shortcuts = array_filter($shortcuts); - $shortcut = implode('|', $shortcuts); - - if (empty($shortcut)) { - throw new \InvalidArgumentException('An option shortcut cannot be empty.'); - } - } - - if (null === $mode) { - $mode = self::VALUE_NONE; - } elseif (!is_int($mode) || $mode > 15 || $mode < 1) { - throw new \InvalidArgumentException(sprintf('Option mode "%s" is not valid.', $mode)); - } - - $this->name = $name; - $this->shortcut = $shortcut; - $this->mode = $mode; - $this->description = $description; - - if ($this->isArray() && !$this->acceptValue()) { - throw new \InvalidArgumentException('Impossible to have an option mode VALUE_IS_ARRAY if the option does not accept a value.'); - } - - $this->setDefault($default); - } - - /** - * 获取短名称 - * @return string - */ - public function getShortcut() - { - return $this->shortcut; - } - - /** - * 获取选项名 - * @return string - */ - public function getName() - { - return $this->name; - } - - /** - * 是否可以设置值 - * @return bool 类型不是 self::VALUE_NONE 的时候返回true,其他均返回false - */ - public function acceptValue() - { - return $this->isValueRequired() || $this->isValueOptional(); - } - - /** - * 是否必须 - * @return bool 类型是 self::VALUE_REQUIRED 的时候返回true,其他均返回false - */ - public function isValueRequired() - { - return self::VALUE_REQUIRED === (self::VALUE_REQUIRED & $this->mode); - } - - /** - * 是否可选 - * @return bool 类型是 self::VALUE_OPTIONAL 的时候返回true,其他均返回false - */ - public function isValueOptional() - { - return self::VALUE_OPTIONAL === (self::VALUE_OPTIONAL & $this->mode); - } - - /** - * 选项值是否接受数组 - * @return bool 类型是 self::VALUE_IS_ARRAY 的时候返回true,其他均返回false - */ - public function isArray() - { - return self::VALUE_IS_ARRAY === (self::VALUE_IS_ARRAY & $this->mode); - } - - /** - * 设置默认值 - * @param mixed $default 默认值 - * @throws \LogicException - */ - public function setDefault($default = null) - { - if (self::VALUE_NONE === (self::VALUE_NONE & $this->mode) && null !== $default) { - throw new \LogicException('Cannot set a default value when using InputOption::VALUE_NONE mode.'); - } - - if ($this->isArray()) { - if (null === $default) { - $default = []; - } elseif (!is_array($default)) { - throw new \LogicException('A default value for an array option must be an array.'); - } - } - - $this->default = $this->acceptValue() ? $default : false; - } - - /** - * 获取默认值 - * @return mixed - */ - public function getDefault() - { - return $this->default; - } - - /** - * 获取描述文字 - * @return string - */ - public function getDescription() - { - return $this->description; - } - - /** - * 检查所给选项是否是当前这个 - * @param Option $option - * @return bool - */ - public function equals(Option $option) - { - return $option->getName() === $this->getName() - && $option->getShortcut() === $this->getShortcut() - && $option->getDefault() === $this->getDefault() - && $option->isArray() === $this->isArray() - && $option->isValueRequired() === $this->isValueRequired() - && $option->isValueOptional() === $this->isValueOptional(); - } -} diff --git a/thinkphp/library/think/console/output/Ask.php b/thinkphp/library/think/console/output/Ask.php deleted file mode 100644 index 3933eb296..000000000 --- a/thinkphp/library/think/console/output/Ask.php +++ /dev/null @@ -1,340 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\console\output; - -use think\console\Input; -use think\console\Output; -use think\console\output\question\Choice; -use think\console\output\question\Confirmation; - -class Ask -{ - private static $stty; - - private static $shell; - - /** @var Input */ - protected $input; - - /** @var Output */ - protected $output; - - /** @var Question */ - protected $question; - - public function __construct(Input $input, Output $output, Question $question) - { - $this->input = $input; - $this->output = $output; - $this->question = $question; - } - - public function run() - { - if (!$this->input->isInteractive()) { - return $this->question->getDefault(); - } - - if (!$this->question->getValidator()) { - return $this->doAsk(); - } - - $that = $this; - - $interviewer = function () use ($that) { - return $that->doAsk(); - }; - - return $this->validateAttempts($interviewer); - } - - protected function doAsk() - { - $this->writePrompt(); - - $inputStream = STDIN; - $autocomplete = $this->question->getAutocompleterValues(); - - if (null === $autocomplete || !$this->hasSttyAvailable()) { - $ret = false; - if ($this->question->isHidden()) { - try { - $ret = trim($this->getHiddenResponse($inputStream)); - } catch (\RuntimeException $e) { - if (!$this->question->isHiddenFallback()) { - throw $e; - } - } - } - - if (false === $ret) { - $ret = fgets($inputStream, 4096); - if (false === $ret) { - throw new \RuntimeException('Aborted'); - } - $ret = trim($ret); - } - } else { - $ret = trim($this->autocomplete($inputStream)); - } - - $ret = strlen($ret) > 0 ? $ret : $this->question->getDefault(); - - if ($normalizer = $this->question->getNormalizer()) { - return $normalizer($ret); - } - - return $ret; - } - - private function autocomplete($inputStream) - { - $autocomplete = $this->question->getAutocompleterValues(); - $ret = ''; - - $i = 0; - $ofs = -1; - $matches = $autocomplete; - $numMatches = count($matches); - - $sttyMode = shell_exec('stty -g'); - - shell_exec('stty -icanon -echo'); - - while (!feof($inputStream)) { - $c = fread($inputStream, 1); - - if ("\177" === $c) { - if (0 === $numMatches && 0 !== $i) { - --$i; - $this->output->write("\033[1D"); - } - - if ($i === 0) { - $ofs = -1; - $matches = $autocomplete; - $numMatches = count($matches); - } else { - $numMatches = 0; - } - - $ret = substr($ret, 0, $i); - } elseif ("\033" === $c) { - $c .= fread($inputStream, 2); - - if (isset($c[2]) && ('A' === $c[2] || 'B' === $c[2])) { - if ('A' === $c[2] && -1 === $ofs) { - $ofs = 0; - } - - if (0 === $numMatches) { - continue; - } - - $ofs += ('A' === $c[2]) ? -1 : 1; - $ofs = ($numMatches + $ofs) % $numMatches; - } - } elseif (ord($c) < 32) { - if ("\t" === $c || "\n" === $c) { - if ($numMatches > 0 && -1 !== $ofs) { - $ret = $matches[$ofs]; - $this->output->write(substr($ret, $i)); - $i = strlen($ret); - } - - if ("\n" === $c) { - $this->output->write($c); - break; - } - - $numMatches = 0; - } - - continue; - } else { - $this->output->write($c); - $ret .= $c; - ++$i; - - $numMatches = 0; - $ofs = 0; - - foreach ($autocomplete as $value) { - if (0 === strpos($value, $ret) && $i !== strlen($value)) { - $matches[$numMatches++] = $value; - } - } - } - - $this->output->write("\033[K"); - - if ($numMatches > 0 && -1 !== $ofs) { - $this->output->write("\0337"); - $this->output->highlight(substr($matches[$ofs], $i)); - $this->output->write("\0338"); - } - } - - shell_exec(sprintf('stty %s', $sttyMode)); - - return $ret; - } - - protected function getHiddenResponse($inputStream) - { - if ('\\' === DIRECTORY_SEPARATOR) { - $exe = __DIR__ . '/../bin/hiddeninput.exe'; - - $value = rtrim(shell_exec($exe)); - $this->output->writeln(''); - - if (isset($tmpExe)) { - unlink($tmpExe); - } - - return $value; - } - - if ($this->hasSttyAvailable()) { - $sttyMode = shell_exec('stty -g'); - - shell_exec('stty -echo'); - $value = fgets($inputStream, 4096); - shell_exec(sprintf('stty %s', $sttyMode)); - - if (false === $value) { - throw new \RuntimeException('Aborted'); - } - - $value = trim($value); - $this->output->writeln(''); - - return $value; - } - - if (false !== $shell = $this->getShell()) { - $readCmd = $shell === 'csh' ? 'set mypassword = $<' : 'read -r mypassword'; - $command = sprintf("/usr/bin/env %s -c 'stty -echo; %s; stty echo; echo \$mypassword'", $shell, $readCmd); - $value = rtrim(shell_exec($command)); - $this->output->writeln(''); - - return $value; - } - - throw new \RuntimeException('Unable to hide the response.'); - } - - protected function validateAttempts($interviewer) - { - /** @var \Exception $error */ - $error = null; - $attempts = $this->question->getMaxAttempts(); - while (null === $attempts || $attempts--) { - if (null !== $error) { - $this->output->error($error->getMessage()); - } - - try { - return call_user_func($this->question->getValidator(), $interviewer()); - } catch (\Exception $error) { - } - } - - throw $error; - } - - /** - * 显示问题的提示信息 - */ - protected function writePrompt() - { - $text = $this->question->getQuestion(); - $default = $this->question->getDefault(); - - switch (true) { - case null === $default: - $text = sprintf(' %s:', $text); - - break; - - case $this->question instanceof Confirmation: - $text = sprintf(' %s (yes/no) [%s]:', $text, $default ? 'yes' : 'no'); - - break; - - case $this->question instanceof Choice && $this->question->isMultiselect(): - $choices = $this->question->getChoices(); - $default = explode(',', $default); - - foreach ($default as $key => $value) { - $default[$key] = $choices[trim($value)]; - } - - $text = sprintf(' %s [%s]:', $text, implode(', ', $default)); - - break; - - case $this->question instanceof Choice: - $choices = $this->question->getChoices(); - $text = sprintf(' %s [%s]:', $text, $choices[$default]); - - break; - - default: - $text = sprintf(' %s [%s]:', $text, $default); - } - - $this->output->writeln($text); - - if ($this->question instanceof Choice) { - $width = max(array_map('strlen', array_keys($this->question->getChoices()))); - - foreach ($this->question->getChoices() as $key => $value) { - $this->output->writeln(sprintf(" [%-${width}s] %s", $key, $value)); - } - } - - $this->output->write(' > '); - } - - private function getShell() - { - if (null !== self::$shell) { - return self::$shell; - } - - self::$shell = false; - - if (file_exists('/usr/bin/env')) { - $test = "/usr/bin/env %s -c 'echo OK' 2> /dev/null"; - foreach (['bash', 'zsh', 'ksh', 'csh'] as $sh) { - if ('OK' === rtrim(shell_exec(sprintf($test, $sh)))) { - self::$shell = $sh; - break; - } - } - } - - return self::$shell; - } - - private function hasSttyAvailable() - { - if (null !== self::$stty) { - return self::$stty; - } - - exec('stty 2>&1', $output, $exitcode); - - return self::$stty = $exitcode === 0; - } -} diff --git a/thinkphp/library/think/console/output/Descriptor.php b/thinkphp/library/think/console/output/Descriptor.php deleted file mode 100644 index 6d98d53c7..000000000 --- a/thinkphp/library/think/console/output/Descriptor.php +++ /dev/null @@ -1,319 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\console\output; - -use think\Console; -use think\console\Command; -use think\console\input\Argument as InputArgument; -use think\console\input\Definition as InputDefinition; -use think\console\input\Option as InputOption; -use think\console\Output; -use think\console\output\descriptor\Console as ConsoleDescription; - -class Descriptor -{ - - /** - * @var Output - */ - protected $output; - - /** - * {@inheritdoc} - */ - public function describe(Output $output, $object, array $options = []) - { - $this->output = $output; - - switch (true) { - case $object instanceof InputArgument: - $this->describeInputArgument($object, $options); - break; - case $object instanceof InputOption: - $this->describeInputOption($object, $options); - break; - case $object instanceof InputDefinition: - $this->describeInputDefinition($object, $options); - break; - case $object instanceof Command: - $this->describeCommand($object, $options); - break; - case $object instanceof Console: - $this->describeConsole($object, $options); - break; - default: - throw new \InvalidArgumentException(sprintf('Object of type "%s" is not describable.', get_class($object))); - } - } - - /** - * 输出内容 - * @param string $content - * @param bool $decorated - */ - protected function write($content, $decorated = false) - { - $this->output->write($content, false, $decorated ? Output::OUTPUT_NORMAL : Output::OUTPUT_RAW); - } - - /** - * 描述参数 - * @param InputArgument $argument - * @param array $options - * @return string|mixed - */ - protected function describeInputArgument(InputArgument $argument, array $options = []) - { - if (null !== $argument->getDefault() - && (!is_array($argument->getDefault()) - || count($argument->getDefault())) - ) { - $default = sprintf(' [default: %s]', $this->formatDefaultValue($argument->getDefault())); - } else { - $default = ''; - } - - $totalWidth = isset($options['total_width']) ? $options['total_width'] : strlen($argument->getName()); - $spacingWidth = $totalWidth - strlen($argument->getName()) + 2; - - $this->writeText(sprintf(" %s%s%s%s", $argument->getName(), str_repeat(' ', $spacingWidth), // + 17 = 2 spaces + + + 2 spaces - preg_replace('/\s*\R\s*/', PHP_EOL . str_repeat(' ', $totalWidth + 17), $argument->getDescription()), $default), $options); - } - - /** - * 描述选项 - * @param InputOption $option - * @param array $options - * @return string|mixed - */ - protected function describeInputOption(InputOption $option, array $options = []) - { - if ($option->acceptValue() && null !== $option->getDefault() - && (!is_array($option->getDefault()) - || count($option->getDefault())) - ) { - $default = sprintf(' [default: %s]', $this->formatDefaultValue($option->getDefault())); - } else { - $default = ''; - } - - $value = ''; - if ($option->acceptValue()) { - $value = '=' . strtoupper($option->getName()); - - if ($option->isValueOptional()) { - $value = '[' . $value . ']'; - } - } - - $totalWidth = isset($options['total_width']) ? $options['total_width'] : $this->calculateTotalWidthForOptions([$option]); - $synopsis = sprintf('%s%s', $option->getShortcut() ? sprintf('-%s, ', $option->getShortcut()) : ' ', sprintf('--%s%s', $option->getName(), $value)); - - $spacingWidth = $totalWidth - strlen($synopsis) + 2; - - $this->writeText(sprintf(" %s%s%s%s%s", $synopsis, str_repeat(' ', $spacingWidth), // + 17 = 2 spaces + + + 2 spaces - preg_replace('/\s*\R\s*/', "\n" . str_repeat(' ', $totalWidth + 17), $option->getDescription()), $default, $option->isArray() ? ' (multiple values allowed)' : ''), $options); - } - - /** - * 描述输入 - * @param InputDefinition $definition - * @param array $options - * @return string|mixed - */ - protected function describeInputDefinition(InputDefinition $definition, array $options = []) - { - $totalWidth = $this->calculateTotalWidthForOptions($definition->getOptions()); - foreach ($definition->getArguments() as $argument) { - $totalWidth = max($totalWidth, strlen($argument->getName())); - } - - if ($definition->getArguments()) { - $this->writeText('Arguments:', $options); - $this->writeText("\n"); - foreach ($definition->getArguments() as $argument) { - $this->describeInputArgument($argument, array_merge($options, ['total_width' => $totalWidth])); - $this->writeText("\n"); - } - } - - if ($definition->getArguments() && $definition->getOptions()) { - $this->writeText("\n"); - } - - if ($definition->getOptions()) { - $laterOptions = []; - - $this->writeText('Options:', $options); - foreach ($definition->getOptions() as $option) { - if (strlen($option->getShortcut()) > 1) { - $laterOptions[] = $option; - continue; - } - $this->writeText("\n"); - $this->describeInputOption($option, array_merge($options, ['total_width' => $totalWidth])); - } - foreach ($laterOptions as $option) { - $this->writeText("\n"); - $this->describeInputOption($option, array_merge($options, ['total_width' => $totalWidth])); - } - } - } - - /** - * 描述指令 - * @param Command $command - * @param array $options - * @return string|mixed - */ - protected function describeCommand(Command $command, array $options = []) - { - $command->getSynopsis(true); - $command->getSynopsis(false); - $command->mergeConsoleDefinition(false); - - $this->writeText('Usage:', $options); - foreach (array_merge([$command->getSynopsis(true)], $command->getAliases(), $command->getUsages()) as $usage) { - $this->writeText("\n"); - $this->writeText(' ' . $usage, $options); - } - $this->writeText("\n"); - - $definition = $command->getNativeDefinition(); - if ($definition->getOptions() || $definition->getArguments()) { - $this->writeText("\n"); - $this->describeInputDefinition($definition, $options); - $this->writeText("\n"); - } - - if ($help = $command->getProcessedHelp()) { - $this->writeText("\n"); - $this->writeText('Help:', $options); - $this->writeText("\n"); - $this->writeText(' ' . str_replace("\n", "\n ", $help), $options); - $this->writeText("\n"); - } - } - - /** - * 描述控制台 - * @param Console $console - * @param array $options - * @return string|mixed - */ - protected function describeConsole(Console $console, array $options = []) - { - $describedNamespace = isset($options['namespace']) ? $options['namespace'] : null; - $description = new ConsoleDescription($console, $describedNamespace); - - if (isset($options['raw_text']) && $options['raw_text']) { - $width = $this->getColumnWidth($description->getCommands()); - - foreach ($description->getCommands() as $command) { - $this->writeText(sprintf("%-${width}s %s", $command->getName(), $command->getDescription()), $options); - $this->writeText("\n"); - } - } else { - if ('' != $help = $console->getHelp()) { - $this->writeText("$help\n\n", $options); - } - - $this->writeText("Usage:\n", $options); - $this->writeText(" command [options] [arguments]\n\n", $options); - - $this->describeInputDefinition(new InputDefinition($console->getDefinition()->getOptions()), $options); - - $this->writeText("\n"); - $this->writeText("\n"); - - $width = $this->getColumnWidth($description->getCommands()); - - if ($describedNamespace) { - $this->writeText(sprintf('Available commands for the "%s" namespace:', $describedNamespace), $options); - } else { - $this->writeText('Available commands:', $options); - } - - // add commands by namespace - foreach ($description->getNamespaces() as $namespace) { - if (!$describedNamespace && ConsoleDescription::GLOBAL_NAMESPACE !== $namespace['id']) { - $this->writeText("\n"); - $this->writeText(' ' . $namespace['id'] . '', $options); - } - - foreach ($namespace['commands'] as $name) { - $this->writeText("\n"); - $spacingWidth = $width - strlen($name); - $this->writeText(sprintf(" %s%s%s", $name, str_repeat(' ', $spacingWidth), $description->getCommand($name) - ->getDescription()), $options); - } - } - - $this->writeText("\n"); - } - } - - /** - * {@inheritdoc} - */ - private function writeText($content, array $options = []) - { - $this->write(isset($options['raw_text']) - && $options['raw_text'] ? strip_tags($content) : $content, isset($options['raw_output']) ? !$options['raw_output'] : true); - } - - /** - * 格式化 - * @param mixed $default - * @return string - */ - private function formatDefaultValue($default) - { - return json_encode($default, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE); - } - - /** - * @param Command[] $commands - * @return int - */ - private function getColumnWidth(array $commands) - { - $width = 0; - foreach ($commands as $command) { - $width = strlen($command->getName()) > $width ? strlen($command->getName()) : $width; - } - - return $width + 2; - } - - /** - * @param InputOption[] $options - * @return int - */ - private function calculateTotalWidthForOptions($options) - { - $totalWidth = 0; - foreach ($options as $option) { - $nameLength = 4 + strlen($option->getName()) + 2; // - + shortcut + , + whitespace + name + -- - - if ($option->acceptValue()) { - $valueLength = 1 + strlen($option->getName()); // = + value - $valueLength += $option->isValueOptional() ? 2 : 0; // [ + ] - - $nameLength += $valueLength; - } - $totalWidth = max($totalWidth, $nameLength); - } - - return $totalWidth; - } -} diff --git a/thinkphp/library/think/console/output/Formatter.php b/thinkphp/library/think/console/output/Formatter.php deleted file mode 100644 index f8bee5527..000000000 --- a/thinkphp/library/think/console/output/Formatter.php +++ /dev/null @@ -1,198 +0,0 @@ - -// +---------------------------------------------------------------------- -namespace think\console\output; - -use think\console\output\formatter\Stack as StyleStack; -use think\console\output\formatter\Style; - -class Formatter -{ - - private $decorated = false; - private $styles = []; - private $styleStack; - - /** - * 转义 - * @param string $text - * @return string - */ - public static function escape($text) - { - return preg_replace('/([^\\\\]?)setStyle('error', new Style('white', 'red')); - $this->setStyle('info', new Style('green')); - $this->setStyle('comment', new Style('yellow')); - $this->setStyle('question', new Style('black', 'cyan')); - $this->setStyle('highlight', new Style('red')); - $this->setStyle('warning', new Style('black', 'yellow')); - - $this->styleStack = new StyleStack(); - } - - /** - * 设置外观标识 - * @param bool $decorated 是否美化文字 - */ - public function setDecorated($decorated) - { - $this->decorated = (bool) $decorated; - } - - /** - * 获取外观标识 - * @return bool - */ - public function isDecorated() - { - return $this->decorated; - } - - /** - * 添加一个新样式 - * @param string $name 样式名 - * @param Style $style 样式实例 - */ - public function setStyle($name, Style $style) - { - $this->styles[strtolower($name)] = $style; - } - - /** - * 是否有这个样式 - * @param string $name - * @return bool - */ - public function hasStyle($name) - { - return isset($this->styles[strtolower($name)]); - } - - /** - * 获取样式 - * @param string $name - * @return Style - * @throws \InvalidArgumentException - */ - public function getStyle($name) - { - if (!$this->hasStyle($name)) { - throw new \InvalidArgumentException(sprintf('Undefined style: %s', $name)); - } - - return $this->styles[strtolower($name)]; - } - - /** - * 使用所给的样式格式化文字 - * @param string $message 文字 - * @return string - */ - public function format($message) - { - $offset = 0; - $output = ''; - $tagRegex = '[a-z][a-z0-9_=;-]*'; - preg_match_all("#<(($tagRegex) | /($tagRegex)?)>#isx", $message, $matches, PREG_OFFSET_CAPTURE); - foreach ($matches[0] as $i => $match) { - $pos = $match[1]; - $text = $match[0]; - - if (0 != $pos && '\\' == $message[$pos - 1]) { - continue; - } - - $output .= $this->applyCurrentStyle(substr($message, $offset, $pos - $offset)); - $offset = $pos + strlen($text); - - if ($open = '/' != $text[1]) { - $tag = $matches[1][$i][0]; - } else { - $tag = isset($matches[3][$i][0]) ? $matches[3][$i][0] : ''; - } - - if (!$open && !$tag) { - // - $this->styleStack->pop(); - } elseif (false === $style = $this->createStyleFromString(strtolower($tag))) { - $output .= $this->applyCurrentStyle($text); - } elseif ($open) { - $this->styleStack->push($style); - } else { - $this->styleStack->pop($style); - } - } - - $output .= $this->applyCurrentStyle(substr($message, $offset)); - - return str_replace('\\<', '<', $output); - } - - /** - * @return StyleStack - */ - public function getStyleStack() - { - return $this->styleStack; - } - - /** - * 根据字符串创建新的样式实例 - * @param string $string - * @return Style|bool - */ - private function createStyleFromString($string) - { - if (isset($this->styles[$string])) { - return $this->styles[$string]; - } - - if (!preg_match_all('/([^=]+)=([^;]+)(;|$)/', strtolower($string), $matches, PREG_SET_ORDER)) { - return false; - } - - $style = new Style(); - foreach ($matches as $match) { - array_shift($match); - - if ('fg' == $match[0]) { - $style->setForeground($match[1]); - } elseif ('bg' == $match[0]) { - $style->setBackground($match[1]); - } else { - try { - $style->setOption($match[1]); - } catch (\InvalidArgumentException $e) { - return false; - } - } - } - - return $style; - } - - /** - * 从堆栈应用样式到文字 - * @param string $text 文字 - * @return string - */ - private function applyCurrentStyle($text) - { - return $this->isDecorated() && strlen($text) > 0 ? $this->styleStack->getCurrent()->apply($text) : $text; - } -} diff --git a/thinkphp/library/think/console/output/Question.php b/thinkphp/library/think/console/output/Question.php deleted file mode 100644 index 03975f274..000000000 --- a/thinkphp/library/think/console/output/Question.php +++ /dev/null @@ -1,211 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\console\output; - -class Question -{ - - private $question; - private $attempts; - private $hidden = false; - private $hiddenFallback = true; - private $autocompleterValues; - private $validator; - private $default; - private $normalizer; - - /** - * 构造方法 - * @param string $question 问题 - * @param mixed $default 默认答案 - */ - public function __construct($question, $default = null) - { - $this->question = $question; - $this->default = $default; - } - - /** - * 获取问题 - * @return string - */ - public function getQuestion() - { - return $this->question; - } - - /** - * 获取默认答案 - * @return mixed - */ - public function getDefault() - { - return $this->default; - } - - /** - * 是否隐藏答案 - * @return bool - */ - public function isHidden() - { - return $this->hidden; - } - - /** - * 隐藏答案 - * @param bool $hidden - * @return Question - */ - public function setHidden($hidden) - { - if ($this->autocompleterValues) { - throw new \LogicException('A hidden question cannot use the autocompleter.'); - } - - $this->hidden = (bool) $hidden; - - return $this; - } - - /** - * 不能被隐藏是否撤销 - * @return bool - */ - public function isHiddenFallback() - { - return $this->hiddenFallback; - } - - /** - * 设置不能被隐藏的时候的操作 - * @param bool $fallback - * @return Question - */ - public function setHiddenFallback($fallback) - { - $this->hiddenFallback = (bool) $fallback; - - return $this; - } - - /** - * 获取自动完成 - * @return null|array|\Traversable - */ - public function getAutocompleterValues() - { - return $this->autocompleterValues; - } - - /** - * 设置自动完成的值 - * @param null|array|\Traversable $values - * @return Question - * @throws \InvalidArgumentException - * @throws \LogicException - */ - public function setAutocompleterValues($values) - { - if (is_array($values) && $this->isAssoc($values)) { - $values = array_merge(array_keys($values), array_values($values)); - } - - if (null !== $values && !is_array($values)) { - if (!$values instanceof \Traversable || $values instanceof \Countable) { - throw new \InvalidArgumentException('Autocompleter values can be either an array, `null` or an object implementing both `Countable` and `Traversable` interfaces.'); - } - } - - if ($this->hidden) { - throw new \LogicException('A hidden question cannot use the autocompleter.'); - } - - $this->autocompleterValues = $values; - - return $this; - } - - /** - * 设置答案的验证器 - * @param null|callable $validator - * @return Question The current instance - */ - public function setValidator($validator) - { - $this->validator = $validator; - - return $this; - } - - /** - * 获取验证器 - * @return null|callable - */ - public function getValidator() - { - return $this->validator; - } - - /** - * 设置最大重试次数 - * @param null|int $attempts - * @return Question - * @throws \InvalidArgumentException - */ - public function setMaxAttempts($attempts) - { - if (null !== $attempts && $attempts < 1) { - throw new \InvalidArgumentException('Maximum number of attempts must be a positive value.'); - } - - $this->attempts = $attempts; - - return $this; - } - - /** - * 获取最大重试次数 - * @return null|int - */ - public function getMaxAttempts() - { - return $this->attempts; - } - - /** - * 设置响应的回调 - * @param string|\Closure $normalizer - * @return Question - */ - public function setNormalizer($normalizer) - { - $this->normalizer = $normalizer; - - return $this; - } - - /** - * 获取响应回调 - * The normalizer can ba a callable (a string), a closure or a class implementing __invoke. - * @return string|\Closure - */ - public function getNormalizer() - { - return $this->normalizer; - } - - protected function isAssoc($array) - { - return (bool) count(array_filter(array_keys($array), 'is_string')); - } -} diff --git a/thinkphp/library/think/console/output/descriptor/Console.php b/thinkphp/library/think/console/output/descriptor/Console.php deleted file mode 100644 index 4648b68e6..000000000 --- a/thinkphp/library/think/console/output/descriptor/Console.php +++ /dev/null @@ -1,149 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\console\output\descriptor; - -use think\Console as ThinkConsole; -use think\console\Command; - -class Console -{ - - const GLOBAL_NAMESPACE = '_global'; - - /** - * @var ThinkConsole - */ - private $console; - - /** - * @var null|string - */ - private $namespace; - - /** - * @var array - */ - private $namespaces; - - /** - * @var Command[] - */ - private $commands; - - /** - * @var Command[] - */ - private $aliases; - - /** - * 构造方法 - * @param ThinkConsole $console - * @param string|null $namespace - */ - public function __construct(ThinkConsole $console, $namespace = null) - { - $this->console = $console; - $this->namespace = $namespace; - } - - /** - * @return array - */ - public function getNamespaces() - { - if (null === $this->namespaces) { - $this->inspectConsole(); - } - - return $this->namespaces; - } - - /** - * @return Command[] - */ - public function getCommands() - { - if (null === $this->commands) { - $this->inspectConsole(); - } - - return $this->commands; - } - - /** - * @param string $name - * @return Command - * @throws \InvalidArgumentException - */ - public function getCommand($name) - { - if (!isset($this->commands[$name]) && !isset($this->aliases[$name])) { - throw new \InvalidArgumentException(sprintf('Command %s does not exist.', $name)); - } - - return isset($this->commands[$name]) ? $this->commands[$name] : $this->aliases[$name]; - } - - private function inspectConsole() - { - $this->commands = []; - $this->namespaces = []; - - $all = $this->console->all($this->namespace ? $this->console->findNamespace($this->namespace) : null); - foreach ($this->sortCommands($all) as $namespace => $commands) { - $names = []; - - /** @var Command $command */ - foreach ($commands as $name => $command) { - if (!$command->getName()) { - continue; - } - - if ($command->getName() === $name) { - $this->commands[$name] = $command; - } else { - $this->aliases[$name] = $command; - } - - $names[] = $name; - } - - $this->namespaces[$namespace] = ['id' => $namespace, 'commands' => $names]; - } - } - - /** - * @param array $commands - * @return array - */ - private function sortCommands(array $commands) - { - $namespacedCommands = []; - foreach ($commands as $name => $command) { - $key = $this->console->extractNamespace($name, 1); - if (!$key) { - $key = self::GLOBAL_NAMESPACE; - } - - $namespacedCommands[$key][$name] = $command; - } - ksort($namespacedCommands); - - foreach ($namespacedCommands as &$commandsSet) { - ksort($commandsSet); - } - // unset reference to keep scope clear - unset($commandsSet); - - return $namespacedCommands; - } -} diff --git a/thinkphp/library/think/console/output/driver/Buffer.php b/thinkphp/library/think/console/output/driver/Buffer.php deleted file mode 100644 index c77a2ec4b..000000000 --- a/thinkphp/library/think/console/output/driver/Buffer.php +++ /dev/null @@ -1,52 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\console\output\driver; - -use think\console\Output; - -class Buffer -{ - /** - * @var string - */ - private $buffer = ''; - - public function __construct(Output $output) - { - // do nothing - } - - public function fetch() - { - $content = $this->buffer; - $this->buffer = ''; - return $content; - } - - public function write($messages, $newline = false, $options = Output::OUTPUT_NORMAL) - { - $messages = (array) $messages; - - foreach ($messages as $message) { - $this->buffer .= $message; - } - if ($newline) { - $this->buffer .= "\n"; - } - } - - public function renderException(\Exception $e) - { - // do nothing - } - -} diff --git a/thinkphp/library/think/console/output/driver/Console.php b/thinkphp/library/think/console/output/driver/Console.php deleted file mode 100644 index e041b5250..000000000 --- a/thinkphp/library/think/console/output/driver/Console.php +++ /dev/null @@ -1,368 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\console\output\driver; - -use think\console\Output; -use think\console\output\Formatter; - -class Console -{ - - /** @var Resource */ - private $stdout; - - /** @var Formatter */ - private $formatter; - - private $terminalDimensions; - - /** @var Output */ - private $output; - - public function __construct(Output $output) - { - $this->output = $output; - $this->formatter = new Formatter(); - $this->stdout = $this->openOutputStream(); - $decorated = $this->hasColorSupport($this->stdout); - $this->formatter->setDecorated($decorated); - } - - public function setDecorated($decorated) - { - $this->formatter->setDecorated($decorated); - } - - public function write($messages, $newline = false, $type = Output::OUTPUT_NORMAL, $stream = null) - { - if (Output::VERBOSITY_QUIET === $this->output->getVerbosity()) { - return; - } - - $messages = (array) $messages; - - foreach ($messages as $message) { - switch ($type) { - case Output::OUTPUT_NORMAL: - $message = $this->formatter->format($message); - break; - case Output::OUTPUT_RAW: - break; - case Output::OUTPUT_PLAIN: - $message = strip_tags($this->formatter->format($message)); - break; - default: - throw new \InvalidArgumentException(sprintf('Unknown output type given (%s)', $type)); - } - - $this->doWrite($message, $newline, $stream); - } - } - - public function renderException(\Exception $e) - { - $stderr = $this->openErrorStream(); - $decorated = $this->hasColorSupport($stderr); - $this->formatter->setDecorated($decorated); - - do { - $title = sprintf(' [%s] ', get_class($e)); - - $len = $this->stringWidth($title); - - $width = $this->getTerminalWidth() ? $this->getTerminalWidth() - 1 : PHP_INT_MAX; - - if (defined('HHVM_VERSION') && $width > 1 << 31) { - $width = 1 << 31; - } - $lines = []; - foreach (preg_split('/\r?\n/', $e->getMessage()) as $line) { - foreach ($this->splitStringByWidth($line, $width - 4) as $line) { - - $lineLength = $this->stringWidth(preg_replace('/\[[^m]*m/', '', $line)) + 4; - $lines[] = [$line, $lineLength]; - - $len = max($lineLength, $len); - } - } - - $messages = ['', '']; - $messages[] = $emptyLine = sprintf('%s', str_repeat(' ', $len)); - $messages[] = sprintf('%s%s', $title, str_repeat(' ', max(0, $len - $this->stringWidth($title)))); - foreach ($lines as $line) { - $messages[] = sprintf(' %s %s', $line[0], str_repeat(' ', $len - $line[1])); - } - $messages[] = $emptyLine; - $messages[] = ''; - $messages[] = ''; - - $this->write($messages, true, Output::OUTPUT_NORMAL, $stderr); - - if (Output::VERBOSITY_VERBOSE <= $this->output->getVerbosity()) { - $this->write('Exception trace:', true, Output::OUTPUT_NORMAL, $stderr); - - // exception related properties - $trace = $e->getTrace(); - array_unshift($trace, [ - 'function' => '', - 'file' => $e->getFile() !== null ? $e->getFile() : 'n/a', - 'line' => $e->getLine() !== null ? $e->getLine() : 'n/a', - 'args' => [], - ]); - - for ($i = 0, $count = count($trace); $i < $count; ++$i) { - $class = isset($trace[$i]['class']) ? $trace[$i]['class'] : ''; - $type = isset($trace[$i]['type']) ? $trace[$i]['type'] : ''; - $function = $trace[$i]['function']; - $file = isset($trace[$i]['file']) ? $trace[$i]['file'] : 'n/a'; - $line = isset($trace[$i]['line']) ? $trace[$i]['line'] : 'n/a'; - - $this->write(sprintf(' %s%s%s() at %s:%s', $class, $type, $function, $file, $line), true, Output::OUTPUT_NORMAL, $stderr); - } - - $this->write('', true, Output::OUTPUT_NORMAL, $stderr); - $this->write('', true, Output::OUTPUT_NORMAL, $stderr); - } - } while ($e = $e->getPrevious()); - - } - - /** - * 获取终端宽度 - * @return int|null - */ - protected function getTerminalWidth() - { - $dimensions = $this->getTerminalDimensions(); - - return $dimensions[0]; - } - - /** - * 获取终端高度 - * @return int|null - */ - protected function getTerminalHeight() - { - $dimensions = $this->getTerminalDimensions(); - - return $dimensions[1]; - } - - /** - * 获取当前终端的尺寸 - * @return array - */ - public function getTerminalDimensions() - { - if ($this->terminalDimensions) { - return $this->terminalDimensions; - } - - if ('\\' === DIRECTORY_SEPARATOR) { - if (preg_match('/^(\d+)x\d+ \(\d+x(\d+)\)$/', trim(getenv('ANSICON')), $matches)) { - return [(int) $matches[1], (int) $matches[2]]; - } - if (preg_match('/^(\d+)x(\d+)$/', $this->getMode(), $matches)) { - return [(int) $matches[1], (int) $matches[2]]; - } - } - - if ($sttyString = $this->getSttyColumns()) { - if (preg_match('/rows.(\d+);.columns.(\d+);/i', $sttyString, $matches)) { - return [(int) $matches[2], (int) $matches[1]]; - } - if (preg_match('/;.(\d+).rows;.(\d+).columns/i', $sttyString, $matches)) { - return [(int) $matches[2], (int) $matches[1]]; - } - } - - return [null, null]; - } - - /** - * 获取stty列数 - * @return string - */ - private function getSttyColumns() - { - if (!function_exists('proc_open')) { - return; - } - - $descriptorspec = [1 => ['pipe', 'w'], 2 => ['pipe', 'w']]; - $process = proc_open('stty -a | grep columns', $descriptorspec, $pipes, null, null, ['suppress_errors' => true]); - if (is_resource($process)) { - $info = stream_get_contents($pipes[1]); - fclose($pipes[1]); - fclose($pipes[2]); - proc_close($process); - - return $info; - } - return; - } - - /** - * 获取终端模式 - * @return string x 或 null - */ - private function getMode() - { - if (!function_exists('proc_open')) { - return; - } - - $descriptorspec = [1 => ['pipe', 'w'], 2 => ['pipe', 'w']]; - $process = proc_open('mode CON', $descriptorspec, $pipes, null, null, ['suppress_errors' => true]); - if (is_resource($process)) { - $info = stream_get_contents($pipes[1]); - fclose($pipes[1]); - fclose($pipes[2]); - proc_close($process); - - if (preg_match('/--------+\r?\n.+?(\d+)\r?\n.+?(\d+)\r?\n/', $info, $matches)) { - return $matches[2] . 'x' . $matches[1]; - } - } - return; - } - - private function stringWidth($string) - { - if (!function_exists('mb_strwidth')) { - return strlen($string); - } - - if (false === $encoding = mb_detect_encoding($string)) { - return strlen($string); - } - - return mb_strwidth($string, $encoding); - } - - private function splitStringByWidth($string, $width) - { - if (!function_exists('mb_strwidth')) { - return str_split($string, $width); - } - - if (false === $encoding = mb_detect_encoding($string)) { - return str_split($string, $width); - } - - $utf8String = mb_convert_encoding($string, 'utf8', $encoding); - $lines = []; - $line = ''; - foreach (preg_split('//u', $utf8String) as $char) { - if (mb_strwidth($line . $char, 'utf8') <= $width) { - $line .= $char; - continue; - } - $lines[] = str_pad($line, $width); - $line = $char; - } - if (strlen($line)) { - $lines[] = count($lines) ? str_pad($line, $width) : $line; - } - - mb_convert_variables($encoding, 'utf8', $lines); - - return $lines; - } - - private function isRunningOS400() - { - $checks = [ - function_exists('php_uname') ? php_uname('s') : '', - getenv('OSTYPE'), - PHP_OS, - ]; - return false !== stripos(implode(';', $checks), 'OS400'); - } - - /** - * 当前环境是否支持写入控制台输出到stdout. - * - * @return bool - */ - protected function hasStdoutSupport() - { - return false === $this->isRunningOS400(); - } - - /** - * 当前环境是否支持写入控制台输出到stderr. - * - * @return bool - */ - protected function hasStderrSupport() - { - return false === $this->isRunningOS400(); - } - - /** - * @return resource - */ - private function openOutputStream() - { - if (!$this->hasStdoutSupport()) { - return fopen('php://output', 'w'); - } - return @fopen('php://stdout', 'w') ?: fopen('php://output', 'w'); - } - - /** - * @return resource - */ - private function openErrorStream() - { - return fopen($this->hasStderrSupport() ? 'php://stderr' : 'php://output', 'w'); - } - - /** - * 将消息写入到输出。 - * @param string $message 消息 - * @param bool $newline 是否另起一行 - * @param null $stream - */ - protected function doWrite($message, $newline, $stream = null) - { - if (null === $stream) { - $stream = $this->stdout; - } - if (false === @fwrite($stream, $message . ($newline ? PHP_EOL : ''))) { - throw new \RuntimeException('Unable to write output.'); - } - - fflush($stream); - } - - /** - * 是否支持着色 - * @param $stream - * @return bool - */ - protected function hasColorSupport($stream) - { - if (DIRECTORY_SEPARATOR === '\\') { - return - '10.0.10586' === PHP_WINDOWS_VERSION_MAJOR . '.' . PHP_WINDOWS_VERSION_MINOR . '.' . PHP_WINDOWS_VERSION_BUILD - || false !== getenv('ANSICON') - || 'ON' === getenv('ConEmuANSI') - || 'xterm' === getenv('TERM'); - } - - return function_exists('posix_isatty') && @posix_isatty($stream); - } - -} diff --git a/thinkphp/library/think/console/output/driver/Nothing.php b/thinkphp/library/think/console/output/driver/Nothing.php deleted file mode 100644 index 9a55f7779..000000000 --- a/thinkphp/library/think/console/output/driver/Nothing.php +++ /dev/null @@ -1,33 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\console\output\driver; - -use think\console\Output; - -class Nothing -{ - - public function __construct(Output $output) - { - // do nothing - } - - public function write($messages, $newline = false, $options = Output::OUTPUT_NORMAL) - { - // do nothing - } - - public function renderException(\Exception $e) - { - // do nothing - } -} diff --git a/thinkphp/library/think/console/output/formatter/Stack.php b/thinkphp/library/think/console/output/formatter/Stack.php deleted file mode 100644 index 4864a3f29..000000000 --- a/thinkphp/library/think/console/output/formatter/Stack.php +++ /dev/null @@ -1,116 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\console\output\formatter; - -class Stack -{ - - /** - * @var Style[] - */ - private $styles; - - /** - * @var Style - */ - private $emptyStyle; - - /** - * 构造方法 - * @param Style|null $emptyStyle - */ - public function __construct(Style $emptyStyle = null) - { - $this->emptyStyle = $emptyStyle ?: new Style(); - $this->reset(); - } - - /** - * 重置堆栈 - */ - public function reset() - { - $this->styles = []; - } - - /** - * 推一个样式进入堆栈 - * @param Style $style - */ - public function push(Style $style) - { - $this->styles[] = $style; - } - - /** - * 从堆栈中弹出一个样式 - * @param Style|null $style - * @return Style - * @throws \InvalidArgumentException - */ - public function pop(Style $style = null) - { - if (empty($this->styles)) { - return $this->emptyStyle; - } - - if (null === $style) { - return array_pop($this->styles); - } - - /** - * @var int $index - * @var Style $stackedStyle - */ - foreach (array_reverse($this->styles, true) as $index => $stackedStyle) { - if ($style->apply('') === $stackedStyle->apply('')) { - $this->styles = array_slice($this->styles, 0, $index); - - return $stackedStyle; - } - } - - throw new \InvalidArgumentException('Incorrectly nested style tag found.'); - } - - /** - * 计算堆栈的当前样式。 - * @return Style - */ - public function getCurrent() - { - if (empty($this->styles)) { - return $this->emptyStyle; - } - - return $this->styles[count($this->styles) - 1]; - } - - /** - * @param Style $emptyStyle - * @return Stack - */ - public function setEmptyStyle(Style $emptyStyle) - { - $this->emptyStyle = $emptyStyle; - - return $this; - } - - /** - * @return Style - */ - public function getEmptyStyle() - { - return $this->emptyStyle; - } -} diff --git a/thinkphp/library/think/console/output/formatter/Style.php b/thinkphp/library/think/console/output/formatter/Style.php deleted file mode 100644 index d9b099987..000000000 --- a/thinkphp/library/think/console/output/formatter/Style.php +++ /dev/null @@ -1,189 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\console\output\formatter; - -class Style -{ - - private static $availableForegroundColors = [ - 'black' => ['set' => 30, 'unset' => 39], - 'red' => ['set' => 31, 'unset' => 39], - 'green' => ['set' => 32, 'unset' => 39], - 'yellow' => ['set' => 33, 'unset' => 39], - 'blue' => ['set' => 34, 'unset' => 39], - 'magenta' => ['set' => 35, 'unset' => 39], - 'cyan' => ['set' => 36, 'unset' => 39], - 'white' => ['set' => 37, 'unset' => 39], - ]; - private static $availableBackgroundColors = [ - 'black' => ['set' => 40, 'unset' => 49], - 'red' => ['set' => 41, 'unset' => 49], - 'green' => ['set' => 42, 'unset' => 49], - 'yellow' => ['set' => 43, 'unset' => 49], - 'blue' => ['set' => 44, 'unset' => 49], - 'magenta' => ['set' => 45, 'unset' => 49], - 'cyan' => ['set' => 46, 'unset' => 49], - 'white' => ['set' => 47, 'unset' => 49], - ]; - private static $availableOptions = [ - 'bold' => ['set' => 1, 'unset' => 22], - 'underscore' => ['set' => 4, 'unset' => 24], - 'blink' => ['set' => 5, 'unset' => 25], - 'reverse' => ['set' => 7, 'unset' => 27], - 'conceal' => ['set' => 8, 'unset' => 28], - ]; - - private $foreground; - private $background; - private $options = []; - - /** - * 初始化输出的样式 - * @param string|null $foreground 字体颜色 - * @param string|null $background 背景色 - * @param array $options 格式 - * @api - */ - public function __construct($foreground = null, $background = null, array $options = []) - { - if (null !== $foreground) { - $this->setForeground($foreground); - } - if (null !== $background) { - $this->setBackground($background); - } - if (count($options)) { - $this->setOptions($options); - } - } - - /** - * 设置字体颜色 - * @param string|null $color 颜色名 - * @throws \InvalidArgumentException - * @api - */ - public function setForeground($color = null) - { - if (null === $color) { - $this->foreground = null; - - return; - } - - if (!isset(static::$availableForegroundColors[$color])) { - throw new \InvalidArgumentException(sprintf('Invalid foreground color specified: "%s". Expected one of (%s)', $color, implode(', ', array_keys(static::$availableForegroundColors)))); - } - - $this->foreground = static::$availableForegroundColors[$color]; - } - - /** - * 设置背景色 - * @param string|null $color 颜色名 - * @throws \InvalidArgumentException - * @api - */ - public function setBackground($color = null) - { - if (null === $color) { - $this->background = null; - - return; - } - - if (!isset(static::$availableBackgroundColors[$color])) { - throw new \InvalidArgumentException(sprintf('Invalid background color specified: "%s". Expected one of (%s)', $color, implode(', ', array_keys(static::$availableBackgroundColors)))); - } - - $this->background = static::$availableBackgroundColors[$color]; - } - - /** - * 设置字体格式 - * @param string $option 格式名 - * @throws \InvalidArgumentException When the option name isn't defined - * @api - */ - public function setOption($option) - { - if (!isset(static::$availableOptions[$option])) { - throw new \InvalidArgumentException(sprintf('Invalid option specified: "%s". Expected one of (%s)', $option, implode(', ', array_keys(static::$availableOptions)))); - } - - if (!in_array(static::$availableOptions[$option], $this->options)) { - $this->options[] = static::$availableOptions[$option]; - } - } - - /** - * 重置字体格式 - * @param string $option 格式名 - * @throws \InvalidArgumentException - */ - public function unsetOption($option) - { - if (!isset(static::$availableOptions[$option])) { - throw new \InvalidArgumentException(sprintf('Invalid option specified: "%s". Expected one of (%s)', $option, implode(', ', array_keys(static::$availableOptions)))); - } - - $pos = array_search(static::$availableOptions[$option], $this->options); - if (false !== $pos) { - unset($this->options[$pos]); - } - } - - /** - * 批量设置字体格式 - * @param array $options - */ - public function setOptions(array $options) - { - $this->options = []; - - foreach ($options as $option) { - $this->setOption($option); - } - } - - /** - * 应用样式到文字 - * @param string $text 文字 - * @return string - */ - public function apply($text) - { - $setCodes = []; - $unsetCodes = []; - - if (null !== $this->foreground) { - $setCodes[] = $this->foreground['set']; - $unsetCodes[] = $this->foreground['unset']; - } - if (null !== $this->background) { - $setCodes[] = $this->background['set']; - $unsetCodes[] = $this->background['unset']; - } - if (count($this->options)) { - foreach ($this->options as $option) { - $setCodes[] = $option['set']; - $unsetCodes[] = $option['unset']; - } - } - - if (0 === count($setCodes)) { - return $text; - } - - return sprintf("\033[%sm%s\033[%sm", implode(';', $setCodes), $text, implode(';', $unsetCodes)); - } -} diff --git a/thinkphp/library/think/console/output/question/Choice.php b/thinkphp/library/think/console/output/question/Choice.php deleted file mode 100644 index f6760e5ef..000000000 --- a/thinkphp/library/think/console/output/question/Choice.php +++ /dev/null @@ -1,163 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\console\output\question; - -use think\console\output\Question; - -class Choice extends Question -{ - - private $choices; - private $multiselect = false; - private $prompt = ' > '; - private $errorMessage = 'Value "%s" is invalid'; - - /** - * 构造方法 - * @param string $question 问题 - * @param array $choices 选项 - * @param mixed $default 默认答案 - */ - public function __construct($question, array $choices, $default = null) - { - parent::__construct($question, $default); - - $this->choices = $choices; - $this->setValidator($this->getDefaultValidator()); - $this->setAutocompleterValues($choices); - } - - /** - * 可选项 - * @return array - */ - public function getChoices() - { - return $this->choices; - } - - /** - * 设置可否多选 - * @param bool $multiselect - * @return self - */ - public function setMultiselect($multiselect) - { - $this->multiselect = $multiselect; - $this->setValidator($this->getDefaultValidator()); - - return $this; - } - - public function isMultiselect() - { - return $this->multiselect; - } - - /** - * 获取提示 - * @return string - */ - public function getPrompt() - { - return $this->prompt; - } - - /** - * 设置提示 - * @param string $prompt - * @return self - */ - public function setPrompt($prompt) - { - $this->prompt = $prompt; - - return $this; - } - - /** - * 设置错误提示信息 - * @param string $errorMessage - * @return self - */ - public function setErrorMessage($errorMessage) - { - $this->errorMessage = $errorMessage; - $this->setValidator($this->getDefaultValidator()); - - return $this; - } - - /** - * 获取默认的验证方法 - * @return callable - */ - private function getDefaultValidator() - { - $choices = $this->choices; - $errorMessage = $this->errorMessage; - $multiselect = $this->multiselect; - $isAssoc = $this->isAssoc($choices); - - return function ($selected) use ($choices, $errorMessage, $multiselect, $isAssoc) { - // Collapse all spaces. - $selectedChoices = str_replace(' ', '', $selected); - - if ($multiselect) { - // Check for a separated comma values - if (!preg_match('/^[a-zA-Z0-9_-]+(?:,[a-zA-Z0-9_-]+)*$/', $selectedChoices, $matches)) { - throw new \InvalidArgumentException(sprintf($errorMessage, $selected)); - } - $selectedChoices = explode(',', $selectedChoices); - } else { - $selectedChoices = [$selected]; - } - - $multiselectChoices = []; - foreach ($selectedChoices as $value) { - $results = []; - foreach ($choices as $key => $choice) { - if ($choice === $value) { - $results[] = $key; - } - } - - if (count($results) > 1) { - throw new \InvalidArgumentException(sprintf('The provided answer is ambiguous. Value should be one of %s.', implode(' or ', $results))); - } - - $result = array_search($value, $choices); - - if (!$isAssoc) { - if (!empty($result)) { - $result = $choices[$result]; - } elseif (isset($choices[$value])) { - $result = $choices[$value]; - } - } elseif (empty($result) && array_key_exists($value, $choices)) { - $result = $value; - } - - if (empty($result)) { - throw new \InvalidArgumentException(sprintf($errorMessage, $value)); - } - array_push($multiselectChoices, $result); - } - - if ($multiselect) { - return $multiselectChoices; - } - - return current($multiselectChoices); - }; - } -} diff --git a/thinkphp/library/think/console/output/question/Confirmation.php b/thinkphp/library/think/console/output/question/Confirmation.php deleted file mode 100644 index 6598f9b3e..000000000 --- a/thinkphp/library/think/console/output/question/Confirmation.php +++ /dev/null @@ -1,57 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\console\output\question; - -use think\console\output\Question; - -class Confirmation extends Question -{ - - private $trueAnswerRegex; - - /** - * 构造方法 - * @param string $question 问题 - * @param bool $default 默认答案 - * @param string $trueAnswerRegex 验证正则 - */ - public function __construct($question, $default = true, $trueAnswerRegex = '/^y/i') - { - parent::__construct($question, (bool) $default); - - $this->trueAnswerRegex = $trueAnswerRegex; - $this->setNormalizer($this->getDefaultNormalizer()); - } - - /** - * 获取默认的答案回调 - * @return callable - */ - private function getDefaultNormalizer() - { - $default = $this->getDefault(); - $regex = $this->trueAnswerRegex; - - return function ($answer) use ($default, $regex) { - if (is_bool($answer)) { - return $answer; - } - - $answerIsTrue = (bool) preg_match($regex, $answer); - if (false === $default) { - return $answer && $answerIsTrue; - } - - return !$answer || $answerIsTrue; - }; - } -} diff --git a/thinkphp/library/think/db/Builder.php b/thinkphp/library/think/db/Builder.php deleted file mode 100644 index 31e5fc5e9..000000000 --- a/thinkphp/library/think/db/Builder.php +++ /dev/null @@ -1,1166 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\db; - -use PDO; -use think\Exception; - -abstract class Builder -{ - // connection对象实例 - protected $connection; - - // 查询表达式映射 - protected $exp = ['EQ' => '=', 'NEQ' => '<>', 'GT' => '>', 'EGT' => '>=', 'LT' => '<', 'ELT' => '<=', 'NOTLIKE' => 'NOT LIKE', 'NOTIN' => 'NOT IN', 'NOTBETWEEN' => 'NOT BETWEEN', 'NOTEXISTS' => 'NOT EXISTS', 'NOTNULL' => 'NOT NULL', 'NOTBETWEEN TIME' => 'NOT BETWEEN TIME']; - - // 查询表达式解析 - protected $parser = [ - 'parseCompare' => ['=', '<>', '>', '>=', '<', '<='], - 'parseLike' => ['LIKE', 'NOT LIKE'], - 'parseBetween' => ['NOT BETWEEN', 'BETWEEN'], - 'parseIn' => ['NOT IN', 'IN'], - 'parseExp' => ['EXP'], - 'parseNull' => ['NOT NULL', 'NULL'], - 'parseBetweenTime' => ['BETWEEN TIME', 'NOT BETWEEN TIME'], - 'parseTime' => ['< TIME', '> TIME', '<= TIME', '>= TIME'], - 'parseExists' => ['NOT EXISTS', 'EXISTS'], - ]; - - // SQL表达式 - protected $selectSql = 'SELECT%DISTINCT% %FIELD% FROM %TABLE%%FORCE%%JOIN%%WHERE%%GROUP%%HAVING%%UNION%%ORDER%%LIMIT% %LOCK%%COMMENT%'; - - protected $insertSql = '%INSERT% INTO %TABLE% (%FIELD%) VALUES (%DATA%) %COMMENT%'; - - protected $insertAllSql = '%INSERT% INTO %TABLE% (%FIELD%) %DATA% %COMMENT%'; - - protected $updateSql = 'UPDATE %TABLE% SET %SET%%JOIN%%WHERE%%ORDER%%LIMIT% %LOCK%%COMMENT%'; - - protected $deleteSql = 'DELETE FROM %TABLE%%USING%%JOIN%%WHERE%%ORDER%%LIMIT% %LOCK%%COMMENT%'; - - /** - * 架构函数 - * @access public - * @param Connection $connection 数据库连接对象实例 - */ - public function __construct(Connection $connection) - { - $this->connection = $connection; - } - - /** - * 获取当前的连接对象实例 - * @access public - * @return Connection - */ - public function getConnection() - { - return $this->connection; - } - - /** - * 注册查询表达式解析 - * @access public - * @param string $name 解析方法 - * @param array $parser 匹配表达式数据 - * @return $this - */ - public function bindParser($name, $parser) - { - $this->parser[$name] = $parser; - return $this; - } - - /** - * 数据分析 - * @access protected - * @param Query $query 查询对象 - * @param array $data 数据 - * @param array $fields 字段信息 - * @param array $bind 参数绑定 - * @param string $suffix 参数绑定后缀 - * @return array - */ - protected function parseData(Query $query, $data = [], $fields = [], $bind = [], $suffix = '') - { - if (empty($data)) { - return []; - } - - $options = $query->getOptions(); - - // 获取绑定信息 - if (empty($bind)) { - $bind = $this->connection->getFieldsBind($options['table']); - } - - if (empty($fields)) { - if ('*' == $options['field']) { - $fields = array_keys($bind); - } else { - $fields = $options['field']; - } - } - - $result = []; - - foreach ($data as $key => $val) { - $item = $this->parseKey($query, $key, true); - - if ($val instanceof Expression) { - $result[$item] = $val->getValue(); - continue; - } elseif (!is_scalar($val) && (in_array($key, (array) $query->getOptions('json')) || 'json' == $this->connection->getFieldsType($options['table'], $key))) { - $val = json_encode($val); - } elseif (is_object($val) && method_exists($val, '__toString')) { - // 对象数据写入 - $val = $val->__toString(); - } - - if (false !== strpos($key, '->')) { - list($key, $name) = explode('->', $key); - $item = $this->parseKey($query, $key); - $result[$item] = 'json_set(' . $item . ', \'$.' . $name . '\', ' . $this->parseDataBind($query, $key, $val, $bind, $suffix) . ')'; - } elseif (false === strpos($key, '.') && !in_array($key, $fields, true)) { - if ($options['strict']) { - throw new Exception('fields not exists:[' . $key . ']'); - } - } elseif (is_null($val)) { - $result[$item] = 'NULL'; - } elseif (is_array($val) && !empty($val)) { - switch ($val[0]) { - case 'INC': - $result[$item] = $item . ' + ' . floatval($val[1]); - break; - case 'DEC': - $result[$item] = $item . ' - ' . floatval($val[1]); - break; - } - } elseif (is_scalar($val)) { - // 过滤非标量数据 - $result[$item] = $this->parseDataBind($query, $key, $val, $bind, $suffix); - } - } - - return $result; - } - - /** - * 数据绑定处理 - * @access protected - * @param Query $query 查询对象 - * @param string $key 字段名 - * @param mixed $data 数据 - * @param array $bind 绑定数据 - * @param string $suffix 绑定后缀 - * @return string - */ - protected function parseDataBind(Query $query, $key, $data, $bind = [], $suffix = '') - { - // 过滤非标量数据 - if (0 === strpos($data, ':') && $query->isBind(substr($data, 1))) { - return $data; - } - - $key = str_replace(['.', '->'], '_', $key); - $name = 'data__' . $key . $suffix; - - $query->bind($name, $data, isset($bind[$key]) ? $bind[$key] : PDO::PARAM_STR); - - return ':' . $name; - } - - /** - * 字段名分析 - * @access public - * @param Query $query 查询对象 - * @param string $key 字段名 - * @param bool $strict 严格检测 - * @return string - */ - public function parseKey(Query $query, $key, $strict = false) - { - return $key; - } - - /** - * field分析 - * @access protected - * @param Query $query 查询对象 - * @param mixed $fields 字段名 - * @return string - */ - protected function parseField(Query $query, $fields) - { - if ('*' == $fields || empty($fields)) { - $fieldsStr = '*'; - } elseif (is_array($fields)) { - // 支持 'field1'=>'field2' 这样的字段别名定义 - $array = []; - - foreach ($fields as $key => $field) { - if ($field instanceof Expression) { - $array[] = $field->getValue(); - } elseif (!is_numeric($key)) { - $array[] = $this->parseKey($query, $key) . ' AS ' . $this->parseKey($query, $field, true); - } else { - $array[] = $this->parseKey($query, $field); - } - } - - $fieldsStr = implode(',', $array); - } - - return $fieldsStr; - } - - /** - * table分析 - * @access protected - * @param Query $query 查询对象 - * @param mixed $tables 表名 - * @return string - */ - protected function parseTable(Query $query, $tables) - { - $item = []; - $options = $query->getOptions(); - - foreach ((array) $tables as $key => $table) { - if (!is_numeric($key)) { - $key = $this->connection->parseSqlTable($key); - $item[] = $this->parseKey($query, $key) . ' ' . $this->parseKey($query, $table); - } else { - $table = $this->connection->parseSqlTable($table); - - if (isset($options['alias'][$table])) { - $item[] = $this->parseKey($query, $table) . ' ' . $this->parseKey($query, $options['alias'][$table]); - } else { - $item[] = $this->parseKey($query, $table); - } - } - } - - return implode(',', $item); - } - - /** - * where分析 - * @access protected - * @param Query $query 查询对象 - * @param mixed $where 查询条件 - * @return string - */ - protected function parseWhere(Query $query, $where) - { - $options = $query->getOptions(); - $whereStr = $this->buildWhere($query, $where); - - if (!empty($options['soft_delete'])) { - // 附加软删除条件 - list($field, $condition) = $options['soft_delete']; - - $binds = $this->connection->getFieldsBind($options['table']); - $whereStr = $whereStr ? '( ' . $whereStr . ' ) AND ' : ''; - $whereStr = $whereStr . $this->parseWhereItem($query, $field, $condition, '', $binds); - } - - return empty($whereStr) ? '' : ' WHERE ' . $whereStr; - } - - /** - * 生成查询条件SQL - * @access public - * @param Query $query 查询对象 - * @param mixed $where 查询条件 - * @return string - */ - public function buildWhere(Query $query, $where) - { - if (empty($where)) { - $where = []; - } - - $whereStr = ''; - $binds = $this->connection->getFieldsBind($query->getOptions('table')); - - foreach ($where as $logic => $val) { - $str = []; - - foreach ($val as $value) { - if ($value instanceof Expression) { - $str[] = ' ' . $logic . ' ( ' . $value->getValue() . ' )'; - continue; - } - - if (is_array($value)) { - if (key($value) !== 0) { - throw new Exception('where express error:' . var_export($value, true)); - } - $field = array_shift($value); - } elseif (!($value instanceof \Closure)) { - throw new Exception('where express error:' . var_export($value, true)); - } - - if ($value instanceof \Closure) { - // 使用闭包查询 - $newQuery = $query->newQuery()->setConnection($this->connection); - $value($newQuery); - $whereClause = $this->buildWhere($query, $newQuery->getOptions('where')); - - if (!empty($whereClause)) { - $str[] = ' ' . $logic . ' ( ' . $whereClause . ' )'; - } - } elseif (is_array($field)) { - array_unshift($value, $field); - $str2 = []; - foreach ($value as $item) { - $str2[] = $this->parseWhereItem($query, array_shift($item), $item, $logic, $binds); - } - - $str[] = ' ' . $logic . ' ( ' . implode(' AND ', $str2) . ' )'; - } elseif (strpos($field, '|')) { - // 不同字段使用相同查询条件(OR) - $array = explode('|', $field); - $item = []; - - foreach ($array as $k) { - $item[] = $this->parseWhereItem($query, $k, $value, '', $binds); - } - - $str[] = ' ' . $logic . ' ( ' . implode(' OR ', $item) . ' )'; - } elseif (strpos($field, '&')) { - // 不同字段使用相同查询条件(AND) - $array = explode('&', $field); - $item = []; - - foreach ($array as $k) { - $item[] = $this->parseWhereItem($query, $k, $value, '', $binds); - } - - $str[] = ' ' . $logic . ' ( ' . implode(' AND ', $item) . ' )'; - } else { - // 对字段使用表达式查询 - $field = is_string($field) ? $field : ''; - $str[] = ' ' . $logic . ' ' . $this->parseWhereItem($query, $field, $value, $logic, $binds); - } - } - - $whereStr .= empty($whereStr) ? substr(implode(' ', $str), strlen($logic) + 1) : implode(' ', $str); - } - - return $whereStr; - } - - // where子单元分析 - protected function parseWhereItem(Query $query, $field, $val, $rule = '', $binds = [], $bindName = null) - { - // 字段分析 - $key = $field ? $this->parseKey($query, $field, true) : ''; - - // 查询规则和条件 - if (!is_array($val)) { - $val = is_null($val) ? ['NULL', ''] : ['=', $val]; - } - - list($exp, $value) = $val; - - // 对一个字段使用多个查询条件 - if (is_array($exp)) { - $item = array_pop($val); - - // 传入 or 或者 and - if (is_string($item) && in_array($item, ['AND', 'and', 'OR', 'or'])) { - $rule = $item; - } else { - array_push($val, $item); - } - - foreach ($val as $k => $item) { - $bindName = 'where_' . str_replace('.', '_', $field) . '_' . $k; - $str[] = $this->parseWhereItem($query, $field, $item, $rule, $binds, $bindName); - } - - return '( ' . implode(' ' . $rule . ' ', $str) . ' )'; - } - - // 检测操作符 - $exp = strtoupper($exp); - if (isset($this->exp[$exp])) { - $exp = $this->exp[$exp]; - } - - $bindName = $bindName ?: 'where_' . $rule . '_' . str_replace(['.', '-'], '_', $field); - - if (preg_match('/\W/', $bindName)) { - // 处理带非单词字符的字段名 - $bindName = md5($bindName); - } - - if ($value instanceof Expression) { - - } elseif (is_object($value) && method_exists($value, '__toString')) { - // 对象数据写入 - $value = $value->__toString(); - } - - $bindType = isset($binds[$field]) ? $binds[$field] : PDO::PARAM_STR; - - if (is_scalar($value) && !in_array($exp, ['EXP', 'NOT NULL', 'NULL', 'IN', 'NOT IN', 'BETWEEN', 'NOT BETWEEN']) && strpos($exp, 'TIME') === false) { - if (strpos($value, ':') !== 0 || !$query->isBind(substr($value, 1))) { - if ($query->isBind($bindName)) { - $bindName .= '_' . str_replace('.', '_', uniqid('', true)); - } - - $query->bind($bindName, $value, $bindType); - $value = ':' . $bindName; - } - } - - // 解析查询表达式 - foreach ($this->parser as $fun => $parse) { - if (in_array($exp, $parse)) { - $whereStr = $this->$fun($query, $key, $exp, $value, $field, $bindName, $bindType, isset($val[2]) ? $val[2] : 'AND'); - break; - } - } - - if (!isset($whereStr)) { - throw new Exception('where express error:' . $exp); - } - - return $whereStr; - } - - /** - * 模糊查询 - * @access protected - * @param Query $query 查询对象 - * @param string $key - * @param string $exp - * @param mixed $value - * @param string $field - * @param string $bindName - * @param integer $bindType - * @param string $logic - * @return string - */ - protected function parseLike(Query $query, $key, $exp, $value, $field, $bindName, $bindType, $logic) - { - // 模糊匹配 - if (is_array($value)) { - foreach ($value as $k => $item) { - $bindKey = $bindName . '_' . $k; - $bind[$bindKey] = [$item, $bindType]; - $array[] = $key . ' ' . $exp . ' :' . $bindKey; - } - - $query->bind($bind); - - $whereStr = '(' . implode($array, ' ' . strtoupper($logic) . ' ') . ')'; - } else { - $whereStr = $key . ' ' . $exp . ' ' . $value; - } - - return $whereStr; - } - - /** - * 表达式查询 - * @access protected - * @param Query $query 查询对象 - * @param string $key - * @param string $exp - * @param Expression $value - * @param string $field - * @param string $bindName - * @param integer $bindType - * @return string - */ - protected function parseExp(Query $query, $key, $exp, Expression $value, $field, $bindName, $bindType) - { - // 表达式查询 - return '( ' . $key . ' ' . $value->getValue() . ' )'; - } - - /** - * Null查询 - * @access protected - * @param Query $query 查询对象 - * @param string $key - * @param string $exp - * @param mixed $value - * @param string $field - * @param string $bindName - * @param integer $bindType - * @return string - */ - protected function parseNull(Query $query, $key, $exp, $value, $field, $bindName, $bindType) - { - // NULL 查询 - return $key . ' IS ' . $exp; - } - - /** - * 范围查询 - * @access protected - * @param Query $query 查询对象 - * @param string $key - * @param string $exp - * @param mixed $value - * @param string $field - * @param string $bindName - * @param integer $bindType - * @return string - */ - protected function parseBetween(Query $query, $key, $exp, $value, $field, $bindName, $bindType) - { - // BETWEEN 查询 - $data = is_array($value) ? $value : explode(',', $value); - - if ($query->isBind($bindName . '_between_1')) { - $bindKey1 = $bindName . '_between_1' . uniqid(); - $bindKey2 = $bindName . '_between_2' . uniqid(); - } else { - $bindKey1 = $bindName . '_between_1'; - $bindKey2 = $bindName . '_between_2'; - } - - $bind = [ - $bindKey1 => [$data[0], $bindType], - $bindKey2 => [$data[1], $bindType], - ]; - - $query->bind($bind); - - $between = ':' . $bindKey1 . ' AND :' . $bindKey2; - - return $key . ' ' . $exp . ' ' . $between; - } - - /** - * Exists查询 - * @access protected - * @param Query $query 查询对象 - * @param string $key - * @param string $exp - * @param mixed $value - * @param string $field - * @param string $bindName - * @param integer $bindType - * @return string - */ - protected function parseExists(Query $query, $key, $exp, $value, $field, $bindName, $bindType) - { - // EXISTS 查询 - if ($value instanceof \Closure) { - $value = $this->parseClosure($query, $value, false); - } - - return $exp . ' (' . $value . ')'; - } - - /** - * 时间比较查询 - * @access protected - * @param Query $query 查询对象 - * @param string $key - * @param string $exp - * @param mixed $value - * @param string $field - * @param string $bindName - * @param integer $bindType - * @return string - */ - protected function parseTime(Query $query, $key, $exp, $value, $field, $bindName, $bindType) - { - return $key . ' ' . substr($exp, 0, 2) . ' ' . $this->parseDateTime($query, $value, $field, $bindName, $bindType); - } - - /** - * 大小比较查询 - * @access protected - * @param Query $query 查询对象 - * @param string $key - * @param string $exp - * @param mixed $value - * @param string $field - * @param string $bindName - * @param integer $bindType - * @return string - */ - protected function parseCompare(Query $query, $key, $exp, $value, $field, $bindName, $bindType) - { - if (is_array($value)) { - throw new Exception('where express error:' . $exp . var_export($value, true)); - } - - // 比较运算 - if ($value instanceof \Closure) { - $value = $this->parseClosure($query, $value); - } - - return $key . ' ' . $exp . ' ' . $value; - } - - /** - * 时间范围查询 - * @access protected - * @param Query $query 查询对象 - * @param string $key - * @param string $exp - * @param mixed $value - * @param string $field - * @param string $bindName - * @param integer $bindType - * @return string - */ - protected function parseBetweenTime(Query $query, $key, $exp, $value, $field, $bindName, $bindType) - { - if (is_string($value)) { - $value = explode(',', $value); - } - - return $key . ' ' . substr($exp, 0, -4) - . $this->parseDateTime($query, $value[0], $field, $bindName . '_between_1', $bindType) - . ' AND ' - . $this->parseDateTime($query, $value[1], $field, $bindName . '_between_2', $bindType); - - } - - /** - * IN查询 - * @access protected - * @param Query $query 查询对象 - * @param string $key - * @param string $exp - * @param mixed $value - * @param string $field - * @param string $bindName - * @param integer $bindType - * @return string - */ - protected function parseIn(Query $query, $key, $exp, $value, $field, $bindName, $bindType) - { - // IN 查询 - if ($value instanceof \Closure) { - $value = $this->parseClosure($query, $value, false); - } else { - $value = array_unique(is_array($value) ? $value : explode(',', $value)); - - $bind = []; - $array = []; - $i = 0; - - foreach ($value as $k => $v) { - $i++; - if ($query->isBind($bindName . '_in_' . $i)) { - $bindKey = $bindName . '_in_' . uniqid() . '_' . $i; - } else { - $bindKey = $bindName . '_in_' . $i; - } - $bind[$bindKey] = [$v, $bindType]; - $array[] = ':' . $bindKey; - } - - $zone = implode(',', $array); - $query->bind($bind); - - $value = empty($zone) ? "''" : $zone; - } - - return $key . ' ' . $exp . ' (' . $value . ')'; - } - - /** - * 闭包子查询 - * @access protected - * @param Query $query 查询对象 - * @param \Closure $call - * @param bool $show - * @return string - */ - protected function parseClosure(Query $query, $call, $show = true) - { - $newQuery = $query->newQuery()->setConnection($this->connection); - $call($newQuery); - - return $newQuery->buildSql($show); - } - - /** - * 日期时间条件解析 - * @access protected - * @param Query $query 查询对象 - * @param string $value - * @param string $key - * @param array $options - * @param string $bindName - * @param integer $bindType - * @return string - */ - protected function parseDateTime(Query $query, $value, $key, $bindName = null, $bindType = null) - { - $options = $query->getOptions(); - - // 获取时间字段类型 - if (strpos($key, '.')) { - list($table, $key) = explode('.', $key); - - if (isset($options['alias']) && $pos = array_search($table, $options['alias'])) { - $table = $pos; - } - } else { - $table = $options['table']; - } - - $type = $this->connection->getTableInfo($table, 'type'); - - if (isset($type[$key])) { - $info = $type[$key]; - } - - if (isset($info)) { - if (is_string($value)) { - $value = strtotime($value) ?: $value; - } - - if (preg_match('/(datetime|timestamp)/is', $info)) { - // 日期及时间戳类型 - $value = date('Y-m-d H:i:s', $value); - } elseif (preg_match('/(date)/is', $info)) { - // 日期及时间戳类型 - $value = date('Y-m-d', $value); - } - } - - $bindName = $bindName ?: $key; - - $query->bind($bindName, $value, $bindType); - - return ':' . $bindName; - } - - /** - * limit分析 - * @access protected - * @param Query $query 查询对象 - * @param mixed $limit - * @return string - */ - protected function parseLimit(Query $query, $limit) - { - return (!empty($limit) && false === strpos($limit, '(')) ? ' LIMIT ' . $limit . ' ' : ''; - } - - /** - * join分析 - * @access protected - * @param Query $query 查询对象 - * @param array $join - * @return string - */ - protected function parseJoin(Query $query, $join) - { - $joinStr = ''; - - if (!empty($join)) { - foreach ($join as $item) { - list($table, $type, $on) = $item; - - $condition = []; - - foreach ((array) $on as $val) { - if (strpos($val, '=')) { - list($val1, $val2) = explode('=', $val, 2); - $condition[] = $this->parseKey($query, $val1) . '=' . $this->parseKey($query, $val2); - } else { - $condition[] = $val; - } - } - - $table = $this->parseTable($query, $table); - - $joinStr .= ' ' . $type . ' JOIN ' . $table . ' ON ' . implode(' AND ', $condition); - } - } - - return $joinStr; - } - - /** - * order分析 - * @access protected - * @param Query $query 查询对象 - * @param mixed $order - * @return string - */ - protected function parseOrder(Query $query, $order) - { - if (empty($order)) { - return ''; - } - - $array = []; - - foreach ($order as $key => $val) { - if ($val instanceof Expression) { - $array[] = $val->getValue(); - } elseif (is_array($val)) { - if (isset($val['sort'])) { - $sort = ' ' . $val['sort']; - unset($val['sort']); - } else { - $sort = ''; - } - - $options = $query->getOptions(); - $bind = $this->connection->getFieldsBind($options['table']); - - foreach ($val as $k => $item) { - $val[$k] = $this->parseDataBind($query, $key, $item, $bind, $k); - } - - $array[] = 'field(' . $this->parseKey($query, $key, true) . ',' . implode(',', $val) . ')' . $sort; - } elseif ('[rand]' == $val) { - $array[] = $this->parseRand($query); - } else { - if (is_numeric($key)) { - list($key, $sort) = explode(' ', strpos($val, ' ') ? $val : $val . ' '); - } else { - $sort = $val; - } - - $sort = in_array(strtolower($sort), ['asc', 'desc'], true) ? ' ' . $sort : ''; - $array[] = $this->parseKey($query, $key, true) . $sort; - } - } - - $order = implode(',', $array); - - return ' ORDER BY ' . $order; - } - - /** - * group分析 - * @access protected - * @param Query $query 查询对象 - * @param mixed $group - * @return string - */ - protected function parseGroup(Query $query, $group) - { - if (empty($group)) { - return ''; - } - - if (is_string($group)) { - $group = explode(',', $group); - } - - foreach ($group as $key) { - $val[] = $this->parseKey($query, $key); - } - - return ' GROUP BY ' . implode(',', $val); - } - - /** - * having分析 - * @access protected - * @param Query $query 查询对象 - * @param string $having - * @return string - */ - protected function parseHaving(Query $query, $having) - { - return !empty($having) ? ' HAVING ' . $having : ''; - } - - /** - * comment分析 - * @access protected - * @param Query $query 查询对象 - * @param string $comment - * @return string - */ - protected function parseComment(Query $query, $comment) - { - return !empty($comment) ? ' /* ' . $comment . ' */' : ''; - } - - /** - * distinct分析 - * @access protected - * @param Query $query 查询对象 - * @param mixed $distinct - * @return string - */ - protected function parseDistinct(Query $query, $distinct) - { - return !empty($distinct) ? ' DISTINCT ' : ''; - } - - /** - * union分析 - * @access protected - * @param Query $query 查询对象 - * @param mixed $union - * @return string - */ - protected function parseUnion(Query $query, $union) - { - if (empty($union)) { - return ''; - } - - $type = $union['type']; - unset($union['type']); - - foreach ($union as $u) { - if ($u instanceof \Closure) { - $sql[] = $type . ' ' . $this->parseClosure($query, $u); - } elseif (is_string($u)) { - $sql[] = $type . ' ( ' . $this->connection->parseSqlTable($u) . ' )'; - } - } - - return ' ' . implode(' ', $sql); - } - - /** - * index分析,可在操作链中指定需要强制使用的索引 - * @access protected - * @param Query $query 查询对象 - * @param mixed $index - * @return string - */ - protected function parseForce(Query $query, $index) - { - if (empty($index)) { - return ''; - } - - return sprintf(" FORCE INDEX ( %s ) ", is_array($index) ? implode(',', $index) : $index); - } - - /** - * 设置锁机制 - * @access protected - * @param Query $query 查询对象 - * @param bool|string $lock - * @return string - */ - protected function parseLock(Query $query, $lock = false) - { - if (is_bool($lock)) { - return $lock ? ' FOR UPDATE ' : ''; - } elseif (is_string($lock) && !empty($lock)) { - return ' ' . trim($lock) . ' '; - } - } - - /** - * 生成查询SQL - * @access public - * @param Query $query 查询对象 - * @return string - */ - public function select(Query $query) - { - $options = $query->getOptions(); - - return str_replace( - ['%TABLE%', '%DISTINCT%', '%FIELD%', '%JOIN%', '%WHERE%', '%GROUP%', '%HAVING%', '%ORDER%', '%LIMIT%', '%UNION%', '%LOCK%', '%COMMENT%', '%FORCE%'], - [ - $this->parseTable($query, $options['table']), - $this->parseDistinct($query, $options['distinct']), - $this->parseField($query, $options['field']), - $this->parseJoin($query, $options['join']), - $this->parseWhere($query, $options['where']), - $this->parseGroup($query, $options['group']), - $this->parseHaving($query, $options['having']), - $this->parseOrder($query, $options['order']), - $this->parseLimit($query, $options['limit']), - $this->parseUnion($query, $options['union']), - $this->parseLock($query, $options['lock']), - $this->parseComment($query, $options['comment']), - $this->parseForce($query, $options['force']), - ], - $this->selectSql); - } - - /** - * 生成Insert SQL - * @access public - * @param Query $query 查询对象 - * @param bool $replace 是否replace - * @return string - */ - public function insert(Query $query, $replace = false) - { - $options = $query->getOptions(); - - // 分析并处理数据 - $data = $this->parseData($query, $options['data']); - if (empty($data)) { - return 0; - } - - $fields = array_keys($data); - $values = array_values($data); - - return str_replace( - ['%INSERT%', '%TABLE%', '%FIELD%', '%DATA%', '%COMMENT%'], - [ - $replace ? 'REPLACE' : 'INSERT', - $this->parseTable($query, $options['table']), - implode(' , ', $fields), - implode(' , ', $values), - $this->parseComment($query, $options['comment']), - ], - $this->insertSql); - } - - /** - * 生成insertall SQL - * @access public - * @param Query $query 查询对象 - * @param array $dataSet 数据集 - * @param bool $replace 是否replace - * @return string - */ - public function insertAll(Query $query, $dataSet, $replace = false) - { - $options = $query->getOptions(); - - // 获取合法的字段 - if ('*' == $options['field']) { - $allowFields = $this->connection->getTableFields($options['table']); - } else { - $allowFields = $options['field']; - } - - // 获取绑定信息 - $bind = $this->connection->getFieldsBind($options['table']); - - foreach ($dataSet as $k => $data) { - $data = $this->parseData($query, $data, $allowFields, $bind, '_' . $k); - - $values[] = 'SELECT ' . implode(',', array_values($data)); - - if (!isset($insertFields)) { - $insertFields = array_keys($data); - } - } - - $fields = []; - - foreach ($insertFields as $field) { - $fields[] = $this->parseKey($query, $field, true); - } - - return str_replace( - ['%INSERT%', '%TABLE%', '%FIELD%', '%DATA%', '%COMMENT%'], - [ - $replace ? 'REPLACE' : 'INSERT', - $this->parseTable($query, $options['table']), - implode(' , ', $fields), - implode(' UNION ALL ', $values), - $this->parseComment($query, $options['comment']), - ], - $this->insertAllSql); - } - - /** - * 生成slect insert SQL - * @access public - * @param Query $query 查询对象 - * @param array $fields 数据 - * @param string $table 数据表 - * @return string - */ - public function selectInsert(Query $query, $fields, $table) - { - $options = $query->getOptions(); - - if (is_string($fields)) { - $fields = explode(',', $fields); - } - - foreach ($fields as &$field) { - $field = $this->parseKey($query, $field, true); - } - - return 'INSERT INTO ' . $this->parseTable($query, $table, $options) . ' (' . implode(',', $fields) . ') ' . $this->select($options); - } - - /** - * 生成update SQL - * @access public - * @param Query $query 查询对象 - * @return string - */ - public function update(Query $query) - { - $options = $query->getOptions(); - - $table = $this->parseTable($query, $options['table']); - $data = $this->parseData($query, $options['data']); - - if (empty($data)) { - return ''; - } - - foreach ($data as $key => $val) { - $set[] = $key . ' = ' . $val; - } - - return str_replace( - ['%TABLE%', '%SET%', '%JOIN%', '%WHERE%', '%ORDER%', '%LIMIT%', '%LOCK%', '%COMMENT%'], - [ - $this->parseTable($query, $options['table']), - implode(' , ', $set), - $this->parseJoin($query, $options['join']), - $this->parseWhere($query, $options['where']), - $this->parseOrder($query, $options['order']), - $this->parseLimit($query, $options['limit']), - $this->parseLock($query, $options['lock']), - $this->parseComment($query, $options['comment']), - ], - $this->updateSql); - } - - /** - * 生成delete SQL - * @access public - * @param Query $query 查询对象 - * @return string - */ - public function delete(Query $query) - { - $options = $query->getOptions(); - - return str_replace( - ['%TABLE%', '%USING%', '%JOIN%', '%WHERE%', '%ORDER%', '%LIMIT%', '%LOCK%', '%COMMENT%'], - [ - $this->parseTable($query, $options['table']), - !empty($options['using']) ? ' USING ' . $this->parseTable($query, $options['using']) . ' ' : '', - $this->parseJoin($query, $options['join']), - $this->parseWhere($query, $options['where']), - $this->parseOrder($query, $options['order']), - $this->parseLimit($query, $options['limit']), - $this->parseLock($query, $options['lock']), - $this->parseComment($query, $options['comment']), - ], - $this->deleteSql); - } -} diff --git a/thinkphp/library/think/db/Connection.php b/thinkphp/library/think/db/Connection.php deleted file mode 100644 index aa1b74028..000000000 --- a/thinkphp/library/think/db/Connection.php +++ /dev/null @@ -1,2152 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\db; - -use InvalidArgumentException; -use PDO; -use PDOStatement; -use think\Container; -use think\Db; -use think\db\exception\BindParamException; -use think\Debug; -use think\Exception; -use think\exception\PDOException; - -abstract class Connection -{ - protected static $instance = []; - /** @var PDOStatement PDO操作实例 */ - protected $PDOStatement; - - /** @var string 当前SQL指令 */ - protected $queryStr = ''; - // 返回或者影响记录数 - protected $numRows = 0; - // 事务指令数 - protected $transTimes = 0; - // 错误信息 - protected $error = ''; - - /** @var PDO[] 数据库连接ID 支持多个连接 */ - protected $links = []; - - /** @var PDO 当前连接ID */ - protected $linkID; - protected $linkRead; - protected $linkWrite; - - // 查询结果类型 - protected $fetchType = PDO::FETCH_ASSOC; - // 字段属性大小写 - protected $attrCase = PDO::CASE_LOWER; - // 监听回调 - protected static $event = []; - - // 数据表信息 - protected static $info = []; - - // 使用Builder类 - protected $builderClassName; - // Builder对象 - protected $builder; - // 数据库连接参数配置 - protected $config = [ - // 数据库类型 - 'type' => '', - // 服务器地址 - 'hostname' => '', - // 数据库名 - 'database' => '', - // 用户名 - 'username' => '', - // 密码 - 'password' => '', - // 端口 - 'hostport' => '', - // 连接dsn - 'dsn' => '', - // 数据库连接参数 - 'params' => [], - // 数据库编码默认采用utf8 - 'charset' => 'utf8', - // 数据库表前缀 - 'prefix' => '', - // 数据库调试模式 - 'debug' => false, - // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器) - 'deploy' => 0, - // 数据库读写是否分离 主从式有效 - 'rw_separate' => false, - // 读写分离后 主服务器数量 - 'master_num' => 1, - // 指定从服务器序号 - 'slave_no' => '', - // 是否严格检查字段是否存在 - 'fields_strict' => true, - // 数据集返回类型 - 'resultset_type' => '', - // 自动写入时间戳字段 - 'auto_timestamp' => false, - // 时间字段取出后的默认时间格式 - 'datetime_format' => 'Y-m-d H:i:s', - // 是否需要进行SQL性能分析 - 'sql_explain' => false, - // Builder类 - 'builder' => '', - // Query类 - 'query' => '\\think\\db\\Query', - // 是否需要断线重连 - 'break_reconnect' => false, - // 断线标识字符串 - 'break_match_str' => [], - ]; - - // PDO连接参数 - protected $params = [ - PDO::ATTR_CASE => PDO::CASE_NATURAL, - PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, - PDO::ATTR_ORACLE_NULLS => PDO::NULL_NATURAL, - PDO::ATTR_STRINGIFY_FETCHES => false, - PDO::ATTR_EMULATE_PREPARES => false, - ]; - - // 服务器断线标识字符 - protected $breakMatchStr = [ - 'server has gone away', - 'no connection to the server', - 'Lost connection', - 'is dead or not enabled', - 'Error while sending', - 'decryption failed or bad record mac', - 'server closed the connection unexpectedly', - 'SSL connection has been closed unexpectedly', - 'Error writing data to the connection', - 'Resource deadlock avoided', - 'failed with errno', - ]; - - // 绑定参数 - protected $bind = []; - - /** - * 架构函数 读取数据库配置信息 - * @access public - * @param array $config 数据库配置数组 - */ - public function __construct(array $config = []) - { - if (!empty($config)) { - $this->config = array_merge($this->config, $config); - } - - // 创建Builder对象 - $class = $this->getBuilderClass(); - - $this->builder = new $class($this); - - // 执行初始化操作 - $this->initialize(); - } - - /** - * 初始化 - * @access protected - * @return void - */ - protected function initialize() - {} - - /** - * 取得数据库连接类实例 - * @access public - * @param mixed $config 连接配置 - * @param bool|string $name 连接标识 true 强制重新连接 - * @return Connection - * @throws Exception - */ - public static function instance($config = [], $name = false) - { - if (false === $name) { - $name = md5(serialize($config)); - } - - if (true === $name || !isset(self::$instance[$name])) { - // 解析连接参数 支持数组和字符串 - $options = self::parseConfig($config); - - if (empty($options['type'])) { - throw new InvalidArgumentException('Undefined db type'); - } - - $class = false !== strpos($options['type'], '\\') ? $options['type'] : '\\think\\db\\connector\\' . ucwords($options['type']); - // 记录初始化信息 - Container::get('app')->log('[ DB ] INIT ' . $options['type']); - - if (true === $name) { - $name = md5(serialize($config)); - } - - self::$instance[$name] = new $class($options); - } - - return self::$instance[$name]; - } - - /** - * 获取当前连接器类对应的Builder类 - * @access public - * @return string - */ - public function getBuilderClass() - { - if (!empty($this->builderClassName)) { - return $this->builderClassName; - } - - return $this->getConfig('builder') ?: '\\think\\db\\builder\\' . ucfirst($this->getConfig('type')); - } - - /** - * 设置当前的数据库Builder对象 - * @access protected - * @param Builder $builder - * @return void - */ - protected function setBuilder(Builder $builder) - { - $this->builder = $builder; - - return $this; - } - - /** - * 获取当前的builder实例对象 - * @access public - * @return Builder - */ - public function getBuilder() - { - return $this->builder; - } - - /** - * 解析pdo连接的dsn信息 - * @access protected - * @param array $config 连接信息 - * @return string - */ - abstract protected function parseDsn($config); - - /** - * 取得数据表的字段信息 - * @access public - * @param string $tableName - * @return array - */ - abstract public function getFields($tableName); - - /** - * 取得数据库的表信息 - * @access public - * @param string $dbName - * @return array - */ - abstract public function getTables($dbName); - - /** - * SQL性能分析 - * @access protected - * @param string $sql - * @return array - */ - abstract protected function getExplain($sql); - - /** - * 对返数据表字段信息进行大小写转换出来 - * @access public - * @param array $info 字段信息 - * @return array - */ - public function fieldCase($info) - { - // 字段大小写转换 - switch ($this->attrCase) { - case PDO::CASE_LOWER: - $info = array_change_key_case($info); - break; - case PDO::CASE_UPPER: - $info = array_change_key_case($info, CASE_UPPER); - break; - case PDO::CASE_NATURAL: - default: - // 不做转换 - } - - return $info; - } - - /** - * 获取字段绑定类型 - * @access public - * @param string $type 字段类型 - * @return integer - */ - public function getFieldBindType($type) - { - if (0 === strpos($type, 'set') || 0 === strpos($type, 'enum')) { - $bind = PDO::PARAM_STR; - } elseif (preg_match('/(int|double|float|decimal|real|numeric|serial|bit)/is', $type)) { - $bind = PDO::PARAM_INT; - } elseif (preg_match('/bool/is', $type)) { - $bind = PDO::PARAM_BOOL; - } else { - $bind = PDO::PARAM_STR; - } - - return $bind; - } - - /** - * 将SQL语句中的__TABLE_NAME__字符串替换成带前缀的表名(小写) - * @access public - * @param string $sql sql语句 - * @return string - */ - public function parseSqlTable($sql) - { - if (false !== strpos($sql, '__')) { - $prefix = $this->getConfig('prefix'); - $sql = preg_replace_callback("/__([A-Z0-9_-]+)__/sU", function ($match) use ($prefix) { - return $prefix . strtolower($match[1]); - }, $sql); - } - - return $sql; - } - - /** - * 获取数据表信息 - * @access public - * @param mixed $tableName 数据表名 留空自动获取 - * @param string $fetch 获取信息类型 包括 fields type bind pk - * @return mixed - */ - public function getTableInfo($tableName, $fetch = '') - { - if (is_array($tableName)) { - $tableName = key($tableName) ?: current($tableName); - } - - if (strpos($tableName, ',')) { - // 多表不获取字段信息 - return false; - } else { - $tableName = $this->parseSqlTable($tableName); - } - - // 修正子查询作为表名的问题 - if (strpos($tableName, ')')) { - return []; - } - - list($tableName) = explode(' ', $tableName); - - if (!strpos($tableName, '.')) { - $schema = $this->getConfig('database') . '.' . $tableName; - } else { - $schema = $tableName; - } - - if (!isset(self::$info[$schema])) { - // 读取缓存 - $cacheFile = Container::get('app')->getRuntimePath() . 'schema' . DIRECTORY_SEPARATOR . $schema . '.php'; - - if (!$this->config['debug'] && is_file($cacheFile)) { - $info = include $cacheFile; - } else { - $info = $this->getFields($tableName); - } - - $fields = array_keys($info); - $bind = $type = []; - - foreach ($info as $key => $val) { - // 记录字段类型 - $type[$key] = $val['type']; - $bind[$key] = $this->getFieldBindType($val['type']); - - if (!empty($val['primary'])) { - $pk[] = $key; - } - } - - if (isset($pk)) { - // 设置主键 - $pk = count($pk) > 1 ? $pk : $pk[0]; - } else { - $pk = null; - } - - self::$info[$schema] = ['fields' => $fields, 'type' => $type, 'bind' => $bind, 'pk' => $pk]; - } - - return $fetch ? self::$info[$schema][$fetch] : self::$info[$schema]; - } - - /** - * 获取数据表的主键 - * @access public - * @param string $tableName 数据表名 - * @return string|array - */ - public function getPk($tableName) - { - return $this->getTableInfo($tableName, 'pk'); - } - - /** - * 获取数据表字段信息 - * @access public - * @param string $tableName 数据表名 - * @return array - */ - public function getTableFields($tableName) - { - return $this->getTableInfo($tableName, 'fields'); - } - - /** - * 获取数据表字段类型 - * @access public - * @param string $tableName 数据表名 - * @param string $field 字段名 - * @return array|string - */ - public function getFieldsType($tableName, $field = null) - { - $result = $this->getTableInfo($tableName, 'type'); - - if ($field && isset($result[$field])) { - return $result[$field]; - } - - return $result; - } - - /** - * 获取数据表绑定信息 - * @access public - * @param string $tableName 数据表名 - * @return array - */ - public function getFieldsBind($tableName) - { - return $this->getTableInfo($tableName, 'bind'); - } - - /** - * 获取数据库的配置参数 - * @access public - * @param string $config 配置名称 - * @return mixed - */ - public function getConfig($config = '') - { - return $config ? $this->config[$config] : $this->config; - } - - /** - * 设置数据库的配置参数 - * @access public - * @param string|array $config 配置名称 - * @param mixed $value 配置值 - * @return void - */ - public function setConfig($config, $value = '') - { - if (is_array($config)) { - $this->config = array_merge($this->config, $config); - } else { - $this->config[$config] = $value; - } - } - - /** - * 连接数据库方法 - * @access public - * @param array $config 连接参数 - * @param integer $linkNum 连接序号 - * @param array|bool $autoConnection 是否自动连接主数据库(用于分布式) - * @return PDO - * @throws Exception - */ - public function connect(array $config = [], $linkNum = 0, $autoConnection = false) - { - if (isset($this->links[$linkNum])) { - return $this->links[$linkNum]; - } - - if (!$config) { - $config = $this->config; - } else { - $config = array_merge($this->config, $config); - } - - // 连接参数 - if (isset($config['params']) && is_array($config['params'])) { - $params = $config['params'] + $this->params; - } else { - $params = $this->params; - } - - // 记录当前字段属性大小写设置 - $this->attrCase = $params[PDO::ATTR_CASE]; - - if (!empty($config['break_match_str'])) { - $this->breakMatchStr = array_merge($this->breakMatchStr, (array) $config['break_match_str']); - } - - try { - if (empty($config['dsn'])) { - $config['dsn'] = $this->parseDsn($config); - } - - if ($config['debug']) { - $startTime = microtime(true); - } - - $this->links[$linkNum] = new PDO($config['dsn'], $config['username'], $config['password'], $params); - - if ($config['debug']) { - // 记录数据库连接信息 - $this->log('[ DB ] CONNECT:[ UseTime:' . number_format(microtime(true) - $startTime, 6) . 's ] ' . $config['dsn']); - } - - return $this->links[$linkNum]; - } catch (\PDOException $e) { - if ($autoConnection) { - $this->log($e->getMessage(), 'error'); - return $this->connect($autoConnection, $linkNum); - } else { - throw $e; - } - } - } - - /** - * 释放查询结果 - * @access public - */ - public function free() - { - $this->PDOStatement = null; - } - - /** - * 获取PDO对象 - * @access public - * @return \PDO|false - */ - public function getPdo() - { - if (!$this->linkID) { - return false; - } - - return $this->linkID; - } - - /** - * 执行查询 使用生成器返回数据 - * @access public - * @param string $sql sql指令 - * @param array $bind 参数绑定 - * @param bool $master 是否在主服务器读操作 - * @param Model $model 模型对象实例 - * @param array $condition 查询条件 - * @param mixed $relation 关联查询 - * @return \Generator - */ - public function getCursor($sql, $bind = [], $master = false, $model = null, $condition = null, $relation = null) - { - $this->initConnect($master); - - // 记录SQL语句 - $this->queryStr = $sql; - - $this->bind = $bind; - - // 释放前次的查询结果 - if (!empty($this->PDOStatement)) { - $this->free(); - } - - Db::$queryTimes++; - - // 调试开始 - $this->debug(true); - - // 预处理 - if (empty($this->PDOStatement)) { - $this->PDOStatement = $this->linkID->prepare($sql); - } - - // 是否为存储过程调用 - $procedure = in_array(strtolower(substr(trim($sql), 0, 4)), ['call', 'exec']); - - // 参数绑定 - if ($procedure) { - $this->bindParam($bind); - } else { - $this->bindValue($bind); - } - - // 执行查询 - $this->PDOStatement->execute(); - - // 调试结束 - $this->debug(false); - - // 返回结果集 - while ($result = $this->PDOStatement->fetch($this->fetchType)) { - if ($model) { - $instance = $model->newInstance($result, $condition); - - if ($relation) { - $instance->relationQuery($relation); - } - - yield $instance; - } else { - yield $result; - } - } - } - - /** - * 执行查询 返回数据集 - * @access public - * @param string $sql sql指令 - * @param array $bind 参数绑定 - * @param bool $master 是否在主服务器读操作 - * @param bool $pdo 是否返回PDO对象 - * @return array - * @throws BindParamException - * @throws \PDOException - * @throws \Exception - * @throws \Throwable - */ - public function query($sql, $bind = [], $master = false, $pdo = false) - { - $this->initConnect($master); - - if (!$this->linkID) { - return false; - } - - // 记录SQL语句 - $this->queryStr = $sql; - - $this->bind = $bind; - - Db::$queryTimes++; - - try { - // 调试开始 - $this->debug(true); - - // 释放前次的查询结果 - if (!empty($this->PDOStatement)) { - $this->free(); - } - - // 预处理 - if (empty($this->PDOStatement)) { - $this->PDOStatement = $this->linkID->prepare($sql); - } - - // 是否为存储过程调用 - $procedure = in_array(strtolower(substr(trim($sql), 0, 4)), ['call', 'exec']); - - // 参数绑定 - if ($procedure) { - $this->bindParam($bind); - } else { - $this->bindValue($bind); - } - - // 执行查询 - $this->PDOStatement->execute(); - - // 调试结束 - $this->debug(false); - - // 返回结果集 - return $this->getResult($pdo, $procedure); - } catch (\PDOException $e) { - if ($this->isBreak($e)) { - return $this->close()->query($sql, $bind, $master, $pdo); - } - - throw new PDOException($e, $this->config, $this->getLastsql()); - } catch (\Throwable $e) { - if ($this->isBreak($e)) { - return $this->close()->query($sql, $bind, $master, $pdo); - } - - throw $e; - } catch (\Exception $e) { - if ($this->isBreak($e)) { - return $this->close()->query($sql, $bind, $master, $pdo); - } - - throw $e; - } - } - - /** - * 执行语句 - * @access public - * @param string $sql sql指令 - * @param array $bind 参数绑定 - * @return int - * @throws BindParamException - * @throws \PDOException - * @throws \Exception - * @throws \Throwable - */ - public function execute($sql, $bind = []) - { - $this->initConnect(true); - - if (!$this->linkID) { - return false; - } - - // 记录SQL语句 - $this->queryStr = $sql; - - $this->bind = $bind; - - Db::$executeTimes++; - try { - // 调试开始 - $this->debug(true); - - //释放前次的查询结果 - if (!empty($this->PDOStatement) && $this->PDOStatement->queryString != $sql) { - $this->free(); - } - - // 预处理 - if (empty($this->PDOStatement)) { - $this->PDOStatement = $this->linkID->prepare($sql); - } - - // 是否为存储过程调用 - $procedure = in_array(strtolower(substr(trim($sql), 0, 4)), ['call', 'exec']); - - // 参数绑定 - if ($procedure) { - $this->bindParam($bind); - } else { - $this->bindValue($bind); - } - - // 执行语句 - $this->PDOStatement->execute(); - - // 调试结束 - $this->debug(false); - - $this->numRows = $this->PDOStatement->rowCount(); - - return $this->numRows; - } catch (\PDOException $e) { - if ($this->isBreak($e)) { - return $this->close()->execute($sql, $bind); - } - - throw new PDOException($e, $this->config, $this->getLastsql()); - } catch (\Throwable $e) { - if ($this->isBreak($e)) { - return $this->close()->execute($sql, $bind); - } - - throw $e; - } catch (\Exception $e) { - if ($this->isBreak($e)) { - return $this->close()->execute($sql, $bind); - } - - throw $e; - } - } - - /** - * 查找单条记录 - * @access public - * @param Query $query 查询对象 - * @return array|null|\PDOStatement|string - * @throws DbException - * @throws ModelNotFoundException - * @throws DataNotFoundException - */ - public function find(Query $query) - { - // 分析查询表达式 - $options = $query->getOptions(); - $pk = $query->getPk($options); - - if (!empty($options['cache']) && true === $options['cache']['key'] && is_string($pk) && isset($options['where']['AND'][$pk])) { - $key = $this->getCacheKey($query, $options['where']['AND'][$pk]); - } - - $data = $options['data']; - - if (empty($options['fetch_sql']) && !empty($options['cache'])) { - // 判断查询缓存 - $cache = $options['cache']; - - if (is_string($cache['key'])) { - $key = $cache['key']; - } elseif (!isset($key)) { - $key = $this->getCacheKey($query, $data); - } - - $result = Container::get('cache')->get($key); - - if (false !== $result) { - return $result; - } - } - - if (is_string($pk) && !is_array($data)) { - if (isset($key) && strpos($key, '|')) { - list($a, $val) = explode('|', $key); - $item[$pk] = $val; - } else { - $item[$pk] = $data; - } - $data = $item; - } - - $query->setOption('data', $data); - $query->setOption('limit', 1); - - // 生成查询SQL - $sql = $this->builder->select($query); - - $bind = $query->getBind(); - - if (!empty($options['fetch_sql'])) { - // 获取实际执行的SQL语句 - return $this->getRealSql($sql, $bind); - } - - // 事件回调 - $result = $query->trigger('before_find'); - - if (!$result) { - // 执行查询 - $resultSet = $this->query($sql, $bind, $options['master'], $options['fetch_pdo']); - - if ($resultSet instanceof \PDOStatement) { - // 返回PDOStatement对象 - return $resultSet; - } - - $result = isset($resultSet[0]) ? $resultSet[0] : null; - } - - if (isset($cache) && $result) { - // 缓存数据 - $this->cacheData($key, $result, $cache); - } - - return $result; - } - - /** - * 使用游标查询记录 - * @access public - * @param Query $query 查询对象 - * @return \Generator - */ - public function cursor(Query $query) - { - // 分析查询表达式 - $options = $query->getOptions(); - - // 生成查询SQL - $sql = $this->builder->select($query); - - $bind = $query->getBind(); - - $condition = isset($options['where']['AND']) ? $options['where']['AND'] : null; - $relation = isset($options['relaltion']) ? $options['relation'] : null; - - // 执行查询操作 - return $this->getCursor($sql, $bind, $options['master'], $query->getModel(), $condition, $relation); - } - - /** - * 查找记录 - * @access public - * @param Query $query 查询对象 - * @return array|\PDOStatement|string - * @throws DbException - * @throws ModelNotFoundException - * @throws DataNotFoundException - */ - public function select(Query $query) - { - // 分析查询表达式 - $options = $query->getOptions(); - - if (empty($options['fetch_sql']) && !empty($options['cache'])) { - $resultSet = $this->getCacheData($query, $options['cache'], null, $key); - - if (false !== $resultSet) { - return $resultSet; - } - } - - // 生成查询SQL - $sql = $this->builder->select($query); - - $bind = $query->getBind(); - - if (!empty($options['fetch_sql'])) { - // 获取实际执行的SQL语句 - return $this->getRealSql($sql, $bind); - } - - $resultSet = $query->trigger('before_select'); - - if (!$resultSet) { - // 执行查询操作 - $resultSet = $this->query($sql, $bind, $options['master'], $options['fetch_pdo']); - - if ($resultSet instanceof \PDOStatement) { - // 返回PDOStatement对象 - return $resultSet; - } - } - - if (!empty($options['cache']) && false !== $resultSet) { - // 缓存数据集 - $this->cacheData($key, $resultSet, $options['cache']); - } - - return $resultSet; - } - - /** - * 插入记录 - * @access public - * @param Query $query 查询对象 - * @param boolean $replace 是否replace - * @param boolean $getLastInsID 返回自增主键 - * @param string $sequence 自增序列名 - * @return integer|string - */ - public function insert(Query $query, $replace = false, $getLastInsID = false, $sequence = null) - { - // 分析查询表达式 - $options = $query->getOptions(); - - // 生成SQL语句 - $sql = $this->builder->insert($query, $replace); - - $bind = $query->getBind(); - - if (!empty($options['fetch_sql'])) { - // 获取实际执行的SQL语句 - return $this->getRealSql($sql, $bind); - } - - // 执行操作 - $result = $this->execute($sql, $bind); - - if ($result) { - $sequence = $sequence ?: (isset($options['sequence']) ? $options['sequence'] : null); - $lastInsId = $this->getLastInsID($sequence); - - $data = $options['data']; - - if ($lastInsId) { - $pk = $query->getPk($options); - if (is_string($pk)) { - $data[$pk] = $lastInsId; - } - } - - $query->setOption('data', $data); - - $query->trigger('after_insert'); - - if ($getLastInsID) { - return $lastInsId; - } - } - - return $result; - } - - /** - * 批量插入记录 - * @access public - * @param Query $query 查询对象 - * @param mixed $dataSet 数据集 - * @param bool $replace 是否replace - * @param integer $limit 每次写入数据限制 - * @return integer|string - * @throws \Exception - * @throws \Throwable - */ - public function insertAll(Query $query, $dataSet = [], $replace = false, $limit = null) - { - if (!is_array(reset($dataSet))) { - return false; - } - - $options = $query->getOptions(); - - if ($limit) { - // 分批写入 自动启动事务支持 - $this->startTrans(); - - try { - $array = array_chunk($dataSet, $limit, true); - $count = 0; - - foreach ($array as $item) { - $sql = $this->builder->insertAll($query, $item, $replace); - $bind = $query->getBind(); - - if (!empty($options['fetch_sql'])) { - $fetchSql[] = $this->getRealSql($sql, $bind); - } else { - $count += $this->execute($sql, $bind); - } - } - - // 提交事务 - $this->commit(); - } catch (\Exception $e) { - $this->rollback(); - throw $e; - } catch (\Throwable $e) { - $this->rollback(); - throw $e; - } - - return isset($fetchSql) ? implode(';', $fetchSql) : $count; - } - - $sql = $this->builder->insertAll($query, $dataSet, $replace); - $bind = $query->getBind(); - - if (!empty($options['fetch_sql'])) { - return $this->getRealSql($sql, $bind); - } - - return $this->execute($sql, $bind); - } - - /** - * 通过Select方式插入记录 - * @access public - * @param Query $query 查询对象 - * @param string $fields 要插入的数据表字段名 - * @param string $table 要插入的数据表名 - * @return integer|string - * @throws PDOException - */ - public function selectInsert(Query $query, $fields, $table) - { - // 分析查询表达式 - $options = $query->getOptions(); - - $table = $this->parseSqlTable($table); - - $sql = $this->builder->selectInsert($query, $fields, $table); - - $bind = $query->getBind(); - - if (!empty($options['fetch_sql'])) { - return $this->getRealSql($sql, $bind); - } - - return $this->execute($sql, $bind); - } - - /** - * 更新记录 - * @access public - * @param Query $query 查询对象 - * @return integer|string - * @throws Exception - * @throws PDOException - */ - public function update(Query $query) - { - $options = $query->getOptions(); - - if (isset($options['cache']) && is_string($options['cache']['key'])) { - $key = $options['cache']['key']; - } - - $pk = $query->getPk($options); - $data = $options['data']; - - if (empty($options['where'])) { - // 如果存在主键数据 则自动作为更新条件 - if (is_string($pk) && isset($data[$pk])) { - $where[$pk] = [$pk, '=', $data[$pk]]; - if (!isset($key)) { - $key = $this->getCacheKey($query, $data[$pk]); - } - unset($data[$pk]); - } elseif (is_array($pk)) { - // 增加复合主键支持 - foreach ($pk as $field) { - if (isset($data[$field])) { - $where[$field] = [$field, '=', $data[$field]]; - } else { - // 如果缺少复合主键数据则不执行 - throw new Exception('miss complex primary data'); - } - unset($data[$field]); - } - } - - if (!isset($where)) { - // 如果没有任何更新条件则不执行 - throw new Exception('miss update condition'); - } else { - $options['where']['AND'] = $where; - $query->setOption('where', ['AND' => $where]); - } - } elseif (!isset($key) && is_string($pk) && isset($options['where']['AND'][$pk])) { - $key = $this->getCacheKey($query, $options['where']['AND'][$pk]); - } - - // 更新数据 - $query->setOption('data', $data); - - // 生成UPDATE SQL语句 - $sql = $this->builder->update($query); - $bind = $query->getBind(); - - if (!empty($options['fetch_sql'])) { - // 获取实际执行的SQL语句 - return $this->getRealSql($sql, $bind); - } - - // 检测缓存 - $cache = Container::get('cache'); - - if (isset($key) && $cache->get($key)) { - // 删除缓存 - $cache->rm($key); - } elseif (!empty($options['cache']['tag'])) { - $cache->clear($options['cache']['tag']); - } - - // 执行操作 - $result = '' == $sql ? 0 : $this->execute($sql, $bind); - - if ($result) { - if (is_string($pk) && isset($where[$pk])) { - $data[$pk] = $where[$pk]; - } elseif (is_string($pk) && isset($key) && strpos($key, '|')) { - list($a, $val) = explode('|', $key); - $data[$pk] = $val; - } - - $query->setOption('data', $data); - $query->trigger('after_update'); - } - - return $result; - } - - /** - * 删除记录 - * @access public - * @param Query $query 查询对象 - * @return int - * @throws Exception - * @throws PDOException - */ - public function delete(Query $query) - { - // 分析查询表达式 - $options = $query->getOptions(); - $pk = $query->getPk($options); - $data = $options['data']; - - if (isset($options['cache']) && is_string($options['cache']['key'])) { - $key = $options['cache']['key']; - } elseif (!is_null($data) && true !== $data && !is_array($data)) { - $key = $this->getCacheKey($query, $data); - } elseif (is_string($pk) && isset($options['where']['AND'][$pk])) { - $key = $this->getCacheKey($query, $options['where']['AND'][$pk]); - } - - if (true !== $data && empty($options['where'])) { - // 如果条件为空 不进行删除操作 除非设置 1=1 - throw new Exception('delete without condition'); - } - - // 生成删除SQL语句 - $sql = $this->builder->delete($query); - - $bind = $query->getBind(); - - if (!empty($options['fetch_sql'])) { - // 获取实际执行的SQL语句 - return $this->getRealSql($sql, $bind); - } - - // 检测缓存 - $cache = Container::get('cache'); - - if (isset($key) && $cache->get($key)) { - // 删除缓存 - $cache->rm($key); - } elseif (!empty($options['cache']['tag'])) { - $cache->clear($options['cache']['tag']); - } - - // 执行操作 - $result = $this->execute($sql, $bind); - - if ($result) { - if (!is_array($data) && is_string($pk) && isset($key) && strpos($key, '|')) { - list($a, $val) = explode('|', $key); - $item[$pk] = $val; - $data = $item; - } - - $options['data'] = $data; - - $query->trigger('after_delete'); - } - - return $result; - } - - /** - * 得到某个字段的值 - * @access public - * @param Query $query 查询对象 - * @param string $field 字段名 - * @param bool $default 默认值 - * @return mixed - */ - public function value(Query $query, $field, $default = null) - { - $options = $query->getOptions(); - - if (empty($options['fetch_sql']) && !empty($options['cache'])) { - - $result = $this->getCacheData($query, $options['cache'], $field, $key); - - if (false !== $result) { - return $result; - } - } - - if (isset($options['field'])) { - $query->removeOption('field'); - } - - if (is_string($field)) { - $field = array_map('trim', explode(',', $field)); - } - - $query->setOption('field', $field); - $query->setOption('limit', 1); - - // 生成查询SQL - $sql = $this->builder->select($query); - - $bind = $query->getBind(); - - if (!empty($options['fetch_sql'])) { - // 获取实际执行的SQL语句 - return $this->getRealSql($sql, $bind); - } - - // 执行查询操作 - $pdo = $this->query($sql, $bind, $options['master'], true); - - $result = $pdo->fetchColumn(); - - if (isset($cache) && false !== $result) { - // 缓存数据 - $this->cacheData($key, $result, $cache); - } - - return false !== $result ? $result : $default; - } - - /** - * 得到某个字段的值 - * @access public - * @param Query $query 查询对象 - * @param string $aggregate 聚合方法 - * @param string $field 字段名 - * @return mixed - */ - public function aggregate(Query $query, $aggregate, $field) - { - $field = $aggregate . '(' . $this->builder->parseKey($query, $field) . ') AS tp_' . strtolower($aggregate); - - return $this->value($query, $field, 0); - } - - /** - * 得到某个列的数组 - * @access public - * @param Query $query 查询对象 - * @param string $field 字段名 多个字段用逗号分隔 - * @param string $key 索引 - * @return array - */ - public function column(Query $query, $field, $key = '') - { - $options = $query->getOptions(); - - if (empty($options['fetch_sql']) && !empty($options['cache'])) { - // 判断查询缓存 - $cache = $options['cache']; - - $guid = is_string($cache['key']) ? $cache['key'] : $this->getCacheKey($query, $field); - - $result = Container::get('cache')->get($guid); - - if (false !== $result) { - return $result; - } - } - - if (isset($options['field'])) { - $query->removeOption('field'); - } - - if (is_null($field)) { - $field = '*'; - } elseif ($key && '*' != $field) { - $field = $key . ',' . $field; - } - - if (is_string($field)) { - $field = array_map('trim', explode(',', $field)); - } - - $query->setOption('field', $field); - - // 生成查询SQL - $sql = $this->builder->select($query); - - $bind = $query->getBind(); - - if (!empty($options['fetch_sql'])) { - // 获取实际执行的SQL语句 - return $this->getRealSql($sql, $bind); - } - - // 执行查询操作 - $pdo = $this->query($sql, $bind, $options['master'], true); - - if (1 == $pdo->columnCount()) { - $result = $pdo->fetchAll(PDO::FETCH_COLUMN); - } else { - $resultSet = $pdo->fetchAll(PDO::FETCH_ASSOC); - - if ('*' == $field && $key) { - $result = array_column($resultSet, null, $key); - } elseif ($resultSet) { - $fields = array_keys($resultSet[0]); - $count = count($fields); - $key1 = array_shift($fields); - $key2 = $fields ? array_shift($fields) : ''; - $key = $key ?: $key1; - - if (strpos($key, '.')) { - list($alias, $key) = explode('.', $key); - } - - if (2 == $count) { - $column = $key2; - } elseif (1 == $count) { - $column = $key1; - } else { - $column = null; - } - - $result = array_column($resultSet, $column, $key); - } else { - $result = []; - } - } - - if (isset($cache) && isset($guid)) { - // 缓存数据 - $this->cacheData($guid, $result, $cache); - } - - return $result; - } - - /** - * 执行查询但只返回PDOStatement对象 - * @access public - * @return \PDOStatement|string - */ - public function pdo(Query $query) - { - // 分析查询表达式 - $options = $query->getOptions(); - - // 生成查询SQL - $sql = $this->builder->select($query); - - $bind = $query->getBind(); - - if (!empty($options['fetch_sql'])) { - // 获取实际执行的SQL语句 - return $this->getRealSql($sql, $bind); - } - - // 执行查询操作 - return $this->query($sql, $bind, $options['master'], true); - } - - /** - * 根据参数绑定组装最终的SQL语句 便于调试 - * @access public - * @param string $sql 带参数绑定的sql语句 - * @param array $bind 参数绑定列表 - * @return string - */ - public function getRealSql($sql, array $bind = []) - { - if (is_array($sql)) { - $sql = implode(';', $sql); - } - - foreach ($bind as $key => $val) { - $value = is_array($val) ? $val[0] : $val; - $type = is_array($val) ? $val[1] : PDO::PARAM_STR; - - if (PDO::PARAM_STR == $type) { - $value = '\'' . addslashes($value) . '\''; - } elseif (PDO::PARAM_INT == $type) { - $value = (float) $value; - } - - // 判断占位符 - $sql = is_numeric($key) ? - substr_replace($sql, $value, strpos($sql, '?'), 1) : - str_replace( - [':' . $key . ')', ':' . $key . ',', ':' . $key . ' ', ':' . $key . PHP_EOL], - [$value . ')', $value . ',', $value . ' ', $value . PHP_EOL], - $sql . ' '); - } - - return rtrim($sql); - } - - /** - * 参数绑定 - * 支持 ['name'=>'value','id'=>123] 对应命名占位符 - * 或者 ['value',123] 对应问号占位符 - * @access public - * @param array $bind 要绑定的参数列表 - * @return void - * @throws BindParamException - */ - protected function bindValue(array $bind = []) - { - foreach ($bind as $key => $val) { - // 占位符 - $param = is_numeric($key) ? $key + 1 : ':' . $key; - - if (is_array($val)) { - if (PDO::PARAM_INT == $val[1] && '' === $val[0]) { - $val[0] = 0; - } - $result = $this->PDOStatement->bindValue($param, $val[0], $val[1]); - } else { - $result = $this->PDOStatement->bindValue($param, $val); - } - - if (!$result) { - throw new BindParamException( - "Error occurred when binding parameters '{$param}'", - $this->config, - $this->getLastsql(), - $bind - ); - } - } - } - - /** - * 存储过程的输入输出参数绑定 - * @access public - * @param array $bind 要绑定的参数列表 - * @return void - * @throws BindParamException - */ - protected function bindParam($bind) - { - foreach ($bind as $key => $val) { - $param = is_numeric($key) ? $key + 1 : ':' . $key; - - if (is_array($val)) { - array_unshift($val, $param); - $result = call_user_func_array([$this->PDOStatement, 'bindParam'], $val); - } else { - $result = $this->PDOStatement->bindValue($param, $val); - } - - if (!$result) { - $param = array_shift($val); - - throw new BindParamException( - "Error occurred when binding parameters '{$param}'", - $this->config, - $this->getLastsql(), - $bind - ); - } - } - } - - /** - * 获得数据集数组 - * @access protected - * @param bool $pdo 是否返回PDOStatement - * @param bool $procedure 是否存储过程 - * @return array - */ - protected function getResult($pdo = false, $procedure = false) - { - if ($pdo) { - // 返回PDOStatement对象处理 - return $this->PDOStatement; - } - - if ($procedure) { - // 存储过程返回结果 - return $this->procedure(); - } - - $result = $this->PDOStatement->fetchAll($this->fetchType); - - $this->numRows = count($result); - - return $result; - } - - /** - * 获得存储过程数据集 - * @access protected - * @return array - */ - protected function procedure() - { - $item = []; - - do { - $result = $this->getResult(); - if ($result) { - $item[] = $result; - } - } while ($this->PDOStatement->nextRowset()); - - $this->numRows = count($item); - - return $item; - } - - /** - * 执行数据库事务 - * @access public - * @param callable $callback 数据操作方法回调 - * @return mixed - * @throws PDOException - * @throws \Exception - * @throws \Throwable - */ - public function transaction($callback) - { - $this->startTrans(); - - try { - $result = null; - if (is_callable($callback)) { - $result = call_user_func_array($callback, [$this]); - } - - $this->commit(); - return $result; - } catch (\Exception $e) { - $this->rollback(); - throw $e; - } catch (\Throwable $e) { - $this->rollback(); - throw $e; - } - } - - /** - * 启动事务 - * @access public - * @return void - * @throws \PDOException - * @throws \Exception - */ - public function startTrans() - { - $this->initConnect(true); - if (!$this->linkID) { - return false; - } - - ++$this->transTimes; - - try { - if (1 == $this->transTimes) { - $this->linkID->beginTransaction(); - } elseif ($this->transTimes > 1 && $this->supportSavepoint()) { - $this->linkID->exec( - $this->parseSavepoint('trans' . $this->transTimes) - ); - } - } catch (\PDOException $e) { - if ($this->isBreak($e)) { - return $this->close()->startTrans(); - } - throw $e; - } catch (\Exception $e) { - if ($this->isBreak($e)) { - return $this->close()->startTrans(); - } - throw $e; - } - } - - /** - * 用于非自动提交状态下面的查询提交 - * @access public - * @return void - * @throws PDOException - */ - public function commit() - { - $this->initConnect(true); - - if (1 == $this->transTimes) { - $this->linkID->commit(); - } - - --$this->transTimes; - } - - /** - * 事务回滚 - * @access public - * @return void - * @throws PDOException - */ - public function rollback() - { - $this->initConnect(true); - - if (1 == $this->transTimes) { - $this->linkID->rollBack(); - } elseif ($this->transTimes > 1 && $this->supportSavepoint()) { - $this->linkID->exec( - $this->parseSavepointRollBack('trans' . $this->transTimes) - ); - } - - $this->transTimes = max(0, $this->transTimes - 1); - } - - /** - * 是否支持事务嵌套 - * @return bool - */ - protected function supportSavepoint() - { - return false; - } - - /** - * 生成定义保存点的SQL - * @access protected - * @param $name - * @return string - */ - protected function parseSavepoint($name) - { - return 'SAVEPOINT ' . $name; - } - - /** - * 生成回滚到保存点的SQL - * @access protected - * @param $name - * @return string - */ - protected function parseSavepointRollBack($name) - { - return 'ROLLBACK TO SAVEPOINT ' . $name; - } - - /** - * 批处理执行SQL语句 - * 批处理的指令都认为是execute操作 - * @access public - * @param array $sqlArray SQL批处理指令 - * @param array $bind 参数绑定 - * @return boolean - */ - public function batchQuery($sqlArray = [], $bind = []) - { - if (!is_array($sqlArray)) { - return false; - } - - // 自动启动事务支持 - $this->startTrans(); - - try { - foreach ($sqlArray as $sql) { - $this->execute($sql, $bind); - } - // 提交事务 - $this->commit(); - } catch (\Exception $e) { - $this->rollback(); - throw $e; - } - - return true; - } - - /** - * 获得查询次数 - * @access public - * @param boolean $execute 是否包含所有查询 - * @return integer - */ - public function getQueryTimes($execute = false) - { - return $execute ? Db::$queryTimes + Db::$executeTimes : Db::$queryTimes; - } - - /** - * 获得执行次数 - * @access public - * @return integer - */ - public function getExecuteTimes() - { - return Db::$executeTimes; - } - - /** - * 关闭数据库(或者重新连接) - * @access public - * @return $this - */ - public function close() - { - $this->linkID = null; - $this->linkWrite = null; - $this->linkRead = null; - $this->links = []; - - return $this; - } - - /** - * 是否断线 - * @access protected - * @param \PDOException|\Exception $e 异常对象 - * @return bool - */ - protected function isBreak($e) - { - if (!$this->config['break_reconnect']) { - return false; - } - - $error = $e->getMessage(); - - foreach ($this->breakMatchStr as $msg) { - if (false !== stripos($error, $msg)) { - return true; - } - } - return false; - } - - /** - * 获取最近一次查询的sql语句 - * @access public - * @return string - */ - public function getLastSql() - { - return $this->getRealSql($this->queryStr, $this->bind); - } - - /** - * 获取最近插入的ID - * @access public - * @param string $sequence 自增序列名 - * @return string - */ - public function getLastInsID($sequence = null) - { - return $this->linkID->lastInsertId($sequence); - } - - /** - * 获取返回或者影响的记录数 - * @access public - * @return integer - */ - public function getNumRows() - { - return $this->numRows; - } - - /** - * 获取最近的错误信息 - * @access public - * @return string - */ - public function getError() - { - if ($this->PDOStatement) { - $error = $this->PDOStatement->errorInfo(); - $error = $error[1] . ':' . $error[2]; - } else { - $error = ''; - } - - if ('' != $this->queryStr) { - $error .= "\n [ SQL语句 ] : " . $this->getLastsql(); - } - - return $error; - } - - /** - * 数据库调试 记录当前SQL及分析性能 - * @access protected - * @param boolean $start 调试开始标记 true 开始 false 结束 - * @param string $sql 执行的SQL语句 留空自动获取 - * @return void - */ - protected function debug($start, $sql = '') - { - if (!empty($this->config['debug'])) { - // 开启数据库调试模式 - $debug = Container::get('debug'); - - if ($start) { - $debug->remark('queryStartTime', 'time'); - } else { - // 记录操作结束时间 - $debug->remark('queryEndTime', 'time'); - $runtime = $debug->getRangeTime('queryStartTime', 'queryEndTime'); - $sql = $sql ?: $this->getLastsql(); - $result = []; - - // SQL性能分析 - if ($this->config['sql_explain'] && 0 === stripos(trim($sql), 'select')) { - $result = $this->getExplain($sql); - } - - // SQL监听 - $this->triggerSql($sql, $runtime, $result); - } - } - } - - /** - * 监听SQL执行 - * @access public - * @param callable $callback 回调方法 - * @return void - */ - public function listen($callback) - { - self::$event[] = $callback; - } - - /** - * 触发SQL事件 - * @access protected - * @param string $sql SQL语句 - * @param float $runtime SQL运行时间 - * @param mixed $explain SQL分析 - * @return bool - */ - protected function triggerSql($sql, $runtime, $explain = []) - { - if (!empty(self::$event)) { - foreach (self::$event as $callback) { - if (is_callable($callback)) { - call_user_func_array($callback, [$sql, $runtime, $explain]); - } - } - } else { - // 未注册监听则记录到日志中 - $this->log('[ SQL ] ' . $sql . ' [ RunTime:' . $runtime . 's ]'); - - if (!empty($explain)) { - $this->log('[ EXPLAIN : ' . var_export($explain, true) . ' ]'); - } - } - } - - public function log($log, $type = 'sql') - { - $this->config['debug'] && Container::get('log')->record($log, $type); - } - - /** - * 初始化数据库连接 - * @access protected - * @param boolean $master 是否主服务器 - * @return void - */ - protected function initConnect($master = true) - { - if (!empty($this->config['deploy'])) { - // 采用分布式数据库 - if ($master || $this->transTimes) { - if (!$this->linkWrite) { - $this->linkWrite = $this->multiConnect(true); - } - - $this->linkID = $this->linkWrite; - } else { - if (!$this->linkRead) { - $this->linkRead = $this->multiConnect(false); - } - - $this->linkID = $this->linkRead; - } - } elseif (!$this->linkID) { - // 默认单数据库 - $this->linkID = $this->connect(); - } - } - - /** - * 连接分布式服务器 - * @access protected - * @param boolean $master 主服务器 - * @return PDO - */ - protected function multiConnect($master = false) - { - $_config = []; - - // 分布式数据库配置解析 - foreach (['username', 'password', 'hostname', 'hostport', 'database', 'dsn', 'charset'] as $name) { - $_config[$name] = explode(',', $this->config[$name]); - } - - // 主服务器序号 - $m = floor(mt_rand(0, $this->config['master_num'] - 1)); - - if ($this->config['rw_separate']) { - // 主从式采用读写分离 - if ($master) // 主服务器写入 - { - $r = $m; - } elseif (is_numeric($this->config['slave_no'])) { - // 指定服务器读 - $r = $this->config['slave_no']; - } else { - // 读操作连接从服务器 每次随机连接的数据库 - $r = floor(mt_rand($this->config['master_num'], count($_config['hostname']) - 1)); - } - } else { - // 读写操作不区分服务器 每次随机连接的数据库 - $r = floor(mt_rand(0, count($_config['hostname']) - 1)); - } - $dbMaster = false; - - if ($m != $r) { - $dbMaster = []; - foreach (['username', 'password', 'hostname', 'hostport', 'database', 'dsn', 'charset'] as $name) { - $dbMaster[$name] = isset($_config[$name][$m]) ? $_config[$name][$m] : $_config[$name][0]; - } - } - - $dbConfig = []; - - foreach (['username', 'password', 'hostname', 'hostport', 'database', 'dsn', 'charset'] as $name) { - $dbConfig[$name] = isset($_config[$name][$r]) ? $_config[$name][$r] : $_config[$name][0]; - } - - return $this->connect($dbConfig, $r, $r == $m ? false : $dbMaster); - } - - /** - * 析构方法 - * @access public - */ - public function __destruct() - { - // 释放查询 - $this->free(); - - // 关闭连接 - $this->close(); - } - - /** - * 缓存数据 - * @access protected - * @param string $key 缓存标识 - * @param mixed $data 缓存数据 - * @param array $config 缓存参数 - */ - protected function cacheData($key, $data, $config = []) - { - $cache = Container::get('cache'); - - if (isset($config['tag'])) { - $cache->tag($config['tag'])->set($key, $data, $config['expire']); - } else { - $cache->set($key, $data, $config['expire']); - } - } - - /** - * 获取缓存数据 - * @access protected - * @param Query $query 查询对象 - * @param mixed $cache 缓存设置 - * @param array $options 缓存 - * @return mixed - */ - protected function getCacheData(Query $query, $cache, $data, &$key = null) - { - // 判断查询缓存 - $key = is_string($cache['key']) ? $cache['key'] : $this->getCacheKey($query, $data); - - return Container::get('cache')->get($key); - } - - /** - * 生成缓存标识 - * @access protected - * @param Query $query 查询对象 - * @param mixed $value 缓存数据 - * @return string - */ - protected function getCacheKey(Query $query, $value) - { - if (is_scalar($value)) { - $data = $value; - } elseif (is_array($value) && isset($value[1], $value[2]) && in_array($value[1], ['=', 'eq'], true) && is_scalar($value[2])) { - $data = $value[2]; - } - - $prefix = 'think:' . $this->getConfig('database') . '.'; - - if (isset($data)) { - return $prefix . $query->getTable() . '|' . $data; - } - - try { - return md5($prefix . serialize($query->getOptions()) . serialize($query->getBind(false))); - } catch (\Exception $e) { - throw new Exception('closure not support cache(true)'); - } - } - - /** - * 数据库连接参数解析 - * @access private - * @param mixed $config - * @return array - */ - private static function parseConfig($config) - { - if (empty($config)) { - $config = Container::get('config')->pull('database'); - } elseif (is_string($config) && false === strpos($config, '/')) { - // 支持读取配置参数 - $config = Container::get('config')->get('database.' . $config); - } - - if (is_string($config)) { - return self::parseDsnConfig($config); - } else { - return $config; - } - } - - /** - * DSN解析 - * 格式: mysql://username:passwd@localhost:3306/DbName?param1=val1¶m2=val2#utf8 - * @access private - * @param string $dsnStr - * @return array - */ - private static function parseDsnConfig($dsnStr) - { - $info = parse_url($dsnStr); - - if (!$info) { - return []; - } - - $dsn = [ - 'type' => $info['scheme'], - 'username' => isset($info['user']) ? $info['user'] : '', - 'password' => isset($info['pass']) ? $info['pass'] : '', - 'hostname' => isset($info['host']) ? $info['host'] : '', - 'hostport' => isset($info['port']) ? $info['port'] : '', - 'database' => !empty($info['path']) ? ltrim($info['path'], '/') : '', - 'charset' => isset($info['fragment']) ? $info['fragment'] : 'utf8', - ]; - - if (isset($info['query'])) { - parse_str($info['query'], $dsn['params']); - } else { - $dsn['params'] = []; - } - - return $dsn; - } - -} diff --git a/thinkphp/library/think/db/Expression.php b/thinkphp/library/think/db/Expression.php deleted file mode 100644 index f1b92abd7..000000000 --- a/thinkphp/library/think/db/Expression.php +++ /dev/null @@ -1,48 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\db; - -class Expression -{ - /** - * 查询表达式 - * - * @var string - */ - protected $value; - - /** - * 创建一个查询表达式 - * - * @param string $value - * @return void - */ - public function __construct($value) - { - $this->value = $value; - } - - /** - * 获取表达式 - * - * @return string - */ - public function getValue() - { - return $this->value; - } - - public function __toString() - { - return (string) $this->value; - } -} diff --git a/thinkphp/library/think/db/Query.php b/thinkphp/library/think/db/Query.php deleted file mode 100644 index 0329e1c29..000000000 --- a/thinkphp/library/think/db/Query.php +++ /dev/null @@ -1,3143 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\db; - -use PDO; -use think\Collection; -use think\Container; -use think\db\exception\BindParamException; -use think\db\exception\DataNotFoundException; -use think\db\exception\ModelNotFoundException; -use think\Exception; -use think\exception\DbException; -use think\exception\PDOException; -use think\Loader; -use think\Model; -use think\model\Relation; -use think\model\relation\OneToOne; -use think\Paginator; - -class Query -{ - /** - * 数据库连接对象列表 - * @var array - */ - protected static $connections = []; - - /** - * 当前数据库连接对象 - * @var Connection - */ - protected $connection; - - /** - * 当前模型对象 - * @var Model - */ - protected $model; - - /** - * 当前数据表名称(不含前缀) - * @var string - */ - protected $name = ''; - - /** - * 当前数据表主键 - * @var string|array - */ - protected $pk; - - /** - * 当前数据表前缀 - * @var string - */ - protected $prefix = ''; - - /** - * 当前查询参数 - * @var array - */ - protected $options = []; - - /** - * 当前参数绑定 - * @var array - */ - protected $bind = []; - - /** - * 事件回调 - * @var array - */ - private static $event = []; - - /** - * 扩展查询方法 - * @var array - */ - private static $extend = []; - - /** - * 日期查询表达式 - * @var array - */ - protected $timeRule = [ - 'today' => ['today', 'tomorrow'], - 'yesterday' => ['yesterday', 'today'], - 'week' => ['this week 00:00:00', 'next week 00:00:00'], - 'last week' => ['last week 00:00:00', 'this week 00:00:00'], - 'month' => ['first Day of this month 00:00:00', 'first Day of next month 00:00:00'], - 'last month' => ['first Day of last month 00:00:00', 'first Day of this month 00:00:00'], - 'year' => ['this year 1/1', 'next year 1/1'], - 'last year' => ['last year 1/1', 'this year 1/1'], - ]; - - /** - * 日期查询快捷定义 - * @var array - */ - protected $timeExp = ['d' => 'today', 'w' => 'week', 'm' => 'month', 'y' => 'year']; - - /** - * 架构函数 - * @access public - */ - public function __construct(Connection $connection = null) - { - if (is_null($connection)) { - $this->connection = Connection::instance(); - } else { - $this->connection = $connection; - } - - $this->prefix = $this->connection->getConfig('prefix'); - } - - /** - * 创建一个新的查询对象 - * @access public - * @return Query - */ - public function newQuery() - { - return new static($this->connection); - } - - /** - * 利用__call方法实现一些特殊的Model方法 - * @access public - * @param string $method 方法名称 - * @param array $args 调用参数 - * @return mixed - * @throws DbException - * @throws Exception - */ - public function __call($method, $args) - { - if (isset(self::$extend[strtolower($method)])) { - // 调用扩展查询方法 - array_unshift($args, $this); - - return Container::getInstance()->invoke(self::$extend[strtolower($method)], $args); - } elseif (strtolower(substr($method, 0, 5)) == 'getby') { - // 根据某个字段获取记录 - $field = Loader::parseName(substr($method, 5)); - return $this->where($field, '=', $args[0])->find(); - } elseif (strtolower(substr($method, 0, 10)) == 'getfieldby') { - // 根据某个字段获取记录的某个值 - $name = Loader::parseName(substr($method, 10)); - return $this->where($name, '=', $args[0])->value($args[1]); - } elseif (strtolower(substr($method, 0, 7)) == 'whereor') { - $name = Loader::parseName(substr($method, 7)); - array_unshift($args, $name); - return call_user_func_array([$this, 'whereOr'], $args); - } elseif (strtolower(substr($method, 0, 5)) == 'where') { - $name = Loader::parseName(substr($method, 5)); - array_unshift($args, $name); - return call_user_func_array([$this, 'where'], $args); - } elseif ($this->model && method_exists($this->model, 'scope' . $method)) { - // 动态调用命名范围 - $method = 'scope' . $method; - array_unshift($args, $this); - - call_user_func_array([$this->model, $method], $args); - return $this; - } else { - throw new Exception('method not exist:' . static::class . '->' . $method); - } - } - - /** - * 扩展查询方法 - * @access public - * @param string|array $method 查询方法名 - * @param callable $callback - * @return void - */ - public static function extend($method, $callback = null) - { - if (is_array($method)) { - foreach ($method as $key => $val) { - self::$extend[strtolower($key)] = $val; - } - } else { - self::$extend[strtolower($method)] = $callback; - } - } - - /** - * 设置当前的数据库Connection对象 - * @access public - * @param Connection $connection - * @return $this - */ - public function setConnection(Connection $connection) - { - $this->connection = $connection; - $this->prefix = $this->connection->getConfig('prefix'); - - return $this; - } - - /** - * 获取当前的数据库Connection对象 - * @access public - * @return Connection - */ - public function getConnection() - { - return $this->connection; - } - - /** - * 指定模型 - * @access public - * @param Model $model 模型对象实例 - * @return $this - */ - public function model(Model $model) - { - $this->model = $model; - return $this; - } - - /** - * 获取当前的模型对象 - * @access public - * @return Model|null - */ - public function getModel() - { - return $this->model ? $this->model->setQuery($this) : null; - } - - /** - * 指定当前数据表名(不含前缀) - * @access public - * @param string $name - * @return $this - */ - public function name($name) - { - $this->name = $name; - return $this; - } - - /** - * 获取当前的数据表名称 - * @access public - * @return string - */ - public function getName() - { - return $this->name ?: $this->model->getName(); - } - - /** - * 得到当前或者指定名称的数据表 - * @access public - * @param string $name - * @return string - */ - public function getTable($name = '') - { - if (empty($name) && isset($this->options['table'])) { - return $this->options['table']; - } - - $name = $name ?: $this->name; - - return $this->prefix . Loader::parseName($name); - } - - /** - * 切换数据库连接 - * @access public - * @param mixed $config 连接配置 - * @param bool|string $name 连接标识 true 强制重新连接 - * @return $this|object - * @throws Exception - */ - public function connect($config = [], $name = false) - { - $this->connection = Connection::instance($config, $name); - - $query = $this->connection->getConfig('query'); - - if (__CLASS__ != trim($query, '\\')) { - return new $query($this->connection); - } - - $this->prefix = $this->connection->getConfig('prefix'); - - return $this; - } - - /** - * 执行查询 返回数据集 - * @access public - * @param string $sql sql指令 - * @param array $bind 参数绑定 - * @param boolean $master 是否在主服务器读操作 - * @param bool|string $class 指定返回的数据集对象 - * @return mixed - * @throws BindParamException - * @throws PDOException - */ - public function query($sql, $bind = [], $master = false, $class = false) - { - return $this->connection->query($sql, $bind, $master, $class); - } - - /** - * 执行语句 - * @access public - * @param string $sql sql指令 - * @param array $bind 参数绑定 - * @return int - * @throws BindParamException - * @throws PDOException - */ - public function execute($sql, $bind = []) - { - return $this->connection->execute($sql, $bind); - } - - /** - * 监听SQL执行 - * @access public - * @param callable $callback 回调方法 - * @return void - */ - public function listen($callback) - { - $this->connection->listen($callback); - } - - /** - * 获取最近插入的ID - * @access public - * @param string $sequence 自增序列名 - * @return string - */ - public function getLastInsID($sequence = null) - { - return $this->connection->getLastInsID($sequence); - } - - /** - * 获取返回或者影响的记录数 - * @access public - * @return integer - */ - public function getNumRows() - { - return $this->connection->getNumRows(); - } - - /** - * 获取最近一次查询的sql语句 - * @access public - * @return string - */ - public function getLastSql() - { - return $this->connection->getLastSql(); - } - - /** - * 执行数据库事务 - * @access public - * @param callable $callback 数据操作方法回调 - * @return mixed - */ - public function transaction($callback) - { - return $this->connection->transaction($callback); - } - - /** - * 启动事务 - * @access public - * @return void - */ - public function startTrans() - { - $this->connection->startTrans(); - } - - /** - * 用于非自动提交状态下面的查询提交 - * @access public - * @return void - * @throws PDOException - */ - public function commit() - { - $this->connection->commit(); - } - - /** - * 事务回滚 - * @access public - * @return void - * @throws PDOException - */ - public function rollback() - { - $this->connection->rollback(); - } - - /** - * 批处理执行SQL语句 - * 批处理的指令都认为是execute操作 - * @access public - * @param array $sql SQL批处理指令 - * @return boolean - */ - public function batchQuery($sql = []) - { - return $this->connection->batchQuery($sql); - } - - /** - * 获取数据库的配置参数 - * @access public - * @param string $name 参数名称 - * @return mixed - */ - public function getConfig($name = '') - { - return $this->connection->getConfig($name); - } - - /** - * 获取数据表字段信息 - * @access public - * @param string $tableName 数据表名 - * @return array - */ - public function getTableFields($tableName = '') - { - if ('' == $tableName) { - $tableName = isset($this->options['table']) ? $this->options['table'] : $this->getTable(); - } - - return $this->connection->getTableFields($tableName); - } - - /** - * 获取数据表字段类型 - * @access public - * @param string $tableName 数据表名 - * @param string $field 字段名 - * @return array|string - */ - public function getFieldsType($tableName = '', $field = null) - { - if ('' == $tableName) { - $tableName = isset($this->options['table']) ? $this->options['table'] : $this->getTable(); - } - - return $this->connection->getFieldsType($tableName, $field); - } - - /** - * 得到分表的的数据表名 - * @access public - * @param array $data 操作的数据 - * @param string $field 分表依据的字段 - * @param array $rule 分表规则 - * @return string - */ - public function getPartitionTableName($data, $field, $rule = []) - { - // 对数据表进行分区 - if ($field && isset($data[$field])) { - $value = $data[$field]; - $type = $rule['type']; - switch ($type) { - case 'id': - // 按照id范围分表 - $step = $rule['expr']; - $seq = floor($value / $step) + 1; - break; - case 'year': - // 按照年份分表 - if (!is_numeric($value)) { - $value = strtotime($value); - } - $seq = date('Y', $value) - $rule['expr'] + 1; - break; - case 'mod': - // 按照id的模数分表 - $seq = ($value % $rule['num']) + 1; - break; - case 'md5': - // 按照md5的序列分表 - $seq = (ord(substr(md5($value), 0, 1)) % $rule['num']) + 1; - break; - default: - if (function_exists($type)) { - // 支持指定函数哈希 - $seq = (ord(substr($type($value), 0, 1)) % $rule['num']) + 1; - } else { - // 按照字段的首字母的值分表 - $seq = (ord($value{0}) % $rule['num']) + 1; - } - } - return $this->getTable() . '_' . $seq; - } - // 当设置的分表字段不在查询条件或者数据中 - // 进行联合查询,必须设定 partition['num'] - $tableName = []; - for ($i = 0; $i < $rule['num']; $i++) { - $tableName[] = 'SELECT * FROM ' . $this->getTable() . '_' . ($i + 1); - } - - $tableName = '( ' . implode(" UNION ", $tableName) . ') AS ' . $this->name; - - return $tableName; - } - - /** - * 得到某个字段的值 - * @access public - * @param string $field 字段名 - * @param mixed $default 默认值 - * @return mixed - */ - public function value($field, $default = null) - { - $this->parseOptions(); - - $result = $this->connection->value($this, $field, $default); - - if (!empty($this->options['fetch_sql'])) { - return $result; - } - - return $result; - } - - /** - * 得到某个列的数组 - * @access public - * @param string $field 字段名 多个字段用逗号分隔 - * @param string $key 索引 - * @return array - */ - public function column($field, $key = '') - { - $this->parseOptions(); - - return $this->connection->column($this, $field, $key); - } - - /** - * 聚合查询 - * @access public - * @param string $aggregate 聚合方法 - * @param string $field 字段名 - * @param bool $force 强制转为数字类型 - * @return mixed - */ - public function aggregate($aggregate, $field, $force = false) - { - $this->parseOptions(); - - $result = $this->connection->aggregate($this, $aggregate, $field); - - if (!empty($this->options['fetch_sql'])) { - return $result; - } elseif ($force) { - $result += 0; - } - - return $result; - } - - /** - * COUNT查询 - * @access public - * @param string $field 字段名 - * @return integer|string - */ - public function count($field = '*') - { - if (isset($this->options['group'])) { - // 支持GROUP - $options = $this->getOptions(); - $subSql = $this->options($options)->field('count(' . $field . ') AS think_count')->bind($this->bind)->buildSql(); - - $query = $this->newQuery()->table([$subSql => '_group_count_']); - - if (!empty($options['fetch_sql'])) { - $query->fetchSql(true); - } - - return $query->aggregate('COUNT', '*', true); - } - - return $this->aggregate('COUNT', $field, true); - } - - /** - * SUM查询 - * @access public - * @param string $field 字段名 - * @return float|int - */ - public function sum($field) - { - return $this->aggregate('SUM', $field, true); - } - - /** - * MIN查询 - * @access public - * @param string $field 字段名 - * @param bool $force 强制转为数字类型 - * @return mixed - */ - public function min($field, $force = true) - { - return $this->aggregate('MIN', $field, $force); - } - - /** - * MAX查询 - * @access public - * @param string $field 字段名 - * @param bool $force 强制转为数字类型 - * @return mixed - */ - public function max($field, $force = true) - { - return $this->aggregate('MAX', $field, $force); - } - - /** - * AVG查询 - * @access public - * @param string $field 字段名 - * @return float|int - */ - public function avg($field) - { - return $this->aggregate('AVG', $field, true); - } - - /** - * 设置记录的某个字段值 - * 支持使用数据库字段和方法 - * @access public - * @param string|array $field 字段名 - * @param mixed $value 字段值 - * @return integer - */ - public function setField($field, $value = '') - { - if (is_array($field)) { - $data = $field; - } else { - $data[$field] = $value; - } - - return $this->update($data); - } - - /** - * 字段值(延迟)增长 - * @access public - * @param string $field 字段名 - * @param integer $step 增长值 - * @param integer $lazyTime 延时时间(s) - * @return integer|true - * @throws Exception - */ - public function setInc($field, $step = 1, $lazyTime = 0) - { - $condition = !empty($this->options['where']) ? $this->options['where'] : []; - - if (empty($condition)) { - // 没有条件不做任何更新 - throw new Exception('no data to update'); - } - - if ($lazyTime > 0) { - // 延迟写入 - $guid = md5($this->getTable() . '_' . $field . '_' . serialize($condition)); - $step = $this->lazyWrite('inc', $guid, $step, $lazyTime); - - if (false === $step) { - // 清空查询条件 - $this->options = []; - return true; - } - } - - return $this->setField($field, ['INC', $step]); - } - - /** - * 字段值(延迟)减少 - * @access public - * @param string $field 字段名 - * @param integer $step 减少值 - * @param integer $lazyTime 延时时间(s) - * @return integer|true - * @throws Exception - */ - public function setDec($field, $step = 1, $lazyTime = 0) - { - $condition = !empty($this->options['where']) ? $this->options['where'] : []; - - if (empty($condition)) { - // 没有条件不做任何更新 - throw new Exception('no data to update'); - } - - if ($lazyTime > 0) { - // 延迟写入 - $guid = md5($this->getTable() . '_' . $field . '_' . serialize($condition)); - $step = $this->lazyWrite('dec', $guid, $step, $lazyTime); - - if (false === $step) { - // 清空查询条件 - $this->options = []; - return true; - } - - $value = ['INC', $step]; - } else { - $value = ['DEC', $step]; - } - - return $this->setField($field, $value); - } - - /** - * 延时更新检查 返回false表示需要延时 - * 否则返回实际写入的数值 - * @access protected - * @param string $type 自增或者自减 - * @param string $guid 写入标识 - * @param integer $step 写入步进值 - * @param integer $lazyTime 延时时间(s) - * @return false|integer - */ - protected function lazyWrite($type, $guid, $step, $lazyTime) - { - $cache = Container::get('cache'); - - if (!$cache->has($guid . '_time')) { - // 计时开始 - $cache->set($guid . '_time', time(), 0); - $cache->$type($guid, $step); - } elseif (time() > $cache->get($guid . '_time') + $lazyTime) { - // 删除缓存 - $value = $cache->$type($guid, $step); - $cache->rm($guid); - $cache->rm($guid . '_time'); - return 0 === $value ? false : $value; - } else { - // 更新缓存 - $cache->$type($guid, $step); - } - - return false; - } - - /** - * 查询SQL组装 join - * @access public - * @param mixed $join 关联的表名 - * @param mixed $condition 条件 - * @param string $type JOIN类型 - * @return $this - */ - public function join($join, $condition = null, $type = 'INNER') - { - if (empty($condition)) { - // 如果为组数,则循环调用join - foreach ($join as $key => $value) { - if (is_array($value) && 2 <= count($value)) { - $this->join($value[0], $value[1], isset($value[2]) ? $value[2] : $type); - } - } - } else { - $table = $this->getJoinTable($join); - - $this->options['join'][] = [$table, strtoupper($type), $condition]; - } - - return $this; - } - - /** - * LEFT JOIN - * @access public - * @param mixed $join 关联的表名 - * @param mixed $condition 条件 - * @return $this - */ - public function leftJoin($join, $condition = null) - { - return $this->join($join, $condition, 'LEFT'); - } - - /** - * RIGHT JOIN - * @access public - * @param mixed $join 关联的表名 - * @param mixed $condition 条件 - * @return $this - */ - public function rightJoin($join, $condition = null) - { - return $this->join($join, $condition, 'RIGHT'); - } - - /** - * FULL JOIN - * @access public - * @param mixed $join 关联的表名 - * @param mixed $condition 条件 - * @return $this - */ - public function fullJoin($join, $condition = null) - { - return $this->join($join, $condition, 'FULL'); - } - - /** - * 获取Join表名及别名 支持 - * ['prefix_table或者子查询'=>'alias'] 'table alias' - * @access protected - * @param array|string $join - * @param string $alias - * @return string - */ - protected function getJoinTable($join, &$alias = null) - { - if (is_array($join)) { - $table = $join; - $alias = array_shift($join); - } else { - $join = trim($join); - - if (false !== strpos($join, '(')) { - // 使用子查询 - $table = $join; - } else { - $prefix = $this->prefix; - if (strpos($join, ' ')) { - // 使用别名 - list($table, $alias) = explode(' ', $join); - } else { - $table = $join; - if (false === strpos($join, '.') && 0 !== strpos($join, '__')) { - $alias = $join; - } - } - - if ($prefix && false === strpos($table, '.') && 0 !== strpos($table, $prefix) && 0 !== strpos($table, '__')) { - $table = $this->getTable($table); - } - } - - if (isset($alias) && $table != $alias) { - $table = [$table => $alias]; - } - } - - return $table; - } - - /** - * 查询SQL组装 union - * @access public - * @param mixed $union - * @param boolean $all - * @return $this - */ - public function union($union, $all = false) - { - $this->options['union']['type'] = $all ? 'UNION ALL' : 'UNION'; - - if (is_array($union)) { - $this->options['union'] = array_merge($this->options['union'], $union); - } else { - $this->options['union'][] = $union; - } - - return $this; - } - - /** - * 查询SQL组装 union all - * @access public - * @param mixed $union - * @return $this - */ - public function unionAll($union) - { - return $this->union($union, true); - } - - /** - * 指定查询字段 支持字段排除和指定数据表 - * @access public - * @param mixed $field - * @param boolean $except 是否排除 - * @param string $tableName 数据表名 - * @param string $prefix 字段前缀 - * @param string $alias 别名前缀 - * @return $this - */ - public function field($field, $except = false, $tableName = '', $prefix = '', $alias = '') - { - if (empty($field)) { - return $this; - } elseif ($field instanceof Expression) { - $this->options['field'][] = $field; - return $this; - } - - if (is_string($field)) { - if (preg_match('/[\<\'\"\(]/', $field)) { - return $this->fieldRaw($field); - } - - $field = array_map('trim', explode(',', $field)); - } - - if (true === $field) { - // 获取全部字段 - $fields = $this->getTableFields($tableName); - $field = $fields ?: ['*']; - } elseif ($except) { - // 字段排除 - $fields = $this->getTableFields($tableName); - $field = $fields ? array_diff($fields, $field) : $field; - } - - if ($tableName) { - // 添加统一的前缀 - $prefix = $prefix ?: $tableName; - foreach ($field as $key => $val) { - if (is_numeric($key)) { - $val = $prefix . '.' . $val . ($alias ? ' AS ' . $alias . $val : ''); - } - $field[$key] = $val; - } - } - - if (isset($this->options['field'])) { - $field = array_merge((array) $this->options['field'], $field); - } - - $this->options['field'] = array_unique($field); - - return $this; - } - - /** - * 表达式方式指定查询字段 - * @access public - * @param string $field 字段名 - * @param array $bind 参数绑定 - * @return $this - */ - public function fieldRaw($field, array $bind = []) - { - $this->options['field'][] = $this->raw($field); - - if ($bind) { - $this->bind($bind); - } - - return $this; - } - - /** - * 设置数据排除字段 - * @access public - * @param mixed $field 字段名或者数据 - * @return $this - */ - public function hidden($field) - { - return $this->field($field, true); - } - - /** - * 设置数据 - * @access public - * @param mixed $field 字段名或者数据 - * @param mixed $value 字段值 - * @return $this - */ - public function data($field, $value = null) - { - if (is_array($field)) { - $this->options['data'] = isset($this->options['data']) ? array_merge($this->options['data'], $field) : $field; - } else { - $this->options['data'][$field] = $value; - } - - return $this; - } - - /** - * 字段值增长 - * @access public - * @param string|array $field 字段名 - * @param integer $step 增长值 - * @return $this - */ - public function inc($field, $step = 1, $op = 'INC') - { - $fields = is_string($field) ? explode(',', $field) : $field; - - foreach ($fields as $field => $val) { - if (is_numeric($field)) { - $field = $val; - } else { - $step = $val; - } - - $this->data($field, [$op, $step]); - } - - return $this; - } - - /** - * 字段值减少 - * @access public - * @param string|array $field 字段名 - * @param integer $step 增长值 - * @return $this - */ - public function dec($field, $step = 1) - { - return $this->inc($field, $step, 'DEC'); - } - - /** - * 使用表达式设置数据 - * @access public - * @param string $field 字段名 - * @param string $value 字段值 - * @return $this - */ - public function exp($field, $value) - { - $this->data($field, $this->raw($value)); - return $this; - } - - /** - * 使用表达式设置数据 - * @access public - * @param mixed $value 表达式 - * @return Expression - */ - public function raw($value) - { - return new Expression($value); - } - - /** - * 指定JOIN查询字段 - * @access public - * @param string|array $table 数据表 - * @param string|array $field 查询字段 - * @param string|array $on JOIN条件 - * @param string $type JOIN类型 - * @return $this - */ - public function view($join, $field = true, $on = null, $type = 'INNER') - { - $this->options['view'] = true; - - if (is_array($join) && key($join) === 0) { - foreach ($join as $key => $val) { - $this->view($val[0], $val[1], isset($val[2]) ? $val[2] : null, isset($val[3]) ? $val[3] : 'INNER'); - } - } else { - $fields = []; - $table = $this->getJoinTable($join, $alias); - - if (true === $field) { - $fields = $alias . '.*'; - } else { - if (is_string($field)) { - $field = explode(',', $field); - } - - foreach ($field as $key => $val) { - if (is_numeric($key)) { - $fields[] = $alias . '.' . $val; - - $this->options['map'][$val] = $alias . '.' . $val; - } else { - if (preg_match('/[,=\.\'\"\(\s]/', $key)) { - $name = $key; - } else { - $name = $alias . '.' . $key; - } - - $fields[] = $name . ' AS ' . $val; - - $this->options['map'][$val] = $name; - } - } - } - - $this->field($fields); - - if ($on) { - $this->join($table, $on, $type); - } else { - $this->table($table); - } - } - - return $this; - } - - /** - * 设置分表规则 - * @access public - * @param array $data 操作的数据 - * @param string $field 分表依据的字段 - * @param array $rule 分表规则 - * @return $this - */ - public function partition($data, $field, $rule = []) - { - $this->options['table'] = $this->getPartitionTableName($data, $field, $rule); - - return $this; - } - - /** - * 指定AND查询条件 - * @access public - * @param mixed $field 查询字段 - * @param mixed $op 查询表达式 - * @param mixed $condition 查询条件 - * @return $this - */ - public function where($field, $op = null, $condition = null) - { - $param = func_get_args(); - array_shift($param); - return $this->parseWhereExp('AND', $field, $op, $condition, $param); - } - - /** - * 指定OR查询条件 - * @access public - * @param mixed $field 查询字段 - * @param mixed $op 查询表达式 - * @param mixed $condition 查询条件 - * @return $this - */ - public function whereOr($field, $op = null, $condition = null) - { - $param = func_get_args(); - array_shift($param); - return $this->parseWhereExp('OR', $field, $op, $condition, $param); - } - - /** - * 指定XOR查询条件 - * @access public - * @param mixed $field 查询字段 - * @param mixed $op 查询表达式 - * @param mixed $condition 查询条件 - * @return $this - */ - public function whereXor($field, $op = null, $condition = null) - { - $param = func_get_args(); - array_shift($param); - return $this->parseWhereExp('XOR', $field, $op, $condition, $param); - } - - /** - * 指定Null查询条件 - * @access public - * @param mixed $field 查询字段 - * @param string $logic 查询逻辑 and or xor - * @return $this - */ - public function whereNull($field, $logic = 'AND') - { - return $this->parseWhereExp($logic, $field, 'NULL', null, [], true); - } - - /** - * 指定NotNull查询条件 - * @access public - * @param mixed $field 查询字段 - * @param string $logic 查询逻辑 and or xor - * @return $this - */ - public function whereNotNull($field, $logic = 'AND') - { - return $this->parseWhereExp($logic, $field, 'NOTNULL', null, [], true); - } - - /** - * 指定Exists查询条件 - * @access public - * @param mixed $condition 查询条件 - * @param string $logic 查询逻辑 and or xor - * @return $this - */ - public function whereExists($condition, $logic = 'AND') - { - $this->options['where'][strtoupper($logic)][] = ['', 'EXISTS', $condition]; - return $this; - } - - /** - * 指定NotExists查询条件 - * @access public - * @param mixed $condition 查询条件 - * @param string $logic 查询逻辑 and or xor - * @return $this - */ - public function whereNotExists($condition, $logic = 'AND') - { - $this->options['where'][strtoupper($logic)][] = ['', 'NOT EXISTS', $condition]; - return $this; - } - - /** - * 指定In查询条件 - * @access public - * @param mixed $field 查询字段 - * @param mixed $condition 查询条件 - * @param string $logic 查询逻辑 and or xor - * @return $this - */ - public function whereIn($field, $condition, $logic = 'AND') - { - return $this->parseWhereExp($logic, $field, 'IN', $condition, [], true); - } - - /** - * 指定NotIn查询条件 - * @access public - * @param mixed $field 查询字段 - * @param mixed $condition 查询条件 - * @param string $logic 查询逻辑 and or xor - * @return $this - */ - public function whereNotIn($field, $condition, $logic = 'AND') - { - return $this->parseWhereExp($logic, $field, 'NOT IN', $condition, [], true); - } - - /** - * 指定Like查询条件 - * @access public - * @param mixed $field 查询字段 - * @param mixed $condition 查询条件 - * @param string $logic 查询逻辑 and or xor - * @return $this - */ - public function whereLike($field, $condition, $logic = 'AND') - { - return $this->parseWhereExp($logic, $field, 'LIKE', $condition, [], true); - } - - /** - * 指定NotLike查询条件 - * @access public - * @param mixed $field 查询字段 - * @param mixed $condition 查询条件 - * @param string $logic 查询逻辑 and or xor - * @return $this - */ - public function whereNotLike($field, $condition, $logic = 'AND') - { - return $this->parseWhereExp($logic, $field, 'NOT LIKE', $condition, [], true); - } - - /** - * 指定Between查询条件 - * @access public - * @param mixed $field 查询字段 - * @param mixed $condition 查询条件 - * @param string $logic 查询逻辑 and or xor - * @return $this - */ - public function whereBetween($field, $condition, $logic = 'AND') - { - return $this->parseWhereExp($logic, $field, 'BETWEEN', $condition, [], true); - } - - /** - * 指定NotBetween查询条件 - * @access public - * @param mixed $field 查询字段 - * @param mixed $condition 查询条件 - * @param string $logic 查询逻辑 and or xor - * @return $this - */ - public function whereNotBetween($field, $condition, $logic = 'AND') - { - return $this->parseWhereExp($logic, $field, 'NOT BETWEEN', $condition, [], true); - } - - /** - * 比较两个字段 - * @access public - * @param string $field1 查询字段 - * @param string $operator 比较操作符 - * @param string $field2 比较字段 - * @param string $logic 查询逻辑 and or xor - * @return $this - */ - public function whereColumn($field1, $operator, $field2 = null, $logic = 'AND') - { - if (is_null($field2)) { - $field2 = $operator; - $operator = '='; - } - - return $this->whereExp($field1, $operator . ' ' . $field2, [], $logic); - } - - /** - * 设置软删除字段及条件 - * @access public - * @param false|string $field 查询字段 - * @param mixed $condition 查询条件 - * @return $this - */ - public function useSoftDelete($field, $condition = null) - { - if ($field) { - $this->options['soft_delete'] = [$field, $condition]; - } - - return $this; - } - - /** - * 指定Exp查询条件 - * @access public - * @param mixed $field 查询字段 - * @param string $condition 查询条件 - * @param array $bind 参数绑定 - * @param string $logic 查询逻辑 and or xor - * @return $this - */ - public function whereExp($field, $condition, $bind = [], $logic = 'AND') - { - $this->options['where'][$logic][] = [$field, 'EXP', $this->raw($condition)]; - - if ($bind) { - $this->bind($bind); - } - return $this; - } - - /** - * 指定表达式查询条件 - * @access public - * @param string $where 查询条件 - * @param array $bind 参数绑定 - * @param string $logic 查询逻辑 and or xor - * @return $this - */ - public function whereRaw($where, $bind = [], $logic = 'AND') - { - $this->options['where'][$logic][] = $this->raw($where); - - if ($bind) { - $this->bind($bind); - } - - return $this; - } - - /** - * 指定表达式查询条件 OR - * @access public - * @param string $where 查询条件 - * @param array $bind 参数绑定 - * @return $this - */ - public function whereOrRaw($where, $bind = []) - { - return $this->whereRaw($where, $bind, 'OR'); - } - - /** - * 分析查询表达式 - * @access protected - * @param string $logic 查询逻辑 and or xor - * @param mixed $field 查询字段 - * @param mixed $op 查询表达式 - * @param mixed $condition 查询条件 - * @param array $param 查询参数 - * @param bool $strict 严格模式 - * @return $this - */ - protected function parseWhereExp($logic, $field, $op, $condition, array $param = [], $strict = false) - { - if ($field instanceof $this) { - $this->options['where'] = $field->getOptions('where'); - return $this; - } - - $logic = strtoupper($logic); - - if (is_string($field) && !empty($this->options['via']) && !strpos($field, '.')) { - $field = $this->options['via'] . '.' . $field; - } - - if ($field instanceof Expression) { - return $this->whereRaw($field, is_array($op) ? $op : []); - } elseif ($strict) { - // 使用严格模式查询 - $where = [$field, $op, $condition]; - } elseif (is_array($field)) { - // 解析数组批量查询 - return $this->parseArrayWhereItems($field, $logic); - } elseif ($field instanceof \Closure) { - $where = $field; - } elseif (is_string($field)) { - if (preg_match('/[,=\<\'\"\(\s]/', $field)) { - return $this->whereRaw($field, $op); - } elseif (is_string($op) && strtolower($op) == 'exp') { - $bind = isset($param[2]) && is_array($param[2]) ? $param[2] : null; - return $this->whereExp($field, $condition, $bind, $logic); - } - - $where = $this->parseWhereItem($logic, $field, $op, $condition, $param); - } - - if (!empty($where)) { - $this->options['where'][$logic][] = $where; - } - - return $this; - } - - /** - * 分析查询表达式 - * @access protected - * @param string $logic 查询逻辑 and or xor - * @param mixed $field 查询字段 - * @param mixed $op 查询表达式 - * @param mixed $condition 查询条件 - * @param array $param 查询参数 - * @return mixed - */ - protected function parseWhereItem($logic, $field, $op, $condition, $param = []) - { - if (is_array($op)) { - // 同一字段多条件查询 - array_unshift($param, $field); - $where = $param; - } elseif ($field && is_null($condition)) { - if (in_array(strtoupper($op), ['NULL', 'NOTNULL', 'NOT NULL'], true)) { - // null查询 - $where = [$field, $op, '']; - } elseif (in_array(strtolower($op), ['=', 'eq', null], true)) { - $where = [$field, 'NULL', '']; - } elseif (in_array(strtolower($op), ['<>', 'neq'], true)) { - $where = [$field, 'NOTNULL', '']; - } else { - // 字段相等查询 - $where = [$field, '=', $op]; - } - } else { - $where = $field ? [$field, $op, $condition] : null; - } - - return $where; - } - - /** - * 数组批量查询 - * @access protected - * @param array $field 批量查询 - * @param string $logic 查询逻辑 and or xor - * @return $this - */ - protected function parseArrayWhereItems($field, $logic) - { - if (key($field) !== 0) { - $where = []; - foreach ($field as $key => $val) { - $where[] = is_null($val) ? [$key, 'NULL', ''] : [$key, '=', $val]; - } - } else { - // 数组批量查询 - $where = $field; - } - - if (!empty($where)) { - $this->options['where'][$logic] = isset($this->options['where'][$logic]) ? array_merge($this->options['where'][$logic], $where) : $where; - } - - return $this; - } - - /** - * 去除某个查询条件 - * @access public - * @param string $field 查询字段 - * @param string $logic 查询逻辑 and or xor - * @return $this - */ - public function removeWhereField($field, $logic = 'AND') - { - $logic = strtoupper($logic); - - if (isset($this->options['where'][$logic][$field])) { - unset($this->options['where'][$logic][$field]); - } - - return $this; - } - - /** - * 去除查询参数 - * @access public - * @param string|bool $option 参数名 true 表示去除所有参数 - * @return $this - */ - public function removeOption($option = true) - { - if (true === $option) { - $this->options = []; - } elseif (is_string($option) && isset($this->options[$option])) { - unset($this->options[$option]); - } - - return $this; - } - - /** - * 条件查询 - * @access public - * @param mixed $condition 满足条件(支持闭包) - * @param \Closure|array $query 满足条件后执行的查询表达式(闭包或数组) - * @param \Closure|array $otherwise 不满足条件后执行 - * @return $this - */ - public function when($condition, $query, $otherwise = null) - { - if ($condition instanceof \Closure) { - $condition = $condition($this); - } - - if ($condition) { - if ($query instanceof \Closure) { - $query($this, $condition); - } elseif (is_array($query)) { - $this->where($query); - } - } elseif ($otherwise) { - if ($otherwise instanceof \Closure) { - $otherwise($this, $condition); - } elseif (is_array($otherwise)) { - $this->where($otherwise); - } - } - - return $this; - } - - /** - * 指定查询数量 - * @access public - * @param mixed $offset 起始位置 - * @param mixed $length 查询数量 - * @return $this - */ - public function limit($offset, $length = null) - { - if (is_null($length) && strpos($offset, ',')) { - list($offset, $length) = explode(',', $offset); - } - - $this->options['limit'] = intval($offset) . ($length ? ',' . intval($length) : ''); - - return $this; - } - - /** - * 指定分页 - * @access public - * @param mixed $page 页数 - * @param mixed $listRows 每页数量 - * @return $this - */ - public function page($page, $listRows = null) - { - if (is_null($listRows) && strpos($page, ',')) { - list($page, $listRows) = explode(',', $page); - } - - $this->options['page'] = [intval($page), intval($listRows)]; - - return $this; - } - - /** - * 分页查询 - * @access public - * @param int|array $listRows 每页数量 数组表示配置参数 - * @param int|bool $simple 是否简洁模式或者总记录数 - * @param array $config 配置参数 - * page:当前页, - * path:url路径, - * query:url额外参数, - * fragment:url锚点, - * var_page:分页变量, - * list_rows:每页数量 - * type:分页类名 - * @return \think\Paginator - * @throws DbException - */ - public function paginate($listRows = null, $simple = false, $config = []) - { - if (is_int($simple)) { - $total = $simple; - $simple = false; - } - - $paginate = Container::get('config')->pull('paginate'); - - if (is_array($listRows)) { - $config = array_merge($paginate, $listRows); - $listRows = $config['list_rows']; - } else { - $config = array_merge($paginate, $config); - $listRows = $listRows ?: $config['list_rows']; - } - - /** @var Paginator $class */ - $class = false !== strpos($config['type'], '\\') ? $config['type'] : '\\think\\paginator\\driver\\' . ucwords($config['type']); - $page = isset($config['page']) ? (int) $config['page'] : call_user_func([ - $class, - 'getCurrentPage', - ], $config['var_page']); - - $page = $page < 1 ? 1 : $page; - - $config['path'] = isset($config['path']) ? $config['path'] : call_user_func([$class, 'getCurrentPath']); - - if (!isset($total) && !$simple) { - $options = $this->getOptions(); - - unset($this->options['order'], $this->options['limit'], $this->options['page'], $this->options['field']); - - $bind = $this->bind; - $total = $this->count(); - $results = $this->options($options)->bind($bind)->page($page, $listRows)->select(); - } elseif ($simple) { - $results = $this->limit(($page - 1) * $listRows, $listRows + 1)->select(); - $total = null; - } else { - $results = $this->page($page, $listRows)->select(); - } - - return $class::make($results, $listRows, $page, $total, $simple, $config); - } - - /** - * 指定当前操作的数据表 - * @access public - * @param mixed $table 表名 - * @return $this - */ - public function table($table) - { - if (is_string($table)) { - if (strpos($table, ')')) { - // 子查询 - } elseif (strpos($table, ',')) { - $tables = explode(',', $table); - $table = []; - - foreach ($tables as $item) { - list($item, $alias) = explode(' ', trim($item)); - if ($alias) { - $this->alias([$item => $alias]); - $table[$item] = $alias; - } else { - $table[] = $item; - } - } - } elseif (strpos($table, ' ')) { - list($table, $alias) = explode(' ', $table); - - $table = [$table => $alias]; - $this->alias($table); - } - } else { - $tables = $table; - $table = []; - - foreach ($tables as $key => $val) { - if (is_numeric($key)) { - $table[] = $val; - } else { - $this->alias([$key => $val]); - $table[$key] = $val; - } - } - } - - $this->options['table'] = $table; - - return $this; - } - - /** - * USING支持 用于多表删除 - * @access public - * @param mixed $using - * @return $this - */ - public function using($using) - { - $this->options['using'] = $using; - return $this; - } - - /** - * 指定排序 order('id','desc') 或者 order(['id'=>'desc','create_time'=>'desc']) - * @access public - * @param string|array $field 排序字段 - * @param string $order 排序 - * @return $this - */ - public function order($field, $order = null) - { - if (empty($field)) { - return $this; - } elseif ($field instanceof Expression) { - $this->options['order'][] = $field; - return $this; - } - - if (is_string($field)) { - if (!empty($this->options['via'])) { - $field = $this->options['via'] . '.' . $field; - } - - if (strpos($field, ',')) { - $field = array_map('trim', explode(',', $field)); - } else { - $field = empty($order) ? $field : [$field => $order]; - } - } elseif (!empty($this->options['via'])) { - foreach ($field as $key => $val) { - if (is_numeric($key)) { - $field[$key] = $this->options['via'] . '.' . $val; - } else { - $field[$this->options['via'] . '.' . $key] = $val; - unset($field[$key]); - } - } - } - - if (!isset($this->options['order'])) { - $this->options['order'] = []; - } - - if (is_array($field)) { - $this->options['order'] = array_merge($this->options['order'], $field); - } else { - $this->options['order'][] = $field; - } - - return $this; - } - - /** - * 表达式方式指定Field排序 - * @access public - * @param string $field 排序字段 - * @param array $bind 参数绑定 - * @return $this - */ - public function orderRaw($field, array $bind = []) - { - $this->options['order'][] = $this->raw($field); - - if ($bind) { - $this->bind($bind); - } - - return $this; - } - - /** - * 指定Field排序 order('id',[1,2,3],'desc') - * @access public - * @param string|array $field 排序字段 - * @param array $values 排序值 - * @param string $order - * @return $this - */ - public function orderField($field, array $values = [], $order = '') - { - $values['sort'] = $order; - - $this->options['order'][$field] = $values; - return $this; - } - - /** - * 随机排序 - * @access public - * @return $this - */ - public function orderRand() - { - $this->options['order'][] = '[rand]'; - return $this; - } - - /** - * 查询缓存 - * @access public - * @param mixed $key 缓存key - * @param integer|\DateTime $expire 缓存有效期 - * @param string $tag 缓存标签 - * @return $this - */ - public function cache($key = true, $expire = null, $tag = null) - { - // 增加快捷调用方式 cache(10) 等同于 cache(true, 10) - if ($key instanceof \DateTime || (is_numeric($key) && is_null($expire))) { - $expire = $key; - $key = true; - } - - if (false !== $key) { - $this->options['cache'] = ['key' => $key, 'expire' => $expire, 'tag' => $tag]; - } - - return $this; - } - - /** - * 指定group查询 - * @access public - * @param string|array $group GROUP - * @return $this - */ - public function group($group) - { - $this->options['group'] = $group; - return $this; - } - - /** - * 指定having查询 - * @access public - * @param string $having having - * @return $this - */ - public function having($having) - { - $this->options['having'] = $having; - return $this; - } - - /** - * 指定查询lock - * @access public - * @param bool|string $lock 是否lock - * @return $this - */ - public function lock($lock = false) - { - $this->options['lock'] = $lock; - $this->options['master'] = true; - - return $this; - } - - /** - * 指定distinct查询 - * @access public - * @param string $distinct 是否唯一 - * @return $this - */ - public function distinct($distinct) - { - $this->options['distinct'] = $distinct; - return $this; - } - - /** - * 指定数据表别名 - * @access public - * @param array|string $alias 数据表别名 - * @return $this - */ - public function alias($alias) - { - if (is_array($alias)) { - foreach ($alias as $key => $val) { - if (false !== strpos($key, '__')) { - $table = $this->connection->parseSqlTable($key); - } else { - $table = $key; - } - $this->options['alias'][$table] = $val; - } - } else { - if (isset($this->options['table'])) { - $table = is_array($this->options['table']) ? key($this->options['table']) : $this->options['table']; - if (false !== strpos($table, '__')) { - $table = $this->connection->parseSqlTable($table); - } - } else { - $table = $this->getTable(); - } - - $this->options['alias'][$table] = $alias; - } - - return $this; - } - - /** - * 指定强制索引 - * @access public - * @param string $force 索引名称 - * @return $this - */ - public function force($force) - { - $this->options['force'] = $force; - return $this; - } - - /** - * 查询注释 - * @access public - * @param string $comment 注释 - * @return $this - */ - public function comment($comment) - { - $this->options['comment'] = $comment; - return $this; - } - - /** - * 获取执行的SQL语句 - * @access public - * @param boolean $fetch 是否返回sql - * @return $this - */ - public function fetchSql($fetch = true) - { - $this->options['fetch_sql'] = $fetch; - return $this; - } - - /** - * 不主动获取数据集 - * @access public - * @param bool $pdo 是否返回 PDOStatement 对象 - * @return $this - */ - public function fetchPdo($pdo = true) - { - $this->options['fetch_pdo'] = $pdo; - return $this; - } - - /** - * 设置从主服务器读取数据 - * @access public - * @return $this - */ - public function master() - { - $this->options['master'] = true; - return $this; - } - - /** - * 设置是否严格检查字段名 - * @access public - * @param bool $strict 是否严格检查字段 - * @return $this - */ - public function strict($strict = true) - { - $this->options['strict'] = $strict; - return $this; - } - - /** - * 设置查询数据不存在是否抛出异常 - * @access public - * @param bool $fail 数据不存在是否抛出异常 - * @return $this - */ - public function failException($fail = true) - { - $this->options['fail'] = $fail; - return $this; - } - - /** - * 设置自增序列名 - * @access public - * @param string $sequence 自增序列名 - * @return $this - */ - public function sequence($sequence = null) - { - $this->options['sequence'] = $sequence; - return $this; - } - - /** - * 设置JSON字段信息 - * @access public - * @param array $json JSON字段 - * @return $this - */ - public function json(array $json = []) - { - $this->options['json'] = $json; - return $this; - } - - /** - * 添加查询范围 - * @access public - * @param array|string|\Closure $scope 查询范围定义 - * @param array $args 参数 - * @return $this - */ - public function scope($scope, ...$args) - { - // 查询范围的第一个参数始终是当前查询对象 - array_unshift($args, $this); - - if ($scope instanceof \Closure) { - call_user_func_array($scope, $args); - return $this; - } - - if (is_string($scope)) { - $scope = explode(',', $scope); - } - - if ($this->model) { - // 检查模型类的查询范围方法 - foreach ($scope as $name) { - $method = 'scope' . trim($name); - - if (method_exists($this->model, $method)) { - call_user_func_array([$this->model, $method], $args); - } - } - } - - return $this; - } - - /** - * 指定数据表主键 - * @access public - * @param string $pk 主键 - * @return $this - */ - public function pk($pk) - { - $this->pk = $pk; - return $this; - } - - /** - * 查询日期或者时间 - * @access public - * @param string $name 时间表达式 - * @param string|array $rule 时间范围 - * @return $this - */ - public function timeRule($name, $rule) - { - $this->timeRule[$name] = $rule; - return $this; - } - - /** - * 查询日期或者时间 - * @access public - * @param string $field 日期字段名 - * @param string|array $op 比较运算符或者表达式 - * @param string|array $range 比较范围 - * @param string $logic AND OR - * @return $this - */ - public function whereTime($field, $op, $range = null, $logic = 'AND') - { - if (is_null($range)) { - if (is_array($op)) { - $range = $op; - } else { - if (isset($this->timeExp[strtolower($op)])) { - $op = $this->timeExp[strtolower($op)]; - } - - if (isset($this->timeRule[strtolower($op)])) { - $range = $this->timeRule[strtolower($op)]; - } else { - $range = $op; - } - } - - $op = is_array($range) ? 'between' : '>='; - } - - return $this->parseWhereExp($logic, $field, strtolower($op) . ' time', $range, [], true); - } - - /** - * 查询日期或者时间范围 - * @access public - * @param string $field 日期字段名 - * @param string $startTime 开始时间 - * @param string $endTime 结束时间 - * @param string $logic AND OR - * @return $this - */ - public function whereBetweenTime($field, $startTime, $endTime = null, $logic = 'AND') - { - if (is_null($endTime)) { - $time = is_string($startTime) ? strtotime($startTime) : $startTime; - $endTime = strtotime('+1 day', $time); - } - - return $this->parseWhereExp($logic, $field, 'between time', [$startTime, $endTime], [], true); - } - - /** - * 获取当前数据表的主键 - * @access public - * @param string|array $options 数据表名或者查询参数 - * @return string|array - */ - public function getPk($options = '') - { - if (!empty($this->pk)) { - $pk = $this->pk; - } else { - $pk = $this->connection->getPk(is_array($options) && isset($options['table']) ? $options['table'] : $this->getTable()); - } - - return $pk; - } - - /** - * 参数绑定 - * @access public - * @param mixed $key 参数名 - * @param mixed $value 绑定变量值 - * @param integer $type 绑定类型 - * @return $this - */ - public function bind($key, $value = false, $type = PDO::PARAM_STR) - { - if (is_array($key)) { - $this->bind = array_merge($this->bind, $key); - } else { - $this->bind[$key] = [$value, $type]; - } - - return $this; - } - - /** - * 检测参数是否已经绑定 - * @access public - * @param string $key 参数名 - * @return bool - */ - public function isBind($key) - { - return isset($this->bind[$key]); - } - - /** - * 查询参数赋值 - * @access public - * @param string $name 参数名 - * @param mixed $value 值 - * @return $this - */ - public function option($name, $value) - { - $this->options[$name] = $value; - return $this; - } - - /** - * 查询参数赋值 - * @access protected - * @param array $options 表达式参数 - * @return $this - */ - protected function options(array $options) - { - $this->options = $options; - return $this; - } - - /** - * 获取当前的查询参数 - * @access public - * @param string $name 参数名 - * @return mixed - */ - public function getOptions($name = '') - { - if ('' === $name) { - return $this->options; - } - return isset($this->options[$name]) ? $this->options[$name] : null; - } - - /** - * 设置当前的查询参数 - * @access public - * @param string $option 参数名 - * @param mixed $value 参数值 - * @return $this - */ - public function setOption($option, $value) - { - $this->options[$option] = $value; - return $this; - } - - /** - * 设置关联查询JOIN预查询 - * @access public - * @param string|array $with 关联方法名称 - * @return $this - */ - public function with($with) - { - if (empty($with)) { - return $this; - } - - if (is_string($with)) { - $with = explode(',', $with); - } - - $first = true; - - /** @var Model $class */ - $class = $this->model; - foreach ($with as $key => $relation) { - $subRelation = ''; - $closure = false; - - if ($relation instanceof \Closure) { - // 支持闭包查询过滤关联条件 - $closure = $relation; - $relation = $key; - $with[$key] = $key; - } elseif (is_array($relation)) { - $subRelation = $relation; - $relation = $key; - } elseif (is_string($relation) && strpos($relation, '.')) { - $with[$key] = $relation; - - list($relation, $subRelation) = explode('.', $relation, 2); - } - - /** @var Relation $model */ - $relation = Loader::parseName($relation, 1, false); - $model = $class->$relation(); - - if ($model instanceof OneToOne && 0 == $model->getEagerlyType()) { - $model->removeOption()->eagerly($this, $relation, $subRelation, $closure, $first); - $first = false; - } elseif ($closure) { - $with[$key] = $closure; - } - } - $this->via(); - - if (isset($this->options['with'])) { - $this->options['with'] = array_merge($this->options['with'], $with); - } else { - $this->options['with'] = $with; - } - - return $this; - } - - /** - * 关联统计 - * @access protected - * @param string|array $relation 关联方法名 - * @param string $aggregate 聚合查询方法 - * @param string $field 字段 - * @param bool $subQuery 是否使用子查询 - * @return $this - */ - protected function withAggregate($relation, $aggregate = 'count', $field = '*', $subQuery = true) - { - $relations = is_string($relation) ? explode(',', $relation) : $relation; - - if (!$subQuery) { - $this->options['with_count'][] = [$relations, $aggregate, $field]; - } else { - if (!isset($this->options['field'])) { - $this->field('*'); - } - - foreach ($relations as $key => $relation) { - $closure = false; - if ($relation instanceof \Closure) { - $closure = $relation; - $relation = $key; - } - $relation = Loader::parseName($relation, 1, false); - $count = '(' . $this->model->$relation()->getRelationCountQuery($closure, $aggregate, $field) . ')'; - $this->field([$count => Loader::parseName($relation) . '_' . $aggregate]); - } - } - - return $this; - } - - /** - * 关联统计 - * @access public - * @param string|array $relation 关联方法名 - * @param bool $subQuery 是否使用子查询 - * @return $this - */ - public function withCount($relation, $subQuery = true) - { - return $this->withAggregate($relation, 'count', '*', $subQuery); - } - - /** - * 关联统计Sum - * @access public - * @param string|array $relation 关联方法名 - * @param string $field 字段 - * @param bool $subQuery 是否使用子查询 - * @return $this - */ - public function withSum($relation, $field, $subQuery = true) - { - return $this->withAggregate($relation, 'sum', $field, $subQuery); - } - - /** - * 关联统计Max - * @access public - * @param string|array $relation 关联方法名 - * @param string $field 字段 - * @param bool $subQuery 是否使用子查询 - * @return $this - */ - public function withMax($relation, $field, $subQuery = true) - { - return $this->withAggregate($relation, 'max', $field, $subQuery); - } - - /** - * 关联统计Min - * @access public - * @param string|array $relation 关联方法名 - * @param string $field 字段 - * @param bool $subQuery 是否使用子查询 - * @return $this - */ - public function withMin($relation, $field, $subQuery = true) - { - return $this->withAggregate($relation, 'min', $field, $subQuery); - } - - /** - * 关联统计Avg - * @access public - * @param string|array $relation 关联方法名 - * @param string $field 字段 - * @param bool $subQuery 是否使用子查询 - * @return $this - */ - public function withAvg($relation, $field, $subQuery = true) - { - return $this->withAggregate($relation, 'avg', $field, $subQuery); - } - - /** - * 关联预加载中 获取关联指定字段值 - * example: - * Model::with(['relation' => function($query){ - * $query->withField("id,name"); - * }]) - * - * @access public - * @param string | array $field 指定获取的字段 - * @return $this - */ - public function withField($field) - { - $this->options['with_field'] = $field; - - return $this; - } - - /** - * 设置当前字段添加的表别名 - * @access public - * @param string $via - * @return $this - */ - public function via($via = '') - { - $this->options['via'] = $via; - - return $this; - } - - /** - * 设置关联查询 - * @access public - * @param string|array $relation 关联名称 - * @return $this - */ - public function relation($relation) - { - if (empty($relation)) { - return $this; - } - - if (is_string($relation)) { - $relation = explode(',', $relation); - } - - if (isset($this->options['relation'])) { - $this->options['relation'] = array_merge($this->options['relation'], $relation); - } else { - $this->options['relation'] = $relation; - } - - return $this; - } - - /** - * 插入记录 - * @access public - * @param array $data 数据 - * @param boolean $replace 是否replace - * @param boolean $getLastInsID 返回自增主键 - * @param string $sequence 自增序列名 - * @return integer|string - */ - public function insert(array $data = [], $replace = false, $getLastInsID = false, $sequence = null) - { - $this->parseOptions(); - - $this->options['data'] = array_merge($this->options['data'], $data); - - return $this->connection->insert($this, $replace, $getLastInsID, $sequence); - } - - /** - * 插入记录并获取自增ID - * @access public - * @param array $data 数据 - * @param boolean $replace 是否replace - * @param string $sequence 自增序列名 - * @return integer|string - */ - public function insertGetId(array $data, $replace = false, $sequence = null) - { - return $this->insert($data, $replace, true, $sequence); - } - - /** - * 批量插入记录 - * @access public - * @param array $dataSet 数据集 - * @param boolean $replace 是否replace - * @param integer $limit 每次写入数据限制 - * @return integer|string - */ - public function insertAll(array $dataSet = [], $replace = false, $limit = null) - { - $this->parseOptions(); - - if (empty($dataSet)) { - $dataSet = $this->options['data']; - } - - if (empty($limit) && !empty($this->options['limit'])) { - $limit = $this->options['limit']; - } - - return $this->connection->insertAll($this, $dataSet, $replace, $limit); - } - - /** - * 通过Select方式插入记录 - * @access public - * @param string $fields 要插入的数据表字段名 - * @param string $table 要插入的数据表名 - * @return integer|string - * @throws PDOException - */ - public function selectInsert($fields, $table) - { - $this->parseOptions(); - - return $this->connection->selectInsert($this, $fields, $table); - } - - /** - * 更新记录 - * @access public - * @param mixed $data 数据 - * @return integer|string - * @throws Exception - * @throws PDOException - */ - public function update(array $data = []) - { - $this->parseOptions(); - - $this->options['data'] = array_merge($this->options['data'], $data); - - return $this->connection->update($this); - } - - /** - * 删除记录 - * @access public - * @param mixed $data 表达式 true 表示强制删除 - * @return int - * @throws Exception - * @throws PDOException - */ - public function delete($data = null) - { - $this->parseOptions(); - - if (!is_null($data) && true !== $data) { - // AR模式分析主键条件 - $this->parsePkWhere($data); - } - - if (!empty($this->options['soft_delete'])) { - // 软删除 - list($field, $condition) = $this->options['soft_delete']; - unset($this->options['soft_delete']); - $this->options['data'] = [$field => $condition]; - - return $this->connection->update($this); - } - - $this->options['data'] = $data; - - return $this->connection->delete($this); - } - - /** - * 执行查询但只返回PDOStatement对象 - * @access public - * @return \PDOStatement|string - */ - public function getPdo() - { - $this->parseOptions(); - - return $this->connection->pdo($this); - } - - /** - * 使用游标查找记录 - * @access public - * @param array|string|Query|\Closure $data - * @return \Generator - */ - public function cursor($data = null) - { - if ($data instanceof \Closure) { - $data($this); - $data = null; - } - - $this->parseOptions(); - - if (!is_null($data)) { - // 主键条件分析 - $this->parsePkWhere($data); - } - - $this->options['data'] = $data; - - $connection = clone $this->connection; - - return $connection->cursor($this); - } - - /** - * 查找记录 - * @access public - * @param array|string|Query|\Closure $data - * @return Collection|array|\PDOStatement|string - * @throws DbException - * @throws ModelNotFoundException - * @throws DataNotFoundException - */ - public function select($data = null) - { - if ($data instanceof Query) { - return $data->select(); - } elseif ($data instanceof \Closure) { - $data($this); - $data = null; - } - - $this->parseOptions(); - - if (false === $data) { - // 用于子查询 不查询只返回SQL - $this->options['fetch_sql'] = true; - } elseif (!is_null($data)) { - // 主键条件分析 - $this->parsePkWhere($data); - } - - $this->options['data'] = $data; - - $resultSet = $this->connection->select($this); - - if ($this->options['fetch_sql']) { - return $resultSet; - } - - // 数据列表读取后的处理 - if (!empty($this->model)) { - // 生成模型对象 - if (count($resultSet) > 0) { - foreach ($resultSet as $key => &$result) { - // 数据转换为模型对象 - $this->resultToModel($result, $this->options, true); - } - - if (!empty($this->options['with'])) { - // 预载入 - $result->eagerlyResultSet($resultSet, $this->options['with']); - } - - // 模型数据集转换 - $resultSet = $result->toCollection($resultSet); - } else { - $resultSet = $this->model->toCollection($resultSet); - } - } else { - if (!empty($this->options['json'])) { - foreach ($resultSet as &$result) { - $this->jsonResult($result, $this->options['json'], true); - } - } - - if ('collection' == $this->connection->getConfig('resultset_type')) { - // 返回Collection对象 - $resultSet = new Collection($resultSet); - } - } - - // 返回结果处理 - if (!empty($this->options['fail']) && count($resultSet) == 0) { - $this->throwNotFound($this->options); - } - - return $resultSet; - } - - /** - * 查找单条记录 - * @access public - * @param array|string|Query|\Closure $data - * @return array|null|\PDOStatement|string|Model - * @throws DbException - * @throws ModelNotFoundException - * @throws DataNotFoundException - */ - public function find($data = null) - { - if ($data instanceof Query) { - return $data->find(); - } elseif ($data instanceof \Closure) { - $data($this); - $data = null; - } - - $this->parseOptions(); - - if (!is_null($data)) { - // AR模式分析主键条件 - $this->parsePkWhere($data); - } - - $this->options['data'] = $data; - - $result = $this->connection->find($this); - - if ($this->options['fetch_sql']) { - return $result; - } - - // 数据处理 - if (!empty($result)) { - if (!empty($this->model)) { - // 返回模型对象 - $this->resultToModel($result, $this->options); - } elseif (!empty($this->options['json'])) { - $this->jsonResult($result, $this->options['json'], true); - } - } elseif (!empty($this->options['fail'])) { - $this->throwNotFound($this->options); - } - - return $result; - } - - /** - * JSON字段数据转换 - * @access protected - * @param array $result 查询数据 - * @param array $json JSON字段 - * @param bool $assoc 是否转换为数组 - * @return void - */ - protected function jsonResult(&$result, $json = [], $assoc = false) - { - foreach ($json as $name) { - if (isset($result[$name])) { - $result[$name] = json_decode($result[$name], $assoc); - } - } - } - - /** - * 查询数据转换为模型对象 - * @access protected - * @param array $result 查询数据 - * @param array $options 查询参数 - * @param bool $resultSet 是否为数据集查询 - * @return void - */ - protected function resultToModel(&$result, $options = [], $resultSet = false) - { - if (!empty($options['json'])) { - $this->jsonResult($result, $options['json']); - } - - $condition = (!$resultSet && isset($options['where']['AND'])) ? $options['where']['AND'] : null; - $result = $this->model->newInstance($result, $condition); - - // 关联查询 - if (!empty($options['relation'])) { - $result->relationQuery($options['relation']); - } - - // 预载入查询 - if (!$resultSet && !empty($options['with'])) { - $result->eagerlyResult($result, $options['with']); - } - - // 关联统计 - if (!empty($options['with_count'])) { - foreach ($options['with_count'] as $val) { - $result->relationCount($result, $val[0], $val[1], $val[2]); - } - } - } - - /** - * 查询失败 抛出异常 - * @access protected - * @param array $options 查询参数 - * @throws ModelNotFoundException - * @throws DataNotFoundException - */ - protected function throwNotFound($options = []) - { - if (!empty($this->model)) { - $class = get_class($this->model); - throw new ModelNotFoundException('model data Not Found:' . $class, $class, $options); - } - $table = is_array($options['table']) ? key($options['table']) : $options['table']; - throw new DataNotFoundException('table data not Found:' . $table, $table, $options); - } - - /** - * 查找多条记录 如果不存在则抛出异常 - * @access public - * @param array|string|Query|\Closure $data - * @return array|\PDOStatement|string|Model - * @throws DbException - * @throws ModelNotFoundException - * @throws DataNotFoundException - */ - public function selectOrFail($data = null) - { - return $this->failException(true)->select($data); - } - - /** - * 查找单条记录 如果不存在则抛出异常 - * @access public - * @param array|string|Query|\Closure $data - * @return array|\PDOStatement|string|Model - * @throws DbException - * @throws ModelNotFoundException - * @throws DataNotFoundException - */ - public function findOrFail($data = null) - { - return $this->failException(true)->find($data); - } - - /** - * 分批数据返回处理 - * @access public - * @param integer $count 每次处理的数据数量 - * @param callable $callback 处理回调方法 - * @param string|array $column 分批处理的字段名 - * @param string $order 字段排序 - * @return boolean - * @throws DbException - */ - public function chunk($count, $callback, $column = null, $order = 'asc') - { - $options = $this->getOptions(); - $column = $column ?: $this->getPk($options); - - if (isset($options['order'])) { - if (Container::get('app')->isDebug()) { - throw new DbException('chunk not support call order'); - } - unset($options['order']); - } - - $bind = $this->bind; - - if (is_array($column)) { - $times = 1; - $query = $this->options($options)->page($times, $count); - } else { - $query = $this->options($options)->limit($count); - - if (strpos($column, '.')) { - list($alias, $key) = explode('.', $column); - } else { - $key = $column; - } - } - - $resultSet = $query->order($column, $order)->select(); - - while (count($resultSet) > 0) { - if ($resultSet instanceof Collection) { - $resultSet = $resultSet->all(); - } - - if (false === call_user_func($callback, $resultSet)) { - return false; - } - - if (isset($times)) { - $times++; - $query = $this->options($options)->page($times, $count); - } else { - $end = end($resultSet); - $lastId = is_array($end) ? $end[$key] : $end->getData($key); - - $query = $this->options($options) - ->limit($count) - ->where($column, 'asc' == strtolower($order) ? '>' : '<', $lastId); - } - - $resultSet = $query->bind($bind)->order($column, $order)->select(); - } - - return true; - } - - /** - * 获取绑定的参数 并清空 - * @access public - * @param bool $clear - * @return array - */ - public function getBind($clear = true) - { - $bind = $this->bind; - if ($clear) { - $this->bind = []; - } - - return $bind; - } - - /** - * 创建子查询SQL - * @access public - * @param bool $sub - * @return string - * @throws DbException - */ - public function buildSql($sub = true) - { - return $sub ? '( ' . $this->select(false) . ' )' : $this->select(false); - } - - /** - * 视图查询处理 - * @access protected - * @param array $options 查询参数 - * @return void - */ - protected function parseView(&$options) - { - foreach (['AND', 'OR'] as $logic) { - if (isset($options['where'][$logic])) { - foreach ($options['where'][$logic] as $key => $val) { - if (array_key_exists($key, $options['map'])) { - array_shift($val); - array_unshift($val, $options['map'][$key]); - $options['where'][$logic][$options['map'][$key]] = $val; - unset($options['where'][$logic][$key]); - } - } - } - } - - if (isset($options['order'])) { - // 视图查询排序处理 - if (is_string($options['order'])) { - $options['order'] = explode(',', $options['order']); - } - foreach ($options['order'] as $key => $val) { - if (is_numeric($key)) { - if (strpos($val, ' ')) { - list($field, $sort) = explode(' ', $val); - if (array_key_exists($field, $options['map'])) { - $options['order'][$options['map'][$field]] = $sort; - unset($options['order'][$key]); - } - } elseif (array_key_exists($val, $options['map'])) { - $options['order'][$options['map'][$val]] = 'asc'; - unset($options['order'][$key]); - } - } elseif (array_key_exists($key, $options['map'])) { - $options['order'][$options['map'][$key]] = $val; - unset($options['order'][$key]); - } - } - } - } - - /** - * 把主键值转换为查询条件 支持复合主键 - * @access public - * @param array|string $data 主键数据 - * @return void - * @throws Exception - */ - public function parsePkWhere($data) - { - $pk = $this->getPk($this->options); - - // 获取当前数据表 - $table = is_array($this->options['table']) ? key($this->options['table']) : $this->options['table']; - - if (!empty($this->options['alias'][$table])) { - $alias = $this->options['alias'][$table]; - } - - if (is_string($pk)) { - $key = isset($alias) ? $alias . '.' . $pk : $pk; - // 根据主键查询 - if (is_array($data)) { - $where[$pk] = isset($data[$pk]) ? [$key, '=', $data[$pk]] : [$key, 'in', $data]; - } else { - $where[$pk] = strpos($data, ',') ? [$key, 'IN', $data] : [$key, '=', $data]; - } - } elseif (is_array($pk) && is_array($data) && !empty($data)) { - // 根据复合主键查询 - foreach ($pk as $key) { - if (isset($data[$key])) { - $attr = isset($alias) ? $alias . '.' . $key : $key; - $where[$key] = [$attr, '=', $data[$key]]; - } else { - throw new Exception('miss complex primary data'); - } - } - } - - if (!empty($where)) { - if (isset($this->options['where']['AND'])) { - $this->options['where']['AND'] = array_merge($this->options['where']['AND'], $where); - } else { - $this->options['where']['AND'] = $where; - } - } - - return; - } - - /** - * 分析表达式(可用于查询或者写入操作) - * @access protected - * @return array - */ - protected function parseOptions() - { - $options = $this->getOptions(); - - // 获取数据表 - if (empty($options['table'])) { - $options['table'] = $this->getTable(); - } - - if (!isset($options['where'])) { - $options['where'] = []; - } elseif (isset($options['view'])) { - // 视图查询条件处理 - $this->parseView($options); - } - - if (!isset($options['field'])) { - $options['field'] = '*'; - } - - foreach (['data', 'order'] as $name) { - if (!isset($options[$name])) { - $options[$name] = []; - } - } - - if (!isset($options['strict'])) { - $options['strict'] = $this->getConfig('fields_strict'); - } - - foreach (['master', 'lock', 'fetch_pdo', 'fetch_sql', 'distinct'] as $name) { - if (!isset($options[$name])) { - $options[$name] = false; - } - } - - foreach (['join', 'union', 'group', 'having', 'limit', 'force', 'comment'] as $name) { - if (!isset($options[$name])) { - $options[$name] = ''; - } - } - - if (isset($options['page'])) { - // 根据页数计算limit - list($page, $listRows) = $options['page']; - $page = $page > 0 ? $page : 1; - $listRows = $listRows > 0 ? $listRows : (is_numeric($options['limit']) ? $options['limit'] : 20); - $offset = $listRows * ($page - 1); - $options['limit'] = $offset . ',' . $listRows; - } - - $this->options = $options; - - return $options; - } - - /** - * 注册回调方法 - * @access public - * @param string $event 事件名 - * @param callable $callback 回调方法 - * @return void - */ - public static function event($event, $callback) - { - self::$event[$event] = $callback; - } - - /** - * 触发事件 - * @access public - * @param string $event 事件名 - * @return bool - */ - public function trigger($event) - { - $result = false; - - if (isset(self::$event[$event])) { - $result = Container::getInstance()->invoke(self::$event[$event], [$this]); - } - - return $result; - } - -} diff --git a/thinkphp/library/think/db/builder/Mysql.php b/thinkphp/library/think/db/builder/Mysql.php deleted file mode 100644 index a17657d9f..000000000 --- a/thinkphp/library/think/db/builder/Mysql.php +++ /dev/null @@ -1,188 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\db\builder; - -use think\db\Builder; -use think\db\Query; - -/** - * mysql数据库驱动 - */ -class Mysql extends Builder -{ - // 查询表达式解析 - protected $parser = [ - 'parseCompare' => ['=', '<>', '>', '>=', '<', '<='], - 'parseLike' => ['LIKE', 'NOT LIKE'], - 'parseBetween' => ['NOT BETWEEN', 'BETWEEN'], - 'parseIn' => ['NOT IN', 'IN'], - 'parseExp' => ['EXP'], - 'parseRegexp' => ['REGEXP', 'NOT REGEXP'], - 'parseNull' => ['NOT NULL', 'NULL'], - 'parseBetweenTime' => ['BETWEEN TIME', 'NOT BETWEEN TIME'], - 'parseTime' => ['< TIME', '> TIME', '<= TIME', '>= TIME'], - 'parseExists' => ['NOT EXISTS', 'EXISTS'], - ]; - - protected $insertAllSql = '%INSERT% INTO %TABLE% (%FIELD%) VALUES %DATA% %COMMENT%'; - protected $updateSql = 'UPDATE %TABLE% %JOIN% SET %SET% %WHERE% %ORDER%%LIMIT% %LOCK%%COMMENT%'; - - /** - * 生成insertall SQL - * @access public - * @param Query $query 查询对象 - * @param array $dataSet 数据集 - * @param bool $replace 是否replace - * @return string - */ - public function insertAll(Query $query, $dataSet, $replace = false) - { - $options = $query->getOptions(); - - // 获取合法的字段 - if ('*' == $options['field']) { - $allowFields = $this->connection->getTableFields($options['table']); - } else { - $allowFields = $options['field']; - } - - // 获取绑定信息 - $bind = $this->connection->getFieldsBind($options['table']); - - foreach ($dataSet as $k => $data) { - $data = $this->parseData($query, $data, $allowFields, $bind, '_' . $k); - - $values[] = '( ' . implode(',', array_values($data)) . ' )'; - - if (!isset($insertFields)) { - $insertFields = array_keys($data); - } - } - - $fields = []; - foreach ($insertFields as $field) { - $fields[] = $this->parseKey($query, $field); - } - - return str_replace( - ['%INSERT%', '%TABLE%', '%FIELD%', '%DATA%', '%COMMENT%'], - [ - $replace ? 'REPLACE' : 'INSERT', - $this->parseTable($query, $options['table']), - implode(' , ', $fields), - implode(' , ', $values), - $this->parseComment($query, $options['comment']), - ], - $this->insertAllSql); - } - - /** - * 正则查询 - * @access protected - * @param Query $query 查询对象 - * @param string $key - * @param string $exp - * @param mixed $value - * @param string $field - * @return string - */ - protected function parseRegexp(Query $query, $key, $exp, $value, $field) - { - return $key . ' ' . $exp . ' ' . $value; - } - - /** - * 字段和表名处理 - * @access public - * @param Query $query 查询对象 - * @param string $key 字段名 - * @param bool $strict 严格检测 - * @return string - */ - public function parseKey(Query $query, $key, $strict = false) - { - if (is_int($key)) { - return $key; - } - $key = trim($key); - - if (strpos($key, '->') && false === strpos($key, '(')) { - // JSON字段支持 - list($field, $name) = explode('->', $key, 2); - - return 'json_extract(' . $this->parseKey($query, $field) . ', \'$.' . str_replace('->', '.', $name) . '\')'; - } elseif (strpos($key, '.') && !preg_match('/[,\'\"\(\)`\s]/', $key)) { - list($table, $key) = explode('.', $key, 2); - - $alias = $query->getOptions('alias'); - - if ('__TABLE__' == $table) { - $table = $query->getOptions('table'); - $table = is_array($table) ? array_shift($table) : $table; - } - - if (isset($alias[$table])) { - $table = $alias[$table]; - } - } - - if ($strict || !preg_match('/[,\'\"\*\(\)`.\s]/', $key)) { - $key = '`' . $key . '`'; - } - - if (isset($table)) { - if (strpos($table, '.')) { - $table = str_replace('.', '`.`', $table); - } - - $key = '`' . $table . '`.' . $key; - } - - return $key; - } - - /** - * field分析 - * @access protected - * @param Query $query 查询对象 - * @param mixed $fields 字段名 - * @return string - */ - protected function parseField(Query $query, $fields) - { - $fieldsStr = parent::parseField($query, $fields); - $options = $query->getOptions(); - - if (!empty($options['point'])) { - $array = []; - foreach ($options['point'] as $key => $field) { - $key = !is_numeric($key) ? $key : $field; - $array[] = 'AsText(' . $this->parseKey($query, $key) . ') AS ' . $this->parseKey($query, $field); - } - $fieldsStr .= ',' . implode(',', $array); - } - - return $fieldsStr; - } - - /** - * 随机排序 - * @access protected - * @param Query $query 查询对象 - * @return string - */ - protected function parseRand(Query $query) - { - return 'rand()'; - } - -} diff --git a/thinkphp/library/think/db/builder/Pgsql.php b/thinkphp/library/think/db/builder/Pgsql.php deleted file mode 100644 index 32373b64d..000000000 --- a/thinkphp/library/think/db/builder/Pgsql.php +++ /dev/null @@ -1,98 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\db\builder; - -use think\db\Builder; -use think\db\Query; - -/** - * Pgsql数据库驱动 - */ -class Pgsql extends Builder -{ - - protected $insertSql = 'INSERT INTO %TABLE% (%FIELD%) VALUES (%DATA%) %COMMENT%'; - protected $insertAllSql = 'INSERT INTO %TABLE% (%FIELD%) %DATA% %COMMENT%'; - - /** - * limit分析 - * @access protected - * @param Query $query 查询对象 - * @param mixed $limit - * @return string - */ - public function parseLimit(Query $query, $limit) - { - $limitStr = ''; - - if (!empty($limit)) { - $limit = explode(',', $limit); - if (count($limit) > 1) { - $limitStr .= ' LIMIT ' . $limit[1] . ' OFFSET ' . $limit[0] . ' '; - } else { - $limitStr .= ' LIMIT ' . $limit[0] . ' '; - } - } - - return $limitStr; - } - - /** - * 字段和表名处理 - * @access public - * @param Query $query 查询对象 - * @param string $key 字段名 - * @param bool $strict 严格检测 - * @return string - */ - public function parseKey(Query $query, $key, $strict = false) - { - $key = trim($key); - - if (strpos($key, '->') && false === strpos($key, '(')) { - // JSON字段支持 - list($field, $name) = explode('->', $key); - $key = $field . '->>\'' . $name . '\''; - } elseif (strpos($key, '.')) { - list($table, $key) = explode('.', $key, 2); - - $alias = $query->getOptions('alias'); - - if ('__TABLE__' == $table) { - $table = $query->getOptions('table'); - $table = is_array($table) ? array_shift($table) : $table; - } - - if (isset($alias[$table])) { - $table = $alias[$table]; - } - } - - if (isset($table)) { - $key = $table . '.' . $key; - } - - return $key; - } - - /** - * 随机排序 - * @access protected - * @param Query $query 查询对象 - * @return string - */ - protected function parseRand(Query $query) - { - return 'RANDOM()'; - } - -} diff --git a/thinkphp/library/think/db/builder/Sqlite.php b/thinkphp/library/think/db/builder/Sqlite.php deleted file mode 100644 index 9b244617e..000000000 --- a/thinkphp/library/think/db/builder/Sqlite.php +++ /dev/null @@ -1,89 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\db\builder; - -use think\db\Builder; -use think\db\Query; - -/** - * Sqlite数据库驱动 - */ -class Sqlite extends Builder -{ - - /** - * limit - * @access public - * @param Query $query 查询对象 - * @param mixed $limit - * @return string - */ - public function parseLimit(Query $query, $limit) - { - $limitStr = ''; - - if (!empty($limit)) { - $limit = explode(',', $limit); - if (count($limit) > 1) { - $limitStr .= ' LIMIT ' . $limit[1] . ' OFFSET ' . $limit[0] . ' '; - } else { - $limitStr .= ' LIMIT ' . $limit[0] . ' '; - } - } - - return $limitStr; - } - - /** - * 随机排序 - * @access protected - * @param Query $query 查询对象 - * @return string - */ - protected function parseRand(Query $query) - { - return 'RANDOM()'; - } - - /** - * 字段和表名处理 - * @access public - * @param Query $query 查询对象 - * @param string $key 字段名 - * @param bool $strict 严格检测 - * @return string - */ - public function parseKey(Query $query, $key, $strict = false) - { - $key = trim($key); - if (strpos($key, '.')) { - list($table, $key) = explode('.', $key, 2); - - $alias = $query->getOptions('alias'); - - if ('__TABLE__' == $table) { - $table = $query->getOptions('table'); - $table = is_array($table) ? array_shift($table) : $table; - } - - if (isset($alias[$table])) { - $table = $alias[$table]; - } - } - - if (isset($table)) { - $key = $table . '.' . $key; - } - - return $key; - } -} diff --git a/thinkphp/library/think/db/builder/Sqlsrv.php b/thinkphp/library/think/db/builder/Sqlsrv.php deleted file mode 100644 index 4d3dc15bc..000000000 --- a/thinkphp/library/think/db/builder/Sqlsrv.php +++ /dev/null @@ -1,149 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\db\builder; - -use think\db\Builder; -use think\db\Expression; -use think\db\Query; - -/** - * Sqlsrv数据库驱动 - */ -class Sqlsrv extends Builder -{ - protected $selectSql = 'SELECT T1.* FROM (SELECT thinkphp.*, ROW_NUMBER() OVER (%ORDER%) AS ROW_NUMBER FROM (SELECT %DISTINCT% %FIELD% FROM %TABLE%%JOIN%%WHERE%%GROUP%%HAVING%) AS thinkphp) AS T1 %LIMIT%%COMMENT%'; - protected $selectInsertSql = 'SELECT %DISTINCT% %FIELD% FROM %TABLE%%JOIN%%WHERE%%GROUP%%HAVING%'; - protected $updateSql = 'UPDATE %TABLE% SET %SET% FROM %TABLE% %JOIN% %WHERE% %LIMIT% %LOCK%%COMMENT%'; - protected $deleteSql = 'DELETE FROM %TABLE% %USING% FROM %TABLE% %JOIN% %WHERE% %LIMIT% %LOCK%%COMMENT%'; - protected $insertSql = 'INSERT INTO %TABLE% (%FIELD%) VALUES (%DATA%) %COMMENT%'; - protected $insertAllSql = 'INSERT INTO %TABLE% (%FIELD%) %DATA% %COMMENT%'; - - /** - * order分析 - * @access protected - * @param Query $query 查询对象 - * @param mixed $order - * @return string - */ - protected function parseOrder(Query $query, $order) - { - if (empty($order)) { - return ' ORDER BY rand()'; - } - - $array = []; - - foreach ($order as $key => $val) { - if ($val instanceof Expression) { - $array[] = $val->getValue(); - } elseif ('[rand]' == $val) { - $array[] = $this->parseRand($query); - } else { - if (is_numeric($key)) { - list($key, $sort) = explode(' ', strpos($val, ' ') ? $val : $val . ' '); - } else { - $sort = $val; - } - - $sort = in_array(strtolower($sort), ['asc', 'desc'], true) ? ' ' . $sort : ''; - $array[] = $this->parseKey($query, $key, true) . $sort; - } - } - - return ' ORDER BY ' . implode(',', $array); - } - - /** - * 随机排序 - * @access protected - * @param Query $query 查询对象 - * @return string - */ - protected function parseRand(Query $query) - { - return 'rand()'; - } - - /** - * 字段和表名处理 - * @access public - * @param Query $query 查询对象 - * @param string $key 字段名 - * @param bool $strict 严格检测 - * @return string - */ - public function parseKey(Query $query, $key, $strict = false) - { - if (is_int($key)) { - return $key; - } - - $key = trim($key); - - if (strpos($key, '.') && !preg_match('/[,\'\"\(\)\[\s]/', $key)) { - list($table, $key) = explode('.', $key, 2); - - $alias = $query->getOptions('alias'); - - if ('__TABLE__' == $table) { - $table = $query->getOptions('table'); - $table = is_array($table) ? array_shift($table) : $table; - } - - if (isset($alias[$table])) { - $table = $alias[$table]; - } - } - - if ($strict || !preg_match('/[,\'\"\*\(\)\[.\s]/', $key)) { - $key = '[' . $key . ']'; - } - - if (isset($table)) { - $key = '[' . $table . '].' . $key; - } - - return $key; - } - - /** - * limit - * @access protected - * @param Query $query 查询对象 - * @param mixed $limit - * @return string - */ - protected function parseLimit(Query $query, $limit) - { - if (empty($limit)) { - return ''; - } - - $limit = explode(',', $limit); - - if (count($limit) > 1) { - $limitStr = '(T1.ROW_NUMBER BETWEEN ' . $limit[0] . ' + 1 AND ' . $limit[0] . ' + ' . $limit[1] . ')'; - } else { - $limitStr = '(T1.ROW_NUMBER BETWEEN 1 AND ' . $limit[0] . ")"; - } - - return 'WHERE ' . $limitStr; - } - - public function selectInsert(Query $query, $fields, $table) - { - $this->selectSql = $this->selectInsertSql; - - return parent::selectInsert($query, $fields, $table); - } - -} diff --git a/thinkphp/library/think/db/connector/Mysql.php b/thinkphp/library/think/db/connector/Mysql.php deleted file mode 100644 index 331d550fe..000000000 --- a/thinkphp/library/think/db/connector/Mysql.php +++ /dev/null @@ -1,157 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\db\connector; - -use PDO; -use think\db\Connection; -use think\db\Query; - -/** - * mysql数据库驱动 - */ -class Mysql extends Connection -{ - - protected $builder = '\\think\\db\\builder\\Mysql'; - - /** - * 初始化 - * @access protected - * @return void - */ - protected function initialize() - { - // Point类型支持 - Query::extend('point', function ($query, $field, $value = null, $fun = 'GeomFromText', $type = 'POINT') { - if (!is_null($value)) { - $query->data($field, ['point', $value, $fun, $type]); - } else { - if (is_string($field)) { - $field = explode(',', $field); - } - $query->setOption('point', $field); - } - - return $query; - }); - } - - /** - * 解析pdo连接的dsn信息 - * @access protected - * @param array $config 连接信息 - * @return string - */ - protected function parseDsn($config) - { - if (!empty($config['socket'])) { - $dsn = 'mysql:unix_socket=' . $config['socket']; - } elseif (!empty($config['hostport'])) { - $dsn = 'mysql:host=' . $config['hostname'] . ';port=' . $config['hostport']; - } else { - $dsn = 'mysql:host=' . $config['hostname']; - } - $dsn .= ';dbname=' . $config['database']; - - if (!empty($config['charset'])) { - $dsn .= ';charset=' . $config['charset']; - } - - return $dsn; - } - - /** - * 取得数据表的字段信息 - * @access public - * @param string $tableName - * @return array - */ - public function getFields($tableName) - { - list($tableName) = explode(' ', $tableName); - - if (false === strpos($tableName, '`')) { - if (strpos($tableName, '.')) { - $tableName = str_replace('.', '`.`', $tableName); - } - $tableName = '`' . $tableName . '`'; - } - - $sql = 'SHOW COLUMNS FROM ' . $tableName; - $pdo = $this->query($sql, [], false, true); - $result = $pdo->fetchAll(PDO::FETCH_ASSOC); - $info = []; - - if ($result) { - foreach ($result as $key => $val) { - $val = array_change_key_case($val); - $info[$val['field']] = [ - 'name' => $val['field'], - 'type' => $val['type'], - 'notnull' => (bool) ('' === $val['null']), // not null is empty, null is yes - 'default' => $val['default'], - 'primary' => (strtolower($val['key']) == 'pri'), - 'autoinc' => (strtolower($val['extra']) == 'auto_increment'), - ]; - } - } - - return $this->fieldCase($info); - } - - /** - * 取得数据库的表信息 - * @access public - * @param string $dbName - * @return array - */ - public function getTables($dbName = '') - { - $sql = !empty($dbName) ? 'SHOW TABLES FROM ' . $dbName : 'SHOW TABLES '; - $pdo = $this->query($sql, [], false, true); - $result = $pdo->fetchAll(PDO::FETCH_ASSOC); - $info = []; - - foreach ($result as $key => $val) { - $info[$key] = current($val); - } - - return $info; - } - - /** - * SQL性能分析 - * @access protected - * @param string $sql - * @return array - */ - protected function getExplain($sql) - { - $pdo = $this->linkID->query("EXPLAIN " . $sql); - $result = $pdo->fetch(PDO::FETCH_ASSOC); - $result = array_change_key_case($result); - - if (isset($result['extra'])) { - if (strpos($result['extra'], 'filesort') || strpos($result['extra'], 'temporary')) { - $this->log('SQL:' . $this->queryStr . '[' . $result['extra'] . ']', 'warn'); - } - } - - return $result; - } - - protected function supportSavepoint() - { - return true; - } - -} diff --git a/thinkphp/library/think/db/connector/Pgsql.php b/thinkphp/library/think/db/connector/Pgsql.php deleted file mode 100644 index ee9fca017..000000000 --- a/thinkphp/library/think/db/connector/Pgsql.php +++ /dev/null @@ -1,116 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\db\connector; - -use PDO; -use think\db\Connection; - -/** - * Pgsql数据库驱动 - */ -class Pgsql extends Connection -{ - protected $builder = '\\think\\db\\builder\\Pgsql'; - - // PDO连接参数 - protected $params = [ - PDO::ATTR_CASE => PDO::CASE_NATURAL, - PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, - PDO::ATTR_ORACLE_NULLS => PDO::NULL_NATURAL, - PDO::ATTR_STRINGIFY_FETCHES => false, - ]; - - /** - * 解析pdo连接的dsn信息 - * @access protected - * @param array $config 连接信息 - * @return string - */ - protected function parseDsn($config) - { - $dsn = 'pgsql:dbname=' . $config['database'] . ';host=' . $config['hostname']; - - if (!empty($config['hostport'])) { - $dsn .= ';port=' . $config['hostport']; - } - - return $dsn; - } - - /** - * 取得数据表的字段信息 - * @access public - * @param string $tableName - * @return array - */ - public function getFields($tableName) - { - list($tableName) = explode(' ', $tableName); - $sql = 'select fields_name as "field",fields_type as "type",fields_not_null as "null",fields_key_name as "key",fields_default as "default",fields_default as "extra" from table_msg(\'' . $tableName . '\');'; - - $pdo = $this->query($sql, [], false, true); - $result = $pdo->fetchAll(PDO::FETCH_ASSOC); - $info = []; - - if ($result) { - foreach ($result as $key => $val) { - $val = array_change_key_case($val); - $info[$val['field']] = [ - 'name' => $val['field'], - 'type' => $val['type'], - 'notnull' => (bool) ('' !== $val['null']), - 'default' => $val['default'], - 'primary' => !empty($val['key']), - 'autoinc' => (0 === strpos($val['extra'], 'nextval(')), - ]; - } - } - - return $this->fieldCase($info); - } - - /** - * 取得数据库的表信息 - * @access public - * @param string $dbName - * @return array - */ - public function getTables($dbName = '') - { - $sql = "select tablename as Tables_in_test from pg_tables where schemaname ='public'"; - $pdo = $this->query($sql, [], false, true); - $result = $pdo->fetchAll(PDO::FETCH_ASSOC); - $info = []; - - foreach ($result as $key => $val) { - $info[$key] = current($val); - } - - return $info; - } - - /** - * SQL性能分析 - * @access protected - * @param string $sql - * @return array - */ - protected function getExplain($sql) - { - return []; - } - - protected function supportSavepoint() - { - return true; - } -} diff --git a/thinkphp/library/think/db/connector/Sqlite.php b/thinkphp/library/think/db/connector/Sqlite.php deleted file mode 100644 index 5b9b3fa64..000000000 --- a/thinkphp/library/think/db/connector/Sqlite.php +++ /dev/null @@ -1,108 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\db\connector; - -use PDO; -use think\db\Connection; - -/** - * Sqlite数据库驱动 - */ -class Sqlite extends Connection -{ - - protected $builder = '\\think\\db\\builder\\Sqlite'; - - /** - * 解析pdo连接的dsn信息 - * @access protected - * @param array $config 连接信息 - * @return string - */ - protected function parseDsn($config) - { - $dsn = 'sqlite:' . $config['database']; - - return $dsn; - } - - /** - * 取得数据表的字段信息 - * @access public - * @param string $tableName - * @return array - */ - public function getFields($tableName) - { - list($tableName) = explode(' ', $tableName); - $sql = 'PRAGMA table_info( ' . $tableName . ' )'; - - $pdo = $this->query($sql, [], false, true); - $result = $pdo->fetchAll(PDO::FETCH_ASSOC); - $info = []; - - if ($result) { - foreach ($result as $key => $val) { - $val = array_change_key_case($val); - $info[$val['name']] = [ - 'name' => $val['name'], - 'type' => $val['type'], - 'notnull' => 1 === $val['notnull'], - 'default' => $val['dflt_value'], - 'primary' => '1' == $val['pk'], - 'autoinc' => '1' == $val['pk'], - ]; - } - } - - return $this->fieldCase($info); - } - - /** - * 取得数据库的表信息 - * @access public - * @param string $dbName - * @return array - */ - public function getTables($dbName = '') - { - $sql = "SELECT name FROM sqlite_master WHERE type='table' " - . "UNION ALL SELECT name FROM sqlite_temp_master " - . "WHERE type='table' ORDER BY name"; - - $pdo = $this->query($sql, [], false, true); - $result = $pdo->fetchAll(PDO::FETCH_ASSOC); - $info = []; - - foreach ($result as $key => $val) { - $info[$key] = current($val); - } - - return $info; - } - - /** - * SQL性能分析 - * @access protected - * @param string $sql - * @return array - */ - protected function getExplain($sql) - { - return []; - } - - protected function supportSavepoint() - { - return true; - } -} diff --git a/thinkphp/library/think/db/connector/Sqlsrv.php b/thinkphp/library/think/db/connector/Sqlsrv.php deleted file mode 100644 index 4b5417097..000000000 --- a/thinkphp/library/think/db/connector/Sqlsrv.php +++ /dev/null @@ -1,138 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\db\connector; - -use PDO; -use think\db\Connection; - -/** - * Sqlsrv数据库驱动 - */ -class Sqlsrv extends Connection -{ - // PDO连接参数 - protected $params = [ - PDO::ATTR_CASE => PDO::CASE_NATURAL, - PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, - PDO::ATTR_ORACLE_NULLS => PDO::NULL_NATURAL, - PDO::ATTR_STRINGIFY_FETCHES => false, - ]; - - protected $builder = '\\think\\db\\builder\\Sqlsrv'; - - /** - * 解析pdo连接的dsn信息 - * @access protected - * @param array $config 连接信息 - * @return string - */ - protected function parseDsn($config) - { - $dsn = 'sqlsrv:Database=' . $config['database'] . ';Server=' . $config['hostname']; - - if (!empty($config['hostport'])) { - $dsn .= ',' . $config['hostport']; - } - - return $dsn; - } - - /** - * 取得数据表的字段信息 - * @access public - * @param string $tableName - * @return array - */ - public function getFields($tableName) - { - list($tableName) = explode(' ', $tableName); - - $sql = "SELECT column_name, data_type, column_default, is_nullable - FROM information_schema.tables AS t - JOIN information_schema.columns AS c - ON t.table_catalog = c.table_catalog - AND t.table_schema = c.table_schema - AND t.table_name = c.table_name - WHERE t.table_name = '$tableName'"; - - $pdo = $this->query($sql, [], false, true); - $result = $pdo->fetchAll(PDO::FETCH_ASSOC); - $info = []; - - if ($result) { - foreach ($result as $key => $val) { - $val = array_change_key_case($val); - $info[$val['column_name']] = [ - 'name' => $val['column_name'], - 'type' => $val['data_type'], - 'notnull' => (bool) ('' === $val['is_nullable']), // not null is empty, null is yes - 'default' => $val['column_default'], - 'primary' => false, - 'autoinc' => false, - ]; - } - } - - $sql = "SELECT column_name FROM information_schema.key_column_usage WHERE table_name='$tableName'"; - - // 调试开始 - $this->debug(true); - - $pdo = $this->linkID->query($sql); - - // 调试结束 - $this->debug(false, $sql); - - $result = $pdo->fetch(PDO::FETCH_ASSOC); - - if ($result) { - $info[$result['column_name']]['primary'] = true; - } - - return $this->fieldCase($info); - } - - /** - * 取得数据表的字段信息 - * @access public - * @param string $dbName - * @return array - */ - public function getTables($dbName = '') - { - $sql = "SELECT TABLE_NAME - FROM INFORMATION_SCHEMA.TABLES - WHERE TABLE_TYPE = 'BASE TABLE' - "; - - $pdo = $this->query($sql, [], false, true); - $result = $pdo->fetchAll(PDO::FETCH_ASSOC); - $info = []; - - foreach ($result as $key => $val) { - $info[$key] = current($val); - } - - return $info; - } - - /** - * SQL性能分析 - * @access protected - * @param string $sql - * @return array - */ - protected function getExplain($sql) - { - return []; - } -} diff --git a/thinkphp/library/think/db/connector/pgsql.sql b/thinkphp/library/think/db/connector/pgsql.sql deleted file mode 100644 index e1a09a30c..000000000 --- a/thinkphp/library/think/db/connector/pgsql.sql +++ /dev/null @@ -1,117 +0,0 @@ -CREATE OR REPLACE FUNCTION pgsql_type(a_type varchar) RETURNS varchar AS -$BODY$ -DECLARE - v_type varchar; -BEGIN - IF a_type='int8' THEN - v_type:='bigint'; - ELSIF a_type='int4' THEN - v_type:='integer'; - ELSIF a_type='int2' THEN - v_type:='smallint'; - ELSIF a_type='bpchar' THEN - v_type:='char'; - ELSE - v_type:=a_type; - END IF; - RETURN v_type; -END; -$BODY$ -LANGUAGE PLPGSQL; - -CREATE TYPE "public"."tablestruct" AS ( - "fields_key_name" varchar(100), - "fields_name" VARCHAR(200), - "fields_type" VARCHAR(20), - "fields_length" BIGINT, - "fields_not_null" VARCHAR(10), - "fields_default" VARCHAR(500), - "fields_comment" VARCHAR(1000) -); - -CREATE OR REPLACE FUNCTION "public"."table_msg" (a_schema_name varchar, a_table_name varchar) RETURNS SETOF "public"."tablestruct" AS -$body$ -DECLARE - v_ret tablestruct; - v_oid oid; - v_sql varchar; - v_rec RECORD; - v_key varchar; -BEGIN - SELECT - pg_class.oid INTO v_oid - FROM - pg_class - INNER JOIN pg_namespace ON (pg_class.relnamespace = pg_namespace.oid AND lower(pg_namespace.nspname) = a_schema_name) - WHERE - pg_class.relname=a_table_name; - IF NOT FOUND THEN - RETURN; - END IF; - - v_sql=' - SELECT - pg_attribute.attname AS fields_name, - pg_attribute.attnum AS fields_index, - pgsql_type(pg_type.typname::varchar) AS fields_type, - pg_attribute.atttypmod-4 as fields_length, - CASE WHEN pg_attribute.attnotnull THEN ''not null'' - ELSE '''' - END AS fields_not_null, - pg_attrdef.adsrc AS fields_default, - pg_description.description AS fields_comment - FROM - pg_attribute - INNER JOIN pg_class ON pg_attribute.attrelid = pg_class.oid - INNER JOIN pg_type ON pg_attribute.atttypid = pg_type.oid - LEFT OUTER JOIN pg_attrdef ON pg_attrdef.adrelid = pg_class.oid AND pg_attrdef.adnum = pg_attribute.attnum - LEFT OUTER JOIN pg_description ON pg_description.objoid = pg_class.oid AND pg_description.objsubid = pg_attribute.attnum - WHERE - pg_attribute.attnum > 0 - AND attisdropped <> ''t'' - AND pg_class.oid = ' || v_oid || ' - ORDER BY pg_attribute.attnum' ; - - FOR v_rec IN EXECUTE v_sql LOOP - v_ret.fields_name=v_rec.fields_name; - v_ret.fields_type=v_rec.fields_type; - IF v_rec.fields_length > 0 THEN - v_ret.fields_length:=v_rec.fields_length; - ELSE - v_ret.fields_length:=NULL; - END IF; - v_ret.fields_not_null=v_rec.fields_not_null; - v_ret.fields_default=v_rec.fields_default; - v_ret.fields_comment=v_rec.fields_comment; - SELECT constraint_name INTO v_key FROM information_schema.key_column_usage WHERE table_schema=a_schema_name AND table_name=a_table_name AND column_name=v_rec.fields_name; - IF FOUND THEN - v_ret.fields_key_name=v_key; - ELSE - v_ret.fields_key_name=''; - END IF; - RETURN NEXT v_ret; - END LOOP; - RETURN ; -END; -$body$ -LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER; - -COMMENT ON FUNCTION "public"."table_msg"(a_schema_name varchar, a_table_name varchar) -IS '获得表信息'; - ----重载一个函数 -CREATE OR REPLACE FUNCTION "public"."table_msg" (a_table_name varchar) RETURNS SETOF "public"."tablestruct" AS -$body$ -DECLARE - v_ret tablestruct; -BEGIN - FOR v_ret IN SELECT * FROM table_msg('public',a_table_name) LOOP - RETURN NEXT v_ret; - END LOOP; - RETURN; -END; -$body$ -LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER; - -COMMENT ON FUNCTION "public"."table_msg"(a_table_name varchar) -IS '获得表信息'; \ No newline at end of file diff --git a/thinkphp/library/think/db/exception/BindParamException.php b/thinkphp/library/think/db/exception/BindParamException.php deleted file mode 100644 index dce0c7bfc..000000000 --- a/thinkphp/library/think/db/exception/BindParamException.php +++ /dev/null @@ -1,36 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\db\exception; - -use think\exception\DbException; - -/** - * PDO参数绑定异常 - */ -class BindParamException extends DbException -{ - - /** - * BindParamException constructor. - * @access public - * @param string $message - * @param array $config - * @param string $sql - * @param array $bind - * @param int $code - */ - public function __construct($message, $config, $sql, $bind, $code = 10502) - { - $this->setData('Bind Param', $bind); - parent::__construct($message, $config, $sql, $code); - } -} diff --git a/thinkphp/library/think/db/exception/DataNotFoundException.php b/thinkphp/library/think/db/exception/DataNotFoundException.php deleted file mode 100644 index 883e333e3..000000000 --- a/thinkphp/library/think/db/exception/DataNotFoundException.php +++ /dev/null @@ -1,44 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\db\exception; - -use think\exception\DbException; - -class DataNotFoundException extends DbException -{ - protected $table; - - /** - * DbException constructor. - * @access public - * @param string $message - * @param string $table - * @param array $config - */ - public function __construct($message, $table = '', array $config = []) - { - $this->message = $message; - $this->table = $table; - - $this->setData('Database Config', $config); - } - - /** - * 获取数据表名 - * @access public - * @return string - */ - public function getTable() - { - return $this->table; - } -} diff --git a/thinkphp/library/think/db/exception/ModelNotFoundException.php b/thinkphp/library/think/db/exception/ModelNotFoundException.php deleted file mode 100644 index ae52baf3b..000000000 --- a/thinkphp/library/think/db/exception/ModelNotFoundException.php +++ /dev/null @@ -1,45 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\db\exception; - -use think\exception\DbException; - -class ModelNotFoundException extends DbException -{ - protected $model; - - /** - * 构造方法 - * @access public - * @param string $message - * @param string $model - * @param array $config - */ - public function __construct($message, $model = '', array $config = []) - { - $this->message = $message; - $this->model = $model; - - $this->setData('Database Config', $config); - } - - /** - * 获取模型类名 - * @access public - * @return string - */ - public function getModel() - { - return $this->model; - } - -} diff --git a/thinkphp/library/think/debug/Console.php b/thinkphp/library/think/debug/Console.php deleted file mode 100644 index dd063c1c3..000000000 --- a/thinkphp/library/think/debug/Console.php +++ /dev/null @@ -1,156 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\debug; - -use think\Container; -use think\Db; -use think\Response; - -/** - * 浏览器调试输出 - */ -class Console -{ - protected $config = [ - 'tabs' => ['base' => '基本', 'file' => '文件', 'info' => '流程', 'notice|error' => '错误', 'sql' => 'SQL', 'debug|log' => '调试'], - ]; - - // 实例化并传入参数 - public function __construct($config = []) - { - if (is_array($config)) { - $this->config = array_merge($this->config, $config); - } - } - - /** - * 调试输出接口 - * @access public - * @param Response $response Response对象 - * @param array $log 日志信息 - * @return bool - */ - public function output(Response $response, array $log = []) - { - $request = Container::get('request'); - $contentType = $response->getHeader('Content-Type'); - $accept = $request->header('accept'); - if (strpos($accept, 'application/json') === 0 || $request->isAjax()) { - return false; - } elseif (!empty($contentType) && strpos($contentType, 'html') === false) { - return false; - } - // 获取基本信息 - $runtime = number_format(microtime(true) - Container::get('app')->getBeginTime(), 10); - $reqs = $runtime > 0 ? number_format(1 / $runtime, 2) : '∞'; - $mem = number_format((memory_get_usage() - Container::get('app')->getBeginMem()) / 1024, 2); - - if (isset($_SERVER['HTTP_HOST'])) { - $uri = $_SERVER['SERVER_PROTOCOL'] . ' ' . $_SERVER['REQUEST_METHOD'] . ' : ' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; - } else { - $uri = 'cmd:' . implode(' ', $_SERVER['argv']); - } - - // 页面Trace信息 - $base = [ - '请求信息' => date('Y-m-d H:i:s', $_SERVER['REQUEST_TIME']) . ' ' . $uri, - '运行时间' => number_format($runtime, 6) . 's [ 吞吐率:' . $reqs . 'req/s ] 内存消耗:' . $mem . 'kb 文件加载:' . count(get_included_files()), - '查询信息' => Db::$queryTimes . ' queries ' . Db::$executeTimes . ' writes ', - '缓存信息' => Container::get('cache')->getReadTimes() . ' reads,' . Container::get('cache')->getWriteTimes() . ' writes', - ]; - - if (session_id()) { - $base['会话信息'] = 'SESSION_ID=' . session_id(); - } - - $info = Container::get('debug')->getFile(true); - - // 页面Trace信息 - $trace = []; - foreach ($this->config['tabs'] as $name => $title) { - $name = strtolower($name); - switch ($name) { - case 'base': // 基本信息 - $trace[$title] = $base; - break; - case 'file': // 文件信息 - $trace[$title] = $info; - break; - default: // 调试信息 - if (strpos($name, '|')) { - // 多组信息 - $names = explode('|', $name); - $result = []; - foreach ($names as $name) { - $result = array_merge($result, isset($log[$name]) ? $log[$name] : []); - } - $trace[$title] = $result; - } else { - $trace[$title] = isset($log[$name]) ? $log[$name] : ''; - } - } - } - - //输出到控制台 - $lines = ''; - foreach ($trace as $type => $msg) { - $lines .= $this->console($type, $msg); - } - $js = << -{$lines} - -JS; - return $js; - } - - protected function console($type, $msg) - { - $type = strtolower($type); - $trace_tabs = array_values($this->config['tabs']); - $line[] = ($type == $trace_tabs[0] || '调试' == $type || '错误' == $type) - ? "console.group('{$type}');" - : "console.groupCollapsed('{$type}');"; - - foreach ((array) $msg as $key => $m) { - switch ($type) { - case '调试': - $var_type = gettype($m); - if (in_array($var_type, ['array', 'string'])) { - $line[] = "console.log(" . json_encode($m) . ");"; - } else { - $line[] = "console.log(" . json_encode(var_export($m, 1)) . ");"; - } - break; - case '错误': - $msg = str_replace("\n", '\n', addslashes(is_scalar($m) ? $m : json_encode($m))); - $style = 'color:#F4006B;font-size:14px;'; - $line[] = "console.error(\"%c{$msg}\", \"{$style}\");"; - break; - case 'sql': - $msg = str_replace("\n", '\n', addslashes($m)); - $style = "color:#009bb4;"; - $line[] = "console.log(\"%c{$msg}\", \"{$style}\");"; - break; - default: - $m = is_string($key) ? $key . ' ' . $m : $key + 1 . ' ' . $m; - $msg = json_encode($m); - $line[] = "console.log({$msg});"; - break; - } - } - $line[] = "console.groupEnd();"; - return implode(PHP_EOL, $line); - } - -} diff --git a/thinkphp/library/think/debug/Html.php b/thinkphp/library/think/debug/Html.php deleted file mode 100644 index 85f354af0..000000000 --- a/thinkphp/library/think/debug/Html.php +++ /dev/null @@ -1,106 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\debug; - -use think\Container; -use think\Db; -use think\Response; - -/** - * 页面Trace调试 - */ -class Html -{ - protected $config = [ - 'file' => '', - 'tabs' => ['base' => '基本', 'file' => '文件', 'info' => '流程', 'notice|error' => '错误', 'sql' => 'SQL', 'debug|log' => '调试'], - ]; - - // 实例化并传入参数 - public function __construct(array $config = []) - { - $this->config = array_merge($this->config, $config); - } - - /** - * 调试输出接口 - * @access public - * @param Response $response Response对象 - * @param array $log 日志信息 - * @return bool - */ - public function output(Response $response, array $log = []) - { - $request = Container::get('request'); - $contentType = $response->getHeader('Content-Type'); - $accept = $request->header('accept'); - if (strpos($accept, 'application/json') === 0 || $request->isAjax()) { - return false; - } elseif (!empty($contentType) && strpos($contentType, 'html') === false) { - return false; - } - // 获取基本信息 - $runtime = number_format(microtime(true) - Container::get('app')->getBeginTime(), 10, '.', ''); - $reqs = $runtime > 0 ? number_format(1 / $runtime, 2) : '∞'; - $mem = number_format((memory_get_usage() - Container::get('app')->getBeginMem()) / 1024, 2); - - // 页面Trace信息 - if (isset($_SERVER['HTTP_HOST'])) { - $uri = $_SERVER['SERVER_PROTOCOL'] . ' ' . $_SERVER['REQUEST_METHOD'] . ' : ' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; - } else { - $uri = 'cmd:' . implode(' ', $_SERVER['argv']); - } - $base = [ - '请求信息' => date('Y-m-d H:i:s', $_SERVER['REQUEST_TIME']) . ' ' . $uri, - '运行时间' => number_format($runtime, 6) . 's [ 吞吐率:' . $reqs . 'req/s ] 内存消耗:' . $mem . 'kb 文件加载:' . count(get_included_files()), - '查询信息' => Db::$queryTimes . ' queries ' . Db::$executeTimes . ' writes ', - '缓存信息' => Container::get('cache')->getReadTimes() . ' reads,' . Container::get('cache')->getWriteTimes() . ' writes', - ]; - - if (session_id()) { - $base['会话信息'] = 'SESSION_ID=' . session_id(); - } - - $info = Container::get('debug')->getFile(true); - - // 页面Trace信息 - $trace = []; - foreach ($this->config['tabs'] as $name => $title) { - $name = strtolower($name); - switch ($name) { - case 'base': // 基本信息 - $trace[$title] = $base; - break; - case 'file': // 文件信息 - $trace[$title] = $info; - break; - default: // 调试信息 - if (strpos($name, '|')) { - // 多组信息 - $names = explode('|', $name); - $result = []; - foreach ($names as $name) { - $result = array_merge($result, isset($log[$name]) ? $log[$name] : []); - } - $trace[$title] = $result; - } else { - $trace[$title] = isset($log[$name]) ? $log[$name] : ''; - } - } - } - // 调用Trace页面模板 - ob_start(); - include $this->config['file']; - return ob_get_clean(); - } - -} diff --git a/thinkphp/library/think/exception/ClassNotFoundException.php b/thinkphp/library/think/exception/ClassNotFoundException.php deleted file mode 100644 index eb22e7301..000000000 --- a/thinkphp/library/think/exception/ClassNotFoundException.php +++ /dev/null @@ -1,32 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\exception; - -class ClassNotFoundException extends \RuntimeException -{ - protected $class; - public function __construct($message, $class = '') - { - $this->message = $message; - $this->class = $class; - } - - /** - * 获取类名 - * @access public - * @return string - */ - public function getClass() - { - return $this->class; - } -} diff --git a/thinkphp/library/think/exception/DbException.php b/thinkphp/library/think/exception/DbException.php deleted file mode 100644 index 0f504257c..000000000 --- a/thinkphp/library/think/exception/DbException.php +++ /dev/null @@ -1,44 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\exception; - -use think\Exception; - -/** - * Database相关异常处理类 - */ -class DbException extends Exception -{ - /** - * DbException constructor. - * @access public - * @param string $message - * @param array $config - * @param string $sql - * @param int $code - */ - public function __construct($message, array $config, $sql, $code = 10500) - { - $this->message = $message; - $this->code = $code; - - $this->setData('Database Status', [ - 'Error Code' => $code, - 'Error Message' => $message, - 'Error SQL' => $sql, - ]); - - unset($config['username'], $config['password']); - $this->setData('Database Config', $config); - } - -} diff --git a/thinkphp/library/think/exception/ErrorException.php b/thinkphp/library/think/exception/ErrorException.php deleted file mode 100644 index 3143b8f70..000000000 --- a/thinkphp/library/think/exception/ErrorException.php +++ /dev/null @@ -1,56 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\exception; - -use think\Exception; - -/** - * ThinkPHP错误异常 - * 主要用于封装 set_error_handler 和 register_shutdown_function 得到的错误 - * 除开从 think\Exception 继承的功能 - * 其他和PHP系统\ErrorException功能基本一样 - */ -class ErrorException extends Exception -{ - /** - * 用于保存错误级别 - * @var integer - */ - protected $severity; - - /** - * 错误异常构造函数 - * @access public - * @param integer $severity 错误级别 - * @param string $message 错误详细信息 - * @param string $file 出错文件路径 - * @param integer $line 出错行号 - */ - public function __construct($severity, $message, $file, $line) - { - $this->severity = $severity; - $this->message = $message; - $this->file = $file; - $this->line = $line; - $this->code = 0; - } - - /** - * 获取错误级别 - * @access public - * @return integer 错误级别 - */ - final public function getSeverity() - { - return $this->severity; - } -} diff --git a/thinkphp/library/think/exception/Handle.php b/thinkphp/library/think/exception/Handle.php deleted file mode 100644 index 02c85ec13..000000000 --- a/thinkphp/library/think/exception/Handle.php +++ /dev/null @@ -1,306 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\exception; - -use Exception; -use think\console\Output; -use think\Container; -use think\Response; - -class Handle -{ - protected $render; - protected $ignoreReport = [ - '\\think\\exception\\HttpException', - ]; - - public function setRender($render) - { - $this->render = $render; - } - - /** - * Report or log an exception. - * - * @access public - * @param \Exception $exception - * @return void - */ - public function report(Exception $exception) - { - if (!$this->isIgnoreReport($exception)) { - // 收集异常数据 - if (Container::get('app')->isDebug()) { - $data = [ - 'file' => $exception->getFile(), - 'line' => $exception->getLine(), - 'message' => $this->getMessage($exception), - 'code' => $this->getCode($exception), - ]; - $log = "[{$data['code']}]{$data['message']}[{$data['file']}:{$data['line']}]"; - } else { - $data = [ - 'code' => $this->getCode($exception), - 'message' => $this->getMessage($exception), - ]; - $log = "[{$data['code']}]{$data['message']}"; - } - - if (Container::get('app')->config('log.record_trace')) { - $log .= "\r\n" . $exception->getTraceAsString(); - } - - Container::get('log')->record($log, 'error'); - } - } - - protected function isIgnoreReport(Exception $exception) - { - foreach ($this->ignoreReport as $class) { - if ($exception instanceof $class) { - return true; - } - } - - return false; - } - - /** - * Render an exception into an HTTP response. - * - * @access public - * @param \Exception $e - * @return Response - */ - public function render(Exception $e) - { - if ($this->render && $this->render instanceof \Closure) { - $result = call_user_func_array($this->render, [$e]); - - if ($result) { - return $result; - } - } - - if ($e instanceof HttpException) { - return $this->renderHttpException($e); - } else { - return $this->convertExceptionToResponse($e); - } - } - - /** - * @access public - * @param Output $output - * @param Exception $e - */ - public function renderForConsole(Output $output, Exception $e) - { - if (Container::get('app')->isDebug()) { - $output->setVerbosity(Output::VERBOSITY_DEBUG); - } - - $output->renderException($e); - } - - /** - * @access protected - * @param HttpException $e - * @return Response - */ - protected function renderHttpException(HttpException $e) - { - $status = $e->getStatusCode(); - $template = Container::get('app')->config('http_exception_template'); - - if (!Container::get('app')->isDebug() && !empty($template[$status])) { - return Response::create($template[$status], 'view', $status)->assign(['e' => $e]); - } else { - return $this->convertExceptionToResponse($e); - } - } - - /** - * @access protected - * @param Exception $exception - * @return Response - */ - protected function convertExceptionToResponse(Exception $exception) - { - // 收集异常数据 - if (Container::get('app')->isDebug()) { - // 调试模式,获取详细的错误信息 - $data = [ - 'name' => get_class($exception), - 'file' => $exception->getFile(), - 'line' => $exception->getLine(), - 'message' => $this->getMessage($exception), - 'trace' => $exception->getTrace(), - 'code' => $this->getCode($exception), - 'source' => $this->getSourceCode($exception), - 'datas' => $this->getExtendData($exception), - 'tables' => [ - 'GET Data' => $_GET, - 'POST Data' => $_POST, - 'Files' => $_FILES, - 'Cookies' => $_COOKIE, - 'Session' => isset($_SESSION) ? $_SESSION : [], - 'Server/Request Data' => $_SERVER, - 'Environment Variables' => $_ENV, - 'ThinkPHP Constants' => $this->getConst(), - ], - ]; - } else { - // 部署模式仅显示 Code 和 Message - $data = [ - 'code' => $this->getCode($exception), - 'message' => $this->getMessage($exception), - ]; - - if (!Container::get('app')->config('show_error_msg')) { - // 不显示详细错误信息 - $data['message'] = Container::get('app')->config('error_message'); - } - } - - //保留一层 - while (ob_get_level() > 1) { - ob_end_clean(); - } - - $data['echo'] = ob_get_clean(); - - ob_start(); - extract($data); - include Container::get('app')->config('exception_tmpl'); - - // 获取并清空缓存 - $content = ob_get_clean(); - $response = Response::create($content, 'html'); - - if ($exception instanceof HttpException) { - $statusCode = $exception->getStatusCode(); - $response->header($exception->getHeaders()); - } - - if (!isset($statusCode)) { - $statusCode = 500; - } - $response->code($statusCode); - - return $response; - } - - /** - * 获取错误编码 - * ErrorException则使用错误级别作为错误编码 - * @access protected - * @param \Exception $exception - * @return integer 错误编码 - */ - protected function getCode(Exception $exception) - { - $code = $exception->getCode(); - - if (!$code && $exception instanceof ErrorException) { - $code = $exception->getSeverity(); - } - - return $code; - } - - /** - * 获取错误信息 - * ErrorException则使用错误级别作为错误编码 - * @access protected - * @param \Exception $exception - * @return string 错误信息 - */ - protected function getMessage(Exception $exception) - { - $message = $exception->getMessage(); - - if (PHP_SAPI == 'cli') { - return $message; - } - - $lang = Container::get('lang'); - - if (strpos($message, ':')) { - $name = strstr($message, ':', true); - $message = $lang->has($name) ? $lang->get($name) . strstr($message, ':') : $message; - } elseif (strpos($message, ',')) { - $name = strstr($message, ',', true); - $message = $lang->has($name) ? $lang->get($name) . ':' . substr(strstr($message, ','), 1) : $message; - } elseif ($lang->has($message)) { - $message = $lang->get($message); - } - - return $message; - } - - /** - * 获取出错文件内容 - * 获取错误的前9行和后9行 - * @access protected - * @param \Exception $exception - * @return array 错误文件内容 - */ - protected function getSourceCode(Exception $exception) - { - // 读取前9行和后9行 - $line = $exception->getLine(); - $first = ($line - 9 > 0) ? $line - 9 : 1; - - try { - $contents = file($exception->getFile()); - $source = [ - 'first' => $first, - 'source' => array_slice($contents, $first - 1, 19), - ]; - } catch (Exception $e) { - $source = []; - } - - return $source; - } - - /** - * 获取异常扩展信息 - * 用于非调试模式html返回类型显示 - * @access protected - * @param \Exception $exception - * @return array 异常类定义的扩展数据 - */ - protected function getExtendData(Exception $exception) - { - $data = []; - - if ($exception instanceof \think\Exception) { - $data = $exception->getData(); - } - - return $data; - } - - /** - * 获取常量列表 - * @access private - * @return array 常量列表 - */ - private static function getConst() - { - $const = get_defined_constants(true); - - return isset($const['user']) ? $const['user'] : []; - } -} diff --git a/thinkphp/library/think/exception/HttpException.php b/thinkphp/library/think/exception/HttpException.php deleted file mode 100644 index 01a27fc23..000000000 --- a/thinkphp/library/think/exception/HttpException.php +++ /dev/null @@ -1,36 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\exception; - -class HttpException extends \RuntimeException -{ - private $statusCode; - private $headers; - - public function __construct($statusCode, $message = null, \Exception $previous = null, array $headers = [], $code = 0) - { - $this->statusCode = $statusCode; - $this->headers = $headers; - - parent::__construct($message, $code, $previous); - } - - public function getStatusCode() - { - return $this->statusCode; - } - - public function getHeaders() - { - return $this->headers; - } -} diff --git a/thinkphp/library/think/exception/HttpResponseException.php b/thinkphp/library/think/exception/HttpResponseException.php deleted file mode 100644 index 52972867b..000000000 --- a/thinkphp/library/think/exception/HttpResponseException.php +++ /dev/null @@ -1,33 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\exception; - -use think\Response; - -class HttpResponseException extends \RuntimeException -{ - /** - * @var Response - */ - protected $response; - - public function __construct(Response $response) - { - $this->response = $response; - } - - public function getResponse() - { - return $this->response; - } - -} diff --git a/thinkphp/library/think/exception/PDOException.php b/thinkphp/library/think/exception/PDOException.php deleted file mode 100644 index 25240b680..000000000 --- a/thinkphp/library/think/exception/PDOException.php +++ /dev/null @@ -1,40 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\exception; - -/** - * PDO异常处理类 - * 重新封装了系统的\PDOException类 - */ -class PDOException extends DbException -{ - /** - * PDOException constructor. - * @access public - * @param \PDOException $exception - * @param array $config - * @param string $sql - * @param int $code - */ - public function __construct(\PDOException $exception, array $config, $sql, $code = 10501) - { - $error = $exception->errorInfo; - - $this->setData('PDO Error Info', [ - 'SQLSTATE' => $error[0], - 'Driver Error Code' => isset($error[1]) ? $error[1] : 0, - 'Driver Error Message' => isset($error[2]) ? $error[2] : '', - ]); - - parent::__construct($exception->getMessage(), $config, $sql, $code); - } -} diff --git a/thinkphp/library/think/exception/RouteNotFoundException.php b/thinkphp/library/think/exception/RouteNotFoundException.php deleted file mode 100644 index d22e3a637..000000000 --- a/thinkphp/library/think/exception/RouteNotFoundException.php +++ /dev/null @@ -1,22 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\exception; - -class RouteNotFoundException extends HttpException -{ - - public function __construct() - { - parent::__construct(404, 'Route Not Found'); - } - -} diff --git a/thinkphp/library/think/exception/TemplateNotFoundException.php b/thinkphp/library/think/exception/TemplateNotFoundException.php deleted file mode 100644 index 420206931..000000000 --- a/thinkphp/library/think/exception/TemplateNotFoundException.php +++ /dev/null @@ -1,33 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\exception; - -class TemplateNotFoundException extends \RuntimeException -{ - protected $template; - - public function __construct($message, $template = '') - { - $this->message = $message; - $this->template = $template; - } - - /** - * 获取模板文件 - * @access public - * @return string - */ - public function getTemplate() - { - return $this->template; - } -} diff --git a/thinkphp/library/think/exception/ThrowableError.php b/thinkphp/library/think/exception/ThrowableError.php deleted file mode 100644 index 87b6b9d74..000000000 --- a/thinkphp/library/think/exception/ThrowableError.php +++ /dev/null @@ -1,47 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\exception; - -class ThrowableError extends \ErrorException -{ - public function __construct(\Throwable $e) - { - - if ($e instanceof \ParseError) { - $message = 'Parse error: ' . $e->getMessage(); - $severity = E_PARSE; - } elseif ($e instanceof \TypeError) { - $message = 'Type error: ' . $e->getMessage(); - $severity = E_RECOVERABLE_ERROR; - } else { - $message = 'Fatal error: ' . $e->getMessage(); - $severity = E_ERROR; - } - - parent::__construct( - $message, - $e->getCode(), - $severity, - $e->getFile(), - $e->getLine() - ); - - $this->setTrace($e->getTrace()); - } - - protected function setTrace($trace) - { - $traceReflector = new \ReflectionProperty('Exception', 'trace'); - $traceReflector->setAccessible(true); - $traceReflector->setValue($this, $trace); - } -} diff --git a/thinkphp/library/think/exception/ValidateException.php b/thinkphp/library/think/exception/ValidateException.php deleted file mode 100644 index b3684169c..000000000 --- a/thinkphp/library/think/exception/ValidateException.php +++ /dev/null @@ -1,33 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\exception; - -class ValidateException extends \RuntimeException -{ - protected $error; - - public function __construct($error) - { - $this->error = $error; - $this->message = is_array($error) ? implode("\n\r", $error) : $error; - } - - /** - * 获取验证错误信息 - * @access public - * @return array|string - */ - public function getError() - { - return $this->error; - } -} diff --git a/thinkphp/library/think/facade/App.php b/thinkphp/library/think/facade/App.php deleted file mode 100644 index 37d995106..000000000 --- a/thinkphp/library/think/facade/App.php +++ /dev/null @@ -1,54 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\facade; - -use think\Facade; - -/** - * @see \think\App - * @mixin \think\App - * @method \think\App bind(string $bind) static 绑定模块或者控制器 - * @method void initialize() static 初始化应用 - * @method void init(string $module='') static 初始化模块 - * @method \think\Response run() static 执行应用 - * @method \think\App dispatch(\think\route\Dispatch $dispatch) static 设置当前请求的调度信息 - * @method void log(mixed $log, string $type = 'info') static 记录调试信息 - * @method mixed config(string $name='') static 获取配置参数 - * @method \think\route\Dispatch routeCheck() static URL路由检测(根据PATH_INFO) - * @method \think\App routeMust(bool $must = false) static 设置应用的路由检测机制 - * @method \think\Model model(string $name = '', string $layer = 'model', bool $appendSuffix = false, string $common = 'common') static 实例化模型 - * @method object controller(string $name, string $layer = 'controller', bool $appendSuffix = false, string $empty = '') static 实例化控制器 - * @method \think\Validate validate(string $name = '', string $layer = 'validate', bool $appendSuffix = false, string $common = 'common') static 实例化验证器类 - * @method \think\db\Query db(mixed $config = [], mixed $name = false) static 数据库初始化 - * @method mixed action(string $url, $vars = [], $layer = 'controller', $appendSuffix = false) static 调用模块的操作方法 - * @method string parseClass(string $module, string $layer, string $name, bool $appendSuffix = false) static 解析应用类的类名 - * @method string version() static 获取框架版本 - * @method bool isDebug() static 是否为调试模式 - * @method string getModulePath() static 获取当前模块路径 - * @method void setModulePath(string $path) static 设置当前模块路径 - * @method string getRootPath() static 获取应用根目录 - * @method string getAppPath() static 获取应用类库目录 - * @method string getRuntimePath() static 获取应用运行时目录 - * @method string getThinkPath() static 获取核心框架目录 - * @method string getRoutePath() static 获取路由目录 - * @method string getConfigPath() static 获取应用配置目录 - * @method string getConfigExt() static 获取配置后缀 - * @method string setNamespace(string $namespace) static 设置应用类库命名空间 - * @method string getNamespace() static 获取应用类库命名空间 - * @method string getSuffix() static 是否启用类库后缀 - * @method float getBeginTime() static 获取应用开启时间 - * @method integer getBeginMem() static 获取应用初始内存占用 - * @method \think\Container container() static 获取容器实例 - */ -class App extends Facade -{ -} diff --git a/thinkphp/library/think/facade/Build.php b/thinkphp/library/think/facade/Build.php deleted file mode 100644 index 465962367..000000000 --- a/thinkphp/library/think/facade/Build.php +++ /dev/null @@ -1,24 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\facade; - -use think\Facade; - -/** - * @see \think\Build - * @mixin \think\Build - * @method void run(array $build = [], string $namespace = 'app', bool $suffix = false) static 根据传入的build资料创建目录和文件 - * @method void module(string $module = '', array $list = [], string $namespace = 'app', bool $suffix = false) static 创建模块 - */ -class Build extends Facade -{ -} diff --git a/thinkphp/library/think/facade/Cache.php b/thinkphp/library/think/facade/Cache.php deleted file mode 100644 index 3011d6b3a..000000000 --- a/thinkphp/library/think/facade/Cache.php +++ /dev/null @@ -1,36 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\facade; - -use think\Facade; - -/** - * @see \think\Cache - * @mixin \think\Cache - * @method \think\cache\Driver connect(array $options = [], mixed $name = false) static 连接缓存 - * @method \think\cache\Driver init(array $options = []) static 初始化缓存 - * @method \think\cache\Driver store(string $name = '') static 切换缓存类型 - * @method bool has(string $name) static 判断缓存是否存在 - * @method mixed get(string $name, mixed $default = false) static 读取缓存 - * @method mixed pull(string $name) static 读取缓存并删除 - * @method mixed set(string $name, mixed $value, int $expire = null) static 设置缓存 - * @method mixed remember(string $name, mixed $value, int $expire = null) static 如果不存在则写入缓存 - * @method mixed inc(string $name, int $step = 1) static 自增缓存(针对数值缓存) - * @method mixed dec(string $name, int $step = 1) static 自减缓存(针对数值缓存) - * @method bool rm(string $name) static 删除缓存 - * @method bool clear(string $tag = null) static 清除缓存 - * @method mixed tag(string $name, mixed $keys = null, bool $overlay = false) static 缓存标签 - * @method object handler() static 返回句柄对象,可执行其它高级方法 - */ -class Cache extends Facade -{ -} diff --git a/thinkphp/library/think/facade/Config.php b/thinkphp/library/think/facade/Config.php deleted file mode 100644 index 3332413b8..000000000 --- a/thinkphp/library/think/facade/Config.php +++ /dev/null @@ -1,27 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\facade; - -use think\Facade; - -/** - * @see \think\Config - * @mixin \think\Config - * @method bool has(string $name) static 检测配置是否存在 - * @method array pull(string $name) static 获取一级配置 - * @method mixed get(string $name) static 获取配置参数 - * @method mixed set(string $name, mixed $value = null) static 设置配置参数 - * @method array reset(string $prefix ='') static 重置配置参数 - */ -class Config extends Facade -{ -} diff --git a/thinkphp/library/think/facade/Cookie.php b/thinkphp/library/think/facade/Cookie.php deleted file mode 100644 index 18efbde0c..000000000 --- a/thinkphp/library/think/facade/Cookie.php +++ /dev/null @@ -1,30 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\facade; - -use think\Facade; - -/** - * @see \think\Cookie - * @mixin \think\Cookie - * @method void init(array $config = []) static 初始化 - * @method bool has(string $name,string $prefix = null) static 判断Cookie数据 - * @method mixed prefix(string $prefix = '') static 设置或者获取cookie作用域(前缀) - * @method mixed get(string $name,string $prefix = null) static Cookie获取 - * @method mixed set(string $name, mixed $value = null, mixed $option = null) static 设置Cookie - * @method void forever(string $name, mixed $value = null, mixed $option = null) static 永久保存Cookie数据 - * @method void delete(string $name, string $prefix = null) static Cookie删除 - * @method void clear($prefix = null) static Cookie清空 - */ -class Cookie extends Facade -{ -} diff --git a/thinkphp/library/think/facade/Debug.php b/thinkphp/library/think/facade/Debug.php deleted file mode 100644 index ac482a41e..000000000 --- a/thinkphp/library/think/facade/Debug.php +++ /dev/null @@ -1,31 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\facade; - -use think\Facade; - -/** - * @see \think\Debug - * @mixin \think\Debug - * @method void remark(string $name, mixed $value = '') static 记录时间(微秒)和内存使用情况 - * @method int getRangeTime(string $start, string $end, mixed $dec = 6) static 统计某个区间的时间(微秒)使用情况 - * @method int getUseTime(int $dec = 6) static 统计从开始到统计时的时间(微秒)使用情况 - * @method string getThroughputRate(string $start, string $end, mixed $dec = 6) static 获取当前访问的吞吐率情况 - * @method string getRangeMem(string $start, string $end, mixed $dec = 2) static 记录区间的内存使用情况 - * @method int getUseMem(int $dec = 2) static 统计从开始到统计时的内存使用情况 - * @method string getMemPeak(string $start, string $end, mixed $dec = 2) static 统计区间的内存峰值情况 - * @method mixed getFile(bool $detail = false) static 获取文件加载信息 - * @method mixed dump(mixed $var, bool $echo = true, string $label = null, int $flags = ENT_SUBSTITUTE) static 浏览器友好的变量输出 - */ -class Debug extends Facade -{ -} diff --git a/thinkphp/library/think/facade/Env.php b/thinkphp/library/think/facade/Env.php deleted file mode 100644 index d430d683f..000000000 --- a/thinkphp/library/think/facade/Env.php +++ /dev/null @@ -1,25 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\facade; - -use think\Facade; - -/** - * @see \think\Env - * @mixin \think\Env - * @method void load(string $file) static 读取环境变量定义文件 - * @method mixed get(string $name = null, mixed $default = null) static 获取环境变量值 - * @method void set(mixed $env, string $value = null) static 设置环境变量值 - */ -class Env extends Facade -{ -} diff --git a/thinkphp/library/think/facade/Hook.php b/thinkphp/library/think/facade/Hook.php deleted file mode 100644 index e18f83b5d..000000000 --- a/thinkphp/library/think/facade/Hook.php +++ /dev/null @@ -1,28 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\facade; - -use think\Facade; - -/** - * @see \think\Hook - * @mixin \think\Hook - * @method \think\Hook alias(mixed $name, mixed $behavior = null) static 指定行为标识 - * @method void add(string $tag, mixed $behavior, bool $first = false) static 动态添加行为扩展到某个标签 - * @method void import(array $tags, bool $recursive = true) static 批量导入插件 - * @method array get(string $tag = '') static 获取插件信息 - * @method mixed listen(string $tag, mixed $params = null, bool $once = false) static 监听标签的行为 - * @method mixed exec(mixed $class, mixed $params = null) static 执行行为 - */ -class Hook extends Facade -{ -} diff --git a/thinkphp/library/think/facade/Lang.php b/thinkphp/library/think/facade/Lang.php deleted file mode 100644 index 3eb5d4acd..000000000 --- a/thinkphp/library/think/facade/Lang.php +++ /dev/null @@ -1,32 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\facade; - -use think\Facade; - -/** - * @see \think\Lang - * @mixin \think\Lang - * @method mixed range($range = '') static 设定当前的语言 - * @method mixed set(mixed $name, string $value = null, string $range = '') static 设置语言定义 - * @method array load(mixed $file, string $range = '') static 加载语言定义 - * @method mixed get(string $name = null, array $vars = [], string $range = '') static 获取语言定义 - * @method mixed has(string $name, string $range = '') static 获取语言定义 - * @method string detect() static 自动侦测设置获取语言选择 - * @method void saveToCookie(string $lang = null) static 设置当前语言到Cookie - * @method void setLangDetectVar(string $var) static 设置语言自动侦测的变量 - * @method void setLangCookieVar(string $var) static 设置语言的cookie保存变量 - * @method void setAllowLangList(array $list) static 设置允许的语言列表 - */ -class Lang extends Facade -{ -} diff --git a/thinkphp/library/think/facade/Log.php b/thinkphp/library/think/facade/Log.php deleted file mode 100644 index 3a1fbf88f..000000000 --- a/thinkphp/library/think/facade/Log.php +++ /dev/null @@ -1,40 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\facade; - -use think\Facade; - -/** - * @see \think\Log - * @mixin \think\Log - * @method \think\Log init(array $config = []) static 日志初始化 - * @method mixed getLog(string $type = '') static 获取日志信息 - * @method \think\Log record(mixed $msg, string $type = 'info', array $context = []) static 记录日志信息 - * @method \think\Log clear() static 清空日志信息 - * @method \think\Log key(string $key) static 当前日志记录的授权key - * @method bool check(array $config) static 检查日志写入权限 - * @method bool save() static 保存调试信息 - * @method void write(mixed $msg, string $type = 'info', bool $force = false) static 实时写入日志信息 - * @method void log(string $level,mixed $message, array $context = []) static 记录日志信息 - * @method void emergency(mixed $message, array $context = []) static 记录emergency信息 - * @method void alert(mixed $message, array $context = []) static 记录alert信息 - * @method void critical(mixed $message, array $context = []) static 记录critical信息 - * @method void error(mixed $message, array $context = []) static 记录error信息 - * @method void warning(mixed $message, array $context = []) static 记录warning信息 - * @method void notice(mixed $message, array $context = []) static 记录notice信息 - * @method void info(mixed $message, array $context = []) static 记录info信息 - * @method void debug(mixed $message, array $context = []) static 记录debug信息 - * @method void sql(mixed $message, array $context = []) static 记录sql信息 - */ -class Log extends Facade -{ -} diff --git a/thinkphp/library/think/facade/Middleware.php b/thinkphp/library/think/facade/Middleware.php deleted file mode 100644 index 468279642..000000000 --- a/thinkphp/library/think/facade/Middleware.php +++ /dev/null @@ -1,27 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\facade; - -use think\Facade; - -/** - * @see \think\Middleware - * @mixin \think\Middleware - * @method void import(array $middlewares = []) static 批量设置中间件 - * @method void add(mixed $middleware) static 添加中间件到队列 - * @method void unshift(mixed $middleware) static 添加中间件到队列开头 - * @method array all() static 获取中间件队列 - * @method \think\Response dispatch(\think\Request $request) static 执行中间件调度 - */ -class Middleware extends Facade -{ -} diff --git a/thinkphp/library/think/facade/Request.php b/thinkphp/library/think/facade/Request.php deleted file mode 100644 index 20b6429d4..000000000 --- a/thinkphp/library/think/facade/Request.php +++ /dev/null @@ -1,88 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\facade; - -use think\Facade; - -/** - * @see \think\Request - * @mixin \think\Request - * @method void hook(mixed $method, mixed $callback = null) static Hook 方法注入 - * @method \think\Request create(string $uri, string $method = 'GET', array $params = [], array $cookie = [], array $files = [], array $server = [], string $content = null) static 创建一个URL请求 - * @method mixed domain(string $domain = null) static 设置或获取当前包含协议的域名 - * @method mixed url(mixed $url = null) static 设置或获取当前完整URL - * @method mixed baseUrl(string $url = null) static 设置或获取当前URL - * @method mixed baseFile(string $file = null) static 设置或获取当前执行的文件 - * @method mixed root(string $url = null) static 设置或获取URL访问根地址 - * @method string rootUrl() static 获取URL访问根目录 - * @method string pathinfo() static 获取当前请求URL的pathinfo信息(含URL后缀) - * @method string path() static 获取当前请求URL的pathinfo信息(不含URL后缀) - * @method string ext() static 当前URL的访问后缀 - * @method float time(bool $float = false) static 获取当前请求的时间 - * @method mixed type() static 当前请求的资源类型 - * @method void mimeType(mixed $type, string $val = '') static 设置资源类型 - * @method string method(bool $method = false) static 当前的请求类型 - * @method bool isGet() static 是否为GET请求 - * @method bool isPost() static 是否为POST请求 - * @method bool isPut() static 是否为PUT请求 - * @method bool isDelete() static 是否为DELTE请求 - * @method bool isHead() static 是否为HEAD请求 - * @method bool isPatch() static 是否为PATCH请求 - * @method bool isOptions() static 是否为OPTIONS请求 - * @method bool isCli() static 是否为cli - * @method bool isCgi() static 是否为cgi - * @method mixed param(mixed $name = '', mixed $default = null, mixed $filter = '') static 获取当前请求的参数 - * @method mixed route(mixed $name = '', mixed $default = null, mixed $filter = '') static 设置获取路由参数 - * @method mixed get(mixed $name = '', mixed $default = null, mixed $filter = '') static 设置获取GET参数 - * @method mixed post(mixed $name = '', mixed $default = null, mixed $filter = '') static 设置获取POST参数 - * @method mixed put(mixed $name = '', mixed $default = null, mixed $filter = '') static 设置获取PUT参数 - * @method mixed delete(mixed $name = '', mixed $default = null, mixed $filter = '') static 设置获取DELETE参数 - * @method mixed patch(mixed $name = '', mixed $default = null, mixed $filter = '') static 设置获取PATCH参数 - * @method mixed request(mixed $name = '', mixed $default = null, mixed $filter = '') static 获取request变量 - * @method mixed session(mixed $name = '', mixed $default = null, mixed $filter = '') static 获取session数据 - * @method mixed cookie(mixed $name = '', mixed $default = null, mixed $filter = '') static 获取cookie参数 - * @method mixed server(mixed $name = '', mixed $default = null, mixed $filter = '') static 获取server参数 - * @method mixed env(mixed $name = '', mixed $default = null, mixed $filter = '') static 获取环境变量 - * @method mixed file(mixed $name = '') static 获取上传的文件信息 - * @method mixed header(mixed $name = '', mixed $default = null) static 设置或者获取当前的Header - * @method mixed input(array $data,mixed $name = '', mixed $default = null, mixed $filter = '') static 获取变量 支持过滤和默认值 - * @method mixed filter(mixed $filter = null) static 设置或获取当前的过滤规则 - * @method mixed has(string $name, string $type = 'param', bool $checkEmpty = false) static 是否存在某个请求参数 - * @method mixed only(mixed $name, string $type = 'param') static 获取指定的参数 - * @method mixed except(mixed $name, string $type = 'param') static 排除指定参数获取 - * @method bool isSsl() static 当前是否ssl - * @method bool isAjax(bool $ajax = false) static 当前是否Ajax请求 - * @method bool isPjax(bool $pjax = false) static 当前是否Pjax请求 - * @method mixed ip(int $type = 0, bool $adv = true) static 获取客户端IP地址 - * @method bool isMobile() static 检测是否使用手机访问 - * @method string scheme() static 当前URL地址中的scheme参数 - * @method string query() static 当前请求URL地址中的query参数 - * @method string host() static 当前请求的host - * @method string port() static 当前请求URL地址中的port参数 - * @method string protocol() static 当前请求 SERVER_PROTOCOL - * @method string remotePort() static 当前请求 REMOTE_PORT - * @method string contentType() static 当前请求 HTTP_CONTENT_TYPE - * @method array routeInfo(array $route = []) static 获取当前请求的路由信息 - * @method array dispatch(array $dispatch = null) static 设置或者获取当前请求的调度信息 - * @method mixed module(string $module = null) static 设置或者获取当前的模块名 - * @method mixed controller(string $controller = null) static 设置或者获取当前的控制器名 - * @method mixed action(string $action = null) static 设置或者获取当前的操作名 - * @method mixed langset(string $lang = null) static 设置或者获取当前的语言 - * @method string getContent() static 设置或者获取当前请求的content - * @method string getInput() static 获取当前请求的php://input - * @method string token(string $name = '__token__', mixed $type = 'md5') static 生成请求令牌 - * @method string cache(string $key, mixed $expire = null, array $except = [], string $tag = null) static 设置当前地址的请求缓存 - * @method string getCache() static 读取请求缓存设置 - */ -class Request extends Facade -{ -} diff --git a/thinkphp/library/think/facade/Response.php b/thinkphp/library/think/facade/Response.php deleted file mode 100644 index 4a4de7129..000000000 --- a/thinkphp/library/think/facade/Response.php +++ /dev/null @@ -1,38 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\facade; - -use think\Facade; - -/** - * @see \think\Response - * @mixin \think\Response - * @method \think\response create(mixed $data = '', string $type = '', int $code = 200, array $header = [], array $options = []) static 创建Response对象 - * @method void send() static 发送数据到客户端 - * @method \think\Response options(mixed $options = []) static 输出的参数 - * @method \think\Response data(mixed $data) static 输出数据设置 - * @method \think\Response header(mixed $name, string $value = null) static 设置响应头 - * @method \think\Response content(mixed $content) static 设置页面输出内容 - * @method \think\Response code(int $code) static 发送HTTP状态 - * @method \think\Response lastModified(string $time) static LastModified - * @method \think\Response expires(string $time) static expires - * @method \think\Response eTag(string $eTag) static eTag - * @method \think\Response cacheControl(string $cache) static 页面缓存控制 - * @method \think\Response contentType(string $contentType, string $charset = 'utf-8') static 页面输出类型 - * @method mixed getHeader(string $name) static 获取头部信息 - * @method mixed getData() static 获取原始数据 - * @method mixed getContent() static 获取输出数据 - * @method int getCode() static 获取状态码 - */ -class Response extends Facade -{ -} diff --git a/thinkphp/library/think/facade/Route.php b/thinkphp/library/think/facade/Route.php deleted file mode 100644 index c197183ba..000000000 --- a/thinkphp/library/think/facade/Route.php +++ /dev/null @@ -1,48 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\facade; - -use think\Facade; - -/** - * @see \think\Route - * @mixin \think\Route - * @method \think\route\Domain domain(mixed $name, mixed $rule = '', array $option = [], array $pattern = []) static 注册域名路由 - * @method \think\Route pattern(mixed $name, string $rule = '') static 注册变量规则 - * @method \think\Route option(mixed $name, mixed $value = '') static 注册路由参数 - * @method \think\Route bind(string $bind) static 设置路由绑定 - * @method mixed getBind(string $bind) static 读取路由绑定 - * @method \think\Route name(string $name) static 设置当前路由标识 - * @method mixed getName(string $name) static 读取路由标识 - * @method void setName(string $name) static 批量导入路由标识 - * @method void import(array $rules, string $type = '*') static 导入配置文件的路由规则 - * @method \think\route\RuleItem rule(string $rule, mixed $route, string $method = '*', array $option = [], array $pattern = []) static 注册路由规则 - * @method void rules(string $rules, string $method = '*', array $option = [], array $pattern = []) static 批量注册路由规则 - * @method \think\route\RuleGroup group(string $name, mixed $route, string $method = '*', array $option = [], array $pattern = []) static 注册路由分组 - * @method \think\route\RuleItem any(string $rule, mixed $route, array $option = [], array $pattern = []) static 注册路由 - * @method \think\route\RuleItem get(string $rule, mixed $route, array $option = [], array $pattern = []) static 注册路由 - * @method \think\route\RuleItem post(string $rule, mixed $route, array $option = [], array $pattern = []) static 注册路由 - * @method \think\route\RuleItem put(string $rule, mixed $route, array $option = [], array $pattern = []) static 注册路由 - * @method \think\route\RuleItem delete(string $rule, mixed $route, array $option = [], array $pattern = []) static 注册路由 - * @method \think\route\RuleItem patch(string $rule, mixed $route, array $option = [], array $pattern = []) static 注册路由 - * @method \think\route\Resource resource(string $rule, mixed $route, array $option = [], array $pattern = []) static 注册资源路由 - * @method \think\Route controller(string $rule, mixed $route, array $option = [], array $pattern = []) static 注册控制器路由 - * @method \think\Route alias(string $rule, mixed $route, array $option = [], array $pattern = []) static 注册别名路由 - * @method \think\Route setMethodPrefix(mixed $method, string $prefix = '') static 设置不同请求类型下面的方法前缀 - * @method \think\Route rest(string $name, array $resource = []) static rest方法定义和修改 - * @method \think\RuleItem miss(string $route, string $method = '*', array $option = []) static 注册未匹配路由规则后的处理 - * @method \think\RuleItem auto(string $route) static 注册一个自动解析的URL路由 - * @method \think\Dispatch check(string $url, string $depr = '/', bool $must = false, bool $completeMatch = false) static 检测URL路由 - */ -class Route extends Facade -{ -} diff --git a/thinkphp/library/think/facade/Session.php b/thinkphp/library/think/facade/Session.php deleted file mode 100644 index 9aad0b698..000000000 --- a/thinkphp/library/think/facade/Session.php +++ /dev/null @@ -1,37 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\facade; - -use think\Facade; - -/** - * @see \think\Session - * @mixin \think\Session - * @method void init(array $config = []) static session初始化 - * @method bool has(string $name,string $prefix = null) static 判断session数据 - * @method mixed prefix(string $prefix = '') static 设置或者获取session作用域(前缀) - * @method mixed get(string $name,string $prefix = null) static session获取 - * @method mixed pull(string $name,string $prefix = null) static session获取并删除 - * @method void push(string $key, mixed $value) static 添加数据到一个session数组 - * @method void set(string $name, mixed $value , string $prefix = null) static 设置session数据 - * @method void flash(string $name, mixed $value = null) static session设置 下一次请求有效 - * @method void flush() static 清空当前请求的session数据 - * @method void delete(string $name, string $prefix = null) static 删除session数据 - * @method void clear($prefix = null) static 清空session数据 - * @method void start() static 启动session - * @method void destroy() static 销毁session - * @method void pause() static 暂停session - * @method void regenerate(bool $delete = false) static 重新生成session_id - */ -class Session extends Facade -{ -} diff --git a/thinkphp/library/think/facade/Url.php b/thinkphp/library/think/facade/Url.php deleted file mode 100644 index db5a16f2b..000000000 --- a/thinkphp/library/think/facade/Url.php +++ /dev/null @@ -1,24 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\facade; - -use think\Facade; - -/** - * @see \think\Url - * @mixin \think\Url - * @method string build(string $url = '', mixed $vars = '', mixed $suffix = true, mixed $domain = false) static URL生成 支持路由反射 - * @method void root(string $root) static 指定当前生成URL地址的root - */ -class Url extends Facade -{ -} diff --git a/thinkphp/library/think/facade/Validate.php b/thinkphp/library/think/facade/Validate.php deleted file mode 100644 index 423446d4d..000000000 --- a/thinkphp/library/think/facade/Validate.php +++ /dev/null @@ -1,65 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\facade; - -use think\Facade; - -/** - * @see \think\Validate - * @mixin \think\Validate - * @method \think\Validate make(array $rules = [], array $message = [], array $field = []) static 创建一个验证器类 - * @method \think\Validate rule(mixed $name, mixed $rule = '') static 添加字段验证规则 - * @method void extend(string $type, mixed $callback = null) static 注册扩展验证(类型)规则 - * @method void setTypeMsg(mixed $type, string $msg = null) static 设置验证规则的默认提示信息 - * @method \think\Validate message(mixed $name, string $message = '') static 设置提示信息 - * @method \think\Validate scene(string $name) static 设置验证场景 - * @method bool hasScene(string $name) static 判断是否存在某个验证场景 - * @method \think\Validate batch(bool $batch = true) static 设置批量验证 - * @method \think\Validate only(array $fields) static 指定需要验证的字段列表 - * @method \think\Validate remove(mixed $field, mixed $rule = true) static 移除某个字段的验证规则 - * @method \think\Validate append(mixed $field, mixed $rule = null) static 追加某个字段的验证规则 - * @method bool confirm(mixed $value, mixed $rule, array $data = [], string $field = '') static 验证是否和某个字段的值一致 - * @method bool different(mixed $value, mixed $rule, array $data = []) static 验证是否和某个字段的值是否不同 - * @method bool egt(mixed $value, mixed $rule, array $data = []) static 验证是否大于等于某个值 - * @method bool gt(mixed $value, mixed $rule, array $data = []) static 验证是否大于某个值 - * @method bool elt(mixed $value, mixed $rule, array $data = []) static 验证是否小于等于某个值 - * @method bool lt(mixed $value, mixed $rule, array $data = []) static 验证是否小于某个值 - * @method bool eq(mixed $value, mixed $rule) static 验证是否等于某个值 - * @method bool must(mixed $value, mixed $rule) static 必须验证 - * @method bool is(mixed $value, mixed $rule, array $data = []) static 验证字段值是否为有效格式 - * @method bool ip(mixed $value, mixed $rule) static 验证是否有效IP - * @method bool requireIf(mixed $value, mixed $rule) static 验证某个字段等于某个值的时候必须 - * @method bool requireCallback(mixed $value, mixed $rule,array $data) static 通过回调方法验证某个字段是否必须 - * @method bool requireWith(mixed $value, mixed $rule, array $data) static 验证某个字段有值的情况下必须 - * @method bool filter(mixed $value, mixed $rule) static 使用filter_var方式验证 - * @method bool in(mixed $value, mixed $rule) static 验证是否在范围内 - * @method bool notIn(mixed $value, mixed $rule) static 验证是否不在范围内 - * @method bool between(mixed $value, mixed $rule) static between验证数据 - * @method bool notBetween(mixed $value, mixed $rule) static 使用notbetween验证数据 - * @method bool length(mixed $value, mixed $rule) static 验证数据长度 - * @method bool max(mixed $value, mixed $rule) static 验证数据最大长度 - * @method bool min(mixed $value, mixed $rule) static 验证数据最小长度 - * @method bool after(mixed $value, mixed $rule) static 验证日期 - * @method bool before(mixed $value, mixed $rule) static 验证日期 - * @method bool expire(mixed $value, mixed $rule) static 验证有效期 - * @method bool allowIp(mixed $value, mixed $rule) static 验证IP许可 - * @method bool denyIp(mixed $value, mixed $rule) static 验证IP禁用 - * @method bool regex(mixed $value, mixed $rule) static 使用正则验证数据 - * @method bool token(mixed $value, mixed $rule) static 验证表单令牌 - * @method bool dateFormat(mixed $value, mixed $rule) static 验证时间和日期是否符合指定格式 - * @method bool unique(mixed $value, mixed $rule, array $data = [], string $field = '') static 验证是否唯一 - * @method bool check(array $data, mixed $rules = [], string $scene = '') static 数据自动验证 - * @method mixed getError(mixed $value, mixed $rule) static 获取错误信息 - */ -class Validate extends Facade -{ -} diff --git a/thinkphp/library/think/facade/View.php b/thinkphp/library/think/facade/View.php deleted file mode 100644 index 0309a760f..000000000 --- a/thinkphp/library/think/facade/View.php +++ /dev/null @@ -1,31 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\facade; - -use think\Facade; - -/** - * @see \think\View - * @mixin \think\View - * @method \think\View init(mixed $engine = [], array $replace = []) static 初始化 - * @method \think\View share(mixed $name, mixed $value = '') static 模板变量静态赋值 - * @method \think\View assign(mixed $name, mixed $value = '') static 模板变量赋值 - * @method \think\View config(mixed $name, mixed $value = '') static 配置模板引擎 - * @method \think\View exists(mixed $name) static 检查模板是否存在 - * @method \think\View filter(Callable $filter) static 视图内容过滤 - * @method \think\View engine(mixed $engine = []) static 设置当前模板解析的引擎 - * @method string fetch(string $template = '', array $vars = [], array $replace = [], array $config = [], bool $renderContent = false) static 解析和获取模板内容 - * @method string display(string $content = '', array $vars = [], array $replace = [], array $config = []) static 渲染内容输出 - */ -class View extends Facade -{ -} diff --git a/thinkphp/library/think/log/driver/File.php b/thinkphp/library/think/log/driver/File.php deleted file mode 100644 index 1db14925b..000000000 --- a/thinkphp/library/think/log/driver/File.php +++ /dev/null @@ -1,163 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\log\driver; - -use think\Container; - -/** - * 本地化调试输出到文件 - */ -class File -{ - protected $config = [ - 'time_format' => ' c ', - 'single' => false, - 'file_size' => 2097152, - 'path' => '', - 'apart_level' => [], - 'max_files' => 0, - ]; - - protected $writed = []; - - // 实例化并传入参数 - public function __construct($config = []) - { - if (is_array($config)) { - $this->config = array_merge($this->config, $config); - } - - if (empty($this->config['path'])) { - $this->config['path'] = Container::get('app')->getRuntimePath() . 'log' . DIRECTORY_SEPARATOR; - } elseif (substr($this->config['path'], -1) != DIRECTORY_SEPARATOR) { - $this->config['path'] .= DIRECTORY_SEPARATOR; - } - } - - /** - * 日志写入接口 - * @access public - * @param array $log 日志信息 - * @return bool - */ - public function save(array $log = []) - { - if ($this->config['single']) { - $name = is_string($this->config['single']) ? $this->config['single'] : 'single'; - $destination = $this->config['path'] . $name . '.log'; - } else { - $cli = PHP_SAPI == 'cli' ? '_cli' : ''; - - if ($this->config['max_files']) { - $filename = date('Ymd') . $cli . '.log'; - $files = glob($this->config['path'] . '*.log'); - - try { - if (count($files) > $this->config['max_files']) { - unlink($files[0]); - } - } catch (\Exception $e) { - } - } else { - $filename = date('Ym') . DIRECTORY_SEPARATOR . date('d') . $cli . '.log'; - } - - $destination = $this->config['path'] . $filename; - } - - $path = dirname($destination); - !is_dir($path) && mkdir($path, 0755, true); - - $info = ''; - foreach ($log as $type => $val) { - $level = ''; - foreach ($val as $msg) { - if (!is_string($msg)) { - $msg = var_export($msg, true); - } - $level .= '[ ' . $type . ' ] ' . $msg . "\r\n"; - } - - if (in_array($type, $this->config['apart_level'])) { - // 独立记录的日志级别 - if ($this->config['single']) { - $filename = $path . DIRECTORY_SEPARATOR . $name . '_' . $type . '.log'; - } elseif ($this->config['max_files']) { - $filename = $path . DIRECTORY_SEPARATOR . date('Ymd') . '_' . $type . $cli . '.log'; - } else { - $filename = $path . DIRECTORY_SEPARATOR . date('d') . '_' . $type . $cli . '.log'; - } - - $this->write($level, $filename, true); - } else { - $info .= $level; - } - } - - if ($info) { - return $this->write($info, $destination); - } - - return true; - } - - /** - * 日志写入 - * @access protected - * @param array $message 日志信息 - * @param string $destination 日志文件 - * @param bool $apart 是否独立文件写入 - * @return bool - */ - protected function write($message, $destination, $apart = false) - { - // 检测日志文件大小,超过配置大小则备份日志文件重新生成 - if (is_file($destination) && floor($this->config['file_size']) <= filesize($destination)) { - try { - rename($destination, dirname($destination) . DIRECTORY_SEPARATOR . time() . '-' . basename($destination)); - } catch (\Exception $e) { - } - - $this->writed[$destination] = false; - } - - if (empty($this->writed[$destination]) && PHP_SAPI != 'cli') { - if (Container::get('app')->isDebug() && !$apart) { - // 获取基本信息 - $current_uri = $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; - $runtime = round(microtime(true) - Container::get('app')->getBeginTime(), 10); - $reqs = $runtime > 0 ? number_format(1 / $runtime, 2) : '∞'; - $time_str = ' [运行时间:' . number_format($runtime, 6) . 's][吞吐率:' . $reqs . 'req/s]'; - $memory_use = number_format((memory_get_usage() - Container::get('app')->getBeginMem()) / 1024, 2); - $memory_str = ' [内存消耗:' . $memory_use . 'kb]'; - $file_load = ' [文件加载:' . count(get_included_files()) . ']'; - $message = '[ info ] ' . $current_uri . $time_str . $memory_str . $file_load . "\r\n" . $message; - } - - $now = date($this->config['time_format']); - $ip = Container::get('request')->ip(); - $method = isset($_SERVER['REQUEST_METHOD']) ? $_SERVER['REQUEST_METHOD'] : 'CLI'; - $uri = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : ''; - $message = "---------------------------------------------------------------\r\n[{$now}] {$ip} {$method} {$uri}\r\n" . $message; - - $this->writed[$destination] = true; - } - - if (PHP_SAPI == 'cli') { - $now = date($this->config['time_format']); - $message = "[{$now}]" . $message; - } - - return error_log($message, 3, $destination); - } - -} diff --git a/thinkphp/library/think/log/driver/Socket.php b/thinkphp/library/think/log/driver/Socket.php deleted file mode 100644 index d3e717fe3..000000000 --- a/thinkphp/library/think/log/driver/Socket.php +++ /dev/null @@ -1,274 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\log\driver; - -use think\Container; - -/** - * github: https://github.com/luofei614/SocketLog - * @author luofei614 - */ -class Socket -{ - public $port = 1116; //SocketLog 服务的http的端口号 - - protected $config = [ - // socket服务器地址 - 'host' => 'localhost', - // 是否显示加载的文件列表 - 'show_included_files' => false, - // 日志强制记录到配置的client_id - 'force_client_ids' => [], - // 限制允许读取日志的client_id - 'allow_client_ids' => [], - ]; - - protected $css = [ - 'sql' => 'color:#009bb4;', - 'sql_warn' => 'color:#009bb4;font-size:14px;', - 'error' => 'color:#f4006b;font-size:14px;', - 'page' => 'color:#40e2ff;background:#171717;', - 'big' => 'font-size:20px;color:red;', - ]; - - protected $allowForceClientIds = []; //配置强制推送且被授权的client_id - - /** - * 架构函数 - * @access public - * @param array $config 缓存参数 - */ - public function __construct(array $config = []) - { - if (!empty($config)) { - $this->config = array_merge($this->config, $config); - } - } - - /** - * 调试输出接口 - * @access public - * @param array $log 日志信息 - * @return bool - */ - public function save(array $log = []) - { - if (!$this->check()) { - return false; - } - - $trace = []; - - if (Container::get('app')->isDebug()) { - $runtime = round(microtime(true) - Container::get('app')->getBeginTime(), 10); - $reqs = $runtime > 0 ? number_format(1 / $runtime, 2) : '∞'; - $time_str = ' [运行时间:' . number_format($runtime, 6) . 's][吞吐率:' . $reqs . 'req/s]'; - $memory_use = number_format((memory_get_usage() - Container::get('app')->getBeginMem()) / 1024, 2); - $memory_str = ' [内存消耗:' . $memory_use . 'kb]'; - $file_load = ' [文件加载:' . count(get_included_files()) . ']'; - - if (isset($_SERVER['HTTP_HOST'])) { - $current_uri = $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; - } else { - $current_uri = 'cmd:' . implode(' ', $_SERVER['argv']); - } - - // 基本信息 - $trace[] = [ - 'type' => 'group', - 'msg' => $current_uri . $time_str . $memory_str . $file_load, - 'css' => $this->css['page'], - ]; - } - - foreach ($log as $type => $val) { - $trace[] = [ - 'type' => 'groupCollapsed', - 'msg' => '[ ' . $type . ' ]', - 'css' => isset($this->css[$type]) ? $this->css[$type] : '', - ]; - - foreach ($val as $msg) { - if (!is_string($msg)) { - $msg = var_export($msg, true); - } - $trace[] = [ - 'type' => 'log', - 'msg' => $msg, - 'css' => '', - ]; - } - - $trace[] = [ - 'type' => 'groupEnd', - 'msg' => '', - 'css' => '', - ]; - } - - if ($this->config['show_included_files']) { - $trace[] = [ - 'type' => 'groupCollapsed', - 'msg' => '[ file ]', - 'css' => '', - ]; - - $trace[] = [ - 'type' => 'log', - 'msg' => implode("\n", get_included_files()), - 'css' => '', - ]; - - $trace[] = [ - 'type' => 'groupEnd', - 'msg' => '', - 'css' => '', - ]; - } - - $trace[] = [ - 'type' => 'groupEnd', - 'msg' => '', - 'css' => '', - ]; - - $tabid = $this->getClientArg('tabid'); - - if (!$client_id = $this->getClientArg('client_id')) { - $client_id = ''; - } - - if (!empty($this->allowForceClientIds)) { - //强制推送到多个client_id - foreach ($this->allowForceClientIds as $force_client_id) { - $client_id = $force_client_id; - $this->sendToClient($tabid, $client_id, $trace, $force_client_id); - } - } else { - $this->sendToClient($tabid, $client_id, $trace, ''); - } - - return true; - } - - /** - * 发送给指定客户端 - * @access protected - * @author Zjmainstay - * @param $tabid - * @param $client_id - * @param $logs - * @param $force_client_id - */ - protected function sendToClient($tabid, $client_id, $logs, $force_client_id) - { - $logs = [ - 'tabid' => $tabid, - 'client_id' => $client_id, - 'logs' => $logs, - 'force_client_id' => $force_client_id, - ]; - - $msg = @json_encode($logs); - $address = '/' . $client_id; //将client_id作为地址, server端通过地址判断将日志发布给谁 - - $this->send($this->config['host'], $msg, $address); - } - - protected function check() - { - $tabid = $this->getClientArg('tabid'); - - //是否记录日志的检查 - if (!$tabid && !$this->config['force_client_ids']) { - return false; - } - - //用户认证 - $allow_client_ids = $this->config['allow_client_ids']; - - if (!empty($allow_client_ids)) { - //通过数组交集得出授权强制推送的client_id - $this->allowForceClientIds = array_intersect($allow_client_ids, $this->config['force_client_ids']); - if (!$tabid && count($this->allowForceClientIds)) { - return true; - } - - $client_id = $this->getClientArg('client_id'); - if (!in_array($client_id, $allow_client_ids)) { - return false; - } - } else { - $this->allowForceClientIds = $this->config['force_client_ids']; - } - - return true; - } - - protected function getClientArg($name) - { - static $args = []; - - $key = 'HTTP_USER_AGENT'; - - if (isset($_SERVER['HTTP_SOCKETLOG'])) { - $key = 'HTTP_SOCKETLOG'; - } - - if (!isset($_SERVER[$key])) { - return; - } - - if (empty($args)) { - if (!preg_match('/SocketLog\((.*?)\)/', $_SERVER[$key], $match)) { - $args = ['tabid' => null]; - return; - } - parse_str($match[1], $args); - } - - if (isset($args[$name])) { - return $args[$name]; - } - - return; - } - - /** - * @access protected - * @param string $host - $host of socket server - * @param string $message - 发送的消息 - * @param string $address - 地址 - * @return bool - */ - protected function send($host, $message = '', $address = '/') - { - $url = 'http://' . $host . ':' . $this->port . $address; - $ch = curl_init(); - - curl_setopt($ch, CURLOPT_URL, $url); - curl_setopt($ch, CURLOPT_POST, true); - curl_setopt($ch, CURLOPT_POSTFIELDS, $message); - curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); - curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 1); - curl_setopt($ch, CURLOPT_TIMEOUT, 10); - - $headers = [ - "Content-Type: application/json;charset=UTF-8", - ]; - - curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); //设置header - - return curl_exec($ch); - } - -} diff --git a/thinkphp/library/think/log/driver/Test.php b/thinkphp/library/think/log/driver/Test.php deleted file mode 100644 index e67f74727..000000000 --- a/thinkphp/library/think/log/driver/Test.php +++ /dev/null @@ -1,30 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\log\driver; - -/** - * 模拟测试输出 - */ -class Test -{ - /** - * 日志写入接口 - * @access public - * @param array $log 日志信息 - * @return bool - */ - public function save(array $log = []) - { - return true; - } - -} diff --git a/thinkphp/library/think/model/Collection.php b/thinkphp/library/think/model/Collection.php deleted file mode 100644 index 1b6061a27..000000000 --- a/thinkphp/library/think/model/Collection.php +++ /dev/null @@ -1,84 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\model; - -use think\Collection as BaseCollection; -use think\Model; - -class Collection extends BaseCollection -{ - /** - * 延迟预载入关联查询 - * @access public - * @param mixed $relation 关联 - * @return $this - */ - public function load($relation) - { - $item = current($this->items); - $item->eagerlyResultSet($this->items, $relation); - - return $this; - } - - /** - * 设置需要隐藏的输出属性 - * @access public - * @param array $hidden 属性列表 - * @param bool $override 是否覆盖 - * @return $this - */ - public function hidden($hidden = [], $override = false) - { - $this->each(function ($model) use ($hidden, $override) { - /** @var Model $model */ - $model->hidden($hidden, $override); - }); - - return $this; - } - - /** - * 设置需要输出的属性 - * @access public - * @param array $visible - * @param bool $override 是否覆盖 - * @return $this - */ - public function visible($visible = [], $override = false) - { - $this->each(function ($model) use ($visible, $override) { - /** @var Model $model */ - $model->visible($visible, $override); - }); - - return $this; - } - - /** - * 设置需要追加的输出属性 - * @access public - * @param array $append 属性列表 - * @param bool $override 是否覆盖 - * @return $this - */ - public function append($append = [], $override = false) - { - $this->each(function ($model) use ($append, $override) { - /** @var Model $model */ - $model && $model->append($append, $override); - }); - - return $this; - } - -} diff --git a/thinkphp/library/think/model/Pivot.php b/thinkphp/library/think/model/Pivot.php deleted file mode 100644 index a3a395e3f..000000000 --- a/thinkphp/library/think/model/Pivot.php +++ /dev/null @@ -1,42 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\model; - -use think\Model; - -class Pivot extends Model -{ - - /** @var Model */ - public $parent; - - protected $autoWriteTimestamp = false; - - /** - * 架构函数 - * @access public - * @param array|object $data 数据 - * @param Model $parent 上级模型 - * @param string $table 中间数据表名 - */ - public function __construct($data = [], Model $parent = null, $table = '') - { - $this->parent = $parent; - - if (is_null($this->name)) { - $this->name = $table; - } - - parent::__construct($data); - } - -} diff --git a/thinkphp/library/think/model/Relation.php b/thinkphp/library/think/model/Relation.php deleted file mode 100644 index 315fb28da..000000000 --- a/thinkphp/library/think/model/Relation.php +++ /dev/null @@ -1,151 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\model; - -use think\db\Query; -use think\Exception; -use think\Model; - -/** - * Class Relation - * @package think\model - * - * @mixin Query - */ -abstract class Relation -{ - // 父模型对象 - protected $parent; - /** @var Model 当前关联的模型类 */ - protected $model; - /** @var Query 关联模型查询对象 */ - protected $query; - // 关联表外键 - protected $foreignKey; - // 关联表主键 - protected $localKey; - // 基础查询 - protected $baseQuery; - // 是否为自关联 - protected $selfRelation; - - /** - * 获取关联的所属模型 - * @access public - * @return Model - */ - public function getParent() - { - return $this->parent; - } - - /** - * 获取当前的关联模型类的实例 - * @access public - * @return Model - */ - public function getModel() - { - return $this->query->getModel(); - } - - /** - * 设置当前关联为自关联 - * @access public - * @param bool $self 是否自关联 - * @return $this - */ - public function selfRelation($self = true) - { - $this->selfRelation = $self; - return $this; - } - - /** - * 当前关联是否为自关联 - * @access public - * @return bool - */ - public function isSelfRelation() - { - return $this->selfRelation; - } - - /** - * 封装关联数据集 - * @access public - * @param array $resultSet 数据集 - * @return mixed - */ - protected function resultSetBuild($resultSet) - { - return (new $this->model)->toCollection($resultSet); - } - - protected function getQueryFields($model) - { - $fields = $this->query->getOptions('field'); - return $this->getRelationQueryFields($fields, $model); - } - - protected function getRelationQueryFields($fields, $model) - { - if ($fields) { - - if (is_string($fields)) { - $fields = explode(',', $fields); - } - - foreach ($fields as &$field) { - if (false === strpos($field, '.')) { - $field = $model . '.' . $field; - } - } - } else { - $fields = $model . '.*'; - } - - return $fields; - } - - protected function getQueryWhere(&$where, $relation) - { - foreach ($where as $key => $val) { - if (is_string($key)) { - $where[] = [false === strpos($key, '.') ? $relation . '.' . $key : $key, '=', $val]; - unset($where[$key]); - } - } - } - - /** - * 执行基础查询(仅执行一次) - * @access protected - * @return void - */ - protected function baseQuery() - {} - - public function __call($method, $args) - { - if ($this->query) { - // 执行基础查询 - $this->baseQuery(); - - $result = call_user_func_array([$this->query->getModel(), $method], $args); - - return $result === $this->query ? $this : $result; - } else { - throw new Exception('method not exists:' . __CLASS__ . '->' . $method); - } - } -} diff --git a/thinkphp/library/think/model/concern/Attribute.php b/thinkphp/library/think/model/concern/Attribute.php deleted file mode 100644 index c91cd835a..000000000 --- a/thinkphp/library/think/model/concern/Attribute.php +++ /dev/null @@ -1,574 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\model\concern; - -use InvalidArgumentException; -use think\Exception; -use think\Loader; -use think\model\Relation; - -trait Attribute -{ - /** - * 数据表主键 复合主键使用数组定义 - * @var string|array - */ - protected $pk = 'id'; - - /** - * 数据表字段信息 留空则自动获取 - * @var array - */ - protected $field = []; - - /** - * JSON数据表字段 - * @var array - */ - protected $json = []; - - /** - * 数据表废弃字段 - * @var array - */ - protected $disuse = []; - - /** - * 数据表只读字段 - * @var array - */ - protected $readonly = []; - - /** - * 数据表字段类型 - * @var array - */ - protected $type = []; - - /** - * 当前模型数据 - * @var array - */ - private $data = []; - - /** - * 原始数据 - * @var array - */ - private $origin = []; - - /** - * 获取模型对象的主键 - * @access public - * @return string|array - */ - public function getPk() - { - return $this->pk; - } - - /** - * 判断一个字段名是否为主键字段 - * @access public - * @param string $key 名称 - * @return bool - */ - protected function isPk($key) - { - $pk = $this->getPk(); - if (is_string($pk) && $pk == $key) { - return true; - } elseif (is_array($pk) && in_array($key, $pk)) { - return true; - } - - return false; - } - - /** - * 设置允许写入的字段 - * @access public - * @param array|string|true $field 允许写入的字段 如果为true只允许写入数据表字段 - * @return $this - */ - public function allowField($field) - { - if (is_string($field)) { - $field = explode(',', $field); - } - - $this->field = $field; - - return $this; - } - - /** - * 设置只读字段 - * @access public - * @param array|string $field 只读字段 - * @return $this - */ - public function readonly($field) - { - if (is_string($field)) { - $field = explode(',', $field); - } - - $this->readonly = $field; - - return $this; - } - - /** - * 设置数据对象值 - * @access public - * @param mixed $data 数据或者属性名 - * @param mixed $value 值 - * @return $this - */ - public function data($data, $value = null) - { - if (is_string($data)) { - $this->data[$data] = $value; - return $this; - } - - // 清空数据 - $this->data = []; - - if (is_object($data)) { - $data = get_object_vars($data); - } - - if ($this->disuse) { - // 废弃字段 - foreach ((array) $this->disuse as $key) { - if (array_key_exists($key, $data)) { - unset($data[$key]); - } - } - } - - if (true === $value) { - // 数据对象赋值 - foreach ($data as $key => $value) { - $this->setAttr($key, $value, $data); - } - } elseif (is_array($value)) { - foreach ($value as $name) { - if (isset($data[$name])) { - $this->data[$name] = $data[$name]; - } - } - } else { - $this->data = $data; - } - - return $this; - } - - /** - * 批量设置数据对象值 - * @access public - * @param mixed $data 数据 - * @param bool $set 是否需要进行数据处理 - * @return $this - */ - public function appendData($data, $set = false) - { - if ($set) { - // 进行数据处理 - foreach ($data as $key => $value) { - $this->setAttr($key, $value, $data); - } - } else { - if (is_object($data)) { - $data = get_object_vars($data); - } - - $this->data = array_merge($this->data, $data); - } - - return $this; - } - - /** - * 获取对象原始数据 如果不存在指定字段返回null - * @access public - * @param string $name 字段名 留空获取全部 - * @return mixed - */ - public function getOrigin($name = null) - { - if (is_null($name)) { - return $this->origin; - } - return array_key_exists($name, $this->origin) ? $this->origin[$name] : null; - } - - /** - * 获取对象原始数据 如果不存在指定字段返回false - * @access public - * @param string $name 字段名 留空获取全部 - * @return mixed - * @throws InvalidArgumentException - */ - public function getData($name = null) - { - if (is_null($name)) { - return $this->data; - } elseif (array_key_exists($name, $this->data)) { - return $this->data[$name]; - } elseif (array_key_exists($name, $this->relation)) { - return $this->relation[$name]; - } - throw new InvalidArgumentException('property not exists:' . static::class . '->' . $name); - } - - /** - * 获取变化的数据 并排除只读数据 - * @access public - * @return array - */ - public function getChangedData() - { - if ($this->force) { - $data = $this->data; - } else { - $data = array_udiff_assoc($this->data, $this->origin, function ($a, $b) { - if ((empty($a) || empty($b)) && $a !== $b) { - return 1; - } - - return is_object($a) || $a != $b ? 1 : 0; - }); - } - - if (!empty($this->readonly)) { - // 只读字段不允许更新 - foreach ($this->readonly as $key => $field) { - if (isset($data[$field])) { - unset($data[$field]); - } - } - } - - return $data; - } - - /** - * 修改器 设置数据对象值 - * @access public - * @param string $name 属性名 - * @param mixed $value 属性值 - * @param array $data 数据 - * @return $this - */ - public function setAttr($name, $value, $data = []) - { - if (is_null($value) && $this->autoWriteTimestamp && in_array($name, [$this->createTime, $this->updateTime])) { - // 自动写入的时间戳字段 - $value = $this->autoWriteTimestamp($name); - } else { - // 检测修改器 - $method = 'set' . Loader::parseName($name, 1) . 'Attr'; - - if (method_exists($this, $method)) { - $value = $this->$method($value, array_merge($this->data, $data)); - } elseif (isset($this->type[$name])) { - // 类型转换 - $value = $this->writeTransform($value, $this->type[$name]); - } - } - - // 设置数据对象属性 - $this->data[$name] = $value; - - return $this; - } - - /** - * 是否需要自动写入时间字段 - * @access public - * @param bool $auto - * @return $this - */ - public function isAutoWriteTimestamp($auto) - { - $this->autoWriteTimestamp = $auto; - - return $this; - } - - /** - * 自动写入时间戳 - * @access protected - * @param string $name 时间戳字段 - * @return mixed - */ - protected function autoWriteTimestamp($name) - { - if (isset($this->type[$name])) { - $type = $this->type[$name]; - - if (strpos($type, ':')) { - list($type, $param) = explode(':', $type, 2); - } - - switch ($type) { - case 'datetime': - case 'date': - $format = !empty($param) ? $param : $this->dateFormat; - $value = $this->formatDateTime(time(), $format); - break; - case 'timestamp': - case 'integer': - default: - $value = time(); - break; - } - } elseif (is_string($this->autoWriteTimestamp) && in_array(strtolower($this->autoWriteTimestamp), [ - 'datetime', - 'date', - 'timestamp', - ])) { - $value = $this->formatDateTime(time(), $this->dateFormat); - } else { - $value = $this->formatDateTime(time(), $this->dateFormat, true); - } - - return $value; - } - - /** - * 数据写入 类型转换 - * @access protected - * @param mixed $value 值 - * @param string|array $type 要转换的类型 - * @return mixed - */ - protected function writeTransform($value, $type) - { - if (is_null($value)) { - return; - } - - if (is_array($type)) { - list($type, $param) = $type; - } elseif (strpos($type, ':')) { - list($type, $param) = explode(':', $type, 2); - } - - switch ($type) { - case 'integer': - $value = (int) $value; - break; - case 'float': - if (empty($param)) { - $value = (float) $value; - } else { - $value = (float) number_format($value, $param, '.', ''); - } - break; - case 'boolean': - $value = (bool) $value; - break; - case 'timestamp': - if (!is_numeric($value)) { - $value = strtotime($value); - } - break; - case 'datetime': - $format = !empty($param) ? $param : $this->dateFormat; - $value = is_numeric($value) ? $value : strtotime($value); - $value = $this->formatDateTime($value, $format); - break; - case 'object': - if (is_object($value)) { - $value = json_encode($value, JSON_FORCE_OBJECT); - } - break; - case 'array': - $value = (array) $value; - case 'json': - $option = !empty($param) ? (int) $param : JSON_UNESCAPED_UNICODE; - $value = json_encode($value, $option); - break; - case 'serialize': - $value = serialize($value); - break; - } - - return $value; - } - - /** - * 获取器 获取数据对象的值 - * @access public - * @param string $name 名称 - * @param array $item 数据 - * @return mixed - * @throws InvalidArgumentException - */ - public function getAttr($name, &$item = null) - { - try { - $notFound = false; - $value = $this->getData($name); - } catch (InvalidArgumentException $e) { - $notFound = true; - $value = null; - } - - // 检测属性获取器 - $method = 'get' . Loader::parseName($name, 1) . 'Attr'; - - if (method_exists($this, $method)) { - if ($notFound && $relation = $this->isRelationAttr($name)) { - $modelRelation = $this->$relation(); - $value = $this->getRelationData($modelRelation); - } - - $value = $this->$method($value, $this->data); - } elseif (isset($this->type[$name])) { - // 类型转换 - $value = $this->readTransform($value, $this->type[$name]); - } elseif (in_array($name, [$this->createTime, $this->updateTime])) { - if (is_string($this->autoWriteTimestamp) && in_array(strtolower($this->autoWriteTimestamp), [ - 'datetime', - 'date', - 'timestamp', - ])) { - $value = $this->formatDateTime(strtotime($value), $this->dateFormat); - } else { - $value = $this->formatDateTime($value, $this->dateFormat); - } - } elseif ($notFound) { - $value = $this->getRelationAttribute($name, $item); - } - - return $value; - } - - /** - * 获取关联属性值 - * @access protected - * @param string $name 属性名 - * @param array $item 数据 - * @return mixed - */ - protected function getRelationAttribute($name, &$item) - { - $relation = $this->isRelationAttr($name); - - if ($relation) { - $modelRelation = $this->$relation(); - if ($modelRelation instanceof Relation) { - $value = $this->getRelationData($modelRelation); - - if ($item && method_exists($modelRelation, 'getBindAttr') && $bindAttr = $modelRelation->getBindAttr()) { - - foreach ($bindAttr as $key => $attr) { - $key = is_numeric($key) ? $attr : $key; - - if (isset($item[$key])) { - throw new Exception('bind attr has exists:' . $key); - } else { - $item[$key] = $value ? $value->getAttr($attr) : null; - } - } - - return false; - } - - // 保存关联对象值 - $this->relation[$name] = $value; - - return $value; - } - } - - throw new InvalidArgumentException('property not exists:' . static::class . '->' . $name); - } - - /** - * 数据读取 类型转换 - * @access protected - * @param mixed $value 值 - * @param string|array $type 要转换的类型 - * @return mixed - */ - protected function readTransform($value, $type) - { - if (is_null($value)) { - return; - } - - if (is_array($type)) { - list($type, $param) = $type; - } elseif (strpos($type, ':')) { - list($type, $param) = explode(':', $type, 2); - } - - switch ($type) { - case 'integer': - $value = (int) $value; - break; - case 'float': - if (empty($param)) { - $value = (float) $value; - } else { - $value = (float) number_format($value, $param, '.', ''); - } - break; - case 'boolean': - $value = (bool) $value; - break; - case 'timestamp': - if (!is_null($value)) { - $format = !empty($param) ? $param : $this->dateFormat; - $value = $this->formatDateTime($value, $format); - } - break; - case 'datetime': - if (!is_null($value)) { - $format = !empty($param) ? $param : $this->dateFormat; - $value = $this->formatDateTime(strtotime($value), $format); - } - break; - case 'json': - $value = json_decode($value, true); - break; - case 'array': - $value = empty($value) ? [] : json_decode($value, true); - break; - case 'object': - $value = empty($value) ? new \stdClass() : json_decode($value); - break; - case 'serialize': - try { - $value = unserialize($value); - } catch (\Exception $e) { - $value = null; - } - break; - default: - if (false !== strpos($type, '\\')) { - // 对象类型 - $value = new $type($value); - } - } - - return $value; - } - -} diff --git a/thinkphp/library/think/model/concern/Conversion.php b/thinkphp/library/think/model/concern/Conversion.php deleted file mode 100644 index 697e495bf..000000000 --- a/thinkphp/library/think/model/concern/Conversion.php +++ /dev/null @@ -1,276 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\model\concern; - -use think\Collection; -use think\Exception; -use think\Loader; -use think\Model; -use think\model\Collection as ModelCollection; - -/** - * 模型数据转换处理 - */ -trait Conversion -{ - /** - * 数据输出显示的属性 - * @var array - */ - protected $visible = []; - - /** - * 数据输出隐藏的属性 - * @var array - */ - protected $hidden = []; - - /** - * 数据输出需要追加的属性 - * @var array - */ - protected $append = []; - - /** - * 数据集对象名 - * @var string - */ - protected $resultSetType; - - /** - * 设置需要附加的输出属性 - * @access public - * @param array $append 属性列表 - * @param bool $override 是否覆盖 - * @return $this - */ - public function append($append = [], $override = false) - { - $this->append = $override ? $append : array_merge($this->append, $append); - - return $this; - } - - /** - * 设置附加关联对象的属性 - * @access public - * @param string $attr 关联属性 - * @param string|array $append 追加属性名 - * @return $this - * @throws Exception - */ - public function appendRelationAttr($attr, $append) - { - if (is_string($append)) { - $append = explode(',', $append); - } - - $relation = Loader::parseName($attr, 1, false); - if (isset($this->relation[$relation])) { - $model = $this->relation[$relation]; - } else { - $model = $this->getRelationData($this->$relation()); - } - - if ($model instanceof Model) { - foreach ($append as $key => $attr) { - $key = is_numeric($key) ? $attr : $key; - if (isset($this->data[$key])) { - throw new Exception('bind attr has exists:' . $key); - } else { - $this->data[$key] = $model->$attr; - } - } - } - - return $this; - } - - /** - * 设置需要隐藏的输出属性 - * @access public - * @param array $hidden 属性列表 - * @param bool $override 是否覆盖 - * @return $this - */ - public function hidden($hidden = [], $override = false) - { - $this->hidden = $override ? $hidden : array_merge($this->hidden, $hidden); - - return $this; - } - - /** - * 设置需要输出的属性 - * @access public - * @param array $visible - * @param bool $override 是否覆盖 - * @return $this - */ - public function visible($visible = [], $override = false) - { - $this->visible = $override ? $visible : array_merge($this->visible, $visible); - - return $this; - } - - /** - * 转换当前模型对象为数组 - * @access public - * @return array - */ - public function toArray() - { - $item = []; - $visible = []; - $hidden = []; - - // 合并关联数据 - $data = array_merge($this->data, $this->relation); - - // 过滤属性 - if (!empty($this->visible)) { - $array = $this->parseAttr($this->visible, $visible); - $data = array_intersect_key($data, array_flip($array)); - } elseif (!empty($this->hidden)) { - $array = $this->parseAttr($this->hidden, $hidden, false); - $data = array_diff_key($data, array_flip($array)); - } - - foreach ($data as $key => $val) { - if ($val instanceof Model || $val instanceof ModelCollection) { - // 关联模型对象 - if (isset($visible[$key])) { - $val->visible($visible[$key]); - } elseif (isset($hidden[$key])) { - $val->hidden($hidden[$key]); - } - // 关联模型对象 - $item[$key] = $val->toArray(); - } else { - // 模型属性 - $item[$key] = $this->getAttr($key); - } - } - - // 追加属性(必须定义获取器) - if (!empty($this->append)) { - foreach ($this->append as $key => $name) { - if (is_array($name)) { - // 追加关联对象属性 - $relation = $this->getAttr($key); - $item[$key] = $relation->append($name)->toArray(); - } elseif (strpos($name, '.')) { - list($key, $attr) = explode('.', $name); - // 追加关联对象属性 - $relation = $this->getAttr($key); - $item[$key] = $relation->append([$attr])->toArray(); - } else { - $value = $this->getAttr($name, $item); - if (false !== $value) { - $item[$name] = $value; - } - } - } - } - - return $item; - } - - /** - * 转换当前模型对象为JSON字符串 - * @access public - * @param integer $options json参数 - * @return string - */ - public function toJson($options = JSON_UNESCAPED_UNICODE) - { - return json_encode($this->toArray(), $options); - } - - /** - * 移除当前模型的关联属性 - * @access public - * @return $this - */ - public function removeRelation() - { - $this->relation = []; - return $this; - } - - public function __toString() - { - return $this->toJson(); - } - - // JsonSerializable - public function jsonSerialize() - { - return $this->toArray(); - } - - /** - * 转换数据集为数据集对象 - * @access public - * @param array|Collection $collection 数据集 - * @param string $resultSetType 数据集类 - * @return Collection - */ - public function toCollection($collection, $resultSetType = null) - { - $resultSetType = $resultSetType ?: $this->resultSetType; - - if ($resultSetType && false !== strpos($resultSetType, '\\')) { - $collection = new $resultSetType($collection); - } else { - $collection = new ModelCollection($collection); - } - - return $collection; - } - - /** - * 解析隐藏及显示属性 - * @access protected - * @param array $attrs 属性 - * @param array $result 结果集 - * @param bool $visible - * @return array - */ - protected function parseAttr($attrs, &$result, $visible = true) - { - $array = []; - - foreach ($attrs as $key => $val) { - if (is_array($val)) { - if ($visible) { - $array[] = $key; - } - - $result[$key] = $val; - } elseif (strpos($val, '.')) { - list($key, $name) = explode('.', $val); - - if ($visible) { - $array[] = $key; - } - - $result[$key][] = $name; - } else { - $array[] = $val; - } - } - - return $array; - } -} diff --git a/thinkphp/library/think/model/concern/ModelEvent.php b/thinkphp/library/think/model/concern/ModelEvent.php deleted file mode 100644 index 1f5bdafcd..000000000 --- a/thinkphp/library/think/model/concern/ModelEvent.php +++ /dev/null @@ -1,157 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\model\concern; - -use think\Container; - -/** - * 模型事件处理 - */ -trait ModelEvent -{ - /** - * 模型回调 - * @var array - */ - private static $event = []; - - /** - * 注册回调方法 - * @access public - * @param string $event 事件名 - * @param callable $callback 回调方法 - * @param bool $override 是否覆盖 - * @return void - */ - public static function event($event, $callback, $override = false) - { - $class = static::class; - - if ($override) { - self::$event[$class][$event] = []; - } - - self::$event[$class][$event][] = $callback; - } - - /** - * 触发事件 - * @access protected - * @param string $event 事件名 - * @return bool - */ - protected function trigger($event) - { - $class = static::class; - - if (isset(self::$event[$class][$event])) { - foreach (self::$event[$class][$event] as $callback) { - $result = Container::getInstance()->invoke($callback, [$this]); - - if (false === $result) { - return false; - } - } - } - - return true; - } - - /** - * 模型before_insert事件快捷方法 - * @access protected - * @param callable $callback - * @param bool $override - */ - protected static function beforeInsert($callback, $override = false) - { - self::event('before_insert', $callback, $override); - } - - /** - * 模型after_insert事件快捷方法 - * @access protected - * @param callable $callback - * @param bool $override - */ - protected static function afterInsert($callback, $override = false) - { - self::event('after_insert', $callback, $override); - } - - /** - * 模型before_update事件快捷方法 - * @access protected - * @param callable $callback - * @param bool $override - */ - protected static function beforeUpdate($callback, $override = false) - { - self::event('before_update', $callback, $override); - } - - /** - * 模型after_update事件快捷方法 - * @access protected - * @param callable $callback - * @param bool $override - */ - protected static function afterUpdate($callback, $override = false) - { - self::event('after_update', $callback, $override); - } - - /** - * 模型before_write事件快捷方法 - * @access protected - * @param callable $callback - * @param bool $override - */ - protected static function beforeWrite($callback, $override = false) - { - self::event('before_write', $callback, $override); - } - - /** - * 模型after_write事件快捷方法 - * @access protected - * @param callable $callback - * @param bool $override - */ - protected static function afterWrite($callback, $override = false) - { - self::event('after_write', $callback, $override); - } - - /** - * 模型before_delete事件快捷方法 - * @access protected - * @param callable $callback - * @param bool $override - */ - protected static function beforeDelete($callback, $override = false) - { - self::event('before_delete', $callback, $override); - } - - /** - * 模型after_delete事件快捷方法 - * @access protected - * @param callable $callback - * @param bool $override - */ - protected static function afterDelete($callback, $override = false) - { - self::event('after_delete', $callback, $override); - } - -} diff --git a/thinkphp/library/think/model/concern/RelationShip.php b/thinkphp/library/think/model/concern/RelationShip.php deleted file mode 100644 index 2c993bd20..000000000 --- a/thinkphp/library/think/model/concern/RelationShip.php +++ /dev/null @@ -1,643 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\model\concern; - -use think\Collection; -use think\db\Query; -use think\Loader; -use think\Model; -use think\model\Relation; -use think\model\relation\BelongsTo; -use think\model\relation\BelongsToMany; -use think\model\relation\HasMany; -use think\model\relation\HasManyThrough; -use think\model\relation\HasOne; -use think\model\relation\MorphMany; -use think\model\relation\MorphOne; -use think\model\relation\MorphTo; - -/** - * 模型关联处理 - */ -trait RelationShip -{ - /** - * 父关联模型对象 - * @var object - */ - private $parent; - - /** - * 模型关联数据 - * @var array - */ - private $relation = []; - - /** - * 关联写入定义信息 - * @var array - */ - private $together; - - /** - * 关联自动写入信息 - * @var array - */ - protected $relationWrite; - - /** - * 设置父关联对象 - * @access public - * @param Model $model 模型对象 - * @return $this - */ - public function setParent($model) - { - $this->parent = $model; - - return $this; - } - - /** - * 获取父关联对象 - * @access public - * @return Model - */ - public function getParent() - { - return $this->parent; - } - - /** - * 获取当前模型的关联模型数据 - * @access public - * @param string $name 关联方法名 - * @return mixed - */ - public function getRelation($name = null) - { - if (is_null($name)) { - return $this->relation; - } elseif (array_key_exists($name, $this->relation)) { - return $this->relation[$name]; - } - return; - } - - /** - * 设置关联数据对象值 - * @access public - * @param string $name 属性名 - * @param mixed $value 属性值 - * @param array $data 数据 - * @return $this - */ - public function setRelation($name, $value, $data = []) - { - // 检测修改器 - $method = 'set' . Loader::parseName($name, 1) . 'Attr'; - - if (method_exists($this, $method)) { - $value = $this->$method($value, array_merge($this->data, $data)); - } - - $this->relation[$name] = $value; - - return $this; - } - - /** - * 关联数据写入 - * @access public - * @param array|string $relation 关联 - * @return $this - */ - public function together($relation) - { - if (is_string($relation)) { - $relation = explode(',', $relation); - } - - $this->together = $relation; - - $this->checkAutoRelationWrite(); - - return $this; - } - - /** - * 根据关联条件查询当前模型 - * @access public - * @param string $relation 关联方法名 - * @param mixed $operator 比较操作符 - * @param integer $count 个数 - * @param string $id 关联表的统计字段 - * @param string $joinType JOIN类型 - * @return Query - */ - public static function has($relation, $operator = '>=', $count = 1, $id = '*', $joinType = 'INNER') - { - $relation = (new static())->$relation(); - - if (is_array($operator) || $operator instanceof \Closure) { - return $relation->hasWhere($operator); - } - - return $relation->has($operator, $count, $id, $joinType); - } - - /** - * 根据关联条件查询当前模型 - * @access public - * @param string $relation 关联方法名 - * @param mixed $where 查询条件(数组或者闭包) - * @param mixed $fields 字段 - * @return Query - */ - public static function hasWhere($relation, $where = [], $fields = '*') - { - return (new static())->$relation()->hasWhere($where, $fields); - } - - /** - * 查询当前模型的关联数据 - * @access public - * @param string|array $relations 关联名 - * @return $this - */ - public function relationQuery($relations) - { - if (is_string($relations)) { - $relations = explode(',', $relations); - } - - foreach ($relations as $key => $relation) { - $subRelation = ''; - $closure = null; - - if ($relation instanceof \Closure) { - // 支持闭包查询过滤关联条件 - $closure = $relation; - $relation = $key; - } - - if (is_array($relation)) { - $subRelation = $relation; - $relation = $key; - } elseif (strpos($relation, '.')) { - list($relation, $subRelation) = explode('.', $relation, 2); - } - - $method = Loader::parseName($relation, 1, false); - - $this->relation[$relation] = $this->$method()->getRelation($subRelation, $closure); - } - - return $this; - } - - /** - * 预载入关联查询 返回数据集 - * @access public - * @param array $resultSet 数据集 - * @param string $relation 关联名 - * @return array - */ - public function eagerlyResultSet(&$resultSet, $relation) - { - $relations = is_string($relation) ? explode(',', $relation) : $relation; - - foreach ($relations as $key => $relation) { - $subRelation = ''; - $closure = false; - - if ($relation instanceof \Closure) { - $closure = $relation; - $relation = $key; - } - - if (is_array($relation)) { - $subRelation = $relation; - $relation = $key; - } elseif (strpos($relation, '.')) { - list($relation, $subRelation) = explode('.', $relation, 2); - } - - $relation = Loader::parseName($relation, 1, false); - - $this->$relation()->eagerlyResultSet($resultSet, $relation, $subRelation, $closure); - } - } - - /** - * 预载入关联查询 返回模型对象 - * @access public - * @param Model $result 数据对象 - * @param string $relation 关联名 - * @return Model - */ - public function eagerlyResult(&$result, $relation) - { - $relations = is_string($relation) ? explode(',', $relation) : $relation; - - foreach ($relations as $key => $relation) { - $subRelation = ''; - $closure = false; - - if ($relation instanceof \Closure) { - $closure = $relation; - $relation = $key; - } - - if (is_array($relation)) { - $subRelation = $relation; - $relation = $key; - } elseif (strpos($relation, '.')) { - list($relation, $subRelation) = explode('.', $relation, 2); - } - - $relation = Loader::parseName($relation, 1, false); - - $this->$relation()->eagerlyResult($result, $relation, $subRelation, $closure); - } - } - - /** - * 关联统计 - * @access public - * @param Model $result 数据对象 - * @param array $relations 关联名 - * @param string $aggregate 聚合查询方法 - * @param string $field 字段 - * @return void - */ - public function relationCount(&$result, $relations, $aggregate = 'sum', $field = '*') - { - foreach ($relations as $key => $relation) { - $closure = false; - - if ($relation instanceof \Closure) { - $closure = $relation; - $relation = $key; - } elseif (is_string($key)) { - $name = $relation; - $relation = $key; - } - - $relation = Loader::parseName($relation, 1, false); - $count = $this->$relation()->relationCount($result, $closure, $aggregate, $field); - - if (!isset($name)) { - $name = Loader::parseName($relation) . '_' . $aggregate; - } - - $result->setAttr($name, $count); - } - } - - /** - * HAS ONE 关联定义 - * @access public - * @param string $model 模型名 - * @param string $foreignKey 关联外键 - * @param string $localKey 当前主键 - * @return HasOne - */ - public function hasOne($model, $foreignKey = '', $localKey = '') - { - // 记录当前关联信息 - $model = $this->parseModel($model); - $localKey = $localKey ?: $this->getPk(); - $foreignKey = $foreignKey ?: $this->getForeignKey($this->name); - - return new HasOne($this, $model, $foreignKey, $localKey); - } - - /** - * BELONGS TO 关联定义 - * @access public - * @param string $model 模型名 - * @param string $foreignKey 关联外键 - * @param string $localKey 关联主键 - * @return BelongsTo - */ - public function belongsTo($model, $foreignKey = '', $localKey = '') - { - // 记录当前关联信息 - $model = $this->parseModel($model); - $foreignKey = $foreignKey ?: $this->getForeignKey((new $model)->getName()); - $localKey = $localKey ?: (new $model)->getPk(); - $trace = debug_backtrace(false, 2); - $relation = Loader::parseName($trace[1]['function']); - - return new BelongsTo($this, $model, $foreignKey, $localKey, $relation); - } - - /** - * HAS MANY 关联定义 - * @access public - * @param string $model 模型名 - * @param string $foreignKey 关联外键 - * @param string $localKey 当前主键 - * @return HasMany - */ - public function hasMany($model, $foreignKey = '', $localKey = '') - { - // 记录当前关联信息 - $model = $this->parseModel($model); - $localKey = $localKey ?: $this->getPk(); - $foreignKey = $foreignKey ?: $this->getForeignKey($this->name); - - return new HasMany($this, $model, $foreignKey, $localKey); - } - - /** - * HAS MANY 远程关联定义 - * @access public - * @param string $model 模型名 - * @param string $through 中间模型名 - * @param string $foreignKey 关联外键 - * @param string $throughKey 关联外键 - * @param string $localKey 当前主键 - * @return HasManyThrough - */ - public function hasManyThrough($model, $through, $foreignKey = '', $throughKey = '', $localKey = '') - { - // 记录当前关联信息 - $model = $this->parseModel($model); - $through = $this->parseModel($through); - $localKey = $localKey ?: $this->getPk(); - $foreignKey = $foreignKey ?: $this->getForeignKey($this->name); - $throughKey = $throughKey ?: $this->getForeignKey((new $through)->getName()); - - return new HasManyThrough($this, $model, $through, $foreignKey, $throughKey, $localKey); - } - - /** - * BELONGS TO MANY 关联定义 - * @access public - * @param string $model 模型名 - * @param string $table 中间表名 - * @param string $foreignKey 关联外键 - * @param string $localKey 当前模型关联键 - * @return BelongsToMany - */ - public function belongsToMany($model, $table = '', $foreignKey = '', $localKey = '') - { - // 记录当前关联信息 - $model = $this->parseModel($model); - $name = Loader::parseName(basename(str_replace('\\', '/', $model))); - $table = $table ?: Loader::parseName($this->name) . '_' . $name; - $foreignKey = $foreignKey ?: $name . '_id'; - $localKey = $localKey ?: $this->getForeignKey($this->name); - - return new BelongsToMany($this, $model, $table, $foreignKey, $localKey); - } - - /** - * MORPH One 关联定义 - * @access public - * @param string $model 模型名 - * @param string|array $morph 多态字段信息 - * @param string $type 多态类型 - * @return MorphOne - */ - public function morphOne($model, $morph = null, $type = '') - { - // 记录当前关联信息 - $model = $this->parseModel($model); - - if (is_null($morph)) { - $trace = debug_backtrace(false, 2); - $morph = Loader::parseName($trace[1]['function']); - } - - if (is_array($morph)) { - list($morphType, $foreignKey) = $morph; - } else { - $morphType = $morph . '_type'; - $foreignKey = $morph . '_id'; - } - - $type = $type ?: get_class($this); - - return new MorphOne($this, $model, $foreignKey, $morphType, $type); - } - - /** - * MORPH MANY 关联定义 - * @access public - * @param string $model 模型名 - * @param string|array $morph 多态字段信息 - * @param string $type 多态类型 - * @return MorphMany - */ - public function morphMany($model, $morph = null, $type = '') - { - // 记录当前关联信息 - $model = $this->parseModel($model); - - if (is_null($morph)) { - $trace = debug_backtrace(false, 2); - $morph = Loader::parseName($trace[1]['function']); - } - - $type = $type ?: get_class($this); - - if (is_array($morph)) { - list($morphType, $foreignKey) = $morph; - } else { - $morphType = $morph . '_type'; - $foreignKey = $morph . '_id'; - } - - return new MorphMany($this, $model, $foreignKey, $morphType, $type); - } - - /** - * MORPH TO 关联定义 - * @access public - * @param string|array $morph 多态字段信息 - * @param array $alias 多态别名定义 - * @return MorphTo - */ - public function morphTo($morph = null, $alias = []) - { - $trace = debug_backtrace(false, 2); - $relation = Loader::parseName($trace[1]['function']); - - if (is_null($morph)) { - $morph = $relation; - } - - // 记录当前关联信息 - if (is_array($morph)) { - list($morphType, $foreignKey) = $morph; - } else { - $morphType = $morph . '_type'; - $foreignKey = $morph . '_id'; - } - - return new MorphTo($this, $morphType, $foreignKey, $alias, $relation); - } - - /** - * 解析模型的完整命名空间 - * @access protected - * @param string $model 模型名(或者完整类名) - * @return string - */ - protected function parseModel($model) - { - if (false === strpos($model, '\\')) { - $path = explode('\\', static::class); - array_pop($path); - array_push($path, Loader::parseName($model, 1)); - $model = implode('\\', $path); - } - - return $model; - } - - /** - * 获取模型的默认外键名 - * @access protected - * @param string $name 模型名 - * @return string - */ - protected function getForeignKey($name) - { - if (strpos($name, '\\')) { - $name = basename(str_replace('\\', '/', $name)); - } - - return Loader::parseName($name) . '_id'; - } - - /** - * 检查属性是否为关联属性 如果是则返回关联方法名 - * @access protected - * @param string $attr 关联属性名 - * @return string|false - */ - protected function isRelationAttr($attr) - { - $relation = Loader::parseName($attr, 1, false); - - if (method_exists($this, $relation)) { - return $relation; - } - - return false; - } - - /** - * 智能获取关联模型数据 - * @access protected - * @param Relation $modelRelation 模型关联对象 - * @return mixed - */ - protected function getRelationData(Relation $modelRelation) - { - if ($this->parent && !$modelRelation->isSelfRelation() && get_class($this->parent) == get_class($modelRelation->getModel())) { - $value = $this->parent; - } else { - // 获取关联数据 - $value = $modelRelation->getRelation(); - } - - return $value; - } - - /** - * 关联数据自动写入检查 - * @access protected - * @return void - */ - protected function checkAutoRelationWrite() - { - foreach ($this->together as $key => $name) { - if (is_array($name)) { - if (key($name) === 0) { - $this->relationWrite[$key] = []; - // 绑定关联属性 - foreach ((array) $name as $val) { - if (isset($this->data[$val])) { - $this->relationWrite[$key][$val] = $this->data[$val]; - } - } - } else { - // 直接传入关联数据 - $this->relationWrite[$key] = $name; - } - } elseif (isset($this->relation[$name])) { - $this->relationWrite[$name] = $this->relation[$name]; - } elseif (isset($this->data[$name])) { - $this->relationWrite[$name] = $this->data[$name]; - unset($this->data[$name]); - } - } - } - - /** - * 自动关联数据更新(针对一对一关联) - * @access protected - * @return void - */ - protected function autoRelationUpdate() - { - foreach ($this->relationWrite as $name => $val) { - if ($val instanceof Model) { - $val->isUpdate()->save(); - } else { - $model = $this->getRelation($name); - if ($model instanceof Model) { - $model->isUpdate()->save($val); - } - } - } - } - - /** - * 自动关联数据写入(针对一对一关联) - * @access protected - * @return void - */ - protected function autoRelationInsert() - { - foreach ($this->relationWrite as $name => $val) { - $method = Loader::parseName($name, 1, false); - $this->$method()->save($val); - } - } - - /** - * 自动关联数据删除(支持一对一及一对多关联) - * @access protected - * @return void - */ - protected function autoRelationDelete() - { - foreach ($this->relationWrite as $key => $name) { - $name = is_numeric($key) ? $name : $key; - $result = $this->getRelation($name); - - if ($result instanceof Model) { - $result->delete(); - } elseif ($result instanceof Collection) { - foreach ($result as $model) { - $model->delete(); - } - } - } - } -} diff --git a/thinkphp/library/think/model/concern/SoftDelete.php b/thinkphp/library/think/model/concern/SoftDelete.php deleted file mode 100644 index 68b4c1972..000000000 --- a/thinkphp/library/think/model/concern/SoftDelete.php +++ /dev/null @@ -1,214 +0,0 @@ -getDeleteTimeField(); - - if ($field && !empty($this->getOrigin($field))) { - return true; - } - - return false; - } - - /** - * 查询软删除数据 - * @access public - * @return Query - */ - public static function withTrashed() - { - $model = new static(); - - return $model->db(false); - } - - /** - * 只查询软删除数据 - * @access public - * @return Query - */ - public static function onlyTrashed() - { - $model = new static(); - $field = $model->getDeleteTimeField(true); - - if ($field) { - return $model - ->db(false) - ->useSoftDelete($field, $model->getWithTrashedExp()); - } - - return $model->db(false); - } - - /** - * 获取软删除数据的查询条件 - * @access protected - * @return array - */ - protected function getWithTrashedExp() - { - return is_null($this->defaultSoftDelete) ? - ['notnull', ''] : ['<>', $this->defaultSoftDelete]; - } - - /** - * 删除当前的记录 - * @access public - * @param bool $force 是否强制删除 - * @return integer - */ - public function delete($force = false) - { - if (false === $this->trigger('before_delete', $this)) { - return false; - } - - $name = $this->getDeleteTimeField(); - - if ($name && !$force) { - // 软删除 - $this->data($name, $this->autoWriteTimestamp($name)); - - $result = $this->isUpdate()->save(); - } else { - // 读取更新条件 - $where = $this->getWhere(); - - // 删除当前模型数据 - $result = $this->db(false)->where($where)->delete(); - } - - // 关联删除 - if (!empty($this->relationWrite)) { - $this->autoRelationDelete(); - } - - $this->trigger('after_delete', $this); - - // 清空数据 - $this->data = []; - $this->origin = []; - - return $result; - } - - /** - * 删除记录 - * @access public - * @param mixed $data 主键列表 支持闭包查询条件 - * @param bool $force 是否强制删除 - * @return integer 成功删除的记录数 - */ - public static function destroy($data, $force = false) - { - // 包含软删除数据 - $query = self::withTrashed(); - - if (is_array($data) && key($data) !== 0) { - $query->where($data); - $data = null; - } elseif ($data instanceof \Closure) { - call_user_func_array($data, [ & $query]); - $data = null; - } elseif (is_null($data)) { - return 0; - } - - $resultSet = $query->select($data); - $count = 0; - - if ($resultSet) { - foreach ($resultSet as $data) { - $result = $data->delete($force); - $count += $result; - } - } - - return $count; - } - - /** - * 恢复被软删除的记录 - * @access public - * @param array $where 更新条件 - * @return integer - */ - public function restore($where = []) - { - $name = $this->getDeleteTimeField(); - - if (empty($where)) { - $pk = $this->getPk(); - - $where[] = [$pk, '=', $this->getData($pk)]; - } - - if ($name) { - // 恢复删除 - return $this->db(false) - ->where($where) - ->useSoftDelete($name, $this->getWithTrashedExp()) - ->update([$name => $this->defaultSoftDelete]); - } - - return 0; - } - - /** - * 获取软删除字段 - * @access protected - * @param bool $read 是否查询操作 写操作的时候会自动去掉表别名 - * @return string|false - */ - protected function getDeleteTimeField($read = false) - { - $field = property_exists($this, 'deleteTime') && isset($this->deleteTime) ? $this->deleteTime : 'delete_time'; - - if (false === $field) { - return false; - } - - if (!strpos($field, '.')) { - $field = '__TABLE__.' . $field; - } - - if (!$read && strpos($field, '.')) { - $array = explode('.', $field); - $field = array_pop($array); - } - - return $field; - } - - /** - * 查询的时候默认排除软删除数据 - * @access protected - * @param Query $query - * @return void - */ - protected function withNoTrashed($query) - { - $field = $this->getDeleteTimeField(true); - - if ($field) { - $query->useSoftDelete($field, $this->defaultSoftDelete); - } - } -} diff --git a/thinkphp/library/think/model/concern/TimeStamp.php b/thinkphp/library/think/model/concern/TimeStamp.php deleted file mode 100644 index 923b7d453..000000000 --- a/thinkphp/library/think/model/concern/TimeStamp.php +++ /dev/null @@ -1,79 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\model\concern; - -/** - * 自动时间戳 - */ -trait TimeStamp -{ - /** - * 是否需要自动写入时间戳 如果设置为字符串 则表示时间字段的类型 - * @var bool|string - */ - protected $autoWriteTimestamp; - - /** - * 创建时间字段 false表示关闭 - * @var false|string - */ - protected $createTime = 'create_time'; - - /** - * 更新时间字段 false表示关闭 - * @var false|string - */ - protected $updateTime = 'update_time'; - - /** - * 时间字段显示格式 - * @var string - */ - protected $dateFormat; - - /** - * 时间日期字段格式化处理 - * @access protected - * @param mixed $time 时间日期表达式 - * @param mixed $format 日期格式 - * @param bool $timestamp 是否进行时间戳转换 - * @return mixed - */ - protected function formatDateTime($time, $format, $timestamp = false) - { - if (false !== strpos($format, '\\')) { - $time = new $format($time); - } elseif (!$timestamp && false !== $format) { - $time = date($format, $time); - } - - return $time; - } - - /** - * 检查时间字段写入 - * @access protected - * @return void - */ - protected function checkTimeStampWrite() - { - // 自动写入创建时间和更新时间 - if ($this->autoWriteTimestamp) { - if ($this->createTime && !isset($this->data[$this->createTime])) { - $this->data[$this->createTime] = $this->autoWriteTimestamp($this->createTime); - } - if ($this->updateTime && !isset($this->data[$this->updateTime])) { - $this->data[$this->updateTime] = $this->autoWriteTimestamp($this->updateTime); - } - } - } -} diff --git a/thinkphp/library/think/model/relation/BelongsTo.php b/thinkphp/library/think/model/relation/BelongsTo.php deleted file mode 100644 index bf2dbe53a..000000000 --- a/thinkphp/library/think/model/relation/BelongsTo.php +++ /dev/null @@ -1,247 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\model\relation; - -use think\Loader; -use think\Model; - -class BelongsTo extends OneToOne -{ - /** - * 架构函数 - * @access public - * @param Model $parent 上级模型对象 - * @param string $model 模型名 - * @param string $foreignKey 关联外键 - * @param string $localKey 关联主键 - * @param string $relation 关联名 - */ - public function __construct(Model $parent, $model, $foreignKey, $localKey, $relation = null) - { - $this->parent = $parent; - $this->model = $model; - $this->foreignKey = $foreignKey; - $this->localKey = $localKey; - $this->joinType = 'INNER'; - $this->query = (new $model)->db(); - $this->relation = $relation; - } - - /** - * 延迟获取关联数据 - * @access public - * @param string $subRelation 子关联名 - * @param \Closure $closure 闭包查询条件 - * @return Model - */ - public function getRelation($subRelation = '', $closure = null) - { - if ($closure) { - $closure($this->query); - } - - $foreignKey = $this->foreignKey; - - $relationModel = $this->query - ->removeWhereField($this->localKey) - ->where($this->localKey, $this->parent->$foreignKey) - ->relation($subRelation) - ->find(); - - if ($relationModel) { - $relationModel->setParent(clone $this->parent); - } - - return $relationModel; - } - - /** - * 根据关联条件查询当前模型 - * @access public - * @param string $operator 比较操作符 - * @param integer $count 个数 - * @param string $id 关联表的统计字段 - * @param string $joinType JOIN类型 - * @return Query - */ - public function has($operator = '>=', $count = 1, $id = '*', $joinType = 'INNER') - { - return $this->parent; - } - - /** - * 根据关联条件查询当前模型 - * @access public - * @param mixed $where 查询条件(数组或者闭包) - * @param mixed $fields 字段 - * @return Query - */ - public function hasWhere($where = [], $fields = null) - { - $table = $this->query->getTable(); - $model = basename(str_replace('\\', '/', get_class($this->parent))); - $relation = basename(str_replace('\\', '/', $this->model)); - - if (is_array($where)) { - $this->getQueryWhere($where, $relation); - } - - $fields = $this->getRelationQueryFields($fields, $model); - - return $this->parent->db() - ->alias($model) - ->field($fields) - ->join([$table => $relation], $model . '.' . $this->foreignKey . '=' . $relation . '.' . $this->localKey, $this->joinType) - ->where($where); - } - - /** - * 预载入关联查询(数据集) - * @access protected - * @param array $resultSet 数据集 - * @param string $relation 当前关联名 - * @param string $subRelation 子关联名 - * @param \Closure $closure 闭包 - * @return void - */ - protected function eagerlySet(&$resultSet, $relation, $subRelation, $closure) - { - $localKey = $this->localKey; - $foreignKey = $this->foreignKey; - - $range = []; - foreach ($resultSet as $result) { - // 获取关联外键列表 - if (isset($result->$foreignKey)) { - $range[] = $result->$foreignKey; - } - } - - if (!empty($range)) { - $this->query->removeWhereField($localKey); - - $data = $this->eagerlyWhere([ - [$localKey, 'in', $range], - ], $localKey, $relation, $subRelation, $closure); - - // 关联属性名 - $attr = Loader::parseName($relation); - - // 关联数据封装 - foreach ($resultSet as $result) { - // 关联模型 - if (!isset($data[$result->$foreignKey])) { - $relationModel = null; - } else { - $relationModel = $data[$result->$foreignKey]; - $relationModel->setParent(clone $result); - $relationModel->isUpdate(true); - } - - if (!empty($this->bindAttr)) { - // 绑定关联属性 - $this->bindAttr($relationModel, $result); - } else { - // 设置关联属性 - $result->setRelation($attr, $relationModel); - } - } - } - } - - /** - * 预载入关联查询(数据) - * @access protected - * @param Model $result 数据对象 - * @param string $relation 当前关联名 - * @param string $subRelation 子关联名 - * @param \Closure $closure 闭包 - * @return void - */ - protected function eagerlyOne(&$result, $relation, $subRelation, $closure) - { - $localKey = $this->localKey; - $foreignKey = $this->foreignKey; - - $this->query->removeWhereField($localKey); - - $data = $this->eagerlyWhere([ - [$localKey, '=', $result->$foreignKey], - ], $localKey, $relation, $subRelation, $closure); - - // 关联模型 - if (!isset($data[$result->$foreignKey])) { - $relationModel = null; - } else { - $relationModel = $data[$result->$foreignKey]; - $relationModel->setParent(clone $result); - $relationModel->isUpdate(true); - } - - if (!empty($this->bindAttr)) { - // 绑定关联属性 - $this->bindAttr($relationModel, $result); - } else { - // 设置关联属性 - $result->setRelation(Loader::parseName($relation), $relationModel); - } - } - - /** - * 添加关联数据 - * @access public - * @param Model $model 关联模型对象 - * @return Model - */ - public function associate($model) - { - $foreignKey = $this->foreignKey; - $pk = $model->getPk(); - - $this->parent->setAttr($foreignKey, $model->$pk); - $this->parent->save(); - - return $this->parent->setRelation($this->relation, $model); - } - - /** - * 注销关联数据 - * @access public - * @return Model - */ - public function dissociate() - { - $foreignKey = $this->foreignKey; - - $this->parent->setAttr($foreignKey, null); - $this->parent->save(); - - return $this->parent->setRelation($this->relation, null); - } - - /** - * 执行基础查询(仅执行一次) - * @access protected - * @return void - */ - protected function baseQuery() - { - if (empty($this->baseQuery)) { - if (isset($this->parent->{$this->foreignKey})) { - // 关联查询带入关联条件 - $this->query->where($this->localKey, '=', $this->parent->{$this->foreignKey}); - } - - $this->baseQuery = true; - } - } -} diff --git a/thinkphp/library/think/model/relation/BelongsToMany.php b/thinkphp/library/think/model/relation/BelongsToMany.php deleted file mode 100644 index 674249264..000000000 --- a/thinkphp/library/think/model/relation/BelongsToMany.php +++ /dev/null @@ -1,631 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\model\relation; - -use think\Collection; -use think\db\Query; -use think\Exception; -use think\Loader; -use think\Model; -use think\model\Pivot; -use think\model\Relation; - -class BelongsToMany extends Relation -{ - // 中间表表名 - protected $middle; - // 中间表模型名称 - protected $pivotName; - // 中间表模型对象 - protected $pivot; - - /** - * 架构函数 - * @access public - * @param Model $parent 上级模型对象 - * @param string $model 模型名 - * @param string $table 中间表名 - * @param string $foreignKey 关联模型外键 - * @param string $localKey 当前模型关联键 - */ - public function __construct(Model $parent, $model, $table, $foreignKey, $localKey) - { - $this->parent = $parent; - $this->model = $model; - $this->foreignKey = $foreignKey; - $this->localKey = $localKey; - - if (false !== strpos($table, '\\')) { - $this->pivotName = $table; - $this->middle = basename(str_replace('\\', '/', $table)); - } else { - $this->middle = $table; - } - - $this->query = (new $model)->db(); - $this->pivot = $this->newPivot(); - } - - /** - * 设置中间表模型 - * @access public - * @param $pivot - * @return $this - */ - public function pivot($pivot) - { - $this->pivotName = $pivot; - return $this; - } - - /** - * 实例化中间表模型 - * @access public - * @param $data - * @return Pivot - * @throws Exception - */ - protected function newPivot($data = []) - { - $class = $this->pivotName ?: '\\think\\model\\Pivot'; - $pivot = new $class($data, $this->parent, $this->middle); - if ($pivot instanceof Pivot) { - return $pivot; - } else { - throw new Exception('pivot model must extends: \think\model\Pivot'); - } - } - - /** - * 合成中间表模型 - * @access protected - * @param array|Collection|Paginator $models - */ - protected function hydratePivot($models) - { - foreach ($models as $model) { - $pivot = []; - - foreach ($model->getData() as $key => $val) { - if (strpos($key, '__')) { - list($name, $attr) = explode('__', $key, 2); - - if ('pivot' == $name) { - $pivot[$attr] = $val; - unset($model->$key); - } - } - } - - $model->setRelation('pivot', $this->newPivot($pivot)); - } - } - - /** - * 创建关联查询Query对象 - * @access protected - * @return Query - */ - protected function buildQuery() - { - $foreignKey = $this->foreignKey; - $localKey = $this->localKey; - - // 关联查询 - $pk = $this->parent->getPk(); - - $condition[] = ['pivot.' . $localKey, '=', $this->parent->$pk]; - - return $this->belongsToManyQuery($foreignKey, $localKey, $condition); - } - - /** - * 延迟获取关联数据 - * @access public - * @param string $subRelation 子关联名 - * @param \Closure $closure 闭包查询条件 - * @return Collection - */ - public function getRelation($subRelation = '', $closure = null) - { - if ($closure) { - $closure($this->query); - } - - $result = $this->buildQuery()->relation($subRelation)->select(); - $this->hydratePivot($result); - - return $result; - } - - /** - * 重载select方法 - * @access public - * @param mixed $data - * @return Collection - */ - public function select($data = null) - { - $result = $this->buildQuery()->select($data); - $this->hydratePivot($result); - - return $result; - } - - /** - * 重载paginate方法 - * @access public - * @param null $listRows - * @param bool $simple - * @param array $config - * @return Paginator - */ - public function paginate($listRows = null, $simple = false, $config = []) - { - $result = $this->buildQuery()->paginate($listRows, $simple, $config); - $this->hydratePivot($result); - - return $result; - } - - /** - * 重载find方法 - * @access public - * @param mixed $data - * @return Model - */ - public function find($data = null) - { - $result = $this->buildQuery()->find($data); - if ($result) { - $this->hydratePivot([$result]); - } - - return $result; - } - - /** - * 查找多条记录 如果不存在则抛出异常 - * @access public - * @param array|string|Query|\Closure $data - * @return Collection - */ - public function selectOrFail($data = null) - { - return $this->failException(true)->select($data); - } - - /** - * 查找单条记录 如果不存在则抛出异常 - * @access public - * @param array|string|Query|\Closure $data - * @return Model - */ - public function findOrFail($data = null) - { - return $this->failException(true)->find($data); - } - - /** - * 根据关联条件查询当前模型 - * @access public - * @param string $operator 比较操作符 - * @param integer $count 个数 - * @param string $id 关联表的统计字段 - * @param string $joinType JOIN类型 - * @return Query - */ - public function has($operator = '>=', $count = 1, $id = '*', $joinType = 'INNER') - { - return $this->parent; - } - - /** - * 根据关联条件查询当前模型 - * @access public - * @param mixed $where 查询条件(数组或者闭包) - * @param mixed $fields 字段 - * @return Query - * @throws Exception - */ - public function hasWhere($where = [], $fields = null) - { - throw new Exception('relation not support: hasWhere'); - } - - /** - * 设置中间表的查询条件 - * @access public - * @param string $field - * @param string $op - * @param mixed $condition - * @return $this - */ - public function wherePivot($field, $op = null, $condition = null) - { - $this->query->where('pivot.' . $field, $op, $condition); - return $this; - } - - /** - * 预载入关联查询(数据集) - * @access public - * @param array $resultSet 数据集 - * @param string $relation 当前关联名 - * @param string $subRelation 子关联名 - * @param \Closure $closure 闭包 - * @return void - */ - public function eagerlyResultSet(&$resultSet, $relation, $subRelation, $closure) - { - $localKey = $this->localKey; - $foreignKey = $this->foreignKey; - - $pk = $resultSet[0]->getPk(); - $range = []; - foreach ($resultSet as $result) { - // 获取关联外键列表 - if (isset($result->$pk)) { - $range[] = $result->$pk; - } - } - - if (!empty($range)) { - // 查询关联数据 - $data = $this->eagerlyManyToMany([ - ['pivot.' . $localKey, 'in', $range], - ], $relation, $subRelation); - - // 关联属性名 - $attr = Loader::parseName($relation); - - // 关联数据封装 - foreach ($resultSet as $result) { - if (!isset($data[$result->$pk])) { - $data[$result->$pk] = []; - } - - $result->setRelation($attr, $this->resultSetBuild($data[$result->$pk])); - } - } - } - - /** - * 预载入关联查询(单个数据) - * @access public - * @param Model $result 数据对象 - * @param string $relation 当前关联名 - * @param string $subRelation 子关联名 - * @param \Closure $closure 闭包 - * @return void - */ - public function eagerlyResult(&$result, $relation, $subRelation, $closure) - { - $pk = $result->getPk(); - - if (isset($result->$pk)) { - $pk = $result->$pk; - // 查询管理数据 - $data = $this->eagerlyManyToMany([ - ['pivot.' . $this->localKey, '=', $pk], - ], $relation, $subRelation); - - // 关联数据封装 - if (!isset($data[$pk])) { - $data[$pk] = []; - } - - $result->setRelation(Loader::parseName($relation), $this->resultSetBuild($data[$pk])); - } - } - - /** - * 关联统计 - * @access public - * @param Model $result 数据对象 - * @param \Closure $closure 闭包 - * @param string $aggregate 聚合查询方法 - * @param string $field 字段 - * @return integer - */ - public function relationCount($result, $closure, $aggregate = 'count', $field = '*') - { - $pk = $result->getPk(); - $count = 0; - - if (isset($result->$pk)) { - $pk = $result->$pk; - $count = $this->belongsToManyQuery($this->foreignKey, $this->localKey, [ - ['pivot.' . $this->localKey, '=', $pk], - ])->$aggregate($field); - } - - return $count; - } - - /** - * 获取关联统计子查询 - * @access public - * @param \Closure $closure 闭包 - * @param string $aggregate 聚合查询方法 - * @param string $field 字段 - * @return string - */ - public function getRelationCountQuery($closure, $aggregate = 'count', $field = '*') - { - return $this->belongsToManyQuery($this->foreignKey, $this->localKey, [ - [ - 'pivot.' . $this->localKey, 'exp', $this->query->raw('=' . $this->parent->getTable() . '.' . $this->parent->getPk()), - ], - ])->fetchSql()->$aggregate($field); - } - - /** - * 多对多 关联模型预查询 - * @access protected - * @param array $where 关联预查询条件 - * @param string $relation 关联名 - * @param string $subRelation 子关联 - * @return array - */ - protected function eagerlyManyToMany($where, $relation, $subRelation = '') - { - // 预载入关联查询 支持嵌套预载入 - $list = $this->belongsToManyQuery($this->foreignKey, $this->localKey, $where) - ->with($subRelation) - ->select(); - - // 组装模型数据 - $data = []; - foreach ($list as $set) { - $pivot = []; - foreach ($set->getData() as $key => $val) { - if (strpos($key, '__')) { - list($name, $attr) = explode('__', $key, 2); - if ('pivot' == $name) { - $pivot[$attr] = $val; - unset($set->$key); - } - } - } - - $set->setRelation('pivot', $this->newPivot($pivot)); - - $data[$pivot[$this->localKey]][] = $set; - } - - return $data; - } - - /** - * BELONGS TO MANY 关联查询 - * @access protected - * @param string $foreignKey 关联模型关联键 - * @param string $localKey 当前模型关联键 - * @param array $condition 关联查询条件 - * @return Query - */ - protected function belongsToManyQuery($foreignKey, $localKey, $condition = []) - { - // 关联查询封装 - $tableName = $this->query->getTable(); - $table = $this->pivot->getTable(); - $fields = $this->getQueryFields($tableName); - - $query = $this->query - ->field($fields) - ->field(true, false, $table, 'pivot', 'pivot__'); - - if (empty($this->baseQuery)) { - $relationFk = $this->query->getPk(); - $query->join([$table => 'pivot'], 'pivot.' . $foreignKey . '=' . $tableName . '.' . $relationFk) - ->where($condition); - } - - return $query; - } - - /** - * 保存(新增)当前关联数据对象 - * @access public - * @param mixed $data 数据 可以使用数组 关联模型对象 和 关联对象的主键 - * @param array $pivot 中间表额外数据 - * @return array|Pivot - */ - public function save($data, array $pivot = []) - { - // 保存关联表/中间表数据 - return $this->attach($data, $pivot); - } - - /** - * 批量保存当前关联数据对象 - * @access public - * @param array $dataSet 数据集 - * @param array $pivot 中间表额外数据 - * @param bool $samePivot 额外数据是否相同 - * @return array|false - */ - public function saveAll(array $dataSet, array $pivot = [], $samePivot = false) - { - $result = []; - - foreach ($dataSet as $key => $data) { - if (!$samePivot) { - $pivotData = isset($pivot[$key]) ? $pivot[$key] : []; - } else { - $pivotData = $pivot; - } - - $result[] = $this->attach($data, $pivotData); - } - - return empty($result) ? false : $result; - } - - /** - * 附加关联的一个中间表数据 - * @access public - * @param mixed $data 数据 可以使用数组、关联模型对象 或者 关联对象的主键 - * @param array $pivot 中间表额外数据 - * @return array|Pivot - * @throws Exception - */ - public function attach($data, $pivot = []) - { - if (is_array($data)) { - if (key($data) === 0) { - $id = $data; - } else { - // 保存关联表数据 - $model = new $this->model; - $model->save($data); - $id = $model->getLastInsID(); - } - } elseif (is_numeric($data) || is_string($data)) { - // 根据关联表主键直接写入中间表 - $id = $data; - } elseif ($data instanceof Model) { - // 根据关联表主键直接写入中间表 - $relationFk = $data->getPk(); - $id = $data->$relationFk; - } - - if ($id) { - // 保存中间表数据 - $pk = $this->parent->getPk(); - $pivot[$this->localKey] = $this->parent->$pk; - $ids = (array) $id; - - foreach ($ids as $id) { - $pivot[$this->foreignKey] = $id; - $this->pivot->insert($pivot, true); - $result[] = $this->newPivot($pivot); - } - - if (count($result) == 1) { - // 返回中间表模型对象 - $result = $result[0]; - } - - return $result; - } else { - throw new Exception('miss relation data'); - } - } - - /** - * 解除关联的一个中间表数据 - * @access public - * @param integer|array $data 数据 可以使用关联对象的主键 - * @param bool $relationDel 是否同时删除关联表数据 - * @return integer - */ - public function detach($data = null, $relationDel = false) - { - if (is_array($data)) { - $id = $data; - } elseif (is_numeric($data) || is_string($data)) { - // 根据关联表主键直接写入中间表 - $id = $data; - } elseif ($data instanceof Model) { - // 根据关联表主键直接写入中间表 - $relationFk = $data->getPk(); - $id = $data->$relationFk; - } - - // 删除中间表数据 - $pk = $this->parent->getPk(); - $pivot[] = [$this->localKey, '=', $this->parent->$pk]; - - if (isset($id)) { - $pivot[] = is_array($id) ? [$this->foreignKey, 'in', $id] : [$this->foreignKey, '=', $id]; - } - - $this->pivot->where($pivot)->delete(); - - // 删除关联表数据 - if (isset($id) && $relationDel) { - $model = $this->model; - $model::destroy($id); - } - } - - /** - * 数据同步 - * @access public - * @param array $ids - * @param bool $detaching - * @return array - */ - public function sync($ids, $detaching = true) - { - $changes = [ - 'attached' => [], - 'detached' => [], - 'updated' => [], - ]; - - $pk = $this->parent->getPk(); - - $current = $this->pivot - ->where($this->localKey, $this->parent->$pk) - ->column($this->foreignKey); - - $records = []; - - foreach ($ids as $key => $value) { - if (!is_array($value)) { - $records[$value] = []; - } else { - $records[$key] = $value; - } - } - - $detach = array_diff($current, array_keys($records)); - - if ($detaching && count($detach) > 0) { - $this->detach($detach); - $changes['detached'] = $detach; - } - - foreach ($records as $id => $attributes) { - if (!in_array($id, $current)) { - $this->attach($id, $attributes); - $changes['attached'][] = $id; - } elseif (count($attributes) > 0 && $this->attach($id, $attributes)) { - $changes['updated'][] = $id; - } - } - - return $changes; - } - - /** - * 执行基础查询(仅执行一次) - * @access protected - * @return void - */ - protected function baseQuery() - { - if (empty($this->baseQuery) && $this->parent->getData()) { - $pk = $this->parent->getPk(); - $table = $this->pivot->getTable(); - - $this->query - ->join([$table => 'pivot'], 'pivot.' . $this->foreignKey . '=' . $this->query->getTable() . '.' . $this->query->getPk()) - ->where('pivot.' . $this->localKey, $this->parent->$pk); - $this->baseQuery = true; - } - } - -} diff --git a/thinkphp/library/think/model/relation/HasMany.php b/thinkphp/library/think/model/relation/HasMany.php deleted file mode 100644 index aecc25452..000000000 --- a/thinkphp/library/think/model/relation/HasMany.php +++ /dev/null @@ -1,325 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\model\relation; - -use think\db\Query; -use think\Loader; -use think\Model; -use think\model\Relation; - -class HasMany extends Relation -{ - /** - * 架构函数 - * @access public - * @param Model $parent 上级模型对象 - * @param string $model 模型名 - * @param string $foreignKey 关联外键 - * @param string $localKey 当前模型主键 - */ - public function __construct(Model $parent, $model, $foreignKey, $localKey) - { - $this->parent = $parent; - $this->model = $model; - $this->foreignKey = $foreignKey; - $this->localKey = $localKey; - $this->query = (new $model)->db(); - } - - /** - * 延迟获取关联数据 - * @access public - * @param string $subRelation 子关联名 - * @param \Closure $closure 闭包查询条件 - * @return \think\Collection - */ - public function getRelation($subRelation = '', $closure = null) - { - if ($closure) { - $closure($this->query); - } - - $list = $this->query - ->where($this->foreignKey, $this->parent->{$this->localKey}) - ->relation($subRelation) - ->select(); - - $parent = clone $this->parent; - - foreach ($list as &$model) { - $model->setParent($parent); - } - - return $list; - } - - /** - * 预载入关联查询 - * @access public - * @param array $resultSet 数据集 - * @param string $relation 当前关联名 - * @param string $subRelation 子关联名 - * @param \Closure $closure 闭包 - * @return void - */ - public function eagerlyResultSet(&$resultSet, $relation, $subRelation, $closure) - { - $localKey = $this->localKey; - $range = []; - - foreach ($resultSet as $result) { - // 获取关联外键列表 - if (isset($result->$localKey)) { - $range[] = $result->$localKey; - } - } - - if (!empty($range)) { - $where = [ - [$this->foreignKey, 'in', $range], - ]; - $data = $this->eagerlyOneToMany($where, $relation, $subRelation, $closure); - - // 关联属性名 - $attr = Loader::parseName($relation); - - // 关联数据封装 - foreach ($resultSet as $result) { - $pk = $result->$localKey; - if (!isset($data[$pk])) { - $data[$pk] = []; - } - - foreach ($data[$pk] as &$relationModel) { - $relationModel->setParent(clone $result); - } - - $result->setRelation($attr, $this->resultSetBuild($data[$pk])); - } - } - } - - /** - * 预载入关联查询 - * @access public - * @param Model $result 数据对象 - * @param string $relation 当前关联名 - * @param string $subRelation 子关联名 - * @param \Closure $closure 闭包 - * @return void - */ - public function eagerlyResult(&$result, $relation, $subRelation, $closure) - { - $localKey = $this->localKey; - - if (isset($result->$localKey)) { - $pk = $result->$localKey; - $where = [ - [$this->foreignKey, '=', $pk], - ]; - $data = $this->eagerlyOneToMany($where, $relation, $subRelation, $closure); - - // 关联数据封装 - if (!isset($data[$pk])) { - $data[$pk] = []; - } - - foreach ($data[$pk] as &$relationModel) { - $relationModel->setParent(clone $result); - } - - $result->setRelation(Loader::parseName($relation), $this->resultSetBuild($data[$pk])); - } - } - - /** - * 关联统计 - * @access public - * @param Model $result 数据对象 - * @param \Closure $closure 闭包 - * @param string $aggregate 聚合查询方法 - * @param string $field 字段 - * @return integer - */ - public function relationCount($result, $closure, $aggregate = 'count', $field = '*') - { - $localKey = $this->localKey; - $count = 0; - - if (isset($result->$localKey)) { - if ($closure) { - $closure($this->query); - } - - $count = $this->query->where($this->foreignKey, '=', $result->$localKey)->$aggregate($field); - } - - return $count; - } - - /** - * 创建关联统计子查询 - * @access public - * @param \Closure $closure 闭包 - * @param string $aggregate 聚合查询方法 - * @param string $field 字段 - * @return string - */ - public function getRelationCountQuery($closure, $aggregate = 'count', $field = '*') - { - if ($closure) { - $closure($this->query); - } - - return $this->query - ->whereExp($this->foreignKey, '=' . $this->parent->getTable() . '.' . $this->parent->getPk()) - ->fetchSql() - ->$aggregate($field); - } - - /** - * 一对多 关联模型预查询 - * @access public - * @param array $where 关联预查询条件 - * @param string $relation 关联名 - * @param string $subRelation 子关联 - * @param bool $closure - * @return array - */ - protected function eagerlyOneToMany($where, $relation, $subRelation = '', $closure = false) - { - $foreignKey = $this->foreignKey; - - $this->query->removeWhereField($this->foreignKey); - - // 预载入关联查询 支持嵌套预载入 - if ($closure) { - $closure($this->query); - } - - $list = $this->query->where($where)->with($subRelation)->select(); - - // 组装模型数据 - $data = []; - - foreach ($list as $set) { - $data[$set->$foreignKey][] = $set; - } - - return $data; - } - - /** - * 保存(新增)当前关联数据对象 - * @access public - * @param mixed $data 数据 可以使用数组 关联模型对象 和 关联对象的主键 - * @return Model|false - */ - public function save($data) - { - if ($data instanceof Model) { - $data = $data->getData(); - } - - // 保存关联表数据 - $data[$this->foreignKey] = $this->parent->{$this->localKey}; - - $model = new $this->model; - - return $model->save($data) ? $model : false; - } - - /** - * 批量保存当前关联数据对象 - * @access public - * @param array $dataSet 数据集 - * @return array|false - */ - public function saveAll(array $dataSet) - { - $result = []; - - foreach ($dataSet as $key => $data) { - $result[] = $this->save($data); - } - - return empty($result) ? false : $result; - } - - /** - * 根据关联条件查询当前模型 - * @access public - * @param string $operator 比较操作符 - * @param integer $count 个数 - * @param string $id 关联表的统计字段 - * @param string $joinType JOIN类型 - * @return Query - */ - public function has($operator = '>=', $count = 1, $id = '*', $joinType = 'INNER') - { - $table = $this->query->getTable(); - $model = basename(str_replace('\\', '/', get_class($this->parent))); - $relation = basename(str_replace('\\', '/', $this->model)); - - return $this->parent->db() - ->alias($model) - ->field($model . '.*') - ->join([$table => $relation], $model . '.' . $this->localKey . '=' . $relation . '.' . $this->foreignKey, $joinType) - ->group($relation . '.' . $this->foreignKey) - ->having('count(' . $id . ')' . $operator . $count); - } - - /** - * 根据关联条件查询当前模型 - * @access public - * @param mixed $where 查询条件(数组或者闭包) - * @param mixed $fields 字段 - * @return Query - */ - public function hasWhere($where = [], $fields = null) - { - $table = $this->query->getTable(); - $model = basename(str_replace('\\', '/', get_class($this->parent))); - $relation = basename(str_replace('\\', '/', $this->model)); - - if (is_array($where)) { - $this->getQueryWhere($where, $relation); - } - - $fields = $this->getRelationQueryFields($fields, $model); - - return $this->parent->db() - ->alias($model) - ->group($model . '.' . $this->localKey) - ->field($fields) - ->join([$table => $relation], $model . '.' . $this->localKey . '=' . $relation . '.' . $this->foreignKey) - ->where($where); - } - - /** - * 执行基础查询(仅执行一次) - * @access protected - * @return void - */ - protected function baseQuery() - { - if (empty($this->baseQuery)) { - if (isset($this->parent->{$this->localKey})) { - // 关联查询带入关联条件 - $this->query->where($this->foreignKey, '=', $this->parent->{$this->localKey}); - } - - $this->baseQuery = true; - } - } - -} diff --git a/thinkphp/library/think/model/relation/HasManyThrough.php b/thinkphp/library/think/model/relation/HasManyThrough.php deleted file mode 100644 index 411f3fccf..000000000 --- a/thinkphp/library/think/model/relation/HasManyThrough.php +++ /dev/null @@ -1,155 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\model\relation; - -use think\db\Query; -use think\Exception; -use think\Loader; -use think\Model; -use think\model\Relation; - -class HasManyThrough extends Relation -{ - // 中间关联表外键 - protected $throughKey; - // 中间表模型 - protected $through; - - /** - * 架构函数 - * @access public - * @param Model $parent 上级模型对象 - * @param string $model 模型名 - * @param string $through 中间模型名 - * @param string $foreignKey 关联外键 - * @param string $throughKey 关联外键 - * @param string $localKey 当前主键 - */ - public function __construct(Model $parent, $model, $through, $foreignKey, $throughKey, $localKey) - { - $this->parent = $parent; - $this->model = $model; - $this->through = $through; - $this->foreignKey = $foreignKey; - $this->throughKey = $throughKey; - $this->localKey = $localKey; - $this->query = (new $model)->db(); - } - - /** - * 延迟获取关联数据 - * @access public - * @param string $subRelation 子关联名 - * @param \Closure $closure 闭包查询条件 - * @return \think\Collection - */ - public function getRelation($subRelation = '', $closure = null) - { - if ($closure) { - $closure($this->query); - } - - $this->baseQuery(); - - return $this->query->relation($subRelation)->select(); - } - - /** - * 根据关联条件查询当前模型 - * @access public - * @param string $operator 比较操作符 - * @param integer $count 个数 - * @param string $id 关联表的统计字段 - * @param string $joinType JOIN类型 - * @return Query - */ - public function has($operator = '>=', $count = 1, $id = '*', $joinType = 'INNER') - { - return $this->parent; - } - - /** - * 根据关联条件查询当前模型 - * @access public - * @param mixed $where 查询条件(数组或者闭包) - * @param mixed $fields 字段 - * @return Query - */ - public function hasWhere($where = [], $fields = null) - { - throw new Exception('relation not support: hasWhere'); - } - - /** - * 预载入关联查询 - * @access public - * @param array $resultSet 数据集 - * @param string $relation 当前关联名 - * @param string $subRelation 子关联名 - * @param \Closure $closure 闭包 - * @return void - */ - public function eagerlyResultSet(&$resultSet, $relation, $subRelation, $closure) - {} - - /** - * 预载入关联查询 返回模型对象 - * @access public - * @param Model $result 数据对象 - * @param string $relation 当前关联名 - * @param string $subRelation 子关联名 - * @param \Closure $closure 闭包 - * @return void - */ - public function eagerlyResult(&$result, $relation, $subRelation, $closure) - {} - - /** - * 关联统计 - * @access public - * @param Model $result 数据对象 - * @param \Closure $closure 闭包 - * @param string $aggregate 聚合查询方法 - * @param string $field 字段 - * @return integer - */ - public function relationCount($result, $closure, $aggregate = 'count', $field = '*') - {} - - /** - * 执行基础查询(仅执行一次) - * @access protected - * @return void - */ - protected function baseQuery() - { - if (empty($this->baseQuery) && $this->parent->getData()) { - $through = $this->through; - $alias = Loader::parseName(basename(str_replace('\\', '/', $this->model))); - $throughTable = $through::getTable(); - $pk = (new $through)->getPk(); - $throughKey = $this->throughKey; - $modelTable = $this->parent->getTable(); - $fields = $this->getQueryFields($alias); - - $this->query - ->field($fields) - ->alias($alias) - ->join($throughTable, $throughTable . '.' . $pk . '=' . $alias . '.' . $throughKey) - ->join($modelTable, $modelTable . '.' . $this->localKey . '=' . $throughTable . '.' . $this->foreignKey) - ->where($throughTable . '.' . $this->foreignKey, $this->parent->{$this->localKey}); - - $this->baseQuery = true; - } - } - -} diff --git a/thinkphp/library/think/model/relation/HasOne.php b/thinkphp/library/think/model/relation/HasOne.php deleted file mode 100644 index 02c743c59..000000000 --- a/thinkphp/library/think/model/relation/HasOne.php +++ /dev/null @@ -1,226 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\model\relation; - -use think\db\Query; -use think\Loader; -use think\Model; - -class HasOne extends OneToOne -{ - /** - * 架构函数 - * @access public - * @param Model $parent 上级模型对象 - * @param string $model 模型名 - * @param string $foreignKey 关联外键 - * @param string $localKey 当前模型主键 - */ - public function __construct(Model $parent, $model, $foreignKey, $localKey) - { - $this->parent = $parent; - $this->model = $model; - $this->foreignKey = $foreignKey; - $this->localKey = $localKey; - $this->joinType = 'INNER'; - $this->query = (new $model)->db(); - } - - /** - * 延迟获取关联数据 - * @access public - * @param string $subRelation 子关联名 - * @param \Closure $closure 闭包查询条件 - * @return Model - */ - public function getRelation($subRelation = '', $closure = null) - { - $localKey = $this->localKey; - - if ($closure) { - $closure($this->query); - } - - // 判断关联类型执行查询 - $relationModel = $this->query - ->removeWhereField($this->foreignKey) - ->where($this->foreignKey, $this->parent->$localKey) - ->relation($subRelation) - ->find(); - - if ($relationModel) { - $relationModel->setParent(clone $this->parent); - } - - return $relationModel; - } - - /** - * 根据关联条件查询当前模型 - * @access public - * @param string $operator 比较操作符 - * @param integer $count 个数 - * @param string $id 关联表的统计字段 - * @param string $joinType JOIN类型 - * @return Query - */ - public function has($operator = '>=', $count = 1, $id = '*', $joinType = 'INNER') - { - $table = $this->query->getTable(); - $model = basename(str_replace('\\', '/', get_class($this->parent))); - $relation = basename(str_replace('\\', '/', $this->model)); - $localKey = $this->localKey; - $foreignKey = $this->foreignKey; - - return $this->parent->db() - ->alias($model) - ->whereExists(function ($query) use ($table, $model, $relation, $localKey, $foreignKey) { - $query->table([$table => $relation]) - ->field($relation . '.' . $foreignKey) - ->whereExp($model . '.' . $localKey, '=' . $relation . '.' . $foreignKey); - }); - } - - /** - * 根据关联条件查询当前模型 - * @access public - * @param mixed $where 查询条件(数组或者闭包) - * @param mixed $fields 字段 - * @return Query - */ - public function hasWhere($where = [], $fields = null) - { - $table = $this->query->getTable(); - $model = basename(str_replace('\\', '/', get_class($this->parent))); - $relation = basename(str_replace('\\', '/', $this->model)); - - if (is_array($where)) { - $this->getQueryWhere($where, $relation); - } - - $fields = $this->getRelationQueryFields($fields, $model); - - return $this->parent->db() - ->alias($model) - ->field($fields) - ->join([$table => $relation], $model . '.' . $this->localKey . '=' . $relation . '.' . $this->foreignKey, $this->joinType) - ->where($where); - } - - /** - * 预载入关联查询(数据集) - * @access protected - * @param array $resultSet 数据集 - * @param string $relation 当前关联名 - * @param string $subRelation 子关联名 - * @param \Closure $closure 闭包 - * @return void - */ - protected function eagerlySet(&$resultSet, $relation, $subRelation, $closure) - { - $localKey = $this->localKey; - $foreignKey = $this->foreignKey; - - $range = []; - foreach ($resultSet as $result) { - // 获取关联外键列表 - if (isset($result->$localKey)) { - $range[] = $result->$localKey; - } - } - - if (!empty($range)) { - $this->query->removeWhereField($foreignKey); - - $data = $this->eagerlyWhere([ - [$foreignKey, 'in', $range], - ], $foreignKey, $relation, $subRelation, $closure); - - // 关联属性名 - $attr = Loader::parseName($relation); - - // 关联数据封装 - foreach ($resultSet as $result) { - // 关联模型 - if (!isset($data[$result->$localKey])) { - $relationModel = null; - } else { - $relationModel = $data[$result->$localKey]; - $relationModel->setParent(clone $result); - $relationModel->isUpdate(true); - } - - if (!empty($this->bindAttr)) { - // 绑定关联属性 - $this->bindAttr($relationModel, $result, $this->bindAttr); - } else { - // 设置关联属性 - $result->setRelation($attr, $relationModel); - } - } - } - } - - /** - * 预载入关联查询(数据) - * @access protected - * @param Model $result 数据对象 - * @param string $relation 当前关联名 - * @param string $subRelation 子关联名 - * @param \Closure $closure 闭包 - * @return void - */ - protected function eagerlyOne(&$result, $relation, $subRelation, $closure) - { - $localKey = $this->localKey; - $foreignKey = $this->foreignKey; - - $this->query->removeWhereField($foreignKey); - - $data = $this->eagerlyWhere([ - [$foreignKey, '=', $result->$localKey], - ], $foreignKey, $relation, $subRelation, $closure); - - // 关联模型 - if (!isset($data[$result->$localKey])) { - $relationModel = null; - } else { - $relationModel = $data[$result->$localKey]; - $relationModel->setParent(clone $result); - $relationModel->isUpdate(true); - } - - if (!empty($this->bindAttr)) { - // 绑定关联属性 - $this->bindAttr($relationModel, $result, $this->bindAttr); - } else { - $result->setRelation(Loader::parseName($relation), $relationModel); - } - } - - /** - * 执行基础查询(仅执行一次) - * @access protected - * @return void - */ - protected function baseQuery() - { - if (empty($this->baseQuery)) { - if (isset($this->parent->{$this->localKey})) { - // 关联查询带入关联条件 - $this->query->where($this->foreignKey, '=', $this->parent->{$this->localKey}); - } - - $this->baseQuery = true; - } - } -} diff --git a/thinkphp/library/think/model/relation/MorphMany.php b/thinkphp/library/think/model/relation/MorphMany.php deleted file mode 100644 index a50ed8dc8..000000000 --- a/thinkphp/library/think/model/relation/MorphMany.php +++ /dev/null @@ -1,322 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\model\relation; - -use think\db\Query; -use think\Exception; -use think\Loader; -use think\Model; -use think\model\Relation; - -class MorphMany extends Relation -{ - // 多态字段 - protected $morphKey; - protected $morphType; - // 多态类型 - protected $type; - - /** - * 架构函数 - * @access public - * @param Model $parent 上级模型对象 - * @param string $model 模型名 - * @param string $morphKey 关联外键 - * @param string $morphType 多态字段名 - * @param string $type 多态类型 - */ - public function __construct(Model $parent, $model, $morphKey, $morphType, $type) - { - $this->parent = $parent; - $this->model = $model; - $this->type = $type; - $this->morphKey = $morphKey; - $this->morphType = $morphType; - $this->query = (new $model)->db(); - } - - /** - * 延迟获取关联数据 - * @access public - * @param string $subRelation 子关联名 - * @param \Closure $closure 闭包查询条件 - * @return \think\Collection - */ - public function getRelation($subRelation = '', $closure = null) - { - if ($closure) { - $closure($this->query); - } - - $this->baseQuery(); - - $list = $this->query->relation($subRelation)->select(); - $parent = clone $this->parent; - - foreach ($list as &$model) { - $model->setParent($parent); - } - - return $list; - } - - /** - * 根据关联条件查询当前模型 - * @access public - * @param string $operator 比较操作符 - * @param integer $count 个数 - * @param string $id 关联表的统计字段 - * @param string $joinType JOIN类型 - * @return Query - */ - public function has($operator = '>=', $count = 1, $id = '*', $joinType = 'INNER') - { - throw new Exception('relation not support: has'); - } - - /** - * 根据关联条件查询当前模型 - * @access public - * @param mixed $where 查询条件(数组或者闭包) - * @param mixed $fields 字段 - * @return Query - */ - public function hasWhere($where = [], $fields = null) - { - throw new Exception('relation not support: hasWhere'); - } - - /** - * 预载入关联查询 - * @access public - * @param array $resultSet 数据集 - * @param string $relation 当前关联名 - * @param string $subRelation 子关联名 - * @param \Closure $closure 闭包 - * @return void - */ - public function eagerlyResultSet(&$resultSet, $relation, $subRelation, $closure) - { - $morphType = $this->morphType; - $morphKey = $this->morphKey; - $type = $this->type; - $range = []; - - foreach ($resultSet as $result) { - $pk = $result->getPk(); - // 获取关联外键列表 - if (isset($result->$pk)) { - $range[] = $result->$pk; - } - } - - if (!empty($range)) { - $where = [ - [$morphKey, 'in', $range], - [$morphType, '=', $type], - ]; - $data = $this->eagerlyMorphToMany($where, $relation, $subRelation, $closure); - - // 关联属性名 - $attr = Loader::parseName($relation); - - // 关联数据封装 - foreach ($resultSet as $result) { - if (!isset($data[$result->$pk])) { - $data[$result->$pk] = []; - } - - foreach ($data[$result->$pk] as &$relationModel) { - $relationModel->setParent(clone $result); - $relationModel->isUpdate(true); - } - - $result->setRelation($attr, $this->resultSetBuild($data[$result->$pk])); - } - } - } - - /** - * 预载入关联查询 - * @access public - * @param Model $result 数据对象 - * @param string $relation 当前关联名 - * @param string $subRelation 子关联名 - * @param \Closure $closure 闭包 - * @return void - */ - public function eagerlyResult(&$result, $relation, $subRelation, $closure) - { - $pk = $result->getPk(); - - if (isset($result->$pk)) { - $key = $result->$pk; - $where = [ - [$this->morphKey, '=', $key], - [$this->morphType, '=', $this->type], - ]; - $data = $this->eagerlyMorphToMany($where, $relation, $subRelation, $closure); - - if (!isset($data[$key])) { - $data[$key] = []; - } - - foreach ($data[$key] as &$relationModel) { - $relationModel->setParent(clone $result); - $relationModel->isUpdate(true); - } - - $result->setRelation(Loader::parseName($relation), $this->resultSetBuild($data[$key])); - } - } - - /** - * 关联统计 - * @access public - * @param Model $result 数据对象 - * @param \Closure $closure 闭包 - * @param string $aggregate 聚合查询方法 - * @param string $field 字段 - * @return integer - */ - public function relationCount($result, $closure, $aggregate = 'count', $field = '*') - { - $pk = $result->getPk(); - $count = 0; - - if (isset($result->$pk)) { - if ($closure) { - $closur($this->query); - } - - $count = $this->query - ->where([ - [$this->morphKey, '=', $result->$pk], - [$this->morphType, '=', $this->type], - ]) - ->$aggregate($field); - } - - return $count; - } - - /** - * 获取关联统计子查询 - * @access public - * @param \Closure $closure 闭包 - * @param string $aggregate 聚合查询方法 - * @param string $field 字段 - * @return string - */ - public function getRelationCountQuery($closure, $aggregate = 'count', $field = '*') - { - if ($closure) { - $closure($this->query); - } - - return $this->query - ->whereExp($this->morphKey, '=' . $this->parent->getTable() . '.' . $this->parent->getPk()) - ->where($this->morphType, '=', $this->type) - ->fetchSql() - ->$aggregate($field); - } - - /** - * 多态一对多 关联模型预查询 - * @access protected - * @param array $where 关联预查询条件 - * @param string $relation 关联名 - * @param string $subRelation 子关联 - * @param bool|\Closure $closure 闭包 - * @return array - */ - protected function eagerlyMorphToMany($where, $relation, $subRelation = '', $closure = false) - { - // 预载入关联查询 支持嵌套预载入 - $this->query->removeOption('where'); - - if ($closure) { - $closure($this->query); - } - - $list = $this->query->where($where)->with($subRelation)->select(); - $morphKey = $this->morphKey; - - // 组装模型数据 - $data = []; - foreach ($list as $set) { - $data[$set->$morphKey][] = $set; - } - - return $data; - } - - /** - * 保存(新增)当前关联数据对象 - * @access public - * @param mixed $data 数据 可以使用数组 关联模型对象 和 关联对象的主键 - * @return Model|false - */ - public function save($data) - { - if ($data instanceof Model) { - $data = $data->getData(); - } - - // 保存关联表数据 - $pk = $this->parent->getPk(); - - $model = new $this->model; - - $data[$this->morphKey] = $this->parent->$pk; - $data[$this->morphType] = $this->type; - - return $model->save($data) ? $model : false; - } - - /** - * 批量保存当前关联数据对象 - * @access public - * @param array $dataSet 数据集 - * @return array|false - */ - public function saveAll(array $dataSet) - { - $result = []; - - foreach ($dataSet as $key => $data) { - $result[] = $this->save($data); - } - - return empty($result) ? false : $result; - } - - /** - * 执行基础查询(仅执行一次) - * @access protected - * @return void - */ - protected function baseQuery() - { - if (empty($this->baseQuery) && $this->parent->getData()) { - $pk = $this->parent->getPk(); - - $this->query->where([ - [$this->morphKey, '=', $this->parent->$pk], - [$this->morphType, '=', $this->type], - ]); - - $this->baseQuery = true; - } - } - -} diff --git a/thinkphp/library/think/model/relation/MorphOne.php b/thinkphp/library/think/model/relation/MorphOne.php deleted file mode 100644 index 094440089..000000000 --- a/thinkphp/library/think/model/relation/MorphOne.php +++ /dev/null @@ -1,245 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\model\relation; - -use think\db\Query; -use think\Exception; -use think\Loader; -use think\Model; -use think\model\Relation; - -class MorphOne extends Relation -{ - // 多态字段 - protected $morphKey; - protected $morphType; - // 多态类型 - protected $type; - - /** - * 构造函数 - * @access public - * @param Model $parent 上级模型对象 - * @param string $model 模型名 - * @param string $morphKey 关联外键 - * @param string $morphType 多态字段名 - * @param string $type 多态类型 - */ - public function __construct(Model $parent, $model, $morphKey, $morphType, $type) - { - $this->parent = $parent; - $this->model = $model; - $this->type = $type; - $this->morphKey = $morphKey; - $this->morphType = $morphType; - $this->query = (new $model)->db(); - } - - /** - * 延迟获取关联数据 - * @access public - * @param string $subRelation 子关联名 - * @param \Closure $closure 闭包查询条件 - * @return Model - */ - public function getRelation($subRelation = '', $closure = null) - { - if ($closure) { - $closure($this->query); - } - - $this->baseQuery(); - - $relationModel = $this->query->relation($subRelation)->find(); - - if ($relationModel) { - $relationModel->setParent(clone $this->parent); - } - - return $relationModel; - } - - /** - * 根据关联条件查询当前模型 - * @access public - * @param string $operator 比较操作符 - * @param integer $count 个数 - * @param string $id 关联表的统计字段 - * @param string $joinType JOIN类型 - * @return Query - */ - public function has($operator = '>=', $count = 1, $id = '*', $joinType = 'INNER') - { - return $this->parent; - } - - /** - * 根据关联条件查询当前模型 - * @access public - * @param mixed $where 查询条件(数组或者闭包) - * @param mixed $fields 字段 - * @return Query - */ - public function hasWhere($where = [], $fields = null) - { - throw new Exception('relation not support: hasWhere'); - } - - /** - * 预载入关联查询 - * @access public - * @param array $resultSet 数据集 - * @param string $relation 当前关联名 - * @param string $subRelation 子关联名 - * @param \Closure $closure 闭包 - * @return void - */ - public function eagerlyResultSet(&$resultSet, $relation, $subRelation, $closure) - { - $morphType = $this->morphType; - $morphKey = $this->morphKey; - $type = $this->type; - $range = []; - - foreach ($resultSet as $result) { - $pk = $result->getPk(); - // 获取关联外键列表 - if (isset($result->$pk)) { - $range[] = $result->$pk; - } - } - - if (!empty($range)) { - $data = $this->eagerlyMorphToOne([ - [$morphKey, 'in', $range], - [$morphType, '=', $type], - ], $relation, $subRelation, $closure); - - // 关联属性名 - $attr = Loader::parseName($relation); - - // 关联数据封装 - foreach ($resultSet as $result) { - if (!isset($data[$result->$pk])) { - $relationModel = null; - } else { - $relationModel = $data[$result->$pk]; - $relationModel->setParent(clone $result); - $relationModel->isUpdate(true); - } - - $result->setRelation($attr, $relationModel); - } - } - } - - /** - * 预载入关联查询 - * @access public - * @param Model $result 数据对象 - * @param string $relation 当前关联名 - * @param string $subRelation 子关联名 - * @param \Closure $closure 闭包 - * @return void - */ - public function eagerlyResult(&$result, $relation, $subRelation, $closure) - { - $pk = $result->getPk(); - - if (isset($result->$pk)) { - $pk = $result->$pk; - $data = $this->eagerlyMorphToOne([ - [$this->morphKey, '=', $pk], - [$this->morphType, '=', $this->type], - ], $relation, $subRelation, $closure); - - if (isset($data[$pk])) { - $relationModel = $data[$pk]; - $relationModel->setParent(clone $result); - $relationModel->isUpdate(true); - } else { - $relationModel = null; - } - - $result->setRelation(Loader::parseName($relation), $relationModel); - } - } - - /** - * 多态一对一 关联模型预查询 - * @access protected - * @param array $where 关联预查询条件 - * @param string $relation 关联名 - * @param string $subRelation 子关联 - * @param bool|\Closure $closure 闭包 - * @return array - */ - protected function eagerlyMorphToOne($where, $relation, $subRelation = '', $closure = false) - { - // 预载入关联查询 支持嵌套预载入 - if ($closure) { - $closure($this->query); - } - - $list = $this->query->where($where)->with($subRelation)->find(); - $morphKey = $this->morphKey; - - // 组装模型数据 - $data = []; - - foreach ($list as $set) { - $data[$set->$morphKey] = $set; - } - - return $data; - } - - /** - * 保存(新增)当前关联数据对象 - * @access public - * @param mixed $data 数据 可以使用数组 关联模型对象 和 关联对象的主键 - * @return Model|false - */ - public function save($data) - { - if ($data instanceof Model) { - $data = $data->getData(); - } - // 保存关联表数据 - $pk = $this->parent->getPk(); - - $model = new $this->model; - - $data[$this->morphKey] = $this->parent->$pk; - $data[$this->morphType] = $this->type; - return $model->save($data) ? $model : false; - } - - /** - * 执行基础查询(进执行一次) - * @access protected - * @return void - */ - protected function baseQuery() - { - if (empty($this->baseQuery) && $this->parent->getData()) { - $pk = $this->parent->getPk(); - - $this->query->where([ - [$this->morphKey, '=', $this->parent->$pk], - [$this->morphType, '=', $this->type], - ]); - $this->baseQuery = true; - } - } - -} diff --git a/thinkphp/library/think/model/relation/MorphTo.php b/thinkphp/library/think/model/relation/MorphTo.php deleted file mode 100644 index 208c6ecf8..000000000 --- a/thinkphp/library/think/model/relation/MorphTo.php +++ /dev/null @@ -1,306 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\model\relation; - -use think\Exception; -use think\Loader; -use think\Model; -use think\model\Relation; - -class MorphTo extends Relation -{ - // 多态字段 - protected $morphKey; - protected $morphType; - // 多态别名 - protected $alias; - // 关联名 - protected $relation; - - /** - * 架构函数 - * @access public - * @param Model $parent 上级模型对象 - * @param string $morphType 多态字段名 - * @param string $morphKey 外键名 - * @param array $alias 多态别名定义 - * @param string $relation 关联名 - */ - public function __construct(Model $parent, $morphType, $morphKey, $alias = [], $relation = null) - { - $this->parent = $parent; - $this->morphType = $morphType; - $this->morphKey = $morphKey; - $this->alias = $alias; - $this->relation = $relation; - } - - /** - * 获取当前的关联模型类的实例 - * @access public - * @return Model - */ - public function getModel() - { - $morphType = $this->morphType; - $model = $this->parseModel($this->parent->$morphType); - - return (new $model); - } - - /** - * 延迟获取关联数据 - * @access public - * @param string $subRelation 子关联名 - * @param \Closure $closure 闭包查询条件 - * @return Model - */ - public function getRelation($subRelation = '', $closure = null) - { - $morphKey = $this->morphKey; - $morphType = $this->morphType; - - // 多态模型 - $model = $this->parseModel($this->parent->$morphType); - - // 主键数据 - $pk = $this->parent->$morphKey; - - $relationModel = (new $model)->relation($subRelation)->find($pk); - - if ($relationModel) { - $relationModel->setParent(clone $this->parent); - } - - return $relationModel; - } - - /** - * 根据关联条件查询当前模型 - * @access public - * @param string $operator 比较操作符 - * @param integer $count 个数 - * @param string $id 关联表的统计字段 - * @param string $joinType JOIN类型 - * @return Query - */ - public function has($operator = '>=', $count = 1, $id = '*', $joinType = 'INNER') - { - return $this->parent; - } - - /** - * 根据关联条件查询当前模型 - * @access public - * @param mixed $where 查询条件(数组或者闭包) - * @param mixed $fields 字段 - * @return Query - */ - public function hasWhere($where = [], $fields = null) - { - throw new Exception('relation not support: hasWhere'); - } - - /** - * 解析模型的完整命名空间 - * @access public - * @param string $model 模型名(或者完整类名) - * @return string - */ - protected function parseModel($model) - { - if (isset($this->alias[$model])) { - $model = $this->alias[$model]; - } - - if (false === strpos($model, '\\')) { - $path = explode('\\', get_class($this->parent)); - array_pop($path); - array_push($path, Loader::parseName($model, 1)); - $model = implode('\\', $path); - } - - return $model; - } - - /** - * 设置多态别名 - * @access public - * @param array $alias 别名定义 - * @return $this - */ - public function setAlias($alias) - { - $this->alias = $alias; - - return $this; - } - - /** - * 移除关联查询参数 - * @access public - * @return $this - */ - public function removeOption() - { - return $this; - } - - /** - * 预载入关联查询 - * @access public - * @param array $resultSet 数据集 - * @param string $relation 当前关联名 - * @param string $subRelation 子关联名 - * @param \Closure $closure 闭包 - * @return void - * @throws Exception - */ - public function eagerlyResultSet(&$resultSet, $relation, $subRelation, $closure) - { - $morphKey = $this->morphKey; - $morphType = $this->morphType; - $range = []; - - foreach ($resultSet as $result) { - // 获取关联外键列表 - if (!empty($result->$morphKey)) { - $range[$result->$morphType][] = $result->$morphKey; - } - } - - if (!empty($range)) { - // 关联属性名 - $attr = Loader::parseName($relation); - - foreach ($range as $key => $val) { - // 多态类型映射 - $model = $this->parseModel($key); - $obj = new $model; - $pk = $obj->getPk(); - $list = $obj->all($val, $subRelation); - $data = []; - - foreach ($list as $k => $vo) { - $data[$vo->$pk] = $vo; - } - - foreach ($resultSet as $result) { - if ($key == $result->$morphType) { - // 关联模型 - if (!isset($data[$result->$morphKey])) { - throw new Exception('relation data not exists :' . $this->model); - } else { - $relationModel = $data[$result->$morphKey]; - $relationModel->setParent(clone $result); - $relationModel->isUpdate(true); - - $result->setRelation($attr, $relationModel); - } - } - } - } - } - } - - /** - * 预载入关联查询 - * @access public - * @param Model $result 数据对象 - * @param string $relation 当前关联名 - * @param string $subRelation 子关联名 - * @param \Closure $closure 闭包 - * @return void - */ - public function eagerlyResult(&$result, $relation, $subRelation, $closure) - { - $morphKey = $this->morphKey; - $morphType = $this->morphType; - // 多态类型映射 - $model = $this->parseModel($result->{$this->morphType}); - - $this->eagerlyMorphToOne($model, $relation, $result, $subRelation); - } - - /** - * 关联统计 - * @access public - * @param Model $result 数据对象 - * @param \Closure $closure 闭包 - * @param string $aggregate 聚合查询方法 - * @param string $field 字段 - * @return integer - */ - public function relationCount($result, $closure, $aggregate = 'count', $field = '*') - {} - - /** - * 多态MorphTo 关联模型预查询 - * @access protected - * @param string $model 关联模型对象 - * @param string $relation 关联名 - * @param Model $result - * @param string $subRelation 子关联 - * @return void - */ - protected function eagerlyMorphToOne($model, $relation, &$result, $subRelation = '') - { - // 预载入关联查询 支持嵌套预载入 - $pk = $this->parent->{$this->morphKey}; - $data = (new $model)->with($subRelation)->find($pk); - - if ($data) { - $data->setParent(clone $result); - $data->isUpdate(true); - } - - $result->setRelation(Loader::parseName($relation), $data ?: null); - } - - /** - * 添加关联数据 - * @access public - * @param Model $model 关联模型对象 - * @param string $type 多态类型 - * @return Model - */ - public function associate($model, $type = '') - { - $morphKey = $this->morphKey; - $morphType = $this->morphType; - $pk = $model->getPk(); - - $this->parent->setAttr($morphKey, $model->$pk); - $this->parent->setAttr($morphType, $type ?: get_class($model)); - $this->parent->save(); - - return $this->parent->setRelation($this->relation, $model); - } - - /** - * 注销关联数据 - * @access public - * @return Model - */ - public function dissociate() - { - $morphKey = $this->morphKey; - $morphType = $this->morphType; - - $this->parent->setAttr($morphKey, null); - $this->parent->setAttr($morphType, null); - $this->parent->save(); - - return $this->parent->setRelation($this->relation, null); - } - -} diff --git a/thinkphp/library/think/model/relation/OneToOne.php b/thinkphp/library/think/model/relation/OneToOne.php deleted file mode 100644 index 195d0bdda..000000000 --- a/thinkphp/library/think/model/relation/OneToOne.php +++ /dev/null @@ -1,342 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\model\relation; - -use think\db\Query; -use think\Exception; -use think\Loader; -use think\Model; -use think\model\Relation; - -/** - * Class OneToOne - * @package think\model\relation - * - */ -abstract class OneToOne extends Relation -{ - // 预载入方式 0 -JOIN 1 -IN - protected $eagerlyType = 1; - // 当前关联的JOIN类型 - protected $joinType; - // 要绑定的属性 - protected $bindAttr = []; - // 关联名 - protected $relation; - - /** - * 设置join类型 - * @access public - * @param string $type JOIN类型 - * @return $this - */ - public function joinType($type) - { - $this->joinType = $type; - return $this; - } - - /** - * 预载入关联查询(JOIN方式) - * @access public - * @param Query $query 查询对象 - * @param string $relation 关联名 - * @param string $subRelation 子关联 - * @param \Closure $closure 闭包条件 - * @param bool $first - * @return void - */ - public function eagerly(Query $query, $relation, $subRelation, $closure, $first) - { - $name = Loader::parseName(basename(str_replace('\\', '/', get_class($this->parent)))); - - if ($first) { - $table = $query->getTable(); - $query->table([$table => $name]); - - if ($query->getOptions('field')) { - $field = $query->getOptions('field'); - $query->removeOption('field'); - } else { - $field = true; - } - - $query->field($field, false, $table, $name); - } - - // 预载入封装 - $joinTable = $this->query->getTable(); - $joinAlias = $relation; - $query->via($joinAlias); - - if ($this instanceof BelongsTo) { - $query->join([$joinTable => $joinAlias], $name . '.' . $this->foreignKey . '=' . $joinAlias . '.' . $this->localKey, $this->joinType); - } else { - $query->join([$joinTable => $joinAlias], $name . '.' . $this->localKey . '=' . $joinAlias . '.' . $this->foreignKey, $this->joinType); - } - - if ($closure) { - // 执行闭包查询 - $closure($query); - // 使用withField指定获取关联的字段,如 - // $query->where(['id'=>1])->withField('id,name'); - if ($query->getOptions('with_field')) { - $field = $query->getOptions('with_field'); - $query->removeOption('with_field'); - } else { - $field = true; - } - } elseif (isset($this->option['field'])) { - $field = $this->option['field']; - } else { - $field = true; - } - - $query->field($field, false, $joinTable, $joinAlias, $relation . '__'); - } - - /** - * 预载入关联查询(数据集) - * @access protected - * @param array $resultSet - * @param string $relation - * @param string $subRelation - * @param \Closure $closure - * @return mixed - */ - abstract protected function eagerlySet(&$resultSet, $relation, $subRelation, $closure); - - /** - * 预载入关联查询(数据) - * @access protected - * @param Model $result - * @param string $relation - * @param string $subRelation - * @param \Closure $closure - * @return mixed - */ - abstract protected function eagerlyOne(&$result, $relation, $subRelation, $closure); - - /** - * 预载入关联查询(数据集) - * @access public - * @param array $resultSet 数据集 - * @param string $relation 当前关联名 - * @param string $subRelation 子关联名 - * @param \Closure $closure 闭包 - * @return void - */ - public function eagerlyResultSet(&$resultSet, $relation, $subRelation, $closure) - { - if (1 == $this->eagerlyType) { - // IN查询 - $this->eagerlySet($resultSet, $relation, $subRelation, $closure); - } else { - // 模型关联组装 - foreach ($resultSet as $result) { - $this->match($this->model, $relation, $result); - } - } - } - - /** - * 预载入关联查询(数据) - * @access public - * @param Model $result 数据对象 - * @param string $relation 当前关联名 - * @param string $subRelation 子关联名 - * @param \Closure $closure 闭包 - * @return void - */ - public function eagerlyResult(&$result, $relation, $subRelation, $closure) - { - if (1 == $this->eagerlyType) { - // IN查询 - $this->eagerlyOne($result, $relation, $subRelation, $closure); - } else { - // 模型关联组装 - $this->match($this->model, $relation, $result); - } - } - - /** - * 保存(新增)当前关联数据对象 - * @access public - * @param mixed $data 数据 可以使用数组 关联模型对象 和 关联对象的主键 - * @return Model|false - */ - public function save($data) - { - if ($data instanceof Model) { - $data = $data->getData(); - } - - $model = new $this->model; - // 保存关联表数据 - $data[$this->foreignKey] = $this->parent->{$this->localKey}; - - return $model->save($data) ? $model : false; - } - - /** - * 设置预载入方式 - * @access public - * @param integer $type 预载入方式 0 JOIN查询 1 IN查询 - * @return $this - */ - public function setEagerlyType($type) - { - $this->eagerlyType = $type; - - return $this; - } - - /** - * 获取预载入方式 - * @access public - * @return integer - */ - public function getEagerlyType() - { - return $this->eagerlyType; - } - - /** - * 绑定关联表的属性到父模型属性 - * @access public - * @param mixed $attr 要绑定的属性列表 - * @return $this - */ - public function bind($attr) - { - if (is_string($attr)) { - $attr = explode(',', $attr); - } - $this->bindAttr = $attr; - - return $this; - } - - /** - * 获取绑定属性 - * @access public - * @return array - */ - public function getBindAttr() - { - return $this->bindAttr; - } - - /** - * 关联统计 - * @access public - * @param Model $result 数据对象 - * @param \Closure $closure 闭包 - * @param string $aggregate 聚合查询方法 - * @param string $field 字段 - * @return integer - */ - public function relationCount($result, $closure, $aggregate = 'count', $field = '*') - { - throw new Exception('relation not support: ' . $aggregate); - } - - /** - * 一对一 关联模型预查询拼装 - * @access public - * @param string $model 模型名称 - * @param string $relation 关联名 - * @param Model $result 模型对象实例 - * @return void - */ - protected function match($model, $relation, &$result) - { - // 重新组装模型数据 - foreach ($result->getData() as $key => $val) { - if (strpos($key, '__')) { - list($name, $attr) = explode('__', $key, 2); - if ($name == $relation) { - $list[$name][$attr] = $val; - unset($result->$key); - } - } - } - - if (isset($list[$relation])) { - $relationModel = new $model($list[$relation]); - $relationModel->setParent(clone $result); - $relationModel->isUpdate(true); - - if (!empty($this->bindAttr)) { - $this->bindAttr($relationModel, $result, $this->bindAttr); - } - } else { - $relationModel = null; - } - - $result->setRelation(Loader::parseName($relation), $relationModel); - } - - /** - * 绑定关联属性到父模型 - * @access protected - * @param Model $model 关联模型对象 - * @param Model $result 父模型对象 - * @return void - * @throws Exception - */ - protected function bindAttr($model, &$result) - { - foreach ($this->bindAttr as $key => $attr) { - $key = is_numeric($key) ? $attr : $key; - if (isset($result->$key)) { - throw new Exception('bind attr has exists:' . $key); - } else { - $result->setAttr($key, $model ? $model->$attr : null); - } - } - } - - /** - * 一对一 关联模型预查询(IN方式) - * @access public - * @param array $where 关联预查询条件 - * @param string $key 关联键名 - * @param string $relation 关联名 - * @param string $subRelation 子关联 - * @param bool|\Closure $closure - * @return array - */ - protected function eagerlyWhere($where, $key, $relation, $subRelation = '', $closure = false) - { - // 预载入关联查询 支持嵌套预载入 - if ($closure) { - $closure($this->query); - - if ($field = $this->query->getOptions('with_field')) { - $this->query->field($field)->removeOption('with_field'); - } - } - - $list = $this->query->where($where)->with($subRelation)->select(); - - // 组装模型数据 - $data = []; - - foreach ($list as $set) { - $data[$set->$key] = $set; - } - - return $data; - } - -} diff --git a/thinkphp/library/think/paginator/Collection.php b/thinkphp/library/think/paginator/Collection.php deleted file mode 100644 index 4005c9ff9..000000000 --- a/thinkphp/library/think/paginator/Collection.php +++ /dev/null @@ -1,74 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\paginator; - -use Exception; -use think\Paginator; - -/** - * Class Collection - * @package think\paginator - * @method integer total() - * @method integer listRows() - * @method integer currentPage() - * @method string render() - * @method Paginator fragment($fragment) - * @method Paginator appends($key, $value) - * @method integer lastPage() - * @method boolean hasPages() - */ -class Collection extends \think\Collection -{ - - /** @var Paginator */ - protected $paginator; - - public function __construct($items = [], Paginator $paginator = null) - { - $this->paginator = $paginator; - parent::__construct($items); - } - - public static function make($items = [], Paginator $paginator = null) - { - return new static($items, $paginator); - } - - public function toArray() - { - if ($this->paginator) { - try { - $total = $this->total(); - } catch (Exception $e) { - $total = null; - } - - return [ - 'total' => $total, - 'per_page' => $this->listRows(), - 'current_page' => $this->currentPage(), - 'data' => parent::toArray(), - ]; - } else { - return parent::toArray(); - } - } - - public function __call($method, $args) - { - if ($this->paginator && method_exists($this->paginator, $method)) { - return call_user_func_array([$this->paginator, $method], $args); - } else { - throw new Exception('method not exists:' . __CLASS__ . '->' . $method); - } - } -} diff --git a/thinkphp/library/think/paginator/driver/Bootstrap.php b/thinkphp/library/think/paginator/driver/Bootstrap.php deleted file mode 100644 index ab5315c06..000000000 --- a/thinkphp/library/think/paginator/driver/Bootstrap.php +++ /dev/null @@ -1,206 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\paginator\driver; - -use think\Paginator; - -class Bootstrap extends Paginator -{ - - /** - * 上一页按钮 - * @param string $text - * @return string - */ - protected function getPreviousButton($text = "«") - { - - if ($this->currentPage() <= 1) { - return $this->getDisabledTextWrapper($text); - } - - $url = $this->url( - $this->currentPage() - 1 - ); - - return $this->getPageLinkWrapper($url, $text); - } - - /** - * 下一页按钮 - * @param string $text - * @return string - */ - protected function getNextButton($text = '»') - { - if (!$this->hasMore) { - return $this->getDisabledTextWrapper($text); - } - - $url = $this->url($this->currentPage() + 1); - - return $this->getPageLinkWrapper($url, $text); - } - - /** - * 页码按钮 - * @return string - */ - protected function getLinks() - { - if ($this->simple) { - return ''; - } - - $block = [ - 'first' => null, - 'slider' => null, - 'last' => null, - ]; - - $side = 3; - $window = $side * 2; - - if ($this->lastPage < $window + 6) { - $block['first'] = $this->getUrlRange(1, $this->lastPage); - } elseif ($this->currentPage <= $window) { - $block['first'] = $this->getUrlRange(1, $window + 2); - $block['last'] = $this->getUrlRange($this->lastPage - 1, $this->lastPage); - } elseif ($this->currentPage > ($this->lastPage - $window)) { - $block['first'] = $this->getUrlRange(1, 2); - $block['last'] = $this->getUrlRange($this->lastPage - ($window + 2), $this->lastPage); - } else { - $block['first'] = $this->getUrlRange(1, 2); - $block['slider'] = $this->getUrlRange($this->currentPage - $side, $this->currentPage + $side); - $block['last'] = $this->getUrlRange($this->lastPage - 1, $this->lastPage); - } - - $html = ''; - - if (is_array($block['first'])) { - $html .= $this->getUrlLinks($block['first']); - } - - if (is_array($block['slider'])) { - $html .= $this->getDots(); - $html .= $this->getUrlLinks($block['slider']); - } - - if (is_array($block['last'])) { - $html .= $this->getDots(); - $html .= $this->getUrlLinks($block['last']); - } - - return $html; - } - - /** - * 渲染分页html - * @return mixed - */ - public function render() - { - if ($this->hasPages()) { - if ($this->simple) { - return sprintf( - '
            %s %s
          ', - $this->getPreviousButton(), - $this->getNextButton() - ); - } else { - return sprintf( - '
            %s %s %s
          ', - $this->getPreviousButton(), - $this->getLinks(), - $this->getNextButton() - ); - } - } - } - - /** - * 生成一个可点击的按钮 - * - * @param string $url - * @param int $page - * @return string - */ - protected function getAvailablePageWrapper($url, $page) - { - return '
        • ' . $page . '
        • '; - } - - /** - * 生成一个禁用的按钮 - * - * @param string $text - * @return string - */ - protected function getDisabledTextWrapper($text) - { - return '
        • ' . $text . '
        • '; - } - - /** - * 生成一个激活的按钮 - * - * @param string $text - * @return string - */ - protected function getActivePageWrapper($text) - { - return '
        • ' . $text . '
        • '; - } - - /** - * 生成省略号按钮 - * - * @return string - */ - protected function getDots() - { - return $this->getDisabledTextWrapper('...'); - } - - /** - * 批量生成页码按钮. - * - * @param array $urls - * @return string - */ - protected function getUrlLinks(array $urls) - { - $html = ''; - - foreach ($urls as $page => $url) { - $html .= $this->getPageLinkWrapper($url, $page); - } - - return $html; - } - - /** - * 生成普通页码按钮 - * - * @param string $url - * @param int $page - * @return string - */ - protected function getPageLinkWrapper($url, $page) - { - if ($this->currentPage() == $page) { - return $this->getActivePageWrapper($page); - } - - return $this->getAvailablePageWrapper($url, $page); - } -} diff --git a/thinkphp/library/think/process/Builder.php b/thinkphp/library/think/process/Builder.php deleted file mode 100644 index da5616397..000000000 --- a/thinkphp/library/think/process/Builder.php +++ /dev/null @@ -1,233 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\process; - -use think\Process; - -class Builder -{ - private $arguments; - private $cwd; - private $env = null; - private $input; - private $timeout = 60; - private $options = []; - private $inheritEnv = true; - private $prefix = []; - private $outputDisabled = false; - - /** - * 构造方法 - * @param string[] $arguments 参数 - */ - public function __construct(array $arguments = []) - { - $this->arguments = $arguments; - } - - /** - * 创建一个实例 - * @param string[] $arguments 参数 - * @return self - */ - public static function create(array $arguments = []) - { - return new static($arguments); - } - - /** - * 添加一个参数 - * @param string $argument 参数 - * @return self - */ - public function add($argument) - { - $this->arguments[] = $argument; - - return $this; - } - - /** - * 添加一个前缀 - * @param string|array $prefix - * @return self - */ - public function setPrefix($prefix) - { - $this->prefix = is_array($prefix) ? $prefix : [$prefix]; - - return $this; - } - - /** - * 设置参数 - * @param string[] $arguments - * @return self - */ - public function setArguments(array $arguments) - { - $this->arguments = $arguments; - - return $this; - } - - /** - * 设置工作目录 - * @param null|string $cwd - * @return self - */ - public function setWorkingDirectory($cwd) - { - $this->cwd = $cwd; - - return $this; - } - - /** - * 是否初始化环境变量 - * @param bool $inheritEnv - * @return self - */ - public function inheritEnvironmentVariables($inheritEnv = true) - { - $this->inheritEnv = $inheritEnv; - - return $this; - } - - /** - * 设置环境变量 - * @param string $name - * @param null|string $value - * @return self - */ - public function setEnv($name, $value) - { - $this->env[$name] = $value; - - return $this; - } - - /** - * 添加环境变量 - * @param array $variables - * @return self - */ - public function addEnvironmentVariables(array $variables) - { - $this->env = array_replace($this->env, $variables); - - return $this; - } - - /** - * 设置输入 - * @param mixed $input - * @return self - */ - public function setInput($input) - { - $this->input = Utils::validateInput(sprintf('%s::%s', __CLASS__, __FUNCTION__), $input); - - return $this; - } - - /** - * 设置超时时间 - * @param float|null $timeout - * @return self - */ - public function setTimeout($timeout) - { - if (null === $timeout) { - $this->timeout = null; - - return $this; - } - - $timeout = (float) $timeout; - - if ($timeout < 0) { - throw new \InvalidArgumentException('The timeout value must be a valid positive integer or float number.'); - } - - $this->timeout = $timeout; - - return $this; - } - - /** - * 设置proc_open选项 - * @param string $name - * @param string $value - * @return self - */ - public function setOption($name, $value) - { - $this->options[$name] = $value; - - return $this; - } - - /** - * 禁止输出 - * @return self - */ - public function disableOutput() - { - $this->outputDisabled = true; - - return $this; - } - - /** - * 开启输出 - * @return self - */ - public function enableOutput() - { - $this->outputDisabled = false; - - return $this; - } - - /** - * 创建一个Process实例 - * @return Process - */ - public function getProcess() - { - if (0 === count($this->prefix) && 0 === count($this->arguments)) { - throw new \LogicException('You must add() command arguments before calling getProcess().'); - } - - $options = $this->options; - - $arguments = array_merge($this->prefix, $this->arguments); - $script = implode(' ', array_map([__NAMESPACE__ . '\\Utils', 'escapeArgument'], $arguments)); - - if ($this->inheritEnv) { - // include $_ENV for BC purposes - $env = array_replace($_ENV, $_SERVER, $this->env); - } else { - $env = $this->env; - } - - $process = new Process($script, $this->cwd, $env, $this->input, $this->timeout, $options); - - if ($this->outputDisabled) { - $process->disableOutput(); - } - - return $process; - } -} diff --git a/thinkphp/library/think/process/Utils.php b/thinkphp/library/think/process/Utils.php deleted file mode 100644 index f94c6488e..000000000 --- a/thinkphp/library/think/process/Utils.php +++ /dev/null @@ -1,75 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\process; - -class Utils -{ - - /** - * 转义字符串 - * @param string $argument - * @return string - */ - public static function escapeArgument($argument) - { - - if ('' === $argument) { - return escapeshellarg($argument); - } - $escapedArgument = ''; - $quote = false; - foreach (preg_split('/(")/i', $argument, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE) as $part) { - if ('"' === $part) { - $escapedArgument .= '\\"'; - } elseif (self::isSurroundedBy($part, '%')) { - // Avoid environment variable expansion - $escapedArgument .= '^%"' . substr($part, 1, -1) . '"^%'; - } else { - // escape trailing backslash - if ('\\' === substr($part, -1)) { - $part .= '\\'; - } - $quote = true; - $escapedArgument .= $part; - } - } - if ($quote) { - $escapedArgument = '"' . $escapedArgument . '"'; - } - return $escapedArgument; - } - - /** - * 验证并进行规范化Process输入。 - * @param string $caller - * @param mixed $input - * @return string - * @throws \InvalidArgumentException - */ - public static function validateInput($caller, $input) - { - if (null !== $input) { - if (is_resource($input)) { - return $input; - } - if (is_scalar($input)) { - return (string) $input; - } - throw new \InvalidArgumentException(sprintf('%s only accepts strings or stream resources.', $caller)); - } - return $input; - } - - private static function isSurroundedBy($arg, $char) - { - return 2 < strlen($arg) && $char === $arg[0] && $char === $arg[strlen($arg) - 1]; - } - -} diff --git a/thinkphp/library/think/process/exception/Faild.php b/thinkphp/library/think/process/exception/Faild.php deleted file mode 100644 index 38647bc11..000000000 --- a/thinkphp/library/think/process/exception/Faild.php +++ /dev/null @@ -1,42 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\process\exception; - -use think\Process; - -class Faild extends \RuntimeException -{ - - private $process; - - public function __construct(Process $process) - { - if ($process->isSuccessful()) { - throw new \InvalidArgumentException('Expected a failed process, but the given process was successful.'); - } - - $error = sprintf('The command "%s" failed.' . "\nExit Code: %s(%s)", $process->getCommandLine(), $process->getExitCode(), $process->getExitCodeText()); - - if (!$process->isOutputDisabled()) { - $error .= sprintf("\n\nOutput:\n================\n%s\n\nError Output:\n================\n%s", $process->getOutput(), $process->getErrorOutput()); - } - - parent::__construct($error); - - $this->process = $process; - } - - public function getProcess() - { - return $this->process; - } -} diff --git a/thinkphp/library/think/process/exception/Failed.php b/thinkphp/library/think/process/exception/Failed.php deleted file mode 100644 index 529508232..000000000 --- a/thinkphp/library/think/process/exception/Failed.php +++ /dev/null @@ -1,42 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\process\exception; - -use think\Process; - -class Failed extends \RuntimeException -{ - - private $process; - - public function __construct(Process $process) - { - if ($process->isSuccessful()) { - throw new \InvalidArgumentException('Expected a failed process, but the given process was successful.'); - } - - $error = sprintf('The command "%s" failed.' . "\nExit Code: %s(%s)", $process->getCommandLine(), $process->getExitCode(), $process->getExitCodeText()); - - if (!$process->isOutputDisabled()) { - $error .= sprintf("\n\nOutput:\n================\n%s\n\nError Output:\n================\n%s", $process->getOutput(), $process->getErrorOutput()); - } - - parent::__construct($error); - - $this->process = $process; - } - - public function getProcess() - { - return $this->process; - } -} diff --git a/thinkphp/library/think/process/exception/Timeout.php b/thinkphp/library/think/process/exception/Timeout.php deleted file mode 100644 index d5f1162f4..000000000 --- a/thinkphp/library/think/process/exception/Timeout.php +++ /dev/null @@ -1,61 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\process\exception; - -use think\Process; - -class Timeout extends \RuntimeException -{ - - const TYPE_GENERAL = 1; - const TYPE_IDLE = 2; - - private $process; - private $timeoutType; - - public function __construct(Process $process, $timeoutType) - { - $this->process = $process; - $this->timeoutType = $timeoutType; - - parent::__construct(sprintf('The process "%s" exceeded the timeout of %s seconds.', $process->getCommandLine(), $this->getExceededTimeout())); - } - - public function getProcess() - { - return $this->process; - } - - public function isGeneralTimeout() - { - return $this->timeoutType === self::TYPE_GENERAL; - } - - public function isIdleTimeout() - { - return $this->timeoutType === self::TYPE_IDLE; - } - - public function getExceededTimeout() - { - switch ($this->timeoutType) { - case self::TYPE_GENERAL: - return $this->process->getTimeout(); - - case self::TYPE_IDLE: - return $this->process->getIdleTimeout(); - - default: - throw new \LogicException(sprintf('Unknown timeout type "%d".', $this->timeoutType)); - } - } -} diff --git a/thinkphp/library/think/process/pipes/Pipes.php b/thinkphp/library/think/process/pipes/Pipes.php deleted file mode 100644 index 82396b8ff..000000000 --- a/thinkphp/library/think/process/pipes/Pipes.php +++ /dev/null @@ -1,93 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\process\pipes; - -abstract class Pipes -{ - - /** @var array */ - public $pipes = []; - - /** @var string */ - protected $inputBuffer = ''; - /** @var resource|null */ - protected $input; - - /** @var bool */ - private $blocked = true; - - const CHUNK_SIZE = 16384; - - /** - * 返回用于 proc_open 描述符的数组 - * @return array - */ - abstract public function getDescriptors(); - - /** - * 返回一个数组的索引由其相关的流,以防这些管道使用的临时文件的文件名。 - * @return string[] - */ - abstract public function getFiles(); - - /** - * 文件句柄和管道中读取数据。 - * @param bool $blocking 是否使用阻塞调用 - * @param bool $close 是否要关闭管道,如果他们已经到达 EOF。 - * @return string[] - */ - abstract public function readAndWrite($blocking, $close = false); - - /** - * 返回当前状态如果有打开的文件句柄或管道。 - * @return bool - */ - abstract public function areOpen(); - - /** - * {@inheritdoc} - */ - public function close() - { - foreach ($this->pipes as $pipe) { - fclose($pipe); - } - $this->pipes = []; - } - - /** - * 检查系统调用已被中断 - * @return bool - */ - protected function hasSystemCallBeenInterrupted() - { - $lastError = error_get_last(); - - return isset($lastError['message']) && false !== stripos($lastError['message'], 'interrupted system call'); - } - - protected function unblock() - { - if (!$this->blocked) { - return; - } - - foreach ($this->pipes as $pipe) { - stream_set_blocking($pipe, 0); - } - if (null !== $this->input) { - stream_set_blocking($this->input, 0); - } - - $this->blocked = false; - } -} diff --git a/thinkphp/library/think/process/pipes/Unix.php b/thinkphp/library/think/process/pipes/Unix.php deleted file mode 100644 index fd99a5d67..000000000 --- a/thinkphp/library/think/process/pipes/Unix.php +++ /dev/null @@ -1,196 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\process\pipes; - -use think\Process; - -class Unix extends Pipes -{ - - /** @var bool */ - private $ttyMode; - /** @var bool */ - private $ptyMode; - /** @var bool */ - private $disableOutput; - - public function __construct($ttyMode, $ptyMode, $input, $disableOutput) - { - $this->ttyMode = (bool) $ttyMode; - $this->ptyMode = (bool) $ptyMode; - $this->disableOutput = (bool) $disableOutput; - - if (is_resource($input)) { - $this->input = $input; - } else { - $this->inputBuffer = (string) $input; - } - } - - public function __destruct() - { - $this->close(); - } - - /** - * {@inheritdoc} - */ - public function getDescriptors() - { - if ($this->disableOutput) { - $nullstream = fopen('/dev/null', 'c'); - - return [ - ['pipe', 'r'], - $nullstream, - $nullstream, - ]; - } - - if ($this->ttyMode) { - return [ - ['file', '/dev/tty', 'r'], - ['file', '/dev/tty', 'w'], - ['file', '/dev/tty', 'w'], - ]; - } - - if ($this->ptyMode && Process::isPtySupported()) { - return [ - ['pty'], - ['pty'], - ['pty'], - ]; - } - - return [ - ['pipe', 'r'], - ['pipe', 'w'], // stdout - ['pipe', 'w'], // stderr - ]; - } - - /** - * {@inheritdoc} - */ - public function getFiles() - { - return []; - } - - /** - * {@inheritdoc} - */ - public function readAndWrite($blocking, $close = false) - { - - if (1 === count($this->pipes) && [0] === array_keys($this->pipes)) { - fclose($this->pipes[0]); - unset($this->pipes[0]); - } - - if (empty($this->pipes)) { - return []; - } - - $this->unblock(); - - $read = []; - - if (null !== $this->input) { - $r = array_merge($this->pipes, ['input' => $this->input]); - } else { - $r = $this->pipes; - } - - unset($r[0]); - - $w = isset($this->pipes[0]) ? [$this->pipes[0]] : null; - $e = null; - - if (false === $n = @stream_select($r, $w, $e, 0, $blocking ? Process::TIMEOUT_PRECISION * 1E6 : 0)) { - - if (!$this->hasSystemCallBeenInterrupted()) { - $this->pipes = []; - } - - return $read; - } - - if (0 === $n) { - return $read; - } - - foreach ($r as $pipe) { - - $type = (false !== $found = array_search($pipe, $this->pipes)) ? $found : 'input'; - $data = ''; - while ('' !== $dataread = (string) fread($pipe, self::CHUNK_SIZE)) { - $data .= $dataread; - } - - if ('' !== $data) { - if ('input' === $type) { - $this->inputBuffer .= $data; - } else { - $read[$type] = $data; - } - } - - if (false === $data || (true === $close && feof($pipe) && '' === $data)) { - if ('input' === $type) { - $this->input = null; - } else { - fclose($this->pipes[$type]); - unset($this->pipes[$type]); - } - } - } - - if (null !== $w && 0 < count($w)) { - while (strlen($this->inputBuffer)) { - $written = fwrite($w[0], $this->inputBuffer, 2 << 18); // write 512k - if ($written > 0) { - $this->inputBuffer = (string) substr($this->inputBuffer, $written); - } else { - break; - } - } - } - - if ('' === $this->inputBuffer && null === $this->input && isset($this->pipes[0])) { - fclose($this->pipes[0]); - unset($this->pipes[0]); - } - - return $read; - } - - /** - * {@inheritdoc} - */ - public function areOpen() - { - return (bool) $this->pipes; - } - - /** - * 创建一个新的 UnixPipes 实例 - * @param Process $process - * @param string|resource $input - * @return self - */ - public static function create(Process $process, $input) - { - return new static($process->isTty(), $process->isPty(), $input, $process->isOutputDisabled()); - } -} diff --git a/thinkphp/library/think/process/pipes/Windows.php b/thinkphp/library/think/process/pipes/Windows.php deleted file mode 100644 index 1b8b0d4f2..000000000 --- a/thinkphp/library/think/process/pipes/Windows.php +++ /dev/null @@ -1,228 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\process\pipes; - -use think\Process; - -class Windows extends Pipes -{ - - /** @var array */ - private $files = []; - /** @var array */ - private $fileHandles = []; - /** @var array */ - private $readBytes = [ - Process::STDOUT => 0, - Process::STDERR => 0, - ]; - /** @var bool */ - private $disableOutput; - - public function __construct($disableOutput, $input) - { - $this->disableOutput = (bool) $disableOutput; - - if (!$this->disableOutput) { - - $this->files = [ - Process::STDOUT => tempnam(sys_get_temp_dir(), 'sf_proc_stdout'), - Process::STDERR => tempnam(sys_get_temp_dir(), 'sf_proc_stderr'), - ]; - foreach ($this->files as $offset => $file) { - $this->fileHandles[$offset] = fopen($this->files[$offset], 'rb'); - if (false === $this->fileHandles[$offset]) { - throw new \RuntimeException('A temporary file could not be opened to write the process output to, verify that your TEMP environment variable is writable'); - } - } - } - - if (is_resource($input)) { - $this->input = $input; - } else { - $this->inputBuffer = $input; - } - } - - public function __destruct() - { - $this->close(); - $this->removeFiles(); - } - - /** - * {@inheritdoc} - */ - public function getDescriptors() - { - if ($this->disableOutput) { - $nullstream = fopen('NUL', 'c'); - - return [ - ['pipe', 'r'], - $nullstream, - $nullstream, - ]; - } - - return [ - ['pipe', 'r'], - ['file', 'NUL', 'w'], - ['file', 'NUL', 'w'], - ]; - } - - /** - * {@inheritdoc} - */ - public function getFiles() - { - return $this->files; - } - - /** - * {@inheritdoc} - */ - public function readAndWrite($blocking, $close = false) - { - $this->write($blocking, $close); - - $read = []; - $fh = $this->fileHandles; - foreach ($fh as $type => $fileHandle) { - if (0 !== fseek($fileHandle, $this->readBytes[$type])) { - continue; - } - $data = ''; - $dataread = null; - while (!feof($fileHandle)) { - if (false !== $dataread = fread($fileHandle, self::CHUNK_SIZE)) { - $data .= $dataread; - } - } - if (0 < $length = strlen($data)) { - $this->readBytes[$type] += $length; - $read[$type] = $data; - } - - if (false === $dataread || (true === $close && feof($fileHandle) && '' === $data)) { - fclose($this->fileHandles[$type]); - unset($this->fileHandles[$type]); - } - } - - return $read; - } - - /** - * {@inheritdoc} - */ - public function areOpen() - { - return (bool) $this->pipes && (bool) $this->fileHandles; - } - - /** - * {@inheritdoc} - */ - public function close() - { - parent::close(); - foreach ($this->fileHandles as $handle) { - fclose($handle); - } - $this->fileHandles = []; - } - - /** - * 创建一个新的 WindowsPipes 实例。 - * @param Process $process - * @param $input - * @return self - */ - public static function create(Process $process, $input) - { - return new static($process->isOutputDisabled(), $input); - } - - /** - * 删除临时文件 - */ - private function removeFiles() - { - foreach ($this->files as $filename) { - if (file_exists($filename)) { - @unlink($filename); - } - } - $this->files = []; - } - - /** - * 写入到 stdin 输入 - * @param bool $blocking - * @param bool $close - */ - private function write($blocking, $close) - { - if (empty($this->pipes)) { - return; - } - - $this->unblock(); - - $r = null !== $this->input ? ['input' => $this->input] : null; - $w = isset($this->pipes[0]) ? [$this->pipes[0]] : null; - $e = null; - - if (false === $n = @stream_select($r, $w, $e, 0, $blocking ? Process::TIMEOUT_PRECISION * 1E6 : 0)) { - if (!$this->hasSystemCallBeenInterrupted()) { - $this->pipes = []; - } - - return; - } - - if (0 === $n) { - return; - } - - if (null !== $r && 0 < count($r)) { - $data = ''; - while ($dataread = fread($r['input'], self::CHUNK_SIZE)) { - $data .= $dataread; - } - - $this->inputBuffer .= $data; - - if (false === $data || (true === $close && feof($r['input']) && '' === $data)) { - $this->input = null; - } - } - - if (null !== $w && 0 < count($w)) { - while (strlen($this->inputBuffer)) { - $written = fwrite($w[0], $this->inputBuffer, 2 << 18); - if ($written > 0) { - $this->inputBuffer = (string) substr($this->inputBuffer, $written); - } else { - break; - } - } - } - - if ('' === $this->inputBuffer && null === $this->input && isset($this->pipes[0])) { - fclose($this->pipes[0]); - unset($this->pipes[0]); - } - } -} diff --git a/thinkphp/library/think/response/Json.php b/thinkphp/library/think/response/Json.php deleted file mode 100644 index aa5bbd6fa..000000000 --- a/thinkphp/library/think/response/Json.php +++ /dev/null @@ -1,51 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\response; - -use think\Response; - -class Json extends Response -{ - // 输出参数 - protected $options = [ - 'json_encode_param' => JSON_UNESCAPED_UNICODE, - ]; - - protected $contentType = 'application/json'; - - /** - * 处理数据 - * @access protected - * @param mixed $data 要处理的数据 - * @return mixed - * @throws \Exception - */ - protected function output($data) - { - try { - // 返回JSON数据格式到客户端 包含状态信息 - $data = json_encode($data, $this->options['json_encode_param']); - - if (false === $data) { - throw new \InvalidArgumentException(json_last_error_msg()); - } - - return $data; - } catch (\Exception $e) { - if ($e->getPrevious()) { - throw $e->getPrevious(); - } - throw $e; - } - } - -} diff --git a/thinkphp/library/think/response/Jsonp.php b/thinkphp/library/think/response/Jsonp.php deleted file mode 100644 index 9e53da2d1..000000000 --- a/thinkphp/library/think/response/Jsonp.php +++ /dev/null @@ -1,59 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\response; - -use think\Container; -use think\Response; - -class Jsonp extends Response -{ - // 输出参数 - protected $options = [ - 'var_jsonp_handler' => 'callback', - 'default_jsonp_handler' => 'jsonpReturn', - 'json_encode_param' => JSON_UNESCAPED_UNICODE, - ]; - - protected $contentType = 'application/javascript'; - - /** - * 处理数据 - * @access protected - * @param mixed $data 要处理的数据 - * @return mixed - * @throws \Exception - */ - protected function output($data) - { - try { - // 返回JSON数据格式到客户端 包含状态信息 [当url_common_param为false时是无法获取到$_GET的数据的,故使用Request来获取] - $var_jsonp_handler = Container::get('request')->param($this->options['var_jsonp_handler'], ""); - $handler = !empty($var_jsonp_handler) ? $var_jsonp_handler : $this->options['default_jsonp_handler']; - - $data = json_encode($data, $this->options['json_encode_param']); - - if (false === $data) { - throw new \InvalidArgumentException(json_last_error_msg()); - } - - $data = $handler . '(' . $data . ');'; - - return $data; - } catch (\Exception $e) { - if ($e->getPrevious()) { - throw $e->getPrevious(); - } - throw $e; - } - } - -} diff --git a/thinkphp/library/think/response/Jump.php b/thinkphp/library/think/response/Jump.php deleted file mode 100644 index 214afc7d4..000000000 --- a/thinkphp/library/think/response/Jump.php +++ /dev/null @@ -1,36 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\response; - -use think\Container; -use think\Response; - -class Jump extends Response -{ - protected $contentType = 'text/html'; - - /** - * 处理数据 - * @access protected - * @param mixed $data 要处理的数据 - * @return mixed - * @throws \Exception - */ - protected function output($data) - { - $config = Container::get('config'); - $data = Container::get('view') - ->init($config->pull('template')) - ->fetch($this->options['jump_template'], $data); - return $data; - } -} diff --git a/thinkphp/library/think/response/Redirect.php b/thinkphp/library/think/response/Redirect.php deleted file mode 100644 index d6e5101a1..000000000 --- a/thinkphp/library/think/response/Redirect.php +++ /dev/null @@ -1,116 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\response; - -use think\Container; -use think\Response; - -class Redirect extends Response -{ - - protected $options = []; - - // URL参数 - protected $params = []; - - public function __construct($data = '', $code = 302, array $header = [], array $options = []) - { - parent::__construct($data, $code, $header, $options); - - $this->cacheControl('no-cache,must-revalidate'); - } - - /** - * 处理数据 - * @access protected - * @param mixed $data 要处理的数据 - * @return mixed - */ - protected function output($data) - { - $this->header['Location'] = $this->getTargetUrl(); - - return; - } - - /** - * 重定向传值(通过Session) - * @access protected - * @param string|array $name 变量名或者数组 - * @param mixed $value 值 - * @return $this - */ - public function with($name, $value = null) - { - $session = Container::get('session'); - - if (is_array($name)) { - foreach ($name as $key => $val) { - $session->flash($key, $val); - } - } else { - $session->flash($name, $value); - } - - return $this; - } - - /** - * 获取跳转地址 - * @access public - * @return string - */ - public function getTargetUrl() - { - if (strpos($this->data, '://') || (0 === strpos($this->data, '/') && empty($this->params))) { - return $this->data; - } else { - return Container::get('url')->build($this->data, $this->params); - } - } - - public function params($params = []) - { - $this->params = $params; - - return $this; - } - - /** - * 记住当前url后跳转 - * @access public - * @return $this - */ - public function remember() - { - Container::get('session')->set('redirect_url', Container::get('request')->url()); - - return $this; - } - - /** - * 跳转到上次记住的url - * @access public - * @return $this - */ - public function restore() - { - $session = Container::get('session'); - - if ($session->has('redirect_url')) { - $this->data = $session->get('redirect_url'); - $session->delete('redirect_url'); - } - - return $this; - } -} diff --git a/thinkphp/library/think/response/View.php b/thinkphp/library/think/response/View.php deleted file mode 100644 index 0b4cb28e0..000000000 --- a/thinkphp/library/think/response/View.php +++ /dev/null @@ -1,99 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\response; - -use think\Container; -use think\Response; - -class View extends Response -{ - // 输出参数 - protected $options = []; - protected $vars = []; - protected $filter; - protected $contentType = 'text/html'; - - /** - * 处理数据 - * @access protected - * @param mixed $data 要处理的数据 - * @return mixed - */ - protected function output($data) - { - // 渲染模板输出 - $config = Container::get('config'); - return Container::get('view') - ->init($config->pull('template')) - ->filter($this->filter) - ->fetch($data, $this->vars); - } - - /** - * 获取视图变量 - * @access public - * @param string $name 模板变量 - * @return mixed - */ - public function getVars($name = null) - { - if (is_null($name)) { - return $this->vars; - } else { - return isset($this->vars[$name]) ? $this->vars[$name] : null; - } - } - - /** - * 模板变量赋值 - * @access public - * @param mixed $name 变量名 - * @param mixed $value 变量值 - * @return $this - */ - public function assign($name, $value = '') - { - if (is_array($name)) { - $this->vars = array_merge($this->vars, $name); - } else { - $this->vars[$name] = $value; - } - - return $this; - } - - /** - * 视图内容过滤 - * @access public - * @param callable $filter - * @return $this - */ - public function filter($filter) - { - $this->filter = $filter; - return $this; - } - - /** - * 检查模板是否存在 - * @access private - * @param string|array $name 参数名 - * @return bool - */ - public function exists($name) - { - return Container::get('view') - ->init(Container::get('config')->pull('template')) - ->exists($name); - } - -} diff --git a/thinkphp/library/think/response/Xml.php b/thinkphp/library/think/response/Xml.php deleted file mode 100644 index 9c1681a4a..000000000 --- a/thinkphp/library/think/response/Xml.php +++ /dev/null @@ -1,116 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\response; - -use think\Collection; -use think\Model; -use think\Response; - -class Xml extends Response -{ - // 输出参数 - protected $options = [ - // 根节点名 - 'root_node' => 'think', - // 根节点属性 - 'root_attr' => '', - //数字索引的子节点名 - 'item_node' => 'item', - // 数字索引子节点key转换的属性名 - 'item_key' => 'id', - // 数据编码 - 'encoding' => 'utf-8', - ]; - - protected $contentType = 'text/xml'; - - /** - * 处理数据 - * @access protected - * @param mixed $data 要处理的数据 - * @return mixed - */ - protected function output($data) - { - if (is_string($data)) { - if (0 !== strpos($data, 'options['encoding']; - $xml = ""; - $data = $xml . $data; - } - return $data; - } - - // XML数据转换 - return $this->xmlEncode($data, $this->options['root_node'], $this->options['item_node'], $this->options['root_attr'], $this->options['item_key'], $this->options['encoding']); - } - - /** - * XML编码 - * @access protected - * @param mixed $data 数据 - * @param string $root 根节点名 - * @param string $item 数字索引的子节点名 - * @param string $attr 根节点属性 - * @param string $id 数字索引子节点key转换的属性名 - * @param string $encoding 数据编码 - * @return string - */ - protected function xmlEncode($data, $root, $item, $attr, $id, $encoding) - { - if (is_array($attr)) { - $array = []; - foreach ($attr as $key => $value) { - $array[] = "{$key}=\"{$value}\""; - } - $attr = implode(' ', $array); - } - - $attr = trim($attr); - $attr = empty($attr) ? '' : " {$attr}"; - $xml = ""; - $xml .= "<{$root}{$attr}>"; - $xml .= $this->dataToXml($data, $item, $id); - $xml .= ""; - - return $xml; - } - - /** - * 数据XML编码 - * @access protected - * @param mixed $data 数据 - * @param string $item 数字索引时的节点名称 - * @param string $id 数字索引key转换为的属性名 - * @return string - */ - protected function dataToXml($data, $item, $id) - { - $xml = $attr = ''; - - if ($data instanceof Collection || $data instanceof Model) { - $data = $data->toArray(); - } - - foreach ($data as $key => $val) { - if (is_numeric($key)) { - $id && $attr = " {$id}=\"{$key}\""; - $key = $item; - } - $xml .= "<{$key}{$attr}>"; - $xml .= (is_array($val) || is_object($val)) ? $this->dataToXml($val, $item, $id) : $val; - $xml .= ""; - } - - return $xml; - } -} diff --git a/thinkphp/library/think/route/AliasRule.php b/thinkphp/library/think/route/AliasRule.php deleted file mode 100644 index 217046596..000000000 --- a/thinkphp/library/think/route/AliasRule.php +++ /dev/null @@ -1,126 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\route; - -use think\Route; - -class AliasRule extends Domain -{ - protected $route; - - /** - * 架构函数 - * @access public - * @param Route $router 路由实例 - * @param RuleGroup $parent 上级对象 - * @param string $name 路由别名 - * @param string $route 路由绑定 - * @param array $option 路由参数 - */ - public function __construct(Route $router, RuleGroup $parent, $name, $route, $option = []) - { - $this->router = $router; - $this->parent = $parent; - $this->name = $name; - $this->route = $route; - $this->option = $option; - } - - /** - * 检测域名路由 - * @access public - * @param Request $request 请求对象 - * @param string $url 访问地址 - * @param string $depr 路径分隔符 - * @param bool $completeMatch 路由是否完全匹配 - * @return Dispatch|false - */ - public function check($request, $url, $depr = '/', $completeMatch = false) - { - if ($dispatch = $this->checkCrossDomain($request)) { - // 允许跨域 - return $dispatch; - } - - // 检查参数有效性 - if (!$this->checkOption($this->option, $request)) { - return false; - } - - list($action, $bind) = array_pad(explode('|', $url, 2), 2, ''); - - if (isset($this->option['allow']) && !in_array($action, $this->option['allow'])) { - // 允许操作 - return false; - } elseif (isset($this->option['except']) && in_array($action, $this->option['except'])) { - // 排除操作 - return false; - } - - if (isset($this->option['method'][$action])) { - $this->option['method'] = $this->option['method'][$action]; - } - - // 匹配后执行的行为 - $this->afterMatchGroup($request); - - if ($this->parent) { - // 合并分组参数 - $this->mergeGroupOptions(); - } - - $this->parseBindAppendParam($this->route); - - if (0 === strpos($this->route, '\\')) { - // 路由到类 - return $this->bindToClass($bind, substr($this->route, 1)); - } elseif (0 === strpos($this->route, '@')) { - // 路由到控制器类 - return $this->bindToController($bind, substr($this->route, 1)); - } else { - // 路由到模块/控制器 - return $this->bindToModule($bind, $this->route); - } - } - - /** - * 设置允许的操作方法 - * @access public - * @param array $action 操作方法 - * @return $this - */ - public function allow($action = []) - { - return $this->option('allow', $action); - } - - /** - * 设置排除的操作方法 - * @access public - * @param array $action 操作方法 - * @return $this - */ - public function except($action = []) - { - return $this->option('except', $action); - } - - /** - * 获取当前的路由 - * @access public - * @return string - */ - public function getRoute() - { - return $this->route; - } -} diff --git a/thinkphp/library/think/route/Dispatch.php b/thinkphp/library/think/route/Dispatch.php deleted file mode 100644 index ec7e15497..000000000 --- a/thinkphp/library/think/route/Dispatch.php +++ /dev/null @@ -1,60 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\route; - -use think\Container; - -abstract class Dispatch -{ - // 应用实例 - protected $app; - // 调度信息 - protected $dispatch; - // 调度参数 - protected $param; - // 状态码 - protected $code; - // 是否进行大小写转换 - protected $convert; - - public function __construct($dispatch, $param = [], $code = null) - { - $this->app = Container::get('app'); - $this->dispatch = $dispatch; - $this->param = $param; - $this->code = $code; - $this->init(); - } - - protected function init() - {} - - public function convert($convert) - { - $this->convert = $convert; - - return $this; - } - - public function getDispatch() - { - return $this->dispatch; - } - - public function getParam() - { - return $this->param; - } - - abstract public function run(); - -} diff --git a/thinkphp/library/think/route/Domain.php b/thinkphp/library/think/route/Domain.php deleted file mode 100644 index 9043017c4..000000000 --- a/thinkphp/library/think/route/Domain.php +++ /dev/null @@ -1,233 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\route; - -use think\Container; -use think\Loader; -use think\Route; -use think\route\dispatch\Callback as CallbackDispatch; -use think\route\dispatch\Controller as ControllerDispatch; -use think\route\dispatch\Module as ModuleDispatch; - -class Domain extends RuleGroup -{ - protected $bind; - - /** - * 架构函数 - * @access public - * @param Route $router 路由对象 - * @param string $name 路由域名 - * @param mixed $rule 域名路由 - * @param array $option 路由参数 - * @param array $pattern 变量规则 - */ - public function __construct(Route $router, $name = '', $rule = null, $option = [], $pattern = []) - { - $this->router = $router; - $this->domain = $name; - $this->option = $option; - $this->rule = $rule; - $this->pattern = $pattern; - } - - /** - * 检测域名路由 - * @access public - * @param Request $request 请求对象 - * @param string $url 访问地址 - * @param string $depr 路径分隔符 - * @param bool $completeMatch 路由是否完全匹配 - * @return Dispatch|false - */ - public function check($request, $url, $depr = '/', $completeMatch = false) - { - // 检测别名路由 - $result = $this->checkRouteAlias($request, $url, $depr); - - if (false !== $result) { - return $result; - } - - // 检测URL绑定 - $result = $this->checkUrlBind($url, $depr); - - if (!empty($this->option['append'])) { - $request->route($this->option['append']); - unset($this->option['append']); - } - - if (false !== $result) { - return $result; - } - - // 添加域名中间件 - if (!empty($this->option['middleware'])) { - Container::get('middleware')->import($this->option['middleware']); - unset($this->option['middleware']); - } - - return parent::check($request, $url, $depr, $completeMatch); - } - - /** - * 设置路由绑定 - * @access public - * @param string $bind 绑定信息 - * @return $this - */ - public function bind($bind) - { - $this->bind = $bind; - $this->router->bind($bind, $this->domain); - - return $this; - } - - /** - * 检测路由别名 - * @access private - * @param Request $request - * @param string $url URL地址 - * @param string $depr URL分隔符 - * @return Dispatch|false - */ - private function checkRouteAlias($request, $url, $depr) - { - $alias = strpos($url, '|') ? strstr($url, '|', true) : $url; - - $item = $this->router->getAlias($alias); - - return $item ? $item->check($request, $url, $depr) : false; - } - - /** - * 检测URL绑定 - * @access private - * @param string $url URL地址 - * @param string $depr URL分隔符 - * @return Dispatch|false - */ - private function checkUrlBind($url, $depr = '/') - { - if (!empty($this->bind)) { - $bind = $this->bind; - $this->parseBindAppendParam($bind); - - // 记录绑定信息 - Container::get('app')->log('[ BIND ] ' . var_export($bind, true)); - - // 如果有URL绑定 则进行绑定检测 - $type = substr($bind, 0, 1); - $bind = substr($bind, 1); - - $bindTo = [ - '\\' => 'bindToClass', - '@' => 'bindToController', - ':' => 'bindToNamespace', - ]; - - if (isset($bindTo[$type])) { - return $this->{$bindTo[$type]}($url, $bind, $depr); - } - } - - return false; - } - - protected function parseBindAppendParam(&$bind) - { - if (false !== strpos($bind, '?')) { - list($bind, $query) = explode('?', $bind); - parse_str($query, $vars); - $this->append($vars); - } - } - - /** - * 绑定到类 - * @access protected - * @param string $url URL地址 - * @param string $class 类名(带命名空间) - * @return CallbackDispatch - */ - protected function bindToClass($url, $class) - { - $array = explode('|', $url, 2); - $action = !empty($array[0]) ? $array[0] : Container::get('config')->get('default_action'); - - if (!empty($array[1])) { - $this->parseUrlParams($array[1]); - } - - return new CallbackDispatch([$class, $action]); - } - - /** - * 绑定到命名空间 - * @access protected - * @param string $url URL地址 - * @param string $namespace 命名空间 - * @return CallbackDispatch - */ - protected function bindToNamespace($url, $namespace) - { - $array = explode('|', $url, 3); - $class = !empty($array[0]) ? $array[0] : Container::get('config')->get('default_controller'); - $method = !empty($array[1]) ? $array[1] : Container::get('config')->get('default_action'); - - if (!empty($array[2])) { - $this->parseUrlParams($array[2]); - } - - return new CallbackDispatch([$namespace . '\\' . Loader::parseName($class, 1), $method]); - } - - /** - * 绑定到控制器类 - * @access protected - * @param string $url URL地址 - * @param string $controller 控制器名 (支持带模块名 index/user ) - * @return ControllerDispatch - */ - protected function bindToController($url, $controller) - { - $array = explode('|', $url, 2); - $action = !empty($array[0]) ? $array[0] : Container::get('config')->get('default_action'); - - if (!empty($array[1])) { - $this->parseUrlParams($array[1]); - } - - return new ControllerDispatch($controller . '/' . $action); - } - - /** - * 绑定到模块/控制器 - * @access protected - * @param string $url URL地址 - * @param string $controller 控制器类名(带命名空间) - * @return ModuleDispatch - */ - protected function bindToModule($url, $controller) - { - $array = explode('|', $url, 2); - $action = !empty($array[0]) ? $array[0] : Container::get('config')->get('default_action'); - - if (!empty($array[1])) { - $this->parseUrlParams($array[1]); - } - - return new ModuleDispatch($controller . '/' . $action); - } - -} diff --git a/thinkphp/library/think/route/Resource.php b/thinkphp/library/think/route/Resource.php deleted file mode 100644 index d280cb0b1..000000000 --- a/thinkphp/library/think/route/Resource.php +++ /dev/null @@ -1,156 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\route; - -use think\Route; - -class Resource extends RuleGroup -{ - // 资源路由名称 - protected $resource; - // 资源路由地址 - protected $route; - // REST路由方法定义 - protected $rest = []; - - /** - * 架构函数 - * @access public - * @param Route $router 路由对象 - * @param RuleGroup $parent 上级对象 - * @param string $name 资源名称 - * @param string $route 路由地址 - * @param array $option 路由参数 - * @param array $pattern 变量规则 - * @param array $rest 资源定义 - */ - public function __construct(Route $router, RuleGroup $parent = null, $name = '', $route = '', $option = [], $pattern = [], $rest = []) - { - $this->router = $router; - $this->parent = $parent; - $this->resource = $name; - $this->route = $route; - $this->name = strpos($name, '.') ? strstr($name, '.', true) : $name; - - $this->setFullName(); - - // 资源路由默认为完整匹配 - $option['complete_match'] = true; - - $this->pattern = $pattern; - $this->option = $option; - $this->rest = $rest; - - if ($this->parent) { - $this->domain = $this->parent->getDomain(); - $this->parent->addRuleItem($this); - } - } - - /** - * 生成资源路由规则 - * @access protected - * @param string $rule 路由规则 - * @param array $option 路由参数 - * @return void - */ - protected function buildResourceRule($rule, $option = []) - { - $origin = $this->router->getGroup(); - $this->router->setGroup($this); - - if (strpos($rule, '.')) { - // 注册嵌套资源路由 - $array = explode('.', $rule); - $last = array_pop($array); - $item = []; - - foreach ($array as $val) { - $item[] = $val . '/<' . (isset($option['var'][$val]) ? $option['var'][$val] : $val . '_id') . '>'; - } - - $rule = implode('/', $item) . '/' . $last; - } - - // 注册资源路由 - foreach ($this->rest as $key => $val) { - if ((isset($option['only']) && !in_array($key, $option['only'])) - || (isset($option['except']) && in_array($key, $option['except']))) { - continue; - } - - if (isset($last) && strpos($val[1], '') && isset($option['var'][$last])) { - $val[1] = str_replace('', '<' . $option['var'][$last] . '>', $val[1]); - } elseif (strpos($val[1], '') && isset($option['var'][$rule])) { - $val[1] = str_replace('', '<' . $option['var'][$rule] . '>', $val[1]); - } - - $option['rest'] = $key; - - $this->addRule(trim($val[1], '/'), $this->route . '/' . $val[2], $val[0], $option); - } - - $this->router->setGroup($origin); - } - - /** - * rest方法定义和修改 - * @access public - * @param string $name 方法名称 - * @param array|bool $resource 资源 - * @return $this - */ - public function rest($name, $resource = []) - { - if (is_array($name)) { - $this->rest = $resource ? $name : array_merge($this->rest, $name); - } else { - $this->rest[$name] = $resource; - } - - return $this; - } - - /** - * 设置资源允许 - * @access public - * @param array $only - * @return $this - */ - public function only($only) - { - return $this->option('only', $only); - } - - /** - * 设置资源排除 - * @access public - * @param array $except - * @return $this - */ - public function except($except) - { - return $this->option('except', $except); - } - - /** - * 设置资源路由的变量 - * @access public - * @param array $vars - * @return $this - */ - public function vars($vars) - { - return $this->option('var', $vars); - } - -} diff --git a/thinkphp/library/think/route/Rule.php b/thinkphp/library/think/route/Rule.php deleted file mode 100644 index 8f9d47e92..000000000 --- a/thinkphp/library/think/route/Rule.php +++ /dev/null @@ -1,1087 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\route; - -use think\Container; -use think\exception\ValidateException; -use think\Request; -use think\Response; -use think\route\dispatch\Callback as CallbackDispatch; -use think\route\dispatch\Controller as ControllerDispatch; -use think\route\dispatch\Module as ModuleDispatch; -use think\route\dispatch\Redirect as RedirectDispatch; -use think\route\dispatch\Response as ResponseDispatch; -use think\route\dispatch\View as ViewDispatch; - -abstract class Rule -{ - protected $name; - // 路由对象实例 - protected $router; - // 路由父对象 - protected $parent; - // 路由参数 - protected $option = []; - // 路由变量规则 - protected $pattern = []; - // 需要合并的路由参数 - protected $mergeOptions = ['after', 'before', 'model', 'header', 'response', 'append', 'middleware']; - - abstract public function check($request, $url, $depr = '/'); - - /** - * 注册路由参数 - * @access public - * @param string|array $name 参数名 - * @param mixed $value 值 - * @return $this - */ - public function option($name, $value = '') - { - if (is_array($name)) { - $this->option = array_merge($this->option, $name); - } else { - $this->option[$name] = $value; - } - - return $this; - } - - /** - * 注册变量规则 - * @access public - * @param string|array $name 变量名 - * @param string $rule 变量规则 - * @return $this - */ - public function pattern($name, $rule = '') - { - if (is_array($name)) { - $this->pattern = array_merge($this->pattern, $name); - } else { - $this->pattern[$name] = $rule; - } - - return $this; - } - - /** - * 设置标识 - * @access public - * @param string $name 标识名 - * @return $this - */ - public function name($name) - { - $this->name = $name; - - return $this; - } - - /** - * 获取Name - * @access public - * @return string - */ - public function getName() - { - return $this->name; - } - - /** - * 获取Parent对象 - * @access public - * @return $this|null - */ - public function getParent() - { - return $this->parent; - } - - /** - * 获取变量规则定义 - * @access public - * @param string $name 变量名 - * @return mixed - */ - public function getPattern($name = '') - { - if ('' === $name) { - return $this->pattern; - } - - return isset($this->pattern[$name]) ? $this->pattern[$name] : null; - } - - /** - * 获取路由参数定义 - * @access public - * @param string $name 参数名 - * @return mixed - */ - public function getOption($name = '') - { - if ('' === $name) { - return $this->option; - } - - return isset($this->option[$name]) ? $this->option[$name] : null; - } - - /** - * 设置路由请求类型 - * @access public - * @param string $method - * @return $this - */ - public function method($method) - { - return $this->option('method', strtolower($method)); - } - - /** - * 设置路由前置行为 - * @access public - * @param array|\Closure $before - * @return $this - */ - public function before($before) - { - return $this->option('before', $before); - } - - /** - * 设置路由后置行为 - * @access public - * @param array|\Closure $after - * @return $this - */ - public function after($after) - { - return $this->option('after', $after); - } - - /** - * 检查后缀 - * @access public - * @param string $ext - * @return $this - */ - public function ext($ext = '') - { - return $this->option('ext', $ext); - } - - /** - * 检查禁止后缀 - * @access public - * @param string $ext - * @return $this - */ - public function denyExt($ext = '') - { - return $this->option('deny_ext', $ext); - } - - /** - * 检查域名 - * @access public - * @param string $domain - * @return $this - */ - public function domain($domain) - { - return $this->option('domain', $domain); - } - - /** - * 绑定模型 - * @access public - * @param array|string $var 路由变量名 多个使用 & 分割 - * @param string|\Closure $model 绑定模型类 - * @param bool $exception 是否抛出异常 - * @return $this - */ - public function model($var, $model = null, $exception = true) - { - if ($var instanceof \Closure) { - $this->option['model'][] = $var; - } elseif (is_array($var)) { - $this->option['model'] = $var; - } elseif (is_null($model)) { - $this->option['model']['id'] = [$var, true]; - } else { - $this->option['model'][$var] = [$model, $exception]; - } - - return $this; - } - - /** - * 附加路由隐式参数 - * @access public - * @param array $append - * @return $this - */ - public function append(array $append = []) - { - if (isset($this->option['append'])) { - $this->option['append'] = array_merge($this->option['append'], $append); - } else { - $this->option['append'] = $append; - } - - return $this; - } - - /** - * 绑定验证 - * @access public - * @param mixed $validate 验证器类 - * @param string $scene 验证场景 - * @param array $message 验证提示 - * @param bool $batch 批量验证 - * @return $this - */ - public function validate($validate, $scene = null, $message = [], $batch = false) - { - $this->option['validate'] = [$validate, $scene, $message, $batch]; - - return $this; - } - - /** - * 绑定Response对象 - * @access public - * @param mixed $response - * @return $this - */ - public function response($response) - { - $this->option['response'][] = $response; - return $this; - } - - /** - * 设置Response Header信息 - * @access public - * @param string|array $name 参数名 - * @param string $value 参数值 - * @return $this - */ - public function header($header, $value = null) - { - if (is_array($header)) { - $this->option['header'] = $header; - } else { - $this->option['header'][$header] = $value; - } - - return $this; - } - - /** - * 指定路由中间件 - * @access public - * @param string|array|\Closure $middleware - * @param mixed $param - * @return $this - */ - public function middleware($middleware, $param = null) - { - if (is_null($param) && is_array($middleware)) { - $this->option['middleware'] = $middleware; - } else { - foreach ((array) $middleware as $item) { - $this->option['middleware'][] = [$item, $param]; - } - } - - return $this; - } - - /** - * 设置路由缓存 - * @access public - * @param array|string $cache - * @return $this - */ - public function cache($cache) - { - return $this->option('cache', $cache); - } - - /** - * 检查URL分隔符 - * @access public - * @param bool $depr - * @return $this - */ - public function depr($depr) - { - return $this->option('param_depr', $depr); - } - - /** - * 是否合并额外参数 - * @access public - * @param bool $merge - * @return $this - */ - public function mergeExtraVars($merge = true) - { - return $this->option('merge_extra_vars', $merge); - } - - /** - * 设置需要合并的路由参数 - * @access public - * @param array $option - * @return $this - */ - public function mergeOptions($option = []) - { - $this->mergeOptions = array_merge($this->mergeOptions, $option); - return $this; - } - - /** - * 检查是否为HTTPS请求 - * @access public - * @param bool $https - * @return $this - */ - public function https($https = true) - { - return $this->option('https', $https); - } - - /** - * 检查是否为AJAX请求 - * @access public - * @param bool $ajax - * @return $this - */ - public function ajax($ajax = true) - { - return $this->option('ajax', $ajax); - } - - /** - * 检查是否为PJAX请求 - * @access public - * @param bool $pjax - * @return $this - */ - public function pjax($pjax = true) - { - return $this->option('pjax', $pjax); - } - - /** - * 当前路由到一个模板地址 当使用数组的时候可以传入模板变量 - * @access public - * @param bool|array $view - * @return $this - */ - public function view($view = true) - { - return $this->option('view', $view); - } - - /** - * 当前路由为重定向 - * @access public - * @param bool $redirect 是否为重定向 - * @return $this - */ - public function redirect($redirect = true) - { - return $this->option('redirect', $redirect); - } - - /** - * 设置路由完整匹配 - * @access public - * @param bool $match - * @return $this - */ - public function completeMatch($match = true) - { - return $this->option('complete_match', $match); - } - - /** - * 是否去除URL最后的斜线 - * @access public - * @param bool $remove - * @return $this - */ - public function removeSlash($remove = true) - { - return $this->option('remove_slash', $remove); - } - - /** - * 设置是否允许跨域 - * @access public - * @param bool $allow - * @param array $header - * @return $this - */ - public function allowCrossDomain($allow = true, $header = []) - { - if (!empty($header)) { - $this->header($header); - } - - if ($allow && $this->parent) { - $this->parent->addRuleItem($this, 'options'); - } - - return $this->option('cross_domain', $allow); - } - - /** - * 检查OPTIONS请求 - * @access public - * @param Request $request - * @return Dispatch|void - */ - protected function checkCrossDomain($request) - { - if (!empty($this->option['cross_domain'])) { - - $header = [ - 'Access-Control-Allow-Origin' => '*', - 'Access-Control-Allow-Methods' => 'GET, POST, PATCH, PUT, DELETE', - 'Access-Control-Allow-Headers' => 'Authorization, Content-Type, If-Match, If-Modified-Since, If-None-Match, If-Unmodified-Since, X-Requested-With', - ]; - - if (!empty($this->option['header'])) { - $header = array_merge($header, $this->option['header']); - } - - $this->option['header'] = $header; - - if ($request->method(true) == 'OPTIONS') { - return new ResponseDispatch(Response::create()->code(204)->header($header)); - } - } - } - - /** - * 设置路由规则全局有效 - * @access public - * @return $this - */ - public function crossDomainRule() - { - if ($this instanceof RuleGroup) { - $method = '*'; - } else { - $method = $this->method; - } - - $this->router->setCrossDomainRule($this, $method); - - return $this; - } - - /** - * 合并分组参数 - * @access protected - * @return void - */ - protected function mergeGroupOptions() - { - $parentOption = $this->parent->getOption(); - // 合并分组参数 - foreach ($this->mergeOptions as $item) { - if (isset($parentOption[$item]) && isset($this->option[$item])) { - $this->option[$item] = array_merge($parentOption[$item], $this->option[$item]); - } - } - - $this->option = array_merge($parentOption, $this->option); - - return $this->option; - } - - /** - * 路由绑定模型实例 - * @access protected - * @param array|\Clousre $bindModel 绑定模型 - * @param array $matches 路由变量 - * @return void - */ - protected function createBindModel($bindModel, $matches) - { - foreach ($bindModel as $key => $val) { - if ($val instanceof \Closure) { - $result = Container::getInstance()->invokeFunction($val, $matches); - } else { - $fields = explode('&', $key); - - if (is_array($val)) { - list($model, $exception) = $val; - } else { - $model = $val; - $exception = true; - } - - $where = []; - $match = true; - - foreach ($fields as $field) { - if (!isset($matches[$field])) { - $match = false; - break; - } else { - $where[] = [$field, '=', $matches[$field]]; - } - } - - if ($match) { - $query = strpos($model, '\\') ? $model::where($where) : Container::get('app')->model($model)->where($where); - $result = $query->failException($exception)->find(); - } - } - - if (!empty($result)) { - // 注入容器 - Container::getInstance()->instance(get_class($result), $result); - } - } - } - - /** - * 处理路由请求缓存 - * @access protected - * @param Request $request 请求对象 - * @param string|array $cache 路由缓存 - * @return void - */ - protected function parseRequestCache($request, $cache) - { - if (is_array($cache)) { - list($key, $expire, $tag) = array_pad($cache, 3, null); - } else { - $key = str_replace('|', '/', $request->url()); - $expire = $cache; - $tag = null; - } - - $request->cache($key, $expire, $tag); - } - - /** - * 解析匹配到的规则路由 - * @access public - * @param Request $request 请求对象 - * @param string $rule 路由规则 - * @param string $route 路由地址 - * @param string $url URL地址 - * @param array $option 路由参数 - * @param array $matches 匹配的变量 - * @return Dispatch - */ - public function parseRule($request, $rule, $route, $url, $option = [], $matches = []) - { - if (is_string($route) && isset($option['prefix'])) { - // 路由地址前缀 - $route = $option['prefix'] . $route; - } - - // 替换路由地址中的变量 - if (is_string($route) && !empty($matches)) { - foreach ($matches as $key => $val) { - if (false !== strpos($route, '<' . $key . '>')) { - $route = str_replace('<' . $key . '>', $val, $route); - } elseif (false !== strpos($route, ':' . $key)) { - $route = str_replace(':' . $key, $val, $route); - } - } - } - - $this->afterMatchRule($request, $option, $matches); - - // 解析额外参数 - $count = substr_count($rule, '/'); - $url = array_slice(explode('|', $url), $count + 1); - $this->parseUrlParams(implode('|', $url), $matches); - - // 记录匹配的路由信息 - $request->routeInfo(['rule' => $rule, 'route' => $route, 'option' => $option, 'var' => $matches]); - - // 检测路由after行为 - if (!empty($option['after'])) { - $dispatch = $this->checkAfter($option['after']); - - if (false !== $dispatch) { - return $dispatch; - } - } - - // 数据自动验证 - if (isset($option['validate'])) { - $this->autoValidate($option['validate'], $request); - } - - // 发起路由调度 - return $this->dispatch($request, $route, $option); - } - - protected function afterMatchRule($request, $option = [], $matches = []) - { - // 添加中间件 - if (!empty($option['middleware'])) { - Container::get('middleware')->import($option['middleware']); - } - - // 绑定模型数据 - if (!empty($option['model'])) { - $this->createBindModel($option['model'], $matches); - } - - // 指定Header数据 - if (!empty($option['header'])) { - $header = $option['header']; - Container::get('hook')->add('response_send', function ($response) use ($header) { - $response->header($header); - }); - } - - // 指定Response响应数据 - if (!empty($option['response'])) { - Container::get('hook')->add('response_send', $option['response']); - } - - // 开启请求缓存 - if (isset($option['cache']) && $request->isGet()) { - $this->parseRequestCache($request, $option['cache']); - } - - if (!empty($option['append'])) { - $request->route($option['append']); - } - } - - /** - * 验证数据 - * @access protected - * @param array $option - * @param \think\Request $request - * @return void - * @throws ValidateException - */ - protected function autoValidate($option, $request) - { - list($validate, $scene, $message, $batch) = $option; - - if (is_array($validate)) { - // 指定验证规则 - $v = Container::get('app')->validate(); - $v->rule($validate); - } else { - // 调用验证器 - $v = Container::get('app')->validate($validate); - if (!empty($scene)) { - $v->scene($scene); - } - } - - if (!empty($message)) { - $v->message($message); - } - - // 批量验证 - if ($batch) { - $v->batch(true); - } - - if (!$v->check($request->param())) { - throw new ValidateException($v->getError()); - } - } - - /** - * 检查路由前置行为 - * @access protected - * @param mixed $before 前置行为 - * @return mixed - */ - protected function checkBefore($before) - { - $hook = Container::get('hook'); - - foreach ((array) $before as $behavior) { - $result = $hook->exec($behavior); - - if (false === $result) { - return false; - } - } - } - - /** - * 检查路由后置行为 - * @access protected - * @param mixed $after 后置行为 - * @return mixed - */ - protected function checkAfter($after) - { - Container::get('log')->notice('路由后置行为建议使用中间件替代!'); - - $hook = Container::get('hook'); - - $result = null; - - foreach ((array) $after as $behavior) { - $result = $hook->exec($behavior); - - if (!is_null($result)) { - break; - } - } - - // 路由规则重定向 - if ($result instanceof Response) { - return new ResponseDispatch($result); - } elseif ($result instanceof Dispatch) { - return $result; - } - - return false; - } - - /** - * 发起路由调度 - * @access protected - * @param Request $request Request对象 - * @param mixed $route 路由地址 - * @param array $option 路由参数 - * @return Dispatch - */ - protected function dispatch($request, $route, $option) - { - if ($route instanceof \Closure) { - // 执行闭包 - $result = new CallbackDispatch($route); - } elseif ($route instanceof Response) { - $result = new ResponseDispatch($route); - } elseif (isset($option['view']) && false !== $option['view']) { - $result = new ViewDispatch($route, is_array($option['view']) ? $option['view'] : []); - } elseif (!empty($option['redirect']) || 0 === strpos($route, '/') || strpos($route, '://')) { - // 路由到重定向地址 - $result = new RedirectDispatch($route, [], isset($option['status']) ? $option['status'] : 301); - } elseif (false !== strpos($route, '\\')) { - // 路由到方法 - $result = $this->dispatchMethod($route); - } elseif (0 === strpos($route, '@')) { - // 路由到控制器 - $result = $this->dispatchController($request, substr($route, 1)); - } else { - // 路由到模块/控制器/操作 - $result = $this->dispatchModule($request, $route); - } - - return $result; - } - - /** - * 解析URL地址为 模块/控制器/操作 - * @access protected - * @param string $route 路由地址 - * @return CallbackDispatch - */ - protected function dispatchMethod($route) - { - list($path, $var) = $this->parseUrlPath($route); - - $route = str_replace('/', '@', implode('/', $path)); - $method = strpos($route, '@') ? explode('@', $route) : $route; - - return new CallbackDispatch($method, $var); - } - - /** - * 解析URL地址为 模块/控制器/操作 - * @access protected - * @param Request $request Request对象 - * @param string $route 路由地址 - * @return ControllerDispatch - */ - protected function dispatchController($request, $route) - { - list($route, $var) = $this->parseUrlPath($route); - - $result = new ControllerDispatch(implode('/', $route), $var); - - $request->action(array_pop($route)); - $app = Container::get('app'); - $request->controller($route ? array_pop($route) : $app->config('default_controller')); - $request->module($route ? array_pop($route) : $app->config('default_module')); - $app->setModulePath($app->getAppPath() . ($app->config('app_multi_module') ? $request->module() . DIRECTORY_SEPARATOR : '')); - - return $result; - } - - /** - * 解析URL地址为 模块/控制器/操作 - * @access protected - * @param Request $request Request对象 - * @param string $route 路由地址 - * @return ModuleDispatch - */ - protected function dispatchModule($request, $route) - { - list($path, $var) = $this->parseUrlPath($route); - - $config = Container::get('config'); - $action = array_pop($path); - $controller = !empty($path) ? array_pop($path) : null; - $module = $config->get('app_multi_module') && !empty($path) ? array_pop($path) : null; - $method = $request->method(); - - if ($config->get('use_action_prefix') && $this->router->getMethodPrefix($method)) { - $prefix = $this->router->getMethodPrefix($method); - // 操作方法前缀支持 - $action = 0 !== strpos($action, $prefix) ? $prefix . $action : $action; - } - - // 设置当前请求的路由变量 - $request->route($var); - - // 路由到模块/控制器/操作 - return new ModuleDispatch([$module, $controller, $action], [], false); - } - - /** - * 路由检查 - * @access protected - * @param array $option 路由参数 - * @param Request $request Request对象 - * @return bool - */ - protected function checkOption($option, Request $request) - { - // 请求类型检测 - if (!empty($option['method'])) { - if (is_string($option['method']) && false === stripos($option['method'], $request->method())) { - return false; - } - } - - // AJAX PJAX 请求检查 - foreach (['ajax', 'pjax'] as $item) { - if (isset($option[$item])) { - $call = 'is' . $item; - if ($option[$item] && !$request->$call() || !$option[$item] && $request->$call()) { - return false; - } - } - } - - // 伪静态后缀检测 - if ($request->url() != '/' && ((isset($option['ext']) && false === stripos('|' . $option['ext'] . '|', '|' . $request->ext() . '|')) - || (isset($option['deny_ext']) && false !== stripos('|' . $option['deny_ext'] . '|', '|' . $request->ext() . '|')))) { - return false; - } - - // 域名检查 - if ((isset($option['domain']) && !in_array($option['domain'], [$_SERVER['HTTP_HOST'], $request->subDomain()]))) { - return false; - } - - // HTTPS检查 - if ((isset($option['https']) && $option['https'] && !$request->isSsl()) - || (isset($option['https']) && !$option['https'] && $request->isSsl())) { - return false; - } - - return true; - } - - /** - * 解析URL地址中的参数Request对象 - * @access protected - * @param string $rule 路由规则 - * @param array $var 变量 - * @return void - */ - protected function parseUrlParams($url, &$var = []) - { - if ($url) { - if (Container::get('config')->get('url_param_type')) { - $var += explode('|', $url); - } else { - preg_replace_callback('/(\w+)\|([^\|]+)/', function ($match) use (&$var) { - $var[$match[1]] = strip_tags($match[2]); - }, $url); - } - } - - // 设置当前请求的参数 - Container::get('request')->route($var); - } - - /** - * 解析URL的pathinfo参数和变量 - * @access protected - * @param string $url URL地址 - * @return array - */ - protected function parseUrlPath($url) - { - // 分隔符替换 确保路由定义使用统一的分隔符 - $url = str_replace('|', '/', $url); - $url = trim($url, '/'); - $var = []; - - if (false !== strpos($url, '?')) { - // [模块/控制器/操作?]参数1=值1&参数2=值2... - $info = parse_url($url); - $path = explode('/', $info['path']); - parse_str($info['query'], $var); - } elseif (strpos($url, '/')) { - // [模块/控制器/操作] - $path = explode('/', $url); - } elseif (false !== strpos($url, '=')) { - // 参数1=值1&参数2=值2... - parse_str($url, $var); - } else { - $path = [$url]; - } - - return [$path, $var]; - } - - /** - * 生成路由的正则规则 - * @access protected - * @param string $rule 路由规则 - * @param array $match 匹配的变量 - * @param array $pattern 路由变量规则 - * @param array $option 路由参数 - * @param bool $completeMatch 路由是否完全匹配 - * @param string $suffix 路由正则变量后缀 - * @return string - */ - protected function buildRuleRegex($rule, $match, $pattern = [], $option = [], $completeMatch = false, $suffix = '') - { - foreach ($match as $name) { - $replace[] = $this->buildNameRegex($name, $pattern, $suffix); - } - - // 是否区分 / 地址访问 - if (!empty($option['remove_slash']) && '/' != $rule) { - $rule = rtrim($rule, '/'); - } - - $regex = str_replace($match, $replace, $rule); - $regex = str_replace([')?/', ')/', ')?-', ')-', '\\\\/'], [')\/', ')\/', ')\-', ')\-', '\/'], $regex); - - return $regex . ($completeMatch ? '$' : ''); - } - - /** - * 生成路由变量的正则规则 - * @access protected - * @param string $name 路由变量 - * @param string $pattern 变量规则 - * @param string $suffix 路由正则变量后缀 - * @return string - */ - protected function buildNameRegex($name, $pattern, $suffix) - { - $optional = ''; - $slash = substr($name, 0, 1); - - if (in_array($slash, ['/', '-'])) { - $prefix = '\\' . $slash; - $name = substr($name, 1); - $slash = substr($name, 0, 1); - } else { - $prefix = ''; - } - - if ('<' != $slash) { - return $prefix . preg_quote($name, '/'); - } - - if (strpos($name, '?')) { - $name = substr($name, 1, -2); - $optional = '?'; - } elseif (strpos($name, '>')) { - $name = substr($name, 1, -1); - } - - if (isset($pattern[$name])) { - $nameRule = $pattern[$name]; - if (0 === strpos($nameRule, '/') && '/' == substr($nameRule, -1)) { - $nameRule = substr($nameRule, 1, -1); - } - } else { - $nameRule = '\w+'; - } - - return '(' . $prefix . '(?<' . $name . $suffix . '>' . $nameRule . '))' . $optional; - } - - /** - * 分析路由规则中的变量 - * @access protected - * @param string $rule 路由规则 - * @return array - */ - protected function parseVar($rule) - { - // 提取路由规则中的变量 - $var = []; - - if (preg_match_all('/<\w+\??>/', $rule, $matches)) { - foreach ($matches[0] as $name) { - $optional = false; - - if (strpos($name, '?')) { - $name = substr($name, 1, -2); - $optional = true; - } else { - $name = substr($name, 1, -1); - } - - $var[$name] = $optional ? 2 : 1; - } - } - - return $var; - } - - /** - * 设置路由参数 - * @access public - * @param string $method 方法名 - * @param array $args 调用参数 - * @return $this - */ - public function __call($method, $args) - { - if (count($args) > 1) { - $args[0] = $args; - } - array_unshift($args, $method); - - return call_user_func_array([$this, 'option'], $args); - } -} diff --git a/thinkphp/library/think/route/RuleGroup.php b/thinkphp/library/think/route/RuleGroup.php deleted file mode 100644 index 1fe3b2722..000000000 --- a/thinkphp/library/think/route/RuleGroup.php +++ /dev/null @@ -1,523 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\route; - -use think\Container; -use think\Exception; -use think\Request; -use think\Response; -use think\Route; -use think\route\dispatch\Response as ResponseDispatch; -use think\route\dispatch\Url as UrlDispatch; - -class RuleGroup extends Rule -{ - // 分组路由(包括子分组) - protected $rules = [ - '*' => [], - 'get' => [], - 'post' => [], - 'put' => [], - 'patch' => [], - 'delete' => [], - 'head' => [], - 'options' => [], - ]; - - protected $rule; - - // MISS路由 - protected $miss; - - // 自动路由 - protected $auto; - - // 完整名称 - protected $fullName; - - // 所在域名 - protected $domain; - - /** - * 架构函数 - * @access public - * @param Route $router 路由对象 - * @param RuleGroup $parent 上级对象 - * @param string $name 分组名称 - * @param mixed $rule 分组路由 - * @param array $option 路由参数 - * @param array $pattern 变量规则 - */ - public function __construct(Route $router, RuleGroup $parent = null, $name = '', $rule = [], $option = [], $pattern = []) - { - $this->router = $router; - $this->parent = $parent; - $this->rule = $rule; - $this->name = trim($name, '/'); - $this->option = $option; - $this->pattern = $pattern; - - $this->setFullName(); - - if ($this->parent) { - $this->domain = $this->parent->getDomain(); - $this->parent->addRuleItem($this); - } - - if (!empty($option['cross_domain'])) { - $this->router->setCrossDomainRule($this); - } - } - - /** - * 设置分组的路由规则 - * @access public - * @return void - */ - protected function setFullName() - { - if (false !== strpos($this->name, ':')) { - $this->name = preg_replace(['/\[\:(\w+)\]/', '/\:(\w+)/'], ['<\1?>', '<\1>'], $this->name); - } - - if ($this->parent && $this->parent->getFullName()) { - $this->fullName = $this->parent->getFullName() . ($this->name ? '/' . $this->name : ''); - } else { - $this->fullName = $this->name; - } - } - - /** - * 获取所属域名 - * @access public - * @return string - */ - public function getDomain() - { - return $this->domain; - } - - /** - * 检测分组路由 - * @access public - * @param Request $request 请求对象 - * @param string $url 访问地址 - * @param string $depr 路径分隔符 - * @param bool $completeMatch 路由是否完全匹配 - * @return Dispatch|false - */ - public function check($request, $url, $depr = '/', $completeMatch = false) - { - if ($dispatch = $this->checkCrossDomain($request)) { - // 跨域OPTIONS请求 - return $dispatch; - } - - // 检查分组有效性 - if (!$this->checkOption($this->option, $request) || !$this->checkUrl($url)) { - return false; - } - - // 解析分组路由 - if ($this instanceof Resource) { - $this->buildResourceRule($this->resource, $this->option); - } elseif ($this->rule) { - if ($this->rule instanceof Response) { - return new ResponseDispatch($this->rule); - } - - $this->parseGroupRule($this->rule); - } - - // 获取当前路由规则 - $method = strtolower($request->method()); - $rules = $this->getMethodRules($method); - - if (count($rules) == 0) { - return false; - } - - if ($this->parent) { - // 合并分组参数 - $this->mergeGroupOptions(); - // 合并分组变量规则 - $this->pattern = array_merge($this->parent->getPattern(), $this->pattern); - } - - if (isset($this->option['complete_match'])) { - $completeMatch = $this->option['complete_match']; - } - - if (!empty($this->option['merge_rule_regex'])) { - // 合并路由正则规则进行路由匹配检查 - $result = $this->checkMergeRuleRegex($request, $rules, $url, $depr, $completeMatch); - - if (false !== $result) { - return $result; - } - } - - // 检查分组路由 - foreach ($rules as $key => $item) { - $result = $item->check($request, $url, $depr, $completeMatch); - - if (false !== $result) { - return $result; - } - } - - if ($this->auto) { - // 自动解析URL地址 - $result = new UrlDispatch($this->auto . '/' . $url, ['depr' => $depr, 'auto_search' => false]); - } elseif ($this->miss && in_array($this->miss->getMethod(), ['*', $method])) { - // 未匹配所有路由的路由规则处理 - $result = $this->parseRule($request, '', $this->miss->getRoute(), $url, $this->miss->getOption()); - } else { - $result = false; - } - - return $result; - } - - /** - * 获取当前请求的路由规则(包括子分组、资源路由) - * @access protected - * @param string $method - * @return array - */ - protected function getMethodRules($method) - { - return array_merge($this->rules[$method], $this->rules['*']); - } - - /** - * 分组URL匹配检查 - * @access protected - * @param string $url - * @return bool - */ - protected function checkUrl($url) - { - if ($this->fullName) { - $pos = strpos($this->fullName, '<'); - - if (false !== $pos) { - $str = substr($this->fullName, 0, $pos); - } else { - $str = $this->fullName; - } - - if ($str && 0 !== stripos(str_replace('|', '/', $url), $str)) { - return false; - } - } - - return true; - } - - /** - * 延迟解析分组的路由规则 - * @access public - * @param bool $lazy 路由是否延迟解析 - * @return $this - */ - public function lazy($lazy = true) - { - if (!$lazy) { - $this->parseGroupRule($this->rule); - $this->rule = null; - } - - return $this; - } - - /** - * 解析分组和域名的路由规则及绑定 - * @access public - * @param mixed $rule 路由规则 - * @return void - */ - public function parseGroupRule($rule) - { - $origin = $this->router->getGroup(); - $this->router->setGroup($this); - - if ($rule instanceof \Closure) { - Container::getInstance()->invokeFunction($rule); - } elseif (is_array($rule)) { - $this->addRules($rule); - } elseif (is_string($rule) && $rule) { - $this->router->bind($rule, $this->domain); - } - - $this->router->setGroup($origin); - } - - /** - * 检测分组路由 - * @access public - * @param Request $request 请求对象 - * @param array $rules 路由规则 - * @param string $url 访问地址 - * @param string $depr 路径分隔符 - * @param bool $completeMatch 路由是否完全匹配 - * @return Dispatch|false - */ - protected function checkMergeRuleRegex($request, &$rules, $url, $depr, $completeMatch) - { - $url = $depr . str_replace('|', $depr, $url); - - foreach ($rules as $key => $item) { - if ($item instanceof RuleItem) { - $rule = $depr . str_replace('/', $depr, $item->getRule()); - if ($depr == $rule && $depr != $url) { - unset($rules[$key]); - continue; - } - - $complete = null !== $item->getOption('complete_match') ? $item->getOption('complete_match') : $completeMatch; - - if (false === strpos($rule, '<')) { - if (0 === strcasecmp($rule, $url) || (!$complete && 0 === strncasecmp($rule, $url, strlen($rule)))) { - return $item->checkRule($request, $url, []); - } - - unset($rules[$key]); - continue; - } - - $slash = preg_quote('/-' . $depr, '/'); - - if ($matchRule = preg_split('/[' . $slash . ']<\w+\??>/', $rule, 2)) { - if ($matchRule[0] && 0 !== strncasecmp($rule, $url, strlen($matchRule[0]))) { - unset($rules[$key]); - continue; - } - } - - if (preg_match_all('/[' . $slash . ']??/', $rule, $matches)) { - unset($rules[$key]); - $pattern = array_merge($this->getPattern(), $item->getPattern()); - $option = array_merge($this->getOption(), $item->getOption()); - - $regex[$key] = $this->buildRuleRegex($rule, $matches[0], $pattern, $option, $complete, '_THINK_' . $key); - $items[$key] = $item; - } - } - } - - try { - if (!empty($regex) && preg_match('/^(?:' . implode('|', $regex) . ')/u', $url, $match)) { - $var = []; - foreach ($match as $key => $val) { - if (is_string($key) && '' !== $val) { - list($name, $pos) = explode('_THINK_', $key); - - $var[$name] = $val; - } - } - - if (!isset($pos)) { - foreach ($regex as $key => $item) { - if (0 === strpos(str_replace(['\/', '\-', '\\' . $depr], ['/', '-', $depr], $item), $match[0])) { - $pos = $key; - break; - } - } - } - - return $items[$pos]->checkRule($request, $url, $var); - } - - return false; - } catch (\Exception $e) { - throw new Exception('route pattern error'); - } - } - - /** - * 获取分组的MISS路由 - * @access public - * @return RuleItem|null - */ - public function getMissRule() - { - return $this->miss; - } - - /** - * 获取分组的自动路由 - * @access public - * @return string - */ - public function getAutoRule() - { - return $this->auto; - } - - /** - * 注册自动路由 - * @access public - * @param string $route 路由规则 - * @return void - */ - public function addAutoRule($route) - { - $this->auto = $route; - } - - /** - * 注册MISS路由 - * @access public - * @param string $route 路由地址 - * @param string $method 请求类型 - * @param array $option 路由参数 - * @return RuleItem - */ - public function addMissRule($route, $method = '*', $option = []) - { - // 创建路由规则实例 - $ruleItem = new RuleItem($this->router, $this, null, '', $route, strtolower($method), $option); - - $this->miss = $ruleItem; - - return $ruleItem; - } - - /** - * 添加分组下的路由规则或者子分组 - * @access public - * @param string $rule 路由规则 - * @param string $route 路由地址 - * @param string $method 请求类型 - * @param array $option 路由参数 - * @param array $pattern 变量规则 - * @return $this - */ - public function addRule($rule, $route, $method = '*', $option = [], $pattern = []) - { - // 读取路由标识 - if (is_array($rule)) { - $name = $rule[0]; - $rule = $rule[1]; - } elseif (is_string($route)) { - $name = $route; - } else { - $name = null; - } - - $method = strtolower($method); - - // 创建路由规则实例 - $ruleItem = new RuleItem($this->router, $this, $name, $rule, $route, $method, $option, $pattern); - - if (!empty($option['cross_domain'])) { - $this->router->setCrossDomainRule($ruleItem, $method); - } - - $this->addRuleItem($ruleItem, $method); - - return $ruleItem; - } - - /** - * 批量注册路由规则 - * @access public - * @param array $rules 路由规则 - * @param string $method 请求类型 - * @param array $option 路由参数 - * @param array $pattern 变量规则 - * @return void - */ - public function addRules($rules, $method = '*', $option = [], $pattern = []) - { - foreach ($rules as $key => $val) { - if (is_numeric($key)) { - $key = array_shift($val); - } - - if (is_array($val)) { - $route = array_shift($val); - $option = $val ? array_shift($val) : []; - $pattern = $val ? array_shift($val) : []; - } else { - $route = $val; - } - - $this->addRule($key, $route, $method, $option, $pattern); - } - } - - public function addRuleItem($rule, $method = '*') - { - if (strpos($method, '|')) { - $rule->method($method); - $method = '*'; - } - - $this->rules[$method][] = $rule; - - return $this; - } - - /** - * 设置分组的路由前缀 - * @access public - * @param string $prefix - * @return $this - */ - public function prefix($prefix) - { - if ($this->parent && $this->parent->getOption('prefix')) { - $prefix = $this->parent->getOption('prefix') . $prefix; - } - - return $this->option('prefix', $prefix); - } - - /** - * 合并分组的路由规则正则 - * @access public - * @param bool $merge - * @return $this - */ - public function mergeRuleRegex($merge = true) - { - return $this->option('merge_rule_regex', $merge); - } - - /** - * 获取完整分组Name - * @access public - * @return string - */ - public function getFullName() - { - return $this->fullName; - } - - /** - * 获取分组的路由规则 - * @access public - * @param string $method - * @return array - */ - public function getRules($method = '') - { - if ('' === $method) { - return $this->rules; - } - - return isset($this->rules[strtolower($method)]) ? $this->rules[strtolower($method)] : []; - } - -} diff --git a/thinkphp/library/think/route/RuleItem.php b/thinkphp/library/think/route/RuleItem.php deleted file mode 100644 index 117c1a9bd..000000000 --- a/thinkphp/library/think/route/RuleItem.php +++ /dev/null @@ -1,330 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\route; - -use think\Container; -use think\Exception; -use think\Route; - -class RuleItem extends Rule -{ - /** - * 路由规则 - * @var string - */ - protected $rule; - - /** - * 路由地址 - * @var string|\Closure - */ - protected $route; - - /** - * 请求类型 - * @var string - */ - protected $method; - - /** - * 架构函数 - * @access public - * @param Route $router 路由实例 - * @param RuleGroup $parent 上级对象 - * @param string $name 路由标识 - * @param string|array $rule 路由规则 - * @param string $method 请求类型 - * @param string|\Closure $route 路由地址 - * @param array $option 路由参数 - * @param array $pattern 变量规则 - */ - public function __construct(Route $router, RuleGroup $parent, $name, $rule, $route, $method = '*', $option = [], $pattern = []) - { - $this->router = $router; - $this->parent = $parent; - $this->name = $name; - $this->route = $route; - $this->method = $method; - $this->option = $option; - $this->pattern = $pattern; - - $this->setRule($rule); - - if (!empty($option['cross_domain'])) { - $this->router->setCrossDomainRule($this, $method); - } - } - - /** - * 路由规则预处理 - * @access public - * @param string $rule 路由规则 - * @return void - */ - public function setRule($rule) - { - if ('$' == substr($rule, -1, 1)) { - // 是否完整匹配 - $rule = substr($rule, 0, -1); - - $this->option['complete_match'] = true; - } - - $rule = '/' != $rule ? ltrim($rule, '/') : ''; - - if ($this->parent && $prefix = $this->parent->getFullName()) { - $rule = $prefix . ($rule ? '/' . ltrim($rule, '/') : ''); - } - - if (false !== strpos($rule, ':')) { - $this->rule = preg_replace(['/\[\:(\w+)\]/', '/\:(\w+)/'], ['<\1?>', '<\1>'], $rule); - } else { - $this->rule = $rule; - } - - // 生成路由标识的快捷访问 - $this->setRuleName(); - } - - /** - * 获取当前路由规则 - * @access public - * @return string - */ - public function getRule() - { - return $this->rule; - } - - /** - * 获取当前路由地址 - * @access public - * @return mixed - */ - public function getRoute() - { - return $this->route; - } - - /** - * 获取当前路由的请求类型 - * @access public - * @return string - */ - public function getMethod() - { - return strtolower($this->method); - } - - /** - * 检查后缀 - * @access public - * @param string $ext - * @return $this - */ - public function ext($ext = '') - { - $this->option('ext', $ext); - $this->setRuleName(true); - - return $this; - } - - /** - * 设置别名 - * @access public - * @param string $name - * @return $this - */ - public function name($name) - { - $this->name = $name; - $this->setRuleName(true); - - return $this; - } - - /** - * 设置路由标识 用于URL反解生成 - * @access protected - * @param bool $first 是否插入开头 - * @return void - */ - protected function setRuleName($first = false) - { - if ($this->name) { - $vars = $this->parseVar($this->rule); - $name = strtolower($this->name); - - if (isset($this->option['ext'])) { - $suffix = $this->option['ext']; - } elseif ($this->parent->getOption('ext')) { - $suffix = $this->parent->getOption('ext'); - } else { - $suffix = null; - } - - $value = [$this->rule, $vars, $this->parent->getDomain(), $suffix]; - - Container::get('rule_name')->set($name, $value, $first); - } - } - - /** - * 检测路由 - * @access public - * @param Request $request 请求对象 - * @param string $url 访问地址 - * @param array $match 匹配路由变量 - * @param string $depr 路径分隔符 - * @param bool $completeMatch 路由是否完全匹配 - * @return Dispatch|false - */ - public function checkRule($request, $url, $match = null, $depr = '/', $completeMatch = false) - { - if ($dispatch = $this->checkCrossDomain($request)) { - // 允许跨域 - return $dispatch; - } - - // 检查参数有效性 - if (!$this->checkOption($this->option, $request)) { - return false; - } - - // 合并分组参数 - $option = $this->mergeGroupOptions(); - - // 检查前置行为 - if (isset($option['before']) && false === $this->checkBefore($option['before'])) { - return false; - } - - $url = $this->urlSuffixCheck($request, $url, $option); - - if (is_null($match)) { - $match = $this->match($url, $option, $depr, $completeMatch); - } - - if (false !== $match) { - return $this->parseRule($request, $this->rule, $this->route, $url, $option, $match); - } - - return false; - } - - /** - * 检测路由(含路由匹配) - * @access public - * @param Request $request 请求对象 - * @param string $url 访问地址 - * @param string $depr 路径分隔符 - * @param bool $completeMatch 路由是否完全匹配 - * @return Dispatch|false - */ - public function check($request, $url, $depr = '/', $completeMatch = false) - { - return $this->checkRule($request, $url, null, $depr, $completeMatch); - } - - /** - * URL后缀及Slash检查 - * @access protected - * @param Request $request 请求对象 - * @param string $url 访问地址 - * @param array $option 路由参数 - * @return string - */ - protected function urlSuffixCheck($request, $url, $option = []) - { - // 是否区分 / 地址访问 - if (!empty($option['remove_slash']) && '/' != $this->rule) { - $this->rule = rtrim($this->rule, '/'); - $url = rtrim($url, '|'); - } - - if (isset($option['ext'])) { - // 路由ext参数 优先于系统配置的URL伪静态后缀参数 - $url = preg_replace('/\.(' . $request->ext() . ')$/i', '', $url); - } - - return $url; - } - - /** - * 检测URL和规则路由是否匹配 - * @access private - * @param string $url URL地址 - * @param array $option 路由参数 - * @param string $depr URL分隔符(全局) - * @param bool $completeMatch 路由是否完全匹配 - * @return array|false - */ - private function match($url, $option, $depr, $completeMatch) - { - if (isset($option['complete_match'])) { - $completeMatch = $option['complete_match']; - } - - $pattern = array_merge($this->parent->getPattern(), $this->pattern); - - // 检查完整规则定义 - if (isset($pattern['__url__']) && !preg_match(0 === strpos($pattern['__url__'], '/') ? $pattern['__url__'] : '/^' . $pattern['__url__'] . '/', str_replace('|', $depr, $url))) { - return false; - } - - $var = []; - $url = $depr . str_replace('|', $depr, $url); - $rule = $depr . str_replace('/', $depr, $this->rule); - - if ($depr == $rule && $depr != $url) { - return false; - } - - if (false === strpos($rule, '<')) { - if (0 === strcasecmp($rule, $url) || (!$completeMatch && 0 === strncasecmp($rule, $url, strlen($rule)))) { - return $var; - } - return false; - } - - $slash = preg_quote('/-' . $depr, '/'); - - if ($matchRule = preg_split('/[' . $slash . ']?<\w+\??>/', $rule, 2)) { - if ($matchRule[0] && 0 !== strncasecmp($rule, $url, strlen($matchRule[0]))) { - return false; - } - } - - if (preg_match_all('/[' . $slash . ']??/', $rule, $matches)) { - $regex = $this->buildRuleRegex($rule, $matches[0], $pattern, $option, $completeMatch); - - try { - if (!preg_match('/^' . $regex . ($completeMatch ? '$' : '') . '/u', $url, $match)) { - return false; - } - } catch (\Exception $e) { - throw new Exception('route pattern error'); - } - - foreach ($match as $key => $val) { - if (is_string($key)) { - $var[$key] = $val; - } - } - } - - // 成功匹配后返回URL中的动态变量数组 - return $var; - } - -} diff --git a/thinkphp/library/think/route/RuleName.php b/thinkphp/library/think/route/RuleName.php deleted file mode 100644 index 408a7c93e..000000000 --- a/thinkphp/library/think/route/RuleName.php +++ /dev/null @@ -1,63 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\route; - -class RuleName -{ - protected $item = []; - - /** - * 注册路由标识 - * @access public - * @param string $name 路由标识 - * @param array $value 路由规则 - * @param bool $first 是否置顶 - * @return void - */ - public function set($name, $value, $first = false) - { - if ($first && isset($this->item[$name])) { - array_unshift($this->item[$name], $value); - } else { - $this->item[$name][] = $value; - } - } - - /** - * 导入路由标识 - * @access public - * @param array $name 路由标识 - * @return void - */ - public function import($item) - { - $this->item = $item; - } - - /** - * 根据路由标识获取路由信息(用于URL生成) - * @access public - * @param string $name 路由标识 - * @return array|null - */ - public function get($name = null) - { - if (is_null($name)) { - return $this->item; - } - - $name = strtolower($name); - - return isset($this->item[$name]) ? $this->item[$name] : null; - } - -} diff --git a/thinkphp/library/think/route/dispatch/Callback.php b/thinkphp/library/think/route/dispatch/Callback.php deleted file mode 100644 index 7168228c3..000000000 --- a/thinkphp/library/think/route/dispatch/Callback.php +++ /dev/null @@ -1,27 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\route\dispatch; - -use think\Container; -use think\route\Dispatch; - -class Callback extends Dispatch -{ - public function run() - { - // 执行回调方法 - $vars = array_merge($this->app['request']->param(), $this->param); - - return Container::getInstance()->invoke($this->dispatch, $vars); - } - -} diff --git a/thinkphp/library/think/route/dispatch/Controller.php b/thinkphp/library/think/route/dispatch/Controller.php deleted file mode 100644 index b48bccde2..000000000 --- a/thinkphp/library/think/route/dispatch/Controller.php +++ /dev/null @@ -1,30 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\route\dispatch; - -use think\route\Dispatch; - -class Controller extends Dispatch -{ - public function run() - { - // 执行控制器的操作方法 - $vars = array_merge($this->app['request']->param(), $this->param); - - return $this->app->action( - $this->dispatch, $vars, - $this->app->config('app.url_controller_layer'), - $this->app->config('app.controller_suffix') - ); - } - -} diff --git a/thinkphp/library/think/route/dispatch/Module.php b/thinkphp/library/think/route/dispatch/Module.php deleted file mode 100644 index ec341997f..000000000 --- a/thinkphp/library/think/route/dispatch/Module.php +++ /dev/null @@ -1,150 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\route\dispatch; - -use ReflectionMethod; -use think\Container; -use think\exception\ClassNotFoundException; -use think\exception\HttpException; -use think\Loader; -use think\route\Dispatch; - -class Module extends Dispatch -{ - protected $controller; - protected $actionName; - - public function __construct($dispatch, $param = [], $convert = null) - { - $this->app = Container::get('app'); - $this->dispatch = $dispatch; - $this->param = $param; - $this->convert = $convert; - $this->init(); - } - - protected function init() - { - $result = $this->dispatch; - - if (is_string($result)) { - $result = explode('/', $result); - } - - if ($this->app->config('app.app_multi_module')) { - // 多模块部署 - $module = strip_tags(strtolower($result[0] ?: $this->app->config('app.default_module'))); - $bind = $this->app['route']->getBind(); - $available = false; - - if ($bind && preg_match('/^[a-z]/is', $bind)) { - // 绑定模块 - list($bindModule) = explode('/', $bind); - if (empty($result[0])) { - $module = $bindModule; - } - $available = true; - } elseif (!in_array($module, $this->app->config('app.deny_module_list')) && is_dir($this->app->getAppPath() . $module)) { - $available = true; - } elseif ($this->app->config('app.empty_module')) { - $module = $this->app->config('app.empty_module'); - $available = true; - } - - // 模块初始化 - if ($module && $available) { - // 初始化模块 - $this->app['request']->module($module); - $this->app->init($module); - - // 加载当前模块语言包 - $this->app['lang']->load($this->app->getAppPath() . $module . DIRECTORY_SEPARATOR . 'lang' . DIRECTORY_SEPARATOR . $this->app['request']->langset() . '.php'); - - // 模块请求缓存检查 - $this->app['request']->cache( - $this->app->config('app.request_cache'), - $this->app->config('app.request_cache_expire'), - $this->app->config('app.request_cache_except') - ); - } else { - throw new HttpException(404, 'module not exists:' . $module); - } - } else { - // 单一模块部署 - $module = ''; - $this->app['request']->module($module); - } - - // 当前模块路径 - $this->app->setModulePath($this->app->getAppPath() . ($module ? $module . DIRECTORY_SEPARATOR : '')); - - // 是否自动转换控制器和操作名 - $convert = is_bool($this->convert) ? $this->convert : $this->app->config('app.url_convert'); - // 获取控制器名 - $controller = strip_tags($result[1] ?: $this->app->config('app.default_controller')); - $this->controller = $convert ? strtolower($controller) : $controller; - - // 获取操作名 - $this->actionName = strip_tags($result[2] ?: $this->app->config('app.default_action')); - - // 设置当前请求的控制器、操作 - $this->app['request']->controller(Loader::parseName($this->controller, 1))->action($this->actionName); - - } - - public function run() - { - // 监听module_init - $this->app['hook']->listen('module_init'); - - // 实例化控制器 - try { - $instance = $this->app->controller($this->controller, - $this->app->config('app.url_controller_layer'), - $this->app->config('app.controller_suffix'), - $this->app->config('app.empty_controller')); - } catch (ClassNotFoundException $e) { - throw new HttpException(404, 'controller not exists:' . $e->getClass()); - } - - // 获取当前操作名 - $action = $this->actionName . $this->app->config('app.action_suffix'); - - if (is_callable([$instance, $action])) { - // 执行操作方法 - $call = [$instance, $action]; - - // 严格获取当前操作方法名 - $reflect = new ReflectionMethod($instance, $action); - $methodName = $reflect->getName(); - $suffix = $this->app->config('app.action_suffix'); - $actionName = $suffix ? substr($methodName, 0, -strlen($suffix)) : $methodName; - $this->app['request']->action($actionName); - - // 自动获取请求变量 - $vars = $this->app->config('app.url_param_type') - ? $this->app['request']->route() - : $this->app['request']->param(); - } elseif (is_callable([$instance, '_empty'])) { - // 空操作 - $call = [$instance, '_empty']; - $vars = [$this->actionName]; - $reflect = new ReflectionMethod($instance, '_empty'); - } else { - // 操作不存在 - throw new HttpException(404, 'method not exists:' . get_class($instance) . '->' . $action . '()'); - } - - $this->app['hook']->listen('action_begin', $call); - return Container::getInstance()->invokeReflectMethod($instance, $reflect, $vars); - } -} diff --git a/thinkphp/library/think/route/dispatch/Redirect.php b/thinkphp/library/think/route/dispatch/Redirect.php deleted file mode 100644 index 1a9208b0c..000000000 --- a/thinkphp/library/think/route/dispatch/Redirect.php +++ /dev/null @@ -1,23 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\route\dispatch; - -use think\Response; -use think\route\Dispatch; - -class Redirect extends Dispatch -{ - public function run() - { - return Response::create($this->dispatch, 'redirect')->code($this->code); - } -} diff --git a/thinkphp/library/think/route/dispatch/Response.php b/thinkphp/library/think/route/dispatch/Response.php deleted file mode 100644 index 4b5fa16e5..000000000 --- a/thinkphp/library/think/route/dispatch/Response.php +++ /dev/null @@ -1,23 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\route\dispatch; - -use think\route\Dispatch; - -class Response extends Dispatch -{ - public function run() - { - return $this->dispatch; - } - -} diff --git a/thinkphp/library/think/route/dispatch/Url.php b/thinkphp/library/think/route/dispatch/Url.php deleted file mode 100644 index f26197aae..000000000 --- a/thinkphp/library/think/route/dispatch/Url.php +++ /dev/null @@ -1,195 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\route\dispatch; - -use think\exception\HttpException; -use think\Loader; -use think\route\Dispatch; - -class Url extends Dispatch -{ - protected function init() - { - // 解析默认的URL规则 - $url = str_replace($this->param['depr'], '|', $this->dispatch); - $result = $this->parseUrl($url); - - $this->dispatch = new Module($result); - } - - public function run() - { - return $this->dispatch->run(); - } - - /** - * 解析URL地址 - * @access protected - * @param string $url URL - * @return array - */ - protected function parseUrl($url) - { - $router = $this->app['route']; - $bind = $router->getBind(); - $depr = $this->param['depr']; - - if (!empty($bind) && preg_match('/^[a-z]/is', $bind)) { - $bind = str_replace('/', $depr, $bind); - // 如果有模块/控制器绑定 - $url = $bind . ('.' != substr($bind, -1) ? $depr : '') . ltrim($url, $depr); - } - - list($path, $var) = $this->parseUrlPath($url); - if (empty($path)) { - return [null, null, null]; - } - - // 解析模块 - $module = $this->app->config('app_multi_module') ? array_shift($path) : null; - if ($this->param['auto_search']) { - $controller = $this->autoFindController($module, $path); - } else { - // 解析控制器 - $controller = !empty($path) ? array_shift($path) : null; - } - - // 解析操作 - $action = !empty($path) ? array_shift($path) : null; - - // 解析额外参数 - if ($path) { - if ($this->app['config']->get('url_param_type')) { - $var += $path; - } else { - preg_replace_callback('/(\w+)\|([^\|]+)/', function ($match) use (&$var) { - $var[$match[1]] = strip_tags($match[2]); - }, implode('|', $path)); - } - } - - $panDomain = $this->app['request']->panDomain(); - if ($panDomain && $key = array_search('*', $var)) { - // 泛域名赋值 - $var[$key] = $panDomain; - } - - // 设置当前请求的参数 - $this->app['request']->route($var); - - // 封装路由 - $route = [$module, $controller, $action]; - - if ($this->hasDefinedRoute($route, $bind)) { - throw new HttpException(404, 'invalid request:' . str_replace('|', $depr, $url)); - } - - return $route; - } - - /** - * 检查URL是否已经定义过路由 - * @access protected - * @param string $route 路由信息 - * @param string $bind 绑定信息 - * @return bool - */ - protected function hasDefinedRoute($route, $bind) - { - list($module, $controller, $action) = $route; - - // 检查地址是否被定义过路由 - $name = strtolower($module . '/' . Loader::parseName($controller, 1) . '/' . $action); - - $name2 = ''; - - if (empty($module) || $module == $bind) { - $name2 = strtolower(Loader::parseName($controller, 1) . '/' . $action); - } - - $router = $this->app['route']; - - if ($router->getName($name) || $router->getName($name2)) { - return true; - } - - return false; - } - - /** - * 自动定位控制器类 - * @access protected - * @param string $module 模块名 - * @param array $path URL - * @return string - */ - protected function autoFindController($module, &$path) - { - $dir = $this->app->getAppPath() . ($module ? $module . '/' : '') . $this->app->config('url_controller_layer'); - $suffix = $this->app->getSuffix() || $this->app->config('controller_suffix') ? ucfirst($this->app->config('url_controller_layer')) : ''; - - $item = []; - $find = false; - - foreach ($path as $val) { - $item[] = $val; - $file = $dir . '/' . str_replace('.', '/', $val) . $suffix . '.php'; - $file = pathinfo($file, PATHINFO_DIRNAME) . '/' . Loader::parseName(pathinfo($file, PATHINFO_FILENAME), 1) . '.php'; - if (is_file($file)) { - $find = true; - break; - } else { - $dir .= '/' . Loader::parseName($val); - } - } - - if ($find) { - $controller = implode('.', $item); - $path = array_slice($path, count($item)); - } else { - $controller = array_shift($path); - } - - return $controller; - } - - /** - * 解析URL的pathinfo参数和变量 - * @access private - * @param string $url URL地址 - * @return array - */ - private function parseUrlPath($url) - { - // 分隔符替换 确保路由定义使用统一的分隔符 - $url = str_replace('|', '/', $url); - $url = trim($url, '/'); - $var = []; - - if (false !== strpos($url, '?')) { - // [模块/控制器/操作?]参数1=值1&参数2=值2... - $info = parse_url($url); - $path = explode('/', $info['path']); - parse_str($info['query'], $var); - } elseif (strpos($url, '/')) { - // [模块/控制器/操作] - $path = explode('/', $url); - } elseif (false !== strpos($url, '=')) { - // 参数1=值1&参数2=值2... - parse_str($url, $var); - } else { - $path = [$url]; - } - - return [$path, $var]; - } -} diff --git a/thinkphp/library/think/route/dispatch/View.php b/thinkphp/library/think/route/dispatch/View.php deleted file mode 100644 index 852c8b9a1..000000000 --- a/thinkphp/library/think/route/dispatch/View.php +++ /dev/null @@ -1,26 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\route\dispatch; - -use think\Response; -use think\route\Dispatch; - -class View extends Dispatch -{ - public function run() - { - // 渲染模板输出 - $vars = array_merge($this->app['request']->param(), $this->param); - - return Response::create($this->dispatch, 'view')->assign($vars); - } -} diff --git a/thinkphp/library/think/session/driver/Memcache.php b/thinkphp/library/think/session/driver/Memcache.php deleted file mode 100644 index 40d7bb825..000000000 --- a/thinkphp/library/think/session/driver/Memcache.php +++ /dev/null @@ -1,124 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\session\driver; - -use SessionHandlerInterface; -use think\Exception; - -class Memcache implements SessionHandlerInterface -{ - protected $handler = null; - protected $config = [ - 'host' => '127.0.0.1', // memcache主机 - 'port' => 11211, // memcache端口 - 'expire' => 3600, // session有效期 - 'timeout' => 0, // 连接超时时间(单位:毫秒) - 'persistent' => true, // 长连接 - 'session_name' => '', // memcache key前缀 - ]; - - public function __construct($config = []) - { - $this->config = array_merge($this->config, $config); - } - - /** - * 打开Session - * @access public - * @param string $savePath - * @param mixed $sessName - */ - public function open($savePath, $sessName) - { - // 检测php环境 - if (!extension_loaded('memcache')) { - throw new Exception('not support:memcache'); - } - - $this->handler = new \Memcache; - - // 支持集群 - $hosts = explode(',', $this->config['host']); - $ports = explode(',', $this->config['port']); - - if (empty($ports[0])) { - $ports[0] = 11211; - } - - // 建立连接 - foreach ((array) $hosts as $i => $host) { - $port = isset($ports[$i]) ? $ports[$i] : $ports[0]; - $this->config['timeout'] > 0 ? - $this->handler->addServer($host, $port, $this->config['persistent'], 1, $this->config['timeout']) : - $this->handler->addServer($host, $port, $this->config['persistent'], 1); - } - - return true; - } - - /** - * 关闭Session - * @access public - */ - public function close() - { - $this->gc(ini_get('session.gc_maxlifetime')); - $this->handler->close(); - $this->handler = null; - - return true; - } - - /** - * 读取Session - * @access public - * @param string $sessID - */ - public function read($sessID) - { - return (string) $this->handler->get($this->config['session_name'] . $sessID); - } - - /** - * 写入Session - * @access public - * @param string $sessID - * @param string $sessData - * @return bool - */ - public function write($sessID, $sessData) - { - return $this->handler->set($this->config['session_name'] . $sessID, $sessData, 0, $this->config['expire']); - } - - /** - * 删除Session - * @access public - * @param string $sessID - * @return bool - */ - public function destroy($sessID) - { - return $this->handler->delete($this->config['session_name'] . $sessID); - } - - /** - * Session 垃圾回收 - * @access public - * @param string $sessMaxLifeTime - * @return true - */ - public function gc($sessMaxLifeTime) - { - return true; - } -} diff --git a/thinkphp/library/think/session/driver/Memcached.php b/thinkphp/library/think/session/driver/Memcached.php deleted file mode 100644 index 074b2ff73..000000000 --- a/thinkphp/library/think/session/driver/Memcached.php +++ /dev/null @@ -1,135 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\session\driver; - -use SessionHandlerInterface; -use think\Exception; - -class Memcached implements SessionHandlerInterface -{ - protected $handler = null; - protected $config = [ - 'host' => '127.0.0.1', // memcache主机 - 'port' => 11211, // memcache端口 - 'expire' => 3600, // session有效期 - 'timeout' => 0, // 连接超时时间(单位:毫秒) - 'session_name' => '', // memcache key前缀 - 'username' => '', //账号 - 'password' => '', //密码 - ]; - - public function __construct($config = []) - { - $this->config = array_merge($this->config, $config); - } - - /** - * 打开Session - * @access public - * @param string $savePath - * @param mixed $sessName - */ - public function open($savePath, $sessName) - { - // 检测php环境 - if (!extension_loaded('memcached')) { - throw new Exception('not support:memcached'); - } - - $this->handler = new \Memcached; - - // 设置连接超时时间(单位:毫秒) - if ($this->config['timeout'] > 0) { - $this->handler->setOption(\Memcached::OPT_CONNECT_TIMEOUT, $this->config['timeout']); - } - - // 支持集群 - $hosts = explode(',', $this->config['host']); - $ports = explode(',', $this->config['port']); - - if (empty($ports[0])) { - $ports[0] = 11211; - } - - // 建立连接 - $servers = []; - foreach ((array) $hosts as $i => $host) { - $servers[] = [$host, (isset($ports[$i]) ? $ports[$i] : $ports[0]), 1]; - } - - $this->handler->addServers($servers); - - if ('' != $this->config['username']) { - $this->handler->setOption(\Memcached::OPT_BINARY_PROTOCOL, true); - $this->handler->setSaslAuthData($this->config['username'], $this->config['password']); - } - - return true; - } - - /** - * 关闭Session - * @access public - */ - public function close() - { - $this->gc(ini_get('session.gc_maxlifetime')); - $this->handler->quit(); - $this->handler = null; - - return true; - } - - /** - * 读取Session - * @access public - * @param string $sessID - */ - public function read($sessID) - { - return (string) $this->handler->get($this->config['session_name'] . $sessID); - } - - /** - * 写入Session - * @access public - * @param string $sessID - * @param string $sessData - * @return bool - */ - public function write($sessID, $sessData) - { - return $this->handler->set($this->config['session_name'] . $sessID, $sessData, $this->config['expire']); - } - - /** - * 删除Session - * @access public - * @param string $sessID - * @return bool - */ - public function destroy($sessID) - { - return $this->handler->delete($this->config['session_name'] . $sessID); - } - - /** - * Session 垃圾回收 - * @access public - * @param string $sessMaxLifeTime - * @return true - */ - public function gc($sessMaxLifeTime) - { - return true; - } -} diff --git a/thinkphp/library/think/session/driver/Redis.php b/thinkphp/library/think/session/driver/Redis.php deleted file mode 100644 index e09988ee1..000000000 --- a/thinkphp/library/think/session/driver/Redis.php +++ /dev/null @@ -1,169 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\session\driver; - -use SessionHandlerInterface; -use think\Exception; - -class Redis implements SessionHandlerInterface -{ - /** @var \Redis */ - protected $handler = null; - protected $config = [ - 'host' => '127.0.0.1', // redis主机 - 'port' => 6379, // redis端口 - 'password' => '', // 密码 - 'select' => 0, // 操作库 - 'expire' => 3600, // 有效期(秒) - 'timeout' => 0, // 超时时间(秒) - 'persistent' => true, // 是否长连接 - 'session_name' => '', // sessionkey前缀 - ]; - - public function __construct($config = []) - { - $this->config = array_merge($this->config, $config); - } - - /** - * 打开Session - * @access public - * @param string $savePath - * @param mixed $sessName - * @return bool - * @throws Exception - */ - public function open($savePath, $sessName) - { - // 检测php环境 - if (!extension_loaded('redis')) { - throw new Exception('not support:redis'); - } - - $this->handler = new \Redis; - - // 建立连接 - $func = $this->config['persistent'] ? 'pconnect' : 'connect'; - $this->handler->$func($this->config['host'], $this->config['port'], $this->config['timeout']); - - if ('' != $this->config['password']) { - $this->handler->auth($this->config['password']); - } - - if (0 != $this->config['select']) { - $this->handler->select($this->config['select']); - } - - return true; - } - - /** - * 关闭Session - * @access public - */ - public function close() - { - $this->gc(ini_get('session.gc_maxlifetime')); - $this->handler->close(); - $this->handler = null; - - return true; - } - - /** - * 读取Session - * @access public - * @param string $sessID - * @return string - */ - public function read($sessID) - { - return (string) $this->handler->get($this->config['session_name'] . $sessID); - } - - /** - * 写入Session - * @access public - * @param string $sessID - * @param string $sessData - * @return bool - */ - public function write($sessID, $sessData) - { - if ($this->config['expire'] > 0) { - return $this->handler->setex($this->config['session_name'] . $sessID, $this->config['expire'], $sessData); - } else { - return $this->handler->set($this->config['session_name'] . $sessID, $sessData); - } - } - - /** - * 删除Session - * @access public - * @param string $sessID - * @return bool - */ - public function destroy($sessID) - { - return $this->handler->delete($this->config['session_name'] . $sessID) > 0; - } - - /** - * Session 垃圾回收 - * @access public - * @param string $sessMaxLifeTime - * @return bool - */ - public function gc($sessMaxLifeTime) - { - return true; - } - - /** - * Redis Session 驱动的加锁机制 - * @access public - * @param string $sessID 用于加锁的sessID - * @param integer $timeout 默认过期时间 - * @return bool - */ - public function lock($sessID, $timeout = 10) - { - if (null == $this->handler) { - $this->open('', ''); - } - - $lockKey = 'LOCK_PREFIX_' . $sessID; - // 使用setnx操作加锁 - $isLock = $this->handler->setnx($lockKey, 1); - if ($isLock) { - // 设置过期时间,防止死任务的出现 - $this->handler->expire($lockKey, $timeout); - return true; - } - - return false; - } - - /** - * Redis Session 驱动的解锁机制 - * @access public - * @param string $sessID 用于解锁的sessID - */ - public function unlock($sessID) - { - if (null == $this->handler) { - $this->open('', ''); - } - - $this->handler->del('LOCK_PREFIX_' . $sessID); - } -} diff --git a/thinkphp/library/think/template/TagLib.php b/thinkphp/library/think/template/TagLib.php deleted file mode 100644 index 3653b7d2f..000000000 --- a/thinkphp/library/think/template/TagLib.php +++ /dev/null @@ -1,351 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\template; - -use think\Exception; - -/** - * ThinkPHP标签库TagLib解析基类 - * @category Think - * @package Think - * @subpackage Template - * @author liu21st - */ -class TagLib -{ - - /** - * 标签库定义XML文件 - * @var string - * @access protected - */ - protected $xml = ''; - protected $tags = []; // 标签定义 - /** - * 标签库名称 - * @var string - * @access protected - */ - protected $tagLib = ''; - - /** - * 标签库标签列表 - * @var array - * @access protected - */ - protected $tagList = []; - - /** - * 标签库分析数组 - * @var array - * @access protected - */ - protected $parse = []; - - /** - * 标签库是否有效 - * @var bool - * @access protected - */ - protected $valid = false; - - /** - * 当前模板对象 - * @var object - * @access protected - */ - protected $tpl; - - protected $comparison = [' nheq ' => ' !== ', ' heq ' => ' === ', ' neq ' => ' != ', ' eq ' => ' == ', ' egt ' => ' >= ', ' gt ' => ' > ', ' elt ' => ' <= ', ' lt ' => ' < ']; - - /** - * 架构函数 - * @access public - * @param \stdClass $template 模板引擎对象 - */ - public function __construct($template) - { - $this->tpl = $template; - } - - /** - * 按签标库替换页面中的标签 - * @access public - * @param string $content 模板内容 - * @param string $lib 标签库名 - * @return void - */ - public function parseTag(&$content, $lib = '') - { - $tags = []; - $lib = $lib ? strtolower($lib) . ':' : ''; - - foreach ($this->tags as $name => $val) { - $close = !isset($val['close']) || $val['close'] ? 1 : 0; - $tags[$close][$lib . $name] = $name; - if (isset($val['alias'])) { - // 别名设置 - $array = (array) $val['alias']; - foreach (explode(',', $array[0]) as $v) { - $tags[$close][$lib . $v] = $name; - } - } - } - - // 闭合标签 - if (!empty($tags[1])) { - $nodes = []; - $regex = $this->getRegex(array_keys($tags[1]), 1); - if (preg_match_all($regex, $content, $matches, PREG_SET_ORDER | PREG_OFFSET_CAPTURE)) { - $right = []; - foreach ($matches as $match) { - if ('' == $match[1][0]) { - $name = strtolower($match[2][0]); - // 如果有没闭合的标签头则取出最后一个 - if (!empty($right[$name])) { - // $match[0][1]为标签结束符在模板中的位置 - $nodes[$match[0][1]] = [ - 'name' => $name, - 'begin' => array_pop($right[$name]), // 标签开始符 - 'end' => $match[0], // 标签结束符 - ]; - } - } else { - // 标签头压入栈 - $right[strtolower($match[1][0])][] = $match[0]; - } - } - unset($right, $matches); - // 按标签在模板中的位置从后向前排序 - krsort($nodes); - } - - $break = ''; - if ($nodes) { - $beginArray = []; - // 标签替换 从后向前 - foreach ($nodes as $pos => $node) { - // 对应的标签名 - $name = $tags[1][$node['name']]; - $alias = $lib . $name != $node['name'] ? ($lib ? strstr($node['name'], $lib) : $node['name']) : ''; - - // 解析标签属性 - $attrs = $this->parseAttr($node['begin'][0], $name, $alias); - $method = 'tag' . $name; - - // 读取标签库中对应的标签内容 replace[0]用来替换标签头,replace[1]用来替换标签尾 - $replace = explode($break, $this->$method($attrs, $break)); - - if (count($replace) > 1) { - while ($beginArray) { - $begin = end($beginArray); - // 判断当前标签尾的位置是否在栈中最后一个标签头的后面,是则为子标签 - if ($node['end'][1] > $begin['pos']) { - break; - } else { - // 不为子标签时,取出栈中最后一个标签头 - $begin = array_pop($beginArray); - // 替换标签头部 - $content = substr_replace($content, $begin['str'], $begin['pos'], $begin['len']); - } - } - // 替换标签尾部 - $content = substr_replace($content, $replace[1], $node['end'][1], strlen($node['end'][0])); - // 把标签头压入栈 - $beginArray[] = ['pos' => $node['begin'][1], 'len' => strlen($node['begin'][0]), 'str' => $replace[0]]; - } - } - - while ($beginArray) { - $begin = array_pop($beginArray); - // 替换标签头部 - $content = substr_replace($content, $begin['str'], $begin['pos'], $begin['len']); - } - } - } - // 自闭合标签 - if (!empty($tags[0])) { - $regex = $this->getRegex(array_keys($tags[0]), 0); - $content = preg_replace_callback($regex, function ($matches) use (&$tags, &$lib) { - // 对应的标签名 - $name = $tags[0][strtolower($matches[1])]; - $alias = $lib . $name != $matches[1] ? ($lib ? strstr($matches[1], $lib) : $matches[1]) : ''; - // 解析标签属性 - $attrs = $this->parseAttr($matches[0], $name, $alias); - $method = 'tag' . $name; - return $this->$method($attrs, ''); - }, $content); - } - - return; - } - - /** - * 按标签生成正则 - * @access public - * @param array|string $tags 标签名 - * @param boolean $close 是否为闭合标签 - * @return string - */ - public function getRegex($tags, $close) - { - $begin = $this->tpl->config('taglib_begin'); - $end = $this->tpl->config('taglib_end'); - $single = strlen(ltrim($begin, '\\')) == 1 && strlen(ltrim($end, '\\')) == 1 ? true : false; - $tagName = is_array($tags) ? implode('|', $tags) : $tags; - - if ($single) { - if ($close) { - // 如果是闭合标签 - $regex = $begin . '(?:(' . $tagName . ')\b(?>[^' . $end . ']*)|\/(' . $tagName . '))' . $end; - } else { - $regex = $begin . '(' . $tagName . ')\b(?>[^' . $end . ']*)' . $end; - } - } else { - if ($close) { - // 如果是闭合标签 - $regex = $begin . '(?:(' . $tagName . ')\b(?>(?:(?!' . $end . ').)*)|\/(' . $tagName . '))' . $end; - } else { - $regex = $begin . '(' . $tagName . ')\b(?>(?:(?!' . $end . ').)*)' . $end; - } - } - - return '/' . $regex . '/is'; - } - - /** - * 分析标签属性 正则方式 - * @access public - * @param string $str 标签属性字符串 - * @param string $name 标签名 - * @param string $alias 别名 - * @return array - */ - public function parseAttr($str, $name, $alias = '') - { - $regex = '/\s+(?>(?P[\w-]+)\s*)=(?>\s*)([\"\'])(?P(?:(?!\\2).)*)\\2/is'; - $result = []; - - if (preg_match_all($regex, $str, $matches)) { - foreach ($matches['name'] as $key => $val) { - $result[$val] = $matches['value'][$key]; - } - - if (!isset($this->tags[$name])) { - // 检测是否存在别名定义 - foreach ($this->tags as $key => $val) { - if (isset($val['alias'])) { - $array = (array) $val['alias']; - if (in_array($name, explode(',', $array[0]))) { - $tag = $val; - $type = !empty($array[1]) ? $array[1] : 'type'; - $result[$type] = $name; - break; - } - } - } - } else { - $tag = $this->tags[$name]; - // 设置了标签别名 - if (!empty($alias) && isset($tag['alias'])) { - $type = !empty($tag['alias'][1]) ? $tag['alias'][1] : 'type'; - $result[$type] = $alias; - } - } - - if (!empty($tag['must'])) { - $must = explode(',', $tag['must']); - foreach ($must as $name) { - if (!isset($result[$name])) { - throw new Exception('tag attr must:' . $name); - } - } - } - } else { - // 允许直接使用表达式的标签 - if (!empty($this->tags[$name]['expression'])) { - static $_taglibs; - if (!isset($_taglibs[$name])) { - $_taglibs[$name][0] = strlen($this->tpl->config('taglib_begin_origin') . $name); - $_taglibs[$name][1] = strlen($this->tpl->config('taglib_end_origin')); - } - $result['expression'] = substr($str, $_taglibs[$name][0], -$_taglibs[$name][1]); - // 清除自闭合标签尾部/ - $result['expression'] = rtrim($result['expression'], '/'); - $result['expression'] = trim($result['expression']); - } elseif (empty($this->tags[$name]) || !empty($this->tags[$name]['attr'])) { - throw new Exception('tag error:' . $name); - } - } - - return $result; - } - - /** - * 解析条件表达式 - * @access public - * @param string $condition 表达式标签内容 - * @return string - */ - public function parseCondition($condition) - { - if (strpos($condition, ':')) { - $condition = ' ' . substr(strstr($condition, ':'), 1); - } - - $condition = str_ireplace(array_keys($this->comparison), array_values($this->comparison), $condition); - $this->tpl->parseVar($condition); - - // $this->tpl->parseVarFunction($condition); // XXX: 此句能解析表达式中用|分隔的函数,但表达式中如果有|、||这样的逻辑运算就产生了歧异 - return $condition; - } - - /** - * 自动识别构建变量 - * @access public - * @param string $name 变量描述 - * @return string - */ - public function autoBuildVar(&$name) - { - $flag = substr($name, 0, 1); - - if (':' == $flag) { - // 以:开头为函数调用,解析前去掉: - $name = substr($name, 1); - } elseif ('$' != $flag && preg_match('/[a-zA-Z_]/', $flag)) { - // XXX: 这句的写法可能还需要改进 - // 常量不需要解析 - if (defined($name)) { - return $name; - } - - // 不以$开头并且也不是常量,自动补上$前缀 - $name = '$' . $name; - } - - $this->tpl->parseVar($name); - $this->tpl->parseVarFunction($name, false); - - return $name; - } - - /** - * 获取标签列表 - * @access public - * @return array - */ - public function getTags() - { - return $this->tags; - } -} diff --git a/thinkphp/library/think/template/driver/File.php b/thinkphp/library/think/template/driver/File.php deleted file mode 100644 index 95a614039..000000000 --- a/thinkphp/library/think/template/driver/File.php +++ /dev/null @@ -1,79 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\template\driver; - -use think\Exception; - -class File -{ - /** - * 写入编译缓存 - * @access public - * @param string $cacheFile 缓存的文件名 - * @param string $content 缓存的内容 - * @return void|array - */ - public function write($cacheFile, $content) - { - // 检测模板目录 - $dir = dirname($cacheFile); - - if (!is_dir($dir)) { - mkdir($dir, 0755, true); - } - - // 生成模板缓存文件 - if (false === file_put_contents($cacheFile, $content)) { - throw new Exception('cache write error:' . $cacheFile, 11602); - } - } - - /** - * 读取编译编译 - * @access public - * @param string $cacheFile 缓存的文件名 - * @param array $vars 变量数组 - * @return void - */ - public function read($cacheFile, $vars = []) - { - if (!empty($vars) && is_array($vars)) { - // 模板阵列变量分解成为独立变量 - extract($vars, EXTR_OVERWRITE); - } - - //载入模版缓存文件 - include $cacheFile; - } - - /** - * 检查编译缓存是否有效 - * @access public - * @param string $cacheFile 缓存的文件名 - * @param int $cacheTime 缓存时间 - * @return boolean - */ - public function check($cacheFile, $cacheTime) - { - // 缓存文件不存在, 直接返回false - if (!file_exists($cacheFile)) { - return false; - } - - if (0 != $cacheTime && time() > filemtime($cacheFile) + $cacheTime) { - // 缓存是否在有效期 - return false; - } - - return true; - } -} diff --git a/thinkphp/library/think/template/taglib/Cx.php b/thinkphp/library/think/template/taglib/Cx.php deleted file mode 100644 index ad741f289..000000000 --- a/thinkphp/library/think/template/taglib/Cx.php +++ /dev/null @@ -1,724 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\template\taglib; - -use think\template\TagLib; - -/** - * CX标签库解析类 - * @category Think - * @package Think - * @subpackage Driver.Taglib - * @author liu21st - */ -class Cx extends Taglib -{ - - // 标签定义 - protected $tags = [ - // 标签定义: attr 属性列表 close 是否闭合(0 或者1 默认1) alias 标签别名 level 嵌套层次 - 'php' => ['attr' => ''], - 'volist' => ['attr' => 'name,id,offset,length,key,mod', 'alias' => 'iterate'], - 'foreach' => ['attr' => 'name,id,item,key,offset,length,mod', 'expression' => true], - 'if' => ['attr' => 'condition', 'expression' => true], - 'elseif' => ['attr' => 'condition', 'close' => 0, 'expression' => true], - 'else' => ['attr' => '', 'close' => 0], - 'switch' => ['attr' => 'name', 'expression' => true], - 'case' => ['attr' => 'value,break', 'expression' => true], - 'default' => ['attr' => '', 'close' => 0], - 'compare' => ['attr' => 'name,value,type', 'alias' => ['eq,equal,notequal,neq,gt,lt,egt,elt,heq,nheq', 'type']], - 'range' => ['attr' => 'name,value,type', 'alias' => ['in,notin,between,notbetween', 'type']], - 'empty' => ['attr' => 'name'], - 'notempty' => ['attr' => 'name'], - 'present' => ['attr' => 'name'], - 'notpresent' => ['attr' => 'name'], - 'defined' => ['attr' => 'name'], - 'notdefined' => ['attr' => 'name'], - 'load' => ['attr' => 'file,href,type,value,basepath', 'close' => 0, 'alias' => ['import,css,js', 'type']], - 'assign' => ['attr' => 'name,value', 'close' => 0], - 'define' => ['attr' => 'name,value', 'close' => 0], - 'for' => ['attr' => 'start,end,name,comparison,step'], - 'url' => ['attr' => 'link,vars,suffix,domain', 'close' => 0, 'expression' => true], - 'function' => ['attr' => 'name,vars,use,call'], - ]; - - /** - * php标签解析 - * 格式: - * {php}echo $name{/php} - * @access public - * @param array $tag 标签属性 - * @param string $content 标签内容 - * @return string - */ - public function tagPhp($tag, $content) - { - $parseStr = ''; - return $parseStr; - } - - /** - * volist标签解析 循环输出数据集 - * 格式: - * {volist name="userList" id="user" empty=""} - * {user.username} - * {user.email} - * {/volist} - * @access public - * @param array $tag 标签属性 - * @param string $content 标签内容 - * @return string|void - */ - public function tagVolist($tag, $content) - { - $name = $tag['name']; - $id = $tag['id']; - $empty = isset($tag['empty']) ? $tag['empty'] : ''; - $key = !empty($tag['key']) ? $tag['key'] : 'i'; - $mod = isset($tag['mod']) ? $tag['mod'] : '2'; - $offset = !empty($tag['offset']) && is_numeric($tag['offset']) ? intval($tag['offset']) : 0; - $length = !empty($tag['length']) && is_numeric($tag['length']) ? intval($tag['length']) : 'null'; - // 允许使用函数设定数据集 {$vo.name} - $parseStr = 'autoBuildVar($name); - $parseStr .= '$_result=' . $name . ';'; - $name = '$_result'; - } else { - $name = $this->autoBuildVar($name); - } - - $parseStr .= 'if(is_array(' . $name . ') || ' . $name . ' instanceof \think\Collection || ' . $name . ' instanceof \think\Paginator): $' . $key . ' = 0;'; - - // 设置了输出数组长度 - if (0 != $offset || 'null' != $length) { - $parseStr .= '$__LIST__ = is_array(' . $name . ') ? array_slice(' . $name . ',' . $offset . ',' . $length . ', true) : ' . $name . '->slice(' . $offset . ',' . $length . ', true); '; - } else { - $parseStr .= ' $__LIST__ = ' . $name . ';'; - } - - $parseStr .= 'if( count($__LIST__)==0 ) : echo "' . $empty . '" ;'; - $parseStr .= 'else: '; - $parseStr .= 'foreach($__LIST__ as $key=>$' . $id . '): '; - $parseStr .= '$mod = ($' . $key . ' % ' . $mod . ' );'; - $parseStr .= '++$' . $key . ';?>'; - $parseStr .= $content; - $parseStr .= ''; - - if (!empty($parseStr)) { - return $parseStr; - } - - return; - } - - /** - * foreach标签解析 循环输出数据集 - * 格式: - * {foreach name="userList" id="user" key="key" index="i" mod="2" offset="3" length="5" empty=""} - * {user.username} - * {/foreach} - * @access public - * @param array $tag 标签属性 - * @param string $content 标签内容 - * @return string|void - */ - public function tagForeach($tag, $content) - { - // 直接使用表达式 - if (!empty($tag['expression'])) { - $expression = ltrim(rtrim($tag['expression'], ')'), '('); - $expression = $this->autoBuildVar($expression); - $parseStr = ''; - $parseStr .= $content; - $parseStr .= ''; - return $parseStr; - } - - $name = $tag['name']; - $key = !empty($tag['key']) ? $tag['key'] : 'key'; - $item = !empty($tag['id']) ? $tag['id'] : $tag['item']; - $empty = isset($tag['empty']) ? $tag['empty'] : ''; - $offset = !empty($tag['offset']) && is_numeric($tag['offset']) ? intval($tag['offset']) : 0; - $length = !empty($tag['length']) && is_numeric($tag['length']) ? intval($tag['length']) : 'null'; - - $parseStr = 'autoBuildVar($name); - $parseStr .= $var . '=' . $name . '; '; - $name = $var; - } else { - $name = $this->autoBuildVar($name); - } - - $parseStr .= 'if(is_array(' . $name . ') || ' . $name . ' instanceof \think\Collection || ' . $name . ' instanceof \think\Paginator): '; - - // 设置了输出数组长度 - if (0 != $offset || 'null' != $length) { - if (!isset($var)) { - $var = '$_' . uniqid(); - } - $parseStr .= $var . ' = is_array(' . $name . ') ? array_slice(' . $name . ',' . $offset . ',' . $length . ', true) : ' . $name . '->slice(' . $offset . ',' . $length . ', true); '; - } else { - $var = &$name; - } - - $parseStr .= 'if( count(' . $var . ')==0 ) : echo "' . $empty . '" ;'; - $parseStr .= 'else: '; - - // 设置了索引项 - if (isset($tag['index'])) { - $index = $tag['index']; - $parseStr .= '$' . $index . '=0; '; - } - - $parseStr .= 'foreach(' . $var . ' as $' . $key . '=>$' . $item . '): '; - - // 设置了索引项 - if (isset($tag['index'])) { - $index = $tag['index']; - if (isset($tag['mod'])) { - $mod = (int) $tag['mod']; - $parseStr .= '$mod = ($' . $index . ' % ' . $mod . '); '; - } - $parseStr .= '++$' . $index . '; '; - } - - $parseStr .= '?>'; - // 循环体中的内容 - $parseStr .= $content; - $parseStr .= ''; - - if (!empty($parseStr)) { - return $parseStr; - } - - return; - } - - /** - * if标签解析 - * 格式: - * {if condition=" $a eq 1"} - * {elseif condition="$a eq 2" /} - * {else /} - * {/if} - * 表达式支持 eq neq gt egt lt elt == > >= < <= or and || && - * @access public - * @param array $tag 标签属性 - * @param string $content 标签内容 - * @return string - */ - public function tagIf($tag, $content) - { - $condition = !empty($tag['expression']) ? $tag['expression'] : $tag['condition']; - $condition = $this->parseCondition($condition); - $parseStr = '' . $content . ''; - - return $parseStr; - } - - /** - * elseif标签解析 - * 格式:见if标签 - * @access public - * @param array $tag 标签属性 - * @param string $content 标签内容 - * @return string - */ - public function tagElseif($tag, $content) - { - $condition = !empty($tag['expression']) ? $tag['expression'] : $tag['condition']; - $condition = $this->parseCondition($condition); - $parseStr = ''; - - return $parseStr; - } - - /** - * else标签解析 - * 格式:见if标签 - * @access public - * @param array $tag 标签属性 - * @return string - */ - public function tagElse($tag) - { - $parseStr = ''; - - return $parseStr; - } - - /** - * switch标签解析 - * 格式: - * {switch name="a.name"} - * {case value="1" break="false"}1{/case} - * {case value="2" }2{/case} - * {default /}other - * {/switch} - * @access public - * @param array $tag 标签属性 - * @param string $content 标签内容 - * @return string - */ - public function tagSwitch($tag, $content) - { - $name = !empty($tag['expression']) ? $tag['expression'] : $tag['name']; - $name = $this->autoBuildVar($name); - $parseStr = '' . $content . ''; - - return $parseStr; - } - - /** - * case标签解析 需要配合switch才有效 - * @access public - * @param array $tag 标签属性 - * @param string $content 标签内容 - * @return string - */ - public function tagCase($tag, $content) - { - $value = isset($tag['expression']) ? $tag['expression'] : $tag['value']; - $flag = substr($value, 0, 1); - - if ('$' == $flag || ':' == $flag) { - $value = $this->autoBuildVar($value); - $value = 'case ' . $value . ':'; - } elseif (strpos($value, '|')) { - $values = explode('|', $value); - $value = ''; - foreach ($values as $val) { - $value .= 'case "' . addslashes($val) . '":'; - } - } else { - $value = 'case "' . $value . '":'; - } - - $parseStr = '' . $content; - $isBreak = isset($tag['break']) ? $tag['break'] : ''; - - if ('' == $isBreak || $isBreak) { - $parseStr .= ''; - } - - return $parseStr; - } - - /** - * default标签解析 需要配合switch才有效 - * 使用: {default /}ddfdf - * @access public - * @param array $tag 标签属性 - * @param string $content 标签内容 - * @return string - */ - public function tagDefault($tag) - { - $parseStr = ''; - - return $parseStr; - } - - /** - * compare标签解析 - * 用于值的比较 支持 eq neq gt lt egt elt heq nheq 默认是eq - * 格式: {compare name="" type="eq" value="" }content{/compare} - * @access public - * @param array $tag 标签属性 - * @param string $content 标签内容 - * @return string - */ - public function tagCompare($tag, $content) - { - $name = $tag['name']; - $value = $tag['value']; - $type = isset($tag['type']) ? $tag['type'] : 'eq'; // 比较类型 - $name = $this->autoBuildVar($name); - $flag = substr($value, 0, 1); - - if ('$' == $flag || ':' == $flag) { - $value = $this->autoBuildVar($value); - } else { - $value = '\'' . $value . '\''; - } - - switch ($type) { - case 'equal': - $type = 'eq'; - break; - case 'notequal': - $type = 'neq'; - break; - } - $type = $this->parseCondition(' ' . $type . ' '); - $parseStr = '' . $content . ''; - - return $parseStr; - } - - /** - * range标签解析 - * 如果某个变量存在于某个范围 则输出内容 type= in 表示在范围内 否则表示在范围外 - * 格式: {range name="var|function" value="val" type='in|notin' }content{/range} - * example: {range name="a" value="1,2,3" type='in' }content{/range} - * @access public - * @param array $tag 标签属性 - * @param string $content 标签内容 - * @return string - */ - public function tagRange($tag, $content) - { - $name = $tag['name']; - $value = $tag['value']; - $type = isset($tag['type']) ? $tag['type'] : 'in'; // 比较类型 - - $name = $this->autoBuildVar($name); - $flag = substr($value, 0, 1); - - if ('$' == $flag || ':' == $flag) { - $value = $this->autoBuildVar($value); - $str = 'is_array(' . $value . ')?' . $value . ':explode(\',\',' . $value . ')'; - } else { - $value = '"' . $value . '"'; - $str = 'explode(\',\',' . $value . ')'; - } - - if ('between' == $type) { - $parseStr = '= $_RANGE_VAR_[0] && ' . $name . '<= $_RANGE_VAR_[1]):?>' . $content . ''; - } elseif ('notbetween' == $type) { - $parseStr = '$_RANGE_VAR_[1]):?>' . $content . ''; - } else { - $fun = ('in' == $type) ? 'in_array' : '!in_array'; - $parseStr = '' . $content . ''; - } - - return $parseStr; - } - - /** - * present标签解析 - * 如果某个变量已经设置 则输出内容 - * 格式: {present name="" }content{/present} - * @access public - * @param array $tag 标签属性 - * @param string $content 标签内容 - * @return string - */ - public function tagPresent($tag, $content) - { - $name = $tag['name']; - $name = $this->autoBuildVar($name); - $parseStr = '' . $content . ''; - - return $parseStr; - } - - /** - * notpresent标签解析 - * 如果某个变量没有设置,则输出内容 - * 格式: {notpresent name="" }content{/notpresent} - * @access public - * @param array $tag 标签属性 - * @param string $content 标签内容 - * @return string - */ - public function tagNotpresent($tag, $content) - { - $name = $tag['name']; - $name = $this->autoBuildVar($name); - $parseStr = '' . $content . ''; - - return $parseStr; - } - - /** - * empty标签解析 - * 如果某个变量为empty 则输出内容 - * 格式: {empty name="" }content{/empty} - * @access public - * @param array $tag 标签属性 - * @param string $content 标签内容 - * @return string - */ - public function tagEmpty($tag, $content) - { - $name = $tag['name']; - $name = $this->autoBuildVar($name); - $parseStr = 'isEmpty())): ?>' . $content . ''; - - return $parseStr; - } - - /** - * notempty标签解析 - * 如果某个变量不为empty 则输出内容 - * 格式: {notempty name="" }content{/notempty} - * @access public - * @param array $tag 标签属性 - * @param string $content 标签内容 - * @return string - */ - public function tagNotempty($tag, $content) - { - $name = $tag['name']; - $name = $this->autoBuildVar($name); - $parseStr = 'isEmpty()))): ?>' . $content . ''; - - return $parseStr; - } - - /** - * 判断是否已经定义了该常量 - * {defined name='TXT'}已定义{/defined} - * @access public - * @param array $tag - * @param string $content - * @return string - */ - public function tagDefined($tag, $content) - { - $name = $tag['name']; - $parseStr = '' . $content . ''; - - return $parseStr; - } - - /** - * 判断是否没有定义了该常量 - * {notdefined name='TXT'}已定义{/notdefined} - * @access public - * @param array $tag - * @param string $content - * @return string - */ - public function tagNotdefined($tag, $content) - { - $name = $tag['name']; - $parseStr = '' . $content . ''; - - return $parseStr; - } - - /** - * load 标签解析 {load file="/static/js/base.js" /} - * 格式:{load file="/static/css/base.css" /} - * @access public - * @param array $tag 标签属性 - * @param string $content 标签内容 - * @return string - */ - public function tagLoad($tag, $content) - { - $file = isset($tag['file']) ? $tag['file'] : $tag['href']; - $type = isset($tag['type']) ? strtolower($tag['type']) : ''; - - $parseStr = ''; - $endStr = ''; - - // 判断是否存在加载条件 允许使用函数判断(默认为isset) - if (isset($tag['value'])) { - $name = $tag['value']; - $name = $this->autoBuildVar($name); - $name = 'isset(' . $name . ')'; - $parseStr .= ''; - $endStr = ''; - } - - // 文件方式导入 - $array = explode(',', $file); - - foreach ($array as $val) { - $type = strtolower(substr(strrchr($val, '.'), 1)); - switch ($type) { - case 'js': - $parseStr .= ''; - break; - case 'css': - $parseStr .= ''; - break; - case 'php': - $parseStr .= ''; - break; - } - } - - return $parseStr . $endStr; - } - - /** - * assign标签解析 - * 在模板中给某个变量赋值 支持变量赋值 - * 格式: {assign name="" value="" /} - * @access public - * @param array $tag 标签属性 - * @param string $content 标签内容 - * @return string - */ - public function tagAssign($tag, $content) - { - $name = $this->autoBuildVar($tag['name']); - $flag = substr($tag['value'], 0, 1); - - if ('$' == $flag || ':' == $flag) { - $value = $this->autoBuildVar($tag['value']); - } else { - $value = '\'' . $tag['value'] . '\''; - } - - $parseStr = ''; - - return $parseStr; - } - - /** - * define标签解析 - * 在模板中定义常量 支持变量赋值 - * 格式: {define name="" value="" /} - * @access public - * @param array $tag 标签属性 - * @param string $content 标签内容 - * @return string - */ - public function tagDefine($tag, $content) - { - $name = '\'' . $tag['name'] . '\''; - $flag = substr($tag['value'], 0, 1); - - if ('$' == $flag || ':' == $flag) { - $value = $this->autoBuildVar($tag['value']); - } else { - $value = '\'' . $tag['value'] . '\''; - } - - $parseStr = ''; - - return $parseStr; - } - - /** - * for标签解析 - * 格式: - * {for start="" end="" comparison="" step="" name=""} - * content - * {/for} - * @access public - * @param array $tag 标签属性 - * @param string $content 标签内容 - * @return string - */ - public function tagFor($tag, $content) - { - //设置默认值 - $start = 0; - $end = 0; - $step = 1; - $comparison = 'lt'; - $name = 'i'; - $rand = rand(); //添加随机数,防止嵌套变量冲突 - - //获取属性 - foreach ($tag as $key => $value) { - $value = trim($value); - $flag = substr($value, 0, 1); - if ('$' == $flag || ':' == $flag) { - $value = $this->autoBuildVar($value); - } - - switch ($key) { - case 'start': - $start = $value; - break; - case 'end': - $end = $value; - break; - case 'step': - $step = $value; - break; - case 'comparison': - $comparison = $value; - break; - case 'name': - $name = $value; - break; - } - } - - $parseStr = 'parseCondition('$' . $name . ' ' . $comparison . ' $__FOR_END_' . $rand . '__') . ';$' . $name . '+=' . $step . '){ ?>'; - $parseStr .= $content; - $parseStr .= ''; - - return $parseStr; - } - - /** - * url函数的tag标签 - * 格式:{url link="模块/控制器/方法" vars="参数" suffix="true或者false 是否带有后缀" domain="true或者false 是否携带域名" /} - * @access public - * @param array $tag 标签属性 - * @param string $content 标签内容 - * @return string - */ - public function tagUrl($tag, $content) - { - $url = isset($tag['link']) ? $tag['link'] : ''; - $vars = isset($tag['vars']) ? $tag['vars'] : ''; - $suffix = isset($tag['suffix']) ? $tag['suffix'] : 'true'; - $domain = isset($tag['domain']) ? $tag['domain'] : 'false'; - - return ''; - } - - /** - * function标签解析 匿名函数,可实现递归 - * 使用: - * {function name="func" vars="$data" call="$list" use="&$a,&$b"} - * {if is_array($data)} - * {foreach $data as $val} - * {~func($val) /} - * {/foreach} - * {else /} - * {$data} - * {/if} - * {/function} - * @access public - * @param array $tag 标签属性 - * @param string $content 标签内容 - * @return string - */ - public function tagFunction($tag, $content) - { - $name = !empty($tag['name']) ? $tag['name'] : 'func'; - $vars = !empty($tag['vars']) ? $tag['vars'] : ''; - $call = !empty($tag['call']) ? $tag['call'] : ''; - $use = ['&$' . $name]; - - if (!empty($tag['use'])) { - foreach (explode(',', $tag['use']) as $val) { - $use[] = '&' . ltrim(trim($val), '&'); - } - } - - $parseStr = '' . $content . '' : '?>'; - - return $parseStr; - } -} diff --git a/thinkphp/library/think/validate/ValidateRule.php b/thinkphp/library/think/validate/ValidateRule.php deleted file mode 100644 index 5253465fa..000000000 --- a/thinkphp/library/think/validate/ValidateRule.php +++ /dev/null @@ -1,171 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\validate; - -/** - * Class ValidateRule - * @package think\validate - * @method ValidateRule confirm(mixed $rule, string $msg = '') static 验证是否和某个字段的值一致 - * @method ValidateRule different(mixed $rule, string $msg = '') static 验证是否和某个字段的值是否不同 - * @method ValidateRule egt(mixed $rule, string $msg = '') static 验证是否大于等于某个值 - * @method ValidateRule gt(mixed $rule, string $msg = '') static 验证是否大于某个值 - * @method ValidateRule elt(mixed $rule, string $msg = '') static 验证是否小于等于某个值 - * @method ValidateRule lt(mixed $rule, string $msg = '') static 验证是否小于某个值 - * @method ValidateRule eg(mixed $rule, string $msg = '') static 验证是否等于某个值 - * @method ValidateRule in(mixed $rule, string $msg = '') static 验证是否在范围内 - * @method ValidateRule notIn(mixed $rule, string $msg = '') static 验证是否不在某个范围 - * @method ValidateRule between(mixed $rule, string $msg = '') static 验证是否在某个区间 - * @method ValidateRule notBetween(mixed $rule, string $msg = '') static 验证是否不在某个区间 - * @method ValidateRule length(mixed $rule, string $msg = '') static 验证数据长度 - * @method ValidateRule max(mixed $rule, string $msg = '') static 验证数据最大长度 - * @method ValidateRule min(mixed $rule, string $msg = '') static 验证数据最小长度 - * @method ValidateRule after(mixed $rule, string $msg = '') static 验证日期 - * @method ValidateRule before(mixed $rule, string $msg = '') static 验证日期 - * @method ValidateRule expire(mixed $rule, string $msg = '') static 验证有效期 - * @method ValidateRule allowIp(mixed $rule, string $msg = '') static 验证IP许可 - * @method ValidateRule denyIp(mixed $rule, string $msg = '') static 验证IP禁用 - * @method ValidateRule regex(mixed $rule, string $msg = '') static 使用正则验证数据 - * @method ValidateRule token(mixed $rule='__token__', string $msg = '') static 验证表单令牌 - * @method ValidateRule is(mixed $rule, string $msg = '') static 验证字段值是否为有效格式 - * @method ValidateRule isRequire(mixed $rule, string $msg = '') static 验证字段必须 - * @method ValidateRule isNumber(mixed $rule, string $msg = '') static 验证字段值是否为数字 - * @method ValidateRule isArray(mixed $rule, string $msg = '') static 验证字段值是否为数组 - * @method ValidateRule isInteger(mixed $rule, string $msg = '') static 验证字段值是否为整形 - * @method ValidateRule isFloat(mixed $rule, string $msg = '') static 验证字段值是否为浮点数 - * @method ValidateRule isMobile(mixed $rule, string $msg = '') static 验证字段值是否为手机 - * @method ValidateRule isIdCard(mixed $rule, string $msg = '') static 验证字段值是否为身份证号码 - * @method ValidateRule isChs(mixed $rule, string $msg = '') static 验证字段值是否为中文 - * @method ValidateRule isChsDash(mixed $rule, string $msg = '') static 验证字段值是否为中文字母及下划线 - * @method ValidateRule isChsAlpha(mixed $rule, string $msg = '') static 验证字段值是否为中文和字母 - * @method ValidateRule isChsAlphaNum(mixed $rule, string $msg = '') static 验证字段值是否为中文字母和数字 - * @method ValidateRule isDate(mixed $rule, string $msg = '') static 验证字段值是否为有效格式 - * @method ValidateRule isBool(mixed $rule, string $msg = '') static 验证字段值是否为布尔值 - * @method ValidateRule isAlpha(mixed $rule, string $msg = '') static 验证字段值是否为字母 - * @method ValidateRule isAlphaDash(mixed $rule, string $msg = '') static 验证字段值是否为字母和下划线 - * @method ValidateRule isAlphaNum(mixed $rule, string $msg = '') static 验证字段值是否为字母和数字 - * @method ValidateRule isAccepted(mixed $rule, string $msg = '') static 验证字段值是否为yes, on, 或是 1 - * @method ValidateRule isEmail(mixed $rule, string $msg = '') static 验证字段值是否为有效邮箱格式 - * @method ValidateRule isUrl(mixed $rule, string $msg = '') static 验证字段值是否为有效URL地址 - * @method ValidateRule activeUrl(mixed $rule, string $msg = '') static 验证是否为合格的域名或者IP - * @method ValidateRule ip(mixed $rule, string $msg = '') static 验证是否有效IP - * @method ValidateRule fileExt(mixed $rule, string $msg = '') static 验证文件后缀 - * @method ValidateRule fileMime(mixed $rule, string $msg = '') static 验证文件类型 - * @method ValidateRule fileSize(mixed $rule, string $msg = '') static 验证文件大小 - * @method ValidateRule image(mixed $rule, string $msg = '') static 验证图像文件 - * @method ValidateRule method(mixed $rule, string $msg = '') static 验证请求类型 - * @method ValidateRule dateFormat(mixed $rule, string $msg = '') static 验证时间和日期是否符合指定格式 - * @method ValidateRule unique(mixed $rule, string $msg = '') static 验证是否唯一 - * @method ValidateRule behavior(mixed $rule, string $msg = '') static 使用行为类验证 - * @method ValidateRule filter(mixed $rule, string $msg = '') static 使用filter_var方式验证 - * @method ValidateRule requireIf(mixed $rule, string $msg = '') static 验证某个字段等于某个值的时候必须 - * @method ValidateRule requireCallback(mixed $rule, string $msg = '') static 通过回调方法验证某个字段是否必须 - * @method ValidateRule requireWith(mixed $rule, string $msg = '') static 验证某个字段有值的情况下必须 - * @method ValidateRule must(mixed $rule=null, string $msg = '') static 必须验证 - */ -class ValidateRule -{ - // 验证字段的名称 - protected $title; - - // 当前验证规则 - protected $rule = []; - - // 验证提示信息 - protected $message = []; - - /** - * 添加验证因子 - * @access protected - * @param string $name 验证名称 - * @param mixed $rule 验证规则 - * @param string $msg 提示信息 - * @return $this - */ - protected function addItem($name, $rule = null, $msg = '') - { - if ($rule || 0 === $rule) { - $this->rule[$name] = $rule; - } else { - $this->rule[] = $name; - } - - $this->message[] = $msg; - - return $this; - } - - /** - * 获取验证规则 - * @access public - * @return array - */ - public function getRule() - { - return $this->rule; - } - - /** - * 获取验证字段名称 - * @access public - * @return string - */ - public function getTitle() - { - return $this->title; - } - - /** - * 获取验证提示 - * @access public - * @return array - */ - public function getMsg() - { - return $this->message; - } - - /** - * 设置验证字段名称 - * @access public - * @return $this - */ - public function title($title) - { - $this->title = $title; - - return $this; - } - - public function __call($method, $args) - { - if ('is' == strtolower(substr($method, 0, 2))) { - $method = substr($method, 2); - } - - array_unshift($args, lcfirst($method)); - - return call_user_func_array([$this, 'addItem'], $args); - } - - public static function __callStatic($method, $args) - { - $rule = new static(); - - if ('is' == strtolower(substr($method, 0, 2))) { - $method = substr($method, 2); - } - - array_unshift($args, lcfirst($method)); - - return call_user_func_array([$rule, 'addItem'], $args); - } -} diff --git a/thinkphp/library/think/view/driver/Php.php b/thinkphp/library/think/view/driver/Php.php deleted file mode 100644 index f69871528..000000000 --- a/thinkphp/library/think/view/driver/Php.php +++ /dev/null @@ -1,182 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\view\driver; - -use think\Container; -use think\exception\TemplateNotFoundException; -use think\Loader; - -class Php -{ - // 模板引擎参数 - protected $config = [ - // 默认模板渲染规则 1 解析为小写+下划线 2 全部转换小写 - 'auto_rule' => 1, - // 视图基础目录(集中式) - 'view_base' => '', - // 模板起始路径 - 'view_path' => '', - // 模板文件后缀 - 'view_suffix' => 'php', - // 模板文件名分隔符 - 'view_depr' => DIRECTORY_SEPARATOR, - ]; - - public function __construct($config = []) - { - $this->config = array_merge($this->config, (array) $config); - } - - /** - * 检测是否存在模板文件 - * @access public - * @param string $template 模板文件或者模板规则 - * @return bool - */ - public function exists($template) - { - if ('' == pathinfo($template, PATHINFO_EXTENSION)) { - // 获取模板文件名 - $template = $this->parseTemplate($template); - } - - return is_file($template); - } - - /** - * 渲染模板文件 - * @access public - * @param string $template 模板文件 - * @param array $data 模板变量 - * @return void - */ - public function fetch($template, $data = []) - { - if ('' == pathinfo($template, PATHINFO_EXTENSION)) { - // 获取模板文件名 - $template = $this->parseTemplate($template); - } - - // 模板不存在 抛出异常 - if (!is_file($template)) { - throw new TemplateNotFoundException('template not exists:' . $template, $template); - } - - // 记录视图信息 - Container::get('app') - ->log('[ VIEW ] ' . $template . ' [ ' . var_export(array_keys($data), true) . ' ]'); - - if (isset($data['template'])) { - $__template__ = $template; - extract($data, EXTR_OVERWRITE); - include $__template__; - } else { - extract($data, EXTR_OVERWRITE); - include $template; - } - } - - /** - * 渲染模板内容 - * @access public - * @param string $content 模板内容 - * @param array $data 模板变量 - * @return void - */ - public function display($content, $data = []) - { - if (isset($data['content'])) { - $__content__ = $content; - extract($data, EXTR_OVERWRITE); - eval('?>' . $__content__); - } else { - extract($data, EXTR_OVERWRITE); - eval('?>' . $content); - } - } - - /** - * 自动定位模板文件 - * @access private - * @param string $template 模板文件规则 - * @return string - */ - private function parseTemplate($template) - { - if (empty($this->config['view_path'])) { - $this->config['view_path'] = Container::get('app')->getModulePath() . 'view' . DIRECTORY_SEPARATOR; - } - - $request = Container::get('request'); - - // 获取视图根目录 - if (strpos($template, '@')) { - // 跨模块调用 - list($module, $template) = explode('@', $template); - } - - if ($this->config['view_base']) { - // 基础视图目录 - $module = isset($module) ? $module : $request->module(); - $path = $this->config['view_base'] . ($module ? $module . DIRECTORY_SEPARATOR : ''); - } else { - $path = isset($module) ? Container::get('app')->getAppPath() . $module . DIRECTORY_SEPARATOR . 'view' . DIRECTORY_SEPARATOR : $this->config['view_path']; - } - - $depr = $this->config['view_depr']; - - if (0 !== strpos($template, '/')) { - $template = str_replace(['/', ':'], $depr, $template); - $controller = Loader::parseName($request->controller()); - - if ($controller) { - if ('' == $template) { - // 如果模板文件名为空 按照默认规则定位 - $template = str_replace('.', DIRECTORY_SEPARATOR, $controller) . $depr . $this->getActionTemplate($request); - } elseif (false === strpos($template, $depr)) { - $template = str_replace('.', DIRECTORY_SEPARATOR, $controller) . $depr . $template; - } - } - } else { - $template = str_replace(['/', ':'], $depr, substr($template, 1)); - } - - return $path . ltrim($template, '/') . '.' . ltrim($this->config['view_suffix'], '.'); - } - - protected function getActionTemplate($request) - { - $rule = [$request->action(true), Loader::parseName($request->action(true)), $request->action()]; - $type = $this->config['auto_rule']; - - return isset($rule[$type]) ? $rule[$type] : $rule[0]; - } - - /** - * 配置模板引擎 - * @access private - * @param string|array $name 参数名 - * @param mixed $value 参数值 - * @return void - */ - public function config($name, $value = null) - { - if (is_array($name)) { - $this->config = array_merge($this->config, $name); - } elseif (is_null($value)) { - return isset($this->config[$name]) ? $this->config[$name] : null; - } else { - $this->config[$name] = $value; - } - } - -} diff --git a/thinkphp/library/think/view/driver/Think.php b/thinkphp/library/think/view/driver/Think.php deleted file mode 100644 index 834a8c032..000000000 --- a/thinkphp/library/think/view/driver/Think.php +++ /dev/null @@ -1,183 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\view\driver; - -use think\Container; -use think\exception\TemplateNotFoundException; -use think\Loader; -use think\Template; - -class Think -{ - // 模板引擎实例 - private $template; - // 模板引擎参数 - protected $config = [ - // 默认模板渲染规则 1 解析为小写+下划线 2 全部转换小写 - 'auto_rule' => 1, - // 视图基础目录(集中式) - 'view_base' => '', - // 模板起始路径 - 'view_path' => '', - // 模板文件后缀 - 'view_suffix' => 'html', - // 模板文件名分隔符 - 'view_depr' => DIRECTORY_SEPARATOR, - // 是否开启模板编译缓存,设为false则每次都会重新编译 - 'tpl_cache' => true, - ]; - - public function __construct($config = []) - { - $this->config = array_merge($this->config, (array) $config); - if (empty($this->config['view_path'])) { - $this->config['view_path'] = Container::get('app')->getModulePath() . 'view' . DIRECTORY_SEPARATOR; - } - - $this->template = new Template($this->config); - } - - /** - * 检测是否存在模板文件 - * @access public - * @param string $template 模板文件或者模板规则 - * @return bool - */ - public function exists($template) - { - if ('' == pathinfo($template, PATHINFO_EXTENSION)) { - // 获取模板文件名 - $template = $this->parseTemplate($template); - } - - return is_file($template); - } - - /** - * 渲染模板文件 - * @access public - * @param string $template 模板文件 - * @param array $data 模板变量 - * @param array $config 模板参数 - * @return void - */ - public function fetch($template, $data = [], $config = []) - { - if ('' == pathinfo($template, PATHINFO_EXTENSION)) { - // 获取模板文件名 - $template = $this->parseTemplate($template); - } - - // 模板不存在 抛出异常 - if (!is_file($template)) { - throw new TemplateNotFoundException('template not exists:' . $template, $template); - } - - // 记录视图信息 - Container::get('app') - ->log('[ VIEW ] ' . $template . ' [ ' . var_export(array_keys($data), true) . ' ]'); - - $this->template->fetch($template, $data, $config); - } - - /** - * 渲染模板内容 - * @access public - * @param string $template 模板内容 - * @param array $data 模板变量 - * @param array $config 模板参数 - * @return void - */ - public function display($template, $data = [], $config = []) - { - $this->template->display($template, $data, $config); - } - - /** - * 自动定位模板文件 - * @access private - * @param string $template 模板文件规则 - * @return string - */ - private function parseTemplate($template) - { - // 分析模板文件规则 - $request = Container::get('request'); - - // 获取视图根目录 - if (strpos($template, '@')) { - // 跨模块调用 - list($module, $template) = explode('@', $template); - } - - if ($this->config['view_base']) { - // 基础视图目录 - $module = isset($module) ? $module : $request->module(); - $path = $this->config['view_base'] . ($module ? $module . DIRECTORY_SEPARATOR : ''); - } else { - $path = isset($module) ? Container::get('app')->getAppPath() . $module . DIRECTORY_SEPARATOR . 'view' . DIRECTORY_SEPARATOR : $this->config['view_path']; - } - - $depr = $this->config['view_depr']; - - if (0 !== strpos($template, '/')) { - $template = str_replace(['/', ':'], $depr, $template); - $controller = Loader::parseName($request->controller()); - - if ($controller) { - if ('' == $template) { - // 如果模板文件名为空 按照默认规则定位 - $template = str_replace('.', DIRECTORY_SEPARATOR, $controller) . $depr . $this->getActionTemplate($request); - } elseif (false === strpos($template, $depr)) { - $template = str_replace('.', DIRECTORY_SEPARATOR, $controller) . $depr . $template; - } - } - } else { - $template = str_replace(['/', ':'], $depr, substr($template, 1)); - } - - return $path . ltrim($template, '/') . '.' . ltrim($this->config['view_suffix'], '.'); - } - - protected function getActionTemplate($request) - { - $rule = [$request->action(true), Loader::parseName($request->action(true)), $request->action()]; - $type = $this->config['auto_rule']; - - return isset($rule[$type]) ? $rule[$type] : $rule[0]; - } - - /** - * 配置或者获取模板引擎参数 - * @access private - * @param string|array $name 参数名 - * @param mixed $value 参数值 - * @return mixed - */ - public function config($name, $value = null) - { - if (is_array($name)) { - $this->template->config($name); - $this->config = array_merge($this->config, $name); - } elseif (is_null($value)) { - return $this->template->config($name); - } else { - $this->template->$name = $value; - $this->config[$name] = $value; - } - } - - public function __call($method, $params) - { - return call_user_func_array([$this->template, $method], $params); - } -} diff --git a/thinkphp/library/traits/controller/Jump.php b/thinkphp/library/traits/controller/Jump.php deleted file mode 100644 index 8ea2ee4a2..000000000 --- a/thinkphp/library/traits/controller/Jump.php +++ /dev/null @@ -1,158 +0,0 @@ -error(); - * $this->redirect(); - * } - * } - */ -namespace traits\controller; - -use think\Container; -use think\exception\HttpResponseException; -use think\Response; -use think\response\Redirect; - -trait Jump -{ - /** - * 操作成功跳转的快捷方法 - * @access protected - * @param mixed $msg 提示信息 - * @param string $url 跳转的URL地址 - * @param mixed $data 返回的数据 - * @param integer $wait 跳转等待时间 - * @param array $header 发送的Header信息 - * @return void - */ - protected function success($msg = '', $url = null, $data = '', $wait = 3, array $header = []) - { - if (is_null($url) && isset($_SERVER["HTTP_REFERER"])) { - $url = $_SERVER["HTTP_REFERER"]; - } elseif ('' !== $url) { - $url = (strpos($url, '://') || 0 === strpos($url, '/')) ? $url : Container::get('url')->build($url); - } - - $result = [ - 'code' => 1, - 'msg' => $msg, - 'data' => $data, - 'url' => $url, - 'wait' => $wait, - ]; - - $type = $this->getResponseType(); - // 把跳转模板的渲染下沉,这样在 response_send 行为里通过getData()获得的数据是一致性的格式 - if ('html' == strtolower($type)) { - $type = 'jump'; - } - - $response = Response::create($result, $type)->header($header)->options(['jump_template' => Container::get('config')->get('dispatch_success_tmpl')]); - - throw new HttpResponseException($response); - } - - /** - * 操作错误跳转的快捷方法 - * @access protected - * @param mixed $msg 提示信息 - * @param string $url 跳转的URL地址 - * @param mixed $data 返回的数据 - * @param integer $wait 跳转等待时间 - * @param array $header 发送的Header信息 - * @return void - */ - protected function error($msg = '', $url = null, $data = '', $wait = 3, array $header = []) - { - if (is_null($url)) { - $url = Container::get('request')->isAjax() ? '' : 'javascript:history.back(-1);'; - } elseif ('' !== $url) { - $url = (strpos($url, '://') || 0 === strpos($url, '/')) ? $url : Container::get('url')->build($url); - } - - $result = [ - 'code' => 0, - 'msg' => $msg, - 'data' => $data, - 'url' => $url, - 'wait' => $wait, - ]; - - $type = $this->getResponseType(); - if ('html' == strtolower($type)) { - $type = 'jump'; - } - - $response = Response::create($result, $type)->header($header)->options(['jump_template' => Container::get('config')->get('dispatch_error_tmpl')]); - - throw new HttpResponseException($response); - } - - /** - * 返回封装后的API数据到客户端 - * @access protected - * @param mixed $data 要返回的数据 - * @param integer $code 返回的code - * @param mixed $msg 提示信息 - * @param string $type 返回数据格式 - * @param array $header 发送的Header信息 - * @return void - */ - protected function result($data, $code = 0, $msg = '', $type = '', array $header = []) - { - $result = [ - 'code' => $code, - 'msg' => $msg, - 'time' => time(), - 'data' => $data, - ]; - - $type = $type ?: $this->getResponseType(); - $response = Response::create($result, $type)->header($header); - - throw new HttpResponseException($response); - } - - /** - * URL重定向 - * @access protected - * @param string $url 跳转的URL表达式 - * @param array|integer $params 其它URL参数 - * @param integer $code http code - * @param array $with 隐式传参 - * @return void - */ - protected function redirect($url, $params = [], $code = 302, $with = []) - { - $response = new Redirect($url); - - if (is_integer($params)) { - $code = $params; - $params = []; - } - - $response->code($code)->params($params)->with($with); - - throw new HttpResponseException($response); - } - - /** - * 获取当前的response 输出类型 - * @access protected - * @return string - */ - protected function getResponseType() - { - $isAjax = Container::get('request')->isAjax(); - $config = Container::get('config'); - - return $isAjax - ? $config->get('default_ajax_return') - : $config->get('default_return_type'); - } -} diff --git a/thinkphp/logo.png b/thinkphp/logo.png deleted file mode 100644 index 25fd0593688de5c9f4cd321da1a72ab9566fe331..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6995 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 diff --git a/thinkphp/phpunit.xml.dist b/thinkphp/phpunit.xml.dist deleted file mode 100644 index 37c3d2b53..000000000 --- a/thinkphp/phpunit.xml.dist +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - - - - - - - - - - - - ./library/think/*/tests/ - - - - - - ./library/ - - ./library/think/*/tests - ./library/think/*/assets - ./library/think/*/resources - ./library/think/*/vendor - - - - \ No newline at end of file diff --git a/thinkphp/tpl/default_index.tpl b/thinkphp/tpl/default_index.tpl deleted file mode 100644 index 740b19283..000000000 --- a/thinkphp/tpl/default_index.tpl +++ /dev/null @@ -1,10 +0,0 @@ -*{ padding: 0; margin: 0; } div{ padding: 4px 48px;} a{color:#2E5CD5;cursor: pointer;text-decoration: none} a:hover{text-decoration:underline; } body{ background: #fff; font-family: "Century Gothic","Microsoft yahei"; color: #333;font-size:18px;} h1{ font-size: 100px; font-weight: normal; margin-bottom: 12px; } p{ line-height: 1.6em; font-size: 42px }

          :) 2018新年快乐

          ThinkPHP V5.1
          12载初心不改(2006-2018) - 你值得信赖的PHP框架

          '; - } -} diff --git a/thinkphp/tpl/dispatch_jump.tpl b/thinkphp/tpl/dispatch_jump.tpl deleted file mode 100644 index 583376bbb..000000000 --- a/thinkphp/tpl/dispatch_jump.tpl +++ /dev/null @@ -1,49 +0,0 @@ -{__NOLAYOUT__} - - - - - 跳转提示 - - - -
          - - -

          :)

          -

          - - -

          :(

          -

          - - -

          -

          - 页面自动 跳转 等待时间: -

          -
          - - - diff --git a/thinkphp/tpl/page_trace.tpl b/thinkphp/tpl/page_trace.tpl deleted file mode 100644 index 2e5afbab9..000000000 --- a/thinkphp/tpl/page_trace.tpl +++ /dev/null @@ -1,71 +0,0 @@ -
          - - -
          -
          -
          getUseTime().'s ';?>
          - -
          - - diff --git a/thinkphp/tpl/think_exception.tpl b/thinkphp/tpl/think_exception.tpl deleted file mode 100644 index 19ecbdc1b..000000000 --- a/thinkphp/tpl/think_exception.tpl +++ /dev/null @@ -1,507 +0,0 @@ -'.end($names).''; - } - } - - if(!function_exists('parse_file')){ - function parse_file($file, $line) - { - return ''.basename($file)." line {$line}".''; - } - } - - if(!function_exists('parse_args')){ - function parse_args($args) - { - $result = []; - - foreach ($args as $key => $item) { - switch (true) { - case is_object($item): - $value = sprintf('object(%s)', parse_class(get_class($item))); - break; - case is_array($item): - if(count($item) > 3){ - $value = sprintf('[%s, ...]', parse_args(array_slice($item, 0, 3))); - } else { - $value = sprintf('[%s]', parse_args($item)); - } - break; - case is_string($item): - if(strlen($item) > 20){ - $value = sprintf( - '\'%s...\'', - htmlentities($item), - htmlentities(substr($item, 0, 20)) - ); - } else { - $value = sprintf("'%s'", htmlentities($item)); - } - break; - case is_int($item): - case is_float($item): - $value = $item; - break; - case is_null($item): - $value = 'null'; - break; - case is_bool($item): - $value = '' . ($item ? 'true' : 'false') . ''; - break; - case is_resource($item): - $value = 'resource'; - break; - default: - $value = htmlentities(str_replace("\n", '', var_export(strval($item), true))); - break; - } - - $result[] = is_int($key) ? $value : "'{$key}' => {$value}"; - } - - return implode(', ', $result); - } - } -?> - - - - - 系统发生错误 - - - - -
          - -
          - -
          -
          - -
          -
          -

          [

          -
          -

          -
          - -
          - -
          -
            $value) { ?>
          -
          - -
          -

          Call Stack

          -
            -
          1. - -
          2. - -
          3. - -
          -
          -
          - -
          - -

          - -
          - - - -
          -

          Exception Datas

          - $value) { ?> - - - - - - - $val) { ?> - - - - - - - -
          empty
          - -
          - -
          - - - -
          -

          Environment Variables

          - $value) { ?> - - - - - - - $val) { ?> - - - - - - - -
          empty
          - -
          - -
          - - - - - - - - diff --git a/vendor/aliyuncs/oss-sdk-php/.coveralls.yml b/vendor/aliyuncs/oss-sdk-php/.coveralls.yml deleted file mode 100644 index 850cc5974..000000000 --- a/vendor/aliyuncs/oss-sdk-php/.coveralls.yml +++ /dev/null @@ -1,2 +0,0 @@ -coverage_clover: coverage.xml -json_path: coverage.json diff --git a/vendor/aliyuncs/oss-sdk-php/.gitignore b/vendor/aliyuncs/oss-sdk-php/.gitignore deleted file mode 100644 index 7cdb514d8..000000000 --- a/vendor/aliyuncs/oss-sdk-php/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -vendor -composer.lock -doc -output -.idea -.buildpath -.project -.settings diff --git a/vendor/aliyuncs/oss-sdk-php/.travis.yml b/vendor/aliyuncs/oss-sdk-php/.travis.yml deleted file mode 100644 index 0b40ba23b..000000000 --- a/vendor/aliyuncs/oss-sdk-php/.travis.yml +++ /dev/null @@ -1,21 +0,0 @@ -language: php -php: - - 7.1 - - 7.0 - - 5.6 - - 5.5 - - 5.4 -install: - - composer self-update - - composer install --no-interaction -script: - - php vendor/bin/phpunit -after_success: - - php vendor/bin/coveralls -v -env: - global: - - secure: SzmQ854lQmhV6ZkAG7lQNTY3CkazrXnDSb6VMwPU/sdaLGxPO159AW3fJS5d0sO/XN1P8x5WNkoA4i9soDlLBRibEEISNUM/2EMnpszsRymZ9o97PrS2IgORXTUL/OF+rpATzyNVB2p+2l9hBLiGf17exMSA5iOeY7W6E+VKPGi8TFykgbGUnLKU0h1hV3rzmtfGjOXcSpvYU/hxeZD/J/+6m5Gic9b/pNS+AbfTj7Y7Ru9tNsnyUP29V/vtEYtpQir3ZxQiSiUv9idybgGnJBOMYydJofb/mpFYHhYLSWqtMKGNLpeawmqs4z8S1Tvx5U5uzW5+h/mpzhvBaFlWGpm8t89BQxun5LVX5NiYCrV7TqaLitGp1cSpMjMDnrnSTNzk1exVz+rWZZcWS7yB9ULYA681GA8StXWk167qB7Y30iK1dFK3+2mDN2cEY+qLs8+bupDowQ4eOM+eqfhxX8F8+ouKcKomETsjiIwL+CUsIe6wjvnYFWb1YlRhbsI75bblHApflohnt6gVSJ78ZPqID+u2oUMjmIWXLTnRR2Y2tgEW8uqHeIoQ8BBntLdQDmv0BO4FpnGQIwrUUwQYeNzEM0DOr3hWZhyDR6Xvl+9H0l52xjANaSqpuTZfC3zmeFTG7kIjydvxNePRrony6XAawL9BvI7aKWuVF6YVjPM= - - secure: nEhsU8aUQqsAJeuger+boh51oTpeo4YNG7vUWbKxdwVDIrcLb+l7r7RvTlxU7mt8IZTWwicgri18mh+Wi04BwX4ulBA1SCs8jPbL51KEo5izoDGGtLSd2fuPHdslYSrwagrvq90EPnDT/7fHWn/TAoT+rueZzjNyCu5IGSgL3GnXaUThsJ82NMePL2YRdP4Q1qmtZPRFBOkOQ6F0heuV8fw8sLyTO3txaCQum9YneGxrWxOl/E8zB0qtlnPwLE8ogaHZMQh2/jThmTbI5UqwRTxV4f0qoD5eJYH+j0fslsSAjsg/HPnSuVcnccK3zSU+s2sV4dPCcISzECJvZEObwipfxOGhdqt5gMcxHhn8qVsbT97iIh106pG/BJCDgQd2EeVW8WfCi6cCuCKIMipvVkMypkmjQHWU1XaqPzILl7g5diW9Ctp2C4Akq5dYdrdu8IrnVK1ShtkQVaWU+S/Bht8VU5gYP7olPW/GdTz7sceU1NOIC4NPXqmWKbfavR98U5dkHMLMvzABYL1Q87h+KhPD1c14NUyw3YENUW7REiF/X5lERRm5H0kJ/1JqAa+AgeHQEGmPVuZV2s/na4b0S1479QRVmSM/6ZzXQpU+Y8jCRfETpUFA4S331369kirHgCqDlxyIntuEKrzivD02/O+5C3eJ0WHRz6QsN2/R4qg= - - secure: ZTvzNXEZP4efl+a/3VGMmdabfUQp83v5/lecMns039Ro7UuZYPdtbPtpPnpjaTI6Htd22A4Rva5BU/3JCQJAyQvpbKNn5sGou2SmfQu3o0SyhggSB7gWjYAf707aW1j4bHYfP8IjDS5NjuVk3AqXeNSUuLRUXRmwSOB0lSYiRhiTJY+pUdBl382Hx4NbhIU/gmOzRoJCs7coTip8IURXYEHPi5dnDWluajxI+TgNXFccSgEleeQDJajYgXmpLb2EhSj8piipOnVgaCEE5bh5fbp32024Qq38SGHKcbfnwj2IInpZpZESJknRKoqAlFjdOJhork82dBcvAr5JxCBZKx5IuwXcTjxkQ6tRtBeqhPLPFuX3MQ8WrtU+wniPM0RCH/VoFkUKO7JGQDwmoi2AKago4PsuDs4P6Y6CeuOVpcso731GwwMNhIJcyrJJivXprQNEGsEw+9wLjU1qNYs6IIA3S/gPzFrNbdX5Wf8vxt0vLpgYvBNtPnLMejMtknuyfVzf5iKuVVoGPDTEz+ajs06+jfoPfm/4sLTaLghuVH7Adm74OpF769JQNnQYKwJuu4bNlcbLJChulCEMBOx7myqo/9O6RCTuqzHaGmVWNot4RGqRFHgJGl/JJf0WpAVitbhbRH3kGoyKb6jFM74CJbPsE7OORlJLDC3cdD3C8Pk= - - secure: Qr5NR4CVzBKCQgRgMH0x772TPJ1+brx3UCvtRNu8fi4j3p8bz+HDMjBaBDSFmEB09nunLI55/8mj88/5GXmnpFs8+CPTkcW+QZOcxg3cxpI4SNmxoB12/ZawlFHAqSUaRRE7RUWVkY3KL8tIGjEZcFyUBQ1DVNX3OMpiKs3NLtHa7oUIknyBxdSokm4kpLhSXYe7WmO0vhuZbMZE0S1EISToiBS6AdhGUEbTLJ/vNsIDY07fu6+Vh3HxVbyUFPqUZGlkZpQ+2xMJ3kiqPBMrXtRF/IhhPjORDil6Ns9SQ8/AAlaCddvYvRaT4Pjv2/aX+t3l28qI1qmryPtWXpce5UXecWGYqdRpSJc6Y/pEt4m4FeeGoEFWnSPGIs7FRmeiis8q2rojGZ18i4vI/k4iHmqEBnTlMp3SWnRb9L1adJ8ZAWln8aC88gkQXm67w7+1CxLycerbYj9H1ugqHENuHcxv4uHUcZgEENX3EWatu8i9+K2IUuU/2zcmpu7qtsziYcoyW8DOOmYpJfXGMLtmF9+pqp/Tp6i0tltFSEfmY3N8o7xvv3enLvFHsjL+3ElFdd1blUPSrvZJHgA9M3lJ+QF1RJZCpJqgPlQ0XOZK1Bf4P46zpEj01wKaK4JQrkLPRXhbBOuIJn5O6WlFJyPX4+SaBfwTzb4AvM4aUg2TgTg= - - secure: Inw5ftA8fxvhMHRZwoZzATxn4WICJsCq7ZX4y2gI+b/8u0JQIsbLgY9WTYV+XdSxOoNwuVa1oUxEWI0aDORtXKC3XaIXXKrwndag0zxS77JEYwWvQsjM7BhEbF7MF7MYk8rRXpn6mbfGAT/NfqEOx91RCY8UKeMzD0oPkpkBnJ9Ekuod6JBBq+7j3v4mYUItA8pxvw7b4Pdd4z2xzjgOwNhJYMOCpts50DWZI+WXj0HvTYaMXe5mJJtORK5lsr0a9cbsBqAzE6l+3zGI8XkgHn130ux5XH3DE7hZBeti3ZNaO3d2Vv+496/1EObG0rSFk+z3dmNKqjMz4nh3bYIkdLMegwmgCWs2mvQhkwYhzmnPRHVSERrgZjSWnuKn2PKnBar6tui9KaLNgpo2j3jWpwMLJ3bGAfE5JtMppxAxNqj/q+YB2UZo7Mn7EDjkTDjgxCuazTJwWqH7xxCOykWPABBI17P3JaOXQJEK39LavpfSMm3kdmU0ocpUs7FniLuFm6xL71VxY1wHG10yskczEcFHZ3iyIyGM+xum4vbt5y6Yg+zfdExYQsbrxHDDZ3HbHY3tEU0WhM55vrC42NIXRWqXqJ8OAxpl4nivfx96eoBAThiUU9xXtZmh7WRFVYsstoGtxZwfk5+bi+oeVO9kih4xabwbgHgL9BTc1TR1C4U= diff --git a/vendor/aliyuncs/oss-sdk-php/CHANGELOG.md b/vendor/aliyuncs/oss-sdk-php/CHANGELOG.md deleted file mode 100644 index 042a72a0b..000000000 --- a/vendor/aliyuncs/oss-sdk-php/CHANGELOG.md +++ /dev/null @@ -1,92 +0,0 @@ -# ChangeLog - Aliyun OSS SDK for PHP - -## v2.3.0 / 2018-01-05 - -* 修复:putObject支持创建空文件 -* 修复:createBucket支持IA/Archive -* 增加:支持restoreObject -* 增加:支持Symlink功能 -* 增加:支持getBucketLocation -* 增加:支持getBucketMeta -* 增加:支持代理服务器Proxy - -## v2.2.4 / 2017-04-25 - -* fix getObject to local file bug - -## v2.2.3 / 2017-04-14 - -* fix md5 check - -## v2.2.2 / 2017-01-18 - -* 解决在php7上运行连接数和内存bug - -## v2.2.1 / 2016-12-01 - -* 禁止http curl自动填充Accept-Encoding - -## v2.2.0 / 2016-11-22 - -* 修复PutObject/CompleteMultipartUpload的返回值问题(#26) - -## v2.1.0 / 2016-11-12 - -* 增加[RTMP](https://help.aliyun.com/document_detail/44297.html)接口 -* 增加支持[图片服务](https://help.aliyun.com/document_detail/44686.html) - -## v2.0.7 / 2016-06-17 - -* Support append object - -## v2.0.6 - -* Trim access key id/secret and endpoint -* Refine tests and setup travis CI - -## v2.0.5 - -* 增加Add/Delete/Get BucketCname接口 - -## v2.0.4 - -* 增加Put/Get Object Acl接口 - -## v2.0.3 - -* 修复Util中的常量定义在低于5.6的PHP版本中报错的问题 - -## v2.0.2 - -* 修复multipart上传时无法指定Content-Type的问题 - -## v2.0.1 - -* 增加对ListObjects/ListMultipartUploads时特殊字符的处理 -* 提供接口获取OssException中的详细信息 - - -## 2015.11.25 - -* **大版本升级,不再兼容以前接口,新版本对易用性做了很大的改进,建议用户迁移到新版本。** - -## 修改内容 - -* 不再支持PHP 5.2版本 - -### 新增内容 - -* 引入命名空间 -* 接口命名修正,采用驼峰式命名 -* 接口入参修改,把常用参数从Options参数中提出来 -* 接口返回结果修改,对返回结果进行处理,用户可以直接得到容易处理的数据结构  -* OssClient的构造函数变更 -* 支持CNAME和IP格式的Endpoint地址 -* 重新整理sample文件组织结构,使用function组织功能点 -* 增加设置连接超时,请求超时的接口 -* 去掉Object Group相关的已经过时的接口 -* OssException中的message改为英文 - -### 问题修复 - -* object名称校验不完备 diff --git a/vendor/aliyuncs/oss-sdk-php/LICENSE.md b/vendor/aliyuncs/oss-sdk-php/LICENSE.md deleted file mode 100644 index 3183de8c3..000000000 --- a/vendor/aliyuncs/oss-sdk-php/LICENSE.md +++ /dev/null @@ -1,21 +0,0 @@ -#The MIT License (MIT) - -Copyright (c) ali-sdk and other contributors. - -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. \ No newline at end of file diff --git a/vendor/aliyuncs/oss-sdk-php/README-CN.md b/vendor/aliyuncs/oss-sdk-php/README-CN.md deleted file mode 100644 index 8c0cf8430..000000000 --- a/vendor/aliyuncs/oss-sdk-php/README-CN.md +++ /dev/null @@ -1,149 +0,0 @@ -# Aliyun OSS SDK for PHP - -[![Latest Stable Version](https://poser.pugx.org/aliyuncs/oss-sdk-php/v/stable)](https://packagist.org/packages/aliyuncs/oss-sdk-php) -[![Build Status](https://travis-ci.org/aliyun/aliyun-oss-php-sdk.svg?branch=master)](https://travis-ci.org/aliyun/aliyun-oss-php-sdk) -[![Coverage Status](https://coveralls.io/repos/github/aliyun/aliyun-oss-php-sdk/badge.svg?branch=master)](https://coveralls.io/github/aliyun/aliyun-oss-php-sdk?branch=master) - -## [README of English](https://github.com/aliyun/aliyun-oss-php-sdk/blob/master/README.md) - -## 概述 - -阿里云对象存储(Object Storage Service,简称OSS),是阿里云对外提供的海量、安全、低成本、高可靠的云存储服务。用户可以通过调用API,在任何应用、任何时间、任何地点上传和下载数据,也可以通过用户Web控制台对数据进行简单的管理。OSS适合存放任意文件类型,适合各种网站、开发企业及开发者使用。 - - -## 运行环境 -- PHP 5.3+ -- cURL extension - -提示: - -- Ubuntu下可以使用apt-get包管理器安装php的cURL扩展 `sudo apt-get install php5-curl` - -## 安装方法 - -1. 如果您通过composer管理您的项目依赖,可以在你的项目根目录运行: - - $ composer require aliyuncs/oss-sdk-php - - 或者在你的`composer.json`中声明对Aliyun OSS SDK for PHP的依赖: - - "require": { - "aliyuncs/oss-sdk-php": "~2.0" - } - - 然后通过`composer install`安装依赖。composer安装完成后,在您的PHP代码中引入依赖即可: - - require_once __DIR__ . '/vendor/autoload.php'; - -2. 您也可以直接下载已经打包好的[phar文件][releases-page],然后在你 - 的代码中引入这个文件即可: - - require_once '/path/to/oss-sdk-php.phar'; - -3. 下载SDK源码,在您的代码中引入SDK目录下的`autoload.php`文件: - - require_once '/path/to/oss-sdk/autoload.php'; - -## 快速使用 - -### 常用类 - -| 类名 | 解释 | -|:------------------|:------------------------------------| -|OSS\OssClient | OSS客户端类,用户通过OssClient的实例调用接口 | -|OSS\Core\OssException | OSS异常类,用户在使用的过程中,只需要注意这个异常| - -### OssClient初始化 - -SDK的OSS操作通过OssClient类完成的,下面代码创建一个OssClient对象: - -```php -"; ; -$accessKeySecret = "<您从OSS获得的AccessKeySecret>"; -$endpoint = "<您选定的OSS数据中心访问域名,例如oss-cn-hangzhou.aliyuncs.com>"; -try { - $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint); -} catch (OssException $e) { - print $e->getMessage(); -} -``` - -### 文件操作 - -文件(又称对象,Object)是OSS中最基本的数据单元,您可以把它简单地理解为文件,用下面代码可以实现一个Object的上传: - -```php -"; -$object = "<您使用的Object名字,注意命名规范>"; -$content = "Hello, OSS!"; // 上传的文件内容 -try { - $ossClient->putObject($bucket, $object, $content); -} catch (OssException $e) { - print $e->getMessage(); -} -``` - -### 存储空间操作 - -存储空间(又称Bucket)是一个用户用来管理所存储Object的存储空间,对于用户来说是一个管理Object的单元,所有的Object都必须隶属于某个Bucket。您可以按照下面的代码新建一个Bucket: - -```php -"; -try { - $ossClient->createBucket($bucket); -} catch (OssException $e) { - print $e->getMessage(); -} -``` - -### 返回结果处理 - -OssClient提供的接口返回返回数据分为两种: - -* Put,Delete类接口,接口返回null,如果没有OssException,即可认为操作成功 -* Get,List类接口,接口返回对应的数据,如果没有OssException,即可认为操作成功,举个例子: - -```php -listBuckets(); -$bucketList = $bucketListInfo->getBucketList(); -foreach($bucketList as $bucket) { - print($bucket->getLocation() . "\t" . $bucket->getName() . "\t" . $bucket->getCreatedate() . "\n"); -} -``` -上面代码中的$bucketListInfo的数据类型是 `OSS\Model\BucketListInfo` - - -### 运行Sample程序 - -1. 修改 `samples/Config.php`, 补充配置信息 -2. 执行 `cd samples/ && php RunAll.php` - -### 运行单元测试 - -1. 执行`composer install`下载依赖的库 -2. 设置环境变量 - - export OSS_ACCESS_KEY_ID=access-key-id - export OSS_ACCESS_KEY_SECRET=access-key-secret - export OSS_ENDPOINT=endpoint - export OSS_BUCKET=bucket-name - -3. 执行 `php vendor/bin/phpunit` - -## License - -- MIT - -## 联系我们 - -- [阿里云OSS官方网站](http://oss.aliyun.com) -- [阿里云OSS官方论坛](http://bbs.aliyun.com) -- [阿里云OSS官方文档中心](http://www.aliyun.com/product/oss#Docs) -- 阿里云官方技术支持:[提交工单](https://workorder.console.aliyun.com/#/ticket/createIndex) - -[releases-page]: https://github.com/aliyun/aliyun-oss-php-sdk/releases -[phar-composer]: https://github.com/clue/phar-composer diff --git a/vendor/aliyuncs/oss-sdk-php/README.md b/vendor/aliyuncs/oss-sdk-php/README.md deleted file mode 100644 index 3c1da2633..000000000 --- a/vendor/aliyuncs/oss-sdk-php/README.md +++ /dev/null @@ -1,150 +0,0 @@ -# Alibaba Cloud OSS SDK for PHP - -[![Latest Stable Version](https://poser.pugx.org/aliyuncs/oss-sdk-php/v/stable)](https://packagist.org/packages/aliyuncs/oss-sdk-php) -[![Build Status](https://travis-ci.org/aliyun/aliyun-oss-php-sdk.svg?branch=master)](https://travis-ci.org/aliyun/aliyun-oss-php-sdk) -[![Coverage Status](https://coveralls.io/repos/github/aliyun/aliyun-oss-php-sdk/badge.svg?branch=master)](https://coveralls.io/github/aliyun/aliyun-oss-php-sdk?branch=master) - -## [README of Chinese](https://github.com/aliyun/aliyun-oss-php-sdk/blob/master/README-CN.md) - -## Overview - -Alibaba Cloud Object Storage Service (OSS) is a cloud storage service provided by Alibaba Cloud, featuring a massive capacity, security, a low cost, and high reliability. You can upload and download data on any application anytime and anywhere by calling APIs, and perform simple management of data through the web console. The OSS can store any type of files and therefore applies to various websites, development enterprises and developers. - - -## Run environment -- PHP 5.3+. -- cURL extension. - -Tips: - -- In Ubuntu, you can use the ***apt-get*** package manager to install the *PHP cURL extension*: `sudo apt-get install php5-curl`. - -## Install OSS PHP SDK - -- If you use the ***composer*** to manage project dependencies, run the following command in your project's root directory: - - composer require aliyuncs/oss-sdk-php - - You can also declare the dependency on Alibaba Cloud OSS SDK for PHP in the `composer.json` file. - - "require": { - "aliyuncs/oss-sdk-php": "~2.0" - } - - Then run `composer install` to install the dependency. After the Composer Dependency Manager is installed, import the dependency in your PHP code: - - require_once __DIR__ . '/vendor/autoload.php'; - -- You can also directly download the packaged [PHAR File][releases-page], and - introduce the file to your code: - - require_once '/path/to/oss-sdk-php.phar'; - -- Download the SDK source code, and introduce the `autoload.php` file under the SDK directory to your code: - - require_once '/path/to/oss-sdk/autoload.php'; - -## Quick use - -### Common classes - -| Class | Explanation | -|:------------------|:------------------------------------| -|OSS\OSSClient | OSS client class. An OSSClient instance can be used to call the interface. | -|OSS\Core\OSSException |OSS Exception class . You only need to pay attention to this exception when you use the OSSClient. | - -### Initialize an OSSClient - -The SDK's operations for the OSS are performed through the OSSClient class. The code below creates an OSSClient object: - -```php -"; -$accessKeySecret = ""; -$endpoint = ""; -try { - $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint); -} catch (OssException $e) { - print $e->getMessage(); -} -``` - -### Operations on objects - -Objects are the most basic data units on the OSS. You can simply consider objects as files. The following code uploads an object: - -```php -"; -$object = ""; -$content = "Hello, OSS!"; // Content of the uploaded file -try { - $ossClient->putObject($bucket, $object, $content); -} catch (OssException $e) { - print $e->getMessage(); -} -``` - -### Operations on buckets - -Buckets are the space that you use to manage the stored objects. It is an object management unit for users. Each object must belong to a bucket. You can create a bucket with the following code: - -```php -"; -try { - $ossClient->createBucket($bucket); -} catch (OssException $e) { - print $e->getMessage(); -} -``` - -### Handle returned results - -The OSSClient provides the following two types of returned data from interfaces: - -- Put and Delete interfaces: The *PUT* and *DELETE* operations are deemed successful if *null* is returned by the interfaces without *OSSException*. -- Get and List interfaces: The *GET* and *LIST* operations are deemed successful if the desired data is returned by the interfaces without *OSSException*. For example, - - ```php - listBuckets(); - $bucketList = $bucketListInfo->getBucketList(); - foreach($bucketList as $bucket) { - print($bucket->getLocation() . "\t" . $bucket->getName() . "\t" . $bucket->getCreatedate() . "\n"); - } - ``` -In the above code, $bucketListInfo falls into the 'OSS\Model\BucketListInfo' data type. - - -### Run a sample project - -- Modify `samples/Config.php` to complete the configuration information. -- Run `cd samples/ && php RunAll.php`. - -### Run a unit test - -- Run `composer install` to download the dependent libraries. -- Set the environment variable. - - export OSS_ACCESS_KEY_ID=access-key-id - export OSS_ACCESS_KEY_SECRET=access-key-secret - export OSS_ENDPOINT=endpoint - export OSS_BUCKET=bucket-name - -- Run `php vendor/bin/phpunit` - -## License - -- MIT - -## Contact us - -- [Alibaba Cloud OSS official website](http://oss.aliyun.com). -- [Alibaba Cloud OSS official forum](http://bbs.aliyun.com). -- [Alibaba Cloud OSS official documentation center](http://www.aliyun.com/product/oss#Docs). -- Alibaba Cloud official technical support: [Submit a ticket](https://workorder.console.aliyun.com/#/ticket/createIndex). - -[releases-page]: https://github.com/aliyun/aliyun-oss-php-sdk/releases -[phar-composer]: https://github.com/clue/phar-composer - diff --git a/vendor/aliyuncs/oss-sdk-php/autoload.php b/vendor/aliyuncs/oss-sdk-php/autoload.php deleted file mode 100644 index ec132011c..000000000 --- a/vendor/aliyuncs/oss-sdk-php/autoload.php +++ /dev/null @@ -1,11 +0,0 @@ -=5.3" - }, - "require-dev" : { - "phpunit/phpunit": "~4.0", - "satooshi/php-coveralls": "~1.0" - }, - "minimum-stability": "stable", - "autoload": { - "psr-4": {"OSS\\": "src/OSS"} - } -} diff --git a/vendor/aliyuncs/oss-sdk-php/example.jpg b/vendor/aliyuncs/oss-sdk-php/example.jpg deleted file mode 100644 index ffd46a2f81b1fe020ed0673f27711124110eed3f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21839 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 - - - - - - ./src - - - - - - - - ./tests - ./tests/OSS/Tests/BucketCnameTest.php - - - diff --git a/vendor/aliyuncs/oss-sdk-php/samples/Bucket.php b/vendor/aliyuncs/oss-sdk-php/samples/Bucket.php deleted file mode 100644 index bd16e6556..000000000 --- a/vendor/aliyuncs/oss-sdk-php/samples/Bucket.php +++ /dev/null @@ -1,167 +0,0 @@ -createBucket($bucket, OssClient::OSS_ACL_TYPE_PUBLIC_READ_WRITE); -Common::println("bucket $bucket created"); - -// 判断Bucket是否存在 -$doesExist = $ossClient->doesBucketExist($bucket); -Common::println("bucket $bucket exist? " . ($doesExist ? "yes" : "no")); - -// 获取Bucket列表 -$bucketListInfo = $ossClient->listBuckets(); - -// 设置bucket的ACL -$ossClient->putBucketAcl($bucket, OssClient::OSS_ACL_TYPE_PUBLIC_READ_WRITE); -Common::println("bucket $bucket acl put"); -// 获取bucket的ACL -$acl = $ossClient->getBucketAcl($bucket); -Common::println("bucket $bucket acl get: " . $acl); - - -//******************************* 完整用法参考下面函数 **************************************************** - -createBucket($ossClient, $bucket); -doesBucketExist($ossClient, $bucket); -deleteBucket($ossClient, $bucket); -putBucketAcl($ossClient, $bucket); -getBucketAcl($ossClient, $bucket); -listBuckets($ossClient); - -/** - * 创建一个存储空间 - * acl 指的是bucket的访问控制权限,有三种,私有读写,公共读私有写,公共读写。 - * 私有读写就是只有bucket的拥有者或授权用户才有权限操作 - * 三种权限分别对应 (OssClient::OSS_ACL_TYPE_PRIVATE,OssClient::OSS_ACL_TYPE_PUBLIC_READ, OssClient::OSS_ACL_TYPE_PUBLIC_READ_WRITE) - * - * @param OssClient $ossClient OssClient实例 - * @param string $bucket 要创建的存储空间名称 - * @return null - */ -function createBucket($ossClient, $bucket) -{ - try { - $ossClient->createBucket($bucket, OssClient::OSS_ACL_TYPE_PUBLIC_READ_WRITE); - } catch (OssException $e) { - printf(__FUNCTION__ . ": FAILED\n"); - printf($e->getMessage() . "\n"); - return; - } - print(__FUNCTION__ . ": OK" . "\n"); -} - -/** - * 判断Bucket是否存在 - * - * @param OssClient $ossClient OssClient实例 - * @param string $bucket 存储空间名称 - */ -function doesBucketExist($ossClient, $bucket) -{ - try { - $res = $ossClient->doesBucketExist($bucket); - } catch (OssException $e) { - printf(__FUNCTION__ . ": FAILED\n"); - printf($e->getMessage() . "\n"); - return; - } - if ($res === true) { - print(__FUNCTION__ . ": OK" . "\n"); - } else { - print(__FUNCTION__ . ": FAILED" . "\n"); - } -} - -/** - * 删除bucket,如果bucket不为空则bucket无法删除成功, 不为空表示bucket既没有object,也没有未完成的multipart上传时的parts - * - * @param OssClient $ossClient OssClient实例 - * @param string $bucket 待删除的存储空间名称 - * @return null - */ -function deleteBucket($ossClient, $bucket) -{ - try { - $ossClient->deleteBucket($bucket); - } catch (OssException $e) { - printf(__FUNCTION__ . ": FAILED\n"); - printf($e->getMessage() . "\n"); - return; - } - print(__FUNCTION__ . ": OK" . "\n"); -} - -/** - * 设置bucket的acl配置 - * - * @param OssClient $ossClient OssClient实例 - * @param string $bucket 存储空间名称 - * @return null - */ -function putBucketAcl($ossClient, $bucket) -{ - $acl = OssClient::OSS_ACL_TYPE_PRIVATE; - try { - $ossClient->putBucketAcl($bucket, $acl); - } catch (OssException $e) { - printf(__FUNCTION__ . ": FAILED\n"); - printf($e->getMessage() . "\n"); - return; - } - print(__FUNCTION__ . ": OK" . "\n"); -} - - -/** - * 获取bucket的acl配置 - * - * @param OssClient $ossClient OssClient实例 - * @param string $bucket 存储空间名称 - * @return null - */ -function getBucketAcl($ossClient, $bucket) -{ - try { - $res = $ossClient->getBucketAcl($bucket); - } catch (OssException $e) { - printf(__FUNCTION__ . ": FAILED\n"); - printf($e->getMessage() . "\n"); - return; - } - print(__FUNCTION__ . ": OK" . "\n"); - print('acl: ' . $res); -} - - -/** - * 列出用户所有的Bucket - * - * @param OssClient $ossClient OssClient实例 - * @return null - */ -function listBuckets($ossClient) -{ - $bucketList = null; - try { - $bucketListInfo = $ossClient->listBuckets(); - } catch (OssException $e) { - printf(__FUNCTION__ . ": FAILED\n"); - printf($e->getMessage() . "\n"); - return; - } - print(__FUNCTION__ . ": OK" . "\n"); - $bucketList = $bucketListInfo->getBucketList(); - foreach ($bucketList as $bucket) { - print($bucket->getLocation() . "\t" . $bucket->getName() . "\t" . $bucket->getCreatedate() . "\n"); - } -} diff --git a/vendor/aliyuncs/oss-sdk-php/samples/BucketCors.php b/vendor/aliyuncs/oss-sdk-php/samples/BucketCors.php deleted file mode 100644 index cc5c0b9c5..000000000 --- a/vendor/aliyuncs/oss-sdk-php/samples/BucketCors.php +++ /dev/null @@ -1,108 +0,0 @@ -addAllowedHeader("x-oss-header"); -$rule->addAllowedOrigin("http://www.b.com"); -$rule->addAllowedMethod("POST"); -$rule->setMaxAgeSeconds(10); -$corsConfig->addRule($rule); -$ossClient->putBucketCors($bucket, $corsConfig); -Common::println("bucket $bucket corsConfig created:" . $corsConfig->serializeToXml()); - -// 获取cors配置 -$corsConfig = $ossClient->getBucketCors($bucket); -Common::println("bucket $bucket corsConfig fetched:" . $corsConfig->serializeToXml()); - -// 删除cors配置 -$ossClient->deleteBucketCors($bucket); -Common::println("bucket $bucket corsConfig deleted"); - -//******************************* 完整用法参考下面函数 ***************************************************** - -putBucketCors($ossClient, $bucket); -getBucketCors($ossClient, $bucket); -deleteBucketCors($ossClient, $bucket); -getBucketCors($ossClient, $bucket); - -/** - * 设置bucket的cors配置 - * - * @param OssClient $ossClient OssClient实例 - * @param string $bucket 存储空间名称 - * @return null - */ -function putBucketCors($ossClient, $bucket) -{ - $corsConfig = new CorsConfig(); - $rule = new CorsRule(); - $rule->addAllowedHeader("x-oss-header"); - $rule->addAllowedOrigin("http://www.b.com"); - $rule->addAllowedMethod("POST"); - $rule->setMaxAgeSeconds(10); - $corsConfig->addRule($rule); - - try { - $ossClient->putBucketCors($bucket, $corsConfig); - } catch (OssException $e) { - printf(__FUNCTION__ . ": FAILED\n"); - printf($e->getMessage() . "\n"); - return; - } - print(__FUNCTION__ . ": OK" . "\n"); -} - -/** - * 获取并打印bucket的cors配置 - * - * @param OssClient $ossClient OssClient实例 - * @param string $bucket 存储空间名称 - * @return null - */ -function getBucketCors($ossClient, $bucket) -{ - $corsConfig = null; - try { - $corsConfig = $ossClient->getBucketCors($bucket); - } catch (OssException $e) { - printf(__FUNCTION__ . ": FAILED\n"); - printf($e->getMessage() . "\n"); - return; - } - print(__FUNCTION__ . ": OK" . "\n"); - print($corsConfig->serializeToXml() . "\n"); -} - -/** - * 删除bucket的所有的cors配置 - * - * @param OssClient $ossClient OssClient实例 - * @param string $bucket 存储空间名称 - * @return null - */ -function deleteBucketCors($ossClient, $bucket) -{ - try { - $ossClient->deleteBucketCors($bucket); - } catch (OssException $e) { - printf(__FUNCTION__ . ": FAILED\n"); - printf($e->getMessage() . "\n"); - return; - } - print(__FUNCTION__ . ": OK" . "\n"); -} - diff --git a/vendor/aliyuncs/oss-sdk-php/samples/BucketLifecycle.php b/vendor/aliyuncs/oss-sdk-php/samples/BucketLifecycle.php deleted file mode 100644 index ec0c37f8f..000000000 --- a/vendor/aliyuncs/oss-sdk-php/samples/BucketLifecycle.php +++ /dev/null @@ -1,109 +0,0 @@ -addRule($lifecycleRule); -$ossClient->putBucketLifecycle($bucket, $lifecycleConfig); -Common::println("bucket $bucket lifecycleConfig created:" . $lifecycleConfig->serializeToXml()); - -//获取lifecycle规则 -$lifecycleConfig = $ossClient->getBucketLifecycle($bucket); -Common::println("bucket $bucket lifecycleConfig fetched:" . $lifecycleConfig->serializeToXml()); - -//删除bucket的lifecycle配置 -$ossClient->deleteBucketLifecycle($bucket); -Common::println("bucket $bucket lifecycleConfig deleted"); - - -//***************************** 完整用法参考下面函数 *********************************************** - -putBucketLifecycle($ossClient, $bucket); -getBucketLifecycle($ossClient, $bucket); -deleteBucketLifecycle($ossClient, $bucket); -getBucketLifecycle($ossClient, $bucket); - -/** - * 设置bucket的生命周期配置 - * - * @param OssClient $ossClient OssClient实例 - * @param string $bucket 存储空间名称 - * @return null - */ -function putBucketLifecycle($ossClient, $bucket) -{ - $lifecycleConfig = new LifecycleConfig(); - $actions = array(); - $actions[] = new LifecycleAction(OssClient::OSS_LIFECYCLE_EXPIRATION, OssClient::OSS_LIFECYCLE_TIMING_DAYS, 3); - $lifecycleRule = new LifecycleRule("delete obsoleted files", "obsoleted/", "Enabled", $actions); - $lifecycleConfig->addRule($lifecycleRule); - $actions = array(); - $actions[] = new LifecycleAction(OssClient::OSS_LIFECYCLE_EXPIRATION, OssClient::OSS_LIFECYCLE_TIMING_DATE, '2022-10-12T00:00:00.000Z'); - $lifecycleRule = new LifecycleRule("delete temporary files", "temporary/", "Enabled", $actions); - $lifecycleConfig->addRule($lifecycleRule); - try { - $ossClient->putBucketLifecycle($bucket, $lifecycleConfig); - } catch (OssException $e) { - printf(__FUNCTION__ . ": FAILED\n"); - printf($e->getMessage() . "\n"); - return; - } - print(__FUNCTION__ . ": OK" . "\n"); -} - -/** - * 获取bucket的生命周期配置 - * - * @param OssClient $ossClient OssClient实例 - * @param string $bucket 存储空间名称 - * @return null - */ -function getBucketLifecycle($ossClient, $bucket) -{ - $lifecycleConfig = null; - try { - $lifecycleConfig = $ossClient->getBucketLifecycle($bucket); - } catch (OssException $e) { - printf(__FUNCTION__ . ": FAILED\n"); - printf($e->getMessage() . "\n"); - return; - } - print(__FUNCTION__ . ": OK" . "\n"); - print($lifecycleConfig->serializeToXml() . "\n"); -} - -/** - * 删除bucket的生命周期配置 - * - * @param OssClient $ossClient OssClient实例 - * @param string $bucket 存储空间名称 - * @return null - */ -function deleteBucketLifecycle($ossClient, $bucket) -{ - try { - $ossClient->deleteBucketLifecycle($bucket); - } catch (OssException $e) { - printf(__FUNCTION__ . ": FAILED\n"); - printf($e->getMessage() . "\n"); - return; - } - print(__FUNCTION__ . ": OK" . "\n"); -} - - diff --git a/vendor/aliyuncs/oss-sdk-php/samples/BucketLogging.php b/vendor/aliyuncs/oss-sdk-php/samples/BucketLogging.php deleted file mode 100644 index 406e1d472..000000000 --- a/vendor/aliyuncs/oss-sdk-php/samples/BucketLogging.php +++ /dev/null @@ -1,95 +0,0 @@ -putBucketLogging($bucket, $bucket, "access.log", array()); -Common::println("bucket $bucket lifecycleConfig created"); - -// 获取Bucket访问日志记录规则 -$loggingConfig = $ossClient->getBucketLogging($bucket, array()); -Common::println("bucket $bucket lifecycleConfig fetched:" . $loggingConfig->serializeToXml()); - -// 删除Bucket访问日志记录规则 -$loggingConfig = $ossClient->getBucketLogging($bucket, array()); -Common::println("bucket $bucket lifecycleConfig deleted"); - -//******************************* 完整用法参考下面函数 **************************************************** - -putBucketLogging($ossClient, $bucket); -getBucketLogging($ossClient, $bucket); -deleteBucketLogging($ossClient, $bucket); -getBucketLogging($ossClient, $bucket); - -/** - * 设置bucket的Logging配置 - * - * @param OssClient $ossClient OssClient实例 - * @param string $bucket 存储空间名称 - * @return null - */ -function putBucketLogging($ossClient, $bucket) -{ - $option = array(); - //访问日志存放在本bucket下 - $targetBucket = $bucket; - $targetPrefix = "access.log"; - - try { - $ossClient->putBucketLogging($bucket, $targetBucket, $targetPrefix, $option); - } catch (OssException $e) { - printf(__FUNCTION__ . ": FAILED\n"); - printf($e->getMessage() . "\n"); - return; - } - print(__FUNCTION__ . ": OK" . "\n"); -} - -/** - * 获取bucket的Logging配置 - * - * @param OssClient $ossClient OssClient实例 - * @param string $bucket 存储空间名称 - * @return null - */ -function getBucketLogging($ossClient, $bucket) -{ - $loggingConfig = null; - $options = array(); - try { - $loggingConfig = $ossClient->getBucketLogging($bucket, $options); - } catch (OssException $e) { - printf(__FUNCTION__ . ": FAILED\n"); - printf($e->getMessage() . "\n"); - return; - } - print(__FUNCTION__ . ": OK" . "\n"); - print($loggingConfig->serializeToXml() . "\n"); -} - -/** - * 删除bucket的Logging配置 - * - * @param OssClient $ossClient OssClient实例 - * @param string $bucket 存储空间名称 - * @return null - */ -function deleteBucketLogging($ossClient, $bucket) -{ - try { - $ossClient->deleteBucketLogging($bucket); - } catch (OssException $e) { - printf(__FUNCTION__ . ": FAILED\n"); - printf($e->getMessage() . "\n"); - return; - } - print(__FUNCTION__ . ": OK" . "\n"); -} diff --git a/vendor/aliyuncs/oss-sdk-php/samples/BucketReferer.php b/vendor/aliyuncs/oss-sdk-php/samples/BucketReferer.php deleted file mode 100644 index 3828df696..000000000 --- a/vendor/aliyuncs/oss-sdk-php/samples/BucketReferer.php +++ /dev/null @@ -1,101 +0,0 @@ -setAllowEmptyReferer(true); -$refererConfig->addReferer("www.aliiyun.com"); -$refererConfig->addReferer("www.aliiyuncs.com"); -$ossClient->putBucketReferer($bucket, $refererConfig); -Common::println("bucket $bucket refererConfig created:" . $refererConfig->serializeToXml()); -//获取Referer白名单 -$refererConfig = $ossClient->getBucketReferer($bucket); -Common::println("bucket $bucket refererConfig fetched:" . $refererConfig->serializeToXml()); - -//删除referer白名单 -$refererConfig = new RefererConfig(); -$ossClient->putBucketReferer($bucket, $refererConfig); -Common::println("bucket $bucket refererConfig deleted"); - - -//******************************* 完整用法参考下面函数 **************************************************** - -putBucketReferer($ossClient, $bucket); -getBucketReferer($ossClient, $bucket); -deleteBucketReferer($ossClient, $bucket); -getBucketReferer($ossClient, $bucket); - -/** - * 设置bucket的防盗链配置 - * - * @param OssClient $ossClient OssClient实例 - * @param string $bucket 存储空间名称 - * @return null - */ -function putBucketReferer($ossClient, $bucket) -{ - $refererConfig = new RefererConfig(); - $refererConfig->setAllowEmptyReferer(true); - $refererConfig->addReferer("www.aliiyun.com"); - $refererConfig->addReferer("www.aliiyuncs.com"); - try { - $ossClient->putBucketReferer($bucket, $refererConfig); - } catch (OssException $e) { - printf(__FUNCTION__ . ": FAILED\n"); - printf($e->getMessage() . "\n"); - return; - } - print(__FUNCTION__ . ": OK" . "\n"); -} - -/** - * 获取bucket的防盗链配置 - * - * @param OssClient $ossClient OssClient实例 - * @param string $bucket 存储空间名称 - * @return null - */ -function getBucketReferer($ossClient, $bucket) -{ - $refererConfig = null; - try { - $refererConfig = $ossClient->getBucketReferer($bucket); - } catch (OssException $e) { - printf(__FUNCTION__ . ": FAILED\n"); - printf($e->getMessage() . "\n"); - return; - } - print(__FUNCTION__ . ": OK" . "\n"); - print($refererConfig->serializeToXml() . "\n"); -} - -/** - * 删除bucket的防盗链配置 - * Referer白名单不能直接清空,只能通过重新设置来覆盖之前的规则。 - * - * @param OssClient $ossClient OssClient实例 - * @param string $bucket 存储空间名称 - * @return null - */ -function deleteBucketReferer($ossClient, $bucket) -{ - $refererConfig = new RefererConfig(); - try { - $ossClient->putBucketReferer($bucket, $refererConfig); - } catch (OssException $e) { - printf(__FUNCTION__ . ": FAILED\n"); - printf($e->getMessage() . "\n"); - return; - } - print(__FUNCTION__ . ": OK" . "\n"); -} diff --git a/vendor/aliyuncs/oss-sdk-php/samples/BucketWebsite.php b/vendor/aliyuncs/oss-sdk-php/samples/BucketWebsite.php deleted file mode 100644 index 54706f834..000000000 --- a/vendor/aliyuncs/oss-sdk-php/samples/BucketWebsite.php +++ /dev/null @@ -1,92 +0,0 @@ -putBucketWebsite($bucket, $websiteConfig); -Common::println("bucket $bucket websiteConfig created:" . $websiteConfig->serializeToXml()); - -// 查看Bucket的静态网站托管状态 -$websiteConfig = $ossClient->getBucketWebsite($bucket); -Common::println("bucket $bucket websiteConfig fetched:" . $websiteConfig->serializeToXml()); - -// 删除Bucket的静态网站托管模式 -$ossClient->deleteBucketWebsite($bucket); -Common::println("bucket $bucket websiteConfig deleted"); - -//******************************* 完整用法参考下面函数 **************************************************** - -putBucketWebsite($ossClient, $bucket); -getBucketWebsite($ossClient, $bucket); -deleteBucketWebsite($ossClient, $bucket); -getBucketWebsite($ossClient, $bucket); - -/** - * 设置bucket的静态网站托管模式配置 - * - * @param $ossClient OssClient - * @param $bucket string 存储空间名称 - * @return null - */ -function putBucketWebsite($ossClient, $bucket) -{ - $websiteConfig = new WebsiteConfig("index.html", "error.html"); - try { - $ossClient->putBucketWebsite($bucket, $websiteConfig); - } catch (OssException $e) { - printf(__FUNCTION__ . ": FAILED\n"); - printf($e->getMessage() . "\n"); - return; - } - print(__FUNCTION__ . ": OK" . "\n"); -} - -/** - * 获取bucket的静态网站托管状态 - * - * @param OssClient $ossClient OssClient实例 - * @param string $bucket 存储空间名称 - * @return null - */ -function getBucketWebsite($ossClient, $bucket) -{ - $websiteConfig = null; - try { - $websiteConfig = $ossClient->getBucketWebsite($bucket); - } catch (OssException $e) { - printf(__FUNCTION__ . ": FAILED\n"); - printf($e->getMessage() . "\n"); - return; - } - print(__FUNCTION__ . ": OK" . "\n"); - print($websiteConfig->serializeToXml() . "\n"); -} - -/** - * 删除bucket的静态网站托管模式配置 - * - * @param OssClient $ossClient OssClient实例 - * @param string $bucket 存储空间名称 - * @return null - */ -function deleteBucketWebsite($ossClient, $bucket) -{ - try { - $ossClient->deleteBucketWebsite($bucket); - } catch (OssException $e) { - printf(__FUNCTION__ . ": FAILED\n"); - printf($e->getMessage() . "\n"); - return; - } - print(__FUNCTION__ . ": OK" . "\n"); -} diff --git a/vendor/aliyuncs/oss-sdk-php/samples/Callback.php b/vendor/aliyuncs/oss-sdk-php/samples/Callback.php deleted file mode 100644 index 8612a1c54..000000000 --- a/vendor/aliyuncs/oss-sdk-php/samples/Callback.php +++ /dev/null @@ -1,83 +0,0 @@ - $url, - OssClient::OSS_CALLBACK_VAR => $var - ); -$result = $ossClient->putObject($bucket, "b.file", "random content", $options); -Common::println($result['body']); -Common::println($result['info']['http_code']); - -/** - * completeMultipartUpload 使用callback上传内容到oss文件 - * callbackurl参数指定请求回调的服务器url - * callbackbodytype参数可为application/json或application/x-www-form-urlencoded, 可选参数,默认为application/x-www-form-urlencoded - * OSS_CALLBACK_VAR参数可以不设置 - */ -$object = "multipart-callback-test.txt"; -$copiedObject = "multipart-callback-test.txt.copied"; -$ossClient->putObject($bucket, $copiedObject, file_get_contents(__FILE__)); - -/** - * step 1. 初始化一个分块上传事件, 也就是初始化上传Multipart, 获取upload id - */ -$upload_id = $ossClient->initiateMultipartUpload($bucket, $object); - -/** - * step 2. uploadPartCopy - */ -$copyId = 1; -$eTag = $ossClient->uploadPartCopy($bucket, $copiedObject, $bucket, $object, $copyId, $upload_id); -$upload_parts[] = array( - 'PartNumber' => $copyId, - 'ETag' => $eTag, - ); -$listPartsInfo = $ossClient->listParts($bucket, $object, $upload_id); - -/** - * step 3. - */ -$json = - '{ - "callbackUrl":"callback.oss-demo.com:23450", - "callbackHost":"oss-cn-hangzhou.aliyuncs.com", - "callbackBody":"{\"mimeType\":${mimeType},\"size\":${size},\"x:var1\":${x:var1},\"x:var2\":${x:var2}}", - "callbackBodyType":"application/json" - }'; -$var = - '{ - "x:var1":"value1", - "x:var2":"值2" - }'; -$options = array(OssClient::OSS_CALLBACK => $json, - OssClient::OSS_CALLBACK_VAR => $var); - -$result = $ossClient->completeMultipartUpload($bucket, $object, $upload_id, $upload_parts, $options); -Common::println($result['body']); -Common::println($result['info']['http_code']); diff --git a/vendor/aliyuncs/oss-sdk-php/samples/Common.php b/vendor/aliyuncs/oss-sdk-php/samples/Common.php deleted file mode 100644 index f419d1782..000000000 --- a/vendor/aliyuncs/oss-sdk-php/samples/Common.php +++ /dev/null @@ -1,84 +0,0 @@ -getMessage() . "\n"); - return null; - } - return $ossClient; - } - - public static function getBucketName() - { - return self::bucket; - } - - /** - * 工具方法,创建一个存储空间,如果发生异常直接exit - */ - public static function createBucket() - { - $ossClient = self::getOssClient(); - if (is_null($ossClient)) exit(1); - $bucket = self::getBucketName(); - $acl = OssClient::OSS_ACL_TYPE_PUBLIC_READ; - try { - $ossClient->createBucket($bucket, $acl); - } catch (OssException $e) { - - $message = $e->getMessage(); - if (\OSS\Core\OssUtil::startsWith($message, 'http status: 403')) { - echo "Please Check your AccessKeyId and AccessKeySecret" . "\n"; - exit(0); - } elseif (strpos($message, "BucketAlreadyExists") !== false) { - echo "Bucket already exists. Please check whether the bucket belongs to you, or it was visited with correct endpoint. " . "\n"; - exit(0); - } - printf(__FUNCTION__ . ": FAILED\n"); - printf($e->getMessage() . "\n"); - return; - } - print(__FUNCTION__ . ": OK" . "\n"); - } - - public static function println($message) - { - if (!empty($message)) { - echo strval($message) . "\n"; - } - } -} - -Common::createBucket(); diff --git a/vendor/aliyuncs/oss-sdk-php/samples/Config.php b/vendor/aliyuncs/oss-sdk-php/samples/Config.php deleted file mode 100644 index 35c0dc7c4..000000000 --- a/vendor/aliyuncs/oss-sdk-php/samples/Config.php +++ /dev/null @@ -1,15 +0,0 @@ -uploadFile($bucketName, $object, "example.jpg"); - -// 图片缩放 -$options = array( - OssClient::OSS_FILE_DOWNLOAD => $download_file, - OssClient::OSS_PROCESS => "image/resize,m_fixed,h_100,w_100", ); -$ossClient->getObject($bucketName, $object, $options); -printImage("imageResize",$download_file); - -// 图片裁剪 -$options = array( - OssClient::OSS_FILE_DOWNLOAD => $download_file, - OssClient::OSS_PROCESS => "image/crop,w_100,h_100,x_100,y_100,r_1", ); -$ossClient->getObject($bucketName, $object, $options); -printImage("iamgeCrop", $download_file); - -// 图片旋转 -$options = array( - OssClient::OSS_FILE_DOWNLOAD => $download_file, - OssClient::OSS_PROCESS => "image/rotate,90", ); -$ossClient->getObject($bucketName, $object, $options); -printImage("imageRotate", $download_file); - -// 图片锐化 -$options = array( - OssClient::OSS_FILE_DOWNLOAD => $download_file, - OssClient::OSS_PROCESS => "image/sharpen,100", ); -$ossClient->getObject($bucketName, $object, $options); -printImage("imageSharpen", $download_file); - -// 图片水印 -$options = array( - OssClient::OSS_FILE_DOWNLOAD => $download_file, - OssClient::OSS_PROCESS => "image/watermark,text_SGVsbG8g5Zu-54mH5pyN5YqhIQ", ); -$ossClient->getObject($bucketName, $object, $options); -printImage("imageWatermark", $download_file); - -// 图片格式转换 -$options = array( - OssClient::OSS_FILE_DOWNLOAD => $download_file, - OssClient::OSS_PROCESS => "image/format,png", ); -$ossClient->getObject($bucketName, $object, $options); -printImage("imageFormat", $download_file); - -// 获取图片信息 -$options = array( - OssClient::OSS_FILE_DOWNLOAD => $download_file, - OssClient::OSS_PROCESS => "image/info", ); -$ossClient->getObject($bucketName, $object, $options); -printImage("imageInfo", $download_file); - - -/** - * 生成一个带签名的可用于浏览器直接打开的url, URL的有效期是3600秒 - */ - $timeout = 3600; -$options = array( - OssClient::OSS_PROCESS => "image/resize,m_lfit,h_100,w_100", - ); -$signedUrl = $ossClient->signUrl($bucketName, $object, $timeout, "GET", $options); -Common::println("rtmp url: \n" . $signedUrl); - -//最后删除上传的$object -$ossClient->deleteObject($bucketName, $object); - -function printImage($func, $imageFile) -{ - $array = getimagesize($imageFile); - Common::println("$func, image width: " . $array[0]); - Common::println("$func, image height: " . $array[1]); - Common::println("$func, image type: " . ($array[2] === 2 ? 'jpg' : 'png')); - Common::println("$func, image size: " . ceil(filesize($imageFile))); -} diff --git a/vendor/aliyuncs/oss-sdk-php/samples/LiveChannel.php b/vendor/aliyuncs/oss-sdk-php/samples/LiveChannel.php deleted file mode 100644 index 2f7d3a8b9..000000000 --- a/vendor/aliyuncs/oss-sdk-php/samples/LiveChannel.php +++ /dev/null @@ -1,125 +0,0 @@ - 'live channel test', - 'type' => 'HLS', - 'fragDuration' => 10, - 'fragCount' => 5, - 'playListName' => 'hello.m3u8' - )); -$info = $ossClient->putBucketLiveChannel($bucket, 'test_rtmp_live', $config); -Common::println("bucket $bucket liveChannel created:\n" . -"live channel name: ". $info->getName() . "\n" . -"live channel description: ". $info->getDescription() . "\n" . -"publishurls: ". $info->getPublishUrls()[0] . "\n" . -"playurls: ". $info->getPlayUrls()[0] . "\n"); - -/** - 对创建好的频道,可以使用listBucketLiveChannels来进行列举已达到管理的目的。 - prefix可以按照前缀过滤list出来的频道。 - max_keys表示迭代器内部一次list出来的频道的最大数量,这个值最大不能超过1000,不填写的话默认为100。 - */ -$list = $ossClient->listBucketLiveChannels($bucket); -Common::println("bucket $bucket listLiveChannel:\n" . -"list live channel prefix: ". $list->getPrefix() . "\n" . -"list live channel marker: ". $list->getMarker() . "\n" . -"list live channel maxkey: ". $list->getMaxKeys() . "\n" . -"list live channel IsTruncated: ". $list->getIsTruncated() . "\n" . -"list live channel getNextMarker: ". $list->getNextMarker() . "\n"); - -foreach($list->getChannelList() as $list) -{ - Common::println("bucket $bucket listLiveChannel:\n" . - "list live channel IsTruncated: ". $list->getName() . "\n" . - "list live channel Description: ". $list->getDescription() . "\n" . - "list live channel Status: ". $list->getStatus() . "\n" . - "list live channel getNextMarker: ". $list->getLastModified() . "\n"); -} -/** - 创建直播频道之后拿到推流用的play_url(rtmp推流的url,如果Bucket不是公共读写权限那么还需要带上签名,见下文示例)和推流用的publish_url(推流产生的m3u8文件的url) - */ -$play_url = $ossClient->signRtmpUrl($bucket, "test_rtmp_live", 3600, array('params' => array('playlistName' => 'playlist.m3u8'))); -Common::println("bucket $bucket rtmp url: \n" . $play_url); -$play_url = $ossClient->signRtmpUrl($bucket, "test_rtmp_live", 3600); -Common::println("bucket $bucket rtmp url: \n" . $play_url); - -/** - 创建好直播频道,如果想把这个频道禁用掉(断掉正在推的流或者不再允许向一个地址推流),应该使用putLiveChannelStatus接口,将频道的status改成“Disabled”,如果要将一个禁用状态的频道启用,那么也是调用这个接口,将status改成“Enabled” - */ -$resp = $ossClient->putLiveChannelStatus($bucket, "test_rtmp_live", "enabled"); - -/** - 创建好直播频道之后调用getLiveChannelInfo可以得到频道相关的信息 - */ -$info = $ossClient->getLiveChannelInfo($bucket, 'test_rtmp_live'); -Common::println("bucket $bucket LiveChannelInfo:\n" . -"live channel info description: ". $info->getDescription() . "\n" . -"live channel info status: ". $info->getStatus() . "\n" . -"live channel info type: ". $info->getType() . "\n" . -"live channel info fragDuration: ". $info->getFragDuration() . "\n" . -"live channel info fragCount: ". $info->getFragCount() . "\n" . -"live channel info playListName: ". $info->getPlayListName() . "\n"); - -/** - 如果想查看一个频道历史推流记录,可以调用getLiveChannelHistory。目前最多可以看到10次推流的记录 - */ -$history = $ossClient->getLiveChannelHistory($bucket, "test_rtmp_live"); -if (count($history->getLiveRecordList()) != 0) -{ - foreach($history->getLiveRecordList() as $recordList) - { - Common::println("bucket $bucket liveChannelHistory:\n" . - "live channel history startTime: ". $recordList->getStartTime() . "\n" . - "live channel history endTime: ". $recordList->getEndTime() . "\n" . - "live channel history remoteAddr: ". $recordList->getRemoteAddr() . "\n"); - } -} - -/** - 对于正在推流的频道调用get_live_channel_stat可以获得流的状态信息。 - 如果频道正在推流,那么stat_result中的所有字段都有意义。 - 如果频道闲置或者处于“Disabled”状态,那么status为“Idle”或“Disabled”,其他字段无意义。 - */ -$status = $ossClient->getLiveChannelStatus($bucket, "test_rtmp_live"); -Common::println("bucket $bucket listLiveChannel:\n" . -"live channel status status: ". $status->getStatus() . "\n" . -"live channel status ConnectedTime: ". $status->getConnectedTime() . "\n" . -"live channel status VideoWidth: ". $status->getVideoWidth() . "\n" . -"live channel status VideoHeight: ". $status->getVideoHeight() . "\n" . -"live channel status VideoFrameRate: ". $status->getVideoFrameRate() . "\n" . -"live channel status VideoBandwidth: ". $status->getVideoBandwidth() . "\n" . -"live channel status VideoCodec: ". $status->getVideoCodec() . "\n" . -"live channel status AudioBandwidth: ". $status->getAudioBandwidth() . "\n" . -"live channel status AudioSampleRate: ". $status->getAudioSampleRate() . "\n" . -"live channel status AdioCodec: ". $status->getAudioCodec() . "\n"); - -/** - * 如果希望利用直播推流产生的ts文件生成一个点播列表,可以使用postVodPlaylist方法。 - * 指定起始时间为当前时间减去60秒,结束时间为当前时间,这意味着将生成一个长度为60秒的点播视频。 - * 播放列表指定为“vod_playlist.m3u8”,也就是说这个接口调用成功之后会在OSS上生成一个名叫“vod_playlist.m3u8”的播放列表文件。 - */ -$current_time = time(); -$ossClient->postVodPlaylist($bucket, - "test_rtmp_live", "vod_playlist.m3u8", - array('StartTime' => $current_time - 60, - 'EndTime' => $current_time) -); - -/** - * 如果一个直播频道已经不打算再使用了,那么可以调用delete_live_channel来删除频道。 - */ -$ossClient->deleteBucketLiveChannel($bucket, "test_rtmp_live"); diff --git a/vendor/aliyuncs/oss-sdk-php/samples/MultipartUpload.php b/vendor/aliyuncs/oss-sdk-php/samples/MultipartUpload.php deleted file mode 100644 index e8d69a3ee..000000000 --- a/vendor/aliyuncs/oss-sdk-php/samples/MultipartUpload.php +++ /dev/null @@ -1,182 +0,0 @@ -multiuploadFile($bucket, "file.php", __FILE__, array()); -Common::println("local file " . __FILE__ . " is uploaded to the bucket $bucket, file.php"); - - -// 上传本地目录到bucket内的targetdir子目录中 -$ossClient->uploadDir($bucket, "targetdir", __DIR__); -Common::println("local dir " . __DIR__ . " is uploaded to the bucket $bucket, targetdir/"); - - -// 列出当前未完成的分片上传 -$listMultipartUploadInfo = $ossClient->listMultipartUploads($bucket, array()); - - -//******************************* 完整用法参考下面函数 **************************************************** - -multiuploadFile($ossClient, $bucket); -putObjectByRawApis($ossClient, $bucket); -uploadDir($ossClient, $bucket); -listMultipartUploads($ossClient, $bucket); - -/** - * 通过multipart上传文件 - * - * @param OssClient $ossClient OssClient实例 - * @param string $bucket 存储空间名称 - * @return null - */ -function multiuploadFile($ossClient, $bucket) -{ - $object = "test/multipart-test.txt"; - $file = __FILE__; - $options = array(); - - try { - $ossClient->multiuploadFile($bucket, $object, $file, $options); - } catch (OssException $e) { - printf(__FUNCTION__ . ": FAILED\n"); - printf($e->getMessage() . "\n"); - return; - } - print(__FUNCTION__ . ": OK" . "\n"); -} - -/** - * 使用基本的api分阶段进行分片上传 - * - * @param OssClient $ossClient OssClient实例 - * @param string $bucket 存储空间名称 - * @throws OssException - */ -function putObjectByRawApis($ossClient, $bucket) -{ - $object = "test/multipart-test.txt"; - /** - * step 1. 初始化一个分块上传事件, 也就是初始化上传Multipart, 获取upload id - */ - try { - $uploadId = $ossClient->initiateMultipartUpload($bucket, $object); - } catch (OssException $e) { - printf(__FUNCTION__ . ": initiateMultipartUpload FAILED\n"); - printf($e->getMessage() . "\n"); - return; - } - print(__FUNCTION__ . ": initiateMultipartUpload OK" . "\n"); - /* - * step 2. 上传分片 - */ - $partSize = 10 * 1024 * 1024; - $uploadFile = __FILE__; - $uploadFileSize = filesize($uploadFile); - $pieces = $ossClient->generateMultiuploadParts($uploadFileSize, $partSize); - $responseUploadPart = array(); - $uploadPosition = 0; - $isCheckMd5 = true; - foreach ($pieces as $i => $piece) { - $fromPos = $uploadPosition + (integer)$piece[$ossClient::OSS_SEEK_TO]; - $toPos = (integer)$piece[$ossClient::OSS_LENGTH] + $fromPos - 1; - $upOptions = array( - $ossClient::OSS_FILE_UPLOAD => $uploadFile, - $ossClient::OSS_PART_NUM => ($i + 1), - $ossClient::OSS_SEEK_TO => $fromPos, - $ossClient::OSS_LENGTH => $toPos - $fromPos + 1, - $ossClient::OSS_CHECK_MD5 => $isCheckMd5, - ); - if ($isCheckMd5) { - $contentMd5 = OssUtil::getMd5SumForFile($uploadFile, $fromPos, $toPos); - $upOptions[$ossClient::OSS_CONTENT_MD5] = $contentMd5; - } - //2. 将每一分片上传到OSS - try { - $responseUploadPart[] = $ossClient->uploadPart($bucket, $object, $uploadId, $upOptions); - } catch (OssException $e) { - printf(__FUNCTION__ . ": initiateMultipartUpload, uploadPart - part#{$i} FAILED\n"); - printf($e->getMessage() . "\n"); - return; - } - printf(__FUNCTION__ . ": initiateMultipartUpload, uploadPart - part#{$i} OK\n"); - } - $uploadParts = array(); - foreach ($responseUploadPart as $i => $eTag) { - $uploadParts[] = array( - 'PartNumber' => ($i + 1), - 'ETag' => $eTag, - ); - } - /** - * step 3. 完成上传 - */ - try { - $ossClient->completeMultipartUpload($bucket, $object, $uploadId, $uploadParts); - } catch (OssException $e) { - printf(__FUNCTION__ . ": completeMultipartUpload FAILED\n"); - printf($e->getMessage() . "\n"); - return; - } - printf(__FUNCTION__ . ": completeMultipartUpload OK\n"); -} - -/** - * 按照目录上传文件 - * - * @param OssClient $ossClient OssClient - * @param string $bucket 存储空间名称 - * - */ -function uploadDir($ossClient, $bucket) -{ - $localDirectory = "."; - $prefix = "samples/codes"; - try { - $ossClient->uploadDir($bucket, $prefix, $localDirectory); - } catch (OssException $e) { - printf(__FUNCTION__ . ": FAILED\n"); - printf($e->getMessage() . "\n"); - return; - } - printf(__FUNCTION__ . ": completeMultipartUpload OK\n"); -} - -/** - * 获取当前未完成的分片上传列表 - * - * @param $ossClient OssClient - * @param $bucket string - */ -function listMultipartUploads($ossClient, $bucket) -{ - $options = array( - 'max-uploads' => 100, - 'key-marker' => '', - 'prefix' => '', - 'upload-id-marker' => '' - ); - try { - $listMultipartUploadInfo = $ossClient->listMultipartUploads($bucket, $options); - } catch (OssException $e) { - printf(__FUNCTION__ . ": listMultipartUploads FAILED\n"); - printf($e->getMessage() . "\n"); - return; - } - printf(__FUNCTION__ . ": listMultipartUploads OK\n"); - $listUploadInfo = $listMultipartUploadInfo->getUploads(); - var_dump($listUploadInfo); -} diff --git a/vendor/aliyuncs/oss-sdk-php/samples/Object.php b/vendor/aliyuncs/oss-sdk-php/samples/Object.php deleted file mode 100644 index 3bf024b02..000000000 --- a/vendor/aliyuncs/oss-sdk-php/samples/Object.php +++ /dev/null @@ -1,517 +0,0 @@ -putObject($bucket, "b.file", "hi, oss"); -Common::println("b.file is created"); -Common::println($result['x-oss-request-id']); -Common::println($result['etag']); -Common::println($result['content-md5']); -Common::println($result['body']); - -// 上传本地文件 -$result = $ossClient->uploadFile($bucket, "c.file", __FILE__); -Common::println("c.file is created"); -Common::println("b.file is created"); -Common::println($result['x-oss-request-id']); -Common::println($result['etag']); -Common::println($result['content-md5']); -Common::println($result['body']); - -// 下载object到本地变量 -$content = $ossClient->getObject($bucket, "b.file"); -Common::println("b.file is fetched, the content is: " . $content); - -// 给object添加symlink -$content = $ossClient->putSymlink($bucket, "test-symlink", "b.file"); -Common::println("test-symlink is created"); -Common::println($result['x-oss-request-id']); -Common::println($result['etag']); - -// 获取symlink -$content = $ossClient->getSymlink($bucket, "test-symlink"); -Common::println("test-symlink refer to : " . $content[OssClient::OSS_SYMLINK_TARGET]); - -// 下载object到本地文件 -$options = array( - OssClient::OSS_FILE_DOWNLOAD => "./c.file.localcopy", -); -$ossClient->getObject($bucket, "c.file", $options); -Common::println("b.file is fetched to the local file: c.file.localcopy"); -Common::println("b.file is created"); - -// 拷贝object -$result = $ossClient->copyObject($bucket, "c.file", $bucket, "c.file.copy"); -Common::println("lastModifiedTime: " . $result[0]); -Common::println("ETag: " . $result[1]); - -// 判断object是否存在 -$doesExist = $ossClient->doesObjectExist($bucket, "c.file.copy"); -Common::println("file c.file.copy exist? " . ($doesExist ? "yes" : "no")); - -// 删除object -$result = $ossClient->deleteObject($bucket, "c.file.copy"); -Common::println("c.file.copy is deleted"); -Common::println("b.file is created"); -Common::println($result['x-oss-request-id']); - -// 判断object是否存在 -$doesExist = $ossClient->doesObjectExist($bucket, "c.file.copy"); -Common::println("file c.file.copy exist? " . ($doesExist ? "yes" : "no")); - -// 批量删除object -$result = $ossClient->deleteObjects($bucket, array("b.file", "c.file")); -foreach($result as $object) - Common::println($object); - -sleep(2); -unlink("c.file.localcopy"); - -//******************************* 完整用法参考下面函数 **************************************************** - -listObjects($ossClient, $bucket); -listAllObjects($ossClient, $bucket); -createObjectDir($ossClient, $bucket); -putObject($ossClient, $bucket); -uploadFile($ossClient, $bucket); -getObject($ossClient, $bucket); -getObjectToLocalFile($ossClient, $bucket); -copyObject($ossClient, $bucket); -modifyMetaForObject($ossClient, $bucket); -getObjectMeta($ossClient, $bucket); -deleteObject($ossClient, $bucket); -deleteObjects($ossClient, $bucket); -doesObjectExist($ossClient, $bucket); -getSymlink($ossClient, $bucket); -putSymlink($ossClient, $bucket); -/** - * 创建虚拟目录 - * - * @param OssClient $ossClient OssClient实例 - * @param string $bucket 存储空间名称 - * @return null - */ -function createObjectDir($ossClient, $bucket) -{ - try { - $ossClient->createObjectDir($bucket, "dir"); - } catch (OssException $e) { - printf(__FUNCTION__ . ": FAILED\n"); - printf($e->getMessage() . "\n"); - return; - } - print(__FUNCTION__ . ": OK" . "\n"); -} - -/** - * 把本地变量的内容到文件 - * - * 简单上传,上传指定变量的内存值作为object的内容 - * - * @param OssClient $ossClient OssClient实例 - * @param string $bucket 存储空间名称 - * @return null - */ -function putObject($ossClient, $bucket) -{ - $object = "oss-php-sdk-test/upload-test-object-name.txt"; - $content = file_get_contents(__FILE__); - $options = array(); - try { - $ossClient->putObject($bucket, $object, $content, $options); - } catch (OssException $e) { - printf(__FUNCTION__ . ": FAILED\n"); - printf($e->getMessage() . "\n"); - return; - } - print(__FUNCTION__ . ": OK" . "\n"); -} - - -/** - * 上传指定的本地文件内容 - * - * @param OssClient $ossClient OssClient实例 - * @param string $bucket 存储空间名称 - * @return null - */ -function uploadFile($ossClient, $bucket) -{ - $object = "oss-php-sdk-test/upload-test-object-name.txt"; - $filePath = __FILE__; - $options = array(); - - try { - $ossClient->uploadFile($bucket, $object, $filePath, $options); - } catch (OssException $e) { - printf(__FUNCTION__ . ": FAILED\n"); - printf($e->getMessage() . "\n"); - return; - } - print(__FUNCTION__ . ": OK" . "\n"); -} - -/** - * 列出Bucket内所有目录和文件, 注意如果符合条件的文件数目超过设置的max-keys, 用户需要使用返回的nextMarker作为入参,通过 - * 循环调用ListObjects得到所有的文件,具体操作见下面的 listAllObjects 示例 - * - * @param OssClient $ossClient OssClient实例 - * @param string $bucket 存储空间名称 - * @return null - */ -function listObjects($ossClient, $bucket) -{ - $prefix = 'oss-php-sdk-test/'; - $delimiter = '/'; - $nextMarker = ''; - $maxkeys = 1000; - $options = array( - 'delimiter' => $delimiter, - 'prefix' => $prefix, - 'max-keys' => $maxkeys, - 'marker' => $nextMarker, - ); - try { - $listObjectInfo = $ossClient->listObjects($bucket, $options); - } catch (OssException $e) { - printf(__FUNCTION__ . ": FAILED\n"); - printf($e->getMessage() . "\n"); - return; - } - print(__FUNCTION__ . ": OK" . "\n"); - $objectList = $listObjectInfo->getObjectList(); // 文件列表 - $prefixList = $listObjectInfo->getPrefixList(); // 目录列表 - if (!empty($objectList)) { - print("objectList:\n"); - foreach ($objectList as $objectInfo) { - print($objectInfo->getKey() . "\n"); - } - } - if (!empty($prefixList)) { - print("prefixList: \n"); - foreach ($prefixList as $prefixInfo) { - print($prefixInfo->getPrefix() . "\n"); - } - } -} - -/** - * 列出Bucket内所有目录和文件, 根据返回的nextMarker循环得到所有Objects - * - * @param OssClient $ossClient OssClient实例 - * @param string $bucket 存储空间名称 - * @return null - */ -function listAllObjects($ossClient, $bucket) -{ - //构造dir下的文件和虚拟目录 - for ($i = 0; $i < 100; $i += 1) { - $ossClient->putObject($bucket, "dir/obj" . strval($i), "hi"); - $ossClient->createObjectDir($bucket, "dir/obj" . strval($i)); - } - - $prefix = 'dir/'; - $delimiter = '/'; - $nextMarker = ''; - $maxkeys = 30; - - while (true) { - $options = array( - 'delimiter' => $delimiter, - 'prefix' => $prefix, - 'max-keys' => $maxkeys, - 'marker' => $nextMarker, - ); - var_dump($options); - try { - $listObjectInfo = $ossClient->listObjects($bucket, $options); - } catch (OssException $e) { - printf(__FUNCTION__ . ": FAILED\n"); - printf($e->getMessage() . "\n"); - return; - } - // 得到nextMarker,从上一次listObjects读到的最后一个文件的下一个文件开始继续获取文件列表 - $nextMarker = $listObjectInfo->getNextMarker(); - $listObject = $listObjectInfo->getObjectList(); - $listPrefix = $listObjectInfo->getPrefixList(); - var_dump(count($listObject)); - var_dump(count($listPrefix)); - if ($nextMarker === '') { - break; - } - } -} - -/** - * 获取object的内容 - * - * @param OssClient $ossClient OssClient实例 - * @param string $bucket 存储空间名称 - * @return null - */ -function getObject($ossClient, $bucket) -{ - $object = "oss-php-sdk-test/upload-test-object-name.txt"; - $options = array(); - try { - $content = $ossClient->getObject($bucket, $object, $options); - } catch (OssException $e) { - printf(__FUNCTION__ . ": FAILED\n"); - printf($e->getMessage() . "\n"); - return; - } - print(__FUNCTION__ . ": OK" . "\n"); - if (file_get_contents(__FILE__) === $content) { - print(__FUNCTION__ . ": FileContent checked OK" . "\n"); - } else { - print(__FUNCTION__ . ": FileContent checked FAILED" . "\n"); - } -} - -/** - * put symlink - * - * @param OssClient $ossClient OssClient实例 - * @param string $bucket 存储空间名称 - * @return null - */ -function putSymlink($ossClient, $bucket) -{ - $symlink = "test-samples-symlink"; - $object = "test-samples-object"; - try { - $ossClient->putObject($bucket, $object, 'test-content'); - $ossClient->putSymlink($bucket, $symlink, $object); - $content = $ossClient->getObject($bucket, $symlink); - } catch (OssException $e) { - printf(__FUNCTION__ . ": FAILED\n"); - printf($e->getMessage() . "\n"); - return; - } - print(__FUNCTION__ . ": OK" . "\n"); - if ($content == 'test-content') { - print(__FUNCTION__ . ": putSymlink checked OK" . "\n"); - } else { - print(__FUNCTION__ . ": putSymlink checked FAILED" . "\n"); - } -} - -/** - * 获取symlink - * - * @param OssClient $ossClient OssClient实例 - * @param string $bucket 存储空间名称 - * @return null - */ -function getSymlink($ossClient, $bucket) -{ - $symlink = "test-samples-symlink"; - $object = "test-samples-object"; - try { - $ossClient->putObject($bucket, $object, 'test-content'); - $ossClient->putSymlink($bucket, $symlink, $object); - $content = $ossClient->getSymlink($bucket, $symlink); - } catch (OssException $e) { - printf(__FUNCTION__ . ": FAILED\n"); - printf($e->getMessage() . "\n"); - return; - } - print(__FUNCTION__ . ": OK" . "\n"); - if ($content[OssClient::OSS_SYMLINK_TARGET]) { - print(__FUNCTION__ . ": getSymlink checked OK" . "\n"); - } else { - print(__FUNCTION__ . ": getSymlink checked FAILED" . "\n"); - } -} - -/** - * get_object_to_local_file - * - * 获取object - * 将object下载到指定的文件 - * - * @param OssClient $ossClient OssClient实例 - * @param string $bucket 存储空间名称 - * @return null - */ -function getObjectToLocalFile($ossClient, $bucket) -{ - $object = "oss-php-sdk-test/upload-test-object-name.txt"; - $localfile = "upload-test-object-name.txt"; - $options = array( - OssClient::OSS_FILE_DOWNLOAD => $localfile, - ); - - try { - $ossClient->getObject($bucket, $object, $options); - } catch (OssException $e) { - printf(__FUNCTION__ . ": FAILED\n"); - printf($e->getMessage() . "\n"); - return; - } - print(__FUNCTION__ . ": OK, please check localfile: 'upload-test-object-name.txt'" . "\n"); - if (file_get_contents($localfile) === file_get_contents(__FILE__)) { - print(__FUNCTION__ . ": FileContent checked OK" . "\n"); - } else { - print(__FUNCTION__ . ": FileContent checked FAILED" . "\n"); - } - if (file_exists($localfile)) { - unlink($localfile); - } -} - -/** - * 拷贝object - * 当目的object和源object完全相同时,表示修改object的meta信息 - * - * @param OssClient $ossClient OssClient实例 - * @param string $bucket 存储空间名称 - * @return null - */ -function copyObject($ossClient, $bucket) -{ - $fromBucket = $bucket; - $fromObject = "oss-php-sdk-test/upload-test-object-name.txt"; - $toBucket = $bucket; - $toObject = $fromObject . '.copy'; - $options = array(); - - try { - $ossClient->copyObject($fromBucket, $fromObject, $toBucket, $toObject, $options); - } catch (OssException $e) { - printf(__FUNCTION__ . ": FAILED\n"); - printf($e->getMessage() . "\n"); - return; - } - print(__FUNCTION__ . ": OK" . "\n"); -} - -/** - * 修改Object Meta - * 利用copyObject接口的特性:当目的object和源object完全相同时,表示修改object的meta信息 - * - * @param OssClient $ossClient OssClient实例 - * @param string $bucket 存储空间名称 - * @return null - */ -function modifyMetaForObject($ossClient, $bucket) -{ - $fromBucket = $bucket; - $fromObject = "oss-php-sdk-test/upload-test-object-name.txt"; - $toBucket = $bucket; - $toObject = $fromObject; - $copyOptions = array( - OssClient::OSS_HEADERS => array( - 'Cache-Control' => 'max-age=60', - 'Content-Disposition' => 'attachment; filename="xxxxxx"', - ), - ); - try { - $ossClient->copyObject($fromBucket, $fromObject, $toBucket, $toObject, $copyOptions); - } catch (OssException $e) { - printf(__FUNCTION__ . ": FAILED\n"); - printf($e->getMessage() . "\n"); - return; - } - print(__FUNCTION__ . ": OK" . "\n"); -} - -/** - * 获取object meta, 也就是getObjectMeta接口 - * - * @param OssClient $ossClient OssClient实例 - * @param string $bucket 存储空间名称 - * @return null - */ -function getObjectMeta($ossClient, $bucket) -{ - $object = "oss-php-sdk-test/upload-test-object-name.txt"; - try { - $objectMeta = $ossClient->getObjectMeta($bucket, $object); - } catch (OssException $e) { - printf(__FUNCTION__ . ": FAILED\n"); - printf($e->getMessage() . "\n"); - return; - } - print(__FUNCTION__ . ": OK" . "\n"); - if (isset($objectMeta[strtolower('Content-Disposition')]) && - 'attachment; filename="xxxxxx"' === $objectMeta[strtolower('Content-Disposition')] - ) { - print(__FUNCTION__ . ": ObjectMeta checked OK" . "\n"); - } else { - print(__FUNCTION__ . ": ObjectMeta checked FAILED" . "\n"); - } -} - -/** - * 删除object - * - * @param OssClient $ossClient OssClient实例 - * @param string $bucket 存储空间名称 - * @return null - */ -function deleteObject($ossClient, $bucket) -{ - $object = "oss-php-sdk-test/upload-test-object-name.txt"; - try { - $ossClient->deleteObject($bucket, $object); - } catch (OssException $e) { - printf(__FUNCTION__ . ": FAILED\n"); - printf($e->getMessage() . "\n"); - return; - } - print(__FUNCTION__ . ": OK" . "\n"); -} - - -/** - * 批量删除object - * - * @param OssClient $ossClient OssClient实例 - * @param string $bucket 存储空间名称 - * @return null - */ -function deleteObjects($ossClient, $bucket) -{ - $objects = array(); - $objects[] = "oss-php-sdk-test/upload-test-object-name.txt"; - $objects[] = "oss-php-sdk-test/upload-test-object-name.txt.copy"; - try { - $ossClient->deleteObjects($bucket, $objects); - } catch (OssException $e) { - printf(__FUNCTION__ . ": FAILED\n"); - printf($e->getMessage() . "\n"); - return; - } - print(__FUNCTION__ . ": OK" . "\n"); -} - -/** - * 判断object是否存在 - * - * @param OssClient $ossClient OssClient实例 - * @param string $bucket 存储空间名称 - * @return null - */ -function doesObjectExist($ossClient, $bucket) -{ - $object = "oss-php-sdk-test/upload-test-object-name.txt"; - try { - $exist = $ossClient->doesObjectExist($bucket, $object); - } catch (OssException $e) { - printf(__FUNCTION__ . ": FAILED\n"); - printf($e->getMessage() . "\n"); - return; - } - print(__FUNCTION__ . ": OK" . "\n"); - var_dump($exist); -} - diff --git a/vendor/aliyuncs/oss-sdk-php/samples/RunAll.php b/vendor/aliyuncs/oss-sdk-php/samples/RunAll.php deleted file mode 100644 index a4d6d9b9c..000000000 --- a/vendor/aliyuncs/oss-sdk-php/samples/RunAll.php +++ /dev/null @@ -1,13 +0,0 @@ -uploadFile($bucket, "a.file", __FILE__); - -// 生成GetObject的签名url,用户可以使用这个url直接在浏览器下载 -$signedUrl = $ossClient->signUrl($bucket, "a.file", 3600); -Common::println($signedUrl); - -// 生成用于putObject的签名URL,用户可以直接用put方法使用这个url上传文件到 "a.file" -$signedUrl = $ossClient->signUrl($bucket, "a.file", "3600", "PUT"); -Common::println($signedUrl); - -// 生成从本地文件上传PutObject的签名url, 用户可以直接使用这个url把本地文件上传到 "a.file" -$signedUrl = $ossClient->signUrl($bucket, "a.file", 3600, "PUT", array('Content-Type' => 'txt')); -Common::println($signedUrl); - -//******************************* 完整用法参考下面函数 **************************************************** - -getSignedUrlForPuttingObject($ossClient, $bucket); -getSignedUrlForPuttingObjectFromFile($ossClient, $bucket); -getSignedUrlForGettingObject($ossClient, $bucket); - -/** - * 生成GetObject的签名url,主要用于私有权限下的读访问控制 - * - * @param $ossClient OssClient OssClient实例 - * @param $bucket string 存储空间名称 - * @return null - */ -function getSignedUrlForGettingObject($ossClient, $bucket) -{ - $object = "test/test-signature-test-upload-and-download.txt"; - $timeout = 3600; - try { - $signedUrl = $ossClient->signUrl($bucket, $object, $timeout); - } catch (OssException $e) { - printf(__FUNCTION__ . ": FAILED\n"); - printf($e->getMessage() . "\n"); - return; - } - print(__FUNCTION__ . ": signedUrl: " . $signedUrl . "\n"); - /** - * 可以类似的代码来访问签名的URL,也可以输入到浏览器中去访问 - */ - $request = new RequestCore($signedUrl); - $request->set_method('GET'); - $request->add_header('Content-Type', ''); - $request->send_request(); - $res = new ResponseCore($request->get_response_header(), $request->get_response_body(), $request->get_response_code()); - if ($res->isOK()) { - print(__FUNCTION__ . ": OK" . "\n"); - } else { - print(__FUNCTION__ . ": FAILED" . "\n"); - }; -} - -/** - * 生成PutObject的签名url,主要用于私有权限下的写访问控制 - * - * @param OssClient $ossClient OssClient实例 - * @param string $bucket 存储空间名称 - * @return null - * @throws OssException - */ -function getSignedUrlForPuttingObject($ossClient, $bucket) -{ - $object = "test/test-signature-test-upload-and-download.txt"; - $timeout = 3600; - $options = NULL; - try { - $signedUrl = $ossClient->signUrl($bucket, $object, $timeout, "PUT"); - } catch (OssException $e) { - printf(__FUNCTION__ . ": FAILED\n"); - printf($e->getMessage() . "\n"); - return; - } - print(__FUNCTION__ . ": signedUrl: " . $signedUrl . "\n"); - $content = file_get_contents(__FILE__); - - $request = new RequestCore($signedUrl); - $request->set_method('PUT'); - $request->add_header('Content-Type', ''); - $request->add_header('Content-Length', strlen($content)); - $request->set_body($content); - $request->send_request(); - $res = new ResponseCore($request->get_response_header(), - $request->get_response_body(), $request->get_response_code()); - if ($res->isOK()) { - print(__FUNCTION__ . ": OK" . "\n"); - } else { - print(__FUNCTION__ . ": FAILED" . "\n"); - }; -} - -/** - * 生成PutObject的签名url,主要用于私有权限下的写访问控制, 用户可以利用生成的signedUrl - * 从文件上传文件 - * - * @param OssClient $ossClient OssClient实例 - * @param string $bucket 存储空间名称 - * @throws OssException - */ -function getSignedUrlForPuttingObjectFromFile($ossClient, $bucket) -{ - $file = __FILE__; - $object = "test/test-signature-test-upload-and-download.txt"; - $timeout = 3600; - $options = array('Content-Type' => 'txt'); - try { - $signedUrl = $ossClient->signUrl($bucket, $object, $timeout, "PUT", $options); - } catch (OssException $e) { - printf(__FUNCTION__ . ": FAILED\n"); - printf($e->getMessage() . "\n"); - return; - } - print(__FUNCTION__ . ": signedUrl: " . $signedUrl . "\n"); - - $request = new RequestCore($signedUrl); - $request->set_method('PUT'); - $request->add_header('Content-Type', 'txt'); - $request->set_read_file($file); - $request->set_read_stream_size(filesize($file)); - $request->send_request(); - $res = new ResponseCore($request->get_response_header(), - $request->get_response_body(), $request->get_response_code()); - if ($res->isOK()) { - print(__FUNCTION__ . ": OK" . "\n"); - } else { - print(__FUNCTION__ . ": FAILED" . "\n"); - }; -} \ No newline at end of file diff --git a/vendor/aliyuncs/oss-sdk-php/src/OSS/Core/MimeTypes.php b/vendor/aliyuncs/oss-sdk-php/src/OSS/Core/MimeTypes.php deleted file mode 100644 index e9b88ffa8..000000000 --- a/vendor/aliyuncs/oss-sdk-php/src/OSS/Core/MimeTypes.php +++ /dev/null @@ -1,262 +0,0 @@ - 1) { - $ext = strtolower(end($parts)); - if (isset(self::$mime_types[$ext])) { - return self::$mime_types[$ext]; - } - } - - return null; - } - - private static $mime_types = array( - 'xlsx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', - 'xltx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.template', - 'potx' => 'application/vnd.openxmlformats-officedocument.presentationml.template', - 'ppsx' => 'application/vnd.openxmlformats-officedocument.presentationml.slideshow', - 'pptx' => 'application/vnd.openxmlformats-officedocument.presentationml.presentation', - 'sldx' => 'application/vnd.openxmlformats-officedocument.presentationml.slide', - 'docx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', - 'dotx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.template', - 'xlam' => 'application/vnd.ms-excel.addin.macroEnabled.12', - 'xlsb' => 'application/vnd.ms-excel.sheet.binary.macroEnabled.12', - 'apk' => 'application/vnd.android.package-archive', - 'hqx' => 'application/mac-binhex40', - 'cpt' => 'application/mac-compactpro', - 'doc' => 'application/msword', - 'ogg' => 'audio/ogg', - 'pdf' => 'application/pdf', - 'rtf' => 'text/rtf', - 'mif' => 'application/vnd.mif', - 'xls' => 'application/vnd.ms-excel', - 'ppt' => 'application/vnd.ms-powerpoint', - 'odc' => 'application/vnd.oasis.opendocument.chart', - 'odb' => 'application/vnd.oasis.opendocument.database', - 'odf' => 'application/vnd.oasis.opendocument.formula', - 'odg' => 'application/vnd.oasis.opendocument.graphics', - 'otg' => 'application/vnd.oasis.opendocument.graphics-template', - 'odi' => 'application/vnd.oasis.opendocument.image', - 'odp' => 'application/vnd.oasis.opendocument.presentation', - 'otp' => 'application/vnd.oasis.opendocument.presentation-template', - 'ods' => 'application/vnd.oasis.opendocument.spreadsheet', - 'ots' => 'application/vnd.oasis.opendocument.spreadsheet-template', - 'odt' => 'application/vnd.oasis.opendocument.text', - 'odm' => 'application/vnd.oasis.opendocument.text-master', - 'ott' => 'application/vnd.oasis.opendocument.text-template', - 'oth' => 'application/vnd.oasis.opendocument.text-web', - 'sxw' => 'application/vnd.sun.xml.writer', - 'stw' => 'application/vnd.sun.xml.writer.template', - 'sxc' => 'application/vnd.sun.xml.calc', - 'stc' => 'application/vnd.sun.xml.calc.template', - 'sxd' => 'application/vnd.sun.xml.draw', - 'std' => 'application/vnd.sun.xml.draw.template', - 'sxi' => 'application/vnd.sun.xml.impress', - 'sti' => 'application/vnd.sun.xml.impress.template', - 'sxg' => 'application/vnd.sun.xml.writer.global', - 'sxm' => 'application/vnd.sun.xml.math', - 'sis' => 'application/vnd.symbian.install', - 'wbxml' => 'application/vnd.wap.wbxml', - 'wmlc' => 'application/vnd.wap.wmlc', - 'wmlsc' => 'application/vnd.wap.wmlscriptc', - 'bcpio' => 'application/x-bcpio', - 'torrent' => 'application/x-bittorrent', - 'bz2' => 'application/x-bzip2', - 'vcd' => 'application/x-cdlink', - 'pgn' => 'application/x-chess-pgn', - 'cpio' => 'application/x-cpio', - 'csh' => 'application/x-csh', - 'dvi' => 'application/x-dvi', - 'spl' => 'application/x-futuresplash', - 'gtar' => 'application/x-gtar', - 'hdf' => 'application/x-hdf', - 'jar' => 'application/java-archive', - 'jnlp' => 'application/x-java-jnlp-file', - 'js' => 'application/javascript', - 'json' => 'application/json', - 'ksp' => 'application/x-kspread', - 'chrt' => 'application/x-kchart', - 'kil' => 'application/x-killustrator', - 'latex' => 'application/x-latex', - 'rpm' => 'application/x-rpm', - 'sh' => 'application/x-sh', - 'shar' => 'application/x-shar', - 'swf' => 'application/x-shockwave-flash', - 'sit' => 'application/x-stuffit', - 'sv4cpio' => 'application/x-sv4cpio', - 'sv4crc' => 'application/x-sv4crc', - 'tar' => 'application/x-tar', - 'tcl' => 'application/x-tcl', - 'tex' => 'application/x-tex', - 'man' => 'application/x-troff-man', - 'me' => 'application/x-troff-me', - 'ms' => 'application/x-troff-ms', - 'ustar' => 'application/x-ustar', - 'src' => 'application/x-wais-source', - 'zip' => 'application/zip', - 'm3u' => 'audio/x-mpegurl', - 'ra' => 'audio/x-pn-realaudio', - 'wav' => 'audio/x-wav', - 'wma' => 'audio/x-ms-wma', - 'wax' => 'audio/x-ms-wax', - 'pdb' => 'chemical/x-pdb', - 'xyz' => 'chemical/x-xyz', - 'bmp' => 'image/bmp', - 'gif' => 'image/gif', - 'ief' => 'image/ief', - 'png' => 'image/png', - 'wbmp' => 'image/vnd.wap.wbmp', - 'ras' => 'image/x-cmu-raster', - 'pnm' => 'image/x-portable-anymap', - 'pbm' => 'image/x-portable-bitmap', - 'pgm' => 'image/x-portable-graymap', - 'ppm' => 'image/x-portable-pixmap', - 'rgb' => 'image/x-rgb', - 'xbm' => 'image/x-xbitmap', - 'xpm' => 'image/x-xpixmap', - 'xwd' => 'image/x-xwindowdump', - 'css' => 'text/css', - 'rtx' => 'text/richtext', - 'tsv' => 'text/tab-separated-values', - 'jad' => 'text/vnd.sun.j2me.app-descriptor', - 'wml' => 'text/vnd.wap.wml', - 'wmls' => 'text/vnd.wap.wmlscript', - 'etx' => 'text/x-setext', - 'mxu' => 'video/vnd.mpegurl', - 'flv' => 'video/x-flv', - 'wm' => 'video/x-ms-wm', - 'wmv' => 'video/x-ms-wmv', - 'wmx' => 'video/x-ms-wmx', - 'wvx' => 'video/x-ms-wvx', - 'avi' => 'video/x-msvideo', - 'movie' => 'video/x-sgi-movie', - 'ice' => 'x-conference/x-cooltalk', - '3gp' => 'video/3gpp', - 'ai' => 'application/postscript', - 'aif' => 'audio/x-aiff', - 'aifc' => 'audio/x-aiff', - 'aiff' => 'audio/x-aiff', - 'asc' => 'text/plain', - 'atom' => 'application/atom+xml', - 'au' => 'audio/basic', - 'bin' => 'application/octet-stream', - 'cdf' => 'application/x-netcdf', - 'cgm' => 'image/cgm', - 'class' => 'application/octet-stream', - 'dcr' => 'application/x-director', - 'dif' => 'video/x-dv', - 'dir' => 'application/x-director', - 'djv' => 'image/vnd.djvu', - 'djvu' => 'image/vnd.djvu', - 'dll' => 'application/octet-stream', - 'dmg' => 'application/octet-stream', - 'dms' => 'application/octet-stream', - 'dtd' => 'application/xml-dtd', - 'dv' => 'video/x-dv', - 'dxr' => 'application/x-director', - 'eps' => 'application/postscript', - 'exe' => 'application/octet-stream', - 'ez' => 'application/andrew-inset', - 'gram' => 'application/srgs', - 'grxml' => 'application/srgs+xml', - 'gz' => 'application/x-gzip', - 'htm' => 'text/html', - 'html' => 'text/html', - 'ico' => 'image/x-icon', - 'ics' => 'text/calendar', - 'ifb' => 'text/calendar', - 'iges' => 'model/iges', - 'igs' => 'model/iges', - 'jp2' => 'image/jp2', - 'jpe' => 'image/jpeg', - 'jpeg' => 'image/jpeg', - 'jpg' => 'image/jpeg', - 'kar' => 'audio/midi', - 'lha' => 'application/octet-stream', - 'lzh' => 'application/octet-stream', - 'm4a' => 'audio/mp4a-latm', - 'm4p' => 'audio/mp4a-latm', - 'm4u' => 'video/vnd.mpegurl', - 'm4v' => 'video/x-m4v', - 'mac' => 'image/x-macpaint', - 'mathml' => 'application/mathml+xml', - 'mesh' => 'model/mesh', - 'mid' => 'audio/midi', - 'midi' => 'audio/midi', - 'mov' => 'video/quicktime', - 'mp2' => 'audio/mpeg', - 'mp3' => 'audio/mpeg', - 'mp4' => 'video/mp4', - 'mpe' => 'video/mpeg', - 'mpeg' => 'video/mpeg', - 'mpg' => 'video/mpeg', - 'mpga' => 'audio/mpeg', - 'msh' => 'model/mesh', - 'nc' => 'application/x-netcdf', - 'oda' => 'application/oda', - 'ogv' => 'video/ogv', - 'pct' => 'image/pict', - 'pic' => 'image/pict', - 'pict' => 'image/pict', - 'pnt' => 'image/x-macpaint', - 'pntg' => 'image/x-macpaint', - 'ps' => 'application/postscript', - 'qt' => 'video/quicktime', - 'qti' => 'image/x-quicktime', - 'qtif' => 'image/x-quicktime', - 'ram' => 'audio/x-pn-realaudio', - 'rdf' => 'application/rdf+xml', - 'rm' => 'application/vnd.rn-realmedia', - 'roff' => 'application/x-troff', - 'sgm' => 'text/sgml', - 'sgml' => 'text/sgml', - 'silo' => 'model/mesh', - 'skd' => 'application/x-koan', - 'skm' => 'application/x-koan', - 'skp' => 'application/x-koan', - 'skt' => 'application/x-koan', - 'smi' => 'application/smil', - 'smil' => 'application/smil', - 'snd' => 'audio/basic', - 'so' => 'application/octet-stream', - 'svg' => 'image/svg+xml', - 't' => 'application/x-troff', - 'texi' => 'application/x-texinfo', - 'texinfo' => 'application/x-texinfo', - 'tif' => 'image/tiff', - 'tiff' => 'image/tiff', - 'tr' => 'application/x-troff', - 'txt' => 'text/plain', - 'vrml' => 'model/vrml', - 'vxml' => 'application/voicexml+xml', - 'webm' => 'video/webm', - 'webp' => 'image/webp', - 'wrl' => 'model/vrml', - 'xht' => 'application/xhtml+xml', - 'xhtml' => 'application/xhtml+xml', - 'xml' => 'application/xml', - 'xsl' => 'application/xml', - 'xslt' => 'application/xslt+xml', - 'xul' => 'application/vnd.mozilla.xul+xml', - ); -} \ No newline at end of file diff --git a/vendor/aliyuncs/oss-sdk-php/src/OSS/Core/OssException.php b/vendor/aliyuncs/oss-sdk-php/src/OSS/Core/OssException.php deleted file mode 100644 index b0e9e8b0d..000000000 --- a/vendor/aliyuncs/oss-sdk-php/src/OSS/Core/OssException.php +++ /dev/null @@ -1,54 +0,0 @@ -details = $details; - } else { - $message = $details; - parent::__construct($message); - } - } - - public function getHTTPStatus() - { - return isset($this->details['status']) ? $this->details['status'] : ''; - } - - public function getRequestId() - { - return isset($this->details['request-id']) ? $this->details['request-id'] : ''; - } - - public function getErrorCode() - { - return isset($this->details['code']) ? $this->details['code'] : ''; - } - - public function getErrorMessage() - { - return isset($this->details['message']) ? $this->details['message'] : ''; - } - - public function getDetails() - { - return isset($this->details['body']) ? $this->details['body'] : ''; - } -} diff --git a/vendor/aliyuncs/oss-sdk-php/src/OSS/Core/OssUtil.php b/vendor/aliyuncs/oss-sdk-php/src/OSS/Core/OssUtil.php deleted file mode 100644 index 6e5d4133d..000000000 --- a/vendor/aliyuncs/oss-sdk-php/src/OSS/Core/OssUtil.php +++ /dev/null @@ -1,461 +0,0 @@ - $value) { - if (is_string($key) && !is_array($value)) { - $temp[] = rawurlencode($key) . '=' . rawurlencode($value); - } - } - return implode('&', $temp); - } - - /** - * 转义字符替换 - * - * @param string $subject - * @return string - */ - public static function sReplace($subject) - { - $search = array('<', '>', '&', '\'', '"'); - $replace = array('<', '>', '&', ''', '"'); - return str_replace($search, $replace, $subject); - } - - /** - * 检查是否是中文编码 - * - * @param $str - * @return int - */ - public static function chkChinese($str) - { - return preg_match('/[\x80-\xff]./', $str); - } - - /** - * 检测是否GB2312编码 - * - * @param string $str - * @return boolean false UTF-8编码 TRUE GB2312编码 - */ - public static function isGb2312($str) - { - for ($i = 0; $i < strlen($str); $i++) { - $v = ord($str[$i]); - if ($v > 127) { - if (($v >= 228) && ($v <= 233)) { - if (($i + 2) >= (strlen($str) - 1)) return true; // not enough characters - $v1 = ord($str[$i + 1]); - $v2 = ord($str[$i + 2]); - if (($v1 >= 128) && ($v1 <= 191) && ($v2 >= 128) && ($v2 <= 191)) - return false; - else - return true; - } - } - } - return false; - } - - /** - * 检测是否GBK编码 - * - * @param string $str - * @param boolean $gbk - * @return boolean - */ - public static function checkChar($str, $gbk = true) - { - for ($i = 0; $i < strlen($str); $i++) { - $v = ord($str[$i]); - if ($v > 127) { - if (($v >= 228) && ($v <= 233)) { - if (($i + 2) >= (strlen($str) - 1)) return $gbk ? true : FALSE; // not enough characters - $v1 = ord($str[$i + 1]); - $v2 = ord($str[$i + 2]); - if ($gbk) { - return (($v1 >= 128) && ($v1 <= 191) && ($v2 >= 128) && ($v2 <= 191)) ? FALSE : TRUE;//GBK - } else { - return (($v1 >= 128) && ($v1 <= 191) && ($v2 >= 128) && ($v2 <= 191)) ? TRUE : FALSE; - } - } - } - } - return $gbk ? TRUE : FALSE; - } - - /** - * 检验bucket名称是否合法 - * bucket的命名规范: - * 1. 只能包括小写字母,数字 - * 2. 必须以小写字母或者数字开头 - * 3. 长度必须在3-63字节之间 - * - * @param string $bucket Bucket名称 - * @return boolean - */ - public static function validateBucket($bucket) - { - $pattern = '/^[a-z0-9][a-z0-9-]{2,62}$/'; - if (!preg_match($pattern, $bucket)) { - return false; - } - return true; - } - - /** - * 检验object名称是否合法 - * object命名规范: - * 1. 规则长度必须在1-1023字节之间 - * 2. 使用UTF-8编码 - * 3. 不能以 "/" "\\"开头 - * - * @param string $object Object名称 - * @return boolean - */ - public static function validateObject($object) - { - $pattern = '/^.{1,1023}$/'; - if (empty($object) || !preg_match($pattern, $object) || - self::startsWith($object, '/') || self::startsWith($object, '\\') - ) { - return false; - } - return true; - } - - - /** - * 判断字符串$str是不是以$findMe开始 - * - * @param string $str - * @param string $findMe - * @return bool - */ - public static function startsWith($str, $findMe) - { - if (strpos($str, $findMe) === 0) { - return true; - } else { - return false; - } - } - - /** - * 生成createBucketXmlBody接口的xml消息 - * - * @param string $storageClass - * @return string - */ - public static function createBucketXmlBody($storageClass) - { - $xml = new \SimpleXMLElement(''); - $xml->addChild('StorageClass', $storageClass); - return $xml->asXML(); - } - - /** - * 检验$options - * - * @param array $options - * @throws OssException - * @return boolean - */ - public static function validateOptions($options) - { - //$options - if ($options != NULL && !is_array($options)) { - throw new OssException ($options . ':' . 'option must be array'); - } - } - - /** - * 检查上传文件的内容是否合法 - * - * @param $content string - * @throws OssException - */ - public static function validateContent($content) - { - if (empty($content)) { - throw new OssException("http body content is invalid"); - } - } - - /** - * 校验BUCKET/OBJECT/OBJECT GROUP是否为空 - * - * @param string $name - * @param string $errMsg - * @throws OssException - * @return void - */ - public static function throwOssExceptionWithMessageIfEmpty($name, $errMsg) - { - if (empty($name)) { - throw new OssException($errMsg); - } - } - - /** - * 仅供测试使用的接口,请勿使用 - * - * @param $filename - * @param $size - */ - public static function generateFile($filename, $size) - { - if (file_exists($filename) && $size == filesize($filename)) { - echo $filename . " already exists, no need to create again. "; - return; - } - $part_size = 1 * 1024 * 1024; - $fp = fopen($filename, "w"); - $characters = << 0) { - if ($size < $part_size) { - $write_size = $size; - } else { - $write_size = $part_size; - } - $size -= $write_size; - $a = $characters[rand(0, $charactersLength - 1)]; - $content = str_repeat($a, $write_size); - $flag = fwrite($fp, $content); - if (!$flag) { - echo "write to " . $filename . " failed.
          "; - break; - } - } - } else { - echo "open " . $filename . " failed.
          "; - } - fclose($fp); - } - - /** - * 得到文件的md5编码 - * - * @param $filename - * @param $from_pos - * @param $to_pos - * @return string - */ - public static function getMd5SumForFile($filename, $from_pos, $to_pos) - { - $content_md5 = ""; - if (($to_pos - $from_pos) > self::OSS_MAX_PART_SIZE) { - return $content_md5; - } - $filesize = filesize($filename); - if ($from_pos >= $filesize || $to_pos >= $filesize || $from_pos < 0 || $to_pos < 0) { - return $content_md5; - } - - $total_length = $to_pos - $from_pos + 1; - $buffer = 8192; - $left_length = $total_length; - if (!file_exists($filename)) { - return $content_md5; - } - - if (false === $fh = fopen($filename, 'rb')) { - return $content_md5; - } - - fseek($fh, $from_pos); - $data = ''; - while (!feof($fh)) { - if ($left_length >= $buffer) { - $read_length = $buffer; - } else { - $read_length = $left_length; - } - if ($read_length <= 0) { - break; - } else { - $data .= fread($fh, $read_length); - $left_length = $left_length - $read_length; - } - } - fclose($fh); - $content_md5 = base64_encode(md5($data, true)); - return $content_md5; - } - - /** - * 检测是否windows系统,因为windows系统默认编码为GBK - * - * @return bool - */ - public static function isWin() - { - return strtoupper(substr(PHP_OS, 0, 3)) == "WIN"; - } - - /** - * 主要是由于windows系统编码是gbk,遇到中文时候,如果不进行转换处理会出现找不到文件的问题 - * - * @param $file_path - * @return string - */ - public static function encodePath($file_path) - { - if (self::chkChinese($file_path) && self::isWin()) { - $file_path = iconv('utf-8', 'gbk', $file_path); - } - return $file_path; - } - - /** - * 判断用户输入的endpoint是否是 xxx.xxx.xxx.xxx:port 或者 xxx.xxx.xxx.xxx的ip格式 - * - * @param string $endpoint 需要做判断的endpoint - * @return boolean - */ - public static function isIPFormat($endpoint) - { - $ip_array = explode(":", $endpoint); - $hostname = $ip_array[0]; - $ret = filter_var($hostname, FILTER_VALIDATE_IP); - if (!$ret) { - return false; - } else { - return true; - } - } - - /** - * 生成DeleteMultiObjects接口的xml消息 - * - * @param string[] $objects - * @param bool $quiet - * @return string - */ - public static function createDeleteObjectsXmlBody($objects, $quiet) - { - $xml = new \SimpleXMLElement(''); - $xml->addChild('Quiet', $quiet); - foreach ($objects as $object) { - $sub_object = $xml->addChild('Object'); - $object = OssUtil::sReplace($object); - $sub_object->addChild('Key', $object); - } - return $xml->asXML(); - } - - /** - * 生成CompleteMultipartUpload接口的xml消息 - * - * @param array[] $listParts - * @return string - */ - public static function createCompleteMultipartUploadXmlBody($listParts) - { - $xml = new \SimpleXMLElement(''); - foreach ($listParts as $node) { - $part = $xml->addChild('Part'); - $part->addChild('PartNumber', $node['PartNumber']); - $part->addChild('ETag', $node['ETag']); - } - return $xml->asXML(); - } - - /** - * 读取目录 - * - * @param string $dir - * @param string $exclude - * @param bool $recursive - * @return string[] - */ - public static function readDir($dir, $exclude = ".|..|.svn|.git", $recursive = false) - { - $file_list_array = array(); - $base_path = $dir; - $exclude_array = explode("|", $exclude); - $exclude_array = array_unique(array_merge($exclude_array, array('.', '..'))); - - if ($recursive) { - foreach (new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($dir)) as $new_file) { - if ($new_file->isDir()) continue; - $object = str_replace($base_path, '', $new_file); - if (!in_array(strtolower($object), $exclude_array)) { - $object = ltrim($object, '/'); - if (is_file($new_file)) { - $key = md5($new_file . $object, false); - $file_list_array[$key] = array('path' => $new_file, 'file' => $object,); - } - } - } - } else if ($handle = opendir($dir)) { - while (false !== ($file = readdir($handle))) { - if (!in_array(strtolower($file), $exclude_array)) { - $new_file = $dir . '/' . $file; - $object = $file; - $object = ltrim($object, '/'); - if (is_file($new_file)) { - $key = md5($new_file . $object, false); - $file_list_array[$key] = array('path' => $new_file, 'file' => $object,); - } - } - } - closedir($handle); - } - return $file_list_array; - } - - /** - * Decode key based on the encoding type - * - * @param string $key - * @param string $encoding - * @return string - */ - public static function decodeKey($key, $encoding) - { - if ($encoding == "") { - return $key; - } - - if ($encoding == "url") { - return rawurldecode($key); - } else { - throw new OssException("Unrecognized encoding type: " . $encoding); - } - } -} diff --git a/vendor/aliyuncs/oss-sdk-php/src/OSS/Http/LICENSE b/vendor/aliyuncs/oss-sdk-php/src/OSS/Http/LICENSE deleted file mode 100644 index 49b38bd62..000000000 --- a/vendor/aliyuncs/oss-sdk-php/src/OSS/Http/LICENSE +++ /dev/null @@ -1,25 +0,0 @@ -Copyright (c) 2006-2010 Ryan Parman, Foleeo Inc., and contributors. All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are -permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list of - conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this list - of conditions and the following disclaimer in the documentation and/or other materials - provided with the distribution. - - * Neither the name of Ryan Parman, Foleeo Inc. nor the names of its contributors may be used to - endorse or promote products derived from this software without specific prior written - permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS -OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY -AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS -AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/aliyuncs/oss-sdk-php/src/OSS/Http/RequestCore.php b/vendor/aliyuncs/oss-sdk-php/src/OSS/Http/RequestCore.php deleted file mode 100644 index 06d0f8783..000000000 --- a/vendor/aliyuncs/oss-sdk-php/src/OSS/Http/RequestCore.php +++ /dev/null @@ -1,896 +0,0 @@ -). - */ - public $request_class = 'OSS\Http\RequestCore'; - - /** - * The default class to use for HTTP Responses (defaults to ). - */ - public $response_class = 'OSS\Http\ResponseCore'; - - /** - * Default useragent string to use. - */ - public $useragent = 'RequestCore/1.4.3'; - - /** - * File to read from while streaming up. - */ - public $read_file = null; - - /** - * The resource to read from while streaming up. - */ - public $read_stream = null; - - /** - * The size of the stream to read from. - */ - public $read_stream_size = null; - - /** - * The length already read from the stream. - */ - public $read_stream_read = 0; - - /** - * File to write to while streaming down. - */ - public $write_file = null; - - /** - * The resource to write to while streaming down. - */ - public $write_stream = null; - - /** - * Stores the intended starting seek position. - */ - public $seek_position = null; - - /** - * The location of the cacert.pem file to use. - */ - public $cacert_location = false; - - /** - * The state of SSL certificate verification. - */ - public $ssl_verification = true; - - /** - * The user-defined callback function to call when a stream is read from. - */ - public $registered_streaming_read_callback = null; - - /** - * The user-defined callback function to call when a stream is written to. - */ - public $registered_streaming_write_callback = null; - - /** - * 请求超时时间, 默认是5184000秒,6天 - * - * @var int - */ - public $timeout = 5184000; - - /** - * 连接超时时间,默认是10秒 - * - * @var int - */ - public $connect_timeout = 10; - - /*%******************************************************************************************%*/ - // CONSTANTS - - /** - * GET HTTP Method - */ - const HTTP_GET = 'GET'; - - /** - * POST HTTP Method - */ - const HTTP_POST = 'POST'; - - /** - * PUT HTTP Method - */ - const HTTP_PUT = 'PUT'; - - /** - * DELETE HTTP Method - */ - const HTTP_DELETE = 'DELETE'; - - /** - * HEAD HTTP Method - */ - const HTTP_HEAD = 'HEAD'; - - - /*%******************************************************************************************%*/ - // CONSTRUCTOR/DESTRUCTOR - - /** - * Constructs a new instance of this class. - * - * @param string $url (Optional) The URL to request or service endpoint to query. - * @param string $proxy (Optional) The faux-url to use for proxy settings. Takes the following format: `proxy://user:pass@hostname:port` - * @param array $helpers (Optional) An associative array of classnames to use for request, and response functionality. Gets passed in automatically by the calling class. - * @return $this A reference to the current instance. - */ - public function __construct($url = null, $proxy = null, $helpers = null) - { - // Set some default values. - $this->request_url = $url; - $this->method = self::HTTP_GET; - $this->request_headers = array(); - $this->request_body = ''; - - // Set a new Request class if one was set. - if (isset($helpers['request']) && !empty($helpers['request'])) { - $this->request_class = $helpers['request']; - } - - // Set a new Request class if one was set. - if (isset($helpers['response']) && !empty($helpers['response'])) { - $this->response_class = $helpers['response']; - } - - if ($proxy) { - $this->set_proxy($proxy); - } - - return $this; - } - - /** - * Destructs the instance. Closes opened file handles. - * - * @return $this A reference to the current instance. - */ - public function __destruct() - { - if (isset($this->read_file) && isset($this->read_stream)) { - fclose($this->read_stream); - } - - if (isset($this->write_file) && isset($this->write_stream)) { - fclose($this->write_stream); - } - - return $this; - } - - - /*%******************************************************************************************%*/ - // REQUEST METHODS - - /** - * Sets the credentials to use for authentication. - * - * @param string $user (Required) The username to authenticate with. - * @param string $pass (Required) The password to authenticate with. - * @return $this A reference to the current instance. - */ - public function set_credentials($user, $pass) - { - $this->username = $user; - $this->password = $pass; - return $this; - } - - /** - * Adds a custom HTTP header to the cURL request. - * - * @param string $key (Required) The custom HTTP header to set. - * @param mixed $value (Required) The value to assign to the custom HTTP header. - * @return $this A reference to the current instance. - */ - public function add_header($key, $value) - { - $this->request_headers[$key] = $value; - return $this; - } - - /** - * Removes an HTTP header from the cURL request. - * - * @param string $key (Required) The custom HTTP header to set. - * @return $this A reference to the current instance. - */ - public function remove_header($key) - { - if (isset($this->request_headers[$key])) { - unset($this->request_headers[$key]); - } - return $this; - } - - /** - * Set the method type for the request. - * - * @param string $method (Required) One of the following constants: , , , , . - * @return $this A reference to the current instance. - */ - public function set_method($method) - { - $this->method = strtoupper($method); - return $this; - } - - /** - * Sets a custom useragent string for the class. - * - * @param string $ua (Required) The useragent string to use. - * @return $this A reference to the current instance. - */ - public function set_useragent($ua) - { - $this->useragent = $ua; - return $this; - } - - /** - * Set the body to send in the request. - * - * @param string $body (Required) The textual content to send along in the body of the request. - * @return $this A reference to the current instance. - */ - public function set_body($body) - { - $this->request_body = $body; - return $this; - } - - /** - * Set the URL to make the request to. - * - * @param string $url (Required) The URL to make the request to. - * @return $this A reference to the current instance. - */ - public function set_request_url($url) - { - $this->request_url = $url; - return $this; - } - - /** - * Set additional CURLOPT settings. These will merge with the default settings, and override if - * there is a duplicate. - * - * @param array $curlopts (Optional) A set of key-value pairs that set `CURLOPT` options. These will merge with the existing CURLOPTs, and ones passed here will override the defaults. Keys should be the `CURLOPT_*` constants, not strings. - * @return $this A reference to the current instance. - */ - public function set_curlopts($curlopts) - { - $this->curlopts = $curlopts; - return $this; - } - - /** - * Sets the length in bytes to read from the stream while streaming up. - * - * @param integer $size (Required) The length in bytes to read from the stream. - * @return $this A reference to the current instance. - */ - public function set_read_stream_size($size) - { - $this->read_stream_size = $size; - - return $this; - } - - /** - * Sets the resource to read from while streaming up. Reads the stream from its current position until - * EOF or `$size` bytes have been read. If `$size` is not given it will be determined by and - * . - * - * @param resource $resource (Required) The readable resource to read from. - * @param integer $size (Optional) The size of the stream to read. - * @return $this A reference to the current instance. - */ - public function set_read_stream($resource, $size = null) - { - if (!isset($size) || $size < 0) { - $stats = fstat($resource); - - if ($stats && $stats['size'] >= 0) { - $position = ftell($resource); - - if ($position !== false && $position >= 0) { - $size = $stats['size'] - $position; - } - } - } - - $this->read_stream = $resource; - - return $this->set_read_stream_size($size); - } - - /** - * Sets the file to read from while streaming up. - * - * @param string $location (Required) The readable location to read from. - * @return $this A reference to the current instance. - */ - public function set_read_file($location) - { - $this->read_file = $location; - $read_file_handle = fopen($location, 'r'); - - return $this->set_read_stream($read_file_handle); - } - - /** - * Sets the resource to write to while streaming down. - * - * @param resource $resource (Required) The writeable resource to write to. - * @return $this A reference to the current instance. - */ - public function set_write_stream($resource) - { - $this->write_stream = $resource; - - return $this; - } - - /** - * Sets the file to write to while streaming down. - * - * @param string $location (Required) The writeable location to write to. - * @return $this A reference to the current instance. - */ - public function set_write_file($location) - { - $this->write_file = $location; - } - - /** - * Set the proxy to use for making requests. - * - * @param string $proxy (Required) The faux-url to use for proxy settings. Takes the following format: `proxy://user:pass@hostname:port` - * @return $this A reference to the current instance. - */ - public function set_proxy($proxy) - { - $proxy = parse_url($proxy); - $proxy['user'] = isset($proxy['user']) ? $proxy['user'] : null; - $proxy['pass'] = isset($proxy['pass']) ? $proxy['pass'] : null; - $proxy['port'] = isset($proxy['port']) ? $proxy['port'] : null; - $this->proxy = $proxy; - return $this; - } - - /** - * Set the intended starting seek position. - * - * @param integer $position (Required) The byte-position of the stream to begin reading from. - * @return $this A reference to the current instance. - */ - public function set_seek_position($position) - { - $this->seek_position = isset($position) ? (integer)$position : null; - - return $this; - } - - /** - * A callback function that is invoked by cURL for streaming up. - * - * @param resource $curl_handle (Required) The cURL handle for the request. - * @param resource $header_content (Required) The header callback result. - * @return headers from a stream. - */ - public function streaming_header_callback($curl_handle, $header_content) - { - $code = curl_getinfo($curl_handle, CURLINFO_HTTP_CODE); - - if (isset($this->write_file) && intval($code) / 100 == 2 && !isset($this->write_file_handle)) - { - $this->write_file_handle = fopen($this->write_file, 'w'); - $this->set_write_stream($this->write_file_handle); - } - - $this->response_raw_headers .= $header_content; - return strlen($header_content); - } - - - /** - * Register a callback function to execute whenever a data stream is read from using - * . - * - * The user-defined callback function should accept three arguments: - * - *
            - *
          • $curl_handle - resource - Required - The cURL handle resource that represents the in-progress transfer.
          • - *
          • $file_handle - resource - Required - The file handle resource that represents the file on the local file system.
          • - *
          • $length - integer - Required - The length in kilobytes of the data chunk that was transferred.
          • - *
          - * - * @param string|array|function $callback (Required) The callback function is called by , so you can pass the following values:
            - *
          • The name of a global function to execute, passed as a string.
          • - *
          • A method to execute, passed as array('ClassName', 'MethodName').
          • - *
          • An anonymous function (PHP 5.3+).
          - * @return $this A reference to the current instance. - */ - public function register_streaming_read_callback($callback) - { - $this->registered_streaming_read_callback = $callback; - - return $this; - } - - /** - * Register a callback function to execute whenever a data stream is written to using - * . - * - * The user-defined callback function should accept two arguments: - * - *
            - *
          • $curl_handle - resource - Required - The cURL handle resource that represents the in-progress transfer.
          • - *
          • $length - integer - Required - The length in kilobytes of the data chunk that was transferred.
          • - *
          - * - * @param string|array|function $callback (Required) The callback function is called by , so you can pass the following values:
            - *
          • The name of a global function to execute, passed as a string.
          • - *
          • A method to execute, passed as array('ClassName', 'MethodName').
          • - *
          • An anonymous function (PHP 5.3+).
          - * @return $this A reference to the current instance. - */ - public function register_streaming_write_callback($callback) - { - $this->registered_streaming_write_callback = $callback; - - return $this; - } - - - /*%******************************************************************************************%*/ - // PREPARE, SEND, AND PROCESS REQUEST - - /** - * A callback function that is invoked by cURL for streaming up. - * - * @param resource $curl_handle (Required) The cURL handle for the request. - * @param resource $file_handle (Required) The open file handle resource. - * @param integer $length (Required) The maximum number of bytes to read. - * @return binary Binary data from a stream. - */ - public function streaming_read_callback($curl_handle, $file_handle, $length) - { - // Once we've sent as much as we're supposed to send... - if ($this->read_stream_read >= $this->read_stream_size) { - // Send EOF - return ''; - } - - // If we're at the beginning of an upload and need to seek... - if ($this->read_stream_read == 0 && isset($this->seek_position) && $this->seek_position !== ftell($this->read_stream)) { - if (fseek($this->read_stream, $this->seek_position) !== 0) { - throw new RequestCore_Exception('The stream does not support seeking and is either not at the requested position or the position is unknown.'); - } - } - - $read = fread($this->read_stream, min($this->read_stream_size - $this->read_stream_read, $length)); // Remaining upload data or cURL's requested chunk size - $this->read_stream_read += strlen($read); - - $out = $read === false ? '' : $read; - - // Execute callback function - if ($this->registered_streaming_read_callback) { - call_user_func($this->registered_streaming_read_callback, $curl_handle, $file_handle, $out); - } - - return $out; - } - - /** - * A callback function that is invoked by cURL for streaming down. - * - * @param resource $curl_handle (Required) The cURL handle for the request. - * @param binary $data (Required) The data to write. - * @return integer The number of bytes written. - */ - public function streaming_write_callback($curl_handle, $data) - { - $code = curl_getinfo($curl_handle, CURLINFO_HTTP_CODE); - - if (intval($code) / 100 != 2) - { - $this->response_error_body .= $data; - return strlen($data); - } - - $length = strlen($data); - $written_total = 0; - $written_last = 0; - - while ($written_total < $length) { - $written_last = fwrite($this->write_stream, substr($data, $written_total)); - - if ($written_last === false) { - return $written_total; - } - - $written_total += $written_last; - } - - // Execute callback function - if ($this->registered_streaming_write_callback) { - call_user_func($this->registered_streaming_write_callback, $curl_handle, $written_total); - } - - return $written_total; - } - - /** - * Prepares and adds the details of the cURL request. This can be passed along to a - * function. - * - * @return resource The handle for the cURL object. - * - */ - public function prep_request() - { - $curl_handle = curl_init(); - - // Set default options. - curl_setopt($curl_handle, CURLOPT_URL, $this->request_url); - curl_setopt($curl_handle, CURLOPT_FILETIME, true); - curl_setopt($curl_handle, CURLOPT_FRESH_CONNECT, false); -// curl_setopt($curl_handle, CURLOPT_CLOSEPOLICY, CURLCLOSEPOLICY_LEAST_RECENTLY_USED); - curl_setopt($curl_handle, CURLOPT_MAXREDIRS, 5); - curl_setopt($curl_handle, CURLOPT_HEADER, true); - curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, true); - curl_setopt($curl_handle, CURLOPT_TIMEOUT, $this->timeout); - curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT, $this->connect_timeout); - curl_setopt($curl_handle, CURLOPT_NOSIGNAL, true); - curl_setopt($curl_handle, CURLOPT_REFERER, $this->request_url); - curl_setopt($curl_handle, CURLOPT_USERAGENT, $this->useragent); - curl_setopt($curl_handle, CURLOPT_HEADERFUNCTION, array($this, 'streaming_header_callback')); - curl_setopt($curl_handle, CURLOPT_READFUNCTION, array($this, 'streaming_read_callback')); - - // Verification of the SSL cert - if ($this->ssl_verification) { - curl_setopt($curl_handle, CURLOPT_SSL_VERIFYPEER, true); - curl_setopt($curl_handle, CURLOPT_SSL_VERIFYHOST, 2); - } else { - curl_setopt($curl_handle, CURLOPT_SSL_VERIFYPEER, false); - curl_setopt($curl_handle, CURLOPT_SSL_VERIFYHOST, false); - } - - // chmod the file as 0755 - if ($this->cacert_location === true) { - curl_setopt($curl_handle, CURLOPT_CAINFO, dirname(__FILE__) . '/cacert.pem'); - } elseif (is_string($this->cacert_location)) { - curl_setopt($curl_handle, CURLOPT_CAINFO, $this->cacert_location); - } - - // Debug mode - if ($this->debug_mode) { - curl_setopt($curl_handle, CURLOPT_VERBOSE, true); - } - - // Handle open_basedir & safe mode - if (!ini_get('safe_mode') && !ini_get('open_basedir')) { - curl_setopt($curl_handle, CURLOPT_FOLLOWLOCATION, true); - } - - // Enable a proxy connection if requested. - if ($this->proxy) { - - $host = $this->proxy['host']; - $host .= ($this->proxy['port']) ? ':' . $this->proxy['port'] : ''; - curl_setopt($curl_handle, CURLOPT_PROXY, $host); - - if (isset($this->proxy['user']) && isset($this->proxy['pass'])) { - curl_setopt($curl_handle, CURLOPT_PROXYUSERPWD, $this->proxy['user'] . ':' . $this->proxy['pass']); - } - } - - // Set credentials for HTTP Basic/Digest Authentication. - if ($this->username && $this->password) { - curl_setopt($curl_handle, CURLOPT_HTTPAUTH, CURLAUTH_ANY); - curl_setopt($curl_handle, CURLOPT_USERPWD, $this->username . ':' . $this->password); - } - - // Handle the encoding if we can. - if (extension_loaded('zlib')) { - curl_setopt($curl_handle, CURLOPT_ENCODING, ''); - } - - // Process custom headers - if (isset($this->request_headers) && count($this->request_headers)) { - $temp_headers = array(); - - foreach ($this->request_headers as $k => $v) { - $temp_headers[] = $k . ': ' . $v; - } - - curl_setopt($curl_handle, CURLOPT_HTTPHEADER, $temp_headers); - } - - switch ($this->method) { - case self::HTTP_PUT: - //unset($this->read_stream); - curl_setopt($curl_handle, CURLOPT_CUSTOMREQUEST, 'PUT'); - if (isset($this->read_stream)) { - if (!isset($this->read_stream_size) || $this->read_stream_size < 0) { - throw new RequestCore_Exception('The stream size for the streaming upload cannot be determined.'); - } - curl_setopt($curl_handle, CURLOPT_INFILESIZE, $this->read_stream_size); - curl_setopt($curl_handle, CURLOPT_UPLOAD, true); - } else { - curl_setopt($curl_handle, CURLOPT_POSTFIELDS, $this->request_body); - } - break; - - case self::HTTP_POST: - curl_setopt($curl_handle, CURLOPT_CUSTOMREQUEST, 'POST'); - if (isset($this->read_stream)) { - if (!isset($this->read_stream_size) || $this->read_stream_size < 0) { - throw new RequestCore_Exception('The stream size for the streaming upload cannot be determined.'); - } - curl_setopt($curl_handle, CURLOPT_INFILESIZE, $this->read_stream_size); - curl_setopt($curl_handle, CURLOPT_UPLOAD, true); - } else { - curl_setopt($curl_handle, CURLOPT_POSTFIELDS, $this->request_body); - } - break; - - case self::HTTP_HEAD: - curl_setopt($curl_handle, CURLOPT_CUSTOMREQUEST, self::HTTP_HEAD); - curl_setopt($curl_handle, CURLOPT_NOBODY, 1); - break; - - default: // Assumed GET - curl_setopt($curl_handle, CURLOPT_CUSTOMREQUEST, $this->method); - if (isset($this->write_stream) || isset($this->write_file)) { - curl_setopt($curl_handle, CURLOPT_WRITEFUNCTION, array($this, 'streaming_write_callback')); - curl_setopt($curl_handle, CURLOPT_HEADER, false); - } else { - curl_setopt($curl_handle, CURLOPT_POSTFIELDS, $this->request_body); - } - break; - } - - // Merge in the CURLOPTs - if (isset($this->curlopts) && sizeof($this->curlopts) > 0) { - foreach ($this->curlopts as $k => $v) { - curl_setopt($curl_handle, $k, $v); - } - } - - return $curl_handle; - } - - /** - * Take the post-processed cURL data and break it down into useful header/body/info chunks. Uses the - * data stored in the `curl_handle` and `response` properties unless replacement data is passed in via - * parameters. - * - * @param resource $curl_handle (Optional) The reference to the already executed cURL request. - * @param string $response (Optional) The actual response content itself that needs to be parsed. - * @return ResponseCore A object containing a parsed HTTP response. - */ - public function process_response($curl_handle = null, $response = null) - { - // Accept a custom one if it's passed. - if ($curl_handle && $response) { - $this->response = $response; - } - - // As long as this came back as a valid resource... - if (is_resource($curl_handle)) { - // Determine what's what. - $header_size = curl_getinfo($curl_handle, CURLINFO_HEADER_SIZE); - $this->response_headers = substr($this->response, 0, $header_size); - $this->response_body = substr($this->response, $header_size); - $this->response_code = curl_getinfo($curl_handle, CURLINFO_HTTP_CODE); - $this->response_info = curl_getinfo($curl_handle); - - if (intval($this->response_code) / 100 != 2 && isset($this->write_file)) - { - $this->response_headers = $this->response_raw_headers; - $this->response_body = $this->response_error_body; - } - - // Parse out the headers - $this->response_headers = explode("\r\n\r\n", trim($this->response_headers)); - $this->response_headers = array_pop($this->response_headers); - $this->response_headers = explode("\r\n", $this->response_headers); - array_shift($this->response_headers); - - // Loop through and split up the headers. - $header_assoc = array(); - foreach ($this->response_headers as $header) { - $kv = explode(': ', $header); - $header_assoc[strtolower($kv[0])] = isset($kv[1]) ? $kv[1] : ''; - } - - // Reset the headers to the appropriate property. - $this->response_headers = $header_assoc; - $this->response_headers['info'] = $this->response_info; - $this->response_headers['info']['method'] = $this->method; - - if ($curl_handle && $response) { - return new ResponseCore($this->response_headers, $this->response_body, $this->response_code); - } - } - - // Return false - return false; - } - - /** - * Sends the request, calling necessary utility functions to update built-in properties. - * - * @param boolean $parse (Optional) Whether to parse the response with ResponseCore or not. - * @return string The resulting unparsed data from the request. - */ - public function send_request($parse = false) - { - set_time_limit(0); - - $curl_handle = $this->prep_request(); - $this->response = curl_exec($curl_handle); - - if ($this->response === false) { - throw new RequestCore_Exception('cURL resource: ' . (string)$curl_handle . '; cURL error: ' . curl_error($curl_handle) . ' (' . curl_errno($curl_handle) . ')'); - } - - $parsed_response = $this->process_response($curl_handle, $this->response); - - curl_close($curl_handle); - - if ($parse) { - return $parsed_response; - } - - return $this->response; - } - - /*%******************************************************************************************%*/ - // RESPONSE METHODS - - /** - * Get the HTTP response headers from the request. - * - * @param string $header (Optional) A specific header value to return. Defaults to all headers. - * @return string|array All or selected header values. - */ - public function get_response_header($header = null) - { - if ($header) { - return $this->response_headers[strtolower($header)]; - } - return $this->response_headers; - } - - /** - * Get the HTTP response body from the request. - * - * @return string The response body. - */ - public function get_response_body() - { - return $this->response_body; - } - - /** - * Get the HTTP response code from the request. - * - * @return string The HTTP response code. - */ - public function get_response_code() - { - return $this->response_code; - } -} diff --git a/vendor/aliyuncs/oss-sdk-php/src/OSS/Http/RequestCore_Exception.php b/vendor/aliyuncs/oss-sdk-php/src/OSS/Http/RequestCore_Exception.php deleted file mode 100644 index cb4e83c65..000000000 --- a/vendor/aliyuncs/oss-sdk-php/src/OSS/Http/RequestCore_Exception.php +++ /dev/null @@ -1,8 +0,0 @@ -). - * @param string $body (Required) XML-formatted response from AWS. - * @param integer $status (Optional) HTTP response status code from the request. - * @return Mixed Contains an `header` property (HTTP headers as an associative array), a or `body` property, and an `status` code. - */ - public function __construct($header, $body, $status = null) - { - $this->header = $header; - $this->body = $body; - $this->status = $status; - - return $this; - } - - /** - * Did we receive the status code we expected? - * - * @param integer|array $codes (Optional) The status code(s) to expect. Pass an for a single acceptable value, or an of integers for multiple acceptable values. - * @return boolean Whether we received the expected status code or not. - */ - public function isOK($codes = array(200, 201, 204, 206)) - { - if (is_array($codes)) { - return in_array($this->status, $codes); - } - - return $this->status === $codes; - } -} \ No newline at end of file diff --git a/vendor/aliyuncs/oss-sdk-php/src/OSS/Model/BucketInfo.php b/vendor/aliyuncs/oss-sdk-php/src/OSS/Model/BucketInfo.php deleted file mode 100644 index 9b89674f9..000000000 --- a/vendor/aliyuncs/oss-sdk-php/src/OSS/Model/BucketInfo.php +++ /dev/null @@ -1,78 +0,0 @@ -location = $location; - $this->name = $name; - $this->createDate = $createDate; - } - - /** - * 得到bucket所在的region - * - * @return string - */ - public function getLocation() - { - return $this->location; - } - - /** - * 得到bucket的名称 - * - * @return string - */ - public function getName() - { - return $this->name; - } - - /** - * 得到bucket的创建时间 - * - * @return string - */ - public function getCreateDate() - { - return $this->createDate; - } - - /** - * bucket所在的region - * - * @var string - */ - private $location; - /** - * bucket的名称 - * - * @var string - */ - private $name; - - /** - * bucket的创建事件 - * - * @var string - */ - private $createDate; - -} \ No newline at end of file diff --git a/vendor/aliyuncs/oss-sdk-php/src/OSS/Model/BucketListInfo.php b/vendor/aliyuncs/oss-sdk-php/src/OSS/Model/BucketListInfo.php deleted file mode 100644 index 910717f92..000000000 --- a/vendor/aliyuncs/oss-sdk-php/src/OSS/Model/BucketListInfo.php +++ /dev/null @@ -1,39 +0,0 @@ -bucketList = $bucketList; - } - - /** - * 得到BucketInfo列表 - * - * @return BucketInfo[] - */ - public function getBucketList() - { - return $this->bucketList; - } - - /** - * BucketInfo信息列表 - * - * @var array - */ - private $bucketList = array(); -} \ No newline at end of file diff --git a/vendor/aliyuncs/oss-sdk-php/src/OSS/Model/CnameConfig.php b/vendor/aliyuncs/oss-sdk-php/src/OSS/Model/CnameConfig.php deleted file mode 100644 index f3597d2f0..000000000 --- a/vendor/aliyuncs/oss-sdk-php/src/OSS/Model/CnameConfig.php +++ /dev/null @@ -1,99 +0,0 @@ -cnameList = array(); - } - - /** - * @return array - * @example - * array(2) { - * [0]=> - * array(3) { - * ["Domain"]=> - * string(11) "www.foo.com" - * ["Status"]=> - * string(7) "enabled" - * ["LastModified"]=> - * string(8) "20150101" - * } - * [1]=> - * array(3) { - * ["Domain"]=> - * string(7) "bar.com" - * ["Status"]=> - * string(8) "disabled" - * ["LastModified"]=> - * string(8) "20160101" - * } - * } - */ - public function getCnames() - { - return $this->cnameList; - } - - - public function addCname($cname) - { - if (count($this->cnameList) >= self::OSS_MAX_RULES) { - throw new OssException( - "num of cname in the config exceeds self::OSS_MAX_RULES: " . strval(self::OSS_MAX_RULES)); - } - $this->cnameList[] = array('Domain' => $cname); - } - - public function parseFromXml($strXml) - { - $xml = simplexml_load_string($strXml); - if (!isset($xml->Cname)) return; - foreach ($xml->Cname as $entry) { - $cname = array(); - foreach ($entry as $key => $value) { - $cname[strval($key)] = strval($value); - } - $this->cnameList[] = $cname; - } - } - - public function serializeToXml() - { - $strXml = << - - -EOF; - $xml = new \SimpleXMLElement($strXml); - foreach ($this->cnameList as $cname) { - $node = $xml->addChild('Cname'); - foreach ($cname as $key => $value) { - $node->addChild($key, $value); - } - } - return $xml->asXML(); - } - - public function __toString() - { - return $this->serializeToXml(); - } - - const OSS_MAX_RULES = 10; - - private $cnameList = array(); -} \ No newline at end of file diff --git a/vendor/aliyuncs/oss-sdk-php/src/OSS/Model/CorsConfig.php b/vendor/aliyuncs/oss-sdk-php/src/OSS/Model/CorsConfig.php deleted file mode 100644 index c44c10a1a..000000000 --- a/vendor/aliyuncs/oss-sdk-php/src/OSS/Model/CorsConfig.php +++ /dev/null @@ -1,113 +0,0 @@ -rules = array(); - } - - /** - * 得到CorsRule列表 - * - * @return CorsRule[] - */ - public function getRules() - { - return $this->rules; - } - - - /** - * 添加一条CorsRule - * - * @param CorsRule $rule - * @throws OssException - */ - public function addRule($rule) - { - if (count($this->rules) >= self::OSS_MAX_RULES) { - throw new OssException("num of rules in the config exceeds self::OSS_MAX_RULES: " . strval(self::OSS_MAX_RULES)); - } - $this->rules[] = $rule; - } - - /** - * 从xml数据中解析出CorsConfig - * - * @param string $strXml - * @throws OssException - * @return null - */ - public function parseFromXml($strXml) - { - $xml = simplexml_load_string($strXml); - if (!isset($xml->CORSRule)) return; - foreach ($xml->CORSRule as $rule) { - $corsRule = new CorsRule(); - foreach ($rule as $key => $value) { - if ($key === self::OSS_CORS_ALLOWED_HEADER) { - $corsRule->addAllowedHeader(strval($value)); - } elseif ($key === self::OSS_CORS_ALLOWED_METHOD) { - $corsRule->addAllowedMethod(strval($value)); - } elseif ($key === self::OSS_CORS_ALLOWED_ORIGIN) { - $corsRule->addAllowedOrigin(strval($value)); - } elseif ($key === self::OSS_CORS_EXPOSE_HEADER) { - $corsRule->addExposeHeader(strval($value)); - } elseif ($key === self::OSS_CORS_MAX_AGE_SECONDS) { - $corsRule->setMaxAgeSeconds(strval($value)); - } - } - $this->addRule($corsRule); - } - return; - } - - /** - * 生成xml字符串 - * - * @return string - */ - public function serializeToXml() - { - $xml = new \SimpleXMLElement(''); - foreach ($this->rules as $rule) { - $xmlRule = $xml->addChild('CORSRule'); - $rule->appendToXml($xmlRule); - } - return $xml->asXML(); - } - - public function __toString() - { - return $this->serializeToXml(); - } - - const OSS_CORS_ALLOWED_ORIGIN = 'AllowedOrigin'; - const OSS_CORS_ALLOWED_METHOD = 'AllowedMethod'; - const OSS_CORS_ALLOWED_HEADER = 'AllowedHeader'; - const OSS_CORS_EXPOSE_HEADER = 'ExposeHeader'; - const OSS_CORS_MAX_AGE_SECONDS = 'MaxAgeSeconds'; - const OSS_MAX_RULES = 10; - - /** - * orsRule列表 - * - * @var CorsRule[] - */ - private $rules = array(); -} \ No newline at end of file diff --git a/vendor/aliyuncs/oss-sdk-php/src/OSS/Model/CorsRule.php b/vendor/aliyuncs/oss-sdk-php/src/OSS/Model/CorsRule.php deleted file mode 100644 index 2cbe1c17b..000000000 --- a/vendor/aliyuncs/oss-sdk-php/src/OSS/Model/CorsRule.php +++ /dev/null @@ -1,150 +0,0 @@ -allowedOrigins[] = $allowedOrigin; - } - } - - /** - * Rule中增加一条allowedMethod - * - * @param string $allowedMethod - */ - public function addAllowedMethod($allowedMethod) - { - if (!empty($allowedMethod)) { - $this->allowedMethods[] = $allowedMethod; - } - } - - /** - * Rule中增加一条allowedHeader - * - * @param string $allowedHeader - */ - public function addAllowedHeader($allowedHeader) - { - if (!empty($allowedHeader)) { - $this->allowedHeaders[] = $allowedHeader; - } - } - - /** - * Rule中增加一条exposeHeader - * - * @param string $exposeHeader - */ - public function addExposeHeader($exposeHeader) - { - if (!empty($exposeHeader)) { - $this->exposeHeaders[] = $exposeHeader; - } - } - - /** - * @return int - */ - public function getMaxAgeSeconds() - { - return $this->maxAgeSeconds; - } - - /** - * @param int $maxAgeSeconds - */ - public function setMaxAgeSeconds($maxAgeSeconds) - { - $this->maxAgeSeconds = $maxAgeSeconds; - } - - /** - * 得到AllowedHeaders列表 - * - * @return string[] - */ - public function getAllowedHeaders() - { - return $this->allowedHeaders; - } - - /** - * 得到AllowedOrigins列表 - * - * @return string[] - */ - public function getAllowedOrigins() - { - return $this->allowedOrigins; - } - - /** - * 得到AllowedMethods列表 - * - * @return string[] - */ - public function getAllowedMethods() - { - return $this->allowedMethods; - } - - /** - * 得到ExposeHeaders列表 - * - * @return string[] - */ - public function getExposeHeaders() - { - return $this->exposeHeaders; - } - - /** - * 根据提供的xmlRule, 把this按照一定的规则插入到$xmlRule中 - * - * @param \SimpleXMLElement $xmlRule - * @throws OssException - */ - public function appendToXml(&$xmlRule) - { - if (!isset($this->maxAgeSeconds)) { - throw new OssException("maxAgeSeconds is not set in the Rule"); - } - foreach ($this->allowedOrigins as $allowedOrigin) { - $xmlRule->addChild(CorsConfig::OSS_CORS_ALLOWED_ORIGIN, $allowedOrigin); - } - foreach ($this->allowedMethods as $allowedMethod) { - $xmlRule->addChild(CorsConfig::OSS_CORS_ALLOWED_METHOD, $allowedMethod); - } - foreach ($this->allowedHeaders as $allowedHeader) { - $xmlRule->addChild(CorsConfig::OSS_CORS_ALLOWED_HEADER, $allowedHeader); - } - foreach ($this->exposeHeaders as $exposeHeader) { - $xmlRule->addChild(CorsConfig::OSS_CORS_EXPOSE_HEADER, $exposeHeader); - } - $xmlRule->addChild(CorsConfig::OSS_CORS_MAX_AGE_SECONDS, strval($this->maxAgeSeconds)); - } - - private $allowedHeaders = array(); - private $allowedOrigins = array(); - private $allowedMethods = array(); - private $exposeHeaders = array(); - private $maxAgeSeconds = null; -} \ No newline at end of file diff --git a/vendor/aliyuncs/oss-sdk-php/src/OSS/Model/GetLiveChannelHistory.php b/vendor/aliyuncs/oss-sdk-php/src/OSS/Model/GetLiveChannelHistory.php deleted file mode 100644 index 6643444aa..000000000 --- a/vendor/aliyuncs/oss-sdk-php/src/OSS/Model/GetLiveChannelHistory.php +++ /dev/null @@ -1,34 +0,0 @@ -liveRecordList; - } - - public function parseFromXml($strXml) - { - $xml = simplexml_load_string($strXml); - - if (isset($xml->LiveRecord)) { - foreach ($xml->LiveRecord as $record) { - $liveRecord = new LiveChannelHistory(); - $liveRecord->parseFromXmlNode($record); - $this->liveRecordList[] = $liveRecord; - } - } - } - - public function serializeToXml() - { - throw new OssException("Not implemented."); - } - - private $liveRecordList = array(); -} diff --git a/vendor/aliyuncs/oss-sdk-php/src/OSS/Model/GetLiveChannelInfo.php b/vendor/aliyuncs/oss-sdk-php/src/OSS/Model/GetLiveChannelInfo.php deleted file mode 100644 index 0b5edfc4d..000000000 --- a/vendor/aliyuncs/oss-sdk-php/src/OSS/Model/GetLiveChannelInfo.php +++ /dev/null @@ -1,68 +0,0 @@ -description; - } - - public function getStatus() - { - return $this->status; - } - - public function getType() - { - return $this->type; - } - - public function getFragDuration() - { - return $this->fragDuration; - } - - public function getFragCount() - { - return $this->fragCount; - } - - public function getPlayListName() - { - return $this->playlistName; - } - - public function parseFromXml($strXml) - { - $xml = simplexml_load_string($strXml); - - $this->description = strval($xml->Description); - $this->status = strval($xml->Status); - - if (isset($xml->Target)) { - foreach ($xml->Target as $target) { - $this->type = strval($target->Type); - $this->fragDuration = strval($target->FragDuration); - $this->fragCount = strval($target->FragCount); - $this->playlistName = strval($target->PlaylistName); - } - } - } - - public function serializeToXml() - { - throw new OssException("Not implemented."); - } - - private $description; - private $status; - private $type; - private $fragDuration; - private $fragCount; - private $playlistName; -} diff --git a/vendor/aliyuncs/oss-sdk-php/src/OSS/Model/GetLiveChannelStatus.php b/vendor/aliyuncs/oss-sdk-php/src/OSS/Model/GetLiveChannelStatus.php deleted file mode 100644 index 2ee7a68b2..000000000 --- a/vendor/aliyuncs/oss-sdk-php/src/OSS/Model/GetLiveChannelStatus.php +++ /dev/null @@ -1,107 +0,0 @@ -status; - } - - public function getConnectedTime() - { - return $this->connectedTime; - } - - public function getRemoteAddr() - { - return $this->remoteAddr; - } - - public function getVideoWidth() - { - return $this->videoWidth; - } - public function getVideoHeight() - { - return $this->videoHeight; - } - public function getVideoFrameRate() - { - return $this->videoFrameRate; - } - public function getVideoBandwidth() - { - return $this->videoBandwidth; - } - public function getVideoCodec() - { - return $this->videoCodec; - } - - public function getAudioBandwidth() - { - return $this->audioBandwidth; - } - public function getAudioSampleRate() - { - return $this->audioSampleRate; - } - public function getAudioCodec() - { - return $this->audioCodec; - } - - - public function parseFromXml($strXml) - { - $xml = simplexml_load_string($strXml); - $this->status = strval($xml->Status); - $this->connectedTime = strval($xml->ConnectedTime); - $this->remoteAddr = strval($xml->RemoteAddr); - - if (isset($xml->Video)) { - foreach ($xml->Video as $video) { - $this->videoWidth = intval($video->Width); - $this->videoHeight = intval($video->Height); - $this->videoFrameRate = intval($video->FrameRate); - $this->videoBandwidth = intval($video->Bandwidth); - $this->videoCodec = strval($video->Codec); - } - } - - if (isset($xml->Video)) { - foreach ($xml->Audio as $audio) { - $this->audioBandwidth = intval($audio->Bandwidth); - $this->audioSampleRate = intval($audio->SampleRate); - $this->audioCodec = strval($audio->Codec); - } - } - - } - - public function serializeToXml() - { - throw new OssException("Not implemented."); - } - - private $status; - private $connectedTime; - private $remoteAddr; - - private $videoWidth; - private $videoHeight; - private $videoFrameRate; - private $videoBandwidth; - private $videoCodec; - - private $audioBandwidth; - private $audioSampleRate; - private $audioCodec; - - -} diff --git a/vendor/aliyuncs/oss-sdk-php/src/OSS/Model/LifecycleAction.php b/vendor/aliyuncs/oss-sdk-php/src/OSS/Model/LifecycleAction.php deleted file mode 100644 index 5abd825d0..000000000 --- a/vendor/aliyuncs/oss-sdk-php/src/OSS/Model/LifecycleAction.php +++ /dev/null @@ -1,88 +0,0 @@ -action = $action; - $this->timeSpec = $timeSpec; - $this->timeValue = $timeValue; - } - - /** - * @return LifecycleAction - */ - public function getAction() - { - return $this->action; - } - - /** - * @param string $action - */ - public function setAction($action) - { - $this->action = $action; - } - - /** - * @return string - */ - public function getTimeSpec() - { - return $this->timeSpec; - } - - /** - * @param string $timeSpec - */ - public function setTimeSpec($timeSpec) - { - $this->timeSpec = $timeSpec; - } - - /** - * @return string - */ - public function getTimeValue() - { - return $this->timeValue; - } - - /** - * @param string $timeValue - */ - public function setTimeValue($timeValue) - { - $this->timeValue = $timeValue; - } - - /** - * appendToXml 把actions插入到xml中 - * - * @param \SimpleXMLElement $xmlRule - */ - public function appendToXml(&$xmlRule) - { - $xmlAction = $xmlRule->addChild($this->action); - $xmlAction->addChild($this->timeSpec, $this->timeValue); - } - - private $action; - private $timeSpec; - private $timeValue; - -} \ No newline at end of file diff --git a/vendor/aliyuncs/oss-sdk-php/src/OSS/Model/LifecycleConfig.php b/vendor/aliyuncs/oss-sdk-php/src/OSS/Model/LifecycleConfig.php deleted file mode 100644 index fc4f5755a..000000000 --- a/vendor/aliyuncs/oss-sdk-php/src/OSS/Model/LifecycleConfig.php +++ /dev/null @@ -1,107 +0,0 @@ -rules = array(); - $xml = simplexml_load_string($strXml); - if (!isset($xml->Rule)) return; - $this->rules = array(); - foreach ($xml->Rule as $rule) { - $id = strval($rule->ID); - $prefix = strval($rule->Prefix); - $status = strval($rule->Status); - $actions = array(); - foreach ($rule as $key => $value) { - if ($key === 'ID' || $key === 'Prefix' || $key === 'Status') continue; - $action = $key; - $timeSpec = null; - $timeValue = null; - foreach ($value as $timeSpecKey => $timeValueValue) { - $timeSpec = $timeSpecKey; - $timeValue = strval($timeValueValue); - } - $actions[] = new LifecycleAction($action, $timeSpec, $timeValue); - } - $this->rules[] = new LifecycleRule($id, $prefix, $status, $actions); - } - return; - } - - - /** - * 生成xml字符串 - * - * @return string - */ - public function serializeToXml() - { - - $xml = new \SimpleXMLElement(''); - foreach ($this->rules as $rule) { - $xmlRule = $xml->addChild('Rule'); - $rule->appendToXml($xmlRule); - } - return $xml->asXML(); - } - - /** - * - * 添加LifecycleRule - * - * @param LifecycleRule $lifecycleRule - * @throws OssException - */ - public function addRule($lifecycleRule) - { - if (!isset($lifecycleRule)) { - throw new OssException("lifecycleRule is null"); - } - $this->rules[] = $lifecycleRule; - } - - /** - * 将配置转换成字符串,便于用户查看 - * - * @return string - */ - public function __toString() - { - return $this->serializeToXml(); - } - - /** - * 得到所有的生命周期规则 - * - * @return LifecycleRule[] - */ - public function getRules() - { - return $this->rules; - } - - /** - * @var LifecycleRule[] - */ - private $rules; -} - - diff --git a/vendor/aliyuncs/oss-sdk-php/src/OSS/Model/LifecycleRule.php b/vendor/aliyuncs/oss-sdk-php/src/OSS/Model/LifecycleRule.php deleted file mode 100644 index ec615b9af..000000000 --- a/vendor/aliyuncs/oss-sdk-php/src/OSS/Model/LifecycleRule.php +++ /dev/null @@ -1,126 +0,0 @@ -id; - } - - /** - * @param string $id 规则ID - */ - public function setId($id) - { - $this->id = $id; - } - - /** - * 得到文件前缀 - * - * @return string - */ - public function getPrefix() - { - return $this->prefix; - } - - /** - * 设置文件前缀 - * - * @param string $prefix 文件前缀 - */ - public function setPrefix($prefix) - { - $this->prefix = $prefix; - } - - /** - * Lifecycle规则的状态 - * - * @return string - */ - public function getStatus() - { - return $this->status; - } - - /** - * 设置Lifecycle规则状态 - * - * @param string $status - */ - public function setStatus($status) - { - $this->status = $status; - } - - /** - * - * @return LifecycleAction[] - */ - public function getActions() - { - return $this->actions; - } - - /** - * @param LifecycleAction[] $actions - */ - public function setActions($actions) - { - $this->actions = $actions; - } - - - /** - * LifecycleRule constructor. - * - * @param string $id 规则ID - * @param string $prefix 文件前缀 - * @param string $status 规则状态,可选[self::LIFECYCLE_STATUS_ENABLED, self::LIFECYCLE_STATUS_DISABLED] - * @param LifecycleAction[] $actions - */ - public function __construct($id, $prefix, $status, $actions) - { - $this->id = $id; - $this->prefix = $prefix; - $this->status = $status; - $this->actions = $actions; - } - - /** - * @param \SimpleXMLElement $xmlRule - */ - public function appendToXml(&$xmlRule) - { - $xmlRule->addChild('ID', $this->id); - $xmlRule->addChild('Prefix', $this->prefix); - $xmlRule->addChild('Status', $this->status); - foreach ($this->actions as $action) { - $action->appendToXml($xmlRule); - } - } - - private $id; - private $prefix; - private $status; - private $actions = array(); - - const LIFECYCLE_STATUS_ENABLED = 'Enabled'; - const LIFECYCLE_STATUS_DISABLED = 'Disabled'; -} \ No newline at end of file diff --git a/vendor/aliyuncs/oss-sdk-php/src/OSS/Model/ListMultipartUploadInfo.php b/vendor/aliyuncs/oss-sdk-php/src/OSS/Model/ListMultipartUploadInfo.php deleted file mode 100644 index 105d005b2..000000000 --- a/vendor/aliyuncs/oss-sdk-php/src/OSS/Model/ListMultipartUploadInfo.php +++ /dev/null @@ -1,134 +0,0 @@ -bucket = $bucket; - $this->keyMarker = $keyMarker; - $this->uploadIdMarker = $uploadIdMarker; - $this->nextKeyMarker = $nextKeyMarker; - $this->nextUploadIdMarker = $nextUploadIdMarker; - $this->delimiter = $delimiter; - $this->prefix = $prefix; - $this->maxUploads = $maxUploads; - $this->isTruncated = $isTruncated; - $this->uploads = $uploads; - } - - /** - * 得到bucket名称 - * - * @return string - */ - public function getBucket() - { - return $this->bucket; - } - - /** - * @return string - */ - public function getKeyMarker() - { - return $this->keyMarker; - } - - /** - * - * @return string - */ - public function getUploadIdMarker() - { - return $this->uploadIdMarker; - } - - /** - * @return string - */ - public function getNextKeyMarker() - { - return $this->nextKeyMarker; - } - - /** - * @return string - */ - public function getNextUploadIdMarker() - { - return $this->nextUploadIdMarker; - } - - /** - * @return string - */ - public function getDelimiter() - { - return $this->delimiter; - } - - /** - * @return string - */ - public function getPrefix() - { - return $this->prefix; - } - - /** - * @return int - */ - public function getMaxUploads() - { - return $this->maxUploads; - } - - /** - * @return string - */ - public function getIsTruncated() - { - return $this->isTruncated; - } - - /** - * @return UploadInfo[] - */ - public function getUploads() - { - return $this->uploads; - } - - private $bucket = ""; - private $keyMarker = ""; - private $uploadIdMarker = ""; - private $nextKeyMarker = ""; - private $nextUploadIdMarker = ""; - private $delimiter = ""; - private $prefix = ""; - private $maxUploads = 0; - private $isTruncated = "false"; - private $uploads = array(); -} \ No newline at end of file diff --git a/vendor/aliyuncs/oss-sdk-php/src/OSS/Model/ListPartsInfo.php b/vendor/aliyuncs/oss-sdk-php/src/OSS/Model/ListPartsInfo.php deleted file mode 100644 index f1d10ee9e..000000000 --- a/vendor/aliyuncs/oss-sdk-php/src/OSS/Model/ListPartsInfo.php +++ /dev/null @@ -1,97 +0,0 @@ -bucket = $bucket; - $this->key = $key; - $this->uploadId = $uploadId; - $this->nextPartNumberMarker = $nextPartNumberMarker; - $this->maxParts = $maxParts; - $this->isTruncated = $isTruncated; - $this->listPart = $listPart; - } - - /** - * @return string - */ - public function getBucket() - { - return $this->bucket; - } - - /** - * @return string - */ - public function getKey() - { - return $this->key; - } - - /** - * @return string - */ - public function getUploadId() - { - return $this->uploadId; - } - - /** - * @return int - */ - public function getNextPartNumberMarker() - { - return $this->nextPartNumberMarker; - } - - /** - * @return int - */ - public function getMaxParts() - { - return $this->maxParts; - } - - /** - * @return string - */ - public function getIsTruncated() - { - return $this->isTruncated; - } - - /** - * @return array - */ - public function getListPart() - { - return $this->listPart; - } - - private $bucket = ""; - private $key = ""; - private $uploadId = ""; - private $nextPartNumberMarker = 0; - private $maxParts = 0; - private $isTruncated = ""; - private $listPart = array(); -} \ No newline at end of file diff --git a/vendor/aliyuncs/oss-sdk-php/src/OSS/Model/LiveChannelConfig.php b/vendor/aliyuncs/oss-sdk-php/src/OSS/Model/LiveChannelConfig.php deleted file mode 100644 index dadedc911..000000000 --- a/vendor/aliyuncs/oss-sdk-php/src/OSS/Model/LiveChannelConfig.php +++ /dev/null @@ -1,121 +0,0 @@ -description = $option['description']; - } - if (isset($option['status'])) { - $this->status = $option['status']; - } - if (isset($option['type'])) { - $this->type = $option['type']; - } - if (isset($option['fragDuration'])) { - $this->fragDuration = $option['fragDuration']; - } - if (isset($option['fragCount'])) { - $this->fragCount = $option['fragCount']; - } - if (isset($option['playListName'])) { - $this->playListName = $option['playListName']; - } - } - - public function getDescription() - { - return $this->description; - } - - public function getStatus() - { - return $this->status; - } - - public function getType() - { - return $this->type; - } - - public function getFragDuration() - { - return $this->fragDuration; - } - - public function getFragCount() - { - return $this->fragCount; - } - - public function getPlayListName() - { - return $this->playListName; - } - - public function parseFromXml($strXml) - { - $xml = simplexml_load_string($strXml); - $this->description = strval($xml->Description); - $this->status = strval($xml->Status); - $target = $xml->Target; - $this->type = strval($target->Type); - $this->fragDuration = intval($target->FragDuration); - $this->fragCount = intval($target->FragCount); - $this->playListName = strval($target->PlayListName); - } - - public function serializeToXml() - { - $strXml = << - - -EOF; - $xml = new \SimpleXMLElement($strXml); - if (isset($this->description)) { - $xml->addChild('Description', $this->description); - } - - if (isset($this->status)) { - $xml->addChild('Status', $this->status); - } - - $node = $xml->addChild('Target'); - $node->addChild('Type', $this->type); - - if (isset($this->fragDuration)) { - $node->addChild('FragDuration', $this->fragDuration); - } - - if (isset($this->fragCount)) { - $node->addChild('FragCount', $this->fragCount); - } - - if (isset($this->playListName)) { - $node->addChild('PlayListName', $this->playListName); - } - - return $xml->asXML(); - } - - public function __toString() - { - return $this->serializeToXml(); - } - - private $description; - private $status = "enabled"; - private $type; - private $fragDuration = 5; - private $fragCount = 3; - private $playListName = "playlist.m3u8"; -} diff --git a/vendor/aliyuncs/oss-sdk-php/src/OSS/Model/LiveChannelHistory.php b/vendor/aliyuncs/oss-sdk-php/src/OSS/Model/LiveChannelHistory.php deleted file mode 100644 index 1c1fd4dbc..000000000 --- a/vendor/aliyuncs/oss-sdk-php/src/OSS/Model/LiveChannelHistory.php +++ /dev/null @@ -1,59 +0,0 @@ -startTime; - } - - public function getEndTime() - { - return $this->endTime; - } - - public function getRemoteAddr() - { - return $this->remoteAddr; - } - - public function parseFromXmlNode($xml) - { - if (isset($xml->StartTime)) { - $this->startTime = strval($xml->StartTime); - } - - if (isset($xml->EndTime)) { - $this->endTime = strval($xml->EndTime); - } - - if (isset($xml->RemoteAddr)) { - $this->remoteAddr = strval($xml->RemoteAddr); - } - } - - public function parseFromXml($strXml) - { - $xml = simplexml_load_string($strXml); - $this->parseFromXmlNode($xml); - } - - public function serializeToXml() - { - throw new OssException("Not implemented."); - } - - private $startTime; - private $endTime; - private $remoteAddr; -} diff --git a/vendor/aliyuncs/oss-sdk-php/src/OSS/Model/LiveChannelInfo.php b/vendor/aliyuncs/oss-sdk-php/src/OSS/Model/LiveChannelInfo.php deleted file mode 100644 index c63ec54d6..000000000 --- a/vendor/aliyuncs/oss-sdk-php/src/OSS/Model/LiveChannelInfo.php +++ /dev/null @@ -1,107 +0,0 @@ -name = $name; - $this->description = $description; - $this->publishUrls = array(); - $this->playUrls = array(); - } - - public function getName() - { - return $this->name; - } - - public function setName($name) - { - $this->name = $name; - } - - public function getPublishUrls() - { - return $this->publishUrls; - } - - public function getPlayUrls() - { - return $this->playUrls; - } - - public function getStatus() - { - return $this->status; - } - - public function getLastModified() - { - return $this->lastModified; - } - - public function getDescription() - { - return $this->description; - } - - public function setDescription($description) - { - $this->description = $description; - } - - public function parseFromXmlNode($xml) - { - if (isset($xml->Name)) { - $this->name = strval($xml->Name); - } - - if (isset($xml->Description)) { - $this->description = strval($xml->Description); - } - - if (isset($xml->Status)) { - $this->status = strval($xml->Status); - } - - if (isset($xml->LastModified)) { - $this->lastModified = strval($xml->LastModified); - } - - if (isset($xml->PublishUrls)) { - foreach ($xml->PublishUrls as $url) { - $this->publishUrls[] = strval($url->Url); - } - } - - if (isset($xml->PlayUrls)) { - foreach ($xml->PlayUrls as $url) { - $this->playUrls[] = strval($url->Url); - } - } - } - - public function parseFromXml($strXml) - { - $xml = simplexml_load_string($strXml); - $this->parseFromXmlNode($xml); - } - - public function serializeToXml() - { - throw new OssException("Not implemented."); - } - - private $name; - private $description; - private $publishUrls; - private $playUrls; - private $status; - private $lastModified; -} diff --git a/vendor/aliyuncs/oss-sdk-php/src/OSS/Model/LiveChannelListInfo.php b/vendor/aliyuncs/oss-sdk-php/src/OSS/Model/LiveChannelListInfo.php deleted file mode 100644 index bb5093aa8..000000000 --- a/vendor/aliyuncs/oss-sdk-php/src/OSS/Model/LiveChannelListInfo.php +++ /dev/null @@ -1,107 +0,0 @@ -bucket; - } - - public function setBucketName($name) - { - $this->bucket = $name; - } - - /** - * @return string - */ - public function getPrefix() - { - return $this->prefix; - } - - /** - * @return string - */ - public function getMarker() - { - return $this->marker; - } - - /** - * @return int - */ - public function getMaxKeys() - { - return $this->maxKeys; - } - - /** - * @return mixed - */ - public function getIsTruncated() - { - return $this->isTruncated; - } - - /** - * @return LiveChannelInfo[] - */ - public function getChannelList() - { - return $this->channelList; - } - - /** - * @return string - */ - public function getNextMarker() - { - return $this->nextMarker; - } - - public function parseFromXml($strXml) - { - $xml = simplexml_load_string($strXml); - - $this->prefix = strval($xml->Prefix); - $this->marker = strval($xml->Marker); - $this->maxKeys = intval($xml->MaxKeys); - $this->isTruncated = (strval($xml->IsTruncated) == 'true'); - $this->nextMarker = strval($xml->NextMarker); - - if (isset($xml->LiveChannel)) { - foreach ($xml->LiveChannel as $chan) { - $channel = new LiveChannelInfo(); - $channel->parseFromXmlNode($chan); - $this->channelList[] = $channel; - } - } - } - - public function serializeToXml() - { - throw new OssException("Not implemented."); - } - - private $bucket = ''; - private $prefix = ''; - private $marker = ''; - private $nextMarker = ''; - private $maxKeys = 100; - private $isTruncated = 'false'; - private $channelList = array(); -} diff --git a/vendor/aliyuncs/oss-sdk-php/src/OSS/Model/LoggingConfig.php b/vendor/aliyuncs/oss-sdk-php/src/OSS/Model/LoggingConfig.php deleted file mode 100644 index 978421a25..000000000 --- a/vendor/aliyuncs/oss-sdk-php/src/OSS/Model/LoggingConfig.php +++ /dev/null @@ -1,86 +0,0 @@ -targetBucket = $targetBucket; - $this->targetPrefix = $targetPrefix; - } - - /** - * @param $strXml - * @return null - */ - public function parseFromXml($strXml) - { - $xml = simplexml_load_string($strXml); - if (!isset($xml->LoggingEnabled)) return; - foreach ($xml->LoggingEnabled as $status) { - foreach ($status as $key => $value) { - if ($key === 'TargetBucket') { - $this->targetBucket = strval($value); - } elseif ($key === 'TargetPrefix') { - $this->targetPrefix = strval($value); - } - } - break; - } - } - - /** - * 序列化成xml字符串 - * - */ - public function serializeToXml() - { - $xml = new \SimpleXMLElement(''); - if (isset($this->targetBucket) && isset($this->targetPrefix)) { - $loggingEnabled = $xml->addChild('LoggingEnabled'); - $loggingEnabled->addChild('TargetBucket', $this->targetBucket); - $loggingEnabled->addChild('TargetPrefix', $this->targetPrefix); - } - return $xml->asXML(); - } - - /** - * @return string - */ - public function __toString() - { - return $this->serializeToXml(); - } - - /** - * @return string - */ - public function getTargetBucket() - { - return $this->targetBucket; - } - - /** - * @return string - */ - public function getTargetPrefix() - { - return $this->targetPrefix; - } - - private $targetBucket = ""; - private $targetPrefix = ""; - -} \ No newline at end of file diff --git a/vendor/aliyuncs/oss-sdk-php/src/OSS/Model/ObjectInfo.php b/vendor/aliyuncs/oss-sdk-php/src/OSS/Model/ObjectInfo.php deleted file mode 100644 index 2ae6c99bd..000000000 --- a/vendor/aliyuncs/oss-sdk-php/src/OSS/Model/ObjectInfo.php +++ /dev/null @@ -1,93 +0,0 @@ -key = $key; - $this->lastModified = $lastModified; - $this->eTag = $eTag; - $this->type = $type; - $this->size = $size; - $this->storageClass = $storageClass; - } - - /** - * @return string - */ - public function getKey() - { - return $this->key; - } - - /** - * @return string - */ - public function getLastModified() - { - return $this->lastModified; - } - - /** - * @return string - */ - public function getETag() - { - return $this->eTag; - } - - /** - * @return string - */ - public function getType() - { - return $this->type; - } - - /** - * @return int - */ - public function getSize() - { - return $this->size; - } - - /** - * @return string - */ - public function getStorageClass() - { - return $this->storageClass; - } - - private $key = ""; - private $lastModified = ""; - private $eTag = ""; - private $type = ""; - private $size = 0; - private $storageClass = ""; -} \ No newline at end of file diff --git a/vendor/aliyuncs/oss-sdk-php/src/OSS/Model/ObjectListInfo.php b/vendor/aliyuncs/oss-sdk-php/src/OSS/Model/ObjectListInfo.php deleted file mode 100644 index dbe7c7a76..000000000 --- a/vendor/aliyuncs/oss-sdk-php/src/OSS/Model/ObjectListInfo.php +++ /dev/null @@ -1,126 +0,0 @@ -bucketName = $bucketName; - $this->prefix = $prefix; - $this->marker = $marker; - $this->nextMarker = $nextMarker; - $this->maxKeys = $maxKeys; - $this->delimiter = $delimiter; - $this->isTruncated = $isTruncated; - $this->objectList = $objectList; - $this->prefixList = $prefixList; - } - - /** - * @return string - */ - public function getBucketName() - { - return $this->bucketName; - } - - /** - * @return string - */ - public function getPrefix() - { - return $this->prefix; - } - - /** - * @return string - */ - public function getMarker() - { - return $this->marker; - } - - /** - * @return int - */ - public function getMaxKeys() - { - return $this->maxKeys; - } - - /** - * @return string - */ - public function getDelimiter() - { - return $this->delimiter; - } - - /** - * @return mixed - */ - public function getIsTruncated() - { - return $this->isTruncated; - } - - /** - * 返回ListObjects接口返回数据中的ObjectInfo列表 - * - * @return ObjectInfo[] - */ - public function getObjectList() - { - return $this->objectList; - } - - /** - * 返回ListObjects接口返回数据中的PrefixInfo列表 - * - * @return PrefixInfo[] - */ - public function getPrefixList() - { - return $this->prefixList; - } - - /** - * @return string - */ - public function getNextMarker() - { - return $this->nextMarker; - } - - private $bucketName = ""; - private $prefix = ""; - private $marker = ""; - private $nextMarker = ""; - private $maxKeys = 0; - private $delimiter = ""; - private $isTruncated = null; - private $objectList = array(); - private $prefixList = array(); -} \ No newline at end of file diff --git a/vendor/aliyuncs/oss-sdk-php/src/OSS/Model/PartInfo.php b/vendor/aliyuncs/oss-sdk-php/src/OSS/Model/PartInfo.php deleted file mode 100644 index 439a84d31..000000000 --- a/vendor/aliyuncs/oss-sdk-php/src/OSS/Model/PartInfo.php +++ /dev/null @@ -1,63 +0,0 @@ -partNumber = $partNumber; - $this->lastModified = $lastModified; - $this->eTag = $eTag; - $this->size = $size; - } - - /** - * @return int - */ - public function getPartNumber() - { - return $this->partNumber; - } - - /** - * @return string - */ - public function getLastModified() - { - return $this->lastModified; - } - - /** - * @return string - */ - public function getETag() - { - return $this->eTag; - } - - /** - * @return int - */ - public function getSize() - { - return $this->size; - } - - private $partNumber = 0; - private $lastModified = ""; - private $eTag = ""; - private $size = 0; -} \ No newline at end of file diff --git a/vendor/aliyuncs/oss-sdk-php/src/OSS/Model/PrefixInfo.php b/vendor/aliyuncs/oss-sdk-php/src/OSS/Model/PrefixInfo.php deleted file mode 100644 index e61eac449..000000000 --- a/vendor/aliyuncs/oss-sdk-php/src/OSS/Model/PrefixInfo.php +++ /dev/null @@ -1,36 +0,0 @@ -prefix = $prefix; - } - - /** - * @return string - */ - public function getPrefix() - { - return $this->prefix; - } - - private $prefix; -} \ No newline at end of file diff --git a/vendor/aliyuncs/oss-sdk-php/src/OSS/Model/RefererConfig.php b/vendor/aliyuncs/oss-sdk-php/src/OSS/Model/RefererConfig.php deleted file mode 100644 index 1d7d975c5..000000000 --- a/vendor/aliyuncs/oss-sdk-php/src/OSS/Model/RefererConfig.php +++ /dev/null @@ -1,93 +0,0 @@ -AllowEmptyReferer)) return; - if (!isset($xml->RefererList)) return; - $this->allowEmptyReferer = - (strval($xml->AllowEmptyReferer) === 'TRUE' || strval($xml->AllowEmptyReferer) === 'true') ? true : false; - - foreach ($xml->RefererList->Referer as $key => $refer) { - $this->refererList[] = strval($refer); - } - } - - - /** - * 把RefererConfig序列化成xml - * - * @return string - */ - public function serializeToXml() - { - $xml = new \SimpleXMLElement(''); - if ($this->allowEmptyReferer) { - $xml->addChild('AllowEmptyReferer', 'true'); - } else { - $xml->addChild('AllowEmptyReferer', 'false'); - } - $refererList = $xml->addChild('RefererList'); - foreach ($this->refererList as $referer) { - $refererList->addChild('Referer', $referer); - } - return $xml->asXML(); - } - - /** - * @return string - */ - function __toString() - { - return $this->serializeToXml(); - } - - /** - * @param boolean $allowEmptyReferer - */ - public function setAllowEmptyReferer($allowEmptyReferer) - { - $this->allowEmptyReferer = $allowEmptyReferer; - } - - /** - * @param string $referer - */ - public function addReferer($referer) - { - $this->refererList[] = $referer; - } - - /** - * @return boolean - */ - public function isAllowEmptyReferer() - { - return $this->allowEmptyReferer; - } - - /** - * @return array - */ - public function getRefererList() - { - return $this->refererList; - } - - private $allowEmptyReferer = true; - private $refererList = array(); -} \ No newline at end of file diff --git a/vendor/aliyuncs/oss-sdk-php/src/OSS/Model/StorageCapacityConfig.php b/vendor/aliyuncs/oss-sdk-php/src/OSS/Model/StorageCapacityConfig.php deleted file mode 100644 index 05e6332c2..000000000 --- a/vendor/aliyuncs/oss-sdk-php/src/OSS/Model/StorageCapacityConfig.php +++ /dev/null @@ -1,74 +0,0 @@ -storageCapacity = $storageCapacity; - } - - /** - * Not implemented - */ - public function parseFromXml($strXml) - { - throw new OssException("Not implemented."); - } - - /** - * 把StorageCapacityConfig序列化成xml - * - * @return string - */ - public function serializeToXml() - { - $xml = new \SimpleXMLElement(''); - $xml->addChild('StorageCapacity', strval($this->storageCapacity)); - return $xml->asXML(); - } - - /** - * To string - * - * @return string - */ - function __toString() - { - return $this->serializeToXml(); - } - - /** - * Set storage capacity - * - * @param int $storageCapacity - */ - public function setStorageCapacity($storageCapacity) - { - $this->storageCapacity = $storageCapacity; - } - - /** - * Get storage capacity - * - * @return int - */ - public function getStorageCapacity() - { - return $this->storageCapacity; - } - - private $storageCapacity = 0; -} \ No newline at end of file diff --git a/vendor/aliyuncs/oss-sdk-php/src/OSS/Model/UploadInfo.php b/vendor/aliyuncs/oss-sdk-php/src/OSS/Model/UploadInfo.php deleted file mode 100644 index 8eaa3639f..000000000 --- a/vendor/aliyuncs/oss-sdk-php/src/OSS/Model/UploadInfo.php +++ /dev/null @@ -1,55 +0,0 @@ -key = $key; - $this->uploadId = $uploadId; - $this->initiated = $initiated; - } - - /** - * @return string - */ - public function getKey() - { - return $this->key; - } - - /** - * @return string - */ - public function getUploadId() - { - return $this->uploadId; - } - - /** - * @return string - */ - public function getInitiated() - { - return $this->initiated; - } - - private $key = ""; - private $uploadId = ""; - private $initiated = ""; -} \ No newline at end of file diff --git a/vendor/aliyuncs/oss-sdk-php/src/OSS/Model/WebsiteConfig.php b/vendor/aliyuncs/oss-sdk-php/src/OSS/Model/WebsiteConfig.php deleted file mode 100644 index 8ea08a030..000000000 --- a/vendor/aliyuncs/oss-sdk-php/src/OSS/Model/WebsiteConfig.php +++ /dev/null @@ -1,76 +0,0 @@ -indexDocument = $indexDocument; - $this->errorDocument = $errorDocument; - } - - /** - * @param string $strXml - * @return null - */ - public function parseFromXml($strXml) - { - $xml = simplexml_load_string($strXml); - if (isset($xml->IndexDocument) && isset($xml->IndexDocument->Suffix)) { - $this->indexDocument = strval($xml->IndexDocument->Suffix); - } - if (isset($xml->ErrorDocument) && isset($xml->ErrorDocument->Key)) { - $this->errorDocument = strval($xml->ErrorDocument->Key); - } - } - - /** - * 把WebsiteConfig序列化成xml - * - * @return string - * @throws OssException - */ - public function serializeToXml() - { - $xml = new \SimpleXMLElement(''); - $index_document_part = $xml->addChild('IndexDocument'); - $error_document_part = $xml->addChild('ErrorDocument'); - $index_document_part->addChild('Suffix', $this->indexDocument); - $error_document_part->addChild('Key', $this->errorDocument); - return $xml->asXML(); - } - - /** - * @return string - */ - public function getIndexDocument() - { - return $this->indexDocument; - } - - /** - * @return string - */ - public function getErrorDocument() - { - return $this->errorDocument; - } - - private $indexDocument = ""; - private $errorDocument = ""; -} \ No newline at end of file diff --git a/vendor/aliyuncs/oss-sdk-php/src/OSS/Model/XmlConfig.php b/vendor/aliyuncs/oss-sdk-php/src/OSS/Model/XmlConfig.php deleted file mode 100644 index d353a2221..000000000 --- a/vendor/aliyuncs/oss-sdk-php/src/OSS/Model/XmlConfig.php +++ /dev/null @@ -1,27 +0,0 @@ -hostname = $this->checkEndpoint($endpoint, $isCName); - $this->accessKeyId = $accessKeyId; - $this->accessKeySecret = $accessKeySecret; - $this->securityToken = $securityToken; - $this->requestProxy = $requestProxy; - - self::checkEnv(); - } - - /** - * 列举用户所有的Bucket[GetService], Endpoint类型为cname不能进行此操作 - * - * @param array $options - * @throws OssException - * @return BucketListInfo - */ - public function listBuckets($options = NULL) - { - if ($this->hostType === self::OSS_HOST_TYPE_CNAME) { - throw new OssException("operation is not permitted with CName host"); - } - $this->precheckOptions($options); - $options[self::OSS_BUCKET] = ''; - $options[self::OSS_METHOD] = self::OSS_HTTP_GET; - $options[self::OSS_OBJECT] = '/'; - $response = $this->auth($options); - $result = new ListBucketsResult($response); - return $result->getData(); - } - - /** - * 创建bucket,默认创建的bucket的ACL是OssClient::OSS_ACL_TYPE_PRIVATE - * - * @param string $bucket - * @param string $acl - * @param array $options - * @param string $storageType - * @return null - */ - public function createBucket($bucket, $acl = self::OSS_ACL_TYPE_PRIVATE, $options = NULL) - { - $this->precheckCommon($bucket, NULL, $options, false); - $options[self::OSS_BUCKET] = $bucket; - $options[self::OSS_METHOD] = self::OSS_HTTP_PUT; - $options[self::OSS_OBJECT] = '/'; - $options[self::OSS_HEADERS] = array(self::OSS_ACL => $acl); - if (isset($options[self::OSS_STORAGE])) { - $this->precheckStorage($options[self::OSS_STORAGE]); - $options[self::OSS_CONTENT] = OssUtil::createBucketXmlBody($options[self::OSS_STORAGE]); - unset($options[self::OSS_STORAGE]); - } - $response = $this->auth($options); - $result = new PutSetDeleteResult($response); - return $result->getData(); - } - - /** - * 删除bucket - * 如果Bucket不为空(Bucket中有Object,或者有分块上传的碎片),则Bucket无法删除, - * 必须删除Bucket中的所有Object以及碎片后,Bucket才能成功删除。 - * - * @param string $bucket - * @param array $options - * @return null - */ - public function deleteBucket($bucket, $options = NULL) - { - $this->precheckCommon($bucket, NULL, $options, false); - $options[self::OSS_BUCKET] = $bucket; - $options[self::OSS_METHOD] = self::OSS_HTTP_DELETE; - $options[self::OSS_OBJECT] = '/'; - $response = $this->auth($options); - $result = new PutSetDeleteResult($response); - return $result->getData(); - } - - /** - * 判断bucket是否存在 - * - * @param string $bucket - * @return bool - * @throws OssException - */ - public function doesBucketExist($bucket) - { - $this->precheckCommon($bucket, NULL, $options, false); - $options[self::OSS_BUCKET] = $bucket; - $options[self::OSS_METHOD] = self::OSS_HTTP_GET; - $options[self::OSS_OBJECT] = '/'; - $options[self::OSS_SUB_RESOURCE] = 'acl'; - $response = $this->auth($options); - $result = new ExistResult($response); - return $result->getData(); - } - - /** - * 获取bucket所属的数据中心位置信息 - * - * @param string $bucket - * @param array $options - * @throws OssException - * @return string - */ - public function getBucketLocation($bucket, $options = NULL) - { - $this->precheckCommon($bucket, NULL, $options, false); - $options[self::OSS_BUCKET] = $bucket; - $options[self::OSS_METHOD] = self::OSS_HTTP_GET; - $options[self::OSS_OBJECT] = '/'; - $options[self::OSS_SUB_RESOURCE] = 'location'; - $response = $this->auth($options); - $result = new GetLocationResult($response); - return $result->getData(); - } - - /** - * 获取Bucket的Meta信息 - * - * @param string $bucket - * @param array $options 具体参考SDK文档 - * @return array - */ - public function getBucketMeta($bucket, $options = NULL) - { - $this->precheckCommon($bucket, NULL, $options, false); - $options[self::OSS_BUCKET] = $bucket; - $options[self::OSS_METHOD] = self::OSS_HTTP_HEAD; - $options[self::OSS_OBJECT] = '/'; - $response = $this->auth($options); - $result = new HeaderResult($response); - return $result->getData(); - } - - /** - * 获取bucket的ACL配置情况 - * - * @param string $bucket - * @param array $options - * @throws OssException - * @return string - */ - public function getBucketAcl($bucket, $options = NULL) - { - $this->precheckCommon($bucket, NULL, $options, false); - $options[self::OSS_BUCKET] = $bucket; - $options[self::OSS_METHOD] = self::OSS_HTTP_GET; - $options[self::OSS_OBJECT] = '/'; - $options[self::OSS_SUB_RESOURCE] = 'acl'; - $response = $this->auth($options); - $result = new AclResult($response); - return $result->getData(); - } - - /** - * 设置bucket的ACL配置情况 - * - * @param string $bucket bucket名称 - * @param string $acl 读写权限,可选值 ['private', 'public-read', 'public-read-write'] - * @param array $options 可以为空 - * @throws OssException - * @return null - */ - public function putBucketAcl($bucket, $acl, $options = NULL) - { - $this->precheckCommon($bucket, NULL, $options, false); - $options[self::OSS_BUCKET] = $bucket; - $options[self::OSS_METHOD] = self::OSS_HTTP_PUT; - $options[self::OSS_OBJECT] = '/'; - $options[self::OSS_HEADERS] = array(self::OSS_ACL => $acl); - $options[self::OSS_SUB_RESOURCE] = 'acl'; - $response = $this->auth($options); - $result = new PutSetDeleteResult($response); - return $result->getData(); - } - - /** - * 获取object的ACL属性 - * - * @param string $bucket - * @param string $object - * @throws OssException - * @return string - */ - public function getObjectAcl($bucket, $object) - { - $options = array(); - $this->precheckCommon($bucket, $object, $options, true); - $options[self::OSS_METHOD] = self::OSS_HTTP_GET; - $options[self::OSS_BUCKET] = $bucket; - $options[self::OSS_OBJECT] = $object; - $options[self::OSS_SUB_RESOURCE] = 'acl'; - $response = $this->auth($options); - $result = new AclResult($response); - return $result->getData(); - } - - /** - * 设置object的ACL属性 - * - * @param string $bucket bucket名称 - * @param string $object object名称 - * @param string $acl 读写权限,可选值 ['default', 'private', 'public-read', 'public-read-write'] - * @throws OssException - * @return null - */ - public function putObjectAcl($bucket, $object, $acl) - { - $this->precheckCommon($bucket, $object, $options, true); - $options[self::OSS_BUCKET] = $bucket; - $options[self::OSS_METHOD] = self::OSS_HTTP_PUT; - $options[self::OSS_OBJECT] = $object; - $options[self::OSS_HEADERS] = array(self::OSS_OBJECT_ACL => $acl); - $options[self::OSS_SUB_RESOURCE] = 'acl'; - $response = $this->auth($options); - $result = new PutSetDeleteResult($response); - return $result->getData(); - } - - /** - * 获取Bucket的访问日志配置情况 - * - * @param string $bucket bucket名称 - * @param array $options 可以为空 - * @throws OssException - * @return LoggingConfig - */ - public function getBucketLogging($bucket, $options = NULL) - { - $this->precheckCommon($bucket, NULL, $options, false); - $options[self::OSS_BUCKET] = $bucket; - $options[self::OSS_METHOD] = self::OSS_HTTP_GET; - $options[self::OSS_OBJECT] = '/'; - $options[self::OSS_SUB_RESOURCE] = 'logging'; - $response = $this->auth($options); - $result = new GetLoggingResult($response); - return $result->getData(); - } - - /** - * 开启Bucket访问日志记录功能,只有Bucket的所有者才能更改 - * - * @param string $bucket bucket名称 - * @param string $targetBucket 日志文件存放的bucket - * @param string $targetPrefix 日志的文件前缀 - * @param array $options 可以为空 - * @throws OssException - * @return null - */ - public function putBucketLogging($bucket, $targetBucket, $targetPrefix, $options = NULL) - { - $this->precheckCommon($bucket, NULL, $options, false); - $this->precheckBucket($targetBucket, 'targetbucket is not allowed empty'); - $options[self::OSS_BUCKET] = $bucket; - $options[self::OSS_METHOD] = self::OSS_HTTP_PUT; - $options[self::OSS_OBJECT] = '/'; - $options[self::OSS_SUB_RESOURCE] = 'logging'; - $options[self::OSS_CONTENT_TYPE] = 'application/xml'; - - $loggingConfig = new LoggingConfig($targetBucket, $targetPrefix); - $options[self::OSS_CONTENT] = $loggingConfig->serializeToXml(); - $response = $this->auth($options); - $result = new PutSetDeleteResult($response); - return $result->getData(); - } - - /** - * 关闭bucket访问日志记录功能 - * - * @param string $bucket bucket名称 - * @param array $options 可以为空 - * @throws OssException - * @return null - */ - public function deleteBucketLogging($bucket, $options = NULL) - { - $this->precheckCommon($bucket, NULL, $options, false); - $options[self::OSS_BUCKET] = $bucket; - $options[self::OSS_METHOD] = self::OSS_HTTP_DELETE; - $options[self::OSS_OBJECT] = '/'; - $options[self::OSS_SUB_RESOURCE] = 'logging'; - $response = $this->auth($options); - $result = new PutSetDeleteResult($response); - return $result->getData(); - } - - /** - * 将bucket设置成静态网站托管模式 - * - * @param string $bucket bucket名称 - * @param WebsiteConfig $websiteConfig - * @param array $options 可以为空 - * @throws OssException - * @return null - */ - public function putBucketWebsite($bucket, $websiteConfig, $options = NULL) - { - $this->precheckCommon($bucket, NULL, $options, false); - $options[self::OSS_BUCKET] = $bucket; - $options[self::OSS_METHOD] = self::OSS_HTTP_PUT; - $options[self::OSS_OBJECT] = '/'; - $options[self::OSS_SUB_RESOURCE] = 'website'; - $options[self::OSS_CONTENT_TYPE] = 'application/xml'; - $options[self::OSS_CONTENT] = $websiteConfig->serializeToXml(); - $response = $this->auth($options); - $result = new PutSetDeleteResult($response); - return $result->getData(); - } - - /** - * 获取bucket的静态网站托管状态 - * - * @param string $bucket bucket名称 - * @param array $options - * @throws OssException - * @return WebsiteConfig - */ - public function getBucketWebsite($bucket, $options = NULL) - { - $this->precheckCommon($bucket, NULL, $options, false); - $options[self::OSS_BUCKET] = $bucket; - $options[self::OSS_METHOD] = self::OSS_HTTP_GET; - $options[self::OSS_OBJECT] = '/'; - $options[self::OSS_SUB_RESOURCE] = 'website'; - $response = $this->auth($options); - $result = new GetWebsiteResult($response); - return $result->getData(); - } - - /** - * 关闭bucket的静态网站托管模式 - * - * @param string $bucket bucket名称 - * @param array $options - * @throws OssException - * @return null - */ - public function deleteBucketWebsite($bucket, $options = NULL) - { - $this->precheckCommon($bucket, NULL, $options, false); - $options[self::OSS_BUCKET] = $bucket; - $options[self::OSS_METHOD] = self::OSS_HTTP_DELETE; - $options[self::OSS_OBJECT] = '/'; - $options[self::OSS_SUB_RESOURCE] = 'website'; - $response = $this->auth($options); - $result = new PutSetDeleteResult($response); - return $result->getData(); - } - - /** - * 在指定的bucket上设定一个跨域资源共享(CORS)的规则,如果原规则存在则覆盖原规则 - * - * @param string $bucket bucket名称 - * @param CorsConfig $corsConfig 跨域资源共享配置,具体规则参见SDK文档 - * @param array $options array - * @throws OssException - * @return null - */ - public function putBucketCors($bucket, $corsConfig, $options = NULL) - { - $this->precheckCommon($bucket, NULL, $options, false); - $options[self::OSS_BUCKET] = $bucket; - $options[self::OSS_METHOD] = self::OSS_HTTP_PUT; - $options[self::OSS_OBJECT] = '/'; - $options[self::OSS_SUB_RESOURCE] = 'cors'; - $options[self::OSS_CONTENT_TYPE] = 'application/xml'; - $options[self::OSS_CONTENT] = $corsConfig->serializeToXml(); - $response = $this->auth($options); - $result = new PutSetDeleteResult($response); - return $result->getData(); - } - - /** - * 获取Bucket的CORS配置情况 - * - * @param string $bucket bucket名称 - * @param array $options 可以为空 - * @throws OssException - * @return CorsConfig - */ - public function getBucketCors($bucket, $options = NULL) - { - $this->precheckCommon($bucket, NULL, $options, false); - $options[self::OSS_BUCKET] = $bucket; - $options[self::OSS_METHOD] = self::OSS_HTTP_GET; - $options[self::OSS_OBJECT] = '/'; - $options[self::OSS_SUB_RESOURCE] = 'cors'; - $response = $this->auth($options); - $result = new GetCorsResult($response, __FUNCTION__); - return $result->getData(); - } - - /** - * 关闭指定Bucket对应的CORS功能并清空所有规则 - * - * @param string $bucket bucket名称 - * @param array $options - * @throws OssException - * @return null - */ - public function deleteBucketCors($bucket, $options = NULL) - { - $this->precheckCommon($bucket, NULL, $options, false); - $options[self::OSS_BUCKET] = $bucket; - $options[self::OSS_METHOD] = self::OSS_HTTP_DELETE; - $options[self::OSS_OBJECT] = '/'; - $options[self::OSS_SUB_RESOURCE] = 'cors'; - $response = $this->auth($options); - $result = new PutSetDeleteResult($response); - return $result->getData(); - } - - /** - * 为指定Bucket增加CNAME绑定 - * - * @param string $bucket bucket名称 - * @param string $cname - * @param array $options - * @throws OssException - * @return null - */ - public function addBucketCname($bucket, $cname, $options = NULL) - { - $this->precheckCommon($bucket, NULL, $options, false); - $options[self::OSS_BUCKET] = $bucket; - $options[self::OSS_METHOD] = self::OSS_HTTP_POST; - $options[self::OSS_OBJECT] = '/'; - $options[self::OSS_SUB_RESOURCE] = 'cname'; - $options[self::OSS_CONTENT_TYPE] = 'application/xml'; - $cnameConfig = new CnameConfig(); - $cnameConfig->addCname($cname); - $options[self::OSS_CONTENT] = $cnameConfig->serializeToXml(); - $options[self::OSS_COMP] = 'add'; - - $response = $this->auth($options); - $result = new PutSetDeleteResult($response); - return $result->getData(); - } - - /** - * 获取指定Bucket已绑定的CNAME列表 - * - * @param string $bucket bucket名称 - * @param array $options - * @throws OssException - * @return CnameConfig - */ - public function getBucketCname($bucket, $options = NULL) - { - $this->precheckCommon($bucket, NULL, $options, false); - $options[self::OSS_BUCKET] = $bucket; - $options[self::OSS_METHOD] = self::OSS_HTTP_GET; - $options[self::OSS_OBJECT] = '/'; - $options[self::OSS_SUB_RESOURCE] = 'cname'; - $response = $this->auth($options); - $result = new GetCnameResult($response); - return $result->getData(); - } - - /** - * 解除指定Bucket的CNAME绑定 - * - * @param string $bucket bucket名称 - * @param CnameConfig $cnameConfig - * @param array $options - * @throws OssException - * @return null - */ - public function deleteBucketCname($bucket, $cname, $options = NULL) - { - $this->precheckCommon($bucket, NULL, $options, false); - $options[self::OSS_BUCKET] = $bucket; - $options[self::OSS_METHOD] = self::OSS_HTTP_POST; - $options[self::OSS_OBJECT] = '/'; - $options[self::OSS_SUB_RESOURCE] = 'cname'; - $options[self::OSS_CONTENT_TYPE] = 'application/xml'; - $cnameConfig = new CnameConfig(); - $cnameConfig->addCname($cname); - $options[self::OSS_CONTENT] = $cnameConfig->serializeToXml(); - $options[self::OSS_COMP] = 'delete'; - - $response = $this->auth($options); - $result = new PutSetDeleteResult($response); - return $result->getData(); - } - - /** - * 为指定Bucket创建LiveChannel - * - * @param string $bucket bucket名称 - * @param string channelName $channelName - * @param LiveChannelConfig $channelConfig - * @param array $options - * @throws OssException - * @return LiveChannelInfo - */ - public function putBucketLiveChannel($bucket, $channelName, $channelConfig, $options = NULL) - { - $this->precheckCommon($bucket, NULL, $options, false); - $options[self::OSS_BUCKET] = $bucket; - $options[self::OSS_METHOD] = self::OSS_HTTP_PUT; - $options[self::OSS_OBJECT] = $channelName; - $options[self::OSS_SUB_RESOURCE] = 'live'; - $options[self::OSS_CONTENT_TYPE] = 'application/xml'; - $options[self::OSS_CONTENT] = $channelConfig->serializeToXml(); - - $response = $this->auth($options); - $result = new PutLiveChannelResult($response); - $info = $result->getData(); - $info->setName($channelName); - $info->setDescription($channelConfig->getDescription()); - - return $info; - } - - /** - * 设置LiveChannel的status - * - * @param string $bucket bucket名称 - * @param string channelName $channelName - * @param string channelStatus $channelStatus 为enabled或disabled - * @param array $options - * @throws OssException - * @return null - */ - public function putLiveChannelStatus($bucket, $channelName, $channelStatus, $options = NULL) - { - $this->precheckCommon($bucket, NULL, $options, false); - $options[self::OSS_BUCKET] = $bucket; - $options[self::OSS_METHOD] = self::OSS_HTTP_PUT; - $options[self::OSS_OBJECT] = $channelName; - $options[self::OSS_SUB_RESOURCE] = 'live'; - $options[self::OSS_LIVE_CHANNEL_STATUS] = $channelStatus; - - $response = $this->auth($options); - $result = new PutSetDeleteResult($response); - return $result->getData(); - } - - /** - * 获取LiveChannel信息 - * - * @param string $bucket bucket名称 - * @param string channelName $channelName - * @param array $options - * @throws OssException - * @return GetLiveChannelInfo - */ - public function getLiveChannelInfo($bucket, $channelName, $options = NULL) - { - $this->precheckCommon($bucket, NULL, $options, false); - $options[self::OSS_BUCKET] = $bucket; - $options[self::OSS_METHOD] = self::OSS_HTTP_GET; - $options[self::OSS_OBJECT] = $channelName; - $options[self::OSS_SUB_RESOURCE] = 'live'; - - $response = $this->auth($options); - $result = new GetLiveChannelInfoResult($response); - return $result->getData(); - } - - /** - * 获取LiveChannel状态信息 - * - * @param string $bucket bucket名称 - * @param string channelName $channelName - * @param array $options - * @throws OssException - * @return GetLiveChannelStatus - */ - public function getLiveChannelStatus($bucket, $channelName, $options = NULL) - { - $this->precheckCommon($bucket, NULL, $options, false); - $options[self::OSS_BUCKET] = $bucket; - $options[self::OSS_METHOD] = self::OSS_HTTP_GET; - $options[self::OSS_OBJECT] = $channelName; - $options[self::OSS_SUB_RESOURCE] = 'live'; - $options[self::OSS_COMP] = 'stat'; - - $response = $this->auth($options); - $result = new GetLiveChannelStatusResult($response); - return $result->getData(); - } - - /** - *获取LiveChannel推流记录 - * - * @param string $bucket bucket名称 - * @param string channelName $channelName - * @param array $options - * @throws OssException - * @return GetLiveChannelHistory - */ - public function getLiveChannelHistory($bucket, $channelName, $options = NULL) - { - $this->precheckCommon($bucket, NULL, $options, false); - $options[self::OSS_BUCKET] = $bucket; - $options[self::OSS_METHOD] = self::OSS_HTTP_GET; - $options[self::OSS_OBJECT] = $channelName; - $options[self::OSS_SUB_RESOURCE] = 'live'; - $options[self::OSS_COMP] = 'history'; - - $response = $this->auth($options); - $result = new GetLiveChannelHistoryResult($response); - return $result->getData(); - } - - /** - *获取指定Bucket下的live channel列表 - * - * @param string $bucket bucket名称 - * @param array $options - * @throws OssException - * @return LiveChannelListInfo - */ - public function listBucketLiveChannels($bucket, $options = NULL) - { - $this->precheckCommon($bucket, NULL, $options, false); - $options[self::OSS_BUCKET] = $bucket; - $options[self::OSS_METHOD] = self::OSS_HTTP_GET; - $options[self::OSS_OBJECT] = '/'; - $options[self::OSS_SUB_RESOURCE] = 'live'; - $options[self::OSS_QUERY_STRING] = array( - 'prefix' => isset($options['prefix']) ? $options['prefix'] : '', - 'marker' => isset($options['marker']) ? $options['marker'] : '', - 'max-keys' => isset($options['max-keys']) ? $options['max-keys'] : '', - ); - $response = $this->auth($options); - $result = new ListLiveChannelResult($response); - $list = $result->getData(); - $list->setBucketName($bucket); - - return $list; - } - - /** - * 为指定LiveChannel生成播放列表 - * - * @param string $bucket bucket名称 - * @param string channelName $channelName - * @param string $playlistName 指定生成的点播播放列表的名称,必须以“.m3u8”结尾 - * @param array $setTime startTime和EndTime以unix时间戳格式给定,跨度不能超过一天 - * @throws OssException - * @return null - */ - public function postVodPlaylist($bucket, $channelName, $playlistName, $setTime) - { - $this->precheckCommon($bucket, NULL, $options, false); - $options[self::OSS_BUCKET] = $bucket; - $options[self::OSS_METHOD] = self::OSS_HTTP_POST; - $options[self::OSS_OBJECT] = $channelName . '/' . $playlistName; - $options[self::OSS_SUB_RESOURCE] = 'vod'; - $options[self::OSS_LIVE_CHANNEL_END_TIME] = $setTime['EndTime']; - $options[self::OSS_LIVE_CHANNEL_START_TIME] = $setTime['StartTime']; - - $response = $this->auth($options); - $result = new PutSetDeleteResult($response); - return $result->getData(); - } - - /** - * 删除指定Bucket的LiveChannel - * - * @param string $bucket bucket名称 - * @param string channelName $channelName - * @param array $options - * @throws OssException - * @return null - */ - public function deleteBucketLiveChannel($bucket, $channelName, $options = NULL) - { - $this->precheckCommon($bucket, NULL, $options, false); - $options[self::OSS_BUCKET] = $bucket; - $options[self::OSS_METHOD] = self::OSS_HTTP_DELETE; - $options[self::OSS_OBJECT] = $channelName; - $options[self::OSS_SUB_RESOURCE] = 'live'; - - $response = $this->auth($options); - $result = new PutSetDeleteResult($response); - return $result->getData(); - } - - /** - * 生成带签名的推流地址 - * - * @param string $bucket bucket名称 - * @param string channelName $channelName - * @param int timeout 设置超时时间,单位为秒 - * @param array $options - * @throws OssException - * @return 推流地址 - */ - public function signRtmpUrl($bucket, $channelName, $timeout = 60, $options = NULL) - { - $this->precheckCommon($bucket, $channelName, $options, false); - $expires = time() + $timeout; - $proto = 'rtmp://'; - $hostname = $this->generateHostname($bucket); - $cano_params = ''; - $query_items = array(); - $params = isset($options['params']) ? $options['params'] : array(); - uksort($params, 'strnatcasecmp'); - foreach ($params as $key => $value) { - $cano_params = $cano_params . $key . ':' . $value . "\n"; - $query_items[] = rawurlencode($key) . '=' . rawurlencode($value); - } - $resource = '/' . $bucket . '/' . $channelName; - - $string_to_sign = $expires . "\n" . $cano_params . $resource; - $signature = base64_encode(hash_hmac('sha1', $string_to_sign, $this->accessKeySecret, true)); - - $query_items[] = 'OSSAccessKeyId=' . rawurlencode($this->accessKeyId); - $query_items[] = 'Expires=' . rawurlencode($expires); - $query_items[] = 'Signature=' . rawurlencode($signature); - - return $proto . $hostname . '/live/' . $channelName . '?' . implode('&', $query_items); - } - - /** - * 检验跨域资源请求, 发送跨域请求之前会发送一个preflight请求(OPTIONS)并带上特定的来源域, - * HTTP方法和header信息等给OSS以决定是否发送真正的请求。 OSS可以通过putBucketCors接口 - * 来开启Bucket的CORS支持,开启CORS功能之后,OSS在收到浏览器preflight请求时会根据设定的 - * 规则评估是否允许本次请求 - * - * @param string $bucket bucket名称 - * @param string $object object名称 - * @param string $origin 请求来源域 - * @param string $request_method 表明实际请求中会使用的HTTP方法 - * @param string $request_headers 表明实际请求中会使用的除了简单头部之外的headers - * @param array $options - * @return array - * @throws OssException - * @link http://help.aliyun.com/document_detail/oss/api-reference/cors/OptionObject.html - */ - public function optionsObject($bucket, $object, $origin, $request_method, $request_headers, $options = NULL) - { - $this->precheckCommon($bucket, NULL, $options, false); - $options[self::OSS_BUCKET] = $bucket; - $options[self::OSS_METHOD] = self::OSS_HTTP_OPTIONS; - $options[self::OSS_OBJECT] = $object; - $options[self::OSS_HEADERS] = array( - self::OSS_OPTIONS_ORIGIN => $origin, - self::OSS_OPTIONS_REQUEST_HEADERS => $request_headers, - self::OSS_OPTIONS_REQUEST_METHOD => $request_method - ); - $response = $this->auth($options); - $result = new HeaderResult($response); - return $result->getData(); - } - - /** - * 设置Bucket的Lifecycle配置 - * - * @param string $bucket bucket名称 - * @param LifecycleConfig $lifecycleConfig Lifecycle配置类 - * @param array $options - * @throws OssException - * @return null - */ - public function putBucketLifecycle($bucket, $lifecycleConfig, $options = NULL) - { - $this->precheckCommon($bucket, NULL, $options, false); - $options[self::OSS_BUCKET] = $bucket; - $options[self::OSS_METHOD] = self::OSS_HTTP_PUT; - $options[self::OSS_OBJECT] = '/'; - $options[self::OSS_SUB_RESOURCE] = 'lifecycle'; - $options[self::OSS_CONTENT_TYPE] = 'application/xml'; - $options[self::OSS_CONTENT] = $lifecycleConfig->serializeToXml(); - $response = $this->auth($options); - $result = new PutSetDeleteResult($response); - return $result->getData(); - } - - /** - * 获取Bucket的Lifecycle配置情况 - * - * @param string $bucket bucket名称 - * @param array $options - * @throws OssException - * @return LifecycleConfig - */ - public function getBucketLifecycle($bucket, $options = NULL) - { - $this->precheckCommon($bucket, NULL, $options, false); - $options[self::OSS_BUCKET] = $bucket; - $options[self::OSS_METHOD] = self::OSS_HTTP_GET; - $options[self::OSS_OBJECT] = '/'; - $options[self::OSS_SUB_RESOURCE] = 'lifecycle'; - $response = $this->auth($options); - $result = new GetLifecycleResult($response); - return $result->getData(); - } - - /** - * 删除指定Bucket的生命周期配置 - * - * @param string $bucket bucket名称 - * @param array $options - * @throws OssException - * @return null - */ - public function deleteBucketLifecycle($bucket, $options = NULL) - { - $this->precheckCommon($bucket, NULL, $options, false); - $options[self::OSS_BUCKET] = $bucket; - $options[self::OSS_METHOD] = self::OSS_HTTP_DELETE; - $options[self::OSS_OBJECT] = '/'; - $options[self::OSS_SUB_RESOURCE] = 'lifecycle'; - $response = $this->auth($options); - $result = new PutSetDeleteResult($response); - return $result->getData(); - } - - /** - * 设置一个bucket的referer访问白名单和是否允许referer字段为空的请求访问 - * Bucket Referer防盗链具体见OSS防盗链 - * - * @param string $bucket bucket名称 - * @param RefererConfig $refererConfig - * @param array $options - * @return ResponseCore - * @throws null - */ - public function putBucketReferer($bucket, $refererConfig, $options = NULL) - { - $this->precheckCommon($bucket, NULL, $options, false); - $options[self::OSS_BUCKET] = $bucket; - $options[self::OSS_METHOD] = self::OSS_HTTP_PUT; - $options[self::OSS_OBJECT] = '/'; - $options[self::OSS_SUB_RESOURCE] = 'referer'; - $options[self::OSS_CONTENT_TYPE] = 'application/xml'; - $options[self::OSS_CONTENT] = $refererConfig->serializeToXml(); - $response = $this->auth($options); - $result = new PutSetDeleteResult($response); - return $result->getData(); - } - - /** - * 获取Bucket的Referer配置情况 - * Bucket Referer防盗链具体见OSS防盗链 - * - * @param string $bucket bucket名称 - * @param array $options - * @throws OssException - * @return RefererConfig - */ - public function getBucketReferer($bucket, $options = NULL) - { - $this->precheckCommon($bucket, NULL, $options, false); - $options[self::OSS_BUCKET] = $bucket; - $options[self::OSS_METHOD] = self::OSS_HTTP_GET; - $options[self::OSS_OBJECT] = '/'; - $options[self::OSS_SUB_RESOURCE] = 'referer'; - $response = $this->auth($options); - $result = new GetRefererResult($response); - return $result->getData(); - } - - /** - * 设置bucket的容量大小,单位GB - * 当bucket的容量大于设置的容量时,禁止继续写入 - * - * @param string $bucket bucket名称 - * @param int $storageCapacity - * @param array $options - * @return ResponseCore - * @throws null - */ - public function putBucketStorageCapacity($bucket, $storageCapacity, $options = NULL) - { - $this->precheckCommon($bucket, NULL, $options, false); - $options[self::OSS_BUCKET] = $bucket; - $options[self::OSS_METHOD] = self::OSS_HTTP_PUT; - $options[self::OSS_OBJECT] = '/'; - $options[self::OSS_SUB_RESOURCE] = 'qos'; - $options[self::OSS_CONTENT_TYPE] = 'application/xml'; - $storageCapacityConfig = new StorageCapacityConfig($storageCapacity); - $options[self::OSS_CONTENT] = $storageCapacityConfig->serializeToXml(); - $response = $this->auth($options); - $result = new PutSetDeleteResult($response); - return $result->getData(); - } - - /** - * 获取bucket的容量大小,单位GB - * - * @param string $bucket bucket名称 - * @param array $options - * @throws OssException - * @return int - */ - public function getBucketStorageCapacity($bucket, $options = NULL) - { - $this->precheckCommon($bucket, NULL, $options, false); - $options[self::OSS_BUCKET] = $bucket; - $options[self::OSS_METHOD] = self::OSS_HTTP_GET; - $options[self::OSS_OBJECT] = '/'; - $options[self::OSS_SUB_RESOURCE] = 'qos'; - $response = $this->auth($options); - $result = new GetStorageCapacityResult($response); - return $result->getData(); - } - - /** - * 获取bucket下的object列表 - * - * @param string $bucket - * @param array $options - * 其中options中的参数如下 - * $options = array( - * 'max-keys' => max-keys用于限定此次返回object的最大数,如果不设定,默认为100,max-keys取值不能大于1000。 - * 'prefix' => 限定返回的object key必须以prefix作为前缀。注意使用prefix查询时,返回的key中仍会包含prefix。 - * 'delimiter' => 是一个用于对Object名字进行分组的字符。所有名字包含指定的前缀且第一次出现delimiter字符之间的object作为一组元素 - * 'marker' => 用户设定结果从marker之后按字母排序的第一个开始返回。 - *) - * 其中 prefix,marker用来实现分页显示效果,参数的长度必须小于256字节。 - * @throws OssException - * @return ObjectListInfo - */ - public function listObjects($bucket, $options = NULL) - { - $this->precheckCommon($bucket, NULL, $options, false); - $options[self::OSS_BUCKET] = $bucket; - $options[self::OSS_METHOD] = self::OSS_HTTP_GET; - $options[self::OSS_OBJECT] = '/'; - $options[self::OSS_HEADERS] = array( - self::OSS_DELIMITER => isset($options[self::OSS_DELIMITER]) ? $options[self::OSS_DELIMITER] : '/', - self::OSS_PREFIX => isset($options[self::OSS_PREFIX]) ? $options[self::OSS_PREFIX] : '', - self::OSS_MAX_KEYS => isset($options[self::OSS_MAX_KEYS]) ? $options[self::OSS_MAX_KEYS] : self::OSS_MAX_KEYS_VALUE, - self::OSS_MARKER => isset($options[self::OSS_MARKER]) ? $options[self::OSS_MARKER] : '', - ); - $query = isset($options[self::OSS_QUERY_STRING]) ? $options[self::OSS_QUERY_STRING] : array(); - $options[self::OSS_QUERY_STRING] = array_merge( - $query, - array(self::OSS_ENCODING_TYPE => self::OSS_ENCODING_TYPE_URL) - ); - - $response = $this->auth($options); - $result = new ListObjectsResult($response); - return $result->getData(); - } - - /** - * 创建虚拟目录 (本函数会在object名称后增加'/', 所以创建目录的object名称不需要'/'结尾,否则,目录名称会变成'//') - * - * 暂不开放此接口 - * - * @param string $bucket bucket名称 - * @param string $object object名称 - * @param array $options - * @return null - */ - public function createObjectDir($bucket, $object, $options = NULL) - { - $this->precheckCommon($bucket, $object, $options); - $options[self::OSS_BUCKET] = $bucket; - $options[self::OSS_METHOD] = self::OSS_HTTP_PUT; - $options[self::OSS_OBJECT] = $object . '/'; - $options[self::OSS_CONTENT_LENGTH] = array(self::OSS_CONTENT_LENGTH => 0); - $response = $this->auth($options); - $result = new PutSetDeleteResult($response); - return $result->getData(); - } - - /** - * 上传内存中的内容 - * - * @param string $bucket bucket名称 - * @param string $object objcet名称 - * @param string $content 上传的内容 - * @param array $options - * @return null - */ - public function putObject($bucket, $object, $content, $options = NULL) - { - $this->precheckCommon($bucket, $object, $options); - - $options[self::OSS_CONTENT] = $content; - $options[self::OSS_BUCKET] = $bucket; - $options[self::OSS_METHOD] = self::OSS_HTTP_PUT; - $options[self::OSS_OBJECT] = $object; - - if (!isset($options[self::OSS_LENGTH])) { - $options[self::OSS_CONTENT_LENGTH] = strlen($options[self::OSS_CONTENT]); - } else { - $options[self::OSS_CONTENT_LENGTH] = $options[self::OSS_LENGTH]; - } - - $is_check_md5 = $this->isCheckMD5($options); - if ($is_check_md5) { - $content_md5 = base64_encode(md5($content, true)); - $options[self::OSS_CONTENT_MD5] = $content_md5; - } - - if (!isset($options[self::OSS_CONTENT_TYPE])) { - $options[self::OSS_CONTENT_TYPE] = $this->getMimeType($object); - } - $response = $this->auth($options); - - if (isset($options[self::OSS_CALLBACK]) && !empty($options[self::OSS_CALLBACK])) { - $result = new CallbackResult($response); - } else { - $result = new PutSetDeleteResult($response); - } - - return $result->getData(); - } - - /** - * 创建symlink - * @param string $bucket bucket名称 - * @param string $symlink symlink名称 - * @param string $targetObject 目标object名称 - * @param array $options - * @return null - */ - public function putSymlink($bucket, $symlink ,$targetObject, $options = NULL) - { - $this->precheckCommon($bucket, $symlink, $options); - - $options[self::OSS_BUCKET] = $bucket; - $options[self::OSS_METHOD] = self::OSS_HTTP_PUT; - $options[self::OSS_OBJECT] = $symlink; - $options[self::OSS_SUB_RESOURCE] = self::OSS_SYMLINK; - $options[self::OSS_HEADERS][self::OSS_SYMLINK_TARGET] = rawurlencode($targetObject); - - $response = $this->auth($options); - $result = new PutSetDeleteResult($response); - return $result->getData(); - } - - /** - * 获取symlink - *@param string $bucket bucket名称 - * @param string $symlink symlink名称 - * @return null - */ - public function getSymlink($bucket, $symlink) - { - $this->precheckCommon($bucket, $symlink, $options); - - $options[self::OSS_BUCKET] = $bucket; - $options[self::OSS_METHOD] = self::OSS_HTTP_GET; - $options[self::OSS_OBJECT] = $symlink; - $options[self::OSS_SUB_RESOURCE] = self::OSS_SYMLINK; - - $response = $this->auth($options); - $result = new SymlinkResult($response); - return $result->getData(); - } - - /** - * 上传本地文件 - * - * @param string $bucket bucket名称 - * @param string $object object名称 - * @param string $file 本地文件路径 - * @param array $options - * @return null - * @throws OssException - */ - public function uploadFile($bucket, $object, $file, $options = NULL) - { - $this->precheckCommon($bucket, $object, $options); - OssUtil::throwOssExceptionWithMessageIfEmpty($file, "file path is invalid"); - $file = OssUtil::encodePath($file); - if (!file_exists($file)) { - throw new OssException($file . " file does not exist"); - } - $options[self::OSS_FILE_UPLOAD] = $file; - $file_size = filesize($options[self::OSS_FILE_UPLOAD]); - $is_check_md5 = $this->isCheckMD5($options); - if ($is_check_md5) { - $content_md5 = base64_encode(md5_file($options[self::OSS_FILE_UPLOAD], true)); - $options[self::OSS_CONTENT_MD5] = $content_md5; - } - if (!isset($options[self::OSS_CONTENT_TYPE])) { - $options[self::OSS_CONTENT_TYPE] = $this->getMimeType($object, $file); - } - $options[self::OSS_METHOD] = self::OSS_HTTP_PUT; - $options[self::OSS_BUCKET] = $bucket; - $options[self::OSS_OBJECT] = $object; - $options[self::OSS_CONTENT_LENGTH] = $file_size; - $response = $this->auth($options); - $result = new PutSetDeleteResult($response); - return $result->getData(); - } - - /** - * 追加上传内存中的内容 - * - * @param string $bucket bucket名称 - * @param string $object objcet名称 - * @param string $content 本次追加上传的内容 - * @param array $options - * @return int next append position - * @throws OssException - */ - public function appendObject($bucket, $object, $content, $position, $options = NULL) - { - $this->precheckCommon($bucket, $object, $options); - - $options[self::OSS_CONTENT] = $content; - $options[self::OSS_BUCKET] = $bucket; - $options[self::OSS_METHOD] = self::OSS_HTTP_POST; - $options[self::OSS_OBJECT] = $object; - $options[self::OSS_SUB_RESOURCE] = 'append'; - $options[self::OSS_POSITION] = strval($position); - - if (!isset($options[self::OSS_LENGTH])) { - $options[self::OSS_CONTENT_LENGTH] = strlen($options[self::OSS_CONTENT]); - } else { - $options[self::OSS_CONTENT_LENGTH] = $options[self::OSS_LENGTH]; - } - - $is_check_md5 = $this->isCheckMD5($options); - if ($is_check_md5) { - $content_md5 = base64_encode(md5($content, true)); - $options[self::OSS_CONTENT_MD5] = $content_md5; - } - - if (!isset($options[self::OSS_CONTENT_TYPE])) { - $options[self::OSS_CONTENT_TYPE] = $this->getMimeType($object); - } - $response = $this->auth($options); - $result = new AppendResult($response); - return $result->getData(); - } - - /** - * 追加上传本地文件 - * - * @param string $bucket bucket名称 - * @param string $object object名称 - * @param string $file 追加上传的本地文件路径 - * @param array $options - * @return int next append position - * @throws OssException - */ - public function appendFile($bucket, $object, $file, $position, $options = NULL) - { - $this->precheckCommon($bucket, $object, $options); - - OssUtil::throwOssExceptionWithMessageIfEmpty($file, "file path is invalid"); - $file = OssUtil::encodePath($file); - if (!file_exists($file)) { - throw new OssException($file . " file does not exist"); - } - $options[self::OSS_FILE_UPLOAD] = $file; - $file_size = filesize($options[self::OSS_FILE_UPLOAD]); - $is_check_md5 = $this->isCheckMD5($options); - if ($is_check_md5) { - $content_md5 = base64_encode(md5_file($options[self::OSS_FILE_UPLOAD], true)); - $options[self::OSS_CONTENT_MD5] = $content_md5; - } - if (!isset($options[self::OSS_CONTENT_TYPE])) { - $options[self::OSS_CONTENT_TYPE] = $this->getMimeType($object, $file); - } - - $options[self::OSS_METHOD] = self::OSS_HTTP_POST; - $options[self::OSS_BUCKET] = $bucket; - $options[self::OSS_OBJECT] = $object; - $options[self::OSS_CONTENT_LENGTH] = $file_size; - $options[self::OSS_SUB_RESOURCE] = 'append'; - $options[self::OSS_POSITION] = strval($position); - - $response = $this->auth($options); - $result = new AppendResult($response); - return $result->getData(); - } - - /** - * 拷贝一个在OSS上已经存在的object成另外一个object - * - * @param string $fromBucket 源bucket名称 - * @param string $fromObject 源object名称 - * @param string $toBucket 目标bucket名称 - * @param string $toObject 目标object名称 - * @param array $options - * @return null - * @throws OssException - */ - public function copyObject($fromBucket, $fromObject, $toBucket, $toObject, $options = NULL) - { - $this->precheckCommon($fromBucket, $fromObject, $options); - $this->precheckCommon($toBucket, $toObject, $options); - $options[self::OSS_BUCKET] = $toBucket; - $options[self::OSS_METHOD] = self::OSS_HTTP_PUT; - $options[self::OSS_OBJECT] = $toObject; - if (isset($options[self::OSS_HEADERS])) { - $options[self::OSS_HEADERS][self::OSS_OBJECT_COPY_SOURCE] = '/' . $fromBucket . '/' . $fromObject; - } else { - $options[self::OSS_HEADERS] = array(self::OSS_OBJECT_COPY_SOURCE => '/' . $fromBucket . '/' . $fromObject); - } - $response = $this->auth($options); - $result = new CopyObjectResult($response); - return $result->getData(); - } - - /** - * 获取Object的Meta信息 - * - * @param string $bucket bucket名称 - * @param string $object object名称 - * @param string $options 具体参考SDK文档 - * @return array - */ - public function getObjectMeta($bucket, $object, $options = NULL) - { - $this->precheckCommon($bucket, $object, $options); - $options[self::OSS_BUCKET] = $bucket; - $options[self::OSS_METHOD] = self::OSS_HTTP_HEAD; - $options[self::OSS_OBJECT] = $object; - $response = $this->auth($options); - $result = new HeaderResult($response); - return $result->getData(); - } - - /** - * 删除某个Object - * - * @param string $bucket bucket名称 - * @param string $object object名称 - * @param array $options - * @return null - */ - public function deleteObject($bucket, $object, $options = NULL) - { - $this->precheckCommon($bucket, $object, $options); - $options[self::OSS_BUCKET] = $bucket; - $options[self::OSS_METHOD] = self::OSS_HTTP_DELETE; - $options[self::OSS_OBJECT] = $object; - $response = $this->auth($options); - $result = new PutSetDeleteResult($response); - return $result->getData(); - } - - /** - * 删除同一个Bucket中的多个Object - * - * @param string $bucket bucket名称 - * @param array $objects object列表 - * @param array $options - * @return ResponseCore - * @throws null - */ - public function deleteObjects($bucket, $objects, $options = null) - { - $this->precheckCommon($bucket, NULL, $options, false); - if (!is_array($objects) || !$objects) { - throw new OssException('objects must be array'); - } - $options[self::OSS_METHOD] = self::OSS_HTTP_POST; - $options[self::OSS_BUCKET] = $bucket; - $options[self::OSS_OBJECT] = '/'; - $options[self::OSS_SUB_RESOURCE] = 'delete'; - $options[self::OSS_CONTENT_TYPE] = 'application/xml'; - $quiet = 'false'; - if (isset($options['quiet'])) { - if (is_bool($options['quiet'])) { //Boolean - $quiet = $options['quiet'] ? 'true' : 'false'; - } elseif (is_string($options['quiet'])) { // string - $quiet = ($options['quiet'] === 'true') ? 'true' : 'false'; - } - } - $xmlBody = OssUtil::createDeleteObjectsXmlBody($objects, $quiet); - $options[self::OSS_CONTENT] = $xmlBody; - $response = $this->auth($options); - $result = new DeleteObjectsResult($response); - return $result->getData(); - } - - /** - * 获得Object内容 - * - * @param string $bucket bucket名称 - * @param string $object object名称 - * @param array $options 该参数中必须设置ALIOSS::OSS_FILE_DOWNLOAD,ALIOSS::OSS_RANGE可选,可以根据实际情况设置;如果不设置,默认会下载全部内容 - * @return string - */ - public function getObject($bucket, $object, $options = NULL) - { - $this->precheckCommon($bucket, $object, $options); - $options[self::OSS_BUCKET] = $bucket; - $options[self::OSS_METHOD] = self::OSS_HTTP_GET; - $options[self::OSS_OBJECT] = $object; - if (isset($options[self::OSS_LAST_MODIFIED])) { - $options[self::OSS_HEADERS][self::OSS_IF_MODIFIED_SINCE] = $options[self::OSS_LAST_MODIFIED]; - unset($options[self::OSS_LAST_MODIFIED]); - } - if (isset($options[self::OSS_ETAG])) { - $options[self::OSS_HEADERS][self::OSS_IF_NONE_MATCH] = $options[self::OSS_ETAG]; - unset($options[self::OSS_ETAG]); - } - if (isset($options[self::OSS_RANGE])) { - $range = $options[self::OSS_RANGE]; - $options[self::OSS_HEADERS][self::OSS_RANGE] = "bytes=$range"; - unset($options[self::OSS_RANGE]); - } - $response = $this->auth($options); - $result = new BodyResult($response); - return $result->getData(); - } - - /** - * 检测Object是否存在 - * 通过获取Object的Meta信息来判断Object是否存在, 用户需要自行解析ResponseCore判断object是否存在 - * - * @param string $bucket bucket名称 - * @param string $object object名称 - * @param array $options - * @return bool - */ - public function doesObjectExist($bucket, $object, $options = NULL) - { - $this->precheckCommon($bucket, $object, $options); - $options[self::OSS_BUCKET] = $bucket; - $options[self::OSS_METHOD] = self::OSS_HTTP_HEAD; - $options[self::OSS_OBJECT] = $object; - $response = $this->auth($options); - $result = new ExistResult($response); - return $result->getData(); - } - - /** - * 针对Archive类型的Object读取 - * 需要使用Restore操作让服务端执行解冻任务 - * - * @param string $bucket bucket名称 - * @param string $object object名称 - * @return null - * @throws OssException - */ - public function restoreObject($bucket, $object, $options = NULL) - { - $this->precheckCommon($bucket, $object, $options); - $options[self::OSS_BUCKET] = $bucket; - $options[self::OSS_METHOD] = self::OSS_HTTP_POST; - $options[self::OSS_OBJECT] = $object; - $options[self::OSS_SUB_RESOURCE] = self::OSS_RESTORE; - $response = $this->auth($options); - $result = new PutSetDeleteResult($response); - return $result->getData(); - } - - /** - * 获取分片大小,根据用户提供的part_size,重新计算一个更合理的partsize - * - * @param int $partSize - * @return int - */ - private function computePartSize($partSize) - { - $partSize = (integer)$partSize; - if ($partSize <= self::OSS_MIN_PART_SIZE) { - $partSize = self::OSS_MIN_PART_SIZE; - } elseif ($partSize > self::OSS_MAX_PART_SIZE) { - $partSize = self::OSS_MAX_PART_SIZE; - } - return $partSize; - } - - /** - * 计算文件可以分成多少个part,以及每个part的长度以及起始位置 - * 方法必须在 中调用 - * - * @param integer $file_size 文件大小 - * @param integer $partSize part大小,默认5M - * @return array An array 包含 key-value 键值对. Key 为 `seekTo` 和 `length`. - */ - public function generateMultiuploadParts($file_size, $partSize = 5242880) - { - $i = 0; - $size_count = $file_size; - $values = array(); - $partSize = $this->computePartSize($partSize); - while ($size_count > 0) { - $size_count -= $partSize; - $values[] = array( - self::OSS_SEEK_TO => ($partSize * $i), - self::OSS_LENGTH => (($size_count > 0) ? $partSize : ($size_count + $partSize)), - ); - $i++; - } - return $values; - } - - /** - * 初始化multi-part upload - * - * @param string $bucket Bucket名称 - * @param string $object Object名称 - * @param array $options Key-Value数组 - * @throws OssException - * @return string 返回uploadid - */ - public function initiateMultipartUpload($bucket, $object, $options = NULL) - { - $this->precheckCommon($bucket, $object, $options); - $options[self::OSS_METHOD] = self::OSS_HTTP_POST; - $options[self::OSS_BUCKET] = $bucket; - $options[self::OSS_OBJECT] = $object; - $options[self::OSS_SUB_RESOURCE] = 'uploads'; - $options[self::OSS_CONTENT] = ''; - - if (!isset($options[self::OSS_CONTENT_TYPE])) { - $options[self::OSS_CONTENT_TYPE] = $this->getMimeType($object); - } - if (!isset($options[self::OSS_HEADERS])) { - $options[self::OSS_HEADERS] = array(); - } - $response = $this->auth($options); - $result = new InitiateMultipartUploadResult($response); - return $result->getData(); - } - - /** - * 分片上传的块上传接口 - * - * @param string $bucket Bucket名称 - * @param string $object Object名称 - * @param string $uploadId - * @param array $options Key-Value数组 - * @return string eTag - * @throws OssException - */ - public function uploadPart($bucket, $object, $uploadId, $options = null) - { - $this->precheckCommon($bucket, $object, $options); - $this->precheckParam($options, self::OSS_FILE_UPLOAD, __FUNCTION__); - $this->precheckParam($options, self::OSS_PART_NUM, __FUNCTION__); - - $options[self::OSS_METHOD] = self::OSS_HTTP_PUT; - $options[self::OSS_BUCKET] = $bucket; - $options[self::OSS_OBJECT] = $object; - $options[self::OSS_UPLOAD_ID] = $uploadId; - - if (isset($options[self::OSS_LENGTH])) { - $options[self::OSS_CONTENT_LENGTH] = $options[self::OSS_LENGTH]; - } - $response = $this->auth($options); - $result = new UploadPartResult($response); - return $result->getData(); - } - - /** - * 获取已成功上传的part - * - * @param string $bucket Bucket名称 - * @param string $object Object名称 - * @param string $uploadId uploadId - * @param array $options Key-Value数组 - * @return ListPartsInfo - * @throws OssException - */ - public function listParts($bucket, $object, $uploadId, $options = null) - { - $this->precheckCommon($bucket, $object, $options); - $options[self::OSS_METHOD] = self::OSS_HTTP_GET; - $options[self::OSS_BUCKET] = $bucket; - $options[self::OSS_OBJECT] = $object; - $options[self::OSS_UPLOAD_ID] = $uploadId; - $options[self::OSS_QUERY_STRING] = array(); - foreach (array('max-parts', 'part-number-marker') as $param) { - if (isset($options[$param])) { - $options[self::OSS_QUERY_STRING][$param] = $options[$param]; - unset($options[$param]); - } - } - $response = $this->auth($options); - $result = new ListPartsResult($response); - return $result->getData(); - } - - /** - * 中止进行一半的分片上传操作 - * - * @param string $bucket Bucket名称 - * @param string $object Object名称 - * @param string $uploadId uploadId - * @param array $options Key-Value数组 - * @return null - * @throws OssException - */ - public function abortMultipartUpload($bucket, $object, $uploadId, $options = NULL) - { - $this->precheckCommon($bucket, $object, $options); - $options[self::OSS_METHOD] = self::OSS_HTTP_DELETE; - $options[self::OSS_BUCKET] = $bucket; - $options[self::OSS_OBJECT] = $object; - $options[self::OSS_UPLOAD_ID] = $uploadId; - $response = $this->auth($options); - $result = new PutSetDeleteResult($response); - return $result->getData(); - } - - /** - * 在将所有数据Part都上传完成后,调用此接口完成本次分块上传 - * - * @param string $bucket Bucket名称 - * @param string $object Object名称 - * @param string $uploadId uploadId - * @param array $listParts array( array("PartNumber"=> int, "ETag"=>string)) - * @param array $options Key-Value数组 - * @throws OssException - * @return null - */ - public function completeMultipartUpload($bucket, $object, $uploadId, $listParts, $options = NULL) - { - $this->precheckCommon($bucket, $object, $options); - $options[self::OSS_METHOD] = self::OSS_HTTP_POST; - $options[self::OSS_BUCKET] = $bucket; - $options[self::OSS_OBJECT] = $object; - $options[self::OSS_UPLOAD_ID] = $uploadId; - $options[self::OSS_CONTENT_TYPE] = 'application/xml'; - if (!is_array($listParts)) { - throw new OssException("listParts must be array type"); - } - $options[self::OSS_CONTENT] = OssUtil::createCompleteMultipartUploadXmlBody($listParts); - $response = $this->auth($options); - if (isset($options[self::OSS_CALLBACK]) && !empty($options[self::OSS_CALLBACK])) { - $result = new CallbackResult($response); - } else { - $result = new PutSetDeleteResult($response); - } - return $result->getData(); - } - - /** - * 罗列出所有执行中的Multipart Upload事件,即已经被初始化的Multipart Upload但是未被 - * Complete或者Abort的Multipart Upload事件 - * - * @param string $bucket bucket - * @param array $options 关联数组 - * @throws OssException - * @return ListMultipartUploadInfo - */ - public function listMultipartUploads($bucket, $options = null) - { - $this->precheckCommon($bucket, NULL, $options, false); - $options[self::OSS_METHOD] = self::OSS_HTTP_GET; - $options[self::OSS_BUCKET] = $bucket; - $options[self::OSS_OBJECT] = '/'; - $options[self::OSS_SUB_RESOURCE] = 'uploads'; - - foreach (array('delimiter', 'key-marker', 'max-uploads', 'prefix', 'upload-id-marker') as $param) { - if (isset($options[$param])) { - $options[self::OSS_QUERY_STRING][$param] = $options[$param]; - unset($options[$param]); - } - } - $query = isset($options[self::OSS_QUERY_STRING]) ? $options[self::OSS_QUERY_STRING] : array(); - $options[self::OSS_QUERY_STRING] = array_merge( - $query, - array(self::OSS_ENCODING_TYPE => self::OSS_ENCODING_TYPE_URL) - ); - - $response = $this->auth($options); - $result = new ListMultipartUploadResult($response); - return $result->getData(); - } - - /** - * 从一个已存在的Object中拷贝数据来上传一个Part - * - * @param string $fromBucket 源bucket名称 - * @param string $fromObject 源object名称 - * @param string $toBucket 目标bucket名称 - * @param string $toObject 目标object名称 - * @param int $partNumber 分块上传的块id - * @param string $uploadId 初始化multipart upload返回的uploadid - * @param array $options Key-Value数组 - * @return null - * @throws OssException - */ - public function uploadPartCopy($fromBucket, $fromObject, $toBucket, $toObject, $partNumber, $uploadId, $options = NULL) - { - $this->precheckCommon($fromBucket, $fromObject, $options); - $this->precheckCommon($toBucket, $toObject, $options); - - //如果没有设置$options['isFullCopy'],则需要强制判断copy的起止位置 - $start_range = "0"; - if (isset($options['start'])) { - $start_range = $options['start']; - } - $end_range = ""; - if (isset($options['end'])) { - $end_range = $options['end']; - } - $options[self::OSS_METHOD] = self::OSS_HTTP_PUT; - $options[self::OSS_BUCKET] = $toBucket; - $options[self::OSS_OBJECT] = $toObject; - $options[self::OSS_PART_NUM] = $partNumber; - $options[self::OSS_UPLOAD_ID] = $uploadId; - - if (!isset($options[self::OSS_HEADERS])) { - $options[self::OSS_HEADERS] = array(); - } - - $options[self::OSS_HEADERS][self::OSS_OBJECT_COPY_SOURCE] = '/' . $fromBucket . '/' . $fromObject; - $options[self::OSS_HEADERS][self::OSS_OBJECT_COPY_SOURCE_RANGE] = "bytes=" . $start_range . "-" . $end_range; - $response = $this->auth($options); - $result = new UploadPartResult($response); - return $result->getData(); - } - - /** - * multipart上传统一封装,从初始化到完成multipart,以及出错后中止动作 - * - * @param string $bucket bucket名称 - * @param string $object object名称 - * @param string $file 需要上传的本地文件的路径 - * @param array $options Key-Value数组 - * @return null - * @throws OssException - */ - public function multiuploadFile($bucket, $object, $file, $options = null) - { - $this->precheckCommon($bucket, $object, $options); - if (isset($options[self::OSS_LENGTH])) { - $options[self::OSS_CONTENT_LENGTH] = $options[self::OSS_LENGTH]; - unset($options[self::OSS_LENGTH]); - } - if (empty($file)) { - throw new OssException("parameter invalid, file is empty"); - } - $uploadFile = OssUtil::encodePath($file); - if (!isset($options[self::OSS_CONTENT_TYPE])) { - $options[self::OSS_CONTENT_TYPE] = $this->getMimeType($object, $uploadFile); - } - - $upload_position = isset($options[self::OSS_SEEK_TO]) ? (integer)$options[self::OSS_SEEK_TO] : 0; - - if (isset($options[self::OSS_CONTENT_LENGTH])) { - $upload_file_size = (integer)$options[self::OSS_CONTENT_LENGTH]; - } else { - $upload_file_size = filesize($uploadFile); - if ($upload_file_size !== false) { - $upload_file_size -= $upload_position; - } - } - - if ($upload_position === false || !isset($upload_file_size) || $upload_file_size === false || $upload_file_size < 0) { - throw new OssException('The size of `fileUpload` cannot be determined in ' . __FUNCTION__ . '().'); - } - // 处理partSize - if (isset($options[self::OSS_PART_SIZE])) { - $options[self::OSS_PART_SIZE] = $this->computePartSize($options[self::OSS_PART_SIZE]); - } else { - $options[self::OSS_PART_SIZE] = self::OSS_MID_PART_SIZE; - } - - $is_check_md5 = $this->isCheckMD5($options); - // 如果上传的文件小于partSize,则直接使用普通方式上传 - if ($upload_file_size < $options[self::OSS_PART_SIZE] && !isset($options[self::OSS_UPLOAD_ID])) { - return $this->uploadFile($bucket, $object, $uploadFile, $options); - } - - // 初始化multipart - if (isset($options[self::OSS_UPLOAD_ID])) { - $uploadId = $options[self::OSS_UPLOAD_ID]; - } else { - // 初始化 - $uploadId = $this->initiateMultipartUpload($bucket, $object, $options); - } - - // 获取的分片 - $pieces = $this->generateMultiuploadParts($upload_file_size, (integer)$options[self::OSS_PART_SIZE]); - $response_upload_part = array(); - foreach ($pieces as $i => $piece) { - $from_pos = $upload_position + (integer)$piece[self::OSS_SEEK_TO]; - $to_pos = (integer)$piece[self::OSS_LENGTH] + $from_pos - 1; - $up_options = array( - self::OSS_FILE_UPLOAD => $uploadFile, - self::OSS_PART_NUM => ($i + 1), - self::OSS_SEEK_TO => $from_pos, - self::OSS_LENGTH => $to_pos - $from_pos + 1, - self::OSS_CHECK_MD5 => $is_check_md5, - ); - if ($is_check_md5) { - $content_md5 = OssUtil::getMd5SumForFile($uploadFile, $from_pos, $to_pos); - $up_options[self::OSS_CONTENT_MD5] = $content_md5; - } - $response_upload_part[] = $this->uploadPart($bucket, $object, $uploadId, $up_options); - } - - $uploadParts = array(); - foreach ($response_upload_part as $i => $etag) { - $uploadParts[] = array( - 'PartNumber' => ($i + 1), - 'ETag' => $etag, - ); - } - return $this->completeMultipartUpload($bucket, $object, $uploadId, $uploadParts); - } - - /** - * 上传本地目录内的文件或者目录到指定bucket的指定prefix的object中 - * - * @param string $bucket bucket名称 - * @param string $prefix 需要上传到的object的key前缀,可以理解成bucket中的子目录,结尾不能是'/',接口中会补充'/' - * @param string $localDirectory 需要上传的本地目录 - * @param string $exclude 需要排除的目录 - * @param bool $recursive 是否递归的上传localDirectory下的子目录内容 - * @param bool $checkMd5 - * @return array 返回两个列表 array("succeededList" => array("object"), "failedList" => array("object"=>"errorMessage")) - * @throws OssException - */ - public function uploadDir($bucket, $prefix, $localDirectory, $exclude = '.|..|.svn|.git', $recursive = false, $checkMd5 = true) - { - $retArray = array("succeededList" => array(), "failedList" => array()); - if (empty($bucket)) throw new OssException("parameter error, bucket is empty"); - if (!is_string($prefix)) throw new OssException("parameter error, prefix is not string"); - if (empty($localDirectory)) throw new OssException("parameter error, localDirectory is empty"); - $directory = $localDirectory; - $directory = OssUtil::encodePath($directory); - //判断是否目录 - if (!is_dir($directory)) { - throw new OssException('parameter error: ' . $directory . ' is not a directory, please check it'); - } - //read directory - $file_list_array = OssUtil::readDir($directory, $exclude, $recursive); - if (!$file_list_array) { - throw new OssException($directory . ' is empty...'); - } - foreach ($file_list_array as $k => $item) { - if (is_dir($item['path'])) { - continue; - } - $options = array( - self::OSS_PART_SIZE => self::OSS_MIN_PART_SIZE, - self::OSS_CHECK_MD5 => $checkMd5, - ); - $realObject = (!empty($prefix) ? $prefix . '/' : '') . $item['file']; - - try { - $this->multiuploadFile($bucket, $realObject, $item['path'], $options); - $retArray["succeededList"][] = $realObject; - } catch (OssException $e) { - $retArray["failedList"][$realObject] = $e->getMessage(); - } - } - return $retArray; - } - - /** - * 支持生成get和put签名, 用户可以生成一个具有一定有效期的 - * 签名过的url - * - * @param string $bucket - * @param string $object - * @param int $timeout - * @param string $method - * @param array $options Key-Value数组 - * @return string - * @throws OssException - */ - public function signUrl($bucket, $object, $timeout = 60, $method = self::OSS_HTTP_GET, $options = NULL) - { - $this->precheckCommon($bucket, $object, $options); - //method - if (self::OSS_HTTP_GET !== $method && self::OSS_HTTP_PUT !== $method) { - throw new OssException("method is invalid"); - } - $options[self::OSS_BUCKET] = $bucket; - $options[self::OSS_OBJECT] = $object; - $options[self::OSS_METHOD] = $method; - if (!isset($options[self::OSS_CONTENT_TYPE])) { - $options[self::OSS_CONTENT_TYPE] = ''; - } - $timeout = time() + $timeout; - $options[self::OSS_PREAUTH] = $timeout; - $options[self::OSS_DATE] = $timeout; - $this->setSignStsInUrl(true); - return $this->auth($options); - } - - /** - * 检测options参数 - * - * @param array $options - * @throws OssException - */ - private function precheckOptions(&$options) - { - OssUtil::validateOptions($options); - if (!$options) { - $options = array(); - } - } - - /** - * 校验bucket参数 - * - * @param string $bucket - * @param string $errMsg - * @throws OssException - */ - private function precheckBucket($bucket, $errMsg = 'bucket is not allowed empty') - { - OssUtil::throwOssExceptionWithMessageIfEmpty($bucket, $errMsg); - } - - /** - * 校验object参数 - * - * @param string $object - * @throws OssException - */ - private function precheckObject($object) - { - OssUtil::throwOssExceptionWithMessageIfEmpty($object, "object name is empty"); - } - - /** - * 校验option restore - * - * @param string $restore - * @throws OssException - */ - private function precheckStorage($storage) - { - if (is_string($storage)) { - switch ($storage) { - case self::OSS_STORAGE_ARCHIVE: - return; - case self::OSS_STORAGE_IA: - return; - case self::OSS_STORAGE_STANDARD: - return; - default: - break; - } - } - throw new OssException('storage name is invalid'); - } - - /** - * 校验bucket,options参数 - * - * @param string $bucket - * @param string $object - * @param array $options - * @param bool $isCheckObject - */ - private function precheckCommon($bucket, $object, &$options, $isCheckObject = true) - { - if ($isCheckObject) { - $this->precheckObject($object); - } - $this->precheckOptions($options); - $this->precheckBucket($bucket); - } - - /** - * 参数校验 - * - * @param array $options - * @param string $param - * @param string $funcName - * @throws OssException - */ - private function precheckParam($options, $param, $funcName) - { - if (!isset($options[$param])) { - throw new OssException('The `' . $param . '` options is required in ' . $funcName . '().'); - } - } - - /** - * 检测md5 - * - * @param array $options - * @return bool|null - */ - private function isCheckMD5($options) - { - return $this->getValue($options, self::OSS_CHECK_MD5, false, true, true); - } - - /** - * 获取value - * - * @param array $options - * @param string $key - * @param string $default - * @param bool $isCheckEmpty - * @param bool $isCheckBool - * @return bool|null - */ - private function getValue($options, $key, $default = NULL, $isCheckEmpty = false, $isCheckBool = false) - { - $value = $default; - if (isset($options[$key])) { - if ($isCheckEmpty) { - if (!empty($options[$key])) { - $value = $options[$key]; - } - } else { - $value = $options[$key]; - } - unset($options[$key]); - } - if ($isCheckBool) { - if ($value !== true && $value !== false) { - $value = false; - } - } - return $value; - } - - /** - * 获取mimetype类型 - * - * @param string $object - * @return string - */ - private function getMimeType($object, $file = null) - { - if (!is_null($file)) { - $type = MimeTypes::getMimetype($file); - if (!is_null($type)) { - return $type; - } - } - - $type = MimeTypes::getMimetype($object); - if (!is_null($type)) { - return $type; - } - - return self::DEFAULT_CONTENT_TYPE; - } - - /** - * 验证并且执行请求,按照OSS Api协议,执行操作 - * - * @param array $options - * @return ResponseCore - * @throws OssException - * @throws RequestCore_Exception - */ - private function auth($options) - { - OssUtil::validateOptions($options); - //验证bucket,list_bucket时不需要验证 - $this->authPrecheckBucket($options); - //验证object - $this->authPrecheckObject($options); - //Object名称的编码必须是utf8 - $this->authPrecheckObjectEncoding($options); - //验证ACL - $this->authPrecheckAcl($options); - // 获得当次请求使用的协议头,是https还是http - $scheme = $this->useSSL ? 'https://' : 'http://'; - // 获得当次请求使用的hostname,如果是公共域名或者专有域名,bucket拼在前面构成三级域名 - $hostname = $this->generateHostname($options[self::OSS_BUCKET]); - $string_to_sign = ''; - $headers = $this->generateHeaders($options, $hostname); - $signable_query_string_params = $this->generateSignableQueryStringParam($options); - $signable_query_string = OssUtil::toQueryString($signable_query_string_params); - $resource_uri = $this->generateResourceUri($options); - //生成请求URL - $conjunction = '?'; - $non_signable_resource = ''; - if (isset($options[self::OSS_SUB_RESOURCE])) { - $conjunction = '&'; - } - if ($signable_query_string !== '') { - $signable_query_string = $conjunction . $signable_query_string; - $conjunction = '&'; - } - $query_string = $this->generateQueryString($options); - if ($query_string !== '') { - $non_signable_resource .= $conjunction . $query_string; - $conjunction = '&'; - } - $this->requestUrl = $scheme . $hostname . $resource_uri . $signable_query_string . $non_signable_resource; - - //创建请求 - $request = new RequestCore($this->requestUrl, $this->requestProxy); - $request->set_useragent($this->generateUserAgent()); - // Streaming uploads - if (isset($options[self::OSS_FILE_UPLOAD])) { - if (is_resource($options[self::OSS_FILE_UPLOAD])) { - $length = null; - - if (isset($options[self::OSS_CONTENT_LENGTH])) { - $length = $options[self::OSS_CONTENT_LENGTH]; - } elseif (isset($options[self::OSS_SEEK_TO])) { - $stats = fstat($options[self::OSS_FILE_UPLOAD]); - if ($stats && $stats[self::OSS_SIZE] >= 0) { - $length = $stats[self::OSS_SIZE] - (integer)$options[self::OSS_SEEK_TO]; - } - } - $request->set_read_stream($options[self::OSS_FILE_UPLOAD], $length); - } else { - $request->set_read_file($options[self::OSS_FILE_UPLOAD]); - $length = $request->read_stream_size; - if (isset($options[self::OSS_CONTENT_LENGTH])) { - $length = $options[self::OSS_CONTENT_LENGTH]; - } elseif (isset($options[self::OSS_SEEK_TO]) && isset($length)) { - $length -= (integer)$options[self::OSS_SEEK_TO]; - } - $request->set_read_stream_size($length); - } - } - if (isset($options[self::OSS_SEEK_TO])) { - $request->set_seek_position((integer)$options[self::OSS_SEEK_TO]); - } - if (isset($options[self::OSS_FILE_DOWNLOAD])) { - if (is_resource($options[self::OSS_FILE_DOWNLOAD])) { - $request->set_write_stream($options[self::OSS_FILE_DOWNLOAD]); - } else { - $request->set_write_file($options[self::OSS_FILE_DOWNLOAD]); - } - } - - if (isset($options[self::OSS_METHOD])) { - $request->set_method($options[self::OSS_METHOD]); - $string_to_sign .= $options[self::OSS_METHOD] . "\n"; - } - - if (isset($options[self::OSS_CONTENT])) { - $request->set_body($options[self::OSS_CONTENT]); - if ($headers[self::OSS_CONTENT_TYPE] === 'application/x-www-form-urlencoded') { - $headers[self::OSS_CONTENT_TYPE] = 'application/octet-stream'; - } - - $headers[self::OSS_CONTENT_LENGTH] = strlen($options[self::OSS_CONTENT]); - $headers[self::OSS_CONTENT_MD5] = base64_encode(md5($options[self::OSS_CONTENT], true)); - } - - if (isset($options[self::OSS_CALLBACK])) { - $headers[self::OSS_CALLBACK] = base64_encode($options[self::OSS_CALLBACK]); - } - if (isset($options[self::OSS_CALLBACK_VAR])) { - $headers[self::OSS_CALLBACK_VAR] = base64_encode($options[self::OSS_CALLBACK_VAR]); - } - - if (!isset($headers[self::OSS_ACCEPT_ENCODING])) { - $headers[self::OSS_ACCEPT_ENCODING] = ''; - } - - uksort($headers, 'strnatcasecmp'); - - foreach ($headers as $header_key => $header_value) { - $header_value = str_replace(array("\r", "\n"), '', $header_value); - if ($header_value !== '' || $header_key === self::OSS_ACCEPT_ENCODING) { - $request->add_header($header_key, $header_value); - } - - if ( - strtolower($header_key) === 'content-md5' || - strtolower($header_key) === 'content-type' || - strtolower($header_key) === 'date' || - (isset($options['self::OSS_PREAUTH']) && (integer)$options['self::OSS_PREAUTH'] > 0) - ) { - $string_to_sign .= $header_value . "\n"; - } elseif (substr(strtolower($header_key), 0, 6) === self::OSS_DEFAULT_PREFIX) { - $string_to_sign .= strtolower($header_key) . ':' . $header_value . "\n"; - } - } - // 生成 signable_resource - $signable_resource = $this->generateSignableResource($options); - $string_to_sign .= rawurldecode($signable_resource) . urldecode($signable_query_string); - - //对?后面的要签名的string字母序排序 - $string_to_sign_ordered = $this->stringToSignSorted($string_to_sign); - - $signature = base64_encode(hash_hmac('sha1', $string_to_sign_ordered, $this->accessKeySecret, true)); - $request->add_header('Authorization', 'OSS ' . $this->accessKeyId . ':' . $signature); - - if (isset($options[self::OSS_PREAUTH]) && (integer)$options[self::OSS_PREAUTH] > 0) { - $signed_url = $this->requestUrl . $conjunction . self::OSS_URL_ACCESS_KEY_ID . '=' . rawurlencode($this->accessKeyId) . '&' . self::OSS_URL_EXPIRES . '=' . $options[self::OSS_PREAUTH] . '&' . self::OSS_URL_SIGNATURE . '=' . rawurlencode($signature); - return $signed_url; - } elseif (isset($options[self::OSS_PREAUTH])) { - return $this->requestUrl; - } - - if ($this->timeout !== 0) { - $request->timeout = $this->timeout; - } - if ($this->connectTimeout !== 0) { - $request->connect_timeout = $this->connectTimeout; - } - - try { - $request->send_request(); - } catch (RequestCore_Exception $e) { - throw(new OssException('RequestCoreException: ' . $e->getMessage())); - } - $response_header = $request->get_response_header(); - $response_header['oss-request-url'] = $this->requestUrl; - $response_header['oss-redirects'] = $this->redirects; - $response_header['oss-stringtosign'] = $string_to_sign; - $response_header['oss-requestheaders'] = $request->request_headers; - - $data = new ResponseCore($response_header, $request->get_response_body(), $request->get_response_code()); - //retry if OSS Internal Error - if ((integer)$request->get_response_code() === 500) { - if ($this->redirects <= $this->maxRetries) { - //设置休眠 - $delay = (integer)(pow(4, $this->redirects) * 100000); - usleep($delay); - $this->redirects++; - $data = $this->auth($options); - } - } - - $this->redirects = 0; - return $data; - } - - /** - * 设置最大尝试次数 - * - * @param int $maxRetries - * @return void - */ - public function setMaxTries($maxRetries = 3) - { - $this->maxRetries = $maxRetries; - } - - /** - * 获取最大尝试次数 - * - * @return int - */ - public function getMaxRetries() - { - return $this->maxRetries; - } - - /** - * 打开sts enable标志,使用户构造函数中传入的$sts生效 - * - * @param boolean $enable - */ - public function setSignStsInUrl($enable) - { - $this->enableStsInUrl = $enable; - } - - /** - * @return boolean - */ - public function isUseSSL() - { - return $this->useSSL; - } - - /** - * @param boolean $useSSL - */ - public function setUseSSL($useSSL) - { - $this->useSSL = $useSSL; - } - - /** - * 检查bucket名称格式是否正确,如果非法抛出异常 - * - * @param $options - * @throws OssException - */ - private function authPrecheckBucket($options) - { - if (!(('/' == $options[self::OSS_OBJECT]) && ('' == $options[self::OSS_BUCKET]) && ('GET' == $options[self::OSS_METHOD])) && !OssUtil::validateBucket($options[self::OSS_BUCKET])) { - throw new OssException('"' . $options[self::OSS_BUCKET] . '"' . 'bucket name is invalid'); - } - } - - /** - * - * 检查object名称格式是否正确,如果非法抛出异常 - * - * @param $options - * @throws OssException - */ - private function authPrecheckObject($options) - { - if (isset($options[self::OSS_OBJECT]) && $options[self::OSS_OBJECT] === '/') { - return; - } - - if (isset($options[self::OSS_OBJECT]) && !OssUtil::validateObject($options[self::OSS_OBJECT])) { - throw new OssException('"' . $options[self::OSS_OBJECT] . '"' . ' object name is invalid'); - } - } - - /** - * 检查object的编码,如果是gbk或者gb2312则尝试将其转化为utf8编码 - * - * @param mixed $options 参数 - */ - private function authPrecheckObjectEncoding(&$options) - { - $tmp_object = $options[self::OSS_OBJECT]; - try { - if (OssUtil::isGb2312($options[self::OSS_OBJECT])) { - $options[self::OSS_OBJECT] = iconv('GB2312', "UTF-8//IGNORE", $options[self::OSS_OBJECT]); - } elseif (OssUtil::checkChar($options[self::OSS_OBJECT], true)) { - $options[self::OSS_OBJECT] = iconv('GBK', "UTF-8//IGNORE", $options[self::OSS_OBJECT]); - } - } catch (\Exception $e) { - try { - $tmp_object = iconv(mb_detect_encoding($tmp_object), "UTF-8", $tmp_object); - } catch (\Exception $e) { - } - } - $options[self::OSS_OBJECT] = $tmp_object; - } - - /** - * 检查ACL是否是预定义中三种之一,如果不是抛出异常 - * - * @param $options - * @throws OssException - */ - private function authPrecheckAcl($options) - { - if (isset($options[self::OSS_HEADERS][self::OSS_ACL]) && !empty($options[self::OSS_HEADERS][self::OSS_ACL])) { - if (!in_array(strtolower($options[self::OSS_HEADERS][self::OSS_ACL]), self::$OSS_ACL_TYPES)) { - throw new OssException($options[self::OSS_HEADERS][self::OSS_ACL] . ':' . 'acl is invalid(private,public-read,public-read-write)'); - } - } - } - - /** - * 获得档次请求使用的域名 - * bucket在前的三级域名,或者二级域名,如果是cname或者ip的话,则是二级域名 - * - * @param $bucket - * @return string 剥掉协议头的域名 - */ - private function generateHostname($bucket) - { - if ($this->hostType === self::OSS_HOST_TYPE_IP) { - $hostname = $this->hostname; - } elseif ($this->hostType === self::OSS_HOST_TYPE_CNAME) { - $hostname = $this->hostname; - } else { - // 专有域或者官网endpoint - $hostname = ($bucket == '') ? $this->hostname : ($bucket . '.') . $this->hostname; - } - return $hostname; - } - - /** - * 获得当次请求的资源定位字段 - * - * @param $options - * @return string 资源定位字段 - */ - private function generateResourceUri($options) - { - $resource_uri = ""; - - // resource_uri + bucket - if (isset($options[self::OSS_BUCKET]) && '' !== $options[self::OSS_BUCKET]) { - if ($this->hostType === self::OSS_HOST_TYPE_IP) { - $resource_uri = '/' . $options[self::OSS_BUCKET]; - } - } - - // resource_uri + object - if (isset($options[self::OSS_OBJECT]) && '/' !== $options[self::OSS_OBJECT]) { - $resource_uri .= '/' . str_replace(array('%2F', '%25'), array('/', '%'), rawurlencode($options[self::OSS_OBJECT])); - } - - // resource_uri + sub_resource - $conjunction = '?'; - if (isset($options[self::OSS_SUB_RESOURCE])) { - $resource_uri .= $conjunction . $options[self::OSS_SUB_RESOURCE]; - } - return $resource_uri; - } - - /** - * 生成signalbe_query_string_param, array类型 - * - * @param array $options - * @return array - */ - private function generateSignableQueryStringParam($options) - { - $signableQueryStringParams = array(); - $signableList = array( - self::OSS_PART_NUM, - 'response-content-type', - 'response-content-language', - 'response-cache-control', - 'response-content-encoding', - 'response-expires', - 'response-content-disposition', - self::OSS_UPLOAD_ID, - self::OSS_COMP, - self::OSS_LIVE_CHANNEL_STATUS, - self::OSS_LIVE_CHANNEL_START_TIME, - self::OSS_LIVE_CHANNEL_END_TIME, - self::OSS_PROCESS, - self::OSS_POSITION, - self::OSS_SYMLINK, - self::OSS_RESTORE, - ); - - foreach ($signableList as $item) { - if (isset($options[$item])) { - $signableQueryStringParams[$item] = $options[$item]; - } - } - - if ($this->enableStsInUrl && (!is_null($this->securityToken))) { - $signableQueryStringParams["security-token"] = $this->securityToken; - } - - return $signableQueryStringParams; - } - - /** - * 生成用于签名resource段 - * - * @param mixed $options - * @return string - */ - private function generateSignableResource($options) - { - $signableResource = ""; - $signableResource .= '/'; - if (isset($options[self::OSS_BUCKET]) && '' !== $options[self::OSS_BUCKET]) { - $signableResource .= $options[self::OSS_BUCKET]; - // 如果操作没有Object操作的话,这里最后是否有斜线有个trick,ip的域名下,不需要加'/', 否则需要加'/' - if ($options[self::OSS_OBJECT] == '/') { - if ($this->hostType !== self::OSS_HOST_TYPE_IP) { - $signableResource .= "/"; - } - } - } - //signable_resource + object - if (isset($options[self::OSS_OBJECT]) && '/' !== $options[self::OSS_OBJECT]) { - $signableResource .= '/' . str_replace(array('%2F', '%25'), array('/', '%'), rawurlencode($options[self::OSS_OBJECT])); - } - if (isset($options[self::OSS_SUB_RESOURCE])) { - $signableResource .= '?' . $options[self::OSS_SUB_RESOURCE]; - } - return $signableResource; - } - - /** - * 生成query_string - * - * @param mixed $options - * @return string - */ - private function generateQueryString($options) - { - //请求参数 - $queryStringParams = array(); - if (isset($options[self::OSS_QUERY_STRING])) { - $queryStringParams = array_merge($queryStringParams, $options[self::OSS_QUERY_STRING]); - } - return OssUtil::toQueryString($queryStringParams); - } - - private function stringToSignSorted($string_to_sign) - { - $queryStringSorted = ''; - $explodeResult = explode('?', $string_to_sign); - $index = count($explodeResult); - if ($index === 1) - return $string_to_sign; - - $queryStringParams = explode('&', $explodeResult[$index - 1]); - sort($queryStringParams); - - foreach($queryStringParams as $params) - { - $queryStringSorted .= $params . '&'; - } - - $queryStringSorted = substr($queryStringSorted, 0, -1); - - return $explodeResult[0] . '?' . $queryStringSorted; - } - - /** - * 初始化headers - * - * @param mixed $options - * @param string $hostname hostname - * @return array - */ - private function generateHeaders($options, $hostname) - { - $headers = array( - self::OSS_CONTENT_MD5 => '', - self::OSS_CONTENT_TYPE => isset($options[self::OSS_CONTENT_TYPE]) ? $options[self::OSS_CONTENT_TYPE] : self::DEFAULT_CONTENT_TYPE, - self::OSS_DATE => isset($options[self::OSS_DATE]) ? $options[self::OSS_DATE] : gmdate('D, d M Y H:i:s \G\M\T'), - self::OSS_HOST => $hostname, - ); - if (isset($options[self::OSS_CONTENT_MD5])) { - $headers[self::OSS_CONTENT_MD5] = $options[self::OSS_CONTENT_MD5]; - } - - //添加stsSecurityToken - if ((!is_null($this->securityToken)) && (!$this->enableStsInUrl)) { - $headers[self::OSS_SECURITY_TOKEN] = $this->securityToken; - } - //合并HTTP headers - if (isset($options[self::OSS_HEADERS])) { - $headers = array_merge($headers, $options[self::OSS_HEADERS]); - } - return $headers; - } - - /** - * 生成请求用的UserAgent - * - * @return string - */ - private function generateUserAgent() - { - return self::OSS_NAME . "/" . self::OSS_VERSION . " (" . php_uname('s') . "/" . php_uname('r') . "/" . php_uname('m') . ";" . PHP_VERSION . ")"; - } - - /** - * 检查endpoint的种类 - * 如有有协议头,剥去协议头 - * 并且根据参数 is_cname 和endpoint本身,判定域名类型,是ip,cname,还是专有域或者官网域名 - * - * @param string $endpoint - * @param boolean $isCName - * @return string 剥掉协议头的域名 - */ - private function checkEndpoint($endpoint, $isCName) - { - $ret_endpoint = null; - if (strpos($endpoint, 'http://') === 0) { - $ret_endpoint = substr($endpoint, strlen('http://')); - } elseif (strpos($endpoint, 'https://') === 0) { - $ret_endpoint = substr($endpoint, strlen('https://')); - $this->useSSL = true; - } else { - $ret_endpoint = $endpoint; - } - - if ($isCName) { - $this->hostType = self::OSS_HOST_TYPE_CNAME; - } elseif (OssUtil::isIPFormat($ret_endpoint)) { - $this->hostType = self::OSS_HOST_TYPE_IP; - } else { - $this->hostType = self::OSS_HOST_TYPE_NORMAL; - } - return $ret_endpoint; - } - - /** - * 用来检查sdk所以来的扩展是否打开 - * - * @throws OssException - */ - public static function checkEnv() - { - if (function_exists('get_loaded_extensions')) { - //检测curl扩展 - $enabled_extension = array("curl"); - $extensions = get_loaded_extensions(); - if ($extensions) { - foreach ($enabled_extension as $item) { - if (!in_array($item, $extensions)) { - throw new OssException("Extension {" . $item . "} is not installed or not enabled, please check your php env."); - } - } - } else { - throw new OssException("function get_loaded_extensions not found."); - } - } else { - throw new OssException('Function get_loaded_extensions has been disabled, please check php config.'); - } - } - - /** - //* 设置http库的请求超时时间,单位秒 - * - * @param int $timeout - */ - public function setTimeout($timeout) - { - $this->timeout = $timeout; - } - - /** - * 设置http库的连接超时时间,单位秒 - * - * @param int $connectTimeout - */ - public function setConnectTimeout($connectTimeout) - { - $this->connectTimeout = $connectTimeout; - } - - // 生命周期相关常量 - const OSS_LIFECYCLE_EXPIRATION = "Expiration"; - const OSS_LIFECYCLE_TIMING_DAYS = "Days"; - const OSS_LIFECYCLE_TIMING_DATE = "Date"; - //OSS 内部常量 - const OSS_BUCKET = 'bucket'; - const OSS_OBJECT = 'object'; - const OSS_HEADERS = OssUtil::OSS_HEADERS; - const OSS_METHOD = 'method'; - const OSS_QUERY = 'query'; - const OSS_BASENAME = 'basename'; - const OSS_MAX_KEYS = 'max-keys'; - const OSS_UPLOAD_ID = 'uploadId'; - const OSS_PART_NUM = 'partNumber'; - const OSS_COMP = 'comp'; - const OSS_LIVE_CHANNEL_STATUS = 'status'; - const OSS_LIVE_CHANNEL_START_TIME = 'startTime'; - const OSS_LIVE_CHANNEL_END_TIME = 'endTime'; - const OSS_POSITION = 'position'; - const OSS_MAX_KEYS_VALUE = 100; - const OSS_MAX_OBJECT_GROUP_VALUE = OssUtil::OSS_MAX_OBJECT_GROUP_VALUE; - const OSS_MAX_PART_SIZE = OssUtil::OSS_MAX_PART_SIZE; - const OSS_MID_PART_SIZE = OssUtil::OSS_MID_PART_SIZE; - const OSS_MIN_PART_SIZE = OssUtil::OSS_MIN_PART_SIZE; - const OSS_FILE_SLICE_SIZE = 8192; - const OSS_PREFIX = 'prefix'; - const OSS_DELIMITER = 'delimiter'; - const OSS_MARKER = 'marker'; - const OSS_ACCEPT_ENCODING = 'Accept-Encoding'; - const OSS_CONTENT_MD5 = 'Content-Md5'; - const OSS_SELF_CONTENT_MD5 = 'x-oss-meta-md5'; - const OSS_CONTENT_TYPE = 'Content-Type'; - const OSS_CONTENT_LENGTH = 'Content-Length'; - const OSS_IF_MODIFIED_SINCE = 'If-Modified-Since'; - const OSS_IF_UNMODIFIED_SINCE = 'If-Unmodified-Since'; - const OSS_IF_MATCH = 'If-Match'; - const OSS_IF_NONE_MATCH = 'If-None-Match'; - const OSS_CACHE_CONTROL = 'Cache-Control'; - const OSS_EXPIRES = 'Expires'; - const OSS_PREAUTH = 'preauth'; - const OSS_CONTENT_COING = 'Content-Coding'; - const OSS_CONTENT_DISPOSTION = 'Content-Disposition'; - const OSS_RANGE = 'range'; - const OSS_ETAG = 'etag'; - const OSS_LAST_MODIFIED = 'lastmodified'; - const OS_CONTENT_RANGE = 'Content-Range'; - const OSS_CONTENT = OssUtil::OSS_CONTENT; - const OSS_BODY = 'body'; - const OSS_LENGTH = OssUtil::OSS_LENGTH; - const OSS_HOST = 'Host'; - const OSS_DATE = 'Date'; - const OSS_AUTHORIZATION = 'Authorization'; - const OSS_FILE_DOWNLOAD = 'fileDownload'; - const OSS_FILE_UPLOAD = 'fileUpload'; - const OSS_PART_SIZE = 'partSize'; - const OSS_SEEK_TO = 'seekTo'; - const OSS_SIZE = 'size'; - const OSS_QUERY_STRING = 'query_string'; - const OSS_SUB_RESOURCE = 'sub_resource'; - const OSS_DEFAULT_PREFIX = 'x-oss-'; - const OSS_CHECK_MD5 = 'checkmd5'; - const DEFAULT_CONTENT_TYPE = 'application/octet-stream'; - const OSS_SYMLINK_TARGET = 'x-oss-symlink-target'; - const OSS_SYMLINK = 'symlink'; - const OSS_HTTP_CODE = 'http_code'; - const OSS_REQUEST_ID = 'x-oss-request-id'; - const OSS_INFO = 'info'; - const OSS_STORAGE = 'storage'; - const OSS_RESTORE = 'restore'; - const OSS_STORAGE_STANDARD = 'Standard'; - const OSS_STORAGE_IA = 'IA'; - const OSS_STORAGE_ARCHIVE = 'Archive'; - - //私有URL变量 - const OSS_URL_ACCESS_KEY_ID = 'OSSAccessKeyId'; - const OSS_URL_EXPIRES = 'Expires'; - const OSS_URL_SIGNATURE = 'Signature'; - //HTTP方法 - const OSS_HTTP_GET = 'GET'; - const OSS_HTTP_PUT = 'PUT'; - const OSS_HTTP_HEAD = 'HEAD'; - const OSS_HTTP_POST = 'POST'; - const OSS_HTTP_DELETE = 'DELETE'; - const OSS_HTTP_OPTIONS = 'OPTIONS'; - //其他常量 - const OSS_ACL = 'x-oss-acl'; - const OSS_OBJECT_ACL = 'x-oss-object-acl'; - const OSS_OBJECT_GROUP = 'x-oss-file-group'; - const OSS_MULTI_PART = 'uploads'; - const OSS_MULTI_DELETE = 'delete'; - const OSS_OBJECT_COPY_SOURCE = 'x-oss-copy-source'; - const OSS_OBJECT_COPY_SOURCE_RANGE = "x-oss-copy-source-range"; - const OSS_PROCESS = "x-oss-process"; - const OSS_CALLBACK = "x-oss-callback"; - const OSS_CALLBACK_VAR = "x-oss-callback-var"; - //支持STS SecurityToken - const OSS_SECURITY_TOKEN = "x-oss-security-token"; - const OSS_ACL_TYPE_PRIVATE = 'private'; - const OSS_ACL_TYPE_PUBLIC_READ = 'public-read'; - const OSS_ACL_TYPE_PUBLIC_READ_WRITE = 'public-read-write'; - const OSS_ENCODING_TYPE = "encoding-type"; - const OSS_ENCODING_TYPE_URL = "url"; - - // 域名类型 - const OSS_HOST_TYPE_NORMAL = "normal";//http://bucket.oss-cn-hangzhou.aliyuncs.com/object - const OSS_HOST_TYPE_IP = "ip"; //http://1.1.1.1/bucket/object - const OSS_HOST_TYPE_SPECIAL = 'special'; //http://bucket.guizhou.gov/object - const OSS_HOST_TYPE_CNAME = "cname"; //http://mydomain.com/object - //OSS ACL数组 - static $OSS_ACL_TYPES = array( - self::OSS_ACL_TYPE_PRIVATE, - self::OSS_ACL_TYPE_PUBLIC_READ, - self::OSS_ACL_TYPE_PUBLIC_READ_WRITE - ); - // OssClient版本信息 - const OSS_NAME = "aliyun-sdk-php"; - const OSS_VERSION = "2.3.0"; - const OSS_BUILD = "20180105"; - const OSS_AUTHOR = ""; - const OSS_OPTIONS_ORIGIN = 'Origin'; - const OSS_OPTIONS_REQUEST_METHOD = 'Access-Control-Request-Method'; - const OSS_OPTIONS_REQUEST_HEADERS = 'Access-Control-Request-Headers'; - - //是否使用ssl - private $useSSL = false; - private $maxRetries = 3; - private $redirects = 0; - - // 用户提供的域名类型,有四种 OSS_HOST_TYPE_NORMAL, OSS_HOST_TYPE_IP, OSS_HOST_TYPE_SPECIAL, OSS_HOST_TYPE_CNAME - private $hostType = self::OSS_HOST_TYPE_NORMAL; - private $requestUrl; - private $accessKeyId; - private $accessKeySecret; - private $hostname; - private $securityToken; - private $requestProxy = null; - private $enableStsInUrl = false; - private $timeout = 0; - private $connectTimeout = 0; -} diff --git a/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/AclResult.php b/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/AclResult.php deleted file mode 100644 index 6da086042..000000000 --- a/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/AclResult.php +++ /dev/null @@ -1,32 +0,0 @@ -rawResponse->body; - if (empty($content)) { - throw new OssException("body is null"); - } - $xml = simplexml_load_string($content); - if (isset($xml->AccessControlList->Grant)) { - return strval($xml->AccessControlList->Grant); - } else { - throw new OssException("xml format exception"); - } - } -} \ No newline at end of file diff --git a/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/AppendResult.php b/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/AppendResult.php deleted file mode 100644 index 433c03eb1..000000000 --- a/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/AppendResult.php +++ /dev/null @@ -1,27 +0,0 @@ -rawResponse->header; - if (isset($header["x-oss-next-append-position"])) { - return intval($header["x-oss-next-append-position"]); - } - throw new OssException("cannot get next-append-position"); - } -} \ No newline at end of file diff --git a/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/BodyResult.php b/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/BodyResult.php deleted file mode 100644 index 44ba15ef5..000000000 --- a/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/BodyResult.php +++ /dev/null @@ -1,19 +0,0 @@ -rawResponse->body) ? "" : $this->rawResponse->body; - } -} \ No newline at end of file diff --git a/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/CallbackResult.php b/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/CallbackResult.php deleted file mode 100644 index 514e985c2..000000000 --- a/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/CallbackResult.php +++ /dev/null @@ -1,21 +0,0 @@ -rawResponse->status; - if ((int)(intval($status) / 100) == 2 && (int)(intval($status)) !== 203) { - return true; - } - return false; - } - -} diff --git a/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/CopyObjectResult.php b/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/CopyObjectResult.php deleted file mode 100644 index 498723e1b..000000000 --- a/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/CopyObjectResult.php +++ /dev/null @@ -1,30 +0,0 @@ -rawResponse->body; - $xml = simplexml_load_string($body); - $result = array(); - - if (isset($xml->LastModified)) { - $result[] = $xml->LastModified; - } - if (isset($xml->ETag)) { - $result[] = $xml->ETag; - } - - return $result; - } -} diff --git a/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/DeleteObjectsResult.php b/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/DeleteObjectsResult.php deleted file mode 100644 index dc373b854..000000000 --- a/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/DeleteObjectsResult.php +++ /dev/null @@ -1,27 +0,0 @@ -rawResponse->body; - $xml = simplexml_load_string($body); - $objects = array(); - - if (isset($xml->Deleted)) { - foreach($xml->Deleted as $deleteKey) - $objects[] = $deleteKey->Key; - } - return $objects; - } -} diff --git a/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/ExistResult.php b/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/ExistResult.php deleted file mode 100644 index f7aa287c8..000000000 --- a/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/ExistResult.php +++ /dev/null @@ -1,35 +0,0 @@ -rawResponse->status) === 200 ? true : false; - } - - /** - * 根据返回http状态码判断,[200-299]即认为是OK, 判断是否存在的接口,404也认为是一种 - * 有效响应 - * - * @return bool - */ - protected function isResponseOk() - { - $status = $this->rawResponse->status; - if ((int)(intval($status) / 100) == 2 || (int)(intval($status)) === 404) { - return true; - } - return false; - } - -} \ No newline at end of file diff --git a/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/GetCnameResult.php b/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/GetCnameResult.php deleted file mode 100644 index eed01f902..000000000 --- a/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/GetCnameResult.php +++ /dev/null @@ -1,19 +0,0 @@ -rawResponse->body; - $config = new CnameConfig(); - $config->parseFromXml($content); - return $config; - } -} \ No newline at end of file diff --git a/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/GetCorsResult.php b/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/GetCorsResult.php deleted file mode 100644 index a51afe2a8..000000000 --- a/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/GetCorsResult.php +++ /dev/null @@ -1,35 +0,0 @@ -rawResponse->body; - $config = new CorsConfig(); - $config->parseFromXml($content); - return $config; - } - - /** - * 根据返回http状态码判断,[200-299]即认为是OK, 获取bucket相关配置的接口,404也认为是一种 - * 有效响应 - * - * @return bool - */ - protected function isResponseOk() - { - $status = $this->rawResponse->status; - if ((int)(intval($status) / 100) == 2 || (int)(intval($status)) === 404) { - return true; - } - return false; - } - -} \ No newline at end of file diff --git a/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/GetLifecycleResult.php b/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/GetLifecycleResult.php deleted file mode 100644 index 6b440c352..000000000 --- a/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/GetLifecycleResult.php +++ /dev/null @@ -1,41 +0,0 @@ -rawResponse->body; - $config = new LifecycleConfig(); - $config->parseFromXml($content); - return $config; - } - - /** - * 根据返回http状态码判断,[200-299]即认为是OK, 获取bucket相关配置的接口,404也认为是一种 - * 有效响应 - * - * @return bool - */ - protected function isResponseOk() - { - $status = $this->rawResponse->status; - if ((int)(intval($status) / 100) == 2 || (int)(intval($status)) === 404) { - return true; - } - return false; - } -} \ No newline at end of file diff --git a/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/GetLiveChannelHistoryResult.php b/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/GetLiveChannelHistoryResult.php deleted file mode 100644 index 202a6681d..000000000 --- a/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/GetLiveChannelHistoryResult.php +++ /dev/null @@ -1,19 +0,0 @@ -rawResponse->body; - $channelList = new GetLiveChannelHistory(); - $channelList->parseFromXml($content); - return $channelList; - } -} diff --git a/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/GetLiveChannelInfoResult.php b/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/GetLiveChannelInfoResult.php deleted file mode 100644 index d5a9005e7..000000000 --- a/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/GetLiveChannelInfoResult.php +++ /dev/null @@ -1,19 +0,0 @@ -rawResponse->body; - $channelList = new GetLiveChannelInfo(); - $channelList->parseFromXml($content); - return $channelList; - } -} diff --git a/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/GetLiveChannelStatusResult.php b/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/GetLiveChannelStatusResult.php deleted file mode 100644 index 6b8a60f59..000000000 --- a/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/GetLiveChannelStatusResult.php +++ /dev/null @@ -1,19 +0,0 @@ -rawResponse->body; - $channelList = new GetLiveChannelStatus(); - $channelList->parseFromXml($content); - return $channelList; - } -} diff --git a/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/GetLocationResult.php b/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/GetLocationResult.php deleted file mode 100644 index 71c4c96e9..000000000 --- a/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/GetLocationResult.php +++ /dev/null @@ -1,30 +0,0 @@ -rawResponse->body; - if (empty($content)) { - throw new OssException("body is null"); - } - $xml = simplexml_load_string($content); - return $xml; - } -} \ No newline at end of file diff --git a/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/GetLoggingResult.php b/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/GetLoggingResult.php deleted file mode 100644 index 72fc3aeb1..000000000 --- a/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/GetLoggingResult.php +++ /dev/null @@ -1,41 +0,0 @@ -rawResponse->body; - $config = new LoggingConfig(); - $config->parseFromXml($content); - return $config; - } - - /** - * 根据返回http状态码判断,[200-299]即认为是OK, 获取bucket相关配置的接口,404也认为是一种 - * 有效响应 - * - * @return bool - */ - protected function isResponseOk() - { - $status = $this->rawResponse->status; - if ((int)(intval($status) / 100) == 2 || (int)(intval($status)) === 404) { - return true; - } - return false; - } -} \ No newline at end of file diff --git a/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/GetRefererResult.php b/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/GetRefererResult.php deleted file mode 100644 index aee50d3ae..000000000 --- a/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/GetRefererResult.php +++ /dev/null @@ -1,41 +0,0 @@ -rawResponse->body; - $config = new RefererConfig(); - $config->parseFromXml($content); - return $config; - } - - /** - * 根据返回http状态码判断,[200-299]即认为是OK, 获取bucket相关配置的接口,404也认为是一种 - * 有效响应 - * - * @return bool - */ - protected function isResponseOk() - { - $status = $this->rawResponse->status; - if ((int)(intval($status) / 100) == 2 || (int)(intval($status)) === 404) { - return true; - } - return false; - } -} \ No newline at end of file diff --git a/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/GetStorageCapacityResult.php b/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/GetStorageCapacityResult.php deleted file mode 100644 index 84e491606..000000000 --- a/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/GetStorageCapacityResult.php +++ /dev/null @@ -1,34 +0,0 @@ -rawResponse->body; - if (empty($content)) { - throw new OssException("body is null"); - } - $xml = simplexml_load_string($content); - if (isset($xml->StorageCapacity)) { - return intval($xml->StorageCapacity); - } else { - throw new OssException("xml format exception"); - } - } -} \ No newline at end of file diff --git a/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/GetWebsiteResult.php b/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/GetWebsiteResult.php deleted file mode 100644 index 3099172cd..000000000 --- a/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/GetWebsiteResult.php +++ /dev/null @@ -1,40 +0,0 @@ -rawResponse->body; - $config = new WebsiteConfig(); - $config->parseFromXml($content); - return $config; - } - - /** - * 根据返回http状态码判断,[200-299]即认为是OK, 获取bucket相关配置的接口,404也认为是一种 - * 有效响应 - * - * @return bool - */ - protected function isResponseOk() - { - $status = $this->rawResponse->status; - if ((int)(intval($status) / 100) == 2 || (int)(intval($status)) === 404) { - return true; - } - return false; - } -} \ No newline at end of file diff --git a/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/HeaderResult.php b/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/HeaderResult.php deleted file mode 100644 index c9aae561f..000000000 --- a/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/HeaderResult.php +++ /dev/null @@ -1,23 +0,0 @@ -rawResponse->header) ? array() : $this->rawResponse->header; - } - -} \ No newline at end of file diff --git a/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/InitiateMultipartUploadResult.php b/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/InitiateMultipartUploadResult.php deleted file mode 100644 index af985f272..000000000 --- a/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/InitiateMultipartUploadResult.php +++ /dev/null @@ -1,29 +0,0 @@ -rawResponse->body; - $xml = simplexml_load_string($content); - if (isset($xml->UploadId)) { - return strval($xml->UploadId); - } - throw new OssException("cannot get UploadId"); - } -} \ No newline at end of file diff --git a/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/ListBucketsResult.php b/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/ListBucketsResult.php deleted file mode 100644 index a58fb2d61..000000000 --- a/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/ListBucketsResult.php +++ /dev/null @@ -1,33 +0,0 @@ -rawResponse->body; - $xml = new \SimpleXMLElement($content); - if (isset($xml->Buckets) && isset($xml->Buckets->Bucket)) { - foreach ($xml->Buckets->Bucket as $bucket) { - $bucketInfo = new BucketInfo(strval($bucket->Location), - strval($bucket->Name), - strval($bucket->CreationDate)); - $bucketList[] = $bucketInfo; - } - } - return new BucketListInfo($bucketList); - } -} \ No newline at end of file diff --git a/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/ListLiveChannelResult.php b/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/ListLiveChannelResult.php deleted file mode 100644 index 1a6e2a41f..000000000 --- a/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/ListLiveChannelResult.php +++ /dev/null @@ -1,16 +0,0 @@ -rawResponse->body; - $channelList = new LiveChannelListInfo(); - $channelList->parseFromXml($content); - return $channelList; - } -} diff --git a/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/ListMultipartUploadResult.php b/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/ListMultipartUploadResult.php deleted file mode 100644 index bcb20bf59..000000000 --- a/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/ListMultipartUploadResult.php +++ /dev/null @@ -1,55 +0,0 @@ -rawResponse->body; - $xml = simplexml_load_string($content); - - $encodingType = isset($xml->EncodingType) ? strval($xml->EncodingType) : ""; - $bucket = isset($xml->Bucket) ? strval($xml->Bucket) : ""; - $keyMarker = isset($xml->KeyMarker) ? strval($xml->KeyMarker) : ""; - $keyMarker = OssUtil::decodeKey($keyMarker, $encodingType); - $uploadIdMarker = isset($xml->UploadIdMarker) ? strval($xml->UploadIdMarker) : ""; - $nextKeyMarker = isset($xml->NextKeyMarker) ? strval($xml->NextKeyMarker) : ""; - $nextKeyMarker = OssUtil::decodeKey($nextKeyMarker, $encodingType); - $nextUploadIdMarker = isset($xml->NextUploadIdMarker) ? strval($xml->NextUploadIdMarker) : ""; - $delimiter = isset($xml->Delimiter) ? strval($xml->Delimiter) : ""; - $delimiter = OssUtil::decodeKey($delimiter, $encodingType); - $prefix = isset($xml->Prefix) ? strval($xml->Prefix) : ""; - $prefix = OssUtil::decodeKey($prefix, $encodingType); - $maxUploads = isset($xml->MaxUploads) ? intval($xml->MaxUploads) : 0; - $isTruncated = isset($xml->IsTruncated) ? strval($xml->IsTruncated) : ""; - $listUpload = array(); - - if (isset($xml->Upload)) { - foreach ($xml->Upload as $upload) { - $key = isset($upload->Key) ? strval($upload->Key) : ""; - $key = OssUtil::decodeKey($key, $encodingType); - $uploadId = isset($upload->UploadId) ? strval($upload->UploadId) : ""; - $initiated = isset($upload->Initiated) ? strval($upload->Initiated) : ""; - $listUpload[] = new UploadInfo($key, $uploadId, $initiated); - } - } - return new ListMultipartUploadInfo($bucket, $keyMarker, $uploadIdMarker, - $nextKeyMarker, $nextUploadIdMarker, - $delimiter, $prefix, $maxUploads, $isTruncated, $listUpload); - } -} \ No newline at end of file diff --git a/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/ListObjectsResult.php b/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/ListObjectsResult.php deleted file mode 100644 index fcf493d25..000000000 --- a/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/ListObjectsResult.php +++ /dev/null @@ -1,71 +0,0 @@ -rawResponse->body); - $encodingType = isset($xml->EncodingType) ? strval($xml->EncodingType) : ""; - $objectList = $this->parseObjectList($xml, $encodingType); - $prefixList = $this->parsePrefixList($xml, $encodingType); - $bucketName = isset($xml->Name) ? strval($xml->Name) : ""; - $prefix = isset($xml->Prefix) ? strval($xml->Prefix) : ""; - $prefix = OssUtil::decodeKey($prefix, $encodingType); - $marker = isset($xml->Marker) ? strval($xml->Marker) : ""; - $marker = OssUtil::decodeKey($marker, $encodingType); - $maxKeys = isset($xml->MaxKeys) ? intval($xml->MaxKeys) : 0; - $delimiter = isset($xml->Delimiter) ? strval($xml->Delimiter) : ""; - $delimiter = OssUtil::decodeKey($delimiter, $encodingType); - $isTruncated = isset($xml->IsTruncated) ? strval($xml->IsTruncated) : ""; - $nextMarker = isset($xml->NextMarker) ? strval($xml->NextMarker) : ""; - $nextMarker = OssUtil::decodeKey($nextMarker, $encodingType); - return new ObjectListInfo($bucketName, $prefix, $marker, $nextMarker, $maxKeys, $delimiter, $isTruncated, $objectList, $prefixList); - } - - private function parseObjectList($xml, $encodingType) - { - $retList = array(); - if (isset($xml->Contents)) { - foreach ($xml->Contents as $content) { - $key = isset($content->Key) ? strval($content->Key) : ""; - $key = OssUtil::decodeKey($key, $encodingType); - $lastModified = isset($content->LastModified) ? strval($content->LastModified) : ""; - $eTag = isset($content->ETag) ? strval($content->ETag) : ""; - $type = isset($content->Type) ? strval($content->Type) : ""; - $size = isset($content->Size) ? intval($content->Size) : 0; - $storageClass = isset($content->StorageClass) ? strval($content->StorageClass) : ""; - $retList[] = new ObjectInfo($key, $lastModified, $eTag, $type, $size, $storageClass); - } - } - return $retList; - } - - private function parsePrefixList($xml, $encodingType) - { - $retList = array(); - if (isset($xml->CommonPrefixes)) { - foreach ($xml->CommonPrefixes as $commonPrefix) { - $prefix = isset($commonPrefix->Prefix) ? strval($commonPrefix->Prefix) : ""; - $prefix = OssUtil::decodeKey($prefix, $encodingType); - $retList[] = new PrefixInfo($prefix); - } - } - return $retList; - } -} \ No newline at end of file diff --git a/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/ListPartsResult.php b/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/ListPartsResult.php deleted file mode 100644 index fd8a1b863..000000000 --- a/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/ListPartsResult.php +++ /dev/null @@ -1,42 +0,0 @@ -rawResponse->body; - $xml = simplexml_load_string($content); - $bucket = isset($xml->Bucket) ? strval($xml->Bucket) : ""; - $key = isset($xml->Key) ? strval($xml->Key) : ""; - $uploadId = isset($xml->UploadId) ? strval($xml->UploadId) : ""; - $nextPartNumberMarker = isset($xml->NextPartNumberMarker) ? intval($xml->NextPartNumberMarker) : ""; - $maxParts = isset($xml->MaxParts) ? intval($xml->MaxParts) : ""; - $isTruncated = isset($xml->IsTruncated) ? strval($xml->IsTruncated) : ""; - $partList = array(); - if (isset($xml->Part)) { - foreach ($xml->Part as $part) { - $partNumber = isset($part->PartNumber) ? intval($part->PartNumber) : ""; - $lastModified = isset($part->LastModified) ? strval($part->LastModified) : ""; - $eTag = isset($part->ETag) ? strval($part->ETag) : ""; - $size = isset($part->Size) ? intval($part->Size) : ""; - $partList[] = new PartInfo($partNumber, $lastModified, $eTag, $size); - } - } - return new ListPartsInfo($bucket, $key, $uploadId, $nextPartNumberMarker, $maxParts, $isTruncated, $partList); - } -} \ No newline at end of file diff --git a/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/PutLiveChannelResult.php b/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/PutLiveChannelResult.php deleted file mode 100644 index dcac86b78..000000000 --- a/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/PutLiveChannelResult.php +++ /dev/null @@ -1,16 +0,0 @@ -rawResponse->body; - $channel = new LiveChannelInfo(); - $channel->parseFromXml($content); - return $channel; - } -} diff --git a/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/PutSetDeleteResult.php b/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/PutSetDeleteResult.php deleted file mode 100644 index 97af003b6..000000000 --- a/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/PutSetDeleteResult.php +++ /dev/null @@ -1,20 +0,0 @@ - $this->rawResponse->body); - return array_merge($this->rawResponse->header, $body); - } -} diff --git a/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/Result.php b/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/Result.php deleted file mode 100644 index 491256f00..000000000 --- a/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/Result.php +++ /dev/null @@ -1,175 +0,0 @@ -rawResponse = $response; - $this->parseResponse(); - } - - /** - * 获取requestId - * - * @return string - */ - public function getRequestId() - { - if (isset($this->rawResponse) && - isset($this->rawResponse->header) && - isset($this->rawResponse->header['x-oss-request-id']) - ) { - return $this->rawResponse->header['x-oss-request-id']; - } else { - return ''; - } - } - - /** - * 得到返回数据,不同的请求返回数据格式不同 - * - * $return mixed - */ - public function getData() - { - return $this->parsedData; - } - - /** - * 由子类实现,不同的请求返回数据有不同的解析逻辑,由子类实现 - * - * @return mixed - */ - abstract protected function parseDataFromResponse(); - - /** - * 操作是否成功 - * - * @return mixed - */ - public function isOK() - { - return $this->isOk; - } - - /** - * @throws OssException - */ - public function parseResponse() - { - $this->isOk = $this->isResponseOk(); - if ($this->isOk) { - $this->parsedData = $this->parseDataFromResponse(); - } else { - $httpStatus = strval($this->rawResponse->status); - $requestId = strval($this->getRequestId()); - $code = $this->retrieveErrorCode($this->rawResponse->body); - $message = $this->retrieveErrorMessage($this->rawResponse->body); - $body = $this->rawResponse->body; - - $details = array( - 'status' => $httpStatus, - 'request-id' => $requestId, - 'code' => $code, - 'message' => $message, - 'body' => $body - ); - throw new OssException($details); - } - } - - /** - * 尝试从body中获取错误Message - * - * @param $body - * @return string - */ - private function retrieveErrorMessage($body) - { - if (empty($body) || false === strpos($body, 'Message)) { - return strval($xml->Message); - } - return ''; - } - - /** - * 尝试从body中获取错误Code - * - * @param $body - * @return string - */ - private function retrieveErrorCode($body) - { - if (empty($body) || false === strpos($body, 'Code)) { - return strval($xml->Code); - } - return ''; - } - - /** - * 根据返回http状态码判断,[200-299]即认为是OK - * - * @return bool - */ - protected function isResponseOk() - { - $status = $this->rawResponse->status; - if ((int)(intval($status) / 100) == 2) { - return true; - } - return false; - } - - /** - * 返回原始的返回数据 - * - * @return ResponseCore - */ - public function getRawResponse() - { - return $this->rawResponse; - } - - /** - * 标示请求是否成功 - */ - protected $isOk = false; - /** - * 由子类解析过的数据 - */ - protected $parsedData = null; - /** - * 存放auth函数返回的原始Response - * - * @var ResponseCore - */ - protected $rawResponse; -} \ No newline at end of file diff --git a/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/SymlinkResult.php b/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/SymlinkResult.php deleted file mode 100644 index 9c6d861a6..000000000 --- a/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/SymlinkResult.php +++ /dev/null @@ -1,24 +0,0 @@ -rawResponse->header[OssClient::OSS_SYMLINK_TARGET] = rawurldecode($this->rawResponse->header[OssClient::OSS_SYMLINK_TARGET]); - return $this->rawResponse->header; - } -} - diff --git a/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/UploadPartResult.php b/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/UploadPartResult.php deleted file mode 100644 index c6b66d454..000000000 --- a/vendor/aliyuncs/oss-sdk-php/src/OSS/Result/UploadPartResult.php +++ /dev/null @@ -1,28 +0,0 @@ -rawResponse->header; - if (isset($header["etag"])) { - return $header["etag"]; - } - throw new OssException("cannot get ETag"); - - } -} \ No newline at end of file diff --git a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/AclResultTest.php b/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/AclResultTest.php deleted file mode 100644 index 12f4b1a7e..000000000 --- a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/AclResultTest.php +++ /dev/null @@ -1,59 +0,0 @@ - - - - 00220120222 - user_example - - - public-read - - -BBBB; - - private $invalidXml = << - - -BBBB; - - public function testParseValidXml() - { - $response = new ResponseCore(array(), $this->validXml, 200); - $result = new AclResult($response); - $this->assertEquals("public-read", $result->getData()); - } - - public function testParseNullXml() - { - $response = new ResponseCore(array(), "", 200); - try { - new AclResult($response); - $this->assertTrue(false); - } catch (OssException $e) { - $this->assertEquals('body is null', $e->getMessage()); - } - } - - public function testParseInvalidXml() - { - $response = new ResponseCore(array(), $this->invalidXml, 200); - try { - new AclResult($response); - $this->assertFalse(true); - } catch (OssException $e) { - $this->assertEquals("xml format exception", $e->getMessage()); - } - } -} diff --git a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/BodyResultTest.php b/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/BodyResultTest.php deleted file mode 100644 index af13d4d4c..000000000 --- a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/BodyResultTest.php +++ /dev/null @@ -1,26 +0,0 @@ -assertTrue($result->isOK()); - $this->assertEquals($result->getData(), "hi"); - } - - public function testParseInvalid404() - { - $response = new ResponseCore(array(), null, 200); - $result = new BodyResult($response); - $this->assertTrue($result->isOK()); - $this->assertEquals($result->getData(), ""); - } -} diff --git a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/BucketCnameTest.php b/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/BucketCnameTest.php deleted file mode 100644 index 87c9e5430..000000000 --- a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/BucketCnameTest.php +++ /dev/null @@ -1,77 +0,0 @@ -client = Common::getOssClient(); - $this->bucketName = 'php-sdk-test-bucket-' . strval(rand(0, 10000)); - $this->client->createBucket($this->bucketName); - } - - public function tearDown() - { - $this->client->deleteBucket($this->bucketName); - } - - public function testBucketWithoutCname() - { - $cnameConfig = $this->client->getBucketCname($this->bucketName); - $this->assertEquals(0, count($cnameConfig->getCnames())); - } - - public function testAddCname() - { - $this->client->addBucketCname($this->bucketName, 'www.baidu.com'); - $this->client->addBucketCname($this->bucketName, 'www.qq.com'); - - $ret = $this->client->getBucketCname($this->bucketName); - $this->assertEquals(2, count($ret->getCnames())); - - // add another 2 cnames - $this->client->addBucketCname($this->bucketName, 'www.sina.com.cn'); - $this->client->addBucketCname($this->bucketName, 'www.iqiyi.com'); - - $ret = $this->client->getBucketCname($this->bucketName); - $cnames = $ret->getCnames(); - $cnameList = array(); - - foreach ($cnames as $c) { - $cnameList[] = $c['Domain']; - } - $should = array( - 'www.baidu.com', - 'www.qq.com', - 'www.sina.com.cn', - 'www.iqiyi.com' - ); - $this->assertEquals(4, count($cnames)); - $this->assertEquals(sort($should), sort($cnameList)); - } - - public function testDeleteCname() - { - $this->client->addBucketCname($this->bucketName, 'www.baidu.com'); - $this->client->addBucketCname($this->bucketName, 'www.qq.com'); - - $ret = $this->client->getBucketCname($this->bucketName); - $this->assertEquals(2, count($ret->getCnames())); - - // delete one cname - $this->client->deleteBucketCname($this->bucketName, 'www.baidu.com'); - - $ret = $this->client->getBucketCname($this->bucketName); - $this->assertEquals(1, count($ret->getCnames())); - $cnames = $ret->getCnames(); - $this->assertEquals('www.qq.com', $cnames[0]['Domain']); - } -} diff --git a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/BucketInfoTest.php b/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/BucketInfoTest.php deleted file mode 100644 index 80fa25c8e..000000000 --- a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/BucketInfoTest.php +++ /dev/null @@ -1,21 +0,0 @@ -assertNotNull($bucketInfo); - $this->assertEquals('cn-beijing', $bucketInfo->getLocation()); - $this->assertEquals('name', $bucketInfo->getName()); - $this->assertEquals('today', $bucketInfo->getCreateDate()); - } -} diff --git a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/BucketLiveChannelTest.php b/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/BucketLiveChannelTest.php deleted file mode 100644 index bed68b036..000000000 --- a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/BucketLiveChannelTest.php +++ /dev/null @@ -1,283 +0,0 @@ -client = Common::getOssClient(); - $this->bucketName = 'php-sdk-test-rtmp-bucket-name-' . strval(rand(0, 10000)); - $this->client->createBucket($this->bucketName); - Common::waitMetaSync(); - } - - public function tearDown() - { - ////to delete created bucket - //1. delele live channel - $list = $this->client->listBucketLiveChannels($this->bucketName); - if (count($list->getChannelList()) != 0) - { - foreach($list->getChannelList() as $list) - { - $this->client->deleteBucketLiveChannel($this->bucketName, $list->getName()); - } - } - //2. delete exsited object - $prefix = 'live-test/'; - $delimiter = '/'; - $nextMarker = ''; - $maxkeys = 1000; - $options = array( - 'delimiter' => $delimiter, - 'prefix' => $prefix, - 'max-keys' => $maxkeys, - 'marker' => $nextMarker, - ); - - try { - $listObjectInfo = $this->client->listObjects($this->bucketName, $options); - } catch (OssException $e) { - printf($e->getMessage() . "\n"); - return; - } - - $objectList = $listObjectInfo->getObjectList(); // 文件列表 - if (!empty($objectList)) - { - foreach($objectList as $objectInfo) - $this->client->deleteObject($this->bucketName, $objectInfo->getKey()); - } - //3. delete the bucket - $this->client->deleteBucket($this->bucketName); - } - - public function testPutLiveChannel() - { - $config = new LiveChannelConfig(array( - 'description' => 'live channel 1', - 'type' => 'HLS', - 'fragDuration' => 10, - 'fragCount' => 5, - 'playListName' => 'hello.m3u8' - )); - $info = $this->client->putBucketLiveChannel($this->bucketName, 'live-1', $config); - $this->client->deleteBucketLiveChannel($this->bucketName, 'live-1'); - - $this->assertEquals('live-1', $info->getName()); - $this->assertEquals('live channel 1', $info->getDescription()); - $this->assertEquals(1, count($info->getPublishUrls())); - $this->assertEquals(1, count($info->getPlayUrls())); - } - - public function testPutLiveChannelWithDefaultParams() - { - $config = new LiveChannelConfig(array( - 'description' => 'live channel 1', - 'type' => 'HLS', - )); - $info = $this->client->putBucketLiveChannel($this->bucketName, 'live-1', $config); - $this->client->deleteBucketLiveChannel($this->bucketName, 'live-1'); - - $this->assertEquals('live-1', $info->getName()); - $this->assertEquals('live channel 1', $info->getDescription()); - $this->assertEquals(1, count($info->getPublishUrls())); - $this->assertEquals(1, count($info->getPlayUrls())); - } - - public function testListLiveChannels() - { - $config = new LiveChannelConfig(array( - 'description' => 'live channel 1', - 'type' => 'HLS', - 'fragDuration' => 10, - 'fragCount' => 5, - 'playListName' => 'hello.m3u8' - )); - $this->client->putBucketLiveChannel($this->bucketName, 'live-1', $config); - - $config = new LiveChannelConfig(array( - 'description' => 'live channel 2', - 'type' => 'HLS', - 'fragDuration' => 10, - 'fragCount' => 5, - 'playListName' => 'hello.m3u8' - )); - $this->client->putBucketLiveChannel($this->bucketName, 'live-2', $config); - - $list = $this->client->listBucketLiveChannels($this->bucketName); - - $this->assertEquals($this->bucketName, $list->getBucketName()); - $this->assertEquals(false, $list->getIsTruncated()); - $channels = $list->getChannelList(); - $this->assertEquals(2, count($channels)); - - $chan1 = $channels[0]; - $this->assertEquals('live-1', $chan1->getName()); - $this->assertEquals('live channel 1', $chan1->getDescription()); - $this->assertEquals(1, count($chan1->getPublishUrls())); - $this->assertEquals(1, count($chan1->getPlayUrls())); - - $chan2 = $channels[1]; - $this->assertEquals('live-2', $chan2->getName()); - $this->assertEquals('live channel 2', $chan2->getDescription()); - $this->assertEquals(1, count($chan2->getPublishUrls())); - $this->assertEquals(1, count($chan2->getPlayUrls())); - - $list = $this->client->listBucketLiveChannels($this->bucketName, array( - 'prefix' => 'live-', - 'marker' => 'live-1', - 'max-keys' => 10 - )); - $channels = $list->getChannelList(); - $this->assertEquals(1, count($channels)); - $chan2 = $channels[0]; - $this->assertEquals('live-2', $chan2->getName()); - $this->assertEquals('live channel 2', $chan2->getDescription()); - $this->assertEquals(1, count($chan2->getPublishUrls())); - $this->assertEquals(1, count($chan2->getPlayUrls())); - - $this->client->deleteBucketLiveChannel($this->bucketName, 'live-1'); - $this->client->deleteBucketLiveChannel($this->bucketName, 'live-2'); - $list = $this->client->listBucketLiveChannels($this->bucketName, array( - 'prefix' => 'live-' - )); - $this->assertEquals(0, count($list->getChannelList())); - } - - public function testDeleteLiveChannel() - { - $channelName = 'live-to-delete'; - $config = new LiveChannelConfig(array( - 'description' => 'live channel to delete', - 'type' => 'HLS', - 'fragDuration' => 10, - 'fragCount' => 5, - 'playListName' => 'hello.m3u8' - )); - $this->client->putBucketLiveChannel($this->bucketName, $channelName, $config); - - $this->client->deleteBucketLiveChannel($this->bucketName, $channelName); - $list = $this->client->listBucketLiveChannels($this->bucketName, array( - 'prefix' => $channelName - )); - - $this->assertEquals(0, count($list->getChannelList())); - } - - public function testSignRtmpUrl() - { - $channelName = '90475'; - $bucket = 'douyu'; - $now = time(); - $url = $this->client->signRtmpUrl($bucket, $channelName, 900, array( - 'params' => array( - 'playlistName' => 'playlist.m3u8' - ) - )); - - $ret = parse_url($url); - $this->assertEquals('rtmp', $ret['scheme']); - parse_str($ret['query'], $query); - - $this->assertTrue(isset($query['OSSAccessKeyId'])); - $this->assertTrue(isset($query['Signature'])); - $this->assertTrue(intval($query['Expires']) - ($now + 900) < 3); - $this->assertEquals('playlist.m3u8', $query['playlistName']); - } - - public function testLiveChannelInfo() - { - $channelName = 'live-to-put-status'; - $config = new LiveChannelConfig(array( - 'description' => 'test live channel info', - 'type' => 'HLS', - 'fragDuration' => 10, - 'fragCount' => 5, - 'playListName' => 'hello.m3u8' - )); - $this->client->putBucketLiveChannel($this->bucketName, $channelName, $config); - - $info = $this->client->getLiveChannelInfo($this->bucketName, $channelName); - $this->assertEquals('test live channel info', $info->getDescription()); - $this->assertEquals('enabled', $info->getStatus()); - $this->assertEquals('HLS', $info->getType()); - $this->assertEquals(10, $info->getFragDuration()); - $this->assertEquals(5, $info->getFragCount()); - $this->assertEquals('playlist.m3u8', $info->getPlayListName()); - - $this->client->deleteBucketLiveChannel($this->bucketName, $channelName); - $list = $this->client->listBucketLiveChannels($this->bucketName, array( - 'prefix' => $channelName - )); - $this->assertEquals(0, count($list->getChannelList())); - } - - public function testPutLiveChannelStatus() - { - $channelName = 'live-to-put-status'; - $config = new LiveChannelConfig(array( - 'description' => 'test live channel info', - 'type' => 'HLS', - 'fragDuration' => 10, - 'fragCount' => 5, - 'playListName' => 'hello.m3u8' - )); - $this->client->putBucketLiveChannel($this->bucketName, $channelName, $config); - - $info = $this->client->getLiveChannelInfo($this->bucketName, $channelName); - $this->assertEquals('test live channel info', $info->getDescription()); - $this->assertEquals('enabled', $info->getStatus()); - $this->assertEquals('HLS', $info->getType()); - $this->assertEquals(10, $info->getFragDuration()); - $this->assertEquals(5, $info->getFragCount()); - $this->assertEquals('playlist.m3u8', $info->getPlayListName()); - $status = $this->client->getLiveChannelStatus($this->bucketName, $channelName); - $this->assertEquals('Idle', $status->getStatus()); - - - $resp = $this->client->putLiveChannelStatus($this->bucketName, $channelName, "disabled"); - $info = $this->client->getLiveChannelInfo($this->bucketName, $channelName); - $this->assertEquals('test live channel info', $info->getDescription()); - $this->assertEquals('disabled', $info->getStatus()); - $this->assertEquals('HLS', $info->getType()); - $this->assertEquals(10, $info->getFragDuration()); - $this->assertEquals(5, $info->getFragCount()); - $this->assertEquals('playlist.m3u8', $info->getPlayListName()); - - $status = $this->client->getLiveChannelStatus($this->bucketName, $channelName); - //getLiveChannelInfo - $this->assertEquals('Disabled', $status->getStatus()); - - $this->client->deleteBucketLiveChannel($this->bucketName, $channelName); - $list = $this->client->listBucketLiveChannels($this->bucketName, array( - 'prefix' => $channelName - )); - $this->assertEquals(0, count($list->getChannelList())); - - } - public function testLiveChannelHistory() - { - $channelName = 'live-test-history'; - $config = new LiveChannelConfig(array( - 'description' => 'test live channel info', - 'type' => 'HLS', - 'fragDuration' => 10, - 'fragCount' => 5, - 'playListName' => 'hello.m3u8' - )); - $this->client->putBucketLiveChannel($this->bucketName, $channelName, $config); - - $history = $this->client->getLiveChannelHistory($this->bucketName, $channelName); - $this->assertEquals(0, count($history->getLiveRecordList())); - } -} diff --git a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/CallbackTest.php b/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/CallbackTest.php deleted file mode 100644 index a0db00379..000000000 --- a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/CallbackTest.php +++ /dev/null @@ -1,297 +0,0 @@ -ossClient->putObject($this->bucket, $copiedObject, file_get_contents(__FILE__)); - - /** - * step 1. 初始化一个分块上传事件, 也就是初始化上传Multipart, 获取upload id - */ - try { - $upload_id = $this->ossClient->initiateMultipartUpload($this->bucket, $object); - } catch (OssException $e) { - $this->assertFalse(true); - } - /* - * step 2. uploadPartCopy - */ - $copyId = 1; - $eTag = $this->ossClient->uploadPartCopy($this->bucket, $copiedObject, $this->bucket, $object, $copyId, $upload_id); - $upload_parts[] = array( - 'PartNumber' => $copyId, - 'ETag' => $eTag, - ); - - try { - $listPartsInfo = $this->ossClient->listParts($this->bucket, $object, $upload_id); - $this->assertNotNull($listPartsInfo); - } catch (OssException $e) { - $this->assertTrue(false); - } - - /** - * step 3. - */ - - $json = - '{ - "callbackUrl":"oss-demo.aliyuncs.com:23450", - "callbackHost":"oss-cn-hangzhou.aliyuncs.com", - "callbackBody":"{\"mimeType\":${mimeType},\"size\":${size},\"x:var1\":${x:var1},\"x:var2\":${x:var2}}", - "callbackBodyType":"application/json" - }'; - - $var = - '{ - "x:var1":"value1", - "x:var2":"值2" - }'; - $options = array(OssClient::OSS_CALLBACK => $json, - OssClient::OSS_CALLBACK_VAR => $var - ); - - try { - $result = $this->ossClient->completeMultipartUpload($this->bucket, $object, $upload_id, $upload_parts, $options); - $this->assertEquals("200", $result['info']['http_code']); - $this->assertEquals("{\"Status\":\"OK\"}", $result['body']); - } catch (OssException $e) { - $this->assertTrue(false); - } - } - - public function testMultipartUploadCallbackFailed() - { - $object = "multipart-callback-test.txt"; - $copiedObject = "multipart-callback-test.txt.copied"; - $this->ossClient->putObject($this->bucket, $copiedObject, file_get_contents(__FILE__)); - - /** - * step 1. 初始化一个分块上传事件, 也就是初始化上传Multipart, 获取upload id - */ - try { - $upload_id = $this->ossClient->initiateMultipartUpload($this->bucket, $object); - } catch (OssException $e) { - $this->assertFalse(true); - } - /* - * step 2. uploadPartCopy - */ - $copyId = 1; - $eTag = $this->ossClient->uploadPartCopy($this->bucket, $copiedObject, $this->bucket, $object, $copyId, $upload_id); - $upload_parts[] = array( - 'PartNumber' => $copyId, - 'ETag' => $eTag, - ); - - try { - $listPartsInfo = $this->ossClient->listParts($this->bucket, $object, $upload_id); - $this->assertNotNull($listPartsInfo); - } catch (OssException $e) { - $this->assertTrue(false); - } - - /** - * step 3. - */ - - $json = - '{ - "callbackUrl":"www.baidu.com", - "callbackHost":"oss-cn-hangzhou.aliyuncs.com", - "callbackBody":"{\"mimeType\":${mimeType},\"size\":${size},\"x:var1\":${x:var1},\"x:var2\":${x:var2}}", - "callbackBodyType":"application/json" - }'; - - $var = - '{ - "x:var1":"value1", - "x:var2":"值2" - }'; - $options = array(OssClient::OSS_CALLBACK => $json, - OssClient::OSS_CALLBACK_VAR => $var - ); - - try { - $result = $this->ossClient->completeMultipartUpload($this->bucket, $object, $upload_id, $upload_parts, $options); - $this->assertTrue(false); - } catch (OssException $e) { - $this->assertTrue(true); - $this->assertEquals("203", $e->getHTTPStatus()); - } - - } - - public function testPutObjectCallbackNormal() - { - //json - { - $json = - '{ - "callbackUrl":"oss-demo.aliyuncs.com:23450", - "callbackHost":"oss-cn-hangzhou.aliyuncs.com", - "callbackBody":"{\"mimeType\":${mimeType},\"size\":${size}}", - "callbackBodyType":"application/json" - }'; - $options = array(OssClient::OSS_CALLBACK => $json); - $this->putObjectCallbackOk($options, "200"); - } - //url - { - $url = - '{ - "callbackUrl":"oss-demo.aliyuncs.com:23450", - "callbackHost":"oss-cn-hangzhou.aliyuncs.com", - "callbackBody":"bucket=${bucket}&object=${object}&etag=${etag}&size=${size}&mimeType=${mimeType}&imageInfo.height=${imageInfo.height}&imageInfo.width=${imageInfo.width}&imageInfo.format=${imageInfo.format}", - "callbackBodyType":"application/x-www-form-urlencoded" - }'; - $options = array(OssClient::OSS_CALLBACK => $url); - $this->putObjectCallbackOk($options, "200"); - } - // Unspecified typre - { - $url = - '{ - "callbackUrl":"oss-demo.aliyuncs.com:23450", - "callbackHost":"oss-cn-hangzhou.aliyuncs.com", - "callbackBody":"bucket=${bucket}&object=${object}&etag=${etag}&size=${size}&mimeType=${mimeType}&imageInfo.height=${imageInfo.height}&imageInfo.width=${imageInfo.width}&imageInfo.format=${imageInfo.format}" - }'; - $options = array(OssClient::OSS_CALLBACK => $url); - $this->putObjectCallbackOk($options, "200"); - } - //json and body is chinese - { - $json = - '{ - "callbackUrl":"oss-demo.aliyuncs.com:23450", - "callbackHost":"oss-cn-hangzhou.aliyuncs.com", - "callbackBody":"{\" 春水碧于天,画船听雨眠。\":\"垆边人似月,皓腕凝霜雪。\"}", - "callbackBodyType":"application/json" - }'; - $options = array(OssClient::OSS_CALLBACK => $json); - $this->putObjectCallbackOk($options, "200"); - } - //url and body is chinese - { - $url = - '{ - "callbackUrl":"oss-demo.aliyuncs.com:23450", - "callbackHost":"oss-cn-hangzhou.aliyuncs.com", - "callbackBody":"春水碧于天,画船听雨眠。垆边人似月,皓腕凝霜雪", - "callbackBodyType":"application/x-www-form-urlencoded" - }'; - $options = array(OssClient::OSS_CALLBACK => $url); - $this->putObjectCallbackOk($options, "200"); - } - //json and add callback_var - { - $json = - '{ - "callbackUrl":"oss-demo.aliyuncs.com:23450", - "callbackHost":"oss-cn-hangzhou.aliyuncs.com", - "callbackBody":"{\"mimeType\":${mimeType},\"size\":${size},\"x:var1\":${x:var1},\"x:var2\":${x:var2}}", - "callbackBodyType":"application/json" - }'; - - $var = - '{ - "x:var1":"value1", - "x:var2":"aliyun.com" - }'; - $options = array(OssClient::OSS_CALLBACK => $json, - OssClient::OSS_CALLBACK_VAR => $var - ); - $this->putObjectCallbackOk($options, "200"); - } - //url and add callback_var - { - $url = - '{ - "callbackUrl":"oss-demo.aliyuncs.com:23450", - "callbackHost":"oss-cn-hangzhou.aliyuncs.com", - "callbackBody":"bucket=${bucket}&object=${object}&etag=${etag}&size=${size}&mimeType=${mimeType}&imageInfo.height=${imageInfo.height}&imageInfo.width=${imageInfo.width}&imageInfo.format=${imageInfo.format}&my_var1=${x:var1}&my_var2=${x:var2}", - "callbackBodyType":"application/x-www-form-urlencoded" - }'; - $var = - '{ - "x:var1":"value1凌波不过横塘路,但目送,芳", - "x:var2":"值2" - }'; - $options = array(OssClient::OSS_CALLBACK => $url, - OssClient::OSS_CALLBACK_VAR => $var - ); - $this->putObjectCallbackOk($options, "200"); - } - - } - - public function testPutCallbackWithCallbackFailed() - { - { - $json = - '{ - "callbackUrl":"http://www.baidu.com", - "callbackHost":"oss-cn-hangzhou.aliyuncs.com", - "callbackBody":"{\"mimeType\":${mimeType},\"size\":${size}}", - "callbackBodyType":"application/json" - }'; - $options = array(OssClient::OSS_CALLBACK => $json); - $this->putObjectCallbackFailed($options, "203"); - } - - { - $url = - '{ - "callbackUrl":"http://www.baidu.com", - "callbackHost":"oss-cn-hangzhou.aliyuncs.com", - "callbackBody":"bucket=${bucket}&object=${object}&etag=${etag}&size=${size}&mimeType=${mimeType}&imageInfo.height=${imageInfo.height}&imageInfo.width=${imageInfo.width}&imageInfo.format=${imageInfo.format}&my_var1=${x:var1}&my_var2=${x:var2}", - "callbackBodyType":"application/x-www-form-urlencoded" - }'; - $options = array(OssClient::OSS_CALLBACK => $url); - $this->putObjectCallbackFailed($options, "203"); - } - - } - - private function putObjectCallbackOk($options, $status) - { - $object = "oss-php-sdk-callback-test.txt"; - $content = file_get_contents(__FILE__); - try { - $result = $this->ossClient->putObject($this->bucket, $object, $content, $options); - $this->assertEquals($status, $result['info']['http_code']); - $this->assertEquals("{\"Status\":\"OK\"}", $result['body']); - } catch (OssException $e) { - $this->assertFalse(true); - } - } - - private function putObjectCallbackFailed($options, $status) - { - $object = "oss-php-sdk-callback-test.txt"; - $content = file_get_contents(__FILE__); - try { - $result = $this->ossClient->putObject($this->bucket, $object, $content, $options); - $this->assertTrue(false); - } catch (OssException $e) { - $this->assertEquals($status, $e->getHTTPStatus()); - $this->assertTrue(true); - } - } - - public function setUp() - { - parent::setUp(); - } -} diff --git a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/CnameConfigTest.php b/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/CnameConfigTest.php deleted file mode 100644 index e3c1ce902..000000000 --- a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/CnameConfigTest.php +++ /dev/null @@ -1,77 +0,0 @@ - - - - www.foo.com - enabled - 20150101 - - - bar.com - disabled - 20160101 - - -BBBB; - - public function testFromXml() - { - $cnameConfig = new CnameConfig(); - $cnameConfig->parseFromXml($this->xml1); - - $cnames = $cnameConfig->getCnames(); - $this->assertEquals(2, count($cnames)); - $this->assertEquals('www.foo.com', $cnames[0]['Domain']); - $this->assertEquals('enabled', $cnames[0]['Status']); - $this->assertEquals('20150101', $cnames[0]['LastModified']); - - $this->assertEquals('bar.com', $cnames[1]['Domain']); - $this->assertEquals('disabled', $cnames[1]['Status']); - $this->assertEquals('20160101', $cnames[1]['LastModified']); - } - - public function testToXml() - { - $cnameConfig = new CnameConfig(); - $cnameConfig->addCname('www.foo.com'); - $cnameConfig->addCname('bar.com'); - - $xml = $cnameConfig->serializeToXml(); - $comp = new CnameConfig(); - $comp->parseFromXml($xml); - - $cnames1 = $cnameConfig->getCnames(); - $cnames2 = $comp->getCnames(); - - $this->assertEquals(count($cnames1), count($cnames2)); - $this->assertEquals(count($cnames1[0]), count($cnames2[0])); - $this->assertEquals(1, count($cnames1[0])); - $this->assertEquals($cnames1[0]['Domain'], $cnames2[0]['Domain']); - } - - public function testCnameNumberLimit() - { - $cnameConfig = new CnameConfig(); - for ($i = 0; $i < CnameConfig::OSS_MAX_RULES; $i += 1) { - $cnameConfig->addCname(strval($i) . '.foo.com'); - } - try { - $cnameConfig->addCname('www.foo.com'); - $this->assertFalse(true); - } catch (OssException $e) { - $this->assertEquals( - $e->getMessage(), - "num of cname in the config exceeds self::OSS_MAX_RULES: " . strval(CnameConfig::OSS_MAX_RULES)); - } - } -} diff --git a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/Common.php b/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/Common.php deleted file mode 100644 index 9d7190ccf..000000000 --- a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/Common.php +++ /dev/null @@ -1,70 +0,0 @@ -getMessage() . "\n"); - return null; - } - return $ossClient; - } - - public static function getBucketName() - { - return getenv('OSS_BUCKET'); - } - - /** - * 工具方法,创建一个bucket - */ - public static function createBucket() - { - $ossClient = self::getOssClient(); - if (is_null($ossClient)) exit(1); - $bucket = self::getBucketName(); - $acl = OssClient::OSS_ACL_TYPE_PUBLIC_READ; - try { - $ossClient->createBucket($bucket, $acl); - } catch (OssException $e) { - printf(__FUNCTION__ . ": FAILED\n"); - printf($e->getMessage() . "\n"); - return; - } - print(__FUNCTION__ . ": OK" . "\n"); - } - - /** - * Wait for bucket meta sync - */ - public static function waitMetaSync() - { - if (getenv('TRAVIS')) { - sleep(10); - } - } -} diff --git a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/ContentTypeTest.php b/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/ContentTypeTest.php deleted file mode 100644 index 606c81041..000000000 --- a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/ContentTypeTest.php +++ /dev/null @@ -1,133 +0,0 @@ -/dev/null', $output, $status); - - $this->assertEquals(0, $status); - } - - private function getContentType($bucket, $object) - { - $client = Common::getOssClient(); - $headers = $client->getObjectMeta($bucket, $object); - return $headers['content-type']; - } - - public function testByFileName() - { - $client = Common::getOssClient(); - $bucket = Common::getBucketName(); - - $file = '/tmp/x.html'; - $object = 'test/x'; - $this->runCmd('touch ' . $file); - - $client->uploadFile($bucket, $object, $file); - $type = $this->getContentType($bucket, $object); - - $this->assertEquals('text/html', $type); - - $file = '/tmp/x.json'; - $object = 'test/y'; - $this->runCmd('dd if=/dev/urandom of=' . $file . ' bs=1024 count=100'); - - $client->multiuploadFile($bucket, $object, $file, array('partSize' => 100)); - $type = $this->getContentType($bucket, $object); - - $this->assertEquals('application/json', $type); - } - - public function testByObjectKey() - { - $client = Common::getOssClient(); - $bucket = Common::getBucketName(); - - $object = "test/x.txt"; - $client->putObject($bucket, $object, "hello world"); - $type = $this->getContentType($bucket, $object); - - $this->assertEquals('text/plain', $type); - - $file = '/tmp/x.html'; - $object = 'test/x.txt'; - $this->runCmd('touch ' . $file); - - $client->uploadFile($bucket, $object, $file); - $type = $this->getContentType($bucket, $object); - - $this->assertEquals('text/html', $type); - - $file = '/tmp/x.none'; - $object = 'test/x.txt'; - $this->runCmd('touch ' . $file); - - $client->uploadFile($bucket, $object, $file); - $type = $this->getContentType($bucket, $object); - - $this->assertEquals('text/plain', $type); - - $file = '/tmp/x.mp3'; - $object = 'test/y.json'; - $this->runCmd('dd if=/dev/urandom of=' . $file . ' bs=1024 count=100'); - - $client->multiuploadFile($bucket, $object, $file, array('partSize' => 100)); - $type = $this->getContentType($bucket, $object); - - $this->assertEquals('audio/mpeg', $type); - - $file = '/tmp/x.none'; - $object = 'test/y.json'; - $this->runCmd('dd if=/dev/urandom of=' . $file . ' bs=1024 count=100'); - - $client->multiuploadFile($bucket, $object, $file, array('partSize' => 100)); - $type = $this->getContentType($bucket, $object); - - $this->assertEquals('application/json', $type); - } - - public function testByUser() - { - $client = Common::getOssClient(); - $bucket = Common::getBucketName(); - - $object = "test/x.txt"; - $client->putObject($bucket, $object, "hello world", array( - 'Content-Type' => 'text/html' - )); - $type = $this->getContentType($bucket, $object); - - $this->assertEquals('text/html', $type); - - $file = '/tmp/x.html'; - $object = 'test/x'; - $this->runCmd('touch ' . $file); - - $client->uploadFile($bucket, $object, $file, array( - 'Content-Type' => 'application/json' - )); - $type = $this->getContentType($bucket, $object); - - $this->assertEquals('application/json', $type); - - $file = '/tmp/x.json'; - $object = 'test/y'; - $this->runCmd('dd if=/dev/urandom of=' . $file . ' bs=1024 count=100'); - - $client->multiuploadFile($bucket, $object, $file, array( - 'partSize' => 100, - 'Content-Type' => 'audio/mpeg' - )); - $type = $this->getContentType($bucket, $object); - - $this->assertEquals('audio/mpeg', $type); - } -} diff --git a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/CopyObjectResult.php b/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/CopyObjectResult.php deleted file mode 100644 index 171d4c84d..000000000 --- a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/CopyObjectResult.php +++ /dev/null @@ -1,52 +0,0 @@ - - - Fri, 24 Feb 2012 07:18:48 GMT - "5B3C1A2E053D763E1B002CC607C5A0FE" - -BBBB; - - public function testNullResponse() - { - $response = null; - try { - new CopyObjectResult($response); - $this->assertFalse(true); - } catch (OssException $e) { - $this->assertEquals('raw response is null', $e->getMessage()); - } - } - - public function testOkResponse() - { - $header= array(); - $response = new ResponseCore($header, $this->body, 200); - $result = new CopyObjectResult($response); - $data = $result->getData(); - $this->assertTrue($result->isOK()); - $this->assertEquals("Fri, 24 Feb 2012 07:18:48 GMT", $data[0]); - $this->assertEquals("\"5B3C1A2E053D763E1B002CC607C5A0FE\"", $data[1]); - } - - public function testFailResponse() - { - $response = new ResponseCore(array(), "", 404); - try { - new CopyObjectResult($response); - $this->assertFalse(true); - } catch (OssException $e) { - - } - } - -} diff --git a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/CorsConfigTest.php b/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/CorsConfigTest.php deleted file mode 100644 index ddc4d3ab8..000000000 --- a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/CorsConfigTest.php +++ /dev/null @@ -1,140 +0,0 @@ - - - -http://www.b.com -http://www.a.com -http://www.a.com -GET -PUT -POST -x-oss-test -x-oss-test2 -x-oss-test2 -x-oss-test3 -x-oss-test1 -x-oss-test1 -x-oss-test2 -10 - - -http://www.b.com -GET -x-oss-test -x-oss-test1 -110 - - -BBBB; - - private $validXml2 = << - - -http://www.b.com -http://www.a.com -http://www.a.com -GET -PUT -POST -x-oss-test -x-oss-test2 -x-oss-test2 -x-oss-test3 -x-oss-test1 -x-oss-test1 -x-oss-test2 -10 - - -BBBB; - - public function testParseValidXml() - { - $corsConfig = new CorsConfig(); - $corsConfig->parseFromXml($this->validXml); - $this->assertEquals($this->cleanXml($this->validXml), $this->cleanXml($corsConfig->serializeToXml())); - $this->assertNotNull($corsConfig->getRules()); - $rules = $corsConfig->getRules(); - $this->assertNotNull($rules[0]->getAllowedHeaders()); - $this->assertNotNull($rules[0]->getAllowedMethods()); - $this->assertNotNull($rules[0]->getAllowedOrigins()); - $this->assertNotNull($rules[0]->getExposeHeaders()); - $this->assertNotNull($rules[0]->getMaxAgeSeconds()); - } - - public function testParseValidXml2() - { - $corsConfig = new CorsConfig(); - $corsConfig->parseFromXml($this->validXml2); - $this->assertEquals($this->cleanXml($this->validXml2), $this->cleanXml($corsConfig->serializeToXml())); - } - - public function testCreateCorsConfigFromMoreThan10Rules() - { - $corsConfig = new CorsConfig(); - $rule = new CorsRule(); - for ($i = 0; $i < CorsConfig::OSS_MAX_RULES; $i += 1) { - $corsConfig->addRule($rule); - } - try { - $corsConfig->addRule($rule); - $this->assertFalse(true); - } catch (OssException $e) { - $this->assertEquals($e->getMessage(), "num of rules in the config exceeds self::OSS_MAX_RULES: " . strval(CorsConfig::OSS_MAX_RULES)); - } - } - - public function testCreateCorsConfigParamAbsent() - { - $corsConfig = new CorsConfig(); - $rule = new CorsRule(); - $corsConfig->addRule($rule); - - try { - $xml = $corsConfig->serializeToXml(); - $this->assertFalse(true); - } catch (OssException $e) { - $this->assertEquals($e->getMessage(), "maxAgeSeconds is not set in the Rule"); - } - } - - public function testCreateCorsConfigFromScratch() - { - $corsConfig = new CorsConfig(); - $rule = new CorsRule(); - $rule->addAllowedHeader("x-oss-test"); - $rule->addAllowedHeader("x-oss-test2"); - $rule->addAllowedHeader("x-oss-test2"); - $rule->addAllowedHeader("x-oss-test3"); - $rule->addAllowedOrigin("http://www.b.com"); - $rule->addAllowedOrigin("http://www.a.com"); - $rule->addAllowedOrigin("http://www.a.com"); - $rule->addAllowedMethod("GET"); - $rule->addAllowedMethod("PUT"); - $rule->addAllowedMethod("POST"); - $rule->addExposeHeader("x-oss-test1"); - $rule->addExposeHeader("x-oss-test1"); - $rule->addExposeHeader("x-oss-test2"); - $rule->setMaxAgeSeconds(10); - $corsConfig->addRule($rule); - $this->assertEquals($this->cleanXml($this->validXml2), $this->cleanXml($corsConfig->serializeToXml())); - $this->assertEquals($this->cleanXml($this->validXml2), $this->cleanXml(strval($corsConfig))); - } - - private function cleanXml($xml) - { - return str_replace("\n", "", str_replace("\r", "", $xml)); - } -} diff --git a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/ExistResultTest.php b/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/ExistResultTest.php deleted file mode 100644 index e1b4e8142..000000000 --- a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/ExistResultTest.php +++ /dev/null @@ -1,38 +0,0 @@ -assertTrue($result->isOK()); - $this->assertEquals($result->getData(), true); - } - - public function testParseInvalid404() - { - $response = new ResponseCore(array(), "", 404); - $result = new ExistResult($response); - $this->assertTrue($result->isOK()); - $this->assertEquals($result->getData(), false); - } - - public function testInvalidResponse() - { - $response = new ResponseCore(array(), "", 300); - try { - new ExistResult($response); - $this->assertTrue(false); - } catch (OssException $e) { - - } - } -} diff --git a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/GetCorsResultTest.php b/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/GetCorsResultTest.php deleted file mode 100644 index a3281c856..000000000 --- a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/GetCorsResultTest.php +++ /dev/null @@ -1,67 +0,0 @@ - - - -http://www.b.com -http://www.a.com -http://www.a.com -GET -PUT -POST -x-oss-test -x-oss-test2 -x-oss-test2 -x-oss-test3 -x-oss-test1 -x-oss-test1 -x-oss-test2 -10 - - -http://www.b.com -GET -x-oss-test -x-oss-test1 -110 - - -BBBB; - - public function testParseValidXml() - { - $response = new ResponseCore(array(), $this->validXml, 200); - $result = new GetCorsResult($response); - $this->assertTrue($result->isOK()); - $this->assertNotNull($result->getData()); - $this->assertNotNull($result->getRawResponse()); - $corsConfig = $result->getData(); - $this->assertEquals($this->cleanXml($this->validXml), $this->cleanXml($corsConfig->serializeToXml())); - } - - private function cleanXml($xml) - { - return str_replace("\n", "", str_replace("\r", "", $xml)); - } - - public function testInvalidResponse() - { - $response = new ResponseCore(array(), $this->validXml, 300); - try { - new GetCorsResult($response); - $this->assertTrue(false); - } catch (OssException $e) { - - } - } -} diff --git a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/GetLifecycleResultTest.php b/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/GetLifecycleResultTest.php deleted file mode 100644 index 92ae2086a..000000000 --- a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/GetLifecycleResultTest.php +++ /dev/null @@ -1,59 +0,0 @@ - - - -delete obsoleted files -obsoleted/ -Enabled -3 - - -delete temporary files -temporary/ -Enabled -2022-10-12T00:00:00.000Z -2022-10-12T00:00:00.000Z - - -BBBB; - - public function testParseValidXml() - { - $response = new ResponseCore(array(), $this->validXml, 200); - $result = new GetLifecycleResult($response); - $this->assertTrue($result->isOK()); - $this->assertNotNull($result->getData()); - $this->assertNotNull($result->getRawResponse()); - $lifecycleConfig = $result->getData(); - $this->assertEquals($this->cleanXml($this->validXml), $this->cleanXml($lifecycleConfig->serializeToXml())); - } - - private function cleanXml($xml) - { - return str_replace("\n", "", str_replace("\r", "", $xml)); - } - - public function testInvalidResponse() - { - $response = new ResponseCore(array(), $this->validXml, 300); - try { - new GetLifecycleResult($response); - $this->assertTrue(false); - } catch (OssException $e) { - - } - } - -} diff --git a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/GetLoggingResultTest.php b/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/GetLoggingResultTest.php deleted file mode 100644 index 619501481..000000000 --- a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/GetLoggingResultTest.php +++ /dev/null @@ -1,51 +0,0 @@ - - - -TargetBucket -TargetPrefix - - -BBBB; - - public function testParseValidXml() - { - $response = new ResponseCore(array(), $this->validXml, 200); - $result = new GetLoggingResult($response); - $this->assertTrue($result->isOK()); - $this->assertNotNull($result->getData()); - $this->assertNotNull($result->getRawResponse()); - $loggingConfig = $result->getData(); - $this->assertEquals($this->cleanXml($this->validXml), $this->cleanXml($loggingConfig->serializeToXml())); - $this->assertEquals("TargetBucket", $loggingConfig->getTargetBucket()); - $this->assertEquals("TargetPrefix", $loggingConfig->getTargetPrefix()); - } - - private function cleanXml($xml) - { - return str_replace("\n", "", str_replace("\r", "", $xml)); - } - - public function testInvalidResponse() - { - $response = new ResponseCore(array(), $this->validXml, 300); - try { - new GetLoggingResult($response); - $this->assertTrue(false); - } catch (OssException $e) { - - } - } -} diff --git a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/GetRefererResultTest.php b/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/GetRefererResultTest.php deleted file mode 100644 index 072aa43ac..000000000 --- a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/GetRefererResultTest.php +++ /dev/null @@ -1,51 +0,0 @@ - - -true - -http://www.aliyun.com -https://www.aliyun.com -http://www.*.com -https://www.?.aliyuncs.com - - -BBBB; - - public function testParseValidXml() - { - $response = new ResponseCore(array(), $this->validXml, 200); - $result = new GetRefererResult($response); - $this->assertTrue($result->isOK()); - $this->assertNotNull($result->getData()); - $this->assertNotNull($result->getRawResponse()); - $refererConfig = $result->getData(); - $this->assertEquals($this->cleanXml($this->validXml), $this->cleanXml($refererConfig->serializeToXml())); - } - - private function cleanXml($xml) - { - return str_replace("\n", "", str_replace("\r", "", $xml)); - } - - public function testInvalidResponse() - { - $response = new ResponseCore(array(), $this->validXml, 300); - try { - new GetRefererResult($response); - $this->assertTrue(false); - } catch (OssException $e) { - - } - } -} diff --git a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/GetWebsiteResultTest.php b/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/GetWebsiteResultTest.php deleted file mode 100644 index 70e155943..000000000 --- a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/GetWebsiteResultTest.php +++ /dev/null @@ -1,50 +0,0 @@ - - - -index.html - - -errorDocument.html - - -BBBB; - - public function testParseValidXml() - { - $response = new ResponseCore(array(), $this->validXml, 200); - $result = new GetWebsiteResult($response); - $this->assertTrue($result->isOK()); - $this->assertNotNull($result->getData()); - $this->assertNotNull($result->getRawResponse()); - $websiteConfig = $result->getData(); - $this->assertEquals($this->cleanXml($this->validXml), $this->cleanXml($websiteConfig->serializeToXml())); - } - - private function cleanXml($xml) - { - return str_replace("\n", "", str_replace("\r", "", $xml)); - } - - public function testInvalidResponse() - { - $response = new ResponseCore(array(), $this->validXml, 300); - try { - new GetWebsiteResult($response); - $this->assertTrue(false); - } catch (OssException $e) { - - } - } -} diff --git a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/HeaderResultTest.php b/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/HeaderResultTest.php deleted file mode 100644 index dae497544..000000000 --- a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/HeaderResultTest.php +++ /dev/null @@ -1,23 +0,0 @@ - 'value'), "", 200); - $result = new HeaderResult($response); - $this->assertTrue($result->isOK()); - $this->assertTrue(is_array($result->getData())); - $data = $result->getData(); - $this->assertEquals($data['key'], 'value'); - } -} diff --git a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/HttpTest.php b/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/HttpTest.php deleted file mode 100644 index a59dfcd2d..000000000 --- a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/HttpTest.php +++ /dev/null @@ -1,77 +0,0 @@ -assertFalse($res->isOK()); - $this->assertTrue($res->isOK(500)); - } - - public function testGet() - { - $httpCore = new RequestCore("http://www.baidu.com"); - $httpResponse = $httpCore->send_request(); - $this->assertNotNull($httpResponse); - } - - public function testSetProxyAndTimeout() - { - $httpCore = new RequestCore("http://www.baidu.com"); - $httpCore->set_proxy("1.0.2.1:8888"); - $httpCore->connect_timeout = 1; - try { - $httpResponse = $httpCore->send_request(); - $this->assertTrue(false); - } catch (RequestCore_Exception $e) { - - } - } - - public function testGetParseTrue() - { - $httpCore = new RequestCore("http://www.baidu.com"); - $httpCore->curlopts = array(CURLOPT_HEADER => true); - $url = $httpCore->send_request(true); - foreach ($httpCore->get_response_header() as $key => $value) { - $this->assertEquals($httpCore->get_response_header($key), $value); - } - $this->assertNotNull($url); - } - - public function testParseResponse() - { - $httpCore = new RequestCore("http://www.baidu.com"); - $response = $httpCore->send_request(); - $parsed = $httpCore->process_response(null, $response); - $this->assertNotNull($parsed); - } - - public function testExceptionGet() - { - $httpCore = null; - $exception = false; - try { - $httpCore = new RequestCore("http://www.notexistsitexx.com"); - $httpCore->set_body(""); - $httpCore->set_method("GET"); - $httpCore->connect_timeout = 10; - $httpCore->timeout = 10; - $res = $httpCore->send_request(); - } catch (RequestCore_Exception $e) { - $exception = true; - } - $this->assertTrue($exception); - } -} - - diff --git a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/InitiateMultipartUploadResultTest.php b/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/InitiateMultipartUploadResultTest.php deleted file mode 100644 index 9f6c7a53e..000000000 --- a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/InitiateMultipartUploadResultTest.php +++ /dev/null @@ -1,47 +0,0 @@ - - - multipart_upload - multipart.data - 0004B9894A22E5B1888A1E29F8236E2D - -BBBB; - - private $invalidXml = << - - multipart_upload - multipart.data - -BBBB; - - - public function testParseValidXml() - { - $response = new ResponseCore(array(), $this->validXml, 200); - $result = new InitiateMultipartUploadResult($response); - $this->assertEquals("0004B9894A22E5B1888A1E29F8236E2D", $result->getData()); - } - - public function testParseInvalidXml() - { - $response = new ResponseCore(array(), $this->invalidXml, 200); - try { - $result = new InitiateMultipartUploadResult($response); - $this->assertTrue(false); - } catch (OssException $e) { - - } - } -} diff --git a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/LifecycleConfigTest.php b/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/LifecycleConfigTest.php deleted file mode 100644 index 7bd033185..000000000 --- a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/LifecycleConfigTest.php +++ /dev/null @@ -1,130 +0,0 @@ - - - -delete obsoleted files -obsoleted/ -Enabled -3 - - -delete temporary files -temporary/ -Enabled -2022-10-12T00:00:00.000Z -2022-10-12T00:00:00.000Z - - -BBBB; - - private $validLifecycle2 = << - -delete temporary files -temporary/ -Enabled -2022-10-12T00:00:00.000Z -2022-10-12T00:00:00.000Z - - -BBBB; - - private $nullLifecycle = << - -BBBB; - - public function testConstructValidConfig() - { - $lifecycleConfig = new LifecycleConfig(); - $actions = array(); - $actions[] = new LifecycleAction("Expiration", "Days", 3); - $lifecycleRule = new LifecycleRule("delete obsoleted files", "obsoleted/", "Enabled", $actions); - $lifecycleConfig->addRule($lifecycleRule); - $actions = array(); - $actions[] = new LifecycleAction("Expiration", "Date", '2022-10-12T00:00:00.000Z'); - $actions[] = new LifecycleAction("Expiration2", "Date", '2022-10-12T00:00:00.000Z'); - $lifecycleRule = new LifecycleRule("delete temporary files", "temporary/", "Enabled", $actions); - $lifecycleConfig->addRule($lifecycleRule); - try { - $lifecycleConfig->addRule(null); - $this->assertFalse(true); - } catch (OssException $e) { - $this->assertEquals('lifecycleRule is null', $e->getMessage()); - } - $this->assertEquals($this->cleanXml(strval($lifecycleConfig)), $this->cleanXml($this->validLifecycle)); - } - - public function testParseValidXml() - { - $lifecycleConfig = new LifecycleConfig(); - $lifecycleConfig->parseFromXml($this->validLifecycle); - $this->assertEquals($this->cleanXml($lifecycleConfig->serializeToXml()), $this->cleanXml($this->validLifecycle)); - $this->assertEquals(2, count($lifecycleConfig->getRules())); - $rules = $lifecycleConfig->getRules(); - $this->assertEquals('delete temporary files', $rules[1]->getId()); - } - - public function testParseValidXml2() - { - $lifecycleConfig = new LifecycleConfig(); - $lifecycleConfig->parseFromXml($this->validLifecycle2); - $this->assertEquals($this->cleanXml($lifecycleConfig->serializeToXml()), $this->cleanXml($this->validLifecycle2)); - $this->assertEquals(1, count($lifecycleConfig->getRules())); - $rules = $lifecycleConfig->getRules(); - $this->assertEquals('delete temporary files', $rules[0]->getId()); - } - - public function testParseNullXml() - { - $lifecycleConfig = new LifecycleConfig(); - $lifecycleConfig->parseFromXml($this->nullLifecycle); - $this->assertEquals($this->cleanXml($lifecycleConfig->serializeToXml()), $this->cleanXml($this->nullLifecycle)); - $this->assertEquals(0, count($lifecycleConfig->getRules())); - } - - public function testLifecycleRule() - { - $lifecycleRule = new LifecycleRule("x", "x", "x", array('x')); - $lifecycleRule->setId("id"); - $lifecycleRule->setPrefix("prefix"); - $lifecycleRule->setStatus("Enabled"); - $lifecycleRule->setActions(array()); - - $this->assertEquals('id', $lifecycleRule->getId()); - $this->assertEquals('prefix', $lifecycleRule->getPrefix()); - $this->assertEquals('Enabled', $lifecycleRule->getStatus()); - $this->assertEmpty($lifecycleRule->getActions()); - } - - public function testLifecycleAction() - { - $action = new LifecycleAction('x', 'x', 'x'); - $this->assertEquals($action->getAction(), 'x'); - $this->assertEquals($action->getTimeSpec(), 'x'); - $this->assertEquals($action->getTimeValue(), 'x'); - $action->setAction('y'); - $action->setTimeSpec('y'); - $action->setTimeValue('y'); - $this->assertEquals($action->getAction(), 'y'); - $this->assertEquals($action->getTimeSpec(), 'y'); - $this->assertEquals($action->getTimeValue(), 'y'); - } - - private function cleanXml($xml) - { - return str_replace("\n", "", str_replace("\r", "", $xml)); - } -} diff --git a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/ListBucketsResultTest.php b/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/ListBucketsResultTest.php deleted file mode 100644 index 1abe1f503..000000000 --- a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/ListBucketsResultTest.php +++ /dev/null @@ -1,97 +0,0 @@ - - - - ut_test_put_bucket - ut_test_put_bucket - - - - oss-cn-hangzhou-a - xz02tphky6fjfiuc0 - 2014-05-15T11:18:32.000Z - - - oss-cn-hangzhou-a - xz02tphky6fjfiuc1 - 2014-05-15T11:18:32.000Z - - - -BBBB; - - private $nullXml = << - - - ut_test_put_bucket - ut_test_put_bucket - - - - -BBBB; - - public function testParseValidXml() - { - $response = new ResponseCore(array(), $this->validXml, 200); - $result = new ListBucketsResult($response); - $this->assertTrue($result->isOK()); - $this->assertNotNull($result->getData()); - $this->assertNotNull($result->getRawResponse()); - $bucketListInfo = $result->getData(); - $this->assertEquals(2, count($bucketListInfo->getBucketList())); - } - - public function testParseNullXml() - { - $response = new ResponseCore(array(), $this->nullXml, 200); - $result = new ListBucketsResult($response); - $this->assertTrue($result->isOK()); - $this->assertNotNull($result->getData()); - $this->assertNotNull($result->getRawResponse()); - $bucketListInfo = $result->getData(); - $this->assertEquals(0, count($bucketListInfo->getBucketList())); - } - - public function test403() - { - $errorHeader = array( - 'x-oss-request-id' => '1a2b-3c4d' - ); - - $errorBody = <<< BBBB - - - NoSuchBucket - The specified bucket does not exist. - 566B870D207FB3044302EB0A - hello.oss-test.aliyun-inc.com - hello - -BBBB; - $response = new ResponseCore($errorHeader, $errorBody, 403); - try { - new ListBucketsResult($response); - } catch (OssException $e) { - $this->assertEquals( - $e->getMessage(), - 'NoSuchBucket: The specified bucket does not exist. RequestId: 1a2b-3c4d'); - $this->assertEquals($e->getHTTPStatus(), '403'); - $this->assertEquals($e->getRequestId(), '1a2b-3c4d'); - $this->assertEquals($e->getErrorCode(), 'NoSuchBucket'); - $this->assertEquals($e->getErrorMessage(), 'The specified bucket does not exist.'); - $this->assertEquals($e->getDetails(), $errorBody); - } - } -} diff --git a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/ListMultipartUploadResultTest.php b/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/ListMultipartUploadResultTest.php deleted file mode 100644 index 5c757d315..000000000 --- a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/ListMultipartUploadResultTest.php +++ /dev/null @@ -1,114 +0,0 @@ - - - oss-example - xx - 3 - oss.avi - 0004B99B8E707874FC2D692FA5D77D3F - x - xx - 1000 - false - - multipart.data - 0004B999EF518A1FE585B0C9360DC4C8 - 2012-02-23T04:18:23.000Z - - - multipart.data - 0004B999EF5A239BB9138C6227D69F95 - 2012-02-23T04:18:23.000Z - - - oss.avi - 0004B99B8E707874FC2D692FA5D77D3F - 2012-02-23T06:14:27.000Z - - -BBBB; - - private $validXmlWithEncodedKey = << - - oss-example - url - php%2Bkey-marker - 3 - php%2Bnext-key-marker - 0004B99B8E707874FC2D692FA5D77D3F - %2F - php%2Bprefix - 1000 - true - - php%2Bkey-1 - 0004B999EF518A1FE585B0C9360DC4C8 - 2012-02-23T04:18:23.000Z - - - php%2Bkey-2 - 0004B999EF5A239BB9138C6227D69F95 - 2012-02-23T04:18:23.000Z - - - php%2Bkey-3 - 0004B99B8E707874FC2D692FA5D77D3F - 2012-02-23T06:14:27.000Z - - -BBBB; - - public function testParseValidXml() - { - $response = new ResponseCore(array(), $this->validXml, 200); - $result = new ListMultipartUploadResult($response); - $listMultipartUploadInfo = $result->getData(); - $this->assertEquals("oss-example", $listMultipartUploadInfo->getBucket()); - $this->assertEquals("xx", $listMultipartUploadInfo->getKeyMarker()); - $this->assertEquals(3, $listMultipartUploadInfo->getUploadIdMarker()); - $this->assertEquals("oss.avi", $listMultipartUploadInfo->getNextKeyMarker()); - $this->assertEquals("0004B99B8E707874FC2D692FA5D77D3F", $listMultipartUploadInfo->getNextUploadIdMarker()); - $this->assertEquals("x", $listMultipartUploadInfo->getDelimiter()); - $this->assertEquals("xx", $listMultipartUploadInfo->getPrefix()); - $this->assertEquals(1000, $listMultipartUploadInfo->getMaxUploads()); - $this->assertEquals("false", $listMultipartUploadInfo->getIsTruncated()); - $uploads = $listMultipartUploadInfo->getUploads(); - $this->assertEquals("multipart.data", $uploads[0]->getKey()); - $this->assertEquals("0004B999EF518A1FE585B0C9360DC4C8", $uploads[0]->getUploadId()); - $this->assertEquals("2012-02-23T04:18:23.000Z", $uploads[0]->getInitiated()); - } - - public function testParseValidXmlWithEncodedKey() - { - $response = new ResponseCore(array(), $this->validXmlWithEncodedKey, 200); - $result = new ListMultipartUploadResult($response); - $listMultipartUploadInfo = $result->getData(); - $this->assertEquals("oss-example", $listMultipartUploadInfo->getBucket()); - $this->assertEquals("php+key-marker", $listMultipartUploadInfo->getKeyMarker()); - $this->assertEquals("php+next-key-marker", $listMultipartUploadInfo->getNextKeyMarker()); - $this->assertEquals(3, $listMultipartUploadInfo->getUploadIdMarker()); - $this->assertEquals("0004B99B8E707874FC2D692FA5D77D3F", $listMultipartUploadInfo->getNextUploadIdMarker()); - $this->assertEquals("/", $listMultipartUploadInfo->getDelimiter()); - $this->assertEquals("php+prefix", $listMultipartUploadInfo->getPrefix()); - $this->assertEquals(1000, $listMultipartUploadInfo->getMaxUploads()); - $this->assertEquals("true", $listMultipartUploadInfo->getIsTruncated()); - $uploads = $listMultipartUploadInfo->getUploads(); - $this->assertEquals("php+key-1", $uploads[0]->getKey()); - $this->assertEquals("0004B999EF518A1FE585B0C9360DC4C8", $uploads[0]->getUploadId()); - $this->assertEquals("2012-02-23T04:18:23.000Z", $uploads[0]->getInitiated()); - } -} diff --git a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/ListObjectsResultTest.php b/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/ListObjectsResultTest.php deleted file mode 100644 index 85f262ca4..000000000 --- a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/ListObjectsResultTest.php +++ /dev/null @@ -1,151 +0,0 @@ - - - testbucket-hf - - - 1000 - / - false - - oss-php-sdk-test/ - - - test/ - - -BBBB; - - private $validXml2 = << - - testbucket-hf - oss-php-sdk-test/ - xx - 1000 - / - false - - oss-php-sdk-test/upload-test-object-name.txt - 2015-11-18T03:36:00.000Z - "89B9E567E7EB8815F2F7D41851F9A2CD" - Normal - 13115 - Standard - - cname_user - cname_user - - - -BBBB; - - private $validXmlWithEncodedKey = << - - testbucket-hf - url - php%2Fprefix - php%2Fmarker - php%2Fnext-marker - 1000 - %2F - true - - php/a%2Bb - 2015-11-18T03:36:00.000Z - "89B9E567E7EB8815F2F7D41851F9A2CD" - Normal - 13115 - Standard - - cname_user - cname_user - - - -BBBB; - - public function testParseValidXml1() - { - $response = new ResponseCore(array(), $this->validXml1, 200); - $result = new ListObjectsResult($response); - $this->assertTrue($result->isOK()); - $this->assertNotNull($result->getData()); - $this->assertNotNull($result->getRawResponse()); - $objectListInfo = $result->getData(); - $this->assertEquals(2, count($objectListInfo->getPrefixList())); - $this->assertEquals(0, count($objectListInfo->getObjectList())); - $this->assertEquals('testbucket-hf', $objectListInfo->getBucketName()); - $this->assertEquals('', $objectListInfo->getPrefix()); - $this->assertEquals('', $objectListInfo->getMarker()); - $this->assertEquals(1000, $objectListInfo->getMaxKeys()); - $this->assertEquals('/', $objectListInfo->getDelimiter()); - $this->assertEquals('false', $objectListInfo->getIsTruncated()); - $prefixes = $objectListInfo->getPrefixList(); - $this->assertEquals('oss-php-sdk-test/', $prefixes[0]->getPrefix()); - $this->assertEquals('test/', $prefixes[1]->getPrefix()); - } - - public function testParseValidXml2() - { - $response = new ResponseCore(array(), $this->validXml2, 200); - $result = new ListObjectsResult($response); - $this->assertTrue($result->isOK()); - $this->assertNotNull($result->getData()); - $this->assertNotNull($result->getRawResponse()); - $objectListInfo = $result->getData(); - $this->assertEquals(0, count($objectListInfo->getPrefixList())); - $this->assertEquals(1, count($objectListInfo->getObjectList())); - $this->assertEquals('testbucket-hf', $objectListInfo->getBucketName()); - $this->assertEquals('oss-php-sdk-test/', $objectListInfo->getPrefix()); - $this->assertEquals('xx', $objectListInfo->getMarker()); - $this->assertEquals(1000, $objectListInfo->getMaxKeys()); - $this->assertEquals('/', $objectListInfo->getDelimiter()); - $this->assertEquals('false', $objectListInfo->getIsTruncated()); - $objects = $objectListInfo->getObjectList(); - $this->assertEquals('oss-php-sdk-test/upload-test-object-name.txt', $objects[0]->getKey()); - $this->assertEquals('2015-11-18T03:36:00.000Z', $objects[0]->getLastModified()); - $this->assertEquals('"89B9E567E7EB8815F2F7D41851F9A2CD"', $objects[0]->getETag()); - $this->assertEquals('Normal', $objects[0]->getType()); - $this->assertEquals(13115, $objects[0]->getSize()); - $this->assertEquals('Standard', $objects[0]->getStorageClass()); - } - - public function testParseValidXmlWithEncodedKey() - { - $response = new ResponseCore(array(), $this->validXmlWithEncodedKey, 200); - $result = new ListObjectsResult($response); - $this->assertTrue($result->isOK()); - $this->assertNotNull($result->getData()); - $this->assertNotNull($result->getRawResponse()); - $objectListInfo = $result->getData(); - $this->assertEquals(0, count($objectListInfo->getPrefixList())); - $this->assertEquals(1, count($objectListInfo->getObjectList())); - $this->assertEquals('testbucket-hf', $objectListInfo->getBucketName()); - $this->assertEquals('php/prefix', $objectListInfo->getPrefix()); - $this->assertEquals('php/marker', $objectListInfo->getMarker()); - $this->assertEquals('php/next-marker', $objectListInfo->getNextMarker()); - $this->assertEquals(1000, $objectListInfo->getMaxKeys()); - $this->assertEquals('/', $objectListInfo->getDelimiter()); - $this->assertEquals('true', $objectListInfo->getIsTruncated()); - $objects = $objectListInfo->getObjectList(); - $this->assertEquals('php/a+b', $objects[0]->getKey()); - $this->assertEquals('2015-11-18T03:36:00.000Z', $objects[0]->getLastModified()); - $this->assertEquals('"89B9E567E7EB8815F2F7D41851F9A2CD"', $objects[0]->getETag()); - $this->assertEquals('Normal', $objects[0]->getType()); - $this->assertEquals(13115, $objects[0]->getSize()); - $this->assertEquals('Standard', $objects[0]->getStorageClass()); - } -} diff --git a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/ListPartsResultTest.php b/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/ListPartsResultTest.php deleted file mode 100644 index c446714f6..000000000 --- a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/ListPartsResultTest.php +++ /dev/null @@ -1,62 +0,0 @@ - - - multipart_upload - multipart.data - 0004B999EF5A239BB9138C6227D69F95 - 5 - 1000 - false - - 1 - 2012-02-23T07:01:34.000Z - "3349DC700140D7F86A078484278075A9" - 6291456 - - - 2 - 2012-02-23T07:01:12.000Z - "3349DC700140D7F86A078484278075A9" - 6291456 - - - 5 - 2012-02-23T07:02:03.000Z - "7265F4D211B56873A381D321F586E4A9" - 1024 - - -BBBB; - - public function testParseValidXml() - { - $response = new ResponseCore(array(), $this->validXml, 200); - $result = new ListPartsResult($response); - $listPartsInfo = $result->getData(); - $this->assertEquals("multipart_upload", $listPartsInfo->getBucket()); - $this->assertEquals("multipart.data", $listPartsInfo->getKey()); - $this->assertEquals("0004B999EF5A239BB9138C6227D69F95", $listPartsInfo->getUploadId()); - $this->assertEquals(5, $listPartsInfo->getNextPartNumberMarker()); - $this->assertEquals(1000, $listPartsInfo->getMaxParts()); - $this->assertEquals("false", $listPartsInfo->getIsTruncated()); - $this->assertEquals(3, count($listPartsInfo->getListPart())); - $parts = $listPartsInfo->getListPart(); - $this->assertEquals(1, $parts[0]->getPartNumber()); - $this->assertEquals('2012-02-23T07:01:34.000Z', $parts[0]->getLastModified()); - $this->assertEquals('"3349DC700140D7F86A078484278075A9"', $parts[0]->getETag()); - $this->assertEquals(6291456, $parts[0]->getSize()); - } -} diff --git a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/LiveChannelXmlTest.php b/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/LiveChannelXmlTest.php deleted file mode 100644 index cc3e2199b..000000000 --- a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/LiveChannelXmlTest.php +++ /dev/null @@ -1,249 +0,0 @@ - - - xxx - enabled - - hls - 1000 - 5 - hello.m3u8 - - -BBBB; - - private $info = << - - live-1 - xxx - - rtmp://bucket.oss-cn-hangzhou.aliyuncs.com/live/213443245345 - - - http://bucket.oss-cn-hangzhou.aliyuncs.com/213443245345/播放列表.m3u8 - - enabled - 2015-11-24T14:25:31.000Z - -BBBB; - - private $list = << - -xxx - yyy - 100 - false - 121312132 - - 12123214323431 - xxx - - rtmp://bucket.oss-cn-hangzhou.aliyuncs.com/live/1 - - - http://bucket.oss-cn-hangzhou.aliyuncs.com/1/播放列表.m3u8 - - enabled - 2015-11-24T14:25:31.000Z - - - 432423432423 - yyy - - rtmp://bucket.oss-cn-hangzhou.aliyuncs.com/live/2 - - - http://bucket.oss-cn-hangzhou.aliyuncs.com/2/播放列表.m3u8 - - enabled - 2016-11-24T14:25:31.000Z - - -BBBB; - - private $status = << - - Live - 2016-10-20T14:25:31.000Z - 10.1.2.4:47745 - - - -BBBB; - - private $history = << - - - 2013-11-24T14:25:31.000Z - 2013-11-24T15:25:31.000Z - 10.101.194.148:56861 - - - 2014-11-24T14:25:31.000Z - 2014-11-24T15:25:31.000Z - 10.101.194.148:56862 - - - 2015-11-24T14:25:31.000Z - 2015-11-24T15:25:31.000Z - 10.101.194.148:56863 - - -BBBB; - - public function testLiveChannelStatus() - { - $stat = new GetLiveChannelStatus(); - $stat->parseFromXml($this->status); - - $this->assertEquals('Live', $stat->getStatus()); - $this->assertEquals('2016-10-20T14:25:31.000Z', $stat->getConnectedTime()); - $this->assertEquals('10.1.2.4:47745', $stat->getRemoteAddr()); - - $this->assertEquals(1280, $stat->getVideoWidth()); - $this->assertEquals(536, $stat->getVideoHeight()); - $this->assertEquals(24, $stat->getVideoFrameRate()); - $this->assertEquals(72513, $stat->getVideoBandwidth()); - $this->assertEquals('H264', $stat->getVideoCodec()); - $this->assertEquals(6519, $stat->getAudioBandwidth()); - $this->assertEquals(44100, $stat->getAudioSampleRate()); - $this->assertEquals('AAC', $stat->getAudioCodec()); - - } - - public function testLiveChannelHistory() - { - $history = new GetLiveChannelHistory(); - $history->parseFromXml($this->history); - - $recordList = $history->getLiveRecordList(); - $this->assertEquals(3, count($recordList)); - - $list0 = $recordList[0]; - $this->assertEquals('2013-11-24T14:25:31.000Z', $list0->getStartTime()); - $this->assertEquals('2013-11-24T15:25:31.000Z', $list0->getEndTime()); - $this->assertEquals('10.101.194.148:56861', $list0->getRemoteAddr()); - - $list1 = $recordList[1]; - $this->assertEquals('2014-11-24T14:25:31.000Z', $list1->getStartTime()); - $this->assertEquals('2014-11-24T15:25:31.000Z', $list1->getEndTime()); - $this->assertEquals('10.101.194.148:56862', $list1->getRemoteAddr()); - - $list2 = $recordList[2]; - $this->assertEquals('2015-11-24T14:25:31.000Z', $list2->getStartTime()); - $this->assertEquals('2015-11-24T15:25:31.000Z', $list2->getEndTime()); - $this->assertEquals('10.101.194.148:56863', $list2->getRemoteAddr()); - - } - - public function testLiveChannelConfig() - { - $config = new LiveChannelConfig(array('name' => 'live-1')); - $config->parseFromXml($this->config); - - $this->assertEquals('xxx', $config->getDescription()); - $this->assertEquals('enabled', $config->getStatus()); - $this->assertEquals('hls', $config->getType()); - $this->assertEquals(1000, $config->getFragDuration()); - $this->assertEquals(5, $config->getFragCount()); - $this->assertEquals('hello.m3u8', $config->getPlayListName()); - - $xml = $config->serializeToXml(); - $config2 = new LiveChannelConfig(array('name' => 'live-2')); - $config2->parseFromXml($xml); - $this->assertEquals('xxx', $config2->getDescription()); - $this->assertEquals('enabled', $config2->getStatus()); - $this->assertEquals('hls', $config2->getType()); - $this->assertEquals(1000, $config2->getFragDuration()); - $this->assertEquals(5, $config2->getFragCount()); - $this->assertEquals('hello.m3u8', $config2->getPlayListName()); - } - - public function testLiveChannelInfo() - { - $info = new LiveChannelInfo(array('name' => 'live-1')); - $info->parseFromXml($this->info); - - $this->assertEquals('live-1', $info->getName()); - $this->assertEquals('xxx', $info->getDescription()); - $this->assertEquals('enabled', $info->getStatus()); - $this->assertEquals('2015-11-24T14:25:31.000Z', $info->getLastModified()); - $pubs = $info->getPublishUrls(); - $this->assertEquals(1, count($pubs)); - $this->assertEquals('rtmp://bucket.oss-cn-hangzhou.aliyuncs.com/live/213443245345', $pubs[0]); - - $plays = $info->getPlayUrls(); - $this->assertEquals(1, count($plays)); - $this->assertEquals('http://bucket.oss-cn-hangzhou.aliyuncs.com/213443245345/播放列表.m3u8', $plays[0]); - } - - public function testLiveChannelList() - { - $list = new LiveChannelListInfo(); - $list->parseFromXml($this->list); - - $this->assertEquals('xxx', $list->getPrefix()); - $this->assertEquals('yyy', $list->getMarker()); - $this->assertEquals(100, $list->getMaxKeys()); - $this->assertEquals(false, $list->getIsTruncated()); - $this->assertEquals('121312132', $list->getNextMarker()); - - $channels = $list->getChannelList(); - $this->assertEquals(2, count($channels)); - - $chan1 = $channels[0]; - $this->assertEquals('12123214323431', $chan1->getName()); - $this->assertEquals('xxx', $chan1->getDescription()); - $this->assertEquals('enabled', $chan1->getStatus()); - $this->assertEquals('2015-11-24T14:25:31.000Z', $chan1->getLastModified()); - $pubs = $chan1->getPublishUrls(); - $this->assertEquals(1, count($pubs)); - $this->assertEquals('rtmp://bucket.oss-cn-hangzhou.aliyuncs.com/live/1', $pubs[0]); - - $plays = $chan1->getPlayUrls(); - $this->assertEquals(1, count($plays)); - $this->assertEquals('http://bucket.oss-cn-hangzhou.aliyuncs.com/1/播放列表.m3u8', $plays[0]); - - $chan2 = $channels[1]; - $this->assertEquals('432423432423', $chan2->getName()); - $this->assertEquals('yyy', $chan2->getDescription()); - $this->assertEquals('enabled', $chan2->getStatus()); - $this->assertEquals('2016-11-24T14:25:31.000Z', $chan2->getLastModified()); - $pubs = $chan2->getPublishUrls(); - $this->assertEquals(1, count($pubs)); - $this->assertEquals('rtmp://bucket.oss-cn-hangzhou.aliyuncs.com/live/2', $pubs[0]); - - $plays = $chan2->getPlayUrls(); - $this->assertEquals(1, count($plays)); - $this->assertEquals('http://bucket.oss-cn-hangzhou.aliyuncs.com/2/播放列表.m3u8', $plays[0]); - } - -} diff --git a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/LoggingConfigTest.php b/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/LoggingConfigTest.php deleted file mode 100644 index 01496bb8f..000000000 --- a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/LoggingConfigTest.php +++ /dev/null @@ -1,47 +0,0 @@ - - - -TargetBucket -TargetPrefix - - -BBBB; - - private $nullXml = << - -BBBB; - - public function testParseValidXml() - { - $loggingConfig = new LoggingConfig(); - $loggingConfig->parseFromXml($this->validXml); - $this->assertEquals($this->cleanXml($this->validXml), $this->cleanXml(strval($loggingConfig))); - } - - public function testConstruct() - { - $loggingConfig = new LoggingConfig('TargetBucket', 'TargetPrefix'); - $this->assertEquals($this->cleanXml($this->validXml), $this->cleanXml($loggingConfig->serializeToXml())); - } - - public function testFailedConstruct() - { - $loggingConfig = new LoggingConfig('TargetBucket', null); - $this->assertEquals($this->cleanXml($this->nullXml), $this->cleanXml($loggingConfig->serializeToXml())); - } - - private function cleanXml($xml) - { - return str_replace("\n", "", str_replace("\r", "", $xml)); - } -} diff --git a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/MimeTypesTest.php b/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/MimeTypesTest.php deleted file mode 100644 index 0697409e1..000000000 --- a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/MimeTypesTest.php +++ /dev/null @@ -1,13 +0,0 @@ -assertEquals('application/xml', MimeTypes::getMimetype('file.xml')); - } -} diff --git a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/ObjectAclTest.php b/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/ObjectAclTest.php deleted file mode 100644 index d39728814..000000000 --- a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/ObjectAclTest.php +++ /dev/null @@ -1,28 +0,0 @@ -deleteObject($bucket, $object); - $client->putObject($bucket, $object, "hello world"); - - $acl = $client->getObjectAcl($bucket, $object); - $this->assertEquals('default', $acl); - - $client->putObjectAcl($bucket, $object, 'public-read'); - $acl = $client->getObjectAcl($bucket, $object); - $this->assertEquals('public-read', $acl); - - $content = $client->getObject($bucket, $object); - $this->assertEquals('hello world', $content); - } -} diff --git a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/OssClientBucketCorsTest.php b/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/OssClientBucketCorsTest.php deleted file mode 100644 index a32154b55..000000000 --- a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/OssClientBucketCorsTest.php +++ /dev/null @@ -1,84 +0,0 @@ -addAllowedHeader("x-oss-test"); - $rule->addAllowedHeader("x-oss-test2"); - $rule->addAllowedHeader("x-oss-test2"); - $rule->addAllowedHeader("x-oss-test3"); - $rule->addAllowedOrigin("http://www.b.com"); - $rule->addAllowedOrigin("http://www.a.com"); - $rule->addAllowedOrigin("http://www.a.com"); - $rule->addAllowedMethod("GET"); - $rule->addAllowedMethod("PUT"); - $rule->addAllowedMethod("POST"); - $rule->addExposeHeader("x-oss-test1"); - $rule->addExposeHeader("x-oss-test1"); - $rule->addExposeHeader("x-oss-test2"); - $rule->setMaxAgeSeconds(10); - $corsConfig->addRule($rule); - $rule = new CorsRule(); - $rule->addAllowedHeader("x-oss-test"); - $rule->addAllowedMethod("GET"); - $rule->addAllowedOrigin("http://www.b.com"); - $rule->addExposeHeader("x-oss-test1"); - $rule->setMaxAgeSeconds(110); - $corsConfig->addRule($rule); - - try { - $this->ossClient->putBucketCors($this->bucket, $corsConfig); - } catch (OssException $e) { - $this->assertFalse(True); - } - - try { - Common::waitMetaSync(); - $object = "cors/test.txt"; - $this->ossClient->putObject($this->bucket, $object, file_get_contents(__FILE__)); - $headers = $this->ossClient->optionsObject($this->bucket, $object, "http://www.a.com", "GET", "", null); - $this->assertNotEmpty($headers); - } catch (OssException $e) { - var_dump($e->getMessage()); - } - - try { - Common::waitMetaSync(); - $corsConfig2 = $this->ossClient->getBucketCors($this->bucket); - $this->assertNotNull($corsConfig2); - $this->assertEquals($corsConfig->serializeToXml(), $corsConfig2->serializeToXml()); - } catch (OssException $e) { - $this->assertFalse(True); - } - - try { - Common::waitMetaSync(); - $this->ossClient->deleteBucketCors($this->bucket); - } catch (OssException $e) { - $this->assertFalse(True); - } - - try { - Common::waitMetaSync(); - $corsConfig3 = $this->ossClient->getBucketCors($this->bucket); - $this->assertNotNull($corsConfig3); - $this->assertNotEquals($corsConfig->serializeToXml(), $corsConfig3->serializeToXml()); - } catch (OssException $e) { - $this->assertFalse(True); - } - - } -} diff --git a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/OssClientBucketLifecycleTest.php b/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/OssClientBucketLifecycleTest.php deleted file mode 100644 index 46da1f063..000000000 --- a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/OssClientBucketLifecycleTest.php +++ /dev/null @@ -1,57 +0,0 @@ -addRule($lifecycleRule); - $actions = array(); - $actions[] = new LifecycleAction("Expiration", "Date", '2022-10-12T00:00:00.000Z'); - $lifecycleRule = new LifecycleRule("delete temporary files", "temporary/", "Enabled", $actions); - $lifecycleConfig->addRule($lifecycleRule); - - try { - $this->ossClient->putBucketLifecycle($this->bucket, $lifecycleConfig); - } catch (OssException $e) { - $this->assertTrue(false); - } - - try { - Common::waitMetaSync(); - $lifecycleConfig2 = $this->ossClient->getBucketLifecycle($this->bucket); - $this->assertEquals($lifecycleConfig->serializeToXml(), $lifecycleConfig2->serializeToXml()); - } catch (OssException $e) { - $this->assertTrue(false); - } - - try { - Common::waitMetaSync(); - $this->ossClient->deleteBucketLifecycle($this->bucket); - } catch (OssException $e) { - $this->assertTrue(false); - } - - try { - Common::waitMetaSync(); - $lifecycleConfig3 = $this->ossClient->getBucketLifecycle($this->bucket); - $this->assertNotEquals($lifecycleConfig->serializeToXml(), $lifecycleConfig3->serializeToXml()); - } catch (OssException $e) { - $this->assertTrue(false); - } - - } -} diff --git a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/OssClientBucketLoggingTest.php b/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/OssClientBucketLoggingTest.php deleted file mode 100644 index 16a10ebfa..000000000 --- a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/OssClientBucketLoggingTest.php +++ /dev/null @@ -1,43 +0,0 @@ -bucket, 'prefix'); - try { - $this->ossClient->putBucketLogging($this->bucket, $this->bucket, 'prefix'); - } catch (OssException $e) { - var_dump($e->getMessage()); - $this->assertTrue(false); - } - try { - Common::waitMetaSync(); - $loggingConfig2 = $this->ossClient->getBucketLogging($this->bucket); - $this->assertEquals($loggingConfig->serializeToXml(), $loggingConfig2->serializeToXml()); - } catch (OssException $e) { - $this->assertTrue(false); - } - try { - Common::waitMetaSync(); - $this->ossClient->deleteBucketLogging($this->bucket); - } catch (OssException $e) { - $this->assertTrue(false); - } - try { - Common::waitMetaSync(); - $loggingConfig3 = $this->ossClient->getBucketLogging($this->bucket); - $this->assertNotEquals($loggingConfig->serializeToXml(), $loggingConfig3->serializeToXml()); - } catch (OssException $e) { - $this->assertTrue(false); - } - } -} diff --git a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/OssClientBucketRefererTest.php b/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/OssClientBucketRefererTest.php deleted file mode 100644 index ba7d14f5b..000000000 --- a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/OssClientBucketRefererTest.php +++ /dev/null @@ -1,48 +0,0 @@ -addReferer('http://www.aliyun.com'); - - try { - $this->ossClient->putBucketReferer($this->bucket, $refererConfig); - } catch (OssException $e) { - var_dump($e->getMessage()); - $this->assertTrue(false); - } - try { - Common::waitMetaSync(); - $refererConfig2 = $this->ossClient->getBucketReferer($this->bucket); - $this->assertEquals($refererConfig->serializeToXml(), $refererConfig2->serializeToXml()); - } catch (OssException $e) { - $this->assertTrue(false); - } - try { - Common::waitMetaSync(); - $nullRefererConfig = new RefererConfig(); - $nullRefererConfig->setAllowEmptyReferer(false); - $this->ossClient->putBucketReferer($this->bucket, $nullRefererConfig); - } catch (OssException $e) { - $this->assertTrue(false); - } - try { - Common::waitMetaSync(); - $refererConfig3 = $this->ossClient->getBucketLogging($this->bucket); - $this->assertNotEquals($refererConfig->serializeToXml(), $refererConfig3->serializeToXml()); - } catch (OssException $e) { - $this->assertTrue(false); - } - } -} diff --git a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/OssClientBucketStorageCapacityTest.php b/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/OssClientBucketStorageCapacityTest.php deleted file mode 100644 index 87548f974..000000000 --- a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/OssClientBucketStorageCapacityTest.php +++ /dev/null @@ -1,56 +0,0 @@ -ossClient->getBucketStorageCapacity($this->bucket); - $this->assertEquals($storageCapacity, -1); - } catch (OssException $e) { - $this->assertTrue(false); - } - - try { - $this->ossClient->putBucketStorageCapacity($this->bucket, 1000); - } catch (OssException $e) { - $this->assertTrue(false); - } - - try { - Common::waitMetaSync(); - $storageCapacity = $this->ossClient->getBucketStorageCapacity($this->bucket); - $this->assertEquals($storageCapacity, 1000); - } catch (OssException $e) { - $this->assertTrue(false); - } - - try { - $this->ossClient->putBucketStorageCapacity($this->bucket, 0); - - Common::waitMetaSync(); - - $storageCapacity = $this->ossClient->getBucketStorageCapacity($this->bucket); - $this->assertEquals($storageCapacity, 0); - - $this->ossClient->putObject($this->bucket, 'test-storage-capacity','test-content'); - $this->assertTrue(false); - } catch (OssException $e) { - $this->assertEquals('Bucket storage exceed max storage capacity.',$e->getErrorMessage()); - } - - try { - $this->ossClient->putBucketStorageCapacity($this->bucket, -2); - $this->assertTrue(false); - } catch (OssException $e) { - $this->assertEquals(400, $e->getHTTPStatus()); - $this->assertEquals('InvalidArgument', $e->getErrorCode()); - } - } - -} diff --git a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/OssClientBucketTest.php b/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/OssClientBucketTest.php deleted file mode 100644 index f207ca1ae..000000000 --- a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/OssClientBucketTest.php +++ /dev/null @@ -1,113 +0,0 @@ -ossClient->createBucket("s"); - $this->assertFalse(true); - } catch (OssException $e) { - $this->assertEquals('"s"bucket name is invalid', $e->getMessage()); - } - } - - public function testBucketWithInvalidACL() - { - try { - $this->ossClient->createBucket($this->bucket, "invalid"); - $this->assertFalse(true); - } catch (OssException $e) { - $this->assertEquals('invalid:acl is invalid(private,public-read,public-read-write)', $e->getMessage()); - } - } - - public function testBucket() - { - $this->ossClient->createBucket($this->bucket, OssClient::OSS_ACL_TYPE_PUBLIC_READ_WRITE); - - $bucketListInfo = $this->ossClient->listBuckets(); - $this->assertNotNull($bucketListInfo); - - $bucketList = $bucketListInfo->getBucketList(); - $this->assertTrue(is_array($bucketList)); - $this->assertGreaterThan(0, count($bucketList)); - - $this->ossClient->putBucketAcl($this->bucket, OssClient::OSS_ACL_TYPE_PUBLIC_READ_WRITE); - Common::waitMetaSync(); - $this->assertEquals($this->ossClient->getBucketAcl($this->bucket), OssClient::OSS_ACL_TYPE_PUBLIC_READ_WRITE); - - $this->assertTrue($this->ossClient->doesBucketExist($this->bucket)); - $this->assertFalse($this->ossClient->doesBucketExist($this->bucket . '-notexist')); - - $this->assertEquals($this->ossClient->getBucketLocation($this->bucket), 'oss-us-west-1'); - - $res = $this->ossClient->getBucketMeta($this->bucket); - $this->assertEquals('200', $res['info']['http_code']); - $this->assertEquals('oss-us-west-1', $res['x-oss-bucket-region']); - } - - public function testCreateBucketWithStorageType() - { - $object = 'storage-object'; - - $this->ossClient->putObject($this->archiveBucket, $object,'testcontent'); - try { - $this->ossClient->getObject($this->archiveBucket, $object); - $this->assertTrue(false); - } catch (OssException $e) { - $this->assertEquals('403', $e->getHTTPStatus()); - $this->assertEquals('InvalidObjectState', $e->getErrorCode()); - } - - $this->ossClient->putObject($this->iaBucket, $object,'testcontent'); - $result = $this->ossClient->getObject($this->iaBucket, $object); - $this->assertEquals($result, 'testcontent'); - - $this->ossClient->putObject($this->bucket, $object,'testcontent'); - $result = $this->ossClient->getObject($this->bucket, $object); - $this->assertEquals($result, 'testcontent'); - } - - public function setUp() - { - parent::setUp(); - - $this->iaBucket = 'ia-' . $this->bucket; - $this->archiveBucket = 'archive-' . $this->bucket; - $options = array( - OssClient::OSS_STORAGE => OssClient::OSS_STORAGE_IA - ); - - $this->ossClient->createBucket($this->iaBucket, OssClient::OSS_ACL_TYPE_PRIVATE, $options); - - $options = array( - OssClient::OSS_STORAGE => OssClient::OSS_STORAGE_ARCHIVE - ); - - $this->ossClient->createBucket($this->archiveBucket, OssClient::OSS_ACL_TYPE_PRIVATE, $options); - } - - public function tearDown() - { - parent::tearDown(); - - $object = 'storage-object'; - - $this->ossClient->deleteObject($this->iaBucket, $object); - $this->ossClient->deleteObject($this->archiveBucket, $object); - $this->ossClient->deleteBucket($this->iaBucket); - $this->ossClient->deleteBucket($this->archiveBucket); - } -} diff --git a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/OssClientBucketWebsiteTest.php b/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/OssClientBucketWebsiteTest.php deleted file mode 100644 index dfa9cc174..000000000 --- a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/OssClientBucketWebsiteTest.php +++ /dev/null @@ -1,46 +0,0 @@ -ossClient->putBucketWebsite($this->bucket, $websiteConfig); - } catch (OssException $e) { - var_dump($e->getMessage()); - $this->assertTrue(false); - } - - try { - Common::waitMetaSync(); - $websiteConfig2 = $this->ossClient->getBucketWebsite($this->bucket); - $this->assertEquals($websiteConfig->serializeToXml(), $websiteConfig2->serializeToXml()); - } catch (OssException $e) { - $this->assertTrue(false); - } - try { - Common::waitMetaSync(); - $this->ossClient->deleteBucketWebsite($this->bucket); - } catch (OssException $e) { - $this->assertTrue(false); - } - try { - Common::waitMetaSync(); - $websiteConfig3 = $this->ossClient->getBucketLogging($this->bucket); - $this->assertNotEquals($websiteConfig->serializeToXml(), $websiteConfig3->serializeToXml()); - } catch (OssException $e) { - $this->assertTrue(false); - } - } -} diff --git a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/OssClientImageTest.php b/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/OssClientImageTest.php deleted file mode 100644 index df8bd6c25..000000000 --- a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/OssClientImageTest.php +++ /dev/null @@ -1,100 +0,0 @@ -client = Common::getOssClient(); - $this->bucketName = 'php-sdk-test-bucket-image-' . strval(rand(0, 10000)); - $this->client->createBucket($this->bucketName); - Common::waitMetaSync(); - $this->local_file = "example.jpg"; - $this->object = "oss-example.jpg"; - $this->download_file = "image.jpg"; - - $this->client->uploadFile($this->bucketName, $this->object, $this->local_file); - } - - public function tearDown() - { - $this->client->deleteObject($this->bucketName, $this->object); - $this->client->deleteBucket($this->bucketName); - } - - public function testImageResize() - { - $options = array( - OssClient::OSS_FILE_DOWNLOAD => $this->download_file, - OssClient::OSS_PROCESS => "image/resize,m_fixed,h_100,w_100", ); - $this->check($options, 100, 100, 3267, 'jpg'); - } - - public function testImageCrop() - { - $options = array( - OssClient::OSS_FILE_DOWNLOAD => $this->download_file, - OssClient::OSS_PROCESS => "image/crop,w_100,h_100,x_100,y_100,r_1", ); - $this->check($options, 100, 100, 1969, 'jpg'); - } - - public function testImageRotate() - { - $options = array( - OssClient::OSS_FILE_DOWNLOAD => $this->download_file, - OssClient::OSS_PROCESS => "image/rotate,90", ); - $this->check($options, 267, 400, 20998, 'jpg'); - } - - public function testImageSharpen() - { - $options = array( - OssClient::OSS_FILE_DOWNLOAD => $this->download_file, - OssClient::OSS_PROCESS => "image/sharpen,100", ); - $this->check($options, 400, 267, 23015, 'jpg'); - } - - public function testImageWatermark() - { - $options = array( - OssClient::OSS_FILE_DOWNLOAD => $this->download_file, - OssClient::OSS_PROCESS => "image/watermark,text_SGVsbG8g5Zu-54mH5pyN5YqhIQ", ); - $this->check($options, 400, 267, 26369, 'jpg'); - } - - public function testImageFormat() - { - $options = array( - OssClient::OSS_FILE_DOWNLOAD => $this->download_file, - OssClient::OSS_PROCESS => "image/format,png", ); - $this->check($options, 400, 267, 160733, 'png'); - } - - public function testImageTofile() - { - $options = array( - OssClient::OSS_FILE_DOWNLOAD => $this->download_file, - OssClient::OSS_PROCESS => "image/resize,m_fixed,w_100,h_100", ); - $this->check($options, 100, 100, 3267, 'jpg'); - } - - private function check($options, $width, $height, $size, $type) - { - $this->client->getObject($this->bucketName, $this->object, $options); - $array = getimagesize($this->download_file); - $this->assertEquals($width, $array[0]); - $this->assertEquals($height, $array[1]); - $this->assertEquals($type === 'jpg' ? 2 : 3, $array[2]);//2 <=> jpg - } -} diff --git a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/OssClientMultipartUploadTest.php b/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/OssClientMultipartUploadTest.php deleted file mode 100644 index a95f412d3..000000000 --- a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/OssClientMultipartUploadTest.php +++ /dev/null @@ -1,313 +0,0 @@ -ossClient->uploadDir($this->bucket, "", "abc/ds/s/s/notexitst"); - $this->assertFalse(true); - } catch (OssException $e) { - $this->assertEquals("parameter error: abc/ds/s/s/notexitst is not a directory, please check it", $e->getMessage()); - } - - } - - public function testMultipartUploadBigFile() - { - $bigFileName = __DIR__ . DIRECTORY_SEPARATOR . "/bigfile.tmp"; - $localFilename = __DIR__ . DIRECTORY_SEPARATOR . "/localfile.tmp"; - OssUtil::generateFile($bigFileName, 6 * 1024 * 1024); - $object = 'mpu/multipart-bigfile-test.tmp'; - try { - $this->ossClient->multiuploadFile($this->bucket, $object, $bigFileName, array(OssClient::OSS_PART_SIZE => 1)); - $options = array(OssClient::OSS_FILE_DOWNLOAD => $localFilename); - $this->ossClient->getObject($this->bucket, $object, $options); - $this->assertEquals(md5_file($bigFileName), md5_file($localFilename)); - } catch (OssException $e) { - var_dump($e->getMessage()); - $this->assertFalse(true); - } - unlink($bigFileName); - unlink($localFilename); - } - - public function testMultipartUploadBigFileWithMD5Check() - { - $bigFileName = __DIR__ . DIRECTORY_SEPARATOR . "/bigfile.tmp"; - $localFilename = __DIR__ . DIRECTORY_SEPARATOR . "/localfile.tmp"; - OssUtil::generateFile($bigFileName, 6 * 1024 * 1024); - $object = 'mpu/multipart-bigfile-test.tmp'; - $options = array( - OssClient::OSS_CHECK_MD5 => true, - OssClient::OSS_PART_SIZE => 1, - ); - try { - $this->ossClient->multiuploadFile($this->bucket, $object, $bigFileName, $options); - $options = array(OssClient::OSS_FILE_DOWNLOAD => $localFilename); - $this->ossClient->getObject($this->bucket, $object, $options); - $this->assertEquals(md5_file($bigFileName), md5_file($localFilename)); - } catch (OssException $e) { - var_dump($e->getMessage()); - $this->assertFalse(true); - } - unlink($bigFileName); - unlink($localFilename); - } - - public function testCopyPart() - { - $object = "mpu/multipart-test.txt"; - $copiedObject = "mpu/multipart-test.txt.copied"; - $this->ossClient->putObject($this->bucket, $copiedObject, file_get_contents(__FILE__)); - /** - * step 1. 初始化一个分块上传事件, 也就是初始化上传Multipart, 获取upload id - */ - try { - $upload_id = $this->ossClient->initiateMultipartUpload($this->bucket, $object); - } catch (OssException $e) { - $this->assertFalse(true); - } - /* - * step 2. uploadPartCopy - */ - $copyId = 1; - $eTag = $this->ossClient->uploadPartCopy($this->bucket, $copiedObject, $this->bucket, $object, $copyId, $upload_id); - $upload_parts[] = array( - 'PartNumber' => $copyId, - 'ETag' => $eTag, - ); - - try { - $listPartsInfo = $this->ossClient->listParts($this->bucket, $object, $upload_id); - $this->assertNotNull($listPartsInfo); - } catch (OssException $e) { - $this->assertTrue(false); - } - - /** - * step 3. - */ - try { - $this->ossClient->completeMultipartUpload($this->bucket, $object, $upload_id, $upload_parts); - } catch (OssException $e) { - var_dump($e->getMessage()); - $this->assertTrue(false); - } - - $this->assertEquals($this->ossClient->getObject($this->bucket, $object), file_get_contents(__FILE__)); - $this->assertEquals($this->ossClient->getObject($this->bucket, $copiedObject), file_get_contents(__FILE__)); - } - - public function testAbortMultipartUpload() - { - $object = "mpu/multipart-test.txt"; - /** - * step 1. 初始化一个分块上传事件, 也就是初始化上传Multipart, 获取upload id - */ - try { - $upload_id = $this->ossClient->initiateMultipartUpload($this->bucket, $object); - } catch (OssException $e) { - $this->assertFalse(true); - } - /* - * step 2. 上传分片 - */ - $part_size = 10 * 1024 * 1024; - $upload_file = __FILE__; - $upload_filesize = filesize($upload_file); - $pieces = $this->ossClient->generateMultiuploadParts($upload_filesize, $part_size); - $response_upload_part = array(); - $upload_position = 0; - $is_check_md5 = true; - foreach ($pieces as $i => $piece) { - $from_pos = $upload_position + (integer)$piece[OssClient::OSS_SEEK_TO]; - $to_pos = (integer)$piece[OssClient::OSS_LENGTH] + $from_pos - 1; - $up_options = array( - OssClient::OSS_FILE_UPLOAD => $upload_file, - OssClient::OSS_PART_NUM => ($i + 1), - OssClient::OSS_SEEK_TO => $from_pos, - OssClient::OSS_LENGTH => $to_pos - $from_pos + 1, - OssClient::OSS_CHECK_MD5 => $is_check_md5, - ); - if ($is_check_md5) { - $content_md5 = OssUtil::getMd5SumForFile($upload_file, $from_pos, $to_pos); - $up_options[OssClient::OSS_CONTENT_MD5] = $content_md5; - } - //2. 将每一分片上传到OSS - try { - $response_upload_part[] = $this->ossClient->uploadPart($this->bucket, $object, $upload_id, $up_options); - } catch (OssException $e) { - $this->assertFalse(true); - } - } - $upload_parts = array(); - foreach ($response_upload_part as $i => $eTag) { - $upload_parts[] = array( - 'PartNumber' => ($i + 1), - 'ETag' => $eTag, - ); - } - - try { - $listPartsInfo = $this->ossClient->listParts($this->bucket, $object, $upload_id); - $this->assertNotNull($listPartsInfo); - } catch (OssException $e) { - $this->assertTrue(false); - } - $this->assertEquals(1, count($listPartsInfo->getListPart())); - - $numOfMultipartUpload1 = 0; - $options = null; - try { - $listMultipartUploadInfo = $listMultipartUploadInfo = $this->ossClient->listMultipartUploads($this->bucket, $options); - $this->assertNotNull($listMultipartUploadInfo); - $numOfMultipartUpload1 = count($listMultipartUploadInfo->getUploads()); - } catch (OssException $e) { - $this->assertFalse(true); - } - - try { - $this->ossClient->abortMultipartUpload($this->bucket, $object, $upload_id); - } catch (OssException $e) { - $this->assertTrue(false); - } - - $numOfMultipartUpload2 = 0; - try { - $listMultipartUploadInfo = $listMultipartUploadInfo = $this->ossClient->listMultipartUploads($this->bucket, $options); - $this->assertNotNull($listMultipartUploadInfo); - $numOfMultipartUpload2 = count($listMultipartUploadInfo->getUploads()); - } catch (OssException $e) { - $this->assertFalse(true); - } - $this->assertEquals($numOfMultipartUpload1 - 1, $numOfMultipartUpload2); - } - - public function testPutObjectByRawApis() - { - $object = "mpu/multipart-test.txt"; - /** - * step 1. 初始化一个分块上传事件, 也就是初始化上传Multipart, 获取upload id - */ - try { - $upload_id = $this->ossClient->initiateMultipartUpload($this->bucket, $object); - } catch (OssException $e) { - $this->assertFalse(true); - } - /* - * step 2. 上传分片 - */ - $part_size = 10 * 1024 * 1024; - $upload_file = __FILE__; - $upload_filesize = filesize($upload_file); - $pieces = $this->ossClient->generateMultiuploadParts($upload_filesize, $part_size); - $response_upload_part = array(); - $upload_position = 0; - $is_check_md5 = true; - foreach ($pieces as $i => $piece) { - $from_pos = $upload_position + (integer)$piece[OssClient::OSS_SEEK_TO]; - $to_pos = (integer)$piece[OssClient::OSS_LENGTH] + $from_pos - 1; - $up_options = array( - OssClient::OSS_FILE_UPLOAD => $upload_file, - OssClient::OSS_PART_NUM => ($i + 1), - OssClient::OSS_SEEK_TO => $from_pos, - OssClient::OSS_LENGTH => $to_pos - $from_pos + 1, - OssClient::OSS_CHECK_MD5 => $is_check_md5, - ); - if ($is_check_md5) { - $content_md5 = OssUtil::getMd5SumForFile($upload_file, $from_pos, $to_pos); - $up_options[OssClient::OSS_CONTENT_MD5] = $content_md5; - } - //2. 将每一分片上传到OSS - try { - $response_upload_part[] = $this->ossClient->uploadPart($this->bucket, $object, $upload_id, $up_options); - } catch (OssException $e) { - $this->assertFalse(true); - } - } - $upload_parts = array(); - foreach ($response_upload_part as $i => $eTag) { - $upload_parts[] = array( - 'PartNumber' => ($i + 1), - 'ETag' => $eTag, - ); - } - - try { - $listPartsInfo = $this->ossClient->listParts($this->bucket, $object, $upload_id); - $this->assertNotNull($listPartsInfo); - } catch (OssException $e) { - $this->assertTrue(false); - } - - /** - * step 3. - */ - try { - $this->ossClient->completeMultipartUpload($this->bucket, $object, $upload_id, $upload_parts); - } catch (OssException $e) { - $this->assertTrue(false); - } - } - - function testPutObjectsByDir() - { - $localDirectory = dirname(__FILE__); - $prefix = "samples/codes"; - try { - $this->ossClient->uploadDir($this->bucket, $prefix, $localDirectory); - } catch (OssException $e) { - var_dump($e->getMessage()); - $this->assertFalse(true); - - } - $this->assertTrue($this->ossClient->doesObjectExist($this->bucket, 'samples/codes/' . "OssClientMultipartUploadTest.php")); - } - - public function testPutObjectByMultipartUpload() - { - $object = "mpu/multipart-test.txt"; - $file = __FILE__; - $options = array(); - - try { - $this->ossClient->multiuploadFile($this->bucket, $object, $file, $options); - } catch (OssException $e) { - $this->assertFalse(true); - } - } - - public function testPutObjectByMultipartUploadWithMD5Check() - { - $object = "mpu/multipart-test.txt"; - $file = __FILE__; - $options = array(OssClient::OSS_CHECK_MD5 => true); - - try { - $this->ossClient->multiuploadFile($this->bucket, $object, $file, $options); - } catch (OssException $e) { - $this->assertFalse(true); - } - } - - public function testListMultipartUploads() - { - $options = null; - try { - $listMultipartUploadInfo = $this->ossClient->listMultipartUploads($this->bucket, $options); - $this->assertNotNull($listMultipartUploadInfo); - } catch (OssException $e) { - $this->assertFalse(true); - } - } -} diff --git a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/OssClientObjectTest.php b/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/OssClientObjectTest.php deleted file mode 100644 index 34e3ded7d..000000000 --- a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/OssClientObjectTest.php +++ /dev/null @@ -1,588 +0,0 @@ -ossClient->getObjectMeta($this->bucket, $object); - $this->assertEquals('200', $res['info']['http_code']); - $this->assertEquals('text/plain', $res['content-type']); - $this->assertEquals('Accept-Encoding', $res['vary']); - $this->assertTrue(isset($res['content-length'])); - $this->assertFalse(isset($res['content-encoding'])); - } catch (OssException $e) { - $this->assertTrue(false); - } - - $options = array(OssClient::OSS_HEADERS => array(OssClient::OSS_ACCEPT_ENCODING => 'deflate, gzip')); - - try { - $res = $this->ossClient->getObjectMeta($this->bucket, $object, $options); - $this->assertEquals('200', $res['info']['http_code']); - $this->assertEquals('text/plain', $res['content-type']); - $this->assertEquals('Accept-Encoding', $res['vary']); - $this->assertFalse(isset($res['content-length'])); - $this->assertEquals('gzip', $res['content-encoding']); - } catch (OssException $e) { - $this->assertTrue(false); - } - } - - public function testGetObjectWithAcceptEncoding() - { - $object = "oss-php-sdk-test/upload-test-object-name.txt"; - $options = array(OssClient::OSS_HEADERS => array(OssClient::OSS_ACCEPT_ENCODING => 'deflate, gzip')); - - try { - $res = $this->ossClient->getObject($this->bucket, $object, $options); - $this->assertEquals(file_get_contents(__FILE__), $res); - } catch (OssException $e) { - $this->assertTrue(false); - } - } - - public function testGetObjectWithHeader() - { - $object = "oss-php-sdk-test/upload-test-object-name.txt"; - try { - $res = $this->ossClient->getObject($this->bucket, $object, array(OssClient::OSS_LAST_MODIFIED => "xx")); - $this->assertEquals(file_get_contents(__FILE__), $res); - } catch (OssException $e) { - $this->assertEquals('"/ilegal.txt" object name is invalid', $e->getMessage()); - } - } - - public function testGetObjectWithIleggalEtag() - { - $object = "oss-php-sdk-test/upload-test-object-name.txt"; - try { - $res = $this->ossClient->getObject($this->bucket, $object, array(OssClient::OSS_ETAG => "xx")); - $this->assertEquals(file_get_contents(__FILE__), $res); - } catch (OssException $e) { - $this->assertEquals('"/ilegal.txt" object name is invalid', $e->getMessage()); - } - } - - public function testObject() - { - /** - * 上传本地变量到bucket - */ - $object = "oss-php-sdk-test/upload-test-object-name.txt"; - $content = file_get_contents(__FILE__); - $options = array( - OssClient::OSS_LENGTH => strlen($content), - OssClient::OSS_HEADERS => array( - 'Expires' => 'Fri, 28 Feb 2020 05:38:42 GMT', - 'Cache-Control' => 'no-cache', - 'Content-Disposition' => 'attachment;filename=oss_download.log', - 'Content-Encoding' => 'utf-8', - 'Content-Language' => 'zh-CN', - 'x-oss-server-side-encryption' => 'AES256', - 'x-oss-meta-self-define-title' => 'user define meta info', - ), - ); - - try { - $this->ossClient->putObject($this->bucket, $object, $content, $options); - } catch (OssException $e) { - $this->assertFalse(true); - } - - try { - $this->ossClient->putObject($this->bucket, $object, $content, $options); - } catch (OssException $e) { - $this->assertFalse(true); - } - - try { - $result = $this->ossClient->deleteObjects($this->bucket, "stringtype", $options); - $this->assertEquals('stringtype', $result[0]); - } catch (OssException $e) { - $this->assertEquals('objects must be array', $e->getMessage()); - } - - try { - $result = $this->ossClient->deleteObjects($this->bucket, "stringtype", $options); - $this->assertFalse(true); - } catch (OssException $e) { - $this->assertEquals('objects must be array', $e->getMessage()); - } - - try { - $this->ossClient->uploadFile($this->bucket, $object, "notexist.txt", $options); - $this->assertFalse(true); - } catch (OssException $e) { - $this->assertEquals('notexist.txt file does not exist', $e->getMessage()); - } - - /** - * getObject到本地变量,检查是否match - */ - try { - $content = $this->ossClient->getObject($this->bucket, $object); - $this->assertEquals($content, file_get_contents(__FILE__)); - } catch (OssException $e) { - $this->assertFalse(true); - } - - /** - * getObject的前五个字节 - */ - try { - $options = array(OssClient::OSS_RANGE => '0-4'); - $content = $this->ossClient->getObject($this->bucket, $object, $options); - $this->assertEquals($content, 'assertFalse(true); - } - - - /** - * 上传本地文件到object - */ - try { - $this->ossClient->uploadFile($this->bucket, $object, __FILE__); - } catch (OssException $e) { - $this->assertFalse(true); - } - - /** - * 下载文件到本地变量,检查是否match - */ - try { - $content = $this->ossClient->getObject($this->bucket, $object); - $this->assertEquals($content, file_get_contents(__FILE__)); - } catch (OssException $e) { - $this->assertFalse(true); - } - - /** - * 下载文件到本地文件 - */ - $localfile = "upload-test-object-name.txt"; - $options = array( - OssClient::OSS_FILE_DOWNLOAD => $localfile, - ); - - try { - $this->ossClient->getObject($this->bucket, $object, $options); - } catch (OssException $e) { - $this->assertFalse(true); - } - $this->assertTrue(file_get_contents($localfile) === file_get_contents(__FILE__)); - if (file_exists($localfile)) { - unlink($localfile); - } - - /** - * 下载文件到本地文件 no such key - */ - $localfile = "upload-test-object-name-no-such-key.txt"; - $options = array( - OssClient::OSS_FILE_DOWNLOAD => $localfile, - ); - - try { - $this->ossClient->getObject($this->bucket, $object . "no-such-key", $options); - $this->assertTrue(false); - } catch (OssException $e) { - $this->assertTrue(true); - $this->assertFalse(file_exists($localfile)); - if (strpos($e, "The specified key does not exist") == false) - { - $this->assertTrue(true); - } - } - - /** - * 下载文件到内容 no such key - */ - try { - $result = $this->ossClient->getObject($this->bucket, $object . "no-such-key"); - $this->assertTrue(false); - } catch (OssException $e) { - $this->assertTrue(true); - if (strpos($e, "The specified key does not exist") == false) - { - $this->assertTrue(true); - } - } - - /** - * 复制object - */ - $to_bucket = $this->bucket; - $to_object = $object . '.copy'; - $options = array(); - try { - $result = $this->ossClient->copyObject($this->bucket, $object, $to_bucket, $to_object, $options); - $this->assertFalse(empty($result)); - $this->assertEquals(strlen("2016-11-21T03:46:58.000Z"), strlen($result[0])); - $this->assertEquals(strlen("\"5B3C1A2E053D763E1B002CC607C5A0FE\""), strlen($result[1])); - } catch (OssException $e) { - $this->assertFalse(true); - var_dump($e->getMessage()); - - } - - /** - * 检查复制的是否相同 - */ - try { - $content = $this->ossClient->getObject($this->bucket, $to_object); - $this->assertEquals($content, file_get_contents(__FILE__)); - } catch (OssException $e) { - $this->assertFalse(true); - } - - /** - * 列出bucket内的文件列表 - */ - $prefix = ''; - $delimiter = '/'; - $next_marker = ''; - $maxkeys = 1000; - $options = array( - 'delimiter' => $delimiter, - 'prefix' => $prefix, - 'max-keys' => $maxkeys, - 'marker' => $next_marker, - ); - - try { - $listObjectInfo = $this->ossClient->listObjects($this->bucket, $options); - $objectList = $listObjectInfo->getObjectList(); - $prefixList = $listObjectInfo->getPrefixList(); - $this->assertNotNull($objectList); - $this->assertNotNull($prefixList); - $this->assertTrue(is_array($objectList)); - $this->assertTrue(is_array($prefixList)); - - } catch (OssException $e) { - $this->assertTrue(false); - } - - /** - * 设置文件的meta信息 - */ - $from_bucket = $this->bucket; - $from_object = "oss-php-sdk-test/upload-test-object-name.txt"; - $to_bucket = $from_bucket; - $to_object = $from_object; - $copy_options = array( - OssClient::OSS_HEADERS => array( - 'Expires' => '2012-10-01 08:00:00', - 'Content-Disposition' => 'attachment; filename="xxxxxx"', - ), - ); - try { - $this->ossClient->copyObject($from_bucket, $from_object, $to_bucket, $to_object, $copy_options); - } catch (OssException $e) { - $this->assertFalse(true); - } - - /** - * 获取文件的meta信息 - */ - $object = "oss-php-sdk-test/upload-test-object-name.txt"; - try { - $objectMeta = $this->ossClient->getObjectMeta($this->bucket, $object); - $this->assertEquals('attachment; filename="xxxxxx"', $objectMeta[strtolower('Content-Disposition')]); - } catch (OssException $e) { - $this->assertFalse(true); - } - - /** - * 删除单个文件 - */ - $object = "oss-php-sdk-test/upload-test-object-name.txt"; - - try { - $this->assertTrue($this->ossClient->doesObjectExist($this->bucket, $object)); - $this->ossClient->deleteObject($this->bucket, $object); - $this->assertFalse($this->ossClient->doesObjectExist($this->bucket, $object)); - } catch (OssException $e) { - $this->assertFalse(true); - } - - /** - * 删除多个个文件 - */ - $object1 = "oss-php-sdk-test/upload-test-object-name.txt"; - $object2 = "oss-php-sdk-test/upload-test-object-name.txt.copy"; - $list = array($object1, $object2); - try { - $this->assertTrue($this->ossClient->doesObjectExist($this->bucket, $object2)); - - $result = $this->ossClient->deleteObjects($this->bucket, $list); - $this->assertEquals($list[1], $result[0]); - $this->assertEquals($list[0], $result[1]); - - $result = $this->ossClient->deleteObjects($this->bucket, $list, array('quiet' => 'true')); - $this->assertEquals(array(), $result); - $this->assertFalse($this->ossClient->doesObjectExist($this->bucket, $object2)); - } catch (OssException $e) { - $this->assertFalse(true); - } - } - - public function testAppendObject() - { - $object = "oss-php-sdk-test/append-test-object-name.txt"; - $content_array = array('Hello OSS', 'Hi OSS', 'OSS OK'); - - /** - * 追加上传字符串 - */ - try { - $position = $this->ossClient->appendObject($this->bucket, $object, $content_array[0], 0); - $this->assertEquals($position, strlen($content_array[0])); - $position = $this->ossClient->appendObject($this->bucket, $object, $content_array[1], $position); - $this->assertEquals($position, strlen($content_array[0]) + strlen($content_array[1])); - $position = $this->ossClient->appendObject($this->bucket, $object, $content_array[2], $position); - $this->assertEquals($position, strlen($content_array[0]) + strlen($content_array[1]) + strlen($content_array[1])); - } catch (OssException $e) { - $this->assertFalse(true); - } - - /** - * 检查内容的是否相同 - */ - try { - $content = $this->ossClient->getObject($this->bucket, $object); - $this->assertEquals($content, implode($content_array)); - } catch (OssException $e) { - $this->assertFalse(true); - } - - - /** - * 删除测试object - */ - try { - $this->ossClient->deleteObject($this->bucket, $object); - } catch (OssException $e) { - $this->assertFalse(true); - } - - /** - * 追加上传本地文件 - */ - try { - $position = $this->ossClient->appendFile($this->bucket, $object, __FILE__, 0); - $this->assertEquals($position, filesize(__FILE__)); - $position = $this->ossClient->appendFile($this->bucket, $object, __FILE__, $position); - $this->assertEquals($position, filesize(__FILE__) * 2); - } catch (OssException $e) { - $this->assertFalse(true); - } - - /** - * 检查复制的是否相同 - */ - try { - $content = $this->ossClient->getObject($this->bucket, $object); - $this->assertEquals($content, file_get_contents(__FILE__) . file_get_contents(__FILE__)); - } catch (OssException $e) { - $this->assertFalse(true); - } - - /** - * 删除测试object - */ - try { - $this->ossClient->deleteObject($this->bucket, $object); - } catch (OssException $e) { - $this->assertFalse(true); - } - - - $options = array( - OssClient::OSS_HEADERS => array( - 'Expires' => '2012-10-01 08:00:00', - 'Content-Disposition' => 'attachment; filename="xxxxxx"', - ), - ); - - /** - * 带option的追加上传 - */ - try { - $position = $this->ossClient->appendObject($this->bucket, $object, "Hello OSS, ", 0, $options); - $position = $this->ossClient->appendObject($this->bucket, $object, "Hi OSS.", $position); - } catch (OssException $e) { - $this->assertFalse(true); - } - - /** - * 获取文件的meta信息 - */ - try { - $objectMeta = $this->ossClient->getObjectMeta($this->bucket, $object); - $this->assertEquals('attachment; filename="xxxxxx"', $objectMeta[strtolower('Content-Disposition')]); - } catch (OssException $e) { - $this->assertFalse(true); - } - - /** - * 删除测试object - */ - try { - $this->ossClient->deleteObject($this->bucket, $object); - } catch (OssException $e) { - $this->assertFalse(true); - } - } - - public function testPutIllelObject() - { - $object = "/ilegal.txt"; - try { - $this->ossClient->putObject($this->bucket, $object, "hi", null); - $this->assertFalse(true); - } catch (OssException $e) { - $this->assertEquals('"/ilegal.txt" object name is invalid', $e->getMessage()); - } - } - - public function testCheckMD5() - { - $object = "oss-php-sdk-test/upload-test-object-name.txt"; - $content = file_get_contents(__FILE__); - $options = array(OssClient::OSS_CHECK_MD5 => true); - - /** - * 上传数据开启MD5 - */ - try { - $this->ossClient->putObject($this->bucket, $object, $content, $options); - } catch (OssException $e) { - $this->assertFalse(true); - } - - /** - * 检查复制的是否相同 - */ - try { - $content = $this->ossClient->getObject($this->bucket, $object); - $this->assertEquals($content, file_get_contents(__FILE__)); - } catch (OssException $e) { - $this->assertFalse(true); - } - - /** - * 上传文件开启MD5 - */ - try { - $this->ossClient->uploadFile($this->bucket, $object, __FILE__, $options); - } catch (OssException $e) { - $this->assertFalse(true); - } - - /** - * 检查复制的是否相同 - */ - try { - $content = $this->ossClient->getObject($this->bucket, $object); - $this->assertEquals($content, file_get_contents(__FILE__)); - } catch (OssException $e) { - $this->assertFalse(true); - } - - /** - * 删除测试object - */ - try { - $this->ossClient->deleteObject($this->bucket, $object); - } catch (OssException $e) { - $this->assertFalse(true); - } - - $object = "oss-php-sdk-test/append-test-object-name.txt"; - $content_array = array('Hello OSS', 'Hi OSS', 'OSS OK'); - $options = array(OssClient::OSS_CHECK_MD5 => true); - - /** - * 追加上传字符串 - */ - try { - $position = $this->ossClient->appendObject($this->bucket, $object, $content_array[0], 0, $options); - $this->assertEquals($position, strlen($content_array[0])); - $position = $this->ossClient->appendObject($this->bucket, $object, $content_array[1], $position, $options); - $this->assertEquals($position, strlen($content_array[0]) + strlen($content_array[1])); - $position = $this->ossClient->appendObject($this->bucket, $object, $content_array[2], $position, $options); - $this->assertEquals($position, strlen($content_array[0]) + strlen($content_array[1]) + strlen($content_array[1])); - } catch (OssException $e) { - $this->assertFalse(true); - } - - /** - * 检查内容的是否相同 - */ - try { - $content = $this->ossClient->getObject($this->bucket, $object); - $this->assertEquals($content, implode($content_array)); - } catch (OssException $e) { - $this->assertFalse(true); - } - - /** - * 删除测试object - */ - try { - $this->ossClient->deleteObject($this->bucket, $object); - } catch (OssException $e) { - $this->assertFalse(true); - } - - /** - * 追加上传本地文件 - */ - try { - $position = $this->ossClient->appendFile($this->bucket, $object, __FILE__, 0, $options); - $this->assertEquals($position, filesize(__FILE__)); - $position = $this->ossClient->appendFile($this->bucket, $object, __FILE__, $position, $options); - $this->assertEquals($position, filesize(__FILE__) * 2); - } catch (OssException $e) { - $this->assertFalse(true); - } - - /** - * 检查复制的是否相同 - */ - try { - $content = $this->ossClient->getObject($this->bucket, $object); - $this->assertEquals($content, file_get_contents(__FILE__) . file_get_contents(__FILE__)); - } catch (OssException $e) { - $this->assertFalse(true); - } - - /** - * 删除测试object - */ - try { - $this->ossClient->deleteObject($this->bucket, $object); - } catch (OssException $e) { - $this->assertFalse(true); - } - } - - public function setUp() - { - parent::setUp(); - $this->ossClient->putObject($this->bucket, 'oss-php-sdk-test/upload-test-object-name.txt', file_get_contents(__FILE__)); - } -} diff --git a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/OssClientRestoreObjectTest.php b/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/OssClientRestoreObjectTest.php deleted file mode 100644 index cc1412f80..000000000 --- a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/OssClientRestoreObjectTest.php +++ /dev/null @@ -1,96 +0,0 @@ -ossClient->putObject($this->iaBucket, $object,'testcontent'); - try{ - $this->ossClient->restoreObject($this->iaBucket, $object); - $this->assertTrue(false); - }catch (OssException $e){ - $this->assertEquals('400', $e->getHTTPStatus()); - $this->assertEquals('OperationNotSupported', $e->getErrorCode()); - } - } - - public function testNullObjectRestoreObject() - { - $object = 'null-object'; - - try{ - $this->ossClient->restoreObject($this->bucket, $object); - $this->assertTrue(false); - }catch (OssException $e){ - $this->assertEquals('404', $e->getHTTPStatus()); - } - } - - public function testArchiveRestoreObject() - { - $object = 'storage-object'; - - $this->ossClient->putObject($this->archiveBucket, $object,'testcontent'); - try{ - $this->ossClient->getObject($this->archiveBucket, $object); - $this->assertTrue(false); - }catch (OssException $e){ - $this->assertEquals('403', $e->getHTTPStatus()); - $this->assertEquals('InvalidObjectState', $e->getErrorCode()); - } - $result = $this->ossClient->restoreObject($this->archiveBucket, $object); - common::waitMetaSync(); - $this->assertEquals('202', $result['info']['http_code']); - - try{ - $this->ossClient->restoreObject($this->archiveBucket, $object); - }catch(OssException $e){ - $this->assertEquals('409', $e->getHTTPStatus()); - $this->assertEquals('RestoreAlreadyInProgress', $e->getErrorCode()); - } - } - - public function setUp() - { - parent::setUp(); - - $this->iaBucket = 'ia-' . $this->bucket; - $this->archiveBucket = 'archive-' . $this->bucket; - $options = array( - OssClient::OSS_STORAGE => OssClient::OSS_STORAGE_IA - ); - - $this->ossClient->createBucket($this->iaBucket, OssClient::OSS_ACL_TYPE_PRIVATE, $options); - - $options = array( - OssClient::OSS_STORAGE => OssClient::OSS_STORAGE_ARCHIVE - ); - - $this->ossClient->createBucket($this->archiveBucket, OssClient::OSS_ACL_TYPE_PRIVATE, $options); - } - - public function tearDown() - { - parent::tearDown(); - - $object = 'storage-object'; - - $this->ossClient->deleteObject($this->iaBucket, $object); - $this->ossClient->deleteObject($this->archiveBucket, $object); - $this->ossClient->deleteBucket($this->iaBucket); - $this->ossClient->deleteBucket($this->archiveBucket); - } -} diff --git a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/OssClientSignatureTest.php b/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/OssClientSignatureTest.php deleted file mode 100644 index 109121d0f..000000000 --- a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/OssClientSignatureTest.php +++ /dev/null @@ -1,111 +0,0 @@ -ossClient->putObject($this->bucket, $object, file_get_contents(__FILE__)); - $timeout = 3600; - try { - $signedUrl = $this->ossClient->signUrl($this->bucket, $object, $timeout); - } catch (OssException $e) { - $this->assertFalse(true); - } - - $request = new RequestCore($signedUrl); - $request->set_method('GET'); - $request->add_header('Content-Type', ''); - $request->send_request(); - $res = new ResponseCore($request->get_response_header(), $request->get_response_body(), $request->get_response_code()); - $this->assertEquals(file_get_contents(__FILE__), $res->body); - } - - public function testGetSignedUrlForPuttingObject() - { - $object = "a.file"; - $timeout = 3600; - try { - $signedUrl = $this->ossClient->signUrl($this->bucket, $object, $timeout, "PUT"); - $content = file_get_contents(__FILE__); - $request = new RequestCore($signedUrl); - $request->set_method('PUT'); - $request->add_header('Content-Type', ''); - $request->add_header('Content-Length', strlen($content)); - $request->set_body($content); - $request->send_request(); - $res = new ResponseCore($request->get_response_header(), - $request->get_response_body(), $request->get_response_code()); - $this->assertTrue($res->isOK()); - } catch (OssException $e) { - $this->assertFalse(true); - } - } - - public function testGetSignedUrlForPuttingObjectFromFile() - { - $file = __FILE__; - $object = "a.file"; - $timeout = 3600; - $options = array('Content-Type' => 'txt'); - try { - $signedUrl = $this->ossClient->signUrl($this->bucket, $object, $timeout, "PUT", $options); - $request = new RequestCore($signedUrl); - $request->set_method('PUT'); - $request->add_header('Content-Type', 'txt'); - $request->set_read_file($file); - $request->set_read_stream_size(filesize($file)); - $request->send_request(); - $res = new ResponseCore($request->get_response_header(), - $request->get_response_body(), $request->get_response_code()); - $this->assertTrue($res->isOK()); - } catch (OssException $e) { - $this->assertFalse(true); - } - - } - - public function tearDown() - { - $this->ossClient->deleteObject($this->bucket, "a.file"); - parent::tearDown(); - } - - public function setUp() - { - parent::setUp(); - /** - * 上传本地变量到bucket - */ - $object = "a.file"; - $content = file_get_contents(__FILE__); - $options = array( - OssClient::OSS_LENGTH => strlen($content), - OssClient::OSS_HEADERS => array( - 'Expires' => 'Fri, 28 Feb 2020 05:38:42 GMT', - 'Cache-Control' => 'no-cache', - 'Content-Disposition' => 'attachment;filename=oss_download.log', - 'Content-Encoding' => 'utf-8', - 'Content-Language' => 'zh-CN', - 'x-oss-server-side-encryption' => 'AES256', - 'x-oss-meta-self-define-title' => 'user define meta info', - ), - ); - - try { - $this->ossClient->putObject($this->bucket, $object, $content, $options); - } catch (OssException $e) { - $this->assertFalse(true); - } - } -} diff --git a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/OssClientTest.php b/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/OssClientTest.php deleted file mode 100644 index f92b3461f..000000000 --- a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/OssClientTest.php +++ /dev/null @@ -1,216 +0,0 @@ -assertFalse($ossClient->isUseSSL()); - $ossClient->setUseSSL(true); - $this->assertTrue($ossClient->isUseSSL()); - $this->assertTrue(true); - $this->assertEquals(3, $ossClient->getMaxRetries()); - $ossClient->setMaxTries(4); - $this->assertEquals(4, $ossClient->getMaxRetries()); - $ossClient->setTimeout(10); - $ossClient->setConnectTimeout(20); - } catch (OssException $e) { - assertFalse(true); - } - } - - public function testConstrunct2() - { - try { - $ossClient = new OssClient('id', "", 'http://oss-cn-hangzhou.aliyuncs.com'); - $this->assertFalse(true); - } catch (OssException $e) { - $this->assertEquals("access key secret is empty", $e->getMessage()); - } - } - - public function testConstrunct3() - { - try { - $ossClient = new OssClient("", 'key', 'http://oss-cn-hangzhou.aliyuncs.com'); - $this->assertFalse(true); - } catch (OssException $e) { - $this->assertEquals("access key id is empty", $e->getMessage()); - } - } - - public function testConstrunct4() - { - try { - $ossClient = new OssClient('id', 'key', ""); - $this->assertFalse(true); - } catch (OssException $e) { - $this->assertEquals('endpoint is empty', $e->getMessage()); - } - } - - public function testConstrunct5() - { - try { - $ossClient = new OssClient('id', 'key', "123.123.123.1"); - } catch (OssException $e) { - $this->assertTrue(false); - } - } - - public function testConstrunct6() - { - try { - $ossClient = new OssClient('id', 'key', "https://123.123.123.1"); - $this->assertTrue($ossClient->isUseSSL()); - } catch (OssException $e) { - $this->assertTrue(false); - } - } - - public function testConstrunct7() - { - try { - $ossClient = new OssClient('id', 'key', "http://123.123.123.1"); - $this->assertFalse($ossClient->isUseSSL()); - } catch (OssException $e) { - $this->assertTrue(false); - } - } - - public function testConstrunct8() - { - try { - $ossClient = new OssClient('id', 'key', "http://123.123.123.1", true); - $ossClient->listBuckets(); - $this->assertFalse(true); - } catch (OssException $e) { - - } - } - - public function testConstrunct9() - { - try { - $accessKeyId = ' ' . getenv('OSS_ACCESS_KEY_ID') . ' '; - $accessKeySecret = ' ' . getenv('OSS_ACCESS_KEY_SECRET') . ' '; - $endpoint = ' ' . getenv('OSS_ENDPOINT') . '/ '; - $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint, false); - $ossClient->listBuckets(); - } catch (OssException $e) { - $this->assertFalse(true); - } - } - - public function testSupportPutEmptyObject() - { - try { - $accessKeyId = ' ' . getenv('OSS_ACCESS_KEY_ID') . ' '; - $accessKeySecret = ' ' . getenv('OSS_ACCESS_KEY_SECRET') . ' '; - $endpoint = ' ' . getenv('OSS_ENDPOINT') . '/ '; - $bucket = getenv('OSS_BUCKET'); - $ossClient = new OssClient($accessKeyId, $accessKeySecret , $endpoint, false); - $ossClient->putObject($bucket,'test_emptybody',''); - } catch (OssException $e) { - $this->assertFalse(true); - } - } - - public function testCreateObjectDir() - { - try { - $accessKeyId = ' ' . getenv('OSS_ACCESS_KEY_ID') . ' '; - $accessKeySecret = ' ' . getenv('OSS_ACCESS_KEY_SECRET') . ' '; - $endpoint = ' ' . getenv('OSS_ENDPOINT') . '/ '; - $bucket = getenv('OSS_BUCKET'); - $object='test-dir'; - $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint, false); - $ossClient->createObjectDir($bucket,$object); - } catch (OssException $e) { - $this->assertFalse(true); - } - } - - public function testGetBucketCors() - { - try { - $accessKeyId = ' ' . getenv('OSS_ACCESS_KEY_ID') . ' '; - $accessKeySecret = ' ' . getenv('OSS_ACCESS_KEY_SECRET') . ' '; - $endpoint = ' ' . getenv('OSS_ENDPOINT') . '/ '; - $bucket = getenv('OSS_BUCKET'); - $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint, false); - $ossClient->getBucketCors($bucket); - } catch (OssException $e) { - $this->assertFalse(true); - } - } - - public function testGetBucketCname() - { - try { - $accessKeyId = ' ' . getenv('OSS_ACCESS_KEY_ID') . ' '; - $accessKeySecret = ' ' . getenv('OSS_ACCESS_KEY_SECRET') . ' '; - $endpoint = ' ' . getenv('OSS_ENDPOINT') . '/ '; - $bucket = getenv('OSS_BUCKET'); - $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint, false); - $ossClient->getBucketCname($bucket); - } catch (OssException $e) { - $this->assertFalse(true); - } - } - - public function testProxySupport() - { - $accessKeyId = ' ' . getenv('OSS_ACCESS_KEY_ID') . ' '; - $accessKeySecret = ' ' . getenv('OSS_ACCESS_KEY_SECRET') . ' '; - $endpoint = ' ' . getenv('OSS_ENDPOINT') . '/ '; - $bucket = getenv('OSS_BUCKET') . '-proxy'; - $requestProxy = getenv('OSS_PROXY'); - $key = 'test-proxy-srv-object'; - $content = 'test-content'; - $proxys = parse_url($requestProxy); - - $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint, false, null, $requestProxy); - - $result = $ossClient->createBucket($bucket); - $this->checkProxy($result, $proxys); - - $result = $ossClient->putObject($bucket, $key, $content); - $this->checkProxy($result, $proxys); - $result = $ossClient->getObject($bucket, $key); - $this->assertEquals($content, $result); - - // list object - $objectListInfo = $ossClient->listObjects($bucket); - $objectList = $objectListInfo->getObjectList(); - $this->assertNotNull($objectList); - $this->assertTrue(is_array($objectList)); - $objects = array(); - foreach ($objectList as $value) { - $objects[] = $value->getKey(); - } - $this->assertEquals(1, count($objects)); - $this->assertTrue(in_array($key, $objects)); - - $result = $ossClient->deleteObject($bucket, $key); - $this->checkProxy($result,$proxys); - - $result = $ossClient->deleteBucket($bucket); - $this->checkProxy($result, $proxys); - } - - private function checkProxy($result, $proxys) - { - $this->assertEquals($result['info']['primary_ip'], $proxys['host']); - $this->assertEquals($result['info']['primary_port'], $proxys['port']); - $this->assertTrue(array_key_exists('via', $result)); - } - -} diff --git a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/OssExceptionTest.php b/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/OssExceptionTest.php deleted file mode 100644 index 4a418d53e..000000000 --- a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/OssExceptionTest.php +++ /dev/null @@ -1,19 +0,0 @@ -assertTrue(false); - } catch (OssException $e) { - $this->assertNotNull($e); - $this->assertEquals($e->getMessage(), "ERR"); - } - } -} diff --git a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/OssUtilTest.php b/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/OssUtilTest.php deleted file mode 100644 index adf645719..000000000 --- a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/OssUtilTest.php +++ /dev/null @@ -1,225 +0,0 @@ -assertEquals(OssUtil::chkChinese("hello,world"), 0); - $str = '你好,这里是卖咖啡!'; - $strGBK = OssUtil::encodePath($str); - $this->assertEquals(OssUtil::chkChinese($str), 1); - $this->assertEquals(OssUtil::chkChinese($strGBK), 1); - } - - public function testIsGB2312() - { - $str = '你好,这里是卖咖啡!'; - $this->assertFalse(OssUtil::isGb2312($str)); - } - - public function testCheckChar() - { - $str = '你好,这里是卖咖啡!'; - $this->assertFalse(OssUtil::checkChar($str)); - $this->assertTrue(OssUtil::checkChar(iconv("UTF-8", "GB2312//IGNORE", $str))); - } - - public function testIsIpFormat() - { - $this->assertTrue(OssUtil::isIPFormat("10.101.160.147")); - $this->assertTrue(OssUtil::isIPFormat("12.12.12.34")); - $this->assertTrue(OssUtil::isIPFormat("12.12.12.12")); - $this->assertTrue(OssUtil::isIPFormat("255.255.255.255")); - $this->assertTrue(OssUtil::isIPFormat("0.1.1.1")); - $this->assertFalse(OssUtil::isIPFormat("0.1.1.x")); - $this->assertFalse(OssUtil::isIPFormat("0.1.1.256")); - $this->assertFalse(OssUtil::isIPFormat("256.1.1.1")); - $this->assertFalse(OssUtil::isIPFormat("0.1.1.0.1")); - $this->assertTrue(OssUtil::isIPFormat("10.10.10.10:123")); - } - - public function testToQueryString() - { - $option = array("a" => "b"); - $this->assertEquals('a=b', OssUtil::toQueryString($option)); - } - - public function testSReplace() - { - $str = "<>&'\""; - $this->assertEquals("&lt;&gt;&'"", OssUtil::sReplace($str)); - } - - public function testCheckChinese() - { - $str = '你好,这里是卖咖啡!'; - $this->assertEquals(OssUtil::chkChinese($str), 1); - if (OssUtil::isWin()) { - $strGB = OssUtil::encodePath($str); - $this->assertEquals($str, iconv("GB2312", "UTF-8", $strGB)); - } - } - - public function testValidateOption() - { - $option = 'string'; - - try { - OssUtil::validateOptions($option); - $this->assertFalse(true); - } catch (OssException $e) { - $this->assertEquals("string:option must be array", $e->getMessage()); - } - - $option = null; - - try { - OssUtil::validateOptions($option); - $this->assertTrue(true); - } catch (OssException $e) { - $this->assertFalse(true); - } - - } - - public function testCreateDeleteObjectsXmlBody() - { - $xml = <<trueobj1 -BBBB; - $a = array('obj1'); - $this->assertEquals($xml, $this->cleanXml(OssUtil::createDeleteObjectsXmlBody($a, 'true'))); - } - - public function testCreateCompleteMultipartUploadXmlBody() - { - $xml = <<2xx -BBBB; - $a = array(array("PartNumber" => 2, "ETag" => "xx")); - $this->assertEquals($this->cleanXml(OssUtil::createCompleteMultipartUploadXmlBody($a)), $xml); - } - - public function testCreateBucketXmlBody() - { - $xml = <<Standard -BBBB; - $storageClass ="Standard"; - $this->assertEquals($this->cleanXml(OssUtil::createBucketXmlBody($storageClass)), $xml); - } - - public function testValidateBucket() - { - $this->assertTrue(OssUtil::validateBucket("xxx")); - $this->assertFalse(OssUtil::validateBucket("XXXqwe123")); - $this->assertFalse(OssUtil::validateBucket("XX")); - $this->assertFalse(OssUtil::validateBucket("/X")); - $this->assertFalse(OssUtil::validateBucket("")); - } - - public function testValidateObject() - { - $this->assertTrue(OssUtil::validateObject("xxx")); - $this->assertTrue(OssUtil::validateObject("xxx23")); - $this->assertTrue(OssUtil::validateObject("12321-xxx")); - $this->assertTrue(OssUtil::validateObject("x")); - $this->assertFalse(OssUtil::validateObject("/aa")); - $this->assertFalse(OssUtil::validateObject("\\aa")); - $this->assertFalse(OssUtil::validateObject("")); - } - - public function testStartWith() - { - $this->assertTrue(OssUtil::startsWith("xxab", "xx"), true); - } - - public function testReadDir() - { - $list = OssUtil::readDir("./src", ".|..|.svn|.git", true); - $this->assertNotNull($list); - } - - public function testIsWin() - { - //$this->assertTrue(OssUtil::isWin()); - } - - public function testGetMd5SumForFile() - { - $this->assertEquals(OssUtil::getMd5SumForFile(__FILE__, 0, filesize(__FILE__) - 1), base64_encode(md5(file_get_contents(__FILE__), true))); - } - - public function testGenerateFile() - { - $path = __DIR__ . DIRECTORY_SEPARATOR . "generatedFile.txt"; - OssUtil::generateFile($path, 1024 * 1024); - $this->assertEquals(filesize($path), 1024 * 1024); - unlink($path); - } - - public function testThrowOssExceptionWithMessageIfEmpty() - { - $null = null; - try { - OssUtil::throwOssExceptionWithMessageIfEmpty($null, "xx"); - $this->assertTrue(false); - } catch (OssException $e) { - $this->assertEquals('xx', $e->getMessage()); - } - } - - public function testThrowOssExceptionWithMessageIfEmpty2() - { - $null = ""; - try { - OssUtil::throwOssExceptionWithMessageIfEmpty($null, "xx"); - $this->assertTrue(false); - } catch (OssException $e) { - $this->assertEquals('xx', $e->getMessage()); - } - } - - public function testValidContent() - { - $null = ""; - try { - OssUtil::validateContent($null); - $this->assertTrue(false); - } catch (OssException $e) { - $this->assertEquals('http body content is invalid', $e->getMessage()); - } - - $notnull = "x"; - try { - OssUtil::validateContent($notnull); - $this->assertTrue(true); - } catch (OssException $e) { - $this->assertEquals('http body content is invalid', $e->getMessage()); - } - } - - public function testThrowOssExceptionWithMessageIfEmpty3() - { - $null = "xx"; - try { - OssUtil::throwOssExceptionWithMessageIfEmpty($null, "xx"); - $this->assertTrue(True); - } catch (OssException $e) { - $this->assertTrue(false); - } - } - - private function cleanXml($xml) - { - return str_replace("\n", "", str_replace("\r", "", $xml)); - } - -} diff --git a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/PutSetDeleteResultTest.php b/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/PutSetDeleteResultTest.php deleted file mode 100644 index b298e4418..000000000 --- a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/PutSetDeleteResultTest.php +++ /dev/null @@ -1,66 +0,0 @@ -assertFalse(true); - } catch (OssException $e) { - $this->assertEquals('raw response is null', $e->getMessage()); - } - } - - public function testOkResponse() - { - $header= array( - 'x-oss-request-id' => '582AA51E004C4550BD27E0E4', - 'etag' => '595FA1EA77945233921DF12427F9C7CE', - 'content-md5' => 'WV+h6neUUjOSHfEkJ/nHzg==', - 'info' => array( - 'http_code' => '200', - 'method' => 'PUT' - ), - ); - $response = new ResponseCore($header, "this is a mock body, just for test", 200); - $result = new PutSetDeleteResult($response); - $data = $result->getData(); - $this->assertTrue($result->isOK()); - $this->assertEquals("this is a mock body, just for test", $data['body']); - $this->assertEquals('582AA51E004C4550BD27E0E4', $data['x-oss-request-id']); - $this->assertEquals('595FA1EA77945233921DF12427F9C7CE', $data['etag']); - $this->assertEquals('WV+h6neUUjOSHfEkJ/nHzg==', $data['content-md5']); - $this->assertEquals('200', $data['info']['http_code']); - $this->assertEquals('PUT', $data['info']['method']); - } - - public function testFailResponse() - { - $response = new ResponseCore(array(), "", 301); - try { - new PutSetDeleteResult($response); - $this->assertFalse(true); - } catch (OssException $e) { - - } - } - - public function setUp() - { - - } - - public function tearDown() - { - - } -} diff --git a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/RefererConfigTest.php b/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/RefererConfigTest.php deleted file mode 100644 index 8360a242c..000000000 --- a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/RefererConfigTest.php +++ /dev/null @@ -1,54 +0,0 @@ - - -true - -http://www.aliyun.com -https://www.aliyun.com -http://www.*.com -https://www.?.aliyuncs.com - - -BBBB; - - private $validXml2 = << - -true - -http://www.aliyun.com - - -BBBB; - - public function testParseValidXml() - { - $refererConfig = new RefererConfig(); - $refererConfig->parseFromXml($this->validXml); - $this->assertEquals($this->cleanXml($this->validXml), $this->cleanXml($refererConfig->serializeToXml())); - } - - public function testParseValidXml2() - { - $refererConfig = new RefererConfig(); - $refererConfig->parseFromXml($this->validXml2); - $this->assertEquals(true, $refererConfig->isAllowEmptyReferer()); - $this->assertEquals(1, count($refererConfig->getRefererList())); - $this->assertEquals($this->cleanXml($this->validXml2), $this->cleanXml(strval($refererConfig))); - } - - private function cleanXml($xml) - { - return str_replace("\n", "", str_replace("\r", "", $xml)); - } -} diff --git a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/StorageCapacityTest.php b/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/StorageCapacityTest.php deleted file mode 100644 index 4562da7c3..000000000 --- a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/StorageCapacityTest.php +++ /dev/null @@ -1,59 +0,0 @@ - - - 1 - -BBBB; - - private $validXml = << - - 1 - -BBBB; - - public function testParseInValidXml() - { - $response = new ResponseCore(array(), $this->inValidXml, 300); - try { - new GetStorageCapacityResult($response); - $this->assertTrue(false); - } catch (OssException $e) {} - } - - public function testParseEmptyXml() - { - $response = new ResponseCore(array(), "", 300); - try { - new GetStorageCapacityResult($response); - $this->assertTrue(false); - } catch (OssException $e) {} - } - - public function testParseValidXml() - { - $response = new ResponseCore(array(), $this->validXml, 200); - $result = new GetStorageCapacityResult($response); - $this->assertEquals($result->getData(), 1); - } - - public function testSerializeToXml() - { - $xml = "\n1\n"; - - $storageCapacityConfig = new StorageCapacityConfig(1); - $content = $storageCapacityConfig->serializeToXml(); - $this->assertEquals($content, $xml); - } -} diff --git a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/SymlinkTest.php b/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/SymlinkTest.php deleted file mode 100644 index d257c9485..000000000 --- a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/SymlinkTest.php +++ /dev/null @@ -1,74 +0,0 @@ -ossClient ->putObject($bucket, $object, 'test_content'); - $this->ossClient->putSymlink($bucket, $symlink, $object); - $result = $this->ossClient->getObject($bucket, $symlink); - $this->assertEquals('test_content', $result); - - $this->ossClient ->putObject($bucket, $special_object, 'test_content'); - $this->ossClient->putSymlink($bucket, $symlink, $special_object); - $result = $this->ossClient->getObject($bucket, $symlink); - $this->assertEquals('test_content', $result); - } - - public function testGetSymlink() - { - $bucket = getenv('OSS_BUCKET'); - $symlink = 'test-link'; - $object = 'exist_object^$#!~'; - - $result = $this->ossClient->getSymlink($bucket, $symlink); - $this->assertEquals($result[OssClient::OSS_SYMLINK_TARGET], $object); - $this->assertEquals('200', $result[OssClient::OSS_INFO][OssClient::OSS_HTTP_CODE]); - $this->assertTrue(isset($result[OssClient::OSS_ETAG])); - $this->assertTrue(isset($result[OssClient::OSS_REQUEST_ID])); - } - - public function testPutNullSymlink() - { - $bucket = getenv('OSS_BUCKET'); - $symlink = 'null-link'; - $object_not_exist = 'not_exist_object+$#!b不'; - $this->ossClient->putSymlink($bucket, $symlink, $object_not_exist); - - try{ - $this->ossClient->getObject($bucket, $symlink); - $this->assertTrue(false); - }catch (OssException $e){ - $this->assertEquals('The symlink target object does not exist', $e->getErrorMessage()); - } - } - - public function testGetNullSymlink() - { - $bucket = getenv('OSS_BUCKET'); - $symlink = 'null-link-new'; - - try{ - $result = $this->ossClient->getSymlink($bucket, $symlink); - $this->assertTrue(false); - }catch (OssException $e){ - $this->assertEquals('The specified key does not exist.', $e->getErrorMessage()); - } - } -} - - diff --git a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/TestOssClientBase.php b/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/TestOssClientBase.php deleted file mode 100644 index 4abd31f92..000000000 --- a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/TestOssClientBase.php +++ /dev/null @@ -1,51 +0,0 @@ -bucket = Common::getBucketName() . rand(100000, 999999); - $this->ossClient = Common::getOssClient(); - $this->ossClient->createBucket($this->bucket); - Common::waitMetaSync(); - } - - public function tearDown() - { - if (!$this->ossClient->doesBucketExist($this->bucket)) { - return; - } - - $objects = $this->ossClient->listObjects( - $this->bucket, array('max-keys' => 1000, 'delimiter' => ''))->getObjectList(); - $keys = array(); - foreach ($objects as $obj) { - $keys[] = $obj->getKey(); - } - if (count($keys) > 0) { - $this->ossClient->deleteObjects($this->bucket, $keys); - } - $uploads = $this->ossClient->listMultipartUploads($this->bucket)->getUploads(); - foreach ($uploads as $up) { - $this->ossClient->abortMultipartUpload($this->bucket, $up->getKey(), $up->getUploadId()); - } - - $this->ossClient->deleteBucket($this->bucket); - } -} diff --git a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/UploadPartResultTest.php b/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/UploadPartResultTest.php deleted file mode 100644 index e4789efe6..000000000 --- a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/UploadPartResultTest.php +++ /dev/null @@ -1,33 +0,0 @@ - '7265F4D211B56873A381D321F586E4A9'); - private $invalidHeader = array(); - - public function testParseValidHeader() - { - $response = new ResponseCore($this->validHeader, "", 200); - $result = new UploadPartResult($response); - $eTag = $result->getData(); - $this->assertEquals('7265F4D211B56873A381D321F586E4A9', $eTag); - } - - public function testParseInvalidHeader() - { - $response = new ResponseCore($this->invalidHeader, "", 200); - try { - new UploadPartResult($response); - $this->assertTrue(false); - } catch (OssException $e) { - $this->assertEquals('cannot get ETag', $e->getMessage()); - } - } -} diff --git a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/WebsiteConfigTest.php b/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/WebsiteConfigTest.php deleted file mode 100644 index 2ec0fcbb5..000000000 --- a/vendor/aliyuncs/oss-sdk-php/tests/OSS/Tests/WebsiteConfigTest.php +++ /dev/null @@ -1,56 +0,0 @@ - - - -index.html - - -errorDocument.html - - -BBBB; - - private $nullXml = << -BBBB; - private $nullXml2 = << -BBBB; - - public function testParseValidXml() - { - $websiteConfig = new WebsiteConfig("index"); - $websiteConfig->parseFromXml($this->validXml); - $this->assertEquals($this->cleanXml($this->validXml), $this->cleanXml($websiteConfig->serializeToXml())); - } - - public function testParsenullXml() - { - $websiteConfig = new WebsiteConfig(); - $websiteConfig->parseFromXml($this->nullXml); - $this->assertTrue($this->cleanXml($this->nullXml) === $this->cleanXml($websiteConfig->serializeToXml()) || - $this->cleanXml($this->nullXml2) === $this->cleanXml($websiteConfig->serializeToXml())); - } - - public function testWebsiteConstruct() - { - $websiteConfig = new WebsiteConfig("index.html", "errorDocument.html"); - $this->assertEquals('index.html', $websiteConfig->getIndexDocument()); - $this->assertEquals('errorDocument.html', $websiteConfig->getErrorDocument()); - $this->assertEquals($this->cleanXml($this->validXml), $this->cleanXml($websiteConfig->serializeToXml())); - } - - private function cleanXml($xml) - { - return str_replace("\n", "", str_replace("\r", "", $xml)); - } -} diff --git a/vendor/autoload.php b/vendor/autoload.php deleted file mode 100644 index 90f0880f8..000000000 --- a/vendor/autoload.php +++ /dev/null @@ -1,7 +0,0 @@ - - * Jordi Boggiano - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Composer\Autoload; - -/** - * ClassLoader implements a PSR-0, PSR-4 and classmap class loader. - * - * $loader = new \Composer\Autoload\ClassLoader(); - * - * // register classes with namespaces - * $loader->add('Symfony\Component', __DIR__.'/component'); - * $loader->add('Symfony', __DIR__.'/framework'); - * - * // activate the autoloader - * $loader->register(); - * - * // to enable searching the include path (eg. for PEAR packages) - * $loader->setUseIncludePath(true); - * - * In this example, if you try to use a class in the Symfony\Component - * namespace or one of its children (Symfony\Component\Console for instance), - * the autoloader will first look for the class under the component/ - * directory, and it will then fallback to the framework/ directory if not - * found before giving up. - * - * This class is loosely based on the Symfony UniversalClassLoader. - * - * @author Fabien Potencier - * @author Jordi Boggiano - * @see http://www.php-fig.org/psr/psr-0/ - * @see http://www.php-fig.org/psr/psr-4/ - */ -class ClassLoader -{ - // PSR-4 - private $prefixLengthsPsr4 = array(); - private $prefixDirsPsr4 = array(); - private $fallbackDirsPsr4 = array(); - - // PSR-0 - private $prefixesPsr0 = array(); - private $fallbackDirsPsr0 = array(); - - private $useIncludePath = false; - private $classMap = array(); - private $classMapAuthoritative = false; - private $missingClasses = array(); - private $apcuPrefix; - - public function getPrefixes() - { - if (!empty($this->prefixesPsr0)) { - return call_user_func_array('array_merge', $this->prefixesPsr0); - } - - return array(); - } - - public function getPrefixesPsr4() - { - return $this->prefixDirsPsr4; - } - - public function getFallbackDirs() - { - return $this->fallbackDirsPsr0; - } - - public function getFallbackDirsPsr4() - { - return $this->fallbackDirsPsr4; - } - - public function getClassMap() - { - return $this->classMap; - } - - /** - * @param array $classMap Class to filename map - */ - public function addClassMap(array $classMap) - { - if ($this->classMap) { - $this->classMap = array_merge($this->classMap, $classMap); - } else { - $this->classMap = $classMap; - } - } - - /** - * Registers a set of PSR-0 directories for a given prefix, either - * appending or prepending to the ones previously set for this prefix. - * - * @param string $prefix The prefix - * @param array|string $paths The PSR-0 root directories - * @param bool $prepend Whether to prepend the directories - */ - public function add($prefix, $paths, $prepend = false) - { - if (!$prefix) { - if ($prepend) { - $this->fallbackDirsPsr0 = array_merge( - (array) $paths, - $this->fallbackDirsPsr0 - ); - } else { - $this->fallbackDirsPsr0 = array_merge( - $this->fallbackDirsPsr0, - (array) $paths - ); - } - - return; - } - - $first = $prefix[0]; - if (!isset($this->prefixesPsr0[$first][$prefix])) { - $this->prefixesPsr0[$first][$prefix] = (array) $paths; - - return; - } - if ($prepend) { - $this->prefixesPsr0[$first][$prefix] = array_merge( - (array) $paths, - $this->prefixesPsr0[$first][$prefix] - ); - } else { - $this->prefixesPsr0[$first][$prefix] = array_merge( - $this->prefixesPsr0[$first][$prefix], - (array) $paths - ); - } - } - - /** - * Registers a set of PSR-4 directories for a given namespace, either - * appending or prepending to the ones previously set for this namespace. - * - * @param string $prefix The prefix/namespace, with trailing '\\' - * @param array|string $paths The PSR-4 base directories - * @param bool $prepend Whether to prepend the directories - * - * @throws \InvalidArgumentException - */ - public function addPsr4($prefix, $paths, $prepend = false) - { - if (!$prefix) { - // Register directories for the root namespace. - if ($prepend) { - $this->fallbackDirsPsr4 = array_merge( - (array) $paths, - $this->fallbackDirsPsr4 - ); - } else { - $this->fallbackDirsPsr4 = array_merge( - $this->fallbackDirsPsr4, - (array) $paths - ); - } - } elseif (!isset($this->prefixDirsPsr4[$prefix])) { - // Register directories for a new namespace. - $length = strlen($prefix); - if ('\\' !== $prefix[$length - 1]) { - throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); - } - $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; - $this->prefixDirsPsr4[$prefix] = (array) $paths; - } elseif ($prepend) { - // Prepend directories for an already registered namespace. - $this->prefixDirsPsr4[$prefix] = array_merge( - (array) $paths, - $this->prefixDirsPsr4[$prefix] - ); - } else { - // Append directories for an already registered namespace. - $this->prefixDirsPsr4[$prefix] = array_merge( - $this->prefixDirsPsr4[$prefix], - (array) $paths - ); - } - } - - /** - * Registers a set of PSR-0 directories for a given prefix, - * replacing any others previously set for this prefix. - * - * @param string $prefix The prefix - * @param array|string $paths The PSR-0 base directories - */ - public function set($prefix, $paths) - { - if (!$prefix) { - $this->fallbackDirsPsr0 = (array) $paths; - } else { - $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths; - } - } - - /** - * Registers a set of PSR-4 directories for a given namespace, - * replacing any others previously set for this namespace. - * - * @param string $prefix The prefix/namespace, with trailing '\\' - * @param array|string $paths The PSR-4 base directories - * - * @throws \InvalidArgumentException - */ - public function setPsr4($prefix, $paths) - { - if (!$prefix) { - $this->fallbackDirsPsr4 = (array) $paths; - } else { - $length = strlen($prefix); - if ('\\' !== $prefix[$length - 1]) { - throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); - } - $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; - $this->prefixDirsPsr4[$prefix] = (array) $paths; - } - } - - /** - * Turns on searching the include path for class files. - * - * @param bool $useIncludePath - */ - public function setUseIncludePath($useIncludePath) - { - $this->useIncludePath = $useIncludePath; - } - - /** - * Can be used to check if the autoloader uses the include path to check - * for classes. - * - * @return bool - */ - public function getUseIncludePath() - { - return $this->useIncludePath; - } - - /** - * Turns off searching the prefix and fallback directories for classes - * that have not been registered with the class map. - * - * @param bool $classMapAuthoritative - */ - public function setClassMapAuthoritative($classMapAuthoritative) - { - $this->classMapAuthoritative = $classMapAuthoritative; - } - - /** - * Should class lookup fail if not found in the current class map? - * - * @return bool - */ - public function isClassMapAuthoritative() - { - return $this->classMapAuthoritative; - } - - /** - * APCu prefix to use to cache found/not-found classes, if the extension is enabled. - * - * @param string|null $apcuPrefix - */ - public function setApcuPrefix($apcuPrefix) - { - $this->apcuPrefix = function_exists('apcu_fetch') && ini_get('apc.enabled') ? $apcuPrefix : null; - } - - /** - * The APCu prefix in use, or null if APCu caching is not enabled. - * - * @return string|null - */ - public function getApcuPrefix() - { - return $this->apcuPrefix; - } - - /** - * Registers this instance as an autoloader. - * - * @param bool $prepend Whether to prepend the autoloader or not - */ - public function register($prepend = false) - { - spl_autoload_register(array($this, 'loadClass'), true, $prepend); - } - - /** - * Unregisters this instance as an autoloader. - */ - public function unregister() - { - spl_autoload_unregister(array($this, 'loadClass')); - } - - /** - * Loads the given class or interface. - * - * @param string $class The name of the class - * @return bool|null True if loaded, null otherwise - */ - public function loadClass($class) - { - if ($file = $this->findFile($class)) { - includeFile($file); - - return true; - } - } - - /** - * Finds the path to the file where the class is defined. - * - * @param string $class The name of the class - * - * @return string|false The path if found, false otherwise - */ - public function findFile($class) - { - // class map lookup - if (isset($this->classMap[$class])) { - return $this->classMap[$class]; - } - if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) { - return false; - } - if (null !== $this->apcuPrefix) { - $file = apcu_fetch($this->apcuPrefix.$class, $hit); - if ($hit) { - return $file; - } - } - - $file = $this->findFileWithExtension($class, '.php'); - - // Search for Hack files if we are running on HHVM - if (false === $file && defined('HHVM_VERSION')) { - $file = $this->findFileWithExtension($class, '.hh'); - } - - if (null !== $this->apcuPrefix) { - apcu_add($this->apcuPrefix.$class, $file); - } - - if (false === $file) { - // Remember that this class does not exist. - $this->missingClasses[$class] = true; - } - - return $file; - } - - private function findFileWithExtension($class, $ext) - { - // PSR-4 lookup - $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext; - - $first = $class[0]; - if (isset($this->prefixLengthsPsr4[$first])) { - $subPath = $class; - while (false !== $lastPos = strrpos($subPath, '\\')) { - $subPath = substr($subPath, 0, $lastPos); - $search = $subPath.'\\'; - if (isset($this->prefixDirsPsr4[$search])) { - foreach ($this->prefixDirsPsr4[$search] as $dir) { - $length = $this->prefixLengthsPsr4[$first][$search]; - if (file_exists($file = $dir . DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $length))) { - return $file; - } - } - } - } - } - - // PSR-4 fallback dirs - foreach ($this->fallbackDirsPsr4 as $dir) { - if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) { - return $file; - } - } - - // PSR-0 lookup - if (false !== $pos = strrpos($class, '\\')) { - // namespaced class name - $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1) - . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR); - } else { - // PEAR-like class name - $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext; - } - - if (isset($this->prefixesPsr0[$first])) { - foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) { - if (0 === strpos($class, $prefix)) { - foreach ($dirs as $dir) { - if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { - return $file; - } - } - } - } - } - - // PSR-0 fallback dirs - foreach ($this->fallbackDirsPsr0 as $dir) { - if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { - return $file; - } - } - - // PSR-0 include paths. - if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) { - return $file; - } - - return false; - } -} - -/** - * Scope isolated include. - * - * Prevents access to $this/self from included files. - */ -function includeFile($file) -{ - include $file; -} diff --git a/vendor/composer/LICENSE b/vendor/composer/LICENSE deleted file mode 100644 index f27399a04..000000000 --- a/vendor/composer/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ - -Copyright (c) Nils Adermann, Jordi Boggiano - -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. - diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php deleted file mode 100644 index a750b2486..000000000 --- a/vendor/composer/autoload_classmap.php +++ /dev/null @@ -1,178 +0,0 @@ - $vendorDir . '/endroid/qr-code/src/Bundle/Controller/QrCodeController.php', - 'Endroid\\QrCode\\Bundle\\DependencyInjection\\Configuration' => $vendorDir . '/endroid/qr-code/src/Bundle/DependencyInjection/Configuration.php', - 'Endroid\\QrCode\\Bundle\\DependencyInjection\\EndroidQrCodeExtension' => $vendorDir . '/endroid/qr-code/src/Bundle/DependencyInjection/EndroidQrCodeExtension.php', - 'Endroid\\QrCode\\Bundle\\EndroidQrCodeBundle' => $vendorDir . '/endroid/qr-code/src/Bundle/EndroidQrCodeBundle.php', - 'Endroid\\QrCode\\Bundle\\Twig\\Extension\\QrCodeExtension' => $vendorDir . '/endroid/qr-code/src/Bundle/Twig/Extension/QrCodeExtension.php', - 'Endroid\\QrCode\\Exceptions\\DataDoesntExistsException' => $vendorDir . '/endroid/qr-code/src/Exceptions/DataDoesntExistsException.php', - 'Endroid\\QrCode\\Exceptions\\FreeTypeLibraryMissingException' => $vendorDir . '/endroid/qr-code/src/Exceptions/FreeTypeLibraryMissingException.php', - 'Endroid\\QrCode\\Exceptions\\ImageFunctionFailedException' => $vendorDir . '/endroid/qr-code/src/Exceptions/ImageFunctionFailedException.php', - 'Endroid\\QrCode\\Exceptions\\ImageFunctionUnknownException' => $vendorDir . '/endroid/qr-code/src/Exceptions/ImageFunctionUnknownException.php', - 'Endroid\\QrCode\\Exceptions\\ImageSizeTooLargeException' => $vendorDir . '/endroid/qr-code/src/Exceptions/ImageSizeTooLargeException.php', - 'Endroid\\QrCode\\Exceptions\\ImageTypeInvalidException' => $vendorDir . '/endroid/qr-code/src/Exceptions/ImageTypeInvalidException.php', - 'Endroid\\QrCode\\Exceptions\\VersionTooLargeException' => $vendorDir . '/endroid/qr-code/src/Exceptions/VersionTooLargeException.php', - 'Endroid\\QrCode\\Factory\\QrCodeFactory' => $vendorDir . '/endroid/qr-code/src/Factory/QrCodeFactory.php', - 'Endroid\\QrCode\\QrCode' => $vendorDir . '/endroid/qr-code/src/QrCode.php', - 'Ip2Region' => $vendorDir . '/zoujingli/ip2region/Ip2Region.php', - 'OSS\\Core\\MimeTypes' => $vendorDir . '/aliyuncs/oss-sdk-php/src/OSS/Core/MimeTypes.php', - 'OSS\\Core\\OssException' => $vendorDir . '/aliyuncs/oss-sdk-php/src/OSS/Core/OssException.php', - 'OSS\\Core\\OssUtil' => $vendorDir . '/aliyuncs/oss-sdk-php/src/OSS/Core/OssUtil.php', - 'OSS\\Http\\RequestCore' => $vendorDir . '/aliyuncs/oss-sdk-php/src/OSS/Http/RequestCore.php', - 'OSS\\Http\\RequestCore_Exception' => $vendorDir . '/aliyuncs/oss-sdk-php/src/OSS/Http/RequestCore_Exception.php', - 'OSS\\Http\\ResponseCore' => $vendorDir . '/aliyuncs/oss-sdk-php/src/OSS/Http/ResponseCore.php', - 'OSS\\Model\\BucketInfo' => $vendorDir . '/aliyuncs/oss-sdk-php/src/OSS/Model/BucketInfo.php', - 'OSS\\Model\\BucketListInfo' => $vendorDir . '/aliyuncs/oss-sdk-php/src/OSS/Model/BucketListInfo.php', - 'OSS\\Model\\CnameConfig' => $vendorDir . '/aliyuncs/oss-sdk-php/src/OSS/Model/CnameConfig.php', - 'OSS\\Model\\CorsConfig' => $vendorDir . '/aliyuncs/oss-sdk-php/src/OSS/Model/CorsConfig.php', - 'OSS\\Model\\CorsRule' => $vendorDir . '/aliyuncs/oss-sdk-php/src/OSS/Model/CorsRule.php', - 'OSS\\Model\\GetLiveChannelHistory' => $vendorDir . '/aliyuncs/oss-sdk-php/src/OSS/Model/GetLiveChannelHistory.php', - 'OSS\\Model\\GetLiveChannelInfo' => $vendorDir . '/aliyuncs/oss-sdk-php/src/OSS/Model/GetLiveChannelInfo.php', - 'OSS\\Model\\GetLiveChannelStatus' => $vendorDir . '/aliyuncs/oss-sdk-php/src/OSS/Model/GetLiveChannelStatus.php', - 'OSS\\Model\\LifecycleAction' => $vendorDir . '/aliyuncs/oss-sdk-php/src/OSS/Model/LifecycleAction.php', - 'OSS\\Model\\LifecycleConfig' => $vendorDir . '/aliyuncs/oss-sdk-php/src/OSS/Model/LifecycleConfig.php', - 'OSS\\Model\\LifecycleRule' => $vendorDir . '/aliyuncs/oss-sdk-php/src/OSS/Model/LifecycleRule.php', - 'OSS\\Model\\ListMultipartUploadInfo' => $vendorDir . '/aliyuncs/oss-sdk-php/src/OSS/Model/ListMultipartUploadInfo.php', - 'OSS\\Model\\ListPartsInfo' => $vendorDir . '/aliyuncs/oss-sdk-php/src/OSS/Model/ListPartsInfo.php', - 'OSS\\Model\\LiveChannelConfig' => $vendorDir . '/aliyuncs/oss-sdk-php/src/OSS/Model/LiveChannelConfig.php', - 'OSS\\Model\\LiveChannelHistory' => $vendorDir . '/aliyuncs/oss-sdk-php/src/OSS/Model/LiveChannelHistory.php', - 'OSS\\Model\\LiveChannelInfo' => $vendorDir . '/aliyuncs/oss-sdk-php/src/OSS/Model/LiveChannelInfo.php', - 'OSS\\Model\\LiveChannelListInfo' => $vendorDir . '/aliyuncs/oss-sdk-php/src/OSS/Model/LiveChannelListInfo.php', - 'OSS\\Model\\LoggingConfig' => $vendorDir . '/aliyuncs/oss-sdk-php/src/OSS/Model/LoggingConfig.php', - 'OSS\\Model\\ObjectInfo' => $vendorDir . '/aliyuncs/oss-sdk-php/src/OSS/Model/ObjectInfo.php', - 'OSS\\Model\\ObjectListInfo' => $vendorDir . '/aliyuncs/oss-sdk-php/src/OSS/Model/ObjectListInfo.php', - 'OSS\\Model\\PartInfo' => $vendorDir . '/aliyuncs/oss-sdk-php/src/OSS/Model/PartInfo.php', - 'OSS\\Model\\PrefixInfo' => $vendorDir . '/aliyuncs/oss-sdk-php/src/OSS/Model/PrefixInfo.php', - 'OSS\\Model\\RefererConfig' => $vendorDir . '/aliyuncs/oss-sdk-php/src/OSS/Model/RefererConfig.php', - 'OSS\\Model\\StorageCapacityConfig' => $vendorDir . '/aliyuncs/oss-sdk-php/src/OSS/Model/StorageCapacityConfig.php', - 'OSS\\Model\\UploadInfo' => $vendorDir . '/aliyuncs/oss-sdk-php/src/OSS/Model/UploadInfo.php', - 'OSS\\Model\\WebsiteConfig' => $vendorDir . '/aliyuncs/oss-sdk-php/src/OSS/Model/WebsiteConfig.php', - 'OSS\\Model\\XmlConfig' => $vendorDir . '/aliyuncs/oss-sdk-php/src/OSS/Model/XmlConfig.php', - 'OSS\\OssClient' => $vendorDir . '/aliyuncs/oss-sdk-php/src/OSS/OssClient.php', - 'OSS\\Result\\AclResult' => $vendorDir . '/aliyuncs/oss-sdk-php/src/OSS/Result/AclResult.php', - 'OSS\\Result\\AppendResult' => $vendorDir . '/aliyuncs/oss-sdk-php/src/OSS/Result/AppendResult.php', - 'OSS\\Result\\BodyResult' => $vendorDir . '/aliyuncs/oss-sdk-php/src/OSS/Result/BodyResult.php', - 'OSS\\Result\\CallbackResult' => $vendorDir . '/aliyuncs/oss-sdk-php/src/OSS/Result/CallbackResult.php', - 'OSS\\Result\\CopyObjectResult' => $vendorDir . '/aliyuncs/oss-sdk-php/src/OSS/Result/CopyObjectResult.php', - 'OSS\\Result\\DeleteObjectsResult' => $vendorDir . '/aliyuncs/oss-sdk-php/src/OSS/Result/DeleteObjectsResult.php', - 'OSS\\Result\\ExistResult' => $vendorDir . '/aliyuncs/oss-sdk-php/src/OSS/Result/ExistResult.php', - 'OSS\\Result\\GetCnameResult' => $vendorDir . '/aliyuncs/oss-sdk-php/src/OSS/Result/GetCnameResult.php', - 'OSS\\Result\\GetCorsResult' => $vendorDir . '/aliyuncs/oss-sdk-php/src/OSS/Result/GetCorsResult.php', - 'OSS\\Result\\GetLifecycleResult' => $vendorDir . '/aliyuncs/oss-sdk-php/src/OSS/Result/GetLifecycleResult.php', - 'OSS\\Result\\GetLiveChannelHistoryResult' => $vendorDir . '/aliyuncs/oss-sdk-php/src/OSS/Result/GetLiveChannelHistoryResult.php', - 'OSS\\Result\\GetLiveChannelInfoResult' => $vendorDir . '/aliyuncs/oss-sdk-php/src/OSS/Result/GetLiveChannelInfoResult.php', - 'OSS\\Result\\GetLiveChannelStatusResult' => $vendorDir . '/aliyuncs/oss-sdk-php/src/OSS/Result/GetLiveChannelStatusResult.php', - 'OSS\\Result\\GetLocationResult' => $vendorDir . '/aliyuncs/oss-sdk-php/src/OSS/Result/GetLocationResult.php', - 'OSS\\Result\\GetLoggingResult' => $vendorDir . '/aliyuncs/oss-sdk-php/src/OSS/Result/GetLoggingResult.php', - 'OSS\\Result\\GetRefererResult' => $vendorDir . '/aliyuncs/oss-sdk-php/src/OSS/Result/GetRefererResult.php', - 'OSS\\Result\\GetStorageCapacityResult' => $vendorDir . '/aliyuncs/oss-sdk-php/src/OSS/Result/GetStorageCapacityResult.php', - 'OSS\\Result\\GetWebsiteResult' => $vendorDir . '/aliyuncs/oss-sdk-php/src/OSS/Result/GetWebsiteResult.php', - 'OSS\\Result\\HeaderResult' => $vendorDir . '/aliyuncs/oss-sdk-php/src/OSS/Result/HeaderResult.php', - 'OSS\\Result\\InitiateMultipartUploadResult' => $vendorDir . '/aliyuncs/oss-sdk-php/src/OSS/Result/InitiateMultipartUploadResult.php', - 'OSS\\Result\\ListBucketsResult' => $vendorDir . '/aliyuncs/oss-sdk-php/src/OSS/Result/ListBucketsResult.php', - 'OSS\\Result\\ListLiveChannelResult' => $vendorDir . '/aliyuncs/oss-sdk-php/src/OSS/Result/ListLiveChannelResult.php', - 'OSS\\Result\\ListMultipartUploadResult' => $vendorDir . '/aliyuncs/oss-sdk-php/src/OSS/Result/ListMultipartUploadResult.php', - 'OSS\\Result\\ListObjectsResult' => $vendorDir . '/aliyuncs/oss-sdk-php/src/OSS/Result/ListObjectsResult.php', - 'OSS\\Result\\ListPartsResult' => $vendorDir . '/aliyuncs/oss-sdk-php/src/OSS/Result/ListPartsResult.php', - 'OSS\\Result\\PutLiveChannelResult' => $vendorDir . '/aliyuncs/oss-sdk-php/src/OSS/Result/PutLiveChannelResult.php', - 'OSS\\Result\\PutSetDeleteResult' => $vendorDir . '/aliyuncs/oss-sdk-php/src/OSS/Result/PutSetDeleteResult.php', - 'OSS\\Result\\Result' => $vendorDir . '/aliyuncs/oss-sdk-php/src/OSS/Result/Result.php', - 'OSS\\Result\\SymlinkResult' => $vendorDir . '/aliyuncs/oss-sdk-php/src/OSS/Result/SymlinkResult.php', - 'OSS\\Result\\UploadPartResult' => $vendorDir . '/aliyuncs/oss-sdk-php/src/OSS/Result/UploadPartResult.php', - 'Qiniu\\Auth' => $vendorDir . '/qiniu/php-sdk/src/Qiniu/Auth.php', - 'Qiniu\\Cdn\\CdnManager' => $vendorDir . '/qiniu/php-sdk/src/Qiniu/Cdn/CdnManager.php', - 'Qiniu\\Config' => $vendorDir . '/qiniu/php-sdk/src/Qiniu/Config.php', - 'Qiniu\\Etag' => $vendorDir . '/qiniu/php-sdk/src/Qiniu/Etag.php', - 'Qiniu\\Http\\Client' => $vendorDir . '/qiniu/php-sdk/src/Qiniu/Http/Client.php', - 'Qiniu\\Http\\Error' => $vendorDir . '/qiniu/php-sdk/src/Qiniu/Http/Error.php', - 'Qiniu\\Http\\Request' => $vendorDir . '/qiniu/php-sdk/src/Qiniu/Http/Request.php', - 'Qiniu\\Http\\Response' => $vendorDir . '/qiniu/php-sdk/src/Qiniu/Http/Response.php', - 'Qiniu\\Processing\\ImageUrlBuilder' => $vendorDir . '/qiniu/php-sdk/src/Qiniu/Processing/ImageUrlBuilder.php', - 'Qiniu\\Processing\\Operation' => $vendorDir . '/qiniu/php-sdk/src/Qiniu/Processing/Operation.php', - 'Qiniu\\Processing\\PersistentFop' => $vendorDir . '/qiniu/php-sdk/src/Qiniu/Processing/PersistentFop.php', - 'Qiniu\\Storage\\BucketManager' => $vendorDir . '/qiniu/php-sdk/src/Qiniu/Storage/BucketManager.php', - 'Qiniu\\Storage\\FormUploader' => $vendorDir . '/qiniu/php-sdk/src/Qiniu/Storage/FormUploader.php', - 'Qiniu\\Storage\\ResumeUploader' => $vendorDir . '/qiniu/php-sdk/src/Qiniu/Storage/ResumeUploader.php', - 'Qiniu\\Storage\\UploadManager' => $vendorDir . '/qiniu/php-sdk/src/Qiniu/Storage/UploadManager.php', - 'Qiniu\\Zone' => $vendorDir . '/qiniu/php-sdk/src/Qiniu/Zone.php', - 'Symfony\\Component\\OptionsResolver\\Debug\\OptionsResolverIntrospector' => $vendorDir . '/symfony/options-resolver/Debug/OptionsResolverIntrospector.php', - 'Symfony\\Component\\OptionsResolver\\Exception\\AccessException' => $vendorDir . '/symfony/options-resolver/Exception/AccessException.php', - 'Symfony\\Component\\OptionsResolver\\Exception\\ExceptionInterface' => $vendorDir . '/symfony/options-resolver/Exception/ExceptionInterface.php', - 'Symfony\\Component\\OptionsResolver\\Exception\\InvalidArgumentException' => $vendorDir . '/symfony/options-resolver/Exception/InvalidArgumentException.php', - 'Symfony\\Component\\OptionsResolver\\Exception\\InvalidOptionsException' => $vendorDir . '/symfony/options-resolver/Exception/InvalidOptionsException.php', - 'Symfony\\Component\\OptionsResolver\\Exception\\MissingOptionsException' => $vendorDir . '/symfony/options-resolver/Exception/MissingOptionsException.php', - 'Symfony\\Component\\OptionsResolver\\Exception\\NoConfigurationException' => $vendorDir . '/symfony/options-resolver/Exception/NoConfigurationException.php', - 'Symfony\\Component\\OptionsResolver\\Exception\\NoSuchOptionException' => $vendorDir . '/symfony/options-resolver/Exception/NoSuchOptionException.php', - 'Symfony\\Component\\OptionsResolver\\Exception\\OptionDefinitionException' => $vendorDir . '/symfony/options-resolver/Exception/OptionDefinitionException.php', - 'Symfony\\Component\\OptionsResolver\\Exception\\UndefinedOptionsException' => $vendorDir . '/symfony/options-resolver/Exception/UndefinedOptionsException.php', - 'Symfony\\Component\\OptionsResolver\\Options' => $vendorDir . '/symfony/options-resolver/Options.php', - 'Symfony\\Component\\OptionsResolver\\OptionsResolver' => $vendorDir . '/symfony/options-resolver/OptionsResolver.php', - 'WeChat\\Card' => $vendorDir . '/zoujingli/wechat-developer/WeChat/Card.php', - 'WeChat\\Contracts\\BasicPushEvent' => $vendorDir . '/zoujingli/wechat-developer/WeChat/Contracts/BasicPushEvent.php', - 'WeChat\\Contracts\\BasicWeChat' => $vendorDir . '/zoujingli/wechat-developer/WeChat/Contracts/BasicWeChat.php', - 'WeChat\\Contracts\\DataArray' => $vendorDir . '/zoujingli/wechat-developer/WeChat/Contracts/DataArray.php', - 'WeChat\\Contracts\\DataError' => $vendorDir . '/zoujingli/wechat-developer/WeChat/Contracts/DataError.php', - 'WeChat\\Contracts\\Tools' => $vendorDir . '/zoujingli/wechat-developer/WeChat/Contracts/Tools.php', - 'WeChat\\Custom' => $vendorDir . '/zoujingli/wechat-developer/WeChat/Custom.php', - 'WeChat\\Exceptions\\InvalidArgumentException' => $vendorDir . '/zoujingli/wechat-developer/WeChat/Exceptions/InvalidArgumentException.php', - 'WeChat\\Exceptions\\InvalidDecryptException' => $vendorDir . '/zoujingli/wechat-developer/WeChat/Exceptions/InvalidDecryptException.php', - 'WeChat\\Exceptions\\InvalidResponseException' => $vendorDir . '/zoujingli/wechat-developer/WeChat/Exceptions/InvalidResponseException.php', - 'WeChat\\Exceptions\\LocalCacheException' => $vendorDir . '/zoujingli/wechat-developer/WeChat/Exceptions/LocalCacheException.php', - 'WeChat\\Limit' => $vendorDir . '/zoujingli/wechat-developer/WeChat/Limit.php', - 'WeChat\\Media' => $vendorDir . '/zoujingli/wechat-developer/WeChat/Media.php', - 'WeChat\\Menu' => $vendorDir . '/zoujingli/wechat-developer/WeChat/Menu.php', - 'WeChat\\Oauth' => $vendorDir . '/zoujingli/wechat-developer/WeChat/Oauth.php', - 'WeChat\\Pay' => $vendorDir . '/zoujingli/wechat-developer/WeChat/Pay.php', - 'WeChat\\Product' => $vendorDir . '/zoujingli/wechat-developer/WeChat/Product.php', - 'WeChat\\Qrcode' => $vendorDir . '/zoujingli/wechat-developer/WeChat/Qrcode.php', - 'WeChat\\Receive' => $vendorDir . '/zoujingli/wechat-developer/WeChat/Receive.php', - 'WeChat\\Scan' => $vendorDir . '/zoujingli/wechat-developer/WeChat/Scan.php', - 'WeChat\\Script' => $vendorDir . '/zoujingli/wechat-developer/WeChat/Script.php', - 'WeChat\\Shake' => $vendorDir . '/zoujingli/wechat-developer/WeChat/Shake.php', - 'WeChat\\Tags' => $vendorDir . '/zoujingli/wechat-developer/WeChat/Tags.php', - 'WeChat\\Template' => $vendorDir . '/zoujingli/wechat-developer/WeChat/Template.php', - 'WeChat\\User' => $vendorDir . '/zoujingli/wechat-developer/WeChat/User.php', - 'WeChat\\Wifi' => $vendorDir . '/zoujingli/wechat-developer/WeChat/Wifi.php', - 'WeOpen\\Service' => $vendorDir . '/zoujingli/weopen-developer/WeOpen/Service.php', - 'app\\admin\\controller\\Auth' => $baseDir . '/application/admin/controller/Auth.php', - 'app\\admin\\controller\\Config' => $baseDir . '/application/admin/controller/Config.php', - 'app\\admin\\controller\\Index' => $baseDir . '/application/admin/controller/Index.php', - 'app\\admin\\controller\\Log' => $baseDir . '/application/admin/controller/Log.php', - 'app\\admin\\controller\\Login' => $baseDir . '/application/admin/controller/Login.php', - 'app\\admin\\controller\\Menu' => $baseDir . '/application/admin/controller/Menu.php', - 'app\\admin\\controller\\Node' => $baseDir . '/application/admin/controller/Node.php', - 'app\\admin\\controller\\Plugs' => $baseDir . '/application/admin/controller/Plugs.php', - 'app\\admin\\controller\\User' => $baseDir . '/application/admin/controller/User.php', - 'app\\goods\\controller\\Brand' => $baseDir . '/application/goods/controller/Brand.php', - 'app\\goods\\controller\\Cate' => $baseDir . '/application/goods/controller/Cate.php', - 'app\\goods\\controller\\Product' => $baseDir . '/application/goods/controller/Product.php', - 'app\\goods\\controller\\Spec' => $baseDir . '/application/goods/controller/Spec.php', - 'app\\goods\\service\\ProductService' => $baseDir . '/application/goods/service/ProductService.php', - 'app\\index\\controller\\Index' => $baseDir . '/application/index/controller/Index.php', - 'app\\wechat\\controller\\Block' => $baseDir . '/application/wechat/controller/Block.php', - 'app\\wechat\\controller\\Config' => $baseDir . '/application/wechat/controller/Config.php', - 'app\\wechat\\controller\\Fans' => $baseDir . '/application/wechat/controller/Fans.php', - 'app\\wechat\\controller\\Keys' => $baseDir . '/application/wechat/controller/Keys.php', - 'app\\wechat\\controller\\Menu' => $baseDir . '/application/wechat/controller/Menu.php', - 'app\\wechat\\controller\\News' => $baseDir . '/application/wechat/controller/News.php', - 'app\\wechat\\controller\\Review' => $baseDir . '/application/wechat/controller/Review.php', - 'app\\wechat\\controller\\Tags' => $baseDir . '/application/wechat/controller/Tags.php', - 'app\\wechat\\controller\\api\\Js' => $baseDir . '/application/wechat/controller/api/Js.php', - 'app\\wechat\\controller\\api\\Push' => $baseDir . '/application/wechat/controller/api/Push.php', - 'app\\wechat\\controller\\api\\Tools' => $baseDir . '/application/wechat/controller/api/Tools.php', - 'app\\wechat\\service\\FansService' => $baseDir . '/application/wechat/service/FansService.php', - 'app\\wechat\\service\\MediaService' => $baseDir . '/application/wechat/service/MediaService.php', - 'app\\wechat\\service\\TagsService' => $baseDir . '/application/wechat/service/TagsService.php', - 'think\\captcha\\Captcha' => $vendorDir . '/topthink/think-captcha/src/Captcha.php', - 'think\\captcha\\CaptchaController' => $vendorDir . '/topthink/think-captcha/src/CaptchaController.php', - 'think\\composer\\Plugin' => $vendorDir . '/topthink/think-installer/src/Plugin.php', - 'think\\composer\\ThinkExtend' => $vendorDir . '/topthink/think-installer/src/ThinkExtend.php', - 'think\\composer\\ThinkFramework' => $vendorDir . '/topthink/think-installer/src/ThinkFramework.php', - 'think\\composer\\ThinkTesting' => $vendorDir . '/topthink/think-installer/src/ThinkTesting.php', -); diff --git a/vendor/composer/autoload_files.php b/vendor/composer/autoload_files.php deleted file mode 100644 index d83d945e0..000000000 --- a/vendor/composer/autoload_files.php +++ /dev/null @@ -1,11 +0,0 @@ - $vendorDir . '/topthink/think-captcha/src/helper.php', - '841780ea2e1d6545ea3a253239d59c05' => $vendorDir . '/qiniu/php-sdk/src/Qiniu/functions.php', -); diff --git a/vendor/composer/autoload_namespaces.php b/vendor/composer/autoload_namespaces.php deleted file mode 100644 index b7fc0125d..000000000 --- a/vendor/composer/autoload_namespaces.php +++ /dev/null @@ -1,9 +0,0 @@ - array($vendorDir . '/topthink/think-installer/src'), - 'think\\captcha\\' => array($vendorDir . '/topthink/think-captcha/src'), - 'app\\' => array($baseDir . '/application'), - 'WeOpen\\' => array($vendorDir . '/zoujingli/weopen-developer/WeOpen'), - 'WeChat\\' => array($vendorDir . '/zoujingli/wechat-developer/WeChat'), - 'Symfony\\Component\\OptionsResolver\\' => array($vendorDir . '/symfony/options-resolver'), - 'Qiniu\\' => array($vendorDir . '/qiniu/php-sdk/src/Qiniu'), - 'OSS\\' => array($vendorDir . '/aliyuncs/oss-sdk-php/src/OSS'), - 'Endroid\\QrCode\\' => array($vendorDir . '/endroid/qr-code/src'), -); diff --git a/vendor/composer/autoload_real.php b/vendor/composer/autoload_real.php deleted file mode 100644 index 0e9b94c3f..000000000 --- a/vendor/composer/autoload_real.php +++ /dev/null @@ -1,70 +0,0 @@ -= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); - if ($useStaticLoader) { - require_once __DIR__ . '/autoload_static.php'; - - call_user_func(\Composer\Autoload\ComposerStaticInitb638b5638d156ef1335e2a3a226be4ad::getInitializer($loader)); - } else { - $map = require __DIR__ . '/autoload_namespaces.php'; - foreach ($map as $namespace => $path) { - $loader->set($namespace, $path); - } - - $map = require __DIR__ . '/autoload_psr4.php'; - foreach ($map as $namespace => $path) { - $loader->setPsr4($namespace, $path); - } - - $classMap = require __DIR__ . '/autoload_classmap.php'; - if ($classMap) { - $loader->addClassMap($classMap); - } - } - - $loader->register(true); - - if ($useStaticLoader) { - $includeFiles = Composer\Autoload\ComposerStaticInitb638b5638d156ef1335e2a3a226be4ad::$files; - } else { - $includeFiles = require __DIR__ . '/autoload_files.php'; - } - foreach ($includeFiles as $fileIdentifier => $file) { - composerRequireb638b5638d156ef1335e2a3a226be4ad($fileIdentifier, $file); - } - - return $loader; - } -} - -function composerRequireb638b5638d156ef1335e2a3a226be4ad($fileIdentifier, $file) -{ - if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { - require $file; - - $GLOBALS['__composer_autoload_files'][$fileIdentifier] = true; - } -} diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php deleted file mode 100644 index 02cf3f224..000000000 --- a/vendor/composer/autoload_static.php +++ /dev/null @@ -1,267 +0,0 @@ - __DIR__ . '/..' . '/topthink/think-captcha/src/helper.php', - '841780ea2e1d6545ea3a253239d59c05' => __DIR__ . '/..' . '/qiniu/php-sdk/src/Qiniu/functions.php', - ); - - public static $prefixLengthsPsr4 = array ( - 't' => - array ( - 'think\\composer\\' => 15, - 'think\\captcha\\' => 14, - ), - 'a' => - array ( - 'app\\' => 4, - ), - 'W' => - array ( - 'WeOpen\\' => 7, - 'WeChat\\' => 7, - ), - 'S' => - array ( - 'Symfony\\Component\\OptionsResolver\\' => 34, - ), - 'Q' => - array ( - 'Qiniu\\' => 6, - ), - 'O' => - array ( - 'OSS\\' => 4, - ), - 'E' => - array ( - 'Endroid\\QrCode\\' => 15, - ), - ); - - public static $prefixDirsPsr4 = array ( - 'think\\composer\\' => - array ( - 0 => __DIR__ . '/..' . '/topthink/think-installer/src', - ), - 'think\\captcha\\' => - array ( - 0 => __DIR__ . '/..' . '/topthink/think-captcha/src', - ), - 'app\\' => - array ( - 0 => __DIR__ . '/../..' . '/application', - ), - 'WeOpen\\' => - array ( - 0 => __DIR__ . '/..' . '/zoujingli/weopen-developer/WeOpen', - ), - 'WeChat\\' => - array ( - 0 => __DIR__ . '/..' . '/zoujingli/wechat-developer/WeChat', - ), - 'Symfony\\Component\\OptionsResolver\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/options-resolver', - ), - 'Qiniu\\' => - array ( - 0 => __DIR__ . '/..' . '/qiniu/php-sdk/src/Qiniu', - ), - 'OSS\\' => - array ( - 0 => __DIR__ . '/..' . '/aliyuncs/oss-sdk-php/src/OSS', - ), - 'Endroid\\QrCode\\' => - array ( - 0 => __DIR__ . '/..' . '/endroid/qr-code/src', - ), - ); - - public static $classMap = array ( - 'Endroid\\QrCode\\Bundle\\Controller\\QrCodeController' => __DIR__ . '/..' . '/endroid/qr-code/src/Bundle/Controller/QrCodeController.php', - 'Endroid\\QrCode\\Bundle\\DependencyInjection\\Configuration' => __DIR__ . '/..' . '/endroid/qr-code/src/Bundle/DependencyInjection/Configuration.php', - 'Endroid\\QrCode\\Bundle\\DependencyInjection\\EndroidQrCodeExtension' => __DIR__ . '/..' . '/endroid/qr-code/src/Bundle/DependencyInjection/EndroidQrCodeExtension.php', - 'Endroid\\QrCode\\Bundle\\EndroidQrCodeBundle' => __DIR__ . '/..' . '/endroid/qr-code/src/Bundle/EndroidQrCodeBundle.php', - 'Endroid\\QrCode\\Bundle\\Twig\\Extension\\QrCodeExtension' => __DIR__ . '/..' . '/endroid/qr-code/src/Bundle/Twig/Extension/QrCodeExtension.php', - 'Endroid\\QrCode\\Exceptions\\DataDoesntExistsException' => __DIR__ . '/..' . '/endroid/qr-code/src/Exceptions/DataDoesntExistsException.php', - 'Endroid\\QrCode\\Exceptions\\FreeTypeLibraryMissingException' => __DIR__ . '/..' . '/endroid/qr-code/src/Exceptions/FreeTypeLibraryMissingException.php', - 'Endroid\\QrCode\\Exceptions\\ImageFunctionFailedException' => __DIR__ . '/..' . '/endroid/qr-code/src/Exceptions/ImageFunctionFailedException.php', - 'Endroid\\QrCode\\Exceptions\\ImageFunctionUnknownException' => __DIR__ . '/..' . '/endroid/qr-code/src/Exceptions/ImageFunctionUnknownException.php', - 'Endroid\\QrCode\\Exceptions\\ImageSizeTooLargeException' => __DIR__ . '/..' . '/endroid/qr-code/src/Exceptions/ImageSizeTooLargeException.php', - 'Endroid\\QrCode\\Exceptions\\ImageTypeInvalidException' => __DIR__ . '/..' . '/endroid/qr-code/src/Exceptions/ImageTypeInvalidException.php', - 'Endroid\\QrCode\\Exceptions\\VersionTooLargeException' => __DIR__ . '/..' . '/endroid/qr-code/src/Exceptions/VersionTooLargeException.php', - 'Endroid\\QrCode\\Factory\\QrCodeFactory' => __DIR__ . '/..' . '/endroid/qr-code/src/Factory/QrCodeFactory.php', - 'Endroid\\QrCode\\QrCode' => __DIR__ . '/..' . '/endroid/qr-code/src/QrCode.php', - 'Ip2Region' => __DIR__ . '/..' . '/zoujingli/ip2region/Ip2Region.php', - 'OSS\\Core\\MimeTypes' => __DIR__ . '/..' . '/aliyuncs/oss-sdk-php/src/OSS/Core/MimeTypes.php', - 'OSS\\Core\\OssException' => __DIR__ . '/..' . '/aliyuncs/oss-sdk-php/src/OSS/Core/OssException.php', - 'OSS\\Core\\OssUtil' => __DIR__ . '/..' . '/aliyuncs/oss-sdk-php/src/OSS/Core/OssUtil.php', - 'OSS\\Http\\RequestCore' => __DIR__ . '/..' . '/aliyuncs/oss-sdk-php/src/OSS/Http/RequestCore.php', - 'OSS\\Http\\RequestCore_Exception' => __DIR__ . '/..' . '/aliyuncs/oss-sdk-php/src/OSS/Http/RequestCore_Exception.php', - 'OSS\\Http\\ResponseCore' => __DIR__ . '/..' . '/aliyuncs/oss-sdk-php/src/OSS/Http/ResponseCore.php', - 'OSS\\Model\\BucketInfo' => __DIR__ . '/..' . '/aliyuncs/oss-sdk-php/src/OSS/Model/BucketInfo.php', - 'OSS\\Model\\BucketListInfo' => __DIR__ . '/..' . '/aliyuncs/oss-sdk-php/src/OSS/Model/BucketListInfo.php', - 'OSS\\Model\\CnameConfig' => __DIR__ . '/..' . '/aliyuncs/oss-sdk-php/src/OSS/Model/CnameConfig.php', - 'OSS\\Model\\CorsConfig' => __DIR__ . '/..' . '/aliyuncs/oss-sdk-php/src/OSS/Model/CorsConfig.php', - 'OSS\\Model\\CorsRule' => __DIR__ . '/..' . '/aliyuncs/oss-sdk-php/src/OSS/Model/CorsRule.php', - 'OSS\\Model\\GetLiveChannelHistory' => __DIR__ . '/..' . '/aliyuncs/oss-sdk-php/src/OSS/Model/GetLiveChannelHistory.php', - 'OSS\\Model\\GetLiveChannelInfo' => __DIR__ . '/..' . '/aliyuncs/oss-sdk-php/src/OSS/Model/GetLiveChannelInfo.php', - 'OSS\\Model\\GetLiveChannelStatus' => __DIR__ . '/..' . '/aliyuncs/oss-sdk-php/src/OSS/Model/GetLiveChannelStatus.php', - 'OSS\\Model\\LifecycleAction' => __DIR__ . '/..' . '/aliyuncs/oss-sdk-php/src/OSS/Model/LifecycleAction.php', - 'OSS\\Model\\LifecycleConfig' => __DIR__ . '/..' . '/aliyuncs/oss-sdk-php/src/OSS/Model/LifecycleConfig.php', - 'OSS\\Model\\LifecycleRule' => __DIR__ . '/..' . '/aliyuncs/oss-sdk-php/src/OSS/Model/LifecycleRule.php', - 'OSS\\Model\\ListMultipartUploadInfo' => __DIR__ . '/..' . '/aliyuncs/oss-sdk-php/src/OSS/Model/ListMultipartUploadInfo.php', - 'OSS\\Model\\ListPartsInfo' => __DIR__ . '/..' . '/aliyuncs/oss-sdk-php/src/OSS/Model/ListPartsInfo.php', - 'OSS\\Model\\LiveChannelConfig' => __DIR__ . '/..' . '/aliyuncs/oss-sdk-php/src/OSS/Model/LiveChannelConfig.php', - 'OSS\\Model\\LiveChannelHistory' => __DIR__ . '/..' . '/aliyuncs/oss-sdk-php/src/OSS/Model/LiveChannelHistory.php', - 'OSS\\Model\\LiveChannelInfo' => __DIR__ . '/..' . '/aliyuncs/oss-sdk-php/src/OSS/Model/LiveChannelInfo.php', - 'OSS\\Model\\LiveChannelListInfo' => __DIR__ . '/..' . '/aliyuncs/oss-sdk-php/src/OSS/Model/LiveChannelListInfo.php', - 'OSS\\Model\\LoggingConfig' => __DIR__ . '/..' . '/aliyuncs/oss-sdk-php/src/OSS/Model/LoggingConfig.php', - 'OSS\\Model\\ObjectInfo' => __DIR__ . '/..' . '/aliyuncs/oss-sdk-php/src/OSS/Model/ObjectInfo.php', - 'OSS\\Model\\ObjectListInfo' => __DIR__ . '/..' . '/aliyuncs/oss-sdk-php/src/OSS/Model/ObjectListInfo.php', - 'OSS\\Model\\PartInfo' => __DIR__ . '/..' . '/aliyuncs/oss-sdk-php/src/OSS/Model/PartInfo.php', - 'OSS\\Model\\PrefixInfo' => __DIR__ . '/..' . '/aliyuncs/oss-sdk-php/src/OSS/Model/PrefixInfo.php', - 'OSS\\Model\\RefererConfig' => __DIR__ . '/..' . '/aliyuncs/oss-sdk-php/src/OSS/Model/RefererConfig.php', - 'OSS\\Model\\StorageCapacityConfig' => __DIR__ . '/..' . '/aliyuncs/oss-sdk-php/src/OSS/Model/StorageCapacityConfig.php', - 'OSS\\Model\\UploadInfo' => __DIR__ . '/..' . '/aliyuncs/oss-sdk-php/src/OSS/Model/UploadInfo.php', - 'OSS\\Model\\WebsiteConfig' => __DIR__ . '/..' . '/aliyuncs/oss-sdk-php/src/OSS/Model/WebsiteConfig.php', - 'OSS\\Model\\XmlConfig' => __DIR__ . '/..' . '/aliyuncs/oss-sdk-php/src/OSS/Model/XmlConfig.php', - 'OSS\\OssClient' => __DIR__ . '/..' . '/aliyuncs/oss-sdk-php/src/OSS/OssClient.php', - 'OSS\\Result\\AclResult' => __DIR__ . '/..' . '/aliyuncs/oss-sdk-php/src/OSS/Result/AclResult.php', - 'OSS\\Result\\AppendResult' => __DIR__ . '/..' . '/aliyuncs/oss-sdk-php/src/OSS/Result/AppendResult.php', - 'OSS\\Result\\BodyResult' => __DIR__ . '/..' . '/aliyuncs/oss-sdk-php/src/OSS/Result/BodyResult.php', - 'OSS\\Result\\CallbackResult' => __DIR__ . '/..' . '/aliyuncs/oss-sdk-php/src/OSS/Result/CallbackResult.php', - 'OSS\\Result\\CopyObjectResult' => __DIR__ . '/..' . '/aliyuncs/oss-sdk-php/src/OSS/Result/CopyObjectResult.php', - 'OSS\\Result\\DeleteObjectsResult' => __DIR__ . '/..' . '/aliyuncs/oss-sdk-php/src/OSS/Result/DeleteObjectsResult.php', - 'OSS\\Result\\ExistResult' => __DIR__ . '/..' . '/aliyuncs/oss-sdk-php/src/OSS/Result/ExistResult.php', - 'OSS\\Result\\GetCnameResult' => __DIR__ . '/..' . '/aliyuncs/oss-sdk-php/src/OSS/Result/GetCnameResult.php', - 'OSS\\Result\\GetCorsResult' => __DIR__ . '/..' . '/aliyuncs/oss-sdk-php/src/OSS/Result/GetCorsResult.php', - 'OSS\\Result\\GetLifecycleResult' => __DIR__ . '/..' . '/aliyuncs/oss-sdk-php/src/OSS/Result/GetLifecycleResult.php', - 'OSS\\Result\\GetLiveChannelHistoryResult' => __DIR__ . '/..' . '/aliyuncs/oss-sdk-php/src/OSS/Result/GetLiveChannelHistoryResult.php', - 'OSS\\Result\\GetLiveChannelInfoResult' => __DIR__ . '/..' . '/aliyuncs/oss-sdk-php/src/OSS/Result/GetLiveChannelInfoResult.php', - 'OSS\\Result\\GetLiveChannelStatusResult' => __DIR__ . '/..' . '/aliyuncs/oss-sdk-php/src/OSS/Result/GetLiveChannelStatusResult.php', - 'OSS\\Result\\GetLocationResult' => __DIR__ . '/..' . '/aliyuncs/oss-sdk-php/src/OSS/Result/GetLocationResult.php', - 'OSS\\Result\\GetLoggingResult' => __DIR__ . '/..' . '/aliyuncs/oss-sdk-php/src/OSS/Result/GetLoggingResult.php', - 'OSS\\Result\\GetRefererResult' => __DIR__ . '/..' . '/aliyuncs/oss-sdk-php/src/OSS/Result/GetRefererResult.php', - 'OSS\\Result\\GetStorageCapacityResult' => __DIR__ . '/..' . '/aliyuncs/oss-sdk-php/src/OSS/Result/GetStorageCapacityResult.php', - 'OSS\\Result\\GetWebsiteResult' => __DIR__ . '/..' . '/aliyuncs/oss-sdk-php/src/OSS/Result/GetWebsiteResult.php', - 'OSS\\Result\\HeaderResult' => __DIR__ . '/..' . '/aliyuncs/oss-sdk-php/src/OSS/Result/HeaderResult.php', - 'OSS\\Result\\InitiateMultipartUploadResult' => __DIR__ . '/..' . '/aliyuncs/oss-sdk-php/src/OSS/Result/InitiateMultipartUploadResult.php', - 'OSS\\Result\\ListBucketsResult' => __DIR__ . '/..' . '/aliyuncs/oss-sdk-php/src/OSS/Result/ListBucketsResult.php', - 'OSS\\Result\\ListLiveChannelResult' => __DIR__ . '/..' . '/aliyuncs/oss-sdk-php/src/OSS/Result/ListLiveChannelResult.php', - 'OSS\\Result\\ListMultipartUploadResult' => __DIR__ . '/..' . '/aliyuncs/oss-sdk-php/src/OSS/Result/ListMultipartUploadResult.php', - 'OSS\\Result\\ListObjectsResult' => __DIR__ . '/..' . '/aliyuncs/oss-sdk-php/src/OSS/Result/ListObjectsResult.php', - 'OSS\\Result\\ListPartsResult' => __DIR__ . '/..' . '/aliyuncs/oss-sdk-php/src/OSS/Result/ListPartsResult.php', - 'OSS\\Result\\PutLiveChannelResult' => __DIR__ . '/..' . '/aliyuncs/oss-sdk-php/src/OSS/Result/PutLiveChannelResult.php', - 'OSS\\Result\\PutSetDeleteResult' => __DIR__ . '/..' . '/aliyuncs/oss-sdk-php/src/OSS/Result/PutSetDeleteResult.php', - 'OSS\\Result\\Result' => __DIR__ . '/..' . '/aliyuncs/oss-sdk-php/src/OSS/Result/Result.php', - 'OSS\\Result\\SymlinkResult' => __DIR__ . '/..' . '/aliyuncs/oss-sdk-php/src/OSS/Result/SymlinkResult.php', - 'OSS\\Result\\UploadPartResult' => __DIR__ . '/..' . '/aliyuncs/oss-sdk-php/src/OSS/Result/UploadPartResult.php', - 'Qiniu\\Auth' => __DIR__ . '/..' . '/qiniu/php-sdk/src/Qiniu/Auth.php', - 'Qiniu\\Cdn\\CdnManager' => __DIR__ . '/..' . '/qiniu/php-sdk/src/Qiniu/Cdn/CdnManager.php', - 'Qiniu\\Config' => __DIR__ . '/..' . '/qiniu/php-sdk/src/Qiniu/Config.php', - 'Qiniu\\Etag' => __DIR__ . '/..' . '/qiniu/php-sdk/src/Qiniu/Etag.php', - 'Qiniu\\Http\\Client' => __DIR__ . '/..' . '/qiniu/php-sdk/src/Qiniu/Http/Client.php', - 'Qiniu\\Http\\Error' => __DIR__ . '/..' . '/qiniu/php-sdk/src/Qiniu/Http/Error.php', - 'Qiniu\\Http\\Request' => __DIR__ . '/..' . '/qiniu/php-sdk/src/Qiniu/Http/Request.php', - 'Qiniu\\Http\\Response' => __DIR__ . '/..' . '/qiniu/php-sdk/src/Qiniu/Http/Response.php', - 'Qiniu\\Processing\\ImageUrlBuilder' => __DIR__ . '/..' . '/qiniu/php-sdk/src/Qiniu/Processing/ImageUrlBuilder.php', - 'Qiniu\\Processing\\Operation' => __DIR__ . '/..' . '/qiniu/php-sdk/src/Qiniu/Processing/Operation.php', - 'Qiniu\\Processing\\PersistentFop' => __DIR__ . '/..' . '/qiniu/php-sdk/src/Qiniu/Processing/PersistentFop.php', - 'Qiniu\\Storage\\BucketManager' => __DIR__ . '/..' . '/qiniu/php-sdk/src/Qiniu/Storage/BucketManager.php', - 'Qiniu\\Storage\\FormUploader' => __DIR__ . '/..' . '/qiniu/php-sdk/src/Qiniu/Storage/FormUploader.php', - 'Qiniu\\Storage\\ResumeUploader' => __DIR__ . '/..' . '/qiniu/php-sdk/src/Qiniu/Storage/ResumeUploader.php', - 'Qiniu\\Storage\\UploadManager' => __DIR__ . '/..' . '/qiniu/php-sdk/src/Qiniu/Storage/UploadManager.php', - 'Qiniu\\Zone' => __DIR__ . '/..' . '/qiniu/php-sdk/src/Qiniu/Zone.php', - 'Symfony\\Component\\OptionsResolver\\Debug\\OptionsResolverIntrospector' => __DIR__ . '/..' . '/symfony/options-resolver/Debug/OptionsResolverIntrospector.php', - 'Symfony\\Component\\OptionsResolver\\Exception\\AccessException' => __DIR__ . '/..' . '/symfony/options-resolver/Exception/AccessException.php', - 'Symfony\\Component\\OptionsResolver\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/symfony/options-resolver/Exception/ExceptionInterface.php', - 'Symfony\\Component\\OptionsResolver\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/symfony/options-resolver/Exception/InvalidArgumentException.php', - 'Symfony\\Component\\OptionsResolver\\Exception\\InvalidOptionsException' => __DIR__ . '/..' . '/symfony/options-resolver/Exception/InvalidOptionsException.php', - 'Symfony\\Component\\OptionsResolver\\Exception\\MissingOptionsException' => __DIR__ . '/..' . '/symfony/options-resolver/Exception/MissingOptionsException.php', - 'Symfony\\Component\\OptionsResolver\\Exception\\NoConfigurationException' => __DIR__ . '/..' . '/symfony/options-resolver/Exception/NoConfigurationException.php', - 'Symfony\\Component\\OptionsResolver\\Exception\\NoSuchOptionException' => __DIR__ . '/..' . '/symfony/options-resolver/Exception/NoSuchOptionException.php', - 'Symfony\\Component\\OptionsResolver\\Exception\\OptionDefinitionException' => __DIR__ . '/..' . '/symfony/options-resolver/Exception/OptionDefinitionException.php', - 'Symfony\\Component\\OptionsResolver\\Exception\\UndefinedOptionsException' => __DIR__ . '/..' . '/symfony/options-resolver/Exception/UndefinedOptionsException.php', - 'Symfony\\Component\\OptionsResolver\\Options' => __DIR__ . '/..' . '/symfony/options-resolver/Options.php', - 'Symfony\\Component\\OptionsResolver\\OptionsResolver' => __DIR__ . '/..' . '/symfony/options-resolver/OptionsResolver.php', - 'WeChat\\Card' => __DIR__ . '/..' . '/zoujingli/wechat-developer/WeChat/Card.php', - 'WeChat\\Contracts\\BasicPushEvent' => __DIR__ . '/..' . '/zoujingli/wechat-developer/WeChat/Contracts/BasicPushEvent.php', - 'WeChat\\Contracts\\BasicWeChat' => __DIR__ . '/..' . '/zoujingli/wechat-developer/WeChat/Contracts/BasicWeChat.php', - 'WeChat\\Contracts\\DataArray' => __DIR__ . '/..' . '/zoujingli/wechat-developer/WeChat/Contracts/DataArray.php', - 'WeChat\\Contracts\\DataError' => __DIR__ . '/..' . '/zoujingli/wechat-developer/WeChat/Contracts/DataError.php', - 'WeChat\\Contracts\\Tools' => __DIR__ . '/..' . '/zoujingli/wechat-developer/WeChat/Contracts/Tools.php', - 'WeChat\\Custom' => __DIR__ . '/..' . '/zoujingli/wechat-developer/WeChat/Custom.php', - 'WeChat\\Exceptions\\InvalidArgumentException' => __DIR__ . '/..' . '/zoujingli/wechat-developer/WeChat/Exceptions/InvalidArgumentException.php', - 'WeChat\\Exceptions\\InvalidDecryptException' => __DIR__ . '/..' . '/zoujingli/wechat-developer/WeChat/Exceptions/InvalidDecryptException.php', - 'WeChat\\Exceptions\\InvalidResponseException' => __DIR__ . '/..' . '/zoujingli/wechat-developer/WeChat/Exceptions/InvalidResponseException.php', - 'WeChat\\Exceptions\\LocalCacheException' => __DIR__ . '/..' . '/zoujingli/wechat-developer/WeChat/Exceptions/LocalCacheException.php', - 'WeChat\\Limit' => __DIR__ . '/..' . '/zoujingli/wechat-developer/WeChat/Limit.php', - 'WeChat\\Media' => __DIR__ . '/..' . '/zoujingli/wechat-developer/WeChat/Media.php', - 'WeChat\\Menu' => __DIR__ . '/..' . '/zoujingli/wechat-developer/WeChat/Menu.php', - 'WeChat\\Oauth' => __DIR__ . '/..' . '/zoujingli/wechat-developer/WeChat/Oauth.php', - 'WeChat\\Pay' => __DIR__ . '/..' . '/zoujingli/wechat-developer/WeChat/Pay.php', - 'WeChat\\Product' => __DIR__ . '/..' . '/zoujingli/wechat-developer/WeChat/Product.php', - 'WeChat\\Qrcode' => __DIR__ . '/..' . '/zoujingli/wechat-developer/WeChat/Qrcode.php', - 'WeChat\\Receive' => __DIR__ . '/..' . '/zoujingli/wechat-developer/WeChat/Receive.php', - 'WeChat\\Scan' => __DIR__ . '/..' . '/zoujingli/wechat-developer/WeChat/Scan.php', - 'WeChat\\Script' => __DIR__ . '/..' . '/zoujingli/wechat-developer/WeChat/Script.php', - 'WeChat\\Shake' => __DIR__ . '/..' . '/zoujingli/wechat-developer/WeChat/Shake.php', - 'WeChat\\Tags' => __DIR__ . '/..' . '/zoujingli/wechat-developer/WeChat/Tags.php', - 'WeChat\\Template' => __DIR__ . '/..' . '/zoujingli/wechat-developer/WeChat/Template.php', - 'WeChat\\User' => __DIR__ . '/..' . '/zoujingli/wechat-developer/WeChat/User.php', - 'WeChat\\Wifi' => __DIR__ . '/..' . '/zoujingli/wechat-developer/WeChat/Wifi.php', - 'WeOpen\\Service' => __DIR__ . '/..' . '/zoujingli/weopen-developer/WeOpen/Service.php', - 'app\\admin\\controller\\Auth' => __DIR__ . '/../..' . '/application/admin/controller/Auth.php', - 'app\\admin\\controller\\Config' => __DIR__ . '/../..' . '/application/admin/controller/Config.php', - 'app\\admin\\controller\\Index' => __DIR__ . '/../..' . '/application/admin/controller/Index.php', - 'app\\admin\\controller\\Log' => __DIR__ . '/../..' . '/application/admin/controller/Log.php', - 'app\\admin\\controller\\Login' => __DIR__ . '/../..' . '/application/admin/controller/Login.php', - 'app\\admin\\controller\\Menu' => __DIR__ . '/../..' . '/application/admin/controller/Menu.php', - 'app\\admin\\controller\\Node' => __DIR__ . '/../..' . '/application/admin/controller/Node.php', - 'app\\admin\\controller\\Plugs' => __DIR__ . '/../..' . '/application/admin/controller/Plugs.php', - 'app\\admin\\controller\\User' => __DIR__ . '/../..' . '/application/admin/controller/User.php', - 'app\\goods\\controller\\Brand' => __DIR__ . '/../..' . '/application/goods/controller/Brand.php', - 'app\\goods\\controller\\Cate' => __DIR__ . '/../..' . '/application/goods/controller/Cate.php', - 'app\\goods\\controller\\Product' => __DIR__ . '/../..' . '/application/goods/controller/Product.php', - 'app\\goods\\controller\\Spec' => __DIR__ . '/../..' . '/application/goods/controller/Spec.php', - 'app\\goods\\service\\ProductService' => __DIR__ . '/../..' . '/application/goods/service/ProductService.php', - 'app\\index\\controller\\Index' => __DIR__ . '/../..' . '/application/index/controller/Index.php', - 'app\\wechat\\controller\\Block' => __DIR__ . '/../..' . '/application/wechat/controller/Block.php', - 'app\\wechat\\controller\\Config' => __DIR__ . '/../..' . '/application/wechat/controller/Config.php', - 'app\\wechat\\controller\\Fans' => __DIR__ . '/../..' . '/application/wechat/controller/Fans.php', - 'app\\wechat\\controller\\Keys' => __DIR__ . '/../..' . '/application/wechat/controller/Keys.php', - 'app\\wechat\\controller\\Menu' => __DIR__ . '/../..' . '/application/wechat/controller/Menu.php', - 'app\\wechat\\controller\\News' => __DIR__ . '/../..' . '/application/wechat/controller/News.php', - 'app\\wechat\\controller\\Review' => __DIR__ . '/../..' . '/application/wechat/controller/Review.php', - 'app\\wechat\\controller\\Tags' => __DIR__ . '/../..' . '/application/wechat/controller/Tags.php', - 'app\\wechat\\controller\\api\\Js' => __DIR__ . '/../..' . '/application/wechat/controller/api/Js.php', - 'app\\wechat\\controller\\api\\Push' => __DIR__ . '/../..' . '/application/wechat/controller/api/Push.php', - 'app\\wechat\\controller\\api\\Tools' => __DIR__ . '/../..' . '/application/wechat/controller/api/Tools.php', - 'app\\wechat\\service\\FansService' => __DIR__ . '/../..' . '/application/wechat/service/FansService.php', - 'app\\wechat\\service\\MediaService' => __DIR__ . '/../..' . '/application/wechat/service/MediaService.php', - 'app\\wechat\\service\\TagsService' => __DIR__ . '/../..' . '/application/wechat/service/TagsService.php', - 'think\\captcha\\Captcha' => __DIR__ . '/..' . '/topthink/think-captcha/src/Captcha.php', - 'think\\captcha\\CaptchaController' => __DIR__ . '/..' . '/topthink/think-captcha/src/CaptchaController.php', - 'think\\composer\\Plugin' => __DIR__ . '/..' . '/topthink/think-installer/src/Plugin.php', - 'think\\composer\\ThinkExtend' => __DIR__ . '/..' . '/topthink/think-installer/src/ThinkExtend.php', - 'think\\composer\\ThinkFramework' => __DIR__ . '/..' . '/topthink/think-installer/src/ThinkFramework.php', - 'think\\composer\\ThinkTesting' => __DIR__ . '/..' . '/topthink/think-installer/src/ThinkTesting.php', - ); - - public static function getInitializer(ClassLoader $loader) - { - return \Closure::bind(function () use ($loader) { - $loader->prefixLengthsPsr4 = ComposerStaticInitb638b5638d156ef1335e2a3a226be4ad::$prefixLengthsPsr4; - $loader->prefixDirsPsr4 = ComposerStaticInitb638b5638d156ef1335e2a3a226be4ad::$prefixDirsPsr4; - $loader->classMap = ComposerStaticInitb638b5638d156ef1335e2a3a226be4ad::$classMap; - - }, null, ClassLoader::class); - } -} diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json deleted file mode 100644 index 3b331147b..000000000 --- a/vendor/composer/installed.json +++ /dev/null @@ -1,484 +0,0 @@ -[ - { - "name": "topthink/think-installer", - "version": "v1.0.12", - "version_normalized": "1.0.12.0", - "source": { - "type": "git", - "url": "https://github.com/top-think/think-installer.git", - "reference": "1be326e68f63de4e95977ed50f46ae75f017556d" - }, - "dist": { - "type": "zip", - "url": "https://files.phpcomposer.com/files/top-think/think-installer/1be326e68f63de4e95977ed50f46ae75f017556d.zip", - "reference": "1be326e68f63de4e95977ed50f46ae75f017556d", - "shasum": "" - }, - "require": { - "composer-plugin-api": "^1.0" - }, - "require-dev": { - "composer/composer": "1.0.*@dev" - }, - "time": "2017-05-27T06:58:09+00:00", - "type": "composer-plugin", - "extra": { - "class": "think\\composer\\Plugin" - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "think\\composer\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "Apache-2.0" - ], - "authors": [ - { - "name": "yunwuxin", - "email": "448901948@qq.com" - } - ] - }, - { - "name": "zoujingli/ip2region", - "version": "dev-master", - "version_normalized": "9999999-dev", - "source": { - "type": "git", - "url": "https://github.com/zoujingli/ip2region.git", - "reference": "5d981fbf3b574bad7fe9652e7aecba0920f54325" - }, - "dist": { - "type": "zip", - "url": "https://files.phpcomposer.com/files/zoujingli/ip2region/5d981fbf3b574bad7fe9652e7aecba0920f54325.zip", - "reference": "5d981fbf3b574bad7fe9652e7aecba0920f54325", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "time": "2017-11-09T03:36:17+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "classmap": [ - "Ip2Region.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "Apache 2.0" - ], - "description": "Ip2Region", - "homepage": "https://github.com/zoujingli/Ip2Region", - "keywords": [ - "Ip2Region" - ] - }, - { - "name": "zoujingli/wechat-developer", - "version": "v1.0.5", - "version_normalized": "1.0.5.0", - "source": { - "type": "git", - "url": "https://github.com/zoujingli/WeChatDeveloper.git", - "reference": "e05fe6bb24438d15259a6af4915bd0638dc3914a" - }, - "dist": { - "type": "zip", - "url": "https://files.phpcomposer.com/files/zoujingli/WeChatDeveloper/e05fe6bb24438d15259a6af4915bd0638dc3914a.zip", - "reference": "e05fe6bb24438d15259a6af4915bd0638dc3914a", - "shasum": "" - }, - "require": { - "ext-curl": "*", - "ext-openssl": "*", - "php": ">=5.4" - }, - "time": "2018-04-09T11:07:00+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "WeChat\\": "WeChat" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Anyon", - "email": "zoujingli@qq.com", - "homepage": "http://ctolog.com" - } - ], - "description": "WeChat platform and WeChat payment development tools", - "homepage": "https://github.com/zoujingli/WeChatDeveloper", - "keywords": [ - "WeChatDeveloper", - "wechat", - "wechatpay" - ] - }, - { - "name": "zoujingli/weopen-developer", - "version": "dev-master", - "version_normalized": "9999999-dev", - "source": { - "type": "git", - "url": "https://github.com/zoujingli/WeOpenDeveloper.git", - "reference": "8bb75bc08488a43964c00f027b21b93ed58e8d5a" - }, - "dist": { - "type": "zip", - "url": "https://files.phpcomposer.com/files/zoujingli/WeOpenDeveloper/8bb75bc08488a43964c00f027b21b93ed58e8d5a.zip", - "reference": "8bb75bc08488a43964c00f027b21b93ed58e8d5a", - "shasum": "" - }, - "require": { - "ext-curl": "*", - "ext-openssl": "*", - "php": ">=5.4", - "zoujingli/wechat-developer": "^1.0.0" - }, - "time": "2018-03-21T05:06:35+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "WeOpen\\": "WeOpen" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Anyon", - "email": "zoujingli@qq.com", - "homepage": "http://ctolog.com" - } - ], - "description": "WeChat Open development of SDK", - "homepage": "https://github.com/zoujingli/WeOpenDeveloper", - "keywords": [ - "WeChatOpen", - "WeChatOpenDeveloper", - "wechat" - ] - }, - { - "name": "topthink/framework", - "version": "v5.1.9", - "version_normalized": "5.1.9.0", - "source": { - "type": "git", - "url": "https://github.com/top-think/framework.git", - "reference": "c49df2fa54879105e451f7eaaf841d218206f02f" - }, - "dist": { - "type": "zip", - "url": "https://files.phpcomposer.com/files/top-think/framework/c49df2fa54879105e451f7eaaf841d218206f02f.zip", - "reference": "c49df2fa54879105e451f7eaaf841d218206f02f", - "shasum": "" - }, - "require": { - "php": ">=5.6.0", - "topthink/think-installer": "~1.0" - }, - "require-dev": { - "johnkary/phpunit-speedtrap": "^1.0", - "mikey179/vfsstream": "~1.6", - "phpdocumentor/reflection-docblock": "^2.0", - "phploc/phploc": "2.*", - "phpunit/phpunit": "^5.0|^6.0", - "sebastian/phpcpd": "2.*", - "squizlabs/php_codesniffer": "2.*" - }, - "time": "2018-04-12T11:16:28+00:00", - "type": "think-framework", - "installation-source": "dist", - "notification-url": "https://packagist.org/downloads/", - "license": [ - "Apache-2.0" - ], - "authors": [ - { - "name": "liu21st", - "email": "liu21st@gmail.com" - }, - { - "name": "yunwuxin", - "email": "448901948@qq.com" - } - ], - "description": "the new thinkphp framework", - "homepage": "http://thinkphp.cn/", - "keywords": [ - "framework", - "orm", - "thinkphp" - ] - }, - { - "name": "topthink/think-captcha", - "version": "v2.0.2", - "version_normalized": "2.0.2.0", - "source": { - "type": "git", - "url": "https://github.com/top-think/think-captcha.git", - "reference": "54c8a51552f99ff9ea89ea9c272383a8f738ceee" - }, - "dist": { - "type": "zip", - "url": "https://files.phpcomposer.com/files/top-think/think-captcha/54c8a51552f99ff9ea89ea9c272383a8f738ceee.zip", - "reference": "54c8a51552f99ff9ea89ea9c272383a8f738ceee", - "shasum": "" - }, - "require": { - "topthink/framework": "5.1.*" - }, - "time": "2017-12-31T16:37:49+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "think\\captcha\\": "src/" - }, - "files": [ - "src/helper.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "Apache-2.0" - ], - "authors": [ - { - "name": "yunwuxin", - "email": "448901948@qq.com" - } - ], - "description": "captcha package for thinkphp5" - }, - { - "name": "symfony/options-resolver", - "version": "v3.4.8", - "version_normalized": "3.4.8.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/options-resolver.git", - "reference": "f3109a6aedd20e35c3a33190e932c2b063b7b50e" - }, - "dist": { - "type": "zip", - "url": "https://files.phpcomposer.com/files/symfony/options-resolver/f3109a6aedd20e35c3a33190e932c2b063b7b50e.zip", - "reference": "f3109a6aedd20e35c3a33190e932c2b063b7b50e", - "shasum": "" - }, - "require": { - "php": "^5.5.9|>=7.0.8" - }, - "time": "2018-01-11T07:56:07+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Component\\OptionsResolver\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony OptionsResolver Component", - "homepage": "https://symfony.com", - "keywords": [ - "config", - "configuration", - "options" - ] - }, - { - "name": "endroid/qr-code", - "version": "1.9.3", - "version_normalized": "1.9.3.0", - "source": { - "type": "git", - "url": "https://github.com/endroid/qr-code.git", - "reference": "c9644bec2a9cc9318e98d1437de3c628dcd1ef93" - }, - "dist": { - "type": "zip", - "url": "https://files.phpcomposer.com/files/endroid/qr-code/c9644bec2a9cc9318e98d1437de3c628dcd1ef93.zip", - "reference": "c9644bec2a9cc9318e98d1437de3c628dcd1ef93", - "shasum": "" - }, - "require": { - "ext-gd": "*", - "php": ">=5.4", - "symfony/options-resolver": "^2.3|^3.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.0|^5.0", - "sensio/framework-extra-bundle": "^3.0", - "symfony/browser-kit": "^2.3|^3.0", - "symfony/framework-bundle": "^2.3|^3.0", - "symfony/http-kernel": "^2.3|^3.0" - }, - "time": "2017-04-08T09:13:59+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Endroid\\QrCode\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jeroen van den Enden", - "email": "info@endroid.nl", - "homepage": "http://endroid.nl/" - } - ], - "description": "Endroid QR Code", - "homepage": "https://github.com/endroid/QrCode", - "keywords": [ - "bundle", - "code", - "endroid", - "qr", - "qrcode", - "symfony" - ] - }, - { - "name": "aliyuncs/oss-sdk-php", - "version": "v2.3.0", - "version_normalized": "2.3.0.0", - "source": { - "type": "git", - "url": "https://github.com/aliyun/aliyun-oss-php-sdk.git", - "reference": "e69f57916678458642ac9d2fd341ae78a56996c8" - }, - "dist": { - "type": "zip", - "url": "https://files.phpcomposer.com/files/aliyun/aliyun-oss-php-sdk/e69f57916678458642ac9d2fd341ae78a56996c8.zip", - "reference": "e69f57916678458642ac9d2fd341ae78a56996c8", - "shasum": "" - }, - "require": { - "php": ">=5.3" - }, - "require-dev": { - "phpunit/phpunit": "~4.0", - "satooshi/php-coveralls": "~1.0" - }, - "time": "2018-01-08T06:59:35+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "OSS\\": "src/OSS" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Aliyuncs", - "homepage": "http://www.aliyun.com" - } - ], - "description": "Aliyun OSS SDK for PHP", - "homepage": "http://www.aliyun.com/product/oss/" - }, - { - "name": "qiniu/php-sdk", - "version": "v7.2.3", - "version_normalized": "7.2.3.0", - "source": { - "type": "git", - "url": "https://github.com/qiniu/php-sdk.git", - "reference": "67852ba9cdd7f48e0e080961abebafee134fb329" - }, - "dist": { - "type": "zip", - "url": "https://files.phpcomposer.com/files/qiniu/php-sdk/67852ba9cdd7f48e0e080961abebafee134fb329.zip", - "reference": "67852ba9cdd7f48e0e080961abebafee134fb329", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "require-dev": { - "phpunit/phpunit": "~4.0", - "squizlabs/php_codesniffer": "~2.3" - }, - "time": "2018-02-20T13:59:54+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "Qiniu\\": "src/Qiniu" - }, - "files": [ - "src/Qiniu/functions.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Qiniu", - "email": "sdk@qiniu.com", - "homepage": "http://www.qiniu.com" - } - ], - "description": "Qiniu Resource (Cloud) Storage SDK for PHP", - "homepage": "http://developer.qiniu.com/", - "keywords": [ - "cloud", - "qiniu", - "sdk", - "storage" - ] - } -] diff --git a/vendor/endroid/qr-code/.gitignore b/vendor/endroid/qr-code/.gitignore deleted file mode 100644 index d0eeedab8..000000000 --- a/vendor/endroid/qr-code/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ -/bin -/composer.lock -/composer.phar -/phpunit.xml -/vendor diff --git a/vendor/endroid/qr-code/.travis.yml b/vendor/endroid/qr-code/.travis.yml deleted file mode 100644 index 9233d9aa1..000000000 --- a/vendor/endroid/qr-code/.travis.yml +++ /dev/null @@ -1,21 +0,0 @@ -language: php - -php: - - 5.4 - - 5.5 - - 5.6 - - 7.0 - - 7.1 - - hhvm - -matrix: - fast_finish: true - -before_install: - - if [[ "$TRAVIS_PHP_VERSION" != "hhvm" ]]; then phpenv config-rm xdebug.ini; fi; - - composer self-update && composer install --no-interaction - -script: bin/phpunit - -notifications: - email: info@endroid.nl diff --git a/vendor/endroid/qr-code/LICENSE b/vendor/endroid/qr-code/LICENSE deleted file mode 100644 index 0966ce0e4..000000000 --- a/vendor/endroid/qr-code/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) Jeroen van den Enden - -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. diff --git a/vendor/endroid/qr-code/README.md b/vendor/endroid/qr-code/README.md deleted file mode 100644 index c4fcf39a7..000000000 --- a/vendor/endroid/qr-code/README.md +++ /dev/null @@ -1,132 +0,0 @@ -QR Code -======= - -*By [endroid](http://endroid.nl/)* - -[![Latest Stable Version](http://img.shields.io/packagist/v/endroid/qrcode.svg)](https://packagist.org/packages/endroid/qrcode) -[![Build Status](http://img.shields.io/travis/endroid/QrCode.svg)](http://travis-ci.org/endroid/QrCode) -[![Total Downloads](http://img.shields.io/packagist/dt/endroid/qrcode.svg)](https://packagist.org/packages/endroid/qrcode) -[![Monthly Downloads](http://img.shields.io/packagist/dm/endroid/qrcode.svg)](https://packagist.org/packages/endroid/qrcode) -[![License](http://img.shields.io/packagist/l/endroid/qrcode.svg)](https://packagist.org/packages/endroid/qrcode) - -This library based on QRcode Perl CGI & PHP scripts by Y. Swetake helps you generate images containing a QR code. - -## Installation - -Use [Composer](https://getcomposer.org/) to install the library. - -``` bash -$ composer require endroid/qrcode -``` - -## Usage - -```php -use Endroid\QrCode\QrCode; - -$qrCode = new QrCode(); -$qrCode - ->setText('Life is too short to be generating QR codes') - ->setSize(300) - ->setPadding(10) - ->setErrorCorrection('high') - ->setForegroundColor(['r' => 0, 'g' => 0, 'b' => 0, 'a' => 0]) - ->setBackgroundColor(['r' => 255, 'g' => 255, 'b' => 255, 'a' => 0]) - ->setLabel('Scan the code') - ->setLabelFontSize(16) - ->setImageType(QrCode::IMAGE_TYPE_PNG) -; - -// now we can directly output the qrcode -header('Content-Type: '.$qrCode->getContentType()); -$qrCode->render(); - -// save it to a file -$qrCode->save('qrcode.png'); - -// or create a response object -$response = new Response($qrCode->get(), 200, ['Content-Type' => $qrCode->getContentType()]); -``` - -![QR Code](http://endroid.nl/qrcode/Life%20is%20too%20short%20to%20be%20generating%20QR%20codes.png?label=Scan%20the%20code) - -## Symfony integration - -Register the Symfony bundle in the kernel. - -```php -// app/AppKernel.php - -public function registerBundles() -{ - $bundles = [ - // ... - new Endroid\QrCode\Bundle\EndroidQrCodeBundle(), - ]; -} -``` - -The default parameters can be overridden via the configuration. -Alpha channel available range is [0, 127] in foreground and background colors. - -```yaml -endroid_qr_code: - size: 100 - padding: 10 - extension: gif - error_correction_level: high - foreground_color: { r: 0, g: 0, b: 0, a: 0 } - background_color: { r: 255, g: 255, b: 255, a: 0 } - label: 'My label' - label_font_size: 16 -``` - -Now you can retrieve the factory as follows. - -```php -$factory = $this->get('endroid.qrcode.factory'); -$factory->createQrCode(); -``` - -Add the following section to your routing to be able to handle QR code URLs. -This step can be skipped when you only use data URIs to display your images. - -``` yml -EndroidQrCodeBundle: - resource: "@EndroidQrCodeBundle/Controller/" - type: annotation - prefix: /qrcode -``` - -After installation and configuration, QR codes can be generated by appending -the QR code text to the url as mounted, followed by .png, .jpg or .gif. - -## Twig extension - -The bundle also provides a Twig extension for quickly generating QR code urls. -Optional parameters are extension, size, padding and errorCorrectionLevel. When -a parameter is omitted, the value in the bundle configuration is used. - -``` twig - - - -``` - -You can also use the data URI helper to embed the QR code within your HTML -instead of requiring a separate HTTP request to load your image. - -``` twig - -``` - -## Versioning - -Version numbers follow the MAJOR.MINOR.PATCH scheme. Backwards compatibility -breaking changes will be kept to a minimum but be aware that these can occur. -Lock your dependencies for production and test your code when upgrading. - -## License - -This bundle is under the MIT license. For the full copyright and license -information please view the LICENSE file that was distributed with this source code. diff --git a/vendor/endroid/qr-code/assets/data/qrv10_0.dat b/vendor/endroid/qr-code/assets/data/qrv10_0.dat deleted file mode 100755 index 8c073a815f3791424e4dff344e58ba6c3fe80fad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8340 zcmd5>Jx?NQ6kb3Aev2dOiU^8`sE8;EEycYdbaaG@5JF`PA%@BrFrlC@0TK!de-S@{ z(t^^0!qPj3GtVyb&g&w(y18=_W|(2$bDocL-nrg*EG~_!OMOHy^l={1NBE3GJB3d} z@;Et`$5GH2hXG?8_~o(hlgHk!JiH!b?6{4w?b65AcMk2ewYeb=IjixQp4F>MJ*&|R zJ*(%DKjGEL=uyzfDBqE@df=C{y6=;*YGl;w5gFC9$=|>!ou}nho6Teu68;Lhen4uT|a|Y*$j|zO835+S0kf* z2fY6Jyrzh;>X66EvOJa+<*_g?i@8}b>^6N^XY^q)kB8|SLc}HFz;`*CRfinS%JN6i zh&b?FkH&5rMjTN#YLxceSKqNb2At`Iyyc+ zISGePPeY-Tll66{b8SsgmX}vn9FEo1!$bbX=;874(Z&YT6E3%W?Vt}nisvi+H_g0&4=~rj7y1)^)5eL9 zr$jsszoAb}CZ1F@W5|g#GieRX51Mh*lVU%Jy3!jiS>Cjf zUCcG`h5m%!wDBL{T`3yH{6(Kyt#AsMV#U~{e*Yvrcvt)Wop-fR=)L*PQ)O|Hr^@aw zPnGxkhj#_1lT{4{#eNihrQa`RXL(m}yTx@T@qmBFyGca-?;rWx#2H8UTEq|MMDHpo051Ecq$vyUp z{Mqc}YW;Sz`<&;`WFmW4dwnQ$Ukd5L=(5@A6?2bDrSxPeChNodOy~KgTJKjV2j!$3 zl(X68jMuH#)F>C_Yz*3zvsY|(`ju+^`6kmD-Y4spqPkj&GglkKawcs_B@;@v)apG9 z+P96jd?Ec(zD>NQu3KD1p^Lm?J%pJuqaLb;GLJAf3SAlQ(o?@em?@_QKdENo%w5h5 z{NPdKm#`65@Y~do0Uz)%s%ispRBA_;Q{z#2q+H+^d7vZsMPBF%e!(O7)!1!|x)Q(R zx`JOqOZmBqLYg$C8k!x}l|D&H(vWg$a#q3PPkuS`B%gv`(u&pwKE{(wKtIhc1FSy{ z9&#%Cgndf*kVoVfJc|5^J|*{3hfMM*`Ud&ATdrGTe^Q^cyNPTjol?*FWTQ+M%`SWd zep%P&n@K*E_JgV!d^&1=)uGxPC}aH(;}LucdylEB2@8Q=SH|5AYHArCCRw66XMTgij6qpv^U&Zn;{j)o!R`ZIDneMiZ`k zQ?EP~>mS7f9%-KbY7U?eC;1foin^j6@Cbe}-;p14KaUIl;^?(cYLl;)-HX-W5b9Pvsq>Jbm=z@As2Yi~&V4N3F;ufL6@wO&OjIV4Y~lAxQ?g`^YfOU zq{|OnU7jH57vK{6nBK7HJx%13>!H5o_e0jD-6wV0{Z@(l<$b@|`5682=1Tp0r20R^ Q)jtVnckNsMsK>wm0V>h{M*si- diff --git a/vendor/endroid/qr-code/assets/data/qrv10_1.dat b/vendor/endroid/qr-code/assets/data/qrv10_1.dat deleted file mode 100755 index 9a3cf4db8c1195f0d900e8cabf770dff201ee131..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8339 zcmds+yH6r*6vhQ4A_^#jh;mcB;RTSZv~+}yX4hC5LZ~)|5JP2*m{3q`0wfd^{zd)? zmKK&46qbH-I6RIsyffdfuF1FGoPy<@i_iO<-#KS=^Cx*>x7sHp0dc3aTUE7svVCsylO;;m<(PuqC-puuNu*z zCWF6;=?M4%#2XnCO!Vl`;{xk?bm(z`bv-(q4vx?AA!38pz=zU8V&mg?`7mOG>=C z#0H(yeADJbv-p&9rRtT#5${1!r#tG{heIwGu3TJnIGj#;W-u5E z(KBPQc$_q3GU+sF*xugSA`KpoBw4MqvlfflOj`bi`&_Q2rR8O}dwY9lXLomRPtUJ+ z{`v#KP!8NJ=P&q(n}6JQh1T3WwL$h$XvyUOw#h)m5KwZ7m$;Y|B^C zMTdt6^1zmdvd_1$Kv&vq@Q-&FiSX`H@n<%&xdx?25_sx7??#6OmuUJNz9d zITG1Q94AxhOg5`r9|{G7fdJ~tWHOsAmf2ain}33Q%N8-1N~P18FT4*K-`J3gTvoKS z#EPf}NXh0VD@i6+xx$t{Vyk;gMPH)AqeX07m# zcelICyUXR6y2C?u#qUSAVOOkw#eJeW(fS46;qN%fa-(6_@_AhE_pht!%4(gPv)Sh7 zyP^(EzxqD(t8uZ*Neu*88O;o;c$yich`VJpiv065+TKQ;qrSC$buum@=##ul z^qci{-sQmoF-5(Y>D$|5cep>-f)2kP)Ut{jAb2j)pPPRP4dD>?(xL&C* zp0qsm9S)xQ!5~llSnR9sL*M$dd@6Gk{Q&&~?w4j=mGElcUNJZju@?r-b8 ztJc$5wftJS>^${<^j=Drh37_f_;Pz+>kdZO#rEkyYM%eRuRSzx+K(5fgJMBCtM~42 zANt+lW2IOq_4=JkwfuB;)q1(D4jVsuPyNfzYvpwCcyZHyXx8s6wPJg8-5uQ5&VNcx zkp|KRWg;!4k+fK9^*iWbRo%hcYG>3qEn7PIv|9^!y^P zZpPY5t^QCpjAh+SD`KVW-s8ozbF5UIJteE0)7OeRi%NEz%}=tD&b{gP=0v*4oBD9fO9htrB!DQZfoC^*MTxvJkg$BrV8T;1=T zV@DNzaBkx0q^8g>v`h?N#~ zog<|p=h)H9f}#aI4eTn@K+u7Q>>Pa5`w7aPktrq-eF=F%ogxd^DVhiNt>?S(E{h-C z<=fl?$IxkG#hE=`Sad+Odv`;Ta&~f|J zsWx8Ams+2u^Z0A;3&ChO=wusdb>g^vAz4)&>c1s(7S`GZeNzgG95f16Kuf5CfT sug)1Fclr;#x>`p~(&~UuHa^CG{K?6`!^;1WEdObBvTAdG`}Y0&KVBpLKL7v# diff --git a/vendor/endroid/qr-code/assets/data/qrv10_2.dat b/vendor/endroid/qr-code/assets/data/qrv10_2.dat deleted file mode 100755 index 4a57e8afa3fa6739d0c36c7a3cb806f2c8c1ce86..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8343 zcmcIpJx?lI6ct7SS4BZo@BY^r{Z+(oXKmF;c-p$^nsm)@jq9pw{)@V( zhqD^55!Pwyf?u4WF7Oh+M6kZDx+YzJ7cc7J{8wG2;Qy%$ZRreOp&ri0b&ur(JWq>P zT~mGi-TJ7D^H=rNo>tfV?0PT6V>hTBI|1$3_Vd`) zx9rxUb1eZKaN(>)H}}U3pBmdw@yQrJ#W&FoxN!a&AJ8p2feYu~#0Tx@40kH9NI`LI ztizoXWPAl&I2+-cAmc0G!uhxGsj+>Ak8uK>&-*=m6L)?OAKdA%8};8;{#5s#8NLZJ zzM2-_1Q}mVi*JJLZ)}t>$QL7gYHV~3eDEdCA~|Jaeh=Too!`SZaVPNUbq@j26uJ>f$jPEg$1W`aWNW=#g30pP7V(C_xJWfA)9S>R+6k%n#1qk z-ln;e$@6oXdu7Gr!FzP?>@1O>d&|piH$58&?CiwjCnv|pvDn<)A92jh@$B)q2sB|8 zpKoc&<#M~1m&M1|X(DlUwyP}2Vwn+##X@rggS)#lxA-`V)7&oCk~sK1x(u)bI>7(vBgM{P+=o7lYJHu%Bb8#b zKA+9TNZ8efhd+H!?@RodUF3F~@u2Sm=#4&;`_*Q5C~XtPeY>5Li__2V=TuB4(f`~% zPA6p`WztXI)B9gUshlM2*40&`yoA5>ISW65C-k`z%W>SdT3K06*|5X+{(x`v{e^u--Inq`z?H{=8eAV zl+UXW?t{O7)n7*a3|+xH{;bbsPa%_jDRl>Q*2XR|Y^<#SS&pUUS@pPnrb#`pP0ev*Dxd(Zct0{v`u(%D|W-gz%opQK8r zJ-S1ES~JZ-)!$3?4$X1fdM#kxs9$U`0^me_dbXTi34pE#pA zn5}x6<{<8X6ZJD`MgW|s51y+}{3O;#kZ)b6TE(Q_nNjC+O{z z1la4|tA=Ob1kb>U`X4xDm4^-B(BnjX;Q-lB%=3qz-t;^JC+Y(y>Vs#RjT{9W;2Ai< zGoFW^1jS=v(%16frrmg|w81lQqCRkS4l88R997@8Ppdn;F15IfXohLHGW-RV;WOn~mp(YQ>X%ZC&@rgF3%m z9vvj6TU>wa_U_7z%!@isHWJX3Eh}4 z(JQiU#RupHoX9cY#C+_xQH^!0_9lGsN}(Hk0pGHEx%^YHA+_^2qx;uRx%Qr`LpR_= zo&qP{N1pR8LjL63puK}U-l^rXEwLwoZ`zA!F02E(0Vi|=&JTYo^TD6s3pl|Sa3YUL zz5cLQ)%z2=0Vi|=PP|X+piG26kx$rn%=!en0Vi~0oX=v%W#zg9PNwPnIjX^5St*^V zjlSnk&Hkk9hx+`3KcO4=hHl^+x@FSZefC2)o z*Xss$f2vdNI<}(n5sUo?#J~PY diff --git a/vendor/endroid/qr-code/assets/data/qrv10_3.dat b/vendor/endroid/qr-code/assets/data/qrv10_3.dat deleted file mode 100755 index e2de0eca3e1aaf7d3bc282cf2a75bafbd6168596..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8343 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 diff --git a/vendor/endroid/qr-code/assets/data/qrv11_2.dat b/vendor/endroid/qr-code/assets/data/qrv11_2.dat deleted file mode 100755 index 0357a643102dfb2af812e901f8f2b857fab9526c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9738 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 PD%j3JVh;p`h>=@e?d5 zET^Eb^qzJ0S)9kfAT!Lp_k0u2H(cG{T5GSpzisA5E+eLO5jL;$Gg+r6vX1Z^9~~=y z)OC1ZUZH(`?d|F-xMN;{ZS&gNG_Q?y^YX9BGNX-Ln$cc_f5NK)ZG~4y8rs*9%Fc{7 zxMM~e*fyix+BBoxSnq_FIQees+Xk-@EB60Cya(z-H~dY!)E4h{exR;+Q(L?>+a41q z-@U|Z^nwwqaZlWx{7dW#ZuKEvzW)Tb(Zfc}*c-7L_ub-dRd>MN4Q^xY88Ku372H0r z&-+!}#LG8z=KEK;jXlGN8T)Q=19Pjjx?*0-OR^R{vOJ4;Jc|qS#^wITH8*QsGcNO* zo-(h=3G*5sGq2GR^BNv9E~kTQa6p#5UzV*;mX#yfkr&@OKM>Wqkr&@)c5}04b~7$B zyXh%2yU7VNyYaDh?8uAn9`Q3U6OQD?cW?RW?2K8%p1klTH@ts4f2u2unfn|3^z7-( zWY>;gD{kP}jX$;0Q!T1Hvlskyck0Y!*DXKhjqg_cSbKQ0?!Zktim?1MetPxk%w*SF zeq?9sV}CJnGx9U{m2Um1cNd+R?EV%%otf-<%TMnvIy2e*SNtN8%gc+4aM+{RaA9G7 zes*?l?%OxF`{d;G^z7{X9G|(}-;~Ggo}XV>z_h1~N{24j^z_u!Q26L>gJ{vHZU?WJUleyboN?5iRy5)%Nue4Zj+Oun5gLY3yV;Qd?jl;%I|GzS~eVx zK3l(ipy&Dx4h{_1?fw1j@`fD18>6G57;*X=qadGVY9f%`ej{8cR|&*u50Si&X=9^ z?373Typ^AHoj?FJ0dC^NjbkH=<{$moseInqs!kI7fu zI5sA3+}&jzv44tsv$LY!$qDoBaEK!2bB~X${f#&n$Et(YPBw6N04Z^3<>D9CeSOkJ zy-iMNvi^HSW%9dPLv1l`1_2cOw|9*8- z`iS2}f8^fo9}D%{q!u;%n##YGi`9CX@qgs*qQLl}#KxYu9}92y*;l)I25|G7n-Zd5 zC$z9G1+uy|#zhRql_;?SVjyNcU97&9Q+dWC|7#7m>pt~T%M>fbP5z7zEfJr(5;t{) zrijgRMBST`7PgVB$O()~T^X0Uf;(bTSH`2R#4Xv%z7jWewZ^Be#7#e>@^S*tk*r-; zRTHRw$R*QM_q}#sjK2Kx!T99Q`24$7U-}{zm6I6X;0v|%sBgRY)R*|FuejNc z3R3G0@s0InkBbtFPaTL?s_(sQ)!FI~#+T~*Ot-2#^b2cz>P-C98QljOSaojtL+d;3 z^2k0!pHOGBPf~fthbG9Swf?N}sRwlie$+I5@?I7tn8&ZyAAQ1pL_K(pbkTa6^~iIS zR-_)0ddXDKpqbCwlU6Zm*Zhc+w{-c(0{zB%LC=KVKXRf7bzmOrX>lIo%dMffqAH3I zx5R%dQ;&50`LX;~%2s0E>xE+GE&U^Uef3d#u;!gUrSFMDZ34;_A$f1)h(o)*o`@r+ z-8jTSoye1Vktgpl@)W(232S`Gi;`pYR!qGxF6%39kH&J1YVkF7Z!aWo8&B`g*SXKc z9rH$>a+}uFyAMhehi1DBY6D&)4!P|<;^fJ^5eM@|Jk*OknYUsExAoV3!MLcyeCo>e zRKwRqvhsLed&y>8@%Q{q`J;OGvp)q1W(8CLzM>asW5a#1+Ri`H5tujfWZsB}dXXpd z)~zoXH<1));w$pj$)CKpF|(jT*hgi0!JH!<)aoDllX)Xg<}DT#=QD4@vwqw3XP3TU z+)`GY$-Mo_pWucW4K>UDjb4b0N2VRj8PW;K^Q-=pI{8dn^Valdm%b1`r1I6GIFor3 zo}~w?KjC9&f|(9j#Gem&_7$lP%zf?r*{Z)aa`aKt?^^$C=1rU9s2Ah2p4<6?eTDwC z=FQqa*;nXK)``|vYMuOP?Qg6%`sgmI-H_V7*36qWv3KhW-tVPs>%PMN>6GW>^z1x* Yq5PYI@;^)||3spF>hv5c&yn){19{|+O#lD@ diff --git a/vendor/endroid/qr-code/assets/data/qrv12_0.dat b/vendor/endroid/qr-code/assets/data/qrv12_0.dat deleted file mode 100755 index 636f201ce565c81250fc76249e01ee3ad330eb77..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11223 zcmeHNJ5Qop6cy0$@(uWYAu1p!DkvbR&=ER1LS+oGGR6>NWek#7P)q_O6cqD|_z9F2 zmKGM4-m|~`E%AIajAp!w-dxUv&++I!d#}CL+DB&+2MKBI@5w734Cm1P;7C6|oO zq7&#S*vyL8N8u9=D+B^Acz!2*6pa35d{kLMUf-HO@4*MU!V~TzXrmAZIDt2KepUWJ zS9q$l`D=Xv7d)TwdG=-g0Jz}!?eHNF5+)?O^USo?pF8>Te;ps@Q73eO($pm8*q?9$ zhv*3d`kl_cDu-y6L0@=^39k_7b%fej(MJ>G@)~o<%Wjj`=!m?AhvYRlAg_L_yewvU znT)*pdgW!%^V0S3Le_G&6XSBWV-7i6yG_n^bVSZ}cu3B6a6rzs-zsNoG5;=K&k6G$85te5+3fbs&8@9qFck9nR#&}VkH>25?;jW#9NgI89p#g5_lnWjqthFD z`&_Q2rRC+76^a#)$6^#~W@dU?uQwQad;7Y&Z#G*je*fCq`g$OMdUU!T@zUwkwB51T z?rt<1iA+yVO-)WtO!V~`jV6=XOtsJs)j~TC$Jp5T_{7Ba_RfyD7)JyIE6dAEOG87$ z!-QQZ#5>9-U9LrrVzId09*@_%y2_`7!+gs4c(?bpeMLP=-};OuHEmxwytA{t9SV() zkBvDTcDu#G-x-PU&cp=oOioTsO;69vM5DXAu~xZteSQhzGSspEM~LG#4a;A>G$(ae?RY#$C8&okKh5juiLGNR8S5)#QEe^ zq)B#jx0_Ef8oRxZzG~}%&xRw>-B^5Y558nH_VxAl8Vu|*v$Gx#??8{_vE(JtBY42> z>+>lh6_f)H`TV&#@+#6KySdB7r|9+F-bY`x^}uJ@O%n+*Y8IW&g$2EyCmXwr)5&b{ zdY6{?E1*lBhESj1PkeYeCl#>@>Vc2sS)@(!Zqg>7Hb0L!+UmIq^8(a%N_9I=-2(+bl0LYk(;E zJuTj}F8KZI=TW86svTY%Qpuxot(s2eGfzk7<+~cix;@P*u_!i2sWgh^hXTdCtDTph zj`A6fdQxp&h_5+L-5|apoy|NHisf7NfV*J7E8Pd%mBYJ2mnBEcJ#`QSZx1DwDc;DkP-4n@uD8MVz5p&}XhATQ8JLRYCvTVwpP( z-k=Wf1~`E?zzOky6Y>X6;0@|{Z+zg6z9Rm4Qiw{B=Wq1|Uq+vy-?lGvhrt`v0p0*7 z@CG;`9&kebzzMuT9q)~gzQUIg|5;z9>s&_obX#BS4_bY}Z=f&uGWrbts=nNOO<#OU z>jJz1PKd{@c2@&$fD?G5jz_^_nqH#Un)&$F_~n?^l@X&>8S}Ykb75o}~@R zRN;Z%Zz{*Fdhw$9~wC#>X6QR7%b3 z!<-Gc)>Buvl=snnGM{^_ULr1V%{N&2z!iC;{#25c4_uKqaIMs3|9WeD=pK9kuE<;F z!($q_vR?^}N_=S5fGfv+Is&e5^OM)&+j7u1^C2TH-i#~fUA+V!+PL!M!9C(vTzN7) z`<`<9`c-FIUB4C|Jj2}Sq%-gVxFW6~`5$#AesbX}Vh5e!=ZsD|)5ZtSzz0@aqXIqv vSMZ_xI%6i#JL!zo*5(6nMcyWUDZhl?7r*-y{~=ZU6NLI%)7Y-^ipBl`9`P{8 diff --git a/vendor/endroid/qr-code/assets/data/qrv12_1.dat b/vendor/endroid/qr-code/assets/data/qrv12_1.dat deleted file mode 100755 index c67964856d5b2ea0924b3ece2e4cf39289383f84..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11219 zcmeI2J5OR;6vs!9@bZla3L`H8#TSBz$V2D|9i5>vhFBS62xDc8kWf%e0wxv|^NIWj zmK2s#P*~1A>ns-goWnW$&YfHxGY+eevxgo2d+p!)uN9sAah@Bwta@b9>T#4(k0iVf zS+KVW@pX_;kNr45Vtf3E?($=2n;%=7{D^GuV?E4|P>>&M0e<*>>f!Zh$LePmlDFcb z+r^KSWqvpv{8+N{W6{Qsg?WC=&B}vMcm7zN?p#)#?o3*p?xPeVTYNWqRHvG)^6B1> z^XZQ5@#&84^6B2$=F`2k$)`KA!KZsY%%?jPqZnuk1 z_sTM#Zl{A!_mZ7Y_o9tY_rkoK?zvelzO}ff^BiN+jQ<+rz&_8%k!hKoul~7&GuGL=nQ4AZS@~fx z^TT9RhG9}Y^g6Ye_@oTd&euIN&DT9;e;-b&z_Xh%NYkPaK zSUkSJPy04EBaw}b_4TDCyM1xdX0uwSrlzN7W?U|}`}5~OAR5ITFv%Y#lLz95!{Ly_ zfjf-GPZK)*qyfIeZeLo0?+6A%A^46&;@|+ZWishBXxrM_+yrfIx61|Erlzb`oldWx zoHTss{bsYp;&3>f%gZY(TU*=PJ3G6(TK6+C@kw}1Owhd!(;XhBJDE-&9i>u-hjgzl z*UHNBveRj`S}bO>$z(7XjV6=XytIVh7z%~M>+2gE2M5Bh8xB*c_qHF{ffE5cKq{~U zCjxfhM8F)J1ek-90CR8>0o8*L{JbW|jMx4;c)TlX|_yg5S8Zf(|BZ-GrJtI!dQA?{Ghny1tI2I-PhT zUyaXv48SZEQ#04X{!b_b{; zso$@zVzzd6Fk87CR#7~TRTKzNpTKPEbRT`cmY--G7dS3r+`uluS0h~_FlxV9#kt8g-yHNatE)_@ZUzkw1@gxxP1 zC2n!5+1ir&s?<-F{c<>FMCf~|@6kPB*8G0VS}X>&0lgNhX?GX1?(tB+pnm(&_iOoz z+WqMDI-TTRJzk$bAVMmPo;a;$GPDn;Rkxe`Xkr2iTApn`q10f zE1UDkm*sxU=6CgZaC{DYt9wxPajG|}GwFOLo#QCaT791C{k7*@=F|NC%RVRfb1fe? z8sBD)q5AtbU!~6}>r|^g_2*aLp04j&{mYXF+x6+!$Mep^;I`PJ^-iyURxH>mSKY_v zU3*YFDeFt8ji>vU(na_AzTU3(zSru7m(p|Prt#9O_D&x9mv^nF>#J}2^J0rV)!NN& zrC8{nb$U}b|wFygS?fY)2Q0=`mZyL{)YWc@mz5RTD(S0e^3*T!zZJ-&| zbb4wUK|5&taaJvpK2(d^VV#tA9v;t6zuK;uV$eUh)t64ngBnviI>2z9l>ScrQr&b4 zG0B2PN;zd4P6HW++=6CBx~u9GNa)baG~R%Artt=fEv-!Bx^|}V1a(bP@CKCnCCX)7 z)4Gyt;+?oAQivPmdT=YHd~n-&Ag+g4G%4>|T+q5&&5<^!MJ=vrU5jg4=V#k?O#dZT<3kWKWb|!AiuGlYXejQlU5UlA(=Md(B3rEO0M(H(91d&y%|x(ZDEC za=~~97rf|>JBa)Sl)4%3XpG|yNSVePQ0iCuHJyklCWn;!IB{Jqqi*s^Qj6}_c_1$z za{bt?6lADtaY5_SUP9VLuBpRFddhgV^(Cr1(nnmAYDNSpCI`d{B`%acK5RoJ(n6ecT} znm~(|Mw+F@vwqQq=>Z9|$ z@;#7lx)1Vs)Lk1$Pcg3h+@{oh_PtQ8ymW6y_wdSdF6mbKd#}@cY@AkXkp0@A*OBM@ z+(!36`6k_T9${j9lQ~AMZb3H@gQqB;ASX;Wokyvg&SS!t_{W2s@Vh?YKQIb^${enm Kob~#bFaH1)jWEdo diff --git a/vendor/endroid/qr-code/assets/data/qrv12_2.dat b/vendor/endroid/qr-code/assets/data/qrv12_2.dat deleted file mode 100755 index 4544e9db159fb1f9e9bf08367f26321e5882eb54..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11226 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 diff --git a/vendor/endroid/qr-code/assets/data/qrv12_3.dat b/vendor/endroid/qr-code/assets/data/qrv12_3.dat deleted file mode 100755 index 9adba362e5f1f674a3712923a774950b985cde9e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11225 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%0DY+6h0NR$~$ewDq}XWQ$4GI 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 Jyx^Kp*Iz*h54!*W diff --git a/vendor/endroid/qr-code/assets/data/qrv13_3.dat b/vendor/endroid/qr-code/assets/data/qrv13_3.dat deleted file mode 100755 index 2f333926e8175e14f79188e93b9d3de314f3e6c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12811 zcmdU!IZq>96NLeT*jKY}!@lqP4h;kr85wef5F#2OgpeaN!bk)TM#7c|9Po?y2@VMy zPT+uW-Y!=^ukFk9;03;=uS8jHZgt%{=Tue0;lW|X+P8G=?dsau*0s5%Yhyigt*z=> zS=P0*n7J0_bJQCQlGar*OOO1 zc|;>((aBfENqku9;YWC<$CzuJiedv zw?|iZSLW*M(AD0SxmsIvHG6e6HD<1cdR=w3nX9H+S5;;DswkILR$5l-DbZD2q>D2U zJ#l06i=XIQTMCU|BiGn-ji1=XW}E+1E?AKJ2{e0t>nC0ROe~usabaud=eB)0= zp2?ql<0o)VVaA_|Jd^*~#Si-%>S6!a#h=ce-X7GOZ~UpqGxhsb@soFKZt<4;Adp9+ls-@54*e=2hQlw16$x2_ic ze_H%b?IdosWWT!${pK5gDsuf)Nc{9(v4!gpdW@cyS=0-~$)zDC1Z+F1H{{Df1jg9s7wYAmNs;bJ$ii+~` z(b2K7@$rd?g@yU~xw+Zd;^HFvDlV31&(AL`OiYZAkByCvim#oW?QQW@S65pr_ZAnI zmU?@8db+#2y3~sunEv{R*W29O($d;`aByf}2M4XKEiH1kuCDIxo}S)b@nyekY>Ka% zn(FGo!J#2J;mXSL^3u}cVp&;fsmD`NGC4UlCApY!4qj5?@syU9mC3W0mseIKJ3~W* zgW^lhCcflsa&L8YZH>IBm)TkQb(^5mv}(XePmYJ+e~ z)v~k%ALOq*B5_rBMTJ?PJ}XadyvDz1Su`WHR5+%pnVaLhPI+A^FE1)C@sz%+Q=gSD zH-6(^YO*L*yT;gEK#iVAmNroAg!Dj`Sw!mD*+2*R}h$wyL^%dbC?^ZJ{S+%kVI~E-%*(r>CBt2A|?$ z?Qq&%mzPzwLqpm%YHPJ?Y;V&iv>LXwXf@p0qTcWv_K{ER{wpiePim8P=cXoA zUw?n9KIo(%vxoF}_^zifD$*%sejeP)%9K&$MOEF`r(LD7QM-y|(MPmec66kkr~QfN zun%48bg-~MA7#GKDW|UPKa=OfL;4JOlW%wpp5O!Tbjq5Uq0c7gG`qIx6jW99)p^z_ zb8nA61m5HuzJn+D(65~FbAmqXj9qK?G->}`%;Wi7KEKbio36+=Iz>0&gT9^dbc8}@8n%T`VW2F8QbOxs~g$p8J?T<%Y09vKA}hEb^4O_ z`Qc$_teeWWZseM0cy8j&9L#$R^$9)FAL&g-qNnYv=)o&FvrGlI_9m6h~yuit0Ao;^mfx52po{P_3T)pIOx_we}S zvrdjZN2fvmZSd{>Jo@YE*>mB0Nc_Nhj!upf*LNY=a}$b35*E64WePg{HeGkVUpI$Cbe|iIAyz?Vxm*2t4GtQ%L_xRV---RMK zp|fLu@c!iK_44i^7Lc6FnXs})a_h{E8Hn=2a^7Bk93HCaK?f+`?02usR!Wk5$;a8je{4~#LLtp{=pk-?*FJRfJ^$h zg@foM@k39p-Pi7~$*y=~!3*rmy?Q|Z=TYr&?APw)^;36EKkUcihy7|3*OK?(so(qL z`|@jim}S{jeX4ANF(pZgPoLnZ3;=%8cx9ANxFc%0{<;m0+aMY>k zCPe+PC#R$`WHyl*fchc5U$jY|)b5wKW{n|m)af(q=ltQTBah{~PCVTOUVdI( zc+Y-W=l-|wE&S2xA@1k-!sAHr=-7=vI==|6nf&qDGoega;7|VG4c481s$BMS{^;ZV zOE&xw&PW8#*yX(n`>m)wN13?m)EbMp;ST=fkNs+2F5LL{S^ROv?wHoq-)AQ7k5T0f z_?x(cKlyvNKRE?>F3kO=AI|?Ve^mMK#~I5Lh1CtO-{cRx!J7Ot>zAJ2XGI@Hz2Pgj z`jdP)u#39#=k5Xi^pz1w7ajQSfdFbBZ&o%V|>yCS7-GDb(bAPt=i+Mq-|Hu5HZiMc`NeI9_*SZ03 ze3o_){J@)R>sL1Xk=&d7aqn9?xqnnQ;7y_RE1f^mx0FBOTl!apUfVmnd)B`Ff8m3D R%l?<4^KC`@lygnn*FPYO54`{Y diff --git a/vendor/endroid/qr-code/assets/data/qrv14_0.dat b/vendor/endroid/qr-code/assets/data/qrv14_0.dat deleted file mode 100755 index 956dae425abae9d99944094474391a06c6c2a444..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13993 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 MZf)l-y&Qi10|^wA8UO$Q diff --git a/vendor/endroid/qr-code/assets/data/qrv14_1.dat b/vendor/endroid/qr-code/assets/data/qrv14_1.dat deleted file mode 100755 index 5dd0e3ed954fd3c3aedb4724a57eab49f48bda19..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13988 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 diff --git a/vendor/endroid/qr-code/assets/data/qrv14_3.dat b/vendor/endroid/qr-code/assets/data/qrv14_3.dat deleted file mode 100755 index cdd2b21fbf1490a88e6e03c46e10a5778e2d7fb0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14000 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 A761SM diff --git a/vendor/endroid/qr-code/assets/data/qrv15_0.dat b/vendor/endroid/qr-code/assets/data/qrv15_0.dat deleted file mode 100755 index fcbb6447e04516fdc394ee22796a447ebeb2d060..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15770 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 P75m-%TK(5q3-tOQPZYAs diff --git a/vendor/endroid/qr-code/assets/data/qrv15_1.dat b/vendor/endroid/qr-code/assets/data/qrv15_1.dat deleted file mode 100755 index 59f7ed18a3a61a10a5f94b4de6ed08f063d8d33d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15766 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 A$^ZZW diff --git a/vendor/endroid/qr-code/assets/data/qrv15_3.dat b/vendor/endroid/qr-code/assets/data/qrv15_3.dat deleted file mode 100755 index 4e9aa0ec0851e8a740b016c2093dc335d9c642ad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15772 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 diff --git a/vendor/endroid/qr-code/assets/data/qrv16_1.dat b/vendor/endroid/qr-code/assets/data/qrv16_1.dat deleted file mode 100755 index ab1be3b03c1f7ec0c034fc3caebabc5b485e1132..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17638 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 QVP@avH+1oTg_!X9A1GH7UjP6A diff --git a/vendor/endroid/qr-code/assets/data/qrv16_3.dat b/vendor/endroid/qr-code/assets/data/qrv16_3.dat deleted file mode 100755 index a91c7f71aab8c241c1468280073462394bf0eac4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17649 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 diff --git a/vendor/endroid/qr-code/assets/data/qrv17_0.dat b/vendor/endroid/qr-code/assets/data/qrv17_0.dat deleted file mode 100755 index 48fd2764d17c80c4e01b1feb1b9cd4eb90a75a00..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19611 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 rR_k7fdl#5LSi&3AvZWNq~d} zi}Q>42`*W%bisn9x2n1xhpFlJMb44r%DvNunr`NW>Zj|eda7~e(@g02nDme7sr2#T zy??x$bVJQM%qJ55@irbl#>V~Q^_%b!d*vT5N5jX+3;!4z4j+Th{iA=tKYIJTqo=3a z4KdyB#VcLU{Nrh7_~>Z&k0+1AN82O+Xl)4}51akt!Ts=YugO0e8~mfb&Od7Jy5UT% zd(q@hjek^ChmVR%|A>~Sk04h0*_2vMXVvtSpH&~;gGaxBR{@N2JPTn}0HYkwLRb~R zD95u9Rs}H1@yySv{sGIX6rF@iJ>9wx#wli67_0n@a;ssi@-xbb4vNe@Ax(OZbDuG zRcj&#ozPu%d)G!PDn+J0;y2H{M9P88pJPuwMwm~7?u9+ zs`w?`a-0&1DbFVTYB06>zs4_Hw=f5v{?D&;##w%4GRv)iPuG=S;M33QLSk5G$Cav7 z8Sg?nu2iMUco*7nr7Bg%yU>m+RjD%Gc{?uf$=bieub|q+>tXdPsCMysSp5pBUA!Jv zzk+HPucxyqeP+4E^IyuZke(}5sXXsY&vm|n{qy?eQ-;5^?-Jf+uu8kJAYF*{3|473 z7NiTYp1~^Z#)5Pq)-zb8-I!Mw65}kdFuyFn!nhU2uP|7uE zj`y6gKXY!_XU6`_xnZ9{=Z5v5{RN#H)`RvJbZ%I;`@?>W&4^Cy$6D+o$o{wOFXP;F zr*>bM2klGNLvjnw$!kM$3(m=FJ-Nl4+fVZj`y)Fu^Xb#akICfl@X*ln=YxX}9^Aiw z?_N_=QBh&x&6@=Ub#?Xi4GoQry}f;X{rv+2@85s;Ff}zj{qp6D7b7FX!~EIW+M1f8 zqT=FPw{G8l^r)@v@#7~?#>d~jjmIY@-n@SO>QyW@`sh(>YfH<+hqrItDlVoU9xX4g zsHm*0qK~$>cXV{Ve)DE*j2`;%{{19fcP09Id+E;(-Cgx{b#x6;Ta%lU6NzMJQ_A?g zpPPus-@Y9mAA9onaa$XK0zAs1ZfBiOpFVrm)zzK+`0>-HnVA{Jm`_Fyg%odoUakP4 zAFpJr8Nk;H;0Fb;PXVk~0CN?<-~G7>1@MUicv}H1Qvf>^z@!2wK}rC+sBUa1Pym6q z1S*#SP;m2RVPR2GQ`5bB_wPS= zFgW=9`OwhtF#L5a?C!pEr@FeTsN|I8YHATjLPB~dp}=)Ld-n8cXJVBpCul@Su!QS><-t ztw3wKn;sk-=8|7CLSSSm5c=^N#F5Kl33@pIyA(ivhEM3aJU6BQx-8w??6Q9( zLMd7R>{b9#FQ`-qfb|MswgLgXI}|`I0~CM`z-|RlKqmk%`yBWvMS^~$6bU*LDH3!h zt_qcuG&etd*wWJ4Ix_O&#mkqYqwpK&S5Z-39*vfjX*sEqq)U60q)S1f<#3>hF3ow5 zc{j4MBRRQwbSW++vAd^7O5(f8Nhyir3SdWjyQHQ{{RP>PNKQ`f@BdtE)MXr%2eml2 zn%Y`PWy1?BR*r5PcDuCDJIg&sE zAoLYU8Ob=5ss+Gd1(5&P&H$41kxZjypdw3wppOfHT?!zT0|AgV1q0Zr08;6Y2)yib z;HAoxF)0>wCOAh|jmpcR^J1}AQabs}IYZ+7N=r*hxHfA!s&!RvWQ4UQ?@^L3?Ge8( zFF#*OBS}q(Cz6_yu}Nx5X=Dw_0J3J{9ABot;JQ4gGH(!g$hi?BBoQQ)jVjR4KR9QX z#Y#)_6bRPp3?OTD29UKn11KV#02I+l0G26$*X23rWLM3rt4Y#O#wjRZjl}?tDu7zX z$4LT7rqMD`nyWxavqJz%vqJz%vqJ#7E@t$lQ|+xSR5~OAFZ&#Lsd6O-9gB06ridyo z^qw?DB;urLAcEukq=_PtBV?gHx+)ioN%Ey2QJL3)-$#;DN+aTlB&TF-?lD*sK_@>{ zLFu}*!kgFSxj{{+z(YhhAwm*CQkm;M-^QVXaLz7^6&JH+X8;jTtl1er=mpme4-Gw3 z0JY66ye`iTDuCRRaA9#>OmQ)5ECx{9_qWhN+TONm87Kzc()17^rRgC6U6(uaNv{)z z=!!rh5Pk7wp93#du8cs>;vA(pq7v%#UQf@&1b0-ElX^`tit{U=7w-`|(p9;!F%VH@ zUK@VjZEe&LPb4`dV{^IVR*>~Fw}NzCBCQ}@tx&g?mwOGKlhV&UB_~wiL03V72<~_2 zDo9#a=pdXk?wR!CWr!!%>Vy15Fw@MApqrak0MYm_Xt3DkJQ+J`-00p2VVZ&=dbEH z^q1N`v?1@f+mPBORnJL& zA&rH8Rj)0}`EH-@B608SZXY|^?dO~dd;A1_&SmR9^3s(&N0&{wH$}hT{t8i5&3E;D zHKx~RF?ajZ_Q-xtF6jvg=uArI-xn5>Cv#smgKT{Jbba^WXvy07%}8Q4dAf46wYWMdz0Hj)Xw_Kh90R^83;5B^&J zFu%x8f^1`lK%0xlj@eg*aYH~O4+S&=l6|H3#{$+tbdCPa|G9LqzI3oHIL6fxYrm-@ z)+(&~e3lHLwc-o`XsyDU$N)}(l*1*Dti^d-|1h`yVSbUH9CHj{Q~^XBx~TiI>7wpr zUk;l9bkTMYomBt{LjiC>9kKRM9m%ljn2>=0wAP*G{ygm2)}s3n#=77={v2c_IEYc$ z=UKur3j1M>@p}mZ3XZh+I9l4>IbE4eMiTSZ?yv3$#jT~)k6QpGXc1zz*)Pe09q?>5`dJ^T?877{0RGlUtA>UVJQ~pEQRvg@?Vi9 zYc=ie;T*7EEelCkyCdzW025^60) zsYI@|M02M8qI{*~W-Z}QY(F@)HZdGViGJw`zm7l1i z>2dgd0r^~#Dfvt#UKqt%iMh^NiJjz}&HyTm$JUC7BLJ;cI>hySPpy?aNdUrvXa7VG z@_Ast*cb8$OecUdJyv<|FCZT!`%91=g@_~U&Qn| zJ*YC^%+`BJ0^}TYRgi_gvexQAJGXie^B_Hlb*l$45AqM|)<4XxUv>_?1U+~@pYwa@ zDCiMa#g3L-7F~}YssmOJVxFM~)v;}L#OguJQLkXZv&-s3SC6A}z#scPuM2sPm(_(N zcf7g~GRNw{b8|^$Ru^J!_29X=%V-E>W1#~*_8<8vO)7LDC8!^|Py@qthsp0+R@YtE zy0q-NR?>$7x{%ky95ZqzP3ACw&?DAbJ$Qc309sv$`BnMpx_s!u=p6Dn>MC>;^oX|o zOX#Dm9!#4PfL0e`o(33;y7Pb%fXJ7y;F;Bhm|I1OEVfXs?cC}?%&i`@bHuH+Ru9@a{Ib^iW#{nATK0qAm&yN z+PT$(n4?Zv3!Y&e=WK0;ur@%#KWnXjb`Jlng;k{vUHbah z{90t&+V9EL#L4C#`>+tOxRAx+FSuU<-q5emi}Q1CXSByeBo<$p z{d{_`v3B&QwP%N`3*TakbFk>&PzS9AKdrs0J|B4l`eAR=?MzOOc6NHWyLCis%S+LN z`1tttf<;+;o&s5uOTw)#+pI6mqor_P&ml~Ie_=?+^#^;4``6E6xG1$1o zJR>eufM1o)mH4EcAuc%_=R3 xb4wzeW0B9yWfxCeYMk1*#GKAC-@V>{n3_(0r2hi-=_CKAL|x6l`>%iV>p$M~r4;}G diff --git a/vendor/endroid/qr-code/assets/data/qrv17_2.dat b/vendor/endroid/qr-code/assets/data/qrv17_2.dat deleted file mode 100755 index 0c3b80f0af62221869b77c5ccd3b3e7d5ddea76d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19619 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 Q^oJn(PqVA|Z#K^FKgF!26#xJL diff --git a/vendor/endroid/qr-code/assets/data/qrv17_3.dat b/vendor/endroid/qr-code/assets/data/qrv17_3.dat deleted file mode 100755 index c386c177edb718ff02607cc8b228a3d90130a89e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19616 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�GZ*9e zadC^E;D_roL?jF48|Q!%{fhBz9y{>UpY%<&%@5UUC#c7$W1@V^#jO=0(dWYto$+h0 zfWB?Zw{84QpYOf%eF;18Q&iuy4${$}jR#k^@NH(zDFS>WZt)X1Zs8liM07gJH_ibk z&H*R-O0Nc~GVh!ernAPkIk!uLQz+kvnyAK)`6pZ@?Ix=H2$ diff --git a/vendor/endroid/qr-code/assets/data/qrv18_1.dat b/vendor/endroid/qr-code/assets/data/qrv18_1.dat deleted file mode 100755 index 8272c4186a5750007bfe5e286b112aded329b808..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21670 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 diff --git a/vendor/endroid/qr-code/assets/data/qrv18_2.dat b/vendor/endroid/qr-code/assets/data/qrv18_2.dat deleted file mode 100755 index 0074b18b98673f3958324712875b962ddc2c5287..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21685 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 diff --git a/vendor/endroid/qr-code/assets/data/qrv18_3.dat b/vendor/endroid/qr-code/assets/data/qrv18_3.dat deleted file mode 100755 index b8eaec68e9364dac3b91f0bc45095fc6e28b0305..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21682 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 WP0+uZo1EbPDbIeIU)Ah>wfqM>2TAAv diff --git a/vendor/endroid/qr-code/assets/data/qrv19_0.dat b/vendor/endroid/qr-code/assets/data/qrv19_0.dat deleted file mode 100755 index 28f6107e5877fb1e8a36b3658bed505c24f2c840..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23838 zcmeI4%TH9>62_0T1`&J!3M#(eqJoNV1Z`AkTNK)7+d3eGFfzsv!pImQalpU?NEk5i zFXB&N$iSfk2M)beYt^sqz0cX~-OzaNF_$%1oQG?#`s%B%9_!ru`qk^eD!lY7|01}a zKlAH}{5+MFdmLN?gTeLikzWt`gX?~_xH5eu>t1hg-MQ;mx+l19-43pi*3-dt>SS=8IPO;v-Pf<;@KtPM@HJ#t z#+D`~_F`b;Q?{A*c`N0(%mC;jZpMbvWOSI+S8t4!*~Z`W46H zAj;35{RW&(fmhaH^p_nK24D6#oJ%qOLva3;>EyR4y+DWAgV`?KL$(87_CE<{&t2oQ@mB87`H{`j<=ii8Pph8A3*u%P^)v=XuZZE~T zw1$h~b1BAu2+n~{1YKrFpV4J@@MRC+gR6&Vh~(U1mq0qxz9Q0cW&X zcj`KHnLVt}|tGANuR-3_b7cX#aMr@G|uq*$l>5R zbkMH@`~7O!7hHSx`qjKUxOO!KSL05<>KlS<`;Oq+y3McJy5OqW5?s}r{o1(6ud0+^ ze{JyVUuBQkq89y6+he{_4+XtbTZeb>3wt^Cz%||f#O`N_3?IC&&?60UjC0b3~uoFM%0DC$1lx806`DKa!Es;GXxrex6 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 diff --git a/vendor/endroid/qr-code/assets/data/qrv19_2.dat b/vendor/endroid/qr-code/assets/data/qrv19_2.dat deleted file mode 100755 index 60f41f205b3ff0100e6e3667a4d5b5178f197902..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23849 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 diff --git a/vendor/endroid/qr-code/assets/data/qrv19_3.dat b/vendor/endroid/qr-code/assets/data/qrv19_3.dat deleted file mode 100755 index 7b98e51b5052d4512dc1b36af97794b252c5433f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23845 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 diff --git a/vendor/endroid/qr-code/assets/data/qrv1_0.dat b/vendor/endroid/qr-code/assets/data/qrv1_0.dat deleted file mode 100755 index b941d488a76e92f008fd2a39d30b80c18d1f756e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 656 zcmb`@y^4cC6b0buC{Fwvb*%Pn?8MGatVF~r1QD^4pn`=(Km`knJduxJXUJyhPAxV;DMZs8I^FRL~WEh&JC;&*3AP#E?f+PW;D4J#%2>+V@zTf*B z+qyQoRW~$F1`Nxb!?f)4piZ*M_RNPHl~Z%77bDW{q1P>W?^o@7(F@=Qw;@i8@ocp? zcCJC)=V>{ImI(|e8=9&cU0uWWl6&1fjI_l#)l(Cd57#p%JIS8?YdfCPVu*tq@b#i< zd*8X@*lJ(f`SR?4_sbj`o0dDC=QfS|b$pUfr58Tn7C}UktgQFPiYy`Vr-kg-H_y|8 AkN^Mx diff --git a/vendor/endroid/qr-code/assets/data/qrv1_1.dat b/vendor/endroid/qr-code/assets/data/qrv1_1.dat deleted file mode 100755 index 11df75712d8a765e5721e77700aab94c8456d3a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 656 zcmb`@y^4cC6b0buC>npp(XraMu@gHxu@Vuh5JbdEf(jNE0TnDP@dcRjlq(Owj1@(e5t1YbMNtrV zp5u;dIF9E9K@=gBB!pyHQ7~55{Lg=uWf+>KC;&*3AP#E?f+PW;D4J#%mi=q~`+o0l zZ0p+SR^8Az889q!4%4#FgF4A3+cO_-R8GyQUW`b)hhDejy?C{kukCnFiy;nfz}Jha z?S1EpW2=2_=gYJI-7j-&Y+CMkp4&9;*YQa{m0tK@w}?9PcPs=i2-_Om0 AjQ{`u diff --git a/vendor/endroid/qr-code/assets/data/qrv1_2.dat b/vendor/endroid/qr-code/assets/data/qrv1_2.dat deleted file mode 100755 index 851c3fa2b8b7d91e171ab0a98ed4ffd0f0be7aab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 656 zcmb`@y^4cC6b0buC>sA~#%kZjPVDT&N<^$e5D_a0Dp*(qRIsqf6Zr_17M3Y2EVBl8 zAp{pv?D?uW4BX3AvAPSveTuwK688!GXSm~MSY|_08$fP|!$wsxMhHShk!48|MM2lVQ8A703b<%IIJNEk_3RFXqsVI_OJQx`@O%h zt!txObwlH1z_83YOv^qG>LiUJyhPAxV;DMZs8I^FRL~WEh&JC;&*3AP#E?f+PW;D4J#%2>+V@zTf*B z+qyQoRW~$F1`Nxb!?f)4piZ*M_RNPHl~Z%77bDW{q1P>W?^o@7(F@=Qw;@i8@ocp? zcCJC)=V>{ImI(|e8=9&cU0uWWl6&1fjI_l#)l(Cd57#p%JIS8?YdfCPVu*tq@b#i< zd*8X@*lJ(f`SR?4_sbj`o0dDC=QfS|b$pUfr58Tn7C}UktgQFPiYy`Vr-j1TH_zFE AlK=n! diff --git a/vendor/endroid/qr-code/assets/data/qrv20_0.dat b/vendor/endroid/qr-code/assets/data/qrv20_0.dat deleted file mode 100755 index 12963c2b70a38388348ff0dcda594ed99ff80cac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26096 zcmeI5%THC=62@E5;1g6(5fvXO_hs_Ogdt6HbiJ>5OA@$PLHZ(fJd z^(sF)Uv|Efe{4K|5yrEQ_-KC`#*?=Ac=R}o2M^<;H5W!pHa?o~htYH|J~DU1xP2## zo44ZQ`VATKX}p#nSFhy9f@XgKO1 z8h_hydAN4-`INpL3lNvikn?!b8FC&^Iz!ImNoUA;_H>5)IZrA#5|h6oE>~>N=l1ce z^ZW%_hkV0K)*;_8lXb{9%w!$%4KrDXe8Zf~J5gH}gFVSR%*i~S&(ggj#$Eu%xT)Q{z(0iB;MgoW~%g`;5}BMlhnPU|?I!WeOg&whH ztU||*GJAy{uhW0EJ=K=0u_t+m8GE9Wn6W3ilNo!WJDIU3x|11u5|_+$J&NC+L}r+! zgQTC%WM2Pm&yd*{i_f?Q$rVd{VprzFbzvMj7{>ksVeG4ok3Deb3(E3LEJw?+o6O1_IS&mB>WW4li)Y! zYUQ}RXXGd6YV}c!t(~itv14rQT&;{9V{7MXW$YMRJ69`XFUHsSCwU&BYC95q4No(3 z9^#Cd^N@F#IS+Y4@qjCu^LQTh^LREbDNW|nq<_FoQXk+K=Cu8j z^vgo}AbB1W1sqD|V)4(4&l5R|`snw00wcf!%&X;tdH!)7x)^@I4RKej{^1VE_Kw z+I{=ZojZU2!i9?$A3VtAT3fT(ty{Nk+rGWBvb(!SKHc4WYHD`xuCCs7=ImK}^l5v0 zTicT-kGF5zwsmVoMR{85j~+g>S6ow4Qd+uU!^XDu_NPyuJ?m(wuRn4`6t!f|0|yTt zI>dV)I&|=$p0QBtZ{ECq-PQH#)!w~(%tV(iUA}zf%GIkaE%)y?H{ZKgRkdTs&Yin< zsjc6l;l?ckgC0 z*RNMs@7`TgvuBS#)={}VM4p)19<`vA6K&kEVg35DvUO>#i;L|Q%PT4jGH>6#v(O_R z8XArsJ$CH)ag7l@qr+%dq1HP(o;`ai;FJ(E6WzRd>(=etckVPcUb}Yn>Xj>d_wL(Q zTf2Y1Kh{=J9wJXnZI4>e%8AykU0YgOQnDtkb#bx1qEL=O#_8z|@o?hA$&;r}oj$EG zqGxm%RTgR;-Y}9AkQ&K}sWO?ncbl5--Mf7G(xr#Q{B&~IEwY{QHk3mPM$Dl)8oN>a|SkW^&oGJ>n4u3d(w;I`rshXSb z-*0KjX3w8Lckb-jGiMYl>eImTt=Y0a)|8a4T~{V1w?}W?yeVI!y51=4zjp1q^w!1I z_KHG52B8pzPoEMOnmd)yEePc09aftPwGNLsjW@uP9Vx5OO*3n7Gg!s>B}DNK1>us;p4!@QKrT zMpB|t`lCmWA3u50)^_~(v13P%HZ-7<0_$h)gzQ;fAttv+ofgigy)Le{SM+pq!evEn zec3uAa?Pbm@IjR{HLY`kFVs4GV&o^F4QjHg%H>*z$~9FQ=%w4YZYr!BLl)g$DJHi^ zofb}~y)Le{SM;=VMm4btrZrCFnp2hFRh{S=3%w4X82JfkgQ~2q4zjJYGpMtgnxLC9 znUL)-Uk=%H=dNcRLE$+q98Y`QM5Tx#>IBusDx6ftE0JqXRf50e1YhWN_(V04Cd!~L z_wIf5s;leu>o;$#*byZfvVC)N$oA*YhiqE2=VfQ7J?gYjpY}TS81;fgp+Tt3iClB4 z55xrp_lwExQLW+**VP?Ld!4$B zx*@31t5>`{D%YH<1dr}3^g4W^nn)9+*0frCQMY^9T^_RiqemgzA3yHpZ=ILz@4Wo2 zO?#dC?79o)phhoV@G@z;=2RtkbYG#@;S<$Fnkdojq3Z1D@bY_O$oB2+A=}s2dl}rI z<-3;pUIy2sxNfgVofcGZOE##{vuC_q+9@p%BY1RQq1WLP)kK;o(e0u7Y-`&fA62B* zoRK%P=8QBK&?jCFzX)BWT|3iSx8hNX9;?$zOG|QjVMxU(g>%LPthk{7C#N$rONGTt%ok)<3}Yy_ytE!^T z^S01c`jl4ON+Kqoq`i*b^L9D1@SL~Rq>h zecradW=$ALBGyC~!4d8EY9gxeMC9$57H^B3rEjObcuhp`Y1-@7q?YE0wU0%6SQA7@ z+?v_asH5*n|7MdX0&j;r@V3NB`exD-w?qJ+rM<3qE~-u8C2K+miCR-x8fEl9>7Pi; z)+$tQM?CSiz)|{ER@?{?hx?Mlb!o5b-G@Q~UJ7de&_QeN3Ms?O^e?1kY8O4;4tN&S z#^E~Y8yV0-x4oyk&KtI=u1iBd+C6oWA*b6lJ2cb*1Ws8^NFZIhf znvzW1izu~AIZ>MA_q5jS@POLqJ9ruvTfTmx9i0R&s$Sm zM4?@diJhod(^|Jn5NT|?4BhO!^c*~eTO;{Gs`th8j!A1}z4O!y2#AM2a_dvGW-GX8mZ;8SUT&uD3`v;EuP_uNqC@4>#=zV?55zkKMN`Sf{s zWL$oj_%_(tUYhHP{Ob4I`>C%pUq09tV*^u_UD?c+-pSd|)3TZT`q0GJ>G#7uALsff zXTJTF9WU)4`1E}N)hSICZk`%8b9zsz6Nzt=zW*Z7S8 z;nC02le1rXvtoLF)&9J=z_!4C<_y_v${m9Jf;VO=SGte-Qr|^wrydPn9UU0;cu@PP zL$MzYRr{$!u^$fgZF13=(t|B^pO_IOxbR^JrI85_qbZFYJv)(v`^5B7_YDyS*w4dY zk}$x2$uL;%K18)dqj@w$M=_-i#eM-@BNOl4q1eyiHRId#Dkj-O54O~OqDF|~ z8b5;T;Qfzt3*nkSp2T%PwOBQQYjByw^-}j4w`lx0*Xw|EdK%+A;1TAuZd(Z7@)8E9B))}e&5}uc3qB2(NqjGLAKnLi&kkmkrl&d2 zQgKOqt`^_y6OC!*3UH2JL)Q5|_52-J1tpd$8l#TIG+x{A}spAx#M%i z`|v*CoT%bFOT{N~x>}sG53!9M$>ZRIoCn_F%OpB=$icgm4CdM--c|Oi(1OUx@5|i>-XI@hN8(idsTy8uAf-TX!TS?m$TaLooTA^c zBXNp;U+q5VHr`_>lbf2J=vKT8KyR&K6duNAT_y zVW?=ZgB)i?`~1MWRk@i;Ycfc1U`OH$ykke=6uyHulXze5KJZ2o@ANws!#lj0#5=s1 z#QXoM-y!>0#S7kPR#?A7JcAvHucS^QPT@Q3n9T1h-6x56`W^#QArs~C{$XbLWB(+0 z$Bs$7W5;BEhd0slE8T~_hv8i;>wS;UzZ~z*8-NYoq?LwjRJ^NY!528ij>IW=$Bx7) zc*l;!=}PyZ|6%)y&`WqO8JYx;uh^V6@z1n@?r;+K;Qv);-cR}U#iwG6H!nj5 z0vq&nEfjCmQ-KY>eDG_8nPQ7KZifOJj7%@YZ}b}igjL;!j2Pl=a3U5b5#<_-HA8`3>A8`3?LnbszHAa^sD< z8@+-(;3fV(`4oQR9OP5@jdSomE8PdXOpS)j_MDx4(v<3aSr@M zym1cRXQlgKmoF0`^Kg!Z_>DS;crbCH0@zeV7dDZp$ a&D(eKZ9MrukH{Cle06BqtZNLaA& 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 diff --git a/vendor/endroid/qr-code/assets/data/qrv20_2.dat b/vendor/endroid/qr-code/assets/data/qrv20_2.dat deleted file mode 100755 index e6074eaa9589f52bd7995ff604a883076fe30e93..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26105 zcmeHQOHWj578ObY_?A)>QBY7sL`1|FDp)?CCvsCeH|cavpRe}bYp=ETJ|>->NXr?2r|0dMp41yX zuSfN~8q$*-)bnycPhY>D=P&g1CiL{g^*rm=^W>?X*ke6))J4bDqdeX# z3dncvJq5U56d3xu_ip~rdAwg7fUExnxL+KIm;dm(-}OJL8m~t~@V7W1KmQZ-{t&z- z4lJnu%HjRu0K@t}_kK?wXpR4y{EGw4)PH7izc}D*{qIlrcRuV45WhI^T={R@|B&w9 zdmh}EzXu)n^xVCp=k_fjT(Kk@w!*RQO! z?4PLL#rli&dBrDTvy@`vQ^@$Z^EkG=#Yeq|zAI#W%q-xQ-^W*5n-#whx466#C_bXl zZ1{zl)8$P!zS>$P(2U|E?)2i#U*ap;C+7!$8i8gKA1i~GF8mUo2}G#)NE`fg!HrL& z+gF76OddkjkCo3)_p*wQv@fXc|Bkz)_Z^EOj`1Zz@&-g;=LI(WlRliJhFB5(E6JKU?pASCsHrJy6%(i6bI|KML z7oTR!Liv_V^qpz*2X7XTU-t4QxHBL8qORI>p@8va;yW{{Unagf41YR%7wF&rOMLF! zUfB5RF60}Z|5SX~yZj5{6AI0jzI)Y=aGFj}OpK4edw23=W#y?;r%yk5^7wHqcK?2N zcTZ0|-rIZdz=87eva(WofOTBp`4_BW( z+tG3F-rc)*?j#b=pTBs~*H^l)s5r8}q?8^RrOz!R2M--OeE7(bql3xhz`)Cw{m~OA zS3d*kt*o^E=@xpOr&we;g3J?iS}tiO2i(xrxm%l6vaSDTx!U2AE%E-#}WFAvj? zyM6oCt@ietH~afvz8n}xCUX^^y|(RoYwL|0ZEZItS@h#28T8}Y+HTxvZM}YdaPZZu zp`qd7T*YUvZMoUre(Tol+jk^cR2)eLCBLQR+O_89t5-)xUcY|#ZhSn``nmDhYn$%e zy?gIoN5_2u0~JS#P04R+x^ktl@$%(~i8TF9Ok`R=H$Ho9!~F*j9zN{s>=G~#_@vmB z{Dy{0muhQkY8c~h$5L;C;?pladhNxF_4RdKj~>Nhj~_n~uoL*C*p&Qp=gyw3u0C^y zvCF*@6rX4z+xRLiARz^6QsxNmSt&Lp|M1~MhYk`sGWRgofnTzXufhTnQlKVfj^Lh^VpH5u65Aag5o9r(rVKNp{F{oMGDSU|5wN8h|jrN)>exMzENm645pk9KuFWE$@PzqtM9 z;?u348=tC6Y022zw@gP9%n{tPeSONvCNEJ{2O>1%mu%xJ*}p#$DK0KDIvST|rXQb7 zDkGb`oKkgYYXiSz8(+~r`YS3bCOQ&kurxPHQ&W+Khnbm2M@>enRV7+lz%ya%=*C$b ziR|BBQc|kwJ(#p~*D708RY~!w7$&E+suoR6;G3}Z+!OCl{y|l|zmKR{m_=FZeWJ-oyZBpT0x_3lhD=7{s%xii}a0RqRAAQoIE8b}cz=hfNLF7rulSoXbf!a&zmTJz~wH1oGyLar`Huzz?wu7~YwZN`@ zZ1hyE(@-K|?Hbi-VQ|pkdyqMsxsygAv9{_`+S}VKaU!N9ZXK4mdP|&@xf^|E<4-^O z(#C@k%wef9MIz5O>~+j$R@t?cVvg9XxN!*cja_># zC?9&&%dUNG*B-I;Q3AXSUJJ^HUiCu1f&X<{d-?>p(5=$ZW0<4hgT3@CXuV|Ury*R` zuA;)$RNdfZ@S2x?1+5qQ4g7EGyAI$&w{y`GnAhO5z4R++y=1vS!@jCrWu>kA9)p*` zYhL;lv|i{p@IUr>z=duBPo2hG2pk!ihTi9t&R-ih*#l6RtPSfwclJm59>jZEu> zegpqwZvkBBHnsXJ_abBVuQ@^eMyB4X7$7|hrn;_)vvvL==PUeFImdalEkj9!~P~tJ8j-*l$Vv3@CHEq#vc80 z`Oxhzw_du1dDK-`uNyDyVK86o_PhR~UHihW{oyyDUoIcI{pHq6mOr%Uwrd-(C*s{X zZ%%SmudYtr+^gFpVYPuA^Sf@@FE`q?1G%b~U3(vTj(rsG=y^i}zmaXdFb}BPyw*bY zUvw4w0sUHWwb`y6%2mDay#soVy%&EA;0+M`hO1vLAG-bJ)(i6h<}Bzc_7D11`Z0m)20CN^}Rljm|KGd%~ckbF}ytnWhethUxFLy5HZwkDq;%_MYO#^Hjr<<`sHV?bBs zV<$CX(Z{EdVcZP*jRZ@BsuwqEWY1M`A>RHY`-uVYW1Vt#?& zaP=!}z1+PMe~T$Ek3_I%gx~PvL%({tdne2b^6{3M1il6H3;ag5^>X)4^r=D?h1l!C zZ)969ckhIGK|T^wlfbuNeu3Y}wqEX@kUojXA`*L2_zhRT!q&^(6JlPFkI~d5@GY2M z;5S_Ta{18hFSlOqo{+!U@qo>HSYEKgZ@Bv9@}b*bZoS++A?5}BI$d`GzJ>Jt`{euN zcIrP1>Ce%*(eKmCYe}R+lbR6yNM60+w{}qQG0A_V|VdC3-lxB=9jiUj;==+HrG}*wkCa_mzS;0 zF2|R4KCMtN9PQ>>dVxZaSH_~L>D8}`^Yndu>>N| zLGzZ&JaYnr<}FuwW>j&(g61t3d1g#AjHlK=Efp%yimFJ0dxCRUs61O+E^<$B?h2J> z?cS})sg?B|#^|3s=Z80@SB3VHmglKL<(ajBx%tc7l0YlRcwPaYyZmhOvLPZw(8?8_ zh4h((m5!n=KbyQHP1feJ%=0XClT=euNxdn|fPQiH5cxKFo69ucs-A1Jq@SYKCa>>R zHRsaCPb)djdmMEl6&2-nb(=i}GljCn)U=y_McZy7Z2r}S%*|817-Q1Kl0e}+; zd-ld$6Zlkh<={&Ddi>MYlJ&)w3_J9LdDh{YWA0G*znv1ZM#<4O+M4`k14z*4b*e~z z);Vf(&G_~kaI|QN!|#wGgc5CSKOgk@`L)f}=|m*9GPU_7Jr`L*-Ztz9^GwBl^ExHYFQHFtY}y7+k!So487e8!Mk{g8=WWiD=c&$8y~VE!qaSzH z=jXnDM&5vnpm_7cC-en^kuQ7-nhA2Kb2=4Gj!tgn9iQwUxKlX~G)Av6J{k8}dljEE%bs|%KJmgQco}`VWPk$? zx%h-W2|g#2sZ8<7^Ba3Vw@+>TGK2RnuF|rEnmZ^T#w>C2JPqK&`otC!y%qL5u8!<|j`0a!6O<2SokEF&j%;}72=GbTKs z8`C}M=(;+!U-0R{hv18#eF~ra3qEDL8H>93^x{Kn>s7BjxIPDYv-R$}i%%~;1Yd;e z)4%Y!1bph&b$Q3drxzc(y5NUTKH(4j z@Rlt;gYscme1f+;@Hy?J3ohQm;!|D2ZUS?DP(BQcPwr|%?O`s3yI`Rq47yRtxW&kq{iO98>fHvNdJ#2^bhy!zb!j^_2<9l HAAkP^@XcUu diff --git a/vendor/endroid/qr-code/assets/data/qrv20_3.dat b/vendor/endroid/qr-code/assets/data/qrv20_3.dat deleted file mode 100755 index 60acb51ada57796086a48cc028c66b51700e300e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26100 zcmeHQOHY*B5*1p54^Xrf6%-T{->9gdqG0<18(*!W*gohG!^jvy2%{SVBn%js00{#I z{vv(?Lk0{TFmULt*TQD&X73ib>OH6TNj_-k{q3q+t7=t!n3Lt0${dxx$&cXi#my|iwo@>bgoUDsQ6 zU2D;G^@^^`&AOJKKG)-(U(Wu5US0CC(|0`&oj?EV{B`L3`Df>^3q3#1jqB@I?D_0V z*YC0ZU*q#%3;7@C##K-Mo6k?!G1#>5i*4}X2j|Ymy~qEC{FU*a=YK=~%J|R2k02ko z$GP**&NjICk3BzdkE@TrI6rWYtB=1pe+c)h^*_#y>tAyI7cOuAn)6fYI{J;&aZvAr458UJG*00#}=b!!WIKQS&m$$Iv zPxrs&|7+`bep5cn_0J0UG3B#d|M>8;()pV%HCLA=VD? z0N0Qm-~p~)JB-kOyB)rM0CB+ePmf2e9kA!(1znBjb)7rAd^McWb^4U9lP7c?Kc=hx z=<;=>PFL+=T{VYv9jw+>bwJntN?m*R>Dp7Vd?k15+PO>Dj&faP+jVU#UB0$#)m5@t z*Tzk{iW9p2A@(MUi#EtwUwdm0TUcx4Mc@3d;;zj8iQv>@)C~OP#A4k zW}Bn%Y*=PQN8#D9%!me_3$-`j));$3yp4@7c#CVuUho#zf1JHeo{Giu-x^;xFaL_Y z;4WW%^(YF@R*RU!zIp^4%hhTTW7=1bfMdB*En2O;`L?dcUgRlUL-vBVxQ6TnZ-1k` zQi|L>_5W%wO3|NWFSI0IT|J3>m5*m|m#?m#boslYy{07@)2^Nbe}QAUnwDftyLuA* z4dFT8));&9ZC#DM;4Q8pd%;^=|Fu^m{BL|!QKJ6l;~CuLE4o3Kzxj9uclnBL@aO!k zsd4iaa4c8r1sT)m23`IF$8xn^kTH#Juu%Ty+ZtnUzO5_Si*CVZFL;Y<$X@Uk*FVl) zOVIz?tB6Kias3_f1$X)C<8MBm!Ck(({6+5@72mvBj*q{#mz8BQPo6w|`s~@xo%&8sPmW$aJ=?Z!-Lhr#=8{K`AIq=Q9zJ~NP)$ws z*>mU4pKolua5I&&O($beNv)Na#UccT# zFMh{<{H$d2W_g25lV7RazklDpy?ZN~FJHcLKfXy^fCd_Pg%>;><*%_|4n50s;89 z-8MRD8$EmW^yw1{Vp-Yt?K>#=Z|no5rTUKj_%WF#Z;)y7D;0b8NJv|*UAun0wY9D3 z(xrI&k3N!RqQ7a*1rcY2!vZMR8H*{re9dJbd`5{^-#oN9yWoPn|w}=1fDw z*}He{+`fJ5)=hW+;vz+q!Ta^*l1;Kvr)^Yk8wvO*hyq#){&zm;JB&?^@mk?JmN!Mk zgeZzQL02GP<`g|Lg4EhZ0zL|&fR=)+wZe6XH=0c!KG>Dih+BF}b8cY*a&BP)R@g?8v?=*XGNzXDU)9g?&u`Qf|ejPq)oLL=e=r$NJIe@S1b1op?n>} zb!r& zh$3Q0n?e_nR1~FDV})+LbdJj#)}}1Y;4l5|__0$4C@H2?lu!?VD-rV)OcCkidDcfH z@2g2Niejp=f>)@HckvzDC$L84BM^iI3i2I6;j95miYhf6s0+ZChCZG`#&oQb%n;EHIc2$Z`v=5d zyNO4nGpUK9&FBxor4d2?N4)^veDQMYx!d0Xmu}vJ4%V)_v{Y5`ix<{*ms$F|i~Lh- z8)-Lkzf<}H64cVHlb{C98ttHM1}x}6Y4S1G#BvdfB!2a4b zSL`vrQQxhNw=e##UU2(I;M~ot(Am_wN+XKCa*H*hmR28XUOQ5E(l*j==k_i1PcjT3 zX92fY?V!*F(3vtsAYoHt!Up?mm%VEz`WkD?%iTE&>VT^++(6gFonlbQ+c1T_`Wn zpRUAvZgh2OQ&t9jx>mf5%z;9@M8E9gJ>~>7`jo~S zbHTOZWfbozUxTkYO>VueQ{uWKsFyLkO=f*x%FJpNbs>jIJ;Hyrnn=a`T`qXLE%MdSP z>v75k0nj5h7PuU$m$AGI)nn*1I@#qt=2XxlHl{eeUOL(3z34O|5kGU`7F?eq)gRTTPc7GCdFj*1F7Gkdf*!H4 z#_{#i$u95F7xS}CZq@avQ|)1WTGe(VmX|)A?D8ISuofG5==kGE-FoR{m-pzO`B^Bp z^!jwS`k+3wy>;8yzq-71=NUfU>lEa`0eh_4&NDu)nT7VRE-#UHLpt0ZA2;x`Q+7G} zV9aS^dFjqQe7x6b$-aH|7`7AlE3|)gd5OFm(&2b+jlLg!Fy=Y2ymaRyKHlq8W%q7- zZ2JiJE3|)gd5OFm(&2c{jlLg!Fy=n7yu>^`)F10#CzO|~Du4PE_bar2b$J=vAKSS0 zAo_mv!T9?Ldg%JC_g!Wo`=61o>GzWhQ-kBVPsyR~>G=;6Gjmh9kwp4k=3DRlhwka= zDfNH)oA}@GTV`w&nymn>m3|lnE5*TpOJ;^yXi&!q~2|OQEoOcnCkzW z=<66;{Fq30(?^EK@jmR3!_e>OPiIH@*nQI<$EF7|>5-|Kj`78T?o1+`qpieb+it?P zo5lUr+Udoi;W0Kp8M1roy;#n6lND3%KhNnW^=>2m@b82fK5K^KefXVi>G`Kzz_WH<)MQgIt4Q~8b1_kL9C#Lm}Yd(Qi>3&h47=^ zPiB4if#1!JL0|p>e&Bb+FJ!l}eJE#k&s&-sfZs#-p;RW!aPZUT-e0rN)Lm+=EciS$CKQGrfggk8+z)x&!4K??Q%pF{AYd;eJc!0r%l z^6(>daxj&ioEq1nE$4Wq8uSnF1N#&|gQ*aHpuc?jr%>KN zui$ecD#^(%en=uojrHM&B&3w`;js_XL!ZLB)9jdl{(}Ai4uBuv4e@jBhF-zveE8AR zEl{0O{S5sB{E&o|qd>>PAK>8+_gA^y4dLO#Plz|M_<>M`9Y4bn=OV-jdKP|h{Rteo zIvzUOXTOg>hNFpb=^9c=!BKA}>*7dJqzwn>92ZaEIq($Q$GCbvgeTbV;tBCbA2Y&D z6M?|ZM~DOLadCxyreIu|5RAnY@|epf#NYavIr!PlOCelYyC=Bf9EE*@xH4U_r0=b; z`*5`s2ZvXPzjmXkB>Wu072;xT-L%Q8QR$s2rrbO8UOs@yvmL`*$HQaA;W@2=9B$w^} zusA(DH2Vp7w6=d5=e2S)3A=rMbN!@N&s(;9KZ!n3ns^comM#~-7wB)Ccd79);#iwA z9P$(FhM#c1WTv}!etdY0`s~q#@pm$?;QWC&;k<||bhMARuAi3hA-GV@%Gzi$o0{Rl zN+?b^FXALkDNRa3ewwj^n!a7s=}PYe;`%K!m|hrpkJ}HpaY9^u{U-SB`bmZa6kV-@ zxlh?tuh=O(B<_adg!78sB=BSLZ0;R~pMdB7zT|Yr$N90ZGlRWfQtz@MJp207m3YtG z)oI!A81fCzemK{L;)L@euCaJ_c@I2K^v!+F4JF3DM&cQHDi+UfACG#MGRFc?zPtlG zBd)MJbKtowf!!glG84#fPiQ;3woc!}Ivh@SI1d&#vBZ^A!4hAD+>_;d7Wny62U? zlIP+kP+Wb4bHh)uyaz5cTP0F%euh5s=?&y(;2C|V56|d7@Hxya5hvhT=IA82eR0CM zT|WUIK0g7^nyqF>-24oE1iM}R3|s=wh^r6J=u_}HAD(9{uCaKApF+GBT+mH5Th0G~ z=cTyX05^nZ#1(eCeu~92;_8c&i)X|&#CzzQ5T5NZQ)Wr;+n^7)1fCIBw) zfxLq_xp755=;{sEPa)nzuM3_@bGZ50J#Q?YeZ2qGK0lP7;inMqfoHeRM?Z)-Ay38P zdC5->@9nP&M)hg^#5DR8H%`Da;_CLVK0Jqb4?J6+Kjq8Mh%5TnSUkJDckztAJA`Mq ze??vK`N_w7!n5#)dj-}UE}kjQoAvcF`|9LF1{~*KO-CW(Y{MF2_{{lY; BU~m8c diff --git a/vendor/endroid/qr-code/assets/data/qrv21_0.dat b/vendor/endroid/qr-code/assets/data/qrv21_0.dat deleted file mode 100755 index 487b8f230ee88d34e1ea56f786a46295bc6f043d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27804 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 diff --git a/vendor/endroid/qr-code/assets/data/qrv21_1.dat b/vendor/endroid/qr-code/assets/data/qrv21_1.dat deleted file mode 100755 index 54003fc4f91b1c7f01078cdfe2711b7f68dadad4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27795 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 QUD3RGH@iG8UJ3E~AE+MH>Hq)$ diff --git a/vendor/endroid/qr-code/assets/data/qrv21_2.dat b/vendor/endroid/qr-code/assets/data/qrv21_2.dat deleted file mode 100755 index 33003315ee3477a6f3a414f13eaeaf33b2a48fda..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27812 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 P{(mznTW@~&A3ggQS$Ea! diff --git a/vendor/endroid/qr-code/assets/data/qrv21_3.dat b/vendor/endroid/qr-code/assets/data/qrv21_3.dat deleted file mode 100755 index fa344525d926c9d4ba1349dc7f76cfcfb8ef3100..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27810 zcmeI3Nl#SU*T%1wMnO>�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 vU%oM3-d%c8iK-R*6e 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 diff --git a/vendor/endroid/qr-code/assets/data/qrv22_1.dat b/vendor/endroid/qr-code/assets/data/qrv22_1.dat deleted file mode 100755 index 690ff6366..000000000 --- a/vendor/endroid/qr-code/assets/data/qrv22_1.dat +++ /dev/null @@ -1,209 +0,0 @@ -hghghghghghghghghghghghgfefefefefefefefefefefefedcdcdcdcdcdcdcdcbabababababababa_`_`_`_`_`_`_`_`]]]]]]^]^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIGHGHGGGGGHGHGHGHFEFEFEFEFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCDCDCDCDCBABABABABABABABABABABABA@?@?@?@?@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9:9:9:9:987878787878787878765656565656565656565654343434343434343434343432121212121212121/0/0/////0/0/0/0.-.-.-.-.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)*)*)*)*)('('('('('('('('('('('('&%&%&%&%&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!"!"!"!"!         hghghghghghghghghghghghgfefefefefefefefefefefefedcdcdcdcdcdcdcdcbabababababababa_`_`_`_`_`_`_`_`^]^]^]^]^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIJIJIJIGGHGHGHGGHGHGHGHFEFEFEFEFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCDCDCDCDCBABABABABABABABABABABABA@?@?@?@?@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9:987878787878787878787876565656565656565656565654343434343434343432121212121212121212121//0/0/0//0/0/0/0.-.-.-.-.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)*)*)*)*)('('('('('('('('('('('('&%&%&%&%&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!"!           hghghghghghghghghghghghgfefefefefefefefefefefefedcdcdcdcdcdcdcdcbabababababababa_`_______`_`_`_`^]^]^]^]^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIJIJIJIJIHGHGHGHGGHGGGGGGFEFEFEFEFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCDCDCDCDCBABABABABABABABABABABABA@?@?@?@?@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9:9:9:987878787878787878787878765656565656565656565656543434343434343432121212121212121212121210/0/0/0//0//////.-.-.-.-.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)*)*)*)*)('('('('('('('('('('('('&%&%&%&%&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!"!"!"!            hghghghghghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcdcdcdcdcbabababababababa`_`_`_`__`_`_`_`^]^]^]^]^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCDCDCDCDCBABABABABABABABABABABABA@?@?@?@?@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9:9:9:9:987878787878787878787878765656565656565656565656543434343434343432121212121212121210/0/0/0/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)*)*)*)*)('('('('('('('('('('('('&%&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!"!"!"!"!            hghghghghghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababababababa`_`_`_`_______`_^]^]^]^]^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGGGGGGHHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCDCDCDCDCBABABABABABABABABABABABA@?@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9:9:9:9:9878787878787878787878787656565656565656565656565434343434343434321212121212121210//////00/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)*)*)*)*)('('('('('('('('('&%&%&%&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!"!"!"!"!            hghghghghghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIGHGHGHGHHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCDCDCDCDCBABABABABABABABABA@?@?@?@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9:9:9:9:987878787878787878787878765656565656565656565656543434343434343432121212121212121/0/0/0/00/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)*)('('('('('('('('('('('&%&%&%&%&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!"!"!"!"!            hghghghghghghghgfefefefefefefefefefefefedcdcdcdcdcdcdcdcbabababababababa_____`_``_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIGHGHGHGHGGGGGHGHHGHGHGGGFEFEFEFEFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCDCBABABABABABABABABABABA@?@?@?@?@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9:9:9:9:987878787878787878787878765656565656565656565656543434343434343432121212121212121/0/0/0/0/////0/00/0/0///.-.-.-.-.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)*)*)*)('('('('('('('('('('('('&%&%&%&%&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!"!"!"!"!            hghghghghghghghgfefefefefefefefefefefefedcdcdcdcdcdcdcdcbabababababababa_`_`_`_``_`_`___`_`_`_`_^]^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIGHGHGHGHGHGHGHGHGGHGHGHGFEFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCDCDCDCBABABABABABABABABABABABA@?@?@?@?@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9:9:9:9:987878787878787878787878765656565656565656565656543434343434343432121212121212121/0/0/0/0/0/0/0/0//0/0/0/.-.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)*)*)*)*)('('('('('('('('('('('('&%&%&%&%&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!"!"!"!"!            hghghghghghghghgfefefefefefefefefefefefedcdcdcdcdcdcdcdcbabababababababa_`_`_`_`___`_`_``_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIGHGHGHGHGHGHGHGHHGFEFEFEFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCDCDCDCDCBABABABABABABABABABABABA@?@?@?@?@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9:9:9:9:987878787878787878787878765656565656565656543434343434343434343432121212121212121/0/0/0/0/0/0/0/00/.-.-.-.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)*)*)*)*)('('('('('('('('('('('('&%&%&%&%&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!"!"!"!"!                        - - - - - - - - - - - -             - - - - - - - - - - - -             - - - - - - - - - - - -             - - - - - - - - -             - - - - - - - - - - -          - - - - - - - - - - - -            - - - - - - - - - - - -             - - - - - - - - - - - -             - - - - - - - - - - - - hhggffeeDDCCBBAA 99::;;<<]]^^__``FFEEDDCC""##$$%%PPQQRRSSVUUTTSSR-,,++**)(())**++LLMMNNOOaa``__^^==<<;;:: 00112233TTUUVVWWYYXXWWVV554433228899::;;\\]]^^__QQPPOONN--,,++** @@AABBCCddeeffggIIHHGGFF%%$$##""$$%%&&''HHIIJJKKee__^^]]776655// ))**++,,WWXXYYZZONNMMLKJ&%%$$##"(())**++LLMMNNOOaa``__^^==<<;;:: 00112233TTUUVVWWYYXXWWVV554433228899::;;\\]]^^__QQPPOONN--,,++** @@AABBCCddeeffggIIHHGGFF%%$$##""$$%%&&''HHIIJJKKee__^^]]776655// ))**++,,WWXXYYZZONNMMLKJ&%%$$##"(())**++LLMMNNOOaa``__^^==<<;;:: 00112233TTUUVVWWYYXXWWVV554433228899::;;\\]]^^__QQPPOONN--,,++** @@AABBCCddeeffggIIHHGGFF%%$$##""$$%%&&''HHIIJJKKee__^^]]776655// ))**++,,WWXXYYZZONNMMLKJ&%%$$##"ddccbbaa@@??>>====>>??@@aabbccddBBAA@@??&&''(())TTUUVVWWRQQPPOON)((''&&% - - ,,--..//PPQQRRSS]]\\[[ZZ9988776644556677XXYYZZ[[UUTTSSRR1100//.. - -<<==>>??``aabbccMMLLKKJJ))((''&& !!""##DDEEFFGGhhhhggffEEDDCCBB!! (())**++LLMMNNOO\\[[ZZYY..--,,++--..//55[[\\]]^^IHGGFFEE"!!  - - ,,--..//PPQQRRSS]]\\[[ZZ9988776644556677XXYYZZ[[UUTTSSRR1100//.. - -<<==>>??``aabbccMMLLKKJJ))((''&& !!""##DDEEFFGGhhhhggffEEDDCCBB!! (())**++LLMMNNOO\\[[ZZYY..--,,++--..//55[[\\]]^^IHGGFFEE"!!  - - ,,--..//PPQQRRSS]]\\[[ZZ9988776644556677XXYYZZ[[UUTTSSRR1100//.. - -<<==>>??``aabbccMMLLKKJJ))((''&& !!""##DDEEFFGGhhhhggffEEDDCCBB!! (())**++LLMMNNOO\\[[ZZYY..--,,++--..//55[[\\]]^^IHGGFFEE"!! ``__^^]]<<;;::99 AABBCCDDeeffgghh>>==<<;; **++,,--XXYYZZ[[NMMLKJIH%$$##""! 00112233TTUUVVWWYYXXWWVV554433228899::;;\\]]^^__QQPPOONN--,,++** @@AABBCCddeeffggIIHHGGFF%%$$##""$$%%&&''HHIIJJKKeeddccbbAA@@??>> - - ,,--..//PPQQRRSSXXWWVVUU**))(('' - - 66778899__eeffggDDCCBBAA 00112233TTUUVVWWYYXXWWVV554433228899::;;\\]]^^__QQPPOONN--,,++** @@AABBCCddeeffggIIHHGGFF%%$$##""$$%%&&''HHIIJJKKeeddccbbAA@@??>> - - ,,--..//PPQQRRSSXXWWVVUU**))(('' - - 66778899__eeffggDDCCBBAA 00112233TTUUVVWWYYXXWWVV554433228899::;;\\]]^^__QQPPOONN--,,++** @@AABBCCddeeffggIIHHGGFF%%$$##""$$%%&&''HHIIJJKKeeddccbbAA@@??>> - - ,,--..//PPQQRRSSXXWWVVUU**))(('' - - 66778899__eeffggDDCCBBAA\\[[ZZYY88776655!!""##$$EEFFGGHHhhggffee::998877 - - ..//5566\\]]^^__GGFFEEDD! 44556677XXYYZZ[[UUTTSSRR1100//.. - -<<==>>??``aabbccMMLLKKJJ))((''&& !!""##DDEEFFGGhhhhggffEEDDCCBB!! (())**++LLMMNNOOaa``__^^==<<;;:: 00112233TTUUVVWWTTSSRRQQ&&%%$$## ::;;<<==hhhhggff@@??>>==44556677XXYYZZ[[UUTTSSRR1100//.. - -<<==>>??``aabbccMMLLKKJJ))((''&& !!""##DDEEFFGGhhhhggffEEDDCCBB!! (())**++LLMMNNOOaa``__^^==<<;;:: 00112233TTUUVVWWTTSSRRQQ&&%%$$## ::;;<<==hhhhggff@@??>>==44556677XXYYZZ[[UUTTSSRR1100//.. - -<<==>>??``aabbccMMLLKKJJ))((''&& !!""##DDEEFFGGhhhhggffEEDDCCBB!! (())**++LLMMNNOOaa``__^^==<<;;:: 00112233TTUUVVWWTTSSRRQQ&&%%$$## ::;;<<==hhhhggff@@??>>== - - XXWWVVUU44332211 %%&&''((IIJJKKLL__^^]]\\6655//.. - - 778899::eeffgghhCCBBAA@@8899::;;\\]]^^__QQPPOONN--,,++** @@AABBCCddeeffggIIHHGGFF%%$$##""$$%%&&''HHIIJJKKeeddccbbAA@@??>> - - ,,--..//PPQQRRSS]]\\[[ZZ9988776644556677XXYYZZ[[PPOONNMM""!! >>??@@AAeedcba`_<<;;::998899::;;\\]]^^__QQPPOONN--,,++** @@AABBCCddeeffggIIHHGGFF%%$$##""$$%%&&''HHIIJJKKeeddccbbAA@@??>> - - ,,--..//PPQQRRSS]]\\[[ZZ9988776644556677XXYYZZ[[PPOONNMM""!! >>??@@AAeedcba`_<<;;::998899::;;\\]]^^__QQPPOONN--,,++** @@AABBCCddeeffggIIHHGGFF%%$$##""$$%%&&''HHIIJJKKeeddccbbAA@@??>> - - ,,--..//PPQQRRSS]]\\[[ZZ9988776644556677XXYYZZ[[PPOONNMM""!! >>??@@AAeedcba`_<<;;::99 TTSSRRQQ00//..-- - - ))**++,,MMNNOOPP[[ZZYYXX--,,++** ;;<<==>>hhggffee??>>==<<<<==>>??``aabbccMMLLKKJJ))((''&& !!""##DDEEFFGGhhhhggffEEDDCCBB!! (())**++LLMMNNOOaa``__^^==<<;;:: 00112233TTUUVVWWYYXXWWVV554433228899::;;\\]]^^__GGFFEEDDBBCCDDEE_^^]]\\[88776655 <<==>>??``aabbccMMLLKKJJ))((''&& !!""##DDEEFFGGhhhhggffEEDDCCBB!! (())**++LLMMNNOOaa``__^^==<<;;:: 00112233TTUUVVWWYYXXWWVV554433228899::;;\\]]^^__GGFFEEDDBBCCDDEE_^^]]\\[88776655 <<==>>??``aabbccMMLLKKJJ))((''&& !!""##DDEEFFGGhhhhggffEEDDCCBB!! (())**++LLMMNNOOaa``__^^==<<;;:: 00112233TTUUVVWWYYXXWWVV554433228899::;;\\]]^^__GGFFEEDDBBCCDDEE_^^]]\\[88776655 PPOONNMM,,++**)) - - --..//00QQRRSSTTWWVVUUTT))((''&&??@@AABBdcba`__^;;::9988@@AABBCCddeeffggIIHHGGFF%%$$##""$$%%&&''HHIIJJKKeeddccbbAA@@??>> - - ,,--..//PPQQRRSS]]\\[[ZZ9988776644556677XXYYZZ[[UUTTSSRR1100//.. - -<<==>>??``aabbccCCBBAA@@ FFGGMMNN[ZZYYXXW43210//. - - @@AABBCCddeeffggIIHHGGFF%%$$##""$$%%&&''HHIIJJKKeeddccbbAA@@??>> - - ,,--..//PPQQRRSS]]\\[[ZZ9988776644556677XXYYZZ[[UUTTSSRR1100//.. - -<<==>>??``aabbccCCBBAA@@ FFGGMMNN[ZZYYXXW43210//. - - @@AABBCCddeeffggIIHHGGFF%%$$##""$$%%&&''HHIIJJKKeeddccbbAA@@??>> - - ,,--..//PPQQRRSS]]\\[[ZZ9988776644556677XXYYZZ[[UUTTSSRR1100//.. - -<<==>>??``aabbccCCBBAA@@ FFGGMMNN[ZZYYXXW43210//. - - LLKKJJII((''&&%% 11223344UUVVWWXXSSRRQQPP%%$$##""CCDDEEFF^]]\\[[Z77665543 !!""##DDEEFFGGhhhhggffEEDDCCBB!! (())**++LLMMNNOOaa``__^^==<<;;:: 00112233TTUUVVWWYYXXWWVV554433228899::;;\\]]^^__QQPPOONN--,,++** @@AABBCCddeeffgg??>>==<<!!""##$$OOPPQQRRWVVUUTTS.--,,++* !!""##DDEEFFGGhhhhggffEEDDCCBB!! (())**++LLMMNNOOaa``__^^==<<;;:: 00112233TTUUVVWWYYXXWWVV554433228899::;;\\]]^^__QQPPOONN--,,++** @@AABBCCddeeffgg??>>==<<!!""##$$OOPPQQRRWVVUUTTS.--,,++* !!""##DDEEFFGGhhhhggffEEDDCCBB!! (())**++LLMMNNOOaa``__^^==<<;;:: 00112233TTUUVVWWYYXXWWVV554433228899::;;\\]]^^__QQPPOONN--,,++** @@AABBCCddeeffgg??>>==<<!!""##$$OOPPQQRRWVVUUTTS.--,,++*HHGGFFEE$$##""!!55667788YYZZ[[\\OONNMMGG!!  !!GGMMNNOOZYYXXWWV210//..- - - $$%%&&''HHIIJJKKeeddccbbAA@@??>> - - ,,--..//PPQQRRSS]]\\[[ZZ9988776644556677XXYYZZ[[UUTTSSRR1100//.. - -<<==>>??``aabbccMMLLKKJJ))((''&& !!""##DDEEFFGGhhhhggff;;::9988 - -%%&&''((SSTTUUVVSRRQQPPO*))((''&$$%%&&''HHIIJJKKeeddccbbAA@@??>> - - ,,--..//PPQQRRSS]]\\[[ZZ9988776644556677XXYYZZ[[UUTTSSRR1100//.. - -<<==>>??``aabbccMMLLKKJJ))((''&& !!""##DDEEFFGGhhhhggff;;::9988 - -%%&&''((SSTTUUVVSRRQQPPO*))((''&$$%%&&''HHIIJJKKeeddccbbAA@@??>> - - ,,--..//PPQQRRSS]]\\[[ZZ9988776644556677XXYYZZ[[UUTTSSRR1100//.. - -<<==>>??``aabbccMMLLKKJJ))((''&& !!""##DDEEFFGGhhhhggff;;::9988 - -%%&&''((SSTTUUVVSRRQQPPO*))((''& !!""##DDEEFFGGhhhhggffEEDDCCBB!! (())**++LLMMNNOOaa``__^^==<<;;:: 00112233TTUUVVWWYYXXWWVV554433228899::;;\\]]^^__DDCCBBAA$$%%&&''RRSSTTUUEEDDCCBB!! 8899::;;$$%%&&''HHIIJJKKeeddccbbAA@@??>> - - ,,--..//PPQQRRSS]]\\[[ZZ9988776644556677XXYYZZ[[UUTTSSRR1100//.. - -<<==>>??``aabbcc@@??>>==(())**++VVWWXXYYAA@@??>><<==>>??(())**++LLMMNNOOaa``__^^==<<;;:: 00112233TTUUVVWWYYXXWWVV554433228899::;;\\]]^^__QQPPOONN--,,++** @@AABBCCddeeffgg<<;;::99 ,,--..//ZZ[[\\]]==<<;;::@@AABBCC,,--..//PPQQRRSS]]\\[[ZZ9988776644556677XXYYZZ[[UUTTSSRR1100//.. - -<<==>>??``aabbccMMLLKKJJ))((''&& !!""##DDEEFFGGhh``__^^88776655 - - - -55667788]]\\[[ZZ99887766 !!""##DDEEFFGG00112233TTUUVVWWYYXXWWVV554433228899::;;\\]]^^__QQPPOONN--,,++** @@AABBCCddeeffggIIHHGGFF%%$$##""$$%%&&''HHIIJJKK]]\\[[ZZ//..--,, 99::;;<>??``aabbccMMLLKKJJ))((''&& !!""##DDEEFFGGhhhhggffEEDDCCBB!! (())**++LLMMNNOOYYXXWWVV++**))((==>>??@@UUTTSSRR1100//.. - -(())**++LLMMNNOO8899::;;\\]]^^__QQPPOONN--,,++** @@AABBCCddeeffggIIHHGGFF%%$$##""$$%%&&''HHIIJJKKeeddccbbAA@@??>> - - ,,--..//PPQQRRSSUUTTSSRR''&&%%$$AABBCCDDQQPPOONN--,,++** - - ,,--..//PPQQRRSS<<==>>??``aabbccMMLLKKJJ))((''&& !!""##DDEEFFGGhhhhggffEEDDCCBB!! (())**++LLMMNNOOaa``__^^==<<;;:: 00112233TTUUVVWWQQPPOONN##""!! EEFFGGMMMMLLKKJJ))((''&& 00112233TTUUVVWW@@AABBCCddeeffggIIHHGGFF%%$$##""$$%%&&''HHIIJJKKeeddccbbAA@@??>> - - ,,--..//PPQQRRSS]]\\[[ZZ9988776644556677XXYYZZ[[MMGGFFEE !!""##NNOOPPQQIIHHGGFF%%$$##""44556677XXYYZZ[[\\]]ZHAbZHAbZHAb|ZdQb|ZdQb|ZdQbv`fHXv`˂rXQZp˂tbdQdrtnvffH~fH~XQr˂XQr˂XQr˂btlbtlbtlHfpvHfpvHfpvZp˂Zp˂Zp˂|dr|dr|dtAfH~fH~fH~XQr˂XQr˂rbtbtlbtlHXv`~HX`pvbHAZ`ےbrtAJtbdQpfHfH~fH~XQr˂XQr˂XQr˂btlbtlbtlHfpvHfpvHfpvZp˂Zp˂Zp˂|dr|dr|dtAfH~fH~fH~XQr˂XQr˂rbtbtlbtlHXv`~HX`pvbHAZ`ےbrtAJtbdQpfHfH~fH~XQr˂XQr˂XQr˂btlbtlbtlHfpvHfpvHfpvZp˂Zp˂Zp˂|dr|dr|dtAfH~fH~fH~XQr˂XQr˂rbtbtlbtlHXv`~HX`pvbHAZ`ےbrtAJtbdQے`JXQے`JXQے`JXQtlJtlJtlJ~Hfpf~HJ`ےrXQJ`Z|dAJltf`vXf`vXf`vXpZHAbpZHAbpZHAbJtArdJtArdJtArdnXvnXvnXvrXQJ`rXQJ`rXQJ`tAJltAJlJltf`vXf`vXfZHAbpZHAbpZHAblJtAdJtArdJtArdf~Hv`fnrXQJp˂HAZp˂bdQZ|Z|df`vXf`vXf`vXpZHAbpZHAbpZHAbJtArdJtArdJtArdnXvnXvnXvrXQJ`rXQJ`rXQJ`tAJltAJlJltf`vXf`vXfZHAbpZHAbpZHAblJtAdJtArdJtArdf~Hv`fnrXQJp˂HAZp˂bdQZ|Z|df`vXf`vXf`vXpZHAbpZHAbpZHAbJtArdJtArdJtArdnXvnXvnXvrXQJ`rXQJ`rXQJ`tAJltAJlJltf`vXf`vXfZHAbpZHAbpZHAblJtAdJtArdJtArdf~Hv`fnrXQJp˂HAZp˂bdQZ|Z|dr˂pr˂pr˂ptArdtArdtArdvnXfpvbHAZpےbHArtAJbbdQZ|nvpnvpnvpے`Jے`Jے`J|ZdQ|ZdQ|ZdQ`f~`f~`fHےbHAےbHAےbHAtbdQZtbdQZbnvnvpnvpے`Jے`Jے`J|ZdQ|ZdQ|ZdQfpv~Hfp`p˂bHAZpbHAdrtArtAJbnvpnvpnvpے`Jے`Jے`J|ZdQ|ZdQ|ZdQ`f~`f~`fHےbHAےbHAےbHAtbdQZtbdQZbnvnvpnvpے`Jے`Jے`J|ZdQ|ZdQ|ZdQfpv~Hfp`p˂bHAZpbHAdrtArtAJbnvpnvpnvpے`Jے`Jے`J|ZdQ|ZdQ|ZdQ`f~`f~`fHےbHAےbHAےbHAtbdQZtbdQZbnvnvpnvpے`Jے`Jے`J|ZdQ|ZdQ|ZdQfpv~Hfp`p˂bHAZpbHAdrtArtAJbpfHZHAbZHAbZHAb|ZdQb|ZdQbf~Hv`fnXv`˂bZp˂dQZ|drtfH~fH~fH~XQr˂XQr˂XQr˂btlbtlbtlHfpvHfpvfpvZp˂Zp˂Zdr|dr|drpfHfH~fH~XQr˂XQr˂XQr˂btlbtlbtlnXv`vnXrXQJ`˂rXQZdrJltdQZ|fH~fH~fH~XQr˂XQr˂XQr˂btlbtlbtlHfpvHfpvfpvZp˂Zp˂Zdr|dr|drpfHfH~fH~XQr˂XQr˂XQr˂btlbtlbtlnXv`vnXrXQJ`˂rXQZdrJltdQZ|fH~fH~fH~XQr˂XQr˂XQr˂btlbtlbtlHfpvHfpvfpvZp˂Zp˂Zdr|dr|drpfHfH~fH~XQr˂XQr˂XQr˂btlbtlbtlnXv`vnXrXQJ`˂rXQZdrJltdQZ|f`vXے`JXQے`JXQے`JXQtlJtlJXv`f~HXvp˂rHAZp˂bHAZdrtAJAJbdQf`vXf`vXf`vXpZHAbpZHAbpZHAJtArdJtArdJtArdnXvnXvnrXQJrXQJ`rXQJ`tAJltAJltAJlf`vXf`vXf`vXpZHAbpZHAbpZHAbJtArdJtArdJtArdf~Hv`fےbHAJ`ےtAJbdbdQZ|drtAJf`vXf`vXf`vXpZHAbpZHAbpZHAJtArdJtArdJtArdnXvnXvnrXQJrXQJ`rXQJ`tAJltAJltAJlf`vXf`vXf`vXpZHAbpZHAbpZHAbJtArdJtArdJtArdf~Hv`fےbHAJ`ےtAJbdbdQZ|drtAJf`vXf`vXf`vXpZHAbpZHAbpZHAJtArdJtArdJtArdnXvnXvnrXQJrXQJ`rXQJ`tAJltAJltAJlf`vXf`vXf`vXpZHAbpZHAbpZHAbJtArdJtArdJtArdf~Hv`fےbHAJ`ےtAJbdbdQZ|drtAJnvpr˂pr˂pr˂ptArdtArd~Hf`f~XQJ`ےrXQJdrtAltbZ|dnvpnvpnvpے`Jے`Jے`JXQ|ZdQ|ZdQf~`f~`f~`ےHAےbHAےbHAtbdQZtbdQZtbdQZnvpnvpnvpے`Jے`Jے`J|ZdQ|ZdQ|ZdQXv`f~HXvZp˂bHAZpQZ|ddrtAltbnvpnvpnvpے`Jے`Jے`JXQ|ZdQ|ZdQf~`f~`f~`ےHAےbHAےbHAtbdQZtbdQZtbdQZnvpnvpnvpے`Jے`Jے`J|ZdQ|ZdQ|ZdQXv`f~HXvZp˂bHAZpQZ|ddrtAltbnvpnvpnvpے`Jے`Jے`JXQ|ZdQ|ZdQf~`f~`f~`ےHAےbHAےbHAtbdQZtbdQZtbdQZnvpnvpnvpے`Jے`Jے`J|ZdQ|ZdQ|ZdQXv`f~HXvZp˂bHAZpQZ|ddrtAltbfH~ZHAbZHAb|ZdQb|ZdQb|ZdQbpvnHfpvbHAZ`ےbJbdQdQZ|rtAJlfH~fH~fH~XQr˂XQr˂rbtbtlbtlHfpvHfpvHfpvZp˂Zp˂Zp˂|dr|dr|drfH~fH~fH~XQr˂XQr˂XQr˂btlbtlbtl~Hf`f~bHAZ˂brtAJlJbdQdQZ|fH~fH~fH~XQr˂XQr˂rbtbtlbtlHfpvHfpvHfpvZp˂Zp˂Zp˂|dr|dr|drfH~fH~fH~XQr˂XQr˂XQr˂btlbtlbtl~Hf`f~bHAZ˂brtAJlJbdQdQZ|fH~fH~fH~XQr˂XQr˂rbtbtlbtlHfpvHfpvHfpvZp˂Zp˂Zp˂|dr|dr|drfH~fH~fH~XQr˂XQr˂XQr˂btlbtlbtl~Hf`f~bHAZ˂brtAJlJbdQdQZ|f`vXے`JXQے`JXQtlJtlJtlJXv`fnXvp˂HAZp˂Z|ddrtAJtbdQf`vXf`vXfZHAbpZHAbpZHAblJtAdJtArdJtArdnXvnXvnXvrXQJ`rXQJ`rXQJ`tAJltAJltAJlf`vXf`vXf`vXpZHAbpZHAbpZHAJtArdJtArdJtArdpvnHfpvp˂rHAZp˂tbdZ|dAJltf`vXf`vXfZHAbpZHAbpZHAblJtAdJtArdJtArdnXvnXvnXvrXQJ`rXQJ`rXQJ`tAJltAJltAJlf`vXf`vXf`vXpZHAbpZHAbpZHAJtArdJtArdJtArdpvnHfpvp˂rHAZp˂tbdZ|dAJltf`vXf`vXfZHAbpZHAbpZHAblJtAdJtArdJtArdnXvnXvnXvrXQJ`rXQJ`rXQJ`tAJltAJltAJlf`vXf`vXf`vXpZHAbpZHAbpZHAJtArdJtArdJtArdpvnHfpvp˂rHAZp˂tbdZ|dAJltnvpr˂pr˂ptArdtArdtArd~HX`f~bHAZpbHArtAJl璉bdQZ|Z|dnvpnvpے`Jے`Jے`J|ZdQ|ZdQ|ZdQ`f~`f~`f~ےbHAےbHAےbHAtbdQZtbdQZtbdQZnvpnvpnvpے`Jے`Jے`JXQ|ZdQ|ZdQf~Xv`fnXvXQJ`ےrXQJQZ|drtAJlbnvnvpnvpے`Jے`Jے`J|ZdQ|ZdQ|ZdQ`f~`f~`f~ےbHAےbHAےbHAtbdQZtbdQZtbdQZnvpnvpnvpے`Jے`Jے`JXQ|ZdQ|ZdQf~Xv`fnXvXQJ`ےrXQJQZ|drtAJlbnvnvpnvpے`Jے`Jے`J|ZdQ|ZdQ|ZdQ`f~`f~`f~ےbHAےbHAےbHAtbdQZtbdQZtbdQZnvpnvpnvpے`Jے`Jے`JXQ|ZdQ|ZdQf~Xv`fnXvXQJ`ےrXQJQZ|drtAJlbnvfH~f`vXf`vXfZHAbpZHAbpZHAblJtAdJtArdJtArdnXvnXvnXvrXQJ`rXQJ`rXQJ`tAJltAJltAJlf`vXf`vXf`vXZHAb˂pZHAb㉀ۑpZQXb㉀pfH~pfH~Z|dZ|dnvpnvpے`Jے`Jے`J|ZdQ|ZdQ|ZdQ`f~`f~`f~ےbHAےbHAےbHAtbdQZtbdQZtbdQZnvpnvpnvpے`JXQbے`JAHr󙐒ۑpJAHf۝`vf۝`vrQtJlrQtJlfH~fH~XQr˂XQr˂XQr˂btlbtlbtlHfpvHfpvHfpvZp˂Zp˂Zp˂|dr|dr|dtAfH~fH~fH~r˂pJXQrˁ`ZQXr󙐂ˁ`Xnv˅Xnv˒tbAdtbAdf`vXf`vXpZHAbpZHAbpZHAbJtArdJtArdJtArdnXvnXvnXvrXQJ`rXQJ`rXQJ`tAJltAJlJltf`vXf`vXfr˂ZHAb˂p`ZAHr󙐂ˍpfH~pfH~pfH~Z|dZ|dnvpnvpے`Jے`Jے`J|ZdQ|ZdQ|ZdQ`f~`f~`fHےbHAےbHAےbHAtbdQZtbdQZbnvnvpnvppZHAb˂pZQXb㉀ہ`ZQXbㅐf۝`vf۝`vf۝`vrQtJlrQtJlfH~fH~XQr˂XQr˂XQr˂btlbtlbtlHfpvHfpvfpvZp˂Zp˂Zdr|dr|drpfHfH~fH~ے`JHAbےpJAHr󉀒ۑpJXnv˅Xnv˅Xnv˒tbAdtbAdf`vXf`vXpZHAbpZHAbpZHAJtArdJtArdJtArdnXvnXvnrXQJrXQJ`rXQJ`tAJltAJltAJlf`vXf`vXf`vXXQr˂`JXQrˁ`ZAHr󙐂ˍpfH~pfH~p|dZ|dZ|dnvpnvpے`Jے`Jے`JXQ|ZdQ|ZdQf~`f~`f~`ےHAےbHAےbHAtbdQZtbdQZtbdQZnvpnvpnvppZHAb˂pZQXAHr󙐁`ZQXAHf۝`vf۝`vrQtJlrQtJlrQtJlfH~fH~XQr˂XQr˂rbtbtlbtlHfpvHfpvHfpvZp˂Zp˂Zp˂|dr|dr|drfH~fH~fH~˂pHAbˁ`ZQXr󙐂ˁ`Xnv˅Xnv˒tbAdtbAdtbAdZ|abcdefghhgfedcb \ No newline at end of file diff --git a/vendor/endroid/qr-code/assets/data/qrv22_2.dat b/vendor/endroid/qr-code/assets/data/qrv22_2.dat deleted file mode 100755 index 3ea03b9ad9c82f1189aedfc7142e9ff2beb3170d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30269 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 F{{tfdW~=}J diff --git a/vendor/endroid/qr-code/assets/data/qrv22_3.dat b/vendor/endroid/qr-code/assets/data/qrv22_3.dat deleted file mode 100755 index b23d9198ae6abbebdc79fb9c7fc67f2903139c83..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30258 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 C&}Om# diff --git a/vendor/endroid/qr-code/assets/data/qrv23_0.dat b/vendor/endroid/qr-code/assets/data/qrv23_0.dat deleted file mode 100755 index 827fb6eb39328dae704f5fa57c2ca8d4827f2e55..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32797 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 gkbEX$uO_Enzp?(7f!FFUZgj35DpvpNuWs%0A7E@RssI20 diff --git a/vendor/endroid/qr-code/assets/data/qrv23_1.dat b/vendor/endroid/qr-code/assets/data/qrv23_1.dat deleted file mode 100755 index 766946efe..000000000 --- a/vendor/endroid/qr-code/assets/data/qrv23_1.dat +++ /dev/null @@ -1,217 +0,0 @@ -lklklklklklklklklklklklkjijijijijijijijijijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcdcdcdcdcbabababababababababababa`_`_`_`_`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMNMNMNMNMLKLKLKLKKLKKKKKKJIJIJIJIJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCDCDCDCDCBABABABABABABABABABABABA@?@?@?@?@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9:9:9:9:987878787878787878787878765656565656565653434343434343434334343432121212121212121212121210/0/0/0/0/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)*)*)*)*)('('('('('('('('('('('('&%&%&%&%&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!"!"!"!"!        lklklklklklklklklklklklkjijijijijijijijijijijijihghghghghghghghgfefefefefefefefecccccdcddcdcdcdcdcdcdcdcbabababababababababababa`_`_`_`_`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCDCDCDCDCBABABABABABABABABABABABA@?@?@?@?@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9:9:9:9:987878787878787878765656565656565656565653434333334343434432121212121212121212121210/0/0/0/0/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)*)*)*)*)('('('('('('('('('('('('&%&%&%&%&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!"!"!"!"!           lklklklklklklklklklklklkjijijijijijijijijijijijihghghghghghghghgfefefefefefefefecdcdcdcddcdcdcccdcdcdcdcbabababababababababababa`_`_`_`_`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMLKKKKKKLLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCDCDCDCDCBABABABABABABABABABABABA@?@?@?@?@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9:9:9:9:9878787878787878765656565656565656565656533434343343434342121212121212121212121210/0/0/0/0/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)*)*)*)*)('('('('('('('('('('('('&%&%&%&%&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!"!"!"!"!            lklklklklklklklklklklklkjijijijijijijijijijijijihghghghghghghghgfefefefefefefefecdcdcdcdcccdcdcddcdcdcdcbabababababababababababa`_`_`_`_`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMKLKLKLKLLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCDCDCDCDCBABABABABABABABABABABABA@?@?@?@?@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9:9:9:9:9878787878787878765656565656565656565656543434343343333332121212121212121212121210/0/0/0/0/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)*)*)*)*)('('('('('('('('('('('('&%&%&%&%&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!"!"!"!"!            lklklklklklklklklklklklkjijijijijijijijijijijijihghghghghghghghgfefefefefefefefecdcdcdcdcdcdcdcddcdcdcdcbababababababababa`_`_`_`_`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMKLKLKLKLKKKKKLKLLKLKLKLKJIJIJIJIJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCDCDCDCDCBABABABABABABABABABABABA@?@?@?@?@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9:9:9:9:9878787878787878765656565656565656543434343434343434343432121212121212121212121210/0/0/0/0/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)*)*)*)*)('('('('('('('('('('('('&%&%&%&%&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!"!"!"!"!         lklklklklklklklklklklklkjijijijijijijijihghghghghghghghghghghghgfefefefefefefefecdcdcdcdcdcdcdcdaaaaaabababababababababa`_`_`_`_`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMKLKLKLKLKLKLKLKLLKLKLKKKJIJIJIJIJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCDCDCDCDCBABABABABABABABABABABABA@?@?@?@?@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9:9:9:9:9878787878787878765656565656565654333333443434343434343432121212121212121212121210/0/0/0/0/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)*)*)*)*)('('('('('('('('('('('('&%&%&%&%&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!"!"!"!"!        lklklklklklklklklklklklkjijijijijijijijihghghghghghghghghghghghgfefefefefefefefecdcccccccdcdcdcdbabababababababababababa`_`_`_`_`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMKLKLKLKLKLKLKLKLKKLKLKLKJIJIJIJIJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCDCDCDCDCBABABABABABABABABABABABA@?@?@?@?@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9:9:9:9:9878787878787878765656565656565653434343443434343434343432121212121212121212121210/0/0/0/0/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)*)*)*)*)('('('('('('('('('('('('&%&%&%&%&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!"!"!"!"!        lklklklklklklklkjijijijijijijijijijijijihghghghghghghghgfefefefefefefefefefefefedcdcdcdccdcdcdcdbabababababababababababa`_`_`_`_`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMNMNMNMKLKLKKKKKLKLKLKLLKJIJIJIJIJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCDCDCDCDCBABABABABABABABABABABABA@?@?@?@?@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9:9:9:9:9878787878787878787878765656565656565653434343433333434434343432121212121212121212121210/0/0/0/0/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)*)*)*)*)('('('('('('('('('('('('&%&%&%&%&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!"!"!"!"!        lklklklklklklklkjijijijijijijijijijijijihghghghghghghghgfefefefefefefefefefefefedcdcdcdcccccccdcbabababababababababababa`_`_`_`_`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMNMNMNMNMKKLKLKLKKLKLKLKLJIJIJIJIJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCDCDCDCDCBABABABABABABABABABABABA@?@?@?@?@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9:9:9:9:987878787878787878787878765656565656565653434343434343434434343332121212121212121212121210/0/0/0/0/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)*)*)*)*)('('('('('('('('('('('('&%&%&%&%&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!"!"!"!"!                    - - - - - - - - - - - -             - - - - - - - - - - - -             - - - - - - - - - - - -             - - - - - - - - - - - -             - - - - - - - - - - - -             - - - - - - - - - - - -             - - - - - - - - - - - -             - - - - - - - - - - - -             - - - - - - - - - - - - llkkjjiiHHGGFFEE$$##""!!55667788YYZZ[[\\WWVVUUTT))((''&&??@@AABBllkkjjiiCCBBAA@@8899::;;\\]]^^__YYXXWWVV554433228899::;;\\]]^^__YYXXWWVV554433228899::;;\\]]^^__YYXXWWVV554433228899::;;\\]]^^__YYXXWWVV554433228899::;;\\]]^^__TTSSRRQQ&&%%$$## ::;;<<==cciijjkkHHGGFFEE"!!  - - ,,--..//PPQQRRSSeeddccbbAA@@??>> - - ,,--..//PPQQRRSSeeddccbbAA@@??>> - - ,,--..//PPQQRRSSeeddccbbAA@@??>> - - ,,--..//PPQQRRSSeeddccbbAA@@??>> - - ,,--..//PPQQRRSS``__^^]]221100// ))**++,,WWXXYYZZWVVUUTTS.--,,++* !!""##DDEEFFGGhhiijjkkMMLLKKJJ))((''&& !!""##DDEEFFGGhhiijjkkMMLLKKJJ))((''&& !!""##DDEEFFGGhhiijjkkMMLLKKJJ))((''&& !!""##DDEEFFGGhhiijjkkMMLLKKJJ))((''&& !!""##DDEEFFGGhhiijjkkCCBBAA@@FFGGHHIIcbbaa``_<<;;::998899::;;\\]]^^__YYXXWWVV55443322hhggffeeDDCCBBAA 99::;;<<]]^^__``SSRRQQKK%%$$##""CCDDEEFFhgfedccb??>>==<<<<==>>??``aabbccUUTTSSRR1100//.. - -<<==>>??``aabbccUUTTSSRR1100//.. - -<<==>>??``aabbccUUTTSSRR1100//.. - -<<==>>??``aabbccUUTTSSRR1100//.. - -<<==>>??``aabbccKKJJIIHH""!!>>??@@AAllllkkjjDDCCBBAA 00112233TTUUVVWWaa``__^^==<<;;:: 00112233TTUUVVWWaa``__^^==<<;;:: 00112233TTUUVVWWaa``__^^==<<;;:: 00112233TTUUVVWWaa``__^^==<<;;:: 00112233TTUUVVWW\\[[ZZYY..--,,++--..//00[[\\]]^^SRRQQPON*))((''&$$%%&&''HHIIJJKKllllkkjjIIHHGGFF%%$$##""$$%%&&''HHIIJJKKllllkkjjIIHHGGFF%%$$##""$$%%&&''HHIIJJKKllllkkjjIIHHGGFF%%$$##""$$%%&&''HHIIJJKKllllkkjjIIHHGGFF%%$$##""$$%%&&''HHIIJJKKllllkkjj??>>==<<!!""##$$JJKKQQRR_^^]]\\[87654332 <<==>>??``aabbccUUTTSSRR1100//..ddccbbaa@@??>>====>>??@@aabbccddJJIIHHGG!!!!GGHHIIJJbaa``__^;;::9987@@AABBCCddeeffggQQPPOONN--,,++** @@AABBCCddeeffggQQPPOONN--,,++** @@AABBCCddeeffggQQPPOONN--,,++** @@AABBCCddeeffggQQPPOONN--,,++** @@AABBCCddeeffggGGFFEEDDBBCCDDEEiihgfedc@@??>>==44556677XXYYZZ[[]]\\[[ZZ9988776644556677XXYYZZ[[]]\\[[ZZ9988776644556677XXYYZZ[[]]\\[[ZZ9988776644556677XXYYZZ[[]]\\[[ZZ9988776644556677XXYYZZ[[XXWWVVUU**))(('' - - 11223399__``aabbMLKKJJII&%%$$##"(())**++LLMMNNOOiihhggffEEDDCCBB!! (())**++LLMMNNOOiihhggffEEDDCCBB!! (())**++LLMMNNOOiihhggffEEDDCCBB!! (())**++LLMMNNOOiihhggffEEDDCCBB!! (())**++LLMMNNOOiiccbbaa;;::9933 - -%%&&''((SSTTUUVV[ZZYYXXW21100//. - - @@AABBCCddeeffggQQPPOONN--,,++**``__^^]]<<;;::99 AABBCCDDeeffgghhFFEEDDCC""##$$%%KKQQRRSS^]]\\[[Z65433221 !!""##DDEEFFGGhhiijjkkMMLLKKJJ))((''&& !!""##DDEEFFGGhhiijjkkMMLLKKJJ))((''&& !!""##DDEEFFGGhhiijjkkMMLLKKJJ))((''&& !!""##DDEEFFGGhhiijjkkMMLLKKJJ))((''&& !!""##DDEEFFGGhhiijjkkCCBBAA@@FFGGHHIIcbbaa``_<<;;::998899::;;\\]]^^__YYXXWWVV554433228899::;;\\]]^^__YYXXWWVV554433228899::;;\\]]^^__YYXXWWVV554433228899::;;\\]]^^__YYXXWWVV554433228899::;;\\]]^^__TTSSRRQQ&&%%$$## ::;;<<==cciijjkkHHGGFFEE"!!  - - ,,--..//PPQQRRSSeeddccbbAA@@??>> - - ,,--..//PPQQRRSSeeddccbbAA@@??>> - - ,,--..//PPQQRRSSeeddccbbAA@@??>> - - ,,--..//PPQQRRSSeeddccbbAA@@??>> - - ,,--..//PPQQRRSS``__^^]]221100// ))**++,,WWXXYYZZWVVUUTTS.--,,++* !!""##DDEEFFGGhhiijjkkMMLLKKJJ))((''&&\\[[ZZYY88776655!!""##$$EEFFGGHHiijjkkllBBAA@@??&&''(())TTUUVVWWZYYXXWWV100//..- - - $$%%&&''HHIIJJKKllllkkjjIIHHGGFF%%$$##""$$%%&&''HHIIJJKKllllkkjjIIHHGGFF%%$$##""$$%%&&''HHIIJJKKllllkkjjIIHHGGFF%%$$##""$$%%&&''HHIIJJKKllllkkjjIIHHGGFF%%$$##""$$%%&&''HHIIJJKKllllkkjj??>>==<<!!""##$$JJKKQQRR_^^]]\\[87654332 <<==>>??``aabbccUUTTSSRR1100//.. - -<<==>>??``aabbccUUTTSSRR1100//.. - -<<==>>??``aabbccUUTTSSRR1100//.. - -<<==>>??``aabbccUUTTSSRR1100//.. - -<<==>>??``aabbccKKJJIIHH""!!>>??@@AAllllkkjjDDCCBBAA 00112233TTUUVVWWaa``__^^==<<;;:: 00112233TTUUVVWWaa``__^^==<<;;:: 00112233TTUUVVWWaa``__^^==<<;;:: 00112233TTUUVVWWaa``__^^==<<;;:: 00112233TTUUVVWW\\[[ZZYY..--,,++--..//00[[\\]]^^SRRQQPON*))((''&$$%%&&''HHIIJJKKllllkkjjIIHHGGFF%%$$##""XXWWVVUU44332211 %%&&''((IIJJKKLLllkkjjii>>==<<;; **++,,--XXYYZZ[[VUUTTSSR-,,++**)(())**++LLMMNNOOiihhggffEEDDCCBB!! (())**++LLMMNNOOiihhggffEEDDCCBB!! (())**++LLMMNNOOiihhggffEEDDCCBB!! (())**++LLMMNNOOiihhggffEEDDCCBB!! (())**++LLMMNNOOiiccbbaa;;::9933 - -%%&&''((SSTTUUVV[ZZYYXXW21100//. - - @@AABBCCddeeffggQQPPOONN--,,++** @@AABBCCddeeffggQQPPOONN--,,++** @@AABBCCddeeffggQQPPOONN--,,++** @@AABBCCddeeffggQQPPOONN--,,++** @@AABBCCddeeffggGGFFEEDDBBCCDDEEiihgfedc@@??>>==44556677XXYYZZ[[]]\\[[ZZ9988776644556677XXYYZZ[[]]\\[[ZZ9988776644556677XXYYZZ[[]]\\[[ZZ9988776644556677XXYYZZ[[]]\\[[ZZ9988776644556677XXYYZZ[[XXWWVVUU**))(('' - - 11223399__``aabbMLKKJJII&%%$$##"(())**++LLMMNNOOiihhggffEEDDCCBB!!  - -TTSSRRQQ00//..-- - - ))**++,,MMNNOOPPccbbaa``::993322 - - ..//0011\\]]^^__RQQPONML)((''&&% - - ,,--..//PPQQRRSSeeddccbbAA@@??>> - - ,,--..//PPQQRRSSeeddccbbAA@@??>> - - ,,--..//PPQQRRSSeeddccbbAA@@??>> - - ,,--..//PPQQRRSSeeddccbbAA@@??>> - - ,,--..//PPQQRRSS``__^^]]221100// ))**++,,WWXXYYZZWVVUUTTS.--,,++* !!""##DDEEFFGGhhiijjkkMMLLKKJJ))((''&& !!""##DDEEFFGGhhiijjkkMMLLKKJJ))((''&& !!""##DDEEFFGGhhiijjkkMMLLKKJJ))((''&& !!""##DDEEFFGGhhiijjkkMMLLKKJJ))((''&& !!""##DDEEFFGGhhiijjkkCCBBAA@@FFGGHHIIcbbaa``_<<;;::998899::;;\\]]^^__YYXXWWVV554433228899::;;\\]]^^__YYXXWWVV554433228899::;;\\]]^^__YYXXWWVV554433228899::;;\\]]^^__YYXXWWVV554433228899::;;\\]]^^__TTSSRRQQ&&%%$$## ::;;<<==cciijjkkHHGGFFEE"!!  - - ,,--..//PPQQRRSSeeddccbbAA@@??>> PPOONNMM,,++**)) - - --..//00QQRRSSTT__^^]]\\1100//.. - - 223399::``aabbccKKJJIIHH%$$##""! 00112233TTUUVVWWaa``__^^==<<;;:: 00112233TTUUVVWWaa``__^^==<<;;:: 00112233TTUUVVWWaa``__^^==<<;;:: 00112233TTUUVVWWaa``__^^==<<;;:: 00112233TTUUVVWW\\[[ZZYY..--,,++--..//00[[\\]]^^SRRQQPON*))((''&$$%%&&''HHIIJJKKllllkkjjIIHHGGFF%%$$##""$$%%&&''HHIIJJKKllllkkjjIIHHGGFF%%$$##""$$%%&&''HHIIJJKKllllkkjjIIHHGGFF%%$$##""$$%%&&''HHIIJJKKllllkkjjIIHHGGFF%%$$##""$$%%&&''HHIIJJKKllllkkjj??>>==<<!!""##$$JJKKQQRR_^^]]\\[87654332 <<==>>??``aabbccUUTTSSRR1100//.. - -<<==>>??``aabbccUUTTSSRR1100//.. - -<<==>>??``aabbccUUTTSSRR1100//.. - -<<==>>??``aabbccUUTTSSRR1100//.. - -<<==>>??``aabbccKKJJIIHH""!!>>??@@AAllllkkjjDDCCBBAA 00112233TTUUVVWWaa``__^^==<<;;::LLKKJJII((''&&%% 11223344UUVVWWXX[[ZZYYXX--,,++** ;;<<==>>iijjkkllGGFFEEDD! 44556677XXYYZZ[[]]\\[[ZZ9988776644556677XXYYZZ[[]]\\[[ZZ9988776644556677XXYYZZ[[]]\\[[ZZ9988776644556677XXYYZZ[[]]\\[[ZZ9988776644556677XXYYZZ[[XXWWVVUU**))(('' - - 11223399__``aabbMLKKJJII&%%$$##"(())**++LLMMNNOOiihhggffEEDDCCBB!! (())**++LLMMNNOOiihhggffEEDDCCBB!! (())**++LLMMNNOOiihhggffEEDDCCBB!! (())**++LLMMNNOOiihhggffEEDDCCBB!! (())**++LLMMNNOOiiccbbaa;;::9933 - -%%&&''((SSTTUUVV[ZZYYXXW21100//. - - @@AABBCCddeeffggQQPPOONN--,,++** @@AABBCCddeeffggQQPPOONN--,,++** @@AABBCCddeeffggQQPPOONN--,,++** @@AABBCCddeeffggQQPPOONN--,,++** @@AABBCCddeeffggGGFFEEDDBBCCDDEEiihgfedc@@??>>==44556677XXYYZZ[[]]\\[[ZZ99887766(())**++LLMMNNOOiihhggffEEDDCCBB!! (())**++LLMMNNOOiihhggffEEDDCCBB!! (())**++LLMMNNOOiihhggffEEDDCCBB!! (())**++LLMMNNOOaa``__^^33221100 - - - -00112233^^__``aaAA@@??>><<==>>?? - - ,,--..//PPQQRRSSeeddccbbAA@@??>> - - ,,--..//PPQQRRSSeeddccbbAA@@??>> - - ,,--..//PPQQRRSSeeddccbbAA@@??>> - - ,,--..//PPQQRRSS]]\\[[ZZ//..--,, 99::;;<>??@@]]\\[[ZZ99887766 !!""##DDEEFFGG44556677XXYYZZ[[]]\\[[ZZ9988776644556677XXYYZZ[[]]\\[[ZZ9988776644556677XXYYZZ[[]]\\[[ZZ9988776644556677XXYYZZ[[UUTTSSRR''&&%%$$AABBCCDDYYXXWWVV55443322$$%%&&''HHIIJJKK8899::;;\\]]^^__YYXXWWVV554433228899::;;\\]]^^__YYXXWWVV554433228899::;;\\]]^^__YYXXWWVV554433228899::;;\\]]^^__QQKKJJII##""!!EEFFGGHHUUTTSSRR1100//.. - -(())**++LLMMNNOO<<==>>??``aabbccUUTTSSRR1100//.. - -<<==>>??``aabbccUUTTSSRR1100//.. - -<<==>>??``aabbccUUTTSSRR1100//.. - -<<==>>??``aabbccHHGGFFEE!!""##IIJJKKQQQQPPOONN--,,++** - - ,,--..//PPQQRRSS@@AABBCCddeeffggQQPPOONN--,,++** @@AABBCCddeeffggQQPPOONN--,,++** @@AABBCCddeeffggQQPPOONN--,,++** @@AABBCCddeeffggDDCCBBAA$$%%&&''RRSSTTUUMMLLKKJJ))((''&& 00112233TTUUVVWW !!""##DDEEFFGGhhiijjkkMMLLKKJJ))((''&& !!""##DDEEFFGGhhiijjkkMMLLKKJJ))((''&& !!""##DDEEFFGGhhiijjkkMMLLKKJJ))((''&& !!""##DDEEFFGGhhiijjkk@@??>>==(())**++VVWWXXYYIIHHGGFF%%$$##""44556677XXYYZZ[[$$%%&&''HHIIJJKKllllkkjjIIHHGGFF%%$$##""$$%%&&''HHIIJJKKllllkkjjIIHHGGFF%%$$##""$$%%&&''HHIIJJKKllllkkjjIIHHGGFF%%$$##""$$%%&&''HHIIJJKKllddccbb<<;;::99 ,,--..//ZZ[[\\]]EEDDCCBB!! 8899::;;\\]]^^__``aabdQZ|bdQZ|bdQZ|H~fH~fH~f`JXQrے`JtArdlJtArnXv`~HfvnXZp˂Zp˂Zp˂tAJltAJltAJlf`vXf`vXf`vXے`Jے`Jے`J|ZdQ|ZdQ|ZdQHfpvHfpvHfpvZp˂Zp˂Zp˂tAJltAJltAJlf`vXf`vXf`vXr˂pJXQrbtlZdQbtl|ZdQnXv`v`f~fZp˂Zp˂Zp˂tAJltAJltAJlf`vXf`vXf`vXے`Jے`Jے`J|ZdQ|ZdQ|ZdQHfpvHfpvHfpvZp˂Zp˂Zp˂tAJltAJltAJlf`vXf`vXf`vXr˂pJXQrp`JXQtArdlJtArvnXv`ffpvZp˂Zp˂Zp˂tAJltAJlJltf`vXf`vXf`vXے`Jے`Jے`JXQ|ZdQ|ZdQ|ZdQHfpvHfpvfpvZp˂Zp˂Zp˂tAJltAJlJltf`vXf`vXf`vXHAbےpZHAbbtlZdQbtvnXnXv`~HfZp˂Zp˂Zp˂tAJltAJldrtAdrtAdrtA`vXn`vXn`vXn˂p`XQr˂|ZdQbd|Zf~fppvnv`frXQJ`rXQJ`rXQJ`tbdQZtbdQZtbdQZnvpnvpnvpXQr˂XQr˂XQr˂btlbtlbtlnXvnXvnXvrXQJ`rXQJ`rXQJ`tbdQZtbdQZtbdQZnvpnvpnvp`JXQr˂p`JJtArdlJtAbnXvf~HpvnrXQJ`rXQJ`rXQJ`tbdQZtbdQZtbdQZnvpnvpnvpXQr˂XQr˂XQr˂btlbtlbtlnXvnXvnXvrXQJ`rXQJ`rXQJ`tbdQZtbdQZtbdQZnvpnvpnvpZHAb˂pZHArbt|ZdQbd|Zv`f~~HfpnrXQJrXQJ`rXQJ`rbdQZtbdQZtbdQZbnvnvpnvpnr˂XQr˂XQr˂rbtbtlbtlbnXvnXvnXvnrXQJrXQJ`rXQJ`rbdQZtbdQZtbdQZbnvnvpnvpnr˂`JXQrے`J|ZdQbl|Zv`ff~fppvnrXQJ`rXQJ`rXQJ`tbdQZtbdQZJltJltJltvpfvpfvpfJXQrp`JXQtl|dQbtvnXXv`f~HfpےbHAےbHAےbHA|dr|dr|dtAfH~fH~fH~pZHAbpZHAbpZHAJtArdJtArdJtArd`f~`f~`fHےbHAےbHAےbHA|dr|dr|dtAfH~fH~fH~˂pZXQr˂|ZdQrd|`f~fpfpvXv`fےbHAےbHAےbHA|dr|dr|drfH~fH~fH~pZHAbpZHAbpZHAbJtArdJtArdJtArd`f~`f~`f~ےbHAےbHAےbHA|dr|dr|drfH~fH~fH~ے`JXQbے`l|ZdQtl|dQbt璅fpvvnX`ےHAےbHAےbHA|dr|dr|drpfHfH~fH~pZHAbpZHAbpZHAblJtAdJtArdJtArd`f~`f~`f~`ےHAےbHAےbHA|dr|dr|drpfHfH~fH~p`JXQ˂p`XQr˂tlJdQbt璕~HfpvnXXv`fےbHAےbHAےbHA|dr|drbdQZ|bdQZ|bdQZ|H~fH~fH~f˂pZHAr˂pZdQbtl|ZdQv`f~fpvvnXZp˂Zp˂Zp˂tAJltAJlJltf`vXf`vXf`vXے`Jے`Jے`JXQ|ZdQ|ZdQ|ZdQHfpvHfpvfpvZp˂Zp˂Zp˂tAJltAJlJltf`vXf`vXf`vXHAbےpZHAbbtlZdQbtvnXnXv`~HfZp˂Zp˂Zp˂tAJltAJltAJlf`vXf`vXf`vXے`Jے`Jے`J|ZdQ|ZdQ|ZdQHfpvHfpvHfpvZp˂Zp˂Zp˂tAJltAJltAJlf`vXf`vXf`vXr˂pJXQrbtlZdQbtl|ZdQnXv`v`f~fZp˂Zp˂Zp˂tAJltAJltAJlf`vXf`vXf`vXے`Jے`Jے`J|ZdQ|ZdQ|ZdQHfpvHfpvHfpvZp˂Zp˂Zp˂tAJltAJltAJlf`vXf`vXf`vXr˂pJXQrp`JXQtArdlJtArvnXv`ffpvZp˂Zp˂Zp˂tAJltAJldrtAdrtAdrtA`vXn`vXn`vXnbے`ZHAblJtAbtl~HfpۅnXv`v`frXQJ`rXQJ`rbdQZtbdQZtbdQZbnvnvpnvpnr˂XQr˂XQr˂rbtbtlbtlbnXvnXvnXvnrXQJrXQJ`rXQJ`rbdQZtbdQZtbdQZbnvnvpnvpnr˂`JXQrے`J|ZdQbl|Zv`ff~fppvnrXQJ`rXQJ`rXQJ`tbdQZtbdQZtbdQZnvpnvpnvpXQr˂XQr˂XQr˂btlbtlbtlnXvnXvnXvrXQJ`rXQJ`rXQJ`tbdQZtbdQZtbdQZnvpnvpnvp`JXQr˂p`JJtArdlJtAbnXvf~HpvnrXQJ`rXQJ`rXQJ`tbdQZtbdQZtbdQZnvpnvpnvpXQr˂XQr˂XQr˂btlbtlbtlnXvnXvnXvrXQJ`rXQJ`rXQJ`tbdQZtbdQZtbdQZnvpnvpnvpZHAb˂pZHArbt|ZdQbd|Zv`f~~HfpnrXQJrXQJ`rXQJ`rbdQZtbdQZtbdQZtAJlJltJltJltvpfvpfr˂pJXQrے`JXQrd|JtArdvnXf~HrQJHAےbHAےbHA|dr|dr|drpfHfH~fH~pZHAbpZHAbpZHAblJtAdJtArdJtArd`f~`f~`f~`ےHAےbHAےbHA|dr|dr|drpfHfH~fH~p`JXQ˂p`XQr˂tlJdQbt璕~HfpvnXXv`fےbHAےbHAےbHA|dr|dr|dtAfH~fH~fH~pZHAbpZHAbpZHAJtArdJtArdJtArd`f~`f~`fHےbHAےbHAےbHA|dr|dr|dtAfH~fH~fH~˂pZXQr˂|ZdQrd|`f~fpfpvXv`fےbHAےbHAےbHA|dr|dr|drfH~fH~fH~pZHAbpZHAbpZHAbJtArdJtArdJtArd`f~`f~`f~ےbHAےbHAےbHA|dr|dr|drfH~fH~fH~ے`JXQbے`l|ZdQtl|dQbt璅fpvvnX`ےHAےbHAےbHA|dr|dr|drtbdQZbdQZ|bdQZ|bdQZ|H~fH~f`JXQr˂p`Jr˂pZdQbt|ZdQv`f~ffpvZp˂Zp˂Zp˂tAJltAJltAJlf`vXf`vXf`vXے`Jے`Jے`J|ZdQ|ZdQ|ZdQHfpvHfpvHfpvZp˂Zp˂Zp˂tAJltAJltAJlf`vXf`vXf`vXr˂pJXQrp`JXQtArdlJtArvnXv`ffpvZp˂Zp˂Zp˂tAJltAJlJltf`vXf`vXf`vXے`Jے`Jے`JXQ|ZdQ|ZdQ|ZdQHfpvHfpvfpvZp˂Zp˂Zp˂tAJltAJlJltf`vXf`vXf`vXHAbےpZHAbbtlZdQbtvnXnXv`~HfZp˂Zp˂Zp˂tAJltAJltAJlf`vXf`vXf`vXے`Jے`Jے`J|ZdQ|ZdQ|ZdQHfpvHfpvHfpvZp˂Zp˂Zp˂tAJltAJltAJlf`vXf`vXf`vXr˂pJXQrbtlZdQbtl|ZdQnXv`v`f~fZp˂Zp˂Zp˂tAJltAJltAJl|dtAdrtAdrtA`vXn`vXn`vXn˂pZXQr˂|ZdQbl|ZbtlpvnnXv`rXQJ`rXQJ`rXQJ`tbdQZtbdQZtbdQZnvpnvpnvpXQr˂XQr˂XQr˂btlbtlbtlnXvnXvnXvrXQJ`rXQJ`rXQJ`tbdQZtbdQZtbdQZnvpnvpnvpZHAb˂pZHArbt|ZdQbd|Zv`f~~HfpnrXQJrXQJ`rXQJ`rbdQZtbdQZtbdQZbnvnvpnvpnr˂XQr˂XQr˂rbtbtlbtlbnXvnXvnXvnrXQJrXQJ`rXQJ`rbdQZtbdQZtbdQZbnvnvpnvpnr˂`JXQrے`J|ZdQbl|Zv`ff~fppvnrXQJ`rXQJ`rXQJ`tbdQZtbdQZtbdQZnvpnvpnvpXQr˂XQr˂XQr˂btlbtlbtlnXvnXvnXvrXQJ`rXQJ`rXQJ`tbdQZtbdQZtbdQZnvpnvpnvp`JXQr˂p`JJtArdlJtAbnXvf~HpvnrXQJ`rXQJ`rXQJ`tbdQZtbdQZtbdQZJltJltJltvpfvpfvpfHAbےpZHAbtlJdQbt|ZdQbXv`ff~fpےbHAےbHAےbHA|dr|dr|drfH~fH~fH~pZHAbpZHAbpZHAbJtArdJtArdJtArd`f~`f~`f~ےbHAےbHAےbHA|dr|dr|drfH~fH~fH~ے`JXQbے`l|ZdQtl|dQbt璅fpvvnX`ےHAےbHAےbHA|dr|dr|drpfHfH~fH~pZHAbpZHAbpZHAblJtAdJtArdJtArd`f~`f~`f~`ےHAےbHAےbHA|dr|dr|drpfHfH~fH~p`JXQ˂p`XQr˂tlJdQbt璕~HfpvnXXv`fےbHAےbHAےbHA|dr|dr|dtAfH~fH~fH~pZHAbpZHAbpZHAJtArdJtArdJtArd`f~`f~`fHےbHAےbHAےbHA|dr|dr|dtAfH~fH~fH~˂pZXQr˂|ZdQrd|`f~fpfpvXv`fےbHAےbHAےbHA|dr|dr|drbnvpfHfH~fH~pZHAbpZHAbpZHAblJtAdJtArdJtArd`f~`f~`f~`ےHAےbHAےbHA|dr|dr|drpfHfH~fH~XQr˂`JXQr˂p`Zb㉀ۑpZQXb㉀f۝`vf۝`vrQtJlrQtJlf`vXf`vXf`vXے`Jے`Jے`J|ZdQ|ZdQ|ZdQHfpvHfpvHfpvZp˂Zp˂Zp˂tAJltAJltAJlf`vXf`vXf`vXpZHAb˂pZQXb㉀ہ`ZQXbXnv˅Xnv˅Xnv˒tbAdtbAdnvpnvpnvpXQr˂XQr˂XQr˂btlbtlbtlnXvnXvnXvrXQJ`rXQJ`rXQJ`tbdQZtbdQZtbdQZnvpnvpnvpے`JHAbےpJAHr󉀒ۑpJpfH~pfH~pfH~Z|dZ|dfH~fH~fH~pZHAbpZHAbpZHAbJtArdJtArdJtArd`f~`f~`f~ےbHAےbHAےbHA|dr|dr|drfH~fH~fH~XQr˂`JXQrˁ`ZAHr󙐂˅f۝`vf۝`vf۝`vrQtJlrQtJlf`vXf`vXf`vXے`Jے`Jے`J|ZdQ|ZdQ|ZdQHfpvHfpvHfpvZp˂Zp˂Zp˂tAJltAJltAJlf`vXf`vXf`vXp`JXQ˂p`QXb㉀ہ`ZQXbXnv˅Xnv˅Xnv˒tbAdtbAdnvpnvpnvpXQr˂XQr˂XQr˂btlbtlbtlnXvnXvnXvrXQJ`rXQJ`rXQJ`tbdQZtbdQZtbdQZnvpnvpnvpr˂pJXQrp`ZQXۑp`pfH~pfH~p|dZ|dZ|dfH~fH~fH~pZHAbpZHAbpZHAJtArdJtArdJtArd`f~`f~`fHےbHAےbHAےbHA|dr|dr|dtAfH~fH~fH~ZHAb˂pZHAb㉀ۑpZQXb㉀f۝`vf۝`vrQtJlrQtJlrQtJlf`vXf`vXf`vXے`Jے`Jے`JXQ|ZdQ|ZdQ|ZdQHfpvHfpvfpvZp˂Zp˂Zp˂tAJltAJlJltf`vXf`vXf`vXے`JXQbے`JAHr󙐒ۑpJAHXnv˅Xnv˒tbAdtbAdtbAdnvpnvpnr˂XQr˂XQr˂rbtbtlbtlbnXvnXvnXvnrXQJrXQJ`rXQJ`rbdQZtbdQZtbdQZbnvnvpnvpnے`Jr˂pJXQrˁ`ZQXr󙐂ˁ`pfH~pfH~Z|dZ|dZ|drQtefghijkllkjihgf \ No newline at end of file diff --git a/vendor/endroid/qr-code/assets/data/qrv23_2.dat b/vendor/endroid/qr-code/assets/data/qrv23_2.dat deleted file mode 100755 index 50e0b3e29276cee8584dc0d0ea51eecce9c2661f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32809 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 pTCHqLeWrUp$zL`a{}SeeZSkzSH%# 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:9:9:9:9:9:9:9:9:9:9:9:9878787878787878765656565656565656543434343434343434343432121212121212121212121210/0/0/0/0/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)*)*)*)*)('('('('('('('('('('('('&%&%&%&%&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!"!"!"!"!            popopopopopopopopopopoponmnmnmnmnmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijigggghghgghghghghfefefefefefefefefefefefedcdcdcdcdcdcdcdcdcdcdcdcbababababababababa`_`_`_`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPOPONMNMNMMNMNMNMNMNMNMNMNLKLKLKLKLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCDCDCDCDCBABABABABABABABABABABABA@?@?@?@?@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9:9:9:9:9878787878787878765656565656565654333333443434343434343432121212121212121212121210/0/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)*)*)*)*)('('('('('('('('('('('('&%&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!"!"!"!"!            popopopopopopopopopopoponmnmnmnmnmnmnmnmlklklklklklklklklklklklkjijijijijijijijihghghghgghghggggfefefefefefefefefefefefedcdcdcdcdcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMMMMMNMMNMNMNMMMNMNMNMNLKLKLKLKLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCDCDCDCDCBABABABABABABABABABABABA@?@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9:9:9:9:9878787878787878765656565656565653434343443434343434343432121212121212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)*)*)*)*)('('('('('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!"!"!"!"!            popopopopopopopopopopoponmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijijijijijihghghghggghghghgfefefefefefefefefefefefedcdcdcdcdcdcdcdcdcbababababababababababa`_`_`_`_`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMMMMMNMNMMNMNMNMNLKLKLKLKLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCDCDCDCDCBABABABABABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9:9:9:9:9878787878787878765656565656565653434343433333434434343332121212121212121210/0/0/0/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)*)*)*)*)('('('('('('('('('&%&%&%&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!"!"!"!"!            popopopopopopopopopopoponmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghghghghghghghghghgfefefefefefefefefefefefedcdcdcdcdcdcdcdcbabababababababababababa`_`_`_`_`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMMNMNMMMMLKLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCDCDCDCDCBABABABABABABABABA@?@?@?@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9:9:9:9:98787878787878787656565656565656534343434343434343343434321212121212121210/0/0/0/0/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!"!"!"!"!            popopopopopopopopopopoponmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijiggggghghhghghghghghghghgfefefefefefefefefedcdcdcdcdcdcdcdcdcdcdcbabababababababababababa`_`_`_`_`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMMMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9:9:9:9:98787878787878787656565656565656534343434343434344321212121212121212121210/0/0/0/0/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)*)('('('('('('('('('('('&%&%&%&%&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!"!"!"!"!         popopopopopopoponmnmnmnmnmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijighghghghhghghggghghghghgfefefefefefefefedcdcdcdcdcdcdcdcdcdcdcdcbabababababababababababa`_`_`_`_`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCDCBABABABABABABABABABABA@?@?@?@?@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9:98787878787878787878787656565656565656534343434343434342121212121212121212121210/0/0/0/0/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('('('('('&%&%&%&%&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!"!"!"!"!        popopopopopopoponmnmnmnmnmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijighghghghggghghghhghghghgfefefefefefefefedcdcdcdcdcdcdcdcdcdcdcdcbabababababababababababa`_`_`_`_`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPOMMMMMNMNNMNMNMNMLKLKLKLKLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABABABABABA@?@?@?@?@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9878787878787878787878787656565656565656533333343343434342121212121212121212121210/0/0/0/0/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)*)*)*)('('('('('('('('('('('('&%&%&%&%&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!"!           popopopopopopoponmnmnmnmnmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijighghghghghghghgheeeeeefefefefefefefefefedcdcdcdcdcdcdcdcdcdcdcdcbabababababababababababa`_`_`_`_`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPOMNMNMNMNNMNMNMMMLKLKLKLKLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCDCDCDCBABABABABABABABABABABABA@?@?@?@?@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9:9:9:9878787878787878787656565656565656565656543434343343434332121212121212121212121210/0/0/0/0/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)*)*)*)*)('('('('('('('('('('('('&%&%&%&%&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!            popopopopopopoponmnmnmnmnmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijighghghghghghghghfefefefefefefefefefefefedcdcdcdcdcdcdcdcdcdcdcdcbabababababababababababa`_`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPOPOPOPOMNMNMNMNMMMNMNMNLKLKLKLKLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCDCDCDCDCBABABABABABABABABABABABA@?@?@?@?@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9:9:9:9:9878787878787878765656565656565656565656543434343333343432121212121212121212121210/0/0/0/0/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)*)*)*)*)('('('('('('('('('('('('&%&%&%&%&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!"!"!"!                       - - - - - - - - - - - -             - - - - - - - - - - - -             - - - - - - - - - - - -             - - - - - - - - - - - -             - - - - - - - - -             - - - - - - - -             - - - - - - - - - - -             - - - - - - - - - - - -          - - - - - - - - - - - -         - - - - - - - - - - - - ppoonnmmHHGGFFEE AABBCCDDiijjkkllFFEEDDCC**++,,--\\]]^^__VUUTTSSR)((''&&% 44556677\\]]^^__]]\\[[ZZ55443322 - -DDEEFFGGllmmnnooMMLLKKJJ%%$$##"",,--..//TTUUVVWWeeddccbb==<<;;::<<==>>??ddeeffggUUTTSSRR--,,++**$$%%&&''LLMMNNOOmmllkkjjEEDDCCBBBBCCDDEEmmggffee;;::9933 ())**++,UVVWWXXYaa``__^^99887766@@AABBCChhiijjkkQQPPOONN))((''&&(())**++PPQQRRSSiihhggffAA@@??>>8899::;;``aabbccYYXXWWVV1100//..  !!""##HHIIJJKKppppoonnIIHHGGFF!!  - - 00112233XXYYZZ[[\\[[ZZYY**))(('' >>??@@AAppppoonnDDCCBBAA<<==>>??ddeeffggUUTTSSRR--,,++**$$%%&&''LLMMNNOOmmllkkjjEEDDCCBB 44556677\\]]^^__]]\\[[ZZ55443322 - -DDEEFFGGllmmnnooMMLLKKJJ%%$$##"",,--..//TTUUVVWWeeddccbb==<<;;:: JJKKLLMM``__^^]]..--,,++ 01122334]^^__``allkkjjiiDDCCBBAA EEFFGGHHmmnnooppBBAA@@?? ..//0011``aabbccQPONMMLL%$$##""!8899::;;``aabbccYYXXWWVV1100//..  !!""##HHIIJJKKppppoonnIIHHGGFF!!  - - 00112233XXYYZZ[[aa``__^^99887766@@AABBCChhiijjkkQQPPOONN))((''&&(())**++PPQQRRSSiihhggffAA@@??>>FFGGHHIIddccbbaa221100//,--..//0YZZ[[\\]]]\\[[ZZ55443322 - -DDEEFFGGllmmnnooMMLLKKJJ%%$$##"",,--..//TTUUVVWWeeddccbb==<<;;::<<==>>??ddeeffggUUTTSSRR--,,++**$$%%&&''LLMMNNOOmmllkkjjEEDDCCBB 44556677\\]]^^__XXWWVVUU&&%%$$##BBCCDDEEmmlkjihg@@??>>==@@AABBCChhiijjkkQQPPOONN))((''&&(())**++PPQQRRSSiihhggffAA@@??>>8899::;;``aabbccYYXXWWVV1100//..  !!""##HHIIJJKKppppoonnIIHHGGFF!!  - - 00112233XXYYZZ[[aa``__^^99887766!!""##$$SSTTUUVV\\[[ZZYY**))(('' - - 567899::abbccddehhggffee@@??>>==!!""##$$IIJJKKLLppoonnmm>>==<<;; - - 223399::ddeeffggKKJJIIHH! <<==>>??ddeeffggUUTTSSRR--,,++**$$%%&&''LLMMNNOOmmllkkjjEEDDCCBB 44556677\\]]^^__]]\\[[ZZ55443322 - -DDEEFFGGllmmnnooMMLLKKJJ%%$$##"",,--..//TTUUVVWWeeddccbb==<<;;:: JJKKLLMM``__^^]]..--,,++ 01122334]^^__``aYYXXWWVV1100//..  !!""##HHIIJJKKppppoonnIIHHGGFF!!  - - 00112233XXYYZZ[[aa``__^^99887766@@AABBCChhiijjkkQQPPOONN))((''&&(())**++PPQQRRSSiihhggffAA@@??>>8899::;;``aabbccTTSSMMLL""!! FFGGHHIIgffeeddc<<;;::99 DDEEFFGGllmmnnooMMLLKKJJ%%$$##"",,--..//TTUUVVWWeeddccbb==<<;;::<<==>>??ddeeffggUUTTSSRR--,,++**$$%%&&''LLMMNNOOmmllkkjjEEDDCCBB 44556677\\]]^^__]]\\[[ZZ55443322 - -%%&&''((WWXXYYZZXXWWVVUU&&%%$$##;;<<==>>effgghijddccbbaa<<;;::99%%&&''((MMNNOOPPggffeedd::993322 - - ;;<<==>>mmnnooppGGFFEEDD@@AABBCChhiijjkkQQPPOONN))((''&&(())**++PPQQRRSSiihhggffAA@@??>>8899::;;``aabbccYYXXWWVV1100//..  !!""##HHIIJJKKppppoonnIIHHGGFF!!  - - 00112233XXYYZZ[[aa``__^^99887766!!""##$$SSTTUUVV\\[[ZZYY**))(('' - - 567899::abbccddeUUTTSSRR--,,++**$$%%&&''LLMMNNOOmmllkkjjEEDDCCBB 44556677\\]]^^__]]\\[[ZZ55443322 - -DDEEFFGGllmmnnooMMLLKKJJ%%$$##"",,--..//TTUUVVWWeeddccbb==<<;;::<<==>>??ddeeffggKKJJIIHH JJKKLLMMcbbaa``_87654332 - -  !!""##HHIIJJKKppppoonnIIHHGGFF!!  - - 00112233XXYYZZ[[aa``__^^99887766@@AABBCChhiijjkkQQPPOONN))((''&&(())**++PPQQRRSSiihhggffAA@@??>>8899::;;``aabbccYYXXWWVV1100//.. ))**++,,[[\\]]^^TTSSMMLL""!! ??@@AABBklmmnnoo``__^^]]88776655 ))**++,,QQRRSSTTccbbaa``1100//.. ??@@AABBppoonnmmCCBBAA@@DDEEFFGGllmmnnooMMLLKKJJ%%$$##"",,--..//TTUUVVWWeeddccbb==<<;;::<<==>>??ddeeffggUUTTSSRR--,,++**$$%%&&''LLMMNNOOmmllkkjjEEDDCCBB 44556677\\]]^^__]]\\[[ZZ55443322 - -%%&&''((WWXXYYZZXXWWVVUU&&%%$$##;;<<==>>effgghijQQPPOONN))((''&&(())**++PPQQRRSSiihhggffAA@@??>>8899::;;``aabbccYYXXWWVV1100//..  !!""##HHIIJJKKppppoonnIIHHGGFF!!  - - 00112233XXYYZZ[[aa``__^^99887766@@AABBCChhiijjkkGGFFEEDD!!""##$$SSTTUUVV_^^]]\\[21100//.$$%%&&''LLMMNNOOmmllkkjjEEDDCCBB 44556677\\]]^^__]]\\[[ZZ55443322 - -DDEEFFGGllmmnnooMMLLKKJJ%%$$##"",,--..//TTUUVVWWeeddccbb==<<;;::<<==>>??ddeeffggUUTTSSRR--,,++**--..//00__``aabbKKJJIIHHCCDDEEFFppppoonn\\[[ZZYY44332211 - - --..//00UUVVWWXX__^^]]\\--,,++**CCDDEEFFlkjihggf??>>==<< !!""##HHIIJJKKppppoonnIIHHGGFF!!  - - 00112233XXYYZZ[[aa``__^^99887766@@AABBCChhiijjkkQQPPOONN))((''&&(())**++PPQQRRSSiihhggffAA@@??>>8899::;;``aabbccYYXXWWVV1100//.. ))**++,,[[\\]]^^TTSSMMLL""!! ??@@AABBklmmnnooMMLLKKJJ%%$$##"",,--..//TTUUVVWWeeddccbb==<<;;::<<==>>??ddeeffggUUTTSSRR--,,++**$$%%&&''LLMMNNOOmmllkkjjEEDDCCBB 44556677\\]]^^__]]\\[[ZZ55443322 - -DDEEFFGGllmmnnooCCBBAA@@%%&&''((WWXXYYZZ[ZZYYXXW.--,,++*(())**++PPQQRRSSiihhggffAA@@??>>8899::;;``aabbccYYXXWWVV1100//..  !!""##HHIIJJKKppppoonnIIHHGGFF!!  - - 00112233XXYYZZ[[aa``__^^99887766@@AABBCChhiijjkkQQPPOONN))((''&&11223399ccddeeffGGFFEEDD GGHHIIJJmmllkkjjXXWWVVUU00//..-- - - 11223344YYZZ[[\\[[ZZYYXX))((''&&GGHHIIJJfeeddccb;;::9987 $$%%&&''LLMMNNOOmmllkkjjEEDDCCBB 44556677\\]]^^__]]\\[[ZZ55443322 - -DDEEFFGGllmmnnooMMLLKKJJ%%$$##"",,--..//TTUUVVWWeeddccbb==<<;;::<<==>>??ddeeffggUUTTSSRR--,,++**--..//00__``aabbKKJJIIHHCCDDEEFFppppoonnIIHHGGFF!!  - - 00112233XXYYZZ[[aa``__^^99887766@@AABBCChhiijjkkQQPPOONN))((''&&(())**++PPQQRRSSiihhggffAA@@??>>8899::;;``aabbccYYXXWWVV1100//..  !!""##HHIIJJKKppppoonn??>>==<< - -))**++,,[[\\]]^^WVVUUTTS*))((''&,,--..//TTUUVVWWeeddccbb==<<;;::<<==>>??ddeeffggUUTTSSRR--,,++**$$%%&&''LLMMNNOOmmllkkjjEEDDCCBB 44556677\\]]^^__]]\\[[ZZ55443322 - -DDEEFFGGllmmnnooMMLLKKJJ%%$$##"" - - ::;;<<==ggmmnnooCCBBAA@@ !!""##$KKLLMMNOiihhggffYYXXWWVVTTSSRRQQ,,++**)) 55667788]]^^__``WWVVUUTT%%$$##"" !!KKLLMMSSbaa``__^65433221 - - (())**++PPQQRRSSiihhggffAA@@??>>8899::;;``aabbccYYXXWWVV1100//..  !!""##HHIIJJKKppppoonnIIHHGGFF!!  - - 00112233XXYYZZ[[aa``__^^99887766@@AABBCChhiijjkkQQPPOONN))((''&&11223399ccddeeffGGFFEEDD GGHHIIJJmmllkkjjEEDDCCBB 44556677\\]]^^__]]\\[[ZZ55443322 - -DDEEFFGGllmmnnooMMLLKKJJ%%$$##"",,--..//TTUUVVWWeeddccbb==<<;;::<<==>>??ddeeffggUUTTSSRR--,,++**$$%%&&''LLMMNNOOmmggffee;;::9933 --..//00__``aabbSRQPONMM&%%$$##" - - 00112233XXYYZZ[[aa``__^^99887766@@AABBCChhiijjkkQQPPOONN))((''&&(())**++PPQQRRSSiihhggffAA@@??>>8899::;;``aabbccYYXXWWVV1100//..  !!""##HHIIJJKKppppoonnIIHHGGFF!!  >>??@@AAppppoonn??>>==<< - -$%%&&''(PQRSSTTUeeddccbbUUTTSSRRPPOONNMM((''&&%%99::;;<>??ddeeffggUUTTSSRR--,,++**$$%%&&''LLMMNNOOmmllkkjjEEDDCCBB 44556677\\]]^^__]]\\[[ZZ55443322 - -DDEEFFGGllmmnnooMMLLKKJJ%%$$##"" - - ::;;<<==ggmmnnooCCBBAA@@ !!""##$KKLLMMNOiihhggffAA@@??>>8899::;;``aabbccYYXXWWVV1100//..  !!""##HHIIJJKKppppoonnIIHHGGFF!!  - - 00112233XXYYZZ[[aa``__^^99887766@@AABBCChhiijjkkQQPPOONN))((''&&(())**++PPQQRRSSddccbbaa221100//11223399ccddeeffLLKKJJII"!!  44556677\\]]^^__]]\\[[ZZ55443322 - -DDEEFFGGllmmnnooMMLLKKJJ%%$$##"",,--..//TTUUVVWWeeddccbb==<<;;::<<==>>??ddeeffggUUTTSSRR--,,++**$$%%&&''LLMMNNOOmmllkkjjEEDDCCBBBBCCDDEEmmggffee;;::9933 ())**++,UVVWWXXYaa``__^^QQPPOONNLLKKJJII$$##""!!==>>??@@eeffgghhJJIIHHGG&&''(())XXYYZZ[[ZYYXXWWV-,,++**) - - 00112233XXYYZZ[[aa``__^^99887766@@AABBCChhiijjkkQQPPOONN))((''&&(())**++PPQQRRSSiihhggffAA@@??>>8899::;;``aabbccYYXXWWVV1100//..  !!""##HHIIJJKKppppoonnIIHHGGFF!!  >>??@@AAppppoonn??>>==<< - -$%%&&''(PQRSSTTUeeddccbb==<<;;::<<==>>??ddeeffggUUTTSSRR--,,++**$$%%&&''LLMMNNOOmmllkkjjEEDDCCBB 44556677\\]]^^__]]\\[[ZZ55443322 - -DDEEFFGGllmmnnooMMLLKKJJ%%$$##"",,--..//TTUUVVWW``__^^]]..--,,++ - - ::;;<<==ggmmnnooHHGGFFEE8899::;;``aabbccYYXXWWVV1100//..  !!""##HHIIJJKKppppoonnIIHHGGFF!!  - - 00112233XXYYZZ[[aa``__^^99887766@@AABBCChhiijjkkQQPPOONN))((''&&(())**++PPQQRRSSiihhggffAA@@??>>FFGGHHIIddccbbaa221100//,--..//0YZZ[[\\]]]\\[[ZZMMLLKKJJIIHHGGFF!!  - - 00112233XXYYZZ[[aa``__^^99887766@@AABBCChhiijjkkQQPPOONN))((''&&(())**++PPQQRRSSiihhggffAA@@??>>8899::;;``aabbccLLKKJJII$$%%&&''VVWWXXYYMMLLKKJJ%%$$##""<<==>>??EEDDCCBB 44556677\\]]^^__]]\\[[ZZ55443322 - -DDEEFFGGllmmnnooMMLLKKJJ%%$$##"",,--..//TTUUVVWWeeddccbb==<<;;::<<==>>??ddeeffggHHGGFFEE(())**++ZZ[[\\]]IIHHGGFF!! @@AABBCCAA@@??>>8899::;;``aabbccYYXXWWVV1100//..  !!""##HHIIJJKKppppoonnIIHHGGFF!!  - - 00112233XXYYZZ[[aa``__^^99887766@@AABBCChhiijjkkDDCCBBAA,,--..//^^__``aaEEDDCCBBDDEEFFGG==<<;;::<<==>>??ddeeffggUUTTSSRR--,,++**$$%%&&''LLMMNNOOmmllkkjjEEDDCCBB 44556677\\]]^^__]]\\[[ZZ55443322 - -DDEEFFGGllmmnnoo@@??>>== 00112233bbccddeeAA@@??>> !!""##HHIIJJKK99887766@@AABBCChhiijjkkQQPPOONN))((''&&(())**++PPQQRRSSiihhggffAA@@??>>8899::;;``aabbccYYXXWWVV1100//..  !!""##HHIIJJKKpphhggff<<;;::99 - - - -99::;;<>??ddeeffggUUTTSSRR--,,++**$$%%&&''LLMMNNOOeeddccbb33221100 ==>>??@@aa``__^^99887766(())**++PPQQRRSS1100//..  !!""##HHIIJJKKppppoonnIIHHGGFF!!  - - 00112233XXYYZZ[[aa``__^^99887766@@AABBCChhiijjkkQQPPOONN))((''&&(())**++PPQQRRSSaa``__^^//..--,,AABBCCDD]]\\[[ZZ55443322 - -,,--..//TTUUVVWW--,,++**$$%%&&''LLMMNNOOmmllkkjjEEDDCCBB 44556677\\]]^^__]]\\[[ZZ55443322 - -DDEEFFGGllmmnnooMMLLKKJJ%%$$##"",,--..//TTUUVVWW]]\\[[ZZ++**))((EEFFGGHHYYXXWWVV1100//.. - - 00112233XXYYZZ[[))((''&&(())**++PPQQRRSSiihhggffAA@@??>>8899::;;``aabbccYYXXWWVV1100//..  !!""##HHIIJJKKppppoonnIIHHGGFF!!  - - 00112233XXYYZZ[[YYXXWWVV''&&%%$$IIJJKKLLUUTTSSRR--,,++** 44556677\\]]^^__%%$$##"",,--..//TTUUVVWWeeddccbb==<<;;::<<==>>??ddeeffggUUTTSSRR--,,++**$$%%&&''LLMMNNOOmmllkkjjEEDDCCBB 44556677\\]]^^__UUTTSSMM##""!! !!""##MMSSTTUUQQPPOONN))((''&&8899::;;``aabbccddeefpvnXv`f~HXQJ`ےbHAZp˂rZ|ddrtA~f`f`vXJXQrے`JXbtlJtArd|ZdQ`f~HfpvnXvےbHAZp˂rXQJ`tAJltbdQZpfHf`vXnvpے`JXQr˂pZHAb|ZdQbtlJtArdnXv`f~fpvrXQJ`ےbHAtbdQZ|drtAJlfH~~f`XQHAb˂p`p`JXQJtArdlJtnXv`f~HfpvrXQJ`ےbHAZp˂|drtAJlbnvfH~f`vXpZHAbے`JXQr˂JtArd|ZdQbtlHfpvnXv`fHZp˂rXQJ`ےJltbdQZ|drf`vXnvpfH~ZHAbbے`btllJtAJfpvf~HXv`fZp˂rXQJ`ےbHAtbdQZ|drJltnvpfH~XQr˂pZHAbے`JbtlJtArd|ZdQ`f~HfpvnXvےbHAZp˂rXQJ`tAJltbdQZpfHf`vXnvpے`JXQr˂pZHAbbtdlJtAnXv`v`f`AZprXQJ`˂rXnXv`f~HfpvbHAZp˂rXQJ`ےrtAJlJltvXnnvpZAbےQr˂pJtArd|ZdQbtlHfpvnXv`fHZp˂rXQJ`ےJltbdQZ|drf`vXnvpfH~XQr˂pZHAbے`JbtlJtArd|ZdQ`f~HfpvnrXQJےbHAZp˂|drtAJltbdQZf`vXvXnے`JXQJXQrrbt璂|ZdQArd|`f~HfpvnXvےbHAZp˂rXQJ`tAJltbdQZpfHf`vXnvpے`JXQr˂pZHAb|ZdQbtlJtArdnXv`f~fpvrXQJ`ےbHAtbdQZ|drtAJlnvpfH~f`vXے`JXQJXQrJtArdrd|nvffpv~HfrXQJ`ےbHAZp˂|drtAJlbnvfH~f`vXpZHAbے`JXQr˂JtArd|ZdQbtlHfpvnXv`fHZp˂rXQJ`ےJltbdQZ|drf`vXnvpfH~XQr˂pZHAbے`J|ZdQbdQbtf~H~Hfp˂rXQbAZp˂QJ`ےf~HfpvnXv`p˂rXQJ`ےJlttbdQbdQZ|vp`vfH~`JXQrZHAb|ZdQbtlJtArdnXv`f~fpvrXQJ`ےbHAtbdQZ|drtAJlnvpfH~f`vXpZHAbے`JXQr˂JtArd|ZdQbtlHfpvnXv`ےHAZp˂rXQJ`tAJltbdQZ|drnfvpfHr˂p˂pZHAlJA|btlJZdQbtHfpvnXv`fHZp˂rXQJ`ےJltbdQZ|drf`vXnvpfH~XQr˂pZHAbے`JbtlJtArd|ZdQ`f~HfpvnrXQJےbHAZp˂|drtAJltbdQZfH~f`vXnvprے˂pZHA|ZdQZdQbt~HfpnXv`pvnےbHAZp˂rXQJ`tAJltbdQZpfHf`vXnvpے`JXQr˂pZHAb|ZdQbtlJtArdnXv`f~fpvrXQJ`ےbHAtbdQZ|drtAJlnvpfH~f`vXpZHAbے`JXQr˂tlJlJtArfpvvnXJ`ےrXQJbHAZfpvnXv`f~HXQJ`ےbHAZdrtAJZ|l`vXnXnvvpf˂pZJXQrbtlJtArd|ZdQ`f~HfpvnrXQJےbHAZp˂|drtAJltbdQZfH~f`vXnvpے`JXQr˂pZHA|ZdQbtlJfpvnXv`f~Zp˂rXQJ`ےbHAtbdQZ|drtAJl`vXnXnvZHAbbے`ZdQbtAr|ZlJtnXv`f~fpvrXQJ`ےbHAtbdQZ|drtAJlnvpfH~f`vXpZHAbے`JXQr˂JtArd|ZdQbtlHfpvnXv`ےHAZp˂rXQJ`tAJltbdQZ|drf`vXnvpfH~`JXQrXQr˂btdlJtAvnXf~fpXv`fZp˂rXQJ`ےJltbdQZ|drf`vXnvpfH~XQr˂pZHAbے`JbtlJtArd|ZdQ`f~HfpvnrXQJےbHAZp˂|drtAJltbdQZfH~f`vXnvpے`JXQr˂pZHAtArdd|ZnXHfv`fbHAZp`ےbrXQJ`nXv`f~HfpvbHAZp˂rltbtbdQZvpfpfH~ے`JXQHAbے˂pZHAJtArd|ZdQbtlHfpvnXv`ےHAZp˂rXQJ`tAJltbdQZ|drf`vXnvpfH~XQr˂pZHAbے`JXQbtlJtArdnXv`f~HfpvrXQJ`ےbHAZp˂|drtAJltbdQZvpfpfH~ے`JXQJXQrlJtAdQbtArdZ`f~HfpvnrXQJےbHAZp˂|drtAJltbdQZfH~f`vXnvpے`JXQr˂pZHA|ZdQbtlJfpvnXv`f~Zp˂rXQJ`ےbHAtbdQZ|drtAJlnvpfH~f`vX˂pZpZHAb|ZdQbdQbt璕v`fvnXfpvrXQJ`ےbHAtbdQZ|drtAJlnvpfH~f`vXpZHAbے`JXQr˂JtArd|ZdQbtlHfpvnXv`ےHAZp˂rXQJ`tAJltbdQZ|drf`vXnvpfH~XQr˂pZHAbے`JXQ|ZdQbdQbtpvnnXv˂rXQHAZp˂ےJlf~HfpvnXv`p˂rXQJ`ےdQZ||drH~ff`vrZHA`JXQrbے`|ZdQbtlJfpvnXv`f~Zp˂rXQJ`ےbHAtbdQZ|drtAJlnvpfH~f`vXpZHAbے`JrbtJtArd|ZdQ`f~HfpvnXvےbHAZp˂rXQJ`tAJltbdQZ|dtAH~ff`vrے˂pZHArd|lJtArQbtlHfpvnXv`ےHAZp˂rXQJ`tAJltbdQZ|drf`vXnvpfH~XQr˂pZHAbے`JXQbtlJtArdnXv`f~HfpvrXQJ`ےbHAZp˂|drtAJltbdQZfH~f`vXnvpHAbےے`JtlJlJtAr~Hfpv`fnrXQJےbHAZp˂|drtAJltbdQZfH~f`vXnvpے`JXQr˂pZHA|ZdQbtlJfpvnXv`f~Zp˂rXQJ`ےbHAtbdQZ|drtAJlnvpfH~f`vXpZHAbے`Jrbttl|lJtArXv`f`f~JbHArXQJtbdQZfpvnXv`p˂rXQJ`ےbHAZdrtAJtAJl`vXnXnvbے`˂pZAJXQrbtlJtArdnXv`f~HfpvrXQJ`ےbHAZp˂|drtAJltbdQZfH~f`vXnvpے`JXQr˂lJtAd|ZdQbtlHfpvnXv`f~Zp˂rXQJ`ےbHAtbdQZ|drJlt`vXnXnv`JXQrXQr˂ZdQbtd|ZJfpvnXv`f~Zp˂rXQJ`ےbHAtbdQZ|drtAJlnvpfH~f`vXpZHAbے`JrbtJtArd|ZdQ`f~HfpvnXvےbHAZp˂rXQJ`tAJltbdQZ|dtAf`vXnvpfے`J`JXQrXQr˂tArdd|ZvnX~Hfp`ےHAZp˂rXQJ`tAJltbdQZ|drf`vXnvpfH~XQr˂pZHAbے`JXQbtlJtArdnXv`f~HfpvrXQJ`ےbHAZp˂|drtAJltbdQZfH~f`vXnvpے`JXQr˂l|ZdQZdQbtdtl~HfHfpvZp˂`ےbA|drtAJlnXv`f~HXQJ`ےbHAZp˂rltbtbdQZf`pfHXJXQrb`JX˂pZHAJtArd|ZdQ`f~HfpvnXvےbHAZp˂rXQJ`tAJltbdQZ|dtAf`vXnvpfے`JXQr˂pZHAb|ZdQbtlJtArdnXv`f~HfpvrXQJ`ےbHAZp˂|drtAJlbnvvp`pfH~˂pZpZHAbJArddQbt璀nXv`f~HfpvrXQJ`ےbHAZp˂|drtAJltbdQZfH~f`vXnvpے`JXQr˂lJtAd|ZdQbtlHfpvnXv`f~Zp˂rXQJ`ےbHAtbdQZ|drJltnvpfH~XQHAb˂p`p`JXQ|ZdQbdQbt璕vf~HvnXZp˂rXQJ`ےbHAtbdQZ|drtAJlnvpfH~f`vXpZHAbے`JrbtJtArd|ZdQ`f~HfpvnXvےbHAZp˂rXQJ`tAJltbdQZ|dtAf`vXnvpfے`JXQr˂pZHAbbtllJtAJfpvpvnnXvrXQJ`ZrXtAJltbdQZf~HfpvbHAZp˂rXQJ`ےdQtAJl|dtvXnnvppZHAQr˂pbJAd|ZdQbtlHfpvnXv`f~Zp˂rXQJ`ےbHAtbdQZ|drJltnvpfH~XQr˂pZHAbے`JbtlJtArd|ZdQ`f~HfpvnXvےbHAZp˂rXQJ`tAJltbdQZp`vXvXnvpHAbےے`J|ZdQlJtAr`f~HfpvnXvےbHAZp˂rXQJ`tAJltbdQZ|dtAf`vXnvpfے`JXQr˂pZHAb|ZdQbtlJtArdnXv`f~HfpvrXQJ`ےbHAZp˂|drtAJlbnvfH~f`vXے`JXQJXQrrbttl|lJtArfpvv`f~rXQJ`ےbHAZp˂|drtAJltbdQZfH~f`vXnvpے`JXQr˂lJtAd|ZdQbtlHfpvnXv`f~Zp˂rXQJ`ےbHAtbdQZ|drJltnvpfH~XQr˂pZHAbے`JJtArdrd|~HXv`p`pvbHAQJ`ےtbdQZ|drfpvnXv`p˂rXQJ`ےbHAZtbdQbdQZ|vpfHfH~bے`ZHAb|ZdQbtlJtArdnXv`f~HfpvrXQJ`ےbHAZp˂|drtAJlbnvfH~f`vXpZHAbے`JXQr˂JtArd|ZdQbtlHfpvnXv`fHZp˂rXQJ`ےJltbdQZ|drnvpvpfHfے`J`JXQrXQr˂btlZdQbtHfpvnXv`f~Zp˂rXQJ`ےbHAtbdQZ|drJltnvpfH~XQr˂pZHAbے`JbtlJtArd|ZdQ`f~HfpvnXvےbHAZp˂rXQJ`tAJltbdQZpfHf`vXnvpr˂p˂pZHAl|ZdQZdQbtdtlnXv`fvnےbHAZp˂rXQJ`tAJltbdQZ|dtAf`vXnvpfے`JXQr˂pZHAb|ZdQbtlJtArdnXv`f~HfpvrXQJ`ےbHAZp˂|drtAJlbnvfH~f`vXpZHAbے`JXQr˂|ZdQZdQbtfpvvnXnrXQJZp˂bHAZp|drtAJltbdQZ|drf`vXnvpfH~XQr˂pZHAbے`JbtlJtArd|ZdQ`f~HfpvnrXQJےbHAZp˂|drtAJltbdQZfH~f`vXnvpے`JXQHAXQrb㉀ۑpۑpJAHf۝`vXnvZ|drQtJl|drtAJlnvpfH~f`vXpZHAbے`JXQr˂JtArd|ZdQbtlHfpvnXv`ےHAZp˂rXQJ`tAJltbdQZ|drf`vXnvpfH~r˂p˂pZHAJAHrr󙐂ˁ`XnvˍpfH~rQtJltbAdtAJltbdQZfH~f`vXnvpے`JXQr˂pZHA|ZdQbtlJfpvnXv`f~Zp˂rXQJ`ےbHAtbdQZ|drtAJlnvpfH~f`vXZHAbbے`ˁ`ZQXZQXb㉀pfH~ㅐf۝`vtbAdZ|dtbdQZ|drf`vXnvpfH~XQr˂pZHAbے`JXQbtlJtArdnXv`f~HfpvrXQJ`ےbHAZp˂|drtAJltbdQZfH~f`vXnvpے`JXQJXQrb㉀ۑpۑpJAHf۝`vXnvZ|drQtJl|drtAJlnvpfH~f`vXpZHAbے`JrbtJtArd|ZdQ`f~HfpvnXvےbHAZp˂rXQJ`tAJltbdQZ|dtAf`vXnvpfZHAbr˂p˂p`Z`ZQXbㅐf۝`vXnvˍpfH~rQtJltbAdtAJltbdQZfH~f`vXnvpے`JXQr˂lJtAd|ZdQbtlHfpvnXv`f~Zp˂rXQJ`ےbHAtbdQZ|drJltnvpfH~ے`J`JXQrQXb㉀ۉۑpJXnvˍpfH~ㅐf۝`vtbAdZ|dtbdQZ|dtAf`vXnvpfے`JXQr˂pZHAb|ZdQbtlJtArdnXv`f~HfpvrXQJ`ےbHAZp˂|drtAJlbnvfH~f`vXXQr˂˂pZpJAHrAHr󙐂ˍpfH~ㅐf۝`vXnvZ|drQtJl|drJltnvpfH~XQr˂pZHAbے`JbtlJtArd|ZdQ`f~HfpvnXvےbHAZp˂rXQJ`tAJltbdQZpfHf`vXnvppZHAbHAbےˁ`Z`ZQXbㅐf۝`vXnvˍp|drQtJltbAdtAJlbnvfH~f`vXpZHAbے`JXQr˂JtArd|ZdQbtlHfpvnXv`fHZp˂rXQJ`ےJltbdQZ|drf`vXnvpfH~ے`J`JXQrQXb㉀ۑpJXnvˍpfH~rQtJltbAdZ|dtbdQZpfHf`vXnvpے`JXQr˂pZHAb|ZdQbtlJtArdnXv`f~fpvrXQJ`ےbHAtbdQZ|drtAJlnvpfH~f`vXXQr˂pZˁ`ZQXAHQXb㉀pfH~ㅐf۝`vtbAdZ|drQtJltijklmnopponmlkj \ No newline at end of file diff --git a/vendor/endroid/qr-code/assets/data/qrv24_2.dat b/vendor/endroid/qr-code/assets/data/qrv24_2.dat deleted file mode 100755 index 405fb37a7331eb89642df47549c7b91586a30a27..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35451 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 diff --git a/vendor/endroid/qr-code/assets/data/qrv24_3.dat b/vendor/endroid/qr-code/assets/data/qrv24_3.dat deleted file mode 100755 index f270bac41a22e94501c344c19c5d304908082708..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35446 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:9:9:9:9:9:9:9:987878787656565654343434343434343212121210/0/0/0/.-.-.-.-tstststststststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijijijijijihghghghgfefefefedcdcdcdcdcdcdcdcbabababa`_`_`_`_`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQRQPOPOPOPOPOPOPONMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCBABABABABABABABA@?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:9:987878787878787656565654343434343212121212121210/0/0/0/.-.-.-.-tstststststststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijijijijijihghghghgfefefefedcdcdcdcdcdcdcdcbabababa`_`_`_`_`_^]^]^]^]^]^]^]\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCBABABABABA@?@?@?@?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:98777777887878787656565654343434321212121212121210/0/0/0/.-.-.-.-tstststststststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijijijijijihghghghgfefefefedcdcdcdcdcdcdcdcbabababa`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSQQQQQRQRPOPOPOPOPOPOPOPONMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCBABABABA@?@?@?@?@?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:97878787887878787656565654343434321212121212121210/0/0/0/.-.-.-.-tstststststststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijijihghghghghghghgfefefefedcdcdcdcdcdcdcdcbabababa`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSQRQRQRQRPOPOPOPOPOPOPOPONMNMNMNMLKLKLKLKLKJIJIJIJIJIJIJIHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCBABABABA@?@?@?@?@?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:97878787887878777656565654343434321212121212121210/0/0/0/.-.-.-.-tstststststststsrqrqrqrqpopopoponmnmnmnmlklklkkkjijijijihghghghghghghghgfefefefedcdcdcdcdcdcdcdcbabababa`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[ZYZYZYZYZYXWXWXWXWXWXWXWVUVUVUVUTSTSTSTSQRQRQRQRPOPOPOPOPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCBABABABA@?@?@?@?@?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:97878787877878787656565654343434321212121212121210/0/0/0/.-.-.-.-tstststsrqrqrqrqrqrqrqrqpopopoponmnmnmnmkkklklkljijijijihghghghghghghghgfefefefedcdcdcdcdcdcdcdcbabababa`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUTSTSTSTSQRQRQRQRPOPOPOPOPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCBABABABA@?@?@?@?@?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:97878787887656565656565654343434321212121212121210/0/0/0/.-.-.-.-tstststsrqrqrqrqrqrqrqrqpopopoponmnmnmnmklklklkljijijijihghghghghghghghgfefefefedcdcdcdcdcbababababababa`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUTSTSTSTSQRQRQRQRPOPOPOPOPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGFEFEFEFEFEDCDCDCDCDCDCDCBABABABA@?@?@?@?@?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:97878787865656565656565654343434321212121212121210/0/0/0/.-.-.-.-tstststsrqrqrqrqrqrqrqrqpopopoponmnmnmnmklklklkljijijijihghghghghghghghgfefefefedcdcdcdcbabababababababa`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUTSTSTSTSQRQRQRQQPOPOPOPOPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCDCDCDCDCBABABABA@?@?@?@?@?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:97777778765656565656565654343434321212121212121210/0/0/0/.-.-.-.-.-.-.-.-tstststsrqrqrqrqrqrqrqrqpopopoponmnmnmnmklklklkljijijijihghghghghghghghgfefefefedcdcdcdcbabababababababa`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUTSTSTSTSQQQQRQRQPOPOPOPOPONMNMNMNMNMNMNMLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCDCDCDCDCBABABABA@?@?@?@?@?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:98787878765656565656565654343434321212121210/0/0/0/0/0/0/.-.-.-.-.-.-.-.-tstststsrqrqrqrqrqrqrqrqpopopoponmnmnmnmklklklkljijijijihghghghghghghghgfefefefedcdcdcdcbabababababababa`_`_`_`_^]^]^]^]^]\[\[\[\[\[\[\[ZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCDCDCDCDCBABABABA@?@?@?@?@?>=>=>=>=>=>=>=<;<;<;<;:9:9:9:987878787656565656565656543434343212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-tstststsrqrqrqrqrqrqrqrqpopopoponmnmnmnmklklkkkkjijijijihghghghghghghghgfefefefedcdcdcdcbabababababababa`_`_`_`_^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCDCDCDCDCBABABABA@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;:9:9:9:987878787656565656565656543434343212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-tstststsrqrqrqrqpopopopopopopoponmnmnmnmkklklklkjijijijihghghghghgfefefefefefefedcdcdcdcbabababababababa`_`_`_`_^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKJIJIJIJIJIHGHGHGHGHGHGHGFEFEFEFEDCDCDCDCDCDCDCDCBABABABA@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;:9:9:9:987878787656565656565656543434343212121210/0/0/0/0/0/0/0/.-.-.-.-.-,+,+,+tstststsrqrqrqrqpopopoponmnmnmnmnmnmnmnmlklklklkjijijijihghghghgfefefefefefefefedcdcdcdcbabababababababa`_`_`_`_^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYXWXWXWXWXWVUVUVUVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEDCDCDCDCDCDCDCDCBABABABA@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;:9:9:9:987878787656565656565656543434343212121210/0/0/0/0/0/0/0/.-.-.-.-,+,+,+,+tstststsrqrqrqrqpopopoponmnmnmnmlklklklklklklklkjijijijihghghghgfefefefefefefefedcdcdcdcbabababababababa`_`_`_`_^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSRQRQRQQQPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEDCDCDCDCDCDCDCDCBABABABA@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;:9:9:9:977777878656565656543434343434343212121210/0/0/0/0/0/0/0/.-.-.-.-,+,+,+,+tstststsrqrqrqrqpopopoponmnmnmnmkkkkklkllklklklkjijijijihghghghgfefefefefefefefedcdcdcdcbababababa`_`_`_`_`_`_`_^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUVUTSTSTSTSTSTSTSQQQRQRQRPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEDCDCDCDCDCBABABABABABABA@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;:9:9:9:978787878656565654343434343434343212121210/0/0/0/0/0/0/0/.-.-.-.-,+,+,+,+tstststsrqrqrqrqpopopoponmnmnmnmklklklkllklklklkjijijijihghghghgfefefefefefefefedcdcdcdcbabababa`_`_`_`_`_`_`_`_^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSTSTSTSTSQRQRQRQRPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEDCDCDCDCBABABABABABABABA@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;:9:9:9:978787878656565654343434343434343212121210/0/0/0/0/0/0/0/.-.-.-.-,+,+,+,+tstststsrqrqrqrqpopopoponmnmnmnmklklklkllklklklkjijijijihghghghgfefefefefefefefedcdcdcdcbabababa`_`_`_`_`_`_`_`_^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSTSRQRQRQQRQRQRQRPOPOPOPONMNMNMNMNMLKLKLKLKLKLKLKJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEDCDCDCDCBABABABABABABABA@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;:9:9:9:978787878656565654343434343434343212121210/0/0/0/0/.-.-.-.-.-.-.-,+,+,+,+tstststsrqrqrqrqpopopoponmnmnmnmklklklkliiiiiijijijijijihghghghgfefefefefefefefedcdcdcdcbabababa`_`_`_`_`_`_`_`_^]^]^]^]\[\[\[\[\[ZYZYZYZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQQQQQRQQRQRQRQRPOPOPOPONMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEDCDCDCDCBABABABABABABABA@?@?@?@?>=>=>=>=>=<;<;<;<;<;<;<;:9:9:9:978787878656565654343434343434343212121210/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+tstststsrqrqrqrqpopopoponmnmnmnmklklklkljijijijijijijijihghghghgfefefefefefefefedcdcdcdcbabababa`_`_`_`_`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQQRQRQRQRPOPOPOPONMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEDCDCDCDCBABABABABABABABA@?@?@?@?>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:978787877656565654343434343434343212121210/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+tstststsrqrqrqrqpopopoponmnmnmnmklklklkkjijijijijijijijihghghghgfefefefefedcdcdcdcdcdcdcbabababa`_`_`_`_`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQQRQRQQQQPOPOPOPONMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIHGHGHGHGHGFEFEFEFEFEFEFEDCDCDCDCBABABABABABABABA@?@?@?@?>=>=>=>=<;<;<;<;<;:9:9:9:9:9:9:977778787656565654343434343434343212121210/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('&%&%&%&%&%&%&%&%$#$#$#$#"!"!"!"!        - - - - ,+,+,+,+*)*)*)*)*)*)*)*)('('('('&%&%&%&%&%&%&%&%$#$#$#$#"!"!"!"!        - - - - ,+,+,+,+*)*)*)*)*)*)*)*)('('('('&%&%&%&%&%$#$#$#$#$#$#$#"!"!"!"!        - - - - ,+,+,+,+*)*)*)*)*)*)*)*)('('('('&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!        - - - - ,+,+,+,+*)*)*)*)*)*)*)*)('('('('&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!        - - - - ,+,+,+,+*)*)*)*)*)*)*)*)('('('('&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!        - - - - ,+,+,+,+*)*)*)*)*)*)*)*)('('('('&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!        - - - - ,+,+,+,+*)*)*)*)*)('('('('('('('&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!        - - - - - - - ,+,+,+,+*)*)*)*)('('('('('('('('&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!        - - - - - - - - ,+,+,+,+*)*)*)*)('('('('('('('('&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!        - - - - - - - - ,+,+,+,+*)*)*)*)('('('('('('('('&%&%&%&%$#$#$#$#$#"!"!"!"!"!"!"!        - - - - - - - - ,+,+,+,+*)*)*)*)('('('('('('('('&%&%&%&%$#$#$#$#"!"!"!"!"!"!"!"!        - - - - - - - - ,+,+,+,+*)*)*)*)('('('('('('('('&%&%&%&%$#$#$#$#"!"!"!"!"!              - - - - - - - - ,+,+,+,+*)*)*)*)('('('('('('('('&%&%&%&%$#$#$#$#"!"!"!"!                - - - - - - - - ,+,+,+,+*)*)*)*)('('('('('('('('&%&%&%&%$#$#$#$#"!"!"!"!             - - - - - - - - ,+,+,+,+*)*)*)*)('('('('('&%&%&%&%&%&%&%$#$#$#$#"!"!"!"!            - - - - - ,+,+,+,+*)*)*)*)('('('('&%&%&%&%&%&%&%&%$#$#$#$#"!"!"!"!            - - - - ,+,+,+,+*)*)*)*)('('('('&%&%&%&%&%&%&%&%$#$#$#$#"!"!"!"!            - - - - ,+,+,+,+*)*)*)*)('('('('&%&%&%&%&%&%&%&%$#$#$#$#"!"!"!"!            - - - - ,+,+,+,+*)*)*)*)('('('('&%&%&%&%&%&%&%&%$#$#$#$#"!"!"!"!            - - - - ,+*)*)*)*)*)*)*)('('('('&%&%&%&%&%&%&%&%$#$#$#$#"!"!"!"!         - - - - ttssrrqq EEFFGGHHFFEEDDCC..//0011UTSRQQPPddeeffgg1100//..$$%%&&''qqppoonn8899::;;]]\\[[ZZ LLMMNNOOIIHHGGFF ``aabbcc55443322))**++,,XXWWQQPPopqqrrss%%$$##""00112233eeddccbbDDEEFFGGQQPPOONNXXYYZZ[[==<<;;::llmmnnoo))((''&&,,--..//ddccbbaa - - kkqqrrss<<==>>??YYXXWWVVPPQQRRSSEEDDCCBBppoonnmmIIJJKKLLBBAA@@??22334455OONNMMLLhhiijjkk--,,++**(())**++mmllkkjj<<==>>??YYXXWWVVPPQQRRSSEEDDCCBBddeeffgg1100//..--..//00OONNMMLLttttssrr!! 44556677aa``__^^ - -HHIIJJKKMMLLKKJJ - - \\]]^^__99887766ppqqrrss%%$$##""00112233``__^^]] ttttssrr@@AABBCCUUTTSSRRTTUUVVWWAA@@??>>llkkjjiiMMNNOOPP>>==77666677==>>KKJJIIHHllmmnnoo))((''&&,,--..//iihhggff@@AABBCCUUTTSSRRTTUUVVWWAA@@??>>hhiijjkk--,,++**11223344KKJJIIHHqqppoonn8899::;;]]\\[[ZZ LLMMNNOOIIHHGGFF ``aabbcc55443322 !!""##ttttssrr!! 44556677\\[[ZZYYqqponmlkDDEEFFGGQQPPOONNXXYYZZ[[==<<;;::hhggffeeQQRRSSTT55443322??@@AABBGGFFEEDDppqqrrss%%$$##""00112233eeddccbbDDEEFFGGQQPPOONNXXYYZZ[[==<<;;::llmmnnoo))((''&&556677==GGFFEEDD !"##$mmllkkjj<<==>>??YYXXWWVVPPQQRRSSEEDDCCBBddeeffgg1100//..$$%%&&''qqppoonn8899::;;XXWWQQPPkjjiihhg HHIIJJKKMMLLKKJJ - - \\]]^^__99887766ddccbbaa UUVVWWXX1100//..CCDDEEFFCCBBAA@@ !!""##ttttssrr!! 44556677aa``__^^ - -HHIIJJKKMMLLKKJJ - - \\]]^^__99887766ppqqrrss%%$$##"">>??@@AACCBBAA@@$%%&&''(iihhggff@@AABBCCUUTTSSRRTTUUVVWWAA@@??>>hhiijjkk--,,++**(())**++mmllkkjj<<==>>??OONNMMLLgffeeddc - - LLMMNNOOIIHHGGFF ``aabbcc55443322 !!""##``__^^]] - - YYZZ[[\\--,,++**GGHHIIJJ??>>==<;$$%%&&''qqppoonn8899::;;]]\\[[ZZ LLMMNNOOIIHHGGFF ``aabbcc55443322 !!""##ttttssrr!! BBCCDDEE??>>==77())**++,eeddccbbDDEEFFGGQQPPOONNXXYYZZ[[==<<;;::llmmnnoo))((''&&,,--..//iihhggff@@AABBCCKKJJIIHH##$$cbbaa``_PPQQRRSSEEDDCCBBddeeffgg1100//..$$%%&&''\\[[ZZYY - - ]]^^__``))((''&&KKLLMMNN:9877665(())**++mmllkkjj<<==>>??YYXXWWVVPPQQRRSSEEDDCCBBddeeffgg1100//..$$%%&&''qqppoonnFFGGHHII66554433,--..//0aa``__^^ - -HHIIJJKKMMLLKKJJ - - \\]]^^__99887766ppqqrrss%%$$##""00112233eeddccbbDDEEFFGGGGFFEEDD%%&&''((_^^]]\\[TTUUVVWWAA@@??>>hhiijjkk--,,++**(())**++XXWWVVUU aabbccdd%%$$##OOPPQQWW54433221,,--..//iihhggff@@AABBCCUUTTSSRRTTUUVVWWAA@@??>>hhiijjkk--,,++**(())**++mmllkkjjJJKKLLMM221100//01122334]]\\[[ZZ LLMMNNOOIIHHGGFF ``aabbcc55443322 !!""##ttttssrr!! 44556677aa``__^^ - -HHIIJJKKCCBBAA@@))**++,,[ZZYYXXWXXYYZZ[[==<<;;::llmmnnoo))((''&&,,--..//TTSSRRQQeeffgghhXXYYZZ[[100//..-00112233eeddccbbDDEEFFGGQQPPOONNXXYYZZ[[==<<;;::llmmnnoo))((''&&,,--..//iihhggffNNOOPPQQ..--,,++45566778YYXXWWVVPPQQRRSSEEDDCCBBddeeffgg1100//..$$%%&&''qqppoonn8899::;;]]\\[[ZZ LLMMNNOO??>>==77--..//00WVUTSRQQ - - \\]]^^__99887766ppqqrrss%%$$##""00112233ddeeffggPPOONNMMiijjkkll\\]]^^__-,,++**)44556677aa``__^^ - -HHIIJJKKMMLLKKJJ - - \\]]^^__99887766ppqqrrss%%$$##""00112233eeddccbbWWXXYYZZ**))((''9:;<==>>UUTTSSRRTTUUVVWWAA@@??>>hhiijjkk--,,++**(())**++mmllkkjj<<==>>??YYXXWWVVPPQQRRSS6655443311223344PPOONNMM ``aabbcc55443322 !!""##ttttssrr!! 44556677hhiijjkkLLKKJJIImmnnoopp``aabbcc)((''&&%8899::;;]]\\[[ZZ LLMMNNOOIIHHGGFF ``aabbcc55443322 !!""##ttttssrr!! 44556677aa``__^^ - -[[\\]]^^&&%%$$##??@@AABBQQPPOONNXXYYZZ[[==<<;;::llmmnnoo))((''&&,,--..//iihhggff@@AABBCCUUTTSSRRTTUUVVWW221100//556677==LLKKJJIIddeeffgg1100//..$$%%&&''qqppoonn8899::;;llmmnnooHHGGFFEE qqrrsstt ddeeffgg%$$##"! <<==>>??YYXXWWVVPPQQRRSSEEDDCCBBddeeffgg1100//..$$%%&&''qqppoonn8899::;;]]\\[[ZZ __``aabbCCDDEEFFMMLLKKJJ - - \\]]^^__99887766ppqqrrss%%$$##""00112233eeddccbbDDEEFFGGQQPPOONNXXYYZZ[[..--,,++>>??@@AAHHGGFFEEhhiijjkk--,,++**(())**++mmllkkjj<<==>>??ppqqrrssDDCCBBAA!!""##$$ttssrrqq - - hhiijjkk@@AABBCCUUTTSSRRTTUUVVWWAA@@??>>hhiijjkk--,,++**(())**++mmllkkjj<<==>>??YYXXWWVVccddeeffGGHHIIJJIIHHGGFF ``aabbcc55443322 !!""##ttttssrr!! 44556677aa``__^^ - -HHIIJJKKMMLLKKJJ - - \\]]^^__**))((''BBCCDDEEDDCCBBAAllmmnnoo))((''&&,,--..//iihhggff@@AABBCCttttssrr@@??>>==%%&&''((kkjjiihh - - qqrrssttDDEEFFGGQQPPOONNXXYYZZ[[==<<;;::llmmnnoo))((''&&,,--..//iihhggff@@AABBCCUUTTSSRRgghhiijjKKLLMMNNEEDDCCBBddeeffgg1100//..$$%%&&''qqppoonn8899::;;]]\\[[ZZ LLMMNNOOIIHHGGFF ``aabbcc&&%%$$##FFGGHHII@@??>>==ppqqrrss%%$$##""00112233eeddccbbDDEEFFGGqqppoonn<<;;::99))**++,,ggffeedd ttssrrqqHHIIJJKKMMLLKKJJ - - \\]]^^__99887766ppqqrrss%%$$##""00112233eeddccbbDDEEFFGGQQPPOONN - - kkqqrrssOOPPQQRSAA@@??>>hhiijjkk--,,++**(())**++mmllkkjj<<==>>??YYXXWWVVPPQQRRSSEEDDCCBBddeeffggJJKKLLMM<;:98776 !!""##ttttssrr!! 44556677aa``__^^ - -HHIIJJKKmmllkkjj88776655--..//00ccbbaa``ponmlkkjLLMMNNOOIIHHGGFF ``aabbcc55443322 !!""##ttttssrr!! 44556677aa``__^^ - -HHIIJJKKMMLLKKJJ ttttssrr - -TUVWWXXY==<<;;::llmmnnoo))((''&&,,--..//iihhggff@@AABBCCUUTTSSRRTTUUVVWWAA@@??>>hhiijjkkNNOOPPQQ65544332$$%%&&''qqppoonn8899::;;]]\\[[ZZ LLMMNNOOiihhggff4433221111223344__^^]]\\jiihhggf PPQQRRSSEEDDCCBBddeeffgg1100//..$$%%&&''qqppoonn8899::;;]]\\[[ZZ LLMMNNOOIIHHGGFFqqkkjjii YZZ[[\\]99887766ppqqrrss%%$$##""00112233eeddccbbDDEEFFGGQQPPOONNXXYYZZ[[==<<;;::llmmnnooWWXXYYZZ21100//.(())**++mmllkkjj<<==>>??YYXXWWVVPPQQRRSSeeddccbb00//..--55667788[[ZZYYXXfeeddccb - - TTUUVVWWAA@@??>>hhiijjkk--,,++**(())**++mmllkkjj<<==>>??YYXXWWVVPPQQRRSSEEDDCCBBhhggffee]^^__``a55443322 !!""##ttttssrr!! 44556677aa``__^^ - -HHIIJJKKMMLLKKJJ - - \\]]^^__99887766ppqqrrss[[\\]]^^.--,,++*,,--..//iihhggff@@AABBCCUUTTSSRRTTUUVVWWaa``__^^,,++**))99::;;<>ddccbbaa abbccdde1100//..$$%%&&''qqppoonn8899::;;]]\\[[ZZ LLMMNNOOIIHHGGFF ``aabbcc55443322 !!""##ttttssrr - -__``aabb*))((''&00112233eeddccbbDDEEFFGGQQPPOONNXXYYZZ[[]]\\[[ZZ((''&&%%==>>??@@NNMMLLKK&&''(())^]]\\[[Z - - \\]]^^__99887766ppqqrrss%%$$##""00112233eeddccbbDDEEFFGGQQPPOONNXXYYZZ[[==<<;;::##$$``__^^]] - - effgghhi--,,++**(())**++mmllkkjj<<==>>??YYXXWWVVPPQQRRSSEEDDCCBBddeeffgg1100//..$$%%&&''qqkkjjii ccddeeff&%%$$##"44556677aa``__^^ - -HHIIJJKKMMLLKKJJ - - \\]]^^__YYXXWWVV$$##""!!AABBCCDDJJIIHHGG**++,,--ZYYXXWWV ``aabbcc55443322 !!""##ttttssrr!! 44556677aa``__^^ - -HHIIJJKKMMLLKKJJ - - \\]]^^__99887766%%&&''((\\[[ZZYYijjkklmn))((''&&,,--..//iihhggff@@AABBCCUUTTSSRRTTUUVVWWAA@@??>>hhiijjkk--,,++**(())**++hhggffeegghhiijj! 8899::;;]]\\[[ZZ LLMMNNOOIIHHGGFF ``aabbccUUTTSSRRQQPPOONNXXYYZZ[[==<<;;::llmmnnoo))((''&&556677==GGFFEEDD !"##$mmllkkjj<<==>>??YYXXWWVVPPQQRRSSEEDDCCBBddeeffgg1100//..$$%%&&''qqppoonn8899::;;PPOONNMM$$%%&&''QQPPOONNMMLLKKJJ - - \\]]^^__99887766ppqqrrss%%$$##"">>??@@AACCBBAA@@$%%&&''(iihhggff@@AABBCCUUTTSSRRTTUUVVWWAA@@??>>hhiijjkk--,,++**(())**++mmllkkjj<<==>>??LLKKJJII(())**++MMLLKKJJIIHHGGFF ``aabbcc55443322 !!""##ttttssrr!! BBCCDDEE??>>==77())**++,eeddccbbDDEEFFGGQQPPOONNXXYYZZ[[==<<;;::llmmnnoo))((''&&,,--..//iihhggff@@AABBCCHHGGFFEE,,--..//IIHHGGFFEEDDCCBBddeeffgg1100//..$$%%&&''qqppoonnFFGGHHII66554433,--..//0aa``__^^ - -HHIIJJKKMMLLKKJJ - - \\]]^^__99887766ppqqrrss%%$$##""00112233eeddccbbDDEEFFGGDDCCBBAA00112233EEDDCCBB !!""##AA@@??>>hhiijjkk--,,++**(())**++mmllkkjjJJKKLLMM221100//01122334]]\\[[ZZ LLMMNNOOIIHHGGFF ``aabbcc55443322 !!""##ttttssrr!! 44556677aa``__^^ - -HHIIJJKK@@??>>==44556677AA@@??>>$$%%&&''==<<;;::llmmnnoo))((''&&,,--..//iihhggffNNOOPPQQ..--,,++45566778YYXXWWVVPPQQRRSSEEDDCCBBddeeffgg1100//..$$%%&&''qqppoonn8899::;;]]\\[[ZZ LLMMNNOO77665544==>>??@@==<<;;::(())**++99887766ppqqrrss%%$$##""00112233eeddccbbWWXXYYZZ**))((''9:;<==>>UUTTSSRRTTUUVVWWAA@@??>>hhiijjkk--,,++**(())**++mmllkkjj<<==>>??YYXXWWVVPPQQRRSS33221100AABBCCDD99887766,,--..//55443322 !!""##ttttssrr!! 44556677aa``__^^ - -[[\\]]^^&&%%$$##??@@AABBQQPPOONNXXYYZZ[[==<<;;::llmmnnoo))((''&&,,--..//iihhggff@@AABBCCUUTTSSRRTTUUVVWW//..--,,EEFFGGHH55443322001122331100//..$$%%&&''qqppoonn8899::;;]]\\[[ZZ __``aabbCCDDEEFFMMLLKKJJ - - \\]]^^__99887766ppqqrrss%%$$##""00112233eeddccbbDDEEFFGGQQPPOONNXXYYZZ[[++**))((IIJJKKLL1100//..44556677--,,++**(())**++mmllkkjj<<==>>??YYXXWWVVccddeeffGGHHIIJJIIHHGGFF ``aabbcc55443322 !!""##ttttssrr!! 44556677aa``__^^ - -HHIIJJKKMMLLKKJJ - - \\]]^^__''&&%%$$MMNNOOPP--,,++**8899::;;))((''&&,,--..//iihhggff@@AABBCCUUTTSSRRgghhiijjKKLLMMNNEEDDCCBBddeeffgg1100//..$$%%&&''qqppoonn8899::;;]]\\[[ZZ LLMMNNOOIIHHGGFF ``aabbcc##QQWWXXYY))((''&&<<==>>??%%$$##""00112233eeddccbbDDEEFFGGQQPPOONN - - kkqqrrssOOPPQQRSAA@@??>>hhiijjkk--,,++**(())**++mmllkkjj<<==>>??YYXXWWVVPPQQRRSSEEDDCCBBddeeffggZZ[[\\]]%%$$##""@@AABBCC!! 44556677aa``__^^ - -HHIIJJKKMMLLKKJJ ttttssrr - -TUVWWXXY==<<;;::llmmnnoo))((''&&,,--..//iihhggff@@AABBCCUUTTSSRRTTUUVVWWAA@@??>>hhiijjkk^^__``aa!! DDEEFFGG8899::;;]]\\[[ZZ LLMMNNOOIIHHGGFFqqkkjjii YZZ[[\\]99887766ppqqrrss%%$$##""00112233eeddccbbDDEEFFGGQQPPOONNXXYYZZ[[==<<;;::llmmnnoobbccddeeHHIIJJKK<<==>>??YYXXWWVVPPQQRRSSEEDDCCBBhhggffee]^^__``a55443322 !!""##ttttssrr!! 44556677aa``__^^ - -HHIIJJKKMMLLKKJJ - - \\]]^^__99887766ppqqrrss ffgghhiiLLMMNNOO@@AABBCCUUTTSSRRTTUUVVWWAA@@??>>ddccbbaa abbccdde1100//..$$%%&&''qqppoonn8899::;;]]\\[[ZZ LLMMNNOOIIHHGGFF ``aabbcc55443322 !!""##ttllkkjj - - - -iihhggffPPQQRRSSDDEEFFGGQQPPOONNXXYYZZ[[==<<;;::##$$``__^^]] - - effgghhi--,,++**(())**++mmllkkjj<<==>>??YYXXWWVVPPQQRRSSEEDDCCBBddeeffgg1100//..$$%%&&''iihhggff eeddccbbTTUUVVWW - -HHIIJJKKMMLLKKJJ - - \\]]^^__99887766%%&&''((\\[[ZZYYijjkklmn))((''&&,,--..//iihhggff@@AABBCCUUTTSSRRTTUUVVWWAA@@??>>hhiijjkk--,,++**(())**++eeddccbbaa``__^^ - -XXYYZZ[[ LLMMNNOOIIHHGGFF ``aabbcc55443322))**++,,XXWWQQPPopqqrrss%%$$##""00112233eeddccbbDDEEFFGGQQPPOONNXXYYZZ[[==<<;;::llmmnnoo))((''&&,,--..//aa``__^^]]\\[[ZZ - - \\]]^^__PPQQRRSSEEDDCCBBddeeffgg1100//..--..//00OONNMMLLttttssrr!! 44556677aa``__^^ - -HHIIJJKKMMLLKKJJ - - \\]]^^__99887766ppqqrrss%%$$##""00112233]]\\[[ZZYYXXWWVV ``aabbccTTUUVVWWAA@@??>>hhiijjkk--,,++**11223344KKJJIIHHqqppoonn8899::;;]]\\[[ZZ LLMMNNOOIIHHGGFF ``aabbcc55443322 !!""##ttttssrr!! 44556677YYXXWWQQ##UUTTSSRRddeeffgghhiiZHAbZHAb|ZdQbv`f˂rXQbQZ|fH~fH~XQr˂btlHfpvHfpvZp˂|dr|dtAfH~XQr˂btlbtlHfpvbHAZJl|~f`fH~XQr˂btlHfpvHfpvZp˂|drpfHfH~XQr˂btlbtlHfpvZp˂Jltp`vXXH~`JXQrbtlHfpvfpvZp˂|drfH~ے`JXQے`JXQtlJ~HfpJ`ےdrtAJf`vXf`vXpZHAbJtArdnXvnXvrXQJ`tAJlJltf`vXpZHAbJtArdJtArdnXvp˂rdrtAJvXnfZHAbpZHAbJtArdnXvnXvrXQJ`tAJlf`vXf`vXpZHAbJtArdJtArdnXvrXQJ`bdQZ|nvpfZHAb˂pZJtArdnXvnrXQJrXQJ`tAJlf`vXr˂pr˂ptArdv~bHAXQJltbnvpnvpے`J|ZdQ`f~`f~ےbHAtbdQZbnvnvpے`J|ZdQ|ZdQ`f~XQJ`ےltbvpfHے`Jے`J|ZdQ`f~`fHےbHAtbdQZnvpnvpے`J|ZdQf~`f~ےbHAdrtAfH~JQrHAbے|ZdQ`f~`ےHAےbHAtbdQZnvpZHAbZHAb|ZdQbHfpv`ےbdQZ|fH~fH~XQr˂btlHfpvHfpvZp˂|drpfHfH~XQr˂btlbtlHfpvbHAXQdQZ|~fvXXQr˂XQr˂btlHfpvfpvZp˂|drfH~fH~XQr˂btlHfpvHfpvZp˂Jl|f`vX˂pZH`JXQrbtlHfpvZp˂Zp˂|drfH~ے`JXQے`JXQtlJnXvHAZp˂drtAJf`vXfZHAbpZHAbJtArdnXvnXvrXQJ`tAJlf`vXf`vXpZHAbJtArdJtArdnXvJ`ےdrtAJnvppZHAbpZHAbJtArdnXvnrXQJrXQJ`tAJlf`vXf`vXpZHAbJtArdnXvnXvrXQJ`drtAJnvpAbے`˂pZAJtArdnXvrXQJ`rXQJ`tAJlf`vXr˂pr˂ptArd`f~rXQJltbQnvpے`Jے`J|ZdQ`f~`fHےbHAtbdQZnvpnvpے`J|ZdQf~`f~bHAZpltdfH~ːے`Jے`J|ZdQ`f~`ےHAےbHAtbdQZnvpnvpے`J|ZdQ`f~`f~ےbHAltbfHXnJXQr`JXQ|ZdQ`f~ےbHAےbHAtbdQZnvpZHAb|ZdQb|ZdQbHfpv`ےbZdrtfH~XQr˂XQr˂btlHfpvfpvZp˂|drfH~fH~XQr˂btlHfpvHfpv˂rXQrtAJlf`vXXQr˂XQr˂btlHfpvZp˂Zp˂|drfH~fH~XQr˂btlHfpvHfpvZp˂dQZ|vpf˂pZHrbtbtlHfpvZp˂Zp˂|drfH~ے`JXQtlJtlJnXHHAZp`AJltf`vXpZHAbpZHAbJtArdnXvnrXQJrXQJ`tAJlf`vXf`vXpZHAbJtArdnXvnXvJ`ےtbdQnvppZHAbpZHAJtArdnXvrXQJ`rXQJ`tAJlf`vXfZHAbpZHAbJtArdnXvnXvrXQJ`drtAJH~fAbے`lJtAdJtArdnXvrXQJ`rXQJ`tAJlf`vXr˂ptArdtArdfpvےbHAbdQZ|nvpے`Jے`J|ZdQ`f~`ےHAےbHAtbdQZnvpnvpے`J|ZdQ`f~`f~bHAZpZ|dfH~fے`Jے`JXQ|ZdQ`f~ےbHAےbHAtbdQZnvpے`Jے`J|ZdQ`f~`fHےbHAltd`vXnJQrp|ZdQ|ZdQ`f~ےbHAےbHAtbdQZnvpfH~ZHAb|ZdQb|ZdQbnXv`Zp˂drtfH~XQr˂XQr˂btlHfpvZp˂Zp˂|drfH~fH~XQr˂btlHfpvHfpv`ےbrtAJlvnvXQr˂rbtbtlHfpvZp˂Zp˂|drfH~XQr˂XQr˂btlHfpvfpvZp˂rtAJlvpfZHAbbtlbtlHfpvZp˂Zdr|drfH~f`vXے`JXQtlJtlJf~HrXQJ`AJltf`vXpZHAbpZHAJtArdnXvrXQJ`rXQJ`tAJlf`vXfZHAbpZHAbJtArdnXvnXvHAZp˂tbdQpfH~pZHAblJtAdJtArdnXvrXQJ`rXQJ`tAJlf`vXpZHAbpZHAbJtArdnXvnrXQJrXQJ`tbdQH~ے`JXQJtArdJtArdnXvrXQJ`tAJltAJlf`vXnvpr˂ptArdtArdfpvےbHAbdQZnvpے`Jے`JXQ|ZdQ`f~ےbHAےbHAtbdQZnvpے`Jے`J|ZdQ`f~`fHrXQJtAJl璐f`vے`J|ZdQ|ZdQ`f~ےbHAےbHAtbdQZnvpے`Jے`J|ZdQ`f~`ےHAےbHAZ|dvpfHr˂p|ZdQ|ZdQ`f~ےbHAtbdQZtbdQZnvpfH~ZHAb|ZdQbf~HnXv`Zp˂rtAJlfH~XQr˂rbtbtlHfpvZp˂Zp˂|drfH~XQr˂XQr˂btlHfpvfpv`ےbtbdQZXnvXQr˂btlbtlHfpvZp˂Zdr|drfH~XQr˂XQr˂btlHfpvZp˂Zp˂rtAJl~f`ZHAbbtlbtlHfpvZp˂|dr|drfH~fZHAbے`JXQtlJXv`fp˂rbHAZtbdQf`vXpZHAblJtAdJtArdnXvrXQJ`rXQJ`tAJlf`vXpZHAbpZHAbJtArdnXvnrXQJHAZp˂|drpfH~pZHAbJtArdJtArdnXvrXQJ`tAJltAJlf`vXpZHAbpZHAJtArdnXvrXQJ`rXQJ`tbdQvXnے`JXQJtArdJtArdnXvrXQJ`tAJltAJlf`vXے`Jr˂ptArd~HfXQJ`ےdrtAZ|dnvpے`J|ZdQ|ZdQ`f~ےbHAےbHAtbdQZnvpے`Jے`J|ZdQ`f~`p˂bHAtAJl璐f`vے`J|ZdQ|ZdQ`f~ےbHAtbdQZtbdQZnvpے`Jے`JXQ|ZdQ`f~ےbHAےbHAtAJlvpfHrZHA|ZdQf~`f~ےbHAtbdQZtbdQZnvpXQr˂ZHAb|ZdQbpvnbHAZJbdQrtAJlfH~XQr˂btlbtlHfpvZp˂Zdr|drfH~XQr˂XQr˂btlHfpvrXQJ`ZdrtbdQZnvpfHXQr˂btlbtlHfpvZp˂|dr|drfH~XQr˂rbtbtlHfpvZp˂Zp˂tbdQZ~f`bے`btlHfpvHfpvZp˂|dr|dtAfH~pZHAbے`JXQtlJXv`fp˂rZ|dtbdQf`vXpZHAbJtArdJtArdnXvrXQJ`tAJltAJlf`vXpZHAbpZHAJtArdnXvےbHAtAdQZ||lt~f`pZHAbJtArdJtArdnXvrXQJ`tAJltAJlf`vXpZHAblJtAdJtArdnXvrXQJ`rXQJ`|drpfH~JXQrJtArdnXvnXvrXQJ`tAJlJltf`vXے`Jr˂ptArd~HfXQJ`ےrtAJlZ|dnvpے`J|ZdQ|ZdQ`f~ےbHAtbdQZtbdQZnvpے`Jے`JXQ|ZdQ`f~Zp˂drtAbnvvXnے`J|ZdQf~`f~ےbHAtbdQZtbdQZnvpے`J|ZdQ|ZdQ`f~ےbHAےbHAtAJl璐f`vpZHA|ZdQ`f~`f~ےbHAtbdQZbnvnvpXQr˂ZHAb|ZdQbp`frXQtbdQnvffH~XQr˂btlbtlHfpvZp˂|dr|drfH~XQr˂rbtbtlHfpvrXQJ`Jltpff`vpfHXQr˂btlHfpvHfpvZp˂|dr|dtAfH~XQr˂btlbtlHfpvZp˂ZdrtbdQZXnvbے`btlHfpvHfpvZp˂|drpfHfH~pZHAbے`JXQtlJ~HfpJ`ےZ|df`vXf`vXpZHAbJtArdJtArdnXvrXQJ`tAJltAJlf`vXpZHAblJtAdJtArdnXvےrbdQZ|vXn~f`pZHAbJtArdnXvnXvrXQJ`tAJlJltf`vXpZHAbJtArdJtArdnXvrXQJ`tAdQZ||ltpfH~JXQrJtArdnXvnXvrXQJ`tAJlf`vXf`vXے`Jr˂ptArdvnXbHAZprtAJlnvpnvpے`J|ZdQf~`f~ےbHAtbdQZtbdQZnvpے`J|ZdQ|ZdQ`f~XQJ`ےdrtAvpfHvXnvے`J|ZdQ`f~`f~ےbHAtbdQZbnvnvpے`J|ZdQ|ZdQ`f~ےbHAdrtAbnvf`vZAbے|ZdQ`f~`fHےbHAtbdQZnvpnvpXQr˂pZHAblJtAdJtArdnXvrXQJ`rXQJ`tAJlH~˂pZrZdQnXvnXvrXQJ`tAJlJltf`vXpZHAbJtArdJtArdnXvrXQJ`tAJltAJlf`vXZHAbb㉀ۑppfH~Z|dے`J|ZdQ|ZdQ`f~ےbHAےbHAtbdQZvpfHHAbےbtl`f~`f~ےbHAtbdQZbnvnvpے`J|ZdQ|ZdQ`f~ےbHAtbdQZtbdQZnvpے`JXQJAHr󙐅f۝`vrQtJlXQr˂btlbtlHfpvZp˂Zdr|dr~f``JXQHAJtArdHfpvHfpvZp˂|drpfHfH~XQr˂btlbtlHfpvZp˂|dr|drfH~r˂pˁ`ZQXXnv˒tbAdpZHAbJtArdJtArdnXvrXQJ`tAJltAJlvXnbے`|ZdQnXvnXvrXQJ`tAJlf`vXf`vXpZHAbJtArdJtArdnXvrXQJ`tAJltAJlf`vXZHAbb㉀ۑppfH~Z|dے`J|ZdQ|ZdQ`f~ےbHAtbdQZtbdQZvpfHJXQrbtl`f~`fHےbHAtbdQZnvpnvpے`J|ZdQf~`f~ےbHAtbdQZtbdQZnvpے`JXQJAHr󙐅f۝`vrQtJlXQr˂btlbtlHfpvZp˂|dr|dr~f`˂pZHAJtArdHfpvfpvZp˂|drfH~fH~XQr˂btlHfpvHfpvZp˂|dr|dtAfH~HAbےۑpJXnv˒tbAdpZHAbJtArdJtArdnXvrXQJ`tAJltAJlpfH~bے`ZQbt璀nXvnrXQJrXQJ`tAJlf`vXf`vXpZHAbJtArdnXvnXvrXQJ`tAJlJltf`vX`JXQrAHr󙐂ˍpfH~Z|dے`J|ZdQf~`f~ےbHAtbdQZtbdQZf`vJXQrlJtAr`f~`ےHAےbHAtbdQZnvpnvpے`J|ZdQ`f~`f~ےbHAtbdQZbnvnvp˂pZ`ZQXbㅐf۝`vrQtJlXQr˂btlHfpvHfpvZp˂|dr|dtAXnvے`Jd|ZHfpvZp˂Zp˂|drfH~fH~XQr˂btlHfpvHfpvZp˂|drpfHfH~HAbےۑpJXnv˒tbAdpZHAbJtArdnXvnXvrXQJ`tAJlJltpfH~XQr˂dQbt璀nXvrXQJ`rXQJ`tAJlf`vXfZHAbpZHAbJtArdnXvnXvrXQJ`tAJlf`vXf`vX`JXQrAHr󙐂ˍpfH~Z|dے`J|ZdQ`f~`f~ےbHAtbdQZbnvf`vpZHAblJtAr`f~ےbHAےbHAtbdQZnvpے`Jے`J|ZdQ`f~`fHےbHAtbdQZnvpnvpے``pJAHf۝`vrQtJlXQr˂btlHfpvHfpvZp˂|drp`vXXH~ے`Jd|ZQHfpvZp˂Zp˂|drfH~XQr˂XQr˂btlHfpvfpvZp˂|drfH~fH~JXQrr󙐂ˁ`Xnv˒tbAdpZHAbJtArdnXvnXvrXQJ`tAJlnvpfZHAbXQr˂blJtnXvrXQJ`rXQJ`tAJlf`vXpZHAbpZHAbJtArdnXvnrXQJrXQJ`tAJlf`vXf`vX˂pZHAZQXb㉀pfH~Z|dے`J|ZdQ`f~`fHےbHAtbdQZfH~˂pp`JXQArd|`f~ےbHAےbHAtbdQZnvpے`Jے`J|ZdQ`f~`ےHAےbHAtbdQZnvpnvpbے`ۑpJAHf۝`vrQtJlXQr˂btlHfpvfpvZp˂|drf`vXZHAbrbt璁ZdQbtHfpvZp˂Zdr|drfH~XQr˂XQr˂btlHfpvZp˂Zp˂|drfH~fH~JXQrr󙐂ˁ`Xnv˒tbAdpZHAbJtArdnXvnrXQJrXQJ`tAJlnvpے`JXQlJA|lJtnXvrXQJ`tAJltAJlf`vXpZHAbpZHAJtArdnXvrXQJ`rXQJ`tAJlf`vXfr˂˂p`ZpfH~pfH~Z|dے`J|ZdQ`f~`ےHAےbHAtbdQZfHXnr˂pZdQbtArd|`f~ےbHAtbdQZtbdQZnvpے`Jے`JXQ|ZdQ`f~ےbHAےbHAtbdQZnvppZHAbQXb㉀ۅf۝`vf۝`vrQtJlXQr˂btlHfpvZp˂Zp˂|drvpfZHAblJtAZdQbHfpvZp˂|dr|drfH~XQr˂rbtbtlHfpvZp˂Zp˂|drfH~ے`JpJAHrXnv˅Xnv˒tbAdpZHAJtArdnXvrXQJ`rXQJ`tAJlH~fے`pZrd|JtArdnXvrXQJ`tAJltAJlf`vXpZHAblJtAdJtArdnXvrXQJ`rXQJ`tAJlf`vXXQr˂ˁ`ZpfH~p|dZ|dے`JXQ|ZdQ`f~ےbHAےbHAtbdQZ`vXnHAbےZdQbtf~`f~ےbHAtbdQZtbdQZnvpے`J|ZdQ|ZdQ`f~ےbHAےbHAtbdQZnvppZHAbQXb㉀ۅf۝`vrQtJlrQtJlrbtbtlHfpvZp˂Zp˂|drvpf`JXQrlJtAHfpvHfpvZp˂|dr|dtAfH~XQr˂btlbtlHfpvZp˂Zdr|drfH~ے`ppJAHQXXnv˒tbAdtbAdZ|mnopqrsttsrqponKKKKKKKKLLLLLLLLLLLLL \ No newline at end of file diff --git a/vendor/endroid/qr-code/assets/data/qrv25_1.dat b/vendor/endroid/qr-code/assets/data/qrv25_1.dat deleted file mode 100755 index 6d2446efa..000000000 --- a/vendor/endroid/qr-code/assets/data/qrv25_1.dat +++ /dev/null @@ -1,233 +0,0 @@ -tstststststststststststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghghghghghghgfefefefefefefefefefefedcdcdcdcdcdcdcdcbabababababababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSQRQRQRQRQRQRQRQRPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:98787878787878787656565656565656543434343434343434343434321212121212121210/0/0/0/0/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!        tstststststststststststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghghghghghgfefefefefefefefefefefefedcdcdcdcdcdcdcdcbabababababababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSQRQRQRQRQRQRQRQRPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:98787878787878787656565656565656543434343434343434343434321212121212121210/0/0/0/0/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!        tstststststststststststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmlklklklklklklkkklklklklkjijijijijijijijihghghghghghghghgfefefefefefefefefefefefedcdcdcdcdcdcdcdcbabababababababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSRQRQRQQRQRQRQQQRQRQQQQPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:98787878787878787656565656565656543434343434343434343434321212121212121210/0/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!        tstststststststsrqrqrqrqrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmkkkkklklkkklklkliiiiiijijijijijijijijijihghghghghghghghgfefefefefefefefefefefefedcdcdcdcdcdcdcdcbababababababababa`_`_`_`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWXWXWXWXWVUVUVUVUVUTSTSTSTSTSTSTSRQQQQQRQQQQQRQRQQQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCDCBABABABABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:98787878787878787656565656565656543434343434343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!        tstststststststsrqrqrqrqrqrqrqrqrqrqrqrqpopopoponmnmnmnmnmnmnmnmklklklklklklklkljijijijijijijijijijijijihghghghghghghghgfefefefefefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:98787878787878787878777656565656565656543434343434343434321212121212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!        tstststststststsrqrqrqrqrqrqrqrqrqrqrqrqpopopoponmnmnmnmnmnmnmnmklklklklklklklkljijijijijijijijijijijijihghghghghghghghgfefefefefefefefefedcdcdcdcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=>=>=>=>=<;<;<;<;<;:9:9:9:9:9:9:9877777787777787877878787656565656565656543434343434343432121212121212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)*)('('('('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!        tstststststststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmklklklklklklklkljijijijijijijijijijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9787878787878787887656565656565656565656543434343434343432121212121212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!     tstststststststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmklklklklklklklkljijijijijijijijijihghghghghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9787878787878787865656565656565656565656543434343434343432121212121212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#$#$#$#$#"!"!"!"!"!       tstststststststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmklklklkkklklkkkkjijijijijijijijihghghghghghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQQQPOPOPOPOPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABABA@?@?@?@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9787878787878787865656565656565656565656543434343434343432121212121212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!        tstststststststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmkkkklklkkklklklkjijijijijijijijihghghghghghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSQQQQQRQRQQQRQRQRPOPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9787878787878787865656565656565656565656543434343434343432121212121212121210/0/0/0/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!        tstststststststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghghghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcdcbababababababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSQRQRQRQRQRQRQRQRPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:97878787878787877656565656565656565656565434343434343434321212121212121210/0/0/0/0/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('('&%&%&%&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!        tstststststststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghghghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSQRQRQRQRQRQRQRQRPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:97777778777778787656565656565656565434343434343434343434321212121212121210/0/0/0/0/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!                - - - - - - - -         - - - - - - - - - - -         - - - - - - - - - - - -            - - - - - - - - - - - -             - - - - - - - - - - - -             - - - - - - - - - - - -             - - - - - - - - -             - - - - - - - -          - - - - - - - -         - - - - - - - -         - - - - - - - -         - - - - - - - - ttssrrqqDDCCBBAA--..//00]]^^__``WWQQPPOO..//0011hhiijjkkGGFFEEDD(())**++XXYYZZ[[aa``__^^1100//..00112233``aabbccYYXXWWVV))((''&& - - 8899::;;hhiijjkkQQPPOONN!! @@AABBCCppqqrrssIIHHGGFFHHIIJJKKqqppoonnAA@@??>>))**++,,ccddeeffGGFFEEDD - -,--..//0abbccddeUUTTSSRR%%$$##"" <<==>>??llmmnnooMMLLKKJJDDEEFFGGttttssrrEEDDCCBBLLMMNNOOmmllkkjj==<<;;:: - -$$%%&&''TTUUVVWWeeddccbb55443322,,--..//\\]]^^__XXWWQQPP%%&&''((__``aabbPPOONNMMHHIIJJKKqqppoonnAA@@??>> !!""##PPQQRRSSiihhggff99887766 (())**++XXYYZZ[[aa``__^^1100//..00112233``aabbccYYXXWWVV))((''&& - - 8899::;;hhiijjkkQQPPOONN!! NNOOPPQQ\\[[ZZYYOOPPQQRSeeddccbb55443322,,--..//\\]]^^__ppoonnmm@@??>>== 11223344aabbccddNNMMLLKK22334455qqrrssttCCBBAA@@ ,,--..//\\]]^^__]]\\[[ZZ--,,++**44556677ddeeffggUUTTSSRR%%$$##"" <<==>>??llmmnnooMMLLKKJJDDEEFFGGttttssrrEEDDCCBBLLMMNNOOmmllkkjj==<<;;:: - ---..//00gghhiijjCCBBAA@@ 01122334effgghhiQQPPOONN!! @@AABBCCppqqrrssIIHHGGFFHHIIJJKKqqppoonnAA@@??>> !!""##PPQQRRSSiihhggff99887766 (())**++XXYYZZ[[aa``__^^1100//..00112233``aabbccOONNMMLL))**++,,ccddeeffLLKKJJIILLMMNNOOmmllkkjj==<<;;:: - -$$%%&&''TTUUVVWWeeddccbb55443322,,--..//\\]]^^__]]\\[[ZZ--,,++**44556677ddeeffggUUTTSSRR%%$$##"" <<==>>??llmmnnooMMLLKKJJWWXXYYZZXXWWQQPP !"##$TUVWWXXYaa``__^^1100//..00112233``aabbccllkkjjii<<;;::99 - - 55667788eeffgghhJJIIHHGG 6677==>>ttssrrqq??>>==<; - - 00112233``aabbccYYXXWWVV))((''&& - - 8899::;;hhiijjkkQQPPOONN!! @@AABBCCppqqrrssIIHHGGFFHHIIJJKKqqppoonnAA@@??>> !!""##PPQQRRSSiihhggff99887766 11223344kkqqrrss??>>==7745566778ijjkklmnMMLLKKJJDDEEFFGGttttssrrEEDDCCBBLLMMNNOOmmllkkjj==<<;;:: - -$$%%&&''TTUUVVWWeeddccbb55443322,,--..//\\]]^^__]]\\[[ZZ--,,++**44556677ddeeffggKKJJIIHH--..//00gghhiijjHHGGFFEE !!""##PPQQRRSSiihhggff99887766 (())**++XXYYZZ[[aa``__^^1100//..00112233``aabbccYYXXWWVV))((''&& - - 8899::;;hhiijjkkQQPPOONN!! @@AABBCCppqqrrssIIHHGGFF##$$[[\\]]^^OONNMMLL$%%&&''(YZZ[[\\]]]\\[[ZZ--,,++**44556677ddeeffgghhggffee88776655 - - 99::;;<>??llmmnnooMMLLKKJJDDEEFFGGttttssrrEEDDCCBBLLMMNNOOmmllkkjj==<<;;:: - -$$%%&&''TTUUVVWWeeddccbb55443322556677==ttttssrr66554433 9:;<==>>opqqrrssIIHHGGFFHHIIJJKKqqppoonnAA@@??>> !!""##PPQQRRSSiihhggff99887766 (())**++XXYYZZ[[aa``__^^1100//..00112233``aabbccYYXXWWVV))((''&& - - 8899::;;hhiijjkkGGFFEEDD - -11223344kkqqrrssDDCCBBAA $$%%&&''TTUUVVWWeeddccbb55443322,,--..//\\]]^^__]]\\[[ZZ--,,++**44556677ddeeffggUUTTSSRR%%$$##"" <<==>>??llmmnnooMMLLKKJJDDEEFFGGttttssrrEEDDCCBB%%&&''((__``aabbKKJJIIHH())**++,]^^__``aYYXXWWVV))((''&& - - 8899::;;hhiijjkkddccbbaa44332211 ==>>??@@mmnnooppBBAA@@?? - - CCDDEEFFjiihhggf54433221 - - 8899::;;hhiijjkkQQPPOONN!! @@AABBCCppqqrrssIIHHGGFFHHIIJJKKqqppoonnAA@@??>> !!""##PPQQRRSSiihhggff99887766 (())**++XXYYZZ[[aa``__^^1100//..>>??@@AAqqkkjjii221100// - - ??@@AABBttttssrrEEDDCCBBLLMMNNOOmmllkkjj==<<;;:: - -$$%%&&''TTUUVVWWeeddccbb55443322,,--..//\\]]^^__]]\\[[ZZ--,,++**44556677ddeeffggUUTTSSRR%%$$##"" <<==>>??llmmnnooCCBBAA@@ 556677==ttttssrr@@??>>== - - (())**++XXYYZZ[[aa``__^^1100//..00112233``aabbccYYXXWWVV))((''&& - - 8899::;;hhiijjkkQQPPOONN!! @@AABBCCppqqrrssIIHHGGFFHHIIJJKKqqppoonnAA@@??>>))**++,,ccddeeffGGFFEEDD - -,--..//0abbccddeUUTTSSRR%%$$##"" <<==>>??llmmnnoo``__^^]]00//..--AABBCCDDqqrrsstt>>==7766 GGHHIIJJfeeddccb100//..- <<==>>??llmmnnooMMLLKKJJDDEEFFGGttttssrrEEDDCCBBLLMMNNOOmmllkkjj==<<;;:: - -$$%%&&''TTUUVVWWeeddccbb55443322,,--..//\\]]^^__]]\\[[ZZ--,,++** - - BBCCDDEEhhggffee..--,,++CCDDEEFFqqppoonnAA@@??>> !!""##PPQQRRSSiihhggff99887766 (())**++XXYYZZ[[aa``__^^1100//..00112233``aabbccYYXXWWVV))((''&& - - 8899::;;hhiijjkkQQPPOONN!! @@AABBCCppqqrrss??>>==77>>??@@AAqqponmlk<;:98776,,--..//\\]]^^__]]\\[[ZZ--,,++**44556677ddeeffggUUTTSSRR%%$$##"" <<==>>??llmmnnooMMLLKKJJDDEEFFGGttttssrrEEDDCCBBLLMMNNOOmmllkkjj==<<;;:: - ---..//00gghhiijjCCBBAA@@ 01122334effgghhiQQPPOONN!! @@AABBCCppqqrrss\\[[ZZYY,,++**))EEFFGGHHttssrrqq55443322KKLLMMNNbaa``__^-,,++**)@@AABBCCppqqrrssIIHHGGFFHHIIJJKKqqppoonnAA@@??>> !!""##PPQQRRSSiihhggff99887766 (())**++XXYYZZ[[aa``__^^1100//..00112233``aabbccYYXXWWVV))((''&& FFGGHHIIddccbbaa**))((''GGHHIIJJmmllkkjj==<<;;:: - -$$%%&&''TTUUVVWWeeddccbb55443322,,--..//\\]]^^__]]\\[[ZZ--,,++**44556677ddeeffggUUTTSSRR%%$$##"" <<==>>??llmmnnooMMLLKKJJDDEEFFGGttttssrr66554433 - - BBCCDDEEkjjiihhg6554433200112233``aabbccYYXXWWVV))((''&& - - 8899::;;hhiijjkkQQPPOONN!! @@AABBCCppqqrrssIIHHGGFFHHIIJJKKqqppoonnAA@@??>> !!""##PPQQRRSSiihhggff99887766 11223344kkqqrrss??>>==7745566778ijjkklmnMMLLKKJJDDEEFFGGttttssrrXXWWVVUU((''&&%%IIJJKKLLkkjjiihh1100//..OOPPQQWW^]]\\[[Z)((''&&%DDEEFFGGttttssrrEEDDCCBBLLMMNNOOmmllkkjj==<<;;:: - -$$%%&&''TTUUVVWWeeddccbb55443322,,--..//\\]]^^__]]\\[[ZZ--,,++**44556677ddeeffggUUTTSSRR%%$$##""JJKKLLMM``__^^]]&&%%$$##KKLLMMNNiihhggff99887766 (())**++XXYYZZ[[aa``__^^1100//..00112233``aabbccYYXXWWVV))((''&& - - 8899::;;hhiijjkkQQPPOONN!! @@AABBCCppqqrrssIIHHGGFFHHIIJJKKqqkkjjii221100// FFGGHHIIgffeeddc21100//.44556677ddeeffggUUTTSSRR%%$$##"" <<==>>??llmmnnooMMLLKKJJDDEEFFGGttttssrrEEDDCCBBLLMMNNOOmmllkkjj==<<;;:: - -$$%%&&''TTUUVVWWeeddccbb55443322556677==ttttssrr66554433 9:;<==>>opqqrrssIIHHGGFFHHIIJJKKqqppoonnTTSSRRQQ$$##""!! MMNNOOPPggffeedd--,,++**XXYYZZ[[ZYYXXWWV%$$##"! HHIIJJKKqqppoonnAA@@??>> !!""##PPQQRRSSiihhggff99887766 (())**++XXYYZZ[[aa``__^^1100//..00112233``aabbccYYXXWWVV))((''&& - - 8899::;;hhiijjkkQQPPOONN!! NNOOPPQQ\\[[ZZYYOOPPQQRSeeddccbb55443322,,--..//\\]]^^__]]\\[[ZZ--,,++**44556677ddeeffggUUTTSSRR%%$$##"" <<==>>??llmmnnooMMLLKKJJDDEEFFGGttttssrrEEDDCCBBLLMMNNOOhhggffee..--,,++JJKKLLMMcbbaa``_.--,,++* - - 8899::;;hhiijjkkQQPPOONN!! @@AABBCCppqqrrssIIHHGGFFHHIIJJKKqqppoonnAA@@??>> !!""##PPQQRRSSiihhggff99887766 (())**++XXYYZZ[[aa``__^^1100//..>>??@@AAqqkkjjii221100// - - ??@@AABBttttssrrEEDDCCBBLLMMNNOOmmllkkjj]]\\[[ZZPPOONNMM !!""##$$QQRRSSTTccbbaa``))((''&&##$$%%\\]]^^__UTSRQQPPLLMMNNOOmmllkkjj==<<;;:: - -$$%%&&''TTUUVVWWeeddccbb55443322,,--..//\\]]^^__]]\\[[ZZ--,,++**44556677ddeeffggUUTTSSRR%%$$##"" <<==>>??llmmnnooMMLLKKJJWWXXYYZZXXWWQQPP !"##$TUVWWXXYaa``__^^1100//..00112233``aabbccYYXXWWVV))((''&& - - 8899::;;hhiijjkkQQPPOONN!! @@AABBCCppqqrrssIIHHGGFFHHIIJJKKqqppoonnAA@@??>> !!""##PPQQRRSSddccbbaa**))((''NNOOPPQQ_^^]]\\[*))((''& <<==>>??llmmnnooMMLLKKJJDDEEFFGGttttssrrEEDDCCBBLLMMNNOOmmllkkjj==<<;;:: - -$$%%&&''TTUUVVWWeeddccbb55443322,,--..//\\]]^^__]]\\[[ZZ--,,++** - - BBCCDDEEhhggffee..--,,++CCDDEEFFqqppoonnAA@@??>> !!""##PPQQRRSSiihhggffYYXXWWVVLLKKJJII%%&&''((UUVVWWXX__^^]]\\%%$$##&&''(())``aabbccOONNMMLL !!""##PPQQRRSSiihhggff99887766 (())**++XXYYZZ[[aa``__^^1100//..00112233``aabbccYYXXWWVV))((''&& - - 8899::;;hhiijjkkQQPPOONN!! @@AABBCCppqqrrssIIHHGGFF##$$[[\\]]^^OONNMMLL$%%&&''(YZZ[[\\]]]\\[[ZZ--,,++**44556677ddeeffggUUTTSSRR%%$$##"" <<==>>??llmmnnooMMLLKKJJDDEEFFGGttttssrrEEDDCCBBLLMMNNOOmmllkkjj==<<;;:: - -$$%%&&''TTUUVVWW``__^^]]&&%%$$##WWXXYYZZ[ZZYYXXW&%%$$##"@@AABBCCppqqrrssIIHHGGFFHHIIJJKKqqppoonnAA@@??>> !!""##PPQQRRSSiihhggff99887766 (())**++XXYYZZ[[aa``__^^1100//..00112233``aabbccYYXXWWVV))((''&& FFGGHHIIddccbbaa**))((''GGHHIIJJmmllkkjj==<<;;:: - -$$%%&&''TTUUVVWWeeddccbbUUTTSSRRHHGGFFEE))**++,,YYZZ[[\\[[ZZYYXX**++,,--ddeeffggKKJJIIHH$$%%&&''TTUUVVWWeeddccbb55443322,,--..//\\]]^^__]]\\[[ZZ--,,++**44556677ddeeffggUUTTSSRR%%$$##"" <<==>>??llmmnnooMMLLKKJJDDEEFFGGttttssrrEEDDCCBB%%&&''((__``aabbKKJJIIHH())**++,]^^__``aYYXXWWVV))((''&& - - 8899::;;hhiijjkkQQPPOONN!! @@AABBCCppqqrrssIIHHGGFFHHIIJJKKqqppoonnAA@@??>> !!""##PPQQRRSSiihhggff99887766 (())**++XXYYZZ[[\\[[ZZYY##$$[[\\]]^^WVUTSRQQ! DDEEFFGGttttssrrEEDDCCBBLLMMNNOOmmllkkjj==<<;;:: - -$$%%&&''TTUUVVWWeeddccbb55443322,,--..//\\]]^^__]]\\[[ZZ--,,++**44556677ddeeffggUUTTSSRR%%$$##""JJKKLLMM``__^^]]&&%%$$##KKLLMMNNiihhggff99887766 (())**++XXYYZZ[[aa``__^^QQPPOONNMMLLKKJJDDEEFFGGttttssrrEEDDCCBBLLMMNNOOmmllkkjj==<<;;:: - -$$%%&&''TTUUVVWWeeddccbb55443322,,--..//\\]]^^__PPOONNMM00112233iihhggff99887766 - - 8899::;;IIHHGGFFHHIIJJKKqqppoonnAA@@??>> !!""##PPQQRRSSiihhggff99887766 (())**++XXYYZZ[[aa``__^^1100//..00112233``aabbccLLKKJJII44556677eeddccbb55443322 <<==>>??EEDDCCBBLLMMNNOOmmllkkjj==<<;;:: - -$$%%&&''TTUUVVWWeeddccbb55443322,,--..//\\]]^^__]]\\[[ZZ--,,++**44556677ddeeffggHHGGFFEE ==>>??@@aa``__^^1100//..@@AABBCCAA@@??>> !!""##PPQQRRSSiihhggff99887766 (())**++XXYYZZ[[aa``__^^1100//..00112233``aabbccYYXXWWVV))((''&& - - 8899::;;hhiijjkkDDCCBBAA - - - -AABBCCDD]]\\[[ZZ--,,++**DDEEFFGG==<<;;:: - -$$%%&&''TTUUVVWWeeddccbb55443322,,--..//\\]]^^__]]\\[[ZZ--,,++**44556677ddeeffggUUTTSSRR%%$$##"" <<==>>??llmmnnoo@@??>>== EEFFGGHHYYXXWWVV))((''&&HHIIJJKK99887766 (())**++XXYYZZ[[aa``__^^1100//..00112233``aabbccYYXXWWVV))((''&& - - 8899::;;hhiijjkkQQPPOONN!! @@AABBCCppqqrrss77665544IIJJKKLLUUTTSSRR%%$$##""LLMMNNOO55443322,,--..//\\]]^^__]]\\[[ZZ--,,++**44556677ddeeffggUUTTSSRR%%$$##"" <<==>>??llmmnnooMMLLKKJJDDEEFFGGttllkkjj33221100MMNNOOPPQQPPOONN!!  !!""##PPQQRRSS1100//..00112233``aabbccYYXXWWVV))((''&& - - 8899::;;hhiijjkkQQPPOONN!! @@AABBCCppqqrrssIIHHGGFFHHIIJJKKiihhggff//..--,,QQWWXXYYMMLLKKJJ$$%%&&''TTUUVVWW--,,++**44556677ddeeffggUUTTSSRR%%$$##"" <<==>>??llmmnnooMMLLKKJJDDEEFFGGttttssrrEEDDCCBBLLMMNNOOeeddccbb++**))((##ZZ[[\\]]IIHHGGFF(())**++XXYYZZ[[))((''&& - - 8899::;;hhiijjkkQQPPOONN!! @@AABBCCppqqrrssIIHHGGFFHHIIJJKKqqppoonnAA@@??>> !!""##PPQQRRSSaa``__^^''&&%%$$$$%%&&''^^__``aaEEDDCCBB,,--..//\\]]^^__%%$$##"" <<==>>??llmmnnooMMLLKKJJDDEEFFGGttttssrrEEDDCCBBLLMMNNOOmmllkkjj==<<;;:: - -$$%%&&''TTUUVVWW]]\\[[ZZ##(())**++bbccddeeAA@@??>>00112233``aabbcc!! @@AABBCCppqqrrssIIHHGGFFHHIIJJKKqqppoonnAA@@??>> !!""##PPQQRRSSiihhggff99887766 (())**++XXYYZZ[[YYXXWWQQ,,--..//ffgghhii==<<;;:: - -44556677ddeeffgghhiiZHAbZHAbZHAb|ZdQb|ZdQbp`fnXv`˂rXQZp˂dQZ|rtAJlfH~fH~XQr˂XQr˂rbtbtlbtlHfpvHfpvZp˂Zp˂Zp˂|dr|drfH~fH~fH~XQr˂XQr˂btlbtlHfpvHfpvHfpvbHAZ`ےbdQZ|tbdQZf`vXvpfHXQr˂XQr˂btlbtlbtlHfpvHfpvZp˂Zp˂Zdr|dr|drfH~fH~XQr˂XQr˂XQr˂btlbtlHfpvHfpvfpvZp˂Zp˂Jl|tbdQZvpfXnvZHAb`JXQrbtlbtlHfpvHfpvHfpvZp˂Zp˂|dr|dr|dtAfH~fH~XQr˂XQr˂rbtbtlbtlHfpvHfpvZp˂Zp˂Zp˂|dr|drf`vX~f`ZHAbے`JlJtAd|ZQHfpvHfpvfpvZp˂Zp˂ے`JXQے`JXQے`JXQtlJtlJ~Hfpf~HJ`ےbHAZdrtAJtbdQf`vXf`vXpZHAbpZHAblJtAdJtArdJtArdnXvnXvrXQJ`rXQJ`rXQJ`tAJltAJlf`vXf`vXfZHAbpZHAbpZHAbJtArdJtArdnXvnXvnXvp˂rHAZp˂drtAJ|ltnvp~f`pZHAbpZHAbJtArdJtArdJtArdnXvnXvrXQJ`rXQJ`tAJltAJltAJlf`vXf`vXpZHAbpZHAbpZHAJtArdJtArdnXvnXvnrXQJrXQJ`rXQJ`drtAJ|drH~fpfH~ے`JXQ˂pZJtArdJtArdnXvnXvnXvrXQJ`rXQJ`tAJltAJlJltf`vXf`vXpZHAbpZHAblJtAdJtArdJtArdnXvnXvrXQJ`rXQJ`rXQJ`tAJltAJlnvppfH~ے`pZXQr˂rZdQblJtnXvnXvnrXQJrXQJ`rXQJ`r˂pr˂pr˂ptArdtArdvnXfpvbHAXQJdrtAltbQZ|dnvpnvpے`Jے`J|ZdQ|ZdQ|ZdQ`f~`f~ےbHAےbHAےbHAtbdQZtbdQZnvpnvpے`Jے`Jے`J|ZdQ|ZdQ`f~`f~`fHXQJ`ےbHAltdbnvfH~fvXnvے`Jے`J|ZdQ|ZdQf~`f~`f~ےbHAےbHAtbdQZtbdQZtbdQZnvpnvpے`Jے`Jے`JXQ|ZdQ|ZdQ`f~`f~`ےHAےbHAےbHAltbtAJl`vXnf`vr˂pHAbے|ZdQ|ZdQ`f~`f~`fHےbHAےbHAtbdQZtbdQZbnvnvpnvpے`Jے`J|ZdQ|ZdQ|ZdQ`f~`f~ےbHAےbHAےbHAtbdQZtbdQZfHXnf`vHAbےpZHAbbtlArd|`f~`f~`ےHAےbHAےbHAZHAbZHAb|ZdQb|ZdQb|ZdQbv`fnXv``ےbJbdQZdrtnvffH~fH~XQr˂XQr˂btlbtlbtlHfpvHfpvZp˂Zp˂Zdr|dr|drfH~fH~XQr˂XQr˂XQr˂btlbtlHfpvHfpvfpvbHAXQZdrrtAJlpff`vnvfH~XQr˂XQr˂btlbtlHfpvHfpvHfpvZp˂Zp˂|dr|dr|dtAfH~fH~XQr˂XQr˂rbtbtlbtlHfpvHfpvZp˂Zp˂Zp˂dQZ|tbdQZvpfXH~ZHAb`JXQrbtlbtlHfpvHfpvfpvZp˂Zp˂|dr|drpfHfH~fH~XQr˂XQr˂btlbtlbtlHfpvHfpvZp˂Zp˂Zdr|dr|drvpfXnv`JXQrے`JJtArdZdQbtHfpvHfpvZp˂Zp˂Zp˂ے`JXQے`JXQtlJtlJtlJ~Hfpp˂rHAZp˂Z|dAJltf`vXf`vXf`vXpZHAbpZHAbJtArdJtArdJtArdnXvnXvrXQJ`rXQJ`tAJltAJltAJlf`vXf`vXpZHAbpZHAbpZHAJtArdJtArdnXvnXvnrXQJJ`ےtAdQZ|tbdQvXnpfH~fZHAbpZHAbpZHAbJtArdJtArdnXvnXvnXvrXQJ`rXQJ`tAJltAJlJltf`vXf`vXpZHAbpZHAblJtAdJtArdJtArdnXvnXvrXQJ`rXQJ`rXQJ`drtAJ|ltH~fZHAbے`JXQ˂pZAJtArdJtArdnXvnXvnrXQJrXQJ`rXQJ`tAJltAJlf`vXf`vXf`vXpZHAbpZHAbJtArdJtArdJtArdnXvnXvrXQJ`rXQJ`tAJltAJltAJlH~fpfH~˂pZXQr˂|ZdQlJtnXvnXvrXQJ`rXQJ`rXQJ`r˂pr˂ptArdtArdtArdv~XQJ`ےrXQJrtAJlbdQZ|nvpnvpnvpے`Jے`J|ZdQ|ZdQf~`f~`f~ےbHAےbHAtbdQZtbdQZtbdQZnvpnvpے`Jے`Jے`JXQ|ZdQ|ZdQ`f~`f~`p˂bHAZpdrtAZ|dvpfHf`vے`Jے`Jے`J|ZdQ|ZdQ`f~`f~`fHےbHAےbHAtbdQZtbdQZbnvnvpnvpے`Jے`J|ZdQ|ZdQ|ZdQ`f~`f~ےbHAےbHAےbHAltdbnvvpfHJQrrZHA㙒`JXQ|ZdQ|ZdQ`f~`f~`ےHAےbHAےbHAtbdQZtbdQZnvpnvpnvpے`Jے`J|ZdQ|ZdQf~`f~`f~ےbHAےbHAtbdQZtbdQZtbdQZ`vXnf`vHAbےp`JXQbtlArd|`f~`f~ےbHAےbHAےbHAZHAbZHAb|ZdQb|ZdQbf~HHfpvbHAZ`ےbtbdQdrtfH~fH~fH~XQr˂XQr˂btlbtlHfpvHfpvHfpvZp˂Zp˂|dr|dr|dtAfH~fH~XQr˂XQr˂rbtbtlbtlHfpvHfpvrXQJ`˂rXQJltrtAJl~f`XnvXQr˂XQr˂XQr˂btlbtlHfpvHfpvfpvZp˂Zp˂|dr|drpfHfH~fH~XQr˂XQr˂btlbtlbtlHfpvHfpvZp˂Zp˂ZdrrtAJlp`vX~f`˂pZHbے`rbtbtlbtlHfpvHfpvZp˂Zp˂Zp˂|dr|drfH~fH~fH~XQr˂XQr˂btlbtlHfpvHfpvHfpvZp˂Zp˂|dr|dr|dtAvpfXH~`JXQHArbtJtArdZdQbHfpvHfpvZp˂Zp˂Zdrے`JXQے`JXQtlJtlJXv`fnXvp˂rHAZp`Z|dAJltf`vXf`vXfZHAbpZHAbpZHAbJtArdJtArdnXvnXvnXvrXQJ`rXQJ`tAJltAJlJltf`vXf`vXpZHAbpZHAblJtAdJtArdJtArdnXvnXvےbHAJ`ےbdQZ|tbdQvXnpfH~pZHAbpZHAbpZHAJtArdJtArdnXvnXvnrXQJrXQJ`rXQJ`tAJltAJlf`vXf`vXf`vXpZHAbpZHAbJtArdJtArdJtArdnXvnXvrXQJ`rXQJ`tAdQZ|tbdQnvpvXnAbے`JXQrlJtAdJtArdJtArdnXvnXvrXQJ`rXQJ`rXQJ`tAJltAJlf`vXf`vXfZHAbpZHAbpZHAbJtArdJtArdnXvnXvnXvrXQJ`rXQJ`tAJltAJlJltH~fZHAbbے`lJA|ZQbt璑JtArdnXvnXvrXQJ`rXQJ`tAJlr˂pr˂ptArdtArd~Hf`f~XQJ`ےےbHArtAJlbdQZnvpnvpے`Jے`Jے`J|ZdQ|ZdQ`f~`f~`fHےbHAےbHAtbdQZtbdQZbnvnvpnvpے`Jے`J|ZdQ|ZdQ|ZdQ`f~`f~Zp˂bHAZpdrtAtAJlvpfHf`vے`Jے`Jے`JXQ|ZdQ|ZdQ`f~`f~`ےHAےbHAےbHAtbdQZtbdQZnvpnvpnvpے`Jے`J|ZdQ|ZdQf~`f~`f~ےbHAےbHAdrtAZ|dfH~vpfHJXQrpZHA|ZdQ|ZdQ|ZdQ`f~`f~ےbHAےbHAےbHAtbdQZtbdQZnvpnvpے`Jے`Jے`J|ZdQ|ZdQ`f~`f~`fHےbHAےbHAtbdQZtbdQZbnvvpfH˂pJXQrZdQbtlJtArf~`f~`f~ےbHAےbHAtbdQZ|drZHAbZHAb|ZdQb|ZdQbpvnHfpvrXQZp˂bQZ|rtAJlfH~fH~XQr˂XQr˂XQr˂btlbtlHfpvHfpvfpvZp˂Zp˂|dr|drpfHfH~fH~XQr˂XQr˂btlbtlbtlHfpvHfpvrXQJ``ےbJl|tbdQZ~fvXnvpfHXQr˂XQr˂rbtbtlbtlHfpvHfpvZp˂Zp˂Zp˂|dr|drfH~fH~fH~XQr˂XQr˂btlbtlHfpvHfpvHfpvZp˂Zp˂JltrtAJlf`vX~f`˂pZHbے`btlbtlbtlHfpvHfpvZp˂Zp˂Zdr|dr|drfH~fH~XQr˂XQr˂XQr˂btlbtlHfpvHfpvfpvZp˂Zp˂|dr|drp`vX~f`ZHAb˂pZHAlJtAd|ZHfpvHfpvHfpvZp˂Zp˂|drtAJlے`JXQے`JXQtlJtlJXv`fnXHJ`ےrXQJ`drtAJtbdQf`vXf`vXpZHAbpZHAbpZHAJtArdJtArdnXvnXvnrXQJrXQJ`rXQJ`tAJltAJlf`vXf`vXf`vXpZHAbpZHAbJtArdJtArdJtArdnXvnXvےrHAZp˂drtAJ|drnvp~f`pZHAbpZHAblJtAdJtArdJtArdnXvnXvrXQJ`rXQJ`rXQJ`tAJltAJlf`vXf`vXfZHAbpZHAbpZHAbJtArdJtArdnXvnXvnXvrXQJ`rXQJ`bdQZ|tbdQnvppfH~Abے`JXQrJtArdJtArdJtArdnXvnXvrXQJ`rXQJ`tAJltAJltAJlf`vXf`vXpZHAbpZHAbpZHAJtArdJtArdnXvnXvnrXQJrXQJ`rXQJ`tAJltAJlnvpvXnے`JXQbے`rd|dQbt璀nXvnXvnXvrXQJ`rXQJ`tAJltbdQZr˂pr˂ptArdtArd~HffpvbHAZpےbHAltbZ|dnvpnvpے`Jے`Jے`JXQ|ZdQ|ZdQ`f~`f~`ےHAےbHAےbHAtbdQZtbdQZnvpnvpnvpے`Jے`J|ZdQ|ZdQf~`f~`f~XQJ`ےrXQJltbtAJlfH~ˍvXnے`Jے`J|ZdQ|ZdQ|ZdQ`f~`f~ےbHAےbHAےbHAtbdQZtbdQZnvpnvpے`Jے`Jے`J|ZdQ|ZdQ`f~`f~`fHےbHAےbHAdrtAtAJlfHXnf`vJQrpZAbے|ZdQ|ZdQf~`f~`f~ےbHAےbHAtbdQZtbdQZtbdQZnvpnvpے`Jے`Jے`JXQ|ZdQ|ZdQ`f~`f~`ےHAےbHAےbHAtbdQZtbdQZfH~vpfHr˂pJXQrZdQbtlJtAr`f~`f~`fHےbHAےbHAtbdQZ|drtAJltAJlf`vXf`vXfZHAbpZHAbpZHAbJtArdJtArdnXvnXvnXvrXQJ`rXQJ`tAJltAJlJltf`vXf`vXZHAb˂pZHAb㉀ۑppfH~pfH~p|dZ|dtbdQZtbdQZnvpnvpے`Jے`Jے`J|ZdQ|ZdQ`f~`f~`fHےbHAےbHAtbdQZtbdQZbnvnvpnvpے`JXQbے`JAHr󙐅f۝`vf۝`vrQtJlrQtJl|dr|drfH~fH~XQr˂XQr˂XQr˂btlbtlHfpvHfpvfpvZp˂Zp˂|dr|drpfHfH~fH~r˂pJXQrۑpJXnv˅Xnv˒tbAdtbAdtAJltAJlf`vXf`vXpZHAbpZHAbpZHAJtArdJtArdnXvnXvnrXQJrXQJ`rXQJ`tAJltAJlf`vXf`vXf`vXZHAb˂p`ZAHr󙐂ˍpfH~pfH~Z|dZ|dtbdQZtbdQZnvpnvpے`Jے`Jے`JXQ|ZdQ|ZdQ`f~`f~`ےHAےbHAےbHAtbdQZtbdQZnvpnvpnvpے`JXQQXb㉀ہ`ZQXbㅐf۝`vf۝`vrQtJlrQtJl|dr|dtAfH~fH~XQr˂XQr˂rbtbtlbtlHfpvHfpvZp˂Zp˂Zp˂|dr|drfH~fH~fH~HAbےpJAHr󉀒ۑpJXnv˅Xnv˒tbAdtbAdtAJlJltf`vXf`vXpZHAbpZHAblJtAdJtArdJtArdnXvnXvrXQJ`rXQJ`rXQJ`tAJltAJlf`vXf`vXfr˂`JXQrˁ`ZAHr󙐂ˍpfH~pfH~Z|dZ|dtbdQZbnvnvpnvpے`Jے`J|ZdQ|ZdQ|ZdQ`f~`f~ےbHAےbHAےbHAtbdQZtbdQZnvpnvppZHAb˂pZQXb㉀ہ`pJAHf۝`vf۝`vrQtJlrQtJl|drpfHfH~fH~XQr˂XQr˂btlbtlbtlHfpvHfpvZp˂Zp˂Zdr|dr|drfH~fH~ے`JHAbےpJAHQXr󙐂ˁ`Xnv˅Xnv˒tbAdtbAdtAJlf`vXf`vXf`vXpZHAbpZHAbJtArdJtArdJtArdnXvnXvrXQJ`rXQJ`tAJltAJltAJlf`vXf`vXXQr˂`JXQrb㉀ۑpZQXb㉀pfH~pfH~Z|dZ|dtbdQZnvpnvpnvpے`Jے`J|ZdQ|ZdQf~`f~`f~ےbHAےbHAtbdQZtbdQZtbdQZnvpnvppZHAbے`JAHr󙐒ۑpJAHf۝`vf۝`vrQtJlrQtJl|drfH~fH~fH~XQr˂XQr˂btlbtlHfpvHfpvHfpvZp˂Zp˂|dr|dr|dtAfH~fH~ے`pJXQrˁ`ZQXr󙐂ˁ`Xnv˅Xnv˒tbAdtbAdZ|mnopqrsttsrqpon \ No newline at end of file diff --git a/vendor/endroid/qr-code/assets/data/qrv25_2.dat b/vendor/endroid/qr-code/assets/data/qrv25_2.dat deleted file mode 100755 index 2de8eb367a37833709146ae7a3d6f12b4e6e1043..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 38190 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 M^T+r=>=>=>=<;<;<;<;:9:9:9:987878787656565656565656543434343212121210/0/0/0/xwxwxwxwxwxwxwxwvuvuvuvutstststsrqrqrqrqooopopopnmnmnmnmlklklklklklklklkjijijijihghghghgfefefefefedcdcdcdcdcdcdcbabababa`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUSTSTSTSTTSTSTSSSRQRQRQRQPOPOPOPONMNMNMNMNMLKLKLKLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCBABABABA@?@?@?@?@?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:987878787656565656543434343434343212121210/0/0/0/xwxwxwxwxwxwxwxwvuvuvuvutstststsrqrqrqrqopopopopnmnmnmnmlklklklklklklklkjijijijihghghghgfefefefedcdcdcdcdcdcdcdcbabababa`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUSTSTSTSTSSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCBABABABA@?@?@?@?@?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:987878787656565654343434343434343212121210/0/0/0/xwxwxwxwxwxwxwxwvuvuvuvutstststsrqrqrqrqopopopopnmnmnmnmlklklklklkjijijijijijijihghghghgfefefefedcdcdcdcdcdcdcdcbabababa`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUSTSTSTSTTSRQRQRQRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCBABABABA@?@?@?@?@?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:987878787656565654343434343434343212121210/0/0/0/xwxwxwxwxwxwxwxwvuvuvuvutstststsrqrqrqrqopopopopnmnmnmnmlklklklkjijijijijijijijihghghghgfefefefedcdcdcdcdcdcdcdcbabababa`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUSTSTSTSTRQRQRQRQRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCBABABABA@?@?@?@?@?>=>=>=>=>=>=>=<;<;<;<;:9:9:9:977777878656565654343434343434343212121210/0/0/0/xwxwxwxwvuvuvuvuvuvuvuvutstststsrqrqrqrqopopopopnmnmnmnmlklklklkjijijijijijijijihghghghgfefefefedcdcdcdcdcdcdcdcbabababa`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUSTSTSTSTRQRQRQRQRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCBABABABA@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;:9:9:9:978787878656565654343434343434343212121210/0/0/0/xwxwxwxwvuvuvuvuvuvuvuvutstststsrqrqrqrqopopopopnmnmnmnmlklklklkjijijijijijijijihghghghgfefefefedcdcdcdcdcdcdcdcbabababa`_`_`_`_^]^]^]^]^]\[\[\[\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUSTSTSSSSRQRQRQRQRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEFEDCDCDCDCDCDCDCBABABABA@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;:9:9:9:978787878656565654343434343434343212121210/0/0/0/xwxwxwxwvuvuvuvuvuvuvuvutstststsrqrqrqrqooooooponmnmnmnmlklklklkjijijijijijijijihghghghgfefefefedcdcdcdcdcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUSSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCDCDCDCDCBABABABA@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;:9:9:9:978787878656565654343434343434343212121210/0/0/0/xwxwxwxwvuvuvuvuvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijijijijijihghghghgfefefefedcdcdcdcdcbababababababa`_`_`_`_^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKLKJIJIJIJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCDCDCDCDCBABABABA@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;:9:9:9:978787878656565654343434343212121212121210/0/0/0/xwxwxwxwvuvuvuvuvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijijijijijihghghghgfefefefedcdcdcdcbabababababababa`_`_`_`_^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCDCDCDCDCBABABABA@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;:9:9:9:978787878656565654343434321212121212121210/0/0/0/xwxwxwxwvuvuvuvutstststsrqrqrqrqpopopopopopopoponmnmnmnmlklklklkjijijijijihghghghghghghgfefefefedcdcdcdcbabababababababa`_`_`_`_^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQRQPOPOPOPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCDCDCDCDCBABABABA@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;:9:9:9:978777777656565654343434321212121212121210/0/0/0/xwxwxwxwvuvuvuvutstststsrqrqrqrqooooopoppopopoponmnmnmnmlklklklkjijijijihghghghghghghghgfefefefedcdcdcdcbabababababababa`_`_`_`_^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCDCDCDCDCBABABABA@?@?@?@?>=>=>=>=>=<;<;<;<;<;<;<;:9:9:9:987878787656565654343434321212121212121210/0/0/0/xwxwxwxwvuvuvuvutstststsrqrqrqrqopopopoppopopoponmnmnmnmlklklklkjijijijihghghghghghghghgfefefefedcdcdcdcbabababababababa`_`_`_`_^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCDCDCDCDCBABABABA@?@?@?@?>=>=>=>=<;<;<;<;<;:9:9:9:9:9:9:987878787656565654343434321212121212121210/0/0/0/xwxwxwxwvuvuvuvutstststsrqrqrqrqopopopopmmmmmmnmnmnmnmnmlklklklkjijijijihghghghghghghghgfefefefedcdcdcdcbabababababababa`_`_`_`_^]^]^]^]\[\[\[\[\[ZYZYZYZYZYZYZYXWXWXWXWVUVUVUVUSSSSSTSTRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCDCBABABABABABABA@?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:9:987878787878787656565654343434321212121212121210/0/0/0/xwxwxwxwvuvuvuvutstststsrqrqrqrqopopopopnmnmnmnmnmnmnmnmlklklklkjijijijihghghghghghghghgfefefefedcdcdcdcbabababababababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWVUVUVUVUSTSTSTSTRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABABABABABA@?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:98777777887878787656565654343434321212121212121210/0/0/0/xwxwxwxwvuvuvuvutstststsrqrqrqrqopopopopnmnmnmnmnmnmnmnmlklklklkjijijijihghghghghghghghgfefefefedcdcdcdcbababababa`_`_`_`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWVUVUVUVUSTSTSTSTRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIJIHGHGHGHGHGHGHGFEFEFEFEDCDCDCDCBABABABABABABABA@?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:97878787887878777656565654343434321212121210/0/0/0/0/0/0/xwxwxwxwvuvuvuvutstststsrqrqrqrqopopopopnmnmnmnmnmnmnmnmlklklklkjijijijihghghghghghghghgfefefefedcdcdcdcbabababa`_`_`_`_`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWVUVUVUVUSTSTSTSTRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEDCDCDCDCBABABABABABABABA@?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:978787878778787876565656543434343212121210/0/0/0/0/0/0/0/xwxwxwxwvuvuvuvutstststsrqrqrqrqopoooooonmnmnmnmnmnmnmnmlklklklkjijijijihghghghghgfefefefefefefedcdcdcdcbabababa`_`_`_`_`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWVUVUVUVUSTSTSTSTRQRQRQRQPOPOPOPOPONMNMNMNMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEDCDCDCDCBABABABABABABABA@?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:978787878876565656565656543434343212121210/0/0/0/0/0/0/0/xwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmnmnmnmnmlklklklkjijijijihghghghgfefefefefefefefedcdcdcdcbabababa`_`_`_`_`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWVUVUVUVUSTSTSTSTRQRQRQRQPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEDCDCDCDCBABABABABABABABA@?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:978787878656565656565656543434343212121210/0/0/0/0/0/0/0/xwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmnmlklklklklklklkjijijijihghghghgfefefefefefefefedcdcdcdcbabababa`_`_`_`_`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWVUVUVUVUSTSSSSSSRQRQRQRQPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEDCDCDCDCBABABABABABABABA@?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:978787878656565656565656543434343212121210/0/0/0/0/0/0/0/.-.-.-.-xwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklklklklklkjijijijihghghghgfefefefefefefefedcdcdcdcbabababa`_`_`_`_`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYZYXWXWXWXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEDCDCDCDCBABABABABA@?@?@?@?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:978787777656565656565656543434343212121210/0/0/0/0/0/0/0/.-.-.-.-xwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklklklklklkjijijijihghghghgfefefefefefefefedcdcdcdcbabababa`_`_`_`_`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWXWVUVUVUVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?@?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:977878787656565656565656543434343212121210/0/0/0/0/0/0/0/.-.-.-.-xwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklklklklklkjijijijihghghghgfefefefefefefefedcdcdcdcbabababa`_`_`_`_`_^]^]^]^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUVUTSTSTSTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGHGFEFEFEFEFEFEFEDCDCDCDCBABABABA@?@?@?@?@?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:987878787656565656565656543434343212121210/0/0/0/0/.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-,+,+,+,+*)*)*)*)('('('('('&%&%&%&%&%&%&%$#$#$#$#"!"!"!"!           - - - - .-.-.-.-.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%&%&%&%&%$#$#$#$#"!"!"!"!            - - - - .-.-.-.-.-,+,+,+,+,+,+,+*)*)*)*)('('('('&%&%&%&%&%&%&%&%$#$#$#$#"!"!"!"!            - - - - .-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)('('('('&%&%&%&%&%&%&%&%$#$#$#$#"!"!"!"!            - - - - .-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)('('('('&%&%&%&%&%&%&%&%$#$#$#$#"!"!"!"!            - - - - .-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)('('('('&%&%&%&%&%&%&%&%$#$#$#$#"!"!"!"!            - - - - .-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)('('('('&%&%&%&%&%&%&%&%$#$#$#$#"!"!"!"!            - - - - .-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)('('('('&%&%&%&%&%$#$#$#$#$#$#$#"!"!"!"!         - - - - .-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!        - - - - .-.-.-.-,+,+,+,+,+*)*)*)*)*)*)*)('('('('&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!        - - - - .-.-.-.-,+,+,+,+*)*)*)*)*)*)*)*)('('('('&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!        - - - - .-.-.-.-,+,+,+,+*)*)*)*)*)*)*)*)('('('('&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!        - - - - .-.-.-.-,+,+,+,+*)*)*)*)*)*)*)*)('('('('&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!        - - - - .-.-.-.-,+,+,+,+*)*)*)*)*)*)*)*)('('('('&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!        - - - - .-.-.-.-,+,+,+,+*)*)*)*)*)*)*)*)('('('('&%&%&%&%$#$#$#$#$#"!"!"!"!"!"!"!        - - - - - - - .-.-.-.-,+,+,+,+*)*)*)*)*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!"!"!"!"!        - - - - - - - - .-.-.-.-,+,+,+,+*)*)*)*)*)('('('('('('('&%&%&%&%$#$#$#$#"!"!"!"!"!"!"!"!        - - - - - - - - .-.-.-.-,+,+,+,+*)*)*)*)('('('('('('('('&%&%&%&%$#$#$#$#"!"!"!"!"!"!"!"!        - - - - - - - - .-.-.-.-,+,+,+,+*)*)*)*)('('('('('('('('&%&%&%&%$#$#$#$#"!"!"!"!"!"!"!"!        - - - - - - - - .-.-.-.-,+,+,+,+*)*)*)*)('('('('('('('('&%&%&%&%$#$#$#$#"!"!"!"!"!"!"!"!        - - - - - - - - .-.-.-.-,+,+,+,+*)*)*)*)('('('('('('('('&%&%&%&%$#$#$#$#"!"!"!"!"!"!"!"!        - - - - - - - - .-.-.-.-,+,+,+,+*)*)*)*)('('('('('('('('&%&%&%&%$#$#$#$#"!"!"!"!"!           - - - - - .-.-.-.-,+,+,+,+*)*)*)*)('('('('('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - - xxwwvvuuQQRRSSTT55443322GGHHIIJJ??>>==<;,,--..//iihhggff - -PPQQRRSSEEDDCCBBttuuvvww!! <<==>>??YYXXWWVV``aabbcc55443322(())**++hhggffee uutsrqpo PPQQRRSSEEDDCCBBttuuvvww!! <<==>>??YYXXWWVV``aabbcc55443322(())**++mmllkkjjLLMMNNOO??>>==77556677==LLKKJJIIttuuvvww!! <<==>>??YYXXWWVVttssrrqqUUVVWWXX1100//..KKLLMMNN:987766500112233eeddccbb TTUUVVWWAA@@??>>xxxxwwvv@@AABBCCUUTTSSRR - - ddeeffgg1100//..,,--..//ddccbbaaonnmmllk - - TTUUVVWWAA@@??>>xxxxwwvv@@AABBCCUUTTSSRR - - ddeeffgg1100//..,,--..//iihhggff - -PPQQRRSS66554433>>??@@AAHHGGFFEExxxxwwvv@@AABBCCUUTTSSRRppoonnmmYYZZ[[\\--,,++**OOPPQQRR5443322144556677aa``__^^XXYYZZ[[==<<;;:: !!""##uuttssrrDDEEFFGGQQPPOONN hhiijjkk--,,++**00112233``__^^]]kjjiihhgXXYYZZ[[==<<;;:: !!""##uuttssrrDDEEFFGGQQPPOONN hhiijjkk--,,++**00112233eeddccbb TTUUVVWW221100//BBCCDDEEDDCCBBAA !!""##uuttssrrDDEEFFGGQQPPOONNllkkjjii ]]^^__``))((''&&SSYYZZ[[100//..-8899::;;]]\\[[ZZ\\]]^^__99887766$$%%&&''qqppoonnHHIIJJKKMMLLKKJJllmmnnoo))((''&&44556677\\[[ZZYYgffeeddc\\]]^^__99887766$$%%&&''qqppoonnHHIIJJKKMMLLKKJJllmmnnoo))((''&&44556677aa``__^^XXYYZZ[[..--,,++FFGGHHII@@??>>==$$%%&&''qqppoonnHHIIJJKKMMLLKKJJhhggffee - - aabbccdd%%$$##""\\]]^^__-,,++**)<<==>>??YYXXWWVV``aabbcc55443322(())**++mmllkkjjLLMMNNOOIIHHGGFFppqqrrss%%$$##""8899::;;SSRRQQPP!!""##$$cbbaa``_``aabbcc55443322(())**++mmllkkjjLLMMNNOOIIHHGGFFppqqrrss%%$$##""8899::;;]]\\[[ZZ\\]]^^__**))((''JJKKLLMM<;:98776(())**++mmllkkjjLLMMNNOOIIHHGGFFddccbbaa - - eeffgghh!!``aabbcc)((''&&%@@AABBCCUUTTSSRR - - ddeeffgg1100//..,,--..//iihhggff - -PPQQRRSSEEDDCCBBttuuvvww!! <<==>>??OONNMMLL%%&&''((_^^]]\\[ - - ddeeffgg1100//..,,--..//iihhggff - -PPQQRRSSEEDDCCBBttuuvvww!! <<==>>??YYXXWWVV``aabbcc&&%%$$##NNOOPPQQ65544332,,--..//iihhggff - -PPQQRRSSEEDDCCBB``__^^]] iijjkkllddeeffgg%$$##""!DDEEFFGGQQPPOONN hhiijjkk--,,++**00112233eeddccbb TTUUVVWWAA@@??>>xxxxwwvv@@AABBCCKKJJIIHH))**++,,[ZZYYXWV hhiijjkk--,,++**00112233eeddccbb TTUUVVWWAA@@??>>xxxxwwvv@@AABBCCUUTTSSRR - - ddeeffgg""!!RRSSYYZZ21100//.00112233eeddccbb TTUUVVWWAA@@??>>\\[[ZZYYmmnnoopphhiijjkk! HHIIJJKKMMLLKKJJllmmnnoo))((''&&44556677aa``__^^XXYYZZ[[==<<;;:: !!""##uuttssrrDDEEFFGGGGFFEEDD--..//00UTSSRRQQllmmnnoo))((''&&44556677aa``__^^XXYYZZ[[==<<;;:: !!""##uuttssrrDDEEFFGGQQPPOONN hhiijjkk[[\\]]^^.--,,++*44556677aa``__^^XXYYZZ[[==<<;;::XXWWVVUUqqrrsstt llmmnnooLLMMNNOOIIHHGGFFppqqrrss%%$$##""8899::;;]]\\[[ZZ\\]]^^__99887766$$%%&&''qqppoonnHHIIJJKKCCBBAA@@11223344PPOONNMMppqqrrss%%$$##""8899::;;]]\\[[ZZ\\]]^^__99887766$$%%&&''qqppoonnHHIIJJKKMMLLKKJJllmmnnoo__``aabb*))((''&8899::;;]]\\[[ZZ\\]]^^__99887766TTSSRRQQuuvvwwxx - - uuvvwwxxPPQQRRSSEEDDCCBBttuuvvww!! <<==>>??YYXXWWVV``aabbcc55443322(())**++mmllkkjjLLMMNNOO??>>==77556677==LLKKJJIIttuuvvww!! <<==>>??YYXXWWVV``aabbcc55443322(())**++mmllkkjjLLMMNNOOIIHHGGFFppqqrrssccddeeff&%%$$##"<<==>>??YYXXWWVV``aabbcc55443322PPOONNMM xxwwvvuu - - xxwwvvuuTTUUVVWWAA@@??>>xxxxwwvv@@AABBCCUUTTSSRR - - ddeeffgg1100//..,,--..//iihhggff - -PPQQRRSS66554433>>??@@AAHHGGFFEExxxxwwvv@@AABBCCUUTTSSRR - - ddeeffgg1100//..,,--..//iihhggff - -PPQQRRSSEEDDCCBBttuuvvww - -gghhiijj"!! @@AABBCCUUTTSSRR - - ddeeffgg1100//..LLKKJJII!!""##$$oonnmmll tsrqpoon XXYYZZ[[==<<;;:: !!""##uuttssrrDDEEFFGGQQPPOONN hhiijjkk--,,++**00112233eeddccbb TTUUVVWW221100//BBCCDDEEDDCCBBAA !!""##uuttssrrDDEEFFGGQQPPOONN hhiijjkk--,,++**00112233eeddccbb TTUUVVWWAA@@??>>xxxxwwvv kkllmmnnDDEEFFGGQQPPOONN hhiijjkk--,,++**HHGGFFEE%%&&''((kkjjiihhnmmllkkj - - \\]]^^__99887766$$%%&&''qqppoonnHHIIJJKKMMLLKKJJllmmnnoo))((''&&44556677aa``__^^XXYYZZ[[..--,,++FFGGHHII@@??>>==$$%%&&''qqppoonnHHIIJJKKMMLLKKJJllmmnnoo))((''&&44556677aa``__^^XXYYZZ[[==<<;;:: !!""##uuoonnmmoouuvvwwHHIIJJKKMMLLKKJJllmmnnoo))((''&&DDCCBBAA))**++,,ggffeeddjiihhggf``aabbcc55443322(())**++mmllkkjjLLMMNNOOIIHHGGFFppqqrrss%%$$##""8899::;;]]\\[[ZZ\\]]^^__**))((''JJKKLLMM<;:98776(())**++mmllkkjjLLMMNNOOIIHHGGFFppqqrrss%%$$##""8899::;;]]\\[[ZZ\\]]^^__99887766$$%%&&''llkkjjii - - xxxxwwvvLLMMNNOOIIHHGGFFppqqrrss%%$$##""@@??>>==--..//00ccbbaa``!!feeddccb - - ddeeffgg1100//..,,--..//iihhggff - -PPQQRRSSEEDDCCBBttuuvvww!! <<==>>??YYXXWWVV``aabbcc&&%%$$##NNOOPPQQ65544332,,--..//iihhggff - -PPQQRRSSEEDDCCBBttuuvvww!! <<==>>??YYXXWWVV``aabbcc55443322(())**++hhggffee uutsrqpo PPQQRRSSEEDDCCBBttuuvvww!! <<;;::9911223344__^^]]\\""##$$%%baa``__^ hhiijjkk--,,++**00112233eeddccbb TTUUVVWWAA@@??>>xxxxwwvv@@AABBCCUUTTSSRR - - ddeeffgg""!!RRSSYYZZ21100//.00112233eeddccbb TTUUVVWWAA@@??>>xxxxwwvv@@AABBCCUUTTSSRR - - ddeeffgg1100//..,,--..//ddccbbaaonnmmllk - - TTUUVVWWAA@@??>>xxxxwwvv8877665555667788[[ZZYYSS&&''(())^]]\\[[Zllmmnnoo))((''&&44556677aa``__^^XXYYZZ[[==<<;;:: !!""##uuttssrrDDEEFFGGQQPPOONN hhiijjkk[[\\]]^^.--,,++*44556677aa``__^^XXYYZZ[[==<<;;:: !!""##uuttssrrDDEEFFGGQQPPOONN hhiijjkk--,,++**00112233``__^^]]kjjiihhgXXYYZZ[[==<<;;:: !!""##uuttssrr4433221199::;;<>??@@NNMMLLKK..//0011SSRRQQPPttuuvvww!! <<==>>??YYXXWWVV``aabbcc55443322(())**++mmllkkjjLLMMNNOOIIHHGGFFppqqrrssccddeeff&%%$$##"<<==>>??YYXXWWVV``aabbcc55443322(())**++mmllkkjjLLMMNNOOIIHHGGFFppqqrrss%%$$##""8899::;;SSRRQQPP!!""##$$cbbaa``_``aabbcc55443322(())**++mmllkkjj,,++**))AABBCCDDJJIIHHGG22334455OONNMMLLxxxxwwvv@@AABBCCUUTTSSRR - - ddeeffgg1100//..,,--..//iihhggff - -PPQQRRSSEEDDCCBBttuuvvww - -gghhiijj"!! @@AABBCCUUTTSSRR - - ddeeffgg1100//..,,--..//iihhggff - -PPQQRRSSEEDDCCBBttuuvvww!! <<==>>??OONNMMLL%%&&''((_^^]]\\[ - - ddeeffgg1100//..,,--..//iihhggff - -((''&&%%EEFFGGHHFFEEDDCC6677==>>KKJJIIHH !!""##uuttssrrDDEEFFGGQQPPOONN hhiijjkk--,,++**00112233eeddccbb TTUUVVWWAA@@??>>xxxxwwvv kkllmmnnDDEEFFGGQQPPOONN hhiijjkk--,,++**00112233eeddccbb TTUUVVWWAA@@??>>xxxxwwvv@@AABBCCKKJJIIHH))**++,,[ZZYYXWV hhiijjkk--,,++**00112233eeddccbb  - - $$##""!!IIJJKKLLBBAA@@????@@AABBGGFFEEDD$$%%&&''qqppoonnHHIIJJKKMMLLKKJJllmmnnoo))((''&&44556677aa``__^^XXYYZZ[[==<<;;:: !!""##uuoonnmmoouuvvwwHHIIJJKKMMLLKKJJllmmnnoo))((''&&44556677aa``__^^XXYYZZ[[==<<;;:: !!""##uuttssrrDDEEFFGGGGFFEEDD--..//00UTSSRRQQllmmnnoo))((''&&44556677aa``__^^  MMNNOOPP>>==7766CCDDEEFFCCBBAA@@(())**++mmllkkjjLLMMNNOOIIHHGGFFppqqrrss%%$$##""8899::;;]]\\[[ZZ\\]]^^__99887766$$%%&&''llkkjjii - - xxxxwwvvLLMMNNOOIIHHGGFFppqqrrss%%$$##""8899::;;]]\\[[ZZ\\]]^^__99887766$$%%&&''qqppoonnHHIIJJKKCCBBAA@@11223344PPOONNMMppqqrrss%%$$##""8899::;;]]\\[[ZZppqqrrss%%$$##""8899::;;]]\\[[ZZ\\]]^^__99887766$$%%&&''llkkjjii - - xxxxwwvvLLMMNNOOIIHHGGFFppqqrrss%%$$##""8899::;;]]\\[[ZZ\\]]^^__99887766$$%%&&''iihhggff]]\\[[ZZttuuvvww!! <<==>>??YYXXWWVV``aabbcc55443322(())**++hhggffee uutsrqpo PPQQRRSSEEDDCCBBttuuvvww!! <<==>>??YYXXWWVV``aabbcc55443322(())**++eeddccbbYYXXWWVVxxxxwwvv@@AABBCCUUTTSSRR - - ddeeffgg1100//..,,--..//ddccbbaaonnmmllk - - TTUUVVWWAA@@??>>xxxxwwvv@@AABBCCUUTTSSRR - - ddeeffgg1100//..,,--..//aa``__^^!!""##UUTTSSRR !!""##uuttssrrDDEEFFGGQQPPOONN hhiijjkk--,,++**00112233``__^^]]kjjiihhgXXYYZZ[[==<<;;:: !!""##uuttssrrDDEEFFGGQQPPOONN hhiijjkk--,,++**00112233]]\\[[ZZ$$%%&&''QQPPOONN$$%%&&''qqppoonnHHIIJJKKMMLLKKJJllmmnnoo))((''&&44556677\\[[ZZYYgffeeddc\\]]^^__99887766$$%%&&''qqppoonnHHIIJJKKMMLLKKJJllmmnnoo))((''&&44556677YYSSRRQQ(())**++MMLLKKJJ !!""##(())**++mmllkkjjLLMMNNOOIIHHGGFFppqqrrss%%$$##""8899::;;SSRRQQPP!!""##$$cbbaa``_``aabbcc55443322(())**++mmllkkjjLLMMNNOOIIHHGGFFppqqrrss%%$$##""8899::;;PPOONNMM,,--..//IIHHGGFF$$%%&&'',,--..//iihhggff - -PPQQRRSSEEDDCCBBttuuvvww!! <<==>>??OONNMMLL%%&&''((_^^]]\\[ - - ddeeffgg1100//..,,--..//iihhggff - -PPQQRRSSEEDDCCBBttuuvvww!! <<==>>??LLKKJJII00112233EEDDCCBB(())**++00112233eeddccbb TTUUVVWWAA@@??>>xxxxwwvv@@AABBCCKKJJIIHH))**++,,[ZZYYXWV hhiijjkk--,,++**00112233eeddccbb TTUUVVWWAA@@??>>xxxxwwvv@@AABBCCHHGGFFEE44556677AA@@??>>,,--..//44556677aa``__^^XXYYZZ[[==<<;;:: !!""##uuttssrrDDEEFFGGGGFFEEDD--..//00UTSSRRQQllmmnnoo))((''&&44556677aa``__^^XXYYZZ[[==<<;;:: !!""##uuttssrrDDEEFFGGDDCCBBAA==>>??@@==<<;;::001122338899::;;]]\\[[ZZ\\]]^^__99887766$$%%&&''qqppoonnHHIIJJKKCCBBAA@@11223344PPOONNMMppqqrrss%%$$##""8899::;;]]\\[[ZZ\\]]^^__99887766$$%%&&''qqppoonnHHIIJJKK@@??>>==AABBCCDD9988776644556677<<==>>??YYXXWWVV``aabbcc55443322(())**++mmllkkjjLLMMNNOO??>>==77556677==LLKKJJIIttuuvvww!! <<==>>??YYXXWWVV``aabbcc55443322(())**++mmllkkjjLLMMNNOO77665544EEFFGGHH554433228899::;;@@AABBCCUUTTSSRR - - ddeeffgg1100//..,,--..//iihhggff - -PPQQRRSS66554433>>??@@AAHHGGFFEExxxxwwvv@@AABBCCUUTTSSRR - - ddeeffgg1100//..,,--..//iihhggff - -PPQQRRSS33221100IIJJKKLL1100//..<<==>>??DDEEFFGGQQPPOONN hhiijjkk--,,++**00112233eeddccbb TTUUVVWW221100//BBCCDDEEDDCCBBAA !!""##uuttssrrDDEEFFGGQQPPOONN hhiijjkk--,,++**00112233eeddccbb TTUUVVWW//..--,,MMNNOOPP--,,++**@@AABBCCHHIIJJKKMMLLKKJJllmmnnoo))((''&&44556677aa``__^^XXYYZZ[[..--,,++FFGGHHII@@??>>==$$%%&&''qqppoonnHHIIJJKKMMLLKKJJllmmnnoo))((''&&44556677aa``__^^XXYYZZ[[++**))((QQRRSSYY))((''&&DDEEFFGGLLMMNNOOIIHHGGFFppqqrrss%%$$##""8899::;;]]\\[[ZZ\\]]^^__**))((''JJKKLLMM<;:98776(())**++mmllkkjjLLMMNNOOIIHHGGFFppqqrrss%%$$##""8899::;;]]\\[[ZZ\\]]^^__''&&%%$$ZZ[[\\]]%%$$##""HHIIJJKKPPQQRRSSEEDDCCBBttuuvvww!! <<==>>??YYXXWWVV``aabbcc&&%%$$##NNOOPPQQ65544332,,--..//iihhggff - -PPQQRRSSEEDDCCBBttuuvvww!! <<==>>??YYXXWWVV``aabbcc##""!!^^__``aa!! LLMMNNOOTTUUVVWWAA@@??>>xxxxwwvv@@AABBCCUUTTSSRR - - ddeeffgg""!!RRSSYYZZ21100//.00112233eeddccbb TTUUVVWWAA@@??>>xxxxwwvv@@AABBCCUUTTSSRR - - ddeeffggbbccddeePPQQRRSSXXYYZZ[[==<<;;:: !!""##uuttssrrDDEEFFGGQQPPOONN hhiijjkk[[\\]]^^.--,,++*44556677aa``__^^XXYYZZ[[==<<;;:: !!""##uuttssrrDDEEFFGGQQPPOONN hhiijjkkffgghhiiTTUUVVWW\\]]^^__99887766$$%%&&''qqppoonnHHIIJJKKMMLLKKJJllmmnnoo__``aabb*))((''&8899::;;]]\\[[ZZ\\]]^^__99887766$$%%&&''qqppoonnHHIIJJKKMMLLKKJJllmmnnoojjkkllmmXXYYZZ[[``aabbcc55443322(())**++mmllkkjjLLMMNNOOIIHHGGFFppqqrrssccddeeff&%%$$##"<<==>>??YYXXWWVV``aabbcc55443322(())**++mmllkkjjLLMMNNOOIIHHGGFFppqqrrss mmllkkjj\\]]^^__ddeeffgg1100//..,,--..//iihhggff - -PPQQRRSSEEDDCCBBttuuvvww - -gghhiijj"!! @@AABBCCUUTTSSRR - - ddeeffgg1100//..,,--..//iihhggff - -PPQQRRSSEEDDCCBBttuuvvww - - - -iihhggff - -``aabbcchhiijjkk--,,++**00112233eeddccbb TTUUVVWWAA@@??>>xxxxwwvv kkllmmnnDDEEFFGGQQPPOONN hhiijjkk--,,++**00112233eeddccbb TTUUVVWWAA@@??>>xxppoonn eeddccbb - - ddeeffggllmmnnoo))((''&&44556677aa``__^^XXYYZZ[[==<<;;:: !!""##uuoonnmmoouuvvwwHHIIJJKKMMLLKKJJllmmnnoo))((''&&44556677aa``__^^XXYYZZ[[==<<;;:: !!""##mmllkkjjaa``__^^ hhiijjkkllmmbdQZ|Jlt`vXnے`JdQbtpvnZp˂|drtbdQZf`vXpZHAbbtl|ZdQ`f~rXQJ`tAJlpfHnvpے`JJtArdf~HrXQJ`|rAJlltbf`vXpZHAbbtl|ZdQ`f~rXQJ`tAJlpfHnvpے`JJtArdnXvHfpvےbHAltdH~ے`JXQbtl|ZdQ`f~rXQJ`tAJldrtAbdQZ|vpfXQr˂lJtArvf~HrXQJ`tAJl|dtAnvpے`JJtArdbnXvHfpvےbHAtbdQZf`vXfH~XQr˂|ZdQfpvےbHAtbddQZ|nvpے`JJtArdbnXvHfpvےbHAtbdQZf`vXfH~XQr˂|ZdQ`f~nXvZp˂rtAJlvpfHr˂pJtArdbnXvHfpvےbHAtbdQZJltdrtAH~fpZHAbd|ZfpvےbHAtbdQZJltfH~XQr˂|ZdQ`f~nXvZp˂|drnvpf`vXpZHAbbtlnXv`Zp˂QZ|dAJltfH~XQr˂|ZdQ`f~nXvZp˂|drnvpf`vXpZHAbbtlHfpv`fHrXQJ`tbdQ~f`ZHAb|ZdQ`f~nXvZp˂|drbdQZ|Jlt`vXnے`JdQtArdnXv`Zp˂|drbnvf`vXpZHAbbtlHfpv`f~rXQJ`tAJlfH~nvpے`JJtArdf~HrXQJ`rtAJlbnvf`vXpZHAbbtlHfpv`f~rXQJ`tAJlfH~nvpے`JJtArdnXvfpvےbHAZ|dvXnے`JXQbtlHfpv`f~rXQJ`tAJldrtAbdQZ|vpfXQr˂|ZdQf~HrXQJ`tAJlpfHnvpے`JJtArdnXvHfpvےbHAtbdQZf`vXfH~XQr˂|ZdQXv`fp˂rtbdpfHnvpے`JJtArdnXvHfpvےbHAtbdQZf`vXfH~XQr˂|ZdQ`f~nrXQJZp˂rtAJlvpfHrZHAJtArdnXvHfpvےbHAtbdQZJlt`vXnH~fp`JXQbtlfpvےbHAtbdQZf`vXfH~XQr˂|ZdQ`f~nXvZp˂|drnvpf`vXpZHAbbtl~HfXQJ`ےQZ|df`vXfH~XQr˂|ZdQ`f~nXvZp˂|drnvpf`vXpZHAbbtlHfpv`ےHArXQJ`tbdQ~f`bے`|ZdQ`f~nXvZp˂|drbdQZ|vpf`vXnr˂pJtArdnXv`Zp˂|drnvpf`vXpZHAbbtlHfpv`fHrXQJ`tAJlfH~nr˂ے`JJtArdpvnbHAZrtAJnvpf`vXpZHAbbtlHfpv`fHrXQJ`tAJlfH~nr˂ے`JJtArdnXvZp˂ےbHAZ|lvXH~JXQrbtlHfpv`fHrXQJ`tAJldrtAH~fvpfZHAb|ZdQf~fprXQJ`tAJlfH~nvpے`JJtArdnXvfpvےbHAtbdQZf`vXpZHAbXQr˂|ZdQXv`fp˂rbdQZ|fH~nvpے`JJtArdnXvfpvےbHAtbdQZf`vXpZHAbXQr˂|ZdQ`f~rXQJ`Zp˂tbdQZf`vpZHAJtArdnXvfpvےbHAtbdQZJlt`vXnH~fے`JXQbtlvnXےbHAtbdQZf`vXfH~XQr˂|ZdQ`f~nrXQJZp˂|drnvpے`JpZHAbbtl~HfXQJ`ےdrtAf`vXfH~XQr˂|ZdQ`f~nrXQJZp˂|drnvpے`JpZHAbbtlHfpvےbHArXQJ`|drXnvbے`|ZdQ`f~nrXQJZp˂|drbdQZ|vpf`vXnr˂p|ZdQbv`fZp˂|drnvpf`vXpZHAbbtlHfpv`ےHArXQJ`tAJlfH~XQr˂ے`JJtArdpvbHAXQJltnvpf`vXpZHAbbtlHfpv`ےHArXQJ`tAJlfH~XQr˂ے`JJtArdnXvZp˂ےbHAtAJlpfH~JXQrbtlHfpv`ےHArXQJ`tAJldrtAH~fr˂p|ZdQbnXv`~HfprXQJ`tAJlfH~nr˂ے`JJtArdnXvZp˂ےbHAtbdQZf`vXpZHAbXQr˂|ZdQ~HfpJ`ےbdQZ|fH~nr˂ے`JJtArdnXvZp˂ےbHAtbdQZf`vXpZHAbXQr˂|ZdQ`f~rXQJ`Zp˂tbdQZf`vpZAbJtArdnXvZp˂ےbHAtbdQZJlt`vXn`JXQrtlJf~fpvnXےbHAtbdQZf`vXpZHAbXQr˂|ZdQ`f~rXQJ`Zp˂|drnvpے`JpZHAbtlvnXbHAZpdrtAf`vXpZHAbXQr˂|ZdQ`f~rXQJ`Zp˂|drnvpے`JpZHAbtlHfpvےbHArbdQZ|ltXnv`JXQr|ZdQ`f~rXQJ`Zp˂|drbdQZ|vpf˂pZtArdvnXv`fZp˂|drnvpے`JpZHAbbtlHfpvےbHArXQJ`tAJlfH~XQr˂ے`JXQJtArdv`f˂rXQJltnvpے`JpZHAbbtlHfpvےbHArXQJ`tAJlfH~XQr˂ے`JXQJtArdnXvZp˂|ltbnvp`vX˂pZbtlHfpvےbHArXQJ`tAJldrtAH~fHAbے|ZdQbv`frQJHArXQJ`tAJlfH~XQr˂ے`JJtArdnXvZp˂ےbHAtbdQZf`vXpZHAbrbt|ZdQ~HfpJ`ےbQZdfH~XQr˂ے`JJtArdnXvZp˂ےbHAtbdQZf`vXpZHAbrbt|ZdQ`f~rXQJ`bdQZ|p`vXnr˂HAbےJtArdnXvZp˂ےbHAtbdQZJlt`vXn`JXQrtl|~HfpZp˂ےbHAtbdQZf`vXpZHAbXQr˂|ZdQ`f~rXQJ`Zp˂|drnvpے`JlJtAdbtlvnXbHAZprtAJlf`vXpZHAbXQr˂|ZdQ`f~rXQJ`Zp˂|drnvpے`JlJtAdbtlHfpvےbHAdrtAnvppZAb``JXQr|ZdQ`f~rXQJ`Zp˂|drbdQZ|vpf˂pZZdQbtvnXrXQJ`Zp˂|drnvpے`JpZHAbtlHfpvےbHArbdQZtAJlfH~XQr˂|ZdQJtArdv`pv˂btbdQnvpے`JpZHAbtlHfpvےbHArbdQZtAJlfH~XQr˂|ZdQJtArdnXvZp˂JltfH~JXQr˂pZAbtlHfpvےbHArbdQZtAJldrtAH~fHAblJtAv`fےbHArXQJ`tAJlfH~XQr˂ے`JXQJtArdnXvZp˂|drtbdQZf`vXpZHAbbtl|ZdQnXvHAZp˂Z|dfH~XQr˂ے`JXQJtArdnXvZp˂|drtbdQZf`vXpZHAbbtl|ZdQ`f~rXQJ`bdQZ|f`vX˂pZH`JXQJtArdnXvZp˂|drtbdQZJlt`vXn˂pZHArd|~HfvnZp˂ےbHAtbdQZf`vXpZHAbrbt|ZdQ`f~rXQJ`tAJl|drnvpے`JJtArdbtl`f~rXQJrtAJlf`vXpZHAbrbt|ZdQ`f~rXQJ`tAJl|drnvpے`JJtArdbtlHfpvےbHAdrtAnvpAbے`rbt|ZdQ`f~rXQJ`tAJl|drbdQZ|vpfbے`ZdQbtXv`frXQJ`Zp˂|drnvpے`JlJtAdbtlHfpvےbHAtbdQZtAJlfH~XQr˂|ZdQJtArdHfpv`ےbtbdQnvpے`JlJtAdbtlHfpvےbHAtbdQZtAJlfH~XQr˂|ZdQJtArdnXvZp˂dQZ|`vXnJXQrlJtAdbtlHfpvےbHAtbdQZtAJldrtAH~fJXQrlJtA~HfےbHArbdQZtAJlfH~XQr˂|ZdQJtArdnXvZp˂|drtbdQZf`vXpZHAbbtl|ZdQnXvHAZp˂Z|rAJfH~XQr˂|ZdQJtArdnXvZp˂|drtbdQZf`vXpZHAbbtl|ZdQ`f~rXQJ`drtAJvpf˂pZH|ZdQJtArdnXvZp˂|drtbdQZpfHJlt`vXn˂pZHArdtpvnZp˂|drtbdQZf`vXpZHAbbtl|ZdQ`f~rXQJ`tAJl|dtAnvpے`JJtArdbnXv`pvrXQJltbf`vXpZHAbbtl|ZdQ`f~rXQJ`tAJl|dtAnvpے`JJtArdbnXvHfpvےbHAltbH~fAbJbtl|ZdQ`f~rXQJ`tAJl|dtAf`vXbdQZ|vpfbے`lJtArXv`frXQJ`tAJl|drnvpے`JJtArdbtlHfpvےbHAtbdQZJltfH~XQr˂|ZdQ`pvnrXQJ`p˂dQZ|nvpے`JJtArdbtlHfpvےbHAtbdQZJltfH~XQr˂|ZdQ`f~nXvZp˂dQZ|`vXnQr˂pJtArdbtlHfpvےbHAtbdQZJltnvpdrtAH~fJXQHAbd|Z~HfےbHAtbdQZtAJlfH~XQr˂|ZdQJtArdnXvZp˂|drbnvf`vXpZHAbbtlnXv``p˂rbdQZdrtAJfH~XQr˂|ZdQJtArdnXvZp˂|drbnvf`vXpZHAbbtlHfpv`f~rXQJ`drtAJvpfZHAb|ZdQJtArdnXvZp˂|drbnvfH~f`vXfH~XQr˂|ZdQ`f~nrXQJZp˂|drnvpr˂pl|ZdQbnXv~HfےbHAtbdQZf`vXfH~XQr˂|ZdQ`f~nrXQJZp˂|drnvppZHAbˁ`ZpfH~tbAdnvpf`vXpZHAbbtlHfpv`ےHArXQJ`tAJlfH~ZHAbbtl`f~fppvnZp˂|drnvpf`vXpZHAbbtlHfpv`ےHArXQJ`tAJlfH~ے`JQXb㉀ۅf۝`vZ|dfH~nr˂ے`JJtArdnXvZp˂ےbHAtbdQZf`vXے`JXQJtArdvnXXv`frXQJ`tAJlfH~nr˂ے`JJtArdnXvZp˂ےbHAtbdQZf`vXXQr˂p`ZQXXnvrQtJlf`vXpZHAbXQr˂|ZdQ`f~rXQJ`Zp˂|drnvpr˂p|ZdQv`ffpvےbHAtbdQZf`vXpZHAbXQr˂|ZdQ`f~rXQJ`Zp˂|drnvppZHAbb㉀ۑppfH~tbAdnvpے`JpZHAbbtlHfpvےbHArXQJ`tAJlfH~ZHAbbtl~HfpnrXQJZp˂|drnvpے`JpZHAbbtlHfpvےbHArXQJ`tAJlfH~˂pJAHr󙐅f۝`vZ|dfH~XQr˂ے`JJtArdnXvZp˂ےbHAtbdQZf`vX˂pZ|ZdQbvnX`ےHArXQJ`tAJlfH~XQr˂ے`JJtArdnXvZp˂ےbHAtbdQZf`vXZHAbˁ`ZQXXnvrQtJlf`vXpZHAbXQr˂|ZdQ`f~rXQJ`Zp˂|drnvpHAbےtlJv`fZp˂ےbHAtbdQZf`vXpZHAbXQr˂|ZdQ`f~rXQJ`Zp˂|drnvpے`JXQb㉀ۑppfH~tbAdnvpے`JpZHAbtlHfpvےbHArbdQZtAJlfH~`JXQrtArd~HfvrXQJ`Zp˂|drnvpے`JpZHAbtlHfpvےbHArbdQZtAJlfH~r˂pJAHr󙐅f۝`vZ|dfH~XQr˂ے`JXQJtArdnXvZp˂|drtbdQZf`vX˂pZ|ZdQbnXv`ےbHArXQJ`tAJlfH~XQr˂ے`JXQJtArdnXvZp˂|drtbdQZf`vXZHAbۑpJXnvrQtJlf`vXpZHAbrbt|ZdQ`f~rXQJ`tAJl|drnvpHAbےtlJf~HZp˂ےbHAtbdQZf`vXpZHAbrbt|ZdQ`f~rXQJ`tAJl|drnvpے`JXQAHr󙐂ˍpfH~tbAdnvpے`JlJtAdbtlHfpvےbHAtbdQZtAJlfH~`JXQHAtArdtfpvrXQJ`Zp˂|drnvpے`JlJtAdbtlHfpvےbHAtbdQZtAJlfH~HAbے`ZQXbㅐf۝`vZ|dfH~XQr˂|ZdQJtArdnXvZp˂|drtbdQZf`vXbے`lJtAnXv`ےbHArbdQZtAJlfH~XQr˂|ZdQJtArdnXvZp˂|drtbdQZf`vX`JXQrۑpJXnvrQtJlf`vXpZHAbbtl|ZdQ`f~rXQJ`tAJl|dtAnvpJXQrrd|f~HZp˂|drtbdQZf`vXpZHAbbtl|ZdQ`f~rXQJ`tAJl|dtAnvp˂pZAHr󙐂ˍpfH~tbAdnvpے`JJtArdbtlHfpvےbHAtbdQZJltfH~˂pZHAZdQbtfpvrXQJ`tAJl|drnvpے`JJtArdbtlHfpvےbHAtbdQZJltfH~HAbے`ZQXAHf۝`vZ|dfH~XQr˂|ZdQJtArdnXvZp˂|drbnvf`vXbے`lJtAnvfےbHAtbdQZtAJlfH~XQr˂|ZdQJtArdnXvZp˂|drbnvf`vX`JXQrr󙐂ˁ`XnvrQtJlf`vXpZHAbbtl|ZdQ`f~rXQJ`tAJlpfHnvpJXQrrd|~HfpZp˂|drtbdQZf`vXpZHAbbtl|ZdQ`f~rXQJ`tAJlpfHnvp˂p`ZQXb㉀pfH~tbAdnvpے`JJtArdbnXvHfpvےbHAtbdQZf`vXfH~˂p`JZdQtArvnXrXQJ`tAJl|dtAnvpے`JJtArdbnXvHfpvےbHAtbdQZf`vXfH~JXQrۑpJAHf۝`vZ|dfH~XQr˂|ZdQ`f~nXvZp˂|drnvpf`vXXQr˂d|Zv`fےbHAtbdQZJltfH~XQr˂|ZdQ`f~nXvZp˂|drnvpf`vX˂pZHAr󙐂ˁ`XnvrQtJlf`vXpZHAbbtlHfpv`f~rXQJ`tAJlfH~nvppZHAbdQbt~HfpZp˂|drbnvf`vXpZHAbbtlHfpv`f~rXQJ`tAJlfH~nvpbے`ZQXb㉀pfH~tbAdnvpے`JJtArdnXvHfpvےbHAtbdQZf`vXfH~ے`JlJtArvnXrXQJ`tAJlpfHnvpے`JJtArdnXvHfpvےbHAtbdQZf`vXfH~JXQrXnv˅f۝`vZ|dfH~XQr˂|ZdQ`f~nXvZp˂|drnvpf`vXXQr˂d|Zv`f~fےbHAtbdQZf`vXfH~XQr˂|ZdQ`f~nXvZp˂|drnvpf`vX˂p`ZpfH~XnvrQtJlf`vXpZHAbbtlHfpv`fHrXQJ`tAJlfH~nr˂p`JXQdQbtpvnZp˂|drnvpf`vXpZHAbbtlHfpv`fHrXQJ`tAJlfH~nے`JQXb㉀ۅf۝`vp|dtbAdnvpے`JJtArdnXvfpvےbHAtbdQZf`vXp`JXQrbtl|ZdQXv`frXQJ`tAJlfH~nvpے`JJtArdnXvfpvےbHAtbdQZf`vXXQr˂pJAHrXnvrQtJlZ|drQtqrstuvwxxwvutsrJJJJJJJJJJJJJJJJJJJKKKK \ No newline at end of file diff --git a/vendor/endroid/qr-code/assets/data/qrv26_1.dat b/vendor/endroid/qr-code/assets/data/qrv26_1.dat deleted file mode 100755 index b8939ddc1..000000000 --- a/vendor/endroid/qr-code/assets/data/qrv26_1.dat +++ /dev/null @@ -1,241 +0,0 @@ -xwxwxwxwxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqopopopopopopopopnmnmnmnmnmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijijijijijihghghghghghghghgfefefefefefefefefefefefedcdcdcdcdcdcdcdcbabababababababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9787878787777787877878787656565656565656543434343434343434343434321212121212121210/0/0/0/0/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!        xwxwxwxwxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqopooooooopopopopnmnmnmnmnmnmnmnmnmlklklklklklklklklklklkjijijijijijijijijihghghghghghghghghghghgfefefefefefefefefedcdcdcdcdcdcdcdcdcdcdcbababababababababa`_`_`_`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9787878787878787887656565656565656565656543434343434343434321212121212121212121210/0/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)*)*)*)('('('('('('('('('&%&%&%&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!"!"!"!        xwxwxwxwxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopopoooooooponmnmnmnmnmnmnmnmlklklklklklklklklklklklkjijijijijijijijihghghghghghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSSSSSSTTSTSTSTSTSTSTSSSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9787878787878787865656565656565656565656543434343434343432121212121212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!"!"!"!"!        xwxwxwxwxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmlklklklklklklklklklklklkjijijijijijijijihghghghghghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUSTSTSTSTSSSSSTSTSSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9787878787878787865656565656565656565656543434343434343432121212121212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!"!"!"!"!        xwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmlklklklklklklklklklklklkjijijijijijijijihghghghghghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUSTSTSTSTSTSTSTSTTSRQRQRQRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCDCBABABABABABABABABABABA@?@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9787878787878787865656565656565656565656543434343434343432121212121212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!"!"!"!"!        xwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmlklklklklklklklklklklklkjijijijijijijijihghghghghghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUSTSTSTSTSTSTSTSTRQRQRQRQRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9787877777878787865656565656565656565656543434343434343432121212121212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!"!"!"!"!        xwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvuvuvuvuvutstststststststsrqrqrqrqpopopopopopopopopopopoponmnmnmnmnmnmnmnmlklklklklklklklklklklklkjijijijijijijijihghghghghghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUSTSTSTSTSTSTSTSTRQRQRQRQRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9778787877877777765656565656565656565656543434343434343432121212121212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!"!"!"!"!        xwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvuvuvuvuvutstststsrqrqrqrqrqrqrqrqooooopoppopopooopopopoponmnmnmnmnmnmnmnmlklklklklklklklklkjijijijijijijijijijijihghghghghghghghghgfefefefefefefefefefefedcdcdcdcdcdcdcdcdcbababababababababababa`_`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUSTSTSTSTSTSTSTSTRQRQRQRQRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9878787878787878765656565656565656543434343434343434343432121212121212121210/0/0/0/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)*)('('('('('('('('('('('&%&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!"!        xwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqopopopopooopopopmmmmmmnmnmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijijijijijihghghghghghghghgfefefefefefefefefefefefedcdcdcdcdcdcdcdcbabababababababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUSTSTSSSSSTSTSTSTRQRQRQRQRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:98787878787878787656565656565656543434343434343434343434321212121212121210/0/0/0/0/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!        xwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqopopopopopopopopnmnmnmnmnmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijijijijijihghghghghghghghgfefefefefefefefefefefefedcdcdcdcdcdcdcdcbabababababababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUSSTSTSTSSTSSSSSSRQRQRQRQRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:98787878787878787656565656565656543434343434343434343434321212121212121210/0/0/0/0/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!        xwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqopopopopopopopopnmnmnmnmnmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijijijijijihghghghghghghghgfefefefefefefefefefefefedcdcdcdcdcdcdcdcbabababababababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCDCDCDCBABABABABABABABABA@?@?@?@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:98787878787878787878787656565656565656543434343434343434343434321212121212121210/0/0/0/0/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!        xwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqopopopopopopopopnmnmnmnmnmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijijijijijihghghghghghghghgfefefefefefefefefefefefedcdcdcdcdcdcdcdcbabababababababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9877777788787878787878777656565656565656543434343434343434343434321212121212121210/0/0/0/0/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!                    - - - - - - - - - - - -             - - - - - - - - - - - -          - - - - - - - - -         - - - - - - - -         - - - - - - - -         - - - - - - - -         - - - - - - - -         - - - - - - - -            - - - - - - - - - - -             - - - - - - - - - - - -             - - - - - - - - - - - -             - - - - - - - - - - - - xxwwvvuuHHGGFFEE))**++,,YYZZ[[\\ccbbaa``))((''&&""##$$%%\\]]^^__^]]\\[[Z)((''&&%DDEEFFGGttuuvvwwMMLLKKJJDDEEFFGGttuuvvwwMMLLKKJJDDEEFFGGttuuvvwwMMLLKKJJDDEEFFGGttuuvvwwMMLLKKJJDDEEFFGGttuuvvwwMMLLKKJJDDEEFFGGttuuvvwwCCBBAA@@ 556677==oouuvvwwHHGGFFEE !!""##PPQQRRSSqqppoonnAA@@??>> !!""##PPQQRRSSqqppoonnAA@@??>> !!""##PPQQRRSSqqppoonnAA@@??>> !!""##PPQQRRSSqqppoonnAA@@??>> !!""##PPQQRRSSqqppoonnAA@@??>> !!""##PPQQRRSSllkkjjii221100// FFGGHHIIonnmmllk<;:98776,,--..//\\]]^^__eeddccbb55443322,,--..//\\]]^^__eeddccbb55443322,,--..//\\]]^^__eeddccbb55443322,,--..//\\]]^^__eeddccbb55443322,,--..//\\]]^^__eeddccbb55443322,,--..//\\]]^^__``__^^]]&&%%$$##RRSSYYZZcbbaa``_.--,,++* - - 8899::;;ttssrrqqDDCCBBAA--..//00]]^^__``__^^]]\\%%$$##""&&''(())``aabbccZYYXWVUT%$$##""!HHIIJJKKxxxxwwvvIIHHGGFFHHIIJJKKxxxxwwvvIIHHGGFFHHIIJJKKxxxxwwvvIIHHGGFFHHIIJJKKxxxxwwvvIIHHGGFFHHIIJJKKxxxxwwvvIIHHGGFFHHIIJJKKxxxxwwvv??>>==77>>??@@AAxxxxwwvvDDCCBBAA $$%%&&''TTUUVVWWmmllkkjj==<<;;:: - -$$%%&&''TTUUVVWWmmllkkjj==<<;;:: - -$$%%&&''TTUUVVWWmmllkkjj==<<;;:: - -$$%%&&''TTUUVVWWmmllkkjj==<<;;:: - -$$%%&&''TTUUVVWWmmllkkjj==<<;;:: - -$$%%&&''TTUUVVWWhhggffee..--,,++JJKKLLMMkjjiihhg6554433200112233``aabbccaa``__^^1100//..00112233``aabbccaa``__^^1100//..00112233``aabbccaa``__^^1100//..00112233``aabbccaa``__^^1100//..00112233``aabbccaa``__^^1100//..00112233``aabbcc\\[[ZZYY""!!!!""##$$[[\\]]^^_^^]]\\[*))((''& <<==>>??ppoonnmm@@??>>== 11223344aabbccdd[[ZZYYSS!!**++,,--ddeeffggSSRRQQPP! LLMMNNOOuuttssrrEEDDCCBBLLMMNNOOuuttssrrEEDDCCBBLLMMNNOOuuttssrrEEDDCCBBLLMMNNOOuuttssrrEEDDCCBBLLMMNNOOuuttssrrEEDDCCBBLLMMNNOOuuoonnmm66554433 - - BBCCDDEEuutsrqpo@@??>>== - - (())**++XXYYZZ[[iihhggff99887766 (())**++XXYYZZ[[iihhggff99887766 (())**++XXYYZZ[[iihhggff99887766 (())**++XXYYZZ[[iihhggff99887766 (())**++XXYYZZ[[iihhggff99887766 (())**++XXYYZZ[[ddccbbaa**))((''NNOOPPQQgffeeddc21100//.44556677ddeeffgg]]\\[[ZZ--,,++**44556677ddeeffgg]]\\[[ZZ--,,++**44556677ddeeffgg]]\\[[ZZ--,,++**44556677ddeeffgg]]\\[[ZZ--,,++**44556677ddeeffgg]]\\[[ZZ--,,++**44556677ddeeffggSSRRQQPP%%&&''((__``aabb[ZZYYXWV&%%$$##"@@AABBCCllkkjjii<<;;::99 - - 55667788eeffgghhRRQQPPOO..//0011hhiijjkkOONNMMLL !!""##PPQQRRSSqqppoonnAA@@??>> !!""##PPQQRRSSqqppoonnAA@@??>> !!""##PPQQRRSSqqppoonnAA@@??>> !!""##PPQQRRSSqqppoonnAA@@??>> !!""##PPQQRRSSqqppoonnAA@@??>> !!""##PPQQRRSSllkkjjii221100// FFGGHHIIonnmmllk<;:98776,,--..//\\]]^^__eeddccbb55443322,,--..//\\]]^^__eeddccbb55443322,,--..//\\]]^^__eeddccbb55443322,,--..//\\]]^^__eeddccbb55443322,,--..//\\]]^^__eeddccbb55443322,,--..//\\]]^^__``__^^]]&&%%$$##RRSSYYZZcbbaa``_.--,,++* - - 8899::;;hhiijjkkYYXXWWVV))((''&& - - 8899::;;hhiijjkkYYXXWWVV))((''&& - - 8899::;;hhiijjkkYYXXWWVV))((''&& - - 8899::;;hhiijjkkYYXXWWVV))((''&& - - 8899::;;hhiijjkkYYXXWWVV))((''&& - - 8899::;;hhiijjkkOONNMMLL))**++,,ccddeeffUTSSRRQQ"!! DDEEFFGGhhggffee88776655 - - 99::;;<>??llmmnnooUUTTSSRR%%$$##"" <<==>>??llmmnnooUUTTSSRR%%$$##"" <<==>>??llmmnnooUUTTSSRR%%$$##"" <<==>>??llmmnnooUUTTSSRR%%$$##"" <<==>>??llmmnnooUUTTSSRR%%$$##"" <<==>>??llmmnnooKKJJIIHH--..//00gghhiijjPPOONNMMHHIIJJKKddccbbaa44332211 ==>>??@@mmnnooppJJIIHHGG 6677==>>uuvvwwxxGGFFEEDD(())**++XXYYZZ[[iihhggff99887766 (())**++XXYYZZ[[iihhggff99887766 (())**++XXYYZZ[[iihhggff99887766 (())**++XXYYZZ[[iihhggff99887766 (())**++XXYYZZ[[iihhggff99887766 (())**++XXYYZZ[[ddccbbaa**))((''NNOOPPQQgffeeddc21100//.44556677ddeeffgg]]\\[[ZZ--,,++**44556677ddeeffgg]]\\[[ZZ--,,++**44556677ddeeffgg]]\\[[ZZ--,,++**44556677ddeeffgg]]\\[[ZZ--,,++**44556677ddeeffgg]]\\[[ZZ--,,++**44556677ddeeffggSSRRQQPP%%&&''((__``aabb[ZZYYXWV&%%$$##"@@AABBCCppqqrrssQQPPOONN!! @@AABBCCppqqrrssQQPPOONN!! @@AABBCCppqqrrssQQPPOONN!! @@AABBCCppqqrrssQQPPOONN!! @@AABBCCppqqrrssQQPPOONN!! @@AABBCCppqqrrssGGFFEEDD - -11223344kkllmmnnLLKKJJIILLMMNNOO``__^^]]00//..--AABBCCDDqqrrssttFFEEDDCC - - ??@@AABBxxwwvvuuCCBBAA@@ ,,--..//\\]]^^__eeddccbb55443322,,--..//\\]]^^__eeddccbb55443322,,--..//\\]]^^__eeddccbb55443322,,--..//\\]]^^__eeddccbb55443322,,--..//\\]]^^__eeddccbb55443322,,--..//\\]]^^__``__^^]]&&%%$$##RRSSYYZZcbbaa``_.--,,++* - - 8899::;;hhiijjkkYYXXWWVV))((''&& - - 8899::;;hhiijjkkYYXXWWVV))((''&& - - 8899::;;hhiijjkkYYXXWWVV))((''&& - - 8899::;;hhiijjkkYYXXWWVV))((''&& - - 8899::;;hhiijjkkYYXXWWVV))((''&& - - 8899::;;hhiijjkkOONNMMLL))**++,,ccddeeffUTSSRRQQ"!! DDEEFFGGttuuvvwwMMLLKKJJDDEEFFGGttuuvvwwMMLLKKJJDDEEFFGGttuuvvwwMMLLKKJJDDEEFFGGttuuvvwwMMLLKKJJDDEEFFGGttuuvvwwMMLLKKJJDDEEFFGGttuuvvwwCCBBAA@@ 556677==oouuvvwwHHGGFFEE !!""##PPQQRRSS\\[[ZZYY,,++**))EEFFGGHHuuvvwwxxBBAA@@?? - - CCDDEEFFtsrqpoon??>>==<; - - 00112233``aabbccaa``__^^1100//..00112233``aabbccaa``__^^1100//..00112233``aabbccaa``__^^1100//..00112233``aabbccaa``__^^1100//..00112233``aabbccaa``__^^1100//..00112233``aabbcc\\[[ZZYY""!!!!""##$$[[\\]]^^_^^]]\\[*))((''& <<==>>??llmmnnooUUTTSSRR%%$$##"" <<==>>??llmmnnooUUTTSSRR%%$$##"" <<==>>??llmmnnooUUTTSSRR%%$$##"" <<==>>??llmmnnooUUTTSSRR%%$$##"" <<==>>??llmmnnooUUTTSSRR%%$$##"" <<==>>??llmmnnooKKJJIIHH--..//00gghhiijjPPOONNMMHHIIJJKKxxxxwwvvIIHHGGFFHHIIJJKKxxxxwwvvIIHHGGFFHHIIJJKKxxxxwwvvIIHHGGFFHHIIJJKKxxxxwwvvIIHHGGFFHHIIJJKKxxxxwwvvIIHHGGFFHHIIJJKKxxxxwwvv??>>==77>>??@@AAxxxxwwvvDDCCBBAA $$%%&&''TTUUVVWWXXWWVVUU((''&&%%IIJJKKLLxxwwvvuu>>==7766 GGHHIIJJnmmllkkj:987766544556677ddeeffgg]]\\[[ZZ--,,++**44556677ddeeffgg]]\\[[ZZ--,,++**44556677ddeeffgg]]\\[[ZZ--,,++**44556677ddeeffgg]]\\[[ZZ--,,++**44556677ddeeffgg]]\\[[ZZ--,,++**44556677ddeeffggSSRRQQPP%%&&''((__``aabb[ZZYYXWV&%%$$##"@@AABBCCppqqrrssQQPPOONN!! @@AABBCCppqqrrssQQPPOONN!! @@AABBCCppqqrrssQQPPOONN!! @@AABBCCppqqrrssQQPPOONN!! @@AABBCCppqqrrssQQPPOONN!! @@AABBCCppqqrrssGGFFEEDD - -11223344kkllmmnnLLKKJJIILLMMNNOOuuttssrrEEDDCCBBLLMMNNOOuuttssrrEEDDCCBBLLMMNNOOuuttssrrEEDDCCBBLLMMNNOOuuttssrrEEDDCCBBLLMMNNOOuuttssrrEEDDCCBBLLMMNNOOuuoonnmm66554433 - - BBCCDDEEuutsrqpo@@??>>== - - (())**++XXYYZZ[[TTSSRRQQ$$##""!! MMNNOOPPoonnmmll55443322KKLLMMNNjiihhggf54433221 - - 8899::;;hhiijjkkYYXXWWVV))((''&& - - 8899::;;hhiijjkkYYXXWWVV))((''&& - - 8899::;;hhiijjkkYYXXWWVV))((''&& - - 8899::;;hhiijjkkYYXXWWVV))((''&& - - 8899::;;hhiijjkkYYXXWWVV))((''&& - - 8899::;;hhiijjkkOONNMMLL))**++,,ccddeeffUTSSRRQQ"!! DDEEFFGGttuuvvwwMMLLKKJJDDEEFFGGttuuvvwwMMLLKKJJDDEEFFGGttuuvvwwMMLLKKJJDDEEFFGGttuuvvwwMMLLKKJJDDEEFFGGttuuvvwwMMLLKKJJDDEEFFGGttuuvvwwCCBBAA@@ 556677==oouuvvwwHHGGFFEE !!""##PPQQRRSSqqppoonnAA@@??>> !!""##PPQQRRSSqqppoonnAA@@??>> !!""##PPQQRRSSqqppoonnAA@@??>> !!""##PPQQRRSSqqppoonnAA@@??>> !!""##PPQQRRSSqqppoonnAA@@??>> !!""##PPQQRRSSllkkjjii221100// FFGGHHIIonnmmllk<;:98776,,--..//\\]]^^__PPOONNMM !!""##$$QQRRSSTTkkjjiihh1100//..OOPPQQRRfeeddccb100//..- <<==>>??llmmnnooUUTTSSRR%%$$##"" <<==>>??llmmnnooUUTTSSRR%%$$##"" <<==>>??llmmnnooUUTTSSRR%%$$##"" <<==>>??llmmnnooUUTTSSRR%%$$##"" <<==>>??llmmnnooUUTTSSRR%%$$##"" <<==>>??llmmnnooKKJJIIHH--..//00gghhiijjPPOONNMMHHIIJJKKxxxxwwvvIIHHGGFFHHIIJJKKxxxxwwvvIIHHGGFFHHIIJJKKxxxxwwvvIIHHGGFFHHIIJJKKxxxxwwvvIIHHGGFFHHIIJJKKxxxxwwvvIIHHGGFFHHIIJJKKxxxxwwvv??>>==77>>??@@AAxxxxwwvvDDCCBBAA $$%%&&''TTUUVVWWmmllkkjj==<<;;:: - -$$%%&&''TTUUVVWWmmllkkjj==<<;;:: - -$$%%&&''TTUUVVWWmmllkkjj==<<;;:: - -$$%%&&''TTUUVVWWmmllkkjj==<<;;:: - -$$%%&&''TTUUVVWWmmllkkjj==<<;;:: - -$$%%&&''TTUUVVWWhhggffee..--,,++JJKKLLMMkjjiihhg6554433200112233``aabbcchhiijjkkLLKKJJII%%&&''((UUVVWWXXggffeedd--,,++**!!SSYYZZ[[baa``__^-,,++**)@@AABBCCppqqrrssQQPPOONN!! @@AABBCCppqqrrssQQPPOONN!! @@AABBCCppqqrrssQQPPOONN!! @@AABBCCppqqrrssQQPPOONN!! @@AABBCCppqqrrssQQPPOONN!! @@AABBCCppqqrrssGGFFEEDD - -11223344kkllmmnnLLKKJJIILLMMNNOOuuttssrrEEDDCCBBLLMMNNOOuuttssrrEEDDCCBBLLMMNNOOuuttssrrEEDDCCBBLLMMNNOOuuttssrrEEDDCCBBLLMMNNOOuuttssrrEEDDCCBBLLMMNNOOuuoonnmm66554433 - - BBCCDDEEuutsrqpo@@??>>== - - (())**++XXYYZZ[[iihhggff99887766 (())**++XXYYZZ[[iihhggff99887766 (())**++XXYYZZ[[iihhggff99887766 (())**++XXYYZZ[[iihhggff99887766 (())**++XXYYZZ[[iihhggff99887766 (())**++XXYYZZ[[ddccbbaa**))((''NNOOPPQQgffeeddc21100//.44556677ddeeffggllmmnnooppqqrrssQQPPOONN!! @@AABBCCppqqrrssQQPPOONN!! @@AABBCCppqqrrssQQPPOONN!! @@AABBCCppqqrrssQQPPOONN!! @@AABBCCppqqrrssDDCCBBAA - - - -AABBCCDDeeddccbb55443322 <<==>>??ttuuvvwwMMLLKKJJDDEEFFGGttuuvvwwMMLLKKJJDDEEFFGGttuuvvwwMMLLKKJJDDEEFFGGttuuvvwwMMLLKKJJDDEEFFGGttuuvvww@@??>>== EEFFGGHHaa``__^^1100//..@@AABBCCxxxxwwvvIIHHGGFFHHIIJJKKxxxxwwvvIIHHGGFFHHIIJJKKxxxxwwvvIIHHGGFFHHIIJJKKxxxxwwvvIIHHGGFFHHIIJJKKxxppoonn77665544IIJJKKLL]]\\[[ZZ--,,++**DDEEFFGGuuttssrrEEDDCCBBLLMMNNOOuuttssrrEEDDCCBBLLMMNNOOuuttssrrEEDDCCBBLLMMNNOOuuttssrrEEDDCCBBLLMMNNOOmmllkkjj33221100MMNNOOPPYYXXWWVV))((''&&HHIIJJKKqqppoonnAA@@??>> !!""##PPQQRRSSqqppoonnAA@@??>> !!""##PPQQRRSSqqppoonnAA@@??>> !!""##PPQQRRSSqqppoonnAA@@??>> !!""##PPQQRRSSiihhggff//..--,,QQRRSSYYUUTTSSRR%%$$##""LLMMNNOOmmllkkjj==<<;;:: - -$$%%&&''TTUUVVWWmmllkkjj==<<;;:: - -$$%%&&''TTUUVVWWmmllkkjj==<<;;:: - -$$%%&&''TTUUVVWWmmllkkjj==<<;;:: - -$$%%&&''TTUUVVWWeeddccbb++**))((!!""##ZZ[[\\]]QQPPOONN!!  !!""##PPQQRRSSiihhggff99887766 (())**++XXYYZZ[[iihhggff99887766 (())**++XXYYZZ[[iihhggff99887766 (())**++XXYYZZ[[iihhggff99887766 (())**++XXYYZZ[[aa``__^^''&&%%$$$$%%&&''^^__``aaMMLLKKJJ$$%%&&''TTUUVVWWeeddccbb55443322,,--..//\\]]^^__eeddccbb55443322,,--..//\\]]^^__eeddccbb55443322,,--..//\\]]^^__eeddccbb55443322,,--..//\\]]^^__]]\\[[ZZ##""!!(())**++bbccddeeIIHHGGFF(())**++XXYYZZ[[aa``__^^1100//..00112233``aabbccaa``__^^1100//..00112233``aabbccaa``__^^1100//..00112233``aabbccaa``__^^1100//..00112233``aabbccYYSSRRQQ,,--..//ffgghhiiEEDDCCBB,,--..//\\]]^^__]]\\[[ZZ--,,++**44556677ddeeffgg]]\\[[ZZ--,,++**44556677ddeeffgg]]\\[[ZZ--,,++**44556677ddeeffgg]]\\[[ZZ--,,++**44556677ddeeffggPPOONNMM00112233jjkkllmmAA@@??>>00112233``aabbccYYXXWWVV))((''&& - - 8899::;;hhiijjkkYYXXWWVV))((''&& - - 8899::;;hhiijjkkYYXXWWVV))((''&& - - 8899::;;hhiijjkkYYXXWWVV))((''&& - - 8899::;;hhiijjkkLLKKJJII44556677mmllkkjj==<<;;:: - -44556677ddeeffggUUTTSSRR%%$$##"" <<==>>??llmmnnooUUTTSSRR%%$$##"" <<==>>??llmmnnooUUTTSSRR%%$$##"" <<==>>??llmmnnooUUTTSSRR%%$$##"" <<==>>??llmmnnooHHGGFFEE ==>>??@@iihhggff99887766 - - 8899::;;hhiijjkkllmmbdQZ|bdQZ|bdQZ|H~fH~f`JXQrے`JZdQbt|ZdQv`ffpvZp˂Zp˂Zp˂tAJltAJlf`vXf`vXf`vXے`Jے`J|ZdQ|ZdQ|ZdQHfpvHfpvZp˂Zp˂Zp˂tAJltAJlf`vXf`vXf`vXے`Jے`J|ZdQ|ZdQ|ZdQ~Hf`pvbHAXQ`p˂bdQZ|drtAJf`vXf`vXے`Jے`Jے`J|ZdQ|ZdQHfpvHfpvHfpvZp˂Zp˂tAJltAJltAJlf`vXf`vXے`Jے`Jے`J|ZdQ|ZdQHfpvHfpvHfpvZp˂Zp˂bdQZ|tbdQnvpvXnJXQrrZHA㙒`JXQ|ZdQ|ZdQHfpvHfpvfpvZp˂Zp˂tAJltAJlJltf`vXf`vXے`Jے`Jے`JXQ|ZdQ|ZdQHfpvHfpvfpvZp˂Zp˂tAJltAJlJltf`vXf`vXr˂pJXQrbtlZdQtArvnXv`fZp˂Zp˂drtAdrtAdrtA`vXn`vXn˂pZXQr˂lJtAbtl~HfvnnXv`rXQJ`rXQJ`rbdQZtbdQZtbdQZnvpnvpnr˂XQr˂XQr˂btlbtlbnXvnXvnXvrXQJ`rXQJ`rbdQZtbdQZtbdQZnvpnvpnr˂XQr˂XQr˂btlbtlbnXvpvnrXQJJ`ےrbdQZdrtAltbnvpnvpXQr˂XQr˂XQr˂btlbtlnXvnXvnXvrXQJ`rXQJ`tbdQZtbdQZtbdQZnvpnvpXQr˂XQr˂XQr˂btlbtlnXvnXvnXvrXQJ`rXQJ`drtAZ|dfH~vpfH˂pZHbے`rbtbtlbtlnXvnXvnrXQJrXQJ`rXQJ`tbdQZtbdQZbnvnvpnvpXQr˂XQr˂rbtbtlbtlnXvnXvnrXQJrXQJ`rXQJ`tbdQZtbdQZbnvnvpnvpZHAb˂p`J|ZdQbd|Zv`f~HfprXQJ`rXQJ`JltJltJltvpfvpfHAbp`JXQrd|JtArdXv`ff~fpےbHAےbHA|dr|dr|drfH~fH~pZHAbpZHAbpZHAbJtArdJtArd`f~`f~`f~ےbHAےbHA|dr|dr|drfH~fH~pZHAbpZHAbpZHAbJtArdJtArd`pv~Hfp`p˂bHAZp|rAJlJltdQZ|fH~fH~pZHAbpZHAbpZHAJtArdJtArd`f~`f~`fHےbHAےbHA|dr|dr|dtAfH~fH~pZHAbpZHAbpZHAJtArdJtArd`f~`f~`fHےbHAےbHAJltrtAJlf`vX~f`Abے`JXQrlJtAdJtArdJtArd`f~`f~`ےHAےbHAےbHA|dr|drpfHfH~fH~pZHAbpZHAblJtAdJtArdJtArd`f~`f~`ےHAےbHAےbHA|dr|drpfHfH~fH~˂pZXQr˂tlJdQbt璕~HfvvnXےbHAےbHAbdQZ|bdQZ|bdQZ|H~fH~f˂pZHAr˂pZdQbt|ZdQ~HfvnXZp˂Zp˂tAJltAJltAJlf`vXf`vXے`Jے`Jے`J|ZdQ|ZdQHfpvHfpvHfpvZp˂Zp˂tAJltAJltAJlf`vXf`vXے`Jے`Jے`J|ZdQ|ZdQnXv`vnXrXQJ`˂rXQtbdbQZdAJltf`vXf`vXے`Jے`Jے`JXQ|ZdQ|ZdQHfpvHfpvfpvZp˂Zp˂tAJltAJlJltf`vXf`vXے`Jے`Jے`JXQ|ZdQ|ZdQHfpvHfpvfpvZp˂Zp˂bdQZ|tbdQnvpvXH~JXQrpZHA|ZdQ|ZdQ|ZdQHfpvHfpvZp˂Zp˂Zp˂tAJltAJlf`vXf`vXf`vXے`Jے`J|ZdQ|ZdQ|ZdQHfpvHfpvZp˂Zp˂Zp˂tAJltAJlf`vXf`vXf`vXHAbےpZHAbtArdlJtArnXv`v`f~fZp˂Zp˂drtAdrtA`vXn`vXn`vXnbے`ZHAblJtAbtlpvnv`frXQJ`rXQJ`tbdQZtbdQZtbdQZnvpnvpXQr˂XQr˂XQr˂btlbtlnXvnXvnXvrXQJ`rXQJ`tbdQZtbdQZtbdQZnvpnvpXQr˂XQr˂XQr˂btlbtlf~Hv`fےbHAJ`ےQZ|drtAJlbnvnvpnvpXQr˂XQr˂rbtbtlbtlnXvnXvnrXQJrXQJ`rXQJ`tbdQZtbdQZbnvnvpnvpXQr˂XQr˂rbtbtlbtlnXvnXvnrXQJrXQJ`rXQJ`drtAZ|l`vXnf`v˂pZHbے`btlbtlbtlnXvnXvrXQJ`rXQJ`rXQJ`tbdQZtbdQZnvpnvpnvpXQr˂XQr˂btlbtlbtlnXvnXvrXQJ`rXQJ`rXQJ`tbdQZtbdQZnvpnvpnvp`JXQrے`J|ZdQbd|Zf~HpvnrXQJ`rXQJ`JltJltvpfvpfvpfJXQrے`JXQrdt|ZdQbXv`f~HfpےbHAےbHA|dr|dr|dtAfH~fH~pZHAbpZHAbpZHAJtArdJtArd`f~`f~`fHےbHAےbHA|dr|dr|dtAfH~fH~pZHAbpZHAbpZHAJtArdJtArdfpv~HfpZp˂bHAZprtAJltbdQpfHfH~fH~pZHAbpZHAblJtAdJtArdJtArd`f~`f~`ےHAےbHAےbHA|dr|drpfHfH~fH~pZHAbpZHAblJtAdJtArdJtArd`f~`f~`ےHAےbHAےbHAdQZ|tbdQZvpfXnvAbJJXQrJtArdJtArdJtArd`f~`f~ےbHAےbHAےbHA|dr|drfH~fH~fH~pZHAbpZHAbJtArdJtArdJtArd`f~`f~ےbHAےbHAےbHA|dr|drfH~fH~fH~˂pZXQr˂tlJdQbtfpvXv`fےbHAےbHAbdQZ|bdQZ|H~fH~fH~f˂pZHAr˂plJtArnXv`~HfvnXZp˂Zp˂tAJltAJlJltf`vXf`vXے`Jے`Jے`JXQ|ZdQ|ZdQHfpvHfpvfpvZp˂Zp˂tAJltAJlJltf`vXf`vXے`Jے`Jے`JXQ|ZdQ|ZdQnXv`vnXrXQJ`˂btbdZ|df`vXf`vXf`vXے`Jے`J|ZdQ|ZdQ|ZdQHfpvHfpvZp˂Zp˂Zp˂tAJltAJlf`vXf`vXf`vXے`Jے`J|ZdQ|ZdQ|ZdQHfpvHfpvZp˂Zp˂Zp˂drtAJ|drH~fpfH~Qr˂ppZAb|ZdQ|ZdQ|ZdQHfpvHfpvZp˂Zp˂Zp˂tAJltAJlf`vXf`vXf`vXے`Jے`J|ZdQ|ZdQ|ZdQHfpvHfpvZp˂Zp˂Zp˂tAJltAJlf`vXf`vXf`vXHAbےp`JXQtArdtl|ZdQnXv`~HfZp˂Zp˂drtAdrtA`vXn`vXn`vXnbے`|ZdQbd|Zf~fppvnv`frXQJ`rXQJ`tbdQZtbdQZbnvnvpnvpXQr˂XQr˂rbtbtlbtlnXvnXvnrXQJrXQJ`rXQJ`tbdQZtbdQZbnvnvpnvpXQr˂XQr˂rbtbtlbtlf~Hv`pvp˂rHAZp˂QZ|drtAJlnvpnvpnvpXQr˂XQr˂btlbtlbtlnXvnXvrXQJ`rXQJ`rXQJ`tbdQZtbdQZnvpnvpnvpXQr˂XQr˂btlbtlbtlnXvnXvrXQJ`rXQJ`rXQJ`ltbtAJl`vXnf`vZHAb`JXQrbtlbtlbnXvnXvnXvrXQJ`rXQJ`rbdQZtbdQZtbdQZnvpnvpnr˂XQr˂XQr˂btlbtlbnXvnXvnXvrXQJ`rXQJ`rbdQZtbdQZtbdQZnvpnvpnr˂`JXQHArbtlJtAbnXvf~HpvnrXQJ`rXQJ`JltJltvpfvpfr˂pJXQHAbtlJdQbtvnXvf~HrQJHAےbHAےbHA|dr|drpfHfH~fH~pZHAbpZHAblJtAdJtArdJtArd`f~`f~`ےHAےbHAےbHA|dr|drpfHfH~fH~pZHAbpZHAblJtAdJtArdJtArdXv`fnXvXQJ`ےrXQJrtAJtbdQfH~fH~fH~pZHAbpZHAbJtArdJtArdJtArd`f~`f~ےbHAےbHAےbHA|dr|drfH~fH~fH~pZHAbpZHAbJtArdJtArdJtArd`f~`f~ےbHAےbHAےbHAdQZ|tbdQZvpfXnvے`JXQ˂pZJtArdJtArd`f~`f~`f~ےbHAےbHA|dr|dr|drfH~fH~pZHAbpZHAbpZHAbJtArdJtArd`f~`f~`f~ےbHAےbHA|dr|dr|drfH~fH~p`JXQbے`l|ZdQrd|`f~fpfpvXv`fےbHAےbHAbdQZ|bdQZ|H~fH~f`JXQrے`JtArdlJtArv`ffpvZp˂Zp˂Zp˂tAJltAJlf`vXf`vXf`vXے`Jے`J|ZdQ|ZdQ|ZdQHfpvHfpvZp˂Zp˂Zp˂tAJltAJlf`vXf`vXf`vXے`Jے`J|ZdQ|ZdQ|ZdQ~Hf`f~bHAZ`ےbbdQZ|Z|rAJf`vXf`vXf`vXے`Jے`J|ZdQ|ZdQ|ZdQHfpvHfpvZp˂Zp˂Zp˂tAJltAJlf`vXf`vXf`vXے`Jے`J|ZdQ|ZdQ|ZdQHfpvHfpvZp˂Zp˂Zp˂drtAJ|ltH~p`vXr˂pHAbے|ZdQ|ZdQHfpvHfpvHfpvZp˂Zp˂tAJltAJltAJlf`vXf`vXے`Jے`Jے`J|ZdQ|ZdQHfpvHfpvHfpvZp˂Zp˂tAJltAJltAJlf`vXf`vXr˂pJXQrbtlZdQbtvnXnvffpvZp˂Zp˂drtAdrtA`vXn`vXn˂pZXQr˂|ZdQbd|Z~HfpۅnXv`rXQJ`rXQJ`rXQJ`tbdQZtbdQZnvpnvpnvpXQr˂XQr˂btlbtlbtlnXvnXvrXQJ`rXQJ`rXQJ`tbdQZtbdQZnvpnvpnvpXQr˂XQr˂btlbtlbtlpvnHfpvp˂rHAZp˂drtAltbnvpnvpnr˂XQr˂XQr˂btlbtlbnXvnXvnXvrXQJ`rXQJ`rbdQZtbdQZtbdQZnvpnvpnr˂XQr˂XQr˂btlbtlbnXvnXvnXvrXQJ`rXQJ`rbdQZltdbnvvpfHnr˂ZHAb`JXQrbtlbtlnXvnXvnXvrXQJ`rXQJ`tbdQZtbdQZtbdQZnvpnvpXQr˂XQr˂XQr˂btlbtlnXvnXvnXvrXQJ`rXQJ`tbdQZtbdQZtbdQZnvpnvpZHAb˂pZHAJtArdlJtAv`f~HfpnrXQJrXQJ`rXQJ`Zp˂JltJltvpfvpfHAbےpZHAbtl|dQtArdvnXf~HےbHAےbHAےbHA|dr|drfH~fH~fH~pZHAbpZHAbJtArdJtArdJtArd`f~`f~ےbHAےbHAےbHA|dr|drfH~fH~fH~pZHAbpZHAbJtArdJtArdJtArdXv`fnXvXQJ`ےrXQJJltdQZ|fH~fH~pZHAbpZHAbpZHAbJtArdJtArd`f~`f~`f~ےbHAےbHA|dr|dr|drfH~fH~pZHAbpZHAbpZHAbJtArdJtArd`f~`f~`f~ےbHAےbHA|ltrtAJlp`vX~f`pZAb`ے`JXQ˂pZAJtArdJtArd`f~`f~`fHےbHAےbHA|dr|dr|dtAfH~fH~pZHAbpZHAbpZHAJtArdJtArd`f~`f~`fHےbHAےbHA|dr|dr|dtAfH~fH~ے`JXQbے`|ZdQrd|~HfpvnX`ےHAےbHAےbHArXQJ`ےbHA|dr|drfH~fH~fH~pZHAbpZHAbJtArdJtArdJtArd`f~`f~ےbHAےbHAےbHA|dr|drfH~fH~fH~ZHAb˂p`ZAHr󙐂˅f۝`vf۝`vrQtJlrQtJlZp˂tAJltAJlf`vXf`vXf`vXے`Jے`J|ZdQ|ZdQ|ZdQHfpvHfpvZp˂Zp˂Zp˂tAJltAJlf`vXf`vXf`vXے`JXQQXb㉀ہ`ZQXbXnv˅Xnv˒tbAdtbAdrbdQZtbdQZtbdQZnvpnvpnr˂XQr˂XQr˂btlbtlbnXvnXvnXvrXQJ`rXQJ`rbdQZtbdQZtbdQZnvpnvpnے`JHAbےpJAHr󉀒ۑpJpfH~pfH~Z|dZ|d|dr|dr|drfH~fH~pZHAbpZHAbpZHAbJtArdJtArd`f~`f~`f~ےbHAےbHA|dr|dr|drfH~fH~XQr˂`JXQrˁ`ZAHr󙐂˅f۝`vf۝`vrQtJlrQtJltAJltAJltAJlf`vXf`vXے`Jے`Jے`J|ZdQ|ZdQHfpvHfpvHfpvZp˂Zp˂tAJltAJltAJlf`vXf`vXpZHAb˂pZQXb㉀ہ`ZQXAHXnv˅Xnv˒tbAdtbAdtbdQZtbdQZtbdQZnvpnvpXQr˂XQr˂XQr˂btlbtlnXvnXvnXvrXQJ`rXQJ`tbdQZtbdQZtbdQZnvpnvpے`JHAbےp`ZQXr󙐂ˁ`pfH~pfH~Z|dZ|d|dr|dr|dtAfH~fH~pZHAbpZHAbpZHAJtArdJtArd`f~`f~`fHےbHAےbHA|dr|dr|dtAfH~fH~XQr˂`JXQrb㉀ۑpZQXb㉀f۝`vf۝`vrQtJlrQtJltAJltAJlJltf`vXf`vXے`Jے`Jے`JXQ|ZdQ|ZdQHfpvHfpvfpvZp˂Zp˂tAJltAJlJltf`vXf`vXpZHAb˂p`JAHr󙐒ۑpJAHXnv˅Xnv˒tbAdtbAdtbdQZtbdQZbnvnvpnvpXQr˂XQr˂rbtbtlbtlnXvnXvnrXQJrXQJ`rXQJ`tbdQZtbdQZbnvnvpnvp˂pJXQrˁ`ZQXr󙐂ˁ`pfH~pfH~Z|dZ|d|dr|drpfHfH~fH~pZHAbpZHAblJtAdJtArdJtArd`f~`f~`ےHAےbHAےbHA|dr|drpfHfH~fH~ZHAb˂pZHAb㉀ۑpZQXb㉀f۝`vf۝`vrQtJlrQtJltAJltAJlf`vXf`vXf`vXے`Jے`J|ZdQ|ZdQ|ZdQHfpvHfpvZp˂Zp˂Zp˂tAJltAJlf`vXf`vXf`vXے`JXQbے`JAHr󙐅Xnv˅Xnv˅Xnv˒tbAdtbAdtbdQZtbdQZnvpnvpnvpXQr˂XQr˂btlbtlbtlnXvnXvrXQJ`rXQJ`rXQJ`tbdQZtbdQZnvpnvpnvpr˂pJXQrۑpJpfH~pfH~p|dZ|dZ|drQtqrstuvwxxwvutsr \ No newline at end of file diff --git a/vendor/endroid/qr-code/assets/data/qrv26_2.dat b/vendor/endroid/qr-code/assets/data/qrv26_2.dat deleted file mode 100755 index 9b026a0438e3d64d2f3e4f7cf834cdc55565974e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 41024 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 diff --git a/vendor/endroid/qr-code/assets/data/qrv26_3.dat b/vendor/endroid/qr-code/assets/data/qrv26_3.dat deleted file mode 100755 index 35f67462b..000000000 --- a/vendor/endroid/qr-code/assets/data/qrv26_3.dat +++ /dev/null @@ -1,241 +0,0 @@ -xwxwxwxwvuvuvuvutstststspopopoponmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdc`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWSTSTSTSTRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIFEFEFEFExwxwxwxwvuvuvuvutstststsooooopopnmnmnmnmlklklklkjijijijihghghghgfefefefedcbababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWSTSTSTSTRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIFEFEFEFExwxwxwxwvuvuvuvutstststsopopopopnmnmnmnmlklklklkjijijijihghghghgfefefefebabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWSTSTSSSSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIHGHGHGFEFEFEFExwxwxwxwvuvuvuvutstststsopopopopnmnmnmnmlklklklkjijijijihghghghgfefefefebabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWSSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFExwxwxwxwvuvuvuvutstststsopopopopnmnmnmnmlklklklkjijijijihghghghgfefefefebabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFExwxwxwxwvuvuvuvutstststsopopopopnmnmnmnmlklklklkjijijijihghghghgfedcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFExwxwxwxwvuvuvuvutstststsopopopopnmnmnmnmlklklklkjijijijihghghghgdcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKJIJIJIHGHGHGHGFEFEFEFExwxwxwxwvuvuvuvutstststsopoooooonmnmnmnmlklklklkjijijijihghghghgdcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMJIJIJIJIHGHGHGHGFEFEFEFExwxwxwxwvuvuvuvutstststspopopoponmnmnmnmlklklklkjijijijihghghghgdcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMJIJIJIJIHGHGHGHGFEFEFEFExwxwxwxwvuvuvuvutstststspopopoponmnmnmnmlklklklkjijijijihgfefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYVUVUVUVUSSSSSTSTRQRQRQRQPOPOPOPONMNMNMNMJIJIJIJIHGHGHGHGFEFEFEFExwxwxwxwvuvuvuvutstststspopopoponmnmnmnmlklklklkjijijijifefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYVUVUVUVUSTSTSTSTRQRQRQRQPOPOPOPONMLKLKLKJIJIJIJIHGHGHGHGFEFEFEFExwxwxwxwvuvuvuvurqrqrqrqpopopoponmnmnmnmlklklklkjijijijifefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYVUVUVUVUSTSTSTSTRQRQRQRQPOPOPOPOLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFExwxwxwxwvuvuvuvurqrqrqrqpopopoponmnmnmnmlklklklkjijijijifefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYVUVUVUVUSTSTSTSTRQRQRQRQPOPOPOPOLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFExwxwxwxwvuvuvuvurqrqrqrqpopopooonmnmnmnmlklklklkjihghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYVUVUVUVUSTSTSTSTRQRQRQRQPOPOPOPOLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFExwxwxwxwvuvuvuvurqrqrqrqooopopopnmnmnmnmlklklklkhghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYVUVUVUVUSTSTSTSTRQRQRQRQPONMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFExwxwxwxwvuvuvuvurqrqrqrqopopopopnmnmnmnmlklklklkhghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYXWXWXWVUVUVUVUSTSSSSSSRQRQRQRQNMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFExwxwxwxwvuvuvuvurqrqrqrqopopopopnmnmnmnmlklklklkhghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQNMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFExwxwxwxwvuvuvuvurqrqrqrqopopopopnmnmnmnmlkjijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQNMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFExwxwxwxwvuvuvuvurqrqrqrqopopopopnmnmnmnmjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVUTSTSTSTSRQPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFExwxwxwxwvuvuvuvurqrqrqrqopopopopnmnmnmnmjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[ZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFExwxwxwxwvuvuvuvurqrqrqrqooooooponmnmnmnmjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSSSPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFExwxwxwxwvuvuvuvurqrqrqrqpopopoponmlklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWVUVUVUVUSSTSTSTSPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFExwxwxwxwtstststsrqrqrqrqpopopopolklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWVUVUVUVUTSRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFExwxwxwxwtstststsrqrqrqrqpopopopolklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVURQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFExwxwxwxwtstststsrqrqrqrqpopopopolklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVURQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFExwxwxwxwtstststsrqrqrqrqpopopopolklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVURQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFExwxwxwxwtstststsrqrqrqrqmmmmmmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVURQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFExwxwxwxwtstststsrqrqrqrqnmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVURQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEvuvuvuvutstststsrqrqrqrqnmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVURQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEDCDCDCDCDCDCDCvuvuvuvutstststsrqrqrqrqnmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGDCDCDCDCDCDCDCDCvuvuvuvutstststsrqrqrqrqnmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWTSSSSSSTRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGDCDCDCDCDCDCDCDCvuvuvuvutstststsrqrqrqrqnmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcba`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWSTSTSTSTRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGDCDCDCDCDCDCDCDCvuvuvuvutstststsrqrqrqrqnmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdc`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWSTSTSTSTRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGFEFEFEDCDCDCDCDCDCDCDCvuvuvuvutstststsrqrqrqrqnmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdc`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWSTSTSTSTRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDCDCDCDCDCDCDCDCDCBABABABA@?@?@?@?>=>=>=>=:9:9:9:977777878656565654343434321212121.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!    - - - - DCDCDCDCBABABABA@?@?@?@?>=>=>=>=:9:9:9:9787878786565656543434343210/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!    - - - - DCDCDCDCBABABABA@?@?@?@?>=>=>=>=:9:9:9:97878787865656565434343430/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!    - - - - DCDCDCDCBABABABA@?@?@?@?>=>=>=>=:9:9:9:97878787865656565434343430/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!       - - - - DCDCDCDCBABABABA@?@?@?@?>=>=>=>=:9:9:9:97878787865656565434343430/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#        - - - - DCDCDCDCBABABABA@?@?@?@?>=>=>=>=:9:9:9:97878787865656565432121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#        - - - - DCDCDCDCBABABABA@?@?@?@?>=<;<;<;:9:9:9:97877777765656565212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#        - - - - DCDCDCDCBABABABA@?@?@?@?<;<;<;<;:9:9:9:98787878765656565212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#"!"!"!        - - - - DCDCDCDCBABABABA@?@?@?@?<;<;<;<;:9:9:9:98787878765656565212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%"!"!"!"!        - DCDCDCDCBABABABA@?@?@?@?<;<;<;<;:9:9:9:98787878765434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%"!"!"!"!        DCDCDCDCBABABABA@?>=>=>=<;<;<;<;:9:9:9:98787878743434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%"!"!"!"!        DCDCDCDCBABABABA>=>=>=>=<;<;<;<;:9:9:9:98787877743434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%$#$#$#"!"!"!"!        DCDCDCDCBABABABA>=>=>=>=<;<;<;<;:9:9:9:97787878743434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!        - - - DCDCDCDCBABABABA>=>=>=>=<;<;<;<;:9:9:9:98765656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!        - - - - DCDCDCDCBA@?@?@?>=>=>=>=<;<;<;<;:9:9:9:96565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!        - - - - DCDCDCDC@?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:96565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('&%&%&%$#$#$#$#"!"!"!"!        - - - - DCDCDCDC@?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:96565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"!     - - - - DCDCDCDC@?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:96565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"!     - - - - DCBABABA@?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:96565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"!     - - - - BABABABA@?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:96565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)('('('&%&%&%&%$#$#$#$#"!"!"!"!     - - - - BABABABA@?@?@?@?>=>=>=>=<;<;<;<;:98787876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#"!"!"!"!       - - - - BABABABA@?@?@?@?>=>=>=>=<;<;<;<;877777786565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - BABABABA@?@?@?@?>=>=>=>=<;<;<;<;787878786565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - BABABABA@?@?@?@?>=>=>=>=<;<;<;<;787878786565656543434343212121210/0/0/0/.-.-.-.-,+*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - BABABABA@?@?@?@?>=>=>=>=<;<;<;<;787878786565656543434343212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - BABABABA@?@?@?@?>=>=>=>=<;<;<;<;787878786565656543434343212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - BABABABA@?@?@?@?>=>=>=>=<;<;<;<;787878786565656543434343212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - BABABABA@?@?@?@?>=>=>=>=<;<;<;<;787877776565656543434343212121210/0/0/0/.-,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!     - - - - BABABABA@?@?@?@?>=>=>=>=<;<;<;<;778787876565656543434343212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!    - - - - BABABABA@?@?@?@?>=>=>=>=<;<;<;<;878787876565656543434343212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!    - - - - BABABABA@?@?@?@?>=>=>=>=<;:9:9:9878787876565656543434343212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!    - - - - BABABABA@?@?@?@?>=>=>=>=:9:9:9:9878787876565656543434343212121210/.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!    - - - - BABABABA@?@?@?@?>=>=>=>=:9:9:9:987878787656565654343434321212121.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!    - - - - BABABABA@?@?@?@?>=>=>=>=:9:9:9:987878787656565654343434321212121.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!    - - - - xxwwvvuu!!""##$$>>==7766xxwwvvuu$$%%&&''EEDDCCBBDDEEFFGG%%$$##""ddeeffggmmllkkjjMMLLKKJJ<<==>>??cbbaa``_0011223399887766PPQQRRSSppqqrrss - - ttssrrqq%%&&''((55443322tsrqpoon(())**++AA@@??>>HHIIJJKK!! hhiijjkkiihhggff !!""##IIHHGGFF@@AABBCC_^^]]\\[4455667755443322TTUUVVWWttuuvvww ppoonnmm))**++,,1100//..nmmllkkj,,--..//==<<;;::LLMMNNOOllmmnnooeeddccbb$$%%&&''EEDDCCBBDDEEFFGG[ZZYYXWV8899::;;1100//..XXYYZZ[[xxxxwwvvllkkjjii--..//00--,,++**jiihhggf0011223399887766PPQQRRSSppqqrrss - - aa``__^^(())**++AA@@??>>HHIIJJKK - -UTSSRRQQ<<==>>??--,,++**\\]]^^__ - -uuttssrrhhggffee11223344))((''&&feeddccb4455667755443322TTUUVVWWttuuvvww ]]\\[[ZZ,,--..//==<<;;::LLMMNNOO PPOONNMM@@AABBCC))((''&&``aabbcc qqppoonnddccbbaa55667788%%$$##""baa``__^8899::;;1100//..XXYYZZ[[xxxxwwvvYYXXWWVV0011223399887766PPQQRRSSLLKKJJIIDDEEFFGG%%$$##""ddeeffggmmllkkjj``__^^]]99::;;<>??--,,++**\\]]^^__ - -uuttssrrUUTTSSRR4455667755443322TTUUVVWW - - HHGGFFEEHHIIJJKK!! hhiijjkkiihhggff !!""##\\[[ZZYY==>>??@@ZYYXWVUT@@AABBCC))((''&&``aabbcc qqppoonnQQPPOONN8899::;;1100//..XXYYZZ[[ DDCCBBAALLMMNNOOllmmnnooeeddccbb$$%%&&''XXWWVVUUAABBCCDDSSRRQQPPDDEEFFGG%%$$##""ddeeffggmmllkkjjMMLLKKJJ<<==>>??--,,++**\\]]^^__@@??>>==PPQQRRSSppqqrrss - - aa``__^^(())**++TTSSRRQQEEFFGGHH OONNMMLLHHIIJJKK!! hhiijjkkiihhggff !!""##IIHHGGFF@@AABBCC))((''&&``aabbcc<;:98776TTUUVVWWttuuvvww ]]\\[[ZZ,,--..//PPOONNMMIIJJKKLL - - KKJJIIHHLLMMNNOOllmmnnooeeddccbb$$%%&&''EEDDCCBBDDEEFFGG%%$$##""ddeeffgg65544332XXYYZZ[[xxxxwwvvYYXXWWVV00112233LLKKJJIIMMNNOOPP - - GGFFEEDDPPQQRRSSppqqrrss - - aa``__^^(())**++AA@@??>>HHIIJJKK!! hhiijjkk!!""##$$21100//.\\]]^^__ - -uuttssrrUUTTSSRR44556677HHGGFFEEQQRRSSTT CCBBAA@@TTUUVVWWttuuvvww ]]\\[[ZZ,,--..//==<<;;::LLMMNNOOllmmnnoo%%&&''((.--,,++*``aabbcc qqppoonnQQPPOONN8899::;;DDCCBBAAUUVVWWXX??>>==<;XXYYZZ[[xxxxwwvvYYXXWWVV0011223399887766PPQQRRSSppqqrrss))**++,,*))((''&ddeeffggmmllkkjjMMLLKKJJ<<==>>??@@??>>==YYZZ[[\\:9877665\\]]^^__ - -uuttssrrUUTTSSRR4455667755443322TTUUVVWWttuuvvww--..//00&%%$$##"hhiijjkkiihhggff !!""##IIHHGGFF@@AABBCC<<;;::99]]^^__``!!54433221``aabbcc qqppoonnQQPPOONN8899::;;1100//..XXYYZZ[[xxxxwwvv11223344"!! llmmnnooeeddccbb$$%%&&''EEDDCCBBDDEEFFGG88776655aabbccdd""##$$%%100//..-ddeeffggmmllkkjjMMLLKKJJ<<==>>??--,,++**\\]]^^__ - -uuoonnmm556677==ppqqrrss - - aa``__^^(())**++AA@@??>>HHIIJJKK44332211eeffgghh&&''(())-,,++**)hhiijjkkiihhggff !!""##IIHHGGFF@@AABBCC))((''&&``aabbcc llkkjjii>>??@@AAttuuvvww ]]\\[[ZZ,,--..//==<<;;::LLMMNNOO00//..--iijjkkll**++,,--)((''&&%llmmnnooeeddccbb$$%%&&''EEDDCCBBDDEEFFGG%%$$##""ddeeffgghhggffeeBBCCDDEExxxxwwvvYYXXWWVV0011223399887766PPQQRRSS,,++**))mmnnoopp..//0011%$$##""!ppqqrrss - - aa``__^^(())**++AA@@??>>HHIIJJKK!! hhiijjkkddccbbaaFFGGHHII uuttssrrUUTTSSRR4455667755443322TTUUVVWW((''&&%%qqrrsstt22334455! ttuuvvww ]]\\[[ZZ,,--..//==<<;;::LLMMNNOOllmmnnoo``__^^]]JJKKLLMM - - qqppoonnQQPPOONN8899::;;1100//..XXYYZZ[[$$##""!!uuvvwwxx6677==>>xxxxwwvvYYXXWWVV0011223399887766PPQQRRSSppqqrrss - - \\[[ZZYYNNOOPPQQmmllkkjjMMLLKKJJ<<==>>??--,,++**\\]]^^__ xxwwvvuu??@@AABBuuttssrrUUTTSSRR4455667755443322TTUUVVWWttuuvvww SSRRQQPPRRSSYYZZiihhggff !!""##IIHHGGFF@@AABBCC))((''&&``aabbccoonnmmllCCDDEEFFqqppoonnQQPPOONN8899::;;1100//..XXYYZZ[[xxxxwwvvOONNMMLL[[\\]]^^eeddccbb$$%%&&''EEDDCCBBDDEEFFGG%%$$##""ddeeffggkkjjiihhGGHHIIJJ mmllkkjjMMLLKKJJ<<==>>??--,,++**\\]]^^__ - -uuttssrrKKJJIIHH__``aabb - - aa``__^^(())**++AA@@??>>HHIIJJKK!! hhiijjkkggffeeddKKLLMMNN - - iihhggff !!""##IIHHGGFF@@AABBCC))((''&&``aabbcc qqppoonnGGFFEEDDccddeeff ]]\\[[ZZ,,--..//==<<;;::LLMMNNOOllmmnnoo ccbbaa``OOPPQQRReeddccbb$$%%&&''EEDDCCBBDDEEFFGG%%$$##""ddeeffggmmllkkjjCCBBAA@@gghhiijjYYXXWWVV0011223399887766PPQQRRSSppqqrrss - - __^^]]\\SSYYZZ[[ - - aa``__^^(())**++AA@@??>>HHIIJJKK!! hhiijjkkiihhggff !!""##??>>==77kkllmmnnUUTTSSRR4455667755443322TTUUVVWWttuuvvww - - [[ZZYYSS\\]]^^__ ]]\\[[ZZ,,--..//==<<;;::LLMMNNOOllmmnnooeeddccbb$$%%&&''66554433oouuvvwwQQPPOONN8899::;;1100//..XXYYZZ[[xxxxwwvvaa``__^^ RRQQPPOO``aabbccYYXXWWVV0011223399887766PPQQRRSSppqqrrss - - aa``__^^(())**++221100//xxxxwwvvMMLLKKJJ<<==>>??--,,++**\\]]^^__ - -uuttssrr]]\\[[ZZNNMMLLKKddeeffggUUTTSSRR4455667755443322TTUUVVWWttuuvvww ]]\\[[ZZ,,--..//..--,,++uutsrqpo !!""##IIHHGGFF@@AABBCC))((''&&``aabbcc qqppoonnYYXXWWVVJJIIHHGGhhiijjkkQQPPOONN8899::;;1100//..XXYYZZ[[xxxxwwvvYYXXWWVV00112233**))((''onnmmllk$$%%&&''EEDDCCBBDDEEFFGG%%$$##""ddeeffggmmllkkjjUUTTSSRRFFEEDDCCllmmnnooMMLLKKJJ<<==>>??--,,++**\\]]^^__ - -uuttssrrUUTTSSRR44556677&&%%$$##kjjiihhg(())**++AA@@??>>HHIIJJKK!! hhiijjkkiihhggffQQPPOONN BBAA@@??uuvvwwxx !!""##IIHHGGFF@@AABBCC))((''&&``aabbcc qqppoonnQQPPOONN8899::;;""!!gffeeddc,,--..//==<<;;::LLMMNNOOllmmnnooeeddccbbMMLLKKJJIIHHGGFF@@AABBCC))((''&&``aabbcc<;:98776TTUUVVWWttuuvvww ]]\\[[ZZ,,--..//==<<;;::LLMMNNOOllmmnnoo%%&&''((.--,,++*``aabbcc qqppoonnQQPPOONN8899::;;1100//..XXYYZZ[[--,,++**EEDDCCBBDDEEFFGG%%$$##""ddeeffgg65544332XXYYZZ[[xxxxwwvvYYXXWWVV0011223399887766PPQQRRSSppqqrrss))**++,,*))((''&ddeeffggmmllkkjjMMLLKKJJ<<==>>??--,,++**\\]]^^__!!""##))((''&&AA@@??>>HHIIJJKK!! hhiijjkk!!""##$$21100//.\\]]^^__ - -uuttssrrUUTTSSRR4455667755443322TTUUVVWWttuuvvww--..//00&%%$$##"hhiijjkkiihhggff !!""##IIHHGGFF@@AABBCC))((''&&``aabbcc$$%%&&''%%$$##""==<<;;::LLMMNNOOllmmnnoo%%&&''((.--,,++*``aabbcc qqppoonnQQPPOONN8899::;;1100//..XXYYZZ[[xxxxwwvv11223344"!! llmmnnooeeddccbb$$%%&&''EEDDCCBBDDEEFFGG%%$$##""ddeeffgg(())**++!! 99887766PPQQRRSSppqqrrss))**++,,*))((''&ddeeffggmmllkkjjMMLLKKJJ<<==>>??--,,++**\\]]^^__ - -uuoonnmm556677==ppqqrrss - - aa``__^^(())**++AA@@??>>HHIIJJKK!! hhiijjkk,,--..//55443322TTUUVVWWttuuvvww--..//00&%%$$##"hhiijjkkiihhggff !!""##IIHHGGFF@@AABBCC))((''&&``aabbcc llkkjjii>>??@@AAttuuvvww ]]\\[[ZZ,,--..//==<<;;::LLMMNNOOllmmnnoo001122331100//..XXYYZZ[[xxxxwwvv11223344"!! llmmnnooeeddccbb$$%%&&''EEDDCCBBDDEEFFGG%%$$##""ddeeffgghhggffeeBBCCDDEExxxxwwvvYYXXWWVV0011223399887766PPQQRRSSppqqrrss44556677--,,++**\\]]^^__ - -uuoonnmm556677==ppqqrrss - - aa``__^^(())**++AA@@??>>HHIIJJKK!! hhiijjkkddccbbaaFFGGHHII uuttssrrUUTTSSRR4455667755443322TTUUVVWWttuuvvww==>>??@@))((''&&``aabbcc llkkjjii>>??@@AAttuuvvww ]]\\[[ZZ,,--..//==<<;;::LLMMNNOOllmmnnoo``__^^]]JJKKLLMM - - qqppoonnQQPPOONN8899::;;1100//..XXYYZZ[[xxppoonnAABBCCDD - -%%$$##""ddeeffgghhggffeeBBCCDDEExxxxwwvvYYXXWWVV0011223399887766PPQQRRSSppqqrrss - - \\[[ZZYYNNOOPPQQmmllkkjjMMLLKKJJ<<==>>??--,,++**\\]]^^__ - -mmllkkjjEEFFGGHH - - !! hhiijjkkddccbbaaFFGGHHII uuttssrrUUTTSSRR4455667755443322TTUUVVWWttuuvvww SSRRQQPPRRSSYYZZiihhggff !!""##IIHHGGFF@@AABBCC))((''&&``aabbcc iihhggffIIJJKKLL llmmnnoo``__^^]]JJKKLLMM - - qqppoonnQQPPOONN8899::;;1100//..XXYYZZ[[xxxxwwvvOONNMMLL[[\\]]^^eeddccbb$$%%&&''EEDDCCBBDDEEFFGG%%$$##""ddeeffggeeddccbbMMNNOOPPppqqrrss - - \\[[ZZYYNNOOPPQQmmllkkjjMMLLKKJJ<<==>>??--,,++**\\]]^^__ - -uuttssrrKKJJIIHH__``aabb - - aa``__^^(())**++AA@@??>>HHIIJJKK!! hhiijjkkaa``__^^QQRRSSYYttuuvvww SSRRQQPPRRSSYYZZiihhggff !!""##IIHHGGFF@@AABBCC))((''&&``aabbcc qqppoonnGGFFEEDDccddeeff ]]\\[[ZZ,,--..//==<<;;::LLMMNNOOllmmnnoo]]\\[[ZZZZ[[\\]]xxxxwwvvOONNMMLL[[\\]]^^eeddccbb$$%%&&''EEDDCCBBDDEEFFGG%%$$##""ddeeffggmmllkkjjCCBBAA@@gghhiijjYYXXWWVV0011223399887766PPQQRRSSppqqrrss - - YYSSRRQQ^^__``aa - -uuttssrrKKJJIIHH__``aabb - - aa``__^^(())**++AA@@??>>HHIIJJKK!! hhiijjkkiihhggff !!""##??>>==77kkllmmnnUUTTSSRR4455667755443322TTUUVVWWttuuvvww PPOONNMMbbccddee !!""## qqppoonnGGFFEEDDccddeeff ]]\\[[ZZ,,--..//==<<;;::LLMMNNOOllmmnnooeeddccbb$$%%&&''66554433oouuvvwwQQPPOONN8899::;;1100//..XXYYZZ[[xxxxwwvvLLKKJJIIffgghhii$$%%&&''mmllkkjjCCBBAA@@gghhiijjYYXXWWVV0011223399887766PPQQRRSSppqqrrss - - aa``__^^(())**++221100//xxxxwwvvMMLLKKJJ<<==>>??--,,++**\\]]^^__ - -uuttssrrHHGGFFEEjjkkllmm(())**++iihhggff !!""##??>>==77kkllmmnnUUTTSSRR4455667755443322TTUUVVWWttuuvvww ]]\\[[ZZ,,--..//..--,,++uutsrqpo !!""##IIHHGGFF@@AABBCC))((''&&``aabbcc qqppoonnDDCCBBAAmmllkkjj,,--..//eeddccbb$$%%&&''66554433oouuvvwwQQPPOONN8899::;;1100//..XXYYZZ[[xxxxwwvvYYXXWWVV00112233**))((''onnmmllk$$%%&&''EEDDCCBBDDEEFFGG%%$$##""ddeeffggmmllkkjj@@??>>==iihhggff00112233 - - aa``__^^(())**++221100//xxxxwwvvMMLLKKJJ<<==>>??--,,++**\\]]^^__ - -uuttssrrUUTTSSRR44556677&&%%$$##kjjiihhg(())**++AA@@??>>HHIIJJKK!! hhiijjkkiihhggff !!""##77665544eeddccbb44556677 ]]\\[[ZZ,,--..//..--,,++uutsrqpo !!""##IIHHGGFF@@AABBCC))((''&&``aabbcc qqppoonnQQPPOONN8899::;;""!!gffeeddc,,--..//==<<;;::LLMMNNOOllmmnnooeeddccbb$$%%&&''33221100aa``__^^8899::;;YYXXWWVV00112233**))((''onnmmllk$$%%&&''EEDDCCBBDDEEFFGG%%$$##""ddeeffggmmllkkjjMMLLKKJJ<<==>>??cbbaa``_0011223399887766PPQQRRSSppqqrrss - - aa``__^^(())**++//..--,,]]\\[[ZZ<<==>>??UUTTSSRR44556677&&%%$$##kjjiihhg(())**++AA@@??>>HHIIJJKK!! hhiijjkkiihhggff !!""##IIHHGGFF@@AABBCC_^^]]\\[4455667755443322TTUUVVWWttuuvvww ]]\\[[ZZ,,--..//++**))((YYXXWWVV@@AABBCCQQPPOONN8899::;;""!!gffeeddc,,--..//==<<;;::LLMMNNOOllmmnnooeeddccbb$$%%&&''EEDDCCBBDDEEFFGG[ZZYYXWV8899::;;1100//..XXYYZZ[[xxxxwwvvYYXXWWVV00112233''&&%%$$UUTTSSRRDDEEFFGGMMLLKKJJ<<==>>??cbbaa``_0011223399887766PPQQRRSSppqqrrss - - aa``__^^(())**++AA@@??>>HHIIJJKK - -UTSSRRQQ<<==>>??--,,++**\\]]^^__ - -uuttssrrUUTTSSRR44556677##""!!QQPPOONNHHIIJJKK !!""##IIHHGGFF@@AABBCC_^^]]\\[4455667755443322TTUUVVWWttuuvvww ]]\\[[ZZ,,--..//==<<;;::LLMMNNOO PPOONNMM@@AABBCC))((''&&``aabbcc qqppoonnQQPPOONN8899::;;MMLLKKJJLLMMNNOO$$%%&&''EEDDCCBBDDEEFFGG[ZZYYXWV8899::;;1100//..XXYYZZ[[xxxxwwvvYYXXWWVV0011223399887766PPQQRRSSLLKKJJIIDDEEFFGG%%$$##""ddeeffggmmllkkjjMMLLKKJJ<<==>>??IIHHGGFFPPQQRRSS(())**++AA@@??>>HHIIJJKK - -UTSSRRQQ<<==>>??--,,++**\\]]^^__ - -uuttssrrUUTTSSRR4455667755443322TTUUVVWW - - HHGGFFEEHHIIJJKK!! hhiijjkkiihhggff !!""##IIHHGGFF@@AABBCCEEDDCCBBTTUUVVWW,,--..//==<<;;::LLMMNNOO PPOONNMM@@AABBCC))((''&&``aabbcc qqppoonnQQPPOONN8899::;;1100//..XXYYZZ[[ DDCCBBAALLMMNNOOllmmnnooeeddccbb$$%%&&''EEDDCCBBDDEEFFGG AA@@??>>XXYYZZ[[0011223399887766PPQQRRSSLLKKJJIIDDEEFFGG%%$$##""ddeeffggmmllkkjjMMLLKKJJ<<==>>??--,,++**\\]]^^__@@??>>==PPQQRRSSppqqrrss - - aa``__^^(())**++AA@@??>>HHIIJJKK - - - -==<<;;::\\]]^^__4455667755443322TTUUVVWW - - HHGGFFEEHHIIJJKK!! hhiijjkkiihhggff !!""##IIHHGGFF@@AABBCC))((''&&``aabbcc<;:98776TTUUVVWWttuuvvww ]]\\[[ZZ,,--..//==<<;;::LLMMNNOO 99887766``aabbcc8899::;;1100//..XXYYZZ[[ DDCCBBAALLMMNNOOllmmnnooeeddccbb$$%%&&''EEDDCCBBDDEEFFGG%%$$##""ddeeffgg65544332XXYYZZ[[xxxxwwvvYYXXWWVV0011223399887766PPQQRRSS55443322ddeeffgg<<==>>??--,,++**\\]]^^__@@??>>==PPQQRRSSppqqrrss - - aa``__^^(())**++AA@@??>>HHIIJJKK!! hhiijjkk!!""##$$21100//.\\]]^^__ - -uuttssrrUUTTSSRR4455667755443322TTUUVVWW1100//..hhiijjkkllmmbdQZ|`vXnJXQHAbnXv`rXQJ`|drf`vXXQr˂JtArdfpvtbdQZfH~ے`JbtlnXvtbdnvppZHAb|ZdQnXvےbHAf`vXdrtAvpfے`Jf~fpےbHAtAJlnvppZHAb|ZdQnrXQJ|drf`vXXQr˂JtArd`f~QZ|dfH~ے`Jbtl`f~Zp˂nvpJltH~fXQr˂vnXZp˂tbdQZfH~ے`Jbtl`ےHAtAJlnvppZHAb|ZdQHfpvrtAJf`vXXQr˂JtArdHfpvrbdQZfH~bdQZ|`vXnpZHAbv`frXQJ`|drf`vXXQr˂JtArdZp˂tbdQZfH~ے`JbtlnXvbdQZ|nvppZHAb|ZdQnXv|drf`vXdrtAvpfے`J~HfpےbHAtAJlnvppZHAb|ZdQrXQJ`|drf`vXXQr˂JtArd`pvdrtAfH~ے`Jbtl`fHtAJlnvpJltH~fXQr˂vnXZp˂tbdQZfH~ے`JbnXvےbHAtAJlnvppZHAb|ZdQnrXQJJltf`vXXQr˂JtArdfpvtbdQZfH~bdQZ|`vXnp`JXQv`frXQJ`|drf`vXXQr˂`f~Zp˂tbdQZfH~ے`Jbtl`p˂bdQZ|nvppZHAb|ZdQnrXQJ|drf`vXdrtAvpfr˂p~HfvnےbHAtAJlnvppZHAHfpvrXQJ`|drf`vXXQr˂JtArdrXQJ`drtAfH~ے`Jbtl`ےHAtAJlnvpJltH~fZHAbXv`fZp˂tbdQZfH~ے`JXQnXvےbHAtAJlnvppZHAb|ZdQےbHAJltf`vXXQr˂JtArdZp˂tbdQZfH~bdQZ|`vXnے`JXQ~HfrXQJ`|drf`vXrbt`f~Zp˂tbdQZfH~ے`JbtlZp˂bQZdnvppZHAb|ZdQrXQJ`|drf`vXdrtAvpfr˂ppvnےbHAtAJlnvplJtAdHfpvrXQJ`|drf`vXXQr˂JtArdrXQJ`rtAJlfH~ے`JbnXvےbHAtAJlnvpJltH~f|ZdQbXv`fZp˂tbdQZfH~|ZdQnXvےbHAtAJlnvppZHAb|ZdQp˂rtbdQf`vXXQr˂`f~Zp˂tbdQZfH~bdQZ|`vXntlJ~HfrXQJ`|drf`vXbtl`f~Zp˂tbdQZfH~ے`JbtlXQJ`ےZ|dnvppZHAHfpvrXQJ`|drf`vXdrtAvpftArdpvnےbHAtAJlnr˂JtArdHfpvrXQJ`|drf`vXXQr˂JtArdbHAZrtAJlfH~ے`JXQnXvےbHAtAJlnvpJltH~f|ZdQbvf~HZp˂tbdQZpZHAb|ZdQnXvےbHAtAJlnvppZHAb|ZdQp˂rtbdQf`vXrbt`f~Zp˂tbdQZfH~bdQZ|`vXntl|fpvrXQJ`|dtAے`Jbtl`f~Zp˂tbdQZfH~ے`JbnXvXQJ`ےZ|rAJnvplJtAdHfpvrXQJ`|drf`vXdrtAvpfZdQbtnXv`ےbHAJltXQr˂JtArdHfpvrXQJ`|drf`vXXQr˂`pvbHAXQltbfH~|ZdQnXvےbHAtAJlnvpJltH~flJtAf~HZp˂bnvpZHAb|ZdQnXvےbHAtAJlnvppZHAnXv`J`ےdQZ|f`vXbtl`f~Zp˂tbdQZfH~bdQZ|`vXnrd|fpvrXQJ`pfHے`Jbtl`f~Zp˂tbdQZfH~ے`JXQf~HbHAZpdrtAJnr˂JtArdHfpvrXQJ`|drf`vXdrtAvpfZdQbtnXv`ےbHAf`vXXQr˂JtArdHfpvrXQJ`|drf`vXrbtfpv˂rXQltbpZHAb|ZdQnXvےbHAtAJlnvpJltH~flJtAf~fpZp˂nvppZHAb|ZdQnXvےbHAtAJlnvplJtAdnXv`J`ےdQZ|ے`Jbtl`f~Zp˂tbdQZfH~bdQZ|`vXnrdtvnXrbdQZfH~ے`Jbtl`f~Zp˂tbdQZfH~|ZdQf~HbHAZpAJltXQr˂JtArdHfpvrXQJ`|drf`vXdrtAr˂plJtArv`f|drf`vXXQr˂JtArdHfpvrXQJ`|drf`vXbtlXv`f˂bbnvpZHAb|ZdQnXvےbHAtAJlnvpJlt`JXQrd|Z~HfptAJlnvppZHAb|ZdQnXvےbHAtAJlnr˂JtArd~HfHAZp˂pfHے`Jbtl`f~Zp˂tbdQZfH~bdQZ|˂pZdQbtvnXtbdQZfH~ے`Jbtl`f~Zp˂tbdQZpZHAb|ZdQpvnrXQJf`vXXQr˂JtArdHfpvrXQJ`|drf`vXdrtAHAbےlJtArv`f|drf`vXXQr˂JtArdHfpvrXQJ`|dtAے`JbtlXv`f`ےbnvppZHAb|ZdQnXvےbHAtAJlnvpJlt`JXQrd|ZrQJHAtAJlnvppZHAb|ZdQnXvےbHAJltXQr˂JtArd~HfHAZp˂fH~ے`Jbtl`f~Zp˂tbdQZfH~bdQZ|˂pZdQtArdZp˂tbdQZfH~ے`Jbtl`f~Zp˂bnvpZHAb|ZdQpvrXQJf`vXXQr˂JtArdHfpvrXQJ`|drf`vX`vXnHAb|ZdQrXQJ`|drf`vXXQr˂JtArdHfpvrXQJ`pfHے`Jbtl~Hfp`p˂nvppZHAb|ZdQnXvےbHAtAJlnr˂XQr˂vpf˂pZHAbtlےbHAtAJlnvppZHAb|ZdQnXvےbHAf`vXXQr˂JtArdvnXrbdQZfH~ے`Jbtl`f~Zp˂tbdQZpZHAbpZHAbH~fbے`JtArdZp˂tbdQZfH~ے`Jbtl`f~Zp˂nvppZHAb|ZdQv`f|rAJlf`vXXQr˂JtArdHfpvrXQJ`|dtAے`Jے`J`vXnJXQr|ZdQrXQJ`|drf`vXXQr˂JtArdHfpvrbdQZfH~ے`Jbtl~HfptbdnvppZHAb|ZdQnXvےbHAJltXQr˂XQr˂vpf˂pZHAbtlےbHAtAJlnvppZHAb|ZdQnXv|drf`vXXQr˂JtArdvnXQZ|dfH~ے`Jbtl`f~Zp˂bnvpZHAbpZHAbH~fbے`|ZdQbZp˂tbdQZfH~ے`Jbtl`fHtAJlnvppZHAb|ZdQv`pvrtAJlf`vXXQr˂JtArdHfpvrXQJ`pfHے`Jے`JXQr˂JtArdHfpvrXQJ`f`vXrZHAbtl`f~Zp˂nvppZHAb|ZdQnXvےbHAtAJlnvptlJv`frXQJ`|dtAے`Jbtl`f~Zp˂tbdQZfH~QXb㉀ۍpfH~pZHAb|ZdQnXvےbHAnvpbے`JtArdHfpvrbdQZfH~ے`Jbtl`f~Zp˂tbdQZfH~tArd~HfpےbHAJltXQr˂JtArdHfpvrXQJ`|drf`vXp`ZQXf۝`vے`Jbtl`f~Zp˂`vXnJXQr|ZdQnXv|drf`vXXQr˂JtArdHfpvrXQJ`|drf`vX|ZdQbvnXZp˂bnvpZHAb|ZdQnXvےbHAtAJlnvpb㉀ۑpXnvXQr˂JtArdHfpvrXQJ`vpfpZHAbtl`fHtAJlnvppZHAb|ZdQnXvےbHAtAJlnr˂tlJv`f~frXQJ`pfHے`Jbtl`f~Zp˂tbdQZfH~JAHr󙐍pfH~pZHAb|ZdQnXvےbHAH~fbے`JtArdfpvtbdQZfH~ے`Jbtl`f~Zp˂tbdQZp`JXQtArdtpvnےbHAf`vXXQr˂JtArdHfpvrXQJ`|drf`vXˁ`ZQXf۝`vے`Jbtl`f~Zp˂`vXnJXQr|ZdQnrXQJ|drf`vXXQr˂JtArdHfpvrXQJ`|dtAr˂plJtAXv`fZp˂nvppZHAb|ZdQnXvےbHAtAJlnvpb㉀ۑpXnvXQr˂JtArdHfpvrbdQZvpfpZAbbtl`ےHAtAJlnvppZHAb|ZdQnXvےbHAJltZHAbrd|~HfrbdQZfH~ے`Jbtl`f~Zp˂tbdQZfH~JAHr󙐍pfH~pZHAb|ZdQnXv|ltH~`JXQrJtArdZp˂tbdQZfH~ے`Jbtl`f~Zp˂bnvے`JXQZdQbtpvn|drf`vXXQr˂JtArdHfpvrXQJ`|drf`vXۑpJf۝`vے`Jbtl`fHbdQZ|vpfH˂pZ|ZdQrXQJ`|drf`vXXQr˂JtArdHfpvrXQJ`pfHr˂plJtAXv`ftAJlnvppZHAb|ZdQnXvےbHAtAJlnے`JAHr󙐂˅XnvXQr˂JtArdfpvdrtA~f`HAbےbnXvےbHAtAJlnvppZHAb|ZdQnXvےbHAf`vXZHAbrd|fpvtbdQZfH~ے`Jbtl`f~Zp˂tbdQZXQr˂`ZQXbp|dpZHAb|ZdQnrXQJJltvXn`JXQr`f~Zp˂tbdQZfH~ے`Jbtl`f~Zp˂nvp˂pZZdQtArnrXQJ|drf`vXXQr˂JtArdHfpvrXQJ`|dtApZHAbۑpJrQtJlے`Jbtl`ےHAbdQZ|vpfH˂pZAHfpvrXQJ`|drf`vXXQr˂JtArdHfpvrbdQZfH~HAbےd|Z`ےHAtAJlnvppZHAb|ZdQnXvےbHAJltے`JAHr󙐂˒tbAdXQr˂JtArdZp˂drtA~f``JXQnXvےbHAtAJlnvppZHAb|ZdQnXv|drf`vX`JXQrdQbtZp˂tbdQZfH~ے`Jbtl`f~Zp˂bnvXQr˂`ZQXAHZ|dpZHAb|ZdQrXQJ`dQZ|vXH~rbt`f~Zp˂tbdQZfH~ے`Jbtl`fHtAJlnvp˂pZlJtArrXQJ`|drf`vXXQr˂JtArdHfpvrXQJ`pfHpZHAbr󙐂ˁ`rQtJlے`JbnXvےbHAdrtAJf`vlJtAdHfpvrXQJ`|drf`vXXQr˂JtArdfpvtbdQZfH~HAbےd|ZےbHAtAJlnvppZHAb|ZdQnXvےbHAf`vX˂pZQXb㉀tbAdXQr˂`f~Zp˂ltbXnv|ZdQnXvےbHAtAJlnvppZHAb|ZdQnrXQJ|drf`vX`JXQHAdQbtZp˂tbdQZfH~ے`Jbtl`f~Zp˂nvpZHAbۑpJAHZ|dpZHAHfpvrXQJ`dQZ|pfH~btl`f~Zp˂tbdQZfH~ے`Jbtl`ےHAtAJlnvpbے`l|ZdQrXQJ`|drf`vXXQr˂JtArdHfpvrbdQZfH~ے`JXQr󙐂ˁ`rQtJlے`JXQnXvےbHAdrtAJf`vJtArdHfpvrXQJ`|drf`vXXQr˂JtArdZp˂tbdQZfH~JXQrbnXvےbHAtAJlnvppZHAb|ZdQnXv|drf`vXr˂pZQXb㉀tbAdrbt`f~Zp˂ltdXnv|ZdQnXvےbHAtAJlnvppZHAb|ZdQrXQJ`|drf`vX˂pZHA`f~fpZp˂tbdQZfH~ے`Jbtl`fHtAJlnvpZHAbXnvZ|dlJtAdHfpvrXQJ`rtAJlp`vXbtl`f~Zp˂tbdQZfH~ے`JbnXvےbHAtAJlnvpbے`vnXrXQJ`|drf`vXXQr˂JtArdfpvtbdQZfH~ے`JXQpfH~rQtJl|ZdQnXvےbHAtbdQnr˂JtArdHfpvrXQJ`|drf`vXXQr˂`f~Zp˂tbdQZfH~JXQrv`fےbHAtAJlnvppZHAb|ZdQnrXQJ|drf`vXHAbےf۝`vtbAdbtl`f~Zp˂Z|dpZAb`|ZdQnXvےbHAtAJlnvppZHAHfpvrXQJ`|drf`vX˂p`J~HfpZp˂tbdQZfH~ے`Jbtl`ےHAtAJlnvp`JXQrXnvZ|dJtArdHfpvrXQJ`rtAJlJXQrbtl`f~Zp˂tbdQZfH~ے`JXQnXvےbHAtAJlnvpXQr˂vnXrXQJ`|drf`vXXQr˂JtArdZp˂tbdQZfH~˂pZpfH~rQtJl|ZdQnXvےbHAtbdQ˂pZHJtArdHfpvrXQJ`|drf`vXrbt`f~Zp˂tbdQZfH~pZHAbv`fےbHAtAJlnvppZHAb|ZdQrXQJ`|drf`vXHAbےf۝`vtbAdbtl`f~Zp˂Z|lAbے`|ZdQnXvےbHAtAJlnvplJtAdHfpvrXQJ`|drf`vXے`J~HfvZp˂tbdQZfH~ے`JbnXvےbHAtAJlnvp`JXQrXnvZ|dJtArdHfpvrXQJ`tbdQZJXQrbtl`f~Zp˂tbdQZfH~|ZdQnXvےbHAtAJlnvpXQr˂nXv`rXQJ`|drf`vXXQr˂`f~Zp˂tbdQZfH~˂p`pfH~rQtJl|ZdQnXvےbHA|dr˂pZHJtArdHfpvrXQJ`|drf`vXbtl`f~Zp˂tbdQZfH~p`JXQf~HےbHAtAJlnvppZHAHfpvrXQJ`|drf`vXJXQrf۝`vtbAdbtl`f~Zp˂tAJlAbJ|ZdQnXvےbHAtAJlnr˂JtArdHfpvrXQJ`|drf`vXrbtfpvZp˂tbdQZfH~ے`JXQnXvےbHAtAJlnvp˂pZHAXnvZ|dJtArdHfpvrXQJ`tbdQZQr˂pbtl`f~Zp˂tbdQZpZHAb|ZdQnXvےbHAtAJlnvpl|ZdQnXv`rXQJ`|drf`vXrbt`f~Zp˂tbdQZfH~bے`pfH~rQtJl|ZdQnXvےbHA|ltZHAbJtArdHfpvrXQJ`|dtAے`Jbtl`f~Zp˂tbdQZfH~btlf~HےbHAtAJlnvplJtAdHfpvrXQJ`|drf`vXJXQrf۝`vtbAdbtl`f~Zp˂bnvے`JXQ|ZdQnXvےbHAJltXQr˂JtArdHfpvrXQJ`|drf`vXJtArdfpvZp˂tbdQZfH~|ZdQnXvےbHAtAJlnvp˂p`ZXnvZ|dJtArdHfpvrXQJ`p`vXr˂pbtl`f~Zp˂bnvpZHAb|ZdQnXvےbHAtAJlnvp|ZdQnvfrXQJ`|drf`vXbtl`f~Zp˂tbdQZfH~QXb㉀ۍpfH~rQtJl|ZdQnXvےbHAnvpZHAbJtArdHfpvrXQJ`pfHے`Jbtl`f~Zp˂tbdQZfH~btl~HfpےbHAtAJlnr˂JtArdHfpvrXQJ`|drf`vXpJAHrf۝`vtbAdbtl`f~Zp˂fH~ے`JXQ|ZdQnXvےbHAf`vXXQr˂JtArdHfpvrXQJ`|drf`vX|ZdQbvnXZp˂tbdQZpZHAb|ZdQnXvےbHAtAJlnvpˁ`ZXnvZ|drQtqrstuvwxxwvutsr2222222222222222222222222222333333 \ No newline at end of file diff --git a/vendor/endroid/qr-code/assets/data/qrv27_0.dat b/vendor/endroid/qr-code/assets/data/qrv27_0.dat deleted file mode 100755 index 7fde28104..000000000 --- a/vendor/endroid/qr-code/assets/data/qrv27_0.dat +++ /dev/null @@ -1,249 +0,0 @@ -|{|{|{|{|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvuststststrqrqrqrqpopopoponmnmnmnmnmlklklklklklklkjijijijihghghghgfefefefedcdcdcdcdcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYWXWXWXWXWWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPOPONMNMNMNMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCBABABABA@?@?@?@?>=>=>=>=;;<;<;<;:9:9:9:9:9:9:9:987878787656565654343434321212121|{|{|{|{|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvusssssstsrqrqrqrqpopopoponmnmnmnmlklklklklklklklkjijijijihghghghgfefefefedcdcdcdcdcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYWXWXWXWXXWVUVUVUVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCBABABABA@?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:9:987878787878787656565654343434321212121|{|{|{|{|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklklklklklkjijijijihghghghgfefefefedcdcdcdcdcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYWXWXWXWXVUVUVUVUVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCBABABABA@?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:98787878787878787656565654343434321212121|{|{|{|{|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklklklklklkjijijijihghghghgfefefefedcdcdcdcdcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYWXWXWXWXVUVUVUVUVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCBABABABA@?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:98787878787878787656565654343434321212121|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklklklklklkjijijijihghghghgfefefefedcdcdcdcdcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYWXWXWXWXVUVUVUVUVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCBABABABA@?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:98787878787878787656565654343434321212121|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklklklklklkjijijijihghghghgfefefefedcdcdcdcdcbababababababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYWXWXWWWWVUVUVUVUVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEFEDCDCDCDCDCDCDCBABABABA@?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:98787878787878787656565654343434321212121|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwtstststststststsrqrqrqrqpopopoponmnmnmnmlklklklklkjijijijijijijihghghghgfefefefedcdcdcdcbabababababababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYWWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMNMLKLKLKLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCDCDCDCDCBABABABA@?@?@?@?>=>=>=>=;;;;;<;<:9:9:9:98787878787878787656565654343434321212121|{|{|{|{zyzyzyzyzyzyzyzyvuvuvuvussssststtstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijijijijijihghghghgfefefefedcdcdcdcbabababababababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUVUTSTSTSTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCDCDCDCDCBABABABA@?@?@?@?>=>=>=>=;<;<;<;<:9:9:9:98787878787656565656565654343434321212121|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvuststststqqqqqqrqrqrqrqrqpopopoponmnmnmnmlklklklkjijijijijijijijihghghghgfefefefedcdcdcdcbabababababababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCDCDCDCDCBABABABA@?@?@?@?>=>=>=>=;<;<;<;<:9:9:9:98787878765656565656565654343434321212121|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvuststststrqrqrqrqrqrqrqrqpopopoponmnmnmnmlklklklkjijijijijijijijihghghghgfefefefedcdcdcdcbabababababababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCDCDCDCDCBABABABA@?@?@?@?>=>=>=>=;<;<;<;<:9:9:9:98787878765656565656565654343434321212121|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvuststststrqrqrqrqrqrqrqrqpopopoponmnmnmnmlklklklkjijijijijijijijihghghghgfefefefedcdcdcdcbabababababababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCDCDCDCDCBABABABA@?@?@?@?>=>=>=>=;<;<;<;<:9:9:9:98787878765656565656565654343434321212121|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvuststststrqrqrqrqrqrqrqrqpopopoponmnmnmnmlklklklkjijijijijijijijihghghghgfefefefedcdcdcdcbababababa`_`_`_`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCDCBABABABABABABA@?@?@?@?>=>=>=>=;<;<;<;<:9:9:9:98787878765656565656565654343434321212121|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvuststststrqrqrqrqrqrqrqrqpopopoponmnmnmnmlklklklkjijijijijihghghghghghghgfefefefedcdcdcdcbabababa`_`_`_`_`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYWWWWWXWXVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKLKJIJIJIJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABABABABABA@?@?@?@?>=>=>=>=;<;;;;;;:9:9:9:98787878765656565656565654343434321212121|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvustssssssrqrqrqrqrqpopopopopopoponmnmnmnmlklklklkjijijijihghghghghghghghgfefefefedcdcdcdcbabababa`_`_`_`_`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYWXWXWXWXVUVUVUVUTSTSTSTSTSRQRQRQRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABABABABABA@?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:98787878765656565654343434343434321212121|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopopopopopoponmnmnmnmlklklklkjijijijihghghghghghghghgfefefefedcdcdcdcbabababa`_`_`_`_`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYWXWXWXWXVUVUVUVUTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABABABABABA@?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:98787878765656565434343434343434321212121|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopopopopopoponmnmnmnmlklklklkjijijijihghghghghghghghgfefefefedcdcdcdcbabababa`_`_`_`_`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYWXWXWXWXVUVUVUVUTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABABABABABA@?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:98787878765656565434343434343434321212121|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopopopopopoponmnmnmnmlklklklkjijijijihghghghghghghghgfefefefedcdcdcdcbabababa`_`_`_`_`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYWXWXWXWXVUVUVUVUTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABABABABABA@?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:98787878765656565434343434343434321212121|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopopopopopoponmnmnmnmlklklklkjijijijihghghghghghghghgfefefefedcdcdcdcbabababa`_`_`_`_`_^]^]^]^]^]^]^]\[\[\[\[ZYZYZYZYWXWXWXWXVUVUVUVUTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABABA@?@?@?@?>=>=>=>=<;<;<;<;<;<;<;:9:9:9:98787878765656565434343434343434321212121|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopopopopopoponmnmnmnmlklklklkjijijijihghghghghgfefefefefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[ZYZYZYZYWXWWWWWWVUVUVUVUTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIJIHGHGHGHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?>=>=>=>=<;;;;;;<<;<;<;;;:9:9:9:98787878765656565434343434343434321212121|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutststsssrqrqrqrqpopopopoponmnmnmnmnmnmnmlklklklkjijijijihghghghgfefefefefefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQRQPOPOPOPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?>=>=>=>=;<;<;<;<;;<;<;<;:9:9:9:98787878765656565434343434321212121212121|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvussstststrqrqrqrqpopopoponmnmnmnmnmnmnmnmlklklklkjijijijihghghghgfefefefefefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?>=>=>=>=;<;<;<;<<;:9:9:9:9:9:9:98787878765656565434343432121212121212121|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvuststststrqrqrqrqpopopoponmnmnmnmnmnmnmnmlklklklkjijijijihghghghgfefefefefefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?>=>=>=>=;<;<;<;<:9:9:9:9:9:9:9:98787878765656565434343432121212121212121|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvuststststrqrqrqrqpopopoponmnmnmnmnmnmnmnmlklklklkjijijijihghghghgfefefefefefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?>=>=>=>=;<;<;<;<:9:9:9:9:9:9:9:98787878765656565434343432121212121212121210/0/0/|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvuststststrqrqrqrqpopopoponmnmnmnmnmnmnmnmlklklklkjijijijihghghghgfefefefefefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?>=>=>=>=;<;<;<;<:9:9:9:9:9:9:9:987878787656565654343434321212121212121210/0/0/0/|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvuststststrqrqrqrqpopopoponmnmnmnmnmnmnmnmlklklklkjijijijihghghghgfefefefefedcdcdcdcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWWWWWWXXWXWXWWWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGHGFEFEFEFEFEFEFEDCDCDCDCBABABABA@?@?@?@?>=>=>=>=;<;<;;;;:9:9:9:9:9:9:9:987878787656565654343434321212121212121210/0/0/0/0/0/0/0/0/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - - - - - 0/0/0/0/0/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - - - - - 0/0/0/0/0/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('('&%&%&%&%&%&%&%$#$#$#$#"!"!"!"!        - - - - - 0/0/0/0/0/.-.-.-.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%&%&%&%&%$#$#$#$#"!"!"!"!     - - - - 0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%&%&%&%&%$#$#$#$#"!"!"!"!        - - - - 0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%&%&%&%&%$#$#$#$#"!"!"!"!        - - - - 0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%&%&%&%&%$#$#$#$#"!"!"!"!        - - - - 0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%&%&%&%&%$#$#$#$#"!"!"!"!        - - - - 0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%&%$#$#$#$#"!"!"!"!           - - - - 0/0/0/0/.-.-.-.-.-,+,+,+,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!           - - - - 0/0/0/0/.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!               - - - - 0/0/0/0/.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!            - - - - 0/0/0/0/.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!            - - - - 0/0/0/0/.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!            - - - - 0/0/0/0/.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!            - - - - 0/0/0/0/.-.-.-.-,+,+,+,+,+*)*)*)*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!       - - - - 0/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!       - - - - 0/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - 0/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - 0/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - 0/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - 0/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)*)('('('('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - - - - 0/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('('('('('&%&%&%&%$#$#$#$#"!"!"!"!      - - - - - - - - 0/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - - - - - 0/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - - - - - ||{{zzyy]]^^__``))((''&&``aabbcc)((''&&%HHIIJJKKMMLLKKJJ||||{{zzLLMMNNOOIIHHGGFFyyxxwwvvPPQQRRSSEEDDCCBB !!""##ppoonnmm srrqqppo``aabbcc5544332200112233eeddccbbddeeffgg1100//..44556677aa``__^^hhiijjkk--,,++**8899::;;SSRRQQPP))**++,,YXWWVVUUxxyyzz{{HHIIJJKKMMLLKKJJxxwwvvuuaabbccdd%%ddeeffgg%$#"! LLMMNNOOIIHHGGFFyyxxwwvvPPQQRRSSEEDDCCBB !!""##uuttssrrTTUUVVWWAA@@??>>$$%%&&''llkkjjiionnmmllkddeeffgg1100//..44556677aa``__^^hhiijjkk--,,++**8899::;;]]\\[[ZZ - - llmmnnoo))((''&&<<==>>??OONNMMLL--..//00TTSSRRQQ||||{{zzLLMMNNOOIIHHGGFFttssrrqq eeffgghhhhiijjkkPPQQRRSSEEDDCCBB !!""##uuttssrrTTUUVVWWAA@@??>>$$%%&&''qqppoonn - -XXYYZZ[[==<<;;::(())**++hhggffeekjjiihhghhiijjkk--,,++**8899::;;]]\\[[ZZ - - llmmnnoo))((''&&<<==>>??YYXXWWVV ppqqrrss%%$$##""@@AABBCCKKJJIIHH11223344PPOONNMMyyxxwwvvPPQQRRSSEEDDCCBB !!""##ppoonnmm - - iijjkkllllmmnnooTTUUVVWWAA@@??>>$$%%&&''qqppoonn - -XXYYZZ[[==<<;;::(())**++mmllkkjj \\]]^^__99887766,,--..//ddccbbaagffeeddc - - llmmnnoo))((''&&<<==>>??YYXXWWVV ppqqrrss%%$$##""@@AABBCCUUTTSSRRttuuvvww!! DDEEFFGGGGFFEEDD55667788LLKKJJII !!""##uuttssrrTTUUVVWWAA@@??>>$$%%&&''llkkjjii - - mmnnooppppqqrrssXXYYZZ[[==<<;;::(())**++mmllkkjj \\]]^^__99887766,,--..//iihhggff``aabbcc5544332200112233``__^^]]cbbaa``_ ppqqrrss%%$$##""@@AABBCCUUTTSSRRttuuvvww!! DDEEFFGGQQPPOONNxxyyzz{{HHIIJJKKCCBBAA;;99::;;AAHHGGFFEE$$%%&&''qqppoonn - -XXYYZZ[[==<<;;::(())**++hhggffee qqrrsstt yyzz{{||\\]]^^__99887766,,--..//iihhggff``aabbcc5544332200112233eeddccbbddeeffgg1100//..44556677WWVVUUTT%%&&''((_^^]]\[Zttuuvvww!! DDEEFFGGQQPPOONNxxyyzz{{HHIIJJKKMMLLKKJJ||||{{zzLLMMNNOO::998877BBCCDDEEDDCCBBAA(())**++mmllkkjj \\]]^^__99887766,,--..//ddccbbaauuvvwwxx - - ||{{zzyy ``aabbcc5544332200112233eeddccbbddeeffgg1100//..44556677aa``__^^hhiijjkk--,,++**8899::;;SSRRQQPP))**++,,YXWWVVUUxxyyzz{{HHIIJJKKMMLLKKJJ||||{{zzLLMMNNOOIIHHGGFFyyxxwwvvPPQQRRSS66554433FFGGHHII@?>=<;;:,,--..//iihhggff``aabbcc5544332200112233``__^^]]yyzz{{|| - - xwvutssr - - ddeeffgg1100//..44556677aa``__^^hhiijjkk--,,++**8899::;;]]\\[[ZZ - - llmmnnoo))((''&&<<==>>??OONNMMLL--..//00TTSSRRQQ||||{{zzLLMMNNOOIIHHGGFFyyxxwwvvPPQQRRSSEEDDCCBB !!""##uuttssrrTTUUVVWW221100//JJKKLLMM:998877600112233eeddccbbddeeffgg1100//..44556677\\[[ZZYY||{{zzyy rqqppoonhhiijjkk--,,++**8899::;;]]\\[[ZZ - - llmmnnoo))((''&&<<==>>??YYXXWWVV ppqqrrss%%$$##""@@AABBCCKKJJIIHH11223344PPOONNMMyyxxwwvvPPQQRRSSEEDDCCBB !!""##uuttssrrTTUUVVWWAA@@??>>$$%%&&''qqppoonn - -XXYYZZ[[..--,,++NNOOPPQQ6554433244556677aa``__^^hhiijjkk--,,++**8899::;;XXWWVVUU ssrrqqppnmmllkkj - - llmmnnoo))((''&&<<==>>??YYXXWWVV ppqqrrss%%$$##""@@AABBCCUUTTSSRRttuuvvww!! DDEEFFGGGGFFEEDD55667788LLKKJJII !!""##uuttssrrTTUUVVWWAA@@??>>$$%%&&''qqppoonn - -XXYYZZ[[==<<;;::(())**++mmllkkjj \\]]^^__**))((''RRSSTTUU21100//.8899::;;]]\\[[ZZ - - llmmnnoo))((''&&<<==>>??TTSSRRQQ!!""##$$oonnmmlljiihhggf ppqqrrss%%$$##""@@AABBCCUUTTSSRRttuuvvww!! DDEEFFGGQQPPOONNxxyyzz{{HHIIJJKKCCBBAA;;99::;;AAHHGGFFEE$$%%&&''qqppoonn - -XXYYZZ[[==<<;;::(())**++mmllkkjj \\]]^^__99887766,,--..//iihhggff``aabbcc&&%%VVWW]]^^.--,,++*<<==>>??YYXXWWVV ppqqrrss%%$$##""@@AABBCCPPOONNMM%%&&''((kkjjiihhfeeddccbttuuvvww!! DDEEFFGGQQPPOONNxxyyzz{{HHIIJJKKMMLLKKJJ||||{{zzLLMMNNOO::998877BBCCDDEEDDCCBBAA(())**++mmllkkjj \\]]^^__99887766,,--..//iihhggff``aabbcc5544332200112233eeddccbbddeeffgg__``aabb*))((''&@@AABBCCUUTTSSRRttuuvvww!! DDEEFFGGLLKKJJII))**++,,ggffeedd%%baa``__^xxyyzz{{HHIIJJKKMMLLKKJJ||||{{zzLLMMNNOOIIHHGGFFyyxxwwvvPPQQRRSS66554433FFGGHHII@?>=<;;:,,--..//iihhggff``aabbcc5544332200112233eeddccbbddeeffgg1100//..44556677aa``__^^hhiijjkkccddeeff&%%$#"! DDEEFFGGQQPPOONNxxyyzz{{HHIIJJKKHHGGFFEE--..//00ccbbaa``&&''(())^]]\[ZYX||||{{zzLLMMNNOOIIHHGGFFyyxxwwvvPPQQRRSSEEDDCCBB !!""##uuttssrrTTUUVVWW221100//JJKKLLMM:998877600112233eeddccbbddeeffgg1100//..44556677aa``__^^hhiijjkk--,,++**8899::;;]]\\[[ZZ - - llmmnnoogghhiijjHHIIJJKKMMLLKKJJ||||{{zzLLMMNNOODDCCBBAA11223344__^^]]WW**++,,--WWVVUUTTyyxxwwvvPPQQRRSSEEDDCCBB !!""##uuttssrrTTUUVVWWAA@@??>>$$%%&&''qqppoonn - -XXYYZZ[[..--,,++NNOOPPQQ6554433244556677aa``__^^hhiijjkk--,,++**8899::;;]]\\[[ZZ - - llmmnnoo))((''&&<<==>>??YYXXWWVV ppqqrrsskkllmmnnLLMMNNOOIIHHGGFFyyxxwwvvPPQQRRSS@@??>>==55667788VVUUTTSS..//0011SSRRQQPP !!""##uuttssrrTTUUVVWWAA@@??>>$$%%&&''qqppoonn - -XXYYZZ[[==<<;;::(())**++mmllkkjj \\]]^^__**))((''RRSSTTUU21100//.8899::;;]]\\[[ZZ - - llmmnnoo))((''&&<<==>>??YYXXWWVV ppqqrrss%%$$##""@@AABBCCUUTTSSRRttuuvvww - -ooppqqrrPPQQRRSSEEDDCCBB !!""##uuttssrrTTUUVVWW<<;;::9999::;;<>??YYXXWWVV ppqqrrss%%$$##""@@AABBCCUUTTSSRRttuuvvww!! DDEEFFGGQQPPOONNxxyyzz{{ ssyyzz{{TTUUVVWWAA@@??>>$$%%&&''qqppoonn - -XXYYZZ[[88776655==>>??@@NNMMLLKK66778899KKJJIIHH(())**++mmllkkjj \\]]^^__99887766,,--..//iihhggff``aabbcc5544332200112233eeddccbbddeeffgg__``aabb*))((''&@@AABBCCUUTTSSRRttuuvvww!! DDEEFFGGQQPPOONNxxyyzz{{HHIIJJKKMMLLKKJJ||||{{zz||||{{zz XXYYZZ[[==<<;;::(())**++mmllkkjj \\]]^^__44332211AABBCCDDJJIIHHGG::;;AABBGGFFEEDD,,--..//iihhggff``aabbcc5544332200112233eeddccbbddeeffgg1100//..44556677aa``__^^hhiijjkkccddeeff&%%$#"! DDEEFFGGQQPPOONNxxyyzz{{HHIIJJKKMMLLKKJJ||||{{zzLLMMNNOOIIHHGGFFyyssrrqq - - yyxwvuts - - \\]]^^__99887766,,--..//iihhggff``aabbcc00//..--EEFFGGHHFFEEDDCCCCDDEEFFCCBBAA@?00112233eeddccbbddeeffgg1100//..44556677aa``__^^hhiijjkk--,,++**8899::;;]]\\[[ZZ - - llmmnnoogghhiijjHHIIJJKKMMLLKKJJ||||{{zzLLMMNNOOIIHHGGFFyyxxwwvvPPQQRRSSEEDDCCBB !!""##ppoonnmm srrqqppo``aabbcc5544332200112233eeddccbbddeeffgg,,++**))IIJJKKLLBBAA;;::GGHHIIJJ>=<;;::944556677aa``__^^hhiijjkk--,,++**8899::;;]]\\[[ZZ - - llmmnnoo))((''&&<<==>>??YYXXWWVV ppqqrrsskkllmmnnLLMMNNOOIIHHGGFFyyxxwwvvPPQQRRSSEEDDCCBB !!""##uuttssrrTTUUVVWWAA@@??>>$$%%&&''llkkjjiionnmmllkddeeffgg1100//..44556677aa``__^^hhiijjkk((''&&%%MMNNOOPP99887766KKLLMMNN988776658899::;;]]\\[[ZZ - - llmmnnoo))((''&&<<==>>??YYXXWWVV ppqqrrss%%$$##""@@AABBCCUUTTSSRRttuuvvww - -ooppqqrrPPQQRRSSEEDDCCBB !!""##uuttssrrTTUUVVWWAA@@??>>$$%%&&''qqppoonn - -XXYYZZ[[==<<;;::(())**++hhggffeekjjiihhghhiijjkk--,,++**8899::;;]]\\[[ZZ - - llmmnnoo$$##""!!QQRRSSTT55443322OOPPQQRR54433221<<==>>??YYXXWWVV ppqqrrss%%$$##""@@AABBCCUUTTSSRRttuuvvww!! DDEEFFGGQQPPOONNxxyyzz{{ ssyyzz{{TTUUVVWWAA@@??>>$$%%&&''qqppoonn - -XXYYZZ[[==<<;;::(())**++mmllkkjj \\]]^^__99887766,,--..//ddccbbaagffeeddc - - llmmnnoo))((''&&<<==>>??YYXXWWVV ppqqrrss||||{{zz UUVVWWXX1100//..SSTTUUVV100//..-@@AABBCCUUTTSSRRttuuvvww!! DDEEFFGGQQPPOONNxxyyzz{{HHIIJJKKMMLLKKJJ||||{{zz||||{{zz XXYYZZ[[==<<;;::(())**++mmllkkjj \\]]^^__99887766,,--..//iihhggff``aabbcc5544332200112233``__^^]]cbbaa``_ ppqqrrss%%$$##""@@AABBCCUUTTSSRRttuuvvwwyyxxwwvvYYZZ[[\\--,,++**WW]]^^__-,,++**)DDEEFFGGQQPPOONNxxyyzz{{HHIIJJKKMMLLKKJJ||||{{zzLLMMNNOOIIHHGGFFyyssrrqq - - yyxwvuts - - \\]]^^__99887766,,--..//iihhggff``aabbcc5544332200112233eeddccbbddeeffgg1100//..44556677WWVVUUTT%%&&''((_^^]]\[Zttuuvvww!! DDEEFFGGQQPPOONNxxyyzz{{uuttssrrqqppoonn - -XXYYZZ[[==<<;;::(())**++mmllkkjj \\]]^^__**))((''RRSSTTUU21100//.8899::;;]]\\[[ZZ - - llmmnnoo))((''&&<<==>>??YYXXWWVV ppqqrrss%%$$##""@@AABBCCUUTTSSRRttuuvvww - - - -iihhggff mmllkkjj \\]]^^__99887766,,--..//iihhggff``aabbcc&&%%VVWW]]^^.--,,++*<<==>>??YYXXWWVV ppqqrrss%%$$##""@@AABBCCUUTTSSRRttuuvvww!! DDEEFFGGQQPPOONNxxyyzz{{ eeddccbbiihhggff``aabbcc5544332200112233eeddccbbddeeffgg__``aabb*))((''&@@AABBCCUUTTSSRRttuuvvww!! DDEEFFGGQQPPOONNxxyyzz{{HHIIJJKKMMLLKKJJ||ttssrraa``__^^eeddccbbddeeffgg1100//..44556677aa``__^^hhiijjkkccddeeff&%%$#"! DDEEFFGGQQPPOONNxxyyzz{{HHIIJJKKMMLLKKJJ||||{{zzLLMMNNOOIIHHGGFFqqppoonn]]\\[[ZZaa``__^^hhiijjkk--,,++**8899::;;]]\\[[ZZ - - llmmnnoogghhiijjHHIIJJKKMMLLKKJJ||||{{zzLLMMNNOOIIHHGGFFyyxxwwvvPPQQRRSSEEDDCCBB !!""##mmllkkjjYYXXWWVV]]\\[[ZZ - - llmmnnoo))((''&&<<==>>??YYXXWWVV ppqqrrsskkllmmnnLLMMNNOOIIHHGGFFyyxxwwvvPPQQRRSSEEDDCCBB !!""##uuttssrrTTUUVVWWAA@@??>>$$%%&&''iihhggffUUTTSSRR !!""##YYXXWWVV ppqqrrss%%$$##""@@AABBCCUUTTSSRRttuuvvww - -ooppqqrrPPQQRRSSEEDDCCBB !!""##uuttssrrTTUUVVWWAA@@??>>$$%%&&''qqppoonn - -XXYYZZ[[==<<;;::(())**++eeddccbb%%&&''QQPPOONN$$%%&&''UUTTSSRRttuuvvww!! DDEEFFGGQQPPOONNxxyyzz{{ ssyyzz{{TTUUVVWWAA@@??>>$$%%&&''qqppoonn - -XXYYZZ[[==<<;;::(())**++mmllkkjj \\]]^^__99887766,,--..//aa``__^^(())**++MMLLKKJJ(())**++QQPPOONNxxyyzz{{HHIIJJKKMMLLKKJJ||||{{zz||||{{zz XXYYZZ[[==<<;;::(())**++mmllkkjj \\]]^^__99887766,,--..//iihhggff``aabbcc5544332200112233]]WWVVUU,,--..//IIHHGGFF,,--..//MMLLKKJJ||||{{zzLLMMNNOOIIHHGGFFyyssrrqq - - yyxwvuts - - \\]]^^__99887766,,--..//iihhggff``aabbcc5544332200112233eeddccbbddeeffgg1100//..44556677TTSSRRQQ00112233EEDDCCBB00112233IIHHGGFFyyxxwwvvPPQQRRSSEEDDCCBB !!""##ppoonnmm srrqqppo``aabbcc5544332200112233eeddccbbddeeffgg1100//..44556677aa``__^^hhiijjkk--,,++**8899::;;PPOONNMM44556677AA@@??>>44556677EEDDCCBB !!""##uuttssrrTTUUVVWWAA@@??>>$$%%&&''llkkjjiionnmmllkddeeffgg1100//..44556677aa``__^^hhiijjkk--,,++**8899::;;]]\\[[ZZ - - llmmnnoo))((''&&<<==>>??LLKKJJII8899::;;==<<;;::8899::;;AA@@??>>$$%%&&''qqppoonn - -XXYYZZ[[==<<;;::(())**++hhggffeekjjiihhghhiijjkk--,,++**8899::;;]]\\[[ZZ - - llmmnnoo))((''&&<<==>>??YYXXWWVV ppqqrrss%%$$##""@@AABBCCHHGGFFEEAABBCCDD99887766<<==>>??==<<;;::(())**++mmllkkjj \\]]^^__99887766,,--..//ddccbbaagffeeddc - - llmmnnoo))((''&&<<==>>??YYXXWWVV ppqqrrss%%$$##""@@AABBCCUUTTSSRRttuuvvww!! DDEEFFGGDDCCBBAAEEFFGGHH55443322@@AABBCC99887766,,--..//iihhggff``aabbcc5544332200112233``__^^]]cbbaa``_ ppqqrrss%%$$##""@@AABBCCUUTTSSRRttuuvvww!! DDEEFFGGQQPPOONNxxyyzz{{HHIIJJKK;;::9988IIJJKKLL1100//..DDEEFFGG5544332200112233eeddccbbddeeffgg1100//..44556677WWVVUUTT%%&&''((_^^]]\[Zttuuvvww!! DDEEFFGGQQPPOONNxxyyzz{{HHIIJJKKMMLLKKJJ||||{{zzLLMMNNOO77665544MMNNOOPP--,,++**HHIIJJKK1100//..44556677aa``__^^hhiijjkk--,,++**8899::;;SSRRQQPP))**++,,YXWWVVUUxxyyzz{{HHIIJJKKMMLLKKJJ||||{{zzLLMMNNOOIIHHGGFFyyxxwwvvPPQQRRSS33221100QQRRSSTT))((''&&LLMMNNOO--,,++**8899::;;]]\\[[ZZ - - llmmnnoo))((''&&<<==>>??OONNMMLL--..//00TTSSRRQQ||||{{zzLLMMNNOOIIHHGGFFyyxxwwvvPPQQRRSSEEDDCCBB !!""##uuttssrrTTUUVVWW//..--,,UUVVWW]]%%$$##""PPQQRRSS))((''&&<<==>>??YYXXWWVV ppqqrrss%%$$##""@@AABBCCKKJJIIHH11223344PPOONNMMyyxxwwvvPPQQRRSSEEDDCCBB !!""##uuttssrrTTUUVVWWAA@@??>>$$%%&&''qqppoonn - -XXYYZZ[[++**))((^^__``aa!! TTUUVVWW%%$$##""@@AABBCCUUTTSSRRttuuvvww!! DDEEFFGGGGFFEEDD55667788LLKKJJII !!""##uuttssrrTTUUVVWWAA@@??>>$$%%&&''qqppoonn - -XXYYZZ[[==<<;;::(())**++mmllkkjj \\]]^^__''&&%%bbccddeeXXYYZZ[[!! DDEEFFGGQQPPOONNxxyyzz{{HHIIJJKKCCBBAA;;99::;;AAHHGGFFEE$$%%&&''qqppoonn - -XXYYZZ[[==<<;;::(())**++mmllkkjj \\]]^^__99887766,,--..//iihhggff``aabbccffgghhii\\]]^^__HHIIJJKKMMLLKKJJ||||{{zzLLMMNNOO::998877BBCCDDEEDDCCBBAA(())**++mmllkkjj \\]]^^__99887766,,--..//iihhggff``aabbcc5544332200112233eeddccbbddeeffggjjkkllmm``aabbccLLMMNNOOIIHHGGFFyyxxwwvvPPQQRRSS66554433FFGGHHII@?>=<;;:,,--..//iihhggff``aabbcc5544332200112233eeddccbbddeeffgg1100//..44556677aa``__^^hhiijjkknnooppqqddeeffggPPQQRRSSEEDDCCBB !!""##uuttssrrTTUUVVWW221100//JJKKLLMM:998877600112233eeddccbbddeeffgg1100//..44556677aa``__^^hhiijjkk--,,++**8899::;;]]\\[[ZZ - - llmmnnooqqppoonn - -hhiijjkkTTUUVVWWAA@@??>>$$%%&&''qqppoonn - -XXYYZZ[[..--,,++NNOOPPQQ6554433244556677aa``__^^hhiijjkk--,,++**8899::;;]]\\[[ZZ - - llmmnnoo))((''&&<<==>>??YYXXWWVV ppqqrrss mmllkkjj - - llmmnnooppqqfpvnXv`p˂rtAJlnvpے`JXbtlHfpvrXQJ`ےJltbdQZfH~XQr˂JtArdnXv`f~Zp˂|drf`vXے`JXQbtl~HfpfpvrXQJ`tAJlnvpے`JrbtJtArdnXvےbHAtbdQZpfHf`vXpZHAb|ZdQXv`fbHAZAJltf`vXnvpے`JbtlHfpvrXQJ`nXv`f~HXQJ`ےtdrtAfH~QrZHAJtArdnXvےbHAtbdQZ|drf`vXpZHAb|ZdQ`f~HfpvrXQJ`tAJlnvpr˂pJtArdvnXnrXQJےbHAtbdQZfH~XQr˂lJtAd|ZdQ`f~Zp˂|drf`vXnvpے`Jbtl~Hfp˂rbdQZ|nvpfے`JXQr˂JtArdnXvےbHAf~HfpvbHAZJltf`vXbے`|ZdQ`f~Zp˂|drtAJlnvpے`JbtlHfpvnXvےbHAtbdQZfH~ZHAb|ZdQv`f`ےHAZp˂|drf`vXpZHAb|ZdQbtlHfpvrXQJ`tAJlnvpfH~XQr˂JtArdpvnXQJ`ےdrtAfH~XQr˂pZHAb|ZdQ`f~Zp˂fpvnXv`p˂rbdQZ|nvpJXQrbtlHfpvrXQJ`tAJltbdQZfH~XQr˂JtArdnXv`fHZp˂|drf`vXے`JXQbtl~HfpZp˂rXQJ`tAJlnvpے`JbtlJtArdnXvےbHAtbdQZfH~f`vXpZHAb|ZdQXv`fbHAZJltf`vXpZHAbے`JbtlHfpvrXQJ`nXv`p˂rXQJ`ےdrtAfH~˂pZHAJtArdnXvےbHAtbdQZ|dtAf`vXpZHAb|ZdQ`f~fpvrXQJ`tAJlnvpr˂pJtArdvnXrXQJ`ےbHAtbdQZfH~XQr˂JtArd|ZdQ`f~Zp˂|drf`vXnvpے`Jbtl~HXp˂bdQZ|nvpے`JXQr˂JtArdnXvےbHAf~HXQJ`ےbHAZJltvpfbے`|ZdQ`f~Zp˂|drJltnvpے`JbtlHfpvnrXQJےbHAtbdQZfH~`JXQrtlJv`f~ےbHAZp˂|drf`vXpZHAb|ZdQbtlHfpvrXQJ`tAJlnvpfے`JXQr˂JtArdv`fbHAZpdrtAfH~XQr˂pZHA|ZdQ`f~Zp˂fpvbHAZp˂rbdQZ|ے`JXQJXQrbtlHfpvrXQJ`tAJlbnvfH~XQr˂JtArdnXv`ےHAZp˂|drf`vX˂pZtArdfpvZp˂rXQJ`tAJlnvpے`JbtlJfpvnXvےbHAtbdQZfH~XQr˂pZHAb|ZdQ~Hfp˂rXQJbdQf`vXpZHAbے`JXQbtlHfpvrXQJ`nXv`p˂rXQJ`ے`vXnrZHA˂pZHAJtArdnXvےbHAtbdQZpfHf`vXpZHAb|ZdQ`f~Zp˂rXQJ`tAJlnvpHAbے|ZdQbnXv`rXQJ`ےJltbdQZfH~XQr˂JtArdnXv`f~Zp˂|drf`vXpZHAbے`JbtlvnXJ`ےZ|dnvpے`JrbtJtArdnXvےbHAf~HXQJ`ےJltvpfbے`bJAd|ZdQ`f~Zp˂|drf`vXnvpے`JbtlHfpvrXQJ`ےbHAtbdQZfH~`JXQrtlJf~HےbHAtbdQZ|drf`vXpZHAb|ZdQ`f~HfpvrXQJ`tAJlnvpے`JXQr˂JtArdv`fbHAZprtAJlfH~XQr˂lJtAd|ZdQ`f~Zp˂fpvbHAZdrtAJH~fJXQr|ZdQbtlHfpvrXQJ`tAJlnvpfH~XQr˂JtArdnXvےbHAZp˂|drf`vX˂pZtArdfpvZp˂|drtAJlnvpے`JbtlHfpvnXvےbHAtbdQZfH~XQr˂pZHA|ZdQ~Hfp˂rXQtbdQf`vXpZHAb|ZdQbtlHfpvrXQJ`nXv`p˂rltb`vXnpZHAbtlJtArdnXvےbHAtbdQZfH~f`vXpZHAb|ZdQ`f~Zp˂rXQJ`tAJlnvpHAb|ZdQtAnXv`rXQJ`tAJltbdQZfH~XQr˂JtArdnXv`fHZp˂|drf`vXpZHAbے`JXQbtlv~J`p˂Z|dnvpے`JbtlJtArdnXvےbHAf~HXQJ`ےdQZ|vpfbے`JtArd|ZdQ`f~Zp˂|drf`vXnvpے`JbtlHfpvrXQJ`ےJltbdQZfH~˂pZHArd|f~HےbHAtbdQZ|dtAf`vXpZHAb|ZdQ`f~fpvrXQJ`tAJlnvpے`JrbtJtArdHfpvrXQJrtAJlfH~XQr˂JtArd|ZdQ`f~Zp˂fpvbHAZdrtAJH~JXQr|ZdQbtlHfpvrXQJ`tAJlnvpfے`JXQr˂JtArdnXvےbHAtbdQZ|drf`vXbے`ZdQbtfvnXZp˂|drJltnvpے`JbtlHfpvnrXQJےbHAtbdQZfH~XQr˂lJtAd|ZdQnXv`ےbtbQZf`vXpZHAb|ZdQbtlHfpvrXQJ`nXv`p˂rltbvpfHpZAbbtlJfpvnXvےbHAtbdQZfH~XQr˂pZHAb|ZdQ`f~Zp˂|drtAJlnvpJXQrlJtAv`frXQJ`tAJlbnvfH~XQr˂JtArdnXv`ےHAZp˂|drf`vXpZHAb|ZdQbtl`f~HAZp˂drtAJnvpے`JbtlJfpvnXvےbHAf~HXQJ`ےdQZ|l~f``JXQrJtArdnXv`f~Zp˂|drf`vXpZHAbے`JbtlHfpvrXQJ`tAJltbdQZfH~˂pZHArd|~HfpےbHAtbdQZpfHf`vXpZHAb|ZdQ`f~Zp˂rXQJ`tAJlnvpے`JbtlJtArdHfpvrXQJltbfH~XQr˂JtArdnXv`f~Zp˂fpvbHAZtbdQvXn˂pZ|ZdQ`f~HfpvrXQJ`tAJlnvpے`JXQr˂JtArdnXvےbHAtbdQZ|dtAf`vXbے`ZdQbtvnXZp˂|drf`vXnvpے`JbtlHfpvrXQJ`ےbHAtbdQZfH~XQr˂JtArd|ZdQnXv`ےbdQZ|f`vXpZHAb|ZdQ`f~HfpvrXQJ`nXv`p˂rZ|dvpfHHAbےbtlHfpvnXvےbHAtbdQZfH~XQr˂pZHA|ZdQ`f~Zp˂|drJltnvpJXQHAbl|Zv`frXQJ`tAJlnvpfH~XQr˂JtArdnXvےbHAZp˂|drf`vXpZHAb|ZdQbtl`pvHAXQJ`drtAJnvpے`JbtlHfpvnXvےbHAf~HXQJ`ےrtAJl~f``JXQrJtArdnXv`fHZp˂|drf`vXpZHAbے`JXQbtlHfpvrXQJ`tAJlbnvfH~ے`JdQbt~HfpےbHAtbdQZfH~f`vXpZHAb|ZdQ`f~Zp˂rXQJ`tAJlnvpے`JbtlJfpvnrXQJےJlltbfH~XQr˂JtArdnXv`fHZp˂fpvbHAZtbdQvXH~˂pZ|ZdQ`f~fpvrXQJ`tAJlnvpے`JrbtJtArdnXvےbHAtbdQZpfHf`vXXQr˂lJtArvnvfZp˂|drf`vXnvpے`JbtlHfpvrXQJ`ےJltbdQZfH~XQr˂JtArd~H`p˂tbQZddQZ|f`vXpZHAb|ZdQ`f~fpvrXQJ`nXv`p˂rZ|df`vHAbbtlHfpvnrXQJےbHAtbdQZfH~XQr˂lJtAd|ZdQ`f~Zp˂|drf`vXnvppZHAbd|Z~HfrXQJ`tAJlnvpfے`JXQr˂JtArdnXvےbHAtbdQZ|drf`vXpZHAb|ZdQfpvrXQJ`rtAJlAJltnvpے`JbtlHfpvnrXQJےbHAf~HXQJ`ےrtAdQZXnvJQr˂pJtArdnXv`ےHAZp˂|drf`vXpZHAb|ZdQbtlHfpvrXQJ`tAJlnvpfH~ے`JdQbtpvnےbHAtbdQZfH~XQr˂pZHAb|ZdQ`f~Zp˂|drtAJlnvpے`JbtlnXv`ےbHAtbdbnvfH~XQr˂JtArdnXv`ےHAZp˂fpvbHAZ|drpfH~ZHAb|ZdQ`f~Zp˂rXQJ`tAJlnvpے`JbtlJtArdnXvےbHAtbdQZfH~f`vXXQr˂lJtArXv`fZp˂|drf`vXpZHAbے`JbtlHfpvrXQJ`tAJltbdQZfH~XQr˂JtArdf~HZp˂QZ|dpfHf`vXpZHAb|ZdQ`f~Zp˂rXQJ`nXv`p˂rtAJl璐f`vے`JXbtlHfpvrXQJ`ےbHAtbdQZfH~XQr˂JtArd|ZdQ`f~Zp˂|drf`vXnvpp`JXQdtl~HfrXQJ`tAJlnvpے`JXQr˂JtArdnXvےbHAtbdQZ|dtAf`vXpZHAb|ZdQfpvrXQJ`rtAJlf`vXnvpے`JbtlHfpvrXQJ`ےbHAےJlf~HXQJ`ےtbdQZXnvQr˂pJtArdnXvےbHAZp˂|drf`vXpZHAb|ZdQbtlHfpvrXQJ`tAJlnvpfے`JrbtJfpvpvnےbHAtbdQZfH~XQr˂pZHA|ZdQ`f~Zp˂|drJltnvpے`JbtlnXv`ےbHAtbdnvpfH~XQr˂JtArdnXvےbHAZp˂tbdQZfpvbHAZ|drp`vXZHAb|ZdQ`f~Zp˂rXQJ`tAJlnvpے`JbtlJfpvnXvےbHAtbdQZfH~XQHAbl|ZdQnvfXv`fZp˂|drf`vXpZHAbے`JXQbtlHfpvrXQJ`tAJlbnvfH~XQr˂JtArdpvnXQJ`ےQZ|rfH~f`vXpZHAb|ZdQ`f~Zp˂rXQJ`|drtAJltbdQZfH~XQr˂JtArdnXv`fHZp˂rtAJlvXnJXQr|ZdQ`f~Zp˂rXQJ`tAJlnvpے`JbtlJtArdnXvےbHAtbdQZfH~f`vX˂p`ZpfH~rQtJltbdQZ|dtAf`vXpZHAb|ZdQ`f~fpvrXQJ`tdrvp`vpZHAbtlHfpvrXQJ`ےbHAtbdQZfH~XQr˂JtArd|ZdQ`f~Zp˂|drf`vXnvpQXb㉀ۅf۝`vtbAd|drJltnvpے`JbtlHfpvnrXQJےbHAtAJlXnvbے`JtArdnXvےbHAZp˂|drf`vXpZHAb|ZdQbtlHfpvrXQJ`tAJlnvpfZHAbpJAHrXnvZ|dtAJlbnvfH~XQr˂JtArdnXv`ےHAZp˂tbdQZpfH~JXQrZ|ZdQ`f~Zp˂rXQJ`tAJlnvpے`JbtlJfpvnXvےbHAtbdQZfH~ے`Jˁ`ZpfH~rQtJltbdQZpfHf`vXpZHAb|ZdQ`f~Zp˂rXQJ`|drf`vHAbےbtlHfpvrXQJ`ےJltbdQZfH~XQr˂JtArdnXv`f~Zp˂|drf`vXXQr˂QXb㉀ۅf۝`vtbAd|drf`vXnvpے`JbtlHfpvrXQJ`ےbHAtAJlXnv`JXQrJtArdnXvےbHAtbdQZ|drf`vXpZHAb|ZdQ`f~HfpvrXQJ`tAJlnvppZHAbpJAHrXnvZ|dtAJlnvpfH~XQr˂JtArdnXvےbHAZp˂tbdQZpfH~˂pZ|ZdQ`f~Zp˂|drtAJlnvpے`JbtlHfpvnXvےbHAtbdQZfH~ے`JۑppfH~rQtJltbdQZfH~f`vXpZHAb|ZdQ`f~Zp˂rXQJ`|ltvpHAbےbtlHfpvrXQJ`tAJltbdQZfH~XQr˂JtArdnXv`fHZp˂|drf`vXXQr˂JAHr󙐅f۝`vtbAd|drf`vXnvpے`JbtlHfpvrXQJ`ےJlbnvfے`J`JXQrJtArdnXvےbHAtbdQZ|dtAf`vXpZHAb|ZdQ`f~fpvrXQJ`tAJlnvpp`JXQˁ`ZQXXnvZ|dtAJlnvpfے`JXQr˂JtArdnXvےbHAtdrtAp`vXXQrZH˂pZA|ZdQ`f~Zp˂|drJltnvpے`JbtlHfpvnrXQJےbHAtbdQZfH~r˂pb㉀ۑppfH~rQtJltbdQZfH~XQr˂pZHAb|ZdQ`f~Zp˂JltnvpAbے``JXQbtlHfpvrXQJ`tAJlbnvfH~XQr˂JtArdnXv`ےHAZp˂|drf`vXZHAbJAHr󙐅f۝`vtbAd|drf`vXpZHAbے`JbtlHfpvrXQJ`bdQZ|fH~JXQrrbtJtArdnXvےbHAtbdQZpfHf`vXpZHAb|ZdQ`f~Zp˂rXQJ`tAJlnvpے`JXQˁ`ZQXXnvZ|dtAJlnvpے`JXQr˂JtArdnXvےbHAdrtAf`vX˂pZHlJtAd|ZdQ`f~Zp˂|drf`vXnvpے`JbtlHfpvrXQJ`ےbHAtbdQZfH~r˂pAHr󙐂ˍpfH~rQtJltbdQZfH~XQr˂pZHA|ZdQ`f~Zp˂JltnvpAbے`|ZdQbtlHfpvrXQJ`tAJlnvpfH~XQr˂JtArdnXvےbHAZp˂|drf`vXZHAb`ZQXbㅐf۝`vtbAd|drf`vXpZHAbے`JXQbtlHfpvrXQJ`bdQZ|fH~JXQrbtlJtArdnXvےbHAtbdQZfH~f`vXpZHAb|ZdQ`f~Zp˂rXQJ`tAJlnvp˂pZۑpJXnvZ|dtAJlnvpے`JrbtJtArdnXvےbHAltbvpf˂pZAbJtArd|ZdQ`f~Zp˂|drf`vXnvpے`JbtlHfpvrXQJ`ےJltbdQZfH~HAbےAHr󙐂ˍpfH~rQtJltbdQZfH~XQr˂lJtAd|ZdQ`f~Zp˂dQZ|H~f`JXQ|ZdQbtlHfpvrXQJ`tAJlnvpfے`JXQr˂JtArdnXvےbHAtbdQZ|drf`vX`JXQr`ZQXbㅐf۝`vtbAd|drf`vXpZHAb|ZdQbtlHfpvrXQJ`drtAJ`vXnr˂pbtlJfpvnXvےbHAtbdQZfH~XQr˂pZHAb|ZdQ`f~Zp˂|drtAJlnvp˂pZۑp`XnvZ|dtAJlnvpے`JbtlJtArdnXvےbHAltbvpfZHAbJtArdnXv`f~Zp˂|drf`vXpZHAbے`JbtlHfpvrXQJ`tAJltbdQZfH~HAbےZQXb㉀pfH~rQtJltbdQZfH~XQr˂JtArd|ZdQ`f~Zp˂dQZ|H~fے`JXQ|ZdQ`f~HfpvrXQJ`tAJlnvpے`JXQr˂JtArdnXvےbHAtbdQZ|dtAf`vX`JXQHAۑpJAHf۝`vtbAd|drf`vXpZHAb|ZdQbtlHfpvrXQJ`drtAdQ`vXHr˂pbtlHfpvnXvےbHAtbdQZfH~XQr˂pZHA|ZdQ`f~Zp˂|drJltnvpbے`r󙐂ˁ`XnvZ|dtAJlnvpے`JbtlJfpvnXvےbHAZ|d~f`ZHAbJtArdnXv`fHZp˂|drf`vXpZHAbے`JXQbtlHfpvrXQJ`tAJlbnvfH~JXQrZQXb㉀pfH~rQtJltbdQZfH~XQr˂JtArdnXv`f~Zp˂rtAJlvXnJQr|ZdQ`f~fpvrXQJ`tAJlnvpے`JrbtJtArdnXvےbHAtbdQZpfHf`vX˂pZHAۑpJAHf۝`vtbAd|drf`vXpZHAb|ZdQ`f~HfpvrXQJ`tbdQvpfHpZHAbtlHfpvnrXQJےbHAtbdQZfH~XQr˂lJtAd|ZdQ`f~Zp˂|drf`vXnvpbے`f۝`vXnvZ|dtAJlnvpے`JbtlHfpvnXvےbHAZ|d~f`bے`JtArdnXv`ےHAZp˂|drf`vXpZHAb|ZdQbtlHfpvrXQJ`tAJlnvpfH~JXQrXnvˍp|drQtJltuvwxyz{||{zyxwvIIIIIIIIIIIIIIIIIIIIIIJJJ \ No newline at end of file diff --git a/vendor/endroid/qr-code/assets/data/qrv27_1.dat b/vendor/endroid/qr-code/assets/data/qrv27_1.dat deleted file mode 100755 index 7dd308192..000000000 --- a/vendor/endroid/qr-code/assets/data/qrv27_1.dat +++ /dev/null @@ -1,249 +0,0 @@ -|{|{|{|{|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvuststststssstststtstststsrqrqrqrqrqrqrqrqpopopopopopopopopopopoponmnmnmnmnmnmnmnmlklklklklklklklklklklklkjijijijijijijijihghghghghghghghghghghghgfefefefefefefefefefefefedcdcdcdcdcdcdcdcbabababababababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYWXWXWXWXWXWXWXWXVUVUVUVUVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=;<;<;<;<;<;<;<;<:9:9:9:9:9:9:9:9:9:9:9:9878787878787878787656565656565656565656543434343434343434343434321212121212121210/0/0/0/0/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!      |{|{|{|{|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvuststststststststqqqqqqrqrqrqrqrqrqrqrqrqpopopopopopopopopopopoponmnmnmnmnmnmnmnmlklklklklklklklklklklklkjijijijijijijijihghghghghghghghghghghghgfefefefefefefefefedcdcdcdcdcdcdcdcdcdcdcbabababababababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYWXWXWXWXWXWXWXWXVUVUVUVUVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=;<;<;;;;;<;<;<;<:9:9:9:9:9:9:9:9:9:9:9:9878787878787878765656565656565656565656543434343434343434343434321212121212121210/0/0/0/0/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)*)('('('('('('('('('('('&%&%&%&%&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!    |{|{|{|{|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvuststststststststrqrqrqrqrqrqrqrqrqrqrqrqpopopopopopopopoponmnmnmnmnmnmnmnmnmnmnmlklklklklklklklklklklklkjijijijijijijijihghghghghghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcdcdcdcdcbabababababababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYWXWXWWWWWXWXWXWXVUVUVUVUVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCDCDCDCBABABABABABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=;;<;<;<;;<;;;;;;:9:9:9:9:9:9:9:9:9:9:9:9878787878787878765656565656565656565656543434343434343434321212121212121212121210/0/0/0/0/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('('('('('&%&%&%&%&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!        |{|{|{|{|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvuststststststststrqrqrqrqrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmnmnmnmnmlklklklklklklklklklklklkjijijijijijijijihghghghghghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcdcdcdcdcbababababababababa`_`_`_`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYWWXWXWXWWXWWWWWWVUVUVUVUVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCDCDCDCDCBABABABABABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9:9:9:9:9878787878787878765656565656565656565656543434343434343432121212121212121212121210/0/0/0/0/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('('('('('&%&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!        |{|{|{|{|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvuststststststststrqrqrqrqrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmnmnmnmnmlklklklklklklklklkjijijijijijijijijijijihghghghghghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCDCDCDCDCBABABABABABABABABA@?@?@?@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9:9:9:9:9878787878787878765656565656565656565656543434343434343432121212121212121212121210/0/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!"!"!"!        |{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvustssssssststststrqrqrqrqrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijijijijijihghghghghghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9:9878787878787878787878765656565656565656565656543434343434343432121212121212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!"!           |{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststssssssstsrqrqrqrqrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijijijijijihghghghghghghghghgfefefefefefefefefefefedcdcdcdcdcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:987878787878787878787878765656565656565656565656543434343434343432121212121212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)*)*)*)('('('('('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!         |{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqrqpopopopopopopopopopoponmnmnmnmnmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijijijijijihghghghghghghghgfefefefefefefefefefefefedcdcdcdcdcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;;;;;;<<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:987878787878787878787878765656565656565656543434343434343434343432121212121212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)*)*)*)*)('('('('('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!        |{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopopopopopopopopopoponmnmnmnmnmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijijijijijihghghghghghghghgfefefefefefefefefefefefedcdcdcdcdcdcdcdcdcbababababababababababa`_`_`_`_`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWWWWWWXXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=;<;<;<;<;;;;;<;<<;<;<;;;:9:9:9:9:9:9:9:987878787878787878787878765656565656565654343434343434343434343432121212121212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)*)*)*)*)('('('('('('('('('&%&%&%&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!           |{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopopopopopopopopopoponmnmnmnmnmnmnmnmnmlklklklklklklklklklklkjijijijijijijijijijijijihghghghghghghghgfefefefefefefefefefefefedcdcdcdcdcdcdcdcbabababababababababababa`_`_`_`_`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYWXWXWXWXWWWWWXWXXWXWXWWWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCDCBABABABABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=;<;<;<;<;<;<;<;<;;<;<;<;:9:9:9:9:9:9:9:987878787878787878787878765656565656565654343434343434343434343432121212121212121210/0/0/0/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!        |{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststststststsrqrqrqrqrqrqrqrqpopopopopopopopopopopoponmnmnmnmnmnmnmnmlklklklklklklklklklklklkjijijijijijijijijijijijihghghghghghghghgfefefefefefefefefefefefedcdcdcdcdcdcdcdcbabababababababababababa`_`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYWXWXWXWXWXWXWXWXWWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=;<;<;<;<;<;<;<;<<;:9:9:9:9:9:9:9:9:9:9:9878787878787878787878787656565656565656543434343434343434343434321212121212121210/0/0/0/0/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!        |{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvussssststtststssststststsrqrqrqrqrqrqrqrqpopopopopopopopopopopoponmnmnmnmnmnmnmnmlklklklklklklklklklklklkjijijijijijijijijihghghghghghghghghghghgfefefefefefefefefefefefedcdcdcdcdcdcdcdcbabababababababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYWXWXWXWXWXWXWXWXXWVUVUVUVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=;<;<;<;<;<;<;<;<:9:9:9:9:9:9:9:9:9:9:9:9878787878787878787878787656565656565656543434343434343434343434321212121212121210/0/0/0/0/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!                - - - - - - - -            - - - - - - - -             - - - - - - - -             - - - - - - - - - - -             - - - - - - - - - - - -             - - - - - - - - - - - -             - - - - - - - - - - - -             - - - - - - - - - - - -          - - - - - - - - - - - -         - - - - - - - - - - - -         - - - - - - - - -         - - - - - - - - ||{{zzyyLLKKJJII%%&&''((UUVVWWXXoonnmmll55443322KKLLMMNNrqqppoon>=<;;::9 - - 00112233``aabbcciihhggff99887766 (())**++XXYYZZ[[qqppoonnAA@@??>> !!""##PPQQRRSSyyxxwwvvIIHHGGFFHHIIJJKKxxyyzz{{QQPPOONN!! @@AABBCCppqqrrssYYXXWWVV))((''&& - - 8899::;;hhiijjkkWWVVUUTTVVWW]]^^gffeeddc21100//.44556677ddeeffggeeddccbb55443322,,--..//\\]]^^__mmllkkjj==<<;;:: - -$$%%&&''TTUUVVWWuuttssrrEEDDCCBBLLMMNNOO||||{{zzMMLLKKJJDDEEFFGGttuuvvwwUUTTSSRR%%$$##"" <<==>>??llmmnnooSSRRQQPP%%&&''((__``aabbcbbaa``_.--,,++* - - 8899::;;hhiijjkkaa``__^^1100//..00112233``aabbcciihhggff99887766 (())**++XXYYZZ[[qqppoonnAA@@??>> !!""##PPQQRRSSyyxxwwvvIIHHGGFFHHIIJJKKxxyyzz{{QQPPOONN!! @@AABBCCppqqrrssOONNMMLL))**++,,ccddeeff_^^]]\[Z*))((''& <<==>>??llmmnnoo]]\\[[ZZ--,,++**xxwwvvuuHHGGFFEE))**++,,YYZZ[[\\kkjjiihh1100//..OOPPQQRRnmmllkkj9887766544556677ddeeffggeeddccbb55443322,,--..//\\]]^^__mmllkkjj==<<;;:: - -$$%%&&''TTUUVVWWuuttssrrEEDDCCBBLLMMNNOO||||{{zzMMLLKKJJDDEEFFGGttuuvvwwUUTTSSRR%%$$##"" <<==>>??llmmnnooSSRRQQPP%%&&''((__``aabbcbbaa``_.--,,++* - - 8899::;;hhiijjkkaa``__^^1100//..00112233``aabbcciihhggff99887766 (())**++XXYYZZ[[qqppoonnAA@@??>> !!""##PPQQRRSSyyxxwwvvIIHHGGFFHHIIJJKKxxyyzz{{QQPPOONN!! @@AABBCCppqqrrssOONNMMLL))**++,,ccddeeff_^^]]\[Z*))((''& <<==>>??llmmnnoo]]\\[[ZZ--,,++**44556677ddeeffggeeddccbb55443322,,--..//\\]]^^__mmllkkjj==<<;;:: - -$$%%&&''TTUUVVWWuuttssrrEEDDCCBBLLMMNNOO||||{{zzMMLLKKJJDDEEFFGGttuuvvwwKKJJIIHH--..//00gghhiijjYXWWVVUU&%%$#"! @@AABBCCppqqrrssYYXXWWVV))((''&& - - ttssrrqqDDCCBBAA--..//00]]^^__``ggffeedd--,,++**SSTTUUVVjiihhggf54433221 - - 8899::;;hhiijjkkaa``__^^1100//..00112233``aabbcciihhggff99887766 (())**++XXYYZZ[[qqppoonnAA@@??>> !!""##PPQQRRSSyyxxwwvvIIHHGGFFHHIIJJKKxxyyzz{{QQPPOONN!! @@AABBCCppqqrrssOONNMMLL))**++,,ccddeeff_^^]]\[Z*))((''& <<==>>??llmmnnoo]]\\[[ZZ--,,++**44556677ddeeffggeeddccbb55443322,,--..//\\]]^^__mmllkkjj==<<;;:: - -$$%%&&''TTUUVVWWuuttssrrEEDDCCBBLLMMNNOO||||{{zzMMLLKKJJDDEEFFGGttuuvvwwKKJJIIHH--..//00gghhiijjYXWWVVUU&%%$#"! @@AABBCCppqqrrssYYXXWWVV))((''&& - - 8899::;;hhiijjkkaa``__^^1100//..00112233``aabbcciihhggff99887766 (())**++XXYYZZ[[qqppoonnAA@@??>> !!""##PPQQRRSSyyxxwwvvIIHHGGFFHHIIJJKKxxyyzz{{GGFFEEDD - -11223344kkllmmnnTTSSRRQQDDEEFFGGttuuvvwwUUTTSSRR%%$$##"" ppoonnmm@@??>>== 11223344aabbccddccbbaa``))((''&&%%WW]]^^__feeddccb100//..- <<==>>??llmmnnoo]]\\[[ZZ--,,++**44556677ddeeffggeeddccbb55443322,,--..//\\]]^^__mmllkkjj==<<;;:: - -$$%%&&''TTUUVVWWuuttssrrEEDDCCBBLLMMNNOO||||{{zzMMLLKKJJDDEEFFGGttuuvvwwKKJJIIHH--..//00gghhiijjYXWWVVUU&%%$#"! @@AABBCCppqqrrssYYXXWWVV))((''&& - - 8899::;;hhiijjkkaa``__^^1100//..00112233``aabbcciihhggff99887766 (())**++XXYYZZ[[qqppoonnAA@@??>> !!""##PPQQRRSSyyxxwwvvIIHHGGFFHHIIJJKKxxyyzz{{GGFFEEDD - -11223344kkllmmnnTTSSRRQQDDEEFFGGttuuvvwwUUTTSSRR%%$$##"" <<==>>??llmmnnoo]]\\[[ZZ--,,++**44556677ddeeffggeeddccbb55443322,,--..//\\]]^^__mmllkkjj==<<;;:: - -$$%%&&''TTUUVVWWuuttssrrEEDDCCBBLLMMNNOO||||{{zzCCBBAA;; 55667788ooppqqrrPPOONNMMHHIIJJKKxxyyzz{{QQPPOONN!! llkkjjii<<;;::99 - - 55667788eeffgghh__^^]]WW%%&&''(())``aabbccbaa``__^-,,++**)@@AABBCCppqqrrssYYXXWWVV))((''&& - - 8899::;;hhiijjkkaa``__^^1100//..00112233``aabbcciihhggff99887766 (())**++XXYYZZ[[qqppoonnAA@@??>> !!""##PPQQRRSSyyxxwwvvIIHHGGFFHHIIJJKKxxyyzz{{GGFFEEDD - -11223344kkllmmnnTTSSRRQQDDEEFFGGttuuvvwwUUTTSSRR%%$$##"" <<==>>??llmmnnoo]]\\[[ZZ--,,++**44556677ddeeffggeeddccbb55443322,,--..//\\]]^^__mmllkkjj==<<;;:: - -$$%%&&''TTUUVVWWuuttssrrEEDDCCBBLLMMNNOO||||{{zzCCBBAA;; 55667788ooppqqrrPPOONNMMHHIIJJKKxxyyzz{{QQPPOONN!! @@AABBCCppqqrrssYYXXWWVV))((''&& - - 8899::;;hhiijjkkaa``__^^1100//..00112233``aabbcciihhggff99887766 (())**++XXYYZZ[[qqppoonnAA@@??>> !!""##PPQQRRSSyyssrrqq::99887799::;;AAssyyzz{{LLKKJJIILLMMNNOO||||{{zzMMLLKKJJhhggffee88776655 - - 99::;;<>??llmmnnoo]]\\[[ZZ--,,++**44556677ddeeffggeeddccbb55443322,,--..//\\]]^^__mmllkkjj==<<;;:: - -$$%%&&''TTUUVVWWuuttssrrEEDDCCBBLLMMNNOO||||{{zzCCBBAA;; 55667788ooppqqrrPPOONNMMHHIIJJKKxxyyzz{{QQPPOONN!! @@AABBCCppqqrrssYYXXWWVV))((''&& - - 8899::;;hhiijjkkaa``__^^1100//..00112233``aabbcciihhggff99887766 (())**++XXYYZZ[[qqppoonnAA@@??>> !!""##PPQQRRSSyyssrrqq::99887799::;;AAssyyzz{{LLKKJJIILLMMNNOO||||{{zzMMLLKKJJDDEEFFGGttuuvvwwUUTTSSRR%%$$##"" <<==>>??llmmnnoo]]\\[[ZZ--,,++**44556677ddeeffggeeddccbb55443322,,--..//\\]]^^__mmllkkjj==<<;;:: - -$$%%&&''TTUUVVWWppoonnmm66554433 - - BBCCDDEE||||{{zzHHGGFFEE !!""##PPQQRRSSyyxxwwvvIIHHGGFFddccbbaa44332211 ==>>??@@mmnnooppRRQQPPOO..//0011hhiijjkkWWVVUUTT%$#"! HHIIJJKKxxyyzz{{QQPPOONN!! @@AABBCCppqqrrssYYXXWWVV))((''&& - - 8899::;;hhiijjkkaa``__^^1100//..00112233``aabbcciihhggff99887766 (())**++XXYYZZ[[qqppoonnAA@@??>> !!""##PPQQRRSSyyssrrqq::99887799::;;AAssyyzz{{LLKKJJIILLMMNNOO||||{{zzMMLLKKJJDDEEFFGGttuuvvwwUUTTSSRR%%$$##"" <<==>>??llmmnnoo]]\\[[ZZ--,,++**44556677ddeeffggeeddccbb55443322,,--..//\\]]^^__mmllkkjj==<<;;:: - -$$%%&&''TTUUVVWWppoonnmm66554433 - - BBCCDDEE||||{{zzHHGGFFEE !!""##PPQQRRSSyyxxwwvvIIHHGGFFHHIIJJKKxxyyzz{{QQPPOONN!! @@AABBCCppqqrrssYYXXWWVV))((''&& - - 8899::;;hhiijjkkaa``__^^1100//..00112233``aabbcciihhggff99887766 (())**++XXYYZZ[[llkkjjii221100// FFGGHHIIyyxwvutsDDCCBBAA $$%%&&''TTUUVVWWuuttssrrEEDDCCBB``__^^]]00//..--AABBCCDDqqrrssttNNMMLLKK22334455llmmnnooSSRRQQPPLLMMNNOO||||{{zzMMLLKKJJDDEEFFGGttuuvvwwUUTTSSRR%%$$##"" <<==>>??llmmnnoo]]\\[[ZZ--,,++**44556677ddeeffggeeddccbb55443322,,--..//\\]]^^__mmllkkjj==<<;;:: - -$$%%&&''TTUUVVWWppoonnmm66554433 - - BBCCDDEE||||{{zzHHGGFFEE !!""##PPQQRRSSyyxxwwvvIIHHGGFFHHIIJJKKxxyyzz{{QQPPOONN!! @@AABBCCppqqrrssYYXXWWVV))((''&& - - 8899::;;hhiijjkkaa``__^^1100//..00112233``aabbcciihhggff99887766 (())**++XXYYZZ[[llkkjjii221100// FFGGHHIIyyxwvutsDDCCBBAA $$%%&&''TTUUVVWWuuttssrrEEDDCCBBLLMMNNOO||||{{zzMMLLKKJJDDEEFFGGttuuvvwwUUTTSSRR%%$$##"" <<==>>??llmmnnoo]]\\[[ZZ--,,++**44556677ddeeffggeeddccbb55443322,,--..//\\]]^^__hhggffee..--,,++JJKKLLMMsrrqqppo@?>=<;;: - - (())**++XXYYZZ[[qqppoonnAA@@??>> !!""##\\[[ZZYY,,++**))EEFFGGHHuuvvwwxxJJIIHHGG 66778899ppqqrrssOONNMMLL !!""##PPQQRRSSyyxxwwvvIIHHGGFFHHIIJJKKxxyyzz{{QQPPOONN!! @@AABBCCppqqrrssYYXXWWVV))((''&& - - 8899::;;hhiijjkkaa``__^^1100//..00112233``aabbcciihhggff99887766 (())**++XXYYZZ[[llkkjjii221100// FFGGHHIIyyxwvutsDDCCBBAA $$%%&&''TTUUVVWWuuttssrrEEDDCCBBLLMMNNOO||||{{zzMMLLKKJJDDEEFFGGttuuvvwwUUTTSSRR%%$$##"" <<==>>??llmmnnoo]]\\[[ZZ--,,++**44556677ddeeffggeeddccbb55443322,,--..//\\]]^^__hhggffee..--,,++JJKKLLMMsrrqqppo@?>=<;;: - - (())**++XXYYZZ[[qqppoonnAA@@??>> !!""##PPQQRRSSyyxxwwvvIIHHGGFFHHIIJJKKxxyyzz{{QQPPOONN!! @@AABBCCppqqrrssYYXXWWVV))((''&& - - 8899::;;hhiijjkkaa``__^^1100//..00112233``aabbccddccbbaa**))((''NNOOPPQQonnmmllk:9988776,,--..//\\]]^^__mmllkkjj==<<;;:: - -$$%%&&''44556677XXWWVVUU((''&&%%IIJJKKLLyyzz{{||FFEEDDCC - - ::;;AABByyzz{{||KKJJIIHH$$%%&&''TTUUVVWWuuttssrrEEDDCCBBLLMMNNOO||||{{zzMMLLKKJJDDEEFFGGttuuvvwwUUTTSSRR%%$$##"" <<==>>??llmmnnoo]]\\[[ZZ--,,++**44556677ddeeffggeeddccbb55443322,,--..//\\]]^^__hhggffee..--,,++JJKKLLMMsrrqqppo@?>=<;;: - - (())**++XXYYZZ[[qqppoonnAA@@??>> !!""##PPQQRRSSyyxxwwvvIIHHGGFFHHIIJJKKxxyyzz{{QQPPOONN!! @@AABBCCppqqrrssYYXXWWVV))((''&& - - 8899::;;hhiijjkkaa``__^^1100//..00112233``aabbccddccbbaa**))((''NNOOPPQQonnmmllk:9988776,,--..//\\]]^^__mmllkkjj==<<;;:: - -$$%%&&''TTUUVVWWuuttssrrEEDDCCBBLLMMNNOO||||{{zzMMLLKKJJDDEEFFGGttuuvvwwUUTTSSRR%%$$##"" <<==>>??llmmnnoo]]\\[[ZZ--,,++**44556677ddeeffgg``__^^]]&&%%RRSSTTUUkjjiihhg6554433200112233``aabbcciihhggff99887766 (())**++8899::;;TTSSRRQQ$$##""!! MMNNOOPP||{{zzyyBBAA;;:: - - CCDDEEFF||{{zzyyGGFFEEDD(())**++XXYYZZ[[qqppoonnAA@@??>> !!""##PPQQRRSSyyxxwwvvIIHHGGFFHHIIJJKKxxyyzz{{QQPPOONN!! @@AABBCCppqqrrssYYXXWWVV))((''&& - - 8899::;;hhiijjkkaa``__^^1100//..00112233``aabbccddccbbaa**))((''NNOOPPQQonnmmllk:9988776,,--..//\\]]^^__mmllkkjj==<<;;:: - -$$%%&&''TTUUVVWWuuttssrrEEDDCCBBLLMMNNOO||||{{zzMMLLKKJJDDEEFFGGttuuvvwwUUTTSSRR%%$$##"" <<==>>??llmmnnoo]]\\[[ZZ--,,++**44556677ddeeffgg``__^^]]&&%%RRSSTTUUkjjiihhg6554433200112233``aabbcciihhggff99887766 (())**++XXYYZZ[[qqppoonnAA@@??>> !!""##PPQQRRSSyyxxwwvvIIHHGGFFHHIIJJKKxxyyzz{{QQPPOONN!! @@AABBCCppqqrrssYYXXWWVV))((''&& - - 8899::;;hhiijjkkWWVVUUTTVVWW]]^^gffeeddc21100//.44556677ddeeffggeeddccbb55443322,,--..//<<==>>??PPOONNMM !!""##$$QQRRSSTTssrrqqpp99887766 GGHHIIJJxwvutssrCCBBAA@? ,,--..//\\]]^^__mmllkkjj==<<;;:: - -$$%%&&''TTUUVVWWuuttssrrEEDDCCBBLLMMNNOO||||{{zzMMLLKKJJDDEEFFGGttuuvvwwUUTTSSRR%%$$##"" <<==>>??llmmnnoo]]\\[[ZZ--,,++**44556677ddeeffgg``__^^]]&&%%RRSSTTUUkjjiihhg6554433200112233``aabbcciihhggff99887766 (())**++XXYYZZ[[qqppoonnAA@@??>> !!""##PPQQRRSSyyxxwwvvIIHHGGFFHHIIJJKKxxyyzz{{QQPPOONN!! @@AABBCCppqqrrssYYXXWWVV))((''&& - - 8899::;;hhiijjkkWWVVUUTTVVWW]]^^gffeeddc21100//.44556677ddeeffggeeddccbb55443322,,--..//\\]]^^__mmllkkjj==<<;;:: - -$$%%&&''TTUUVVWWuuttssrrEEDDCCBBLLMMNNOO||||{{zzMMLLKKJJDDEEFFGGttuuvvwwUUTTSSRR%%$$##"" <<==>>??llmmnnooSSRRQQPP%%&&''((__``aabbcbbaa``_.--,,++* - - 8899::;;hhiijjkkaa``__^^1100//..00112233@@AABBCCDDEEFFGGttuuvvwwUUTTSSRR%%$$##"" <<==>>??llmmnnoo]]\\[[ZZ--,,++**44556677ddeeffggeeddccbb55443322,,--..//\\]]^^__mmllkkjj==<<;;:: - -$$%%&&''TTUUVVWWmmllkkjj33221100MMNNOOPPaa``__^^1100//..@@AABBCCHHIIJJKKxxyyzz{{QQPPOONN!! @@AABBCCppqqrrssYYXXWWVV))((''&& - - 8899::;;hhiijjkkaa``__^^1100//..00112233``aabbcciihhggff99887766 (())**++XXYYZZ[[iihhggff//..--,,QQRRSSTT]]\\[[ZZ--,,++**DDEEFFGGLLMMNNOO||||{{zzMMLLKKJJDDEEFFGGttuuvvwwUUTTSSRR%%$$##"" <<==>>??llmmnnoo]]\\[[ZZ--,,++**44556677ddeeffggeeddccbb55443322,,--..//\\]]^^__eeddccbb++**))((UUVVWW]]YYXXWWVV))((''&&HHIIJJKKPPQQRRSSyyxxwwvvIIHHGGFFHHIIJJKKxxyyzz{{QQPPOONN!! @@AABBCCppqqrrssYYXXWWVV))((''&& - - 8899::;;hhiijjkkaa``__^^1100//..00112233``aabbccaa``__^^''&&%%%%&&''^^__``aaUUTTSSRR%%$$##""LLMMNNOOTTUUVVWWuuttssrrEEDDCCBBLLMMNNOO||||{{zzMMLLKKJJDDEEFFGGttuuvvwwUUTTSSRR%%$$##"" <<==>>??llmmnnoo]]\\[[ZZ--,,++**44556677ddeeffgg]]WWVVUU(())**++bbccddeeQQPPOONN!!  !!""##PPQQRRSSXXYYZZ[[qqppoonnAA@@??>> !!""##PPQQRRSSyyxxwwvvIIHHGGFFHHIIJJKKxxyyzz{{QQPPOONN!! @@AABBCCppqqrrssYYXXWWVV))((''&& - - 8899::;;hhiijjkkTTSSRRQQ,,--..//ffgghhiiMMLLKKJJ$$%%&&''TTUUVVWW\\]]^^__mmllkkjj==<<;;:: - -$$%%&&''TTUUVVWWuuttssrrEEDDCCBBLLMMNNOO||||{{zzMMLLKKJJDDEEFFGGttuuvvwwUUTTSSRR%%$$##"" <<==>>??llmmnnooPPOONNMM00112233jjkkllmmIIHHGGFF(())**++XXYYZZ[[``aabbcciihhggff99887766 (())**++XXYYZZ[[qqppoonnAA@@??>> !!""##PPQQRRSSyyxxwwvvIIHHGGFFHHIIJJKKxxyyzz{{QQPPOONN!! @@AABBCCppqqrrssLLKKJJII44556677nnooppqqEEDDCCBB,,--..//\\]]^^__ddeeffggeeddccbb55443322,,--..//\\]]^^__mmllkkjj==<<;;:: - -$$%%&&''TTUUVVWWuuttssrrEEDDCCBBLLMMNNOO||||{{zzMMLLKKJJDDEEFFGGttuuvvwwHHGGFFEE 8899::;;qqppoonnAA@@??>>00112233``aabbcchhiijjkkaa``__^^1100//..00112233``aabbcciihhggff99887766 (())**++XXYYZZ[[qqppoonnAA@@??>> !!""##PPQQRRSSyyxxwwvvIIHHGGFFHHIIJJKKxxyyzz{{DDCCBBAA - - - -AABBCCDDmmllkkjj==<<;;:: - -44556677ddeeffggllmmnnoo]]\\[[ZZ--,,++**44556677ddeeffggeeddccbb55443322,,--..//\\]]^^__mmllkkjj==<<;;:: - -$$%%&&''TTUUVVWWuuttssrrEEDDCCBBLLMMNNOO||ttssrr;;::9988 EEFFGGHHiihhggff99887766 - - 8899::;;hhiijjkkppqqrrssYYXXWWVV))((''&& - - 8899::;;hhiijjkkaa``__^^1100//..00112233``aabbcciihhggff99887766 (())**++XXYYZZ[[qqppoonnAA@@??>> !!""##PPQQRRSSqqppoonn77665544IIJJKKLLeeddccbb55443322 <<==>>??llmmnnooppqqfpvfpvfpvXQJ`ےXQJ`ےltbtAJlH~fpfH~bے`JQr˂p˂pZHAbtlbtl`f~`f~`fHےbHAےbHAtAJltAJltAJlf`vXf`vXXQr˂XQr˂XQr˂btlbtlbtl`f~`f~ےbHAےbHAےbHAtAJltAJlf`vXf`vXf`vX`JXQrے`JJtArdl|Z~HfpvnX`ےHAےbHAےbHAtAJltAJlJltf`vXf`vXXQr˂XQr˂XQr˂btlbtl`f~`f~`f~ےbHAےbHAےJltAJltAJlf`vXf`vXf`vXXQr˂XQr˂btlbtlbtlXv`fnXvXQJ`ےrXQJtbdZ|df`vXf`vXf`vXXQr˂XQr˂rbtbtlbtl`f~`f~`fHےbHAےbHAtAJltAJltAJlf`vXf`vXXQr˂XQr˂XQr˂btlbtlbtl`f~`f~ےbHAےbHAےbHAdrtAJ|drH~fpfH~˂pZAbbے`btlbtlbtl`f~`f~`ےHAnXv`nXv`nXv`bHAZbHAZdQZ|tbdQZ`vXnf`vJXQrˑZHAbbJAdJtArdJtArdHfpvHfpvfpvZp˂Zp˂tbdQZtbdQZtbdQZnvpnvppZHAbpZHAbpZHAbJtArdJtArdJfpvHfpvHfpvZp˂Zp˂Zp˂tbdQZtbdQZnvpnvpnvp˂pZXQr˂tlJdQbt璝vnXv`fZp˂Zp˂Zp˂tbdQZtbdQZbnvnvpnvppZHAbpZHAbpZHAJtArdJtArdHfpvHfpvHfpvZp˂Zp˂tbdQZtbdQZtbdQZnvpnvpnvppZHAbpZHAbJtArdJtArdJtArd~Hf`f~bHAZ`ےbQZ|rrtAJlnvpnvpnvppZHAbpZHAblJtAdJtArdJtArdHfpvHfpvfpvZp˂Zp˂tbdQZtbdQZtbdQZnvpnvppZHAbpZHAbpZHAbJtArdJtArdJfpvHfpvHfpvZp˂Zp˂Zp˂ltbtAJl`vXnf`v`JXQJXQrZJtArdJtArdJtArdHfpvHfpvZp˂f~Hf~Hf~Hp˂rp˂rdrtAJ|drvpfXnvpZHAے`JX|ZdQ|ZdQ|ZdQnXvnXvnrXQJrXQJ`rXQJ`|dr|dr|dtAfH~fH~ے`Jے`Jے`J|ZdQ|ZdQnXvnXvnXvrXQJ`rXQJ`rXQJ`|dr|drfH~fH~fH~HAbےpZHAbtArdlJtArv`f~~HfprXQJ`rXQJ`rXQJ`|dr|drpfHfH~fH~ے`Jے`Jے`JXQ|ZdQ|ZdQnXvnXvnXvrXQJ`rXQJ`|dr|dr|drfH~fH~fے`Jے`Jے`J|ZdQ|ZdQ|ZdQpvnHfpvp˂rHAZp˂AJlttbQZfH~fH~fH~ے`Jے`J|ZdQ|ZdQ|ZdQnXvnXvnrXQJrXQJ`rXQJ`|dr|dr|dtAfH~fH~ے`Jے`Jے`J|ZdQ|ZdQnXvnXvnXvrXQJ`rXQJ`rXQJ`dQZ|tbdQZvpfXnvr˂pHAbے|ZdQ|ZdQ|ZdQnXvnXvrXQJ`fpvfpvfpvXQJ`ےXQJ`ےltbtAJlH~p`vXbے`Qr˂pbtlbtlbtl`f~`f~`ےHAےbHAےbHAtAJltAJlJltf`vXf`vXXQr˂XQr˂XQr˂btlbtl`f~`f~`f~ےbHAےbHAےJltAJltAJlf`vXf`vXf`vX`JXQrے`J|ZdQbd|ZfpvvnvfےbHAےbHAےbHAtAJltAJlf`vXf`vXf`vXXQr˂XQr˂rbtbtlbtl`f~`f~`fHےbHAےbHAtAJltAJltAJlf`vXf`vXXQr˂XQr˂XQr˂btlbtlbtlXv`fnXvXQJ`ےrXQJbdQZ|drtAJf`vXf`vXf`vXXQr˂XQr˂btlbtlbtl`f~`f~`ےHAےbHAےbHAtAJltAJlJltf`vXf`vXXQr˂XQr˂XQr˂btlbtl`f~`f~`f~ےbHAےbHAےJldrtAdQ|ltH~fpfH~ZHAb`JXQrbtlbtlbtl`f~`f~ےbHAnXv`nXv`nXv`bHAZbHAZdQZ|ltdrtAvpfHnvpJXQrˑZHAbJtArdJtArdJtArdHfpvHfpvZp˂Zp˂Zp˂tbdQZtbdQZbnvnvpnvppZHAbpZHAbpZHAJtArdJtArdHfpvHfpvHfpvZp˂Zp˂tbdQZtbdQZtbdQZnvpnvpnvp˂pZXQr˂tlJdQbtnXv`~HfZp˂Zp˂Zp˂tbdQZtbdQZnvpnvpnvppZHAbpZHAblJtAdJtArdJtArdHfpvHfpvfpvZp˂Zp˂tbdQZtbdQZtbdQZnvpnvppZHAbpZHAbpZHAbJtArdJtArdJfpv~HX`pvbHAZ`ےbdrtAltbnvpnvpnvppZHAbpZHAbJtArdJtArdJtArdHfpvHfpvZp˂Zp˂Zp˂tbdQZtbdQZbnvnvpnvppZHAbpZHAbpZHAJtArdJtArdHfpvHfpvHfpvZp˂Zp˂tdrtAZ|dbnv`vXHvpے`JXQ˂pZJtArdJtArdJfpvHfpvHfpvZp˂f~Hf~Hp˂rp˂rp˂rtbdQJlt~f`fH~pZAbے`JX|ZdQ|ZdQ|ZdQnXvnXvrXQJ`rXQJ`rXQJ`|dr|drpfHfH~fH~ے`Jے`Jے`JXQ|ZdQ|ZdQnXvnXvnXvrXQJ`rXQJ`|dr|dr|drfH~fH~fے`JHAbp`JXQtArdlJtArf~HpvnrXQJ`rXQJ`rXQJ`|dr|drfH~fH~fH~ے`Jے`J|ZdQ|ZdQ|ZdQnXvnXvnrXQJrXQJ`rXQJ`|dr|dr|dtAfH~fH~ے`Jے`Jے`J|ZdQ|ZdQ~Hv`fnrXQJp˂HAXQJ`JltdQZ|fH~fH~fے`Jے`Jے`J|ZdQ|ZdQ|ZdQnXvnXvrXQJ`rXQJ`rXQJ`|dr|drpfHfH~fH~ے`Jے`Jے`JXQ|ZdQ|ZdQnXvnXvnXvrXQJ`rXQJ`JltrtAJlp`vX~f`fے`Jr˂pHAbے|ZdQ|ZdQnXvnXvnXvrXQJ`fpvfpvXQJ`ےXQJ`ےXQJ`ےZ|dbdQZ|vXnf`vX`JXQrQrZHAbtlbtlbtl`f~`f~ےbHAےbHAےbHAtAJltAJlf`vXf`vXf`vXXQr˂XQr˂rbtbtlbtl`f~`f~`fHےbHAےbHAtAJltAJltAJlf`vXf`vXXQHAb˂pZHArbt|ZdQtAdtlfpvXv`fےbHAےbHAےJltAJltAJlf`vXf`vXf`vXXQr˂XQr˂btlbtlbtl`f~`f~`ےHAےbHAےbHAtAJltAJlJltf`vXf`vXXQr˂XQr˂XQr˂btlbtlfpv~Hfp`p˂bHAZpےJlbdQZ|drtAJf`vXf`vXXQr˂XQr˂XQr˂btlbtlbtl`f~`f~ےbHAےbHAےbHAtAJltAJlf`vXf`vXf`vXXQr˂XQr˂rbtbtlbtl`f~`f~`fHےbHAےbHAbdQZ|tbdQnvpvXnXQrZHZHAb`JXQrbtlbtl`f~`f~`f~ےbHAnXv`nXv`bHAZbHAZbHAZrtAJldrtAvpfHnvp˂pZbے`JtArdJtArdJfpvHfpvHfpvZp˂Zp˂Zp˂tbdQZtbdQZnvpnvpnvppZHAbpZHAblJtAdJtArdJtArdHfpvHfpvfpvZp˂Zp˂tbdQZtbdQZtbdQZnvpnvpے`JXQbے`l|ZdQrd|JfpvnXv`~HfZp˂Zp˂tbdQZtbdQZtbdQZnvpnvpnvppZHAbpZHAbJtArdJtArdJtArdHfpvHfpvZp˂Zp˂Zp˂tbdQZtbdQZbnvnvpnvppZHAbpZHAbpZHAJtArdJtArdnXv`vnXrXQJ`˂rXQtbQZddrtAltbnvpnvppZHAbpZHAbpZHAbJtArdJtArdJfpvHfpvHfpvZp˂Zp˂Zp˂tbdQZtbdQZnvpnvpnvppZHAbpZHAblJtAdJtArdJtArdHfpvHfpvfpvZp˂Zp˂drtAZ|dfH~vpfHAbے`JQrˀ˂pZAJtArdJtArdHfpvHfpvHfpvZp˂f~Hf~Hp˂rp˂rp˂rtbdQJlt~f`fH~HAbےJXQr|ZdQ|ZdQnXvnXvnXvrXQJ`rXQJ`rXQJ`|dr|drfH~fH~fH~ے`Jے`J|ZdQ|ZdQ|ZdQnXvnXvnrXQJrXQJ`rXQJ`|dr|dr|dtAfH~fH~r˂pJXQrbtlZdQbtnvff~HpvnrXQJ`rXQJ`|dr|dr|drfH~fH~fے`Jے`Jے`J|ZdQ|ZdQ|ZdQnXvnXvrXQJ`rXQJ`rXQJ`|dr|drpfHfH~fH~ے`Jے`Jے`JXQ|ZdQ|ZdQf~Hv`fےbHAJ`ےrtAJlJbdQdQZ|fH~fH~ے`Jے`Jے`J|ZdQ|ZdQnXvnXvnXvrXQJ`rXQJ`rXQJ`|dr|drfH~fH~fH~ے`Jے`J|ZdQ|ZdQ|ZdQnXvnXvnrXQJrXQJ`rXQJ`JltrtAJlf`vX~f`JXQrpZHA㙒`JXQ|ZdQ|ZdQnXvnXvnXvrXQJ`ےbHAfpvfpvXQJ`ےXQJ`ےXQJ`ےZ|dbdQZ|vXH~vpf`JXQr˂pZHAbtlbtl`f~`f~`f~ےbHAےbHAےJltAJltAJlf`vXf`vXf`vXXQr˂XQr˂btlbtlbtl`f~`f~`ےHAےbHAےbHAtAJltAJlJltf`vXf`vXZHAb˂pZHAJtArdlJtA~HfpfvnXXv`fےbHAےbHAtAJltAJltAJlf`vXf`vXXQr˂XQr˂XQr˂btlbtlbtl`f~`f~ےbHAےbHAےbHAtAJltAJlf`vXf`vXf`vXXQr˂XQr˂rbtbtlbtlfpv~HfpZp˂bHAZptbdZ|dAJltf`vXf`vXXQr˂XQr˂XQr˂btlbtl`f~`f~`f~ےbHAےbHAےJltAJltAJlf`vXf`vXf`vXXQr˂XQr˂btlbtlbtl`f~`f~`ےHAےbHAےbHAbdQZ|tdrnvpvXn˂pZHbے`rbtbtlbtl`f~`f~`fHےbHAZp˂nXv`nXv`bHAZbHAZJltrtAdQZ`vXnf`vے`JXQ˂pZbے`JtArdJtArdHfpvHfpvHfpvZp˂Zp˂tbdQZtbdQZtbdQZnvpnvpnvppZHAbpZHAbJtArdJtArdJtArdHfpvHfpvZp˂Zp˂Zp˂tbdQZtbdQZbnvnvpnvpے`JXQbے`|ZdQrd|vnXv`ffpvZp˂Zp˂tbdQZtbdQZtbdQZnvpnvppZHAbpZHAbpZHAbJtArdJtArdJfpvHfpvHfpvZp˂Zp˂Zp˂tbdQZtbdQZnvpnvpnvppZHAbpZHAblJtAdJtArdJtArdnXv`v~rXQJ`˂rXQQZ|drtAJlbnvnvpnvppZHAbpZHAbpZHAJtArdJtArdHfpvHfpvHfpvZp˂Zp˂tbdQZtbdQZtbdQZnvpnvpnvppZHAbpZHAbJtArdJtArdJtArdHfpvHfpvZp˂Zp˂Zp˂ltbtAJlfH~vp`vAbے`JXQrlJtAdJtArdJtArdHfpvHfpvfpvZp˂rXQJ`f~Hf~Hp˂rp˂rdrtAJ|drvpfXnvrZHAHAbJXQr|ZdQ|ZdQnXvnXvnXvrXQJ`rXQJ`|dr|dr|drfH~fH~fے`Jے`Jے`J|ZdQ|ZdQ|ZdQnXvnXvrXQJ`rXQJ`rXQJ`|dr|drpfHfH~fH~r˂pJXQHAbbtlZdQbtv`f~HfpnrXQJrXQJ`rXQJ`|dr|dr|dtAfH~fH~ے`Jے`Jے`J|ZdQ|ZdQnXvnXvnXvrXQJ`rXQJ`rXQJ`|dr|drfH~fH~fH~ے`Jے`J|ZdQ|ZdQ|ZdQpvnHfpvےbHAJ`p˂rtAJltbdQpfHfH~fH~ے`Jے`Jے`JXQ|ZdQ|ZdQnXvnXvnXvrXQJ`rXQJ`|dr|dr|drfH~fH~fے`Jے`Jے`J|ZdQ|ZdQ|ZdQnXvnXvrXQJ`rXQJ`rXQJ`dQZ|tbdQZvpfXnvJXQrpZHA|ZdQ|ZdQ|ZdQnXvnXvnrXQJrXQJ`ےbHAZp˂Zp˂tbdQZtbdQZnvpnvpnvppZHAbpZHAblJtAdJtArdJtArdHfpvHfpvfpvZp˂Zp˂tbdQZtbdQZtbdQZnvpnvpXQr˂`JXQrˁ`ZAHr󙐂˅Xnv˅Xnv˒tbAdtbAdrXQJ`rXQJ`|dr|drfH~fH~fH~ے`Jے`J|ZdQ|ZdQ|ZdQnXvnXvnrXQJrXQJ`rXQJ`|dr|dr|dtAfH~fH~pZHAb˂pZQXb㉀ہ`ZQXbpfH~pfH~Z|dZ|dےbHAےJltAJltAJlf`vXf`vXf`vXXQr˂XQr˂btlbtlbtl`f~`f~`ےHAےbHAےbHAtAJltAJlJltf`vXf`vXے`JHAbےpJAHr󉀒ۑp`f۝`vf۝`vrQtJlrQtJlZp˂tbdQZtbdQZtbdQZnvpnvpnvppZHAbpZHAbJtArdJtArdJtArdHfpvHfpvZp˂Zp˂Zp˂tbdQZtbdQZbnvnvpnvpXQr˂`JXQHAۑpZQXb㉀Xnv˅Xnv˒tbAdtbAdrXQJ`|dr|dr|drfH~fH~fے`Jے`Jے`J|ZdQ|ZdQ|ZdQnXvnXvrXQJ`rXQJ`rXQJ`|dr|drpfHfH~fH~p`JXQbے`JAHr󙐒ۑpJAHpfH~pfH~Z|dZ|dےbHAtAJltAJltAJlf`vXf`vXXQr˂XQr˂XQr˂btlbtlbtl`f~`f~ےbHAےbHAےbHAtAJltAJlf`vXf`vXf`vXr˂pJXQrˁ`ZQXr󙐂ˁ`f۝`vf۝`vrQtJlrQtJlZp˂tbdQZtbdQZtbdQZnvpnvppZHAbpZHAbpZHAbJtArdJtArdJfpvHfpvHfpvZp˂Zp˂Zp˂tbdQZtbdQZnvpnvpnvpZHAb˂pZHAb㉀ۑpZQXb㉀Xnv˅Xnv˒tbAdtbAdrXQJ`|dr|dr|dtAfH~fH~ے`Jے`Jے`J|ZdQ|ZdQnXvnXvnXvrXQJ`rXQJ`rXQJ`|dr|drfH~fH~fH~ے`JXQbے`JAHr󙐒ۑpJAHpfH~pfH~Z|dZ|dےbHAtAJltAJlJltf`vXf`vXXQr˂XQr˂XQr˂btlbtl`f~`f~`f~ےbHAےbHAےJltAJltAJlf`vXf`vXf`vXr˂pJXQrˁ`ZQXf۝`vf۝`vf۝`vrQtJlrQtJlZp˂tbdQZtbdQZbnvnvpnvppZHAbpZHAbpZHAJtArdJtArdHfpvHfpvHfpvZp˂Zp˂tbdQZtbdQZtbdQZnvpnvpnvpZHAb˂p`ZAHr󙐂˅Xnv˅Xnv˅Xnv˒tbAdtbAdrXQJ`|dr|drpfHfH~fH~ے`Jے`Jے`JXQ|ZdQ|ZdQnXvnXvnXvrXQJ`rXQJ`|dr|dr|drfH~fH~fZHAb˂pZQXb㉀ہ`ZQXbpfH~pfH~p|dZ|dZ|dےbHAtAJltAJlf`vXf`vXf`vXXQr˂XQr˂rbtbtlbtl`f~`f~`fHےbHAےbHAtAJltAJltAJlf`vXf`vXے`JHAbےpJAHr󉀒ۑpJf۝`vf۝`vrQtJlrQtJlrQtJltuvwxyz{||{zyxwv \ No newline at end of file diff --git a/vendor/endroid/qr-code/assets/data/qrv27_2.dat b/vendor/endroid/qr-code/assets/data/qrv27_2.dat deleted file mode 100755 index 536c7cab1..000000000 --- a/vendor/endroid/qr-code/assets/data/qrv27_2.dat +++ /dev/null @@ -1,249 +0,0 @@ -|{|{|{|{zyzyzyzyxwxwxwxwssstststrqrqrqrqnmnmnmnmlklklklkjijijijifefefefedcdcdcdcbabababa`_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVU|{|{|{|{zyzyzyzyxwxwxwxwststststrqrqrqrqnmnmnmnmlklklklkjijijijifefefefedcdcdcdcbabababa`_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVU|{|{|{|{zyzyzyzyvuvuvuvuststststrqrqrqrqnmnmnmnmlklklklkjijijijifefefefedcdcdcdcbabababa`_^]^]^]\[\[\[\[ZYZYZYZYVUVUVUVU|{|{|{|{zyzyzyzyvuvuvuvuststststrqpopoponmnmnmnmlklklklkjijijijifefefefedcdcdcdcbabababa^]^]^]^]\[\[\[\[ZYXWXWXWVUVUVUVU|{|{|{|{zyzyzyzyvuvuvuvuststststpopopoponmnmnmnmlklklklkjijijijifefefefedcdcdcdcbabababa^]^]^]^]\[\[\[\[XWWWWWWXVUVUVUVU|{|{|{|{zyzyzyzyvuvuvuvuststststpopopoponmnmnmnmlklklklkjijijijifefefefedcdcdcdcbabababa^]^]^]^]\[\[\[\[WXWXWXWXVUVUVUVU|{|{|{|{zyzyzyzyvuvuvuvusssssstspopopoponmnmnmnmlklklklkjijijijifefefefedcdcdcdcbabababa^]^]^]^]\[\[\[\[WXWXWXWXVUVUVUVU|{|{|{|{zyzyzyzyvuvuvuvutstststspopopoponmnmnmnmlklklklkjihghghgfefefefedcdcdcdcbabababa^]^]^]^]\[\[\[\[WXWXWXWXVUVUVUVU|{|{|{|{zyzyzyzyvuvuvuvutstststspopopoponmnmnmnmlklklklkhghghghgfefefefedcdcdcdcbabababa^]^]^]^]\[\[\[\[WXWXWXWXVUVUVUVU|{|{|{|{zyzyzyzyvuvuvuvutstststspopopoponmnmnmnmlklklklkhghghghgfefefefedcdcdcdcbabababa^]^]^]^]\[\[\[\[WXWXWXWXVUVUVUVU|{|{|{|{zyzyzyzyvuvuvuvutstststspopopoponmnmnmnmlklklklkhghghghgfefefefedcdcdcdcbabababa^]^]^]^]\[\[\[\[WXWXWWWWVUVUVUVU|{|{|{|{zyzyzyzyvuvuvuvutstststspopopoponmnmnmnmlklklklkhghghghgfefefefedcdcdcdcba`_`_`_^]^]^]^]\[\[\[\[WWXWXWXWVUVUVUVU|{|{|{|{zyzyzyzyvuvuvuvutstststspopopoponmnmnmnmlklklklkhghghghgfefefefedcdcdcdc`_`_`_`_^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVUTSTSTSTS|{|{|{|{zyzyzyzyvuvuvuvuqqqqqqrqpopopoponmnmnmnmlklklklkhghghghgfefefefedcdcdcdc`_`_`_`_^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVUTSTSTSTS|{|{|{|{zyzyzyzyvuvuvuvurqrqrqrqpopopoponmnmnmnmlklklklkhghghghgfefefefedcdcdcdc`_`_`_`_^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVUTSTSTSTS|{|{|{|{zyzyzyzyvuvuvuvurqrqrqrqpopopoponmnmnmnmlklklklkhghghghgfefefefedcdcdcdc`_`_`_`_^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVUTSTSTSTS|{|{|{|{zyzyzyzyvuvuvuvurqrqrqrqpopopoponmnmnmnmlkjijijihghghghgfefefefedcdcdcdc`_`_`_`_^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVUTSTSTSTS|{|{|{|{zyzyzyzyvuvuvuvurqrqrqrqpopopoponmnmnmnmjijijijihghghghgfefefefedcdcdcdc`_`_`_`_^]^]^]^]\[\[\[\[WWWWWXWXVUVUVUVUTSTSTSTS|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqpopopoponmnmnmnmjijijijihghghghgfefefefedcdcdcdc`_`_`_`_^]^]^]^]\[ZYZYZYWXWXWXWXVUVUVUVUTSTSTSTS|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqpopopoponmnmnmnmjijijijihghghghgfefefefedcdcdcdc`_`_`_`_^]^]^]^]ZYZYZYZYWXWXWXWXVUVUVUVUTSTSTSTS|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqpopopoponmnmnmnmjijijijihghghghgfefefefedcbababa`_`_`_`_^]^]^]^]ZYZYZYZYWXWXWXWXVUVUVUVUTSTSTSTS|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqpopopoponmnmnmnmjijijijihghghghgfefefefebabababa`_`_`_`_^]^]^]^]ZYZYZYZYWXWXWXWXVUVUVUVUTSTSTSTS|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqpopopoponmnmnmnmjijijijihghghghgfefefefebabababa`_`_`_`_^]^]^]^]ZYZYZYZYWXWXWXWXVUTSTSTSTSTSTSTS|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqpopopoponmnmnmnmjijijijihghghghgfefefefebabababa`_`_`_`_^]^]^]^]ZYZYZYZYWXWWWWWWTSTSTSTSTSTSTSTS|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqpopopoponmnmnmnmjijijijihghghghgfefefefebabababa`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSTSTSTSTS|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqpopopoponmlklklkjijijijihghghghgfefefefebabababa`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSTSRQRQRQ|{|{|{|{xwxwxwxwtstststsrqrqrqrqpopopopolklklklkjijijijihghghghgfefefefebabababa`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSRQRQRQRQ|{|{|{|{xwxwxwxwssssststrqrqrqrqpopopopolklklklkjijijijihghghghgfefefefebabababa`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSRQRQRQRQ|{|{|{|{xwxwxwxwststststrqrqrqrqpopopopolklklklkjijijijihghghghgfefefefebabababa`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSRQRQRQRQzyzyzyzyxwxwxwxwststststrqrqrqrqpopopopolklklklkjijijijihghghghgfedcdcdcbabababa`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWWWTSTSTSTSRQRQRQRQzyzyzyzyxwxwxwxwststststrqrqrqrqpopopopolklklklkjijijijihghghghgdcdcdcdcbabababa`_`_`_`_^]^]^]^]ZYZYZYZYWWXWXWXWTSTSTSTSRQRQRQRQzyzyzyzyxwxwxwxwststststrqrqrqrqpopopopolklklklkjijijijihghghghgdcdcdcdcbabababa`_`_`_`_^]^]^]^]ZYZYZYZYXWVUVUVUTSTSTSTSRQRQRQRQzyzyzyzyxwxwxwxwststststrqrqrqrqpopopopolklklklkjijijijihghghghgdcdcdcdcbabababa`_`_`_`_^]^]^]^]ZYZYZYZYVUVUVUVUTSTSTSTSRQRQRQRQzyzyzyzyxwxwxwxwstssssssrqrqrqrqpopopopolklklklkjijijijihghghghgdcdcdcdcbabababa`_`_`_`_^]\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTSRQRQRQRQzyzyzyzyxwxwxwxwtstststsrqrqrqrqponmnmnmlklklklkjijijijihghghghgdcdcdcdcbabababa`_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTSRQRQRQRQzyzyzyzyxwxwxwxwtstststsrqrqrqrqnmnmnmnmlklklklkjijijijihghghghgdcdcdcdcbabababa`_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTSRQRQRQRQzyzyzyzyxwxwxwxwtstststsrqrqrqrqnmnmnmnmlklklklkjijijijihghghghgdcdcdcdcbabababa`_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTSRQRQRQRQzyzyzyzyxwxwxwxwtstststsrqrqrqrqnmnmnmnmlklklklkjijijijihghghghgdcdcdcdcbabababa`_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTSRQRQRQRQzyzyzyzyxwxwxwxwtstststsrqrqrqrqnmnmnmnmlklklklkjijijijihgfefefedcdcdcdcbabababa`_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTSRQRQRQRQzyzyzyzyxwxwxwxwtststsssrqrqrqrqnmnmnmnmlklklklkjijijijifefefefedcdcdcdcbabababa`_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEBABABABA@?@?@?@?;<;<;<;<:9:9:9:98787878743434343212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('&%&%&%&%"!"!"!"!    - - - - RQRQRQRQPOPOPOPOLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEBABABABA@?@?@?@?;<;<;;;;:9:9:9:98787878743434343212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('&%&%&%&%"!"!"!"!  - - - - RQRQRQRQPOPOPOPOLKLKLKLKJIJIJIJIHGHGHGHGFEDCDCDCBABABABA@?@?@?@?;;<;<;<;:9:9:9:98787878743434343212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('&%&%&%&%"!"!"!"! - - - - RQRQRQRQPOPOPOPOLKLKLKLKJIJIJIJIHGHGHGHGDCDCDCDCBABABABA@?@?@?@?<;<;<;<;:9:9:9:98787878743434343212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('&%$#$#$#"!"!"!"! - - - - RQRQRQRQPOPOPOPOLKLKLKLKJIJIJIJIHGHGHGHGDCDCDCDCBABABABA@?@?@?@?<;<;<;<;:9:9:9:98765656543434343212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"! - - - - RQRQRQRQPOPOPOPOLKLKLKLKJIJIJIJIHGHGHGHGDCDCDCDCBABABABA@?@?@?@?<;<;<;<;:9:9:9:96565656543434343212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"! - - - - RQRQRQRQPOPOPOPOLKLKLKLKJIJIJIJIHGHGHGHGDCDCDCDCBABABABA@?@?@?@?<;<;<;<;:9:9:9:96565656543434343212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"! - - - - RQRQRQRQPONMNMNMLKLKLKLKJIJIJIJIHGHGHGHGDCDCDCDCBABABABA@?@?@?@?<;<;<;<;:9:9:9:96565656543434343212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"! - - - - RQRQRQRQNMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGDCDCDCDCBABABABA@?@?@?@?;;;;;<;<:9:9:9:96565656543434343212121210/.-.-.-,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"! - - - - RQRQRQRQNMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGDCDCDCDCBABABABA@?>=>=>=;<;<;<;<:9:9:9:9656565654343434321212121.-.-.-.-,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!   - - - - RQRQRQRQNMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGDCDCDCDCBABABABA>=>=>=>=;<;<;<;<:9:9:9:9656565654343434321212121.-.-.-.-,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!    - - - - RQRQRQRQNMNMNMNMLKLKLKLKJIJIJIJIHGFEFEFEDCDCDCDCBABABABA>=>=>=>=;<;<;<;<:9:9:9:9656565654343434321212121.-.-.-.-,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!    - - - - RQRQRQRQNMNMNMNMLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDCBABABABA>=>=>=>=;<;<;<;<:9:9:9:9656565654343434321212121.-.-.-.-,+,+,+,+*)*)*)*)('&%&%&%$#$#$#$#"!"!"!"!    - - - - RQRQRQRQNMNMNMNMLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDCBABABABA>=>=>=>=;<;<;<;<:9878787656565654343434321212121.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!       - - - - RQRQRQRQNMNMNMNMLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDCBABABABA>=>=>=>=;<;;;;;;87878787656565654343434321212121.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#      - - - - RQRQRQRQNMNMNMNMLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDCBABABABA>=>=>=>=<;<;<;<;87878787656565654343434321212121.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#        - - - - RQPOPOPONMNMNMNMLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDCBABABABA>=>=>=>=<;<;<;<;87878787656565654343434321212121.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#        - - - - POPOPOPONMNMNMNMLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDCBABABABA>=>=>=>=<;<;<;<;878787876565656543434343210/0/0/.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#        - - - - POPOPOPONMNMNMNMLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDCBABABABA>=>=>=>=<;<;<;<;8787878765656565434343430/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#        - - - - POPOPOPONMNMNMNMLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDCBABABABA>=>=>=>=<;<;<;<;8787878765656565434343430/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#        - - - - POPOPOPONMNMNMNMLKLKLKLKJIHGHGHGFEFEFEFEDCDCDCDCBABABABA>=>=>=>=<;<;<;;;8787878765656565434343430/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#      - - - - POPOPOPONMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEDCDCDCDCBABABABA>=>=>=>=;;<;<;<;8787878765656565434343430/0/0/0/.-.-.-.-,+,+,+,+*)('('('&%&%&%&%$#$#$#$#       - - - - POPOPOPONMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEDCDCDCDCBABABABA>=>=>=>=<;:9:9:98787878765656565434343430/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#        - POPOPOPONMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEDCDCDCDCBABABABA>=>=>=>=:9:9:9:98787878765656565434343430/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#        POPOPOPONMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEDCDCDCDCBA@?@?@?>=>=>=>=:9:9:9:98787878765656565434343430/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#        POPOPOPONMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:98787878765656565434343430/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#        POPOPOPONMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:98787878765656565432121210/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#        POPOPOPONMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:98787878765656565212121210/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#      POPOPOPONMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:98787878765656565212121210/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#"!"!"!        POPOPOPONMNMNMNMLKJIJIJIHGHGHGHGFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:98787878765656565212121210/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!        POPOPOPONMNMNMNMJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:98787878765656565212121210/0/0/0/.-.-.-.-,+*)*)*)('('('('&%&%&%&%"!"!"!"!        POPOPOPONMNMNMNMJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:98787878765656565212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%"!"!"!"!        - - - POPOPOPONMNMNMNMJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:98787878765656565212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%"!"!"!"!        - - - - POPOPOPONMNMNMNMJIJIJIJIHGHGHGHGFEFEFEFEDCBABABA@?@?@?@?>=>=>=>=:9:9:9:98787878765656565212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%"!"!"!"!     - - - - POPOPOPONMNMNMNMJIJIJIJIHGHGHGHGFEFEFEFEBABABABA@?@?@?@?>=<;<;<;:9:9:9:98787878765656565212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%"!"!"!"!        - - - - POPOPOPONMNMNMNMJIJIJIJIHGHGHGHGFEFEFEFEBABABABA@?@?@?@?<;;;;;;<:9:9:9:98787878765434343212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%"!"!"!"!        - - - - POPOPOPONMNMNMNMJIJIJIJIHGHGHGHGFEFEFEFEBABABABA@?@?@?@?;<;<;<;<:9:9:9:98787878743434343212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%"!"!"!"!        - - - - POPOPOPONMNMNMNMJIJIJIJIHGHGHGHGFEFEFEFEBABABABA@?@?@?@?;<;<;<;<:9:9:9:98787878743434343212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%"!"!"!"!        - - - - POPOPOPONMLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEBABABABA@?@?@?@?;<;<;<;<:9:9:9:98787878743434343212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%"!"!"!"!        - - - - POPOPOPOLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEBABABABA@?@?@?@?;<;<;<;<:9:9:9:98787878743434343212121210/0/0/0/.-,+,+,+*)*)*)*)('('('('&%&%&%&%"!"!"!"!       - - - - ||{{zzyy55667788 >=<;;::9ppqqrrssAA@@??>>``aabbcc - - QQPPOONNPPQQRRSS WWVVUUTTkkllmmnn$$%%&&''xxwwvvuu99::;;<< - - 98877665ttuuvvww==<<;;::ddeeffgg MMLLKKJJTTUUVVWWSSRRQQPPooppqqrr(())**++ttssrrqq==>>??@@ - - 54433221xxyyzz{{ !!""##99887766hhiijjkkIIHHGGFFXXYYZZ[[OONNMMLLssyyzz{{,,--..//ppoonnmmAABBCCDD 100//..-||||{{zz$$%%&&''55443322llmmnnooEEDDCCBB\\]]^^__KKJJIIHH||||{{zz00112233llkkjjiiEEFFGGHH-,,++**)yyxxwwvv(())**++1100//..ppqqrrssAA@@??>>``aabbcc - - GGFFEEDDyyxwvuts44556677hhggffeeIIJJKKLL)((''&&%uuttssrr,,--..//--,,++**ttuuvvww==<<;;::ddeeffgg CCBBAA;;srrqqppo8899::;;ddccbbaaMMNNOOPP%$#"! qqppoonn00112233))((''&&xxyyzz{{ !!""##99887766hhiijjkk::998877onnmmllk<<==>>??``__^^]]QQRRSSTT%%mmllkkjj44556677%%$$##""||||{{zz$$%%&&''55443322llmmnnoo66554433kjjiihhg@@AABBCC\\[[ZZYYUUVVWWXX&&''(())iihhggff8899::;;!! yyxxwwvv(())**++1100//..ppqqrrss221100//gffeeddcDDEEFFGGXXWWVVUUYYZZ[[\\**++,,--eeddccbb<<==>>??uuttssrr,,--..//--,,++**ttuuvvww..--,,++cbbaa``_HHIIJJKKTTSSRRQQ]]^^__``..//0011aa``__^^@@AABBCCqqppoonn00112233))((''&&xxyyzz{{ !!""##**))((''_^^]]\[ZLLMMNNOOPPOONNMMaabbccdd22334455 ]]\\[[ZZDDEEFFGGmmllkkjj44556677%%$$##""||||{{zz$$%%&&''&&%%YXWWVVUUPPQQRRSSLLKKJJIIeeffgghh66778899 - - YYXXWWVVHHIIJJKKiihhggff8899::;;!! yyxxwwvv(())**++TTSSRRQQTTUUVVWW55443322HHGGFFEEiijjkkll::;;AABBUUTTSSRRLLMMNNOO - -eeddccbb<<==>>??uuttssrr,,--..//PPOONNMMXXYYZZ[[1100//..DDCCBBAAmmnnooppCCDDEEFF - - QQPPOONNPPQQRRSS aa``__^^@@AABBCCqqppoonn00112233LLKKJJII\\]]^^__--,,++**@@??>>==qqrrssttGGHHIIJJ MMLLKKJJTTUUVVWW]]\\[[ZZDDEEFFGGmmllkkjj44556677HHGGFFEE``aabbcc))((''&&<<;;::99uuvvwwxxKKLLMMNNIIHHGGFFXXYYZZ[[YYXXWWVVHHIIJJKKiihhggff8899::;; - -DDCCBBAAddeeffgg%%$$##""88776655yyzz{{||OOPPQQRREEDDCCBB\\]]^^__UUTTSSRRLLMMNNOO - -eeddccbb<<==>>?? @?>=<;;:hhiijjkk!! 44332211||{{zzyySSTTUUVVAA@@??>>``aabbcc - - QQPPOONNPPQQRRSS aa``__^^@@AABBCC:9988776llmmnnoo00//..--ssrrqqppWW]]^^__==<<;;::ddeeffgg MMLLKKJJTTUUVVWW]]\\[[ZZDDEEFFGG - - 65544332ppqqrrss,,++**))oonnmmll``aabbcc !!""##99887766hhiijjkkIIHHGGFFXXYYZZ[[YYXXWWVVHHIIJJKK 21100//.ttuuvvww((''&&%%kkjjiihhddeeffgg$$%%&&''55443322llmmnnooEEDDCCBB\\]]^^__UUTTSSRRLLMMNNOO.--,,++*xxyyzz{{$$##""!!ggffeeddhhiijjkk(())**++1100//..ppqqrrssAA@@??>>``aabbcc - - QQPPOONNPPQQRRSS*))((''&||||{{zz - - ccbbaa``llmmnnoo,,--..//--,,++**ttuuvvww==<<;;::ddeeffgg MMLLKKJJTTUUVVWW&%%$#"! yyxxwwvv __^^]]WWppqqrrss00112233))((''&&xxyyzz{{ !!""##99887766hhiijjkkIIHHGGFFXXYYZZ[[uuttssrrVVUUTTSSyyzz{{||44556677%%$$##""||||{{zz$$%%&&''55443322llmmnnooEEDDCCBB\\]]^^__%%&&''((qqppoonnRRQQPPOO||{{zzyy8899::;;!! yyxxwwvv(())**++1100//..ppqqrrssAA@@??>>``aabbcc))**++,,mmllkkjj NNMMLLKKxwvutssr<<==>>??uuttssrr,,--..//--,,++**ttuuvvww==<<;;::ddeeffgg--..//00iihhggff - - - - JJIIHHGGrqqppoon@@AABBCCqqppoonn00112233))((''&&xxyyzz{{ !!""##99887766hhiijjkk11223344 eeddccbb  - - FFEEDDCCnmmllkkjDDEEFFGGmmllkkjj44556677%%$$##""||||{{zz$$%%&&''55443322llmmnnoo55667788 - - aa``__^^ BBAA;;::jiihhggfHHIIJJKKiihhggff8899::;;!! yyxxwwvv(())**++1100//..ppqqrrss99::;;AA]]\\[[ZZ99887766feeddccbLLMMNNOO - -eeddccbb<<==>>??uuttssrr,,--..//--,,++**ttuuvvwwBBCCDDEEYYXXWWVV55443322baa``__^PPQQRRSS aa``__^^@@AABBCCqqppoonn00112233))((''&&xxyyzz{{FFGGHHIIUUTTSSRR1100//..^]]\[ZYXTTUUVVWW]]\\[[ZZDDEEFFGGmmllkkjj44556677%%$$##""||||{{zzJJKKLLMM - - QQPPOONN !!""## --,,++**WWVVUUTTXXYYZZ[[YYXXWWVVHHIIJJKKiihhggff8899::;;!! yyssrrqqNNOOPPQQ MMLLKKJJ$$%%&&''!!""##$$))((''&&SSRRQQPP\\]]^^__UUTTSSRRLLMMNNOO - -eeddccbb<<==>>??ppoonnmmRRSSTTUUIIHHGGFF(())**++%%&&''((%%OONNMMLL``aabbcc - - QQPPOONNPPQQRRSS aa``__^^@@AABBCCllkkjjiiVVWW]]^^EEDDCCBB,,--..//))**++,,KKJJIIHHddeeffgg MMLLKKJJTTUUVVWW]]\\[[ZZDDEEFFGGhhggffee__``aabbAA@@??>>00112233--..//00GGFFEEDDhhiijjkkIIHHGGFFXXYYZZ[[YYXXWWVVHHIIJJKKddccbbaaccddeeff==<<;;::4455667711223344CCBBAA@?llmmnnooEEDDCCBB\\]]^^__UUTTSSRRLLMMNNOO - -``__^^]]gghhiijj !!""##998877668899::;;<<==>>??uuttssrr,,--..//--,,++**ttuuvvww..--,,++cbbaa``_HHIIJJKKiihhggff8899::;;!! yyxxwwvv(())**++1100//..ppqqrrss99::;;AA]]\\[[ZZDDEEFFGGmmllkkjj44556677%%$$##""||||{{zz$$%%&&''AA@@??>>@@AABBCCqqppoonn00112233))((''&&xxyyzz{{ !!""##**))((''_^^]]\[ZLLMMNNOO - -eeddccbb<<==>>??uuttssrr,,--..//--,,++**ttuuvvwwBBCCDDEEYYXXWWVVHHIIJJKKiihhggff8899::;;!! yyxxwwvv(())**++==<<;;::DDEEFFGGmmllkkjj44556677%%$$##""||||{{zz$$%%&&''&&%%YXWWVVUUPPQQRRSS aa``__^^@@AABBCCqqppoonn00112233))((''&&xxyyzz{{FFGGHHIIUUTTSSRRLLMMNNOO - -eeddccbb<<==>>??uuttssrr,,--..//99887766HHIIJJKKiihhggff8899::;;!! yyxxwwvv(())**++TTSSRRQQTTUUVVWW]]\\[[ZZDDEEFFGGmmllkkjj44556677%%$$##""||||{{zzJJKKLLMM - - QQPPOONNPPQQRRSS aa``__^^@@AABBCCqqppoonn0011223355443322LLMMNNOO - -eeddccbb<<==>>??uuttssrr,,--..//PPOONNMMXXYYZZ[[YYXXWWVVHHIIJJKKiihhggff8899::;;!! yyssrrqqNNOOPPQQ MMLLKKJJTTUUVVWW]]\\[[ZZDDEEFFGGmmllkkjj44556677 1100//..PPQQRRSS aa``__^^@@AABBCCqqppoonn00112233LLKKJJII\\]]^^__UUTTSSRRLLMMNNOO - -eeddccbb<<==>>??ppoonnmmRRSSTTUUIIHHGGFFXXYYZZ[[YYXXWWVVHHIIJJKKiihhggff8899::;; - - - ---,,++**TTUUVVWW]]\\[[ZZDDEEFFGGmmllkkjj44556677HHGGFFEE``aabbcc - - QQPPOONNPPQQRRSS aa``__^^@@AABBCCllkkjjiiVVWW]]^^EEDDCCBB\\]]^^__UUTTSSRRLLMMNNOO - -eeddccbb<<==>>?? ))((''&&XXYYZZ[[YYXXWWVVHHIIJJKKiihhggff8899::;; - -DDCCBBAAddeeffgg MMLLKKJJTTUUVVWW]]\\[[ZZDDEEFFGGhhggffee__``aabbAA@@??>>``aabbcc - - QQPPOONNPPQQRRSS aa``__^^@@AABBCC%%$$##""\\]]^^__UUTTSSRRLLMMNNOO - -eeddccbb<<==>>?? @?>=<;;:hhiijjkkIIHHGGFFXXYYZZ[[YYXXWWVVHHIIJJKKddccbbaaccddeeff==<<;;::ddeeffgg MMLLKKJJTTUUVVWW]]\\[[ZZDDEEFFGG!! ``aabbcc - - QQPPOONNPPQQRRSS aa``__^^@@AABBCC:9988776llmmnnooEEDDCCBB\\]]^^__UUTTSSRRLLMMNNOO - -``__^^]]gghhiijj !!""##99887766hhiijjkkIIHHGGFFXXYYZZ[[YYXXWWVVHHIIJJKKddeeffgg MMLLKKJJTTUUVVWW]]\\[[ZZDDEEFFGG - - 65544332ppqqrrssAA@@??>>``aabbcc - - QQPPOONNPPQQRRSS WWVVUUTTkkllmmnn$$%%&&''55443322llmmnnooEEDDCCBB\\]]^^__UUTTSSRRLLMMNNOOhhiijjkkIIHHGGFFXXYYZZ[[YYXXWWVVHHIIJJKK 21100//.ttuuvvww==<<;;::ddeeffgg MMLLKKJJTTUUVVWWSSRRQQPPooppqqrr(())**++1100//..ppqqrrssAA@@??>>``aabbcc - - QQPPOONNPPQQRRSS%%&&''llmmnnooEEDDCCBB\\]]^^__UUTTSSRRLLMMNNOO.--,,++*xxyyzz{{ !!""##99887766hhiijjkkIIHHGGFFXXYYZZ[[OONNMMLLssyyzz{{,,--..//--,,++**ttuuvvww==<<;;::ddeeffgg MMLLKKJJTTUUVVWW(())**++ppqqrrssAA@@??>>``aabbcc - - QQPPOONNPPQQRRSS*))((''&||||{{zz$$%%&&''55443322llmmnnooEEDDCCBB\\]]^^__KKJJIIHH||||{{zz00112233))((''&&xxyyzz{{ !!""##99887766hhiijjkkIIHHGGFFXXYYZZ[[,,--..// - -ttuuvvww==<<;;::ddeeffgg MMLLKKJJTTUUVVWW&%%$#"! yyxxwwvv(())**++1100//..ppqqrrssAA@@??>>``aabbcc - - GGFFEEDDyyxwvuts44556677%%$$##""||||{{zz$$%%&&''55443322llmmnnooEEDDCCBB\\]]^^__00112233 - - xxyyzz{{ !!""##99887766hhiijjkkIIHHGGFFXXYYZZ[[uuttssrr,,--..//--,,++**ttuuvvww==<<;;::ddeeffgg CCBBAA;;srrqqppo8899::;;!! yyxxwwvv(())**++1100//..ppqqrrssAA@@??>>``aabbcc44556677 ||||{{zz$$%%&&''55443322llmmnnooEEDDCCBB\\]]^^__%%&&''((qqppoonn00112233))((''&&xxyyzz{{ !!""##99887766hhiijjkk::998877onnmmllk<<==>>??uuttssrr,,--..//--,,++**ttuuvvww==<<;;::ddeeffgg8899::;;yyxxwwvv(())**++1100//..ppqqrrssAA@@??>>``aabbcc))**++,,mmllkkjj44556677%%$$##""||||{{zz$$%%&&''55443322llmmnnoo66554433kjjiihhg@@AABBCCqqppoonn00112233))((''&&xxyyzz{{ !!""##99887766hhiijjkkAABBCCDDuuttssrr,,--..//--,,++**ttuuvvww==<<;;::ddeeffgg--..//00iihhggff8899::;;!! yyxxwwvv(())**++1100//..ppqqrrss221100//gffeeddcDDEEFFGGmmllkkjj44556677%%$$##""||||{{zz$$%%&&''55443322llmmnnooEEFFGGHHqqppoonn00112233))((''&&xxyyzz{{ !!""##99887766hhiijjkk11223344 eeddccbb<<==>>??uuttssrr,,--..//--,,++**ttuuvvww..--,,++cbbaa``_HHIIJJKKiihhggff8899::;;!! yyxxwwvv(())**++1100//..ppqqrrssIIJJKKLLmmllkkjj44556677%%$$##""||||{{zz$$%%&&''55443322llmmnnoo55667788 - - aa``__^^@@AABBCCqqppoonn00112233))((''&&xxyyzz{{ !!""##**))((''_^^]]\[ZLLMMNNOO - -eeddccbb<<==>>??uuttssrr,,--..//--,,++**ttuuvvwwMMNNOOPP !!""##iihhggff8899::;;!! yyxxwwvv(())**++1100//..ppqqrrss99::;;AA]]\\[[ZZDDEEFFGGmmllkkjj44556677%%$$##""||||{{zz$$%%&&''&&%%YXWWVVUUPPQQRRSS aa``__^^@@AABBCCqqppoonn00112233))((''&&xxyyzz{{QQRRSSTT$$%%&&''eeddccbb<<==>>??uuttssrr,,--..//--,,++**ttuuvvwwBBCCDDEEYYXXWWVVHHIIJJKKiihhggff8899::;;!! yyxxwwvv(())**++TTSSRRQQTTUUVVWW]]\\[[ZZDDEEFFGGmmllkkjj44556677%%$$##""||ttssrrUUVVWW]](())**++aa``__^^@@AABBCCqqppoonn00112233))((''&&xxyyzz{{FFGGHHIIUUTTSSRRLLMMNNOO - -eeddccbb<<==>>??uuttssrr,,--..//PPOONNMMXXYYZZ[[YYXXWWVVHHIIJJKKiihhggff8899::;;!! qqppoonn^^__``aa,,--..//]]\\[[ZZDDEEFFGGmmllkkjj44556677%%$$##""||||{{zzJJKKLLMM - - QQPPOONNPPQQRRSS aa``__^^@@AABBCCqqppoonn00112233LLKKJJII\\]]^^__UUTTSSRRLLMMNNOO - -eeddccbb<<==>>??mmllkkjjbbccddee00112233YYXXWWVVHHIIJJKKiihhggff8899::;;!! yyssrrqqNNOOPPQQ MMLLKKJJTTUUVVWW]]\\[[ZZDDEEFFGGmmllkkjj44556677HHGGFFEE``aabbcc - - QQPPOONNPPQQRRSS aa``__^^@@AABBCCiihhggffffgghhii44556677UUTTSSRRLLMMNNOO - -eeddccbb<<==>>??ppoonnmmRRSSTTUUIIHHGGFFXXYYZZ[[YYXXWWVVHHIIJJKKiihhggff8899::;; - -DDCCBBAAddeeffgg MMLLKKJJTTUUVVWW]]\\[[ZZDDEEFFGGeeddccbbjjkkllmm8899::;;QQPPOONNPPQQRRSS aa``__^^@@AABBCCllkkjjiiVVWW]]^^EEDDCCBB\\]]^^__UUTTSSRRLLMMNNOO - -eeddccbb<<==>>?? @?>=<;;:hhiijjkkIIHHGGFFXXYYZZ[[YYXXWWVVHHIIJJKKaa``__^^nnooppqq<<==>>??MMLLKKJJTTUUVVWW]]\\[[ZZDDEEFFGGhhggffee__``aabbAA@@??>>``aabbcc - - QQPPOONNPPQQRRSS aa``__^^@@AABBCC:9988776llmmnnooEEDDCCBB\\]]^^__UUTTSSRRLLMMNNOO - -]]WWVVUUqqppoonn@@AABBCCIIHHGGFFXXYYZZ[[YYXXWWVVHHIIJJKKddccbbaaccddeeff==<<;;::ddeeffgg MMLLKKJJTTUUVVWW]]\\[[ZZDDEEFFGG - - 65544332ppqqrrssAA@@??>>``aabbcc - - QQPPOONNPPQQRRSS TTSSRRQQmmllkkjjDDEEFFGGEEDDCCBB\\]]^^__UUTTSSRRLLMMNNOO - -``__^^]]gghhiijj !!""##99887766hhiijjkkIIHHGGFFXXYYZZ[[YYXXWWVVHHIIJJKK 21100//.ttuuvvww==<<;;::ddeeffgg MMLLKKJJTTUUVVWWPPOONNMMiihhggffHHIIJJKKAA@@??>>``aabbcc - - QQPPOONNPPQQRRSS WWVVUUTTkkllmmnn$$%%&&''55443322llmmnnooEEDDCCBB\\]]^^__UUTTSSRRLLMMNNOO.--,,++*xxyyzz{{ !!""##99887766hhiijjkkIIHHGGFFXXYYZZ[[LLKKJJIIeeddccbbLLMMNNOO==<<;;::ddeeffgg MMLLKKJJTTUUVVWWSSRRQQPPooppqqrr(())**++1100//..ppqqrrssAA@@??>>``aabbcc - - QQPPOONNPPQQRRSS*))((''&||||{{zz$$%%&&''55443322llmmnnooEEDDCCBB\\]]^^__HHGGFFEEaa``__^^PPQQRRSS99887766hhiijjkkIIHHGGFFXXYYZZ[[OONNMMLLssyyzz{{,,--..//--,,++**ttuuvvww==<<;;::ddeeffgg MMLLKKJJTTUUVVWW&%%$#"! yyxxwwvv(())**++1100//..ppqqrrssAA@@??>>``aabbcc - - DDCCBBAA]]\\[[ZZTTUUVVWW55443322llmmnnooEEDDCCBB\\]]^^__KKJJIIHH||||{{zz00112233))((''&&xxyyzz{{ !!""##99887766hhiijjkkIIHHGGFFXXYYZZ[[uuttssrr,,--..//--,,++**ttuuvvww==<<;;::ddeeffgg ;;::9988YYXXWWVVXXYYZZ[[1100//..ppqqrrssAA@@??>>``aabbcc - - GGFFEEDDyyxwvuts44556677%%$$##""||||{{zz$$%%&&''55443322llmmnnooEEDDCCBB\\]]^^__%%&&''((qqppoonn00112233))((''&&xxyyzz{{ !!""##99887766hhiijjkk77665544UUTTSSRR\\]]^^__--,,++**ttuuvvww==<<;;::ddeeffgg CCBBAA;;srrqqppo8899::;;!! yyxxwwvv(())**++1100//..ppqqrrssAA@@??>>``aabbcc))**++,,mmllkkjj44556677%%$$##""||||{{zz$$%%&&''55443322llmmnnoo33221100QQPPOONN``aabbcc))((''&&xxyyzz{{ !!""##99887766hhiijjkk::998877onnmmllk<<==>>??uuttssrr,,--..//--,,++**ttuuvvww==<<;;::ddeeffgg--..//00iihhggff8899::;;!! yyxxwwvv(())**++1100//..ppqqrrss//..--,,MMLLKKJJddeeffgg%%$$##""||||{{zz$$%%&&''55443322llmmnnoo66554433kjjiihhg@@AABBCCqqppoonn00112233))((''&&xxyyzz{{ !!""##99887766hhiijjkk11223344 eeddccbb<<==>>??uuttssrr,,--..//--,,++**ttuuvvww++**))((IIHHGGFFhhiijjkk!! yyxxwwvv(())**++1100//..ppqqrrss221100//gffeeddcDDEEFFGGmmllkkjj44556677%%$$##""||||{{zz$$%%&&''55443322llmmnnoo55667788 - - aa``__^^@@AABBCCqqppoonn00112233))((''&&xxyyzz{{ !!""##''&&%%EEDDCCBBllmmnnooppqqfpvbHAZJltJQr˂pJtArdrXQJ`tAJlnvp|ZdQ`f~Zp˂|dtA`JXQrdQbtrXQJ`nXv`p˂rbdQZ|ZHAb|ZdQےbHAtbdQZfH~btlHfpvrXQJ`Jlt˂pZlJtArےbHAf~HXQJ`ے`vXnے`JXbtlZp˂|drf`vXJtArdnXvےbHAbnvHAbےdtlZp˂fpvbHAZvpfQr˂pJfpvrXQJ`tAJlnvp|ZdQ`f~Zp˂pfH`JXQrJfpvrXQJ`nXv`p˂rH~fZHAbnXvےbHAtbdQZfH~btlHfpvrXQJ`f`vX˂pZnvfےbHAf~HXQJ`ے`vXnے`JX`f~Zp˂|drf`vXJtArdnXvےbHAnvpHAb~HfpZp˂fpvbHAZvpfQrZHAHfpvrXQJ`tAJlnvp|ZdQ`f~Zp˂fH~˂pZHAvnXrXQJ`nXv`p˂rH~bے`nXvےbHAtbdQZfے`JbtlHfpvrXQJ`f`vXbے`v`fےbHAf~HXQJ`ےvpfHJXQr`f~Zp˂|drXQr˂JtArdnXvےbHAnvpJXQr~HfpZp˂fpvbHAZ~f`˂pZHAHfpvrXQJ`tAJlpZHAb|ZdQ`f~Zp˂fH~˂pZHAvnXrXQJ`nXv`p˂rvXnbے`nXvےbHAtbdQZے`JbtlHfpvrXQJ`f`vXbے`v`f~ےbHAf~HXQJ`ےvpfHJXQr`f~Zp˂|drXQr˂JtArdnXvےJlnvpJXQHAbfpvZp˂fpvbHAZ~f`˂pZHAHfpvrXQJ`tAJlpZHAb|ZdQ`f~tbdQZfH~ے`JnXv`rXQJ`tAJlnXv`p˂rvXH~bJAdnXvےbHAtbdQZے`JbtlHfpv|drf`vXXQr˂f~HےbHAtbdQZf~HXQJ`ےf`v|ZdQ`f~Zp˂|dtAXQr˂JtArdnXvtAJlnvppZHAbfpvZp˂|drfpvbHAZXnvbtlHfpvrXQJ`JltpZHAb|ZdQ`f~tbdQZfH~ے`JnXv`rXQJ`tAJlnXv`p˂rpfH~JtArdnXvےbHAbnvے`JbtlHfpv|drf`vXXQr˂f~HےbHAtbdQZf~HXQJ`ےf`v|ZdQ`f~Zp˂pfHXQr˂JtArdnXvtAJlnvpp`JXQfvnXZp˂|drfpvJltXnvbtlHfpvrXQJ`f`vXpZHAb|ZdQ`fHtbdQZfH~rbtv`frXQJ`tAJlnXv`drtAJp`vXJtArdnXvےbHAnvpے`Jbtlfpv|drf`vXl|ZdQ~HfpےbHAtbdQZf~Hltbnvp|ZdQ`f~Zp˂fH~XQr˂JtArdnrXQJtAJlnvpbtlvnXZp˂|drfpvdQZ|fH~btlHfpvrXQJ`f`vXpZHAb|ZdQ`ےHAtbdQZfH~JtArdv`frXQJ`tAJlnXv`drtAJf`vXJtArdnXvےbHAnvpے`JbtlZp˂|drf`vX|ZdQ~HfpےJltbdQZf~Hltbnvp|ZdQ`f~Zp˂fH~XQr˂JtArdrXQJ`tAJlnvpbtlvnvftbdQZ|dtAfpvdQZ|lfH~btlHfpvrXQJ`f`vXpZHAb|ZdQےbHAtbdQZfH~JtArd~Hf|drJltnXv`tbdQvpfJtArdnXvےJlnvpے`JbtlZp˂|drf`vXtlJpvntAJlbnvf~HZ|dے`JXQ|ZdQ`f~tbdQZfH~XQr˂JtArdrXQJ`tAJlnvptArdXv`ftbdQZpfHfpvrtAJlrZHAbtlHfpv|drf`vXpZHAb|ZdQےbHAtbdQZfH~|ZdQb~Hf|drf`vXnXv`tbdQbے`JtArdnXvtAJlnvpے`JbtlZp˂|drf`vXtlJpvntAJlnvpp˂rZ|dJXQr|ZdQ`f~tbdQZfH~XQr˂JfpvrXQJ`tAJlnvptArdXv`ftbdQZfH~XQJ`ےrtAdQZpZHAbtlHfpv|drf`vXpZHAbnXvےbHAtbdQZfH~|ZdQtAfpv|drf`vXbHAZ|drbے`JtArdnXvtAJlnvpے`J`f~Zp˂|drf`vXrd|nrXQJtAJlnvpp˂rtAJlJXQr|ZdQ`fHtbdQZfH~XQr˂HfpvrXQJ`tAJlnvpZdQbt`ےHAtbdQZfH~XQJ`ےtbdQZpZAbbtlfpv|drf`vXpZHAbnXvےbHAtbdQZfے`JlJtAZp˂|drf`vXbHAZ|dr`JXQrJtArdnrXQJtAJlnvpے`J`f~Zp˂|drXQHAbrd|rXQJ`tAJlnvpp˂rtAJl璀˂pZ|ZdQ`ےHAtbdQZfH~XQr˂HfpvrXQJ`tAJlے`JXQZdQbtےbHAtbdQZfH~XQJ`ےtdrtAHAbےbtlZp˂|drf`vXpZHAnXvےbHAtbdQZr˂pl|ZZp˂|drf`vXbHAZJlt`JXQrJtArdrXQJ`tAJlnvpے`JXQ`f~Zp˂|drZHAbdQbtrXQJ`tAJlnvpp˂rbdQZ|˂pZ|ZdQےbHAtbdQZfH~rbtHfpvrXQJ`tAJlے`JXQlJtArےbHAtbdQZfH~XQJ`ےdrtAHAbbtlZp˂|drf`vXlJtAdnXvےbHAtbdQZr˂pd|ZZp˂|drf`vXnvpے`J`f~Zp˂|drf`vXJtArdv`ftbdnvpے`J`f~Zp˂|drXQr˂JtArdnXvےbHA`vXH`JXQ`f~Zp˂|drXQr˂JtArdnXvےJlnvpbے`f۝`vfH~XQr˂HfpvrXQJ`tAJlnvp|ZdQ~HfpQZ|rfH~XQr˂HfpvrXQJ`tAJlpZHAb|ZdQ`f~Zp˂~f`rbtHfpvrXQJ`tAJlpZHAb|ZdQ`f~tbdQZfH~JXQrXnvf`vXpZHAbnXvےbHAtbdQZfے`Jbtlv~AJltf`vXpZHAnXvےbHAtbdQZے`JbtlHfpvrXQJ`vXnlJtAdnXvےbHAtbdQZے`JbtlHfpv|drf`vX˂pZHApfH~nvpے`J`f~Zp˂|drXQr˂JtArdHfpvbdQZ|nvpے`JXQ`f~Zp˂|drXQr˂JtArdnXvےJlvpfH|ZdQ`f~Zp˂|dtAXQr˂JtArdnXvtAJlnvpbے`f۝`vfH~XQr˂HfpvrXQJ`tAJlpZHAb|ZdQnXvdrtAfH~rbtHfpvrXQJ`tAJlpZHAb|ZdQ`f~tdrtA~f`btlHfpvrXQJ`JltpZHAb|ZdQ`f~tbdQZfH~JXQrXnvf`vXpZHAnXvےbHAtbdQZے`Jbtl`f~Jltf`vXlJtAdnXvےbHAtbdQZے`JbtlHfpvJltvXnJtArdnXvےbHAbnvے`JbtlHfpv|drf`vX˂p`ZpfH~nvpے`JXQ`f~Zp˂|drXQr˂JtArdHfpvbdQZ|nvp|ZdQ`f~Zp˂|dtAXQr˂JtArdnXvbdQZ|vp`v|ZdQ`f~Zp˂pfHXQr˂JtArdnXvtAJlnvpQXb㉀ۅf۝`vfH~rbtHfpvrXQJ`tAJlpZHAb|ZdQnXvdrtAfH~btlHfpvrXQJ`JltpZHAb|ZdQ`f~drtAXnvbtlHfpvrXQJ`f`vXpZHAb|ZdQ`fHtbdQZfH~pJAHrXnvf`vXlJtAdnXvےbHAtbdQZے`Jbtl`pvJbdQf`vXJtArdnXvےbHAbnvے`JbtlHfpvJltpfH~JtArdnXvےbHAnvpے`Jbtlfpv|drf`vXˁ`ZpfH~nvp|ZdQ`f~Zp˂|dtAXQr˂JtArdnrXQJZ|dnvp|ZdQ`f~Zp˂pfHXQr˂JtArdnXvbdQZ|f`v|ZdQ`f~Zp˂fH~XQr˂JtArdnrXQJtAJlnvpQXb㉀ۅf۝`vfH~btlHfpvrXQJ`JltpZHAb|ZdQ`p˂rtAJlfH~btlHfpvrXQJ`f`vXpZHAb|ZdQ`fHltbXnvbtlHfpvrXQJ`f`vXpZHAb|ZdQ`ےHAtbdQZfH~pJAHrXnvf`vXJtArdnXvےbHAbnvے`JbtlrXQJ`tbdQf`vXJtArdnXvےbHAnvpے`JbtlfpvdQZ|pfH~JtArdnXvےbHAnvpے`JbtlZp˂|drf`vXۑppfH~nvp|ZdQ`f~Zp˂pfHXQr˂JtArdےbHAZ|dnvp|ZdQ`f~Zp˂fH~XQr˂JtArdnrXQJdrtAJvp|ZdQ`f~Zp˂fH~XQr˂JtArdrXQJ`tAJlnvpJAHr󙐅f۝`vfH~btlHfpvrXQJ`f`vXpZHAb|ZdQZp˂rtAJlfے`JbtlHfpvrXQJ`f`vXpZHAb|ZdQ`ےHAltbfے`JbtlHfpvrXQJ`f`vXpZHAb|ZdQےbHAtbdQZfH~ˁ`ZQXXnvf`vXJtArdnXvےbHAnvpے`JbtlrXQJ`tbQZXQr˂JtArdnXvےbHAnvpے`JbtlZp˂dQZ|XQrZHJtArdnXvےJlnvpے`JbtlZp˂|drf`vXb㉀ۑpp|dnvp|ZdQ`f~Zp˂fH~XQr˂JtArdےbHAdrtAJpZHAb|ZdQ`f~Zp˂fH~XQr˂JtArdrXQJ`drtAdQAbے`|ZdQ`f~tbdQZfH~XQr˂JtArdrXQJ`tAJlnvpJAHrrQtJlfے`JbtlHfpvrXQJ`f`vXpZHAb|ZdQXQJ`ےltbے`JbtlHfpvrXQJ`f`vXpZHAb|ZdQےbHAZ|dJXQrbtlHfpv|drf`vXpZHAb|ZdQےbHAtbdQZfH~ˁ`ZQXtbAdXQr˂JtArdnXvےbHAnvpے`JbtlbHAZdQZ|XQr˂JtArdnXvےJlnvpے`JbtlZp˂rtAJl˂pZHJtArdnXvtAJlnvpے`JbtlZp˂|drf`vXAHr󙐂Z|dpZHAb|ZdQ`f~Zp˂fH~XQr˂JtArdp˂rdrtAJpZHAb|ZdQ`f~tbdQZfH~XQr˂JtArdrXQJ`tbdQAbے`|ZdQ`f~tbdQZfH~XQr˂JfpvrXQJ`tAJlnvp`ZQXbrQtJlے`JbtlHfpvrXQJ`f`vXpZHAb|ZdQXQJ`ےltbے`JbtlHfpv|drf`vXpZHAb|ZdQےbHAZ|dJXQrbtlHfpv|drf`vXpZHAbnXvےbHAtbdQZfH~ۑpJtbAdXQr˂JtArdnXvےJlnvpے`JbtlbHAZdQZ|XQr˂JtArdnXvtAJlnvpے`JbtlZp˂rtAJl˂pZAbJtArdnXvtAJlnvpے`J`f~Zp˂|drf`vXAHr󙐂Z|dpZHAb|ZdQ`f~tbdQZfH~XQr˂JtArdp˂AJltpZHAb|ZdQ`f~tbdQZfH~XQr˂JfpvrXQJ`tdr`JXQ|ZdQ`fHtbdQZfH~XQr˂HfpvrXQJ`tAJlnvp`ZQXbrQtJlے`JbtlHfpv|drf`vXpZHAb|ZdQbHAZpbnvے`JbtlHfpv|drf`vXpZHAbnXvےbHAtAJlr˂pbtlfpv|drf`vXpZHAbnXvےbHAtbdQZfZHAbۑp`tbAdXQr˂JtArdnXvtAJlnvpے`Jbtl˂rXQpfHXQr˂JtArdnXvtAJlnvpے`J`f~Zp˂tbdQZZHAbJtArdnrXQJtAJlnvpے`J`f~Zp˂|drے`JZQXb㉀Z|dpZHAb|ZdQ`f~tbdQZfH~XQr˂JfpvJ`ےf`vXpZHAb|ZdQ`fHtbdQZfH~XQr˂HfpvrXQJ`|drے`JXQ|ZdQ`ےHAtbdQZfH~XQr˂HfpvrXQJ`tAJlXQr˂ۑpJAHrQtJlے`JbtlHfpv|drf`vXpZHAb~HbHAZpnvpے`Jbtlfpv|drf`vXpZHAbnXvےbHAtAJlr˂pbtlZp˂|drf`vXpZHAnXvےbHAtbdQZpZHAbr󙐂ˁ`tbAdXQr˂JtArdnXvtAJlnvpے`Jfpv˂rXQfH~XQr˂JtArdnrXQJtAJlnvpے`J`f~Zp˂tbdQZZHAbJtArdrXQJ`tAJlnvpے`JXQ`f~Zp˂|drے`JZQXb㉀Z|dpZHAb|ZdQ`fHtbdQZfH~XQr˂nXv`J`p˂f`vXpZHAb|ZdQ`ےHAtbdQZfH~XQr˂HfpvrXQJ`|ltJQr|ZdQےbHAtbdQZfH~rbtHfpvrXQJ`tAJlXQr˂ۑpJAHrQtJlے`Jbtlfpv|drf`vXpZHAbf~HrXQJnvpے`JbtlZp˂|drf`vXpZHAnXvےbHAbnvpZHAbtlZp˂|drf`vXlJtAdnXvےbHAtbdQZp`JXQf۝`vtbAdXQr˂JtArdnrXQJtAJlnvpے`Jfpv`ےbfH~XQr˂JtArdrXQJ`tAJlnvpے`JXQ`f~Zp˂p`vXbے`JtArdrXQJ`tAJlnvp|ZdQ`f~Zp˂|dtAr˂pXnvZ|dpZHAb|ZdQ`ےHAtbdQZfH~XQr˂nXv`HAZp˂f`vXpZHAb|ZdQےbHAtbdQZfH~rbtHfpvrXQJ`nvpJXQr|ZdQےbHAtbdQZfH~btlHfpvrXQJ`JltZHAbpfH~rQtJlے`JbtlZp˂|drf`vXpZHApvnrXQJnvpے`JbtlZp˂|drf`vXlJtAdnXvےbHAfH~pZHAbtlZp˂|drf`vXJtArdnXvےbHAbnvے`JXQf۝`vtbAdXQr˂JtArdrXQJ`tAJlnvpے`JXQXv`f`ےbfH~XQr˂JtArdrXQJ`tAJlnvp|ZdQ`f~Zp˂f`vXbے`JfpvrXQJ`tAJlnvp|ZdQ`f~Zp˂pfHr˂pXnvZ|dpZHAb|ZdQےbHAtbdQZfH~rbt璐~HfHAXQJ`f`vXpZHAb|ZdQےbHAtbdQZfH~btlHfpvrXQJ`nvpJXQrZnXvےbHAtbdQZfH~btlHfpvrXQJ`f`vXZHAbpfH~rQtJlے`JbtlZp˂|drf`vXlJtAdpvnےJlnvpے`JbtlZp˂|drf`vXJtArdnXvےbHAfH~HAbے`f~Zp˂|drf`vXJtArdnXvےbHAnvp˂pZf۝`vtbAdXQr˂JtArdrXQJ`tAJlnvp|ZdQXv`ftbQZdfH~XQr˂JfpvrXQJ`tAJlnvp|ZdQ`f~Zp˂vpf`JXQrHfpvrXQJ`tAJlnvp|ZdQ`f~Zp˂fH~HAbےXnvZ|dpZHAb|ZdQےbHAtbdQZfH~btl~HXrtAJlf`vXpZHAbnXvےbHAtbdQZfH~btlHfpvrXQJ`H~f˂pZnXvےbHAtbdQZfے`JbtlHfpvrXQJ`f`vX`JXQrpfH~rQtJlے`JbtlZp˂|drf`vXJtArdv`ftbdnvpے`J`f~Zp˂|drf`vXJtArdnXvےbHA`vXnHAbے`f~Zp˂|drXQr˂JtArdnXvےbHAnvp˂pZf۝`vtbAdXQr˂JfpvrXQJ`tAJlnvp|ZdQ~HfpQZ|dfH~XQr˂HfpvrXQJ`tAJlnvp|ZdQ`f~Zp˂vpf`JXQrHfpvrXQJ`tAJlpZHAb|ZdQ`f~Zp˂fH~HAbےXnvZ|dpZHAbnXvےbHAtbdQZfH~btlvnXrtAJlf`vXpZHAbnXvےbHAtbdQZfے`JbtlHfpvrXQJ`H~f˂pZAnXvےbHAtbdQZے`JbtlHfpvrXQJ`f`vX`JXQHApfH~rQtJltuvwxyz{||{zyxwv------------............................ \ No newline at end of file diff --git a/vendor/endroid/qr-code/assets/data/qrv27_3.dat b/vendor/endroid/qr-code/assets/data/qrv27_3.dat deleted file mode 100755 index 468ef041a..000000000 --- a/vendor/endroid/qr-code/assets/data/qrv27_3.dat +++ /dev/null @@ -1,249 +0,0 @@ -|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvurqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJI|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvurqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJI|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvurqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVURQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJI|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvurqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcba`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVURQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJI|{|{|{|{zyzyzyzyxwxwxwxwtstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdc`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJI|{|{|{|{zyzyzyzyxwxwxwxwssssststrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdc`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWWWTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJI|{|{|{|{zyzyzyzyxwxwxwxwststststrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefedcbababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYWWXWXWXWTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJI|{|{|{|{zyzyzyzyxwxwxwxwststststrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefebabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJI|{|{|{|{zyzyzyzyxwxwxwxwststststrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefebabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHG|{|{|{|{zyzyzyzyxwxwxwxwststststrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfedcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHG|{|{|{|{zyzyzyzyxwxwxwxwststststrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgdcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHG|{|{|{|{zyzyzyzyxwxwxwxwstssssssrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgdcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHG|{|{|{|{zyzyzyzyxwxwxwxwtstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihgfefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHG|{|{|{|{zyzyzyzyxwxwxwxwtstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijifefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHG|{|{|{|{zyzyzyzyvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijifefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[XWWWWWWXVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHG|{|{|{|{zyzyzyzyvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjihghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[WXWXWXWXVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHG|{|{|{|{zyzyzyzyvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkhghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[WXWXWXWXVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHG|{|{|{|{zyzyzyzyvuvuvuvutststsssrqrqrqrqpopopoponmnmnmnmlklklklkhghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[WXWXWXWXVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHG|{|{|{|{zyzyzyzyvuvuvuvussstststrqrqrqrqpopopoponmnmnmnmlkjijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[WXWXWXWXVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHG|{|{|{|{zyzyzyzyvuvuvuvuststststrqrqrqrqpopopoponmnmnmnmjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[WXWXWXWXVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHG|{|{|{|{zyzyzyzyvuvuvuvuststststrqrqrqrqpopopoponmnmnmnmjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[WXWXWWWWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIHGHGHGHGHGHGHG|{|{|{|{zyzyzyzyvuvuvuvuststststrqrqrqrqpopopoponmlklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[WWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKHGHGHGHGHGHGHGHG|{|{|{|{zyzyzyzyvuvuvuvuststststrqrqrqrqpopopopolklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[ZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKHGHGHGHGHGHGHGHG|{|{|{|{zyzyzyzyvuvuvuvuststststrqrqrqrqpopopopolklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKJIJIJIHGHGHGHGHGHGHGHG|{|{|{|{xwxwxwxwvuvuvuvusssssstsrqrqrqrqponmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMJIJIJIJIHGHGHGHGHGHGHGHG|{|{|{|{xwxwxwxwvuvuvuvutstststsrqrqrqrqnmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMJIJIJIJIHGHGHGHGHGFEFEFE|{|{|{|{xwxwxwxwvuvuvuvutstststsrqrqrqrqnmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMLKLKLKJIJIJIJIHGHGHGHGFEFEFEFE|{|{|{|{xwxwxwxwvuvuvuvutstststsrqpopoponmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]ZYZYZYZYWWWWWXWXVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPOLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFE|{|{|{|{xwxwxwxwvuvuvuvutstststspopopoponmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]ZYZYZYZYWXWXWXWXVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPOLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEzyzyzyzyxwxwxwxwvuvuvuvutstststspopopoponmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]ZYZYZYZYWXWXWXWXVUVUVUVUTSTSTSTSRQRQRQRQPONMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEzyzyzyzyxwxwxwxwvuvuvuvutstststspopopoponmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]ZYZYZYZYWXWXWXWXVUVUVUVUTSTSTSTSRQRQRQRQNMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEzyzyzyzyxwxwxwxwvuvuvuvuqqqqqqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]\[\[\[ZYZYZYZYWXWXWXWXVUVUVUVUTSTSTSTSRQRQRQRQNMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEzyzyzyzyxwxwxwxwvuvuvuvurqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_\[\[\[\[ZYZYZYZYWXWXWXWXVUVUVUVUTSTSTSTSRQPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEzyzyzyzyxwxwxwxwvuvuvuvurqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_\[\[\[\[ZYZYZYZYWXWWWWWWVUVUVUVUTSTSTSTSPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCBABABABA@?@?@?@?;<;<;<;<:9:9:9:9878787876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - FEFEFEFEDCDCDCDCBABABABA@?@?@?@?;<;<;<;<:9:9:9:9878787876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#"!"!"!"!       - - - - FEFEFEFEDCDCDCDCBABABABA@?@?@?@?;<;<;<;<:9:9:9:9878787876565656543434343212121210/0/0/0/.-.-.-.-,+*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!       - - - - FEFEFEFEDCDCDCDCBABABABA@?@?@?@?;<;<;<;<:9:9:9:9878787876565656543434343212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!     - - - - FEFEFEFEDCDCDCDCBABABABA@?@?@?@?;<;<;<;<:9:9:9:9878787876565656543434343212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!    - FEFEFEFEDCDCDCDCBABABABA@?@?@?@?;<;<;;;;:9:9:9:9878787876565656543434343212121210/0/0/0/.-,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!    FEFEFEFEDCDCDCDCBABABABA@?@?@?@?;;<;<;<;:9:9:9:9878787876565656543434343212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!    FEFEFEFEDCDCDCDCBABABABA@?>=>=>=<;<;<;<;:9:9:9:9878787876565656543434343212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!    - - - FEFEFEFEDCDCDCDCBABABABA>=>=>=>=<;<;<;<;:9:9:9:9878787876565656543434343212121210/.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!    - - - - FEFEFEFEDCDCDCDCBABABABA>=>=>=>=<;<;<;<;:9:9:9:987878787656565654343434321212121.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!       - - - - FEFEFEFEDCDCDCDCBABABABA>=>=>=>=<;<;<;<;:9:9:9:987878787656565654343434321212121.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#   - - - - FEFEFEFEDCDCDCDCBABABABA>=>=>=>=<;<;<;<;:9:9:9:9878787876565656543434343210/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#     - - - - FEFEFEFEDCDCDCDCBABABABA>=>=>=>=;;;;;<;<:9:9:9:98787878765656565434343430/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#     - - - - FEFEFEFEDCDCDCDCBABABABA>=>=>=>=;<;<;<;<:9:9:9:98787878765656565434343430/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#       - - - - FEFEFEFEDCDCDCDCBABABABA>=>=>=>=;<;<;<;<:9:9:9:98787878765656565432121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#        - - - - FEFEFEFEDCDCDCDCBABABABA>=>=>=>=;<;<;<;<:9:9:9:98787878765656565212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#        - - - - FEFEFEFEDCDCDCDCBA@?@?@?>=>=>=>=;<;<;<;<:9:9:9:98787878765656565212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#      - - - - FEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=;<;<;<;<:9:9:9:98787878765434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#       - - - - FEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=;<;;;;;;:9:9:9:98787878743434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#"!"!"!        - - - - FEFEFEFEDCBABABA@?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:98787878743434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%"!"!"!"!        - - - - FEFEFEFEBABABABA@?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:98765656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%"!"!"!"!        - - - - FEFEFEFEBABABABA@?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:96565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%"!"!"!"!        - - - - FEDCDCDCBABABABA@?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:96565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%"!"!"!"!        - - - - DCDCDCDCBABABABA@?@?@?@?>=>=>=>=<;<;<;<;:98787876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%"!"!"!"!      - - - - DCDCDCDCBABABABA@?@?@?@?>=>=>=>=<;<;<;;;878787876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%"!"!"!"!        - - - - DCDCDCDCBABABABA@?@?@?@?>=>=>=>=;;<;<;<;878787876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%"!"!"!"!        - - - - DCDCDCDCBABABABA@?@?@?@?>=>=>=>=<;:9:9:9878787876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%"!"!"!"!        - - - - DCDCDCDCBABABABA@?@?@?@?>=>=>=>=:9:9:9:9878787876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%$#$#$#"!"!"!"!        - - - - DCDCDCDCBABABABA@?@?@?@?>=>=>=>=:9:9:9:9878787876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!        - - - - DCDCDCDCBABABABA@?@?@?@?>=>=>=>=:9:9:9:9878787876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!     - - - - DCDCDCDCBABABABA@?@?@?@?>=>=>=>=:9:9:9:9878787876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('&%&%&%$#$#$#$#"!"!"!"!        - - - - DCDCDCDCBABABABA@?@?@?@?>=>=>=>=:9:9:9:9878787876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"!        - - - - DCDCDCDCBABABABA@?@?@?@?>=<;<;<;:9:9:9:9878787876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"!        - - - - DCDCDCDCBABABABA@?@?@?@?<;;;;;;<:9:9:9:9878787876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - ||{{zzyy JJIIHHGGhhiijjkkaa``__^^(())**++IIHHGGFF@@AABBCC1100//..XXYYZZ[[ppqqrrssllkkjjii99::;;AAllmmnnoouuttssrr]]\\[[ZZ,,--..//xxwwvvuu!!""##$$FFEEDDCCllmmnnoo]]\\[[ZZ,,--..//EEDDCCBBDDEEFFGG--,,++**\\]]^^__ttuuvvwwhhggffeeBBCCDDEEppqqrrssqqppoonnYYXXWWVV00112233ttssrrqq%%&&''((BBAA;;::ppqqrrssYYXXWWVV00112233AA@@??>>HHIIJJKK))((''&&``aabbccxxyyzz{{ - - ddccbbaaFFGGHHIIttuuvvwwmmllkkjjUUTTSSRR44556677ppoonnmm))**++,,99887766yyzz{{||UUTTSSRR44556677==<<;;::LLMMNNOO%%$$##""ddeeffgg - -||||{{zz ``__^^]]JJKKLLMMxxyyzz{{ - - iihhggff !!""##QQPPOONN8899::;;llkkjjii--..//0055443322||{{zzyy !!""##QQPPOONN8899::;;99887766PPQQRRSS!! hhiijjkk yyxxwwvvWWVVUUTTNNOOPPQQ ||||{{zz eeddccbb$$%%&&''MMLLKKJJ<<==>>??hhggffee112233441100//..xwvutssr$$%%&&''MMLLKKJJ<<==>>??55443322TTUUVVWWllmmnnoouuttssrrSSRRQQPPRRSSTTUU - - yyxxwwvvaa``__^^(())**++IIHHGGFF@@AABBCCddccbbaa55667788--,,++**rqqppoon(())**++IIHHGGFF@@AABBCC1100//..XXYYZZ[[ppqqrrssqqppoonnOONNMMLLVVWW]]^^uuttssrr]]\\[[ZZ,,--..//EEDDCCBBDDEEFFGG``__^^]]99::;;<<))((''&&nmmllkkj,,--..//EEDDCCBBDDEEFFGG--,,++**\\]]^^__ttuuvvwwmmllkkjjKKJJIIHH__``aabbqqppoonnYYXXWWVV00112233AA@@??>>HHIIJJKK\\[[ZZYY==>>??@@%%jiihhggf00112233AA@@??>>HHIIJJKK))((''&&``aabbccxxyyzz{{ - - iihhggff !!""##GGFFEEDDccddeeffmmllkkjjUUTTSSRR44556677==<<;;::LLMMNNOOEEDDCCBBXXWWVVUUAABBCCDDfeeddccb44556677==<<;;::LLMMNNOO%%$$##""ddeeffgg - -||||{{zz eeddccbb$$%%&&''CCBBAA;;gghhiijj - - iihhggff !!""##QQPPOONN8899::;;99887766PPQQRRSSAA@@??>>TTSSRRQQEEFFGGHHbaa``__^8899::;;99887766PPQQRRSS!! hhiijjkk yyxxwwvvaa``__^^(())**++::998877kkllmmnn eeddccbb$$%%&&''MMLLKKJJ<<==>>??55443322TTUUVVWW==<<;;::PPOONNMMIIJJKKLL^]]\[ZYX<<==>>??55443322TTUUVVWWllmmnnoouuttssrr]]\\[[ZZ,,--..//66554433ooppqqrraa``__^^(())**++IIHHGGFF@@AABBCC1100//..XXYYZZ[[99887766LLKKJJIIMMNNOOPP WWVVUUTT@@AABBCC1100//..XXYYZZ[[ppqqrrssqqppoonnYYXXWWVV00112233221100//ssyyzz{{]]\\[[ZZ,,--..//EEDDCCBBDDEEFFGG--,,++**\\]]^^__55443322HHGGFFEEQQRRSSTT - - SSRRQQPPDDEEFFGG--,,++**\\]]^^__ttuuvvwwmmllkkjjUUTTSSRR44556677..--,,++||||{{zzYYXXWWVV00112233AA@@??>>HHIIJJKK))((''&&``aabbcc1100//..DDCCBBAAUUVVWWXX - - OONNMMLLHHIIJJKK))((''&&``aabbccxxyyzz{{ - - iihhggff !!""##QQPPOONN8899::;;**))((''yyxwvutsUUTTSSRR44556677==<<;;::LLMMNNOO%%$$##""ddeeffgg--,,++**@@??>>==YYZZ[[\\ KKJJIIHHLLMMNNOO%%$$##""ddeeffgg - -||||{{zz eeddccbb$$%%&&''MMLLKKJJ<<==>>??&&%%srrqqppo !!""##QQPPOONN8899::;;99887766PPQQRRSS!! hhiijjkk))((''&&<<;;::99]]^^__``GGFFEEDDPPQQRRSS!! hhiijjkk yyxxwwvvaa``__^^(())**++IIHHGGFF@@AABBCConnmmllk$$%%&&''MMLLKKJJ<<==>>??55443322TTUUVVWWllmmnnoo%%$$##""88776655aabbccddCCBBAA@?TTUUVVWWllmmnnoouuttssrr]]\\[[ZZ,,--..//EEDDCCBBDDEEFFGGkjjiihhg(())**++IIHHGGFF@@AABBCC1100//..XXYYZZ[[ppqqrrss!! 44332211eeffgghh>=<;;::9XXYYZZ[[ppqqrrssqqppoonnYYXXWWVV00112233AA@@??>>HHIIJJKKgffeeddc,,--..//EEDDCCBBDDEEFFGG--,,++**\\]]^^__ttuuvvww00//..--iijjkkll%%98877665\\]]^^__ttuuvvwwmmllkkjjUUTTSSRR44556677==<<;;::LLMMNNOOcbbaa``_00112233AA@@??>>HHIIJJKK))((''&&``aabbccxxyyzz{{,,++**))mmnnoopp&&''(())54433221``aabbccxxyyzz{{ - - iihhggff !!""##QQPPOONN8899::;;99887766PPQQRRSS - -_^^]]\[Z44556677==<<;;::LLMMNNOO%%$$##""ddeeffgg - -||||{{zz((''&&%%qqrrsstt**++,,--100//..-ddeeffgg - -||||{{zz eeddccbb$$%%&&''MMLLKKJJ<<==>>??55443322TTUUVVWW YXWWVVUU8899::;;99887766PPQQRRSS!! hhiijjkk yyxxwwvv$$##""!!uuvvwwxx..//0011-,,++**)hhiijjkk yyxxwwvvaa``__^^(())**++IIHHGGFF@@AABBCC1100//..XXYYZZ[[TTSSRRQQ<<==>>??55443322TTUUVVWWllmmnnoouuttssrr - - yyzz{{||22334455)((''&&%llmmnnoouuttssrr]]\\[[ZZ,,--..//EEDDCCBBDDEEFFGG--,,++**\\]]^^__ - - PPOONNMM@@AABBCC1100//..XXYYZZ[[ppqqrrssqqppoonn ||{{zzyy66778899%$#"! ppqqrrssqqppoonnYYXXWWVV00112233AA@@??>>HHIIJJKK))((''&&``aabbcc LLKKJJIIDDEEFFGG--,,++**\\]]^^__ttuuvvwwmmllkkjjssrrqqpp::;;AABBttuuvvwwmmllkkjjUUTTSSRR44556677==<<;;::LLMMNNOO%%$$##""ddeeffggHHGGFFEEHHIIJJKK))((''&&``aabbccxxyyzz{{ - - iihhggffoonnmmllCCDDEEFFxxyyzz{{ - - iihhggff !!""##QQPPOONN8899::;;99887766PPQQRRSS!! hhiijjkkDDCCBBAALLMMNNOO%%$$##""ddeeffgg - -||||{{zz eeddccbb kkjjiihhGGHHIIJJ||||{{zz eeddccbb$$%%&&''MMLLKKJJ<<==>>??55443322TTUUVVWWllmmnnoo@?>=<;;:PPQQRRSS!! hhiijjkk yyxxwwvvaa``__^^ - - - - ggffeeddKKLLMMNNyyxxwwvvaa``__^^(())**++IIHHGGFF@@AABBCC1100//..XXYYZZ[[ppqqrrss:9988776TTUUVVWWllmmnnoouuttssrr]]\\[[ZZ  - - ccbbaa``OOPPQQRR uuttssrr]]\\[[ZZ,,--..//EEDDCCBBDDEEFFGG--,,++**\\]]^^__ttuuvvww%%&&''((65544332XXYYZZ[[ppqqrrssqqppoonnYYXXWWVV __^^]]WWSSTTUUVV - - qqppoonnYYXXWWVV00112233AA@@??>>HHIIJJKK))((''&&``aabbccxxyyzz{{))**++,,21100//.\\]]^^__ttuuvvwwmmllkkjjUUTTSSRRVVUUTTSSWW]]^^__mmllkkjjUUTTSSRR44556677==<<;;::LLMMNNOO%%$$##""ddeeffgg - -||||{{zz--..//00.--,,++*``aabbccxxyyzz{{ - - iihhggff !!""##QQPPOONNRRQQPPOO``aabbcc - - iihhggff !!""##QQPPOONN8899::;;99887766PPQQRRSS!! hhiijjkk yyssrrqq11223344*))((''&ddeeffgg - -||||{{zz eeddccbb$$%%&&''MMLLKKJJNNMMLLKKddeeffgg eeddccbb$$%%&&''MMLLKKJJ<<==>>??55443322TTUUVVWWllmmnnooppoonnmm55667788&%%$#"! hhiijjkk yyxxwwvvaa``__^^(())**++IIHHGGFF !!""##$$%%&&''MMLLKKJJ<<==>>??&&%%srrqqppo !!""##QQPPOONN8899::;;99887766PPQQRRSS!! hhiijjkk yyxxwwvvWWVVUUTTNNOOPPQQ ||||{{zz eeddccbb$$%%&&''MMLLKKJJ<<==>>??55443322TTUUVVWWllmmnnoo(())**++))((''&&(())**++IIHHGGFF@@AABBCConnmmllk$$%%&&''MMLLKKJJ<<==>>??55443322TTUUVVWWllmmnnoouuttssrrSSRRQQPPRRSSTTUU - - yyxxwwvvaa``__^^(())**++IIHHGGFF@@AABBCC1100//..XXYYZZ[[ppqqrrss,,--..//%%$$##"",,--..//EEDDCCBBDDEEFFGGkjjiihhg(())**++IIHHGGFF@@AABBCC1100//..XXYYZZ[[ppqqrrssqqppoonnOONNMMLLVVWW]]^^uuttssrr]]\\[[ZZ,,--..//EEDDCCBBDDEEFFGG--,,++**\\]]^^__ttuuvvww00112233!! 00112233AA@@??>>HHIIJJKKgffeeddc,,--..//EEDDCCBBDDEEFFGG--,,++**\\]]^^__ttuuvvwwmmllkkjjKKJJIIHH__``aabbqqppoonnYYXXWWVV00112233AA@@??>>HHIIJJKK))((''&&``aabbccxxyyzz{{4455667744556677==<<;;::LLMMNNOOcbbaa``_00112233AA@@??>>HHIIJJKK))((''&&``aabbccxxyyzz{{ - - iihhggff !!""##GGFFEEDDccddeeffmmllkkjjUUTTSSRR44556677==<<;;::LLMMNNOO%%$$##""ddeeffgg - -||ttssrr8899::;;8899::;;99887766PPQQRRSS - -_^^]]\[Z44556677==<<;;::LLMMNNOO%%$$##""ddeeffgg - -||||{{zz eeddccbb$$%%&&''CCBBAA;;gghhiijj - - iihhggff !!""##QQPPOONN8899::;;99887766PPQQRRSS!! hhiijjkk qqppoonnAABBCCDD<<==>>??55443322TTUUVVWW YXWWVVUU8899::;;99887766PPQQRRSS!! hhiijjkk yyxxwwvvaa``__^^(())**++::998877kkllmmnn eeddccbb$$%%&&''MMLLKKJJ<<==>>??55443322TTUUVVWWllmmnnoommllkkjjEEFFGGHH@@AABBCC1100//..XXYYZZ[[TTSSRRQQ<<==>>??55443322TTUUVVWWllmmnnoouuttssrr]]\\[[ZZ,,--..//66554433ooppqqrraa``__^^(())**++IIHHGGFF@@AABBCC1100//..XXYYZZ[[ppqqrrssiihhggffIIJJKKLL - -DDEEFFGG--,,++**\\]]^^__ - - PPOONNMM@@AABBCC1100//..XXYYZZ[[ppqqrrssqqppoonnYYXXWWVV00112233221100//ssyyzz{{]]\\[[ZZ,,--..//EEDDCCBBDDEEFFGG--,,++**\\]]^^__ttuuvvwweeddccbbMMNNOOPP - - HHIIJJKK))((''&&``aabbcc LLKKJJIIDDEEFFGG--,,++**\\]]^^__ttuuvvwwmmllkkjjUUTTSSRR44556677..--,,++||||{{zzYYXXWWVV00112233AA@@??>>HHIIJJKK))((''&&``aabbccxxyyzz{{ - - aa``__^^QQRRSSTT LLMMNNOO%%$$##""ddeeffggHHGGFFEEHHIIJJKK))((''&&``aabbccxxyyzz{{ - - iihhggff !!""##QQPPOONN8899::;;**))((''yyxwvutsUUTTSSRR44556677==<<;;::LLMMNNOO%%$$##""ddeeffgg - -||||{{zz ]]WWVVUUUUVVWW]]PPQQRRSS!! hhiijjkkDDCCBBAALLMMNNOO%%$$##""ddeeffgg - -||||{{zz eeddccbb$$%%&&''MMLLKKJJ<<==>>??&&%%srrqqppo !!""##QQPPOONN8899::;;99887766PPQQRRSS!! hhiijjkk yyxxwwvvTTSSRRQQ^^__``aaTTUUVVWWllmmnnoo@?>=<;;:PPQQRRSS!! hhiijjkk yyxxwwvvaa``__^^(())**++IIHHGGFF@@AABBCConnmmllk$$%%&&''MMLLKKJJ<<==>>??55443322TTUUVVWWllmmnnoouuttssrrPPOONNMMbbccddeeXXYYZZ[[ppqqrrss:9988776TTUUVVWWllmmnnoouuttssrr]]\\[[ZZ,,--..//EEDDCCBBDDEEFFGGkjjiihhg(())**++IIHHGGFF@@AABBCC1100//..XXYYZZ[[ppqqrrssqqppoonnLLKKJJIIffgghhii\\]]^^__ttuuvvww%%&&''((65544332XXYYZZ[[ppqqrrssqqppoonnYYXXWWVV00112233AA@@??>>HHIIJJKKgffeeddc,,--..//EEDDCCBBDDEEFFGG--,,++**\\]]^^__ttuuvvwwmmllkkjjHHGGFFEEjjkkllmm !!""##``aabbccxxyyzz{{))**++,,21100//.\\]]^^__ttuuvvwwmmllkkjjUUTTSSRR44556677==<<;;::LLMMNNOOcbbaa``_00112233AA@@??>>HHIIJJKK))((''&&``aabbccxxyyzz{{ - - iihhggff !!""##DDCCBBAAnnooppqq$$%%&&''ddeeffgg - -||||{{zz--..//00.--,,++*``aabbccxxyyzz{{ - - iihhggff !!""##QQPPOONN8899::;;99887766PPQQRRSS - -_^^]]\[Z44556677==<<;;::LLMMNNOO%%$$##""ddeeffgg - -||||{{zz eeddccbb$$%%&&'';;::9988qqppoonn(())**++hhiijjkk yyssrrqq11223344*))((''&ddeeffgg - -||||{{zz eeddccbb$$%%&&''MMLLKKJJ<<==>>??55443322TTUUVVWW YXWWVVUU8899::;;99887766PPQQRRSS!! hhiijjkk yyxxwwvvaa``__^^(())**++77665544mmllkkjj,,--..//llmmnnooppoonnmm55667788&%%$#"! hhiijjkk yyxxwwvvaa``__^^(())**++IIHHGGFF@@AABBCC1100//..XXYYZZ[[TTSSRRQQ<<==>>??55443322TTUUVVWWllmmnnoouuttssrr]]\\[[ZZ,,--..//33221100iihhggff00112233ppqqrrssllkkjjii99::;;AAllmmnnoouuttssrr]]\\[[ZZ,,--..//EEDDCCBBDDEEFFGG--,,++**\\]]^^__ - - PPOONNMM@@AABBCC1100//..XXYYZZ[[ppqqrrssqqppoonnYYXXWWVV00112233//..--,,eeddccbb44556677ttuuvvwwhhggffeeBBCCDDEEppqqrrssqqppoonnYYXXWWVV00112233AA@@??>>HHIIJJKK))((''&&``aabbcc LLKKJJIIDDEEFFGG--,,++**\\]]^^__ttuuvvwwmmllkkjjUUTTSSRR44556677++**))((aa``__^^8899::;;xxyyzz{{ - - ddccbbaaFFGGHHIIttuuvvwwmmllkkjjUUTTSSRR44556677==<<;;::LLMMNNOO%%$$##""ddeeffggHHGGFFEEHHIIJJKK))((''&&``aabbccxxyyzz{{ - - iihhggff !!""##QQPPOONN8899::;;''&&%%]]\\[[ZZ<<==>>??||||{{zz ``__^^]]JJKKLLMMxxyyzz{{ - - iihhggff !!""##QQPPOONN8899::;;99887766PPQQRRSS!! hhiijjkkDDCCBBAALLMMNNOO%%$$##""ddeeffgg - -||||{{zz eeddccbb$$%%&&''MMLLKKJJ<<==>>??YYXXWWVV@@AABBCCyyxxwwvvWWVVUUTTNNOOPPQQ ||||{{zz eeddccbb$$%%&&''MMLLKKJJ<<==>>??55443322TTUUVVWWllmmnnoo@?>=<;;:PPQQRRSS!! hhiijjkk yyxxwwvvaa``__^^(())**++IIHHGGFF@@AABBCCUUTTSSRRDDEEFFGGuuttssrrSSRRQQPPRRSSTTUU - - yyxxwwvvaa``__^^(())**++IIHHGGFF@@AABBCC1100//..XXYYZZ[[ppqqrrss:9988776TTUUVVWWllmmnnoouuttssrr]]\\[[ZZ,,--..//EEDDCCBBDDEEFFGGQQPPOONNHHIIJJKKqqppoonnOONNMMLLVVWW]]^^uuttssrr]]\\[[ZZ,,--..//EEDDCCBBDDEEFFGG--,,++**\\]]^^__ttuuvvww%%&&''((65544332XXYYZZ[[ppqqrrssqqppoonnYYXXWWVV00112233AA@@??>>HHIIJJKKMMLLKKJJLLMMNNOOmmllkkjjKKJJIIHH__``aabbqqppoonnYYXXWWVV00112233AA@@??>>HHIIJJKK))((''&&``aabbccxxyyzz{{))**++,,21100//.\\]]^^__ttuuvvwwmmllkkjjUUTTSSRR44556677==<<;;::LLMMNNOO IIHHGGFFPPQQRRSSiihhggff !!""##GGFFEEDDccddeeffmmllkkjjUUTTSSRR44556677==<<;;::LLMMNNOO%%$$##""ddeeffgg - -||||{{zz--..//00.--,,++*``aabbccxxyyzz{{ - - iihhggff !!""##QQPPOONN8899::;;99887766PPQQRRSS - - - -EEDDCCBBTTUUVVWWeeddccbb$$%%&&''CCBBAA;;gghhiijj - - iihhggff !!""##QQPPOONN8899::;;99887766PPQQRRSS!! hhiijjkk yyssrrqq11223344*))((''&ddeeffgg - -||||{{zz eeddccbb$$%%&&''MMLLKKJJ<<==>>??55443322TTUUVVWW AA@@??>>XXYYZZ[[aa``__^^(())**++::998877kkllmmnn eeddccbb$$%%&&''MMLLKKJJ<<==>>??55443322TTUUVVWWllmmnnooppoonnmm55667788&%%$#"! hhiijjkk yyxxwwvvaa``__^^(())**++IIHHGGFF@@AABBCC1100//..XXYYZZ[[==<<;;::\\]]^^__]]\\[[ZZ,,--..//66554433ooppqqrraa``__^^(())**++IIHHGGFF@@AABBCC1100//..XXYYZZ[[ppqqrrssllkkjjii99::;;AAllmmnnoouuttssrr]]\\[[ZZ,,--..//EEDDCCBBDDEEFFGG--,,++**\\]]^^__99887766``aabbccYYXXWWVV00112233221100//ssyyzz{{]]\\[[ZZ,,--..//EEDDCCBBDDEEFFGG--,,++**\\]]^^__ttuuvvwwhhggffeeBBCCDDEEppqqrrssqqppoonnYYXXWWVV00112233AA@@??>>HHIIJJKK))((''&&``aabbcc55443322ddeeffggUUTTSSRR44556677..--,,++||||{{zzYYXXWWVV00112233AA@@??>>HHIIJJKK))((''&&``aabbccxxyyzz{{ - - ddccbbaaFFGGHHIIttuuvvwwmmllkkjjUUTTSSRR44556677==<<;;::LLMMNNOO%%$$##""ddeeffgg1100//..hhiijjkkQQPPOONN8899::;;**))((''yyxwvutsUUTTSSRR44556677==<<;;::LLMMNNOO%%$$##""ddeeffgg - -||||{{zz ``__^^]]JJKKLLMMxxyyzz{{ - - iihhggff !!""##QQPPOONN8899::;;99887766PPQQRRSS!! hhiijjkk%%&&''--,,++**llmmnnooppqqfpvbHAZtbdQf`vXJtArdnXvےbHAtbdQZfH~XQr˂JtArdnXvےbHAbnvr˂p|ZdQtA~HfrXQJ`JltpZHAb|ZdQ`f~Zp˂nXv`p˂rZ|dnvp|ZdQ`f~Zp˂|drf`vXpZHAb|ZdQ`f~Zp˂pfHZHAbrd|pvnےbHAbnvے`JbtlHfpvrXQJ`f~HXQJ`ےrtAdQZfH~btlHfpvrXQJ`tAJlnvpے`JbtlHfpvrXQJ`f`vXے`JXQZdQbtXv`fZp˂pfHXQr˂JtArdnXvےbHAfpvbHAZ|drvpfJtArdnXvےbHAtbdQZfH~XQr˂JtArdnXvےJlnvpr˂plJtA~HfrXQJ`f`vXpZHAb|ZdQ`f~Zp˂nXv`p˂rtAJlے`JXQ|ZdQ`f~Zp˂|drf`vXpZHAb|ZdQ`fHtbdQZfH~`JXQrrd|pvnےJlnvpے`JbtlHfpvrXQJ`f~HXQJ`ےtbdQZrZHAbtlHfpvrXQJ`tAJlnvpے`Jbtlfpv|drf`vX˂pZZdQbtXv`ftbdQZfH~XQr˂JtArdnXvےbHAfpvbHAZ|drbے`JtArdnXvےbHAtbdQZfH~XQr˂JtArdnrXQJtAJlnvpHAbےl|Zfpv|drf`vXpZHAb|ZdQ`f~Zp˂nXv`p˂rtAJlJXQr|ZdQ`f~Zp˂|drf`vXpZHAb|ZdQ`ےHAtbdQZfH~`JXQrdQbtnrXQJtAJlnvpے`JbtlHfpvrXQJ`f~HXQJ`ےtdrtApZHAbtlHfpvrXQJ`tAJlnvpے`JbtlZp˂|drf`vX˂pZlJtAr`ےHAtbdQZfH~XQr˂JtArdnXvےbHA|drfpvbHAZJltbے`JtArdnXvےbHAtbdQZfH~XQr˂JfpvrXQJ`tAJlnvpHAbd|ZZp˂|drf`vXpZHAb|ZdQ`f~Zp˂tAJlnXv`p˂rbdQZ|JXQr|ZdQ`f~Zp˂|drf`vXpZHAnXvےbHAtbdQZfH~˂pZHAdQbtrXQJ`tAJlnvpے`JbtlHfpvrXQJ`tbdQZf~HXQJ`ےdrtApZAbbtlHfpvrXQJ`tAJlnvpے`JXQ`f~Zp˂|drf`vXbے`lJtArےbHAtbdQZfH~XQr˂JtArdnXvےbHA|drfpvbHAZJlt`JXQrJtArdnXvےbHAtbdQZfH~rbtHfpvrXQJ`tAJlnvpJXQrdtlZp˂|drf`vXpZHAb|ZdQ`f~Zp˂tAJlnXv`p˂rbdQZ|˂pZ|ZdQ`f~Zp˂|drf`vXlJtAdnXvےbHAtbdQZfH~˂pZHAJfpvrXQJ`tAJlnvpے`JbtlHfpvrXQJ`tbdQZf~HXQJ`ے`vXnHAbےbtlHfpvrXQJ`tAJlnvp|ZdQ`f~Zp˂|drf`vXbے`nvfےbHAtbdQZfH~XQr˂JtArdnXvےbHA|drfpvbHAZvpf`JXQrJtArdnXvےbHAtbdQZfے`JbtlHfpvrXQJ`tAJlnvpJXQHAb~HfpZp˂|drf`vXpZHAb|ZdQ`f~Zp˂tAJlnXv`p˂rH~f˂pZ|ZdQ`f~Zp˂|dtAXQr˂JtArdnXvےbHAtbdQZfH~ے`JvnXrXQJ`tAJlnvpے`JbtlHfpvrXQJ`tbdQZf~HXQJ`ے`vXnHAbbtlHfpvrXQJ`JltpZHAb|ZdQ`f~Zp˂|drf`vXXQr˂v`fےbHAtbdQZfH~XQr˂JtArdnXvےbHA|drfpvbHAZvpfJQr˂pJtArdnXvےbHAbnvے`JbtlHfpvrXQJ`tAJlnvppZHAb~HfpZp˂|drf`vXpZHAb|ZdQ`f~Zp˂tAJlnXv`p˂rH~ZHAb|ZdQ`f~Zp˂pfHXQr˂JtArdnXvےbHAtbdQZfH~ے`JvnXrXQJ`tAJlnvpے`JbtlHfpvrXQJ`tbdQZf~HXQJ`ےvpfHے`JXbtlHfpvrXQJ`f`vXpZHAb|ZdQ`f~Zp˂|drf`vXXQr˂v`f~ےbHAtbdQZfH~XQr˂JtArdnXvےJl|drfpvbHAZ~f`Qr˂pJtArdnXvےJlnvpے`JbtlHfpvrXQJ`tAJlnvpp`JXQfpvZp˂|drf`vXpZHAb|ZdQ`fHtbdQZtAJlnXv`p˂rvXnZHAb|ZdQ`fHtbdQZfH~XQr˂JtArdnXvےbHAtbdQZfH~rbtnXv`rXQJ`tAJlnvpے`Jbtlfpv|drtbdQZf~HXQJ`ےvpfHے`JXbtlfpv|drf`vXpZHAb|ZdQ`f~Zp˂|drf`vXl|ZdQf~HےbHAtbdQZfH~XQr˂JtArdnrXQJtAJl|dtAfpvJlt~f`QrZHAJtArdnrXQJtAJlnvpے`JbtlHfpvrXQJ`tAJlnvpbtlfpvZp˂|drf`vXpZHAb|ZdQ`ےHAtbdQZJltnXv`drtAJvXH~bے`|ZdQ`ےHAtbdQZfH~XQr˂JtArdnXvےbHAtbdQZfH~JtArdnXv`rXQJ`tAJlnvpے`JbtlZp˂|drbnvf~Hltbf`vJXQrbtlZp˂|drf`vXpZHAb|ZdQ`f~Zp˂|drf`vX|ZdQf~HےbHAtbdQZfH~XQr˂JfpvrXQJ`tAJlpfHfpvdQZ|Xnv˂pZHAJfpvrXQJ`tAJlnvpے`JbtlHfpvrXQJ`tAJlnvpbtlfvnXZp˂|drf`vXpZHAnXvےbHAtbdQZf`vXnXv`drtAJpfH~bے`nXvےbHAtbdQZfH~XQr˂JtArdnXvےbHAtbdQZfH~JtArdv`frXQJ`tAJlnvpے`JXQ`f~Zp˂|drnvpp˂rltbf`vJXQr`f~Zp˂|drf`vXpZHAb|ZdQ`f~Zp˂|drf`vXtlJ~HfpےbHAtbdQZfH~rbtHfpvrXQJ`tAJlfH~XQJ`ےdQZ|lXnv˂pZHAHfpvrXQJ`tAJlnvpے`JbtlHfpvrXQJ`tAJlnvptArdvnXZp˂|drf`vXlJtAdnXvےbHAtbdQZf`vXbHAZtbdQp`vXbJAdnXvےbHAtbdQZfH~XQr˂JtArdnXvےbHAtbdQZfے`J|ZdQbv`frXQJ`tAJlnvp|ZdQ`f~Zp˂|drnvpp˂rZ|dnvp|ZdQ`f~Zp˂|drf`vXpZHAb|ZdQ`f~Zp˂|dtAXQHAbtlJ~HfpےbHAtbdQZfے`JbtlHfpvrXQJ`tAJlfH~XQJ`ےrtAJlfH~btlHfpvrXQJ`tAJlnvpے`JbtlHfpvrXQJ`Jltے`JXQtArdvnvfZp˂|dtAXQr˂JtArdnXvےbHAtbdQZf`vXnvpے`Jbtlv~rtAJlf`vXpZHAb|ZdQ`f~Zp˂|drf`vXpZHAnXvےbHAltb~f``JXQrJfpvrXQJ`tAJlnvpے`JbtlHfpvrXQJ`tAJlnvpJAHr󙐅f۝`vfH~XQr˂JtArdHfpvtbdnvpے`JbtlHfpvrXQJ`tAJlnvpے`JXQ`f~Zp˂dQZ|vXn˂pZAnXvےbHAtbdQZfH~XQr˂JtArdnXvےbHAtbdQZfH~ˁ`ZQXXnvf`vXpZHAb|ZdQnXvQZ|dfH~XQr˂JtArdnXvےbHAtbdQZfH~rbtHfpvrXQJ`drtAJvp`v`JXQ`f~Zp˂|drf`vXpZHAb|ZdQ`f~Zp˂|drf`vXb㉀ۑppfH~nvpے`Jbtl`f~rtAJlf`vXpZHAb|ZdQ`f~Zp˂|drf`vXlJtAdnXvےbHAltbXnvrbtHfpvrXQJ`tAJlnvpے`JbtlHfpvrXQJ`tAJlnvpJAHr󙐅f۝`vfH~XQr˂JtArdHfpvtbdnvpے`JbtlHfpvrXQJ`tAJlnvp|ZdQ`f~Zp˂dQZ|pfH~lJtAdnXvےbHAtbdQZfH~XQr˂JtArdnXvےbHAtbdQZfZHAbˁ`ZQXXnvf`vXpZHAb|ZdQnXvQZ|rfH~XQr˂JtArdnXvےbHAtbdQZfے`JbtlHfpvrXQJ`drtAdQf`v|ZdQ`f~Zp˂|drf`vXpZHAb|ZdQ`f~Zp˂|dtAے`JAHr󙐂ˍpfH~nvpے`Jbtl`pvAJltf`vXpZHAb|ZdQ`f~Zp˂|dtAXQr˂JtArdnXvےbHAZ|dXnvbtlHfpvrXQJ`tAJlnvpے`JbtlHfpvrXQJ`JltXQr˂`ZQXbㅐf۝`vfH~XQr˂JtArdnrXQJbdQZ|nvpے`JbtlHfpvrXQJ`JltpZHAb|ZdQ`f~Zp˂rtAJlpfH~JtArdnXvےbHAtbdQZfH~XQr˂JtArdnXvےbHAbnvpZHAbۑpJXnvf`vXpZHAb|ZdQ`p˂drtAfH~XQr˂JtArdnXvےbHAbnvے`JbtlHfpvrXQJ`tbdQvp|ZdQ`f~Zp˂|drf`vXpZHAb|ZdQ`f~Zp˂pfHے`JAHr󙐂ˍp|dnvpے`JbtlrXQJ`Jltf`vXpZHAb|ZdQ`f~Zp˂pfHXQr˂JtArdnXvےbHAZ|dfے`JbtlHfpvrXQJ`tAJlnvpے`JbtlHfpvrXQJ`f`vXXQr˂`ZQXbrQtJlfH~XQr˂JtArdےbHAbdQZ|nvpے`JbtlHfpvrXQJ`f`vXpZHAb|ZdQ`f~Zp˂rtAJlXQrZHJtArdnXvےbHAtbdQZfH~XQr˂JtArdnXvےJlnvpp`JXQۑp`tbAdf`vXpZHAb|ZdQZp˂drtAfH~XQr˂JtArdnXvےJlnvpے`JbtlHfpvrXQJ`tdrAbے`|ZdQ`f~Zp˂|drf`vXpZHAb|ZdQ`fHtbdQZfH~r˂pZQXb㉀Z|dnvpے`JbtlrXQJ`JbdQf`vXpZHAb|ZdQ`fHtbdQZfH~XQr˂JtArdnXvےbHAtAJl璁JXQrbtlHfpvrXQJ`tAJlnvpے`Jbtlfpv|drf`vXZHAbۑpJAHrQtJlfH~XQr˂JtArdےbHAZ|dnvpے`Jbtlfpv|drf`vXpZHAb|ZdQ`f~Zp˂tbdQZ˂pZHJtArdnXvےbHAtbdQZfH~XQr˂JtArdnrXQJtAJlnvpے`JXQr󙐂ˁ`tbAdf`vXpZHAb|ZdQXQJ`ےrtAJlfH~XQr˂JtArdnrXQJtAJlnvpے`JbtlHfpvrXQJ`|drAbے`|ZdQ`f~Zp˂|drf`vXpZHAb|ZdQ`ےHAtbdQZfH~r˂pZQXb㉀Z|dnvpے`JbtlbHAZtbdQf`vXpZHAb|ZdQ`ےHAtbdQZfH~XQr˂JtArdnXvےbHAtAJl璁JXQrbtlHfpvrXQJ`tAJlnvpے`JbtlZp˂|drf`vXZHAbۑpJAHrQtJlfH~XQr˂Jfpvp˂rZ|dnvpے`JbtlZp˂|drf`vXpZHAb|ZdQ`f~Zp˂tbdQZ˂pZAbJtArdnXvےbHAtbdQZfH~XQr˂JfpvrXQJ`tAJlnvp˂pZf۝`vtbAdf`vXpZHA~HXQJ`ےrtAJlfH~XQr˂JfpvrXQJ`tAJlnvpے`JbtlHfpvrXQJ`|lt`JXQ|ZdQ`f~Zp˂|drf`vXpZHAnXvےbHAtbdQZfH~HAbےXnvZ|dnvpے`JXQfpvbHAZtbQZf`vXpZHAnXvےbHAtbdQZfH~XQr˂JtArdnXvےbHAbnvr˂pbtlHfpvrXQJ`tAJlnvpے`JXQ`f~Zp˂|drf`vX`JXQrpfH~rQtJlfH~rbtnXv`p˂drtAJnvpے`JXQ`f~Zp˂|drf`vXpZHAb|ZdQ`f~Zp˂p`vXZHAbJtArdnXvےbHAtbdQZfH~rbtHfpvrXQJ`tAJlnvp˂pZf۝`vtbAdf`vXlJtAdf~HbHAZpltbfH~rbtHfpvrXQJ`tAJlnvpے`JbtlHfpvrXQJ`nvpے`JXQ|ZdQ`f~Zp˂|drf`vXlJtAdnXvےbHAtbdQZfH~HAbےXnvZ|dnvp|ZdQfpv˂rXQdQZ|f`vXlJtAdnXvےbHAtbdQZfH~XQr˂JtArdnXvےbHAfH~r˂pbtlHfpvrXQJ`tAJlnvp|ZdQ`f~Zp˂|drf`vX`JXQHApfH~rQtJlfے`JbtlnXv`J`ےdrtAJnvp|ZdQ`f~Zp˂|drf`vXpZHAb|ZdQ`f~Zp˂f`vXZHAbJtArdnXvےbHAtbdQZfے`JbtlHfpvrXQJ`tAJlnvpbے`f۝`vtbAdXQr˂JtArdpvnbHAZpltbfے`JbtlHfpvrXQJ`tAJlnvpے`JbtlHfpvrXQJ`nvpJQr|ZdQ`f~Zp˂|dtAXQr˂JtArdnXvےbHAtbdQZfH~JXQrXnvZ|dpZHAb|ZdQXv`f˂rXQdQZ|XQr˂JtArdnXvےbHAtbdQZfH~XQr˂JtArdnXvےbHAfH~pZHAbtlHfpvrXQJ`JltpZHAb|ZdQ`f~Zp˂|drf`vX˂pZHApfH~rQtJlے`Jbtl~HfJ`p˂AJltpZHAb|ZdQ`f~Zp˂|drf`vXpZHAb|ZdQ`f~Zp˂vpfbے`JtArdnXvےbHAbnvے`JbtlHfpvrXQJ`tAJlnvpbے`f۝`vtbAdXQr˂JtArdpvnrXQJbnvے`JbtlHfpvrXQJ`tAJlnvpے`JbtlHfpvrXQJ`H~fJXQr|ZdQ`f~Zp˂pfHXQr˂JtArdnXvےbHAtbdQZfH~JXQrXnvZ|dpZHAb|ZdQXv`f`ےbpfHXQr˂JtArdnXvےbHAtbdQZfH~XQr˂JtArdnXvےJl`vXnpZHAbtlHfpvrXQJ`f`vXpZHAb|ZdQ`f~Zp˂|drf`vX˂p`ZpfH~rQtJlے`Jbtl~HXHAZp˂f`vXpZHAb|ZdQ`f~Zp˂|drf`vXpZHAb|ZdQ`fHtdrtAvpfbے`JtArdnXvےJlnvpے`JbtlHfpvrXQJ`tAJlnvpQXb㉀ۅf۝`vtbAdXQr˂JtArdv`frXQJnvpے`JbtlHfpvrXQJ`tAJlnvpے`JbtlfpvJltH~fJXQrZ|ZdQ`fHtbdQZfH~XQr˂JtArdnXvےbHAtbdQZfH~pJAHrXnvZ|dpZHAb|ZdQ~Hfp`ےbfH~XQr˂JtArdnXvےbHAtbdQZfH~XQr˂JtArdnrXQJbdQZ|`vXHHAbےbtlfpv|drf`vXpZHAb|ZdQ`f~Zp˂|drf`vXˁ`ZpfH~rQtJlے`JbtlvnXHAXQJ`f`vXpZHAb|ZdQ`f~Zp˂|drf`vXpZHAb|ZdQ`ےHAdrtA~f``JXQrJtArdnrXQJtAJlnvpے`JbtlHfpvrXQJ`tAJlnvpQXb㉀ۅf۝`vtbAdXQr˂JtArdv`fےJlnvpے`JbtlHfpvrXQJ`tAJlnvpے`JbtlZp˂JltvXn˂pZ|ZdQ`ےHAtbdQZfH~XQr˂JtArdnXvےbHAtbdQZfH~pJAHrXnvZ|dpZHAb|ZdQ~HfptbQZdfH~XQr˂JtArdnXvےbHAtbdQZfH~XQr˂JfpvrXQJ`bdQZ|vpfHHAbےbtlZp˂|drf`vXpZHAb|ZdQ`f~Zp˂|drf`vXۑppfH~rQtJltuvwxyz{||{zyxwv5555555566666666666666666666666666 \ No newline at end of file diff --git a/vendor/endroid/qr-code/assets/data/qrv28_0.dat b/vendor/endroid/qr-code/assets/data/qrv28_0.dat deleted file mode 100755 index 2f3b6460d..000000000 --- a/vendor/endroid/qr-code/assets/data/qrv28_0.dat +++ /dev/null @@ -1,257 +0,0 @@ -~}~}~}~}|{|{|{|{zyzyzyzywwwwwxwxuvuvuvuvststststqrqrqrqropopopopopopopopmnmnmnmnklklklklijijijijghghghghgfefefefefefefefcdcdcdcdabababab______`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGEFEFEFEFCDCDCDCDABABABAB?@?@?@?@?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:787878787878787856565656~}~}~}~}|{|{|{|{zyzyzyzywxwxwxwxuvuvuvuvststststqrqrqrqropopopopopopopopmnmnmnmnklklklklijijijijghghghghefefefefefefefefcdcdcdcdabababab`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGEFEFEFEFCDCDCDCDABABABAB?@?@?@?@?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:787878787878787856565656~}~}~}~}|{|{|{|{zyzyzyzywxwxwxwxuvuvuvuvststststqrqrqrqropopopoponmnmnmnmnmnmnmnklklklklijijijijghghghghefefefefefefefefcdcdcdcdabababab`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKJIJIJIJIGGGGGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:787878787878787856565656~}~}~}~}|{|{|{|{zyzyxwxwwxwxwxwxuvuvuvuvststststqrqrqrqropopopopmnmnmnmnmnmnmnmnklklklklijijijijghghghghefefefefefefefefcdcdcdcdababa`_``_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKJIJIJIJIGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:78787878787878765656565634343434~}~}~}~}~}~}~}~}|{|{|{|{xwxwwwwwwxwxwxwuuvuvuvuvststststqrqrqrqropopopopmnmnmnmnmnmnmnmnklklklklijijijijghghghghefefefefefefefefcdcdcdcb_`_`____`_`_____^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKJIJIJIJIGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:78787878565656565656565634343434~}~}~}~}~}~}~}~}|{|{|{zywxwxwxwxuuuuuvuvuvuvuvuvststststqrqrqrqropopopopmnmnmnmnmnmnmnmnklklklklijijijijghghghghefefefefefefefefabababab__`_`_`_`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKJIJIHGHGGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@?@?@?@?>=>=>=>=>;<;<;<;<9:9:9:9:78787878565656565656565634343434~}~}~}~}~}~}~}~}zyzyzyzywxwxwxwxuvuvuvuvuvuvuvuvststststqrqrqrqropopopopmnmnmnmnmnmnmnmnklklklklijijijijghghghghefefefefedcdcdcdabababab`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMNMNMNMNMLKLKLKJIHGHGGGGGGHGGGGGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>=>=>=>=>;<;<;<;<9:9:9:9:78787878565656565656565634343434~}~}~}~}~}~}~}~}zyzyzyzywxwxwxwxuvuvuvuvuvuvuvuvststststqrqrqrqropopopopmnmnmnmnmnmnmnmnklklklklijijijijghghghghefefefefcdcdcdcdabababab`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMNMNMNMNMJIJIJIJIGHGHGHGHGHGHGHGFEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>=>=>=>=>;<;<;<;<9:9:9:9:78787878565656565656565634343434~}~}~}~}|{|{|{|{zyzyzyzywxwxwxwxuvuvuvuvuvuvuvuvststststqrqrqrqropopopopmnmnmnmnmlklklklklklklklijijijijghghghghefefefefcdcdcdcdabababab`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>=>=>=>=>;<;<;<;<9:9:9:9:78787878565656565656565634343434~}~}~}~}|{|{|{|{zyzyzyzywxwxwxwwuvuvuvuvuvuvuvuvststststqrqrqrqropopopopmnmnmnmnklklklklklklklklijijijijghghghghefefefefcdcdcdcdabababab`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>=>=>=>=>;<;<;<;<9:9:9:9:78787878565656565656565434343434~}~}~}~}|{|{|{|{zyzyzyzywwwwxwxwuvuvuvuvutstststststststqrqrqrqropopopopmnmnmnmnklklklklklklklklijijijijghghghghefefefefcdcdcdcdabababab_____`_`^]^]^]^]^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>=>=>=>=>;<;<;<;<9:9:9:9:78787878565656563434343434343434~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwuvuvuvuvststststststststqrqrqrqropopopopmnmnmnmnklklklklklklklklijijijijghghghghefefefefcdcdcdcdabababab_`_`_`_`^]^]^]^]^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIGHGHGHGGEFEFEFEFEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>=>=>=>=<;<;<;<;<9:9:9:9:78787878565656563434343434343212~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwuvuvuvuvststststststststqrqrqrqropopopopmnmnmnmnklklklklklklklklijijijijghghghghefefefefcdcdcdcdabababab_`_`_`_`^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIGGGGHGHGEFEFEFEFEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<;<;<;<;<9:9:9:9:78787878565656563434343412121212~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwuvuvuvuvststststststststqrqrqrqropopopopmnmnmnmnklklklklklklklklijijijijghghghghefefefefcdcdcdcdabababab_`_`_`_`^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGEFEFEFEFEFEFEFEDCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<;<;<;<;<9:9:9:9:78787878565656563434343412121212~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwuvuvuvuvststststststststqrqrqrqropopopopmnmnmnmnklklklklkjijijijijijijijghghghghefefefefcdcdcdcdabababab_`_`_`_`^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGEFEFEFEFCDCDCDCDCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<;<;<;<;<9:9:9:9:78787878565656563434343412121212~}~}~}~}|{|{|{|{zyzyzyzyxwwwwwwxuvuvuvuvststststststststqrqrqrqropopopopmnmnmnmnklklklklijijijijijijijijghghghghefefefefcdcdcdcdabababab_`______^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGEFEFEFEFCDCDCDCDCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<;<;<;<;<9:9:9:9:78787878565656563434343412121212~}~}~}~}|{|{|{|{zyzyzyzywxwxwxwxuvuvuvuvststststsrqrqrqrqrqrqrqropopopopmnmnmnmnklklklklijijijijijijijijghghghghefefefefcdcdcdcdabababab`_`_`_`_^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGEFEFEFEFCDCDCDCDCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<;<;<;<;<9:9:9:9:78787878565656563434343412121212~}~}~}~}|{|{|{|{zyzyzyzywxwxwxwxuvuvuvuvststststqrqrqrqrqrqrqrqropopopopmnmnmnmnklklklklijijijijijijijijghghghghefefefefcdcdcdcdabababab`_`_`_`_^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGGGGGGHEFEFEFEFCDCDCDCDCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<;<;<;<;:9:9:9:9:78787878565656563434343412121212~}~}~}~}|{|{|{|{zyzyzyzywxwxwxwxuvuvuvuvststststqrqrqrqrqrqrqrqropopopopmnmnmnmnklklklklijijijijijijijijghghghghefefefefcdcdcdcdabababab`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIGHGHGHGHEFEFEFEFCDCDCDCDCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:9:9:9:9:78787878565656563434343412121212~}~}~}~}|{|{|{|{zyzyzyzywxwxwxwxuvuvuvuvststststqrqrqrqrqrqrqrqropopopopmnmnmnmnklklklklijijijijijijijijghghghghefefefefcdcdcdcdabababab`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIGHGHGHGHEFEFEFEFCDCDCDCDCDCDCDCBABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:9:9:9:9:78787878565656563434343412121212~}~}~}~}|{|{|{|{zyzyzyzywxwxwwwwuvuvuvuvststststqrqrqrqrqrqrqrqropopopopmnmnmnmnklklklklijijijijihghghghghghghghefefefefcdcdcdcdabababab`_`_`___^]^]^]^]\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIGHGHGHGHEFEFEFEFCDCDCDCDABABABABABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:9:9:9:9:78787878565656563434343412121212~}~}~}~}|{|{|{|{zyzyzyzywwxwxwxwuvuvuvuvststststqrqrqrqrqrqrqrqropopopopmnmnmnmnklklklklijijijijghghghghghghghghefefefefcdcdcdcdabababab___`_`_`^]^]^]^]\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIGHGHGHGHEFEFEFEFCDCDCDCDABABABABABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:9:9:9:9:78787878565656563434343412121212~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwuvuvuvuvststststqrqrqrqrqpopopopopopopopmnmnmnmnklklklklijijijijghghghghghghghghefefefefcdcdcdcdabababab_`_`_`_`^]^]^]^]\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIGHGHGGGGEFEFEFEFCDCDCDCDABABABABABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:9:9:9:9:78787878565656563434343412121212~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwuvuvuvuvststststqrqrqrqropopopopopopopopmnmnmnmnklklklklijijijijghghghghghghghghefefefefcdcdcdcdabababab_`_`_`_`^]^]^]^]\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIGGHGHGHGEFEFEFEFCDCDCDCDABABABABABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:9:9:9:9878787878565656563434343412121212~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwuvuvuvuvststststqrqrqrqropopopopopopopopmnmnmnmnklklklklijijijijghghghghghghghghefefefefcdcdcdcdabababab_`_`_`_`^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGEFEFEFEFCDCDCDCDABABABABABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:7878787878787878565656563434343412121212~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwuvuvuvuvststststqrqrqrqropopopopopopopopmnmnmnmnklklklklijijijijghghghghghghghghefefefefcdcdcdcdabababab_`_`_`_`^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGEFEFEFEFCDCDCDCDABABABABABABABA@?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:7878787878787878565656563434343412121212121212120/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!"!"!"!"!         - - - - - - - -121212120/0/////.-.-.-.-,+,+,+,+*)*)*)*)*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!"!"!"!"!         - - - - - - - -12121212/0/0/0/0.-.-.-.-,+,+,+,+*)*)*)*)*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!"!"!"!          - - - - - - - -12121212/0/0/0/0.-.-.-.-,+,+,+,+*)*)*)*)*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!             - - - - - - - -12121212/0/0/0/0.-.-.-.-,+,+,+,+*)*)*)*)*)*)*)('('('('('&%&%&%&%$#$#$#$#"!"!"!"!             - - - - - - 12121212/0/0/0/0.-.-.-.-,+,+,+,+*)*)*)*)('('('('('('('('&%&%&%&%$#$#$#$#"!"!"!"!             - - - -12121212/0/0/0//.-.-.-.-,+,+,+,+*)*)*)*)('('('('('('('('&%&%&%&%$#$#$#$#"!"!"!"!             - - - -12121212////0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('('('('('&%&%&%&%$#$#$#$#"!"!"!"!             - - - -121212120/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('('('('('&%&%&%&%$#$#$#$#"!"!"!"!            - - - -121212120/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -1210/0/00/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('('('('&%&%&%&%&%$#$#$#$#"!"!"!"!         - - - -/0//////0/////0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%&%&%&%&%$#$#$#$#"!"!"!"!         - - - -0/0/0/0/0/0/0/.-.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%&%&%&%&%$#$#$#$#"!"!"!"!          - - - -0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%&%&%&%&%$#$#$#$#"!"!"!"!             - - - -0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%&%&%&%&%$#$#$#$#"!"!"!"!             - - - -0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%&%&%&%&%$#$#$#$#"!"!"!"!             - - - -0/0/0///.-.-.-.-.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%&%&%&%$#$#$#$#$#"!"!"!"!             - - - -///0/0/0.-.-.-.-.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!             - - - -/0/0/0/0.-.-.-.-.-.-.-,+,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!           - - - -/0/0/0/0.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!         - - - -/0/0/0/0.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!         - - - -/0/0/0/0.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!         - - - -//////0/.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#$#$#$#"!"!"!"!"!         - - - -0/0/0/0/.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!"!"!"!"!         - - - -0/0/0/0/.-.-.-.-,+,+,+,+,+,+,+*)*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!"!"!"!"!         - - - - - -0/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!"!"!"!"!         - - - - - - - -~~}}aabbccdd$$##""!!nnooppqqXYYZZ[[\A@@??>>=())**++,qppoonnm `aabbccd9887766501122334ihhggffehiijjkklmnnooppqQQRRSSTTHHGGFFEE!!""##$$xxwwvvuu YYZZ[[\\@@??>>==))**++,,ppoonnmmaabbccdd$$##""!!ffgghhii$$##""!!IJJKKLLMPOONNMML~~}}|QRRSSTTUHGGFFEED!""##$$%xwwvvuut YZZ[[\\]||{{zzyyeeffgghh rrssttuu\]]^^__`=<<;;::9,--..//0mllkkjjideeffggh5443322145566778eddccbbalmmnnoopqrrssttuUUVVWWXXDDCCBBAA%%&&''((ttssrrqq - - ]]^^__``<<;;::99--..//00llkkjjiieeffgghh jjkkllmm MNNOOPPQLKKJJIIH !|{{zzyyxUVVWWXXYDCCBBAA@%&&''(()tssrrqqp - - ]^^__``axxwwvvuu iijjkkllvvww}}~~`aabbccd9887766501122334ihhggffehiijjkkl100//..-899::;;>==))**++,,ppoonnmmaabbccdd8877665511223344hhggffeeiijjkkllnnooppqqQRRSSTTUHGGFFEED!""##$$%xwwvvuut YZZ[[\\]@??>>==<)**++,,-poonnmmlabbccddettssrrqq - - mmnnoopp -deeffggh5443322145566778eddccbbalmmnnoop-,,++**)<==>>??@]\\[[ZZY tuuvvwwx - - ~ ]]^^__``<<;;::99--..//00llkkjjiieeffgghh4433221155667788ddccbbaammnnoopprrssttuuUVVWWXXYDCCBBAA@%&&''(()tssrrqqp - - ]^^__``a<;;::998-..//001lkkjjiiheffgghhi,++**))(ppoonnmm - - qqrrsstt ~~}}|{zy - hiijjkkl100//..-899::;;>==<)**++,,-poonnmmlabbccdde8776655412233445hggffeedijjkkllm(''&&%%$llkkjjii uuvvwwxx - - xwwvvuutlmmnnoop-,,++**)<==>>??@]\\[[ZZY tuuvvwwx%$$##""!DEEFFGGHUTTSSRRQ|}}~~ yxwwvvuueeffgghh4433221155667788ddccbbaammnnoopp,,++**))==>>??@@\\[[ZZYY uuvvwwxx - -  -]^^__``a<;;::998-..//001lkkjjiiheffgghhi4332211056677889dccbbaa` mnnooppq$##""!! hhggffeeyyzz{{|| - - tssrrqqp - - pqqrrsst)((''&&%@AABBCCDYXXWWVVUxyyzz{{|! HIIJJKKLQPPOONNM~~} - - ttssrrqqiijjkkll00//..--99::;;<<``__^^]] - - qqrrsstt((''&&%%AABBCCDDXXWWVVUUyyzz{{||~~}}|{zy - abbccdde8776655412233445hggffeedijjkkllm0//..--,9::;;<<=`__^^]]\ - - qrrssttu ddccbbaa}}~~poonnmml tuuvvwwx%$$##""!DEEFFGGHUTTSSRRQ|}}~~LMMNNOOPMLLKKJJI }wwvvuut ppoonnmmmmnnoopp,,++**))==>>??@@\\[[ZZYY uuvvwwxx$$##""!!EEFFGGHHTTSSRRQQ}}~~ xwwvvuuteffgghhi4332211056677889dccbbaa` mnnooppq,++**))(=>>??@@A\[[ZZYYX uvvwwxxy``__^^]]~~}}lkkjjiihxyyzz{{|! HIIJJKKLQPPOONNM~~}PQQRRSSTIHHGGFFE !!""##$tssrrqqpllkkjjii - - qqrrsstt((''&&%%AABBCCDDXXWWVVUUyyzz{{|| IIJJKKLLPPOONNMM~~}} - - tssrrqqpijjkkllm0//..--,9::;;<<=`__^^]]\ - - qrrssttu(''&&%%$ABBCCDDEXWWVVUUTyzz{{||}\\[[ZZYY wwvvuutthggffeed|}}~~LMMNNOOPMLLKKJJI }||{{zzyTUUVVWWXEDDCCBBA$%%&&''(poonnmmlhhggffee uuvvwwxx$$##""!!EEFFGGHHTTSSRRQQ}}~~MMNNOOPPLLKKJJII wwvvuuttpoonnmml mnnooppq,++**))(=>>??@@A\[[ZZYYX uvvwwxxy$##""!! EFFGGHHITSSRRQQP}~~ XXWWVVUU!!""##$$ssrrqqpp !!""cba`__^^~~}PQQRRSSTIHHGGFFE !!""##$yxxwwvvu XYYZZ[[\A@@??>>=())**++,lkkjjiih !!"dcba`__^yyzz{{|| IIJJKKLLPPOONNMM~~}}QQRRSSTTHHGGFFEE!!""##$$ssrrqqpplkkjjiih - - qrrssttu(''&&%%$ABBCCDDEXWWVVUUTyzz{{||} IJJKKLLMPOONNMML~~}}w - - TTSSRRQQ%%&&''((oonnmmll##$$%%&&]]\\[[ZZ }||{{zzyTUUVVWWXEDDCCBBA$%%&&''(uttssrrq - - \]]^^__`=<<;;::9,--..//0hggffee_"##$$%%&^]]\\[[Z}}~~MMNNOOPPLLKKJJII ||{{zzyyUUVVWWXXDDCCBBAA%%&&''((oonnmmllhggffeed uvvwwxxy$##""!! EFFGGHHITSSRRQQP}~~MNNOOPPQLKKJJIIH !wvvuuttsPPOONNMM))**++,,kkjjiihh''(())**YYXXWWVV !!""##$yxxwwvvu XYYZZ[[\A@@??>>=())**++,qppoonnm `aabbccd9887766501122334_^^]]\\[&''(())*ZYYXXWWV~~}}QQRRSSTTHHGGFFEE!!""##$$xxwwvvuu YYZZ[[\\@@??>>==))**++,,kkjjiihh !!""cba`__^^yzz{{||} IJJKKLLMPOONNMML~~}}|QRRSSTTUHGGFFEED!""##$$%srrqqppo -LLKKJJII--..//00ggffee__++,,--..UUTTSSRR$%%&&''(uttssrrq - - \]]^^__`=<<;;::9,--..//0mllkkjjideeffggh5443322145566778[ZZYYXXW*++,,--.VUUTTSSR ||{{zzyyUUVVWWXXDDCCBBAA%%&&''((ttssrrqq - - ]]^^__``<<;;::99--..//00ggffee__##$$%%&&]]\\[[ZZ}~~MNNOOPPQLKKJJIIH !|{{zzyyxUVVWWXXYDCCBBAA@%&&''(()onnmmllk - HHGGFFEE11223344^^]]\\[[//556677QQPPOONN())**++,qppoonnm `aabbccd9887766501122334ihhggffehiijjkkl100//..-899::;;>==))**++,,ppoonnmmaabbccdd8877665511223344^^]]\\[[''(())**YYXXWWVV~~}}|QRRSSTTUHGGFFEED!""##$$%xwwvvuut YZZ[[\\]@??>>==<)**++,,-kjjiihhgDDCCBBAA55667788ZZYYXXWW8899::;;MMLKJIHG,--..//0mllkkjjideeffggh5443322145566778eddccbbalmmnnoop-,,++**)<==>>??@SRRQQPPO78899::;NMMLKJIH%%&&''((ttssrrqq - - ]]^^__``<<;;::99--..//00llkkjjiieeffgghh4433221155667788ZZYYXXWW++,,--..UUTTSSRR !|{{zzyyxUVVWWXXYDCCBBAA@%&&''(()tssrrqqp - - ]^^__``a<;;::998-..//001gffee__^@@??>>==99::;;<>??GFFEEDDC01122334ihhggffehiijjkkl100//..-899::;;>?GGFFEEDD))**++,,ppoonnmmaabbccdd8877665511223344hhggffeeiijjkkll00//..--99::;;<>==<)**++,,-poonnmmlabbccdde8776655412233445^]]\\[[Z<<;;::99==>>??@@RRQQPPOO@@AABBCCCBBAA@@?45566778eddccbbalmmnnoop-,,++**)<==>>??@]\\[[ZZY tuuvvwwx%$$##""!DEEFFGGHFEEDDCCB?@@AABBCCCBBAA@@--..//00llkkjjiieeffgghh4433221155667788ddccbbaammnnoopp,,++**))==>>??@@RRQQPPOO8899::;;MMLKJIHG%&&''(()tssrrqqp - - ]^^__``a<;;::998-..//001lkkjjiiheffgghhi4332211056677889ZYYXXWWV !!""#88776655AABBCCDDNNMMGGFFDDEEFFGG?>>==<<;899::;;CDDEEFFG??>>==<<11223344hhggffeeiijjkkll00//..--99::;;<<``__^^]] - - qqrrsstt((''&&%%AABBCCDDNNMMGGFF<<==>>??GFFEEDDC)**++,,-poonnmmlabbccdde8776655412233445hggffeedijjkkllm0//..--,9::;;<<=VUUTTSSR#$$%%&&'44332211EEFFGGHHEEDDCCBBMMNNOOPP;::99887<==>>??@]\\[[ZZY tuuvvwwx%$$##""!DEEFFGGHUTTSSRRQ|}}~~LMMNNOOP>==<<;;:GMMNNOOP;;::998855667788ddccbbaammnnoopp,,++**))==>>??@@\\[[ZZYY uuvvwwxx$$##""!!EEFFGGHHEEDDCCBB@@AABBCCCBBAA@@?-..//001lkkjjiiheffgghhi4332211056677889dccbbaa` mnnooppq,++**))(=>>??@@ARQQPPOON'(())**+00//..--IIJJKKLLAA@@??>>QQRRSSTT76655432@AABBCCDYXXWWVVUxyyzz{{|! HIIJJKKLQPPOONNM~~}PQQRRSST:9988776PQQRRSST7766554399::;;<<``__^^]] - - qqrrsstt((''&&%%AABBCCDDXXWWVVUUyyzz{{|| IIJJKKLLAA@@??>>DDEEFFGG?>>==<<;12233445hggffeedijjkkllm0//..--,9::;;<<=`__^^]]\ - - qrrssttu(''&&%%$ABBCCDDENMMGGFFE+,,--../,,++**))MMNNOOPP==<<;;::UUVVWWXX10//..--DEEFFGGHUTTSSRRQ|}}~~LMMNNOOPMLLKKJJI }||{{zzyTUUVVWWX655//..-TUUVVWWX210//..-==>>??@@\\[[ZZYY uuvvwwxx$$##""!!EEFFGGHHTTSSRRQQ}}~~MMNNOOPP==<<;;::MMNNOOPP;::9988756677889dccbbaa` mnnooppq,++**))(=>>??@@A\[[ZZYYX uvvwwxxy$##""!! EFFGGHHIEDDCCBBA/5566778((''&&%%QQRRSSTT99887766YYZZ[[\\,,++**))HIIJJKKLQPPOONNM~~}PQQRRSSTIHHGGFFE !!""##$yxxwwvvu XYYZZ[[\-,,++**)XYYZZ[[\-,,++**)AABBCCDDXXWWVVUUyyzz{{|| IIJJKKLLPPOONNMM~~}}QQRRSSTT99887766QQRRSSTT766554329::;;<<=`__^^]]\ - - qrrssttu(''&&%%$ABBCCDDEXWWVVUUTyzz{{||} IJJKKLLMA@@??>>=899::;;<$$##""!!UUVVWWXX55//..--]]^^__ee((''&&%%LMMNNOOPMLLKKJJI }||{{zzyTUUVVWWXEDDCCBBA$%%&&''(uttssrrq - - \]]^^__`)((''&&%\]]^^__e)((''&&%EEFFGGHHTTSSRRQQ}}~~MMNNOOPPLLKKJJII ||{{zzyyUUVVWWXX55//..--UUVVWWXX10//..--=>>??@@A\[[ZZYYX uvvwwxxy$##""!! EFFGGHHITSSRRQQP}~~MNNOOPPQ=<<;;::9<==>>??@ YYZZ[[\\,,++**))ffgghhii$$##""!!PQQRRSSTIHHGGFFE !!""##$yxxwwvvu XYYZZ[[\A@@??>>=())**++,qppoonnm `aabbccd%$$##""!effgghhi%$$##""!IIJJKKLLPPOONNMM~~}}QQRRSSTTHHGGFFEE!!""##$$xxwwvvuu YYZZ[[\\,,++**))YYZZ[[\\,,++**))ABBCCDDEXWWVVUUTyzz{{||} IJJKKLLMPOONNMML~~}}|QRRSSTTU98877665@AABBCCD]]^^__``((''&&%%jjkkllmm TUUVVWWXEDDCCBBA$%%&&''(uttssrrq - - \]]^^__`=<<;;::9,--..//0mllkkjjideeffggh! ijjkkllm! MMNNOOPPLLKKJJII ||{{zzyyUUVVWWXXDDCCBBAA%%&&''((ttssrrqq - - ]]^^__``((''&&%%]]^^__ee((''&&%%EFFGGHHITSSRRQQP}~~MNNOOPPQLKKJJIIH !|{{zzyyxUVVWWXXY5//..--,DEEFFGGMMNNOOPPQ::99887766778899ccbbaa`` nnooppqq++**))((>>??@@AA[[ZZYYXXvvwwxxyy##""!! FFGGHHIIDDCCBBAAAABBCCDDBAA@@??>.//00112kjjiihhgfgghhiij3221100/6778899:cbbaa``_ -nooppqqr mllkkjji QRRSSTTU66554321::;;<<==__^^]]\\ - - rrssttuu''&&%%$$BBCCDDEEWWVVUUTTzz{{||}}JJKKLLMM@@??>>==EEFFGGMM>==<<;;:23344556gffeeddcjkkllmmn/..--,,+:;;<<==>_^^]]\\[ - rssttuuv - - -ihhggffeUVVWWXXY0//..--,>>??@@AA[[ZZYYXXvvwwxxyy##""!! FFGGHHIISSRRQQPP~~NNOOPPQQ<<;;::99NNOOPPQQ:99887766778899:cbbaa``_ -nooppqqr+**))(('>??@@AAB[ZZYYXXWvwwxxyyz - eddccbbaYZZ[[\\],++**))(BBCCDDEEWWVVUUTTzz{{||}}JJKKLLMMOONNMMLL~~}}||RRSSTTUU88776655RRSSTTUU65543210:;;<<==>_^^]]\\[ - rssttuuv'&&%%$$#BCCDDEEFWVVUUTTSz{{||}}~a``__^^]]^^__eef(''&&%%$FFGGHHIISSRRQQPP~~NNOOPPQQKKJJIIHH !!{{zzyyxxVVWWXXYY//..--,,VVWWXXYY//..--,,>??@@AAB[ZZYYXXWvwwxxyyz#""!! FGGHHIIJSRRQQPPO~xxw]\\[[ZZY fgghhiij$##""!! JJKKLLMMOONNMMLL~~}}||RRSSTTUUGGFFEEDD""##$$%%wwvvuutt ZZ[[\\]]++**))((ZZ[[\\]]++**))((BCCDDEEFWVVUUTTSz{{||}}~JKKLLMMNONNMMLLKwvvuuttsYXXWWVVU !!""##$jkkllmmn NNOOPPQQKKJJIIHH !!{{zzyyxxVVWWXXYYCCBBAA@@&&''(())ssrrqqpp - - ^^__``aa''&&%%$$^^__eeff''&&%%$$FGGHHIIJSRRQQPPO~NOOPPQQRKJJIIHHG !!"srrqqppo !!""#UTTSSRRQ$%%&&''(nooppqqrRRSSTTUUGGFFEEDD""##$$%%wwvvuutt ZZ[[\\]]??>>==<<**++,,--oonnmmllbbccddee##""!! gghhiijj##""!! JKKLLMMNONNMMLLK~~}}||{RSSTTUUVGFFEEDDC"##$$%%&onnmmllk#$$%%&&'QPPOONNM())**++,rssttuuvVVWWXXYYCCBBAA@@&&''(())ssrrqqpp - - ^^__``aa;;::9988..//0011kkjjiihhffgghhiikkllmmnnNOOPPQQRKJJIIHHG !!"{zzyyxxwVWWXXYYZCBBAA@@?&''(())*kjjiihhg'(())**+MLLKKJJI,--..//0vww}}~~ZZ[[\\]]??>>==<<**++,,--oonnmmllbbccddee7766554422334455ggffeeddjjkkllmmooppqqrrRSSTTUUVGFFEEDDC"##$$%%&wvvuutts Z[[\\]]^?>>==<<;*++,,--.gffee__^+,,--../IHHGGFFE01122334~ - -^^__``aa;;::9988..//0011kkjjiihhffgghhii3322110066778899ccbbaa`` nnooppqqssttuuvvVWWXXYYZCBBAA@@?&''(())*srrqqppo - - ^__``aab;::99887.//00112^]]\\[[Z/5566778EDDCCBBA45566778~}}|{zyx bbccddee7766554422334455ggffeeddjjkkllmm//..--,,::;;<<==__^^]]\\ - - rrssttuu ww}}~~ Z[[\\]]^?>>==<<;*++,,--.onnmmllkbccddeef7665544323344556ZYYXXWWV899::;;>=899::;;>??@@AA[[ZZYYXXvvwwxxyy - - ~~ - - ^__``aab;::99887.//00112kjjiihhgfgghhiij3221100/6778899:VUUTTSSR<==>>??@=<<;;::9<==>>??@ssrrqqppjjkkllmm//..--,,::;;<<==__^^]]\\ - - rrssttuu''&&%%$$BBCCDDEEWWVVUUTTzz{{||}}}}|{zyxw bccddeef7665544323344556gffeeddcjkkllmmn/..--,,+:;;<<==>RQQPPOON@AABBCCD98877665@AABBCCDoonnmmll nnooppqq++**))((>>??@@AA[[ZZYYXXvvwwxxyy##""!! FFGGHHIISSRRQQPP~~ - -wvvuuttsfgghhiij3221100/6778899:cbbaa``_ -nooppqqr+**))(('>??@@AABNMMGGFFEDEEFFGGM54433221DEEFFGGHkkjjiihh - - rrssttuu''&&%%$$BBCCDDEEWWVVUUTTzz{{||}}JJKKLLMMOONNMMLL~~}}ww srrqqppojkkllmmn/..--,,+:;;<<==>_^^]]\\[ - rssttuuv'&&%%$$#BCCDDEEFEDDCCBBAMNNOOPPQ100//..-HIIJJKKLggffeedcvvwwxxyy##""!! FFGGHHIISSRRQQPP~~NNOOPPQQKKJJIIHH !!vvuuttssonnmmllk -nooppqqr+**))(('>??@@AAB[ZZYYXXWvwwxxyyz#""!! FGGHHIIJA@@??>>=QRRSSTTU-,,++**)LMMNNOOPba`__^^]zz{{||}}JJKKLLMMOONNMMLL~~}}||RRSSTTUUGGFFEEDD""##$$%%rrqqppookjjiihhg - rssttuuv'&&%%$$#BCCDDEEFWVVUUTTSz{{||}}~JKKLLMMN=<<;;::9UVVWWXXY)((''&&%PQQRRSST]\\[[ZZY~~NNOOPPQQKKJJIIHH !!{{zzyyxxVVWWXXYYCCBBAA@@&&''(())nnmmllkkgffeedcbvwwxxyyz#""!! FGGHHIIJSRRQQPPO~NOOPPQQR98877665YZZ[[\\]%$$##""!TUUVVWWXYXXWWVVU~~}}||RRSSTTUUGGFFEEDD""##$$%%wwvvuutt ZZ[[\\]]??>>==<<**++,,--jjiihhgg !!""##a`__^^]]z{{||}}~JKKLLMMNONNMMLLK~~}}||{RSSTTUUV5//..--,]^^__eef! XYYZZ[[\UTTSSRRQ !!{{zzyyxxVVWWXXYYCCBBAA@@&&''(())ssrrqqpp - - ^^__``aa;;::9988..//0011ffee__^^$$%%&&''\\[[ZZYY~NOOPPQQRKJJIIHHG !!"{zzyyxxwVWWXXYYZ,++**))(fgghhiij\]]^^__`QPPOONNM""##$$%%wwvvuutt ZZ[[\\]]??>>==<<**++,,--oonnmmllbbccddee7766554422334455]]\\[[ZZ(())**++XXWWVVUU~~}}||{RSSTTUUVGFFEEDDC"##$$%%&wvvuutts Z[[\\]]^(''&&%%$jkkllmmn`aabbccdMLKJIHGG&&''(())ssrrqqpp - - ^^__``aa;;::9988..//0011kkjjiihhffgghhii3322110066778899YYXXWWVV,,--..//TTSSRRQQ !!"{zzyyxxwVWWXXYYZCBBAA@@?&''(())*srrqqppo - - ^__``aab$##""!! nooppqqrdeeffgghFFEEDDCC**++,,--oonnmmllbbccddee7766554422334455ggffeeddjjkkllmm//..--,,::;;<<==UUTTSSRR55667788PPOONNMM"##$$%%&wvvuutts Z[[\\]]^?>>==<<;*++,,--.onnmmllkbccddeef rssttuuu hiijjkklBBAA@@??..//0011kkjjiihhffgghhii3322110066778899ccbbaa`` nnooppqq++**))((>>??@@AAQQPPOONN99::;;<>==<<;;22334455ggffeeddjjkkllmm//..--,,::;;<<==__^^]]\\ - - rrssttuu''&&%%$$BBCCDDEEMMGGFFEE==>>??@@FEEDDCCB*++,,--.onnmmllkbccddeef7665544323344556gffeeddcjkkllmmnqppoonnm - - pqqrrssttuuZHAbr˂ptlJnXv`J`ےJbdQfH~˙ے`JXJtArdfpvfHrXQJ`ہdrtnvpZHAbrbtl|ZdQXv`QJ`ےAJbdQ`vXnr˂p|ZdQbnXv`fpvbHAZJltH~fے`JXQZHAےtlJnXv`bHAZpbdQZ|vpfHZHAbۉlJtf~HnXv`ˑ˂rXbdQZ|vXnr˂p`JXQArd|ے`JXQZHAbtArdf~HbHAZpZ|df`vXQr˂p|ZdQnXv`fpv㒐bHAAJltfH~˙ے`JXJtAdbtlf~HbHAZpZ|dvpfZHAbtlJf~HnXv`p˂rbdQZ|`vXnr˂p`JXQrtArdf~H˂rXQdrtA~f``JXQArd|fpvf~HQJ`ےdrtAvpfHZHAbr˂pZdQbtr˂pے`JXQ|ZdQbXv`f˂brtAJlnvpZHAbbtlf~HnrXQJ`Zp˂bdQZ|f`vXQr˂p|ZdQJtArdfpv˂rtAJlH~fے`JXQtArdfpvfHfXQJ`ےdrtAvpfZHAbbtl|ZdQbXv`fJ`ےJbdQvXnr˂pZdQbtnXv`fpvbHAZpJlt~f``JXQZHAے`lJtZHAbr˂ptlJ~HfHAZdtbdQfH~˙ے`JXJtArdfpvےHArXQJ`ہdrtnvpZHAbbtl|ZdQnXv`pbHAZdtbdQ`vXnr˂p|ZdQbnXv`pvnbHAZJltH~fے`JXQJtAdtlJ~HfbHAZpZ|dvpfHZHAbۉlJtf~HnXv`ˑ˂rXbdQZ|vXnr˂pJXQrArd|f~Hے`JXQ|ZdQbtArdpvnrtAJZ|dnf`vXQr˂p|ZdQnXv`Zp˂󒐙bHAAJltfH~˙ے`JXJtArdbtlvnrtAJZ|AJvpfZHAbtlJf~HrXQJ`p˂rbdQZ|`vXnr˂p|ZdQbtArdpvn˂brtAJl~f``JXQArd|fpvfHfpQJ`ےdrtAvpfHZHAbbtlZdQbtfpvr˂ptlJ|ZdQbXv`pbdQZ|vfnvpZHAbbtlf~HrXQJ`Zp˂bdQZ|f`vXQr˂p|ZdQJtArdrXQJ`pbdQZ|ltbH~fے`JXQtArdfpvےHAZXQJ`ےdrtAvpfZHAbtlJ|ZdQbXv`pHAZdtbdQvXnr˂pZdQbtnXv`˝vnbHAZpJlt~f``JXQJtAd|lJtnXv`ZHAbtArdtlJ˂rXQdrtAf`vXfH~˙ے`JXJtArdfpvbHArXQJ`ہdrtnvpZHAbbtlf~H˂rXdrtAnvp`vXnr˂p|ZdQbnXv`p˂rbHAZJltH~fے`JXQtArdtlJvnrrtAJZ|AJlvpfHZHAbۉlJtf~HrXQJ`ۑ˂rXbdQZ|vXnr˂pZdQbtArd|f~HXے`JXQ|ZdQbtArdJ`ےJltnvpf`vXQr˂p|ZdQnXv`Zp˂󒐙bHAAJltfH~˙ے`JXJtArdXv`QJ`ےJltfHfvpfZHAbtlJf~HXQJ`ےp˂rbdQZ|`vXnr˂p|ZdQbtArdXQJ`pbdQZ|tb~f``JXQArd|fpv㒐HAZpQJ`ےdrtAvpfHZHAbۉlJtZdQbtv`fr˂ptlJf~HbHAZpbdQZ|fH~nvpZHAbbtlf~HrXQJ`ZdrtbdQZ|f`vXQr˂p|ZdQf~HbHAZpbdQZ|`vXnH~fے`JXQtArdfpvbHAZXQJ`ےdrtAvpfZHAbtlJf~H˂rXQdrtAnvpvXnr˂pZdQbtnXv`ˑ˂rXbHAZpJlt~f``JXQArd|lJt~HfpZHAbtArdXv`f˂bdrtAJf`vXfH~˙ے`JXJtArdfpvbHAAJltdrtnvpZHAbbtlfpv˂drtAvpf`vXnr˂p|ZdQbnXv`p˂rbHAZJltH~fے`JXQtArdXv`fJ`ےJltfHf`vpfHZHAbۉlJtf~HQJ`ے˂rXbdQZ|vXnr˂pZdQbtArd˝vnXے`JXQ|ZdQb~HfHAZp˂bdQZnvpfZHAbQr˂p|ZdQnXv`Zp˂bdQZ|AJltfH~˙ے`JXJtArdnXv`bHAZpJbdQH~fvpfZHAbtlJf~HXQJ`ےdrtAbdQZ|`vXnr˂p|ZdQb~HfbHAZpbdQZ|vXn~f``JXQArd|fpvbHAZpQJ`ےdrtAvpfHZHAbۉlJtf~HXv`pr˂ptlJpvnrXQJ|drfH~˙ے`JXZHAbbtlf~HrXQJ`ہdrtbdQZ|f`vXQr˂p|ZdQf~HXrXQZ|d`vXnH~fے`JXQtArdfpvbHAZJltdrtAvpfZHAbtlJpvn˂bdrtAJvpfHvXnr˂pZdQbtnXv`ˑ˂rXbHAZJlt~f``JXQArd|v`fvnrXZHAbtArdXv`f`ےbtAJlf`vXQr˂pے`JXJtArdfpvbHAAJltdtAnvpZHAbbtlv`fJ`ےrtAJl瀅vpfZHAbr˂p|ZdQbnXv`p˂rbdQZ|JltH~fے`JXQtArdXv`fHAZp˂bdQZ~f`vpfHZHAbۉlJtf~HQJ`ےdrtAbdQZ|vXnr˂pZdQbt~HfpQJ`pے`JXQ|ZdQb~HXHAZp˂tbdQZnvpZHAbQr˂p|ZdQnXv`Zp˂bdQZ|JltfH~˙ے`JXJtArd~HfpbHAZp˒tbdQH~fے`JXQZHAbtlJf~HXQJ`ےdrtAbdQZ|`vXnr˂p|ZdQb~HXrXQJ|drvXn~f`JXQArd|fpvbHAZpJltdrtAvpfHZHAbۉlJtvnXrXQr˂ptlJv`fbHA|drfH~˙ے`JXZHAbtlf~HrXQJ`ہdrtbnvpf`vXQr˂p|ZdQvnXbHZ|d`vXnr˂pے`JXQtArdfpvbHAZJltdtAJvpfZHAbtlJv`f`ےbtAJl璅vpfHZHAbr˂pZdQbtnXv`ˑ˂rXbdQZ|Jlt~f``JXQArd|v`fJ`ےZHAbtArd~HfpZp˂tAJbdf`vXQr˂p`JXQJtArdfpvbHAAJltfHnvpZHAbbtlv`fAZp˂rtAJbvpfZHAbr˂p|ZdQbnXv`p˂rbdQZ|ltbH~fے`JXQtArd~HfpHAZp˂tbdQZ~f``JXQZHAbۉlJtf~HQJ`ےdrtAbdQZ|vXnr˂pZdQbt~HXbHAZpے`JXQ|ZdQbvnXrXQJ`QZ|dnvpZHAbrbtl|ZdQnXv`Zp˂bdQZ|f`vXfH~˙ے`JXJtArd~HXrXQJ`dQZ|H~fے`JXQZHAےtlJf~HXQJ`ےdrtAnvp`vXnr˂p|ZdQbvnXbHA|drvXnr˂p`JXQArd|fpvbHAZpJltdtAJlvpfHZHAbۉlJtv`f󂀉bHr˂ptlJv`fےbHArtAJlfH~˙ے`JXJtAdbtlf~HrXQJ`ہdrtnvpf`vXQr˂p|ZdQv`fےbHdrtAJ`vXnr˂p`JXQrtArdfpvbHAZJltfHfvpfZHAbtlJv`fZp˂tAJbdvpfHZHAbr˂pZdQbtnXv`ˑ˂rXbdQZ|tb~f``JXQArd|~HfpAZp˂ZHAbtArd~HXvZp˂tbdf`vXQr˂p|ZdQJtArdfpvbHAAJltfH~nvpZHAbbtl~HfpAZp˂ltbvpfZHAbbtl|ZdQbnXv`p˂rbdQZ|`vXnH~fے`JXQtArd~HXvrXQJ`QZ|d~f``JXQZHAے`lJtf~HQJ`ےdrtAnvpvXnr˂pZdQbtvnXrXQJ`ے`JXQ|ZdQb`f~bHAZQZ|dnvpZHAbbtl|ZdQnXv`Zp˂bdQZ|f`vXfH~˙ے`JXJtArdvnXbHAdQZ|H~fے`JXQJtAdtlJf~HXQJ`ےdrtAvpf`vXnr˂p|ZdQb`f~ےbHArtAJlvXnr˂pJXQrArd|fpvbHAZpJltfHf`vpfHZHAbۉlJtv`fےbHr˂ptlJHfpvp˂rrtAJfH~˙ے`JXJtArdbtlf~HrXQJ`ہdrtnvpfZHAbQr˂p|ZdQv`fZp˂drtAJ`vXnr˂p|ZdQbtArdfpvbHAZJltH~fvpfZHAbtlJHfpvZp˂tbdvpfHZHAbbtlZdQbtnXv`ˑ˂rXbdQZ|vXn~f``JXQArd|~HXv`AZp˂ZHAbtArdnXvXQJ`ےbdQZ|f`vXQr˂p|ZdQJtArdfpvbHAAJltfH~˙ے`JXZHAbbtl~HXv`rXQJ`ےbdQZ|vpfZHAbtlJ|ZdQbnXv`p˂rbdQZ|`vXnH~fے`JXQtArdnXvbHAZQZ|d~f``JXQJtAd|lJtf~HQJ`ےdrtAvpfHvXnr˂pZdQbtf~HbHAے`JXQ|ZdQb`f~bHAZdrtAnvpZHAbbtlf~HnXv`Zp˂bdQZ|f`vXQr˂pے`JXJtArdf~HbHAdrtH~fے`JXQtArdtlJf~HXQJ`ےdrtAvpfZHAbr˂p|ZdQb`f~p˂rrtAJvXnr˂pZdQbtArd|fpvbHAZpJlt~f`vpfHZHAbۉlJtfpvZp˂r˂ptlJHXv`p˂JltfH~˙ے`JXJtArdfpvf~HrXQJ`ہdrtnvpZHAbQr˂p|ZdQfpvZp˂AJlt`vXnr˂p|ZdQbtArdfpvbHAZJltH~fے`JXQZHAbtlJHXv`XQJ`ےbdQZ|vpfHZHAbۉlJtZdQbtnXv`ˑ˂rXbdQZ|vXn~f`JXQArd|nXv`rXQJ`ZHAbtArdf~HbHAZpbdQZ|f`vXQr˂p|ZdQnXv`fpvbHAAJltfH~˙ے`JXZHAbtlnXv`bHAZpbdQZ|vpfZHAbtlJf~HnXv`p˂rbdQZ|`vXnr˂pے`JXQtArdf~HbHAZdrtA~f``JXQArd|lJtf~HQJ`ےdrtAvpfHZHAbr˂pZdQbtf~HbHAے`JXQ|ZdQbfpv˂rXQdrtAnvpZHAbbtlf~HnXv`Zp˂bdQZ|f`vXQr˂p`JXQJtArdf~H˂rXdrtH~fے`JXQtArdfpvf~HXQJ`ےdrtAvpfZHAbr˂p|ZdQbfpvp˂JltvXnr˂pZdQbtArdfpvbHAZpJlt~f``JXQZHAbۉlJtXv`Zp˂bHAZpZ|d~f``JXQrtAd|lJtA~HfJ`ےdrtAJvpfHvXn˂pZZdQbtf~HbHAZrtAJlvXnۉ˂pZHJXQrbtrd|vnXbHAZpˑtbdf`vpfHJXQrXnvˍQtJl˂rXrtAJvXn˂pZZdQbtrd|pvnbHAZpltb~f`vpfHHAbےlJtAfpvp˂tbdQvpfHAbے`lJtZdQbtv`frXQQZ|dvXn~f`˂p`ZpfH~tbAdZQJ`ےbdQZ|vpfHHAbےlJtAZdQbtXv`f˂rXQdQZ|vXn~fZ`JXQrrd|nXv`bHAZpZ|d~f`JXQrAd|lJtA~HfpJ`ےrtAJlvpfHvXnQXb㉀f۝`v|drbHAZpdrtA~f``JXQrrd|lJtA~HfJ`ےdrtAJvpfHHAbے˂pZZdQbtf~H˂rXQrtAJbvXnۉ˂pZHZdQbtrd|vnXbHAZpˑtbd~f`vpfHۑpJAHrXnvˍQtJl˂JltvXn˂pZZdQbtrdfpvnbHAZpltb~f``JXQrHAbےlJtAXv`fJ`ےdQZ|vpfHAbے`lJtAZdQbtv`frXQQZ|dvXn~fr󙐂ˁ`ZpfH~tbAdZbHAZpbdQZ|vpfHHAbےlJtA~HfXv`f˂rXQdQZ|vXn˂pZ`JXQrrd|~HfbHAZpdrtAJ~f`JXQrrd|lJtA~HfpJ`ےrtAJlvpfH˂pZHQXAHrf۝`v|drrXQdrtAJ~f``JXQrrd|pvn~HfJ`ےdrtAJvpfHHAbے˂pZZdQbtpvn˂bltbvXnۉ˂pZHZdQbtrdfvnXbHAZpˑtbd~f`Abے`ˁ`ZQXnvˍQtJlJ`ے㑒bdQZvXn˂pZZdQbtXv`fpvnbHAZpltb~f``JXQrHAے`lJtAXv`fHAZp˂dQZ|vpfHAbے`lJtA~Hfpv`frXQQZ|dvXnہJXQrXb㉀ۑpfH~tbAdZbHAZp|drvpfHHAbےlJtA~HfXv`f˂rXQdQZ|vXn˂pZJXQrbrd|~HXrXQJdrtAJ~f`JXQrrd|vnX~HfpJ`ےrtAJlvpfH˂pZHpJAHrf۝`v|drbHtAJl~f``JXQrrd|pvnHfpJ`ےdrtAJvpfHHAbےtlJZdQbtv`f`ےbbdQZ|vXnۉ˂pZHZdQbtv`fvnXbHAZpˑtbd~f`Abːˁ`ZQXnvˍQtJlAZdtbdQZvXn˂pZZdQbtXv`fvnrbHAZpltb~f``JXQrtAd|lJtA~HfpHAZp˂drtvpfHAbے`lJtA~Hfpv`frXQQZ|dvXnۂpZHAXAHr󙐂pfH~tbAdZrtAJb|AJlvpfHHAbےlJtA~HfXQJ`ے˂rXQdQZ|vXn˂pZZdQbtrd|vnXbHAAJlt~f`JXQrrd|vnXHfpJ`ےrtAJlvpfHbے`ˁ`ZQXbf۝`v|drdQZ|tbn~f``JXQrrd|pvnHAZpJ`ےdrtAJvpfHHAbےlJtAZdQbtv`pvZdrbdQZ|vXnۉ˂pZHZdQbtv`fvnrXbHAZpˑtbd~f`JXQr㉀ۑpJXnvˍQtJldrtAJvpfvXn˂pZZdQbtXv`f˂rXQbHAZpltb~f``JXQrrd|lJtAnrXQtAJbdAJlvpfHAbے`lJtA~HfpQJ`ےrXQQZ|dvXnۂpZHAAHr󙐂pfH~tbAdZltbHf`vpfHHAbےlJtA~HfJ`ے˂rXQdQZ|vXn˂pZZdQbtrdfJ`p˂QZ|dtbn~f`JXQrrd|vnXHAZpJ`ےrtAJlvpfHb˂pˁ`ZQXAf۝`v|drdQZ|vXn~f``JXQrrd|pvnbHAZpJ`ےdrtAJvpfHHAbےlJtA~HXrXQJrtAJlvpfHvXnۉ˂pZHZdQbtv`frXQbHAZpˑtbd~f`ZHAbHr󙐂ˁXnvˍQtJldrtAJvpfHvXn˂pZZdQbtXv`f˂rXQbHAZltb~f``JXQrrd|v`f`ےbtbdf`vpfHAbے`lJtA~HfpJ`ےむrXQQZ|dvXnۙے`JX`ZQXbpfH~tbAdZbdQZ|~f`vpfHHAbےlJtA~HfJ`ےdrtAJdQZ|vXn˂pZZdQbt~HfpHAZp˂QZ|dvXn~f`JXQrrd|vnXbHAZpJ`ےrtAJlvpfHQr˂pۑpJAf۝`v|drdrtvXn~fZ`JXQrrd|pvnbHAZpltbdrtAJvpfHHAbےlJtAvnXbHArtAJvpfHvXnۉ˂pZHZdQbtv`frXQbHAZdtbd~f`ZHAbHr󙐂ˁXnvˍQtJlAJltvpfHHAbے˂pZZdQbtXv`f˂rXQdQZ|ltb~f``JXQrrd|v`fZp˂bdQZ|~f`vpfHAbے`lJtA~HfpJ`ےrtAJlQZ|dvXnۙ˂p`ZQXAHrpfH~tbAdZbdQZ|~f``JXQrHAbےlJtA~HfJ`ےdrtAJdQZ|vXn˂pZZdQbt~HXvrXQJ`drtAvXn~fZHJXQrrd|vnXbHAZpˑtbdrtAJlvpfHZHAb󙐂ˁ`Zf۝`v|drdrtvXn˂pZ`JXQrrd|pvnbHAZpltbdtAJlvpfHHAbےlJtA`f~ےbHAJltvpfHAbے`˂pZHZdQbtv`frXQQZ|dtbd~f``JXQQXb㉀XnvˍQtJlAJbdQvpfHHAbے˂pZZdQbtXv`f˂rXQdQZ|tbn~f``JXQrrd|HfpvZp˂bdQZ|~f`JXQrAbے`lJtA~HfpJ`ےrtAJlQZ|dvXnr˂pۑpJAHrpfH~tbAdZZ|d~f``JXQrHAے`lJtA~HfJ`ےdrtAJvpfvXn˂pZZdQbtnXvbHAZdrtAvXnۉ˂pZHJXQrrd|vnXbHAZpˑtbdtAJlvpfHZHAb󙐂ˁ`f۝`v|drrtAJlvXn˂pZJXQrbrd|pvnbHAZpltbHf`vpfHHAbےlJtA`f~p˂rJbdQvpfHAbے`˂pZHZdQbtv`frXQQZ|dtbn~f`˂pZHpfH~XnvˍQtJltbdQvpfHHAbےtlJZdQbtXv`f˂rXQdQZ|vXn~f``JXQrrd|HXv`XQJ`ےZ|d~f`JXQrAے`lJtA~HfpJ`ےrtAJlvpfHvXnAbے`f۝`vp|drtbAdZ|yz{|}~~}|{zIIIJJJJJJJJJJJJJJJJJJJJJJJ \ No newline at end of file diff --git a/vendor/endroid/qr-code/assets/data/qrv28_1.dat b/vendor/endroid/qr-code/assets/data/qrv28_1.dat deleted file mode 100755 index ac9d23bbd..000000000 --- a/vendor/endroid/qr-code/assets/data/qrv28_1.dat +++ /dev/null @@ -1,257 +0,0 @@ -~}~}~}~}~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwwwwwwxwxuvuvuvuvuvuvuvuvststststststststststststqrqrqrqrqrqrqrqropopopopopopopopopopopopmnmnmnmnmnmnmnmnklklklklklklklklklklklklijijijijijijijijghghghghghghghghgfefefefefefefefefefefefcdcdcdcdcdcdcdcdabababababababab_`_`_`_`______`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGEFEFEFEFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCDABABABABABABABAB?@?@?@?@?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=>;<;<;<;<;<;<;<;<;<;<;<;<9:9:9:9:9:9:9:9:7878787878787878787878785656565656565656343434343434343412121212121212120/0/0////0/0/0/0.-.-.-.-.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!            ~}~}~}~}~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwwxwxwxwxuvuvuvuvuvuvuvuvststststststststststststqrqrqrqrqrqrqrqropopopopopopopopopopopopmnmnmnmnmnmnmnmnklklklklklklklklkjijijijijijijijijijijijghghghghghghghghefefefefefefefefefefefefcdcdcdcdcdcdcdcdabababababababab_`_`_`_``_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDCDCDCDCDABABABABABABABAB?@?@?@?@?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=>;<;<;<;<;<;<;<;<;<;<;<;<9:9:9:9:9:9:9:9:787878787878787878787878565656565656565634343434343434341212121212121212///0/0/0/0/0/0/0.-.-.-.-.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)*)*)*)('('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!            ~}~}~}~}~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwwwwwwxwxwxwxwxuvuvuvuvuvuvuvuvststststststststststststqrqrqrqrqrqrqrqropopopopopopopoponmnmnmnmnmnmnmnmnmnmnmnklklklklklklklklijijijijijijijijijijijijghghghghghghghghefefefefefefefefefefefefcdcdcdcdcdcdcdcdabababababababab_`______`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGGGGGGHGHEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDCDCDCDCDABABABABABABABAB?@?@?@?@?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=>;<;<;<;<;<;<;<;<;<;<;<;<9:9:9:9:9:9:9:9:787878787878787878787878565656565656565634343434343434341212121212121212/0/0/0/0/0/0/0/0.-.-.-.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!            ~}~}~}~}~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyzyzyxwxwwxwxwxwxwxwxwxwxuvuvuvuvuvuvuvuvststststststststsrqrqrqrqrqrqrqrqrqrqrqropopopopopopopopmnmnmnmnmnmnmnmnmnmnmnmnklklklklklklklklijijijijijijijijijijijijghghghghghghghghefefefefefefefefefefefefcdcdcdcdcdcdcdcdababababababa`_``_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDCDCDCDCDABABABABABABABAB?@?@?@?@?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=>;<;<;<;<;<;<;<;<;<;<;<;<9:9:9:9:9:9:9:9:787878787878787878787876565656565656565634343434343434341212121212121212/0/0/0/0/0/0/0//.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!            ~}~}~}~}~}~}~}~}~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyxwxwwwwwwxwxwxwxwxwxwxwuuvuvuvuvuvuvuvuvststststststststqrqrqrqrqrqrqrqrqrqrqrqropopopopopopopopmnmnmnmnmnmnmnmnmnmnmnmnklklklklklklklklijijijijijijijijijijijijghghghghghghghghefefefefefefefefefefefefcdcdcdcdcdcdcdcbabababab_`_`____`_`_`_`_`_`_____^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGGGGGGHGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDCDCDCDCDABABABABABABABAB?@?@?@?@?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=>;<;<;<;<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9:787878787878787856565656565656565656565634343434343434341212121212121212/0/0/0/0////0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!            ~}~}~}~}~}~}~}~}~}~}~}~}|{|{|{|{|{|{|{zyzyzyzyzywxwxwxwxwxwxwxwxuuuuuvuvuvuvuvuvuvuvuvuvststststststststqrqrqrqrqrqrqrqrqrqrqrqropopopopopopopopmnmnmnmnmnmnmnmnmnmnmnmnklklklklklklklklijijijijijijijijijijijijghghghghghghghghefefefefefefefefefefefefcdcdcdcdabababababababab__`_`_`_`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIJIHGHGGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDCDCDCDCDABABABABABABABAB?@?@?@?@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=>;<;<;<;<;<;<;<;<9:9:9:9:9:9:9:9:9:9:9:9:787878787878787856565656565656565656565634343434343434341212121212121212/0/0/0/00/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!           ~}~}~}~}~}~}~}~}~}~}~}~}|{|{|{|{zyzyzyzyzyzyzyzywxwxwxwxwxwxwxwxuvuvuvuvuvuvuvuvuvuvuvuvststststststststqrqrqrqrqrqrqrqrqrqrqrqropopopopopopopopmnmnmnmnmnmnmnmnmnmnmnmnklklklklklklklklijijijijijijijijijijijijghghghghghghghghefefefefefefefefedcdcdcdcdcdcdcdabababababababab`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMNMNMNMNMLKLKLKLKLKLKLKJIJIJIJIJIHGHGGGGGGHGHGHGHGHGGGGGHEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDCDCDCDCBABABABABABABABAB?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=>=>=>=>=>;<;<;<;<;<;<;<;<9:9:9:9:9:9:9:9:9:9:9:9:787878787878787856565656565656565656565634343434343434341212121212121212//////0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!"!        ~}~}~}~}~}~}~}~}~}~}~}~}|{|{|{|{zyzyzyzyzyzyzyzywxwxwxwxwxwxwwwwuvuvuvuvuvuvuvuvuvuvuvuvststststststststqrqrqrqrqrqrqrqrqrqrqrqropopopopopopopopmnmnmnmnmnmnmnmnmnmnmnmnklklklklklklklklijijijijijijijijihghghghghghghghghghghghefefefefefefefefcdcdcdcdcdcdcdcdabababababababab`_`_`_`_`_`_`___^]^]^]^]^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMNMNMNMNMLKLKLKLKJIJIJIJIJIJIJIJIGHGHGHGHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDABABABABABABABABABABABAB?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=>=>=>=>=>;<;<;<;<;<;<;<;<9:9:9:9:9:9:9:9:9:9:9:9:78787878787878785656565656565656565656563434343434343434121212121210/0/00/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('('('('&%&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!"!"!"!"!        ~}~}~}~}~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzywxwxwxwxwwxwxwxwuvuvuvuvuvuvuvuvuvuvuvuvststststststststqrqrqrqrqrqrqrqrqrqrqrqropopopopopopopopmnmnmnmnmnmnmnmnmlklklklklklklklklklklklijijijijijijijijghghghghghghghghghghghghefefefefefefefefcdcdcdcdcdcdcdcdabababababababab`_`_`_`____`_`_`^]^]^]^]^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDABABABABABABABABABABABAB?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=>=>=>=>=>;<;<;<;<;<;<;<;<9:9:9:9:9:9:9:9:9:9:9:9:7878787878787878565656565656565656565656343434343434321212121212/0//////0/0/0/0/0/////0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!"!"!"!"!        ~}~}~}~}~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzywxwxwxwwxwxwxwxwuvuvuvuvuvuvuvuvuvuvuvuvststststststststqrqrqrqrqrqrqrqrqpopopopopopopopopopopopmnmnmnmnmnmnmnmnklklklklklklklklklklklklijijijijijijijijghghghghghghghghghghghghefefefefefefefefcdcdcdcdcdcdcdcdabababababababab`_`_`_`__`_`_`_`^]^]^]^]^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIGHGHGHGHGHGHGGGGEFEFEFEFEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDABABABABABABABABABABABAB?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=>=>=>=>=>;<;<;<;<;<;<;<;<9:9:9:9:9:9:9:9:9:9:9:9:78787878787878785656565656565656565656543434343412121212121212120/0/0/0/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!"!"!"!"!        ~}~}~}~}~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzywwwwxwxwxwxwxwxwuvuvuvuvuvuvuvuvutstststststststststststqrqrqrqrqrqrqrqropopopopopopopopopopopopmnmnmnmnmnmnmnmnklklklklklklklklklklklklijijijijijijijijghghghghghghghghghghghghefefefefefefefefcdcdcdcdcdcdcdcdabababababababab_____`_`_`_`_`_`^]^]^]^]^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIGHGHGHGHGGHGHGHGEFEFEFEFEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDABABABABABABABABABABABAB?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=>=>=>=>=>;<;<;<;<;<;<;<;<9:9:9:9:9:9:9:9:9:9:9:9878787878787878785656565656565656343434343434343412121212121212120/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!"!"!"!"!        ~}~}~}~}~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwuvuvuvuvuvuvuvuvststststststststststststqrqrqrqrqrqrqrqropopopopopopopopopopopopmnmnmnmnmnmnmnmnklklklklklklklklklklklklijijijijijijijijghghghghghghghghghghghghefefefefefefefefcdcdcdcdcdcdcdcdabababababababab_`_`_`_`_`_`_`_`^]^]^]^]^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIGHGHGHGGHGHGHGHGEFEFEFEFEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDABABABABABABABABABABABAB?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;<9:9:9:9:9:9:9:9:7878787878787878787878785656565656565656343434343434343412121212121212120/0/0/0/0/0/////.-.-.-.-.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!"!"!"!"!        ~}~}~}~}~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwuvuvuvuvuvuvuvuvststststststststststststqrqrqrqrqrqrqrqropopopopopopopopopopopopmnmnmnmnmnmnmnmnklklklklklklklklklklklklijijijijijijijijghghghghghghghghghghghghefefefefefefefefcdcdcdcdcdcdcdcdabababababababab_`_`_`_`_`_`_`_`^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIGGGGHGHGHGHGHGHGEFEFEFEFEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDABABABABABABABABABABABA@?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=>;<;<;<;<;<;<;<;<;<;<;<;<9:9:9:9:9:9:9:9:7878787878787878787878785656565656565656343434343434343412121212121212120/0/0/0//0/0/0/0.-.-.-.-.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!"!"!"!                      - - - - - - - - - - - -             - - - - - - - - - - - -             - - - - - - - - - - - -             - - - - - - - - - - - -             - - - - - - - - - -            - - - - - - - -         - - - - - - - -         - - - - - - - -         - - - - - - - -         - - - - - - - -         - - - - - - - -         - - - - - - - - - -          - - - - - - - - - - - -~~}}LLKKJJII--..//00aabbccddggffee__$$##""!!++,,--..nnooppqqUUTTSSRR$%%&&''(XYYZZ[[\uttssrrqA@@??>>= - - ())**++,\]]^^__`qppoonnm=<<;;::9 ,--..//0`aabbccdmllkkjji9887766501122334deeffgghihhggffe5443322145566778hiijjkkl[ZZYYXXW*++,,--.mnnooppqVUUTTSSR QQRRSSTT||{{zzyyHHGGFFEE!!""##$$UUVVWWXXxxwwvvuuDDCCBBAA %%&&''((YYZZ[[\\ttssrrqq@@??>>== - - ))**++,,]]^^__``ppoonnmm<<;;::99--..//00aabbccddggffee__$$##""!!##$$%%&&ffgghhii]]\\[[ZZ$$##""!!IJJKKLLM}~~POONNMMLMNNOOPPQ~~}}|LKKJJIIH !QRRSSTTU|{{zzyyxHGGFFEED!""##$$%UVVWWXXYxwwvvuutDCCBBAA@ %&&''(()YZZ[[\\]onnmmllk,++**))(YZZ[[\\]ggffeedc,++**))(BBCCDDEEvvwwxxyyWWVVUUTT##""!! FFGGHHIIzz{{||}}SSRRQQPPJJKKLLMM~~OONNMMLLNNOOPPQQ~~}}||KKJJIIHH !!RRSSTTUU||{{zzyyHHGGFFEE11223344eeffgghh^^]]\\[[ //556677rrssttuuQQPPOONN())**++,\]]^^__`qppoonnm=<<;;::9 ,--..//0`aabbccdmllkkjji9887766501122334deeffgghihhggffe5443322145566778hiijjkkleddccbba100//..-899::;;>== - - ))**++,,]]^^__``ppoonnmm<<;;::99--..//00aabbccddllkkjjii8877665511223344eeffgghh^^]]\\[[ ''(())**jjkkllmmYYXXWWVV MNNOOPPQ~~}}|LKKJJIIH !QRRSSTTU|{{zzyyxHGGFFEED!""##$$%UVVWWXXYxwwvvuutDCCBBAA@ %&&''(()YZZ[[\\]tssrrqqp@??>>==< - - )**++,,-]^^__``akjjiihhg(''&&%%$ !!""#]^^__eefba`__^^](''&&%%$FFGGHHIIzz{{||}}SSRRQQPPJJKKLLMM~~OONNMMLLNNOOPPQQ~~}}||KKJJIIHH !!RRSSTTUU{{zzyyxxGGFFEEDD""##$$%%VVWWXXYYxxwwvvuuDDCCBBAA 55667788iijjkkllZZYYXXWW8899::;;vvww}}~~MMLKJIHG,--..//0`aabbccdmllkkjji9887766501122334deeffgghihhggffe5443322145566778hiijjkkleddccbba100//..-899::;;>??@pqqrrsstSRRQQPPO 78899::;uvvww}}~NMMLKJIH%%&&''((YYZZ[[\\ttssrrqq@@??>>== - - ))**++,,]]^^__``ppoonnmm<<;;::99--..//00aabbccddllkkjjii8877665511223344eeffgghhhhggffee4433221155667788iijjkkllZZYYXXWW++,,--..nnooppqqUUTTSSRR !QRRSSTTU|{{zzyyxHGGFFEED!""##$$%UVVWWXXYxwwvvuutDCCBBAA@ %&&''(()YZZ[[\\]tssrrqqp@??>>==< - - )**++,,-]^^__``apoonnmml<;;::998-..//001abbccddegffee__^$##""!! #$$%%&&'fgghhiij]\\[[ZZY$##""!! JJKKLLMM~~OONNMMLLNNOOPPQQ~~}}||KKJJIIHH !!RRSSTTUU{{zzyyxxGGFFEEDD""##$$%%VVWWXXYYwwvvuuttCCBBAA@@ &&''(())ZZ[[\\]]ttssrrqq@@??>>== - - 99::;;<>??GFFEEDDC -01122334deeffgghihhggffe5443322145566778hiijjkkleddccbba100//..-899::;;>??@pqqrrsst]\\[[ZZY)((''&&% @AABBCCDtuuvvwwxONNMMGGF - - ;<<==>>?~GGFFEEDD ))**++,,]]^^__``ppoonnmm<<;;::99--..//00aabbccddllkkjjii8877665511223344eeffgghhhhggffee4433221155667788iijjkkllddccbbaa00//..--99::;;<>==< - - )**++,,-]^^__``apoonnmml<;;::998-..//001abbccddelkkjjiih8776655412233445effgghhi^]]\\[[Z '(())**+jkkllmmnYXXWWVVU NNOOPPQQ~~}}||KKJJIIHH !!RRSSTTUU{{zzyyxxGGFFEEDD""##$$%%VVWWXXYYwwvvuuttCCBBAA@@ &&''(())ZZ[[\\]]ssrrqqpp??>>==<< - - **++,,--^^__``aavvuuttssppoonnmm<<;;::99 - - ==>>??@@qqrrssttRRQQPPOO @@AABBCC~~}}|{zyCBBAA@@? - 45566778hiijjkkleddccbba100//..-899::;;>??@pqqrrsst]\\[[ZZY)((''&&% @AABBCCDtuuvvwwxYXXWWVVU%$$##""!DEEFFGGHxyyzz{{|FEEDDCCB?@@AABBC~~}}|{zCCBBAA@@ - - --..//00aabbccddllkkjjii8877665511223344eeffgghhhhggffee4433221155667788iijjkkllddccbbaa00//..--99::;;<>??@@qqrrssttRRQQPPOO 8899::;;vvww}}~~MMLKJIHG%&&''(()YZZ[[\\]tssrrqqp@??>>==< - - )**++,,-]^^__``apoonnmml<;;::998-..//001abbccddelkkjjiih8776655412233445effgghhihggffeed4332211056677889ijjkkllmZYYXXWWV+,,--../nooppqqrUTTSSRRQ !!RRSSTTUU{{zzyyxxGGFFEEDD""##$$%%VVWWXXYYwwvvuuttCCBBAA@@ &&''(())ZZ[[\\]]ssrrqqpp??>>==<< - - **++,,--^^__``aaoonnmmll;;::9988..//0011bbccddeerrqqppoollkkjjii88776655 AABBCCDDuuvvwwxxNNMMGGFF - - DDEEFFGGxwwvvuut?>>==<<;899::;;>??@pqqrrsst]\\[[ZZY)((''&&% @AABBCCDtuuvvwwxYXXWWVVU%$$##""!DEEFFGGHxyyzz{{|UTTSSRRQ! HIIJJKKL|}}~~BAA@@??> CDDEEFFGyxwwvvuu??>>==<<11223344eeffgghhhhggffee4433221155667788iijjkkllddccbbaa00//..--99::;;<>??@@qqrrsstt\\[[ZZYY((''&&%% AABBCCDDuuvvwwxxNNMMGGFF - - <<==>>??GFFEEDDC -)**++,,-]^^__``apoonnmml<;;::998-..//001abbccddelkkjjiih8776655412233445effgghhihggffeed4332211056677889ijjkkllmdccbbaa`0//..--, 9::;;<<=mnnooppqVUUTTSSR/5566778rssttuuvQPPOONNM""##$$%%VVWWXXYYwwvvuuttCCBBAA@@ &&''(())ZZ[[\\]]ssrrqqpp??>>==<< - - **++,,--^^__``aaoonnmmll;;::9988..//0011bbccddeekkjjiihh7766554422334455ffgghhiinnmmllkkhhggffee44332211EEFFGGHHyyzz{{||EEDDCCBB - - MMNNOOPPtssrrqqp;::99887 - - <==>>??@pqqrrsst]\\[[ZZY)((''&&% @AABBCCDtuuvvwwxYXXWWVVU%$$##""!DEEFFGGHxyyzz{{|UTTSSRRQ! HIIJJKKL|}}~~QPPOONNMLMMNNOOP~~}>==<<;;: - - GMMNNOOPttssrrqq;;::998855667788iijjkkllddccbbaa00//..--99::;;<>??@@qqrrsstt\\[[ZZYY((''&&%% AABBCCDDuuvvwwxxXXWWVVUU$$##""!!EEFFGGHHyyzz{{||EEDDCCBB@@AABBCC~~}}|{zyCBBAA@@? - -..//001abbccddelkkjjiih8776655412233445effgghhihggffeed4332211056677889ijjkkllmdccbbaa`0//..--, 9::;;<<=mnnooppq`__^^]]\,++**))( - - =>>??@@AqrrssttuRQQPPOON 899::;;>==<< - - **++,,--^^__``aaoonnmmll;;::9988..//0011bbccddeekkjjiihh7766554422334455ffgghhiiggffeedd3322110066778899jjkkllmmjjiihhggddccbbaa00//..--IIJJKKLL}}~~AA@@??>>QQRRSSTTpoonnmml76655432 @AABBCCDtuuvvwwxYXXWWVVU%$$##""!DEEFFGGHxyyzz{{|UTTSSRRQ! HIIJJKKL|}}~~QPPOONNMLMMNNOOP~~}MLLKKJJI PQQRRSST}wwvvuut:9988776 PQQRRSSTppoonnmm7766554399::;;<>??@@qqrrsstt\\[[ZZYY((''&&%% AABBCCDDuuvvwwxxXXWWVVUU$$##""!!EEFFGGHHyyzz{{||TTSSRRQQ IIJJKKLL}}~~AA@@??>> DDEEFFGGxwwvvuut?>>==<<;12233445effgghhihggffeed4332211056677889ijjkkllmdccbbaa`0//..--, 9::;;<<=mnnooppq`__^^]]\,++**))( - - =>>??@@Aqrrssttu\[[ZZYYX(''&&%%$ ABBCCDDEuvvwwxxyNMMGGFFE - - <==>>??@~FFEEDDCC - -**++,,--^^__``aaoonnmmll;;::9988..//0011bbccddeekkjjiihh7766554422334455ffgghhiiggffeedd3322110066778899jjkkllmmccbbaa``//..--,, ::;;<<==nnooppqqffee__^^``__^^]],,++**))MMNNOOPP~~}}==<<;;::UUVVWWXXlkkjjiih10//..--DEEFFGGHxyyzz{{|UTTSSRRQ! HIIJJKKL|}}~~QPPOONNMLMMNNOOP~~}MLLKKJJI PQQRRSST}||{{zzyIHHGGFFE !!""##$TUUVVWWXtssrrqqp655//..-TUUVVWWXllkkjjii210//..- - - ==>>??@@qqrrsstt\\[[ZZYY((''&&%% AABBCCDDuuvvwwxxXXWWVVUU$$##""!!EEFFGGHHyyzz{{||TTSSRRQQ IIJJKKLL}}~~PPOONNMMMMNNOOPP~~}}==<<;;:: - - MMNNOOPPtssrrqqp;::9988756677889ijjkkllmdccbbaa`0//..--, 9::;;<<=mnnooppq`__^^]]\,++**))( - - =>>??@@Aqrrssttu\[[ZZYYX(''&&%%$ ABBCCDDEuvvwwxxyXWWVVUUT$##""!! EFFGGHHIyzz{{||}EDDCCBBA@AABBCCD~}}|{zyxBBAA@@?? ..//0011bbccddeekkjjiihh7766554422334455ffgghhiiggffeedd3322110066778899jjkkllmmccbbaa``//..--,, ::;;<<==nnooppqq__^^]]\\++**))(( - - >>??@@AArrssttuu]]\\[[ZZ\\[[ZZYY((''&&%% QQRRSSTTwwvvuutt99887766YYZZ[[\\hggffeed,,++**))HIIJJKKL|}}~~QPPOONNMLMMNNOOP~~}MLLKKJJI PQQRRSST}||{{zzyIHHGGFFE !!""##$TUUVVWWXyxxwwvvuEDDCCBBA $%%&&''(XYYZZ[[\poonnmml-,,++**)XYYZZ[[\hhggffee-,,++**) AABBCCDDuuvvwwxxXXWWVVUU$$##""!!EEFFGGHHyyzz{{||TTSSRRQQ IIJJKKLL}}~~PPOONNMMMMNNOOPP~~}}LLKKJJII QQRRSSTTwwvvuutt99887766QQRRSSTTpoonnmml76655432 9::;;<<=mnnooppq`__^^]]\,++**))( - - =>>??@@Aqrrssttu\[[ZZYYX(''&&%%$ ABBCCDDEuvvwwxxyXWWVVUUT$##""!! EFFGGHHIyzz{{||}TSSRRQQP IJJKKLLM}~~A@@??>>= -DEEFFGGMwwvvuutt>>==<<;;22334455ffgghhiiggffeedd3322110066778899jjkkllmmccbbaa``//..--,, ::;;<<==nnooppqq__^^]]\\++**))(( - - >>??@@AArrssttuu[[ZZYYXX''&&%%$$BBCCDDEEvvwwxxyyYYXXWWVVXXWWVVUU$$##""!!!!""##$$UUVVWWXXssrrqqpp55//..-- !!""]]^^__eecba`__^^((''&&%%LMMNNOOP~~}MLLKKJJI PQQRRSST}||{{zzyIHHGGFFE !!""##$TUUVVWWXyxxwwvvuEDDCCBBA $%%&&''(XYYZZ[[\uttssrrqA@@??>>= - - ())**++,\]]^^__`lkkjjiih)((''&&% !!"\]]^^__edcba`__^)((''&&%EEFFGGHHyyzz{{||TTSSRRQQ IIJJKKLL}}~~PPOONNMMMMNNOOPP~~}}LLKKJJII QQRRSSTT||{{zzyyHHGGFFEE!!""##$$UUVVWWXXssrrqqpp55//..--UUVVWWXXlkkjjiih10//..-- - - =>>??@@Aqrrssttu\[[ZZYYX(''&&%%$ ABBCCDDEuvvwwxxyXWWVVUUT$##""!! EFFGGHHIyzz{{||}TSSRRQQP IJJKKLLM}~~POONNMMLMNNOOPPQ~~}}w=<<;;::9 - MNNOOPPQssrrqqpp::99887766778899jjkkllmmccbbaa``//..--,, ::;;<<==nnooppqq__^^]]\\++**))(( - - >>??@@AArrssttuu[[ZZYYXX''&&%%$$BBCCDDEEvvwwxxyyWWVVUUTT##""!! FFGGHHIIzz{{||}}UUTTSSRRTTSSRRQQ %%&&''((YYZZ[[\\oonnmmll,,++**))##$$%%&&ffgghhii]]\\[[ZZ$$##""!! PQQRRSST}||{{zzyIHHGGFFE !!""##$TUUVVWWXyxxwwvvuEDDCCBBA $%%&&''(XYYZZ[[\uttssrrqA@@??>>= - - ())**++,\]]^^__`qppoonnm=<<;;::9 ,--..//0`aabbccdhggffee_%$$##""!"##$$%%&effgghhi^]]\\[[Z%$$##""!IIJJKKLL}}~~PPOONNMMMMNNOOPP~~}}LLKKJJII QQRRSSTT||{{zzyyHHGGFFEE!!""##$$UUVVWWXXxxwwvvuuDDCCBBAA %%&&''((YYZZ[[\\oonnmmll,,++**))YYZZ[[\\hggffeed,,++**)) ABBCCDDEuvvwwxxyXWWVVUUT$##""!! EFFGGHHIyzz{{||}TSSRRQQP IJJKKLLM}~~POONNMMLMNNOOPPQ~~}}|LKKJJIIH !QRRSSTTUwvvuutts98877665QRRSSTTUoonnmmll66554321 ::;;<<==nnooppqq__^^]]\\++**))(( - - >>??@@AArrssttuu[[ZZYYXX''&&%%$$BBCCDDEEvvwwxxyyWWVVUUTT##""!! FFGGHHIIzz{{||}}SSRRQQPPJJKKLLMM~~QQPPOONNPPOONNMM))**++,,]]^^__``kkjjiihh((''&&%%''(())**jjkkllmmYYXXWWVV  !!""##$TUUVVWWXyxxwwvvuEDDCCBBA $%%&&''(XYYZZ[[\uttssrrqA@@??>>= - - ())**++,\]]^^__`qppoonnm=<<;;::9 ,--..//0`aabbccdmllkkjji9887766501122334deeffggh_^^]]\\[! &''(())*ijjkkllmZYYXXWWV! MMNNOOPP~~}}LLKKJJII QQRRSSTT||{{zzyyHHGGFFEE!!""##$$UUVVWWXXxxwwvvuuDDCCBBAA %%&&''((YYZZ[[\\ttssrrqq@@??>>== - - ))**++,,]]^^__``kkjjiihh((''&&%% !!""]]^^__eecba`__^^((''&&%%EFFGGHHIyzz{{||}TSSRRQQP IJJKKLLM}~~POONNMMLMNNOOPPQ~~}}|LKKJJIIH !QRRSSTTU|{{zzyyxHGGFFEED!""##$$%UVVWWXXYsrrqqppo5//..--,UVVWWXXYkkjjiihh0//..--, - - >>??@@AArrssttuu[[ZZYYXX''&&%%$$BBCCDDEEvvwwxxyyWWVVUUTT##""!! FFGGHHIIzz{{||}}SSRRQQPPJJKKLLMM~~OONNMMLLNNOOPPQQ~~}}wwMMGGFFEEDDCCBBAAAABBCCDD}}|{zyxwBAA@@??> .//00112bccddeefkjjiihhg7665544323344556fgghhiijgffeeddc3221100/6778899:jkkllmmncbbaa``_/..--,,+ -:;;<<==>nooppqqrRQQPPOON @AABBCCDmllkkjji98877665 @AABBCCD@@??>>== - -EEFFGGMMwvvuutts>==<<;;:23344556fgghhiijgffeeddc3221100/6778899:jkkllmmncbbaa``_/..--,,+ -:;;<<==>nooppqqr_^^]]\\[+**))((' - >??@@AABrssttuuvNMMGGFFE - - -DEEFFGGMihhggffe54433221DEEFFGGH<<;;::99 NNOOPPQQsrrqqppo:99887766778899:jkkllmmncbbaa``_/..--,,+ -:;;<<==>nooppqqr_^^]]\\[+**))((' - >??@@AABrssttuuv[ZZYYXXW'&&%%$$#BCCDDEEFvwwxxyyzEDDCCBBA - MNNOOPPQeddccbba100//..-HIIJJKKL88776655RRSSTTUUonnmmllk65543210 -:;;<<==>nooppqqr_^^]]\\[+**))((' - >??@@AABrssttuuv[ZZYYXXW'&&%%$$#BCCDDEEFvwwxxyyzWVVUUTTS#""!! FGGHHIIJz{{||}}~A@@??>>=QRRSSTTUa``__^^]-,,++**)LMMNNOOP//..--,,VVWWXXYYkjjiihhg//..--,, - >??@@AABrssttuuv[ZZYYXXW'&&%%$$#BCCDDEEFvwwxxyyzWVVUUTTS#""!! FGGHHIIJz{{||}}~SRRQQPPOJKKLLMMN~xxw=<<;;::9UVVWWXXY]\\[[ZZY)((''&&% PQQRRSST++**))((ZZ[[\\]]gffeedcb++**))((BCCDDEEFvwwxxyyzWVVUUTTS#""!! FGGHHIIJz{{||}}~SRRQQPPOJKKLLMMN~ONNMMLLKNOOPPQQRwvvuutts98877665YZZ[[\\]YXXWWVVU%$$##""! !!""##$TUUVVWWX''&&%%$$ !!""##^^__eeffa`__^^]]''&&%%$$FGGHHIIJz{{||}}~SRRQQPPOJKKLLMMN~ONNMMLLKNOOPPQQR~~}}||{KJJIIHHG !!"RSSTTUUVsrrqqppo5//..--, !!""#]^^__eefUTTSSRRQ! $%%&&''(XYYZZ[[\##""!! $$%%&&''gghhiijj\\[[ZZYY##""!! JKKLLMMN~ONNMMLLKNOOPPQQR~~}}||{KJJIIHHG !!"RSSTTUUV{zzyyxxwGFFEEDDC"##$$%%&VWWXXYYZonnmmllk,++**))(#$$%%&&'fgghhiijQPPOONNM())**++,\]]^^__`(())**++kkllmmnnXXWWVVUUNOOPPQQR~~}}||{KJJIIHHG !!"RSSTTUUV{zzyyxxwGFFEEDDC"##$$%%&VWWXXYYZwvvuuttsCBBAA@@? &''(())*Z[[\\]]^kjjiihhg(''&&%%$'(())**+jkkllmmnMLLKKJJI,--..//0`aabbccd,,--..//ooppqqrrTTSSRRQQ !!"RSSTTUUV{zzyyxxwGFFEEDDC"##$$%%&VWWXXYYZwvvuuttsCBBAA@@? &''(())*Z[[\\]]^srrqqppo?>>==<<; - - *++,,--.^__``aabgffee__^$##""!! +,,--../nooppqqrIHHGGFFE01122334deeffggh55667788ssttuuvvPPOONNMM"##$$%%&VWWXXYYZwvvuuttsCBBAA@@? &''(())*Z[[\\]]^srrqqppo?>>==<<; - - *++,,--.^__``aabonnmmllk;::99887.//00112bccddeef^]]\\[[Z /5566778rssttuuuEDDCCBBA 45566778hiijjkkl 99::;;<>==<<; - - *++,,--.^__``aabonnmmllk;::99887.//00112bccddeefkjjiihhg7665544323344556fgghhiijZYYXXWWV899::;;>= - - 899::;;>??@@~~FEEDDCCB - - *++,,--.^__``aabonnmmllk;::99887.//00112bccddeefkjjiihhg7665544323344556fgghhiijgffeeddc3221100/6778899:jkkllmmnVUUTTSSR<==>>??@qppoonnm=<<;;::9 - - <==>>??@pqqrrssttuuZHAbے`JXQr˂p|ZdQbtlJ~HXnXv`HAZp˂J`ےtbdQZJbdQnvpfH~ˑZHAbے`JXQr˂pJtArd|ZdQfpvnXv`fHZp˂rXQJ`ۉbdQZ|drtJltnvpfH~ˑZHAbے`JXrbtlJtArd|ZdQ~HfpXv`bHAZpQJ`ےtbdQAJbdQH~f`vXnے`JXQr˂pZHAb|ZdQbtlJnXv`f~HfpvXQJ`ےbHAZdrtAJltbdQZ|H~f`vXnے`JXQr˂pZHAے|ZdQbtlJ~HXnXv`rXQJbHAZp|drbdQZ|vXnvpfH~fZHAbے`JXQlJtArd|f~HfpvnXv`˙bHAZp˂rXJltbdQZ|drtAvXnvpfHr˂pZHAbے`JXQlJtArd|vnXf~HbHbHAZpdrtAJdrtAvpfH~f`vXn`JXQr˂pZrd|ZdQbtlJtAXv`f~Hf˂rXQJ`ےbHAZdrtAJltbvpfH~f`HAbے`JXQr˂pZrd|ZdQbtے`JXQr˂pZHAbtlJtArdv`ff~HbHAbHAZp|drZ|dfH~f`vXے`JXQr˂pZHAۂ|ZdQbtlnXv`f~HfpvrXQJ`ےbHAdrtAJltbnvpfH~f`vXے`JXQr˂pJtAd|ZdQbtlvnXf~HbHbHAZpZ|dZ|d`vXnvpfr˂pZHAbے`JXQtlJtArdf~HfpvnXv`bHAZp˂rJltbdQZ|dtAJ`vXnvpfr˂pZHAb`JXQrtlJtArdv`ff~H`ےb˂rXQtAJldrtAvpfH~f`ZHAbے`JXQr˂pArd|ZdQbtfpvnXv`f~H˂rXQJ`ےbdQZ|drtAJltvpfH~f`ZHAbے`JXQr˂pArd|ZdQbtv`ffpvAZp˂˂㒉bdQZ|Jlt~f`vXnvpfH˂pZHAbےZdQbtlJtArdf~HfpvnJ`ےbHAZpdrtAJltbdQZ|~f`vXn`JXQr˂pZHAbےZdQbtlJtAr˂pZHAbے`JXQtArd|ZdQb~HfpXv`fZp˂˂btAJbdrtAJlf`vXnvpQr˂pZHAb`JXQbtlJtArdf~HfpvnrXQJ`bHAZp˂AJltbdQZ|fHf`vXnvpQr˂pZHAb|ZdQbtlJtArdv`ffpvAZp˂˂rtAJbrtAJlvpfH~fZHAbے`JXQr˂ptArd|ZdQbfpvnXv`fHfp˂rXQJ`ےbdQZ|drtAltbvpfH~fZHAbے`JXQbtltArd|ZdQb~HfpXv`fHAZp˂J`ےtbdQZJbdQ~f`vXn`JXQr˂pZHAbہZdQbtlJtnXv`f~HfpvQJ`ےbHAZpdrtAJltbdQZ|~f`vXn`JXQr˂pZHAے`ZdQbtlJt~HXnXv`ˉrXQJ`bHAZpˁdrtbdQZ|vXnvpfH~fZHAbے`JXQrlJtArd|~HfpvnXv`fbHAZp˂rXQltbdQZ|drtAJvXnvpfH˂pZHAbے`JXQrlJtArd|ZHAbے`JXQr˂p|ZdQbtlJvnX~HfrXQJ`HAZdQZ|dtbdQnvpfH~ˑZHAbے`JXrbtlJtArd|ZdQfpvnXv`ےHAZp˂rXQJ`ۉbdQZ|drtf`vXnvpfH~ˑZHAbے`JXbtlJtArd|ZdQ~HXnXv`prXQJ`bHAZddQZ|tbdQH~f`vXnے`JXQr˂pZHAے|ZdQbtlJnXv`f~HpvnXQJ`ےbHAZdrtAJltnvpH~f`vXnے`JXQr˂pJtAd|ZdQbtlJvnX~HfbHAbHAZp|drZ|dvXnvpfHr˂pZHAbے`JXQlJtArd|f~HfpvnXv`˙bHAZp˂rXJltbdQZ|dtAJlvXnvpfHr˂pZHAbہJXQrlJtArd|v`ff~HXےbHrXQAJltdrtAJvpfH~f`HAbے`JXQr˂pZrd|ZdQbtpvnXv`f~Hf˂rXQJ`ےdQZ|drtAJltbvpfH~f`HAbے`JXQr˂pZrd|ZdQbtv`fے`JXQr˂p|ZdQbtlJtArdv`fpvnےbHArtAJrtAJlZ|dnfH~f`vXے`JXQr˂pJtAd|ZdQbtlnXv`f~HZp˂rXQJ`ےbHAdrtAJltnvpfH~f`vXے`JXQr˂pJtArd|ZdQbtlv`fvnےbHrtAJdrtAJZ|AJ`vXnvpfr˂pZHAb`JXQrtlJtArdf~HfpvrXQJ`bHAZp˂rJltbdQZ|fHf`vXnvpfr˂pZHAb|ZdQbtlJtArdv`fpvnZp˂˂btAJbdrtAJlvpfH~f`ZHAbے`JXQr˂pArd|ZdQbtfpvnXv`fHfp˂rXQJ`ےbdQZ|drtAtbvpfH~f`ZHAbے`JXQbtlArd|ZdQbt~Hfpەv`fAZp˂J`ےbdQZ|bdQZ~f`vXn`JXQr˂pZHAbےZdQbtlJtAXv`f~HfpvnJ`ےbHAZpdrtAJltbdQZ|~f`vXn`JXQr˂pZHAے`ZdQbtlJtA~Hfpr˂pZHAbtlJtArd|ZdQb~HXvXv`pZp˂bdQZ|tbdvff`vXnvpQr˂pZHAb|ZdQbtlJtArdf~HfpvrXQJ`ےbHAZp˂AJltbdQZ|fH~f`vXnvpQr˂pZHAb|ZdQbtlJtArd~HfprXQJ`pAZp˂bdQZ|ltbltbvpfH~fZHAbے`JXQbtltArd|ZdQbfpvnXv`ےHAZp˂rXQJ`ےbdQZ|drtA`vXnvpfH~fZHAbے`JXQtlJtArd|ZdQb~HXvXv`prXQJ`HAZdQZ|dtbdQ~f`vXn`JXQr˂pZHAے`ZdQbtlJtnXv`f~HvnQJ`ےbHAZpdrtAJltnvp~f`vXn`JXQr˂pJtAd|ZdQbtlJtvnX~HfpbHAbHAZpˁdrt|drvXnvpfH˂pZHAbے`JXQrlJtArd|~HfpvnXv`fbHAZp˂rXQltbdQZ|dtAJlvXnvpfH˂pZHAbےJXQrblJtArd|vnXZHAbے`JXQtArd|ZdQbtlJ`f~˂rXQbHAZdrtAQZ|df`vXnvpfH~ˑZHAbے`JXbtlJtArd|ZdQfpvnXv`bHAZp˂rXQJ`ۉbdQZ|drtf`vXnvpfH~ˑZHAbے`JXbtlJtArdf~HvnX˂rXbHAdrtAdQZ|nvpH~f`vXnے`JXQr˂pJtAd|ZdQbtlJnXv`f~Hp˂rXQJ`ےbHAZdrtAJltvpfH~f`vXnے`JXQr˂ptArd|ZdQbtlJ`f~vnrےbHArtAJrtAJlZ|AJlvXnvpfHr˂pZHAbہJXQrlJtArd|f~HfpvrXQJ`ۙbHAZp˂rXJltbdQZ|fHf`vXnvpfHr˂pZHAbہZdQbtlJtArd|v`fvnXZp˂󂀉bHAJbdQtAJlvpfH~f`HAbے`JXQr˂pZrd|ZdQbtpvnXv`fHfp˂rXQJ`ےdQZ|drtAJtbnvpfH~f`HAbے`JXQrtlJrd|ZdQbtv`fے`JXQr˂p|ZdQbtlJtArdHfpvJ`ےp˂rJltrtAJnvpfH~f`vXے`JXQr˂pJtArd|ZdQbtlnXv`f~HZp˂rXQJ`ےbHAdrtAJltnvpfH~fZHAbے`JXQr˂pJtArd|ZdQXv`v`fQJ`ےZp˂JltdrtAJfHf`vXnvpfr˂pZHAb|ZdQbtlJtArdf~HfpvXQJ`ےbHAZp˂rJltbdQZ|H~f`vXnvpfr˂pZHAb|ZdQbtlJtArdHfpvXQJ`pZp˂bdQZ|tbdtbvpfH~f`ZHAbے`JXQbtlArd|ZdQbtfpvnXv`˒HAZp˂rXQJ`ےbdQZ|drtAvXnvpfH~f`ZHAbے`JXQlJtArd|ZdQbt~HXv`v`prXQJ`AZdZ|dtbdQZ~f`vXn`JXQr˂pZHAے`ZdQbtlJtAXv`f~HfvnrJ`ےbHAZpdrtAJltbvpf~f`vXn`JXQr˂pZtAd|ZdQbtlJtA~HXvr˂pZHAbtlJtArdf~HnXvbHAZpXQJ`ےbdQZ|bdQZ|fH~f`vXnvpQr˂pZHAb|ZdQbtlJtArdf~HfpvrXQJ`ےbHAZdrtAJltbdQZ|fH~f`vXے`JXQr˂pZHAb|ZdQbtlf~H~HXv`bHAZprXQJ`bdQZ|bdQZ|`vXnvpfH~fZHAbے`JXQtlJtArd|ZdQbfpvnXv`bHAZp˂rXQJ`ےbdQZ|drtA`vXnvpfH~fZHAbے`JXQtlJtArdf~HnXv˂rXQbHAZdrtAQZ|dnvp~f`vXn`JXQr˂pJtAd|ZdQbtlJtnXv`f~H˂rXQJ`ےbHAZpdrtAJltvpfH~f`vXn`JXQr˂pArd|ZdQbtlJtf~HvnrXbHArtAJbrtAJl|AJlvXnvpfH˂pZHAbےJXQrblJtArd|~HfpvnXQJ`ےbHAZp˂rXQltbdQZ|Hf`vXnvpfH˂pZHAbےZdQbtlJtArd|`f~ZHAbے`JXQtArd|ZdQbXv`f`f~˂bbHAZdrtAJdrtAf`vXnvpfH~ˑZHAbے`JXbtlJtArdf~HfpvnXv`bHAZp˂AJltbdQZ|drtf`vXnvpQr˂pZHAbے`JXbtlJtArdfpvf~H˂㒐bHAdrtAdrtvpfH~f`vXnے`JXQr˂ptArd|ZdQbtlJnXv`f~Hp˂rXQJ`ےbHAZdrtAJltvpfH~fZHAbے`JXQr˂ptArd|ZdQbXv`f`f~J`ےp˂rJltrtAJfHf`vXnvpfHr˂pZHAbہZdQbtlJtArd|f~HfpvQJ`ےbHAZp˂rXJltbdQZ|~f`vXnvpfHr˂pZHAbہZdQbtlJtArd˅fpvQJ`pZp˂dQZ|tbdQtbnvpfH~f`HAbے`JXQrtlJrd|ZdQbtpvnXv`fHAZp˂rXQJ`ےdQZ|drtAJvXnvpfH~f`HAbے`JXQrlJtArd|ZdQbtHfpvے`JXQr˂p|ZdQbtlJ~HfHXv`HAZp˂p˂bdQZJltnvpfH~fZHAbے`JXQr˂pJtArd|ZdQfpvnXv`f~HZp˂rXQJ`ۉbdQZ|drtAJltnvpfH~ˑZHAbے`JXQr˂pJtArd|ZdQnXv`˅fpvbHAZpZp˂JbdQAJltH~f`vXnvpfr˂pZHAb|ZdQbtlJtArdf~HfpvXQJ`ےbHAZdrtAJltbdQZ|H~f`vXnے`JXQr˂pZHAb|ZdQbtlJ~HfHXv`bHAZpXQJ`ےbdQZ|bdQZ|vXnvpfH~f`ZHAbے`JXQlJtArd|ZdQbtfpvnXv`˙bHAZp˂rXQJ`ےbdQZ|drtAvXnvpfH~fZHAbے`JXQlJtArd|f~HXnXv`rXQbHAZpdrtAJZ|dvpf~f`vXn`JXQr˂pZtAd|ZdQbtlJtAXv`f~Hf˂rXQJ`ےbHAZpdrtAJltbvpfH~f`vXn`JXQr˂pZrd|ZdQbtlJtAnXvr˂pZHAbtlJtArdpvnf~HrXQJbHAZp|drbdQZ|fH~f`vXے`JXQr˂pZHAb|ZdQbtlnXv`f~HfpvrXQJ`ےbHAdrtAJltbdQZ|fH~f`vXے`JXQr˂pZHAۂ|ZdQbtlf~HXnXv`rXQbHAZpZ|dbdQZ|`vXnvpfH~fZHAbے`JXQtlJtArdf~HfpvnXv`bHAZp˂rJltbdQZ|drtA`vXnvpfr˂pZHAbے`JXQtlJtArdpvnf~H˂bbHAZdrtAJdrtAvpfH~f`vXn`JXQr˂pArd|ZdQbtlJtnXv`f~H˂rXQJ`ےbHAZdrtAJltvpfH~f`ZHAbے`JXQr˂pArd|ZdQbtv`ff~HJ`ے˂rXltbrtAJHf`vXnvpfH˂pZHAbےZdQbtlJtArd|~HfpvnJ`ےbHAZp˂rXQltbdQZ|~f`vXnvpfH˂pZHAbےZdQbtlJtArdf`f~ZHAbے`JXQtArd|ZdQbXv`ffpv`ےb˂rXQtAJldrtAf`vXnvpQr˂pZHAbے`JXbtlJtArdf~HfpvnXv`bHAZp˂AJltbdQZ|dtAf`vXnvpQr˂pZHAb`JXQbtlJtArdv`ff~HJ`ے˂rXrtAJldrtvpfH~fZHAbے`JXQr˂ptArd|ZdQbfpvnXv`f~Hp˂rXQJ`ےbdQZ|drtAJltvpfH~fZHAbے`JXQr˂ptArd|ZdQbXv`ffpvHAZp˂p˂bdQZJlt~f`vXnvpfHr˂pZHAbہZdQbtlJtArdf~HfpvQJ`ےbHAZpdrtAJltbdQZ|~f`vXn`JXQr˂pZHAbہZdQbtlJt~HfpXv`bHAZpQJ`ےdQZ|bdQZ|vXnvpfH~f`HAbے`JXQrlJtArd|ZdQbtpvnXv`fbHAZp˂rXQJ`ےdQZ|drtAJvXnvpfH~fZHAbے`JXQrlJtArd|~HXHXv`f~HnrXQbHAZtAJbdrtAJl灂AJlvXnvpfH˂pZHAbے`JXQrbtlJtArd|~HfpvnXQJ`ےbHAZp˂rXQtbdQZ|df`vXnvpfHpZHAJXQrAHr󙐂XnvˍpfH~QtJltbAdZfpvJ`p˂p˂QZ|dtbdQtbnvpfH~f`Abے`JXQrlJtrd|ZdQbtvnXv`fHAZp˂rXQJ`ےQZ|drtAJlvXnvpfH~f`b˂p˂p`Zˁ`ZQXApfH~ㅐf۝`vtbAdZ|drnXv`rXQJbHAZprtAJlZ|dvpfH~f`vXnہJXQr˂pZHAd|ZdQbtlJtAv`f~HfprXQJ`ےbHAZp˙rtAJltbdvpfH~f`vXnۑZHAbQXb㉀Hr󙐂ˁf۝`vXnvˍ|drQtJlf~H`ےb˂rXQtbdrtAJbf`vXnvpfH˂pZHAbے`ZdQbtlJtArd|~HfpvnXJ`ےbHAZp˂rXQtbdQZ|d~f`vXnvpfHے`JXۑpJAHr`ZQXbXnvˍpfH~QtJltbAdZXv`fHAZp˂J`ےQZ|ddQZ|vXnvpfH~f`Abے`JXQrlJtArd|ZdQbtvnXv`fbHAZp˂rXQJ`ےQZ|drtAJlvXnvpfH~frQr˂p󙐂ˁ`ZۑpJApfH~ㅐf۝`vtbAdZ|dr~HfbHAbHAZprtAJdrtAJvpfH~f`vXnہJXQr˂pZHrd|ZdQbtlJtAv`f~HfprXQJ`ےbHAZdrtAJltbdvpfH~f`˂pZHZHAbQXAHrHr󙐂ˁf۝`vXnvˍ|drQtJlpvnZp˂˂bbdQZ|ltb~f`vXnvpfH˂pZHAbے`ZdQbtlJtArdf~HfpvnXJ`ےbHAZp˙rtAJltbdQZ|d~f`vXnAbے`˂pˁ`ZQ`ZQXAHrXnvˍpfH~QtJltbAdZXv`frXQJ`HAZp˂drtAdQZ|vXnvpfH~fZHAbے`JXQrlJtArd|~HfpvnXv`fbHAZp˂rXQtbdQZ|drtAJlvXnvpfHJXQrZHAbXb㉀ۑ󙐂ˁ`ZpfH~ㅐf۝`vtbAdZ|dr~HXےbHArXQJJltdrtAJvpfH~f`Abے`JXQr˂pZHrd|ZdQbtvnXv`f~HfprXQJ`ےQZ|drtAJltbdvpfH~f`˂pZH`JXQpJAHrQXb㉀f۝`vXnvˍ|drQtJlv`fZp˂`ےbbdQZ|bdQZ|~f`vXnہJXQr˂pZHAbے`ZdQbtlJtAv`f~HfpvnXJ`ےbHAZp˙rtAJltbdQZ|d~f`vXnAbr˂pˁ`ZQۑpJAHrXnvˍpfH~QtJltbAdZ~HfpbHAZHAZp˂drtAdrtvXnvpfH˂pZHAbے`JXQrlJtArd|~HfpvnXv`fbHAZp˂rXQtbdQZ|dtAJlvXnvpfHpZHAZHAbXAHr󙐂󙐂ˁ`pfH~ㅐf۝`vtbAdZ|drvnXp˂rbHAJbdQAJltvpfH~f`Abے`JXQr˂pZHrd|ZdQbtvnXv`fHfpۂrXQJ`ےQZ|drtAJltbnvpfH~f`bے`˂pZHˁ`ZQXbpfH~ㅐf۝`vXnvˍ|drQtJlv`pvXQJ`ےZdrZ|dbdQZ|~f`vXnہJXQr˂pZHAے`ZdQbtlJtAv`f~HfpvnrXJ`ےbHAZp˙rtAJltbdvpfH~f`vXnJXQrAbے`㉀ۑpJf۝`vXnvˍp|drQtJltbAdZ|yz{|}~~}|{z \ No newline at end of file diff --git a/vendor/endroid/qr-code/assets/data/qrv28_2.dat b/vendor/endroid/qr-code/assets/data/qrv28_2.dat deleted file mode 100755 index 5122e09dd..000000000 --- a/vendor/endroid/qr-code/assets/data/qrv28_2.dat +++ /dev/null @@ -1,257 +0,0 @@ -~}~}~}~}zyzyzyzyxwxwxwxwststststqrqrqrqropopopopmlklklklijijijijghghghghefefefefabababab^]^]^]^]\[\[\[\[ZYZYZYZY~}~}~}~}zyzyzyzyxwxwxwxwststststqrqrqrqropopopopklklklklijijijijghghghghefefefefabababab^]^]^]^]\[\[\[\[ZYZYZYZY~}~}~}~}zyzyzyzyxwxwxwxwststststqrqrqrqropopopopklklklklijijijijghghghghedcdcdcdabababab^]^]^]^]\[\[\[\[ZYZYZYZY~}~}~}~}zyzyzyzyxwxwxwxwststststqrqrqrqropopopopklklklklijijijijghghghghcdcdcdcdabababab^]^]^]^]\[\[\[\[ZYZYZYZY~}~}~}~}zyzyzyzywwwwwxwxststststqrqrqrqropopopopklklklklijijijijghghghghcdcdcdcdabababab^]^]^]^]\[\[\[\[ZYZYZYZY~}~}~}~}zyzyzyzywxwxwxwxststststqrqrqrqropopopopklklklklijijijijghghghghcdcdcdcdabababab^]^]^]^]\[\[\[\[ZYZYZYZY~}~}~}~}zyzyzyzywxwxwxwxststststqrqrqrqropopopopklklklklijijijijghghghghcdcdcdcdabababab^]^]^]^]\[\[\[\[ZYZYZYZY~}~}~}~}zyzyzyzywxwxwxwxststststqrqrqrqropopopopklklklklijijijijghghghghcdcdcdcdabababab^]^]^]^]\[\[\[\[ZYZYZYZY~}~}~}~}zyzyzyzywxwxwxwuststststqrqrqrqropopopopklklklklijijijijghghghghcdcdcdcdabababab^]^]^]^]\[\[\[\[XWXWXWXW~}~}~}~}zyzyzyzyuuuuuvuvststststqrqrqrqropopopopklklklklijijijijghghghghcdcdcdcdababa`_`^]^]^]^]\[\[\[\[XWXWXWXW~}~}~}~}zyzyzyzyuvuvuvuvststststqrqrqrqronmnmnmnklklklklijijijijghghghghcdcdcdcd_`_`____^]^]^]^]\[\[\[\[XWXWXWXW~}~}~}~}zyzyzyzyuvuvuvuvststststqrqrqrqrmnmnmnmnklklklklijijijijghghghghcdcdcdcd__`_`_`_^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVU~}~}~}~}zyzyzyzyuvuvuvuvststststqrqrqrqrmnmnmnmnklklklklijijijijgfefefefcdcdcdcd`_`_`_`_^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVU~}~}~}~}zyzyzyzyuvuvuvuvststststqrqrqrqrmnmnmnmnklklklklijijijijefefefefcdcdcdcd`_`_`_`_^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVU~}~}~}~}zyzyzyzyuvuvuvuvststststqrqrqrqrmnmnmnmnklklklklijijijijefefefefcdcdcdcd`_`_`_`_^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVU~}~}~}~}zyzyzyzyuvuvuvuvststststqrqrqrqrmnmnmnmnklklklklijijijijefefefefcdcdcdcd`_`_`_`_^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVU~}~}~}~}zyzyzyzyuvuvuvuvststststqrqrqrqrmnmnmnmnklklklklijijijijefefefefcdcdcdcd_____`_`^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVU~}~}~}~}zyzyzyzyuvuvuvuvststststqrqrqrqrmnmnmnmnklklklklijijijijefefefefcdcdcdcd_`_`_`_`^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVU|{|{|{|{zyzyzyzyuvuvuvuvststststqrqrqrqrmnmnmnmnklklklklijijijijefefefefcdcdcdcd_`_`_`_`^]^]^]^]ZYZYZYZYXWXWXWXWVUVUVUVU|{|{|{|{zyzyzyzyuvuvuvuvststststqrqrqrqrmnmnmnmnklklklklijijijijefefefefcdcdcdcd_`_`_`_`^]^]^]^]ZYZYZYZYXWXWXWXWVUVUVUVU|{|{|{|{zyzyzyzyuvuvuvuvststststqpopopopmnmnmnmnklklklklijijijijefefefefcdcdcdcd_`_`_`_`^]^]^]^]ZYZYZYZYXWXWXWXWVUVUVUVU|{|{|{|{zyzyzyzyuvuvuvuvststststopopopopmnmnmnmnklklklklijijijijefefefefcdcdcdcd_`______^]^]^]^]ZYZYZYZYXWXWXWXWVUVUVUVU|{|{|{|{zyzyzyzyuvuvuvuvststststopopopopmnmnmnmnklklklklihghghghefefefefcdcdcdcd`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWVUVUVUVU|{|{|{|{zyzyxwxwuvuvuvuvststststopopopopmnmnmnmnklklklklghghghghefefefefcdcdcdcd`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWVUVUVUVU|{|{|{|{xwxwwwwwuvuvuvuvststststopopopopmnmnmnmnklklklklghghghghefefefefcdcdcdcd`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWVUVUVUVU|{|{|{|{wxwxwxwxuvuvuvuvststststopopopopmnmnmnmnklklklklghghghghefefefefcdcdcdcd`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWVUVUVUVU|{|{|{|{wxwxwxwxuvuvuvuvststststopopopopmnmnmnmnklklklklghghghghefefefefcdcdcdcb`_`_`___^]^]^]^]ZYZYZYZYXWXWXWXWVUVUVUVU|{|{|{|{wxwxwxwxuvuvuvuvststststopopopopmnmnmnmnklklklklghghghghefefefefabababab___`_`_`^]^]^]^]ZYZYZYZYXWXWXWXWVUVUVUVU|{|{|{|{wxwxwxwxuvuvuvuvststststopopopopmnmnmnmnklklklklghghghghefefefefabababab_`_`_`_`\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVU|{|{|{|{wxwxwxwwuvuvuvuvststststopopopopmnmnmnmnklklklklghghghghefefefefabababab_`_`_`_`\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVU~}~}~}~}|{|{|{|{wwwwxwxwuvuvuvuvsrqrqrqropopopopmnmnmnmnklklklklghghghghefefefefabababab_`_`_`_`\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVU~}~}~}~}|{|{|{|{xwxwxwxwuvuvuvuvqrqrqrqropopopopmnmnmnmnklklklklghghghghefefefefabababab_`_`_`_`\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVU~}~}~}~}|{|{|{|{xwxwxwxwuvuvuvuvqrqrqrqropopopopmnmnmnmnkjijijijghghghghefefefefabababab______`_\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVU~}~}~}~}|{|{|{|{xwxwxwxwuvuvuvuvqrqrqrqropopopopmnmnmnmnijijijijghghghghefefefefabababab`_`_`_`_\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVU~}~}~}~}|{|{|{|{xwxwxwxwuvuvuvuvqrqrqrqropopopopmnmnmnmnijijijijghghghghefefefefabababab`_`_`_`_\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVU~}~}~}~}|{|{|{|{xwwwwwwxuvuvuvuvqrqrqrqropopopopmnmnmnmnijijijijghghghghefefefefabababab`_`_`_`_\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVU~}~}~}~}|{|{|{|{wxwxwxwxuvuvuvuvqrqrqrqropopopopmnmnmnmnijijijijghghghghefefefefabababab`_`_____\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVU~}~}~}~}|{|{|{|{wxwxwxwxuvuvuvuvqrqrqrqropopopopmnmnmnmnijijijijghghghghefefefefabababab`_`_`_`_\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVU~}~}~}~}|{|{|{|{wxwxwxwxuvuvuvuvqrqrqrqropopopopmnmnmnmnijijijijghghghghefefefefabababab^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVU~}~}~}~}|{|{|{|{wxwxwxwxuvuvuvuvqrqrqrqropopopopmnmnmnmnijijijijghghghghefefefefabababab^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVU~}~}~}~}|{|{|{|{wxwxwwwwutstststqrqrqrqropopopopmnmnmnmnijijijijghghghghefefefefabababab^]^]^]^]\[\[\[\[ZYZYZYZYVUVUVUVUVUVUVUVU~}~}~}~}|{|{|{zywwxwxwxwststststqrqrqrqropopopopmnmnmnmnijijijijghghghghefefefefabababab^]^]^]^]\[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMJIJIJIJIEFEFEFEFCDCDCDCDABABABAB=>=>=>=>;<;<;<;<9:9:9:9:56565656343434340/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#         - - - -TSTSTSTSRQRQRQRQPOPOPOPOLKLKLKLKJIJIJIJIEFEFEFEFCDCDCDCDABABABAB=>=>=>=>;<;<;<;<9:9:9:9:56565656343434340/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#         - - - -TSTSTSTSRQRQRQRQPOPOPOPOLKLKLKLKJIJIJIJIEFEFEFEFCDCDCDCDABABABAB=>=>=>=>;<;<;<;<9:9:9:9:56565656343434340/0/0///.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#         - - - -TSTSTSTSRQRQRQRQPOPOPOPOLKLKLKLKJIJIJIJIEFEFEFEFCDCDCDCDABABABAB=>=>=>=>;<;<;<;<9:9:9:9:5656565634343434///0/0/0.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#         - - - -TSTSTSTSRQRQRQRQPOPOPOPOLKLKLKLKJIJIJIJIEFEFEFEFCDCDCDCDABABABAB=>=>=>=>;<;<;<;<9:9:9:9:5656565634343434/0/0/0/0.-.-.-.-,+,+,+*)('('('('&%&%&%&%$#$#$#$#       - - - -TSTSTSTSRQRQRQRQPOPOPOPOLKLKLKLKJIJIJIJIEFEFEFEFCDCDCDCDABABABAB=>=>=>=>;<;<;<;<9:9:9:9:5656565634343434/0/0/0/0.-.-.-.-*)*)*)*)('('('('&%&%&%&%$#$#$#$#     - - - -TSTSTSTSRQRQRQRQPOPOPOPOLKLKLKLKJIJIJIJIEFEFEFEFCDCDCDCDABABABA@=>=>=>=>;<;<;<;<9:9:9:9:5656565634343434/0/0/0/0.-.-.-.-*)*)*)*)('('('('&%&%&%&%$#$#$#"!     - - - -TSTSTSTSRQRQRQRQPOPOPOPOLKLKLKLKJIJIJIJIEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:5656565634343434/0/0/0/0.-.-.-.-*)*)*)*)('('('('&%&%&%&%"!"!"!"!     - - - -TSTSTSTSRQRQRQRQPOPOPOPOLKLKLKLKJIJIHGHGEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:985656565634343434//////0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%"!"!"!"!     - - - -TSTSTSTSRQRQRQRQPOPOPOPOLKLKLKLKHGHGGGGGEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>;<;<;<;<7878787856565656343434340/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%"!"!"!"!     - - - -TSTSTSTSRQRQRQRQPOPOPOPOLKLKLKLKGHGHGHGHEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>;<;<;<;<7878787856565656343434340/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%"!"!"!"!     - - - -TSTSTSTSRQRQRQRQNMNMNMNMLKLKLKLKGHGHGHGHEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>;<;<;<;<7878787856565656343434340/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%"!"!"!"!     - - - -TSTSTSTSRQRQRQRQNMNMNMNMLKLKLKLKGHGHGHGHEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>;<;<;<;<7878787856565656343434340/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%"!"!"!"!     - - - -TSTSTSTSRQRQRQRQNMNMNMNMLKLKLKLKGHGHGHGHEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>;<;<;<;<7878787856565656343432120/0/////.-.-.-.-*)*)*)*)('('('('&%&%&%&%"!"!"!"!     - - - -TSTSTSTSRQRQRQRQNMNMNMNMLKLKLKLKGHGHGHGGEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>;<;<;<;<787878785656565612121212/0/0/0/0.-.-.-,+*)*)*)*)('('('('&%&%&%&%"!"!"!"!      - - - -TSTSTSTSRQRQRQRQNMNMNMNMLKLKLKLKGGGGHGHGEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>;<;<;<;<787878785656565612121212/0/0/0/0,+,+,+,+*)*)*)*)('('('('&%&%&%&%"!"!"!"!         - - - -TSTSTSTSRQRQRQRQNMNMNMNMLKLKLKLKHGHGHGHGEFEFEFEFCDCDCDCB?@?@?@?@=>=>=>=>;<;<;<;<787878785656565612121212/0/0/0/0,+,+,+,+*)*)*)*)('('('('&%&%&%$#"!"!"!"!         - - - -TSTSTSTSRQRQRQRQNMNMNMNMLKLKLKLKHGHGHGHGEFEFEFEFABABABAB?@?@?@?@=>=>=>=>;<;<;<;<787878785656565612121212/0/0/0/0,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!         - - - -TSTSTSTSRQRQRQRQNMNMNMNMLKLKLKLKHGHGHGHGEFEFEFEFABABABAB?@?@?@?@=>=>=>=>;<;<;<;:787878785656565612121212/0/0/0//,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!         - - - -TSTSTSTSRQRQRQRQNMNMNMNMLKLKLKLKHGHGHGHGEFEFEFEFABABABAB?@?@?@?@=>=>=>=>9:9:9:9:787878785656565612121212////0/0/,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!         - - - -TSTSTSTSRQRQRQRQNMNMNMNMLKLKLKLKHGGGGGGHEFEFEFEFABABABAB?@?@?@?@=>=>=>=>9:9:9:9:7878787856565656121212120/0/0/0/,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!         - - - -TSTSTSTSPOPOPOPONMNMNMNMLKLKLKLKGHGHGHGHEFEFEFEFABABABAB?@?@?@?@=>=>=>=>9:9:9:9:7878787856565656121212120/0/0/0/,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!         - - - -TSTSTSTSPOPOPOPONMNMNMNMLKLKLKLKGHGHGHGHEFEFEFEFABABABAB?@?@?@?@=>=>=>=>9:9:9:9:7878787856565656121212120/0/0/0/,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!         - - - -TSTSTSTSPOPOPOPONMNMNMNMLKLKLKLKGHGHGHGHEFEFEFEFABABABAB?@?@?@?@=>=>=>=>9:9:9:9:7878787856565656121212120/////0/,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!         - - - -TSTSTSTSPOPOPOPONMNMNMNMLKLKLKLKGHGHGHGHEFEFEFEFABABABAB?@?@?@?@=>=>=>=>9:9:9:9:7878787856565656121212120/0/0/.-,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!         - - - -TSTSTSTSPOPOPOPONMNMNMNMLKLKLKJIGHGHGGGGEFEFEFEFABABABAB?@?@?@?@=>=>=>=>9:9:9:9:787878785656565612121212.-.-.-.-,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!         - - - -TSTSTSTSPOPOPOPONMNMNMNMJIJIJIJIGGHGHGHGEFEFEFEDABABABAB?@?@?@?@=>=>=>=>9:9:9:9:787878785656565612121212.-.-.-.-,+,+,+,+*)*)*)*)('('('&%$#$#$#$#"!"!"!"!         - - TSTSTSTSPOPOPOPONMNMNMNMJIJIJIJIHGHGHGHGCDCDCDCDABABABAB?@?@?@?@=>=>=>=>9:9:9:9:787878785656565612121212.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"!         TSTSTSTSPOPOPOPONMNMNMNMJIJIJIJIHGHGHGHGCDCDCDCDABABABAB?@?@?@?@=>=>=>=<9:9:9:9:787878785656565612121212.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"!        TSTSTSTSPOPOPOPONMNMNMNMJIJIJIJIHGHGHGHGCDCDCDCDABABABAB?@?@?@?@;<;<;<;<9:9:9:9:787878785656565612121212.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"!     TSTSTSTSPOPOPOPONMNMNMNMJIJIJIJIHGHGHGHGCDCDCDCDABABABAB?@?@?@?@;<;<;<;<9:9:9:9:787878785656565412121212.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"!     RQRQRQRQPOPOPOPONMNMNMNMJIJIJIJIGGGGGHGHCDCDCDCDABABABAB?@?@?@?@;<;<;<;<9:9:9:9:787878783434343412121212.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"!     RQRQRQRQPOPOPOPONMNMNMNMJIJIJIJIGHGHGHGHCDCDCDCDABABABAB?@?@?@?@;<;<;<;<9:9:9:9:787878783434343412121212.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"!     RQRQRQRQPOPOPOPONMNMNMNMJIJIJIJIGHGHGHGHCDCDCDCDABABABAB?@?@?@?@;<;<;<;<9:9:9:9:787878783434343412121212.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"!     RQRQRQRQPOPOPOPONMNMNMNMJIJIJIJIGHGHGHGHCDCDCDCDABABABAB?@?@?@?@;<;<;<;<9:9:9:9:787878783434343412121212.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"!     RQRQRQRQPOPOPOPONMNMNMNMJIJIJIJIGHGGGGGHCDCDCDCDABABABAB?@?@?@?@;<;<;<;<9:9:9:9:787878783434343412121212.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"!     RQRQRQRQPOPOPOPONMNMNMNMJIJIJIJIGHGHGHGFCDCDCDCDABABABAB?@?@?@?@;<;<;<;<9:9:9:9:787878783434343412121212.-.-.-.-,+,+,+,+*)*)*)('&%&%&%&%$#$#$#$#"!"!"!"!     - -RQRQRQRQPOPOPOPONMNMNMNMJIJIJIJIEFEFEFEFCDCDCDCDABABABAB?@?@?@?@;<;<;<;<9:9:9:9:787878783434343412121212.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#"!"!"!"!     - - - -RQRQRQRQPOPOPOPONMNMNMNMJIJIJIJIEFEFEFEFCDCDCDCDABABABAB?@?@?@?>;<;<;<;<9:9:9:9:78787878343434341210/0/0.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#"!"!"!      - - - -RQRQRQRQPOPOPOPONMNMNMNMJIJIJIJIEFEFEFEFCDCDCDCDABABABAB=>=>=>=>;<;<;<;<9:9:9:9:7878787834343434/0//////.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#         - - - -RQRQRQRQPOPOPOPONMNMNMNMJIJIJIJIEFEFEFEFCDCDCDCDABABABAB=>=>=>=>;<;<;<;<9:9:9:9:78787876343434340/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#         - - - -RQRQRQRQPOPOPOPONMNMNMNMJIJIJIJIEFEFEFEFCDCDCDCDABABABAB=>=>=>=>;<;<;<;<9:9:9:9:56565656343434340/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#         - - - -~~}}99::;;<< - - ,,++**))yxxwwvvu01122334)((''&&%~~}())**++,100//..-xyyzz{{|PQQRRSSTHHGGFFEEaabbccdd||{{zzyy==>>??@@((''&&%%uttssrrq45566778%$$##""!}||{{zzy,--..//0-,,++**)|}}~~TUUVVWWXDDCCBBAAeeffgghhxxwwvvuuAABBCCDD$$##""!!qppoonnm899::;;>==iijjkkllttssrrqqEEFFGGHH mllkkjji<==>>??@uttssrrq45566778%$$##""!}wwvvuut\]]^^__e <<;;::99mmnnooppppoonnmmIIJJKKLL !!""ihhggffe@AABBCCDqppoonnm899::;;>??@poonnmmlijjkkllm%%&&''((44332211uuvvwwxxhhggffeeQQRRSSTT''(())**a``__^^]HIIJJKKL ihhggffe@AABBCCDlkkjjiihmnnooppq))**++,,00//..--yyzz{{||ddccbbaaUUVVWWXX++,,--.. -]\\[[ZZYLMMNNOOP - - eddccbbaDEEFFGGHhggffee_qrrssttu--..//00,,++**))}}~~``__^^]]YYZZ[[\\//556677 - YXXWWVVUPQQRRSST a``__^^]HIIJJKKL _^^]]\\[uvvww}}~11223344((''&&%%~~}}\\[[ZZYY]]^^__``8899::;;UTTSSRRQTUUVVWWX]\\[[ZZYLMMNNOOP - - [ZZYYXXW~55667788$$##""!!||{{zzyyXXWWVVUUaabbccdd<<==>>?? - - QPPOONNMXYYZZ[[\YXXWWVVUPQQRRSST WVVUUTTS~~}}|{z99::;;<< xxwwvvuuTTSSRRQQeeffgghh@@AABBCC MLLKKJJI\]]^^__`UTTSSRRQTUUVVWWXSRRQQPPOyxwwvvuu==>>??@@ttssrrqq - - PPOONNMMiijjkkllDDEEFFGGIHHGGFFE`aabbccd - - QPPOONNMXYYZZ[[\ONNMMGGFttssrrqqAABBCCDDppoonnmm LLKKJJIImmnnooppMMNNOOPPEDDCCBBAdeeffggh MLLKKJJI\]]^^__`FEEDDCCBppoonnmmEEFFGGHHllkkjjiiHHGGFFEEqqrrssttQQRRSSTTA@@??>>=hiijjkklIHHGGFFE`aabbccd - - BAA@@??>llkkjjiiIIJJKKLL hhggffeeDDCCBBAAuuvvwwxxUUVVWWXX =<<;;::9lmmnnoopEDDCCBBAdeeffggh >==<<;;:hhggffeeMMNNOOPP - - ddccbbaa@@??>>==yyzz{{||YYZZ[[\\ !!""##$98877665pqqrrsstA@@??>>=hiijjkkl:9988776dcba`__^QQRRSSTT``__^^]] <<;;::99}}~~]]^^__ee$%%&&''(54433221tuuvvwwx =<<;;::9lmmnnoop655//..-^]]\\[[ZUUVVWWXX\\[[ZZYY!!""##$$88776655~~}}ffgghhii())**++,100//..-xyyzz{{| !!""##$98877665pqqrrsst-,,++**)ZYYXXWWVYYZZ[[\\XXWWVVUU%%&&''((44332211wwvvuuttjjkkllmm,--..//0-,,++**)|}}~~$%%&&''(54433221tuuvvwwx )((''&&%VUUTTSSR]]^^__``TTSSRRQQ))**++,,00//..--ssrrqqppnnooppqq01122334)((''&&%~~}())**++,100//..-xyyzz{{| !!""##$%$$##""!RQQPPOONaabbccdd - - PPOONNMM--..//00,,++**))oonnmmllrrssttuu45566778%$$##""!}||{{zzy,--..//0-,,++**)|}}~~$%%&&''(! NMMLKJIHeeffgghh LLKKJJII11223344((''&&%%kkjjiihhvvww}}~~899::;;>??@uttssrrq45566778%$$##""!}||{{zzy,--..//0CCBBAA@@mmnnooppDDCCBBAA99::;;<< ^^]]\\[[~~}}|{zy@AABBCCDqppoonnm899::;;>==<>====>>??@@ZZYYXXWWxwwvvuutDEEFFGGHmllkkjji<==>>??@uttssrrq45566778 - - ;;::9988uuvvwwxx <<;;::99AABBCCDDVVUUTTSStssrrqqpHIIJJKKL ihhggffe@AABBCCDqppoonnm899::;;<77665543yyzz{{||!!""##$$88776655EEFFGGHHRRQQPPOOpoonnmmlLMMNNOOP - - eddccbbaDEEFFGGHmllkkjji<==>>??@ 210//..-}}~~%%&&''((44332211IIJJKKLL NNMMGGFFlkkjjiihPQQRRSST a``__^^]HIIJJKKL ihhggffe@AABBCCD - - -,,++**)~~}}))**++,,00//..--MMNNOOPP - - EEDDCCBBhggffeedTUUVVWWX]\\[[ZZYLMMNNOOP - - eddccbbaDEEFFGGH )((''&&%||{{zzyy--..//00,,++**))QQRRSSTT - - AA@@??>>cba`__^^XYYZZ[[\YXXWWVVUPQQRRSST a``__^^]HIIJJKKL%$$##""!xxwwvvuu11223344((''&&%%UUVVWWXX ==<<;;::]]\\[[ZZ\]]^^__`UTTSSRRQTUUVVWWX]\\[[ZZYLMMNNOOP! ttssrrqq55667788$$##""!!YYZZ[[\\99887766YYXXWWVV`aabbccd - - QPPOONNMXYYZZ[[\YXXWWVVUPQQRRSST !!"ppoonnmm99::;;<< ]]^^__``55//..--UUTTSSRRdeeffggh MLLKKJJI\]]^^__`UTTSSRRQTUUVVWWX"##$$%%&llkkjjii==>>??@@aabbccdd,,++**))QQPPOONNhiijjkklIHHGGFFE`aabbccd - - QPPOONNMXYYZZ[[\&''(())*hhggffeeAABBCCDDeeffgghh ((''&&%%MMLKJIHGlmmnnoopEDDCCBBAdeeffggh MLLKKJJI\]]^^__`*++,,--. ddccbbaaEEFFGGHHiijjkkll!!""##$$$$##""!!GFFEEDDCpqqrrsstA@@??>>=hiijjkklIHHGGFFE`aabbccd.//55667 - - ``__^^]]IIJJKKLL mmnnoopp%%&&''(( CBBAA@@?tuuvvwwx =<<;;::9lmmnnoopEDDCCBBAdeeffggh78899::;\\[[ZZYYMMNNOOPP - - qqrrsstt))**++,,?>>==<<;xyyzz{{| !!""##$98877665pqqrrsstA@@??>>=hiijjkkl;<<==>>?XXWWVVUUQQRRSSTTuuvvwwxx--..//00;::99887|}}~~$%%&&''(54433221tuuvvwwx =<<;;::9lmmnnoop?@@AABBCTTSSRRQQUUVVWWXXyyzz{{||11223344 76655432~~}())**++,100//..-xyyzz{{| !!""##$98877665pqqrrsstCDDEEFFG - - PPOONNMMYYZZ[[\\}}~~55667788 - - 10//..--}||{{zzy,--..//0-,,++**)|}}~~$%%&&''(54433221tuuvvwwxGMMNNOOP LLKKJJII]]^^__``~~}}||{{zzyy--..//00,,++**))}}~~UUVVWWXXDCCBBAA@effgghhi LKKJJIIH]^^__``a EDDCCBBAoonnmmllFFGGHHIIkkjjiihh>>??@@AAssrrqqpp66778899 - - :9988776vwwxxyyz !!";::99887nooppqqr,++**))(EDDCCBBAxxwwvvuu11223344((''&&%%~~}}YYZZ[[\\@??>>==>=kkjjiihhJJKKLLMM ggffeeddBBCCDDEEoonnmmll::;;<<==65543210z{{||}}~"##$$%%&76655443rssttuuv(''&&%%$A@@??>>=ttssrrqq55667788$$##""!!wwvvuutt]]^^__ee !<;;::998mnnooppqDCCBBAA@effgghhi =<<;;::9ggffeedcNNOOPPQQ - - ccbbaa``FFGGHHIIkkjjiihh>>??@@AA - -//..--,,~&''(())*3221100/vwwxxyyz !!"$##""!! =<<;;::9ppoonnmm99::;;<< ssrrqqppffgghhii!""##$$%87766554qrrssttu@??>>==>??@@oonnmmlljjkkllmm%&&''(()43322110uvvwwxxy !<;;::998mnnooppq5//..--,]\\[[ZZYVVWWXXYY[[ZZYYXXNNOOPPQQ - - ccbbaa``FFGGHHII''&&%%$${zzyyxxw.//00112+**))(('~&''(())*54433221hhggffeeAABBCCDDkkjjiihhnnooppqq)**++,,-0//..--,yzz{{||}!""##$$%87766554qrrssttu,++**))(YXXWWVVUZZ[[\\]]WWVVUUTTRRSSTTUU__^^]]\\JJKKLLMM##""!! wvvuutts23344556'&&%%$$#~~}}||{*++,,--.100//..-ddccbbaaEEFFGGHHggffee__rrssttuu-..//001,++**))(}~~%&&''(()43322110uvvwwxxy !(''&&%%$UTTSSRRQ^^__``aa SSRRQQPPVVWWXXYY[[ZZYYXXNNOOPPQQsrrqqppo6778899:#""!! {zzyyxxw.//00112 -,,++**)``__^^]]IIJJKKLL ^^]]\\[[vvww}}~~12233445(''&&%%$~~}}|)**++,,-0//..--,yzz{{||}!""##$$%$##""!! QPPOONNMbbccddee - - OONNMMLLZZ[[\\]]WWVVUUTTRRSSTTUU !!""##onnmmllk:;;<<==>wvvuutts23344556 - - -)((''&&%\\[[ZZYYMMNNOOPP - - ZZYYXXWW56677889$##""!! |{{zzyyx-..//001,++**))(}~~%&&''(() MLKJIHGGffgghhiiKKJJIIHH^^__``aa SSRRQQPPVVWWXXYY$$%%&&''kjjiihhg>??@@AABsrrqqppo6778899: - %$$##""!XXWWVVUUQQRRSSTTVVUUTTSS~~}}|{zy9::;;<<= xwwvvuut12233445(''&&%%$~~}}|)**++,,-FFEEDDCCjjkkllmmGGFFEEDDbbccddee - - OONNMMLLZZ[[\\]](())**++ gffeeddcBCCDDEEFonnmmllk:;;<<==>! TTSSRRQQUUVVWWXXRRQQPPOOxwwvvuut=>>??@@Atssrrqqp56677889$##""!! |{{zzyyx-..//001BBAA@@??nnooppqqCCBBAA@@ffgghhiiKKJJIIHH^^__``aa,,--..// - - cbbaa``_FGGHHIIJkjjiihhg>??@@AABPPOONNMMYYZZ[[\\NNMMGGFFtssrrqqpABBCCDDEpoonnmml9::;;<<= xwwvvuut12233445 >>==<<;;rrssttuu??>>==<>??@@Atssrrqqp56677889 - - ::998877vvwwxxyy !!;;::9988nnooppqqCCBBAA@@ffgghhii99::;;<<[ZZYYXXWNOOPPQQR - - cbbaa``_FGGHHIIJ !!""#HHGGFFEEaabbccdd - - AA@@??>>lkkjjiihIJJKKLLM hggffeedABBCCDDEpoonnmml9::;;<<=66554321zz{{||}}""##$$%%77665544rrssttuu??>>==<>??@@WVVUUTTSRSSTTUUV_^^]]\\[JKKLLMMN#$$%%&&' DDCCBBAAeeffgghh ==<<;;::hggffeedMNNOOPPQ - - dccbbaa`EFFGGHHIlkkjjiih=>>??@@A -0//..--,~~&&''(())33221100vvwwxxyy !!;;::9988nnooppqqAABBCCDD -SRRQQPPOVWWXXYYZ[ZZYYXXWNOOPPQQR'(())**+ - - @@??>>==iijjkkll99887766cba`__^^QRRSSTTU`__^^]]\IJJKKLLM hggffeedABBCCDDE - ,++**))(~~}}||**++,,--//..--,,zz{{||}}""##$$%%77665544rrssttuuEEFFGGMM - ONNMMLLKZ[[\\]]^WVVUUTTSRSSTTUUV+,,--../ - - <<;;::99mmnnoopp55//..--]]\\[[ZZUVVWWXXY\[[ZZYYXMNNOOPPQ - - dccbbaa`EFFGGHHI(''&&%%${{zzyyxx..//0011++**))((~~&&''(())33221100vvwwxxyyNNOOPPQQKJJIIHHG^__``aab -SRRQQPPOVWWXXYYZ/5566778 88776655qqrrsstt,,++**))YYXXWWVVYZZ[[\\]XWWVVUUTQRRSSTTU`__^^]]\IJJKKLLM$##""!! wwvvuutt22334455''&&%%$$~~}}||**++,,--//..--,,zz{{||}}RRSSTTUUGFFEEDDCbccddeef - ONNMMLLKZ[[\\]]^899::;;<44332211uuvvwwxx ((''&&%%UUTTSSRR]^^__``a TSSRRQQPUVVWWXXY\[[ZZYYXMNNOOPPQ ssrrqqpp66778899##""!! {{zzyyxx..//0011++**))((~~VVWWXXYYCBBAA@@?fgghhiijKJJIIHHG^__``aab<==>>??@00//..--yyzz{{||!!""##$$$$##""!!QQPPOONNabbccdde - - POONNMMLYZZ[[\\]XWWVVUUTQRRSSTTU !!""#oonnmmll::;;<<==wwvvuutt22334455''&&%%$$~~}}wwZZ[[\\]]?>>==<<;jkkllmmnGFFEEDDCbccddeef@AABBCCD,,++**))}}~~%%&&''(( MMLKJIHGeffgghhi LKKJJIIH]^^__``a TSSRRQQPUVVWWXXY#$$%%&&'kkjjiihh>>??@@AAssrrqqpp66778899##""!! vvuuttss^^__eeff !!";::99887nooppqqrCBBAA@@?fgghhiijDEEFFGGM ((''&&%%~~}}))**++,,GFFEEDDCijjkkllmHGGFFEEDabbccdde - - POONNMMLYZZ[[\\]'(())**+ggffeeddBBCCDDEEoonnmmll::;;<<==rrqqppoogghhiijj"##$$%%&76655443rssttuuv?>>==<<;jkkllmmnMNNOOPPQ !!""##$$$##""!!||{{zzyy--..//00CBBAA@@?mnnooppqDCCBBAA@effgghhi LKKJJIIH]^^__``a+,,--../ - -ccbbaa``FFGGHHIIkkjjiihh>>??@@AAnnmmllkkkkllmmnn&''(())*3221100/vwwxxyyz !!";::99887nooppqqrQRRSSTTU$%%&&''( xxwwvvuu11223344 ?>>==<<;qrrssttu@??>>==>==>??@WWVVUUTTRRSSTTUU__^^]]\\JJKKLLMM ]]\\[[ZZww}}~~23344556'&&%%$$#~~}}||{*++,,--./..--,,+z{{||}}~]^^__eef01122334llkkjjii==>>??@@ 10//..--}~~%&&''(()43322110uvvwwxxy !<;;::998mnnooppq@AABBCCD SSRRQQPPVVWWXXYY[[ZZYYXXNNOOPPQQ - - YYXXWWVV~~6778899:#""!! {zzyyxxw.//00112+**))(('~xxwfgghhiij45566778 hhggffeeAABBCCDD - - ,,++**))~~}}|)**++,,-0//..--,yzz{{||}!""##$$%87766554qrrssttuDEEFFGGM - - OONNMMLLZZ[[\\]]WWVVUUTTRRSSTTUUUUTTSSRR}}|{zyxw:;;<<==>wvvuutts23344556'&&%%$$#wvvuuttsjkkllmmn899::;;< - - ddccbbaaEEFFGGHH((''&&%%|{{zzyyx-..//001,++**))(}~~%&&''(()43322110uvvwwxxyMNNOOPPQKKJJIIHH^^__``aa SSRRQQPPVVWWXXYYQQPPOONNwvvuutts>??@@AABsrrqqppo6778899:#""!! srrqqpponooppqqr<==>>??@``__^^]]IIJJKKLL$$##""!!xwwvvuut12233445(''&&%%$~~}}|)**++,,-0//..--,yzz{{||}QRRSSTTUGGFFEEDDbbccddee - - OONNMMLLZZ[[\\]]MMGGFFEEsrrqqppoBCCDDEEFonnmmllk:;;<<==>onnmmllkrssttuuu@AABBCCD\\[[ZZYYMMNNOOPP tssrrqqp56677889$##""!! |{{zzyyx-..//001,++**))(}~~UVVWWXXYCCBBAA@@ffgghhiiKKJJIIHH^^__``aa DDCCBBAAonnmmllkFGGHHIIJkjjiihhg>??@@AABkjjiihhguttssrrqDEEFFGGHXXWWVVUUQQRRSSTT !!""poonnmml9::;;<<= xwwvvuut12233445(''&&%%$~~}}wYZZ[[\\]??>>==<>==kjjiihhgJKKLLMMN gffeeddcBCCDDEEFgffee__^qppoonnmHIIJJKKLTTSSRRQQUUVVWWXX##$$%%&&lkkjjiih=>>??@@Atssrrqqp56677889$##""!! wvvuutts]^^__eef !!;;::9988nnooppqqCCBBAA@@ffgghhii<<;;::99gffeedcbNOOPPQQR - - cbbaa``_FGGHHIIJ^]]\\[[ZmllkkjjiLMMNNOOP - - PPOONNMMYYZZ[[\\''(())**hggffeedABBCCDDEpoonnmml9::;;<<= srrqqppofgghhiij""##$$%%77665544rrssttuu??>>==<>??@@Aonnmmllkjkkllmmn&&''(())33221100vvwwxxyy !!;;::9988nnooppqq//..--,,\\[[ZZYYVWWXXYYZ[ZZYYXXWNOOPPQQR - - VUUTTSSReddccbbaTUUVVWWXHHGGFFEEaabbccdd//556677 - `__^^]]\IJJKKLLM hggffeedABBCCDDEkjjiihhgnooppqqr**++,,--//..--,,zz{{||}}""##$$%%77665544rrssttuu++**))((XXWWVVUUZ[[\\]]^WVVUUTTSRSSTTUUVRQQPPOONa``__^^]XYYZZ[[\DDCCBBAAeeffgghh8899::;;\[[ZZYYXMNNOOPPQ - - dccbbaa`EFFGGHHIgffee__^rssttuuv..//0011++**))((~~&&''(())33221100vvwwxxyy !!''&&%%$$TTSSRRQQ^__``aab -SRRQQPPOVWWXXYYZNMMGGFFE]\\[[ZZY\]]^^__`@@??>>==iijjkkll<<==>>??XWWVVUUTQRRSSTTU`__^^]]\IJJKKLLM ^]]\\[[Zvww}}~~22334455''&&%%$$~~}}||**++,,--//..--,,zz{{||}}""##$$%%##""!! PPOONNMMbccddeef - ONNMMLLKZ[[\\]]^EDDCCBBAYXXWWVVU`aabbccd <<;;::99mmnnoopp@@AABBCC TSSRRQQPUVVWWXXY\[[ZZYYXMNNOOPPQ - - ZYYXXWWV~66778899##""!! {{zzyyxx..//0011++**))((~~&&''(())LKJIHGGFfgghhiijKJJIIHHG^__``aab -A@@??>>=UTTSSRRQdeeffggh!!""##$$88776655qqrrssttDDEEFFGG - - POONNMMLYZZ[[\\]XWWVVUUTQRRSSTTUVUUTTSSR~}}|{zyx::;;<<==wwvvuutt22334455''&&%%$$~~}}||**++,,--FEEDDCCBjkkllmmnGFFEEDDCbccddeef - =<<;;::9QPPOONNMhiijjkkl%%&&''((44332211uuvvwwxxMMNNOOPP LKKJJIIH]^^__``a TSSRRQQPUVVWWXXYRQQPPOONwwvvuutt>>??@@AAssrrqqpp66778899##""!! {{zzyyxx..//0011BAA@@??>nooppqqrCBBAA@@?fgghhiij98877665MLLKKJJIlmmnnoop))**++,,00//..--yyzz{{||QQRRSSTTHGGFFEEDabbccdde - - POONNMMLYZZ[[\\]NMMGGFFEssrrqqppBBCCDDEEoonnmmll::;;<<==wwvvuutt22334455 >==<<;;:rssttuuv?>>==<<;jkkllmmn5//..--,IHHGGFFEpqqrrssttuuZHAb|ZdQb˂rXQdrtAQr˂pbtlfpvZdrtfH~Qr˂pbtlZp˂H~fr˂ptlJے`JXQtlJJ`ےJltZHAbJtArdnXv`AJltf`vXZHAbJtArdrXQJ``vXnZHAbtArdr˂ptArdbHAZpbdQZ|ے`JX|ZdQf~HbdQZ|nvpے`JXf~HbHAvpfے`JXQ|ZdQbZHAb|ZdQb˂bdrtAQr˂pbtlfpvdrtfH~Qr˂pXv`Zp˂H~fr˂ptlJے`JXQtlJHAZp˂JbdQZHAbJtArdnXv`AJltf`vXZHAbf~HbHAZp`vXnZHAbtArdr˂ptArdrXQJZ|dے`JX|ZdQf~HbdQZ|nvpے`JXfpv˂rXvpfے`JXQ|ZdQbZHAb|ZdQb`ےbrtAJlQr˂pbtlfpvdrtfH~Qr˂pnXv`QJ`ےH~fr˂ptlJے`JXQtlJHAZp˂tbdQZHAbJtArdnXv`AJltf`vXZHAbf~HXbHAZp`vXnZHAbtArdr˂ptArdbHAZ|dnے`JX|ZdQfHbdQZ|nvpے`JXv`f˂々vpfے`JXQf~HZHAb|ZdQbZp˂vfQr˂pbtlfpvdrtfH~Qr˂p~HfpbHAZdH~fr˂pfpvے`JXQtlJrXQJ`f`vXZHAbJtArdnrXQJ`AJltf`vXZHA۝vnXrtAJ`vXnZHAbnXv`r˂ptArdےbHAnvpے`JX|ZdQےHAbdQZ|nvp`JXQv`fbdQZ|vpfے`JXQf~Hp˂rZHAb|ZdQbZp˂fH~Qr˂pbtlZp˂drtfH~rbtl~HXdrtAH~fr˂pfpvXQJ`ےے`JXQtlJbHAZf`vXZHAbJtArdrXQJ`AJltf`vXJtAdv`fJlt`vXnZHAbnXv`bHAZr˂ptArdp˂rnvpے`JX|ZdQbHAbdQZ|nvp|ZdQ~HfpbdQZ|vpfے`JXQf~Hp˂rZHAb|ZdQbXQJ`ےfH~Qr˂pbtlZp˂drtfH~btlvnXdrtAH~fr˂pfpvXQJ`ےے`JXQtlJbHAZf`vXZHAbJtArdrXQJ`AJltf`vXJtArdv`fJbdQ`vXnZHAےnXv`bHAZr˂ptArdp˂nvpے`JX|ZdQbHAbdQZ|nvp|ZdQ~HXv`Z|dvpf`JXQrf~Hp˂rZHAbf~HbHAZpfH~Qr˂pbtlZp˂drtfH~btlf~HrtAJlH~fbtlfpvXQJ`ےے`JXQXv`f˂rXQf`vXZHAbJtArdrXQJ`AJltf`vXJtArdfpvtbdQ`vXnJtAdnXv`bHAZr˂p~HfJ`ےnvpے`JXf~HbHAbdQZ|nvp|ZdQnXv`Z|dvpf|ZdQbf~Hp˂rZHAbpvnbHAZpfH~Qr˂pfpvZp˂drtfH~btlf~HrtAJbH~ftlJfpvXQJ`ےے`JXQXv`f˂bf`vXZHAbnXv`rXQJ`AJltfZHAbJtArdXv`dQZ|`vXntArdnXv`bHAZr˂p~HXHAZdnvpے`JXf~HbHAbdQZ|ے`JX|ZdQf~HdrtAJvpf|ZdQbf~Hp˂rZHAbv`frtAJfH~Qr˂pfpvZp˂drtQr˂pbtlfpvltbH~ftlJfpvXQJ`ےے`JXQ~HfpbdQZ|f`vXZHAbnXv`rXQJ`AJltZHAbJtArdnXv`pdQZ|`vXntArdnXv`bHAZr˂pvnXdrtAnvpے`JXf~HbHAbdQZ|ے`JX|ZdQvndrtAJvpf|ZdQbf~Hp˂rZHAbv`fJltfH~Qr˂pfpvZp˂drtQr˂pbtlrXQJ`pbdQZ|H~ftlJfpvXQJ`ےے`JXQ~HXvbdQZ|f`vXZHAۅnXv`rXQJ`AJltZHAbJtArd˂rXdrtZHAbtArdnXv`bHAZr˂p`f~drtAJnvp`JXQf~HbHAbdQZ|ے`JX|ZdQQJ`ےAJltے`JXQ|ZdQbf~Hp˂r|ZdQbHfpvbdQZfH~rbtlfpvZp˂dtAQr˂pbtlbHAZpbdQZ|r˂ptlJfpvXQJ`ےtlJnXv|drf`vXJtAdnXv`rXQJ`JltZHAbJtArd˂drtZHAbtArdnXv`bHAZtArd`f~tAJlnvp|ZdQf~HbHAbnvpے`JX|ZdQbHAZpAJbdQے`JXQ|ZdQbf~Hp˂r|ZdQbHXv`tbdQZfH~btlfpvZp˂fHQr˂pbtlrXQZ|dr˂ptlJfpvXQJ`ےtlJf~H|drf`vXJtArdnXv`rXQJ`f`vXZHAbJtArdJ`ےrtAJlZHAbtArdnXv`bHAZtArdfpvtAJbdnvp|ZdQf~HbHAnvpے`JX|ZdQbHAZptbdQے`JXQ|ZdQbf~Hp˂r|ZdQbnXv`QZ|dfH~btlfpvZp˂fH~Qr˂pbtlbHZ|AJr˂ptlJfpvXQJ`ےtlJf~HrtAJlf`vXJtArdnXv`rXQJ`f`vXZHAbJtArdAZp˂ltbZHAbtArdnXv`bHAZtArdXv`ftbdnvp|ZdQf~HbHAnvpے`JX|ZdQrXQJ`nvpے`JXQ|ZdQbfHfp˂r|ZdQb~HfQZ|dfH~btlfpvZp˂fH~Qr˂pbtlےbHfHfr˂ptlJpvnXQJ`ےtlJpvnrtAJfZHAbJtArdnXv`rXQJ`f`vXZHAbJtArdAZp˂`vXnZHAbtArdrXQJ`bHAZtArdXv`pbdQZ|ے`JX|ZdQf~HbHAnvpے`JX|ZdQbHAvpfے`JXQ|ZdQbےHAZdrtAJlt`vXnZHAbtArdXQJ`ےvXnZHAbArd|QJ`ےJltvXnJtAd|f~HltbvXnHAbےXv`fJ`ےltbHAbےrd|v`pvZ|dvXnrd|v`fJ`ےvXnZHAbpfH~bdQZ|vpfے`JXQf~HbHAZvpfH`JXQZdQbtbHAZpbdQZ|vpfHZdQbtfpvdQZ|vpfH`JXQr~HfbHAZpdQZ|`JXQrZdQbtnrXQrtAJbvpfHZdQbt~HfpbHAZpvpfH`JXQf۝`vdrtAH~fr˂pXv`fp˂~f`r˂plJt˂rXdrtA~f`lJtnXv`drtAJ~f`˂pZpvn˂rXQdrtAJ˂pZlJtAJ`p˂dQZ|~fZHlJtAvnXrXQ~f`r˂pXnvˍJlt`vXnZHAb~HfbHAZpvXnZHAbArd|QJ`ےJltvXnArd|f~HbdQZ|vXnHAے`Xv`fJ`ےltbHAbےrd|rXQJdrtAJAbے`rd|v`fJ`ےvXnZHAbpfH~bdQZ|vpfے`JXQpvn˂rXQvpfH`JXQZdQbtbHAZpbdQZ|vpfHZdQbtXv`ˁdrtvpfHJXQrb~HfbHAZpdQZ|`JXQrZdQbt`ےbltbJXQrZdQbt~HfpbHAZdvpfH˂pZHf۝`vdrtAH~fr˂pXv`fJ`ے~f`r˂plJt˂rXdrtA~f`lJtf~HAJlt~f`tlJpvn˂rXQdtAJl˂pZlJtAHAZp˂dQZ|˂pZHlJtAvnXrtAJl~f`Abے`XnvˍJlt`vXnZHAb~HXbHAZpvXnZHAbArdQJ`ےJltvXnArd|fpvbdQZ|vXntAd|Xv`fJ`ےtbnHAbےrd|bHAdrtAJAbے`rd|v`ftbdvXnہJXQrpfH~bdQZ|vpfے`JXQv`f˂bvpfH`JXQf~HbHAZpbdQZ|vpfHZdQbtnXv`ˁdrtvpfHZdQbt~HfbHAZpvpf`JXQrZdQbtZp˂bdQZ|JXQrZdQbt~HfpQZ|dvpfH˂p`Zf۝`vdrtAH~fr˂p~HfpHAZd~f`r˂pfpv˂rXdrtA~flJtf~HXAJbdQ~f`lJtApvn˂rXQHf`˂pZlJtArXQJ`drt˂pZHlJtAvnXrtAJl~f`QXb㉀XnvˍJlt`vXnZHAےvnXrtAJvXnZHAbnXv`QJ`ےJltZHAbArd|v`fZ|dvXnrd|Xv`fJ`ےvXnHAbےrd|ےbHAAJltAbے`rd|v`ftbdvXnۑpJAHrpfH~bdQZ|vpf`JXQrv`fbdQZ|vpfH`JXQf~HbHAZpbdQZ|`JXQZdQbt~HfprtAJlvpfHZdQbt~HfbHAZpvpfH`JXQrZdQbtZp˂bdQZ|JXQrZdQbt~HfpQZ|dvpfH󙐂ˁ`Zf۝`vdrtAH~fbtl~HXvdrtA~f`r˂pfpv˂rXdrtAr˂plJtvnXtbdQ~f`lJtApvn˂rXQ~f`˂pZlJtAbHAZAJl˂pZHlJtAvnXrtAJl~f`QXAHrXnvˍJlt`vXnJtAd`f~JltvXnZHAbnXv`QJ`ےJltZHAbArd|v`pZ|dvXnrd|Xv`fJ`ےvXnHAbےrd|p˂rtbnAbے`rd|v`ftbdvXnېˁ`ZQpfH~bdQZ|vpf|ZdQbHfpvbdQZ|vpfH`JXQf~HbHAZpbdQZ|`JXQZdQbtvnrXrtAJvpfHZdQbt~HfbHAZpvpfH`JXQrZdQbtXQJ`ےvpfHJXQrZdQbtHfpQZ|dvpfHXb㉀ۑf۝`vdrtAH~ftlJnXvdrtAJ~f`r˂pfpv˂rXdrtAr˂plJtQJ`pbdQZ|~fZlJtApvn˂rXQ~f`˂pZlJtAbHAZf`˂pZHlJtAvnrXrtAJl~f`pJAHrXnvˍJlt`vXntArd`f~bdQZvXnZHAے`nXv`QJ`ےJltZHAbArd|rXQdrtAHAbےrd|Xv`fJ`ےvXnHAbےrd|p˂vXnAbے`rd|QJ`ےtbdvXnېˁ`ZQp|drbdQZ|vpf|ZdQbHXv`|drvpfHJXQrf~HbHAZpbdQZ|`JXQZdQbtJ`ےJlt`JXQrZdQbt~HfbHAZvpfH`JXQrZdQbtbHAZpvpfHJXQrZdQbtHAZpQZ|dvpfHXAHr󙐂QtJldrtAH~ftlJf~HtAJl璅~f`btlfpv˂rXdtAJlr˂plJtbHAZpbdQZ|˂pZlJtApvndrtAJ~f`˂pZlJtA˂rXQ~f`˂pZHlJtArXQrtAJl~f`ˁ`ZQXbtbAdZJlt`vXntArdfpvtbdQZvXnJtAd|nXv`QJ`ےtbZHAbArd|bHdrtAJHAbےrd|Xv`fltbvXnHAbےrdfJ`ےvXnAbے`rd|J`ےtbdvXn㉀ۑpJ|drbdQZ|vpf|ZdQbnXv`|drvpfHZdQbtf~HbHAZpnvp`JXQZdQbtAZp˂bdQZ`JXQrZdQbt~HfdQZ|vpfH`JXQr~HXbHAZpvpfHJXQrZdQbtbHAZpQZ|dvpfHAHr󙐂QtJldrtAH~ftlJf~HtAJbd~f`lJtfpv˂rXfHf`r˂plJtrXQJ`|dr˂pZlJtApvndrtAJ~f`˂pZv`f˂b~f`˂pZHlJtArXQrtAJl~f`ˁ`ZQXAtbAdZJltZHAbtArdXv`fQZ|dvXnArd|nXv`QJ`ےvXnZHAbArd|ےbHtAJlHAbےrd|Xv`fltbvXnHAbے~HfpHAZp˂vXnAbے`rd|J`ےtbdvXnHr󙐂ˁ|drbdQZ|ے`JXQ|ZdQb~HfrtAJlvpfHZdQbtf~HbHAZpvpfH`JXQZdQbtAZp˂tbdQZ`JXQrZdQbt~HfdQZ|vpfH`JXQrvnXrXQJvpfHJXQrZdQbtbHAZpQZ|dvpfH`ZQXbQtJldrtAr˂ptlJpvntbd~f`lJtfpv˂rX~f`r˂plJtbHA|AJl˂pZlJtApvndrtAJ~f`˂pZv`f`ےb~f`˂pZHlJtArXQrtAJl~f`ۑpJAtbAdZJltZHAbtArdXv`pQZ|dvXnArd|nXv`QJ`ےvXnZHAbArd|Zp˂tbnHAbےrd|Xv`fltbvXnHAbے~HXvHAZp˂vXnAbے`rdfJ`ےtbdvXnHr󙐂ˁ|drbdQZ|ے`JXQ|ZdQbvnrrtAJvpfHZdQbtf~HbHAZpvpfH`JXQZdQbtrXQJ`ۀvpf`JXQrZdQbtHfpdQZ|vpfH`JXQr`f~bHAvpfHJXQr~HfpbHAZpQZ|dvpfH`ZQXAHrQtJldrtAr˂ptlJXQJ`pbdQZ|~flJtfpv˂rX~f`r˂plJtbHAHf`˂pZlJtAvnrdrtAJ~f`˂pZHfpvZdr~f`˂pZHvnXrXQrtAJl~fr󙐂ˁ`ZtbAdZJltZHAbtArd˂rXQdrtAZHAbArd|nXv`QJ`ےvXnZHAbArd|Zp˂vXnHAbےrd|XQJ`ےltbvXnHAے`nXvtAJbdvXnAbے`v`fJ`ےtbd˂pZHQXb㉀|drbdQZ|ے`JXQ|ZdQbJ`ےJlt`JXQZdQbtf~HbHAZvpfH`JXQZdQbtbHAZpvpfH`JXQrZdQbtHAZpdQZ|vpfHJXQrb`f~QZ|dvpfHJXQr~HfpbHAZpQZ|dAbے`ۑpJAHrQtJldtAJr˂ptlJbHAZpbdQZ|r˂plJtfpvdrtA~f`r˂plJt˂rX~f`˂pZlJtA˂rXQdrtAJ~f`tlJHXv`rtAJl~f`˂pZHvnXrXQrtAJlJXQr󙐂ˁ`tbAdZltbZHAbtArd˂bdrtAZHAbArd|nXv`JltvXnZHAbArdQJ`ےvXnHAbےrd|J`ےltbvXntAd|f~HtbdvXnAbے`v`fJ`ےtbd˂pZHpfH~|drnvpے`JXQ|ZdQbHAZp˂JbdQ`JXQZdQbtf~HbdQZ|vpfH`JXQf~HXbHAZpvpfH`JXQrZdQbtbHAZpdQZ|vpfHZdQbtfpvQZ|dvpfHJXQr~HfpbHAZpQZ|dAbːf۝`vQtJlfHfr˂ptlJrXQJZ|dr˂plJtfpvdrtA~f`r˂pv`f˂~f`˂pZlJtA˂rXQdrtAJ~f`lJtAnXv`rtAJ~f`˂pZHvnXrXQrtAJlpZHAXnvˍtbAdZ`vXnZHAbtArd`ےbrtAJlZHAbArd|nXv`JltvXnZHAbە~HfpbHAZpvXnHAbےrd|J`ےltbvXnrd|f~HbdQZ|vXnAے`v`fJ`ےtbdbے`pfH~|drvpfے`JXQ|ZdQbHAZp˂tbdQ`JXQZdQbtf~HbdQZ|vpfH`JXQvnXrXQvpfH`JXQrZdQbtbHAZpdQZ|vpfHZdQbtXv`fdrtAvpfHJXQrbt~HfpbHAZpQZ|dJXQrːf۝`vQtJlH~fr˂ptlJbHAZ|AJlr˂plJtfpvdrtA~f`r˂pv`fJ`ے~f`˂pZlJtA˂rXQdrtAJ~f`lJtA~HfJlt~f`lJtvnXrXQtAJlpZHAXnvˍtbAdZ`vXnZHAbtArdZp˂tbZHAbArd|nXv`JltvXnZHAbە~HXbHAZpvXnHAbےrdfJ`ےltbvXnrd|pvnbdQZ|vXnAd|v`fJ`ےtbnb˂ppfH~|drvpfے`JXQ|ZdQbrXQJ`nvp`JXQZdQbtfHfpbdQZ|vpfH`JXQv`f󂀉bHvpfH`JXQr~HfbHAZpdQZ|vpfHZdQbtXv`fdrtAvpfHZdQbt~HfpbHAZp˅vpfHZHAbf۝`vQtJlH~fr˂ptlJےbHAfHf`r˂plJtvndrtA~f`r˂p~HfpAZd~f`˂pZpvn˂rXQdrtAJ~fZlJtA~HXJbdQ~f`lJtAvnXrXQf`ے`JXXnvˍtbAdZ`vXnZHAbtArdZp˂vXnZHAbArd|rXQJ`JltvXnZHAے`vnXrtAJbvXnHAbےXv`fJ`ےltbHAbےrd|v`fZ|dvXnrd|v`fJ`ےvXnQr˂ppfH~|drvpfے`JXQ|ZdQbbHAZvpfH`JXQZdQbtHAZpbdQZ|vpfHJXQrv`fdQZ|vpfH`JXQr~HfbHAZpdQZ|`JXQrZdQbt~HfprtAJlvpfHZdQbt~HfpbHAZpvpfHZHAbf۝`vQtJlH~fr˂ptlJp˂r~f`r˂plJt˂rXdrtA~f`btl~HXv`drtAJ~f`˂pZpvn˂rXQdrtAJ˂pZlJtAvnXtbdQ~f`lJtAvnXrXQ~f`˂pXnvˍtbAdZ|yz{|}~~}|{z-----------............................... \ No newline at end of file diff --git a/vendor/endroid/qr-code/assets/data/qrv28_3.dat b/vendor/endroid/qr-code/assets/data/qrv28_3.dat deleted file mode 100755 index f1fc12977..000000000 --- a/vendor/endroid/qr-code/assets/data/qrv28_3.dat +++ /dev/null @@ -1,257 +0,0 @@ -~}~}~}~}|{|{|{|{zyzyzyzyuvuvuvuvststststqrqrqrqropopopopmnmnmnmnklklklklijijijijghghghghefefefefabababab_`_`_`_`^]^]^]^]\[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLK~}~}~}~}|{|{|{|{zyzyzyzyuvuvuvuvststststqrqrqrqropopopopmnmnmnmnklklklklijijijijghghghghefefefefabababab_`_`_`_`^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLK~}~}~}~}|{|{|{|{zyzyxwxwuvuvuvuvststststqrqrqrqropopopopmnmnmnmnklklklklijijijijghghghghedcdcdcdabababab_`_`_`_`^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLK~}~}~}~}|{|{|{|{xwxwwwwwuvuvuvuvststststqrqrqrqropopopopmnmnmnmnklklklklijijijijghghghghcdcdcdcdabababab_`_`_`_`^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLK~}~}~}~}|{|{|{|{wxwxwxwxuvuvuvuvststststqrqrqrqropopopopmnmnmnmnklklklklijijijijghghghghcdcdcdcdabababab______`_^]^]^]^]ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKGHGHGHGH~}~}~}~}|{|{|{|{wxwxwxwxuvuvuvuvststststqrqrqrqropopopopmnmnmnmnklklklklijijijijgfefefefcdcdcdcdabababab`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKGHGHGHGH~}~}~}~}|{|{|{|{wxwxwxwxuvuvuvuvststststqrqrqrqropopopopmnmnmnmnklklklklijijijijefefefefcdcdcdcdabababab`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKGHGHGHGH~}~}~}~}|{|{|{|{wxwxwxwxuvuvuvuvststststqrqrqrqropopopopmnmnmnmnklklklklijijijijefefefefcdcdcdcdabababab`_`_`_`_\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKJIGHGHGHGG~}~}~}~}|{|{|{|{wxwxwxwwuvuvuvuvststststqrqrqrqropopopopmnmnmnmnklklklklihghghghefefefefcdcdcdcdabababab`_`_____\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMJIJIJIJIGGGGHGHG~}~}~}~}|{|{|{|{wwwwxwxwuvuvuvuvststststqrqrqrqropopopopmnmnmnmnklklklklghghghghefefefefcdcdcdcdabababab`_`_`_`_\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMJIJIJIJIHGHGHGHG~}~}~}~}|{|{|{|{xwxwxwxwuvuvuvuvststststqrqrqrqropopopopmnmnmnmnklklklklghghghghefefefefcdcdcdcdabababab^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMJIJIJIJIHGHGHGHG~}~}~}~}|{|{|{|{xwxwxwxwuvuvuvuvststststqrqrqrqropopopopmnmnmnmnkjijijijghghghghefefefefcdcdcdcdabababab^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMJIJIJIJIHGHGHGHG~}~}~}~}|{|{|{|{xwxwxwxwuvuvuvuvststststqrqrqrqropopopopmnmnmnmnijijijijghghghghefefefefcdcdcdcdabababab^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMJIJIJIJIHGHGHGHG~}~}~}~}|{|{|{zyxwxwxwxwuvuvuvuvststststqrqrqrqropopopopmnmnmnmnijijijijghghghghefefefefcdcdcdcdabababab^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMJIJIJIJIHGGGGGGH~}~}~}~}zyzyzyzyxwwwwwwxuvuvuvuvststststqrqrqrqropopopopmlklklklijijijijghghghghefefefefcdcdcdcdabababab^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMJIJIJIJIGHGHGHGH~}~}~}~}zyzyzyzywxwxwxwxuvuvuvuvststststqrqrqrqropopopopklklklklijijijijghghghghefefefefcdcdcdcdabababab^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMJIJIJIJIGHGHGHGH~}~}~}~}zyzyzyzywxwxwxwxuvuvuvuvststststqrqrqrqropopopopklklklklijijijijghghghghefefefefcdcdcdcdababa`_`^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMJIJIJIJIGHGHGHGH~}~}~}~}zyzyzyzywxwxwxwxuvuvuvuvststststqrqrqrqronmnmnmnklklklklijijijijghghghghefefefefcdcdcdcd_`_`____^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMJIJIJIJIGHGHGHGH~}~}~}~}zyzyzyzywxwxwxwxuvuvuvuvststststqrqrqrqrmnmnmnmnklklklklijijijijghghghghefefefefcdcdcdcd__`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPOLKLKLKLKJIJIJIJIGHGHGGGG~}~}~}~}zyzyzyzywxwxwwwwuvuvuvuvststststqrqrqrqrmnmnmnmnklklklklijijijijghghghghefefefefcdcdcdcd`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPOLKLKLKLKJIJIJIJIGGHGHGHG~}~}~}~}zyzyzyzywwxwxwxwuvuvuvuvststststqpopopopmnmnmnmnklklklklijijijijghghghghefefefefcdcdcdcd`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPOLKLKLKLKJIJIJIJIHGHGHGHG~}~}~}~}zyzyzyzyxwxwxwxwuvuvuvuvststststopopopopmnmnmnmnklklklklijijijijghghghghefefefefcdcdcdcd`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQNMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHG~}~}~}~}zyzyzyzyxwxwxwxwuvuvuvuvststststopopopopmnmnmnmnklklklklijijijijghghghghefefefefcdcdcdcd`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQNMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHG~}~}~}~}zyzyzyzyxwxwxwxwuvuvuvuvsrqrqrqropopopopmnmnmnmnklklklklijijijijghghghghefefefefcdcdcdcd_____`_`^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQNMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHG~}~}~}~}zyzyzyzyxwxwxwxwuvuvuvuvqrqrqrqropopopopmnmnmnmnklklklklijijijijghghghghefefefefcdcdcdcd_`_`_`_`^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIGGGGGHGH|{|{|{|{zyzyzyzywwwwwxwxuvuvuvuvqrqrqrqropopopopmnmnmnmnklklklklijijijijghghghghefefefefcdcdcdcd_`_`_`_`^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIGHGHGHGH|{|{|{|{zyzyzyzywxwxwxwxutstststqrqrqrqropopopopmnmnmnmnklklklklijijijijghghghghefefefefcdcdcdcb_`_`_`_`^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIGHGHGHGH|{|{|{|{zyzyzyzywxwxwxwxststststqrqrqrqropopopopmnmnmnmnklklklklijijijijghghghghefefefefabababab_`_`_`_`^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVURQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIGHGHGHGH|{|{|{|{zyzyzyzywxwxwxwxststststqrqrqrqropopopopmnmnmnmnklklklklijijijijghghghghefefefefabababab_`______^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVURQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIGHGGGGGH|{|{|{|{zyzyzyzywxwxwxwuststststqrqrqrqropopopopmnmnmnmnklklklklijijijijghghghghefefefefabababab`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVURQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIGHGHGHGF~}~}~}~}|{|{|{|{zyzyzyzyuuuuuvuvststststqrqrqrqropopopopmnmnmnmnklklklklijijijijghghghghefefefefabababab`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIEFEFEFEF~}~}~}~}|{|{|{|{zyzyzyzyuvuvuvuvststststqrqrqrqropopopopmnmnmnmnklklklklijijijijghghghghefefefefabababab`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIEFEFEFEF~}~}~}~}|{|{|{|{zyzyzyzyuvuvuvuvststststqrqrqrqropopopopmnmnmnmnklklklklijijijijghghghghefefefefabababab`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIHGHGEFEFEFEF~}~}~}~}|{|{|{|{zyzyzyzyuvuvuvuvststststqrqrqrqropopopopmnmnmnmnklklklklijijijijghghghghefefefefabababab`_`_`___^]^]^]^]\[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKHGHGGGGGEFEFEFEF~}~}~}~}|{|{|{|{zyzyzyzyuvuvuvuvststststqrqrqrqropopopopmnmnmnmnklklklklijijijijghghghghefefefefabababab___`_`_`^]^]^]^]\[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:787878785656565612121212/0/0/0/0.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"!         - - - -EFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:787878785656565612121212/0/0/0/0.-.-.-.-,+,+,+,+*)*)*)('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -EFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:787878785656565412121212/0/0/0/0.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -EFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:787878783434343412121212/0/0/0/0.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -EFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:787878783434343412121212/0/0/0//.-.-.-.-,+,+,+*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -EFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:787878763434343412121212////0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - EFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:5656565634343434121212120/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         EFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:5656565634343434121212120/0/0/0/.-.-.-,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         EFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:985656565634343434121212120/0/0/0/,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - -EFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<787878785656565634343434121212120/////0/,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -EFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<787878785656565634343434121212120/0/0/.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -EFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;:78787878565656563434343412121212.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!       - - - -EFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>9:9:9:9:78787878565656563434343412121212.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!     - - - -EFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>9:9:9:9:78787878565656563434343412121212.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!     - - - -EFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=<9:9:9:9:78787878565656563434343412121212.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!      - - - -EFEFEFEFCDCDCDCDABABABAB?@?@?@?@;<;<;<;<9:9:9:9:78787878565656563434343412121212.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -EFEFEFEFCDCDCDCDABABABAB?@?@?@?@;<;<;<;<9:9:9:9:78787878565656563434343412121212.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -EFEFEFEFCDCDCDCDABABABAB?@?@?@?>;<;<;<;<9:9:9:9:7878787856565656343434341210/0/0.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -EFEFEFEFCDCDCDCDABABABAB=>=>=>=>;<;<;<;<9:9:9:9:787878785656565634343434/0//////.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -EFEFEFEFCDCDCDCDABABABAB=>=>=>=>;<;<;<;<9:9:9:9:7878787856565656343434340/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -EFEFEFEFCDCDCDCDABABABA@=>=>=>=>;<;<;<;<9:9:9:9:7878787856565656343434340/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -EFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:7878787856565656343434340/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - -EFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:7878787856565656343434340/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!     - - - -EFEFEFEFCDCDCDCB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:7878787856565656343434340/0/0///.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!     - - - -EFEFEFEFABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:787878785656565634343434///0/0/0.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!      - - - -EFEFEFEFABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:787878785656565634343434/0/0/0/0.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#         - - - -EFEFEFEDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:787878785656565634343434/0/0/0/0.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#         - - - -CDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:787878785656565634343212/0/0/0/0.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#"!         - - - -CDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:787878785656565612121212/0/0/0/0.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%"!"!"!"!         - - - -CDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:787878785656565612121212//////0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%"!"!"!"!         - - - -CDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:7878787856565656121212120/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%$#"!"!"!"!         - - - -CDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:7878787856565656121212120/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!         - - - -CDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:7878787856565656121212120/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!         - - - -CDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:7878787856565656121212120/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('&%$#$#$#$#"!"!"!"!         - - - -CDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:7878787856565656121212120/0/////.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"!         - - - -~~}} NNMMGGFFrrssttuu]\\[[ZZY01122334EDDCCBBAHIIJJKKL-,,++**)`aabbccdxyyzz{{|*++,,--.-,,++**)eeffgghh }}~~ - - llkkjjii!!""##$$TTSSRRQQ99::;;<<((''&&%%||{{zzyy!!""##$$EEDDCCBBvvww}}~~ YXXWWVVU45566778A@@??>>=LMMNNOOP)((''&&%deeffggh |}}~~.//55667)((''&&%iijjkkll - - ~~}} hhggffee%%&&''((PPOONNMM==>>??@@$$##""!!xxwwvvuu%%&&''((AA@@??>> !!""##$UTTSSRRQ899::;;<=<<;;::9PQQRRSST%$$##""!hiijjkkl - - ~~}78899::;%$$##""!mmnnoopp||{{zzyyddccbbaa))**++,,LLKKJJIIAABBCCDD ttssrrqq))**++,,==<<;;::~~}}|{zy$%%&&''(QPPOONNM<==>>??@98877665TUUVVWWX! lmmnnoop }wwvvuut;<<==>>?! qqrrssttxxwwvvuu``__^^]]--..//00HHGGFFEEEEFFGGHHppoonnmm--..//0099887766xwwvvuut())**++,MLLKKJJI@AABBCCD54433221XYYZZ[[\pqqrrssttssrrqqp?@@AABBCuuvvwwxxttssrrqq\\[[ZZYY11223344DDCCBBAAIIJJKKLLtssrrqqpllkkjjii1122334455//..--tssrrqqp,--..//0IHHGGFFEDEEFFGGH100//..-\]]^^__`tuuvvwwxpoonnmmlCDDEEFFGyyzz{{||ppoonnmm XXWWVVUU55667788@@??>>==MMNNOOPP poonnmmlhhggffee55667788,,++**))poonnmml01122334EDDCCBBAHIIJJKKL-,,++**)`aabbccdxyyzz{{|lkkjjiihGMMNNOOP}}~~ - - llkkjjii!!""##$$TTSSRRQQ99::;;<<<<;;::99QQRRSSTT - - lkkjjiihddccbbaa99::;;<<((''&&%%lkkjjiih45566778A@@??>>=LMMNNOOP)((''&&%deeffggh |}}~~ - - hggffee_PQQRRSST ~~}} hhggffee%%&&''((PPOONNMM==>>??@@88776655UUVVWWXXhggffeed``__^^]]==>>??@@$$##""!!hggffeed899::;;<=<<;;::9PQQRRSST%$$##""!hiijjkkl - - ~~} _^^]]\\[TUUVVWWX - - ||{{zzyyddccbbaa))**++,,LLKKJJIIAABBCCDD44332211YYZZ[[\\ cba`__^^\\[[ZZYYAABBCCDD cba`__^^<==>>??@98877665TUUVVWWX! lmmnnoop }||{{zzy[ZZYYXXWXYYZZ[[\xxwwvvuu``__^^]]--..//00HHGGFFEEEEFFGGHH00//..--]]^^__`` - - ]]\\[[ZZXXWWVVUUEEFFGGHH]]\\[[ZZ@AABBCCD54433221XYYZZ[[\pqqrrsstyxxwwvvuWVVUUTTS\]]^^__ettssrrqq\\[[ZZYY11223344DDCCBBAAIIJJKKLL,,++**))aabbccddYYXXWWVVTTSSRRQQIIJJKKLLYYXXWWVVDEEFFGGH100//..-\]]^^__`tuuvvwwxuttssrrqSRRQQPPOeffgghhippoonnmm XXWWVVUU55667788@@??>>==MMNNOOPP((''&&%%eeffgghhUUTTSSRRPPOONNMMMMNNOOPP UUTTSSRRHIIJJKKL-,,++**)`aabbccdxyyzz{{|qppoonnm ONNMMGGFijjkkllm - - llkkjjii!!""##$$TTSSRRQQ99::;;<<<<;;::99QQRRSSTT$$##""!!iijjkkllQQPPOONNLLKKJJIIQQRRSSTT - - QQPPOONNLMMNNOOP)((''&&%deeffggh |}}~~ - - mllkkjji !!""##$FEEDDCCBmnnooppq hhggffee%%&&''((PPOONNMM==>>??@@88776655UUVVWWXX mmnnoopp !!""MMLKJIHGHHGGFFEEUUVVWWXX - - MMLKJIHGPQQRRSST%$$##""!hiijjkkl - - ~~} ihhggffe$%%&&''(BAA@@??>qrrssttuddccbbaa))**++,,LLKKJJIIAABBCCDD44332211YYZZ[[\\qqrrsstt##$$%%&&GFFEEDDCDDCCBBAAYYZZ[[\\GFFEEDDCTUUVVWWX! lmmnnoop }||{{zzyeddccbba())**++,>==<<;;:uvvww}}~``__^^]]--..//00HHGGFFEEEEFFGGHH00//..--]]^^__``uuvvwwxx''(())**CBBAA@@?@@??>>==]]^^__``CBBAA@@?XYYZZ[[\pqqrrsstyxxwwvvua``__^^],--..//0:9988776~\\[[ZZYY11223344DDCCBBAAIIJJKKLL,,++**))aabbccddyyzz{{||++,,--..?>>==<<;<<;;::99aabbccdd?>>==<<;\]]^^__`tuuvvwwxuttssrrq]\\[[ZZY01122334655//..-~~}}|{z XXWWVVUU55667788@@??>>==MMNNOOPP((''&&%%eeffgghh }}~~//556677;::9988788776655eeffgghh !!"";::99887`aabbccdxyyzz{{|qppoonnm YXXWWVVU45566778-,,++**)yxwwvvuu!!""##$$TTSSRRQQ99::;;<<<<;;::99QQRRSSTT$$##""!!iijjkkll - - ~~}}8899::;;7665543244332211iijjkkll##$$%%&&76655432deeffggh |}}~~ - - mllkkjji !!""##$UTTSSRRQ899::;;<)((''&&%ttssrrqq%%&&''((PPOONNMM==>>??@@88776655UUVVWWXX mmnnooppwwvvuutt<<==>>??10//..--00//..--mmnnoopp''(())**10//..--hiijjkkl - - ~~} ihhggffe$%%&&''(QPPOONNM<==>>??@%$$##""!ppoonnmm))**++,,LLKKJJIIAABBCCDD44332211YYZZ[[\\qqrrssttssrrqqpp@@AABBCC,,++**)),,++**))qqrrsstt++,,--..,,++**))lmmnnoop }||{{zzyeddccbba())**++,MLLKKJJI@AABBCCD! llkkjjii--..//00HHGGFFEEEEFFGGHH00//..--]]^^__``uuvvwwxxoonnmmllDDEEFFGG((''&&%%((''&&%%uuvvwwxx//556677((''&&%%pqqrrsstyxxwwvvua``__^^],--..//0IHHGGFFEDEEFFGGHhhggffee11223344DDCCBBAAIIJJKKLL,,++**))aabbccddyyzz{{||kkjjiihhMMNNOOPP$$##""!!$$##""!!yyzz{{||8899::;;$$##""!!tuuvvwwxuttssrrq]\\[[ZZY01122334EDDCCBBAHIIJJKKLdcba`__^55667788@@??>>==MMNNOOPP((''&&%%eeffgghh }}~~ - - ggffee__QQRRSSTT  }}~~<<==>>?? xyyzz{{|qppoonnm YXXWWVVU45566778A@@??>>=LMMNNOOP ^]]\\[[Z99::;;<<<<;;::99QQRRSSTT$$##""!!iijjkkll - - ~~}} ^^]]\\[[UUVVWWXX~~}}@@AABBCC|}}~~ - - mllkkjji !!""##$UTTSSRRQ899::;;<=<<;;::9PQQRRSST - - ZYYXXWWV==>>??@@88776655UUVVWWXX mmnnoopp||{{zzyyZZYYXXWWYYZZ[[\\wwvvuuttDDEEFFGG~~} ihhggffe$%%&&''(QPPOONNM<==>>??@98877665TUUVVWWXVUUTTSSRAABBCCDD44332211YYZZ[[\\qqrrssttxxwwvvuuVVUUTTSS]]^^__eessrrqqppMMNNOOPP}||{{zzyeddccbba())**++,MLLKKJJI@AABBCCD54433221XYYZZ[[\ RQQPPOONEEFFGGHH00//..--]]^^__``uuvvwwxxttssrrqqRRQQPPOOffgghhii - oonnmmllQQRRSSTT -yxxwwvvua``__^^],--..//0IHHGGFFEDEEFFGGH100//..-\]]^^__` - - NMMLKJIHIIJJKKLL,,++**))aabbccddyyzz{{||ppoonnmm NNMMGGFFjjkkllmm -  - - kkjjiihhUUVVWWXX - uttssrrq]\\[[ZZY01122334EDDCCBBAHIIJJKKL-,,++**)`aabbccd GGFFEEDDMMNNOOPP((''&&%%eeffgghh }}~~ - - llkkjjii!!""##$$EEDDCCBBnnooppqq - - ggffee__YYZZ[[\\qppoonnm YXXWWVVU45566778A@@??>>=LMMNNOOP)((''&&%deeffgghCCBBAA@@QQRRSSTT$$##""!!iijjkkll - - ~~}} hhggffee%%&&''((AA@@??>>rrssttuu ^^]]\\[[]]^^__ee - - mllkkjji !!""##$UTTSSRRQ899::;;<=<<;;::9PQQRRSST%$$##""!hiijjkkl??>>==<>??@98877665TUUVVWWX! lmmnnoop !!";;::9988YYZZ[[\\qqrrssttxxwwvvuu``__^^]]--..//0099887766 - - VVUUTTSSjjkkllmmeddccbba())**++,MLLKKJJI@AABBCCD54433221XYYZZ[[\pqqrrsst"##$$%%&77665543]]^^__``uuvvwwxxttssrrqq\\[[ZZYY1122334455//..--~~}}|{zy RRQQPPOOnnooppqqa``__^^],--..//0IHHGGFFEDEEFFGGH100//..-\]]^^__`tuuvvwwx&''(())*210//..-aabbccddyyzz{{||ppoonnmm XXWWVVUU55667788,,++**))xwwvvuut`__^^]]\-..//001HGGFFEEDEFFGGHHI0//..--,]^^__``auvvwwxxy'(())**+0//..--,bbccddeezz{{||}} oonnmmll !!WWVVUUTT66778899++**))((wvvuutts"##$$%%&SRRQQPPO:;;<<==>;::99887RSSTTUUV#""!! jkkllmmn'(())**+)((''&&%\[[ZZYYX12233445DCCBBAA@IJJKKLLM,++**))(abbccddeyzz{{||}+,,--../,++**))(ffgghhii ~~ - - kkjjiihh""##$$%%SSRRQQPP::;;<<==''&&%%$$srrqqppo&''(())*ONNMMLLK>??@@AAB76655443VWWXXYYZnooppqqr+,,--../%$$##""! !XWWVVUUT56677889@??>>==>??@@AA##""!! onnmmllk*++,,--.KJJIIHHGBCCDDEEF3221100/Z[[\\]]^rssttuuv/5566778! !""##$$%TSSRRQQP9::;;<<=<;;::998QRRSSTTU$##""!! ijjkkllm - - ~~}}w899::;;<$##""!! nnooppqq{{zzyyxxccbbaa``**++,,--KKJJIIHHBBCCDDEEkjjiihhg.//00112GFFEEDDCFGGHHIIJ/..--,,+^__``aabvwwxxyyz899::;;<%&&''(()POONNMML=>>??@@A87766554UVVWWXXY mnnooppqwvvuutts<==>>??@ rrssttuuwwvvuutt__^^]]\\..//0011GGFFEEDDFFGGHHIIgffeedcb23344556CBBAA@@?JKKLLMMN+**))(('bccddeefz{{||}}~<==>>??@)**++,,-LKKJJIIHABBCCDDE43322110YZZ[[\\]qrrssttusrrqqppo@AABBCCDvvwwxxyyssrrqqpp[[ZZYYXX22334455CCBBAA@@JJKKLLMMa`__^^]]6778899:?>>==<<;NOOPPQQR'&&%%$$#fgghhiij ~xxw@AABBCCD-..//001HGGFFEEDEFFGGHHI0//..--,]^^__``auvvwwxxyonnmmllkDEEFFGGMzz{{||}} oonnmmll !!WWVVUUTT66778899??>>==<;::99887RSSTTUUV#""!! jkkllmmn - - wvvuuttsDEEFFGGM 12233445DCCBBAA@IJJKKLLM,++**))(abbccddeyzz{{||} kjjiihhgMNNOOPPQ~~ - - kkjjiihh""##$$%%SSRRQQPP::;;<<==;;::9988RRSSTTUU - - XXWWVVUU>??@@AAB76655443VWWXXYYZnooppqqrsrrqqppoMNNOOPPQ - - 56677889@??>>==>??@@AA77665544VVWWXXYYTTSSRRQQBCCDDEEF3221100/Z[[\\]]^rssttuuvonnmmllkQRRSSTTU - - 9::;;<<=<;;::998QRRSSTTU$##""!! ijjkkllm - - ~~}}| ^]]\\[[ZUVVWWXXY {{zzyyxxccbbaa``**++,,--KKJJIIHHBBCCDDEE33221100ZZ[[\\]] - -PPOONNMMFGGHHIIJ/..--,,+^__``aabvwwxxyyzkjjiihhgUVVWWXXY =>>??@@A87766554UVVWWXXY mnnooppq|{{zzyyxZYYXXWWVYZZ[[\\]wwvvuutt__^^]]\\..//0011GGFFEEDDFFGGHHII//..--,,^^__``aa LKJIHGGFJKKLLMMN+**))(('bccddeefz{{||}}~ -gffee__^YZZ[[\\]ABBCCDDE43322110YZZ[[\\]qrrssttuxwwvvuutVUUTTSSR]^^__eefssrrqqpp[[ZZYYXX22334455CCBBAA@@JJKKLLMM++**))((bbccddeeFEEDDCCBNOOPPQQR'&&%%$$#fgghhiij ~ - ^]]\\[[Z]^^__eefEFFGGHHI0//..--,]^^__``auvvwwxxytssrrqqpRQQPPOONfgghhiij oonnmmll !!WWVVUUTT66778899??>>==<RSSTTUUV#""!! jkkllmmn - - ~~}}||{ZYYXXWWVfgghhiijIJJKKLLM,++**))(abbccddeyzz{{||} poonnmml !NMMGGFFEjkkllmmn - - kkjjiihh""##$$%%SSRRQQPP::;;<<==;;::9988RRSSTTUU##""!! jjkkllmm>==<<;;:VWWXXYYZnooppqqr{zzyyxxwVUUTTSSRjkkllmmn MNNOOPPQ(''&&%%$effgghhi }~~ - - lkkjjiih!""##$$%EDDCCBBAnooppqqrggffeedd&&''(())OONNMMLL>>??@@AA77665544VVWWXXYYnnooppqq !!""##:9988776Z[[\\]]^rssttuuvwvvuuttsRQQPPOONnooppqqr !!""##$QRRSSTTU$##""!! ijjkkllm - - ~~}}| hggffeed%&&''(()A@@??>>=rssttuuvccbbaa``**++,,--KKJJIIHHBBCCDDEE33221100ZZ[[\\]]rrssttuu$$%%&&''65543210^__``aabvwwxxyyzsrrqqppoNMMGGFFErssttuuu$%%&&''(UVVWWXXY mnnooppq|{{zzyyxdccbbaa`)**++,,-=<<;;::9vww}}~~__^^]]\\..//0011GGFFEEDDFFGGHHII//..--,,^^__``aavvwwxxyy(())**++//..--,,bccddeefz{{||}}~ -onnmmllk !!"EDDCCBBAuttssrrq())**++,YZZ[[\\]qrrssttuxwwvvuut`__^^]]\-..//00198877665~[[ZZYYXX22334455CCBBAA@@JJKKLLMM++**))((bbccddeezz{{||}},,--..//++**))((fgghhiij ~ - kjjiihhg"##$$%%&A@@??>>=qppoonnm,--..//0]^^__``auvvwwxxytssrrqqp\[[ZZYYX122334455//..--,~}}|{zyx !!WWVVUUTT66778899??>>==<>??@@AA77665544VVWWXXYYnnooppqqvvuuttss==>>??@@rssttuuvwvvuutts_^^]]\\[.//001125//..--,eddccbba899::;;>??@@A$##""!! oonnmmll**++,,--KKJJIIHHBBCCDDEE33221100ZZ[[\\]]rrssttuurrqqppooAABBCCDDvwwxxyyzsrrqqppo[ZZYYXXW23344556,++**))(a``__^^]<==>>??@mnnooppq|{{zzyyxdccbbaa`)**++,,-LKKJJIIHABBCCDDE kkjjiihh..//0011GGFFEEDDFFGGHHII//..--,,^^__``aavvwwxxyynnmmllkkEEFFGGMMz{{||}}~ -onnmmllk !!"WVVUUTTS6778899:(''&&%%$]\\[[ZZY@AABBCCDqrrssttuxwwvvuut`__^^]]\-..//001HGGFFEEDEFFGGHHIggffeedc22334455CCBBAA@@JJKKLLMM++**))((bbccddeezz{{||}} jjiihhggNNOOPPQQ ~ - kjjiihhg"##$$%%&SRRQQPPO:;;<<==>$##""!! YXXWWVVUDEEFFGGHuvvwwxxytssrrqqp\[[ZZYYX12233445DCCBBAA@IJJKKLLMba`__^^]66778899??>>==<??@@AAB UTTSSRRQHIIJJKKLyzz{{||} poonnmml !XWWVVUUT56677889@??>>==>??@@AA77665544VVWWXXYYnnooppqq{{zzyyxxYYXXWWVVZZ[[\\]]wvvuutts_^^]]\\[.//00112GFFEEDDCFGGHHIIJMLLKKJJIPQQRRSST~~}}| hggffeed%&&''(()POONNMML=>>??@@A87766554UVVWWXXYUTTSSRRQBBCCDDEE33221100ZZ[[\\]]rrssttuuwwvvuuttUUTTSSRR^^__eeffsrrqqppo[ZZYYXXW23344556CBBAA@@?JKKLLMMN IHHGGFFETUUVVWWX|{{zzyyxdccbbaa`)**++,,-LKKJJIIHABBCCDDE43322110YZZ[[\\] -QPPOONNMFFGGHHII//..--,,^^__``aavvwwxxyyssrrqqppQQPPOONNgghhiijj -onnmmllk !!"WVVUUTTS6778899:?>>==<<;NOOPPQQR - - -EDDCCBBAXYYZZ[[\xwwvvuut`__^^]]\-..//001HGGFFEEDEFFGGHHI0//..--,]^^__``a - MLKJIHGGJJKKLLMM++**))((bbccddeezz{{||}} oonnmmll !!MMGGFFEEkkllmmnn - kjjiihhg"##$$%%&SRRQQPPO:;;<<==>;::99887RSSTTUUV - A@@??>>=\]]^^__`tssrrqqp\[[ZZYYX12233445DCCBBAA@IJJKKLLM,++**))(abbccddeFFEEDDCCNNOOPPQQ''&&%%$$ffgghhii ~~ - - kkjjiihh""##$$%%DDCCBBAAooppqqrrgffeeddc&''(())*ONNMMLLK>??@@AAB76655443VWWXXYYZ=<<;;::9`aabbccdpoonnmml !XWWVVUUT56677889@??>>==>==ssttuuvvcbbaa``_*++,,--.KJJIIHHGBCCDDEEF3221100/Z[[\\]]^98877665deeffgghlkkjjiih!""##$$%TSSRRQQP9::;;<<=<;;::998QRRSSTTU$##""!! ijjkkllm>>==<<;;VVWWXXYYnnooppqq{{zzyyxxccbbaa``**++,,--<<;;::99ww}}~~_^^]]\\[.//00112GFFEEDDCFGGHHIIJ/..--,,+^__``aab54433221hiijjkklhggffeed%&&''(()POONNMML=>>??@@A87766554UVVWWXXY mnnooppq !!""#::998877ZZ[[\\]]rrssttuuwwvvuutt__^^]]\\..//001188776655~~[ZZYYXXW23344556CBBAA@@?JKKLLMMN+**))(('bccddeef !!""#100//..-lmmnnoopdccbbaa`)**++,,-LKKJJIIHABBCCDDE43322110YZZ[[\\]qrrssttu#$$%%&&'66554321^^__``aavvwwxxyyssrrqqpp[[ZZYYXX22334455//..--,,}}|{zyxw !!"WVVUUTTS6778899:?>>==<<;NOOPPQQR'&&%%$$#fgghhiij#$$%%&&'-,,++**)pqqrrssttuuZHAbtArd~HXvbHAZpnvpZHAbbtlf~HrXQJ`ہdrtnvpZHAbbtlbHAZpˁdrtH~fے`JXQtArdp˂rbdQZ|`vXnr˂p|ZdQbfpvے`JXQ|ZdQb`f~˂bfH~˙ے`JXJtArdfpvbHAAJltfH~˙ے`JXJtArdbHAJlt`vXnr˂pf~HXQJ`ےdrtAvpfZHAbtlJnXv`r˂ptlJHfpvHAZdf`vXQr˂p|ZdQnXv`Zp˂bdQZ|f`vXQr˂pf~HAZp˂bdQZ|vpfZHAےfpvbHAZJltH~fے`JXQtArdf~HZHAbtArdnXvrtAJnvpZHAbbtlf~HrXQJ`ہdrtnvpZHAۅXv`ˉrXQJ`drtH~f`JXQrnXv`p˂rbdQZ|`vXnr˂p|ZdQbXv`fے`JXQ|ZdQb`f~bdQZ|fH~˙ے`JXJtArdfpvbHAAJltfH~˒`JXQf~HےbHAJbdQ`vXnbtlf~HXQJ`ےdrtAvpfZHAbtlJ~HfdrtAr˂ptlJHXv`drtAf`vXQr˂p|ZdQnXv`Zp˂bdQZ|f`vXrbtlfpvAZp˂Z|dvpfJtAdfpvbHAZJltH~fے`JXQtArdpvnJltZHAbtArdf~HJltnvpZHAbbtlf~HrXQJ`ہdrtnvpJtAdnXv`ˉbHArtAJlH~f|ZdQbnXv`p˂rbdQZ|`vXnr˂p|ZdQbXv`pbdQZ|ے`JXQ|ZdQbfpvbdQZ|fH~˙ے`JXJtArdfpvbHAAJltfH~˂|ZdQf~HXZp˂tbdQZHAbtlJf~HXQJ`ےdrtAvpfZHAbtlJvnrdrtAJr˂ptlJnXv`drtAJf`vXQr˂p|ZdQnXv`Zp˂bdQZ|fZHAbbtlv`frXQJ`Z|AJے`JXQtArdfpvbHAZJltH~fے`JXQtArdXQJ`pbdQZZHAbtArdf~HbdQZnvpZHAbbtlf~HrXQJ`ہdtAے`JXJtArd~HfpbHAltbr˂p|ZdQbnXv`p˂rbdQZ|`vXnr˂p|ZdQb˂rXQ|drے`JXQ|ZdQbXv`f|drfH~˙ے`JXJtArdfpvbHAJltQr˂p|ZdQvnXZp˂nvpZHAbtlJf~HXQJ`ےdrtAvpfZHAbtlJJ`ےtAJlr˂ptlJ~HftAJlf`vXQr˂p|ZdQnXv`Zp˂bnvpZHAbbtlv`fbHAZpfHfے`JXQtArdfpvbHAZJltH~fے`JXQtArdbHAZptbdQZZHAbtArdpvntbdQZnvpZHAbbtlf~HrXQJ`۝fH˙ے`JXJtArd~HX˂rX`vXnr˂p|ZdQbnXv`p˂rbdQZ|`vXnr˂p|ZdQb˂b|drے`JXQ|ZdQbXv`p|drfH~˙ے`JXJtArdfpvbHAf`vXQr˂p|ZdQv`fQJ`ےvpfZHAbtlJf~HXQJ`ےdrtAvpfZHAbtlJHAZp˂tAJbdr˂ptlJ˂rXQtAJbdf`vXQr˂p|ZdQnXv`ZdrtnvpZHAbbtl~HfpۙbHAZpH~fے`JXQtArdfpvbHAZJltH~fے`JXQtArdrXQJQZ|dZHAbtArdJ`ےQZ|dnvpZHAbbtlfHAJltfH~˙ے`JXJtArdvnX˂`vXnr˂p|ZdQbnXv`p˂rbdQZ|`vXnr˂p|ZdQb`ےbrtAJlے`JXQ|ZdQbbHAZprtAJlfH~˙ے`JXJtArdfpvbdQZ|f`vXQr˂p|ZdQv`fbHAZdvpfZHAbtlJf~HXQJ`ےdrtAvpfZHAbtlJHAZp˂tbdr˂ptlJ˂btbdf`vXQr˂p|ZdQnrXQJ`drtnvpZHAbbtl~HXv`rtAJH~fے`JXQtArdfpvbHAZJltH~fے`JXQtArdbHAQZ|dZHAbtArdHAZp˂QZ|dnvpZHAbbtlےHAAJltfH~˙ے`JXJtArdf~HbdQZ|`vXnr˂p|ZdQbnXv`p˂rbdQZ|`vXnr˂pf~HZp˂rtAJے`JXQ|ZdQbrXQJrtAJfH~˙ے`JXJtArdZp˂bdQZ|f`vXQr˂p|ZdQfpvdrtAvpfZHAbtlJf~HXQJ`ےdrtAvpfZHAےXv`frXQJ`bdQZ|r˂ptlJ`ےbbdQZ|f`vXQr˂pf~HrXQJ`ہdrtnvpZHAbbtlnXv`JltH~fے`JXQtArdfpvbHAZJltH~f`JXQr~HfےbHAdrtAZHAbtArdHAZp˂drtAnvpZHAۅfpvbHAAJltfH~˙ے`JXJtArdf~HbdQZ|`vXnr˂p|ZdQbnXv`p˂rbdQZ|`vXnbtlpvnZp˂Jltے`JXQ|ZdQbbHAJltfH~˒`JXQnXv`Zp˂bdQZ|f`vXQr˂p|ZdQXv`drtAvpfZHAbtlJf~HXQJ`ےdrtAvpfJtAdXv`fbHAZbdQZ|r˂ptlJZp˂bdQZ|f`vXrbtlf~HrXQJ`ہdrtnvpZHAbbtlf~HJbdQH~fے`JXQtArdfpvbHAZJltH~f|ZdQb~HXp˂rdrtAZHAbtArdrXQJ`drtAnvpJtAdfpvbHAAJltfH~˙ے`JXJtArdfpvZ|d`vXnr˂p|ZdQbnXv`p˂rbdQZ|ZHAbtlJv`fXQJ`ےJbdQے`JXQf~HےbHAJbdQfH~˂|ZdQnXv`Zp˂bdQZ|f`vXQr˂p|ZdQnXv`prtAJl瀅vpfZHAbtlJf~HXQJ`ےdtAJے`JXQtArd~HfpbHAZZ|dr˂pXv`fZp˂Z|dfZHAbbtlf~HrXQJ`ہdrtnvpZHAbbtlvntbdQH~fے`JXQtArdfpvbHAZltbr˂p|ZdQbvnXp˂rtAJlZHAb~HfbHAZrtAJlے`JXJtArdfpvbHAAJltfH~˙ے`JXJtArdrXQJ`pZ|d`vXnr˂p|ZdQbnXv`p˂rnvpZHAbtlJv`fbHAZptbdQے`JXQpvnp˂rtbdQQr˂p|ZdQnXv`Zp˂bdQZ|f`vXQr˂p|ZdQ˂rXrtAJbvpfZHAbtlJf~HXQJ`ےfHfے`JXQtArd~HXv˂rXQZ|AJlr˂pXv`fXQJ`ےZ|dnZHAbbtlf~HrXQJ`ہdrtnvpZHAbbtlQJ`ےdQZ|H~fے`JXQtArdfpvbHAZ`vXnr˂p|ZdQb`f~J`ےtb|ZdQb~HXbHAZvf˙ے`JXJtArdfpvbHAAJltfH~˙ے`JXJtArdbHAZpdrtAJ`vXnr˂p|ZdQbnXv`drtAvpfZHAbtlJHfpvbHAZpnvptlJv`fp˂f`vXQr˂p|ZdQnXv`Zp˂bdQZ|f`vXQr˂p|ZdQ˂ltbvpfZHAbtlJfHfJltH~fے`JXQtArdnXv˂bfHf`tArd~HfpbHAZpnvpZHAbbtlf~HrXQJ`ہdrtnvpZHAbbtlbHAZpdQZ|H~fے`JXQtArdpvnbdQZ|`vXnr˂p|ZdQb`f~HAZdvXn|ZdQbvnX˂rXQfH~˙ے`JXJtArdfpvbHAAJltfH~˙ے`JXJtArdrXQdrtAJ`vXnr˂p|ZdQbrXQJ`drtAvpfZHAbtlJHXv`rtAJvpfHtlJv`fJ`ےf`vXQr˂p|ZdQnXv`Zp˂bdQZ|f`vXQr˂p|ZdQJ`ے㒉bdQZ|vpfZHAbtlJےHAZJltH~fے`JXQtArdf~HbdQZ|~f`vXnr˂pZdQbtnXv`ˑ˂rXbdQZ|vXnr˂pZdQbtےbHbdQZ|vpfHHAbےlJtAHAZpltb~f``JXQrrd|~HfQZ|dvXnۉ˂pZHZdQbtv`frXQQZ|dvXnpJAHrf۝`vvpfHZHAbۉlJtf~HQJ`ےdrtAvpfHZHAbۉlJtAZp˂drtA~f``JXQrrdf˂rXQdQZ|vXn˂pZZdQbtpvnrtAJlvpfHAbے`lJtA~HfpJ`ےrtAJlvpfHˁ`ZQXnvˍ~f``JXQArd|fpvbHAZpJlt~f``JXQArdˉbHAJltvXn˂pZ~HfJ`ےdrtAJvpfHHAbےlJtAXv`ftbd~f`JXQrrd|vnXbHAZpˑtbd~f`XAHr󙐂pfH~ㅍvXnr˂pZdQbtnXv`ˑ˂rXbdQZ|vXnr˂pf~HXZp˂bdQZ|vpfHHAے`pvnbHAZpltb~f``JXQrrd|~HXQZ|dvXnۉ˂pZHZdQbtv`frXQQZ|dvXnˁ`ZQXbf۝`vvpfHZHAbۉlJtf~HQJ`ےdrtAvpfHZHAے`v`frXQJ`ۂdrtAJ~f`JXQrbXv`f˂rXQdQZ|vXn˂pZZdQbtv`frtAJvpfHAbے`lJtA~HfpJ`ےrtAJlvpfH㉀ۑpJXnvˍ~f``JXQArd|fpvbHAZpJlt~f`JXQr~HfpbHAbdQZvXntlJ~HfJ`ےdrtAJvpfHHAbےlJtA~HfpbdQZ|~f`JXQrrd|vnXbHAZpˑtbd~frAHr󙐂pfH~ㅍvXnr˂pZdQbtnXv`ˑ˂rXbdQZ|vXnbtlvnXZp˂|drvpfHtAd|pvnbHAZpltb~f``JXQrrd|vnXdrtAvXnۉ˂pZHZdQbtv`frXQQZ|d˂pZHˁ`ZQXAf۝`vvpfHZHAbۉlJtf~HQJ`ےdrtAvpfHJtAd|v`fbHAZptAJl~fZZdQbtXv`f˂rXQdQZ|vXn˂pZZdQbtv`pvJltvpfHAbے`lJtA~HfpJ`ےtAJlAbے`Hr󙐂ˁXnvˍ~f``JXQArd|fpvbHAZpJlt~fZdQbt~HX˂rXtbdQZHAbےlJtA~HfJ`ےdrtAJvpfHHAbےlJtAnrXQbdQZ|~f`JXQrrd|vnXbHAZp˒tbnJXQr`ZQXbp|drvXnr˂pZdQbtnXv`ˑ˂rXbdQZ|ZHAbۉlJtv`fQJ`ے|AJl`JXQrrd|pvnbHAZpltb~f``JXQrrd|J`p˂drtAvXnۉ˂pZHZdQbtv`frXQvpfH˂pZHۑpJAQtJlvpfHZHAbۉlJtf~HQJ`ےdtAJl`JXQArd|~HfpۙbHAZptbn˂pZZdQbtXv`f˂rXQdQZ|vXn˂pZZdQbtrXQJJbdQvpfHAbے`lJtA~HfpJ`ےㅐf`AbHr󙐂ˁtbAdZ~f``JXQArd|fpvbHAZptbr˂pZdQbtvnX˂々vpfHAbےlJtA~HfJ`ےdrtAJvpfHHAbےlJtA`ےbZ|d~f`JXQrrd|vnXbHAZdvXnۂpZHA`ZQXAHr|drvXnr˂pZdQbtnXv`ˑ˂rXnvpZHAbۉlJtv`fbHAZpHf``JXQrrd|pvnbHAZpltb~f``JXQrrd|HAZp˂rtAJlvXnۉ˂pZHZdQbtv`frtAJlvpfHbے`󙐂ˁ`ZQtJlvpfHZHAbۉlJtf~HQJ`ےfHf``JXQArd|~HXv`rXQvXn˂pZZdQbtXv`f˂rXQdQZ|vXn˂pZZdQbtbHAtbdQvpfHAbے`lJtAHfpۑtbd~f`JXQrQXb㉀tbAdZ~f``JXQArd|fpvbHAZvXnr˂pZdQbtf~HJ`ےvpfHHAbےlJtA~HfJ`ےdrtAJvpfHHAbےlJtAZp˂Z|d~f`JXQrrd|vnrXQZ|dvXnۂpZHAۑpJAHr|drvXnr˂pZdQbtnXv`˂drtAvpfHZHAbۉlJtfpvbHAZp~f``JXQrrd|pvnbHAZpltb~f``JXQrrd|rXQJ`rtAJbvXnۉ˂pZHZdQbtQJ`ےrtAJlvpfHb˂p󙐂ˁ`QtJlvpfHZHAbۉlJtfHfpJlt~f``JXQArd|nXv`bHvXn˂pZZdQbtXv`f˂rXQdQZ|vXn˂pZZdQbtےbHAdQZ|vpfHAbے`lJtAHAZpˑtbd~f`ZHAbpfH~tbAdZ~f``JXQArd|vnbdQZ|vXnr˂pZdQbtf~HAZdvpfHHAbےlJtA~HfJ`ےdrtAJvpfHHAbےlJtAZp˂drtAJ~f`JXQrrdfrXQQZ|dvXnۙے`JXf۝`v|drvXnr˂pZdQbtrXQJ`ۂdrtAvpfHZHAbۉlJtXv`rtAJb~f``JXQrrd|pvnbHAZpltb~f``JXQrrdfbHAZltbvXnۉ˂pZH~HfpJ`ےrtAJlvpfHQr˂pXnvˍQtJlvpfHZHAbۉlJtHAZpJlt~f``JXQArd|f~HdQZ|vXn˂pZZdQbtXv`f˂rXQdQZ|vXn˂pZ~HXp˂rdQZ|vpfHAے`vnXbHAZpˑtbd~f`ZHAbpfH~tbAdZ~f``JXQArdˑ˂rXbdQZ|vXnr˂pZdQbtfpvdrtAJvpfHHAbےlJtA~HfJ`ےdrtAJvpfHHAے`v`fXQJ`ےdrtAJ~f`JXQrbtv`frXQQZ|dvXnۙ˂pf۝`v|drvXnr˂pf~HQJ`ےdrtAvpfHZHAbۉlJtnXv`ltb~f``JXQrrd|pvnbHAZpltb~f`JXQrb~HfpbHAZbdQZ|vXnۉlJt~HfpJ`ےrtAJlvpfHZHAbXnvˍQtJlvpfHZHAے`fpvbHAZpJlt~f``JXQArd|f~HXdQZ|vXn˂pZZdQbtXv`f˂rXQdQZ|vXntlJvnXp˂drtvpfHAd|vnXbHAZpˑtbd~f``JXQpfH~tbAdZ~f`JXQrnXv`ˑ˂rXbdQZ|vXnr˂pZdQbtv`fdrtAJvpfHHAbےlJtA~HfJ`ےdrtAJvpfHtAd|v`fbHAZpAJlt~fZHZdQbtv`frXQQZ|dvXnr˂pf۝`v|drvXnbtlf~HQJ`ےdrtAvpfHZHAbۉlJt~HfpbdQZ|~f``JXQrrd|pvnbHAZpltb~fZZdQbt~HXv˂rXQbdQZ|Abے`lJtA~HfpJ`ےrtAJlvpfHZHAbXnvˍQtJlvpfHJtAd|fpvbHAZpJlt~f``JXQArd|vnXdrtvXn˂pZZdQbtXv`f˂rXQdQZ|HAbےlJtA`f~J`ےAJlJXQrrd|vnXbHAZpˑtbd~f`˂pZHpfH~tbAdZ~fZdQbtnXv`ˑ˂rXbdQZ|vXnr˂pZdQbtv`pAJltvpfHHAbےlJtA~HfJ`ےdtAJl`JXQrrd|HfpvbHAZptbn˂pZHZdQbtv`frXQQZ|dvXnAbے`f۝`v|drZHAbۉlJtf~HQJ`ےdrtAvpfHZHAbۉlJtvnrXbdQZ|~f``JXQrrd|pvnbHAZptbn˂pZZdQbtnXv˂bvpfHAbے`lJtA~HfpJ`ےrtAJlvpfHJXQrXnvˍQtJl`JXQArd|fpvbHAZpJlt~f``JXQArd|QJ`pˁdrtvXn˂pZZdQbtXv`f˂rXQvpfHAbےlJtA`f~HAZp˂f`JXQrrd|vnXbHAZpˑtbd~f`˂p`ZpfH~tbAdZr˂pZdQbtnXv`ˑ˂rXbdQZ|vXnr˂pZdQbtrXQAJbdQvpfHHAbےlJtA~HfJ`ےHf``JXQrrd|HXv`rXQJvXnۉ˂pZHZdQbtv`frXQQZ|dvXnQXb㉀f۝`v|drZHAbۉlJtf~HQJ`ےdrtAvpfHZHAbۉlJtJ`ےZ|d~f``JXQrrd|pvnbHAZvXn˂pZZdQbtf~H`ےbvpfHAbے`lJtA~HfpJ`ےrtAJlvpfHۑpJAHrXnvˍQtJl`JXQArd|fpvbHAZpJlt~f``JXQArd|bHAZprtAJlvXn˂pZZdQbtXv`fdrtAJvpfHHAbےlJtAfpvHAZp˂~f`JXQrrd|vnXbHAZpˑtbd~f`󙐂ˁ`ZpfH~tbAdZr˂pZdQbtnXv`ˑ˂rXbdQZ|vXnr˂pZdQbtbHtbdQvpfHHAbےlJtAHfpltb~f``JXQrrd|nXv`bHAvXnۉ˂pZHZdQbtv`frXQQZ|dvXnQXAHrf۝`v|drZHAbۉlJtf~HQJ`ےdrtAvpfHZHAbۉlJtAZp˂Z|d~f``JXQrrd|vnrdQZ|vXn˂pZZdQbtf~HZdrvpfHAbے`lJtA~HfpJ`ےrtAJlvpfHˁ`ZQXnvˍQtJl`JXQArd|fpvbHAZpJlt~f``JXQArd|rXQJ`rtAJvXn˂pZZdQbtXQJ`ےdrtAJvpfHHAbےlJtAXv`ftAJbd~f`JXQrrd|vnXbHAZpˑtbd~f`Xb㉀ۑpfH~tbAdZ|yz{|}~~}|{z66667777777777777777777777777777777 \ No newline at end of file diff --git a/vendor/endroid/qr-code/assets/data/qrv29_0.dat b/vendor/endroid/qr-code/assets/data/qrv29_0.dat deleted file mode 100755 index b6cc568c6..000000000 --- a/vendor/endroid/qr-code/assets/data/qrv29_0.dat +++ /dev/null @@ -1,265 +0,0 @@ -|{|{{{{{yyyyyzyzyzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqropopopopopopopopmnmnmnmnklklklklijijijijghghghghefefefefdcdcdcccbabababa`_`_`_`_^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQRQRQRQRQNMNMNMNMKLKLKLKLIJIJIJIJIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@?@?@?@?>=>=>=>=>;<;<;<;<9:9:9:9:7878787856565656{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqropopopoponmnmnmnmnmnmnmnklklklklijijijijghghghghefefefefcccdcdcdbabababa`_`_`_`_^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQRQRQRQRQNMNMNMNMKLKLKLKLIJIJIJIJIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>=>=>=>=>;<;<;<;<9:9:9:9:7878787856565656~}{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqropopopopmnmnmnmnmnmnmnmnklklklklijijijijghghghghefefefefcdcdcdcdbabababa`_`_`_`_^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMKLKLKLKLIJIJIJIJIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>=>=>=>=>;<;<;<;<9:9:9:9:7878787856565656~}~}~}~}{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqropopopopmnmnmnmnmnmnmnmnklklklklijijijijghghghghefefefefcdcdcdcdbabababa`_`_`_`_^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMKLKLKLKKIJIJIJIJIJIJIJIHGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>=>=>=>=>;<;<;<;<9:9:9:9:7878787856565656~}~}~}~}{|{|{|{|yzyzyzyzyxwxwxwxwxwxwxwxuvuvuvuvststststqrqrqrqropopopopmnmnmnmnmnmnmnmnklklklklijijijijghghghghefefefefcdcdcdcdbabababa`_`_`_`_^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMKKKKLKLKIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>=>=>=>=>;<;<;<;<9:9:9:9:7878787856565656~}~}~}~}{|{|{|{{yzyzyzyzwxwxwxwxwxwxwxwxuvuvuvuvststststqrqrqrqropopopopmnmnmnmnmnmnmnmnklklklklijijijijghghghghefefefefcdcdcdcdbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>=>=>=>=<;<;<;<;<9:9:9:9:7878787856565656~}~}~}~}{{{{|{|{yzyzyzyzwxwxwxwxwxwxwxwxuvuvuvuvststststqrqrqrqropopopopmnmnmnmnmlklklklklklklklijijijijghghghghefefefefccccccdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<;<;<;<;<9:9:9:9:7878787856565656~}~}~}~}|{|{|{|{yzyzyzyzwxwxwxwxwxwxwxwxuvuvuvuvststststqrqrqrqropopopopmnmnmnmnklklklklklklklklijijijijghghghghefefefefdcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<;<;<;<;<9:9:9:9:7878787856565656~}~}~}~}|{|{|{|{yzyzyzyzwxwxwxwxwxwxwxwxuvuvuvuvststststqrqrqrqropopopopmnmnmnmnklklklklklklklklijijijijghghghghefefefefdcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKIJIJIJIJGHGHGHGHGHGHGHGFEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<;<;<;<;<9:9:9:9:7878787856565656~}~}~}~}|{|{|{|{yzyzyzyzwxwxwxwxwvuvuvuvuvuvuvuvststststqrqrqrqropopopopmnmnmnmnklklklklklklklklijijijijghghghghefefefefdcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKKKKKKLIJIJIJIJGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<;<;<;<;<9:9:9:9:7878787856565656~}~}~}~}|{|{|{|{yzyzyzyzwxwxwxwxuvuvuvuvuvuvuvuvststststqrqrqrqropopopopmnmnmnmnklklklklklklklklijijijijghghghghefefefefdcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<;<;<;<;:9:9:9:9:7878787856565656~}~}~}~}|{{{{{{|yzyzyzyzwxwxwxwxuvuvuvuvuvuvuvuvststststqrqrqrqropopopopmnmnmnmnklklklklkjijijijijijijijghghghghefefedcddcdcccccbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:9:9:9:9:7878787856543434~}~}~}~}{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvuvuvuvuvststststqrqrqrqropopopopmnmnmnmnklklklklijijijijijijijijghghghghcdcdccccdcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:9:9:9:9:7878787834333333~}~}~}~}{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvuvuvuvuvststststqrqrqrqropopopopmnmnmnmnklklklklijijijijijijijijghghghgfccdcdcdcbabababababababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFEFEFEFEDCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:9:9:9:9:7878765643434343~}~}~}~}{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvutstststststststqrqrqrqropopopopmnmnmnmnklklklklijijijijijijijijefefefefdcdcdcdcbabababababababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMKLKLKKKKIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:9:9:9:9:5656565643434343~}~}~}~}{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststststststqrqrqrqropopopopmnmnmnmnklklklklijijijijijijijijefefefefdcdcdcdcbabababababababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMKKLKLKLKIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:9:9:9:985656565643434343~}~}~}~}{|{|{{{{yzyzyzyzwxwxwxwxuvuvuvuvststststststststqrqrqrqropopopopmnmnmnmnklklklklijijijijihghghghefefefefdcdcdcdcbabababababababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:787878785656565643434343~}~}~}~}{{|{|{|{yzyzyzyzwxwxwxwxuvuvuvuvststststststststqrqrqrqropopopopmnmnmnmnklklklklijijijijghghghghefefefefdcdcdcdcbabababababababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:787878785656565643434333~}~}~}~}|{|{|{|{yzyzyzyzwxwxwxwxuvuvuvuvststststststststqrqrqrqropopopopmnmnmnmnklklklklijijijijghghghghefefefefcccccdcdbabababa`_`_`_`_`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDCDCDCDCBABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:787878785656565633343434~}~}~}~}|{|{|{|{yzyzyzyzwxwxwxwxuvuvuvuvststststsrqrqrqrqrqrqrqropopopopmnmnmnmnklklklklijijijijghghghghefefefefcdcdcdcdbabababa`_`_`_`_`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABABABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:787878785656565634343434~}~}~}~}|{|{|{|{yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqrqrqrqrqropopopopmnmnmnmnklklklklijijijijghghghghefefefefcdcdcdcdbabababa`_`_`_`_`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMKKKKKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABABABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:787878785656565634343434~}~}~}~}|{|{|{|{yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqrqrqrqrqropopopopmnmnmnmnklklklklijijijijghghghghefefefefcdcdcdcdbabababa`_`_`_`_`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABABABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:78787878565656563434343443433333~}~}~}~}{{{{{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqrqrqrqrqropopopopmnmnmnmnklklklklijijijijghghghghefefefefcdcdcdcdbabababa`_`_`_`_`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABABABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:78787878565656563434343434343434~}~}~}~}{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqrqrqrqrqropopopopmnmnmnmnklklklklijijijijghghghghefefefefcdccccccbabababa`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABABABABABA@?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:78787878565656563333334334343434~}~}~}~}{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqrqpopopopopopopopmnmnmnmnklklklklijijijijghghghghefefefefdcdcdcdcbabababa`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:78787878565656564343434334343434~}~}~}~}{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqropopopopopopopopmnmnmnmnklklklklijijijijghghghghefefefefdcdcdcdcbabababa`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPONMNMLKLKKLKKKKKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:78787878565656564343434334343434~}~}~}~}{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqropopopopopopopopmnmnmnmnklklklklijijijijghghghghefefefefdcdcdcdcbabababa`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOLKLKKKKKKLKLKLKJIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:78787878565656564343434334343433~}~}|{|{{|{|{|{yyzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqropopopopopopopopmnmnmnmnklklklklijijijijghghghghefefefefdcdcdcdcbabababa`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQRQRQRQRQPOPOPONMKLKLKLKLIJIJIJIJIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:7878787856565656434343433333434343434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -43434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -43434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)*)*)*)('('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -43434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - - - -43333343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - - - - - -43434321212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - - - - - -21212121212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - - - - - -21212121212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('('('('&%&%&%&%&%$#$#$#$#"!"!"!"!         - - - - - - - -21212121212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%&%&%&%&%$#$#$#$#"!"!"!"!         - - - - - - 21212121212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%&%&%&%&%$#$#$#$#"!"!"!"!         - - - -212121212121210/0/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%&%&%&%&%$#$#$#$#"!"!"!"!         - - - -212121210/0/0/0/0/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%&%&%&%&%$#$#$#$#"!"!"!"!         - - - -212121210/0/0/0/0/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%&%&%&%$#$#$#$#$#"!"!"!"!         - - - -212121210/0/0/0/0/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!         - - - -212121210/0/0/0/0/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!         - - - -212121210/0/0/0/0/0/0/.-.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!         - - - -212121210/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!         - - - -212121210/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#$#$#$#"!"!"!"!"!         - - - -212121210/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!"!"!"!"!         - - - -212121210/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!"!"!"!"!         - - - -212121210/0/0/0/.-.-.-.-.-.-.-,+,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!"!"!"!"!       - - - -212121210/0/0/0/.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!"!"!"!"!      - - - -212121210/0/0/0/.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!"!"!"!          - - - -212121210/0/0/0/.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!             - - - -212121210/0/0/0/.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!             - - - -212121210/0/0/0/.-.-.-.-,+,+,+,+,+,+,+*)*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!             - - - -212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!           - - - -212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -mmnnoopp~}tuuvvwwx%$$##""!LMMNNOOPMLLKKJJI$%%&&''(uttssrrqlmmnnoop-,,++**)DEEFFGGHFEEDDCCBGHHIIJJK;;::9987==>>??@@\\[[ZZYY]]^^__``<<;;::9955667788ddccbbaa }}~~ xwwvvuut uvvwwxxy$##""!! MNNOOPPQLKKJJIIH%&&''(()tssrrqqpmnnooppq,++**))(EFFGGHHIEDDCCBBAHIIJJKKQ~~}} qqrrsstt |{{zzyyx - - xyyzz{{|! PQQRRSSTIHHGGFFE())**++,qppoonnmpqqrrsst)((''&&%HIIJJKKLBAA@@??>KQQRRSST65433221AABBCCDDXXWWVVUU~~}} aabbccdd8877665599::;;<<``__^^]] - - tssrrqqp - - yzz{{||} QRRSSTTUHGGFFEED)**++,,-poonnmmlqrrssttu(''&&%%$IJJKKLLMA@@??>>=QRRSSTTU||{{zzyy - - uuvvwwxx - - xwwvvuut |}}~~TUUVVWWXEDDCCBBA,--..//0mllkkjjituuvvwwx%$$##""!LMMNNOOP>==<<;;:TUUVVWWX100//..-EEFFGGHHTTSSRRQQ ||{{zzyy - - eeffgghh44332211==>>??@@\\[[ZZYYpoonnmml }~~UVVWWXXYDCCBBAA@-..//001lkkjjiih uvvwwxxy$##""!! MNNOOPPQ=<<;;::9UVVWWXXYxxwwvvuu - - yyzz{{|| - - tssrrqqpXYYZZ[[\A@@??>>=01122334ihhggffe - - xyyzz{{|! PQQRRSST:9933221XYYZZ[[\-,,++**)IIJJKKLLPPOONNMM!!""##$$xxwwvvuuiijjkkll00//..--AABBCCDDXXWWVVUU{{zzyyxxlkkjjiihYZZ[[\\]@??>>==<12233445hggffeed - - yzz{{||} QRRSSTTU93322110YZZ[[\\]ttssrrqq }}~~poonnmml\]]^^__`=<<;;::945566778eddccbba |}}~~TUUVVWWX100//..-\]]^^__`)((''&&%MMNNOOPPLLKKJJII%%&&''((ttssrrqqmmnnoopp,,++**))EEFFGGHHTTSSRRQQ wwvvuuttgfedccbb]^^__``a<;;::99856677889dccbbaa` }~~UVVWWXXY0//..--,]^^__``appoonnmmlkkjjiih~~} `aabbccd98877665899::;;>??@]\\[[ZZY\]]^^__`)((''&&%ijjkkllm! UUVVWWXXDDCCBBAA--..//00llkkjjiiuuvvwwxx$$##""!!MMNNOOPPLLKKJJII%%&&''((oonnmmll##$$%%&&]]\\[[ZZ !|{{zzyyx - - effgghhi43322110=>>??@@A\[[ZZYYX]^^__``a(''&&%%$jkkllmmnhhggffee{{zzyyxx!!""aa``__^^ !!""##$yxxwwvvu hiijjkkl100//..-@AABBCCDYXXWWVVU~~} `aabbccd%$$##""!mnnooppqYYZZ[[\\@@??>>==11223344hhggffee - - yyzz{{|| QQRRSSTTHHGGFFEE))**++,,kkjjiicc''(())**YYXXWWVV!""##$$%xwwvvuutijjkkllm0//..--,ABBCCDDEXWWVVUUT~~}}| abbccdde$##""!!nooppqqrddccbbaa wwvvuutt##$$%%&&]]\\[[ZZ$%%&&''(uttssrrqlmmnnoop-,,++**)DEEFFGGHUTTSSRRQ }||{{zzy - - deeffggh!qrrssttu]]^^__``<<;;::9955667788ddccbbaa }}~~UUVVWWXXDDCCBBAA--..//00bbaa``__++,,--..UUTTSSRR%&&''(()tssrrqqpmnnooppq,++**))(EFFGGHHITSSRRQQP !|{{zzyyx - - effgghhirssttuuv``__^^]]!!""##$$ssrrqqpp''(())**YYXXWWVV())**++,qppoonnmpqqrrsst)((''&&%HIIJJKKLQPPOONNM !!""##$yxxwwvvu hiijjkkluvvwwxxyaabbccdd8877665599::;;<<``__^^]]YYZZ[[\\@@??>>==11223344^^]]\\[[//001122QQPONMLK)**++,,-poonnmmlqrrssttu(''&&%%$IJJKKLLMPOONNMML!""##$$%xwwvvuutijjkkllmvwwxxyyz\\[[ZZYY%%&&''((oonnmmll++,,--..UUTTSSRR,--..//0mllkkjjituuvvwwx%$$##""!LMMNNOOPMLLKKJJI$%%&&''(uttssrrqlmmnnoopyzz{{ eeffgghh44332211==>>??@@\\[[ZZYY]]^^__``<<;;::9955667788ZZYYXXWW3399::;;KJJIIHHG-..//001lkkjjiih uvvwwxxy$##""!! MNNOOPPQLKKJJIIH%&&''(()tssrrqqpmnnooppqz{{XXWWVVUU))**++,,kkjjiicc//001122QQPONMLK01122334ihhggffe - - xyyzz{{|! PQQRRSSTIHHGGFFE())**++,qppoonnmpqqrrsst - - iijjkkll00//..--AABBCCDDXXWWVVUU~~}} aabbccdd8877665599::;;<>??GFFEEDDC12233445hggffeed - - yzz{{||} QRRSSTTUHGGFFEED)**++,,-poonnmmlqrrssttu TTSSRRQQ--..//00bbaa``__3399::;;KJJIIHHG45566778eddccbba |}}~~TUUVVWWXEDDCCBBA,--..//0mllkkjjituuvvwwx - - ~mmnnoopp,,++**))EEFFGGHHTTSSRRQQ ||{{zzyy - - eeffgghh44332211==>>??@@RRQQKKJJ@@AABBCCCBBAA@@?56677889dccbbaa` }~~UVVWWXXYDCCBBAA@-..//001lkkjjiih uvvwwxxy - - ~}|PPOONNMM11223344^^]]\\[[<<==>>??GFFEEDDC899::;;>=01122334ihhggffe - - xyyzz{{|}|{{zzyyqqrrsstt((''&&%%IIJJKKLLPPOONNMM!!""##$$xxwwvvuuiijjkkll00//..--AABBCCDDIIHHGGFFDDEEFFGG?>>==<<;9::;;<<=`__^^]]\YZZ[[\\]@??>>==<12233445hggffeed - - yzz{{||}{{zzyyxxLLKKJJII55667788ZZYYXXWW@@AABBCCCBBAA@@?<==>>??@]\\[[ZZY\]]^^__`=<<;;::945566778eddccbba |}}~~ xxwwvvuuuuvvwwxx$$##""!!MMNNOOPPLLKKJJII%%&&''((ttssrrqqmmnnoopp,,++**))EEFFGGHHEEDDCCBBHHIIJJKK;::99876=>>??@@A\[[ZZYYX]^^__``a<;;::99856677889dccbbaa` }~~ -wwvvuuttHHGGFFEE99::;;<>==<<;@AABBCCDYXXWWVVU~~} `aabbccd98877665899::;;>QQRRSSTT54332211ABBCCDDEXWWVVUUT~~}}| abbccdde877665549::;;<<=`__^^]]\ - ssrrqqppDDCCBBAA==>>??@@RRQQKKJJHHIIJJKK;::99876DEEFFGGHUTTSSRRQ }||{{zzy - - deeffggh54433221<==>>??@]\\[[ZZY ppoonnmm }}~~UUVVWWXXDDCCBBAA--..//00llkkjjiiuuvvwwxx$$##""!!MMNNOOPP==<<;;::UUVVWWXX00//..--EFFGGHHITSSRRQQP !|{{zzyyx - - effgghhi43322110=>>??@@A\[[ZZYYX{oonnmmll@@??>>==AABBCCDDIIHHGGFFQQRRSSTT54332211HIIJJKKLQPPOONNM !!""##$yxxwwvvu hiijjkkl100//..-@AABBCCDYXXWWVVU{{zzyyxllkkjjiiYYZZ[[\\@@??>>==11223344hhggffee - - yyzz{{|| QQRRSSTT99332211YYZZ[[\\,,++**))IJJKKLLMPOONNMML!""##$$%xwwvvuutijjkkllm0//..--,ABBCCDDEXWWVVUUT{zzyyxxwkkjjiihg<<;;::99EEFFGGHHEEDDCCBBUUVVWWXX00//..--LMMNNOOPMLLKKJJI$%%&&''(uttssrrqlmmnnoop-,,++**)DEEFFGGHUTTSSRRQ xwwvvuuthgfedccb]]^^__``<<;;::9955667788ddccbbaa }}~~UUVVWWXX00//..--]]^^__``((''&&%%MNNOOPPQLKKJJIIH%&&''(()tssrrqqpmnnooppq,++**))(EFFGGHHITSSRRQQP !wvvuuttsfedccbba88776655IIJJKKLLAA@@??>>YYZZ[[\\,,++**))PQQRRSSTIHHGGFFE())**++,qppoonnmpqqrrsst)((''&&%HIIJJKKLQPPOONNM !!""##$tssrrqqp!!"baa``__^~~}} aabbccdd8877665599::;;<<``__^^]]YYZZ[[\\,,++**))aabbccii$$##""!!QRRSSTTUHGGFFEED)**++,,-poonnmmlqrrssttu(''&&%%$IJJKKLLMPOONNMML!""##$$%srrqqppo!!""#a``__^^]44332211MMNNOOPP==<<;;::]]^^__``((''&&%%TUUVVWWXEDDCCBBA,--..//0mllkkjjituuvvwwx%$$##""!LMMNNOOPMLLKKJJI$%%&&''(poonnmml"##$$%%&^]]\\[[Z ||{{zzyy - - eeffgghh44332211==>>??@@\\[[ZZYY]]^^__``((''&&%%jjkkllmm UVVWWXXYDCCBBAA@-..//001lkkjjiih uvvwwxxy$##""!! MNNOOPPQLKKJJIIH%&&''(()onnmmllk#$$%%&&']\\[[ZZY00//..--QQRRSSTT99332211aabbccii$$##""!!XYYZZ[[\A@@??>>=01122334ihhggffe - - xyyzz{{|! PQQRRSSTIHHGGFFE())**++,lkkjjiic&''(())*ZYYXXWWV!!""##$$xxwwvvuuiijjkkll00//..--AABBCCDDXXWWVVUU~~}} aabbccdd$$##""!!nnooppqqYZZ[[\\]@??>>==<12233445hggffeed - - yzz{{||} QRRSSTTUHGGFFEED)**++,,-kjjiiccb'(())**+YXXWWVVU::998765,,++**))UUVVWWXX00//..--jjkkllmm \]]^^__`=<<;;::945566778eddccbba |}}~~TUUVVWWXEDDCCBBA,--..//0cbbaa``_*++,,--.VUUTTSSR%%&&''((ttssrrqqmmnnoopp,,++**))EEFFGGHHTTSSRRQQ ||{{zzyy - - eeffgghhrrssttuu]^^__``a<;;::99856677889dccbbaa` }~~UVVWWXXYDCCBBAA@-..//001baa``__^+,,--../UTTSSRRQ43322110((''&&%%YYZZ[[\\,,++**))nnooppqq`aabbccd98877665899::;;>=01122334_^^]]\\[.//00112RQQPONML))**++,,ppoonnmmqqrrsstt((''&&%%IIJJKKLLPPOONNMM!!""##$$xxwwvvuuiijjkkllvvwwxxyyabbccdde877665549::;;<<=`__^^]]\YZZ[[\\]@??>>==<12233445^]]\\[[Z/0011223QPONMLKK0//..--,$$##""!!]]^^__``((''&&%%rrssttuudeeffggh54433221<==>>??@]\\[[ZZY\]]^^__`=<<;;::945566778[ZZYYXXW23399::;KKJJIIHH--..//00llkkjjiiuuvvwwxx$$##""!!MMNNOOPPLLKKJJII%%&&''((ttssrrqqmmnnooppzz{{ -effgghhi43322110=>>??@@A\[[ZZYYX]^^__``a<;;::99856677889ZYYXXWWV399::;;>?GGFFEEDD11223344hhggffee - - yyzz{{|| QQRRSSTTHHGGFFEE))**++,,ppoonnmmqqrrsstt - ijjkkllm0//..--,ABBCCDDEXWWVVUUT~~}}| abbccdde877665549::;;<<=VUUTTSSR<==>>??@FFEEDDCC(''&&%%$eeffgghhzz{{ -lmmnnoop-,,++**)DEEFFGGHUTTSSRRQ }||{{zzy - - deeffggh54433221<==>>??@SRRQQKKJ?@@AABBCCCBBAA@@55667788ddccbbaa }}~~UUVVWWXXDDCCBBAA--..//00llkkjjiiuuvvwwxx - - ~}mnnooppq,++**))(EFFGGHHITSSRRQQP !|{{zzyyx - - effgghhi43322110=>>??@@ARQQKKJJI@AABBCCDBBAA@@??$##""!! iijjkkll - pqqrrsst)((''&&%HIIJJKKLQPPOONNM !!""##$yxxwwvvu hiijjkkl100//..-@AABBCCDJIIHHGGFCDDEEFFG??>>==<<99::;;<<``__^^]]YYZZ[[\\@@??>>==11223344hhggffee - - yyzz{{|||{{zzyyxqrrssttu(''&&%%$IJJKKLLMPOONNMML!""##$$%xwwvvuutijjkkllm0//..--,ABBCCDDEIHHGGFFEDEEFFGGH>>==<<;;ZZ[[\\]]??>>==<<22334455ggffeedd - - zz{{||}}RRSSTTUUGGFFEEDD**++,,--jjiiccbb(())**++XXWWVVUU"##$$%%&wvvuuttsjkkllmmn/..--,,+BCCDDEEFWVVUUTTS~~}}||{ bccddeefyxxwwvvu - - ^^__``aa;;::998866778899ccbbaa``~~VVWWXXYYCCBBAA@@..//0011aa``__^^,,--..//TTSSRRQQ&''(())*srrqqpponooppqqr+**))(('FGGHHIIJSRRQQPPO !!"{zzyyxxw - - fgghhiijuttssrrq bbccddee77665544::;;<<==__^^]]\\ZZ[[\\]]??>>==<<22334455]]\\[[ZZ00112233PONMLKKJ*++,,--.onnmmllkrssttuuv'&&%%$$#JKKLLMMNONNMMLLK"##$$%%&wvvuuttsjkkllmmnqppoonnm - -ffgghhii33221100>>??@@AA[[ZZYYXX^^__``aa;;::998866778899YYXXWWVV99::;;<>??@@FEEDDCCB23344556gffeeddc - z{{||}}~RSSTTUUVGFFEEDDC*++,,--.onnmmllkrssttuuv - - -ihhggffennooppqq++**))((FFGGHHIISSRRQQPP !!{{zzyyxx - - ffgghhii33221100>>??@@AAQQKKJJIIAABBCCDDBAA@@??>6778899:cbbaa``_~VWWXXYYZCBBAA@@?.//00112kjjiihhg -vwwxxyyz - eddccbba rrssttuu''&&%%$$JJKKLLMMOONNMMLL""##$$%%wwvvuuttjjkkllmm//..--,,BBCCDDEEHHGGFFEEEEFFGGHH>==<<;;::;;<<==>_^^]]\\[Z[[\\]]^?>>==<<;23344556gffeeddc - z{{||}}~a``__^^] !!""##$ vvwwxxyy##""!! NNOOPPQQKKJJIIHH&&''(())ssrrqqppnnooppqq++**))((FFGGHHIIDDCCBBAAIIJJKKQQ:9987654>??@@AAB[ZZYYXXW^__``aab;::998876778899:cbbaa``_~]\\[[ZZY$%%&&''( - - zz{{||}}RRSSTTUUGGFFEEDD**++,,--oonnmmllrrssttuu''&&%%$$JJKKLLMM@@??>>==RRSSTTUU33221100BCCDDEEFWVVUUTTS~~}}||{ bccddeef76655443:;;<<==>_^^]]\\[||{YXXWWVVU())**++,~~VVWWXXYYCCBBAA@@..//0011kkjjiihh vvwwxxyy##""!! NNOOPPQQ<<;;::99VVWWXXYY//..--,,FGGHHIIJSRRQQPPO !!"{zzyyxxw - - fgghhiij3221100/>??@@AAB[ZZYYXXW{zzyyxxw!!""#UTTSSRRQ,--..//0ZZ[[\\]]??>>==<<22334455ggffeedd - - zz{{||}}RRSSTTUU33221100ZZ[[\\]]++**))((JKKLLMMNONNMMLLK"##$$%%&wvvuuttsjkkllmmn/..--,,+BCCDDEEFWVVUUTTSwvvuutts#$$%%&&'QPPOONNM01122334^^__``aa;;::998866778899ccbbaa``~~VVWWXXYY//..--,,^^__``aa''&&%%$$NOOPPQQRKJJIIHHG&''(())*srrqqpponooppqqr+**))(('FGGHHIIJSRRQQPPO !!"srrqqppo'(())**+MLLKKJJI45566778~~}}|| bbccddee77665544::;;<<==__^^]]\\ZZ[[\\]]++**))((bbcciijj##""!! RSSTTUUVGFFEEDDC*++,,--.onnmmllkrssttuuv'&&%%$$#JKKLLMMNONNMMLLK"##$$%%&onnmmllk+,,--../IHHGGFFE899::;;< !!{{zzyyxx - - ffgghhii33221100>>??@@AA[[ZZYYXX^^__``aa''&&%%$$kkllmmnnVWWXXYYZCBBAA@@?.//00112kjjiihhg -vwwxxyyz#""!! NOOPPQQRKJJIIHHG&''(())*kjjiiccb/0011223EDDCCBBA<==>>??@""##$$%%wwvvuuttjjkkllmm//..--,,BBCCDDEEWWVVUUTT~~}}|| bbccddee##""!!ooppqqrrZ[[\\]]^?>>==<<;23344556gffeeddc - z{{||}}~RSSTTUUVGFFEEDDC*++,,--.baa``__^399::;;>=@AABBCCD&&''(())ssrrqqppnnooppqq++**))((FFGGHHIISSRRQQPP !!{{zzyyxx - - ffgghhiissttuuvv^__``aab;::998876778899:cbbaa``_~VWWXXYYZCBBAA@@?.//00112^]]\\[[Z<==>>??@=<<;;::9DEEFFGGH**++,,--oonnmmllrrssttuu''&&%%$$JJKKLLMMOONNMMLL""##$$%%wwvvuuttjjkkllmmwwxxyyzz bccddeef76655443:;;<<==>_^^]]\\[Z[[\\]]^?>>==<<;23344556ZYYXXWWV@AABBCCD98877665HIIJJKKL..//0011kkjjiihh vvwwxxyy##""!! NNOOPPQQKKJJIIHH&&''(())ssrrqqppnnooppqq{{ - - fgghhiij3221100/>??@@AAB[ZZYYXXW^__``aab;::998876778899:VUUTTSSRDEEFFGGH54433221LMMNNOOP22334455ggffeedd - - zz{{||}}RRSSTTUUGGFFEEDD**++,,--oonnmmllrrssttuu jkkllmmn/..--,,+BCCDDEEFWVVUUTTS~~}}||{ bccddeef76655443:;;<<==>RQQKKJJIHIIJJKKQ100//..-PQQRRSST66778899ccbbaa``~~VVWWXXYYCCBBAA@@..//0011kkjjiihh vvwwxxyy - - ~}|{nooppqqr+**))(('FGGHHIIJSRRQQPPO !!"{zzyyxxw - - fgghhiij3221100/>??@@AABIHHGGFFEQRRSSTTU-,,++**)TUUVVWWX::;;<<==__^^]]\\ZZ[[\\]]??>>==<<22334455ggffeedd - - zz{{||}}{zzyyxxwrssttuuv'&&%%$$#JKKLLMMNONNMMLLK"##$$%%&wvvuuttsjkkllmmn/..--,,+BCCDDEEFEDDCCBBAUVVWWXXY)((''&&%XYYZZ[[\>>??@@AA[[ZZYYXX^^__``aa;;::998866778899ccbbaa``~~ - -wvvuutts -vwwxxyyz#""!! NOOPPQQRKJJIIHHG&''(())*srrqqpponooppqqr+**))(('FGGHHIIJA@@??>>=YZZ[[\\]%$$##""!\]]^^__`BBCCDDEEWWVVUUTT~~}}|| bbccddee77665544::;;<<==__^^]]\\ srrqqppo - z{{||}}~RSSTTUUVGFFEEDDC*++,,--.onnmmllkrssttuuv'&&%%$$#JKKLLMMN=<<;;::9]^^__``a! `aabbccdFFGGHHIISSRRQQPP !!{{zzyyxx - - ffgghhii33221100>>??@@AA[[ZZYYXX{{onnmmllk~VWWXXYYZCBBAA@@?.//00112kjjiihhg -vwwxxyyz#""!! NOOPPQQR93322110abbcciijdeeffgghJJKKLLMMOONNMMLL""##$$%%wwvvuuttjjkkllmm//..--,,BBCCDDEEWWVVUUTTzzyyxxwwkjjiihgfZ[[\\]]^?>>==<<;23344556gffeeddc - z{{||}}~RSSTTUUV0//..--,jkkllmmnhiijjkklNNOOPPQQKKJJIIHH&&''(())ssrrqqppnnooppqq++**))((FFGGHHIISSRRQQPP !!vvuuttssedccbbaa^__``aab;::998876778899:cbbaa``_~VWWXXYYZ,++**))(nooppqqrlmmnnoopRRSSTTUUGGFFEEDD**++,,--oonnmmllrrssttuu''&&%%$$JJKKLLMMOONNMMLL""##$$%%rrqqppoo!!""##``__^^]]~~}}||{ bccddeef76655443:;;<<==>_^^]]\\[Z[[\\]]^(''&&%%$rssttuuv pqqrrsstVVWWXXYYCCBBAA@@..//0011kkjjiihh vvwwxxyy##""!! NNOOPPQQKKJJIIHH&&''(())nnmmllkk$$%%&&''\\[[ZZYY !!"{zzyyxxw - - fgghhiij3221100/>??@@AAB[ZZYYXXW^__``aab$##""!!vwwxxyyy - - tuuvvwwxxyybdQZ|drtAvpfHAbےv`f~QJHAZp˂bdQZ|fH~˙ے`JXbtlf~HfpvrXQJ`ہdrtf`vXpZHAQbtlXv`fXQJ`ےdrtA`vXnr˂pZHAb|ZdQbnXv`bHAZJltvpfH~ftl|nXv`˒HAZp˂rXbdQZ|~f``JXQlJtf~HvnQJ`ےdrtAvXnZHAbbtl|drtAJltH~f`JXQrfpvZp˂rXQJ`ہdrtf`vXQr˂pJtArdfpvnrXQJ`bHAAJltnvpbے`|ZdQ~fpvbHAZJltvpfZHAbے`JXQtlJf~Hp˂rbdQZ|H~f`vXnZdQbtf~H˂rXQJ`ےdrtAvXnr˂pArd|fpvrXQJ`ۙbHAZpJltvpfHے`JXZdQbtJltbdQZ|`vXn˂p|nXv`rXQJ`ےbHAAJltnvpZHAb|ZdQnXv`ےHAZp˂bdQZ|fH~JXQrbtlnXv`p˂rbdQZ|H~fے`JXQr˂ptArdfpvXQJ`ےdrtA`vXnr˂plJtAfpvQJ`ےbHAZpJltvpfHZHAbہZdQbtnXv`˒HAZp˂rXbdQZ|~f`Qr˂plJtbdQZ|`vXnvpfZdQbtf~HbHAZp˂bdQZ|fH~˙ے`JXbtlf~HZp˂rXQJ`ہdrtf`vXp`JXJtArdf~HXQJ`ےdrtA`vXnr˂pZHAے|ZdQbnXv`bHAZJltvpf`JXQrrd|nXv`fbHAZp˂rbdQZ|~f``JXQlJtf~H˂rXQJ`ےdrtAvXn`JXQArd|drtAvpfH~flJtAfpvZp˂rbdQZ|drtf`vXQr˂pJtArdfpvrXQJ`ےbHAAJltnvpQr˂p|ZdQfpvbHAZJltvpfZHAb`JXQrtlJf~Hp˂rbdQZ|H~f˂pZZdQbt~fpv˂rXbdQZ|drtAvXnr˂pArd|fpvQJ`ےbHAZpJltvpfHr˂pZdQbtJltH~f`vXnrd|nXv`frXQJ`ہdrtAJltnvpZHAb|ZdQnXv`bHAZp˂bdQZ|fH~ˑZHAbbtl|nXv`p˂rbdQZ|H~fے`JXQbtltArdfpvXQJ`ےdrtA`vXnHAbےl|ZnXvQJ`ےdrtAJltvpfHZHAbہZdQbtnXv`˙bHAZp˂rbdQZ|~f`ZHAbۉl|bdQZ|`vXnr˂pZdQbt~fpvbHAAJltbdQZ|fH~˙ے`JXbtlf~HZp˂rbdQZ|drtf`vXے`JXZdQbtf~fpXQJ`ےdrtA`vXnr˂pJtAd|ZdQbnXv`bHAZJltvpf`JXQrdQbt`f~bHAZpJltbdQZ|~f``JXQlJtf~H˂rXbdQZ|drtAvXn`JXQZdQbtdrtAvpf`JXQrl|ZnXvZp˂bdQZ|dtAf`vXQr˂pJtArdfpvrXQJ`ہdrtAJltnvpQr˂plJtvnXbHAZJltvpfZHAb|ZdQbtlJf~Hp˂rbdQZ|H~f˂p`lJtArHfpv˂rXbdQZ|dtAJlvXnr˂pArd|fpvQJ`ےdrtAJltvpfHr˂p`lJtAJltH~f˂pZdQbt`f~rXQJ`ہdrtJltnvpZHAb|ZdQnXv`bHAAJltbdQZ|fH~ˑ`JXQArd|v`fp˂rbdQZ|H~fے`JXQtlJtArdfpvXQJ`ےdrtA`vXnJXQrd|ZnXvQJ`ےdrtAtbvpfHZHAbہZdQbtnXv`˙bHAZpJltbdQZ|~f`JXQrrd|bdQZ|`vXnHAbےlJtArHfpvbHAAJltbnvpfH~˙ے`JXbtlf~HZp˂bdQZ|dtAf`vXr˂pZdQbt~HfpXQJ`ےdrtA`vXnr˂ptArd|ZdQbnXv`bHAZJltvpf˂pZHAdQbt`f~fpbHAZpJltnvp~f``JXQlJtf~H˂rXbdQZ|dtAJlvXn˂pZHZdQbtdrtAvpf`JXQrd|ZnXvZp˂bdQZ|fHf`vXQr˂pJtArdfpvrXQJ`ہdrtJltnvpZHAbۉl|vnXbHAZJltvpfZHAb|ZdQbnXv`f~Hp˂rbdQZ|H~fbے`l|ZdQvnX˂rXbdQZ|fHf`vXnr˂pArd|fpvQJ`ےdrtAtbvpfHAbے`l|ZdJltH~f˂p`dQbt`f~fprXQJ`ہdrtf`vXnvpZHAb|ZdQnXv`bHAAJltbnvpfH~˒`JXQZdQbnXv`ffp˂rbdQZ|H~fے`JXQtlJf~HfpvXQJ`ےdrtA`vXnJXQrbtlv`fQJ`ےdrtAvXnvpfHZHAbہZdQbtnXv`˙bHAZpJltnvp~f`JXQrQbnXbdQZ|`vXnJXQrl|ZdQvnXbHAAJltnvpfH~˙ے`JXbtlf~HZp˂bdQZ|fHf`vXr˂p`v`f~pvnXQJ`ےdrtA`vXnr˂ptArdfpvnXv`bHAZJltvpf˂p`JJtArd~HfpbHAZpJltvpfH~f``JXQlJtf~H˂rXbdQZ|fHf`vXn˂p`v`f~fdrtAvpf˂pZHAbtlv`fZp˂bdQZ|fH~f`vXQr˂pJtArdfpvrXQJ`ہdrtf`vXnvpJXQrfpvrXQJ`bHAZJltvpfZHAb|ZdQbnXv`fHfp˂rbdQZ|H~fXQr˂|ZdQvnX˂rXbdQZ|~f`vXnr˂pArd|fpvQJ`ےdrtAvXnvpfHJXQrbtpvnJltH~fbے`JtArd~HfprXQJ`ہdrtf`vXnr˂pZHAb|ZdQnXv`bHAAJltnvpfH~btl|nXv`ےHAZp˂rbdQZ|H~fے`JXQtlJf~HpvnXQJ`ےdrtA`vXnpZHAbbtlv`f~QJ`ےdrtAvXnr˂pZHAbہZdQbtnXv`˙bHAZpJltvpfH~f`l|Xv`fbdQZ|`vXnJXQr|ZdQvnXbHAAJltnvpZHAbے`JXbtlf~HZp˂bdQZ|fH~f`vXZdQbtf~Hp˂rXQJ`ےdrtA`vXnr˂ptArdfpvrXQJ`bHAZJltvpfے`J|ZdQbfpvbHAZpJltvpfHZHAbے`JXQlJtf~H˂rXbdQZ|~f`vXnZdQbt琕~HfdrtAvpf˂p`Jbtlv`f~Zp˂bdQZ|fH~˙ے`JXQr˂pJtArdfpvrXQJ`ہdrtf`vXnr˂plJtfpvXQJ`ےbHAZJltvpfZHAb|ZdQbnXv`ےHAZp˂rbdQZ|H~fXQr˂tlJnXv`˂rXbdQZ|~f``JXQr˂pArd|fpvQJ`ےdrtAvXnr˂p`lJtApvnJltH~fXQr˂|ZdQbfpvrXQJ`ہdrtf`vXQr˂pZHAۂ|ZdQnXv`bHAAJltnvp`JXQArd|nXv`bHAZp˂rbdQZ|H~fے`JXQtlJf~Hp˂rXQJ`ےdrtA`vXnp`JXQtArdf~HQJ`ےdrtAvXnr˂pZHAے`ZdQbtnXv`˙bHAZpJltvpfHJXQrrd|Xv`fbdQZ|`vXnpZHAbtlJnXv`bHAAJltnvpZHAb`JXQbtlf~HZp˂bdQZ|fH~r˂pZdQbtf~fpp˂rbdQZ|drtA`vXnr˂ptArdfpvXQJ`ےbHAZJltvpfr˂p|ZdQbfpvbHAZpJltvpfHZHAbہJXQrlJtf~H˂rXbdQZ|~f`˂pZHZdQbt~fpvdrtAvpfے`JtArdf~HZp˂bdQZ|fH~˙ے`JXrbtlJtArdfpvrXQJ`ہdrtf`vXZHAbۉl|vnXXQJ`ےdrtAJltvpfZHAb|ZdQbnXv`bHAZp˂rbdQZ|H~fZHAbtl|nXv`˂rXbdQZ|~f``JXQbtlArd|fpvQJ`ےdrtAvXnAbے`l|ZdnXv`JltH~fXQr˂|ZdQbfpvrXQJ`ہdrtf`vXQr˂pJtAd|ZdQnXv`bHAAJltnvp`JXQZdQbtv`fbHAZJltbdQZ|H~fے`JXQtlJf~Hp˂rbdQZ|drtA`vXnے`JXQZdQbtf~fpQJ`ےdrtAvXnr˂pJtAd|ZdQbtnXv`˙bHAZpJltvpfHJXQrQbtlf~HbdQZ|`vXnp`JXQtl|nXv`bHAAJltnvpZHAb|ZdQbtlf~HZp˂bdQZ|fH~r˂p`lJtA~Hfpp˂rbdQZ|dtAJ`vXnr˂ptArdfpvXQJ`ےdrtAJltvpfr˂plJtAvnXbHAZpJltvpfHZHAbہZdQbtlJtf~H˂rXbdQZ|~f`˂p`JtArdfpvv`f~drtAvpfr˂pZdQbtf~fpZp˂bdQZ|fH~˙ے`JXbtlJtArdfpvrXQJ`ہdrtf`vXJXQrrd|vnXXQJ`ےdrtAltbvpfZHAb|ZdQbnXv`bHAZJltbdQZ|H~f`JXQrrd|v`f˂rXbdQZ|~f``JXQlJtArd|fpvQJ`ےdrtAvXnJXQr˙|ZdnXv`fpvJltH~fZHAblJtAvnXrXQJ`ہdrtf`vXQr˂pJtArd|ZdQnXv`bHAAJltnvp˂pZHZdQbtv`f~fbHAZJltnvpH~fے`JXQtlJf~Hp˂rbdQZ|dtAJ`vXn˂pZZdQbt~HfpQJ`ےdrtAvXnr˂pArd|ZdQbnXv`˙bHAZpJltvpfHpZHAQbtlf~fpnXv`bdQZ|`vXnے`JXQrd|v`f󒐙bHAAJltnvpZHAb|ZdQbnXv`f~HZp˂bdQZ|fH~Abے`l|Zdpvnp˂rbdQZ|fHf`vXnr˂ptArdfpvXQJ`ےdrtAltbvpfHAbےl|ZvnXbHAZpJltvpfHZHAbہZdQbtnXv`f~H˂rXbdQZ|~f`bے`|ZdQvnXf~HdrtAvpfr˂pZdQbt~HfpZp˂bdQZ|fH~˙ے`JXbtlf~HfpvrXQJ`ہdrtf`vXJXQrQbtlXv`fXQJ`ےdrtA`vXnvpfZHAb|ZdQbnXv`bHAZJltnvpH~f`JXQrdQbnXv`ffp˂rXbdQZ|~f``JXQlJtf~HfpvQJ`ےdrtAvXnJXQrbtlv`ffpvJltH~f`JXQrl|ZvnXrXQJ`ہdrtf`vXQr˂pJtArdfpvnXv`bHAAJltnvp˂p`JtArd~HfbHAZJltvpfH~fے`JXQtlJf~Hp˂rbdQZ|fHf`vXn˂p`v`f~vnQJ`ےdrtAvXnr˂pArd|fpvnXv`˙bHAZpJltvpfHp`JXJtArd~HfpnXv`fbdQZ|`vXn˂pZdQbnXv`frbHAAJltnvpZHAb|ZdQnXv`fHZp˂bdQZ|fH~JXQr˙|Zdpvnp˂rbdQZ|H~f`vXnr˂ptArdfpvXQJ`ےdrtA`vXnvpfJXQrbfpvrXQJ`ۙbHAZpJltvpfHZHAbہZdQbtnXv`fHfp˂rXbdQZ|~f`Qr˂p|ZdQvnX~fpvnXvbHAZpltbvpfHHAbےZdQbtlJtA~Hf˂rXQdQZ|~f`˂p`JJtArdfpvrXQQZ|dtAJlvXnۉ˂pZHrd|vnXJ`ےrtAJltbdvpfHJXQrXnvˍp|dr`f~˂rXQdQZ|~f``JXQrlJtArd|pvnJ`ےdrtAJvXnXQr˂|ZdQnXv`J`ےrtAJltbnvpfHAbے`ZdQbtv`fbHAZpˑtbdQZ|d~f`˂pZHpfH~QtJlHfpvJ`ےdrtAJvXn˂pZrd|ZdQbnXv`fbHAZpltbvpfHpZHAbbtlf~fpbHAZpˑtbdvpfH~f`JXQrlJtA~HfprXQQZ|dtAJlvXnAbے`f۝`vtbAdZnXvbHAZpltbvpfHHAbےZdQbtXv`f~Hf˂rXQdQZ|~f`ے`J|ZdQbvnXrXQQZ|df`vXnۉ˂pZHrd|vnXJ`ےrtAJltbnvpfHJXQrXnvˍ|dr`ffp˂rXQdQZ|~f``JXQrlJtA~HfpvnJ`ےdrtAJvXnXQr˂tlJv`fJ`ےrtAJlvXnvpfHAbے`ZdQbtv`fbHAZpˑtbdvpfH~f`˂p`ZpfH~QtJlvnrJ`ےdrtAJvXn˂pZrd|pvnXv`fbHAZpltbvpfHp`JXQtArd~HfpbHAZpˑtbdvpfH~f`JXQrlJtA~HfprXQQZ|df`vXnQXb㉀f۝`vtbAdZXQJ`ےbHAZpltbvpfHHAbےZdQbtXv`fHfp˂rXQdQZ|~f`r˂p|ZdQbvnXrXQQZ|d~f`vXnr˂pZHrd|vnXJ`ےrtAJlvXnvpfHۑpJAHrXnvˍ|drHAZp˂rXQdQZ|~f``JXQrlJtA~HfvnrJ`ےdrtAJvXnZHAbtl|v`f~fJ`ےrtAJlvXnۉ˂pZHAbے`ZdQbtv`fbHAZpˑtbdvpfH~f`󙐂ˁ`ZpfH~QtJl˂rXQJ`ےdrtAJvXn˂pZrd|pvnXQJ`ےbHAZpltbvpfHے`JXQZdQbtpvnbHAZpˑtbdvpfHAbے`JXQrlJtA~HfprXQQZ|d~f`vXnے`QXb㉀f۝`vtbAdZJ`ےbHAZpltbvpfHHAbےZdQbtXv`fHAZp˂rXQdQZ|~f`r˂plJtAXv`frXQQZ|d~f`JXQr˂pZHrd|vnXJ`ےrtAJlvXnہJXQrۑp`ZQXnvˍ|drbHAZp˂rbdQZ|~f``JXQrlJtA~Hf˂rXQJ`ےdrtAJvXn`JXQrrd|~HfJ`ےrtAJlvXnۉ˂pZHAے`ZdQbtv`fbHAZpˑtbdvpfH˂pZHXb㉀ۑpfH~QtJl˂rXQdQZ|drtAJvXn˂pZrd|pvnJ`ےbHAZpltbvpfH˂pZZdQbtpvnbHAZpˑtbdvpfHAbے`JXQrbtlJtA~HfprXQQZ|d~f`Abے`pJAHrf۝`vtbAdZJ`ےdrtAJltbvpfHHAbےZdQbtXv`fbHAZp˂rbdQZ|~f`HAbےl|ZXv`frXQQZ|d~f`JXQrlJtrd|vnXJ`ےrtAJlvXnہJXQrˁ`ZQXnvˍ|drbHAZpltbdQZ|~f``JXQrlJtA~Hf˂rXQdQZ|drtAJvXn`JXQrdQbt~fpvJ`ےrtAJlvXnۉ˂pZHAd|ZdQbtv`fbHAZpˑtbdvpfH˂p`Xb㉀ۑpfH~QtJl˂rXQdQZ|dtAJlvXn˂pZrd|pvnJ`ےdrtAJltbvpfH˂p`lJtArnXv`bHAZpˑtbdvpfHAbے`ZdQbtlJtA~HfprXQQZ|d~f`JXQrp`ZQXbf۝`vtbAdZJ`ےdrtAJtbnvpfHHAbےZdQbtXv`fbHAZpltbdQZ|~f`JXQrd|Zf~HrXQQZ|d~f`JXQrlJtArd|vnXJ`ےrtAJlvXnۂpZHA㉀ۑpJXnvˍ|drbHAZpltbvpf~f``JXQrlJtA~Hf˂rXQdQZ|dtAJlvXn˂pZHAdQbt璅fpvJ`ےrtAJlvXnۉ˂pZHrd|ZdQbnXv`fbHAZpˑtbdvpfHbے`AHr󙐂pfH~QtJl˂rXQdQZ|Hf`vXn˂pZrd|pvnJ`ےdrtAJtbnvpfHbے`l|ZdQnXv`bHAZpˑtbdvpfHAbے`ZdQbtv`f~HfprXQQZ|d~f`JXQrˁ`ZQXbf۝`vtbAdZJ`ےdrtAJvXnvpfHHAbےZdQbtXv`fbHAZpltbvpf~f`JXQrbnXvffpۂrXQQZ|d~f`JXQrlJtA~HfpvnXJ`ےrtAJlvXnۂp`JX㉀ۑpXnvˍ|drbHAZpltbvpfH~f``JXQrlJtA~Hf˂rXQdQZ|Hf`vXn˂p`J`f~fpvnrXJ`ےrtAJlvXnۉ˂pZHrd|vnXv`fbHAZpˑtbdvpfHQr˂p`ZQXbpfH~QtJl˂rXQdQZ|~f`vXnr˂pZrd|pvnJ`ےdrtAJvXnvpfHXQrbtvnXQJ`ےbHAZpˑtbdvpfHAbے`ZdQbtv`fHfpۂrXQQZ|d~f`ZHAbۑpJAf۝`vtbAdZJ`ےdrtAJvXn˂pZHAbےZdQbtXv`fbHAZpltbvpfH~f`l|Zv`fHAZp˂rXQQZ|d~f`JXQrlJtA~HfpvnrXJ`ےrtAJlvXnۙے`JXHr󙐂ˁXnvˍ|drbHAZpltbvpfHHAbے`JXQrlJtA~Hf˂rXQdQZ|~f`vXnrdQbt璕~HfprXQJ`ےrtAJlvXnۉ˂pZHrd|vnXQJ`ےbHAZpˑtbdvpfHQr˂p`ZQXbpfH~QtJl˂rXQdQZ|~f``JXQr˂pZrd|pvnJ`ےdrtAJvXn˂p`lJtArvnXJ`ےbHAZpˑtbdvpfHAbے`ZdQbtv`fHAZp˂rXQQZ|d~f``JXQۑp`Zf۝`vtbAdZJ`ےdrtAJvXn˂pZHAے`ZdQbtXv`fbHAZpltbvpfHJXQrd|Zv`f~bHAZp˂rbdQZ|d~f`JXQrlJtA~HfprXQJ`ےrtAJlvXnr˂pQXb㉀Xnvˍ|drbHAZpltbvpfHHAbےJXQrblJtA~Hf˂rXQdQZ|~f`˂pZHAdQbt璅fpvrXQQZ|drtAJlvXnۉ˂pZHrd|vnXJ`ےbHAZpˑtbdvpfHZHAbۑpJAHrpfH~QtJl˂rXQdQZ|~f``JXQrtlJrd|pvnJ`ےdrtAJvXnbے`l|ZdQnXv`J`ےrtAJltbdvpfHAbے`ZdQbtv`fbHAZp˂rbdQZ|d~f``JXQ󙐂ˁ`Zf۝`vtbAdZJ`ےdrtAJvXn˂pZtAd|ZdQbtXv`fbHAZpltbvpfHJXQrbtlf~HbHAZpˑtbdQZ|d~f`JXQrlJtA~HfprXQQZ|drtAJlvXnr˂p`QXb㉀Xnvˍ|drQt}~~IIIIIIIIIIIIIIIIIIIIIJJJJJJJ \ No newline at end of file diff --git a/vendor/endroid/qr-code/assets/data/qrv29_1.dat b/vendor/endroid/qr-code/assets/data/qrv29_1.dat deleted file mode 100755 index 294c49ad5..000000000 --- a/vendor/endroid/qr-code/assets/data/qrv29_1.dat +++ /dev/null @@ -1,265 +0,0 @@ -~}~}~}~}|{|{{{{{{|{|{|{|yyyyyzyzyzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwxuvuvuvuvuvuvuvuvutstststststststststststqrqrqrqrqrqrqrqropopopopopopopopopopopopmnmnmnmnmnmnmnmnklklklklklklklklijijijijijijijijijijijijghghghghefefefefefefefefdcdcdcdcdcdcdcccbabababababababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQRQRQRQRQPOPOPOPONMNMNMNMNMNMNMNMKLKLKLKLKLKLKKKKIJIJIJIJIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDCDCDCDCDABABABABABABABAB?@?@?@?@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=>;<;<;<;<;<;<;<;<9:9:9:9:9:9:9:9:9:9:9:9:78787878565656565656565643434343434333332121212121212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('('('('&%&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!"!"!"!"!    ~}~}~}~}{|{|{|{|{|{|{|{|yzyzyzyzyzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwxuvuvuvuvuvuvuvuvststststststststststststqrqrqrqrqrqrqrqropopopopopopopoponmnmnmnmnmnmnmnmnmnmnmnklklklklklklklklijijijijijijijijijijijijghghghghefefefefefefefefdcdcdcdccccdcdcdbabababababababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQRQRQRQRQPOPOPOPONMNMNMNMNMNMNMNMKLKLKLKLKKLKLKLKIJIJIJIJIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDCDCDCDCDABABABABABABABAB?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=>=>=>=>=>;<;<;<;<;<;<;<;<9:9:9:9:9:9:9:9:9:9:9:9878787878565656565656565643434343343434342121212121212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!"!"!"!     ~}~}~}~}~}{|{|{|{|{|{|{{{{yzyzyzyzyzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwxuvuvuvuvuvuvuvuvststststststststststststqrqrqrqrqrqrqrqropopopopopopopopmnmnmnmnmnmnmnmnmnmnmnmnklklklklklklklklijijijijijijijijihghghghghghghghefefefefefefefefdcdcdcdccdcdcdcdbabababababababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMKLKLKLKLLKLKLKLKIJIJIJIJIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDCDCDCDCDABABABABABABABAB?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=>=>=>=>=>;<;<;<;<;<;<;<;<9:9:9:9:9:9:9:9:7878787878787878565656565656565643434343343434342121212121212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!        ~}~}~}~}~}~}~}~}{|{|{|{|{{|{|{|{yzyzyzyzyzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwxuvuvuvuvuvuvuvuvststststststststststststqrqrqrqrqrqrqrqropopopopopopopopmnmnmnmnmnmnmnmnmnmnmnmnklklklklklklklklijijijijijijijijghghghghghghghghefefefefefefefefdcdcdcdccdcdcdcdbabababababababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMKLKLKLKKLKLKLKLKIJIJIJIJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDCDCDCDCDABABABABABABABAB?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=>=>=>=>=>;<;<;<;<;<;<;<;<9:9:9:9:9:9:9:9:78787878787878785656565656565656434343333434343421212121212121212121210/0/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!        ~}~}~}~}~}~}~}~}{|{|{|{||{|{|{|{yzyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwxwxwxwxuvuvuvuvuvuvuvuvststststststststststststqrqrqrqrqrqrqrqropopopopopopopopmnmnmnmnmnmnmnmnmnmnmnmnklklklklklklklklijijijijijijijijghghghghghghghghefefefefefefefefcccccdcdcdcdcdcdbabababababababa`_`_`_`_`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMKKKKLKLKLKLKLKLKIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDCDCDCDCBABABABABABABABAB?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=>=>=>=>=>;<;<;<;<;<;<;<;<9:9:9:9:9:9:9:9:78787878787878785656565656565656333434343434343421212121212121210/0/0/0/0/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!        ~}~}~}~}~}~}~}~}{|{|{|{{|{|{|{|{yzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwxwxwxwxwxuvuvuvuvuvuvuvuvststststststststsrqrqrqrqrqrqrqrqrqrqrqropopopopopopopopmnmnmnmnmnmnmnmnmnmnmnmnklklklklklklklklijijijijijijijijghghghghghghghghefefefefefefefefcdcdcdcdcdcdcdcdbabababababababa`_`_`_`_`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDABABABABABABABABABABABAB?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;<9:9:9:9:9:9:9:9:78787878787878785656565656565656343434343434343321212121212121210/0/0/0/0/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!        ~}~}~}~}~}~}~}~}{{{{|{|{|{|{|{|{yzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwxwxwxwxwxuvuvuvuvuvuvuvuvststststststststqrqrqrqrqrqrqrqrqrqrqrqropopopopopopopopmnmnmnmnmnmnmnmnmlklklklklklklklklklklklijijijijijijijijghghghghghghghghefefefefefefefefcdcdcdcdccccccdcbabababababababa`_`_`_`_`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKKKKKKLKLIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDABABABABABABABABABABABAB?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=>;<;<;<;<;<;<;<;<;<;<;<;<9:9:9:9:9:9:9:9:78787878787878785656565656565656343434343333434321212121212121210/0/0/0/0/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!        ~}~}~}~}~}~}~}~}|{|{|{|{|{|{|{|{yzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwxwxwxwxwxuvuvuvuvuvuvuvuvststststststststqrqrqrqrqrqrqrqrqrqrqrqropopopopopopopopmnmnmnmnmnmnmnmnklklklklklklklklklklklklijijijijijijijijghghghghghghghghefefefefefefefefcdcdcdcddcdcdcdcbabababababababa`_`_`_`_`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKKLKLKLKLIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDABABABABABABABABABABABAB?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=>;<;<;<;<;<;<;<;<;<;<;<;<9:9:9:9:9:9:9:9:78787878787878785656565656565656343434344343434321212121212121210/0/0/0/0/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!        ~}~}~}~}~}~}~}~}|{|{|{|{{{{{{|{|yzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwxwxwxwxwxuvuvuvuvuvuvuvuvststststststststqrqrqrqrqrqrqrqrqrqrqrqropopopopopopopopmnmnmnmnmnmnmnmnklklklklklklklklklklklklijijijijijijijijghghghghghghghghefefefefefefefefcdcdcdcddcdcdcdcbabababababababa`_`_`_`_`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKKLKLKLKLIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDABABABABABABABABABABABAB?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=>;<;<;<;<;<;<;<;<;<;<;<;<9:9:9:9:9:9:9:9:78787878787878785656565656565656343434344343434321212121212121210/0/0/0/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!        ~}~}~}~}~}~}~}~}|{|{|{|{{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvuvuvuvuvststststststststqrqrqrqrqrqrqrqrqrqrqrqropopopopopopopopmnmnmnmnmnmnmnmnklklklklklklklklklklklklijijijijijijijijghghghghghghghghefefefefefefefefcdccccccdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMLKKKKKKLKLKLKLKLIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDABABABABABABABABABABABA@?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=>;<;<;<;<;<;<;<;<;<;<;<;<9:9:9:9:9:9:9:9:78787878787878785656565656565656333333434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)*)*)*)('('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!        ~}~}~}~}~}~}~}~}|{|{|{|{{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwxuvuvuvuvuvuvuvuvuvuvuvuvststststststststqrqrqrqrqrqrqrqrqpopopopopopopopopopopopmnmnmnmnmnmnmnmnklklklklklklklklklklklklijijijijijijijijghghghghghghghghefefefefefefefefdcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMKLKLKLKLKLKLKLKLIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDABABABABABABABAB?@?@?@?@?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=>;<;<;<;<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9:78787878787878785656565656565656434343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!"!        ~}~}~}~}~}~}~}~}|{{{{{{|{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwxuvuvuvuvuvuvuvuvuvuvuvuvststststststststqrqrqrqrqrqrqrqropopopopopopopopopopopopmnmnmnmnmnmnmnmnklklklklklklklklkjijijijijijijijijijijijghghghghghghghghefefefefefefedcddcdcdcdcdcdcccccbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMNMNMLKLKKLKLKLKLKLKKKKKLIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDABABABABABABABAB?@?@?@?@?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=>;<;<;<;<;<;<;<;<9:9:9:9:9:9:9:9:9:9:9:9:78787878787878785656565656543434434343434333334321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!"!"!"!"!        ~}~}~}~}~}~}~}~}{|{|{|{|{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwxuvuvuvuvuvuvuvuvuvuvuvuvststststststststqrqrqrqrqrqrqrqropopopopopopopopopopopopmnmnmnmnmnmnmnmnklklklklklklklklijijijijijijijijijijijijghghghghghghghghefefefefcdcdccccdcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMLKLKKKKKKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDABABABABABABABAB?@?@?@?@?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=>;<;<;<;<;<;<;<;<9:9:9:9:9:9:9:9:9:9:9:9:78787878787878785656565634333333434343434343432121212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!"!"!"!"!        ~}~}~}~}~}~}|{|{{|{|{|{|{|{|{|{yyzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwxuvuvuvuvuvuvuvuvuvuvuvuvststststststststqrqrqrqrqrqrqrqropopopopopopopopopopopopmnmnmnmnmnmnmnmnklklklklklklklklijijijijijijijijijijijijghghghghghghghgfefefefefccdcdcdcdcdcdcdcbabababababababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQRQRQRQRQPOPOPOPOPOPOPONMNMNMNMNMKLKLKLKLKLKLKLKLIJIJIJIJIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCDABABABABABABABAB?@?@?@?@?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=>;<;<;<;<;<;<;<;<9:9:9:9:9:9:9:9:9:9:9:9:78787878787876565656565643434343434343432121212121212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!"!"!"!"!               - - - - - - - -         - - - - - - - -         - - - - - - - -         - - - - - - - - - -         - - - - - - - - - - - -         - - - - - - - - - - - -         - - - - - - - - - - - -          - - - - - - - - - - - -             - - - - - - - - - -              - - - - - - - -             - - - - - - - -             - - - - - - - -           - - - - - - - -         - - - - - - - -LLKKJJII55667788mmnnooppZZYYXXWW@@AABBCC~}CBBAA@@?<==>>??@tuuvvwwx]\\[[ZZY%$$##""!LMMNNOOPMLLKKJJI$%%&&''(\]]^^__`uttssrrq=<<;;::945566778lmmnnoopeddccbba-,,++**) DEEFFGGH|}}~~FEEDDCCB GHHIIJJKxxwwvvuu;;::9987==>>??@@uuvvwwxx\\[[ZZYY$$##""!!MMNNOOPPLLKKJJII%%&&''((]]^^__``ttssrrqq<<;;::9955667788mmnnooppddccbbaa,,++**)) EEFFGGHH}}~~EEDDCCBB HHIIJJKKxwwvvuut;::99876 =>>??@@Auvvwwxxy\[[ZZYYX$##""!! MNNOOPPQLKKJJIIH%&&''(()]^^__``atssrrqqp<;;::99856677889mnnooppqdccbbaa`,++**))( EFFGGHHI}~~EDDCCBBA -HIIJJKKQwwvvuutt::998765 >>??@@AAvvwwxxyy[[ZZYYXX##""!! NNOOPPQQKKJJIIHH&&''(())^^__``aassrrqqpp;;::998866778899nnooppqqccbbaa``++**))((FFGGHHII~~DDCCBBAA - -IIJJKKQQ~~}}HHGGFFEE 99::;;<>==<<; - - @AABBCCDxyyzz{{|YXXWWVVU! PQQRRSST~~}IHHGGFFE ())**++,`aabbccdqppoonnm98877665899::;; - - KQQRRSSTttssrrqq65433221 - - AABBCCDDyyzz{{||XXWWVVUU QQRRSSTT~~}}HHGGFFEE ))**++,,aabbccddppoonnmm8877665599::;;<> - - QQRRSSTTtssrrqqp54332211 - - ABBCCDDEyzz{{||}XWWVVUUT QRRSSTTU~~}}|HGGFFEED )**++,,-abbccddepoonnmml877665549::;;<<=qrrssttu`__^^]]\(''&&%%$IJJKKLLMA@@??>>= - QRRSSTTUssrrqqpp43322110 - - BBCCDDEEzz{{||}}WWVVUUTTRRSSTTUU~~}}||GGFFEEDD **++,,--bbccddeeoonnmmll77665544::;;<<==rrssttuu__^^]]\\''&&%%$$JJKKLLMM@@??>>== RRSSTTUU||{{zzyyDDCCBBAA - - ==>>??@@uuvvwwxxRRQQKKJJ - - HHIIJJKKxwwvvuut;::99876 DEEFFGGH|}}~~UTTSSRRQ TUUVVWWX}||{{zzyEDDCCBBA - - ,--..//0deeffgghmllkkjji54433221<==>>??@tuuvvwwx]\\[[ZZY%$$##""!LMMNNOOP>==<<;;: TUUVVWWXppoonnmm100//..- EEFFGGHH}}~~TTSSRRQQ UUVVWWXX||{{zzyyDDCCBBAA - - --..//00eeffgghhllkkjjii44332211==>>??@@uuvvwwxx\\[[ZZYY$$##""!!MMNNOOPP==<<;;::UUVVWWXXpoonnmml00//..-- EFFGGHHI}~~TSSRRQQP !UVVWWXXY|{{zzyyxDCCBBAA@ - - -..//001effgghhilkkjjiih43322110 =>>??@@Auvvwwxxy\[[ZZYYX$##""!! MNNOOPPQ{=<<;;::9UVVWWXXYoonnmmll0//..--,FFGGHHII~~SSRRQQPP !!VVWWXXYY{{zzyyxxCCBBAA@@ - - ..//0011ffgghhiikkjjiihh33221100 >>??@@AAvvwwxxyy[[ZZYYXX##""!! NNOOPPQQ{{<<;;::99VVWWXXYYxxwwvvuu@@??>>== - - AABBCCDDyyzz{{||IIHHGGFF - - QQRRSSTTtssrrqqp54332211HIIJJKKLQPPOONNM !!""##$XYYZZ[[\yxxwwvvuA@@??>>= 01122334hiijjkklihhggffe100//..- - - @AABBCCDxyyzz{{|YXXWWVVU! PQQRRSST{{zzyyx:9933221XYYZZ[[\llkkjjii-,,++**)IIJJKKLLPPOONNMM!!""##$$YYZZ[[\\xxwwvvuu@@??>>==11223344iijjkkllhhggffee00//..-- - - AABBCCDDyyzz{{||XXWWVVUU QQRRSSTT{{zzyyxx99332211YYZZ[[\\lkkjjiih,,++**))IJJKKLLMPOONNMML!""##$$%YZZ[[\\]xwwvvuut@??>>==<12233445ijjkkllmhggffeed0//..--, - - ABBCCDDEyzz{{||}XWWVVUUT QRRSSTTU{zzyyxxw93322110YZZ[[\\]kkjjiihg,++**))(JJKKLLMMOONNMMLL""##$$%%ZZ[[\\]]wwvvuutt??>>==<<22334455jjkkllmmggffeedd//..--,, - - BBCCDDEEzz{{||}}WWVVUUTTRRSSTTUUzzyyxxww33221100ZZ[[\\]]ttssrrqq<<;;::99 EEFFGGHH}}~~EEDDCCBBUUVVWWXXpoonnmml00//..--LMMNNOOPMLLKKJJI$%%&&''(\]]^^__`uttssrrq=<<;;::945566778lmmnnoopeddccbba-,,++**) DEEFFGGH|}}~~UTTSSRRQ TUUVVWWXxwwvvuut100//..-\]]^^__`hgfedccb)((''&&%MMNNOOPPLLKKJJII%%&&''((]]^^__``ttssrrqq<<;;::9955667788mmnnooppddccbbaa,,++**)) EEFFGGHH}}~~TTSSRRQQ UUVVWWXXwwvvuutt00//..--]]^^__``gfedccbb((''&&%%MNNOOPPQLKKJJIIH%&&''(()]^^__``atssrrqqp<;;::99856677889mnnooppqdccbbaa`,++**))( EFFGGHHI}~~TSSRRQQP !UVVWWXXYwvvuutts0//..--,]^^__``afedccbba(''&&%%$NNOOPPQQKKJJIIHH&&''(())^^__``aassrrqqpp;;::998866778899nnooppqqccbbaa``++**))((FFGGHHII~~SSRRQQPP !!VVWWXXYYvvuuttss//..--,,^^__``aappoonnmm88776655IIJJKKLLAA@@??>>YYZZ[[\\lkkjjiih,,++**))PQQRRSST~~}IHHGGFFE ())**++,`aabbccdqppoonnm98877665899::;;>??@tuuvvwwx]\\[[ZZY%$$##""!LMMNNOOPMLLKKJJI$%%&&''(\]]^^__`poonnmml)((''&&%"##$$%%&ijjkkllm^]]\\[[Z!  UUVVWWXX||{{zzyyDDCCBBAA - - --..//00eeffgghhllkkjjii44332211==>>??@@uuvvwwxx\\[[ZZYY$$##""!!MMNNOOPPLLKKJJII%%&&''((]]^^__``oonnmmll((''&&%%##$$%%&&jjkkllmm]]\\[[ZZ  !UVVWWXXY|{{zzyyxDCCBBAA@ - - -..//001effgghhilkkjjiih43322110 =>>??@@Auvvwwxxy\[[ZZYYX$##""!! MNNOOPPQLKKJJIIH%&&''(()]^^__``aonnmmllk(''&&%%$#$$%%&&'jkkllmmn]\\[[ZZY !!VVWWXXYY{{zzyyxxCCBBAA@@ - - ..//0011ffgghhiikkjjiihh33221100 >>??@@AAvvwwxxyy[[ZZYYXX##""!! NNOOPPQQKKJJIIHH&&''(())^^__``aannmmllkk''&&%%$$$$%%&&''kkllmmnnhhggffee00//..--QQRRSSTT{{zzyyxx99332211!!""aabbcciiaa``__^^$$##""!! !!""##$XYYZZ[[\yxxwwvvuA@@??>>= 01122334hiijjkklihhggffe100//..- - - @AABBCCDxyyzz{{|YXXWWVVU! PQQRRSST~~}IHHGGFFE ())**++,`aabbccdlkkjjiic%$$##""!&''(())*mnnooppqZYYXXWWV!!""##$$YYZZ[[\\xxwwvvuu@@??>>==11223344iijjkkllhhggffee00//..-- - - AABBCCDDyyzz{{||XXWWVVUU QQRRSSTT~~}}HHGGFFEE ))**++,,aabbccddkkjjiicc$$##""!!''(())**nnooppqqYYXXWWVV!""##$$%YZZ[[\\]xwwvvuut@??>>==<12233445ijjkkllmhggffeed0//..--, - - ABBCCDDEyzz{{||}XWWVVUUT QRRSSTTU~~}}|HGGFFEED )**++,,-abbccddekjjiiccb$##""!!'(())**+nooppqqrYXXWWVVU""##$$%%ZZ[[\\]]wwvvuutt??>>==<<22334455jjkkllmmggffeedd//..--,, - - BBCCDDEEzz{{||}}WWVVUUTTRRSSTTUU~~}}||GGFFEEDD **++,,--bbccddeejjiiccbb##""!!(())**++ooppqqrrwvvuuttsddccbbaa,,++**)) UUVVWWXXwwvvuutt00//..--##$$%%&&jjkkllmm]]\\[[ZZ $%%&&''(\]]^^__`uttssrrq=<<;;::945566778lmmnnoopeddccbba-,,++**) DEEFFGGH|}}~~UTTSSRRQ TUUVVWWX}||{{zzyEDDCCBBA - - ,--..//0deeffgghcbbaa``_!*++,,--.qrrssttuVUUTTSSR%%&&''((]]^^__``ttssrrqq<<;;::9955667788mmnnooppddccbbaa,,++**)) EEFFGGHH}}~~TTSSRRQQ UUVVWWXX||{{zzyyDDCCBBAA - - --..//00eeffgghhbbaa``__++,,--..rrssttuuUUTTSSRR%&&''(()]^^__``atssrrqqp<;;::99856677889mnnooppqdccbbaa`,++**))( EFFGGHHI}~~TSSRRQQP !UVVWWXXY|{{zzyyxDCCBBAA@ - - -..//001effgghhibaa``__^+,,--../rssttuuvUTTSSRRQ&&''(())^^__``aassrrqqpp;;::998866778899nnooppqqccbbaa``++**))((FFGGHHII~~SSRRQQPP !!VVWWXXYY{{zzyyxxCCBBAA@@ - - ..//0011ffgghhiiaa``__^^,,--..//ssttuuvvsrrqqppo``__^^]]((''&&%%!!""##$$YYZZ[[\\ssrrqqpp,,++**))''(())**nnooppqqYYXXWWVV())**++,`aabbccdqppoonnm98877665899::;;>= 01122334hiijjkkl_^^]]\\[.//00112uvvwwxxyRQQPONML))**++,,aabbccddppoonnmm8877665599::;;<>==11223344iijjkkll^^]]\\[[//001122vvwwxxyyQQPONMLK)**++,,-abbccddepoonnmml877665549::;;<<=qrrssttu`__^^]]\(''&&%%$IJJKKLLMPOONNMML!""##$$%YZZ[[\\]xwwvvuut@??>>==<12233445ijjkkllm^]]\\[[Z/0011223vwwxxyyzQPONMLKK**++,,--bbccddeeoonnmmll77665544::;;<<==rrssttuu__^^]]\\''&&%%$$JJKKLLMMOONNMMLL""##$$%%ZZ[[\\]]wwvvuutt??>>==<<22334455jjkkllmm]]\\[[ZZ00112233wwxxyyzzonnmmllk\\[[ZZYY$$##""!!%%&&''((]]^^__``oonnmmll((''&&%%++,,--..rrssttuuUUTTSSRR,--..//0deeffgghmllkkjji54433221<==>>??@tuuvvwwx]\\[[ZZY%$$##""!LMMNNOOPMLLKKJJI$%%&&''(\]]^^__`uttssrrq=<<;;::945566778lmmnnoop[ZZYYXXW23399::;yzz{{KKJJIIHH --..//00eeffgghhllkkjjii44332211==>>??@@uuvvwwxx\\[[ZZYY$$##""!!MMNNOOPPLLKKJJII%%&&''((]]^^__``ttssrrqq<<;;::9955667788mmnnooppZZYYXXWW3399::;;zz{{KJJIIHHG --..//001effgghhilkkjjiih43322110 =>>??@@Auvvwwxxy\[[ZZYYX$##""!! MNNOOPPQLKKJJIIH%&&''(()]^^__``atssrrqqp<;;::99856677889mnnooppqZYYXXWWV399::;;>??@@AAvvwwxxyy[[ZZYYXX##""!! NNOOPPQQKKJJIIHH&&''(())^^__``aassrrqqpp;;::998866778899nnooppqqYYXXWWVV99::;;<<{{kjjiihgfXXWWVVUU ))**++,,aabbccddkkjjiicc$$##""!!//001122vvwwxxyyQQPONMLK01122334hiijjkklihhggffe100//..- - - @AABBCCDxyyzz{{|YXXWWVVU! PQQRRSST~~}IHHGGFFE ())**++,`aabbccdqppoonnm98877665899::;;>?GGFFEEDD - - 11223344iijjkkllhhggffee00//..-- - - AABBCCDDyyzz{{||XXWWVVUU QQRRSSTT~~}}HHGGFFEE ))**++,,aabbccddppoonnmm8877665599::;;<>??GFFEEDDC - 12233445ijjkkllmhggffeed0//..--, - - ABBCCDDEyzz{{||}XWWVVUUT QRRSSTTU~~}}|HGGFFEED )**++,,-abbccddepoonnmml877665549::;;<<=qrrssttuVUUTTSSR <==>>??@FFEEDDCC 22334455jjkkllmmggffeedd//..--,, - - BBCCDDEEzz{{||}}WWVVUUTTRRSSTTUU~~}}||GGFFEEDD **++,,--bbccddeeoonnmmll77665544::;;<<==rrssttuuUUTTSSRR ==>>??@@edccbbaaTTSSRRQQ--..//00eeffgghhbbaa``__3399::;;zz{{KJJIIHHG -45566778lmmnnoopeddccbba-,,++**) DEEFFGGH|}}~~UTTSSRRQ TUUVVWWX}||{{zzyEDDCCBBA - - ,--..//0deeffgghmllkkjji54433221<==>>??@tuuvvwwxSRRQQKKJ - - ?@@AABBC~CCBBAA@@55667788mmnnooppddccbbaa,,++**)) EEFFGGHH}}~~TTSSRRQQ UUVVWWXX||{{zzyyDDCCBBAA - - --..//00eeffgghhllkkjjii44332211==>>??@@uuvvwwxxRRQQKKJJ - - @@AABBCC~}CBBAA@@?56677889mnnooppqdccbbaa`,++**))( EFFGGHHI}~~TSSRRQQP !UVVWWXXY|{{zzyyxDCCBBAA@ - - -..//001effgghhilkkjjiih43322110 =>>??@@AuvvwwxxyRQQKKJJI - - @AABBCCD~}|BBAA@@??66778899nnooppqqccbbaa``++**))((FFGGHHII~~SSRRQQPP !!VVWWXXYY{{zzyyxxCCBBAA@@ - - ..//0011ffgghhiikkjjiihh33221100 >>??@@AAvvwwxxyyQQKKJJII - - AABBCCDD~}|{``__^^]]PPOONNMM11223344iijjkkll^^]]\\[[<<==>>??GFFEEDDC - 899::;;>= 01122334hiijjkklihhggffe100//..- - - @AABBCCDxyyzz{{|JIIHHGGFCDDEEFFG}|{{zzyy??>>==<<99::;;<>==11223344iijjkkllhhggffee00//..-- - - AABBCCDDyyzz{{||IIHHGGFFDDEEFFGG|{{zzyyx?>>==<<;9::;;<<=qrrssttu`__^^]]\(''&&%%$IJJKKLLMPOONNMML!""##$$%YZZ[[\\]xwwvvuut@??>>==<12233445ijjkkllmhggffeed0//..--, - - ABBCCDDEyzz{{||}IHHGGFFEDEEFFGGH{{zzyyxx>>==<<;;::;;<<==rrssttuu__^^]]\\''&&%%$$JJKKLLMMOONNMMLL""##$$%%ZZ[[\\]]wwvvuutt??>>==<<22334455jjkkllmmggffeedd//..--,, - - BBCCDDEEzz{{||}}HHGGFFEEEEFFGGHH{zzyyxxw\\[[ZZYYXXWWVVUU"##$$%%&Z[[\\]]^wvvuutts?>>==<<;23344556jkkllmmngffeeddc/..--,,+ - BCCDDEEFz{{||}}~WVVUUTTSRSSTTUUV~~}}||{GFFEEDDC *++,,--.bccddeefbaa``__^399::;;>= - - @AABBCCDTTSSRRQQ&''(())*^__``aabsrrqqppo;::998876778899:nooppqqrcbbaa``_+**))(('FGGHHIIJ~SRRQQPPO !!"VWWXXYYZ{zzyyxxwCBBAA@@? - - .//00112fgghhiij^]]\\[[Z<==>>??@uttssrrq=<<;;::9 DEEFFGGHPONMLKKJ *++,,--.bccddeefonnmmllk76655443:;;<<==>rssttuuv_^^]]\\['&&%%$$#JKKLLMMNONNMMLLK"##$$%%&Z[[\\]]^wvvuutts?>>==<<;23344556jkkllmmnZYYXXWWV@AABBCCDqppoonnm98877665HIIJJKKLJIIHHGGF - - .//00112fgghhiijkjjiihhg3221100/ ->??@@AABvwwxxyyz[ZZYYXXW#""!! NOOPPQQRKJJIIHHG&''(())*^__``aabsrrqqppo;::998876778899:nooppqqrVUUTTSSR DEEFFGGHmllkkjji54433221LMMNNOOPFEEDDCCB 23344556jkkllmmngffeeddc/..--,,+ - BCCDDEEFz{{||}}~WVVUUTTSRSSTTUUV~~}}||{GFFEEDDC *++,,--.bccddeefonnmmllk76655443:;;<<==>rssttuuvRQQKKJJI - - -HIIJJKKQihhggffe100//..-PQQRRSSTBAA@@??>6778899:nooppqqrcbbaa``_+**))(('FGGHHIIJ~SRRQQPPO !!"VWWXXYYZ{zzyyxxwCBBAA@@? - - .//00112fgghhiijkjjiihhg3221100/ ->??@@AABvwwxxyyzIHHGGFFE - QRRSSTTUeddccbba-,,++**) TUUVVWWX>==<<;;::;;<<==>rssttuuv_^^]]\\['&&%%$$#JKKLLMMNONNMMLLK"##$$%%&Z[[\\]]^wvvuutts?>>==<<;23344556jkkllmmngffeeddc/..--,,+ - BCCDDEEFz{{||}}~EDDCCBBAUVVWWXXYa``__^^])((''&&% !!""##$XYYZZ[[\:9987654 ->??@@AABvwwxxyyz[ZZYYXXW#""!! NOOPPQQRKJJIIHHG&''(())*^__``aabsrrqqppo;::998876778899:nooppqqrcbbaa``_+**))(('FGGHHIIJ~A@@??>>=YZZ[[\\]]\\[[ZZY%$$##""!$%%&&''(\]]^^__`33221100 - BCCDDEEFz{{||}}~WVVUUTTSRSSTTUUV~~}}||{GFFEEDDC *++,,--.bccddeefonnmmllk76655443:;;<<==>rssttuuv_^^]]\\['&&%%$$#JKKLLMMN||{=<<;;::9]^^__``aYXXWWVVU! ())**++,`aabbccd//..--,,FGGHHIIJ~SRRQQPPO !!"VWWXXYYZ{zzyyxxwCBBAA@@? - - .//00112fgghhiijkjjiihhg3221100/ ->??@@AABvwwxxyyz[ZZYYXXW#""!! NOOPPQQR{zzyyxxw93322110!!""#abbcciijUTTSSRRQ,--..//0deeffggh++**))((JKKLLMMNONNMMLLK"##$$%%&Z[[\\]]^wvvuutts?>>==<<;23344556jkkllmmngffeeddc/..--,,+ - BCCDDEEFz{{||}}~WVVUUTTSRSSTTUUVwvvuutts0//..--,#$$%%&&'jkkllmmnQPPOONNM01122334hiijjkkl''&&%%$$NOOPPQQRKJJIIHHG&''(())*^__``aabsrrqqppo;::998876778899:nooppqqrcbbaa``_+**))(('FGGHHIIJ~SRRQQPPO !!"VWWXXYYZsrrqqppo,++**))('(())**+nooppqqrMLLKKJJI45566778lmmnnoop##""!! RSSTTUUV~~}}||{GFFEEDDC *++,,--.bccddeefonnmmllk76655443:;;<<==>rssttuuv_^^]]\\['&&%%$$#JKKLLMMNONNMMLLK"##$$%%&Z[[\\]]^onnmmllk(''&&%%$+,,--../rssttuuvIHHGGFFE 899::;;??@@AABvwwxxyyz[ZZYYXXW#""!! NOOPPQQRKJJIIHHG&''(())*^__``aabkjjiiccb$##""!!/0011223vwwxxyyyEDDCCBBA - - <==>>??@tuuvvwwxxyybdQZ|JltdrtAH~fvpfbے`HAbےJtArdv`f~~HfpQJHArXQJ`Zp˂drtbdQZ|f`vXfH~nr˂pے`JXZHAbbtl|ZdQf~HnXv`fpv㒐bHArXQJ`AJltdrtnvpf`vXfH~˂pZHAbtl|QbtlnXv`Xv`fےHAZXQJ`ےp˂rdrtAbdQZ|`vXnH~fr˂pے`JXQZHAbtlJ|ZdQbf~HnXv`pvnbHAZXQJ`ےJltdrtAvpf`vXnH~fpZHAbtl|btlnXv`˕v`f~HAZpQJ`ے˂rXdrtAbdQZ|vXn~f`r˂p`JXQZHAbۉlJtZdQbtf~HnXv`˝vnbHAZpQJ`ےJltdrtAvpfHvXn~f`ZHAbl|btl|Xv`fv`f~HAZpJ`ے˂rXQdrtAJdQZ|vXn~f`˂pZ`JXQrHAbےlJtAZdQbt~HfXv`fvnrbHAZpJ`ےltbdrtAJvpfHvXn~f`ZHAbl|Ztl|drtAbdQZ|Jlt`vXnH~fJXQr`JXQr|ZdQfpvvnXZp˂󒐙bHArXQJ`AJltdrtnvpf`vXZHAbQr˂pے`JXJtArdbtlfpvf~HnrXQJ`Zp˂󒐙bHAbdQZ|AJltfH~nvpf`vXbے`ZdQbt|ZdQf~H~fpvp˂rbHAZXQJ`ےJltdrtAvpf`vXnZHAbr˂pے`JXQtArdtlJfpvf~HrXQJ`p˂rbHAZbdQZ|JltH~fvpf`vXnے`JZdQbt|ZdQbf~Hfpv˂rXbHAZpQJ`ےJltdrtAvpfHvXnZHAbr˂p`JXQArd|lJtfpvf~HrXQJ`ۑ˂rXbHAZpbdQZ|Jlt~f`vpfHvXnے`JXZdQbtZdQbt~Hffpv˂rXQbHAZpJ`ےltbdrtAJvpfHvXnHAbے˂pZ`JXQrrd|lJtApvn~HfXQJ`ے˂rXQbHAZpdQZ|ltb~f`vpfHvXnrے`JXQdQbtZdQbtJltdrtAbdQZ|vpf`vXn˂p`J˂p|btlnXv`˕v`f~rXQJ`Zp˂󒐙bHAbdQZ|AJltfH~nvpے`JXZHAbQr˂p|ZdQJtArdnXv`fpvےHArXQJ`Zp˂drtbdQZ|f`vXfH~nr˂pJXQrˉlJtbtlfpvnXv`XQJ`ےp˂rbHAZbdQZ|JltH~fvpfے`JXQZHAbr˂p|ZdQbtArdnXv`fpvےHAZXQJ`ےp˂rdrtAbdQZ|`vXnH~fr˂pXQr˂lJtAtlJfpvnXv`QJ`ے˂rXbHAZpbdQZ|Jlt~f`vpfH`JXQZHAbr˂pZdQbtArd|nXv`fpv㒐HAZpQJ`ے˂rXdrtAbdQZ|vXn~f`r˂p`Qr˂plJtAlJtpvnnXv`J`ے˂rXQbHAZpdQZ|ltb~f`vpfH`JXQrHAbے˂pZZdQbtrd|Xv`fpvnHAZpJ`ے˂rXQdrtAJdQZ|vXn~f`˂p`r˂plJtArlJtAbdQZ|Jlt`vXnH~fvpfXQr˂ZdQbt|ZdQbf~HfpvbHArXQJ`Zp˂drtbdQZ|f`vXfH~Qr˂pے`JXZHAbtl|ZdQf~HnXv`Zp˂󒐙bHArXQJ`AJltdrtnvpf`vX`JXQp`JXArd|JtArdnXv`f~HbHAZXQJ`ےp˂rdrtAbdQZ|`vXnH~fr˂pے`JXQZHAےtlJ|ZdQbf~HnXv`p˂rbHAZXQJ`ےJltdrtAvpf`vXn`JXQrp`JXQrd|tArdnXv`ff~HbHAZpQJ`ے˂rdrtAbdQZ|vXn~f`r˂p`JXQZHAے`lJtZdQbtf~HnXv`ˑ˂rXbHAZpQJ`ےJltdrtAvpfHvXnJXQr`JXQrd|Ard|Xv`ff~HbHAZpJ`ے˂rbdrtAJdQZ|vXn~f`˂pZ`JXQrHAے`lJtAZdQbt~HfXv`f˂rXQbHAZpJ`ےltbdrtAJvpfHvXnJXQr`JXQrd|Zrd|drtAbdQZ|vpf`vXnH~fpZHAblJtAtlJfpvnXv`Zp˂󒐙bHArbdQZ|AJltdrtnvpf`vXZHAbQr˂p`JXQJtArdbtlfpvf~HrXQJ`Zp˂󒐙bHAbdQZ|AJltfH~nvpr˂pQr˂pZdQbt|ZdQf~fpۅfpvp˂rbHAZbdQZ|JltdrtAvpf`vXnZHAbr˂p`JXQrtArdtlJfpvf~HXQJ`ےp˂rbHAZbdQZ|JltH~fvpf˂pZr˂pZdQbt|ZdQb~fpvfpv˂rXbHAZpbdQZ|JltdrtAvpfHvXnZHAbr˂pJXQrArd|lJtfpvf~HQJ`ے˂rXbHAZpbdQZ|Jlt~f`vpfH˂pZHr˂pZdQbtZdQbt~fpvfpv˂rXQbHAZpdQZ|ltbdrtAJvpfHvXnHAbے˂pZJXQrbrd|lJtApvn~HfJ`ے˂rXQbHAZpdQZ|ltb~f`vpfH˂pZHA˂pZdQbtZdQbtJltdrtAH~fvpf`vXnے`Jrd|tArdnXv`ff~HrXQJ`Zp˂drtbdQZ|AJltfH~nvpے`JXZHAbrbtl|ZdQJtArdnXv`fpvbHArXQJ`Zp˂drtbdQZ|f`vXfH~ZHAbۑZHAbl|btl|vnXnXv`XQJ`ےp˂rdrtAbdQZ|JltH~fvpfے`JXQZHAbbtl|ZdQbtArdnXv`fpvbHAZXQJ`ےp˂rdrtAbdQZ|`vXnH~fHAbےZHAbl|Ztl|nXvnXv`QJ`ے˂rXdrtAbdQZ|Jlt~f`vpfH`JXQZHAbbtlZdQbtArd|nXv`fpvbHAZpQJ`ے˂rdrtAbdQZ|vXn~f`Abے`ZHAbےl|Zdl|nXv`nXv`fJ`ے˂rXQdrtAJdQZ|ltb~f`vpfH`JXQrHAbےtlJZdQbtrd|Xv`fpvnbHAZpJ`ے˂rbdrtAJdQZ|vXn~f`bے`HAbےl|ZdQl|ZbdQZ|Jlt`vXnH~fr˂pXQr˂ZdQbt|ZdQb~fpvfpvbHArXQJ`AJltdrtbdQZ|f`vXfH~Qr˂pے`JXJtAdbtl|ZdQf~HnXv`Zp˂󒐙bHArbdQZ|AJltdrtnvpf`vX`JXQے`JXZdQbtZdQbtv`ff~fpbHAZXQJ`ےJltdrtAbdQZ|`vXnH~fr˂pے`JXQJtAdtlJ|ZdQbf~HnXv`p˂rbHAZbdQZ|JltdrtAvpf`vXn`JXQrے`JXQdQbtZdQbt`f~f~fpۙbHAZpQJ`ےJltdrtAbdQZ|vXn~f`r˂p`JXQJtAd|lJtZdQbtf~HnXv`ˑ˂rXbHAZpbdQZ|JltdrtAvpfHvXnJXQr`JXQQbtlZdQbtf~H~fpvbHAZpJ`ےltbdrtAJdQZ|vXn~f`˂pZ`JXQrtAd|lJtAZdQbt~HfXv`f˂rXQbHAZpdQZ|ltbdrtAJvpfHvXnJXQr`JXQrbtldQbtdrtAbdQZ|vpf`vXn`JXQrp`JXQl|Ztl|nXvnXv`Zp˂󒐙bHAbdQZ|AJltdtAnvpf`vXZHAbQr˂p|ZdQJtArdbtlfpvf~HrXQJ`Zp˂drtbdQZ|AJltfH~nvpr˂p`Qr˂plJtAlJt~HfpvnXp˂rbHAZbdQZ|JltdtAJvpf`vXnZHAbr˂p|ZdQbtArdtlJfpvf~HXQJ`ےp˂rdrtAbdQZ|JltH~fvpf˂p`r˂plJtArlJtAHfpvvnX˂rXbHAZpbdQZ|JltdtAJlvpfHvXnZHAbr˂pZdQbtArd|lJtfpvf~HQJ`ے˂rXdrtAbdQZ|Jlt~f`vpfH˂p`r˂p`JtArdlJtAfpvnXv˂rXQbHAZpdQZ|ltbdtAJlvpfHvXnHAbے˂pZZdQbtrd|lJtApvn~HfJ`ے˂rXQdrtAJdQZ|ltb~f`vpfH˂p`J˂p`JtArdlJtArv`fJltdrtAH~fvpf˂pZr˂pdQbtZdQbt`f~f~fprXQJ`Zp˂drtbdQZ|JltfH~nvpے`JXZHAbbtl|ZdQJtArdnXv`fpvbHArXQJ`AJltdrtbdQZ|f`vXfH~ˁJXQr`JXQrd|Ard|vnXv`fXQJ`ےp˂rdrtAbdQZ|ltbH~fvpfے`JXQZHAbtlJ|ZdQbtArdnXv`fpvbHAZXQJ`ےJltdrtAbdQZ|`vXnH~fJXQr`JXQrd|Zrd|nXvv`fQJ`ے˂rXdrtAbdQZ|tb~f`vpfH`JXQZHAbۉlJtZdQbtArd|nXv`fpvbHAZpQJ`ےJltdrtAbdQZ|vXn~f`JXQrˁJXQr|Zdrd|nXv``f~J`ے˂rXQdrtAJdQZ|tbn~f`vpfH`JXQrHAbےlJtAZdQbtrd|Xv`fpvnbHAZpJ`ےltbdrtAJdQZ|vXn~f`XQr˂JXQr|ZdQd|Z~HfpbdQZ|Jlt`vXnH~fHAbےZHAblJtArlJtAHfpvvnXbHArXQJ`AJltdrtbnvpf`vXfH~Qr˂pے`JXJtArdbtl|ZdQf~HnXv`Zp˂󒐙bHAbdQZ|AJltdtAnvpf`vX˂pZHr˂pZdQbtZdQbtv`f~f~HfpbHAZXQJ`ےJltdrtAnvp`vXnH~fr˂pے`JXQtArdtlJ|ZdQbf~HnXv`p˂rbHAZbdQZ|JltdtAJvpf`vXn˂pZHA˂pZdQbtZdQbt`f~fp~HfpۙbHAZpQJ`ےJltdrtAnvpvXn~f`r˂p`JXQArd|lJtZdQbf~HnXv`ˑ˂rXbHAZpbdQZ|JltdtAJlvpfHvXnpZHA˂pZHQbtlZdQbtf~fpHfpvbHAZpJ`ےltbdrtAJvpfvXn~f`˂pZ`JXQrrd|lJtAZdQbn~HfXv`f˂rXQbHAZpdQZ|ltbdtAJlvpfHvXnpZHAb˂pZHAbtldQbt璝vnXdrtAbdQZ|vpf`vXn`JXQrے`JXQd|Zrd|nXvv`fZp˂󒐙bHAbdQZ|AJltfHnvpf`vXZHAbQr˂p|ZdQJtArdbnXv`fpvf~HrXQJ`Zp˂drtbdQZ|JltfH~nvpAbے`ZHAbےl|Zdl|pvnvnXp˂rbHAZbdQZ|JltfHfvpf`vXnZHAbr˂p|ZdQbtArdnXv`fpvf~HXQJ`ےp˂rdrtAbdQZ|ltbH~fvpfbے`HAbےl|ZdQl|ZvnXvnX˂rXbHAZpbdQZ|JltfHf`vpfHvXnZHAbr˂pZdQbtArd|nXv`fpvf~HQJ`ے˂rXdrtAbdQZ|tb~f`vpfHbے`Abے`|ZdQl|ZdvnXnXv˂rXQbHAZpdQZ|ltbHf`vpfHvXnHAbے˂pZZdQbtrd|Xv`fpvn~HfJ`ے˂rXQdrtAJdQZ|tbn~f`vpfHے`Jbے`|ZdQbl|ZdQv`f~JltdrtAH~fvpf˂p`r˂pdQbtZdQbt`f~fp~HfprXQJ`Zp˂drtbdQZ|f`vXfH~nvpے`JXZHAbbtl|ZdQf~HnXv`fpvbHArXQJ`AJltdrtbnvpf`vXfH~ˁJXQr`JXQQbtlZdQbnXXv`fv`ffXQJ`ےp˂rdrtAbdQZ|`vXnH~fvpfے`JXQZHAbtlJ|ZdQbf~HnXv`fpvbHAZXQJ`ےJltdrtAnvp`vXnH~fJXQr`JXQrbtldQbnXv`fv`ffpQJ`ے˂rXdrtAbdQZ|vXn~f`vpfH`JXQZHAbۉlJtZdQbtf~HnXv`fpvbHAZpQJ`ےJltdrtAnvpvXn~f`JXQrˁJXQrbtlQbnXv`f`ffpJ`ے˂rXQdrtAJdQZ|vXn~f`vpfH`JXQrHAbےlJtAZdQbt~HfXv`fpvnbHAZpJ`ےltbdrtAJvpfvXn~f`XQr˂JXQrtlJbnXvfpvbdQZ|Jlt`vXnH~fJXQr`JXQrl|ZdQl|ZvnXvnXbHArXQJ`AJltdrtnvpf`vXfH~Qr˂pے`JXJtArdbtlfpvf~HnXv`Zp˂󒐙bHAbdQZ|AJltfHnvpf`vX˂p`r˂p`JtArdv`f~~HfpvnbHAZXQJ`ےJltdrtAvpf`vXnH~fr˂pے`JXQtArdtlJfpvf~HnXv`p˂rbHAZbdQZ|JltfHfvpf`vXn˂p`J˂p`JtArdv`f~~HfpvnbHAZpQJ`ےJltdrtAvpfHvXn~f`r˂p`JXQArd|lJtfpvf~HnXv`ˑ˂rXbHAZpbdQZ|JltfHf`vpfHvXnp`JX˂p`JtArdv`f~f~HfpvnrbHAZpJ`ےltbdrtAJvpfHvXn~f`˂pZ`JXQrrd|lJtApvn~HfXv`f˂rXQbHAZpdQZ|ltbHf`vpfHvXnp`JXQ˂p`JtArd`f~fpnXv`drtAbdQZ|vpf`vXn˂pZHA˂pZbtldQbnXv`fv`frZp˂󒐙bHAbdQZ|AJltfH~nvpf`vXZHAbQr˂p|ZdQJtArdnXv`fpvfHrXQJ`Zp˂drtbdQZ|f`vXfH~nvpJXQrˁJXQr|ZdfpvpvnrXQJ`p˂rbHAZbdQZ|JltH~fvpf`vXnZHAbr˂p|ZdQbtArdnXv`fpvfHfXQJ`ےp˂rdrtAbdQZ|`vXnH~fvpfXQr˂JXQrb|ZdQfpvvnXrXQJ`ۑ˂rXbHAZpbdQZ|Jlt~f`vpfHvXnZHAbr˂pZdQbtArd|nXv`fpvfHfpQJ`ے˂rXdrtAbdQZ|vXn~f`vpfHQr˂pJXQrbt|ZdQpvnvnXXQJ`ے˂rXQbHAZpdQZ|ltb~f`vpfHvXnrHAbے˂pZZdQbtrd|Xv`fpvnHfpJ`ے˂rXQdrtAJdQZ|vXn~f`vpfHr˂pXQrbt|ZdQbvnXf~HfpvnXv`rXQbHAZpQZ|dtbdtAJlvpfHvXnAbے`˂pZHZdQbtrd|lJtAvnX~HfpJ`ےむrXQrtAJlQZ|dtbd~f`vpfHJXQrˁJXQrp`ZQXbXnvˍf۝`vp|drtbAdZnXv`f~HJ`ےむrXQrtAJlQZ|dtbn~f`vpfHJXQrAbے`lJtAZdQbtrd|v`fvnXbHAZpJ`ےtbdrtAJlQZ|dvXn~f`pZHA˂pZH㉀ۑpJpfH~XnvˍQtJl|drf~fpۅfpvbHAZpJ`ےtbdrtAJlvpfHvXn~f`˂pZHJXQrrd|lJtAZdQbnX~Hfpv`frXQbHAZpQZ|dtbdtAJlvpfHvXnbے`Abے`AHr󙐂f۝`vpfH~tbAdZQtJlvnXnXv`rXQbHAZpQZ|dtbdf`vpfHvXnAbے`˂pZHZdQbtrd|v`fvnX~HfpJ`ےむrXQrtAJlQZ|dtbn~f`vpfHJXQrˁJXQrˁ`ZQXbXnvˍf۝`v|drtbAdZv`fffpJ`ےむrXQrtAJlQZ|dvXn~f`vpfHJXQrAbے`lJtAZdQbt~Hfpv`fvnXbHAZpJ`ےtbdrtAJlvpfHvXn~f`p`JX˂p`Z㉀ۑppfH~XnvˍQtJl|dr~HfpvnrXbHAZpJ`ےtbdrtAJlvpfHvXn~f`˂pZHJXQrrd|lJtAvnX~Hfpv`frXQbHAZpQZ|dtbdf`vpfHvXnQr˂pQXb㉀`ZQXb㉐f۝`vpfH~tbAdZQtJlvnXQJ`ےrXQbHAZpQZ|dtbd~f`vpfHvXnrAbے`˂pZHZdQbtrd|v`fvnXHfpJ`ےむrXQrtAJlQZ|dvXn~f`vpfHZHAbۑpJAHrۑpJAXnvˍf۝`v|drtbAdZv`f~fHAZpJ`ےむrXQrtAJlQZ|dvXn~f`˂pZHJXQrAbے`lJtAZdQbt~Hfpv`fvnrXbHAZpJ`ےtbdrtAJlvpfHvXn~f`ے`JX󙐂ˁ`ZHr󙐂ˁpfH~XnvˍQtJl|drpvnrXQbHAZpJ`ےtbdrtAJlvpfHvXnAbے`˂pZHJXQrrd|lJtAvnX~HfpQJ`ےrXQbHAZpQZ|dtbd~f`vpfHvXnے`Qr˂pQXb㉀`ZQXb㉐f۝`vpfH~tbAdZQtJlXv`fJ`ےむrXQbHAZpQZ|dtbd~f`vpfHJXQrAbے`˂pZHZdQbtrd|v`fvnXHAZpJ`ےむrXQrtAJlQZ|dvXn~f`JXQr`JXQۑp`ZQۑp`ZXnvˍf۝`v|drtbAdZ~HfbHAZpJ`ےむrbdrtAJlQZ|dvXn~f`˂pZHJXQrAے`lJtAZdQbt~Hfpv`frXQbHAZpJ`ےtbdrtAJlvpfHvXnۉ˂pZHr˂pXb㉀ۑQXb㉀pfH~XnvˍQtJl|drpvnrXQbHAZpQZ|dtbdrtAJlvpfHvXnAbے`˂pZHJXQrbtrd|lJtAvnX~HfpJ`ےむrXQbHAZpQZ|dtbd~f`vpfHAbے`ZHAbpJAHrۑpJAHrf۝`vpfH~tbAdZQtJlXv`fJ`ےむrXQrtAJlQZ|dtbd~f`vpfHJXQrAbے`lJtZdQbtrd|v`fvnXbHAZpJ`ےむrbdrtAJlQZ|dvXn~f`JXQr`JXQˁ`ZQ󙐂ˁ`ZXnvˍf۝`v|drtbAdZ~fpvbHAZpJ`ےtbdrtAJlQZ|dvXn~f`˂pZHJXQrAd|lJtAZdQbt~Hfpv`frXQbHAZpQZ|dtbdrtAJlvpfHvXnۉ˂p`r˂p`Xb㉀ۑQXb㉀pfH~XnvˍQtJl|drQt}~~ \ No newline at end of file diff --git a/vendor/endroid/qr-code/assets/data/qrv29_2.dat b/vendor/endroid/qr-code/assets/data/qrv29_2.dat deleted file mode 100755 index 2b36dd3c3..000000000 --- a/vendor/endroid/qr-code/assets/data/qrv29_2.dat +++ /dev/null @@ -1,265 +0,0 @@ -~}~}~}~}{|{|{|{|wxwxwxwxuvuvuvuvststststopopopopmnmnmnmnijijijijghghghghcdcdcdcdbabababa^]^]^]^]\[\[\[\[~}~}~}~}{|{|{|{|wxwxwxwxuvuvuvuvsrqrqrqropopopopmnmnmnmnijijijijghghghghcdcdcdcdbabababa^]^]^]^]\[\[\[\[~}~}~}~}{|{|{|{|wxwxwxwxuvuvuvuvqrqrqrqropopopopmnmnmnmnijijijijghghghghcdcdcdcdbabababa^]^]^]^]\[\[\[\[~}~}~}~}{|{|{|{|wxwxwxwxuvuvuvuvqrqrqrqropopopopmnmnmnmnijijijijghghghghcdcdcdcdbabababa^]^]^]^]\[\[\[\[~}~}~}~}{|{|{|{ywxwxwxwxuvuvuvuvqrqrqrqropopopopmnmnmnmnijijijijghghghghcdccccccbabababa^]^]^]^]\[\[\[\[~}~}~}~}yyyyyzyzwxwxwxwxuvuvuvuvqrqrqrqropopopopmnmnmnmnijijijijghghghghdcdcdcdcbabababa^]^]^]^]\[\[\[\[~}~}~}~}yzyzyzyzwxwxwxwxuvuvuvuvqrqrqrqropopopopmnmnmnmnijijijijghghghghdcdcdcdcbabababa^]^]^]^]\[\[\[\[~}~}~}~}yzyzyzyzwxwxwxwxuvuvuvuvqrqrqrqropopopopmnmnmnmnijijijijghghghghdcdcdcdcbabababa^]^]^]^]\[\[\[\[~}~}~}~}yzyzyzyzwxwxwxwxuvuvuvuvqrqrqrqropopopopmnmnmnmnijijijijghghghghdcdcdcdcbabababa^]^]^]^]\[\[\[\[~}~}~}~}yzyzyzyzwxwxwxwxuvuvuvuvqrqrqrqropopopopmnmnmnmnijijijijghghghghdcdcdcccbabababa^]^]^]^]\[\[\[\[~}~}~}~}yzyzyzyzwxwxwxwxuvuvuvuvqrqrqrqropopopopmlklklklijijijijghghghghcccdcdcd`_`_`_`_^]^]^]^]\[\[\[\[~}~}~}~}yzyzyzyzwxwxwxwxuvuvuvuvqrqrqrqropopopopklklklklijijijijghghghgfcdcdcdcd`_`_`_`_^]^]^]^]\[\[\[\[~}~}~}~}yzyzyzyzwxwxwxwxuvuvuvuvqrqrqrqropopopopklklklklijijijijefefefefcdcdcdcd`_`_`_`_^]^]^]^]\[\[\[\[~}~}~}~}yzyzyzyzwxwxwxwxutstststqrqrqrqropopopopklklklklijijijijefefefefcdcdcdcd`_`_`_`_^]^]^]^]\[\[\[\[~}~}~}~}yzyzyzyzwxwxwxwxststststqrqrqrqropopopopklklklklijijijijefefefefcdcdcdcd`_`_`_`_^]^]^]^]\[\[\[\[~}~}~}~}yzyzyzyzwxwxwxwxststststqrqrqrqropopopopklklklklijijijijefefefefccccccdc`_`_`_`_^]^]^]^]\[\[\[\[~}~}~}~}yzyzyzyzwxwxwxwxststststqrqrqrqropopopopklklklklijijijijefefefefdcdcdcdc`_`_`_`_^]^]^]^]\[\[\[\[~}~}~}~}yzyzyzyzwxwxwxwxststststqrqrqrqropopopopklklklklijijijijefefefefdcdcdcdc`_`_`_`_^]^]^]^]\[\[\[\[~}~}~}~}yzyzyzyzwxwxwxwxststststqrqrqrqropopopopklklklklijijijijefefefefdcdcdcdc`_`_`_`_^]^]^]^]\[\[\[\[~}~}~}~}yzyzyzyzwxwxwxwxststststqrqrqrqropopopopklklklklijijijijefefefefdcdcdcdc`_`_`_`_^]^]^]^]ZYZYZYZYZYZYZYZY~}~}~}~}yzyzyzyzwxwxwxwxststststqrqrqrqropopopopklklklklijijijijefefefefdcdccccc`_`_`_`_^]^]^]^]ZYZYZYZYZYZYZYZY~}~}|{|{yzyzyzyzwxwxwxwxststststqrqrqrqropopopopklklklklijijijijefefefefdcdcdcdc`_`_`_`_^]^]^]^]ZYZYZYZYZYZYZYZY|{|{{{{{yzyzyzyzwxwxwxwxststststqrqrqrqronmnmnmnklklklklijijijijefefefefbabababa`_`_`_`_^]^]^]^]ZYZYZYZYZYZYZYZY{|{|{|{|yzyzyzyzwxwxwxwxststststqrqrqrqrmnmnmnmnklklklklijijijijefefefefbabababa`_`_`_`_^]^]^]^]ZYZYZYZYZYZYZYZY{|{|{|{|yzyzyzyzwxwxwxwxststststqrqrqrqrmnmnmnmnklklklklijijijijefefefefbabababa`_`_`_`_^]^]^]^]ZYZYZYZYZYZYZYZY{|{|{|{|yzyzyzyzwvuvuvuvststststqrqrqrqrmnmnmnmnklklklklijijijijefefefefbabababa`_`_`_`_^]^]^]^]ZYZYZYZYZYZYZYZY{|{|{|{|yzyzyzyzuvuvuvuvststststqrqrqrqrmnmnmnmnklklklklijijijijefefefefbabababa`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXW{|{|{|{{yzyzyzyzuvuvuvuvststststqrqrqrqrmnmnmnmnklklklklijijijijefefefefbabababa`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXW{{{{|{|{yzyzyzyzuvuvuvuvststststqrqrqrqrmnmnmnmnklklklklijijijijefefefefbabababa`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXW|{|{|{|{yzyzyzyzuvuvuvuvststststqrqrqrqrmnmnmnmnklklklklijijijijefefefefbabababa`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXW|{|{|{|{yzyzyzyzuvuvuvuvststststqrqrqrqrmnmnmnmnklklklklijijijijefefefefbabababa`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXW|{|{|{|{yzyzyzyzuvuvuvuvststststqrqrqrqrmnmnmnmnklklklklihghghghefefefefbabababa`_`_`_`_\[\[\[\[ZYZYZYZYXWXWXWXW|{|{|{|{yzyzyzyzuvuvuvuvststststqrqrqrqrmnmnmnmnklklklklghghghghefefefefbabababa`_`_`_`_\[\[\[\[ZYZYZYZYXWXWXWXW|{{{{{{|yzyzyzyzuvuvuvuvststststqrqrqrqrmnmnmnmnklklklklghghghghefefefefbabababa`_`_`_`_\[\[\[\[ZYZYZYZYXWXWXWXW{|{|{|{|yzyzyzyzuvuvuvuvststststqpopopopmnmnmnmnklklklklghghghghefefefefbabababa`_`_`_`_\[\[\[\[ZYZYZYZYXWXWXWXW{|{|{|{|yzyzyzyzuvuvuvuvststststopopopopmnmnmnmnklklklklghghghghefefefefbabababa`_`_`_`_\[\[\[\[ZYZYZYZYXWXWXWXW{|{|{|{|yzyzyzyzuvuvuvuvststststopopopopmnmnmnmnklklklklghghghghefefefefbabababa`_`_`_`_\[\[\[\[ZYZYZYZYXWXWXWXW{|{|{|{|yxwxwxwxuvuvuvuvststststopopopopmnmnmnmnklklklklghghghghefefedcdbabababa`_`_`_`_\[\[\[\[ZYZYZYZYXWXWXWXW{|{|{{{{wxwxwxwxuvuvuvuvststststopopopopmnmnmnmnklklklklghghghghcdcdccccbabababa`_`_`_`_\[\[\[\[ZYZYZYZYXWXWXWXW{{|{|{|{wxwxwxwxuvuvuvuvststststopopopopmnmnmnmnklklklklghghghghccdcdcdcbabababa`_`_`_`_\[\[\[\[ZYZYZYZYXWXWXWXW|{|{|{|{wxwxwxwxuvuvuvuvststststopopopopmnmnmnmnklklklklghghghghdcdcdcdcbabababa`_`_`_`_\[\[\[\[ZYZYZYZYXWXWXWXW~}|{|{|{|{wxwxwxwxuvuvuvuvststststopopopopmnmnmnmnklklklklghghghghdcdcdcdcbabababa`_`_`_`_\[\[\[\[ZYZYZYZYXWXWXWXW~}~}~}~}|{|{|{|{wxwxwxwxuvuvuvuvststststopopopopmnmnmnmnklklklklghghghghdcdcdcdcbabababa`_`_`_`_\[\[\[\[ZYZYZYZYXWXWXWXW~}~}~}~}|{|{|{|{wxwxwxwxuvuvuvuvststststopopopopmnmnmnmnkjijijijghghghghdcdcdcdcbabababa^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXW~}~}~}~}{{{{{|{|wxwxwxwxuvuvuvuvststststopopopopmnmnmnmnijijijijghghghghcccccdcdbabababa^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVURQRQRQRQPOPOPOPOKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>;<;<;<;<7878787856565656212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!     - - - -XWXWXWXWVUVUVUVURQRQRQRQPOPOPOPOKLKLKKKKIJIJIJIHEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>;<;<;<;<7878787856565656212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!     - - - -XWXWXWXWTSTSTSTSRQRQRQRQPOPOPOPOKKLKLKLKGHGHGHGHEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>;<;<;<;<7878787856543434212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!     - - - -XWXWXWXWTSTSTSTSRQRQRQRQPOPOPONMLKLKLKLKGHGHGHGHEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>;<;<;<;<7878787834333333212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!     - - - -XWXWXWXWTSTSTSTSRQRQRQRQNMNMNMNMLKLKLKLKGHGHGHGHEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>;<;<;<;<7878787843434343212121210/0/0/0/,+,+,+,+*)*)*)*)('('('&%$#$#$#$#"!"!"!"!     - - - -XWXWXWXWTSTSTSTSRQRQRQRQNMNMNMNMLKLKLKLKGHGHGHGHEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>;<;<;<;<7878787843434343212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"!     - - - -XWXWXWXWTSTSTSTSRQRQRQRQNMNMNMNMLKLKLKLKGHGHGHGHEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>;<;<;<;<7878787843434343212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"!     - - - -XWXWXWXWTSTSTSTSRQRQRQRQNMNMNMNMKKKKKLKLGHGHGHGHEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>;<;<;<;:7878787843434343212121210/0/0/.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"!     - - - -XWXWXWXWTSTSTSTSRQRQRQRQNMNMNMNMKLKLKLKLGHGHGHGHEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>9:9:9:9:787878784343433321212121.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"!     - - - -XWXWXWXWTSTSTSTSRQRQRQRQNMNMNMNMKLKLKLKLGHGHGHGHEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>9:9:9:9:787878783334343421212121.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"!     - - - -XWXWXWXWTSTSTSTSRQRQRQRQNMNMNMNMKLKLKLKLGHGHGHGHEFEFEFEFCDCDCDCB?@?@?@?@=>=>=>=>9:9:9:9:787878783434343421212121.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"!   - - - -XWXWXWXWTSTSTSTSRQRQRQRQNMNMNMNMKLKLKLKLGHGHGHGHEFEFEFEFABABABAB?@?@?@?@=>=>=>=>9:9:9:9:787878783434343421212121.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"! - - - -XWXWXWXWTSTSTSTSRQRQRQRQNMNMNMNMKLKKKKKLGHGHGHGHEFEFEFEFABABABAB?@?@?@?@=>=>=>=>9:9:9:9:787878783434343421212121.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"! - - - -XWXWXWXWTSTSTSTSRQRQRQRQNMNMNMNMKLKLKLKJGHGHGHGHEFEFEFEFABABABAB?@?@?@?@=>=>=>=>9:9:9:9:787878783434343421212121.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!  - - - -VUVUVUVUTSTSTSTSRQRQRQRQNMNMNMNMIJIJIJIJGHGHGHGHEFEFEFEFABABABAB?@?@?@?@=>=>=>=>9:9:9:9:787878783333334321212121.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#     - - - -VUVUVUVUTSTSTSTSRQRQRQRQNMNMNMNMIJIJIJIJGHGHGHGHEFEFEFEFABABABAB?@?@?@?@=>=>=>=>9:9:9:9:787878784343434321212121.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#     - - - -VUVUVUVUTSTSTSTSRQRQRQRQNMNMNMNMIJIJIJIJGHGHGHGHEFEFEFEFABABABAB?@?@?@?@=>=>=>=>9:9:9:9:787878784343434321212121.-.-.-.-,+,+,+,+*)*)*)('&%&%&%&%$#$#$#$#     - - - -VUVUVUVUTSTSTSTSRQRQRQRQNMNMNMNMIJIJIJIJGHGHGHGHEFEFEFEFABABABAB?@?@?@?@=>=>=>=>9:9:9:9:787878784343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#     - - - -VUVUVUVUTSTSTSTSRQRQRQRQNMNMNMNMIJIJIJIJGHGHGHGHEFEFEFEFABABABAB?@?@?@?@=>=>=>=>9:9:9:9:787878784343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#     - - - -VUVUVUVUTSTSTSTSRQRQRQRQNMNMNMNMIJIJIJIJGHGHGHGHEFEFEFEFABABABAB?@?@?@?@=>=>=>=<9:9:9:9:78787878434333332121210/.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#     - - - -VUVUVUVUTSTSTSTSRQRQRQRQNMNMNMNMIJIJIJIJGHGHGHGHEFEFEFEFABABABAB?@?@?@?@;<;<;<;<9:9:9:9:78787878343434340/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#     - - - -VUVUVUVUTSTSTSTSRQRQRQRQNMNMNMNMIJIJIJIJGHGHGHGHEFEFEFEFABABABAB?@?@?@?@;<;<;<;<9:9:9:9:78787656343434340/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#     - - - -VUVUVUVUTSTSTSTSRQRQRQRQNMNMNMNMIJIJIJIJGHGHGHGHEFEFEFEDABABABAB?@?@?@?@;<;<;<;<9:9:9:9:56565656343434340/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#      - - - -VUVUVUVUTSTSTSTSPOPOPOPONMNMNMNMIJIJIJIJGHGHGHGHCDCDCDCDABABABAB?@?@?@?@;<;<;<;<9:9:9:9:56565656343434340/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#         - - - -VUVUVUVUTSTSTSTSPOPOPOPONMNMNMNMIJIJIJIJGHGHGHGHCDCDCDCDABABABAB?@?@?@?@;<;<;<;<9:9:9:9:56565656343434330/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#         - - - -VUVUVUVUTSTSTSTSPOPOPOPONMNMNMNMIJIJIJIJGHGHGHGHCDCDCDCDABABABAB?@?@?@?@;<;<;<;<9:9:9:9:56565656333343430/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#"!         - - - -VUVUVUVUTSTSTSTSPOPOPOPONMNMNMNMIJIJIJIJGHGHGHGHCDCDCDCDABABABAB?@?@?@?@;<;<;<;<9:9:9:9:56565656434343430/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!         - - - -VUVUVUVUTSTSTSTSPOPOPOPONMNMNMNMIJIJIJIJGHGHGHGHCDCDCDCDABABABAB?@?@?@?@;<;<;<;<9:9:9:9:56565656434343430/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!         - - - -VUVUVUVUTSTSTSTSPOPOPOPONMNMNMNMIJIJIJIJGHGHGHGHCDCDCDCDABABABAB?@?@?@?@;<;<;<;<9:9:9:9:56565656434343430/0/0/0/.-.-.-.-,+,+,+*)('('('('&%&%&%&%"!"!"!"!         - - - -VUVUVUVUTSTSTSTSPOPOPOPONMNMLKLKIJIJIJIJGHGHGHGHCDCDCDCDABABABAB?@?@?@?@;<;<;<;<9:9:9:9:56565656434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%"!"!"!"!         - - - -VUVUVUVUTSTSTSTSPOPOPOPOLKLKKKKKIJIJIJIJGHGHGHGHCDCDCDCDABABABAB?@?@?@?@;<;<;<;<9:9:9:9:56565656433333430/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%"!"!"!"!         - - - -VUVUVUVUTSTSTSTSPOPOPOPOKLKLKLKLIJIJIJIJGHGHGHGHCDCDCDCDABABABAB?@?@?@?>;<;<;<;<9:9:9:9:56565656434343210/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%"!"!"!"!         - - VUVUVUVUTSTSTSTSPOPOPOPOKLKLKLKLIJIJIJIJGHGHGHGHCDCDCDCDABABABAB=>=>=>=>;<;<;<;<9:9:9:9:56565656212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%"!"!"!"!         VUVUVUVUTSTSTSTSPOPOPOPOKLKLKLKLIJIJIJIJGHGHGHGHCDCDCDCDABABABAB=>=>=>=>;<;<;<;<9:9:9:9:56565656212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%"!"!"!"!         VUVUVUVUTSTSTSTSPOPOPOPOKLKLKLKLIJIJIJIJGHGHGHGFCDCDCDCDABABABAB=>=>=>=>;<;<;<;<9:9:9:9:56565656212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%"!"!"!"!         VUVUVUVURQRQRQRQPOPOPOPOKLKLKLKKIJIJIJIJEFEFEFEFCDCDCDCDABABABAB=>=>=>=>;<;<;<;<9:9:9:9:56565656212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%"!"!"!"!         VUVUVUVURQRQRQRQPOPOPOPOKKKKLKLKIJIJIJIJEFEFEFEFCDCDCDCDABABABAB=>=>=>=>;<;<;<;<9:9:9:9:56565656212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%"!"!"!"!         VUVUVUVURQRQRQRQPOPOPOPOLKLKLKLKIJIJIJIJEFEFEFEFCDCDCDCDABABABAB=>=>=>=>;<;<;<;<9:9:9:9:56565656212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%$#"!"!"!"!         VUVUVUVURQRQRQRQPOPOPOPOLKLKLKLKIJIJIJIJEFEFEFEFCDCDCDCDABABABAB=>=>=>=>;<;<;<;<9:9:9:9:56565656212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"!         VUVUVUVURQRQRQRQPOPOPOPOLKLKLKLKIJIJIJIJEFEFEFEFCDCDCDCDABABABAB=>=>=>=>;<;<;<;<9:9:9:9:56565656212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"!       VUVUVUVURQRQRQRQPOPOPOPOLKLKLKLKIJIJIJIJEFEFEFEFCDCDCDCDABABABAB=>=>=>=>;<;<;<;<9:9:9:9856565656212121210/0/0/0/.-.-.-,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!     VUVUVUVURQRQRQRQPOPOPOPOLKKKKKKLIJIJIJIJEFEFEFEFCDCDCDCDABABABAB=>=>=>=>;<;<;<;<7878787856565656212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!     VUVUVUVURQRQRQRQPOPOPOPOKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCDABABABAB=>=>=>=>;<;<;<;<7878787856565656212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!     VUVUVUVURQRQRQRQPOPOPOPOKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCDABABABA@=>=>=>=>;<;<;<;<7878787856565656212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!     - -VUVUVUVURQRQRQRQPOPOPOPOKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>;<;<;<;<7878787856565656212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!     - - - -AABBCCDDeddccbbaPQQRRSSTYXXWWVVU\]]^^__` - - >==<<;;:baa``__^]]^^__`` - - LLKKJJII~~}}EEFFGGHH!!""a``__^^]TUUVVWWXUTTSSRRQ`aabbccd :9933221^]]\\[[Zaabbccdd HHGGFFEE||{{zzyyIIJJKKLL##$$%%&&]\\[[ZZYXYYZZ[[\QPPOONNMdeeffggh100//..-ZYYXXWWVeeffgghhDDCCBBAAxxwwvvuuMMNNOOPP''(())** -YXXWWVVU\]]^^__` - - MLLKKJJIhiijjkkl-,,++**)VUUTTSSRiijjkkll@@??>>==ttssrrqqQQRRSSTT++,,--.. - UTTSSRRQ`aabbccd IHHGGFFElmmnnoop)((''&&%RQQPONMLmmnnoopp<<;;::99ppoonnmmUUVVWWXX//001122QPPOONNMdeeffgghEDDCCBBApqqrrsst %$$##""!KKJJIIHHqqrrsstt 88776655llkkjjiiYYZZ[[\\3399::;; - - MLLKKJJIhiijjkklA@@??>>=tuuvvwwx !!""##$!GGFFEEDDuuvvwwxx!!""##$$44332211hhggffee]]^^__``<<==>>?? IHHGGFFElmmnnoop=<<;;::9xyyzz{{|$%%&&''(CCBBAA@@yyzz{{||%%&&''((00//..--ddccbbaaaabbccdd@@AABBCCEDDCCBBApqqrrsst 98877665|}}~~())**++,??>>==<<}}~~))**++,,,,++**))``__^^]]eeffgghhDDEEFFGGA@@??>>=tuuvvwwx !!""##$54433221,--..//0 ;;::9987--..//00((''&&%%\\[[ZZYYiijjkkllHHIIJJKK=<<;;::9xyyzz{{|$%%&&''(100//..-01122334 - - 6543322111223344$$##""!!XXWWVVUUmmnnooppQQRRSSTT 98877665|}}~~())**++,-,,++**)~~}45566778100//..-~~}}55667788 TTSSRRQQqqrrssttUUVVWWXX !!""##$54433221,--..//0)((''&&%}||{{zzy899::;;< -,,++**)||{{zzyy99::;;<<PPOONNMMuuvvwwxxYYZZ[[\\$%%&&''(100//..-01122334%$$##""!yxxwwvvu<==>>??@ - - )((''&&%xxwwvvuu==>>??@@LLKKJJIIyyzz{{||]]^^__``())**++,-,,++**)~~}45566778! uttssrrq@AABBCCD %$$##""!ttssrrqqAABBCCDDHHGGFFEE}}~~aabbccii,--..//0)((''&&%}||{{zzy899::;;<qppoonnmDEEFFGGH! ppoonnmmEEFFGGHH DDCCBBAAjjkkllmm01122334%$$##""!yxxwwvvu<==>>??@mllkkjjiHIIJJKKLllkkjjiiIIJJKKLL - - @@??>>==nnooppqq45566778! uttssrrq@AABBCCDihhggffeLMMNNOOP!!"hhggffeeMMNNOOPP<<;;::99{{zzyyxxrrssttuu899::;;<qppoonnmDEEFFGGH eddccbbaPQQRRSST"##$$%%&ddccbbaaQQRRSSTT88776655wwvvuuttvvwwxxyy<==>>??@mllkkjjiHIIJJKKL - - a``__^^]TUUVVWWX&''(())* ``__^^]]UUVVWWXXiijjkkll44332211ssrrqqppzz{{@AABBCCDihhggffeLMMNNOOP ]\\[[ZZYXYYZZ[[\*++,,--. - - \\[[ZZYYYYZZ[[\\mmnnoopp00//..--oonnmmllDEEFFGGH eddccbbaPQQRRSSTYXXWWVVU\]]^^__`.//00112XXWWVVUU]]^^__`` - - qqrrsstt,,++**))kkjjiicc~}HIIJJKKL - - a``__^^]TUUVVWWXUTTSSRRQ`aabbccd23399::;TTSSRRQQaabbccdd uuvvwwxx((''&&%%bbaa``__|{{zzyyxLMMNNOOP ]\\[[ZZYXYYZZ[[\QPPOONNMdeeffggh;<<==>>?PPOONNMMeeffgghhyyzz{{||$$##""!!^^]]\\[[xwwvvuutPQQRRSSTYXXWWVVU\]]^^__` - - MLLKKJJIhiijjkkl?@@AABBC - - LLKKJJIIiijjkkll}}~~ ZZYYXXWWtssrrqqpTUUVVWWXUTTSSRRQ`aabbccd IHHGGFFElmmnnoopCDDEEFFG HHGGFFEEmmnnooppVVUUTTSSpoonnmmlXYYZZ[[\QPPOONNMdeeffgghEDDCCBBApqqrrsstGHHIIJJKDDCCBBAAqqrrsstt RRQQKKJJlkkjjiih\]]^^__` - - MLLKKJJIhiijjkklA@@??>>=tuuvvwwxKQQRRSST@@??>>==uuvvwwxx!!""##$$~~}}IIHHGGFFgfedccbb`aabbccd IHHGGFFElmmnnoop=<<;;::9xyyzz{{|TUUVVWWX<<;;::99yyzz{{||%%&&''((||{{zzyy EEDDCCBBaa``__^^deeffgghEDDCCBBApqqrrsst 98877665|}}~~XYYZZ[[\ 88776655}}~~))**++,,xxwwvvuu - - AA@@??>>]]\\[[ZZhiijjkklA@@??>>=tuuvvwwx !!""##$54433221\]]^^__`!!""##$$44332211--..//00ttssrrqq - - ==<<;;::YYXXWWVVlmmnnoop=<<;;::9xyyzz{{|$%%&&''(100//..-`aabbcci%%&&''((00//..--11223344ppoonnmm 99332211UUTTSSRRpqqrrsst 98877665|}}~~())**++,-,,++**){{zzyyxijjkkllm))**++,,,,++**))~~}}55667788llkkjjii00//..--QQPONMLKtuuvvwwx !!""##$54433221,--..//0)((''&&%xwwvvuutmnnooppq--..//00((''&&%%||{{zzyy99::;;<>??@@ddccbbaa((''&&%%GFFEEDDC|}}~~())**++,-,,++**)~~}45566778! poonnmmluvvwwxxy55667788 ttssrrqqAABBCCDD``__^^]] $$##""!!CBBAA@@?,--..//0)((''&&%}||{{zzy899::;;<lkkjjiicyzz{{99::;;<<ppoonnmmEEFFGGHH\\[[ZZYY!!""##$$?>>==<<;01122334%$$##""!yxxwwvvu<==>>??@cbbaa``_==>>??@@llkkjjiiIIJJKKLLXXWWVVUU%%&&''((;::99876~~}45566778! uttssrrq@AABBCCD_^^]]\\[~AABBCCDDhhggffeeMMNNOOPPTTSSRRQQ))**++,,54332211}||{{zzy899::;;<qppoonnmDEEFFGGH [ZZYYXXW}|{{zzyyEEFFGGHH ddccbbaaQQRRSSTTPPOONNMM--..//00 00//..--yxxwwvvu<==>>??@mllkkjjiHIIJJKKL - - WVVUUTTSxxwwvvuuIIJJKKLL - - ``__^^]]UUVVWWXXLLKKJJII11223344 - - ,,++**))uttssrrq@AABBCCDihhggffeLMMNNOOP SRRQQKKJttssrrqqMMNNOOPP\\[[ZZYYYYZZ[[\\HHGGFFEE55667788 - - ((''&&%%qppoonnmDEEFFGGH eddccbbaPQQRRSSTJIIHHGGFppoonnmmQQRRSSTTXXWWVVUU]]^^__``DDCCBBAA99::;;<<$$##""!!mllkkjjiHIIJJKKL - - a``__^^]TUUVVWWXFEEDDCCBllkkjjiiUUVVWWXXTTSSRRQQaabbccdd@@??>>====>>??@@ ihhggffeLMMNNOOP ]\\[[ZZYXYYZZ[[\BAA@@??>hgfedccbYYZZ[[\\PPOONNMMeeffgghh<<;;::9988776655}}~~))**++,,?>>==<<;}~~)**++,,-,++**))(~~}}|56677889 onnmmllkvwwxxyyz66778899ssrrqqppBBCCDDEEggffeeddNNOOPPQQ!!""##gffeeddcNOOPPQQR[ZZYYXXWZ[[\\]]^ -=<<;;::9MLLKKJJI44332211--..//00 ;::99876-..//001(''&&%%$|{{zzyyx9::;;<<=kjjiiccbz{{::;;<<==oonnmmllFFGGHHII ccbbaa``RRSSTTUU$$%%&&'' cbbaa``_RSSTTUUVWVVUUTTS^__``aab - 93322110IHHGGFFE00//..--11223344 - - 5433221112233445$##""!! xwwvvuut=>>??@@Abaa``__^>>??@@AAkkjjiihhJJKKLLMM - - __^^]]\\VVWWXXYY(())**++ - - _^^]]\\[VWWXXYYZSRRQQPPObccddeef0//..--,EDDCCBBA,,++**))~~}}5566778800//..--~~}}|56677889 tssrrqqpABBCCDDE^]]\\[[Z~}|BBCCDDEEggffeeddNNOOPPQQ[[ZZYYXXZZ[[\\]],,--..// [ZZYYXXWZ[[\\]]^ -ONNMMLLKfgghhiij,++**))(A@@??>>=((''&&%%||{{zzyy99::;;<< ,,++**))|{{zzyyx9::;;<<=poonnmmlEFFGGHHI ZYYXXWWV{{zzyyxxFFGGHHII ccbbaa``RRSSTTUUWWVVUUTT^^__``aa00112233WVVUUTTS^__``aab - KJJIIHHGjkkllmmn(''&&%%$=<<;;::9$$##""!!xxwwvvuu==>>??@@ - - ((''&&%%xwwvvuut=>>??@@AlkkjjiihIJJKKLLM - - VUUTTSSRwwvvuuttJJKKLLMM - - __^^]]\\VVWWXXYYSSRRQQPPbbccddee99::;;<<SRRQQPPObccddeefGFFEEDDCnooppqqr$##""!!98877665 ttssrrqqAABBCCDD$$##""!!tssrrqqpABBCCDDEhggffeedMNNOOPPQRQQKKJJIssrrqqppNNOOPPQQ[[ZZYYXXZZ[[\\]] OONNMMLLffgghhii==>>??@@ -ONNMMLLKfgghhiijCBBAA@@?rssttuuv !!"54433221ppoonnmmEEFFGGHH poonnmmlEFFGGHHI dccbbaa`QRRSSTTUIHHGGFFEoonnmmllRRSSTTUUWWVVUUTT^^__``aa - - KKJJIIHHjjkkllmmAABBCCDD - KJJIIHHGjkkllmmn?>>==<<;vwwxxyyz"##$$%%&100//..-llkkjjiiIIJJKKLLlkkjjiihIJJKKLLM - - `__^^]]\UVVWWXXYEDDCCBBAkkjjiihgVVWWXXYYSSRRQQPPbbccddeeGGFFEEDDnnooppqqEEFFGGHHGFFEEDDCnooppqqr;::99887z{{||}}~&''(())*-,,++**)hhggffeeMMNNOOPP!!""hggffeedMNNOOPPQ\[[ZZYYXYZZ[[\\] A@@??>>=fedccbbaZZ[[\\]] OONNMMLLffgghhiiCCBBAA@@rrssttuuIIJJKKQQCBBAA@@?rssttuuv !!"76655443~*++,,--. )((''&&% ddccbbaaQQRRSSTT##$$%%&&dccbbaa`QRRSSTTUXWWVVUUT]^^__``a - - =<<;;::9a``__^^]^^__``aa - - KKJJIIHHjjkkllmm??>>==<>==<<;vwwxxyyz"##$$%%&3221100/.//00112 - - -%$$##""! - - ``__^^]]UUVVWWXX''(())** -`__^^]]\UVVWWXXYTSSRRQQPabbccdde 93322110]\\[[ZZYbbccddeeGGFFEEDDnnooppqq;;::9988zz{{||}}VVWWXXYY;::99887z{{||}}~&''(())*/..--,,+23344556 - ! \\[[ZZYYYYZZ[[\\++,,--.. - \[[ZZYYXYZZ[[\\] POONNMMLeffgghhi0//..--,YXXWWVVUffgghhiiCCBBAA@@rrssttuu !!77665544~~ZZ[[\\]] !!"76655443~*++,,--.+**))(('~~}}||{6778899:XXWWVVUU]]^^__``//001122XWWVVUUT]^^__``a - - LKKJJIIHijjkkllm,++**))(UTTSSRRQjjkkllmm??>>==<TTSSRRQQaabbccdd3399::;;TSSRRQQPabbccdde HGGFFEEDmnnooppq(''&&%%$QPONMLKKnnooppqq;;::9988zz{{||}}&&''(())//..--,,{{bbcciijj&''(())*/..--,,+23344556#""!! wvvuutts>??@@AABPPOONNMMeeffgghh<<==>>?? POONNMMLeffgghhiDCCBBAA@qrrssttu !$##""!!JJIIHHGGrrssttuu !!77665544~~**++,,--++**))((zzyyxxwwkkllmmnn*++,,--.+**))(('~~}}||{6778899:srrqqppoBCCDDEEF!!""# - - LLKKJJIIiijjkkll@@AABBCC - - LKKJJIIHijjkkllm@??>>==onnmmllkFGGHHIIJ#$$%%&&' - - HHGGFFEEmmnnooppDDEEFFGG HGGFFEEDmnnooppq<;;::998yzz{{||}%&&''(()BBAA@@??zz{{||}}&&''(())//..--,,22334455##""!! rrqqppoossttuuvv23344556#""!! wvvuutts>??@@AABkjjiihhgJKKLLMMN'(())**+ - - DDCCBBAAqqrrssttHHIIJJKKDCCBBAA@qrrssttu !87766554}~~)**++,,->>==<<;;~~**++,,--++**))((~~}}||66778899nnmmllkkwwxxyyzz6778899:srrqqppoBCCDDEEFgffeeddcNOOPPQQR+,,--../ @@??>>==uuvvwwxxQQRRSSTT@??>>==onnmmllkFGGHHIIJ cbbaa``_RSSTTUUV/0011223<<;;::99yyzz{{||UUVVWWXX<;;::998yzz{{||}%&&''(()0//..--,12233445 - - 4332211022334455##""!! wwvvuutt>>??@@AAaa``__^^>??@@AABkjjiihhgJKKLLMMN - - _^^]]\\[VWWXXYYZ399::;;< 88776655}}~~YYZZ[[\\ !87766554}~~)**++,,-,++**))(~~}}|566778890//..--,~~}}||66778899ssrrqqppBBCCDDEE]]\\[[ZZ~}|{BCCDDEEFgffeeddcNOOPPQQR[ZZYYXXWZ[[\\]]^<==>>??@!!""##$$44332211]]^^__``!""##$$%43322110-..//001(''&&%%$|{{zzyyx9::;;<<= -,++**))({{zzyyxx::;;<<==oonnmmllFFGGHHII YYXXWWVV{zzyyxxwFGGHHIIJ cbbaa``_RSSTTUUVWVVUUTTS^__``aab@AABBCCD %%&&''((00//..--aabbccii%&&''(()0//..--,12233445$##""!! xwwvvuut=>>??@@A - (''&&%%$wwvvuutt>>??@@AAkkjjiihhJJKKLLMM - - UUTTSSRRwvvuuttsJKKLLMMN - - _^^]]\\[VWWXXYYZSRRQQPPObccddeefDEEFFGGH !!""##$))**++,,,,++**)){{zzyyxxjjkkllmm)**++,,-,++**))(~~}}|56677889 tssrrqqpABBCCDDE$##""!! ssrrqqppBBCCDDEEggffeeddNNOOPPQQQQKKJJIIsrrqqppoNOOPPQQR[ZZYYXXWZ[[\\]]^ -ONNMMLLKfgghhiijHIIJJKKQ$%%&&''(--..//00((''&&%%wwvvuuttnnooppqq-..//001(''&&%%$|{{zzyyx9::;;<<=poonnmmlEFFGGHHIoonnmmllFFGGHHII ccbbaa``RRSSTTUUHHGGFFEEonnmmllkRSSTTUUVWVVUUTTS^__``aab - KJJIIHHGjkkllmmnQRRSSTTU())**++,11223344$$##""!!ssrrqqpprrssttuu12233445$##""!! xwwvvuut=>>??@@AlkkjjiihIJJKKLLMkkjjiihhJJKKLLMM - - __^^]]\\VVWWXXYYDDCCBBAAkjjiihgfVWWXXYYZSRRQQPPObccddeefGFFEEDDCnooppqqrUVVWWXXY,--..//055667788 oonnmmllvvwwxxyy56677889 tssrrqqpABBCCDDEhggffeedMNNOOPPQ!!""#ggffeeddNNOOPPQQ[[ZZYYXXZZ[[\\]] @@??>>==edccbbaaZ[[\\]]^ -ONNMMLLKfgghhiijCBBAA@@?rssttuuvYZZ[[\\]0112233499::;;<<kkjjiicczz{{9::;;<<=poonnmmlEFFGGHHI dccbbaa`QRRSSTTU#$$%%&&'ccbbaa``RRSSTTUUWWVVUUTT^^__``aa - - <<;;::99``__^^]]^__``aab - KJJIIHHGjkkllmmn?>>==<<;vwwxxyyz]^^__``a45566778==>>??@@bbaa``__=>>??@@AlkkjjiihIJJKKLLM - - `__^^]]\UVVWWXXY'(())**+ - -__^^]]\\VVWWXXYYSSRRQQPPbbccddee33221100\\[[ZZYYbccddeefGFFEEDDCnooppqqr;::99887z{{||}}~abbcciij899::;;>??@EEFFGGHH ZZYYXXWW|{{zzyyxEFFGGHHI dccbbaa`QRRSSTTUXWWVVUUT]^^__``a/0011223WWVVUUTT^^__``aa - - KKJJIIHHjjkkllmm++**))((TTSSRRQQjkkllmmn?>>==<<;vwwxxyyz"##$$%%&3221100/||{nooppqqr@AABBCCDIIJJKKLL - - VVUUTTSSxwwvvuutIJJKKLLM - - `__^^]]\UVVWWXXYTSSRRQQPabbccdde399::;;<SSRRQQPPbbccddeeGGFFEEDDnnooppqq''&&%%$$PONMLKKJnooppqqr;::99887z{{||}}~&''(())*/..--,,+{zzyyxxwrssttuuvDEEFFGGHMMNNOOPPRRQQKKJJtssrrqqpMNNOOPPQ\[[ZZYYXYZZ[[\\] POONNMMLeffgghhi<==>>??@ OONNMMLLffgghhiiCCBBAA@@rrssttuu !!##""!!JIIHHGGFrssttuuv !!"76655443~*++,,--.+**))(('wvvuuttsvwwxxyyyHIIJJKKLQQRRSSTTIIHHGGFFpoonnmmlQRRSSTTUXWWVVUUT]^^__``a - - LKKJJIIHijjkkllm@AABBCCD - - KKJJIIHHjjkkllmm??>>==<z{{||}}~&''(())*/..--,,+23344556#""!! onnmmllkuttssrrqPQQRRSSTYYZZ[[\\AA@@??>>gfedccbbYZZ[[\\] POONNMMLeffgghhiDCCBBAA@qrrssttuHIIJJKKQCCBBAA@@rrssttuu !!77665544~~**++,,-->==<<;;:~*++,,--.+**))(('~~}}||{6778899:kjjiiccbqppoonnmTUUVVWWX]]^^__`` - - ==<<;;::aa``__^^]^^__``a - - LKKJJIIHijjkkllm@??>>==>==<baa``__^mllkkjjiXYYZZ[[\aabbccdd 99332211]]\\[[ZZabbccdde HGGFFEEDmnnooppq<;;::998yzz{{||}UVVWWXXY;;::9988zz{{||}}&&''(())//..--,,22334455 - - 3322110023344556#""!! wvvuutts>??@@AAB^]]\\[[Zihhggffe\]]^^__`eeffgghh00//..--YYXXWWVVeffgghhiDCCBBAA@qrrssttu !87766554}~~YZZ[[\\] !!77665544~~**++,,--++**))((~~}}||66778899//..--,,~~}}||{6778899:srrqqppoBCCDDEEFZYYXXWWVeddccbba`aabbccdiijjkkll,,++**))UUTTSSRRijjkkllm@??>>==onnmmllkFGGHHIIJ VUUTTSSRa``__^^]deeffgghmmnnoopp((''&&%%QQPONMLKmnnooppq<;;::998yzz{{||}%&&''(()0//..--,{abbcciij&&''(())//..--,,22334455##""!! wwvvuutt>>??@@AA ''&&%%$$wvvuutts>??@@AABkjjiihhgJKKLLMMN - - RQQKKJJI]\\[[ZZYhiijjkklqqrrsstt $$##""!!KJJIIHHGqrrssttu !87766554}~~)**++,,-,++**))({zzyyxxwjkkllmmn**++,,--++**))((~~}}||66778899ssrrqqppBBCCDDEE##""!! srrqqppoBCCDDEEFgffeeddcNOOPPQQRIHHGGFFEYXXWWVVUlmmnnoopuuvvwwxx!!""##$$GFFEEDDCuvvwwxxy!""##$$%43322110-..//001(''&&%%$wvvuuttsnooppqqr..//0011''&&%%$${{zzyyxx::;;<<==oonnmmllFFGGHHIIonnmmllkFGGHHIIJ cbbaa``_RSSTTUUVEDDCCBBAUTTSSRRQpqqrrsstyyzz{{||%%&&''((CBBAA@@?yzz{{||}%&&''(()0//..--,12233445$##""!! srrqqpporssttuuv22334455##""!! wwvvuutt>>??@@AAkkjjiihhJJKKLLMMkjjiihhgJKKLLMMN - - _^^]]\\[VWWXXYYZA@@??>>=QPPOONNMtuuvvwwxxyybdQZ|H~fZdQbtvnXAJltf`vX`JXQfpvZp˂f`vXJXQrvnXp˂r`vXnے`JXQdrtA`vXnl|Zv`fbdQZ|nvprbtlnXv`rXQJ`nvpp`JXv`fXQJ`ےvpfr˂pJltvpfdQbt~HfpہdrtfH~ˑJtAdf~HbHAfH~Qr˂p~HfpېbHAZH~fZHAbbdQZ|H~flJtArvnXAJltf`vX|ZdQfpvZp˂f`vXZHAbvnXp˂r`vXnے`JXQdrtA`vXnd|Zv`frbdQZ|nvpbtlnXv`rXQJ`nvpے`JXv`f~fXQJ`ےvpfr˂pJltvpfdQbtQJHAdrtfH~JtArdf~HbHAfH~Qr˂ppvnbHAZH~fZHAbbdQZ|H~fl|ZdQZp˂AJltf`vX|ZdQfpvZp˂f`vX`JXQXv`fp˂r`vXnے`JXQdrtA`vXnbtlrXQJ`ۉbdQZ|nvpbtlnXv`rXQJ`nvpr˂p~HfXQJ`ےvpfr˂pJltvpfJtArdbHAdrtfH~JtArdf~HbHAfH~ZHAbpvnbHAZH~fZHAbbdQZ|H~f|ZdQZp˂AJltf`vX|ZdQfpvZp˂f`vX`JXQXv`fp˂r`vXnے`JXQdrtA`vXnbtlrXQJ`ۉbdQZ|nvpbtlnXv`rbdQZ|nvpr˂p`~fpvbdQZ|vpfr˂pJltvpf|ZdQbbHAdrtfH~JtArdf~HdrtfH~ˁJXQrnXv`drtAH~fZHAbbdQZ|H~ftlJZp˂AJltf`vX|ZdQfpvAJltf`vXbtl|f~HJlt`vXnے`JXQdrtA`vXntArdrXQJ`ۉbdQZ|nr˂pbtlnXv`bdQZ|nvpZdQbtfpvbdQZ|vpfr˂pJltvpf|ZdQbbHAdrtZHAbJtArdf~HdrtfH~ˉlJtnXv`drtAH~fZHAbbdQZ|H~ftl|Zp˂AJltے`JX|ZdQfpvAJltf`vXArd|f~fpJlt`vXnے`JXQdrtA`vXnZdQbtrXQJ`ۉbdQZ|Qr˂pbtlnXv`bdQZ|nvpZdQbtvnXbdQZ|vpfr˂pJltr˂plJtAbHAdrtZHAbJtArdf~HdrtfH~ˉl|v`fdrtAH~fZHAےbdQZ|`JXQrrd|Zp˂AJltے`JX|ZdQfpvAJltf`vXZdQbt~HfpJlt`vXn`JXQrdrtA˂pZZdQbtrXQJ`ۉbdQZ|Qr˂pbtlnXv`bdQZ|nvplJtAvnXbdQZ|vpfbtl|ZdQbJltHAbےl|ZbHAdrtZHAbJtArdfHdrtfH~rd|v`ffdrtAH~fJtAdtlJbdQZ|`JXQrdQbnXZp˂AJltے`JX|ZdQfpvAJltf`vXZdQbtpvnJlt`vXn|ZdQbtArddrtA˂p`v`f~rXQJ`ۉbdQZ|Qr˂pbtlnrXQJ`bdQZ|nvpl|ZdrXQJ`bdQZ|vpftlJ|ZdQbJltJXQrfpv㒐bHAdtAZHAbJtArdےHAdrtfH~QbtlےHAZdrtAH~ftArdtlJbdQZ|˂pZHAnXv`Zp˂Jltے`JX|ZdQZp˂AJltf`vXJtArdp˂rJlt`vXn|ZdQbtArddrtAbے`f~HrXQJ`bnvpQr˂pbtlrXQJ`ۉbdQZ|nvp|ZdXQJ`ےbdQZ|vpftlJ|ZdQbJltJXQrfpv㒐bHAfHˑZHAbJtArdbHAdrtfH~QbtlbHAZdrtAH~ftArdnXv`bdQZ|˂p`JnXv`fZp˂f`vXے`JX|ZdQZp˂AJltf`vX|ZdQp˂rJlt`vXn|ZdQbf~HdrtAXQr˂~fpvrXQJ`nvpQr˂pbtlrXQJ`ۉbdQZ|nvpbtlXQJ`ےbdQZ|vpftlJfpvJltpZHAbnXvbHAfH~ˑZHAbJtArdbHAdrtfH~JtArdbHAZdrtAH~ftArdnXv`bdQZ|ے`J`f~Zp˂f`vXے`JX|ZdQZp˂AJltf`vX|ZdQp˂rJlt`vXn|ZdQbf~H`vXnXQr˂HfpvrXQJ`nvpQr˂pbtlrXQJ`ۉbdQZ|nr˂pbtl|XQJ`ےbdQZ|r˂ptlJfpvvpfp`JXQnXvbHAfH~ˑZHAbJtArdbHAdrt`JXQZdQbtbHAZdrtAZHAbtArdnXv`H~fr˂p`f~fpZp˂f`vXے`JX|ZdQZp˂AJltr˂plJtp˂rJltے`JXQ|ZdQbf~H`vXnZHAbvnXrXQJ`nvpQr˂pbnXv`rXQJ`ۉbdQZ|ZHAbArd|XQJ`ےbdQZ|r˂ptlJfpvvpfے`JXQv`fbHAfH~ˑZHAbf~HbHAdrt`JXQZdQbtbHAZdrtAZHAbtArdnXv`H~fr˂p~HfpZp˂f`vXے`JXfpvZp˂AJltr˂p`l|p˂rJltے`JXQ|ZdQbf~H`vXn`JXQrvnXrbdQZ|nvpQr˂pnXv`rXQJ`ۉbdQZ|JXQrZdQbnXXQJ`ےbdQZ|r˂ptlJfpvvpf˂pZv`f~drtfH~ˑZHAbf~HbHAdrt˂pZHv`f~bHAZdrtAZHAbtArdnXv`H~fHAbےfpvAJltf`vXے`JXfpvZp˂AJltAbے`fpvp˂rJltے`JXQ|ZdQbf~H`vXn`JXQrnXv`bdQZ|nvpQr˂pnXv`rXQJ`ۉbdQZ|JXQrnXv`XQJ`ےbdQZ|r˂ptlJfpvvpf˂p|f~HdrtfH~ˑZHAbf~HbHAdtA˂p`f~HbHAZdtAJZHAbtArdnXv`H~fZdQbtfpvAJltf`vXے`JXfpvZp˂JltJXQrfpvp˂rltbے`JXQ|ZdQbf~H`vXnlJtAnXv`bdQZ|nvpQr˂pnXv`rXQJ`bnvppZHAnXv`XQJ`ےnvpr˂ptlJfpvvpfrd|f~fpہdrtfH~ˑZHAۍf~HbHAfHbے`f~fpېbHAZfHfZHAbtArdnXv`f~HbHAZH~fHAbےvnXbHAZp~f`ZHAbf~HbHAZpdrtAJXQrZdQbtbHAZpdrtAJHAbےrd|~HfdrtAJ~f`l|ZdQf~HrtAJl~f`Aے`~HfpbHAZp˅f`Qr˂pf۝`vfpvp˂r`vXn`JXQrv`f~˂rvXn`JXQfpv˂rXJlt˂p`l|Zd˂rXQltb`JXQrZdQbtpvnltbvXnbtlfpvtbdvXnJXQrbtvnXrXQvXnۑ`JXQXnvˍnXv`bdQZ|vpf˂p`fpvbdQZ|vpfHr˂pnXv`QJ`ےbdQZ|JXQrQbnXJ`ےdQZ|˂pZlJtAXv`fdQZ|vpfHJtArdnXv`QZ|dvpfHlJtv`fJ`ےvpfHr˂ppfH~f~HdrtAH~fJXQrbnXv`drtA~f`ZHAbf~HbHAZpdrtApZHAv`f~fbHAZpdrtAJHAbےrd|HfpdrtAJ~f`|ZdQffpۙrtAJl~f`Ad|~HfpbHAZp~f`ZHAbېf۝`vfpvJlt`vXntl|f~HJltvXn`JXQfpv˂rXJltbے`pvn˂rXQltb`JXQrZdQbtvnrltbvXnbtlvnrXtbdvXnZdQbtvnXrXQvXnے`JXQXnvˍnXv`bdQZ|vpfZdQbtfpvbdQZ|vpfHr˂pnXv`QJ`ےbdQZ|JXQrXv`fJ`ےdQZ|˂pZlJtAXQJ`ےdQZ|vpfH|ZdQbQJ`ےQZ|dvpfHlJtAv`fJ`ےvpfHr˂p`pfH~f~HdrtAH~flJtAnXv`drtA~f`ZHAbf~HbHAZpdtAJlp`JX~HfbHAZpdtAJlHAbےrd|HAZpdrtAJ~f`tlJHAZp˙rtAJl~f`rd|~HfpbHAZp~f`JXQrf۝`vfpvJlt`vXnrd|f~fpJltvXn`JXQfpv˂rXtbQr˂ppvn˂rXQtbn`JXQrZdQbt˂rXQltbvXntArdrXQtbdvXnZdQbtvnXrXQvXnۉ˂pZHXnvˍnXv`bdQZ|vpfZdQbtvnXbdQZ|vpfHr˂pnXv`QJ`ےnvpZHAbXv`fJ`ےvpf˂pZlJtAJ`ےdQZ|vpfH|ZdQbJ`ےQZ|dvpfHlJtAv`fJ`ےvpfHAbے`pfH~f~HdrtAH~fl|Zv`fdrtA~f`ZHAے`f~HbHAZpfHf`ے`JX~fpvbHAZpHf`HAbےrd|bHAZpdrtAJ~f`tl|bHAZp˙rtAJl~f`rd|~HfpbHAZp~f`JXQrf۝`vfpvJlt`vXndQbt~HfpJltvXnJXQrfpv˂rXvXnQr˂pnXv`˂rXQvXn`JXQrZdQbt˂rXQltbvXnZdQbtrXQtbdvXnZdQbtvnXrbdvXnۉ˂p`ZXnvˍnXv`bdQZ|vpflJtArvnXbdQZ|vpfHbtlnXv`QJ`ےvpfH`JXQf~HJ`ےvpfH˂pZlJtAJ`ےdQZ|vpfHlJtAJ`ےQZ|dvpfHlJtAv`fQZ|dvpfHQXb㉀pfH~fHfdrtAH~fd|Zv`ffpdrtA~f`JtAd|f~HbHAZp~f`r˂pfpvbHAZp~f`HAbےrd|bHAZpdrtAJ~f`rd|bHAZp˙rtAJl~f`rd|~HfprtAJl~f`ۑpJAHrf۝`vpvnJlt`vXndQbt璝vnJltvXnZdQbtfpv˂rXvXnZHAbۅnXv`˂rXQvXn`JXQrZdQbt˂rXQltbvXnrZdQbtrXQtbdvXnrZdQbtvnXtbdvXn󙐂ˁ`ZXnvˍrXQJ`bdQZ|vpfl|ZdQrXQJ`bdQZ|vpfHlJtnXv`QJ`ےvpfH`JXQf~fpJ`ےvpfH˂pZlJtAJ`ےdQZ|˂p`l|ZJ`ےQZ|d˂pZHlJtAv`fQZ|dvpfHQXb㉀pfH~ےHAZdrtAH~fbtlHAZpdrtA~f`Ard|f~HbHAZp~f`r˂p`vnXbHAZp~f`HAbےrd|bHAZpdrtAJJXQrdQbtbHAZp˙rtAJlAbے`rd|~HfprtAJl~f`ۑp`ZQf۝`vp˂rJlt`vXnJtArd˂rXJltvXnZdQbtfpv˂rXvXnJXQrv`f˂rXQvXn`JXQrZdQbn˂rXQltb˂pZHAlJtArrXQtbdJXQrZdQbtvnXtbdvXnXb㉀ۑXnvˍXQJ`ےbdQZ|vpf|ZdQQJ`ےbdQZ|vpfHlJtnXv`QJ`ےvpfH˂pZH~HfpJ`ےvpfH˂pZXv`fJ`ےdQZ|bے`d|ZJ`ےQZ|d˂pZHlJtAv`fQZ|dvpfHpJAHrp|drbHAZdrtAH~fbtlbHAZpdrtA~f`Ard|f~HbHAZp~f`Abے`vnXbHAZp~f`HAbے~HfbHAZpdrtAJJXQrdQbtbHAZp˙rtAJlAbے`rd|~HfprtAJl~f`ˁ`ZQQtJlp˂rJlt`vXn|ZdQb˂rXJltvXnZdQbtfpv˂rvXnJXQrv`f~˂rbvXn`JXQrpvn˂rXQltb˂p`Jl|ZdQrXQtbdJXQrZdQbtvnXtbdvXnXb㉀ۑtbAdZXQJ`ےbdQZ|vpftlJQJ`ےbdQZ|vpfHlJtnXv`bdQZ|vpfH˂p`fpvdQZ|vpfH˂pZXv`fJ`ےdQZ|XQr˂bnXvJ`ےQZ|d˂pZHlJtAv`fQZ|dvpfHp`ZQXb|drbHAZdrtAH~ftArdbHAZpdrtA~f`Ard|f~HdrtA~f`JXQrbtnXv`drtAJ~f`HAbے~HfbHAZpdrtAJpZHAb`f~fpbHAZp˙rtAJlAbے`rd|HfpۙrtAJl~f`㉀ۑpJQtJlp˂rJlt`vXn|ZdQb˂rXJltvXnZdQbtfpvJltvXnl|f~HltbvXn`JXQrpvn˂rXQltbے`JvnXrXQtbdJXQrZdQbtvnrXtbdvXnAHr󙐂tbAdZXQJ`ےbdQZ|r˂ptl|QJ`ےbdQZ|r˂plJtnXv`bdQZ|vpfHZdQbtfpvdQZ|vpfH˂pZXv`fJ`ےdQZ|XQr˂v`fJ`ےQZ|d˂pZHlJtAQJ`ےQZ|dvpfHˁ`ZQXb|drbHAZdrtA`JXQrZdQbtbHAZpdrtAZHAbArd|f~HdrtA~f`lJtAnXv`fdrtAJ~f`HAbے~HfbHAZpdtAJlp`JXQ~HfpbHAZp˙tAJlAbے`rd|HAZp˙rtAJl~f`㉀ۑpQtJlp˂rJlt˂pZlJtA˂rXJlt`JXQZdQbtfpvJltvXnrd|~fpvltbvXn`JXQrpvn˂rXQtbnr˂pvnXrXQtbnJXQrZdQbt炀rXQtbdvXn`ZQXbtbAdZXQJ`ےbdQZ|HAbےrd|QJ`ےbdQZ|r˂plJtnXv`bdQZ|vpfHZdQbt瀅nXvdQZ|vpfH˂pZXv`fJ`ےvpfZHAbv`f~J`ےvpfH˂pZHlJtAJ`ےQZ|dvpfHۑpJA|drbHAZdrtA`JXQrZdQbtbHAZpdrtAZHAbArd|f~HdrtA~f`l|Zd`f~drtAJ~f`HAے`~HfbHAZpHf`ے`JXQfpvbHAZp˅f`Abے`rd|bHAZp˙rtAJl~f`Hr󙐂ˁQtJlp˂rJlt˂p`l|Z˂rXJlt`JXQZdQbtfpvJltvXnQbtlHfpvltbvXnJXQrbpvn˂rXQvXnr˂pnXv`rXQvXnہJXQrZdQbt炀rXQtbdvXn`ZQXbtbAdZXQJ`ےbdQZ|JXQrdQbnXQJ`ےbdQZ|r˂plJtnXv`bdQZ|vpfHJtArdnXvdQZ|vpfHtlJXv`fJ`ےvpfH`JXQrf~HJ`ےvpfH˂pZHlJtAJ`ےQZ|dvpfHۑp`Z|drbHAZdrtA˂pZHAv`f~bHAZpdrtAZHAbArd|fHfpdrtA~f`|Zd`ffpdrtAJ~f`tAd|~HfbHAZp~f`˂pZfpvbHAZp~f`Abے`rd|bHAZp˙rtAJl~f`QXb㉀QtJlp˂rJltbے`fpv˂rXJlt`JXQZdQbtvnJltvXnQbtlvnrltbvXnZdQbtpvn˂rXQvXnHAbےnXv`rXQvXnہJXQrZdQbt炀rXQtbdvXnے`ۑpJAHrtbAdZXQJ`ےbdQZ|JXQrnXv`QJ`ےbdQZ|r˂plJtrXQJ`bdQZ|vpfH|ZdQXQJ`ےdQZ|vpfHlJtAXv`fJ`ےvpfH`JXQrf~fpJ`ےvpfH˂pZHlJtAJ`ےQZ|dJXQr󙐂ˁ`Z|drbHAZdtAJ˂p`Jf~HbHAZpdtAJlZHAbArd|HAZpdrtA~f`btlHAZpdrtAJ~f`rd|~HfbHAZp~f`˂p`vnXbHAZp~f`Abے`rd|bHAZp˙rtAJl˂pZHQXb㉀QtJlp˂rltbXQr˂fpv˂rXtb`JXQZdQbt˂rXJltvXnJtArd˂rXQltbvXnZdQbtpvn˂rXQvXnJXQrv`f󂀉rXQvXnہJXQrZdQbnXrXQtbdAbے`XnvˍtbAdZXQJ`ےnvppZHAbnXv`fQJ`ےnvpr˂plJtQJ`ےbdQZ|vpfH|ZdQJ`ےdQZ|vpfHlJtAXv`fJ`ےvpfH˂pZHA~HfpJ`ےvpfH˂pZHv`fJ`ےQZ|dJXQrpfH~|drbHAZfHfے`J~fpvbHAZpfHf`ZHAbArd|bHAZpdrtA~f`btl|bHAZpdrtAJ~f`rd|~HfbHAZp~f`bے`vnXbHAZp~f`Abے`~HfpbHAZp˙rtAJl˂p`f۝`vQtJlp˂r`vXnXQr˂nXv˂rXvXn`JXQZdQbt˂rXJltvXnZdQbt˂rXQltbvXnZdQbtpvn˂rbvXnJXQrv`f~frbdvXnہJXQrvnXrXQtbdJXQrXnvˍtbAdZXQJ`ےvpfp`JXQ`f~QJ`ےvpfHr˂plJtQJ`ےbdQZ|vpfHlJtJ`ےdQZ|vpfHlJtAXv`fdQZ|vpfH˂p`JpvnQZ|dvpfH˂pZHv`fJ`ےQZ|dpZHApfH~|drbHAZH~fr˂pHfpvbHAZp~f`ZHAbArd|bHAZpdrtA~f`Ard|bHAZpdrtAJ~f`rd|~HfdrtAJ~f`XQrbtXv`frtAJl~f`Abے`~HfpbHAZp˙rtAJlbے`f۝`vQtJlp˂r`vXnZHAbnXv˂rXvXn`JXQZdQbt˂rXJltvXnZdQbt˂rXQltbvXnrZdQbtpvnltbvXnl|Z~HftbdvXnہJXQrvnXrXQtbdJXQrXnvˍtbAdZXQJ`ےvpfے`JXQ`f~fpQJ`ےvpfHr˂plJtQJ`ےbdQZ|r˂p`l|J`ےdQZ|˂pZlJtAXv`fdQZ|vpfHdQbtpvnQZ|dvpfH˂pZHv`fJ`ےQZ|dp`JXpfH~|drbHAZH~fr˂pvnXbHAZp~f`ZHAbArd|bHAZpdrtAJXQrZdQbtbHAZpdrtAJHAbےrd|~HfdrtAJ~f`lJtArXv`frtAJl~f`Abے`~HfpbHAZp˙tAJlQr˂pf۝`vQtJlp˂r`vXn`JXQrv`f˂rXvXn`JXQZdQb˂rXJlt˂pZHlJtA˂rXQltb`JXQrZdQbtpvnltbvXnd|Z~fpvtbdvXnہJXQrvnXrXQtbnZHAbXnvˍtbAdZXQJ`ےvpf˂pZ~HfpQJ`ےvpfHr˂pnXv`QJ`ےbdQZ|Abے`rd|J`ےdQZ|˂pZlJtAXv`fdQZ|vpfHdQbt璅nXv`QZ|dvpfH˂pZHv`fJ`ےvpfHے`JXpfH~|drQt}~~-------------------.......................... \ No newline at end of file diff --git a/vendor/endroid/qr-code/assets/data/qrv29_3.dat b/vendor/endroid/qr-code/assets/data/qrv29_3.dat deleted file mode 100755 index 5670535c8..000000000 --- a/vendor/endroid/qr-code/assets/data/qrv29_3.dat +++ /dev/null @@ -1,265 +0,0 @@ -{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststqpopopopmnmnmnmnklklklklijijijijghghghghcccccdcdbabababa`_`_`_`_^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPO{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststopopopopmnmnmnmnklklklklijijijijghghghghcdcdcdcdbabababa`_`_`_`_^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPOLKLKLKLK{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststopopopopmnmnmnmnklklklklijijijijghghghghcdcdcdcdbabababa`_`_`_`_^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPOLKLKLKLK{|{|{|{{yzyzyzyzwxwxwxwxuvuvuvuvststststopopopopmnmnmnmnklklklklijijijijghghghghcdcdcdcdbabababa`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPONMLKLKLKLK{{{{|{|{yzyzyzyzwxwxwxwxuvuvuvuvststststopopopopmnmnmnmnklklklklijijijijghghghghcdcdcdcdbabababa`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQNMNMNMNMLKKKKKKL|{|{|{|{yzyzyzyzwxwxwxwxuvuvuvuvsrqrqrqropopopopmnmnmnmnklklklklijijijijghghghgfcdccccccbabababa`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQNMNMNMNMKLKLKLKL|{|{|{|{yzyzyzyzwxwxwxwxuvuvuvuvqrqrqrqropopopopmnmnmnmnklklklklijijijijefefefefdcdcdcdcbabababa`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQNMNMNMNMKLKLKLKL|{|{|{|{yzyzyzyzwxwxwxwxuvuvuvuvqrqrqrqropopopopmnmnmnmnklklklklijijijijefefefefdcdcdcdcbabababa`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQNMNMNMNMKLKLKLKL|{|{|{|{yzyzyzyzwxwxwxwxuvuvuvuvqrqrqrqropopopopmnmnmnmnklklklklijijijijefefefefdcdcdcdcbabababa`_`_`_`_\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQNMNMNMNMKLKLKLKL|{{{{{{|yzyzyzyzwxwxwxwxuvuvuvuvqrqrqrqropopopopmnmnmnmnklklklklijijijijefefefefdcdcdcdcbabababa`_`_`_`_\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQNMNMNMNMKLKLKKKK~}{|{|{|{|yzyzyzyzwxwxwxwxutstststqrqrqrqropopopopmnmnmnmnklklklklijijijijefefefefdcdcdcccbabababa`_`_`_`_\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQNMNMNMNMKKLKLKLK~}~}~}~}{|{|{|{|yzyzyzyzwxwxwxwxststststqrqrqrqropopopopmnmnmnmnklklklklijijijijefefefefcccdcdcdbabababa`_`_`_`_\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQNMNMNMNMLKLKLKLK~}~}~}~}{|{|{|{|yzyzyzyzwxwxwxwxststststqrqrqrqropopopopmnmnmnmnklklklklijijijijefefefefcdcdcdcdbabababa`_`_`_`_\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQNMNMNMNMLKLKLKLK~}~}~}~}{|{|{|{|yzyzyzyzwxwxwxwxststststqrqrqrqropopopopmnmnmnmnklklklklijijijijefefefefcdcdcdcdbabababa^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQNMNMNMNMLKLKLKLK~}~}~}~}{|{|{{{{yzyzyzyzwxwxwxwxststststqrqrqrqropopopopmnmnmnmnklklklklijijijijefefefefcdcdcdcdbabababa^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQNMNMNMNMLKLKLKLK~}~}~}~}{{|{|{|{yzyzyzyzwvuvuvuvststststqrqrqrqropopopopmnmnmnmnklklklklijijijijefefefefcdcdcdcdbabababa^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQNMNMNMNMKKKKKLKL~}~}~}~}|{|{|{|{yzyzyzyzuvuvuvuvststststqrqrqrqropopopopmnmnmnmnklklklklijijijijefefefefccccccdcbabababa^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSPOPOPOPONMNMNMNMKLKLKLKL~}~}~}~}|{|{|{|{yzyzyzyzuvuvuvuvststststqrqrqrqropopopopmnmnmnmnklklklklijijijijefefefefdcdcdcdcbabababa^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSPOPOPOPONMNMNMNMKLKLKLKL~}~}~}~}|{|{|{|{yzyzyzyzuvuvuvuvststststqrqrqrqropopopopmnmnmnmnklklklklihghghghefefefefdcdcdcdc`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSPOPOPOPONMNMNMNMKLKLKLKL~}~}~}~}|{|{|{|{yzyzyzyzuvuvuvuvststststqrqrqrqropopopopmnmnmnmnklklklklghghghghefefefefdcdcdcdc`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSPOPOPOPONMNMNMNMKLKLKLKL~}~}~}~}{{{{{|{|yxwxwxwxuvuvuvuvststststqrqrqrqropopopopmnmnmnmnklklklklghghghghefefefefdcdcdcdc`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSPOPOPOPONMNMNMNMKLKKKKKL~}~}~}~}{|{|{|{|wxwxwxwxuvuvuvuvststststqrqrqrqropopopopmnmnmnmnklklklklghghghghefefefefdcdccccc`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVURQRQRQRQPOPOPOPONMNMNMNMKLKLKLKJ~}~}~}~}{|{|{|{|wxwxwxwxuvuvuvuvststststqrqrqrqropopopopmnmnmnmnklklklklghghghghefefefefdcdcdcdc`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVURQRQRQRQPOPOPOPONMNMNMNMIJIJIJIJ~}~}~}~}{|{|{|{|wxwxwxwxuvuvuvuvststststqrqrqrqropopopopmnmnmnmnkjijijijghghghghefefefefbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVURQRQRQRQPOPOPOPONMNMNMNMIJIJIJIJ~}~}~}~}{|{|{|{|wxwxwxwxuvuvuvuvststststqrqrqrqropopopopmnmnmnmnijijijijghghghghefefefefbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVURQRQRQRQPOPOPOPONMNMNMNMIJIJIJIJ~}~}~}~}{|{|{|{ywxwxwxwxuvuvuvuvststststqrqrqrqropopopopmnmnmnmnijijijijghghghghefefefefbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVURQRQRQRQPOPOPOPONMNMNMNMIJIJIJIJ~}~}~}~}yyyyyzyzwxwxwxwxuvuvuvuvststststqrqrqrqropopopopmnmnmnmnijijijijghghghghefefefefbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMIJIJIJIJ~}~}~}~}yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqropopopopmnmnmnmnijijijijghghghghefefefefbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMIJIJIJIJ~}~}~}~}yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqropopopopmlklklklijijijijghghghghefefefefbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMIJIJIJIJ~}~}~}~}yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqropopopopklklklklijijijijghghghghefefefefbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWTSTSTSTSRQRQRQRQPOPOPOPONMNMLKLKIJIJIJIJ~}~}~}~}yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqropopopopklklklklijijijijghghghghefefefefbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWTSTSTSTSRQRQRQRQPOPOPOPOLKLKKKKKIJIJIJIJ~}~}~}~}yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqropopopopklklklklijijijijghghghghefefedcdbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPOKLKLKLKLIJIJIJIJ~}~}~}~}yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqropopopopklklklklijijijijghghghghcdcdccccbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPOKLKLKLKLIJIJIJIJ~}~}~}~}yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqronmnmnmnklklklklijijijijghghghghccdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPOKLKLKLKLIJIJIJIJ~}~}~}~}yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqrmnmnmnmnklklklklijijijijghghghghdcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPOKLKLKLKLIJIJIJIJ~}~}|{|{yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqrmnmnmnmnklklklklijijijijghghghghdcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPOKLKLKLKKIJIJIJIJ|{|{{{{{yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqrmnmnmnmnklklklklijijijijghghghghdcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPOKKKKLKLKIJIJIJIJ{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqrmnmnmnmnklklklklijijijijghghghghdcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPOLKLKLKLKIJIJIJIJIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:7878787834343434212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!       - - - -IJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:7878787834343434212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!     - - - -IJIJIJIJGHGHGHGHEFEFEFEFABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:7878765633333343212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!     - - - -IJIJIJIJGHGHGHGHEFEFEFEFABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:5656565643434343212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!     - - - -IJIJIJIJGHGHGHGHEFEFEFEFABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:5656565643434343212121210/0/0/0/.-.-.-,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!     - - - -IJIJIJIJGHGHGHGHEFEFEFEFABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:5656565643434343212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!     - - - -IJIJIJIJGHGHGHGHEFEFEFEDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:5656565643434343212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!     - - - -IJIJIJIJGHGHGHGHCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:5656565643433333212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!     - - - -IJIJIJIJGHGHGHGHCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:5656565634343434212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!     - - - -IJIJIJIJGHGHGHGHCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:5656565634343434212121210/0/0/.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!     - - - -IJIJIJIJGHGHGHGHCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:565656563434343421212121.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!     - - IJIJIJIJGHGHGHGFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:565656563434343421212121.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!     IJIJIJIJEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:565656563434343321212121.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!      IJIJIJIJEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:565656563333434321212121.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#         IJIJIJIJEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9856565656434343432121210/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#         IJIJIJIJEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<7878787856565656434343430/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#         - -IJIJIJIHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<7878787856565656434343430/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#         - - - -GHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<7878787856565656434343430/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#"!         - - - -GHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<7878787856565656433333430/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%"!"!"!"!         - - - -GHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;:7878787856565656434343210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%"!"!"!"!         - - - -GHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>9:9:9:9:7878787856565656212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%"!"!"!"!       - - - -GHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>9:9:9:9:7878787856565656212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%"!"!"!"!     - - - -GHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>9:9:9:9:7878787856565656212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%$#"!"!"!"!     - - - -GHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>9:9:9:9:7878787856565656212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!     - - - -GHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=<9:9:9:9:7878787856565656212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!     - - - -GHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@;<;<;<;<9:9:9:9:7878787856565656212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!      - - - -GHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@;<;<;<;<9:9:9:9:7878787856565656212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!         - - - -GHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@;<;<;<;<9:9:9:9:7878787856565656212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('&%$#$#$#$#"!"!"!"!         - - - -GHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@;<;<;<;<9:9:9:9:7878787856543434212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"!         - - - -GHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?>;<;<;<;<9:9:9:9:7878787834333333212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"!         - - - -GHGHGHGHEFEFEFEFCDCDCDCDABABABAB=>=>=>=>;<;<;<;<9:9:9:9:7878787843434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"!         - - - -GHGHGHGHEFEFEFEFCDCDCDCDABABABAB=>=>=>=>;<;<;<;<9:9:9:9:7878787843434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"!         - - - -GHGHGHGHEFEFEFEFCDCDCDCDABABABAB=>=>=>=>;<;<;<;<9:9:9:9:7878787843434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -GHGHGHGHEFEFEFEFCDCDCDCDABABABAB=>=>=>=>;<;<;<;<9:9:9:9:7878787843434343212121210/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -GHGHGHGHEFEFEFEFCDCDCDCDABABABA@=>=>=>=>;<;<;<;<9:9:9:9:7878787843434333212121210/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -GHGHGHGHEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:7878787833343434212121210/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -GHGHGHGHEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:7878787834343434212121210/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -GHGHGHGHEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:7878787834343434212121210/0/0/0/.-.-.-.-,+,+,+*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -%%&&''((==<<;;::xwwvvuut45566778=<<;;::9\]]^^__`]\\[[ZZY<==>>??@!hgfedccb==>>??@@44332211eeffgghh - - ||{{zzyy TTSSRRQQEEFFGGHH~~}}))**++,,99332211tssrrqqp899::;;<98877665`aabbccd ~~}YXXWWVVU@AABBCCDbaa``__^AABBCCDD00//..--iijjkkllxxwwvvuu!!""##$$PPOONNMMIIJJKKLL ]]\\[[ZZ||{{zzyy--..//0000//..--poonnmml<==>>??@54433221deeffggh - - }||{{zzy UTTSSRRQDEEFFGGH^]]\\[[ZEEFFGGHH,,++**))mmnnooppttssrrqq%%&&''((LLKKJJIIMMNNOOPP - - YYXXWWVVxxwwvvuu11223344,,++**))lkkjjiih@AABBCCD100//..-hiijjkkl yxxwwvvu !!""##$QPPOONNMHIIJJKKL ZYYXXWWVIIJJKKLL((''&&%%qqrrssttppoonnmm))**++,,HHGGFFEEQQRRSSTTUUTTSSRRttssrrqq55667788((''&&%%gfedccbbDEEFFGGH-,,++**)lmmnnooputtssrrq$%%&&''(MLLKKJJILMMNNOOP - - VUUTTSSRMMNNOOPP$$##""!!uuvvwwxxllkkjjii--..//00DDCCBBAAUUVVWWXX QQPONMLKppoonnmm99::;;<<$$##""!!aa``__^^HIIJJKKL)((''&&%pqqrrsstqppoonnm())**++,IHHGGFFEPQQRRSSTRQQPONMLQQRRSSTT yyzz{{|| - - hhggffee11223344@@??>>==YYZZ[[\\ - - KJJIIHHGllkkjjii==>>??@@]]\\[[ZZLMMNNOOP%$$##""!tuuvvwwxmllkkjji,--..//0EDDCCBBATUUVVWWX KKJJIIHHUUVVWWXX}}~~ ddccbbaa55667788<<;;::99]]^^__``GFFEEDDChhggffeeAABBCCDDYYXXWWVVPQQRRSST! xyyzz{{| - - ihhggffe01122334A@@??>>=XYYZZ[[\ - - GGFFEEDDYYZZ[[\\``__^^]]99::;;<<88776655aabbccddCBBAA@@?ddccbbaaEEFFGGHHUUTTSSRRTUUVVWWX|}}~~ eddccbba45566778=<<;;::9\]]^^__` CCBBAA@@]]^^__``\\[[ZZYY==>>??@@44332211eeffgghh?>>==<<;``__^^]]IIJJKKLL QQPONMLKXYYZZ[[\a``__^^]899::;;<98877665`aabbccd??>>==<>??@54433221deeffggh;;::9987eeffgghh - - ||{{zzyy TTSSRRQQEEFFGGHH,,++**))mmnnoopp##$$%%&&54332211XXWWVVUUQQRRSSTT - - GFFEEDDC`aabbccd ~~}YXXWWVVU@AABBCCD100//..-hiijjkkl!!"65433221iijjkkllxxwwvvuu!!""##$$PPOONNMMIIJJKKLL((''&&%%qqrrsstt''(())**00//..--TTSSRRQQUUVVWWXXCBBAA@@?deeffggh - - }||{{zzy UTTSSRRQDEEFFGGH-,,++**)lmmnnoop"##$$%%&100//..-mmnnooppttssrrqq%%&&''((LLKKJJIIMMNNOOPP$$##""!!uuvvwwxx++,,--..,,++**))PPOONNMMYYZZ[[\\?>>==<<;hiijjkkl yxxwwvvu !!""##$QPPOONNMHIIJJKKL)((''&&%pqqrrsst&''(())*-,,++**)qqrrssttppoonnmm))**++,,HHGGFFEEQQRRSSTT yyzz{{||//001122((''&&%%LLKKJJII]]^^__``;::99876lmmnnooputtssrrq$%%&&''(MLLKKJJILMMNNOOP%$$##""!tuuvvwwx*++,,--.)((''&&%uuvvwwxxllkkjjii--..//00DDCCBBAAUUVVWWXX}}~~3399::;;$$##""!!HHGGFFEEaabbccdd!!""54332211pqqrrsstqppoonnm())**++,IHHGGFFEPQQRRSST! xyyzz{{|.//00112%$$##""!yyzz{{|| - - hhggffee11223344@@??>>==YYZZ[[\\<<==>>?? DDCCBBAAeeffgghh##$$%%&&00//..--tuuvvwwxmllkkjji,--..//0EDDCCBBATUUVVWWX|}}~~23399::;! }}~~ ddccbbaa55667788<<;;::99]]^^__``@@AABBCC@@??>>==iijjkkll''(())**,,++**))xyyzz{{| - - ihhggffe01122334A@@??>>=XYYZZ[[\;<<==>>?``__^^]]99::;;<<88776655aabbccdd {{zzyyxxDDEEFFGG<<;;::99mmnnoopp++,,--..((''&&%%|}}~~ eddccbba45566778=<<;;::9\]]^^__`?@@AABBC\\[[ZZYY==>>??@@44332211eeffgghh - - wwvvuuttHHIIJJKK88776655qqrrsstt//001122$$##""!!a``__^^]899::;;<98877665`aabbccd {{zzyyxCDDEEFFG~~}}XXWWVVUUAABBCCDD00//..--iijjkkllssrrqqppQQRRSSTT -44332211uuvvwwxx3399::;; ]\\[[ZZY<==>>??@54433221deeffggh - - xwwvvuutGHHIIJJK ||{{zzyy TTSSRRQQEEFFGGHH,,++**))mmnnooppoonnmmllUUVVWWXX - 00//..--yyzz{{||<<==>>??~~}YXXWWVVU@AABBCCD100//..-hiijjkkl tssrrqqpKQQRRSST - - xxwwvvuu!!""##$$PPOONNMMIIJJKKLL((''&&%%qqrrssttkkjjiiccYYZZ[[\\,,++**))}}~~@@AABBCC}||{{zzy UTTSSRRQDEEFFGGH-,,++**)lmmnnooppoonnmmlTUUVVWWXttssrrqq%%&&''((LLKKJJIIMMNNOOPP$$##""!!uuvvwwxxbbaa``__]]^^__``((''&&%%DDEEFFGGyxxwwvvu !!""##$QPPOONNMHIIJJKKL)((''&&%pqqrrsstlkkjjiicXYYZZ[[\ppoonnmm))**++,,HHGGFFEEQQRRSSTT yyzz{{|| - - ^^]]\\[[aabbccii $$##""!!HHIIJJKK -uttssrrq$%%&&''(MLLKKJJILMMNNOOP%$$##""!tuuvvwwxcbbaa``_\]]^^__`llkkjjii--..//00DDCCBBAAUUVVWWXX}}~~ ZZYYXXWWjjkkllmm - - {{zzyyxxQQRRSSTT - qppoonnm())**++,IHHGGFFEPQQRRSST! xyyzz{{| - - _^^]]\\[`aabbcci - - hhggffee11223344@@??>>==YYZZ[[\\VVUUTTSSnnooppqq wwvvuuttUUVVWWXXmllkkjji,--..//0EDDCCBBATUUVVWWX|}}~~ [ZZYYXXWijjkkllm ddccbbaa55667788<<;;::99]]^^__``RRQQKKJJrrssttuussrrqqppYYZZ[[\\ - - ihhggffe01122334A@@??>>=XYYZZ[[\WVVUUTTSmnnooppq``__^^]]99::;;<<88776655aabbccdd ~~}}IIHHGGFFvvwwxxyyoonnmmll]]^^__`` eddccbba45566778=<<;;::9\]]^^__`SRRQQKKJqrrssttu\\[[ZZYY==>>??@@44332211eeffgghh - - ||{{zzyy EEDDCCBBzz{{ kkjjiiccaabbcciia``__^^]899::;;<98877665`aabbccd ~~}JIIHHGGFuvvwwxxyXXWWVVUUAABBCCDD00//..--iijjkkllxxwwvvuu!!""##$$AA@@??>> ! - - bbaa``__jjkkllmm]\\[[ZZY<==>>??@54433221deeffggh - - }||{{zzy FEEDDCCByzz{{ TTSSRRQQEEFFGGHH,,++**))mmnnooppttssrrqq%%&&''((==<<;;::~}!""##$$% - - ^^]]\\[[nnooppqqYXXWWVVU@AABBCCD100//..-hiijjkkl yxxwwvvu !!""##$BAA@@??>!!""##$$PPOONNMMIIJJKKLL((''&&%%qqrrssttppoonnmm))**++,,99332211|{{zzyyx%&&''(() ZZYYXXWWrrssttuu UTTSSRRQDEEFFGGH-,,++**)lmmnnooputtssrrq$%%&&''(>==<<;;:~%%&&''((LLKKJJIIMMNNOOPP$$##""!!uuvvwwxxllkkjjii--..//0000//..--xwwvvuut)**++,,-VVUUTTSSvvwwxxyy !!""##$QPPOONNMHIIJJKKL)((''&&%pqqrrsstqppoonnm())**++,:9933221}|{{zzyy))**++,,HHGGFFEEQQRRSSTT yyzz{{|| - - hhggffee11223344,,++**))tssrrqqp-..//001RRQQKKJJzz{{$%%&&''(MLLKKJJILMMNNOOP%$$##""!tuuvvwwxmllkkjji,--..//0100//..-xxwwvvuu--..//00DDCCBBAAUUVVWWXX}}~~ ddccbbaa55667788((''&&%%poonnmml12233445IIHHGGFF())**++,IHHGGFFEPQQRRSST! xyyzz{{| - - ihhggffe01122334-,,++**)ttssrrqq11223344@@??>>==YYZZ[[\\``__^^]]99::;;<<$$##""!!lkkjjiih56677889 EEDDCCBB~},--..//0EDDCCBBATUUVVWWX|}}~~ eddccbba45566778)((''&&%ppoonnmm55667788<<;;::99]]^^__``\\[[ZZYY==>>??@@gfedccbb9::;;<<=!!""##$$AA@@??>>|{{zzyyx01122334A@@??>>=XYYZZ[[\a``__^^]899::;;<%$$##""!llkkjjii99::;;<<88776655aabbccdd ~~}}XXWWVVUUAABBCCDDaa``__^^=>>??@@AABBCCDDE0//..--,ijjkkllmxwwvvuut!""##$$%POONNMMLIJJKKLLM YXXWWVVUJJKKLLMM''&&%%$$rrssttuuoonnmmll**++,,--GGFFEEDDRRSSTTUUPONMLKKJRSSTTUUVz{{||}}~ - gffeeddc23344556?>>==<<;Z[[\\]]^100//..-EFFGGHHI,++**))(mnnooppqtssrrqqp%&&''(()LKKJJIIHMNNOOPPQ - - UTTSSRRQNNOOPPQQ##""!! vvwwxxyy kkjjiihh..//0011CCBBAA@@VVWWXXYY - -JIIHHGGFVWWXXYYZ~cbbaa``_6778899:;::99887^__``aab!!""#-,,++**)IJJKKLLM(''&&%%$qrrssttupoonnmml)**++,,-HGGFFEEDQRRSSTTUQPONMLKKRRSSTTUUzz{{||}} - - ggffeedd22334455??>>==<76655443bccddeef#$$%%&&')((''&&%MNNOOPPQ$##""!! uvvwwxxy lkkjjiih-..//001DCCBBAA@UVVWWXXY -JJIIHHGGVVWWXXYY~~ccbbaa``66778899;;::9988^^__``aaBAA@@??>^__``aab[ZZYYXXW>??@@AAB3221100/fgghhiij'(())**+%$$##""!QRRSSTTU yzz{{||} - - hggffeed12233445@??>>====<<;;:bccddeef ~~}}||{WVVUUTTSBCCDDEEF/..--,,+jkkllmmn+,,--../! UVVWWXXY}~~ dccbbaa`56677889<;;::998]^^__``aBBAA@@??^^__``aa[[ZZYYXX>>??@@AA33221100ffgghhii:9987654fgghhiij - - {zzyyxxw !!"SRRQQPPOFGGHHIIJ+**))(('nooppqqr/0011223YZZ[[\\]`__^^]]\9::;;<<=87766554abbccdde>>==<<;;bbccddee ~~}}||WWVVUUTTBBCCDDEE//..--,,jjkkllmm!!""##33221100jkkllmmnwvvuutts"##$$%%&ONNMMLLKJKKLLMMN'&&%%$$#rssttuuv399::;;<]^^__``a\[[ZZYYX=>>??@@A43322110effgghhi::998765ffgghhii - - {{zzyyxx !!SSRRQQPPFFGGHHII++**))((nnooppqq$$%%&&''//..--,,nooppqqrsrrqqppo&''(())*KJJIIHHGNOOPPQQR#""!! vwwxxyyz<==>>??@abbccdde ~~}}|XWWVVUUTABBCCDDE0//..--,ijjkkllm!!""#43322110jjkkllmmwwvvuutt""##$$%%OONNMMLLJJKKLLMM''&&%%$$rrssttuu(())**++++**))((rssttuuvonnmmllk*++,,--.GFFEEDDCRSSTTUUVz{{||}}~@AABBCCD effgghhi - - |{{zzyyx !TSSRRQQPEFFGGHHI,++**))(mnnooppq#$$%%&&'0//..--,nnooppqqssrrqqpp&&''(())KKJJIIHHNNOOPPQQ##""!! vvwwxxyy,,--..//''&&%%$$vwwxxyyz -kjjiihhg.//00112CBBAA@@?VWWXXYYZ~DEEFFGGH - - ijjkkllmxwwvvuut!""##$$%POONNMMLIJJKKLLM(''&&%%$qrrssttu'(())**+,++**))(rrssttuuoonnmmll**++,,--GGFFEEDDRRSSTTUUzz{{||}}00112233##""!! z{{||}}~ - gffeeddc23344556?>>==<<;Z[[\\]]^||{HIIJJKKQ - - mnnooppqtssrrqqp%&&''(()LKKJJIIHMNNOOPPQ$##""!! uvvwwxxy+,,--../(''&&%%$vvwwxxyy kkjjiihh..//0011CCBBAA@@VVWWXXYY~~99::;;<<~cbbaa``_6778899:;::99887^__``aab{zzyyxxwQRRSSTTU qrrssttupoonnmml)**++,,-HGGFFEEDQRRSSTTU yzz{{||}/0011223$##""!! zz{{||}} - - ggffeedd22334455??>>==<>??@@_^^]]\\[:;;<<==>76655443bccddeef wvvuuttsUVVWWXXYuvvwwxxy lkkjjiih-..//001DCCBBAA@UVVWWXXY}~~399::;;<~~ccbbaa``66778899;;::9988^^__``aa{{AABBCCDD[ZZYYXXW>??@@AAB3221100/fgghhiij - - srrqqppoYZZ[[\\]yzz{{||} - - hggffeed12233445@??>>==>??@__^^]]\\::;;<<==77665544bbccddee zzyyxxwwEEFFGGHH ~~}}||{WVVUUTTSBCCDDEEF/..--,,+jkkllmmnonnmmllk]^^__``a}~~ dccbbaa`56677889<;;::998]^^__``a{@AABBCCD[[ZZYYXX>>??@@AA33221100ffgghhii - - vvuuttssIIJJKKQQ - - {zzyyxxw !!"SRRQQPPOFGGHHIIJ+**))(('nooppqqrkjjiiccbabbcciij `__^^]]\9::;;<<=87766554abbccdde {zzyyxxwDEEFFGGH~~}}||WWVVUUTTBBCCDDEE//..--,,jjkkllmmrrqqppooRRSSTTUU wvvuutts"##$$%%&ONNMMLLKJKKLLMMN'&&%%$$#rssttuuvbaa``__^jkkllmmn !!""##$\[[ZZYYX=>>??@@A43322110effgghhi - - wvvuuttsHIIJJKKQ - -{{zzyyxx !!SSRRQQPPFFGGHHII++**))((nnooppqqnnmmllkkVVWWXXYYsrrqqppo&''(())*KJJIIHHGNOOPPQQR#""!! vwwxxyyz -^]]\\[[Znooppqqr$%%&&''(~~}}|XWWVVUUTABBCCDDE0//..--,ijjkkllmsrrqqppoQRRSSTTU wwvvuutt""##$$%%OONNMMLLJJKKLLMM''&&%%$$rrssttuujjiiccbbZZ[[\\]]onnmmllk*++,,--.GFFEEDDCRSSTTUUVz{{||}}~ - ZYYXXWWVrssttuuv())**++,|{{zzyyx !TSSRRQQPEFFGGHHI,++**))(mnnooppqonnmmllkUVVWWXXYssrrqqpp&&''(())KKJJIIHHNNOOPPQQ##""!! vvwwxxyy aa``__^^^^__``aa -kjjiihhg.//00112CBBAA@@?VWWXXYYZ~VUUTTSSRvwwxxyyy,--..//0xwwvvuut!""##$$%POONNMMLIJJKKLLM(''&&%%$qrrssttukjjiiccbYZZ[[\\]oonnmmll**++,,--GGFFEEDDRRSSTTUUzz{{||}} - - ]]\\[[ZZbbcciijj - gffeeddc23344556?>>==<<;Z[[\\]]^RQQKKJJIyxxwwvvu01122334tssrrqqp%&&''(()LKKJJIIHMNNOOPPQ$##""!! uvvwwxxy baa``__^]^^__``a kkjjiihh..//0011CCBBAA@@VVWWXXYY~~YYXXWWVVkkllmmnncbbaa``_6778899:;::99887^__``aabIHHGGFFEuttssrrq45566778poonnmml)**++,,-HGGFFEEDQRRSSTTU yzz{{||} - - ^]]\\[[Zabbcciij - - ggffeedd22334455??>>==<76655443bccddeef ~~}}||{EDDCCBBAqppoonnm899::;;??@@AAB3221100/fgghhiij - - {zzyyxxw !!"A@@??>>=mllkkjji<==>>??@hggffeed12233445@??>>==>??@@AA33221100ffgghhii - - {{zzyyxx !!DDCCBBAA{{ !!"SRRQQPPOFGGHHIIJ+**))(('nooppqqrsrrqqppo&''(())*93322110eddccbbaDEEFFGGH`__^^]]\9::;;<<=87766554abbccdde ~~}}|IHHGGFFEvwwxxyyzWWVVUUTTBBCCDDEE//..--,,jjkkllmmwwvvuutt""##$$%%@@??>>=="##$$%%&ONNMMLLKJKKLLMMN'&&%%$$#rssttuuvonnmmllk*++,,--.0//..--,a``__^^]HIIJJKKL\[[ZZYYX=>>??@@A43322110effgghhi - - |{{zzyyx !EDDCCBBAz{{ !!SSRRQQPPFFGGHHII++**))((nnooppqqssrrqqpp&&''(())<<;;::99~}|{&''(())*KJJIIHHGNOOPPQQR#""!! vwwxxyyz -kjjiihhg.//00112,++**))(]\\[[ZZYLMMNNOOPXWWVVUUTABBCCDDE0//..--,ijjkkllmxwwvvuut!""##$$%A@@??>>=""##$$%%OONNMMLLJJKKLLMM''&&%%$$rrssttuuoonnmmll**++,,--33221100{zzyyxxw*++,,--.GFFEEDDCRSSTTUUVz{{||}}~ - gffeeddc23344556(''&&%%$YXXWWVVUPQQRRSSTTSSRRQQPEFFGGHHI,++**))(mnnooppqtssrrqqp%&&''(()=<<;;::9~}|&&''(())KKJJIIHHNNOOPPQQ##""!! vvwwxxyy kkjjiihh..//0011//..--,,wvvuutts.//00112CBBAA@@?VWWXXYYZ~cbbaa``_6778899:$##""!!UTTSSRRQTUUVVWWXPOONNMMLIJJKKLLM(''&&%%$qrrssttupoonnmml)**++,,-93322110{{zzyyxx**++,,--GGFFEEDDRRSSTTUUzz{{||}} - - ggffeedd22334455++**))((srrqqppo23344556?>>==<<;Z[[\\]]^_^^]]\\[:;;<<==>QPPOONNMXYYZZ[[\LKKJJIIHMNNOOPPQ$##""!! uvvwwxxy lkkjjiih-..//0010//..--,wwvvuutt..//0011CCBBAA@@VVWWXXYY~~ccbbaa``66778899''&&%%$$onnmmllk6778899:;::99887^__``aab[ZZYYXXW>??@@AABMLLKKJJI\]]^^__`HGGFFEEDQRRSSTTU yzz{{||} - - hggffeed12233445,++**))(ssrrqqpp22334455??>>==<76655443bccddeef ~~}}||{WVVUUTTSBCCDDEEFIHHGGFFE`aabbccdDCCBBAA@UVVWWXXY}~~ dccbbaa`56677889(''&&%%$oonnmmll66778899;;::9988^^__``aa[[ZZYYXX>>??@@AAedccbbaa>??@@AAB3221100/fgghhiij - - {zzyyxxw !!"SRRQQPPOFGGHHIIJ EDDCCBBAdeeffggh@??>>==>=hiijjkkl<;;::998]^^__``a\[[ZZYYX=>>??@@Afedccbba>>??@@AA33221100ffgghhii - - {{zzyyxx !!SSRRQQPPFFGGHHII\\[[ZZYYFGGHHIIJ+**))(('nooppqqrsrrqqppo&''(())*KJJIIHHGNOOPPQQR - =<<;;::9lmmnnoop87766554abbccdde ~~}}|XWWVVUUTABBCCDDEa``__^^]BBCCDDEE//..--,,jjkkllmmwwvvuutt""##$$%%OONNMMLLJJKKLLMM XXWWVVUUJKKLLMMN'&&%%$$#rssttuuvonnmmllk*++,,--.GFFEEDDCRSSTTUUV98877665pqqrrsst43322110effgghhi - - |{{zzyyx !TSSRRQQPEFFGGHHI]\\[[ZZYFFGGHHII++**))((nnooppqqssrrqqpp&&''(())KKJJIIHHNNOOPPQQ - - TTSSRRQQNOOPPQQR#""!! vwwxxyyz -kjjiihhg.//00112CBBAA@@?VWWXXYYZ54433221tuuvvwwxxyybdQZ|vpfXQr˂nXv`˒bHAbdQZ|f`vXZHAbbnXv`Zp˂drtnvp`JXQf~fpXQJ`ےJltH~fr˂pfpvbHAZbdQZ|`vXnHAbےdrtAH~fp`JXQf~HZp˂drtnvpے`JXf~HrXQJ`AJltfH~r˂pvnXbHAZbdQZ|`vXnZHAےnXv`p˂rdrtAvpf`JXQr`f~Jlt`vXnr˂pfpvrXQJ`AJltfH~Qr˂pfpvbHAbdQZ|f`vXZHAbv`fp˂rdrtAvpf`JXQrf~HXQJ`ےJltH~f˂p`HfpvbdQZ|vpfZHAbnXv`fbHAbdQZ|f`vXZHAۅnXv`Zp˂drtnvp`JXQ~HfpXQJ`ےJltH~fbtlfpvbHAZbdQZ|`vXnJXQrbnXvdrtAH~fے`JXQ~fpvZp˂drtnvp`JXQf~HrXQJ`AJltfH~r˂p`vnXbHAZbdQZ|`vXnJtAdnXv`p˂rdrtAvpftl|`f~fpJlt`vXnr˂pnXvrXQJ`AJltfH~rbtlfpvbHAbdQZ|f`vXJXQrv`f~fp˂rdrtAvpf|ZdQbf~HXQJ`ےJltH~fZdQbtvnXbdQZ|vpf`JXQr`f~bHAbdQZ|f`vXJtAdnXv`Zp˂drtnvpbtl|pvnXQJ`ےJltH~ftlJfpvbHAZbdQZ|`vXnlJtAv`fdrtAH~f˂pZHfpvZp˂drtnvp|ZdQf~HrXQJ`AJltfH~ˁZdQbtXv`fbHAZbdQZ|`vXntArdnXv`p˂rdrtAvpfrd|~HfpJlt`vXnHAbےnXvrXQJ`AJltfH~btlfpvbHAbdQZ|f`vXlJt~Hfp˂rdrtAr˂p|ZdQbf~HXQJ`ےJltH~fZdQbtvnXbdQZ|vpf`JXQr`f~fpbHAbdQZ|f`vXJtArdnXv`Zp˂drtnvpArd|pvnXQJ`ےJltZHAbtlJfpvbHAZbdQZ|`vXnl|Zv`f~drtAH~f˂p|vnXZp˂drtnr˂p|ZdQf~HrXQJ`AJltfH~ˁZdQbtXv`fbHAZbdQZ|ے`JXQtArdnXv`p˂rdrtAvpfdQbt璅fpvJlt`vXnZdQbtv`frXQJ`AJltZHAbbtlfpvbHAbdQZ|f`vXl|~fpvp˂rdtAJr˂p|ZdQbf~HXQJ`ےJltH~flJtArnXv`bdQZ|vpflJtA~HfpbHAbdQZ|ے`JXJtArdnXv`Zp˂drtnvpZdQbtnXv`XQJ`ےltbZHAbtlJfpvbHAZbdQZ|`vXnd|Zf~HdrtAH~frd|vnXZp˂dtAQr˂p|ZdQf~HrXQJ`AJltfH~˒lJtAf~HbHAZnvpے`JXQtArdnXv`p˂rdrtAvpfdQbtfpvJlt`vXnZdQbtv`f~rXQJ`JltZHAbbtlfpvbHAbdQZ|f`vXrd|fpvp˂rfHfr˂p|ZdQbf~HXQJ`ےJltH~fl|ZdQnXv`bdQZ|vpfl|ZfpvbHAbnvpے`JXJtArdnXv`Zp˂drtnvpZdQbtnXv`XQJ`ے`vXnZHAbtlJfpvbHAZbdQZ|`vXnbtlf~fpdrtAH~fdQbtnXv`Zp˂fHQr˂p|ZdQf~HrXQJ`AJltfH~˒l|Zdf~fpbHAZvpfے`JXQtArdnXv`p˂rdrtAr˂pJtArdvnXJlt`vXnlJtArf~HrXQJ`f`vXZHAbbtlfpvbHAbdQZ|f`vXQbtlvnXp˂rH~fr˂p|ZdQbf~HXQJ`ےJlt`JXQr|ZdQv`fbdQZ|vpfd|ZfpvbHAnvpے`JXJtArdnXv`Zp˂drtnr˂pJtArdv`fbdQZ|`vXnZHAbtlJfpvbHAZbdQZ|˂pZbtl~HfpdrtAH~fdQbtnXv`Zp˂fH~Qr˂p|ZdQf~HrXQJ`AJlt`JXQ|Zd~HfpdrtAvpfے`JXQtArdnXv`p˂rdtAJHAbے|ZdQbvnXJlt`vXnl|ZdQf~fprbdQZ|f`vXZHAbbtlfpvbHAbdQZ|r˂pQbtlvnXJltH~fr˂p|ZdQbf~HXQJ`ےltb`JXQrtlJv`ffpbdQZ|vpfbtlvnXdrtnvpے`JXJtArdnXv`Zp˂dtAZHAbۑ|ZdQv`ffbdQZ|`vXnZHAbtlJfpvbHAZnvp˂p`tArdvndrtAH~fJtArdv`fAJltfH~Qr˂p|ZdQf~HrXQJ`Jlt`JXQbtlpvndrtAvpfے`JXQtArdnXv`p˂rfHfJXQr|ZdQbrXQJ`Jlt`vXn|ZdQ~HfpۉbdQZ|f`vXZHAbbtlfpvbHAbnvpr˂p`JtArdrXQJ`JltH~fr˂p|ZdQbf~HXQJ`ے`vXn˂pZHAtl|HAZpbdQZ|r˂pbtlvnXdrtnvpے`JXJtArdnXv`Zp˂fHˁJXQr|ZdQےHAZbdQZ|`vXnZHAbtlJfpvbHAZvpfbے`ZdQbt˂rXdrtA`JXQr|ZdQbv`frAJltfH~Qr˂p|ZdQf~HrXQJ`f`vX˂pZHbtl|p˂rdrtAvpfے`JXQtArdnXv`p˂rH~fJXQrlJtAQJ`ےJlt˂pZtlJQJHAbdQZ|f`vXZHAbbtlfpvbHAnvpAbے`ZdQbtXQJ`ےJltH~fr˂p|ZdQbf~HbdQZ|`vXn˂p`Jrd|bHAZpbdQZ|HAbےtArdZp˂drtnvpے`JXJtArdnXv`Zp˂fH~ˁJXQrlJtbHAZbdQZ|`vXnZHAbtlJfpvdrtAvpfXQr˂ZdQbt˂rXdrtA`JXQr|ZdQbrXQJ`AJltfH~Qr˂p|ZdQf~HrbdQZ|f`vX˂p`Ard|p˂rdrtAvpfے`JXQtArdnXv`JltH~fpZHAbl|ZQJ`ےJlt˂p`tl|bHAbdQZ|f`vXZHAbbtlfpvdrtnvpJXQrˁZdQbtXQJ`ےJltH~fr˂p|ZdQbfHfbdQZ|`vXnے`JdQbnXbHAZpbdQZ|JXQrZdQbtZp˂drtnvpے`JXJtArdnXv`AJltfH~˂pZHAl|琙bHAZbdQZ|`vXnZHAbtlJpvndrtAvpfXQr˂v`f~˂rX`vXn˂pZHAlJtArXQJ`AJltfH~Qr˂p|ZdQfHbdQZ|f`vXbے`ZdQbnXp˂rdrtAvpfے`JXQtArdrXQJ`JltH~fp`JXQfpvQJ`ےvpfbے`rd|bHAbdQZ|f`vXZHAbbtlfpvdrtnvpJXQr˕v`f~XQJ`ےJltH~fr˂p|ZdQbےHAZbdQZ|`vXnr˂pnXv`˙bHAZpH~fJXQrZdQbtZp˂drtnvpے`JXJtArdnrXQJ`AJltfH~˂p`JXfpvbHAZbdQZ|`vXnZHAbtlJp˂rdrtAvpfZHAbf~H˂rX`vXn˂p`Jl|ZrXQJ`AJltfH~Qr˂p|ZdQےHAbdQZ|f`vXQr˂pnXv`p˂rdrtAvpfے`JXQtArdXQJ`ےJltH~fے`JXQfpvQJ`ےvpfXQr˂dQbnXbHAbdQZ|f`vXZHAbbtlZp˂drtnvpZHAbf~HXQJ`ےJltH~fr˂p|ZdQbbHAZbdQZ|`vXnr˂pnXv`fbHAZpH~fpZHAbv`f~Zp˂drtnvpے`JXJtArdrXQJ`AJltfH~˙ے`JXfpvbHAZbdQZ|`vXnZHAbnXv`p˂rdrtAvpf`JXQr~fpv˂rX`vXnے`JfpvrXQJ`AJltfH~Qr˂p|ZdQbHAbdQZ|f`vXQr˂pnXv`p˂rdrtAvpfے`JXQf~HXQJ`ےJltH~f˂pZnXvQJ`ےbHAZpbdQZ|vXnZHAے`nXv`ˑ˂rXdrtAvpfHJXQrfpvJ`ےltb~f`tlJpvnbHAZpdQZ|vXnXQrbtf~fpۂrXQrtAJlvpfHZdQbt~HfpJ`ےtbd~f`QXb㉀Xnvˍ˂rXdrtAvpfHJXQrf~HQJ`ےJlt~f`˂p`nXv`bHAZpdQZ|vXntAd|Xv`f˂rXQdrtAJvpfHl|ZvnXJ`ےtbd~f`lJtAvnXbHAZpQZ|dvXnۑp`ZQpfH~QJ`ےJlt~f`btlfpvbHAZpbdQZ|vXnJXQrbtf~fp˂rXQdrtAJvpfHZdQbt~HfJ`ےltb~f`dQbtv`fbHAZpQZ|dvXnrrd|v`frXQrtAJlvpfHXb㉀ۑf۝`vbHAZpbdQZ|vXnJtAd|nXv`ˑ˂rXdrtAvpfHl|vnXJ`ےltb~f`lJtApvnbHAZpdQZ|vXnlJtAr~HfpۂrXQrtAJl˂pZHZdQbt~HfpJ`ےtbd~f`pJAHrXnvˍ˂rXdrtAvpfHZdQbtf~HQJ`ےJlt~f`ZdQbtv`fbHAZpdQZ|vXnrrd|Xv`f˂rXQdrtAJvpfHd|ZvnXJ`ےtbdAbے`lJtAvnXbHAZpQZ|dvXnېˁ`ZQpfH~QJ`ےJlt~f`lJtfpvbHAZpbdQZ|vXnlJtA~Hfp˂rXQdrtAJ˂pZZdQbt~HfJ`ےltb~f`dQbtv`f~fbHAZpQZ|dJXQrrd|v`frXQrtAJlvpfHXb㉀ۑf۝`vbHAZpbdQZ|vXnArd|nXv`ˑ˂rXdrtAvpfHrd|vnXJ`ےltbHAbےlJtApvnbHAZpdQZ|vXnl|ZdQpvnrXQtAJl˂pZHZdQbt~HfpJ`ےtbd~f`p`ZQXbXnvˍ˂rXdrtAr˂pZdQbtf~HQJ`ےJlt~f`ZdQbtv`f~bHAZpdQZ|`JXQrrd|Xv`f˂rXQdrtAJvpfHbtlXv`fJ`ےtbnAbے`lJtAvnXbHAZpQZ|dvXn㉀ۑpJpfH~QJ`ےJltZHAbۉlJtfpvbHAZpbdQZ|vXnl|Zdfpv˂rXQdtAJl˂pZZdQbt~HfJ`ےltb~f`JtArd~HfbHAZp˅vpfHJXQrrd|v`frXQrtAJlvpfHAHr󙐂f۝`vbHAZpbdQZ|`JXQArd|nXv`ˑ˂rXdrtAvpfHQbtlnXv`J`ےtbnHAbےlJtApvnbHAZpdQZ|vXn|ZdQpvnrXQf`˂pZHZdQbt~HfpJ`ےtbd~f`ˁ`ZQXbXnvˍ˂rXdtAJlr˂pZdQbtf~HQJ`ےJlt~f`JtArdf~HbHAZpvpf`JXQrrd|Xv`f˂rXQdrtAJvpfHbtlXv`fJ`ےvXnAbے`lJtAvnXbHAZpQZ|dvXnے`㉀ۑpp|drQJ`ےtbZHAbۉlJtfpvbHAZpbdQZ|vXn|Zdfpv˂rXQHf`˂pZZdQbt~HfJ`ےltb~f`|ZdQb~fpvbHAZpvpfHJXQrrd|v`frXQrtAJlJXQr`ZQXbQtJlbHAZpnvp`JXQArd|nXv`ˑ˂rXdrtAvpfHQbtlnXv`fJ`ےvXnHAbےlJtApvnbHAZpdQZ|vXnrtlJnXv`rbd~f`˂pZHZdQbt~HfpJ`ےtbd˂pZHۑpJAtbAdZ˂rXfHf`r˂pZdQbtf~HQJ`ےJlt~f`|ZdQ~fpvbHAZpvpfH`JXQrrd|Xv`f˂rXQdrtAJ˂p`tArdf~HQZ|dvXnAbے`lJtAvnXbHAZpQZ|dAbے`Hr󙐂ˁ|drQJ`ےvXnZHAbۉlJtfpvbHAZpbdQZ|vXnbtlnXv˂rb~f`˂pZZdQbt~HfJ`ےltbJXQr|ZdQbfpvrtAJlvpfHJXQrrd|v`frXQtAJlJXQr`ZQXbQtJlbHAZpvpfH`JXQArd|nXv`ˑ˂rXdrtAr˂p`JtArd`f~dQZ|vXnHAbےlJtApvnbHAZpdQZ|˂pZHAtl|nXv`tbd~f`˂pZHZdQbt~HfpJ`ےtbn˂p`ۑp`ZtbAdZ˂r~f`r˂pZdQbtf~HQJ`ےJltJXQr|ZdQHfpvdrtAJvpfH`JXQrrd|Xv`f˂rXQdtAJlbے`ZdQbtffpQZ|dvXnAbے`lJtAvnXbHAZp˅vpfHJXQrQXb㉀|drbdQZ|vXnZHAbۉlJtfpvbHAZpbdQZ|˂pZHbtl|nXvltb~f`˂pZZdQbt~HfJ`ےtbnJXQrlJtAvnrXrtAJlvpfHJXQrrd|v`frXQf`pZHAۑpJAHrQtJldrtAvpfH`JXQArd|nXv`ˑ˂rXdtAJlAbے`ZdQbt`ffpdQZ|vXnHAbےlJtApvnbHAZpvpf˂p`Jrd|QJ`ےtbd~f`˂pZHZdQbt~HfpJ`ےvXnbے`󙐂ˁ`ZtbAdZJlt~f`r˂pZdQbtf~HQJ`ےtbJXQrlJtvnrdrtAJvpfH`JXQrrd|Xv`f˂rXQHf`XQr˂ZdQbtHAZpQZ|dvXnAbے`lJtAvnXbHAZpvpfHJXQrQXb㉀|drbdQZ|vXnZHAbۉlJtfpvbHAZpnvp˂p`Ard|XQJ`ےltb~f`˂pZZdQbt~HfJ`ےvXnpZHAbl|ZrXQrtAJlvpfHJXQrrd|v`frbd~f`p`JXXnvˍQtJldrtAvpfH`JXQArd|nXv`ˑ˂rXfHf`JXQrˁZdQbtHAZpdQZ|vXnHAbےlJtApvnbHAZpvpfHے`JdQbtJ`ےtbd~f`˂pZHZdQbt~HfpQZ|dvXnQr˂ppfH~tbAdZJlt~f`r˂pZdQbtf~HQJ`ےvXnpZHAl|˂rXQdrtAJvpfH`JXQrrd|Xv`f˂rb~f`XQr˂lJtArbHAZpQZ|dvXnAbے`lJtAvnXrtAJlvpfHZHAbf۝`v|drbdQZ|vXnZHAbۉlJtfpvbHAZpvpfHbے`ZdQbtJ`ےltb~f`˂pZZdQbt~HfdQZ|vXnp`JXQd|ZrXQrtAJlvpfHJXQrrd|v`ftbd~f`ے`JXXnvˍQtJldrtAvpfH`JXQArd|nXv`ˑ˂r~f`JXQr˒lJtAbHAZpdQZ|vXnHAbےlJtApvndrtAJvpfHr˂pdQbtJ`ےtbd~f`˂pZHZdQbtHfpQZ|dvXnQr˂ppfH~tbAdZJlt~f`r˂pZdQbtf~HbdQZ|vXnp`JXrd|˂rXQdrtAJvpfH`JXQrrd|Xv`fltb~f`ZHAbl|ZdQbHAZpQZ|dvXnAbے`lJtAvnrXrtAJlvpfH`JXQf۝`v|drbdQZ|vXnZHAbۉlJtfpvdrtAvpfHQr˂pZdQbtJ`ےltb~f`˂pZZdQbtHfpdQZ|vXnے`JXQbnXvrXQrtAJlvpfHJXQrrd|QJ`ےtbd~f`r˂pXnvˍQtJldrtAvpfH`JXQArd|nXv`Jlt~f`ZHAbl|ZdbHAZpdQZ|vXnHAbےlJtAvnrdrtAJvpfHr˂p`f~fpJ`ےtbd~f`˂pZHZdQbtHAZpQZ|dvXnZHAbpfH~tbAdZJlt~f`r˂pZdQbtfHfpbdQZ|vXnے`JXQbnX˂rXQdrtAJvpfH`JXQrrd|XQJ`ےltb~f``JXQrvnXbHAZpQZ|dvXnAbے`lJtArXQrtAJlvpfH`JXQf۝`v|drbdQZ|vXnZHAbۉlJtvndrtAvpfHQr˂pv`f~fJ`ےltb~f`˂pZZdQbtHAZpdQZ|vXn˂pZv`frXQrtAJlvpfHJXQrrd|J`ےtbd~f`r˂p`XnvˍQtJldrtAvpfH`JXQArd|rXQJ`Jlt~f``JXQpvnbHAZpdQZ|vXnHAbےlJtA˂rXQdrtAJvpfHHAbے~HfpJ`ےtbd~f`˂pZHZdQbnXbHAZpQZ|dvXnہJXQrpfH~tbAdZJlt~f`r˂pZdQbtHAZpbdQZ|vXnr˂pXv`f˂rXQdrtAJvpfH`JXQrrd|J`ےltb~f``JXQrvnXbHAZpQZ|dvXnAbے`v`frXQrtAJlvpfH˂pZHf۝`v|drbdQZ|vXnZHAbۉlJt˂rXdrtAvpfHZHAbې~HfJ`ےltb~f`˂pZZdQbnbHAZpdQZ|vXn˂p`v`f~rXQrtAJlvpfHJXQr~HfpJ`ےtbd~f`Abے`XnvˍQtJldrtAvpfH`JXQArd|QJ`ےJlt~f``JXQpvnbHAZpdQZ|vXnHAbےXv`f˂rXQdrtAJvpfHJXQrfpvJ`ےtbd~f`˂pZHvnXbHAZpQZ|dvXnہJXQrpfH~tbAdZJlt~f`r˂pZdQbbHAZpbdQZ|vXnr˂p`Xv`f˂rXQdrtAJvpfH`JXQr~HfJ`ےltb~f`˂pZHAnXv`bHAZpQZ|dvXnAے`v`frXQrtAJlvpfH˂p`Zf۝`v|drbdQZ|vXnZHAbnXv`ˑ˂rXdrtAvpfHJXQr~fpvJ`ےltb~f`˂pZpvnbHAZpdQZ|vXnbے`f~HrXQrtAJlvpfHJXQrbt~HfpJ`ےtbd~f`QXb㉀XnvˍQtJldrtAvpfH`JXQf~HQJ`ےJlt~f`˂pZHnXv`bHAZpdQZ|vXnHAے`Xv`f˂rXQdrtAJvpfHJXQrfpvJ`ےtbd~f`lJtvnXbHAZpQZ|dvXnۑpJAHrpfH~tbAdZJlt~f`r˂pfpvbHAZpbdQZ|vXnAbے`f~H˂rXQdrtAJvpfHJXQrb~HfJ`ےltb~f`˂p`JnXv`bHAZpQZ|dvXnAd|v`frXQrtAJlvpfH󙐂ˁ`Zf۝`v|drQt}~~56666666666666666666666666666666666666 \ No newline at end of file diff --git a/vendor/endroid/qr-code/assets/data/qrv2_0.dat b/vendor/endroid/qr-code/assets/data/qrv2_0.dat deleted file mode 100755 index e82090e914896d7baf87ab7240c6acef44d8e407..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1109 zcmbu7yNZKA7=>3y(RhnG-X3CKB3-bvlT;#N6@rLZg`k3kMIZ_mDe^=)wVJ1W|-gl4My?R8{MA z?SIyFyHw_Y{;!_p)%@9ZjCQe( zPl>bt@`Kq)U*>HQWW8@~VQ7}kDoX3nI{b z`|Cc6aq)-YhJl809>uJSalqJGK*O|~EGp{U(}7zbtPrH;>R3i$we|9K(q@i-HUhnk Zm&J*^N)VwWE8Xu@6}kItKQ76Cegk?X;IRMz diff --git a/vendor/endroid/qr-code/assets/data/qrv2_1.dat b/vendor/endroid/qr-code/assets/data/qrv2_1.dat deleted file mode 100755 index 5fc94c09a3664313078c79ca5fc488c422a4718c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1109 zcmbu7yNZKA7=>3y(RhnG-X3CKB3-bvlT;#N6@rLZg`k3kMIZ_mDe^=)wVJ1W|-gl4My?R8{MA z?SIyFyHw_Y{;!_p)%@9ZjCQe( zPl>bt@`Kq)U*>HQWW8@~VQ7}kDoX3nI{b z`|Cc6aq)-YhJl809>uJSalqJGK*O|~EGp{U(}7zbtPrH;>R3i$we|9K(q@i-HUhnk Zm&J*^N)VwWE8Xu@6}kItKQ2jqegk?L;Hv-t diff --git a/vendor/endroid/qr-code/assets/data/qrv2_2.dat b/vendor/endroid/qr-code/assets/data/qrv2_2.dat deleted file mode 100755 index 2beed99d81965521cf4ba3e19510550833ca1b0b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1109 zcmbu7yNZKA7=@#wXuL%oZ^b^szC^lUXD3z?f>j72Vikf478ZdhSft1k`3RO4mRqDq znKfixG~}{j&sPlpnfYht45O*qQxy3*61;~f+=HK7nOxKr_eYL>4~BjZYWyA~F$Bkk z0CWg48lq{cswlE7Nf3&nAn^QT!f`CiFf>h3<5me~OT>vpXKMd9Wck|YQm$1ng;6hTI<5Cla5z%U#q2$KBkH6F$I@BXiz<<$^HCw-YUxu15vy@i2U)T=P50`~x%S#sR$iqh%)qZg)S>}GZZbkpdnb<|i3 z<2?7%CSPVR<;TF;~YT49cyWt>Y$LcxS`c an`oJz$g2bqO0v@aPF0cH&-UYzAD`cPJ>b0n diff --git a/vendor/endroid/qr-code/assets/data/qrv2_3.dat b/vendor/endroid/qr-code/assets/data/qrv2_3.dat deleted file mode 100755 index fd8bc282bc60f5fd9d57728404a31159909bb8a8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1109 zcmbu7yNZKA7=>3y(RhnG-X3CKB3-bvlT;#N6@rLZg`k3kMIZ_mDe^=)wVJ1W|-gl4My?R8{MA z?SIyFyHw_Y{;!_p)%@9ZjCQe( zPl>bt@`Kq)U*>HQWW8@~VQ7}kDoX3nI{b z`|Cc6aq)-YhJl809>uJSalqJGK*O|~EGp{U(}7zbtPrH;>R3i$we|9K(q@i-HUhnk Zm&J*^N)VwWE8Xu@6}kItKQ5_!egk?j;I{w( diff --git a/vendor/endroid/qr-code/assets/data/qrv30_0.dat b/vendor/endroid/qr-code/assets/data/qrv30_0.dat deleted file mode 100755 index 45c75896d..000000000 --- a/vendor/endroid/qr-code/assets/data/qrv30_0.dat +++ /dev/null @@ -1,273 +0,0 @@ -}}}}}~}~}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststsrqrqrqrqrqrqrqropopopopmnmnmnmnklklklklijijijijghghghghefefefefdcdcdcdcbabababa`_`_`_`_`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMKKKKKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABABABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:7878787856565656}~}~}~}~}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqrqrqrqrqropopopopmnmnmnmnklklklklijijijijghghghghefefefefdcdcdcdcbabababa`_`_`_`_`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABABABABABA@?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:7878787856565656}~}~}~}~}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqrqrqrqrqropopopopmnmnmnmnklklklklijijijijghghghghefefefefdcdcdcdcbabababa`_`_`_`_`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:7878787856565656}~}~}~}~}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqrqrqrqrqropopopopmnmnmnmnklklklklijijijijghghghghefefeeeedcdcdcdcbabababa`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:7878787856565656}~}~}~}~}|{|{|{|{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqrqrqrqrqropopopopmnmnmnmnklklklklijijijijghghghgheefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPONMNMLKLKKLKKKKKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:7878787856565656}~}~}~}~{|{|{|{|{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqrqpopopopopopopopmnmnmnmnklklklklijijijijghghghghfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOLKLKKKKKKLKLKLKJIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:7878787856565656}~}~}~}~{|{|{|{|{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqropopopopopopopopmnmnmnmnklklklklijijijijghghghghfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQRQRQRQRQPOPOPONMKLKLKLKLIJIJIJIJIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@?@?@?@?>=>=>=>=>;<;<;<;<9:9:9:9:7878787856565656}~}~}~}~{|{|{|{|{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqropopopopopopopopmnmnmnmnklklklklijijijijghghghghfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQRQRQRQRQNMNMNMNMKLKLKLKLIJIJIJIJIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>=>=>=>=>;<;<;<;<9:9:9:9:7878787856565656}~}~}~}~{|{|{|{|{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqropopopopopopopopmnmnmnmnklklklklijijijijghghghghfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQRQRQRQRQNMNMNMNMKLKLKLKLIJIJIJIJIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>=>=>=>=>;<;<;<;<9:9:9:9:7878787856565656}~}~}~}~{|{|{|{|{zyzyzyzyzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqropopopopopopopopmnmnmnmnklklklklijijijijghghghghfefeeeeedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMKLKLKLKLIJIJIJIJIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>=>=>=>=>;<;<;<;<9:9:9:9:7878787856565656}~}~}~}~{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqropopopoponmnmnmnmnmnmnmnklklklklijijijijghghghghefefefefdcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMKLKLKLKLIJIJIJIJIJIJIJIHGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>=>=>=>=>;<;<;<;<9:9:9:9:7878787856565656}~}~}~}~{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqropopopopmnmnmnmnmnmnmnmnklklklklijijijijghghghghefefefefdcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMKLKKKKKKIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>=>=>=>=<;<;<;<;<9:9:9:9:7878787856565656}~}~}~}~{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqropopopopmnmnmnmnmnmnmnmnklklklklijijijijghghghghefefefefdcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<;<;<;<;<9:9:9:9:7878787856565656}~}~}~}~{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqropopopopmnmnmnmnmnmnmnmnklklklklijijijijghghghghefefefefdcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<;<;<;<;<9:9:9:9:7878787856565656}~}~}~}~{|{|{|{|yzyzyzyzyxwxwxwxwxwxwxwxuvuvuvuvststststqrqrqrqropopopopmnmnmnmnmnmnmnmnklklklklijijijijghghghghefefefefdcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<;<;<;<;<9:9:9:9:7878787856565656}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxwxwxwxwxuvuvuvuvststststqrqrqrqropopopopmnmnmnmnmlklklklklklklklijijijijghghgfefefeeeeeedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKIJIJIJIJGHGHGHGHGHGHGHGFEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<;<;<;<;<9:9:9:9:7878787856565656}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxwxwxwxwxuvuvuvuvststststqrqrqrqropopopopmnmnmnmnklklklklklklklklijijijijefefeeeefefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKIJIJIJIJGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<;<;<;<;:9:9:9:9:7878787856565656}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxwxwxwxwxuvuvuvuvststststqrqrqrqropopopopmnmnmnmnklklklklklklklklijijijihefefefefdcdcdcdcdcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKKKKKKLIJIJIJIJGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:9:9:9:9:7878787856565656}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxwxwxwxwxuvuvuvuvststststqrqrqrqropopopopmnmnmnmnklklklklklklklklghghghghefefefefdcdcdcdcdcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:9:9:9:9:7878787856565656}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxwvuvuvuvuvuvuvuvststststqrqrqrqropopopopmnmnmnmnklklklklklklklklghghghghefefefefdcdcdcdcdcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:9:9:9:9:787878785656565634343434}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvuvuvuvuvststststqrqrqrqropopopopmnmnmnmnklklklklkjijijijghghghghefefefeedcdcdcdcdcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFEFEFEFEDCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:9:9:9:9:787878785656565634343434}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvuvuvuvuvststststqrqrqrqropopopopmnmnmnmnklklklklijijijijghghghgheeeefefedcdcdcdcdcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:9:9:9:98787878785656565634343434}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvuvuvuvuvststststqrqrqrqropopopopmnmnmnmnklklklklijijijijghghghghfefefefedcdcdcdcbabababababababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:78787878787878785656565634343434}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvuvuvuvuvststststqrqrqrqropopopopmnmnmnmnklklklklijijijijghghghghfefefefedcdcdcdcbabababababababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMKKKKKKLKIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:78787878787878785656565634343434}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvutstststststststqrqrqrqropopopopmnmnmnmnklklklklijijijijghghghghfefefefedcdcdcdcbabababababababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:78787878787878785656543434343434}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststststststqrqrqrqropopopopmnmnmnmnklklklklijijijijghghghghfefefefedcdcdcdcbabababababababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDCDCDCDCBABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:78787878787878783434343434343434}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststststststqrqrqrqropopopopmnmnmnmnklklklklijijijijghghghghfefefeeedcdcdcdcbabababababababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABABABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:78787878787878763434343434343434}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststststststqrqrqrqropopopopmnmnmnmnklklklklijijijijghghghgheeefefefdcdcdcdcbabababa`_`_`_`_`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABABABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:78787878565656563434343434343434}}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststststststqrqrqrqropopopopmnmnmnmnklklklklijijijijghghghghefefefefdcdcdcdcbabababa`_`_`_`_`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABABABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:7878787856565656343434343434343434343434121111110/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!            - - - -34343434212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -34343434212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -34343434212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - - - -34343434212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)*)*)*)('('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - - - - - -34343434212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - - - - - -34343434211111120/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - - - - - -34343434121212120/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - - - - - -34343434121212120/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - - - - 34343434121212120/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('('('('&%&%&%&%&%$#$#$#$#"!"!"!"!         - - - -34343434121212120/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%&%&%&%&%$#$#$#$#"!"!"!"!         - - - -34343434121212120/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%&%&%&%&%$#$#$#$#"!"!"!"!         - - - -34321212111111210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%&%&%&%&%$#$#$#$#"!"!"!"!         - - - -121111122121210/0/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%&%&%&%&%$#$#$#$#"!"!"!"!         - - - -121212120/0/0/0/0/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%&%&%&%$#$#$#$#$#"!"!"!"!         - - - -121212120/0/0/0/0/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!         - - - -121212120/0/0/0/0/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!         - - - -121211110/0/0/0/0/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!         - - - -112121210/0/0/0/0/0/0/.-.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!         - - - -212121210/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#$#$#$#"!"!"!"!"!         - - - -212121210/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!"!"!"!"!         - - - -212121210/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!"!"!"!"!         - - - -212121210/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!"!"!"!"!          - - - -212111110/0/0/0/.-.-.-.-.-.-.-,+,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!"!"!"!"!             - - - -121212120/0/0/0/.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!"!"!"!              - - - -121212120/0/0/0/.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!                 - - - -121212120/0/0/0/.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!                 - - - -121212120/0/0/0/.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!               - - - -121212120/0/0/0/.-.-.-.-,+,+,+,+,+,+,+*)*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!             - - - -qqrrssttxyyzz{{|%$$##""!PQQRRSSTMLLKKJJI())**++,uttssrrqtuuvvwwx)((''&&%LMMNNOOPQPPOONNM-..//001RQQKKJJI=>>??@@AXXWWVVUU ~~}} - - iijjkkll44332211AABBCCDD\\[[ZZYY eeffgghh$$##""!!rrssttuu]^^__``a@??>>==<56677889hggffeed YZZ[[\\]DCCBBAA@12233445lkkjjiih  uuvvwwxx ~~}}| - - |}}~~! TUUVVWWXIHHGGFFE,--..//0qppoonnmxyyzz{{|%$$##""!PQQRRSSTMLLKKJJI1778899:IHHGGFFEABBCCDDETTSSRRQQ!!""##$$||{{zzyymmnnoopp00//..--EEFFGGHHXXWWVVUU ~~}} - - iijjkkll vvwwxxyyabbccdde<;;::9989::;;<<=dccbbaa`]^^__``a@??>>==<56677889hggffeed~~}} - - yyzz{{|| - - |{{zzyyx XYYZZ[[\EDDCCBBA01122334mllkkjji - - |}}~~! TUUVVWWXIHHGGFFE:;;<<==>EDDCCBBAEFFGGHHIPPOONNMM%%&&''((xxwwvvuuqqrrsstt,,++**))IIJJKKLLTTSSRRQQ!!""##$$||{{zzyymmnnooppzz{{||}}effgghhi87766554=>>??@@A`__^^]]\abbccdde<;;::9989::;;<<=dccbbaa`||{{zzyy - - }}~~ - - xwwvvuut\]]^^__`A@@??>>=45566778ihhggffe XYYZZ[[\EDDCCBBA>??@@AABA@@??>>=IJJKKLMNLLKKJJII))**++,,ttssrrqquuvvwwxx((''&&%%MMNNOOPPPPOONNMM%%&&''((xxwwvvuuqqrrsstt~~ -ijjkkllm43322110ABBCCDDE\[[ZZYYX effgghhi87766554=>>??@@A`__^^]]\ !!"xxwwvvuu tssrrqqp`aabbccd=<<;;::9899::;;>=BCCDDEEF=<<;;::9OPQQRRSSHHGGFFEE--..//00ppoonnmmyyzz{{||$$##""!!QQRRSSTTLLKKJJII))**++,,ttssrrqquuvvwwxx - mnnooppq0//..--,EFFGGHHIXWWVVUUT !~~}}| - - ijjkkllm43322110ABBCCDDE\[[ZZYYX"##$$%%&ttssrrqqpoonnmml deeffggh98877665<==>>??@a``__^^]`aabbccd=<<;;::9FGGHHIIJ98877110TTUUVVWWDDCCBBAA11223344llkkjjii - - }}~~ UUVVWWXXHHGGFFEE--..//00ppoonnmmyyzz{{|| - - qrrssttu,++**))(IJJKKLLMTSSRRQQP!""##$$%|{{zzyyxmnnooppq0//..--,EFFGGHHIXWWVVUUT&''(())*ppoonnmmlkkjihgf ~~} - - hiijjkkl54433221@AABBCCD]\\[[ZZY deeffggh98877665JKKQQRRS0//..--,XXYYZZ[[@@??>>==55667788hhggffee YYZZ[[\\DDCCBBAA11223344llkkjjii - - }}~~~~}}|uvvwwxxy(''&&%%$MNNOOPPQPOONNMML%&&''(()xwwvvuutqrrssttu,++**))(IJJKKLLMTSSRRQQP*++,,--.llkkjjii~~}}|| !!""eeddccbb !!""##$}||{{zzy lmmnnoop100//..-DEEFFGGHYXXWWVVU ~~} - - hiijjkkl54433221STTUUVVW,++**))(\\]]^^__<<;;::9999::;;<>==55667788hhggffee  |{{zzyyx yzz{{||}$##""!! QRRSSTTULKKJJIIH)**++,,-tssrrqqpuvvwwxxy(''&&%%$MNNOOPPQPOONNMML.//00117hhggffee {{zzyyxx##$$%%&&aa``__^^$%%&&''(yxxwwvvupqqrrsst-,,++**)HIIJJKKLUTTSSRRQ !!""##$}||{{zzy lmmnnoop100//..-WXXYYZZ[(''&&%%$``aabbcc88776655==>>??@@``__^^]]aabbccdd<<;;::9999::;;<>??@@``__^^]]tssrrqqp YZZ[[\\]DCCBBAA@12233445lkkjjiih - - }~~ UVVWWXXYHGGFFEED;<<==>>?``__^^]]%%&&''((ssrrqqpp++,,--..YYXXWWVV,--..//0qppoonnmxyyzz{{|%$$##""!PQQRRSSTMLLKKJJI())**++,uttssrrqtuuvvwwx)((''&&%_``aabbc jkkllmmn00//..--EEFFGGHHXXWWVVUU ~~}} - - iijjkkll44332211AABBCCDD\\[[ZZYY~~}}||poonnmml]^^__``a@??>>==<56677889hggffeed YZZ[[\\]DCCBBAA@?@@AABBC\\[[ZZYY))**++,,oonnmmll//001177UUTTSSRR01122334mllkkjji - - |}}~~! TUUVVWWXIHHGGFFE,--..//0qppoonnmxyyzz{{|%$$##""!cddeekklnooppqqr,,++**))IIJJKKLLTTSSRRQQ!!""##$$||{{zzyymmnnoopp00//..--EEFFGGHHXXWWVVUU {{zzyyxxlkkjihgfabbccdde<;;::9989::;;<<=dccbbaa`]^^__``a@??>>==>??@@A`__^^]]\abbccdde<;;::998GHHIIJJKTTSSRRQQ11223344bbaa``__<<==>>??KJJIIHHG899::;;>=45566778ihhggffe pqqrrsst vwwxxyyz$$##""!!QQRRSSTTLLKKJJII))**++,,ttssrrqquuvvwwxx((''&&%%MMNNOOPPPPOONNMM%%&&''((ssrrqqpp##$$%%&&aa``__^^ !~~}}| - - ijjkkllm43322110ABBCCDDE\[[ZZYYX effgghhi87766554KQQRRSSTPPOONNMM55667788^^]]\\[[@@AABBCCGFFEEDDC<==>>??@a``__^^]`aabbccd=<<;;::9899::;;>??@a``__^^]xyyzz{{|~YYZZ[[\\DDCCBBAA11223344llkkjjii - - }}~~ UUVVWWXXHHGGFFEE--..//00kkeeddcc++,,--..YYXXWWVV%&&''(()xwwvvuutqrrssttu,++**))(IJJKKLLMTSSRRQQP!""##$$%|{{zzyyxmnnooppq0//..--,XYYZZ[[\HHGGFFEE==>>??@@VVUUTTSSHHIIJJKK?>>==<<;DEEFFGGHYXXWWVVU ~~} - - hiijjkkl54433221@AABBCCD]\\[[ZZY |}}~~]]^^__``@@??>>==55667788hhggffee YYZZ[[\\DDCCBBAA11223344bbaa``__//001177UUTTSSRR)**++,,-tssrrqqpuvvwwxxy(''&&%%$MNNOOPPQPOONNMML%&&''(()xwwvvuutqrrssttu,++**))(\]]^^__`DDCCBBAAAABBCCDDRRQQKKJJQQRRSSTT;::99887HIIJJKKLUTTSSRRQ !!""##$}||{{zzy lmmnnoop100//..-DEEFFGGHYXXWWVVU ~~} - -  - - aabbccdd<<;;::9999::;;<>==55667788^^]]\\[[8899::;;QQPONMLK-..//001poonnmml yzz{{||}$##""!! QRRSSTTULKKJJIIH)**++,,-tssrrqqpuvvwwxxy(''&&%%$`aabbccd@@??>>==EEFFGGHHIIHHGGFFUUVVWWXX76543211LMMNNOOPQPPOONNM$%%&&''(yxxwwvvupqqrrsst-,,++**)HIIJJKKLUTTSSRRQ !!""##$}||{{zzy   eeffgghh88776655==>>??@@``__^^]]aabbccdd<<;;::9999::;;<>??KJJIIHHG12233445lkkjjiih - - }~~ UVVWWXXYHGGFFEED-..//001poonnmml yzz{{||}$##""!! deekkllm<<;;::99IIJJKKLLEEDDCCBBYYZZ[[\\00//..--PQQRRSSTMLLKKJJI())**++,uttssrrqtuuvvwwx)((''&&%LMMNNOOPQPPOONNM$%%&&''(yxxwwvvu~~}}||{~~}} - - iijjkkll44332211AABBCCDD\\[[ZZYY eeffgghh88776655==>>??@@VVUUTTSS@@AABBCCGFFEEDDC56677889hggffeed YZZ[[\\]DCCBBAA@12233445lkkjjiih - - }~~ mnnooppqrqqppoon88776655MMNNOOPPAA@@??>>]]^^__``,,++**))TUUVVWWXIHHGGFFE,--..//0qppoonnmxyyzz{{|%$$##""!PQQRRSSTMLLKKJJI())**++,uttssrrq{zzyyxxw||{{zzyymmnnoopp00//..--EEFFGGHHXXWWVVUU ~~}} - - iijjkkll44332211AABBCCDDRRQQKKJJDDEEFFGGCBBAA@@?9::;;<<=dccbbaa`]^^__``a@??>>==<56677889hggffeed qrrssttunmmllkke44332211QQRRSSTT==<<;;::aabbccdd((''&&%%XYYZZ[[\EDDCCBBA01122334mllkkjji - - |}}~~! TUUVVWWXIHHGGFFE,--..//0qppoonnm - - wvvuuttsxxwwvvuuqqrrsstt,,++**))IIJJKKLLTTSSRRQQ!!""##$$||{{zzyymmnnoopp00//..--EEFFGGHHIIHHGGFFHHIIJJKK?>>==<<;=>>??@@A`__^^]]\abbccdde<;;::9989::;;<<=dccbbaa`uvvwwxxyeddccbba00//..--UUVVWWXX99887711eekkllmm$$##""!!\]]^^__`A@@??>>=45566778ihhggffe XYYZZ[[\EDDCCBBA01122334mllkkjji srrqqppo !!""ttssrrqquuvvwwxx((''&&%%MMNNOOPPPPOONNMM%%&&''((xxwwvvuuqqrrsstt,,++**))IIJJKKLLEEDDCCBBQQRRSSTT;::99887ABBCCDDE\[[ZZYYX effgghhi87766554=>>??@@A`__^^]]\yzz{{||}a``__^^],,++**))YYZZ[[\\00//..--nnooppqq `aabbccd=<<;;::9899::;;>=45566778ihhggffeonnmmllk##$$%%&&ppoonnmmyyzz{{||$$##""!!QQRRSSTTLLKKJJII))**++,,ttssrrqquuvvwwxx((''&&%%MMNNOOPPAA@@??>>UUVVWWXX76543211EFFGGHHIXWWVVUUT !~~}}| - - ijjkkllm43322110ABBCCDDE\[[ZZYYX }~~]\\[[ZZY((''&&%%]]^^__``,,++**))rrssttuudeeffggh98877665<==>>??@a``__^^]`aabbccd=<<;;::9899::;;>??@a``__^^] !baa``__^++,,--..hhggffee YYZZ[[\\DDCCBBAA11223344llkkjjii - - }}~~ UUVVWWXX99887711]]^^__``,,++**))MNNOOPPQPOONNMML%&&''(()xwwvvuutqrrssttu,++**))(IJJKKLLMTSSRRQQP!""##$$%|{{zzyyx~UTTSSRRQ eeffgghh$$##""!!zz{{||}}lmmnnoop100//..-DEEFFGGHYXXWWVVU ~~} - - hiijjkkl54433221@AABBCCD]\\[[ZZY!""##$$%^]]\\[[Z//001123ddccbbaa]]^^__``@@??>>==55667788hhggffee YYZZ[[\\00//..--aabbccdd((''&&%%QRRSSTTULKKJJIIH)**++,,-tssrrqqpuvvwwxxy(''&&%%$MNNOOPPQPOONNMML%&&''(()xwwvvuut~}}||{{zQKKJJIIHiijjkkll ~~ -pqqrrsst-,,++**)HIIJJKKLUTTSSRRQ !!""##$}||{{zzy lmmnnoop100//..-DEEFFGGHYXXWWVVU%&&''(()ZYYXXWWV45677889``__^^]]aabbccdd<<;;::9999::;;<>??@@``__^^]]aabbccdd((''&&%%nnooppqq YZZ[[\\]DCCBBAA@12233445lkkjjiih - - }~~ UVVWWXXYHGGFFEED-..//001poonnmml - - vuuttssrDCCBBAA@@??>>==>==<<66778899ggffeeddZZ[[\\]]CCBBAA@@22334455kkjjiihh - - ~~~~}}||{vwwxxyyz'&&%%$$#NOOPPQQRONNMMLLK&''(())*wvvuuttsrssttuuv qppoonnm+**))((']]^^__``;;::9988::;;<<==ccbbaa``^^__``aa??>>==<<66778899ggffeedd - -{zzyyxxw -z{{||}}~#""!! RSSTTUUVKJJIIHHG*++,,--.srrqqppovwwxxyyz - - -mllkkjji'&&%%$$#aabbccdd77665544>>??@@AA__^^]]\\bbccddee;;::9988::;;<<==ccbbaa`` wvvuutts - ~VWWXXYYZGFFEEDDC.//00112onnmmllk -z{{||}}~ - ihhggffe #""!! eefghijk33221100BBCCDDEE[[ZZYYXX ffgghhii77665544>>??@@AA__^^]]\\srrqqppoZ[[\\]]^CBBAA@@?23344556kjjiihhg - ~eddccbba !!""##$kllmmnno//..--,,FFGGHHIIWWVVUUTT !!~~}}|| - - jjkkllmm33221100BBCCDDEE[[ZZYYXX~~}}||{{onnmmllk^__``aab?>>==<<;6778899:gffeeddca``__^^]$%%&&''(oppqqrrs++**))((JJKKLLMMSSRRQQPP""##$$%%{{zzyyxxnnooppqq//..--,,FFGGHHIIWWVVUUTT !!zzyyxxwwkjihgfeebccddeef;::99887:;;<<==>cbbaa``_]\\[[ZZY())**++,sttuuvvw''&&%%$$NNOOPPQQOONNMMLL&&''(())wwvvuuttrrssttuu++**))((JJKKLLMMSSRRQQPP""##$$%%vvuuttss !!""##ddccbbaa fgghhiij76655443>??@@AAB_^^]]\\[~~}}||{ !!""#YXXWWVVU,--..//0 -wxxyyzz{##""!! RRSSTTUUKKJJIIHH**++,,--ssrrqqppvvwwxxyy''&&%%$$NNOOPPQQOONNMMLL&&''(())rrqqppoo$$%%&&''``__^^]] !!"~~}}||{ - - jkkllmmn3221100/BCCDDEEF[ZZYYXXW{zzyyxxw#$$%%&&'UTTSSRRQ01122334 - {||}}~~VVWWXXYYGGFFEEDD..//0011oonnmmll zz{{||}}##""!! RRSSTTUUKKJJIIHH**++,,--nnmmllkk(())**++\\[[ZZYY"##$$%%&{zzyyxxwnooppqqr/..--,,+FGGHHIIJWVVUUTTS !!"wvvuutts'(())**+QPPOONNM45566778ZZ[[\\]]CCBBAA@@22334455kkjjiihh - - ~~VVWWXXYYGGFFEEDD..//0011eeddccbb,,--..//XXWWVVUU&''(())*wvvuuttsrssttuuv+**))(('JKKLLMMNSRRQQPPO"##$$%%&srrqqppo+,,--../MLLKKJJI899::;;< ^^__``aa??>>==<<66778899ggffeeddZZ[[\\]]CCBBAA@@22334455aa``__^^00117788TTSSRRQQ*++,,--.srrqqppovwwxxyyz'&&%%$$#NOOPPQQRONNMMLLK&''(())*onnmmllk/0011778IHHGGFFE<==>>??@ - - bbccddee;;::9988::;;<<==ccbbaa``^^__``aa??>>==<<66778899]]\\[[ZZ99::;;<>??@@AA__^^]]\\bbccddee;;::9988::;;<<==YYXXWWVV==>>??@@JIIHHGGF23344556kjjiihhg - ~VWWXXYYZGFFEEDDC.//00112baa``__^<==>>??@A@@??>>=DEEFFGGH~~}}|| - - jjkkllmm33221100BBCCDDEE[[ZZYYXX ffgghhii77665544>>??@@AAUUTTSSRRAABBCCDDFEEDDCCB6778899:gffeeddcZ[[\\]]^CBBAA@@?23344556^]]\\[[Z@AABBCCD=<<;;::9HIIJJKKL{{zzyyxxnnooppqq//..--,,FFGGHHIIWWVVUUTT !!~~}}|| - - jjkkllmm33221100BBCCDDEEQQKKJJIIEEFFGGHHBAA@@??>:;;<<==>cbbaa``_^__``aab?>>==<<;6778899:ZYYXXWWVDEEFFGGH98877665LMMNNOOPwwvvuuttrrssttuu++**))((JJKKLLMMSSRRQQPP""##$$%%{{zzyyxxnnooppqq//..--,,FFGGHHIIHHGGFFEEIIJJKKQQ>==<<;;:>??@@AAB_^^]]\\[bccddeef;::99887:;;<<==>VUUTTSSRHIIJJKKQ54433221PQQRRSST !!""##ssrrqqppvvwwxxyy''&&%%$$NNOOPPQQOONNMMLL&&''(())wwvvuuttrrssttuu++**))((JJKKLLMMDDCCBBAARRSSTTUU:9988776BCCDDEEF[ZZYYXXW fgghhiij76655443>??@@AABRQQKKJJIQRRSSTTU100//..-TUUVVWWX$$%%&&''oonnmmll zz{{||}}##""!! RRSSTTUUKKJJIIHH**++,,--ssrrqqppvvwwxxyy''&&%%$$NNOOPPQQ@@??>>==VVWWXXYY54321100FGGHHIIJWVVUUTTS !!"~~}}||{ - - jkkllmmn3221100/BCCDDEEFIHHGGFFEUVVWWXXY-,,++**)XYYZZ[[\(())**++kkjjiihh - - ~~VVWWXXYYGGFFEEDD..//0011oonnmmll zz{{||}}##""!! RRSSTTUU<<;;::99ZZ[[\\]]//..--,,JKKLLMMNSRRQQPPO"##$$%%&{zzyyxxwnooppqqr/..--,,+FGGHHIIJEDDCCBBAYZZ[[\\])((''&&%\]]^^__`,,--..//ggffeeddZZ[[\\]]CCBBAA@@22334455kkjjiihh - - ~~VVWWXXYY88771100^^__``aa++**))((NOOPPQQRONNMMLLK&''(())*wvvuuttsrssttuuv+**))(('JKKLLMMNA@@??>>=]^^__``a%$$##""!`aabbccd00112345ccbbaa``^^__``aa??>>==<<66778899ggffeeddZZ[[\\]]//..--,,bbccddee''&&%%$$RSSTTUUVKJJIIHHG*++,,--.srrqqppovwwxxyyz'&&%%$$#NOOPPQQR=<<;;::9abbccdde! deeffggh6778899:__^^]]\\bbccddee;;::9988::;;<<==ccbbaa``^^__``aa++**))((kkllmmnn##""!! VWWXXYYZGFFEEDDC.//00112onnmmllk -z{{||}}~#""!! RSSTTUUV98877110ekkllmmnhiijjkkl:;;<<==>[[ZZYYXX ffgghhii77665544>>??@@AA__^^]]\\bbccddee''&&%%$$ooppqqrrZ[[\\]]^CBBAA@@?23344556kjjiihhg - ~VWWXXYYZ0//..--,nooppqqrlmmnnoop>??@@AABWWVVUUTT !!~~}}|| - - jjkkllmm33221100BBCCDDEE[[ZZYYXX ffgghhii##""!! ssttuuvv^__``aab?>>==<<;6778899:gffeeddcZ[[\\]]^,++**))(rssttuuvpqqrrsstBCCDDEEFSSRRQQPP""##$$%%{{zzyyxxnnooppqq//..--,,FFGGHHIIWWVVUUTT !!~~}}|| - - jjkkllmmwwxxyyzzbccddeef;::99887:;;<<==>cbbaa``_^__``aab(''&&%%$vwwxxyyz tuuvvwwxFGGHHIIJOONNMMLL&&''(())wwvvuuttrrssttuu++**))((JJKKLLMMSSRRQQPP""##$$%%{{zzyyxxnnooppqq{{||}}~~ fgghhiij76655443>??@@AAB_^^]]\\[bccddeef$##""!! z{{||}}} - - xyyzz{{||}}fpvf~HbHAZdrtAJJXQrJAdbtlnXv`Zp˂AJltfH~ˑZHAbrbtl|ZdQfpvbHAdrtvXnp`JXlJtfpvbHAZdrtAbdQZ|`vXnے`JXQtArdf~HXQJ`ےbdQZ|JltH~fr˂prd|fvnX˂rXJlt~f`ZHAbۉlJtZdQbtfpvbHAZpdrtAvpfHr˂plJtnXv`fpvp˂rltbZHAbۂ|ZdQJtArdf~HrXQJ`ۉbdQZ|f`vXے`JXJtAdbtlnXv`Zp˂AJltf`Qr˂pArd|nXv`p˂rJltdtAJvpfr˂p|ZdQbfpvbHAZdrtAbdQZ|`vXnZHAbZdQbtv`fQJ`ےbdQZ|vXn`JXQArd|lJnXv`ˑ˂rXJlt~f`ZHAbArd|f~HnXv`XQJ`ےdQZ|``JXQbtl|ZdQfpvbHAdrtnvpQr˂p|ZdQJtArdf~HrXQJ`ۉbdQZ|vXnۑZHAbZdQbtf~HXQJ`ےbdQZ|ltbH~fZHAbtlJnXv`p˂rJltdtAJvpf˂pZlJtA~HfpۙbHAZpdrtAvpfHr˂pZdQbtfpvf~HQJ`ےbdQZ|vXn`JXQZdQtAfpvp˂rbHAZvXnr˂pJtArdbtlnXv`Zp˂AJltfH~ˑZHAbbtl|ZdQfpvbHAdrtvpfHے`JXlJArfpvbHAZdrtAnvp`vXnے`JXQtArdf~HXQJ`ےbdQZ|ltbH~fHAbےrdtvnX˂rXJlt~f`ZHAbۉlJtnXv`fpvbHAZpdrtAvpfHr˂prd|nXv`XQJ`ےp˂rvpfHZHAbۂ|ZdQJfpvf~HrXQJ`ۉbdQZ|f`vXے`JXJtArdbtlnXv`Zp˂AJlt~f`Qr˂p|ZdQnXv`p˂rJltfHfvpfr˂p|ZdQbfpvbHAZdrtAnvp`vXn`JXQrlJfpv`ffpQJ`ےbdQZ|vXn`JXQArd|f~HnXv`ˑ˂rXJlt~f`ZHAbZdQbtf~HbHAZXQJ`ے~f``JXQbtlnXv`fpvbHAdrtnvpQr˂p|ZdQJfpvf~HrXQJ`ۉbdQZ|vXnۑZHAXQbtlf~HXQJ`ےbdQZ|`vXnH~fZHAbtlJnXv`p˂rJltfHfvpf˂p`vnvvnbHAZpdrtAvpfHr˂pZdQbtfpvfHfpQJ`ےbdQZ|vXn`JXQlJtAfpvp˂rJltvXH~rZAbJtArdf~HnXv`Zp˂AJltfH~ˑZHAbbtlnXv`fpvbHAdrtvp`vXr˂pJtArdfpvbHAZdrtAvpf`vXnے`JXQtArdf~HXQJ`ےbdQZ|`vXnH~fJXQrbf~HrXQJ`ۑ˂rXJlt~f`ZHAbۉlJtnXv`˝vnbHAZpdrtAvpfHr˂prd|nXv`XQJ`ےdrtAJf`vے`J|ZdQfpvfHrXQJ`ۉbdQZ|f`vXے`JXJtArdf~HnXv`Zp˂AJltnvpZHAb|ZdQnXv`p˂rJltH~fvpfr˂p|ZdQbfpvbHAZdrtAvpf`vXntl|fpv㒐HAZpQJ`ےbdQZ|vXn`JXQArd|f~HrXQJ`ۑ˂rXJlt~f`ZHAbZdQbtdf~HbHAZltbXnvXQr˂btlnXv`fpv㒐bHAdrtnvpQr˂p|ZdQfpvfHrXQJ`ۉbdQZ|fH~`JXQbtlf~HXQJ`ےbdQZ|`vXnے`JXQZHAbtlJnXv`p˂rJltH~fvpfZdQbtnXv`ˑ˂rXbHAZpdrtAvpfHr˂pZdQbtfpv㒐HAZpQJ`ےbdQZ|vXn`JXQ|Zdfpvp˂rdQZ|pfH~pZHAbJtArdf~HnrXQJ`Zp˂AJltfH~ˑZHAbbtlnXv`fpv㒐bHAdrtf`vXr˂pJtArfpvbHAZdrtAvpfr˂pے`JXQtArdf~HXQJ`ےbdQZ|`vXnے`JXQlJtAf~HQJ`ے˂rXJlt~f`ZHAbۉlJtnXv`ˑ˂rXbHAZpdrtAvpfHr˂pQbtlnXv`XQJ`ےdrtAJf`vے`J|ZdQfpvےHArXQJ`ۉbdQZ|f`vXے`JXJtArdf~HnrXQJ`Zp˂AJltnvpZHAbZdQbtnXv`p˂rJltH~fZHAbr˂p|ZdQbfpvbHAZdrtAvpfHAbےrd|fpvbHAZpQJ`ےbdQZ|vXn`JXQArd|f~HQJ`ے˂rXJlt~f`ZHAbۑJtArdf~HbHAZltbXnXQr˂btlnXv`Zp˂󒐙bHAdrtnvpQr˂p|ZdQfpvےHArXQJ`ۉbdQZ|fHX˂pZHlJtAf~HXQJ`ےbdQZ|`vXnے`JXQZHAےtlJnXv`p˂rJltH~f`JXQrZdQtArnXvf~˂rXJltdrtAvpfHr˂pZdQbtfpvbHAZpQJ`ےbdQZ|vXn`JXQ|Zdfpvp˂rdQtAJlf`vXpZAb`JtArdf~HrXQJ`Zp˂AJltfH~ˑZHAbbtlnXv`Zp˂󒐙bHAdrtnvpAbے`rd|fpvbHAZdrtAvpfr˂p`JXQrtArdf~HXQJ`ےbdQZ|`vXn˂pZd|ZHfpvQJ`ےbdQZ|Jlt~f`ZHAbۉlJtnXv`ˑ˂rXJltdrtAvpfHr˂pQbtlnXv`XQJ`ےtbdQnvpJXQr|ZdQfpvbHArXQJ`ۉbdQZ|f`vXے`JXJtArdf~HrXQJ`Zp˂AJltfH~ˁJXQrZdQbtnXv`p˂rJltH~fZHAbbtl|ZdQbfpvbHAZdrtAvpfHAbےdQbt璀nXvbHAZpdrtAbdQZ|vXn`JXQArd|f~HQJ`ےbdQZ|Jlt~f`ZHAbۑ|ZdQf~HbHAZZ|dfH~˂pZHbtlnXv`Zp˂JltdrtnvpQr˂p|ZdQfpvbHArXQJ`ۉbdQZ|f`vX˂p`lJtAf~HXQJ`ےbdQZ|`vXnے`JXQJtAdtlJnXv`p˂rJltH~f`JXQrlJtAr`f~˂rXJltdtAJlvpfHr˂pZdQbtfpvbHAZpdrtAbdQZ|vXn`JXQbtlfpvp˂rrtAJlf`vXAbے`JtArdf~HrXQJ`ۉbdQZ|AJltfH~ˑZHAbbtlnXv`Zp˂JltdrtnvpJXQrbtrdZQbfpvbHAZdrtAvpfr˂p|ZdQbtArdf~HXQJ`ےbdQZ|`vXnے`d|ZHfpvQJ`ےbdQZ|tb~f`ZHAbۉlJtnXv`ˑ˂rXJltdtAJlvpfHr˂pJtArdnXv`XQJ`ےtbdQnvpJXQr|ZdQfpvbHAdrtbdQZ|f`vXے`JXJtArdf~HrXQJ`ۉbdQZ|AJltfH~lJAtlJnXv`p˂rJltH~fZHAbtlJ|ZdQbfpvbHAZdrtAvpfJXQrdQbtdnXvbHAZpdrtAnvpvXn`JXQArd|f~HQJ`ےbdQZ|tb~f`ZHAbۂ|ZdQf~HbHAZZ|l`vXn˂pZHbtlnXv`Zp˂AJltdtAnvpQr˂p|ZdQfpvbHAdrtbdQZ|vpfۂ|ZdQfpvf~HXQJ`ےbdQZ|`vXnے`JXQtArdtlJnXv`p˂rJltH~f˂pZHA|ZdQ`f~fp˂rXJltfHf`vpfHr˂pZdQbtfpvbHAZpdrtAnvpvXn`JXQbtlfpvp˂rtbdQZvpfAbJXQJtArdf~HrXQJ`ۉbdQZ|JltfH~ˑZHAbbtlnXv`Zp˂AJltdtA`JXQHbtlnXv`fpvbHAZdrtAvpfr˂p|ZdQbfpvf~HXQJ`ےbdQZ|`vXnbے`btlvnXQJ`ےbdQZ|vXn~f`ZHAbۉlJtnXv`ˑ˂rXJltfHf`vpfHr˂pJtAdQbtnXv`XQJ`ے|drH~fr˂p|ZdQfpvbHAdrtbnvpf`vXے`JXJtArdf~HrXQJ`ۉbdQZ|JltAbے`JtArdf~HnXv`p˂rJltH~fZHAbtlJnXv`fpvbHAZdrtAvpfJXQrJtArdv`fbHAZpdrtAvpfHvXn`JXQArd|f~HQJ`ےbdQZ|vXn~f`ZHAbۉlJt~Hfpf~HbHAZtAJl`vXnZHAbbtlnXv`Zp˂AJltfHnvpQr˂p|ZdQfpvbHAdrtbnvpJXQr|ZdQbfpvfHfXQJ`ےbdQZ|`vXnے`JXQtArdf~HnXv`p˂rJltH~f˂p`J|ZdQ~Hfp˂rXJlt~f`vpfr˂pZdQbtfpvbHAZpdrtAvpfHvXn`JXQArd|vnXHfpvp˂rtbdQZvpfے`JXQJtArdf~HrXQJ`ۉbdQZ|f`vXfH~ˑZHAbbtlnXv`Zp˂AJlt`vX˂pZHJtArnXv`pvnbHAZdrtAvpfr˂p|ZdQbfpvfHfXQJ`ےbdQZ|`vXnXQr˂btlvnXQJ`ےbdQZ|vXn`JXQZHAbۉlJtnXv`ˑ˂rXJlt~f`vpfr˂pZdQbtfpvnXv`XQJ`ے|dtHXnr˂p|ZdQfpvbHAdrtnvpf`vXے`JXJtArdf~HrXQJ`ۉbdQZ|nvpAbے`d|Zf~HrXQJ`p˂rJltH~fZHAbtlJnXv`pvnbHAZdrtAvpfpZHAb|ZdQbv`fbHAZpdrtAvpfHr˂p`JXQArd|f~HQJ`ےbdQZ|vXn`JXQZHAbۉlJtnXv`f~HbHAZbdQZ|vpfHZHAbbtlnXv`Zp˂AJltfH~nvpQr˂p|ZdQfpvbHAdrtfH~ˁJXQrdQbtfpvےHAZXQJ`ےbdQZ|`vXnے`JXQtArdf~HrXQJ`p˂rJltH~fے`JtlJ~fv˂rXJlt~f`ZHAbr˂pZdQbtfpvbHAZpdrtAvpfHr˂p`JXQArdtf~Hfpvp˂rdrtA~f`JQrJtArdf~HrXQJ`ۉbdQZ|f`vXfے`JXZHAbbtlnXv`Zp˂AJltf`vXHے`lJtArnXv`p˂rbHAZdrtAvpfr˂p|ZdQbfpvےHAZXQJ`ےbdQZ|`vXnXQr˂tArdnXv`QJ`ےbdQZ|vXn`JXQZHAے`lJtnXv`ˑ˂rXJlt~f`ZHAbr˂plJfpfpvnXv`XQJ`ےJltvXnpZHA|ZdQfpvbHAdrtnvpQr˂pے`JXJtArdf~HrXQJ`ۉbdQZ|~f`JXQrd|Zf~HXQJ`ےp˂rJltH~fZHAbtlJnXv`p˂rbHAZdrtAvpfpZHAXQ|ZdQbf~HbHAZpdrtAvpfHr˂pJXQrArd|f~HQJ`ےbdQZ|vXn`JXQZHAے`vnXv`f~HbHAZbdQZ|vpfHbے`btlnXv`Zp˂AJltfH~ˑZHAbQr˂p|ZdQfpvbHAdrtvXnpZHAdQbtfpvbHAZXQJ`ےbdQZ|`vXnے`JXQtArdf~HXQJ`ےp˂rJltH~fr˂ptlJfpv˂rXJlt~f`ZHAbbtlZdQbtfpvbHAZpdrtAvpfHr˂pJXQr~Hfpۍpvfpvp˂rdrtA~vJXQrJtArdf~HrXQJ`ۉbdQZ|f`vXے`JXZHAbtlnXv`Zp˂AJltvpfHbے`JArd|nXv`p˂rJltdrtAvpfr˂p|ZdQbfpvbHAZXQJ`ےbdQZ|`vXnZHAbtAdQbtnXv`QJ`ےbdQZ|vXn`JXQJtAd|lJtnXv`ˑ˂rXJlt~f`ZHAbbtl|vnXnXv`nXv`XQJ`ےdQZ|pfے`pZHAb|ZdQfpvbHAdrtnvpQr˂p`JXQJtArdf~HrXQJ`ۉbdQZ|~f`JXQrˁZdQbtf~HXQJ`ےbdQZ|JltH~fZHAbtlJnXv`p˂rJltdrtAvpfے`JXQlJtAf~HbHAZpdrtAvpfHr˂pZdQbtArd|f~HQJ`ےbdQZ|vXn`JXQZdQbtv`ff~HfpvJ`bAZltb~f`HAbےtlJZdQbtpvnbHAZpdrtAJvpfH˂pZJXQrbrd|~HfpHAXQJ`bdQZ|vXnہJXQrrd|~HfpJ`ےQZ|dtbd~f`ZHAbf۝`vp|drnXv`p˂rdQZ|vXn`JXQrtAd|lJtAXv`f˂rXQltb~f`HAbےtlJZdQbtvnXےJl璁AJlvpfH˂pZHZdQbtvnXbHAZp˙rtAJlQZ|dvXnۉ˂pZHXnvˍQtJlfnXXQJ`ےdrtAJvpfH˂pZZdQbtrd|~HfJ`ےdQZ|vXn`JXQrtAd|lJtAv`pvtbQZdtbn~f`Abے`lJtAv`frXQtbdtAJlvpfHAbے`pfH~tbAdZv`fbHAZltb~f`HAbےlJtAZdQbtpvnbHAZpdrtAJvpfH˂pZZdQbtrd|nrXQrtAJlvpfHvXnہJXQrrd|~HfpJ`ےQZ|dtbn~f`JXQrf۝`v|dr~Hfpp˂rdQZ|vXn`JXQrrd|lJfXv`f˂rXQltb~f`HAbےlJtAZdQbtJ`p˂tbdf`vpfH˂pZHZdQbtvnXbHAZp˙rtAJlvpfHvXnۉ˂p`ZXnvˍQtJlvnXXQJ`ےdrtAJvpfH˂pZZdQbtpvn~HfJ`ےdQZ|vXn`JXQrrd|lJfrXQJQZ|dvXn~f`Abے`lJtAv`frXQtbdf`vpfHQXb㉀pfH~tbAdZv`fbAZltb~f`HAbےlJtAXv`fpvnbHAZpdrtAJvpfH˂pZZdQbtpv`ےbrtAJlvpfHvXnہJXQrrd|~HfpJ`ےQZ|dvXn~f`ۑpJAHrf۝`v|dr~HXrXQJ`dQZ|vXn`JXQrrd|~HfXv`f˂rXQltb~f`HAbےlJtA~HfpHAZp˂tbd~f`vpfے`˂pZHZdQbtvnXbHAZp˙rtAJlvpfHvXn󙐂ˁ`ZXnvˍQtJlv`fےbHdrtAJvpfH˂pZZdQbtpvnHfpJ`ےdQZ|vXn`JXQrrd|vnXbHAQZrtAvXnہJXQrAbے`lJtAv`frXQtbd~f`vpfZHQXAHrpfH~tbAdZ~HfpAZp˂ltb~f`HAbےlJtAXv`fvnrbHAZpdrtAJvpfH˂pZZdQbtv`fZp˂JltvpfH˂pZHJXQrrd|~HfpJ`ےQZ|dvXnAbے`ˁ`ZQf۝`v|drvnXrXQJ`dQZ|vXn`JXQrrd|~HfXQJ`ے˂rXQltb~f`HAbےlJtA~HfprXQJ`bdQZ|~f`Abے`˂pZHZdQbtvnXbHAZp˙rtAJlvpfHJXQrXb㉀ۑXnvˍQtJlv`pvےbHdrtAJvpfH˂pZZdQbtpvnHAZpJ`ےdQZ|vXn`JXQrrd|vnXےbHAdrtAvXnہJXQrAے`lJtAv`frXQtbd~f`˂pZHpJAHrpfH~tbAdZnrXQAZrXQltb~f`HAbےlJtAXv`f˂rXQbHAZpdrtAJvpfH˂pZZdQbtHfpvZp˂JltvpfH˂pZHJXQrbtrd|~HfpJ`ےQZ|dvXnAbے`ˁ`ZQf۝`v|drJ`AZpJ`ےJdQZ|vXn`JXQrrd|~HfJ`ے˂rXQltb~f`HAbےlJtAnXvrXQHAZbdQZ|~f`Abے`lJtZdQbtvnXbHAZp˙rtAJlvpfHJXQrXb㉀XnvˍQtJl˂rXltbdrtAJvpfH˂pZZdQbtpvnbHAZpJ`ےJdQZ|vXn`JXQrrd|`f~p˂rrAJlvXnہJXQrAd|lJtAv`frXQtbd~f`ے`ˁ`ZQXbpfH~tbAdZQJ`ےdQZ|ltb~f`HAbےlJtAXv`f˂rXQltbdrtAJvpfH˂pZZdQbtHfpvXQJ`ےtbdQvpfH˂pZHZdQbtrd|~HfpJ`ےQZ|dvXnJXQr㉀ۑpJf۝`v|drbHAZpdrtAJdQZ|vXn`JXQrrd|~HfJ`ےdQZ|ltb~f`HAbےlJtAnXvbHAZZ|d~f`Abے`lJtAZdQbtvnXbHAZp˙rtAJlvpfHpZHAAHr󙐂XnvˍQtJl˂rQJltbdtAJlvpfH˂pZZdQbtpvnbHAZpdrtAJdQZ|vXn`JXQrrd|`pvp˂rrtAJlvXnہJXQrrd|lJfpv`frXQtbd~f`bے`ˁ`ZQXbpfH~tbAdZbHAdQZ|tbn~f`HAbےlJtAXv`f˂rXQltbdtAJlvpfH˂pZZdQbtnXv`XQJ`ptbdQvpfH˂pZHZdQbtvnX~HfpJ`ےQZ|dvXnJXQr㉀ۑpf۝`v|drZp˂drtAJvpfvXn`JXQrrd|~HfJ`ےdQZ|tbn~f`HAbےlJtAf~H˂rXQZ|dr~f`Abے`lJtAv`fvnXbHAZp˙rtAJlvpfHp`JX`ZQXbXnvˍQtJlrXQJ`ltbHf`vpfH˂pZZdQbtpvnbHAZpdrtAJvpfvXn`JXQrrd|fpvJ`ےAJtbvXnہJXQrrd|~Hfpv`frXQtbd~f`Qr˂pۑpJApfH~tbAdZےbHAdQZ|vXn~f`HAbےlJtAXv`f˂rXQltbHf`vpfH˂pZZdQbtnXv`bHAZpdQZ|vpfH˂pZHZdQbtvnXHfpJ`ےQZ|dvXnۑZHAbHr󙐂ˁf۝`v|drZp˂drtAJvpfHvXn`JXQrrd|~HfJ`ےdQZ|vXn~f`HAbےlJtAfn˂rXQdrtAJ~f`Abے`lJtAv`fvnrXbHAZp˙rtAJlvpfHے`JX`ZQXbXnvˍQtJlrXQJltb~f`vpfے˂pZZdQbtpvnbHAZpdrtAJvpfHvXn`JXQrrd|Xv`fJ`ےltbvXnہJXQrrd|~HfpQJ`ےrXQtbd~f`Qr˂pۑpJApfH~tbAdZbHAZpdQZ|vXn`JXQrHAbےlJtAXv`f˂rXQltb~f`vpfے˂pZZdQbt~HfrXQJdQZ|vpfH˂pZHZdQbtvnXHAZpJ`ےQZ|dvXnۑZHAXQHQXb㉀f۝`v|drrXQdrtAJvpfH˂pZ`JXQrrd|~HfJ`ےdQZ|vXn`JXQrHAbےlJtApvn`ےbdrtAJ~f`Abے`lJtAv`frXQbHAZp˙rtAJlvpfHr˂pۑpJAHrXnvˍQtJlJ`ےltb~f`HAbے˂pZZdQbtpvnbHAZpdrtAJvpfH˂pZ`JXQrrd|Xv`fHAZp˂bdQZ|vXnہJXQrrd|~HfpJ`ےむrXQtbd~f`ZHAb󙐂ˁ`ZpfH~tbAdZbHAZpdQZ|vXn`JXQrHAے`lJtAXv`f˂rXQltb~f`HAbے˂pZZdQbt~HXrXQJdrtvpfH˂pZHZdQbtvnXbHAZpJ`ےJlQZ|dvXnے`JXQQXb㉀f۝`v|drrXQdrtAJvpfH˂pZJXQrbrd|~HfJ`ےdQZ|vXn`JXQrHAے`lJtAv`f`ےbAJlt~f`Abے`lJtAv`frXQtbdrtAJlvpfHr˂pۑpJAHXnvˍQtJltKKKKKKKKKKKKKKKKKKKLLLLLLLLLL \ No newline at end of file diff --git a/vendor/endroid/qr-code/assets/data/qrv30_1.dat b/vendor/endroid/qr-code/assets/data/qrv30_1.dat deleted file mode 100755 index e50183cc4..000000000 --- a/vendor/endroid/qr-code/assets/data/qrv30_1.dat +++ /dev/null @@ -1,273 +0,0 @@ -}~}~}~}~}~}~}~}~{|{|{|{|{|{|{|{|{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwxuvuvuvuvuvuvuvuvststststststststststststqrqrqrqrqrqrqrqropopopopopopopopmnmnmnmnmnmnmnmnmlklklklklklklklklklklklijijijijijijijihghghghghefefefefeefefefedcdcdcdcdcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMKLKLKLKLKLKKKKKLIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDCDCDCDCDABABABABABABABAB?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=>;<;<;<;<;<;<;<;<;<;<;<;<9:9:9:9:9:9:9:9:78787878787878785656565656565656343434343434343421212121121212120/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!        }~}~}~}~}~}~}~}~{|{|{|{|{|{|{|{|{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwxuvuvuvuvuvuvuvuvststststststststststststqrqrqrqrqrqrqrqropopopopopopopopmnmnmnmnmnmnmnmnklklklklklklklklklklklklijijijijghghghghghghghghefefefeffefefefedcdcdcdcdcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMNMNMLKLKKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDCDCDCDCDABABABABABABABAB?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=>;<;<;<;<;<;<;<;<;<;<;<;<9:9:9:9:9:9:9:9:78787878787878785656565656565656343434343434343421211111121212120/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!        }~}~}~}~}~}~}~}~{|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwxuvuvuvuvuvuvuvuvststststststststststststqrqrqrqrqrqrqrqropopopopopopopopmnmnmnmnmnmnmnmnklklklklklklklklklklklklijijijijghghghghghghghghefefefeefefefefedcdcdcdcdcdcdcdcbabababababababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMLKLKKKKKKLKLKLKLIJIJIJIJIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDCDCDCDCBABABABABABABABAB?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=>;<;<;<;<;<;<;<;<;<;<;<;<9:9:9:9:9:9:9:9:78787878787878785656565656565656343434343434343412121212121212120/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!        }~}~}~}~}~}~}~}~{|{|{|{|{|{|{|{|yzyzyzyzyzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwxuvuvuvuvuvuvuvuvststststststststsrqrqrqrqrqrqrqrqrqrqrqropopopopopopopopmnmnmnmnmnmnmnmnklklklklklklklklklklklklijijijijghghghghghghghgheeeefefefefefefedcdcdcdcdcdcdcdcbabababababababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMKLKLKLKLKLKLKLKLIJIJIJIJIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDABABABABABABABABABABABAB?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=>;<;<;<;<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9:78787878787878785656565656565656343434343434343412121212121212120/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!"!        }~}~}~}~}~}~}~}~{|{|{|{|{|{|{|{|yzyzyzyzyzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwxuvuvuvuvuvuvuvuvststststststststqrqrqrqrqrqrqrqrqrqrqrqropopopopopopopopmnmnmnmnmnmnmnmnklklklklklklklklkjijijijijijijijghghghghghghghghfefefefefefefefedcdcdcdcdcdcdcdcbabababababababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQRQRQRQRQPOPOPOPOPOPOPONMNMNMNMNMKLKLKLKLKLKLKLKLIJIJIJIJIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDABABABABABABABABABABABAB?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=>;<;<;<;<;<;<;<;<9:9:9:9:9:9:9:9:9:9:9:9:78787878787878785656565656565656343434343434343412121212111111210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!"!"!"!"!        }~}~}~}~}~}~}~}~{|{|{|{|{|{|{|{|yzyzyzyzyzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwxuvuvuvuvuvuvuvuvststststststststqrqrqrqrqrqrqrqrqrqrqrqropopopopopopopopmnmnmnmnmnmnmnmnklklklklklklklklijijijijijijijijghghghghghghghghfefefefefefeeeeedcdcdcdcdcdcdcdcbabababababababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQRQRQRQRQPOPOPOPONMNMNMNMNMNMNMNMKLKLKLKLKKKKKKLKIJIJIJIJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDABABABABABABABABABABABAB?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=>;<;<;<;<;<;<;<;<9:9:9:9:9:9:9:9:9:9:9:9:787878787878787856565656565656563434343434321212121212122121210/0/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!"!"!"!"!        }~}~}~}~}~}~}~}~{|{|{|{|{|{|{|{|yzyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwxwxwxwxuvuvuvuvuvuvuvuvststststststststqrqrqrqrqrqrqrqrqrqrqrqropopopopopopopopmnmnmnmnmnmnmnmnklklklklklklklklijijijijijijijijghghghghghghghghfefefefeefefefefdcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQRQRQRQRQPOPOPOPONMNMNMNMNMNMNMNMKLKLKLKLLKLKLKLKIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDABABABABABABABABABABABA@?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=>;<;<;<;<;<;<;<;<9:9:9:9:9:9:9:9:9:9:9:9:787878787878787856565656565656563434343412111112121212120/0/0/0/0/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)*)*)*)('('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!"!"!"!"!        }~}~}~}~}~}~}~}~{|{|{|{|{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwxwxwxwxwxuvuvuvuvuvuvuvuvststststststststqrqrqrqrqrqrqrqrqpopopopopopopopopopopopmnmnmnmnmnmnmnmnklklklklklklklklijijijijijijijijghghghghghghghghfefefefeefefefefdcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQRQRQRQRQPOPOPOPONMNMNMNMNMNMNMNMKLKLKLKLLKLKLKLKIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDABABABABABABABAB?@?@?@?@?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=>;<;<;<;<;<;<;<;<9:9:9:9:9:9:9:9:9:9:9:98787878787878787856565656565656563434343412121212121111110/0/0/0/0/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!"!"!"!         }~}~}~}~}~}~}~}~{|{|{|{|{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwxwxwxwxwxuvuvuvuvuvuvuvuvststststststststqrqrqrqrqrqrqrqropopopopopopopopopopopopmnmnmnmnmnmnmnmnklklklklklklklklijijijijijijijijghghghghghghghghfefefeeeefefefefdcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMKLKKKKKKLKLKLKLKIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDABABABABABABABAB?@?@?@?@?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=>;<;<;<;<;<;<;<;<9:9:9:9:9:9:9:9:78787878787878787878787856565656565654343434343412121212212121210/0/0/0/0/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!            }}~}~}~}~}~}~}~}~{|{|{|{|{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwxwxwxwxwxuvuvuvuvuvuvuvuvststststststststqrqrqrqrqrqrqrqropopopopopopopopopopopopmnmnmnmnmnmnmnmnklklklklklklklklijijijijijijijijghghghghghghghgheeefefefefefefefdcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDABABABABABABABAB?@?@?@?@?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=>;<;<;<;<;<;<;<;<9:9:9:9:9:9:9:9:78787878787878787878787856565656343434343434343412121212212121210/0/0/0/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!            }}}}}~}~}~}~}~}~}~}~}~}~{|{|{|{|{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvuvuvuvuvststststststststqrqrqrqrqrqrqrqropopopopopopopopopopopopmnmnmnmnmnmnmnmnklklklklklklklklijijijijijijijijghghghghghghghghefefefefefefefefdcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDABABABABABABABAB?@?@?@?@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=>;<;<;<;<;<;<;<;<9:9:9:9:9:9:9:9:78787878787878787878787856565656343434343434343412121111212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('('('('&%&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!            }~}~}~}~}~}~}~}~}~}~}~}~{|{|{|{|{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwxuvuvuvuvuvuvuvuvuvuvuvuvststststststststqrqrqrqrqrqrqrqropopopopopopopoponmnmnmnmnmnmnmnmnmnmnmnklklklklklklklklijijijijijijijijghghghghghghghghefefefefefeeeeeedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKKKKKKLKLIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDABABABABABABABAB?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=>=>=>=>=>;<;<;<;<;<;<;<;<9:9:9:9:9:9:9:9:78787878787878787878787656565656343434343434343411212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!           }~}~}~}~}~}~}~}~}~}~}~}~{|{|{|{|{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwxuvuvuvuvuvuvuvuvuvuvuvuvststststststststqrqrqrqrqrqrqrqropopopopopopopopmnmnmnmnmnmnmnmnmnmnmnmnklklklklklklklklijijijijijijijijghghghghghghgfefefefefeffefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKKLKLKLKLIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDABABABABABABABAB?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=>=>=>=>=>;<;<;<;<;<;<;<;<9:9:9:9:9:9:9:9:78787878787878785656565656565656343434343434343421212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!        }~}~}~}~}~}~}~}~}|{|{|{|{|{|{|{|{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwxuvuvuvuvuvuvuvuvuvuvuvuvststststststststqrqrqrqrqrqrqrqropopopopopopopopmnmnmnmnmnmnmnmnmnmnmnmnklklklklklklklklijijijijijijijijghghghghefefeeeeefefefefdcdcdcdcdcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKKLKLKLKLIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCDABABABABABABABAB?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=>=>=>=>=>;<;<;<;<;<;<;<;<9:9:9:9:9:9:9:9:78787878787878785656565656565656343434343434343421212121211111120/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!        }~}~}~}~}~}~}~}~{|{|{|{|{|{|{|{|{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwxuvuvuvuvuvuvuvuvutstststststststststststqrqrqrqrqrqrqrqropopopopopopopopmnmnmnmnmnmnmnmnmnmnmnmnklklklklklklklklijijijijijijijijghghghghefefefefefefeeeedcdcdcdcdcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMLKKKKKKLKLKLKLKLIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDCDCDCDCDABABABABABABABAB?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;<9:9:9:9:9:9:9:9:78787878787878785656565656565656343434343434343421212121121212120/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!                  - - - - - - - -             - - - - - - - -             - - - - - - - -             - - - - - - - -           - - - - - - - -         - - - - - - - -         - - - - - - - -         - - - - - - - -         - - - - - - - - - -         - - - - - - - - - - - -         - - - - - - - - - - - -         - - - - - - - - - - - -         - - - - - - - - - -          - - - - - - - -         - - - - - - - -LLKKJJII ==>>??@@yyzz{{||RRQQKKJJ - - UUVVWWXXtssrrqqp00//..--TUUVVWWX~~}EDDCCBBA 45566778pqqrrssteddccbba)((''&&%PQQRRSSTIHHGGFFE - - 01122334lmmnnoopihhggffe-,,++**)LMMNNOOPMLLKKJJI :;;<<==>A@@??>>= OPQQRRSS~~}}DDCCBBAA55667788qqrrssttddccbbaa((''&&%%QQRRSSTTHHGGFFEE - - 11223344mmnnoopphhggffee,,++**))MMNNOOPPLLKKJJII --..//00iijjkkllbbaa``__8899::;;~~KJJIIHHG - 56677889qrrssttudccbbaa`(''&&%%$QRRSSTTUHGGFFEED - - 12233445mnnooppqhggffeed,++**))(MNNOOPPQLKKJJIIH -..//001ijjkkllmlkkjjiih0//..--,\]]^^__`eddccbba,,--..//oppqqrrsccbbaa``''&&%%$$RRSSTTUUGGFFEEDD - - 22334455nnooppqqggffeedd++**))((NNOOPPQQKKJJIIHH ..//0011jjkkllmmkkjjiihh//..--,,HHGGFFEE - - AABBCCDD}}~~IIHHGGFFYYZZ[[\\poonnmml,,++**)) XYYZZ[[\}||{{zzyA@@??>>=899::;;??@@AAB=<<;;::9TTUUVVWW||{{zzyy@@??>>==99::;;<>??GFFEEDDC9::;;<<=uvvwwxxy`__^^]]\$##""!! UVVWWXXY~~}}|DCCBBAA@56677889qrrssttudccbbaa`(''&&%%$QRRSSTTUHGGFFEED - - 12233445mnnooppqhggffeed,++**))(`aabbccda``__^^]00112345sttuuvvw__^^]]\\##""!! VVWWXXYY~~}}||CCBBAA@@66778899rrssttuuccbbaa``''&&%%$$RRSSTTUUGGFFEEDD - - 22334455nnooppqqggffeedd++**))((~~}}DDCCBBAA - - EEFFGGHHEEDDCCBB]]^^__``lkkjihgf((''&&%% !!""##$\]]^^__`yxxwwvvu=<<;;::9<==>>??@xyyzz{{|]\\[[ZZY!  XYYZZ[[\}||{{zzyA@@??>>=899::;;>??@@yyzz{{||\\[[ZZYY  YYZZ[[\\||{{zzyy@@??>>==99::;;<>??@@Ayzz{{||}\[[ZZYYX  !YZZ[[\\]|{{zzyyx@??>>==<9::;;<<=uvvwwxxy`__^^]]\$##""!! UVVWWXXY~~}}|DCCBBAA@56677889qrrssttudccbbaa`(''&&%%$ !!"deekkllm]\\[[ZZY6778899:wxxyyzz{[[ZZYYXX !!ZZ[[\\]]{{zzyyxx??>>==<<::;;<<==vvwwxxyy__^^]]\\##""!! VVWWXXYY~~}}||CCBBAA@@66778899rrssttuuccbbaa``''&&%%$$||{{zzyy@@??>>== IIJJKKLLAA@@??>>aabbccddeeddccbb$$##""!!$%%&&''(`aabbccduttssrrq98877665@AABBCCD|}}~~YXXWWVVU !!""##$\]]^^__`yxxwwvvu=<<;;::9<==>>??@xyyzz{{|]\\[[ZZY!  XYYZZ[[\}||{{zzyA@@??>>=FGGHHIIJ{zzyyxxw0//..--,\\]]^^__ttssrrqq88776655AABBCCDD}}~~XXWWVVUU!!""##$$]]^^__``xxwwvvuu<<;;::99==>>??@@yyzz{{||\\[[ZZYY  YYZZ[[\\||{{zzyy@@??>>==99::;;<>==<<; ABBCCDDE}~~XWWVVUUT!""##$$%]^^__``axwwvvuut<;;::998=>>??@@Ayzz{{||}\[[ZZYYX  !YZZ[[\\]|{{zzyyx@??>>==<9::;;<<=uvvwwxxy`__^^]]\$##""!! "##$$%%&mnnooppqYXXWWVVU -:;;<<==>{||}}~~WWVVUUTT""##$$%%^^__``aawwvvuutt;;::9988>>??@@AAzz{{||}}[[ZZYYXX !!ZZ[[\\]]{{zzyyxx??>>==<<::;;<<==vvwwxxyy__^^]]\\##""!! xxwwvvuu<<;;::99MMNNOOPP==<<;;:: !!""eekkllmmaa``__^^ ())**++,deeffgghqppoonnm54433221 - - DEEFFGGHUTTSSRRQ$%%&&''(`aabbccduttssrrq98877665@AABBCCD|}}~~YXXWWVVU !!""##$\]]^^__`yxxwwvvu=<<;;::9JKKQQRRSwvvuutts,++**))( !!""``aabbccppoonnmm44332211 - - EEFFGGHHTTSSRRQQ%%&&''((aabbccddttssrrqq88776655AABBCCDD}}~~XXWWVVUU!!""##$$]]^^__``xxwwvvuu<<;;::99==>>??@@yyzz{{||RRQQKKJJHHIIJJKK|{{zzyyx;::99887 - - EFFGGHHITSSRRQQP%&&''(()abbccddetssrrqqp87766554 ABBCCDDE}~~XWWVVUUT!""##$$%]^^__``axwwvvuut<;;::998=>>??@@Ayzz{{||}\[[ZZYYX &''(())*qrrssttuUTTSSRRQ - >??@@AABSSRRQQPP&&''(())bbccddeessrrqqpp77665544 BBCCDDEE~~WWVVUUTT""##$$%%^^__``aawwvvuutt;;::9988>>??@@AAzz{{||}}[[ZZYYXXttssrrqq88776655QQRRSSTT~~}}||99887711##$$%%&&nnooppqq]]\\[[ZZ,--..//0hiijjkklmllkkjji100//..- HIIJJKKLQPPOONNM())**++,deeffgghqppoonnm54433221 - - DEEFFGGHUTTSSRRQ$%%&&''(`aabbccduttssrrq98877665 - - STTUUVVWsrrqqppo(''&&%%$##$$%%&&ddeefghillkkjjii00//..-- IIJJKKLLPPOONNMM))**++,,eeffgghhppoonnmm44332211 - - EEFFGGHHTTSSRRQQ%%&&''((aabbccddttssrrqq88776655AABBCCDD}}~~IIHHGGFF QQRRSSTTxwwvvuut76543211 IJJKKLLMPOONNMML)**++,,-effgghhipoonnmml43322110 - - EFFGGHHITSSRRQQP%&&''(()abbccddetssrrqqp87766554 ABBCCDDE}~~XWWVVUUT*++,,--.uvvwwxxyQKKJJIIHBCCDDEEFOONNMMLL**++,,--ffgghhiioonnmmll33221100 - - FFGGHHIISSRRQQPP&&''(())bbccddeessrrqqpp77665544 BBCCDDEE~~WWVVUUTTppoonnmm44332211UUVVWWXX{{zzyyxx00//..--''(())**rrssttuuYYXXWWVV01122334lmmnnoopihhggffe-,,++**)LMMNNOOPMLLKKJJI ,--..//0hiijjkklmllkkjji100//..- HIIJJKKLQPPOONNM())**++,deeffgghqppoonnm54433221 WXXYYZZ[onnmmllk$##""!! ''(())**jkkllmmnhhggffee,,++**))MMNNOOPPLLKKJJII --..//00iijjkkllllkkjjii00//..-- IIJJKKLLPPOONNMM))**++,,eeffgghhppoonnmm44332211 - - EEFFGGHHEEDDCCBB - - UUVVWWXXtssrrqqp00//..--MNNOOPPQLKKJJIIH -..//001ijjkkllmlkkjjiih0//..--, IJJKKLLMPOONNMML)**++,,-effgghhipoonnmml43322110 - - EFFGGHHITSSRRQQP.//00117yzz{{||}HGGFFEED FGGHHIIJKKJJIIHH ..//0011jjkkllmmkkjjiihh//..--,,JJKKLLMMOONNMMLL**++,,--ffgghhiioonnmmll33221100 - - FFGGHHIISSRRQQPPllkkjjii00//..-- YYZZ[[\\wwvvuutt,,++**))++,,--..vvwwxxyyUUTTSSRR45566778pqqrrssteddccbba)((''&&%PQQRRSSTIHHGGFFE - - 01122334lmmnnoopihhggffe-,,++**)LMMNNOOPMLLKKJJI ,--..//0hiijjkklmllkkjji100//..-[\\]]^^_keeddccb ++,,--..nooppqqrddccbbaa((''&&%%QQRRSSTTHHGGFFEE - - 11223344mmnnoopphhggffee,,++**))MMNNOOPPLLKKJJII --..//00iijjkkllllkkjjii00//..-- IIJJKKLLAA@@??>>YYZZ[[\\poonnmml,,++**))QRRSSTTUHGGFFEED - - 12233445mnnooppqhggffeed,++**))(MNNOOPPQLKKJJIIH -..//001ijjkkllmlkkjjiih0//..--, IJJKKLLMPOONNMML78899::;}~~DCCBBAA@ - - JKKLMNOPGGFFEEDD - - 22334455nnooppqqggffeedd++**))((NNOOPPQQKKJJIIHH ..//0011jjkkllmmkkjjiihh//..--,,JJKKLLMMOONNMMLLhhggffee,,++**))!!""##$$]]^^__``ssrrqqpp((''&&%%//001177zz{{||}}QQPONMLK -899::;;>?@??>>==< QQRRSSTT~~}}||CCBBAA@@66778899rrssttuuccbbaa``''&&%%$$RRSSTTUUGGFFEEDD - - 22334455nnooppqqggffeedd++**))((NNOOPPQQKKJJIIHH ddccbbaa((''&&%%%%&&''((aabbccddoonnmmll$$##""!!8899::;;~~KJJIIHHG - <==>>??@xyyzz{{|]\\[[ZZY!  XYYZZ[[\}||{{zzyA@@??>>=899::;;>==99::;;<>==<9::;;<<=uvvwwxxy`__^^]]\$##""!! UVVWWXXY~~}}|DCCBBAA@56677889qrrssttudccbbaa`(''&&%%$QRRSSTTUHGGFFEED - - ?@@AABBC~<;;::998UUVVWWXX{{zzyyxx??>>==<<::;;<<==vvwwxxyy__^^]]\\##""!! VVWWXXYY~~}}||CCBBAA@@66778899rrssttuuccbbaa``''&&%%$$RRSSTTUUGGFFEEDD - -  !!``__^^]]$$##""!!))**++,,eeffgghhkkeeddcc <<==>>??GFFEEDDC@AABBCCD|}}~~YXXWWVVU !!""##$\]]^^__`yxxwwvvu=<<;;::9<==>>??@xyyzz{{|]\\[[ZZY!  XYYZZ[[\}||{{zzyA@@??>>=899::;;>??@@yyzz{{||\\[[ZZYY  YYZZ[[\\||{{zzyy@@??>>==99::;;<>??@@Ayzz{{||}\[[ZZYYX  !YZZ[[\\]|{{zzyyx@??>>==<9::;;<<=uvvwwxxy`__^^]]\$##""!! UVVWWXXY~~}}|DCCBBAA@CDDEEFFG~}}||{{z8771100/YYZZ[[\\wwvvuutt;;::9988>>??@@AAzz{{||}}[[ZZYYXX !!ZZ[[\\]]{{zzyyxx??>>==<<::;;<<==vvwwxxyy__^^]]\\##""!! VVWWXXYY~~}}||CCBBAA@@""##$$%%\\[[ZZYY --..//00iijjkkllbbaa``__@@AABBCCCBBAA@@? - - DEEFFGGHUTTSSRRQ$%%&&''(`aabbccduttssrrq98877665@AABBCCD|}}~~YXXWWVVU !!""##$\]]^^__`yxxwwvvu=<<;;::9<==>>??@xyyzz{{|]\\[[ZZY! %&&''(()pqqrrsstVUUTTSSR - - =>>??@@A~TTSSRRQQ%%&&''((aabbccddttssrrqq88776655AABBCCDD}}~~XXWWVVUU!!""##$$]]^^__``xxwwvvuu<<;;::99==>>??@@yyzz{{||\\[[ZZYY  YYZZ[[\\wwvvuutt,,++**))##$$%%&&nnooppqq]]\\[[ZZ%&&''(()abbccddetssrrqqp87766554 ABBCCDDE}~~XWWVVUUT!""##$$%]^^__``axwwvvuut<;;::998=>>??@@Ayzz{{||}\[[ZZYYX  !YZZ[[\\]|{{zzyyx@??>>==<GHHIIJJKzyyxxwwv/..--,,+]]^^__``ssrrqqpp77665544 BBCCDDEE~~WWVVUUTT""##$$%%^^__``aawwvvuutt;;::9988>>??@@AAzz{{||}}[[ZZYYXX !!ZZ[[\\]]{{zzyyxx??>>==<<&&''(())XXWWVVUU11223344mmnnoopp^^]]\\[[DDEEFFGG~~}}|?>>==<<; HIIJJKKLQPPOONNM())**++,deeffgghqppoonnm54433221 - - DEEFFGGHUTTSSRRQ$%%&&''(`aabbccduttssrrq98877665@AABBCCD|}}~~YXXWWVVU)**++,,-tuuvvwwxRQQKKJJIABBCCDDEPPOONNMM))**++,,eeffgghhppoonnmm44332211 - - EEFFGGHHTTSSRRQQ%%&&''((aabbccddttssrrqq88776655AABBCCDD}}~~XXWWVVUU!!""##$$]]^^__``ssrrqqpp((''&&%%''(())**rrssttuuYYXXWWVV)**++,,-effgghhipoonnmml43322110 - - EFFGGHHITSSRRQQP%&&''(()abbccddetssrrqqp87766554 ABBCCDDE}~~XWWVVUUT!""##$$%]^^__``axwwvvuut<;;::998 KQQRRSSTvuuttssr+**))((' !!""##aabbccddoonnmmll33221100 - - FFGGHHIISSRRQQPP&&''(())bbccddeessrrqqpp77665544 BBCCDDEE~~WWVVUUTT""##$$%%^^__``aawwvvuutt;;::9988**++,,--TTSSRRQQ55667788qqrrssttZZYYXXWW HHIIJJKK|{{zzyyx;::99887LMMNNOOPMLLKKJJI ,--..//0hiijjkklmllkkjji100//..- HIIJJKKLQPPOONNM())**++,deeffgghqppoonnm54433221 - - DEEFFGGHUTTSSRRQ-..//001xyyzz{{|IHHGGFFEEFFGGHHILLKKJJII --..//00iijjkkllllkkjjii00//..-- IIJJKKLLPPOONNMM))**++,,eeffgghhppoonnmm44332211 - - EEFFGGHHTTSSRRQQ%%&&''((aabbccddoonnmmll$$##""!!++,,--..vvwwxxyyUUTTSSRR-..//001ijjkkllmlkkjjiih0//..--, IJJKKLLMPOONNMML)**++,,-effgghhipoonnmml43322110 - - EFFGGHHITSSRRQQP%&&''(()abbccddetssrrqqp87766554 - - TUUVVWWXrqqppoon'&&%%$$#$$%%&&''eefghijkkkjjiihh//..--,,JJKKLLMMOONNMMLL**++,,--ffgghhiioonnmmll33221100 - - FFGGHHIISSRRQQPP&&''(())bbccddeessrrqqpp77665544 ..//0011PPOONNMM99::;;<>??@@AABz{{||}}~[ZZYYXXW !!"Z[[\\]]^{zzyyxxw?>>==<<;:;;<<==>vwwxxyyz_^^]]\\[#""!! VWWXXYYZwvvuutts,++**))(+,,--../vwwxxyyzIHHGGFFE - - @AABBCCD::;;<<==vvwwxxyyUUTTSSRR - - EEFFGGHH~~}}||{>==<<;;: -BCCDDEEF~WVVUUTTS"##$$%%&^__``aabwvvuutts;::99887>??@@AABz{{||}}~[ZZYYXXW !!"Z[[\\]]^srrqqppo(''&&%%$/0011778z{{||}}}EDDCCBBA - - DEEFFGGH>>??@@AAzz{{||}}QQKKJJIIIIJJKKQQ{zzyyxxw:9988776 - FGGHHIIJSRRQQPPO&''(())*bccddeefsrrqqppo76655443 -BCCDDEEF~WVVUUTTS"##$$%%&^__``aabonnmmllk$##""!! 899::;;<}||{{zzyA@@??>>= HIIJJKKLBBCCDDEE~~HHGGFFEE - -RRSSTTUUwvvuutts54321100JKKLLMMNONNMMLLK*++,,--.fgghhiijonnmmllk3221100/ - FGGHHIIJSRRQQPPO&''(())*bccddeefkeeddccb <==>>??@yxxwwvvu=<<;;::9LMMNNOOPFFGGHHIIDDCCBBAA VVWWXXYYsrrqqppo//..--,,NOOPPQQRKJJIIHHG .//00112jkkllmmnkjjiihhg/..--,,+JKKLLMMNONNMMLLK*++,,--.fgghhiijbaa``__^@AABBCCDuttssrrq98877665PQQRRSSTJJKKLLMM@@??>>==ZZ[[\\]]onnmmllk++**))((RSSTTUUVGFFEEDDC - - 23344556nooppqqrgffeeddc+**))(('NOOPPQQRKJJIIHHG .//00112jkkllmmn^]]\\[[ZDEEFFGGHqppoonnm54433221TUUVVWWXNNOOPPQQ<<;;::99^^__``aakjihgfee''&&%%$$VWWXXYYZ~~}}||{CBBAA@@?6778899:rssttuuvcbbaa``_'&&%%$$#RSSTTUUVGFFEEDDC - - 23344556nooppqqrZYYXXWWV HIIJJKKQmllkkjji100//..- XYYZZ[[\RRSSTTUU~~}}||{{88771100bbccddeeddccbbaa##""!!  !!"Z[[\\]]^{zzyyxxw?>>==<<;:;;<<==>vwwxxyyz_^^]]\\[#""!! VWWXXYYZ~~}}||{CBBAA@@?6778899:rssttuuvVUUTTSSR - - -QRRSSTTUihhggffe-,,++**) !!""##$\]]^^__`VVWWXXYYzzyyxxww//..--,, !!""##kkllmmnn``__^^]]"##$$%%&^__``aabwvvuutts;::99887>??@@AABz{{||}}~[ZZYYXXW !!"Z[[\\]]^{zzyyxxw?>>==<<;:;;<<==>vwwxxyyzRQQKKJJI - UVVWWXXYeddccbba)((''&&%$%%&&''(`aabbccdZZ[[\\]]vvuuttss++**))(($$%%&&''ooppqqrr\\[[ZZYY&''(())*bccddeefsrrqqppo76655443 -BCCDDEEF~WVVUUTTS"##$$%%&^__``aabwvvuutts;::99887>??@@AABz{{||}}~IHHGGFFEYZZ[[\\]a``__^^]%$$##""!())**++,deeffggh^^__``aarrqqppoo''&&%%$$(())**++ssttuuvvXXWWVVUU*++,,--.fgghhiijonnmmllk3221100/ - FGGHHIIJSRRQQPPO&''(())*bccddeefsrrqqppo76655443 -BCCDDEEF~EDDCCBBA]^^__``a]\\[[ZZY! ,--..//0hiijjkklbbccddeennmmllkk##""!! ,,--..//wwxxyyzzTTSSRRQQ .//00112jkkllmmnkjjiihhg/..--,,+JKKLLMMNONNMMLLK*++,,--.fgghhiijonnmmllk3221100/ - FGGHHIIJA@@??>>=abbccddeYXXWWVVU01122334lmmnnoopffgghhiieeddccbb00117788{{||}}~~PONMLKKJ - - 23344556nooppqqrgffeeddc+**))(('NOOPPQQRKJJIIHHG .//00112jkkllmmnkjjiihhg/..--,,+JKKLLMMN=<<;;::9 !!""#ekkllmmnUTTSSRRQ45566778pqqrrsstjjkkllmmaa``__^^99::;;<<JIIHHGGF 6778899:rssttuuvcbbaa``_'&&%%$$#RSSTTUUVGFFEEDDC - - 23344556nooppqqrgffeeddc+**))(('NOOPPQQR~~}}||{98877110#$$%%&&'nooppqqrQPPOONNM899::;;>??@@FEEDDCCB:;;<<==>vwwxxyyz_^^]]\\[#""!! VWWXXYYZ~~}}||{CBBAA@@?6778899:rssttuuvcbbaa``_'&&%%$$#RSSTTUUV{zzyyxxw0//..--,'(())**+rssttuuvMLLKKJJI <==>>??@xyyzz{{||}}fpvfpvfpvXQJ`ےXQJ`ےZ|lvXnvpfZHAbr˂pbtlbtlf~Hf~HfHbHAbHAAJltAJltf`vXf`vXQr˂pQr˂pQr˂pbtlbtlf~Hf~HbHAbHAJltAJltAJltvXnۅvpfۙے`JXbtl|ZdQf~Hf~HfHfbHAZbHAZJltJlt`vXn`vXnr˂pr˂pr˂ptlJtlJf~Hf~HbHAZbHAZJltJltJlt`vXn`vXnJXQr˂pZ|ZdQrdt璝vnXv`ffpbHAZpbHAZpJltJltvXnvXnr˂pr˂pr˂plJtlJtf~Hf~HbHAZpbHAZpJltJltJltvXnvXnr˂pr˂pArd||ZdQfpv~HXZp˂ےbHltbltbvXnvXn˂pZ˂pZ˂pZlJtAlJtA~Hf~HfbHAZpbHAZpltbltbltbvXnvXn˂pZ˂pZnXv`nXv`nXv`bHAZbHAZtbdQZvpfHH~f`JXQZHAbJtArdJtArdfpvfpvfpvZp˂Zp˂bdQZ|bdQZ|nvpnvpZHAbZHAbZHAJtArdJtArdfpvfpvZp˂Zp˂bdQZ|bdQZ|bdQZ|vpfH`JXQHQr˂pJtArdbtlfpvfpvpvnp˂rp˂rbdQZ|bdQZ|vpfvpfZHAbZHAbZHAےtArdtArdfpvfpvp˂rp˂rbdQZ|bdQZ|bdQZ|vpfvpf˂pZHAHAbےbtllJfpv`fvn˂rX˂rXbdQZ|bdQZ|vpfHvpfHZHAbZHAbZHAے`Ard|Ard|fpvfpv˂rX˂rXbdQZ|bdQZ|bdQZ|vpfHvpfHZHAbZHAbہZdQtAbtlnXv`v`frXQJAZp˂dQZ|dQZ|vpfHvpfHHAbےHAbےHAے`rd|rd|pvnpvn˂rXQ˂rXQdQZ|dQZ|dQZ|vpfHvpfHHAbےHAbےf~Hf~Hp˂rp˂rp˂r|dr~f``vXnrZAbے`JXQ|ZdQ|ZdQnXv`nXv`nrXQJ`rXQJ`rXQJ`ہdrtdrtfH~fH~˙ے`JXے`JX`JXQ|ZdQ|ZdQnXv`nXv`rXQJ`rXQJ`ہdrtdrtdtA~f`Abے`ZHAXQ|ZdQbJtArdnXv`nXv`rXQJ`XQJ`ےXQJ`ےdrtAdrtAH~fH~fے`JXQے`JXQ`JXQr|ZdQb|ZdQbnXv`nXv`XQJ`ےXQJ`ےdrtAdrtAdtAJH~fH~fbے``JXQrJtArdvnv~HfprXQJ`QJ`ےQJ`ےdrtAdrtA~f`~f``JXQ`JXQJXQrZdQbtZdQbtnXv`nXv`QJ`ےQJ`ےdrtAdrtAdtAJl~f`~f``JXQ`JXQrd|JtAdQbtf~H~HfpbHAZpˉrXQJ`drtAJdrtAJ~f`~f``JXQr`JXQrJXQrbZdQbtZdQbtXv`fXv`fJ`ےJ`ےdrtAJdrtAJdtAJl~f`~f``JXQr`JXQrfpvfpvXQJ`ےXQJ`ےXQJ`ےtAJlvXH~vpfے`Jr˂pbtlbtlf~Hf~HےHAbHAbHAAJltAJltf`vXf`vXQr˂pQr˂prbtlbtlbtlf~Hf~HbHAbHAAJltAJltJltvXnہJXQrr˂pJtAr|ZdQf~Hf~HےHAZbHAZbHAZJltJlt`vXn`vXnr˂pr˂pbtltlJtlJf~Hf~HbHAZbHAZJltJltltb`vXn`vXnJXQr˂p`|ZdQf~HvnXHAZpbHAZpbHAZpJltJltvXnvXnr˂pr˂pbtllJtlJtf~Hf~HbHAZpbHAZpJltJlttbvXnvXnr˂pr˂pZdQbtlJtfpvvnXrXQےbHltbltbvXnvXn˂pZ˂pZtlJlJtAlJtA~Hf~HfbHAZpbHAZpltbltbtbnvXnvXn˂pZ˂pZnXv`nXv`bHAZbHAZJlttbdQZf`vHXnXQr˂ZHAbJtArdJtArdfpvfpvZp˂Zp˂Zp˂bdQZ|bdQZ|nvpnvpZHAbZHAbJtAdJtArdJtArdfpvfpvZp˂Zp˂bdQZ|bdQZ|bnvpvp`vX˂pZHZHAbd|Zbtlfpvfpvp˂rp˂rp˂rbdQZ|bdQZ|vpfvpfZHAbZHAbJtAdtArdtArdfpvfpvp˂rp˂rbdQZ|bdQZ|nvpvpfvpf˂p`JJXQrbbtlfpvv`f˂rX˂rX˂rXbdQZ|bdQZ|vpfHvpfHZHAbZHAbJtAd|Ard|Ard|fpvfpv˂rX˂rXbdQZ|bdQZ|nvpvpfHvpfHZHAbZHAbےlJtAArd|nXv`v`pvJ`ےAZrXQdQZ|dQZ|vpfHvpfHHAbےHAbےtAd|rd|rd|pvnpvn˂rXQ˂rXQdQZ|dQZ|vpfvpfHvpfHHAbےHAbےf~Hf~Hp˂rp˂rdrtAJ|dtXnvvpfHpZHAbJQr˂|ZdQ|ZdQnXv`nXv`rXQJ`rXQJ`rXQJ`ہdrtdrtfH~fH~˙ے`JXے`JX|ZdQ|ZdQ|ZdQnXv`nXv`rXQJ`rXQJ`ہdrtdrt`vXnvpAbے``JXQdQbtJtArnXv`nXv`XQJ`ےXQJ`ےXQJ`ےdrtAdrtAH~fH~fے`JXQے`JXQ|ZdQb|ZdQb|ZdQbnXv`nXv`XQJ`ےXQJ`ےdrtAdrtAfHfH~fH~fXQr˂tl||ZdQbnXv`˕~fvQJ`ےQJ`ےQJ`ےdrtAdrtA~f`~f``JXQ`JXQZdQbtZdQbtZdQbtnXv`nXv`QJ`ےQJ`ےdrtAdrtAfHf`~f`~f``JXQ`JXQrd|ZdQbtpvnrXQbHAZpJ`ےJdrtAJdrtAJ~f`~f``JXQr`JXQrZdQbtZdQbtZdQbtXv`fXv`fJ`ےJ`ےdrtAJdrtAJHf`~f`~f``JXQr`JXQrlJtAfpvfpvXQJ`ےXQJ`ےltbbdQZ|pfH~~f`ے`JpZHAbtlbtlf~Hf~HbHAbHAJltAJltAJltf`vXf`vXQr˂pQr˂pbtlbtlbtlf~Hf~HbHAbHAAJltAJltnvpfH~JXQrr˂plJtArZdQbtf~Hf~HbHAZbHAZJltJltJlt`vXn`vXnr˂pr˂ptlJtlJtlJf~Hf~HbHAZbHAZJltJlt`vXn`vXn`vXnpZHAbZdQbttlJf~HnXv`bHAZpbHAZpJltJltJltvXnvXnr˂pr˂plJtlJtlJf~Hf~HbHAZpbHAZpJltJltvXnvXnvXnr˂pr˂pZdQbtdlJtnXv`J`AZprXQltbltbltbvXnvXn˂pZ˂pZlJtAlJtAlJf~Hf~HfbHAZpbHAZpltbltbvXnvXnvXn˂pZ˂pZrd|nXv`nXv`bHAZbHAZdQZ|drtAf`vvXnXQr˂bے`JtArdJtArdfpvfpvZp˂Zp˂bdQZ|bdQZ|bdQZ|nvpnvpZHAbZHAbJtArdJtArdJfpvfpvfpvZp˂Zp˂bdQZ|bdQZ|fH~˕f`vXے`ZHAbd|ZlJtAfpvfpvp˂rp˂rbdQZ|bdQZ|bdQZ|vpfvpfZHAbZHAbtArdtArdfpvfpvfpvp˂rp˂rbdQZ|bdQZ|vpfvpfvpfے`JlJtAtArdfpvf~H˂rX˂rXbdQZ|bdQZ|bdQZ|vpfHvpfHZHAbZHAbArd|Ard|fpvfpvfpv˂rX˂rXbdQZ|bdQZ|vpfHvpfHvpfZHAbZHAbۙ|ZdArdtf~H˂rXJ`bAZdQZ|dQZ|dQZ|vpfHvpfHHAbےHAbےrd|rd|pvnpvnpvn˂rXQ˂rXQdQZ|dQZ|vpfHvpfHvpfےHAbےHAbےZdQbtf~Hf~Hp˂rp˂rdrtAJJltXnvpfHpZAb`JXQr˂|ZdQ|ZdQnXv`nXv`rXQJ`rXQJ`ہdrtdrtdtAfH~fH~˙ے`JXے`JX|ZdQ|ZdQnXv`nXv`nXv`rXQJ`rXQJ`ہdrtdrtf`vXHnvpJXQrˉ˂pZHdQbtrd|nXv`nXv`XQJ`ےXQJ`ےdrtAdrtAdtAJH~fH~fے`JXQے`JXQ|ZdQb|ZdQbnXv`nXv`nXv`XQJ`ےXQJ`ےdrtAdrtAH~fH~fے`JXQXQr˂rd||ZdQbnXvf~fpvQJ`ےQJ`ےdrtAdrtAdtAJl~f`~f``JXQ`JXQZdQbtZdQbtnXv`nXv`nXv`QJ`ےQJ`ےdrtAdrtA~f`~f``JXQ`JXQ`JXQQbtllJfpfpvQJ`ےp˂rdrtAJdrtAJdtAJl~f`~f``JXQr`JXQrZdQbtZdQbtXv`fXv`fXv`fJ`ےJ`ےdrtAJdrtAJ~f`~f``JXQr`JXQr`JXQrlJtAfpvfpvXQJ`ےXQJ`ےltbbdQZ|f`vX~vJXQrpZHAbbtlbtlf~Hf~HbHAbHAAJltAJltJltf`vXf`vXQr˂pQr˂pbtlbtlf~Hf~HfHbHAbHAAJltAJlt~f`fHXpZHAAbے`JArd|ZdQbtf~Hf~HbHAZbHAZJltJltltb`vXn`vXnr˂pr˂ptlJtlJf~Hf~HfHfbHAZbHAZJltJlt`vXn`vXnHAbےpZHAXQZdQtArtlJHfpvnXv`bHAZpbHAZpJltJlttbvXnvXnr˂pr˂plJtlJtf~Hf~HfHfpbHAZpbHAZpJltJltvXnvXnr˂pr˂pr˂pJtArdvnXv`˙bHAZpXQJ`ےltbltbtbnvXnvXn˂pZ˂pZlJtAlJtA~Hf~HfHfpbHAZpbHAZpltbltbvXnvXn˂pZ˂pZ˂pZrd|nXv`nXv`bHAZbHAZdQtAJldrtAnvppfے`˂pZHJAdJtArdJtArdfpvfpvZp˂Zp˂bdQZ|bdQZ|bnvpnvpnvpZHAbZHAbJtArdJtArdfpvfpvfpvZp˂Zp˂bdQZ|bdQZ|vXnnvpbے`JXQrZdQbtlJtAfpvfpvp˂rp˂rbdQZ|bdQZ|nvpvpfvpfZHAbZHAbtArdtArdfpvfpvpvnp˂rp˂rbdQZ|bdQZ|vpfvpf`JXQrr˂pd|ZtAdQbtnXvf~H˂rX˂rXbdQZ|bdQZ|nvpvpfHvpfHZHAbZHAbArd|Ard|fpvfpvvn˂rX˂rXbdQZ|bdQZ|vpfHvpfHZHAbZHAbZHAے`|Zd~HfpfnX˂rQJbHAZdQZ|dQZ|vpfvpfHvpfHHAbےHAbےrd|rd|pvnpvnvnr˂rXQ˂rXQdQZ|dQZ|vpfHvpfHHAbےHAbےHAے`ZdQbtf~Hf~Hp˂rp˂rtbdQdQZ|fH~JXQrAbے`|ZdQ|ZdQ|ZdQnXv`nXv`rXQJ`rXQJ`ہdrtdrtfHfH~fH~˙ے`JXے`JX|ZdQ|ZdQnXv`nXv`nrXQJ`rXQJ`rXQJ`ہdrtdrtvpfHfH~JXQrˉ˂p`lJtrdZQbnXv`nXv`XQJ`ےXQJ`ےdrtAdrtAfHfH~fH~fے`JXQے`JXQ|ZdQb|ZdQbnXv`nXv`rXQJ`XQJ`ےXQJ`ےdrtAdrtAH~fH~f˂pZZHAbdQbtlJtA`f~fvnXQJ`ےQJ`ےdrtAdrtAfHf`~f`~f``JXQ`JXQZdQbtZdQbtnXv`nXv`rXQJ`QJ`ےQJ`ےdrtAdrtA~f`~f``JXQ`JXQJXQrQbtlvnXv`fbHAp˂rdrtAJdrtAJHf`~f`~f``JXQr`JXQrZdQbtZdQbtXv`fXv`fXQJ`ےJ`ےJ`ےdrtAJdrtAJ~f`~f``JXQr`JXQrJXQrblJtAfpvfpvXQJ`ےXQJ`ےZ|ddrtAJf`vXZHAbہJXQrbtlbtlbtlf~Hf~HbHAbHAAJltAJltf`vXf`vXf`vXQr˂pQr˂pbtlbtlf~Hf~HےHAbHAbHAAJltAJlt~f`f`vXp`JXJXQrbtArd|tlJf~Hf~HbHAZbHAZJltJlt`vXn`vXn`vXnr˂pr˂ptlJtlJf~Hf~HےHAZbHAZbHAZJltJlt`vXn`vXnHAbےے`JXQlJtArrd|Hfpvv`fbHAZpbHAZpJltJltvXnvXnvXnr˂pr˂plJtlJtf~Hf~HHAZpbHAZpbHAZpJltJltvXnvXnr˂pr˂pbtl||ZdQv`f~HfpZp˂XQJ`ےltbltbvXnvXnvXn˂pZ˂pZlJtAlJtA~Hf~HfHAZpbHAZpbHAZpltbltbvXnvXn˂pZ˂pZtlJrd|nXv`nXv`bHAZbHAZrtAJlltbnvp`JXQ˂pZHJtArdJtArdJfpvfpvfpvZp˂Zp˂bdQZ|bdQZ|nvpnvpnvpZHAbZHAbJtArdJtArdfpvfpvZp˂Zp˂Zp˂bdQZ|bdQZ|vXnnvpQr˂plJAZdQbtfpvfpvfpvp˂rp˂rbdQZ|bdQZ|vpfvpfvpfZHAbZHAbtArdtArdfpvfpvp˂rp˂rp˂rbdQZ|bdQZ|vpfvpf`JXQrr˂pd|ZZdQbtnXv~Hfpۑ˂rX˂rXbdQZ|bdQZ|vpfHvpfHvpfZHAbZHAbArd|Ard|fpvfpv˂rX˂rX˂rXbdQZ|bdQZ|vpfHvpfHZHAbZHAbہZdQbtbtl~Hfp۝vnXrXQJ`bAZdQZ|dQZ|vpfHvpfHvpfےHAbےHAbےrd|rd|pvnpvn˂rXQ˂rXQ˂rXQdQZ|dQZ|vpfHvpfHHAbےHAbےtAd|ZdQbtf~Hf~Hp˂rp˂rtbdQdQZ|``vXnr˂pAbJXQ|ZdQ|ZdQnXv`nXv`nXv`rXQJ`rXQJ`ہdrtdrtfH~fH~fے`JXے`JXے`JX|ZdQ|ZdQnXv`nXv`rXQJ`rXQJ`rXQJ`ہdrtdrtf`fH~ZHAb|ZdQlJArnXv`nXv`nXv`XQJ`ےXQJ`ےdrtAdrtAH~fH~fے`JXQے`JXQے`JXQ|ZdQb|ZdQbnXv`nXv`XQJ`ےXQJ`ےXQJ`ےdrtAdrtAH~fH~fے`ZHAbdQbtdlJtA`f~fpvnXQJ`ےQJ`ےdrtAdrtA~f`~f``JXQ`JXQ`JXQZdQbtZdQbtnXv`nXv`QJ`ےQJ`ےQJ`ےdrtAdrtA~f`~f``JXQ`JXQlJtJtArdvnXHv`fےbHArXQJ`drtAJdrtAJ~f`~f``JXQr`JXQr`JXQrZdQbtZdQbtXv`fXv`fJ`ےJ`ےJ`ےJdrtAJdrtAJ~f`~f``JXQr`JXQrZdQbtlJtArd|rd|HfpvvnXbHAZtbQZdrtAJlvpfHvpfHvpfHAbے`Abے`rd|rd|vnXvnXvnrXrXQrXQQZ|dQZ|dvpfHvpfH˂pZHZHAbېˁ`ZQQXb㉀XnvˍXnvˍtbAdZZdQbtZdQbtnXvv`pvp˂rrtAJltbdQ煐f`~f`~f`JXQrJXQrZdQbtZdQbtv`fv`fQJ`ےJ`ےJ`ےrtAJlrtAJl~f`~f`Abے``JXQXb㉀ۑpJAHpfH~p|dr|drlJtAlJtA`pvnrXQXQJ`ptbdZ|drvXnvXnvXnۉ˂pZH˂pZHlJtAlJtA~Hfp~HfpHAZpbHAZpbHAZpˑtbdtbdvXnvXnہJXQrr˂pˁ`ZQXbf۝`vf۝`vQtJlQtJlrd|rd|nXv`J`p˂˂rXQQZ|dAJtbvpfHvpfHvpfے`Abے`Abے`rd|rd|vnXvnXrXQrXQrXQQZ|dQZ|dvpfHvpfH󉐙ے`ZHAb㉀ۑpJXnvˍXnvˍtbAdZtbAdZZdQbtZdQbtf~HrXQJJ`ےrtAJldQZ|~f`~f`JXQrJXQrJXQrZdQbtZdQbtv`fv`fJ`ےJ`ےJ`ےJlrtAJlrtAJl~f`~f`JXQrˉ˂pZHAHr󙐂pfH~pfH~|dr|drlJtAlJffpv`ےbbHAZptbddrtAJvXnvXnۉ˂pZH˂pZH˂pZHlJtAlJtA~Hfp~HfpbHAZpbHAZpˑtbdtbdtbdvXnvXnۂpZHAAbے`ˁ`ZQXbf۝`vf۝`vQtJlQtJlrd|pvnXv`HAZp˂˂rXQQZrtAltbvpfHvpfHAbے`Abے`Aے`rd|rd|vnXvnXrXQrXQQZ|dQZ|dQZ|dvpfHvpfHbے`JXQr㉀ۑpXnvˍXnvˍtbAdZtbAdZZdQbt~HfpfnbHAJ`ےJltdQZ|~f`~f`JXQrJXQrJXQrbtZdQbtZdQbtv`fv`fJ`ےJ`ےrtAJlrtAJltAJl~f`~f`JXQrˉ˂p`Z`ZQXbpfH~pfH~|dr|drlJtAvnXXv`fZp˂rXQJbdQZ|drtAJvXnvXnۉ˂pZH˂pZHlJtlJtAlJtA~Hfp~HfpbHAZpbHAZpˑtbdtbdtbnvXnvXnۂp`JXQXb㉀ۑpJAf۝`vf۝`vQtJlQtJlrd|v`f~HfrXQJ``ےbdrtAbdQZ|vpfHvpfHAbے`Abے`Ad|rd|rd|vnXvnXrXQrXQQZ|dQZ|dvpfHvpfHvpfHQr˂pۑpJAHrHr󙐂ˁXnvˍXnvˍtbAdZtbAdZZdQbt~HfppvnےbHAHAZp˂Jltdrt~f`~f`JXQrJXQrZdQbtZdQbtZdQbtv`fv`fJ`ےJ`ےrtAJlrtAJlf`~f`~f`ZHAb󙐂ˁ`Z`ZQXbpfH~pfH~|dr|drlJtAvnXXv`fZp˂rXQJbdQZ|AJltvXnvXnۉ˂pZH˂pZHlJtAlJtAlJfp~Hfp~HfpbHAZpbHAZpˑtbdtbdvXnvXnvXnۙے`JXQXAHr󙀒ۑpJAf۝`vf۝`vQtJlQtJlrd|Hfpv~HXrXQHAZ`ےbrAJlbdQZ|vpfHvpfHAbے`Abے`rd|rd|vnXvnXvnXrXQrXQQZ|dQZ|dvpfHvpfHvpfZHQr˂pˁ`ZQHQXb㉀XnvˍXnvˍtbAdZtbAdZZdQbtnXvv`fp˂rHAXQJ`tbdQ灂AJl~f`~f`JXQrJXQrZdQbtZdQbtv`fv`fv`fJ`ےJ`ےrtAJlrtAJl~f`~f`Abے`ZHAXQXb㉀ۑۑpJAHrpfH~pfH~|dr|drlJtA`f~~HfpXQJ`ےےJlZ|dtbnvXnvXnۉ˂pZH˂pZHlJtAlJtA~Hfp~HfpHfpbHAZpbHAZpˑtbdtbdvXnvXnہJXQrr˂ppJAHr󙐂ˁ`Zf۝`vf۝`vQtJlQtJlt \ No newline at end of file diff --git a/vendor/endroid/qr-code/assets/data/qrv30_2.dat b/vendor/endroid/qr-code/assets/data/qrv30_2.dat deleted file mode 100755 index 2211b2895..000000000 --- a/vendor/endroid/qr-code/assets/data/qrv30_2.dat +++ /dev/null @@ -1,273 +0,0 @@ -}{|{|{|{|yzyzyzyzuvuvuvuvststststopopopopmnmnmnmnklklklklghghghghdcdcdcdcbabababa^]^]^]^]}}}}}~}~{|{|{|{|yzyzyzyzuvuvuvuvststststopopopopmnmnmnmnklklklklghghghghdcdcdcdcbabababa^]^]^]^]}~}~}~}~{|{|{|{|yzyzyzyzuvuvuvuvststststopopopopmnmnmnmnklklklklghghghghdcdcdcdcbabababa^]^]^]^]}~}~}~}~{|{|{|{|yzyzyzyzuvuvuvuvststststopopopopmnmnmnmnklklklklghghghghdcdcdcdcbabababa^]^]^]^]}~}~}~}~{|{|{|{|yzyzyzyzuvuvuvuvststststopopopopmnmnmnmnkjijijijghghghghdcdcdcdcbabababa^]^]^]^]}~}~}~}~{|{|{|{|yzyzyzyzuvuvuvuvststststopopopopmnmnmnmnijijijijghghghghdcdcdcdcbabababa^]^]^]^]}~}~}~}~{|{|{|{|yxwxwxwxuvuvuvuvststststopopopopmnmnmnmnijijijijghghghghdcdcdcdcbabababa^]^]^]^]}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvststststopopopopmnmnmnmnijijijijghghghghdcdcdcdcbabababa^]^]^]^]}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvststststopopopopmnmnmnmnijijijijghghghghdcdcdcdcbabababa^]^]^]^]}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvststststopopopopmnmnmnmnijijijijghghgfefdcdcdcdcbabababa^]^]^]^]}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvststststopopopopmnmnmnmnijijijijefefeeeedcdcdcdcbabababa^]^]^]^]}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvststststopopopopmnmnmnmnijijijijefefefefdcdcdcdcbabababa^]^]^]^]}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvsrqrqrqropopopopmnmnmnmnijijijijefefefefdcdcdcdc`_`_`_`_^]^]^]^]}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvqrqrqrqropopopopmnmnmnmnijijijijefefefefdcdcdcdc`_`_`_`_^]^]^]^]}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvqrqrqrqropopopopmnmnmnmnijijijijefefefeedcdcdcdc`_`_`_`_^]^]^]^]}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvqrqrqrqropopopopmnmnmnmnijijijijeeeefefedcdcdcdc`_`_`_`_^]^]^]^]}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvqrqrqrqropopopopmnmnmnmnijijijijfefefefedcdcdcdc`_`_`_`_^]^]^]^]}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvqrqrqrqropopopopmnmnmnmnijijijijfefefefedcdcdcdc`_`_`_`_^]^]^]^]}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvqrqrqrqropopopopmlklklklijijijijfefefefedcdcdcdc`_`_`_`_^]^]^]^]}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvqrqrqrqropopopopklklklklijijijijfefefefedcdcdcdc`_`_`_`_^]^]^]^]}~}~}~}~{zyzyzyzwxwxwxwxuvuvuvuvqrqrqrqropopopopklklklklijijijijfefefeeedcdcdcdc`_`_`_`_^]^]^]^]}~}~}~}~yzyzyzyzwxwxwxwxuvuvuvuvqrqrqrqropopopopklklklklijijijijeeefefefdcdcdcdc`_`_`_`_^]^]^]^]}~}~}~}~yzyzyzyzwxwxwxwxuvuvuvuvqrqrqrqropopopopklklklklijijijijefefefefdcdcdcdc`_`_`_`_^]^]^]^]}~}~}~}~yzyzyzyzwxwxwxwxuvuvuvuvqrqrqrqropopopopklklklklijijijijefefefefdcdcdcdc`_`_`_`_^]^]^]^]\[\[\[\[}~}~}~}~yzyzyzyzwxwxwxwxuvuvuvuvqrqrqrqropopopopklklklklijijijijefefefefdcdcdcdc`_`_`_`_^]^]^]^]\[\[\[\[}~}~}~}~yzyzyzyzwxwxwxwxuvuvuvuvqrqrqrqropopopopklklklklijijijijefefefefdcdcdcdc`_`_`_`_^]^]^]^]\[\[\[\[}~}~}~}~yzyzyzyzwxwxwxwxutstststqrqrqrqropopopopklklklklijijijijefefeeeebabababa`_`_`_`_^]^]^]^]\[\[\[\[}~}~}~}~yzyzyzyzwxwxwxwxststststqrqrqrqropopopopklklklklijijijijeefefefebabababa`_`_`_`_^]^]^]^]\[\[\[\[}~}~}~}~yzyzyzyzwxwxwxwxststststqrqrqrqropopopopklklklklijijijijfefefefebabababa`_`_`_`_^]^]^]^]\[\[\[\[}~}~}~}~yzyzyzyzwxwxwxwxststststqrqrqrqropopopopklklklklijijijijfefefefebabababa`_`_`_`_^]^]^]^]\[\[\[\[}~}~}~}~yzyzyzyzwxwxwxwxststststqrqrqrqropopopopklklklklijijijihfefefefebabababa`_`_`_`_^]^]^]^]\[\[\[\[}~}~}~}~yzyzyzyzwxwxwxwxststststqrqrqrqropopopopklklklklghghghghfefefefebabababa`_`_`_`_^]^]^]^]\[\[\[\[}~}~}~}~yzyzyzyzwxwxwxwxststststqrqrqrqronmnmnmnklklklklghghghghfefeeeeebabababa`_`_`_`_\[\[\[\[\[\[\[\[}~}~}~}~yzyzyzyzwxwxwxwxststststqrqrqrqrmnmnmnmnklklklklghghghghefefefefbabababa`_`_`_`_\[\[\[\[\[\[\[\[}|{|{|{|yzyzyzyzwxwxwxwxststststqrqrqrqrmnmnmnmnklklklklghghghghefefefefbabababa`_`_`_`_\[\[\[\[\[\[\[\[{|{|{|{|yzyzyzyzwxwxwxwxststststqrqrqrqrmnmnmnmnklklklklghghghghefefefefbabababa`_`_`_`_\[\[\[\[\[\[\[\[{|{|{|{|yzyzyzyzwxwxwxwxststststqrqrqrqrmnmnmnmnklklklklghghghghefefefefbabababa`_`_`_`_\[\[\[\[\[\[\[\[{|{|{|{|yzyzyzyzwxwxwxwxststststqrqrqrqrmnmnmnmnklklklklghghghghefefefefbabababa`_`_`_`_\[\[\[\[\[\[\[\[{|{|{|{|yzyzyzyzwxwxwxwxststststqrqrqrqrmnmnmnmnklklklklghghghghefeeeeeebabababa`_`_`_`_\[\[\[\[\[\[\[\[{|{|{|{|yzyzyzyzwxwxwxwxststststqrqrqrqrmnmnmnmnklklklklghghghghfefefefebabababa`_`_`_`_\[\[\[\[\[\[\[\[{|{|{|{|yzyzyzyzwvuvuvuvststststqrqrqrqrmnmnmnmnklklklklghghghghdcdcdcdcbabababa`_`_`_`_\[\[\[\[\[\[\[\[{|{|{|{|yzyzyzyzuvuvuvuvststststqrqrqrqrmnmnmnmnklklklklghghghghdcdcdcdcbabababa`_`_`_`_\[\[\[\[ZYZYZYZY{|{|{|{|yzyzyzyzuvuvuvuvststststqrqrqrqrmnmnmnmnklklklklghghghghdcdcdcdcbabababa`_`_`_`_\[\[\[\[ZYZYZYZY{|{|{|{|yzyzyzyzuvuvuvuvststststqrqrqrqrmnmnmnmnklklklklghghghghdcdcdcdcbabababa`_`_`_`_\[\[\[\[ZYZYZYZY{|{|{|{|yzyzyzyzuvuvuvuvststststqrqrqrqrmnmnmnmnklklklklghghghghdcdcdcdcbabababa`_`_`_`_\[\[\[\[ZYZYZYZY{|{|{|{|yzyzyzyzuvuvuvuvststststqrqrqrqrmnmnmnmnklklklklghghghghdcdcdcdcbabababa`_`_`_`_\[\[\[\[ZYZYZYZY{|{|{|{|yzyzyzyzuvuvuvuvststststqpopopopmnmnmnmnklklklklghghghghdcdcdcdcbabababa^]^]^]^]\[\[\[\[ZYZYZYZY{|{|{|{|yzyzyzyzuvuvuvuvststststopopopopmnmnmnmnklklklklghghghghdcdcdcdcbabababa^]^]^]^]\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWTSTSTSTSRQRQRQRQNMNMNMNMLKLKLKLKGHGHGHGHEFEFEFEFABABABAB?@?@?@?@=>=>=>=>9:9:9:9:78787878343434340/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!         ZYZYZYZYXWXWXWXWTSTSTSTSRQRQRQRQNMNMNMNMKKKKKLKLGHGHGHGHEFEFEFEFABABABAB?@?@?@?@=>=>=>=>9:9:9:9:78787878343434340/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!         ZYZYZYZYXWXWXWXWTSTSTSTSRQRQRQRQNMNMNMNMKLKLKLKLGHGHGHGHEFEFEFEFABABABAB?@?@?@?@=>=>=>=>9:9:9:9:78787878343434340/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!         - -ZYZYZYZYXWXWXWXWTSTSTSTSRQRQRQRQNMNMNMNMKLKLKLKLGHGHGHGHEFEFEFEFABABABAB?@?@?@?@=>=>=>=>9:9:9:9:78787878343434340/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!         - - - -ZYZYZYZYXWXWXWXWTSTSTSTSRQRQRQRQNMNMNMNMKLKLKLKLGHGHGHGHEFEFEFEFABABABAB?@?@?@?@=>=>=>=<9:9:9:9:78787878343434340/0/0/0/.-.-.-.-,+,+,+*)('('('('&%&%&%&%"!"!"!"!         - - - -ZYZYZYZYXWXWXWXWTSTSTSTSRQRQRQRQNMNMNMNMKLKKKKKLGHGHGHGHEFEFEFEFABABABAB?@?@?@?@;<;<;<;<9:9:9:9:78787878343434340/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%"!"!"!"!         - - - -ZYZYZYZYXWXWXWXWTSTSTSTSRQRQRQRQNMNMNMNMKLKLKLKJGHGHGHGHEFEFEFEFABABABAB?@?@?@?@;<;<;<;<9:9:9:9:78787878343434340/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%"!"!"!"!         - - - -ZYZYZYZYXWXWXWXWTSTSTSTSRQRQRQRQNMNMNMNMIJIJIJIJGHGHGHGHEFEFEFEFABABABAB?@?@?@?@;<;<;<;<9:9:9:9:78787878343434340/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%"!"!"!"!         - - - -ZYZYZYZYXWXWXWXWTSTSTSTSRQRQRQRQNMNMNMNMIJIJIJIJGHGHGHGHEFEFEFEFABABABAB?@?@?@?@;<;<;<;<9:9:9:9:78787878343434340/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%"!"!"!"!         - - - -ZYZYZYZYXWXWXWXWTSTSTSTSRQRQRQRQNMNMNMNMIJIJIJIJGHGHGHGHEFEFEFEFABABABAB?@?@?@?@;<;<;<;<9:9:9:9:78787878343434340/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%"!"!"!"!         - - - -ZYZYZYZYXWXWXWXWTSTSTSTSRQRQRQRQNMNMNMNMIJIJIJIJGHGHGHGHEFEFEFEFABABABAB?@?@?@?@;<;<;<;<9:9:9:9:78787876343434340/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%$#"!"!"!"!         - - - -ZYZYZYZYXWXWXWXWTSTSTSTSRQRQRQRQNMNMNMNMIJIJIJIJGHGHGHGHEFEFEFEFABABABAB?@?@?@?@;<;<;<;<9:9:9:9:56565656343434340/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"!         - - - -ZYZYZYZYXWXWXWXWTSTSTSTSRQRQRQRQNMNMNMNMIJIJIJIJGHGHGHGHEFEFEFEDABABABAB?@?@?@?@;<;<;<;<9:9:9:9:56565656343434340/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"!         - - - -ZYZYZYZYVUVUVUVUTSTSTSTSRQRQRQRQNMNMNMNMIJIJIJIJGHGHGHGHCDCDCDCDABABABAB?@?@?@?@;<;<;<;<9:9:9:9:56565656343434340/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"!         - - - -ZYZYZYZYVUVUVUVUTSTSTSTSRQRQRQRQNMNMNMNMIJIJIJIJGHGHGHGHCDCDCDCDABABABAB?@?@?@?@;<;<;<;<9:9:9:9:56565656343434340/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"!         - - - -ZYZYZYZYVUVUVUVUTSTSTSTSRQRQRQRQNMNMNMNMIJIJIJIJGHGHGHGHCDCDCDCDABABABAB?@?@?@?@;<;<;<;<9:9:9:9:56565656343434340/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"!         - - - -ZYZYZYZYVUVUVUVUTSTSTSTSRQRQRQRQNMNMNMNMIJIJIJIJGHGHGHGHCDCDCDCDABABABAB?@?@?@?@;<;<;<;<9:9:9:9:56565656343212120/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"!      - - - -ZYZYZYZYVUVUVUVUTSTSTSTSRQRQRQRQNMNMNMNMIJIJIJIJGHGHGHGHCDCDCDCDABABABAB?@?@?@?@;<;<;<;<9:9:9:9:56565656121111120/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"! - - - -ZYZYZYZYVUVUVUVUTSTSTSTSRQRQRQRQNMNMNMNMIJIJIJIJGHGHGHGHCDCDCDCDABABABAB?@?@?@?>;<;<;<;<9:9:9:9:56565656121212120/0/0/0/.-.-.-,+*)*)*)*)('('('('$#$#$#$#"!"!"!"! - - - -ZYZYZYZYVUVUVUVUTSTSTSTSPOPOPOPONMNMNMNMIJIJIJIJGHGHGHGHCDCDCDCDABABABAB=>=>=>=>;<;<;<;<9:9:9:9:56565656121212120/0/0/0/,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"! - - - -ZYZYZYZYVUVUVUVUTSTSTSTSPOPOPOPONMNMNMNMIJIJIJIJGHGHGHGHCDCDCDCDABABABAB=>=>=>=>;<;<;<;<9:9:9:9:56565656121212120/0/0/0/,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"! - - - -ZYZYZYZYVUVUVUVUTSTSTSTSPOPOPOPONMNMNMNMIJIJIJIJGHGHGHGHCDCDCDCDABABABAB=>=>=>=>;<;<;<;<9:9:9:9:56565656121211110/0/0/0/,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"! - - - -ZYZYZYZYVUVUVUVUTSTSTSTSPOPOPOPONMNMNMNMIJIJIJIJGHGHGHGHCDCDCDCDABABABAB=>=>=>=>;<;<;<;<9:9:9:9:56565656112121210/0/0/0/,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"! - - - -ZYZYZYZYVUVUVUVUTSTSTSTSPOPOPOPONMNMNMNMIJIJIJIJGHGHGHGHCDCDCDCDABABABAB=>=>=>=>;<;<;<;<9:9:9:9:56565656212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"! - - - -ZYZYZYZYVUVUVUVUTSTSTSTSPOPOPOPONMNMLKLKIJIJIJIJGHGHGHGHCDCDCDCDABABABAB=>=>=>=>;<;<;<;<9:9:9:9856565656212121210/0/0/0/,+,+,+,+*)*)*)*)('('('&%$#$#$#$#"!"!"!"! - - - -ZYZYZYZYVUVUVUVUTSTSTSTSPOPOPOPOLKLKKKKKIJIJIJIJGHGHGHGHCDCDCDCDABABABAB=>=>=>=>;<;<;<;<7878787856565656212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"! - - - -ZYZYZYZYVUVUVUVUTSTSTSTSPOPOPOPOKLKLKLKLIJIJIJIJGHGHGHGFCDCDCDCDABABABAB=>=>=>=>;<;<;<;<7878787856565656212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"! - - - -XWXWXWXWVUVUVUVUTSTSTSTSPOPOPOPOKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCDABABABAB=>=>=>=>;<;<;<;<7878787856565656212111110/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"! - - - -XWXWXWXWVUVUVUVUTSTSTSTSPOPOPOPOKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCDABABABAB=>=>=>=>;<;<;<;<7878787856565656121212120/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"! - - - -XWXWXWXWVUVUVUVUTSTSTSTSPOPOPOPOKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCDABABABAB=>=>=>=>;<;<;<;<7878787856565656121212120/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"! - - - -XWXWXWXWVUVUVUVUTSTSTSTSPOPOPOPOKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCDABABABAB=>=>=>=>;<;<;<;<7878787856565656121212120/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!   - - - -XWXWXWXWVUVUVUVUTSTSTSTSPOPOPOPOKLKKKKKKIJIJIJIJEFEFEFEFCDCDCDCDABABABAB=>=>=>=>;<;<;<;<7878787856565656121212120/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#         - - - -XWXWXWXWVUVUVUVUTSTSTSTSPOPOPOPOLKLKLKLKIJIJIJIJEFEFEFEFCDCDCDCDABABABA@=>=>=>=>;<;<;<;<7878787856565656121212120/0/0/.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#         - - - -XWXWXWXWVUVUVUVURQRQRQRQPOPOPOPOLKLKLKLKIJIJIJIJEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>;<;<;<;<787878785656565612111111.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#         - - - -XWXWXWXWVUVUVUVURQRQRQRQPOPOPOPOLKLKLKLKIJIJIJIJEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>;<;<;<;<787878785656565621212121.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#         - - - -XWXWXWXWVUVUVUVURQRQRQRQPOPOPOPOLKLKLKLKIJIJIJIJEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>;<;<;<;<787878785656565621212121.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#         - - - -XWXWXWXWVUVUVUVURQRQRQRQPOPOPOPOLKLKLKLKIJIJIJIJEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>;<;<;<;<787878785656565621212121.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#         - - XWXWXWXWVUVUVUVURQRQRQRQPOPOPOPOLKKKKKKLIJIJIJIJEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>;<;<;<;<787878785656543421212121.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#         XWXWXWXWVUVUVUVURQRQRQRQPOPOPOPOKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>;<;<;<;:787878783434343421212121.-.-.-.-,+,+,+,+*)*)*)('&%&%&%&%$#$#$#$#         XWXWXWXWVUVUVUVURQRQRQRQPOPOPOPOKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>9:9:9:9:787878783434343421111112.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#         XWXWXWXWVUVUVUVURQRQRQRQPOPOPOPOKLKLKLKLIJIJIJIHEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>9:9:9:9:787878783434343412121212.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#         XWXWXWXWVUVUVUVURQRQRQRQPOPOPOPOKLKLKLKLGHGHGHGHEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>9:9:9:9:787878783434343412121212.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#         XWXWXWXWVUVUVUVURQRQRQRQPOPOPOPOKLKLKLKLGHGHGHGHEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>9:9:9:9:787878783434343412121212.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#         XWXWXWXWVUVUVUVURQRQRQRQPOPOPOPOKKKKKKLKGHGHGHGHEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>9:9:9:9:787878783434343412121212.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#         XWXWXWXWVUVUVUVURQRQRQRQPOPOPOPOLKLKLKLKGHGHGHGHEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>9:9:9:9:787878783434343412121212.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#"!         XWXWXWXWVUVUVUVURQRQRQRQPOPOPONMLKLKLKLKGHGHGHGHEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>9:9:9:9:787878783434343411111121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!         XWXWXWXWVUVUVUVURQRQRQRQNMNMNMNMLKLKLKLKGHGHGHGHEFEFEFEFCDCDCDCB?@?@?@?@=>=>=>=>9:9:9:9:78787878343434342121210/.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!         XWXWXWXWTSTSTSTSRQRQRQRQNMNMNMNMLKLKLKLKGHGHGHGHEFEFEFEFABABABAB?@?@?@?@=>=>=>=>9:9:9:9:78787878343434340/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!         IIJJKKLL''(())** - QPPOONNMpqqrrsst !!""##$100//..-~~}@AABBCCD 0//..--,hhggffeeYYZZ[[\\ - - MMNNOOPP++,,--..MLLKKJJItuuvvwwx$%%&&''(-,,++**)}||{{zzyDEEFFGGH - - ,++**))(ddccbbaa]]^^__`` ~~}}QQRRSSTT//001177 - - IHHGGFFExyyzz{{|())**++,)((''&&%yxxwwvvuHIIJJKKL (''&&%%$``__^^]]aabbccdd||{{zzyyUUVVWWXX8899::;; EDDCCBBA|}}~~,--..//0%$$##""!uttssrrqLMMNNOOP$##""!! \\[[ZZYYeeffgghhxxwwvvuuYYZZ[[\\<<==>>??A@@??>>=01122334! qppoonnmPQQRRSST XXWWVVUUiijjkkllttssrrqq]]^^__``@@AABBCC=<<;;::945566778mllkkjjiTUUVVWWX - - TTSSRRQQmmnnoopp ppoonnmmaabbccddDDEEFFGG98877665899::;;<ihhggffeXYYZZ[[\ PPOONNMMqqrrsstt!!""##$$llkkjjiieeffgghhHHIIJJKK 54433221<==>>??@eddccbba\]]^^__` LLKKJJIIuuvvwwxx%%&&''((hhggffeeiijjkkllQQRRSSTT !!""##$100//..-~~}@AABBCCD a``__^^]`aabbccd - - HHGGFFEEyyzz{{||))**++,,ddccbbaammnnooppUUVVWWXX$%%&&''(-,,++**)}||{{zzyDEEFFGGH - - ]\\[[ZZYdeeffggh !DDCCBBAA}}~~--..//00``__^^]]qqrrssttYYZZ[[\\())**++,)((''&&%yxxwwvvuHIIJJKKL YXXWWVVUhiijjkkl!""##$$%@@??>>==11223344\\[[ZZYYuuvvwwxx]]^^__``,--..//0%$$##""!uttssrrqLMMNNOOPUTTSSRRQlmmnnoop%&&''(() - - <<;;::9955667788XXWWVVUUyyzz{{||aabbccdd01122334! qppoonnmPQQRRSSTQPPOONNMpqqrrsst)**++,,- 8877665599::;;<>??@@PPOONNMMnnooppqq899::;;<ihhggffeXYYZZ[[\ - - IHHGGFFExyyzz{{|1778899:00//..--~~}}AABBCCDDLLKKJJIIrrssttuu<==>>??@eddccbba\]]^^__` EDDCCBBA|}}~~:;;<<==>,,++**))||{{zzyyEEFFGGHHHHGGFFEEvvwwxxyy@AABBCCD a``__^^]`aabbccdA@@??>>=>??@@AAB !!""((''&&%%xxwwvvuuIIJJKKLLDDCCBBAA~~}}||zz{{||}}DEEFFGGH - - ]\\[[ZZYdeeffggh=<<;;::9BCCDDEEF##$$%%&&$$##""!!ttssrrqqMMNNOOPP@@??>>=={{zzyyxx~~HIIJJKKL YXXWWVVUhiijjkkl98877665FGGHHIIJ''(())** ppoonnmmQQRRSSTT<<;;::99wwvvuuttLMMNNOOPUTTSSRRQlmmnnoop 54433221JKKQQRRS++,,--..llkkjjiiUUVVWWXX88776655ssrrqqppPQQRRSSTQPPOONNMpqqrrsst !!""##$100//..-~~}STTUUVVW//001123hhggffeeYYZZ[[\\44332211oonnmmll~~}}|TUUVVWWXMLLKKJJItuuvvwwx$%%&&''(-,,++**)}||{{zzyWXXYYZZ[45677889ddccbbaa]]^^__``00//..--kkeeddcc|{{zzyyxXYYZZ[[\ - - IHHGGFFExyyzz{{|())**++,)((''&&%yxxwwvvu[\\]]^^_9::;;<<= ``__^^]]aabbccdd,,++**))bbaa``__xwwvvuut\]]^^__` EDDCCBBA|}}~~,--..//0%$$##""!uttssrrq_``aabbc=>>??@@A - - \\[[ZZYYeeffgghhHHGGFFEE((''&&%%^^]]\\[[tssrrqqp`aabbccdA@@??>>=01122334! qppoonnmcddeekklABBCCDDEXXWWVVUUiijjkkllDDCCBBAA$$##""!!ZZYYXXWWpoonnmmldeeffggh=<<;;::945566778mllkkjjilmmnnoopEFFGGHHITTSSRRQQmmnnoopp@@??>>== VVUUTTSSlkkjihgfhiijjkkl98877665899::;;<ihhggffepqqrrsstIJJKKLMNPPOONNMMqqrrsstt<<;;::99RRQQKKJJeeddccbblmmnnoop 54433221<==>>??@eddccbbatuuvvwwxOPQQRRSSLLKKJJIIuuvvwwxx88776655IIHHGGFFaa``__^^pqqrrsst !!""##$100//..-~~}@AABBCCD a``__^^]xyyzz{{|TTUUVVWW - - HHGGFFEEyyzz{{||44332211EEDDCCBB]]\\[[ZZtuuvvwwx$%%&&''(-,,++**)}||{{zzyDEEFFGGH - - ]\\[[ZZY|}}~~XXYYZZ[[ DDCCBBAA}}~~00//..-- AA@@??>>YYXXWWVVxyyzz{{|())**++,)((''&&%yxxwwvvuHIIJJKKL YXXWWVVU\\]]^^__@@??>>==,,++**)) - - ==<<;;::UUTTSSRR|}}~~,--..//0%$$##""!uttssrrqLMMNNOOPUTTSSRRQ``aabbcc<<;;::99((''&&%% - - 99887711QQPONMLK01122334! qppoonnmPQQRRSSTQPPOONNM~~}}||{ddeefghi88776655$$##""!! 00//..--KJJIIHHG45566778mllkkjjiTUUVVWWXMLLKKJJI{zzyyxxwjkkllmmn 44332211 ,,++**))GFFEEDDC899::;;<ihhggffeXYYZZ[[\ - - IHHGGFFEwvvuuttsnooppqqr!!""##$$00//..--~~}}((''&&%%CBBAA@@?<==>>??@eddccbba\]]^^__` EDDCCBBAsrrqqpporssttuuv%%&&''((,,++**))||{{zzyy$$##""!!?>>==<<;~~}@AABBCCD a``__^^]`aabbccdA@@??>>=onnmmllkvwwxxyyz))**++,,((''&&%%xxwwvvuu ;::99887}||{{zzyDEEFFGGH - - ]\\[[ZZYdeeffggh=<<;;::9keeddccbz{{||}}~--..//00$$##""!!ttssrrqq !!""##$$76543211yxxwwvvuHIIJJKKL YXXWWVVUhiijjkkl98877665baa``__^~11223344 ppoonnmm - - %%&&''((00//..--uttssrrqLMMNNOOPUTTSSRRQlmmnnoop 54433221^]]\\[[Z55667788llkkjjii))**++,, ,,++**))qppoonnmPQQRRSSTQPPOONNMpqqrrsst !!""##$100//..-ZYYXXWWV99::;;<<hhggffee--..//00 - - ((''&&%%mllkkjjiTUUVVWWXMLLKKJJItuuvvwwx$%%&&''(-,,++**)VUUTTSSR==>>??@@ddccbbaa11223344 - - $$##""!!ihhggffeXYYZZ[[\ - - IHHGGFFExyyzz{{|())**++,)((''&&%RQQKKJJI~~}}AABBCCDD ``__^^]]55667788 eddccbba\]]^^__` EDDCCBBA|}}~~,--..//0%$$##""!IHHGGFFE||{{zzyyEEFFGGHH - - \\[[ZZYY - - 99::;;<<a``__^^]`aabbccdA@@??>>=01122334! EDDCCBBAxxwwvvuuIIJJKKLLXXWWVVUU ==>>??@@]\\[[ZZYdeeffggh=<<;;::945566778A@@??>>=ttssrrqqMMNNOOPPTTSSRRQQAABBCCDD !!""YXXWWVVUhiijjkkl98877665899::;;<=<<;;::9ppoonnmmQQRRSSTTPPOONNMMEEFFGGHH##$$%%&& -UTTSSRRQlmmnnoop 54433221<==>>??@98877110llkkjjiiUUVVWWXXLLKKJJII 44332211==>>??@@ lkkjjiihUVVWWXXY LKKJJIIHuvvwwxxy%&&''((),++**))(UTTSSRRQ>>??@@AAccbbaa``^^__``aaCCBBAA@@~~^^__``aa&''(())*+**))(('{zzyyxxwFGGHHIIJ - - IHHGGFFEUTTSSRRQ!!""##$$00//..--~~}}AABBCCDDhggffeedYZZ[[\\] - - HGGFFEEDyzz{{||})**++,,-(''&&%%$QKKJJIIH~~}}||BBCCDDEE __^^]]\\bbccddee??>>==<>=MLLKKJJI))**++,,((''&&%%xxwwvvuuIIJJKKLL !!""`__^^]]\abbccdde@??>>==<12233445 DCCBBAA@wwvvuuttJJKKLLMMWWVVUUTTjjkkllmm77665544ooppqqrr23344556onnmmllkRSSTTUUV=<<;;::9IHHGGFFE--..//00$$##""!!ttssrrqqMMNNOOPP##$$%%&& -\[[ZZYYXeffgghhi<;;::99856677889@??>>==gffeeddcZ[[\\]]^ - 0//..--,A@@??>>=55667788llkkjjiiUUVVWWXX++,,--..TSSRRQQPmnnooppq !43322110=>>??@@A8771100/kkjjiihhVVWWXXYY KKJJIIHHvvwwxxyy&&''(())++**))((vvuuttss{{||}}~~>??@@AABcbbaa``_^__``aab,++**))(=<<;;::999::;;<<hhggffeeYYZZ[[\\//001177POONNMMLqrrssttu!""##$$%0//..--,~~}}|ABBCCDDE /..--,,+ggffeeddZZ[[\\]] - - GGFFEEDDzz{{||}}**++,,--''&&%%$$rrqqppooBCCDDEEF _^^]]\\[bccddeef(''&&%%$98877665==>>??@@ddccbbaa]]^^__``8899::;; LKKJJIIHuvvwwxxy%&&''((),++**))(|{{zzyyxEFFGGHHI - - +**))(('ccbbaa``^^__``aaCCBBAA@@~~..//0011##""!! nnmmllkkFGGHHIIJ - - [ZZYYXXWfgghhiij$##""!! 54433221AABBCCDD ``__^^]]aabbccdd<<==>>?? - - HGGFFEEDyzz{{||})**++,,-(''&&%%$xwwvvuutIJJKKLLM'&&%%$$#__^^]]\\bbccddee??>>==<<22334455eeddccbbJKKLLMMNWVVUUTTSjkkllmmn 100//..-EEFFGGHH - - \\[[ZZYYeeffgghh@@AABBCC DCCBBAA@}~~-..//001$##""!! tssrrqqpMNNOOPPQ#""!! [[ZZYYXXffgghhii;;::998866778899aa``__^^~~}}||{NOOPPQQRSRRQQPPOnooppqqr !!"-,,++**)IIJJKKLLXXWWVVUUiijjkkllDDEEFFGG@??>>==<12233445 poonnmmlQRRSSTTU WWVVUUTTjjkkllmm77665544::;;<<==]]\\[[ZZ{zzyyxxwRSSTTUUVONNMMLLKrssttuuv"##$$%%&)((''&&%MMNNOOPPTTSSRRQQmmnnooppHHIIJJKK<;;::99856677889lkkjjiihUVVWWXXY - - SSRRQQPPnnooppqq !!33221100>>??@@AAYYXXWWVVwvvuuttsVWWXXYYZ -KJJIIHHGvwwxxyyz&''(())* %$$##""!QQRRSSTTPPOONNMMqqrrssttQQRRSSTT877665549::;;<<=hggffeedYZZ[[\\] OONNMMLLrrssttuu""##$$%%//..--,,~~}}||BBCCDDEE UUTTSSRRsrrqqppoZ[[\\]]^ - GFFEEDDCz{{||}}~*++,,--. - - -! UUVVWWXXLLKKJJIIuuvvwwxxUUVVWWXX !43322110=>>??@@Adccbbaa`]^^__``a -KKJJIIHHvvwwxxyy&&''(())++**))(({{zzyyxxFFGGHHII - - QQKKJJIIonnmmllk^__``aabCBBAA@@?~.//00112 - YYZZ[[\\ - - HHGGFFEEyyzz{{||YYZZ[[\\!""##$$%0//..--,~~}}|ABBCCDDE `__^^]]\abbccdde - GGFFEEDDzz{{||}}**++,,--''&&%%$$wwvvuuttJJKKLLMMHHGGFFEEkjihgfeebccddeef?>>==<<;23344556]]^^__`` DDCCBBAA}}~~]]^^__``%&&''((),++**))(|{{zzyyxEFFGGHHI - - \[[ZZYYXeffgghhi !!"CCBBAA@@~~..//0011##""!! ssrrqqppNNOOPPQQDDCCBBAAddccbbaafgghhiij;::998876778899:aabbccdd@@??>>==aabbccdd)**++,,-(''&&%%$xwwvvuutIJJKKLLMXWWVVUUTijjkkllm"##$$%%& ??>>==<<22334455oonnmmllRRSSTTUU@@??>>==``__^^]]jkkllmmn76655443:;;<<==> eeffgghh<<;;::99eekkllmm-..//001$##""!! tssrrqqpMNNOOPPQTSSRRQQPmnnooppq&''(())* - - ;;::998866778899kkjjiihhVVWWXXYY <<;;::99\\[[ZZYYnooppqqr !!"3221100/>??@@AAB !!""# - - iijjkkll88776655nnooppqq12233445 poonnmmlQRRSSTTUPOONNMMLqrrssttu*++,,--. 77665544::;;<<==ggffeeddZZ[[\\]] - - 88771100XXWWVVUUrssttuuv"##$$%%&/..--,,+~~}}||{BCCDDEEF#$$%%&&' - - mmnnoopp 44332211~~}}||rrssttuu56677889lkkjjiihUVVWWXXY LKKJJIIHuvvwwxxy.//0011733221100>>??@@AAccbbaa``^^__``aa//..--,,TTSSRRQQvwwxxyyz&''(())*+**))(('{zzyyxxwFGGHHIIJ'(())**+ qqrrsstt!!""##$$00//..--{{zzyyxxvvwwxxyy9::;;<<=hggffeedYZZ[[\\] - - HGGFFEEDyzz{{||}78899::;//..--,,~~}}||BBCCDDEE __^^]]\\bbccddee++**))((PONMLKKJz{{||}}~*++,,--.'&&%%$$#wvvuuttsJKKLLMMN+,,--../uuvvwwxx%%&&''((,,++**))wwvvuuttzz{{||}}=>>??@@Adccbbaa`]^^__``a DCCBBAA@}~~;<<==>>?++**))(({{zzyyxxFFGGHHII - - [[ZZYYXXffgghhii''&&%%$$JIIHHGGF~.//00112#""!! srrqqppoNOOPPQQR/0011778yyzz{{||))**++,,((''&&%%ssrrqqpp~~ABBCCDDE `__^^]]\abbccdde@??>>==6778899:kjjiihhgVWWXXYYZ<==>>??@ 11223344 kkeeddccIJJKKLLMXWWVVUUTijjkkllm87766554GHHIIJJK(())**++oonnmmllRRSSTTUUOONNMMLLrrssttuu""##$$%%>==<<;;::;;<<==>gffeeddcZ[[\\]]^@AABBCCD !!""##$55667788bbaa``__~~}}|MNNOOPPQTSSRRQQPmnnooppq !43322110KQQRRSST,,--..//kkjjiihhVVWWXXYY KKJJIIHHvvwwxxyy&&''(()):9988776>??@@AABcbbaa``_^__``aabDEEFFGGH$%%&&''(99::;;<<^^]]\\[[|{{zzyyxQRRSSTTUPOONNMMLqrrssttu!""##$$%0//..--,~~}}|TUUVVWWX00112345ggffeeddZZ[[\\]] - - GGFFEEDDzz{{||}}**++,,-- 54321100~~}}||{BCCDDEEF _^^]]\\[bccddeefHIIJJKKQ())**++,==>>??@@ZZYYXXWWxwwvvuutUVVWWXXY LKKJJIIHuvvwwxxy%&&''((),++**))(|{{zzyyxXYYZZ[[\6778899:ccbbaa``^^__``aaCCBBAA@@~~..//0011 - - //..--,,{zzyyxxwFGGHHIIJ - - [ZZYYXXWfgghhiijQRRSSTTU,--..//0~~}}AABBCCDD VVUUTTSStssrrqqpYZZ[[\\] - - HGGFFEEDyzz{{||})**++,,-(''&&%%$xwwvvuut\]]^^__`:;;<<==> __^^]]\\bbccddee??>>==<<22334455++**))((wvvuuttsJKKLLMMNWVVUUTTSjkkllmmnUVVWWXXY01122334||{{zzyyEEFFGGHH - - RRQQKKJJpoonnmml]^^__``a DCCBBAA@}~~-..//001$##""!! tssrrqqp`aabbccd>??@@AAB - - [[ZZYYXXffgghhii;;::998866778899 - -''&&%%$$srrqqppoNOOPPQQRSRRQQPPOnooppqqrYZZ[[\\]45566778xxwwvvuuIIJJKKLLIIHHGGFFlkkjihgfabbccdde@??>>==<12233445 poonnmmldeekkllmBCCDDEEFWWVVUUTTjjkkllmm77665544::;;<<== ##""!! onnmmllkRSSTTUUVONNMMLLKrssttuuv]^^__``a899::;;>??@@AAkjjiihhgVWWXXYYZ -KJJIIHHGvwwxxyyzabbccdde<==>>??@ppoonnmmQQRRSSTTAA@@??>>aa``__^^ijjkkllm877665549::;;<<=hggffeedqrrssttuJKKLMNOPOONNMMLLrrssttuu""##$$%%//..--,,~~}}||BBCCDDEEgffeeddcZ[[\\]]^ - GFFEEDDCz{{||}}~ekkllmmn@AABBCCDllkkjjiiUUVVWWXX==<<;;::]]\\[[ZZmnnooppq !43322110=>>??@@Adccbbaa`uvvwwxxyQQRRSSTT KKJJIIHHvvwwxxyy&&''(())++**))(({{zzyyxxFFGGHHIIcbbaa``_^__``aabCBBAA@@?~nooppqqrDEEFFGGHhhggffeeYYZZ[[\\ - - 99887711YYXXWWVVqrrssttu!""##$$%0//..--,~~}}|ABBCCDDE `__^^]]\yzz{{||}UUVVWWXX - - GGFFEEDDzz{{||}}**++,,--''&&%%$$wwvvuuttJJKKLLMM !!""## _^^]]\\[bccddeef?>>==<<;rssttuuvHIIJJKKLddccbbaa]]^^__`` 00//..--UUTTSSRRuvvwwxxy%&&''((),++**))(|{{zzyyxEFFGGHHI - - \[[ZZYYX}~~YYZZ[[\\CCBBAA@@~~..//0011##""!! ssrrqqppNNOOPPQQ$$%%&&'' - - [ZZYYXXWfgghhiij;::99887vwwxxyyzLMMNNOOP``__^^]]aabbccdd,,++**))QQPONMLKyzz{{||})**++,,-(''&&%%$xwwvvuutIJJKKLLMXWWVVUUT]]^^__``??>>==<<22334455oonnmmllRRSSTTUU(())**++ WVVUUTTSjkkllmmn76655443~~}}||{z{{||}}}PQQRRSST\\[[ZZYYeeffgghh((''&&%%KJJIIHHG}~~-..//001$##""!! tssrrqqpMNNOOPPQTSSRRQQP~aabbccdd;;::998866778899kkjjiihhVVWWXXYY,,--..//SRRQQPPOnooppqqr !!"3221100/{zzyyxxw}||{{zzyTUUVVWWXXXWWVVUUiijjkkll$$##""!!GFFEEDDC12233445 poonnmmlQRRSSTTUPOONNMML~}}||{{zeefghijk77665544::;;<<==ggffeeddZZ[[\\]]00117788ONNMMLLKrssttuuv"##$$%%&/..--,,+wvvuuttsyxxwwvvuXYYZZ[[\TTSSRRQQmmnnoopp CBBAA@@?56677889lkkjjiihUVVWWXXY LKKJJIIHzyyxxwwvkllmmnno !!33221100>>??@@AAccbbaa``^^__``aa99::;;<< -KJJIIHHGvwwxxyyz&''(())*+**))(('srrqqppouttssrrq\]]^^__`PPOONNMMqqrrsstt!!""##$$?>>==<<;9::;;<<=hggffeedYZZ[[\\] - - HGGFFEEDvuuttssroppqqrrs""##$$%%//..--,,~~}}||BBCCDDEE __^^]]\\bbccddee==>>??@@ - GFFEEDDCz{{||}}~*++,,--.'&&%%$$#onnmmllkqppoonnm`aabbccdLLKKJJIIuuvvwwxx%%&&''((;::99887=>>??@@Adccbbaa`]^^__``a DCCBBAA@rqqppoonsttuuvvw&&''(())++**))(({{zzyyxxFFGGHHII - - [[ZZYYXXffgghhiiAABBCCDDCBBAA@@?~.//00112#""!! keeddccbmllkkjjideeffgghHHGGFFEEyyzz{{||))**++,, 76543211~~}}|ABBCCDDE `__^^]]\abbccdde@??>>==>==<<;23344556baa``__^ihhggffehiijjkklDDCCBBAA}}~~--..//00 - - 00//..--|{{zzyyxEFFGGHHI - - \[[ZZYYXeffgghhi<;;::998eddccbba{||}}~~..//0011##""!! ssrrqqppNNOOPPQQSSRRQQPPnnooppqqIIJJKKQQ;::998876778899:^]]\\[[Zeddccbbalmmnnoop@@??>>==11223344,,++**))xwwvvuutIJJKKLLMXWWVVUUTijjkkllm87766554a``__^^]22334455oonnmmllRRSSTTUUOONNMMLLrrssttuuRRSSTTUU76655443:;;<<==>ZYYXXWWVa``__^^]pqqrrsst<<;;::9955667788 ((''&&%%tssrrqqpMNNOOPPQTSSRRQQPmnnooppq !43322110]\\[[ZZY66778899kkjjiihhVVWWXXYY KKJJIIHHvvwwxxyyVVWWXXYY !!"3221100/>??@@AABVUUTTSSR]\\[[ZZYtuuvvwwx8877665599::;;<< - - $$##""!!poonnmmlQRRSSTTUPOONNMMLqrrssttu!""##$$%0//..--,YXXWWVVU::;;<<==ggffeeddZZ[[\\]] - - GGFFEEDDzz{{||}}ZZ[[\\]]"##$$%%&/..--,,+~~}}||{BCCDDEEF RQQKKJJIYXXWWVVUxyyzz{{||}}fpvXQJ`ےpfH~pZHAbf~HbHAf`vXQr˂pf~HbHAAJltr˂pf~HbHAZ`vXnnXv`bHAZf`vJAdfpvZp˂nvpZHAbfpvZp˂bdQZ|ZHAbfpvp˂rvpff~Hp˂rXn|ZdQnXv`rXQJ`fH~˙ے`JXnXv`rXQJ`ہdtA`JXQnXv`XQJ`ےH~ffpvXQJ`ےf`vXbtlf~HbHAf`vXQr˂pf~HbHAJltr˂pf~HbHAZ`vXnnXv`bHAZnvpJtArdfpvZp˂nvpZHAbfpvZp˂bnvpZHAbfpvp˂rvpff~Hp˂rfH~|ZdQnXv`rXQJ`fH~˙ے`JXnXv`rXQJ`۝`vX˂pZHnXv`XQJ`ےH~ffpvXQJ`ےf`vXbtlf~HJltf`vXQr˂pf~HbHAnvpAbے`f~HbHAZ`vXnnXv`bHAZnvpJtArdfpvbdQZ|nvpZHAbfpvZp˂fH~ˁJXQrfpvp˂rvpff~Hp˂r`vXn|ZdQnXv`drtfH~˙ے`JXnXv`rXQJ`f`vXH˂p`nXv`XQJ`ےH~ffpvXQJ`ےvpfbtlf~HAJltf`vXQr˂pf~HbHA~f`JXQrbtf~HbHAZ`vXnnXv`bHAZH~fJtArdfpvbdQZ|nvpZHAۅfpvZp˂vXnlJAfpvp˂rvpff~Hp˂r`vXn|ZdQnXv`drtfH~˒`JXQnXv`rXQJ`ۅvpfH|ZdQnXv`XQJ`ےH~ffpvXQJ`ےvpfbtlf~HAJltf`vXrbtlf~HbHA~f`btlf~HJlt`vXnnXv`bHAZHXnJtArdfpvbdQZ|nvpJtAdfpvZp˂vXnJtArdfpvbdQZ|vpff~Hp˂rvpfH|ZdQnXv`drtfH~˂|ZdQnXv`rXQJ`ۅf`|ZdQbnXv`drtAH~ffpvXQJ`ے~f`btlf~HAJltf`vXbtlf~HbHAvXnۉJtArf~HJlt`vXnnXv`JltvXnJtArdfpvbdQZ|nvpJtArdfpvZp˂vpfHd|ZfpvbdQZ|vpff~HdrtAJvpfH|ZdQnXv`drtfH~˂|ZdQnXv`rXQJ`~f`dQbtnXv`drtAH~ffpvltb~vbtlfHAJltf`vXbtlf~HJltvXnlJtArf~HJlt`vXnnXv`dQZ|pfے`JtArdfpvbdQZ|nvpJtArdfpvbdQZ|vp`vXd|ZfpvbdQZ|vpff~HdrtAJJXQr|ZdQnrXQJ`drtfH~˂|ZdQnXv`drtnvpdQbtnXv`drtAH~ffpvltbZHAbbtlےHAAJltf`vXbtlf~HAJltfH~JArd|f~HJlt`vXnnXv`dQtAJl`JXQJtArdZp˂bdQZ|nvpJtArdfpvbdQZ|f`vXZdQbtfpvbdQZ|vpff~HtbdQr˂p|ZdQrXQJ`ہdrtfH~˂|ZdQnXv`drtnvplJtnXv`drtAH~fr˂pfpvZ|dZHAbbtlbHAAJltf`vXbtlf~HAJltfHXArd|fHfJlt`vXnZHAbnXv`rtAJl`JXQJtArdZp˂bdQZ|nvpJtArdfpvbdQZ|nvpZdQbtpvnbdQZ|vpfے`JXQf~HtbdQrZAb|ZdQrXQJ`ہdrtfے`JX|ZdQnXv`drtfH~ˉlJArrXQJ`drtAH~fr˂pfpvZ|l璐ے`JbtlbHAAJltQr˂pbtlf~HAJltf`vX㙂|ZdQےHAZJlt`vXnZHAbnXv`tbdQZXQr˂JtArdZp˂bdQZ|ZHAbJtArdfpvbdQZ|nvpbtlp˂rbdQZ|vpfے`JXQf~H|drpZHAb|ZdQrXQJ`ہdrtے`JX|ZdQnXv`drtfH~JtArdXQJ`ےdrtAH~fr˂pfpvtAJl璐ے`JbtlbHAAJltQr˂pbtlfHAJltvpf|ZdQbHAZJlt`vXnZHAbnXv`tbdQZXQr˂JtArdZp˂bdQZ|ZHAbJtArdfpvbdQZ|`JXQHbtlp˂rbdQZ|vpfے`JXQp˂r|dtpZAb`|ZdQrXQJ`ہdrtے`JX|ZdQnrXQJ`drtAbے`JtArXQJ`ےdrtAے`JXQr˂pXQJ`ےbdQZ|JXQrbtlbHAAJltQr˂pbtlےHAAJltJXQrZdQbt琙bHAZJltr˂pZHAbbHAZdrtA˂pZHJfpvZp˂bdQZ|ZHAbJtArdZp˂bdQZ|˂pZHlJtAp˂rbdQZ|ZHAbے`JXQp˂rJltAbے`nXv`rXQJ`ہdrtے`JX|ZdQrXQJ`ہdrtAbے`rd|XQJ`ےdrtAے`JXQr˂pXQJ`ےbdQZ|JXQrf~HbHAAJltQr˂pbtlbHAAJltJXQrZdQbt琙bHAZJltr˂pZHAbbHAZdrtA˂pZHfpvZp˂bdQZ|ZHAbJtArdZp˂bdQZ|ے`lJtAp˂rbdQZ|ZHAbے`JXQp˂rdQZ|AbJXQnXv`rXQJ`ہdtAے`JX|ZdQrXQJ`ہdrtJXQrrdZQbXQJ`ےdrtAے`JXQr˂pXQJ`ےdrtAJr˂pf~HbHAJltQr˂pbtlbHAAJltpZHAtlJbHAZJltr˂pZHAےbHAZltbZHAbfpvZp˂bnvpZHAbJtArdZp˂bdQZ|bے`fpvp˂rbdQZ|ZHAb`JXQrp˂rdQZ|`ے`JXQnXv`rXQJ`۝fH˙ے`JX|ZdQrXQJ`ہdrtJXQrnXv`XQJ`ےdrtAے`JXQbtlXQJ`ےvXnr˂pf~HbHAf`vXQr˂pbtlbHAAJltp`JXf~HbHAZJltr˂pJtAdbHAZvpfHZHAbfpvZp˂nvpZHAbJtArdZp˂bdQZ|Qr˂pfpvp˂rbdQZ|ZHAb|ZdQbp˂r~f`JQr˅nXv`rXQJ`fH~˙ے`JX|ZdQrXQJ`ہdrtZHAbnXv`XQJ`ےdtAJے`JXQtlJXQJ`ےvXH~pZHAf~HbHAf`vXQr˂pbtlbHAAJltے`JXf~HbHAZltbr˂ptArdbHAZf`vbے`fpvZp˂nvpZHAbJfpvZp˂bdQZ|Qr˂pfpvp˂rnvpZHAb|ZdQbp˂rXnvJXQr˅nXv`rXQJ`fH~˙ے`JXnXv`rXQJ`ہdrtZHAXQnXv`XQJ`ےfHfے`JXQtlJtArdfpvbdQZ|vpflJtAf~HbdQZ|vpfHJtAd|fpv˂rXvpfHZHAbۅnXv`dQZ|vpfHHAbےpvn˂rXQvpfHHAbےrd|˂rXQvpfHAbے`vnXrXQQZ|dQr˂pXnvˍ|ZdQbnXv`drtAH~frd|fvnXdrtA~f`ZdQbtnXv`QJ`ے~f``JXQpvdrtAJ~f``JXQrXv`fJ`ے~f``JXQrZdQbtJ`ے~f`JXQrv`fJ`ےtAJlZHAbpfH~tlJf~HJlt`vXnZdQtArv`fJltvXnlJtf~HbHAZpvXnr˂pnXv`ltbvXn˂pZ~HfbHAZpvXn˂pZlJfrXQJvXnۉ˂pZH~HfpbHAZp˒tbnے`JXf۝`vtArdfpvbdQZ|vpfd|Z~HfpbdQZ|vpfHArd|fpv˂rXvpfHZHAbf~HdQZ|vpfHHAے`pvn˂rXQvpfHHAbےpv`ےbvpfHAbے`vnXrXQvpfHQr˂pXnvˍ|ZdQbnXv`drtAH~fdQbtvnXdrtA~f`ZdQbtnXv`QJ`ے~f``JXQfpvdrtAJ~f`JXQrbXv`fJ`ے~f``JXQr~HfpHAZp˂~f`JXQrv`fJ`ےㅐf`ZHAXQpfH~tlJf~HJlt`vXnlJtArv`ffpJltvXnlJtf~HJltvXnr˂pnXv`ltbvXntlJ~HfbHAZpvXn˂pZvnXrXQJvXnۉ˂pZH~HfpbHAZpvXnr˂pf۝`vtArdfpvbdQZ|vpfd|ZvnbdQZ|vpfHArd|fpvbdQZ|vpfHZHAbfnXdQZ|vpfHtAd|pvn˂rXQvpfHHAbےv`f`ےbvpfHAbے`vnXrXQvpfHZHAbXnvˍ|ZdQbnXv`drtAH~fdQbtdrXQJ`ۂdrtA~f`ZdQbtnXv`˂drtA~f``JXQv`fdrtAJ~f`ZdQbtXv`fJ`ے~f``JXQr~HfpHAXQJ`~f`JXQrv`fJ`ے~f``JXQpfH~tlJf~HJlt`vXn|ZdQHAZpJltvXnlJtf~HJltvXnr˂p~HfpltbvXnlJtA~HfbHAZpvXn˂pZvnXےJlvXnۉ˂pZH~HfpbHAZpvXnr˂pf۝`vtArdfpvbdQZ|vpfbtl˂rXbdQZ|vpfHArd|fpvbdQZ|vpfHZHAے`vnXdQZ|vpfHrd|pvn˂rXQvpfHHAbےHfpvtbQZdvpfHAے`vnXrXQvpfHZHAbXnvˍ|ZdQbnXv`drtAH~fJtArdQJ`ےdrtA~f`ZdQbtnXv`˂drtA~f`JXQrv`fdrtAJ~f`ZdQbtXv`fJ`ےJ~f``JXQrnXvrtAJl~f`JXQrbtv`fJ`ے~f`˂pZHpfH~tlJfHfJlt`vXn|ZdQbHAZpJltvXnlJtf~HJltvXnbtl|~HXltbvXnlJtA~HfltbvXn˂pZ`f~tbdvXnۉlJt~HfpbHAZpvXnAbے`f۝`vtArdpvnbdQZ|vpfbtl˂rXbdQZ|vpfArd|fpvbdQZ|vpfHZdQbtv`fdQZ|vpfHrd|pvndQZ|vpfHHAbےHfpvQZ|dvpfHAd|vnXrXQvpfHJXQrXnvˍ|ZdQbrXQJ`drtAH~f|ZdQbQJ`ےdrtA`JXQZdQbtnXv`˂drtA~f`lJt~HfpdrtAJ~f`ZdQbtXv`fdrtAJ~f``JXQrnXvrtAJl~f`ZdQbtv`fJ`ے~f`˂p`ZpfH~tlJےHAZJlt`vXntlJbHAZpJltr˂plJtf~HJltvXnArd|vnXltbvXnlJtA~HfltbvXn˂pZ`pvtbdvXnےlJtA~HfpbHAZpvXnQXb㉀f۝`vtArdp˂rbdQZ|vpftArd˂rXbdQZ|ZHAbArd|fpvbdQZ|vpfHZdQtAv`pvdQZ|vpfHrd|pvndQZ|vpfHHAے`nXv`QZrtAvpfHrd|vnXrXQvpfHۑpJAHrXnvˍ|ZdQbXQJ`ےdrtAH~f|ZdQbQJ`ےdrtA`JXQZdQbtnXv`˂drtA~f`rd|nrXQdrtAJ~f`ZdQbtXv`fdrtAJ~f`JXQrbf~HJlt~f`ZdQbtv`fJ`ےJl~f`󙐂ˁ`ZpfH~tlJbHAZJlt`vXntlJbHAZpJltr˂plJtfHfpJltvXnZdQbtJ`AZpltbvXnlJtA~HfltbvXntlJfpvbdQZ|vXnےlJtA~HfptbdvXnQXAHrf۝`vtArdp˂rbdQZ|vpftAdQbt˂rXbdQZ|ZHAbArd|vnbdQZ|vpfHlJtA˂rXdQZ|vpfےrd|pvndQZ|vpfHtAd|nXv`drtAvpfHrd|vnXQZ|dvpfHˁ`ZQXnvˍ|ZdQbXQJ`ےdrtAے`JXQlJtAQJ`ےdrtA`JXQZdQbtrXQJ`ۂdrtA~f`rd|QJ`ےdrtAJ`JXQrZdQbtXv`fdrtAJ~f`ZdQbtfnJlt~f`ZdQbtv`frtAJl~f`Xb㉀ۑp|drtlJbHAZJltHAbےrd|bHAZpJltr˂plJtHAZpJltvXnZdQbtdbHAZpltb˂pZlJtA~HfltbvXnlJtAXv`fbdQZ|vXnےlJtA~HfptbdvXnpJAHrQtJltArdp˂rbdQZ|`JXQrZdQbt˂rXbdQZ|ZHAbArd|˂rXbdQZ|vpfH|Zd˂rQJdQZ|HAbےrd|pvndQZ|vpfHrd|~HfrAJlvpfHrd|vnXQZ|dvpfHˁ`ZQtbAdZ|ZdQbXQJ`ےdrtA˂pZlJtAQJ`ےdrtA`JXQZdQbtQJ`ےdrtA~f`QbtlbHAdrtAJ`JXQrZdQbtXv`fdrtAJ~f`ZdQbtpvntbdQ~f`ZdQbtv`frtAJl~f`Xb㉀|drtlJbHAZJltHAbےrdt璙bHAZpJltr˂plJtbHAZpJltvXnJtArdZp˂ltb˂pZlJtAHfpltbvXnlJtAXv`fZ|dvXnےlJtA~HfptbdvXnˁ`ZQXbQtJltArdp˂rbdQZ|`JXQrlJfp˂rXbdQZ|ZHAbArd|˂rXbdQZ|vpfۙ|ZdrXQJ`dQZ|HAbےrd|vnrdQZ|vpfHrd|~HXrtAJlvpfے`rd|vnXQZ|dvpfH㉀ۑpJtbAdZ|ZdQbXQJ`ےdrtAے`vnvQJ`ےdtAJl`JXQZdQbtQJ`ےdrtA`JXQQbtlےbHAdrtAJ`JXQrZdQbtXQJ`ےdrtAJ~f`ZdQbtv`ftbdQJXQrZdQbtv`frtAJl~f`AHr󙐂|drtlJbHAZJltJXQrf~HbHAZptbr˂plJtbHAZpJltr˂p|ZdQZp˂ltb˂pZlJtAHAZpltbvXnlJtA~HfpZ|dr˂pZHlJtA~HfptbdvXnˁ`ZQXbQtJlfpvp˂rbdQZ|˂pZHAfpv˂rXnvpZHAbArd|˂rXbdQZ|ZHAbbtlrXQJdQZ|HAbےrd|˂rXQdQZ|vpfHrd|vnXAJtbAbے`rd|vnXQZ|dvpfH㉀ۑptbAdZnXv`XQJ`ےdrtAbے`nXv`QJ`ےfHf``JXQZdQbtQJ`ےdrtA`JXQJtArdbHAZpdrtAJ`JXQrZdQbtJ`ےdrtAJ~f`ZdQbtv`pvdQZ|JXQrZdQbtv`frtAJl~f``ZQXb|drf~HbHAZJltJXQrf~HbHAZpvXnr˂plJtbHAZpJltr˂p|ZdQrXQltb˂pZlJtAbHAZpltbvXnlJtAnrXQdrtAJ˂pZHlJtAHfpۑtbdvXnۀۑpJAQtJlfpvp˂rbdQZ|˂p`Jfpv˂rXvpfHZHAbArd|˂rXbdQZ|ZHAbbtlJ`ےdQZ|HAbےrd|˂rXQdQZ|vpfےrd|J`p˂ltbAbے`rd|vnrXQZ|dvpfHHr󙐂ˁtbAdZnXv`XQJ`ےdtAJXQr˂nXvf~QJ`ے~f``JXQZdQbtQJ`ےdrtA`JXQJtAdQbtbHAZpdtAJl`JXQrZdQbtJ`ےdrtAJ`JXQrZdQbtrXQJdQZ|JXQrZdQbtQJ`ےrtAJl~f``ZQXb|drf~HbHAZltbpZHAbHfpvbHAZpvXnr˂plJbHAZpJltr˂plJtrXQtbn˂pZlJtAbHAZpltb˂pZlJtA`ےbdrtAJ˂pZHlJtAHAZpˑtbdvXnۀۑpJAQtJlfpvp˂rnvpے`JnXv˂rXvpfHZHAbfpv˂rXbdQZ|ZHAbArd|J`bAZvpfHAbےrd|˂rXQdQZ|HAbےrd|HAZp˂bdQZ|Abے`rd|炀rXQQZ|dvpfHHQXb㉀tbAdZnXv`XQJ`ےfHfXQr˂`f~QJ`ے~f``JXQnXv`QJ`ےdrtA`JXQZdQbtp˂rHf``JXQrZdQbtJ`ےdrtAJ`JXQrZdQbtbHAdrtJXQrZdQbtJ`ےrtAJl~f`ۑpJAHr|drf~HbHAZ`vXnpZHAXQHfpvbHAZpvXnr˂pf~HbHAZpJltr˂plJtXQJ`ےvXn˂pZlJtAbHAZpltb˂pZlJtAZp˂AJlt˂pZHlJtAbHAZpˑtbdvXn󙐂ˁ`ZQtJlfpvp˂rvpfr˂pnXv˂rXvpfHZHAbfpv˂rXbdQZ|ZHAbArdt琙bHAZvpfHHAbےrd|˂rXQdQZ|HAbےrd|rXQJ`bdQZ|Abے`rd|炀rXQQZ|dvpfZHQXb㉀tbAdZnXv`XQJ`ےH~fZHAb`f~fpQJ`ے~f``JXQnXv`QJ`ےdtAJl`JXQlJfpp˂r~f``JXQrZdQbtJ`ےdrtAJ`JXQrZdQbtےbHAAJlJXQrZdQbtJ`ےrtAJlAbے`ۑpJAH|drf~HbHAZ`vXnے`JXQvnXbHAZpvXnr˂pf~HbHAZptbr˂pvXQJ`ےvXn˂pZlJfbHAZpltb˂pZlJtAZp˂tbn˂pZHlJtAbHAZpˑtbdJXQrf۝`vQtJlfpvp˂rvpfr˂pv`f˂rXvpfHZHAbfpv˂rXnvpZHAb~HfpېbAZvpfHHAbےpvn˂rXQdQZ|HAbےrd|rXQHAZvpfHAbے`rd|炀rXQQZ|d˂pZHXnvˍtbAdZnXv`XQJ`ےH~fZHAb~HfpQJ`ے~f``JXQnXv`QJ`ےfHf``JXQvnXrXQJ`~f``JXQrXv`fJ`ےdrtAJ`JXQrZdQbtp˂rf`JXQrZdQbtJ`ےrtAJlAbے`pfH~|drf~HbHAZ`vXn˂pZvnXJltvXnr˂pf~HbHAZpvXnr˂pv`fےbHvXn˂pZ~HfbHAZpltb˂pZlJtAXQJ`ےvXnۉ˂pZHlJtAbHAZpˑtbdJXQrf۝`vQtJlfpvp˂rvpfHAbےv`fbdQZ|vpfHZHAbfpv˂rXvpfHZHAb~HfpAZp˂vpfHHAbےpvn˂rXQdQZ|HAbےrd|bHAZvpfHAbے`rd|炀rXQQZ|dے`XnvˍtbAdZnXv`XQJ`ےH~f`JXQr~fvdrtA~f``JXQnXv`QJ`ے~f``JXQvnXHrXQJ`~f``JXQrXv`fJ`ےdtAJl`JXQrZdQbtp˂r~f`JXQrZdQbtJ`ےrtAJlJXQrpfH~|drf~HbHAZ`vXn˂p`nXv`JltvXnr˂pf~HbHAZpvXnr˂pfpvےbHvXn˂pZ~HfbHAZptbn˂pZlJtAXQJ`pvXnۉ˂pZHlJfpbHAZpˑtbdpZHAf۝`vQtJlfpvp˂rvpfJXQrbf~HbdQZ|vpfHZHAے`fpv˂rXvpfHZHAbۅnXv`AZrXQvpfHHAbےpvn˂rXQvpfHAbےrd|˂rXQvpfHAbے`vnXrXQQZ|dbے`XnvˍtbAdZnXv`XQJ`ےH~ftl|fpvdrtA~f`JXQrnXv`QJ`ے~f``JXQf~HJ`ےJ~f``JXQrXv`fJ`ےHf``JXQrZdQbtJ`ے~f`JXQrv`fJ`ےrtAJlJXQrpfH~|drf~HJlt`vXnZdQbtnXv`JltvXnbtlf~HbHAZpvXnr˂pfpvltbvXn˂pZ~HfbHAZpvXn˂pZlJtAbHAZpvXnۉ˂pZH~HfpbHAZpˑtbdp`JXf۝`vQtJlt-----------------------......................... \ No newline at end of file diff --git a/vendor/endroid/qr-code/assets/data/qrv30_3.dat b/vendor/endroid/qr-code/assets/data/qrv30_3.dat deleted file mode 100755 index 29e3e0dd4..000000000 --- a/vendor/endroid/qr-code/assets/data/qrv30_3.dat +++ /dev/null @@ -1,273 +0,0 @@ -}~}~}~}~{|{|{|{|yzyzyzyzwvuvuvuvststststqrqrqrqropopopopmnmnmnmnklklklklghghghghfefeeeeedcdcdcdc`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWTSTSTSTSRQRQRQRQPOPOPOPO}~}~}~}~{|{|{|{|yzyzyzyzuvuvuvuvststststqrqrqrqropopopopmnmnmnmnklklklklghghghghefefefefdcdcdcdc`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWTSTSTSTSRQRQRQRQPOPOPOPO}~}~}~}~{|{|{|{|yzyzyzyzuvuvuvuvststststqrqrqrqropopopopmnmnmnmnklklklklghghghghefefefefbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWTSTSTSTSRQRQRQRQPOPOPOPO}~}~}~}~{|{|{|{|yzyzyzyzuvuvuvuvststststqrqrqrqropopopopmnmnmnmnklklklklghghghghefefefefbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWTSTSTSTSRQRQRQRQPOPOPOPO}~}~}~}~{|{|{|{|yzyzyzyzuvuvuvuvststststqrqrqrqropopopopmnmnmnmnkjijijijghghghghefefefefbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWTSTSTSTSRQRQRQRQPOPOPOPO}~}~}~}~{|{|{|{|yzyzyzyzuvuvuvuvststststqrqrqrqropopopopmnmnmnmnijijijijghghghghefefefefbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWTSTSTSTSRQRQRQRQPOPOPOPO}~}~}~}~{|{|{|{|yxwxwxwxuvuvuvuvststststqrqrqrqropopopopmnmnmnmnijijijijghghghghefeeeeeebabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPO}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvststststqrqrqrqropopopopmnmnmnmnijijijijghghghghfefefefebabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPO}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvststststqrqrqrqropopopopmnmnmnmnijijijijghghghghdcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPO}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvststststqrqrqrqropopopopmnmnmnmnijijijijghghghghdcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPO}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvststststqrqrqrqropopopopmlklklklijijijijghghghghdcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPO}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvststststqrqrqrqropopopopklklklklijijijijghghghghdcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPO}~}~}~}~{zyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqropopopopklklklklijijijijghghghghdcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPO}~}~}~}~yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqropopopopklklklklijijijijghghghghdcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPO}~}~}~}~yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqropopopopklklklklijijijijghghghghdcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPONM}~}~}~}~yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqropopopopklklklklijijijijghghghghdcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQNMNMNMNMNMNMNMNM}~}~}~}~yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqronmnmnmnklklklklijijijijghghghghdcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQNMNMNMNMNMNMLKLK}~}~}~}~yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqrmnmnmnmnklklklklijijijijghghgfefdcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQNMNMNMNMLKLKKKKK}|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqrmnmnmnmnklklklklijijijijefefeeeedcdcdcdcbabababa`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQNMNMNMNMKLKLKLKL{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqrmnmnmnmnklklklklijijijijefefefefdcdcdcdcbabababa`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQNMNMNMNMKLKLKLKL{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqrmnmnmnmnklklklklijijijijefefefefdcdcdcdcbabababa`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQNMNMNMNMKLKLKLKL{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqrmnmnmnmnklklklklijijijijefefefefdcdcdcdcbabababa`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQNMNMNMNMKLKLKLKL{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststqpopopopmnmnmnmnklklklklijijijijefefefeedcdcdcdcbabababa`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQNMNMNMNMKLKLKLKL{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststopopopopmnmnmnmnklklklklijijijijeeeefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQNMNMNMNMKLKKKKKK}{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststopopopopmnmnmnmnklklklklijijijijfefefefedcdcdcdcbabababa`_`_`_`_\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQNMNMNMNMLKLKLKLK}}}}}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststopopopopmnmnmnmnklklklklijijijijfefefefedcdcdcdcbabababa`_`_`_`_\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQNMNMNMNMLKLKLKLK}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststopopopopmnmnmnmnklklklklijijijijfefefefedcdcdcdcbabababa`_`_`_`_\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQNMNMNMNMLKLKLKLK}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststopopopopmnmnmnmnklklklklijijijijfefefefedcdcdcdcbabababa`_`_`_`_\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQNMNMNMNMLKLKLKLK}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvsrqrqrqropopopopmnmnmnmnklklklklijijijijfefefeeedcdcdcdcbabababa`_`_`_`_\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSPOPOPOPONMNMNMNMLKLKLKLK}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvqrqrqrqropopopopmnmnmnmnklklklklijijijijeeefefefdcdcdcdcbabababa`_`_`_`_\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSPOPOPOPONMNMNMNMLKKKKKKL}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvqrqrqrqropopopopmnmnmnmnklklklklijijijihefefefefdcdcdcdcbabababa^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSPOPOPOPONMNMNMNMKLKLKLKL}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvqrqrqrqropopopopmnmnmnmnklklklklghghghghefefefefdcdcdcdcbabababa^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSPOPOPOPONMNMNMNMKLKLKLKL}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvqrqrqrqropopopopmnmnmnmnklklklklghghghghefefefefdcdcdcdcbabababa^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSPOPOPOPONMNMNMNMKLKLKLKL}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvqrqrqrqropopopopmnmnmnmnklklklklghghghghefefefefdcdcdcdcbabababa^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSPOPOPOPONMNMNMNMKLKLKLKL}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxutstststqrqrqrqropopopopmnmnmnmnklklklklghghghghefefeeeedcdcdcdcbabababa^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVURQRQRQRQPOPOPOPONMNMNMNMKLKLKLKL}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxststststqrqrqrqropopopopmnmnmnmnklklklklghghghgheefefefedcdcdcdcbabababa^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVURQRQRQRQPOPOPOPONMNMNMNMKKKKKKLK}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxststststqrqrqrqropopopopmnmnmnmnklklklklghghghghfefefefedcdcdcdc`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVURQRQRQRQPOPOPOPONMNMNMNMLKLKLKLK}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxststststqrqrqrqropopopopmnmnmnmnklklklklghghghghfefefefedcdcdcdc`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVURQRQRQRQPOPOPOPONMNMNMNMLKLKLKLK}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxststststqrqrqrqropopopopmnmnmnmnklklklklghghghghfefefefedcdcdcdc`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVURQRQRQRQPOPOPOPONMNMNMNMLKLKLKLK}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxststststqrqrqrqropopopopmnmnmnmnklklklklghghghghfefefefedcdcdcdc`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVURQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKLKLKLKLKIJIJIJIHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>9:9:9:9:7878787856565656343212120/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('&%$#$#$#$#"!"!"!"!         - - - -KKKKKLKLGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>9:9:9:9:7878787856565656121111120/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"!         - - - -KLKLKLKLGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>9:9:9:9:7878787856565656121212120/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"!         - - - -KLKLKLKLGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>9:9:9:9:7878787856565656121212120/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"!         - - - -KLKLKLKLGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=<9:9:9:9:7878787856565656121212120/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"!         - - - -KLKKKKKLGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@;<;<;<;<9:9:9:9:7878787856565656121211110/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"!         - - - -KLKLKLKJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@;<;<;<;<9:9:9:9:7878787856565656112121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -IJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@;<;<;<;<9:9:9:9:7878787856565656212121210/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -IJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@;<;<;<;<9:9:9:9:7878787856565656212121210/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -IJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@;<;<;<;<9:9:9:9:7878787856565656212121210/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -IJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?>;<;<;<;<9:9:9:9:7878787856565656212121210/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -IJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB=>=>=>=>;<;<;<;<9:9:9:9:7878787856565656212111110/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -IJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB=>=>=>=>;<;<;<;<9:9:9:9:7878787856565656121212120/0/0/0/.-.-.-.-,+,+,+*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - IJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB=>=>=>=>;<;<;<;<9:9:9:9:7878787856565434121212120/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         IJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB=>=>=>=>;<;<;<;<9:9:9:9:7878787834343434121212120/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         IJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB=>=>=>=>;<;<;<;<9:9:9:9:7878787834343434121212120/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         IJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABA@=>=>=>=>;<;<;<;<9:9:9:9:7878787834343434121212120/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        IJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:7878787834343434121111110/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!     IJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:7878787834343434212121210/0/0/0/.-.-.-,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!     - -IJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:7878787834343434212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!     - - - -IJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:7878787834343434212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!     - - - -IJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:7878787834343434212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!     - - - -IJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:7878787834343434212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!      - - - -IJIJIJIJGHGHGHGHEFEFEFEFABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:7878787834343434211111120/0/0/0/,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#         - - - -IJIJIJIJGHGHGHGHEFEFEFEFABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:7878787834343434121212120/0/0/.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#       - - - -IJIJIJIJGHGHGHGHEFEFEFEFABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:787878783434343412121212.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#     - - - -IJIJIJIJGHGHGHGHEFEFEFEFABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:787878763434343412121212.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#     - - - -IJIJIJIJGHGHGHGHEFEFEFEFABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:565656563434343412121212.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#     - - - -IJIJIJIJGHGHGHGHEFEFEFEDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:565656563434343412121212.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#"!     - - - -IJIJIJIJGHGHGHGHCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:565656563434343411111121.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%"!"!"!"!     - - - -IJIJIJIJGHGHGHGHCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:56565656343434342121210/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%"!"!"!"!      - - - -IJIJIJIJGHGHGHGHCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:56565656343434340/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%"!"!"!"!         - - - -IJIJIJIJGHGHGHGHCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9856565656343434340/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%"!"!"!"!         - - - -IJIJIJIJGHGHGHGHCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<7878787856565656343434340/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%"!"!"!"!         - - - -IJIJIJIJGHGHGHGFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<7878787856565656343434340/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%$#"!"!"!"!         - - - -IJIJIJIJEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<7878787856565656343434340/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!         - - - -IJIJIJIJEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<7878787856565656343434340/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!         - - - -IJIJIJIJEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<7878787856565656343434340/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!         - - - -IJIJIJIJEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;:7878787856565656343434340/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!         - - - -IJIJIJIJEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>9:9:9:9:7878787856565656343434340/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!         - - - -))**++,,99887711tssrrqqp@AABBCCD100//..-pqqrrsstqppoonnm01122334A@@??>>=`aabbccd ZYYXXWWVddeefghixxwwvvuu))**++,,HHGGFFEEYYZZ[[\\IIHHGGFF--..//0000//..--poonnmmlDEEFFGGH-,,++**)tuuvvwwxmllkkjji45566778=<<;;::9deeffggh - - VUUTTSSRjkkllmmnttssrrqq--..//00DDCCBBAA]]^^__`` EEDDCCBB~~}}11223344,,++**))lkkjihgfHIIJJKKL)((''&&%xyyzz{{| - - ihhggffe899::;;<98877665hiijjkkl RQQKKJJInooppqqrppoonnmm11223344@@??>>==aabbccdd ~~}}!!""##$$AA@@??>>||{{zzyy55667788((''&&%%eeddccbbLMMNNOOP%$$##""!|}}~~ eddccbba<==>>??@54433221lmmnnoopIHHGGFFErssttuuvllkkjjii55667788<<;;::99eeffgghh - - ||{{zzyy%%&&''((==<<;;::xxwwvvuu99::;;<<$$##""!!aa``__^^PQQRRSST! a``__^^]@AABBCCD100//..-pqqrrsstEDDCCBBAvwwxxyyz - - hhggffee99::;;<<88776655iijjkkllxxwwvvuu))**++,,99887711ttssrrqq==>>??@@ ]]\\[[ZZTUUVVWWX]\\[[ZZYDEEFFGGH-,,++**)tuuvvwwx - - A@@??>>=z{{||}}~ ddccbbaa==>>??@@44332211mmnnooppttssrrqq--..//0000//..--ppoonnmmAABBCCDDYYXXWWVVXYYZZ[[\YXXWWVVUHIIJJKKL)((''&&%xyyzz{{| =<<;;::9~``__^^]]AABBCCDD00//..--qqrrssttppoonnmm11223344,,++**))llkkjjiiEEFFGGHHUUTTSSRR\]]^^__` UTTSSRRQLMMNNOOP%$$##""!|}}~~98877110\\[[ZZYYEEFFGGHH,,++**))uuvvwwxxllkkjjii55667788((''&&%%hhggffeeIIJJKKLL QQPONMLK`aabbccd ~~} !!""##$QPPOONNMPQQRRSST! 0//..--,XXWWVVUUIIJJKKLL((''&&%%yyzz{{|| - - hhggffee99::;;<<$$##""!!ddccbbaaMMNNOOPP - - KJJIIHHGdeeffggh - - }||{{zzy$%%&&''(MLLKKJJITUUVVWWX !,++**))( TTSSRRQQMMNNOOPP$$##""!!}}~~ ddccbbaa==>>??@@ ``__^^]]QQRRSSTT - - GFFEEDDChiijjkkl yxxwwvvu())**++,IHHGGFFEXYYZZ[[\!""##$$%(''&&%%$~~}}!!""##$$PPOONNMMQQRRSSTT ``__^^]]AABBCCDD\\[[ZZYYUUVVWWXXCBBAA@@?lmmnnooputtssrrq,--..//0EDDCCBBA\]]^^__`%&&''(()$##""!! ||{{zzyy%%&&''((LLKKJJIIUUVVWWXX\\[[ZZYYEEFFGGHHXXWWVVUUYYZZ[[\\?>>==<<;pqqrrsstqppoonnm01122334A@@??>>=`aabbccd ~~})**++,,- xxwwvvuu))**++,,HHGGFFEEYYZZ[[\\XXWWVVUUIIJJKKLL TTSSRRQQ]]^^__``;::99887tuuvvwwxmllkkjji45566778=<<;;::9deeffggh - - }||{{zzy-..//001ttssrrqq--..//00DDCCBBAA]]^^__`` TTSSRRQQMMNNOOPP - - PPOONNMMaabbccdd !!""76543211xyyzz{{| - - ihhggffe899::;;<98877665hiijjkkl yxxwwvvu1778899:ppoonnmm11223344@@??>>==aabbccdd ~~}}!!""##$$PPOONNMMQQRRSSTTLLKKJJIIeeffgghh##$$%%&&00//..--|}}~~ eddccbba<==>>??@54433221lmmnnooputtssrrq:;;<<==> llkkjjii55667788<<;;::99eeffgghh - - ||{{zzyy%%&&''((LLKKJJIIUUVVWWXX ~~HHGGFFEEiijjkkll''(())**,,++**))a``__^^]@AABBCCD100//..-pqqrrsstqppoonnm>??@@AAB - - hhggffee99::;;<<88776655iijjkkllxxwwvvuu))**++,,HHGGFFEEYYZZ[[\\ - - DDCCBBAAmmnnoopp++,,--..((''&&%%]\\[[ZZYDEEFFGGH-,,++**)tuuvvwwxmllkkjjiBCCDDEEFddccbbaa==>>??@@44332211mmnnooppttssrrqq--..//00DDCCBBAA]]^^__``@@??>>==qqrrsstt//001177$$##""!!YXXWWVVUHIIJJKKL)((''&&%xyyzz{{| - - ihhggffeFGGHHIIJ``__^^]]AABBCCDD00//..--qqrrssttppoonnmm11223344@@??>>==aabbccdd~~}}|<<;;::99uuvvwwxx8899::;;  UTTSSRRQLMMNNOOP%$$##""!|}}~~ eddccbbaJKKQQRRS - - \\[[ZZYYEEFFGGHH,,++**))uuvvwwxxllkkjjii55667788<<;;::99eeffgghh|{{zzyyx88776655yyzz{{||<<==>>??~~} !!""##$QPPOONNMPQQRRSST! a``__^^]STTUUVVW XXWWVVUUIIJJKKLL((''&&%%yyzz{{|| - - hhggffee99::;;<<88776655iijjkkll !!""xwwvvuut44332211}}~~@@AABBCC}||{{zzy$%%&&''(MLLKKJJITUUVVWWX]\\[[ZZYWXXYYZZ[TTSSRRQQMMNNOOPP$$##""!!}}~~ ddccbbaa==>>??@@44332211mmnnoopp##$$%%&&tssrrqqp00//..--DDEEFFGGyxxwwvvu())**++,IHHGGFFEXYYZZ[[\YXXWWVVU[\\]]^^_PPOONNMMQQRRSSTT ``__^^]]AABBCCDD00//..--qqrrsstt''(())**poonnmml,,++**))HHIIJJKK -uttssrrq,--..//0EDDCCBBA\]]^^__` UTTSSRRQ_``aabbcLLKKJJIIUUVVWWXX\\[[ZZYYEEFFGGHH,,++**))uuvvwwxx++,,--..lkkjihgf((''&&%%QQRRSSTT - qppoonnm01122334A@@??>>=`aabbccd ~~} !!""##$QPPOONNMcddeekkl !!""HHGGFFEEYYZZ[[\\XXWWVVUUIIJJKKLL((''&&%%yyzz{{||//001177eeddccbb$$##""!!~~}}||UUVVWWXXmllkkjji45566778=<<;;::9deeffggh - - }||{{zzy$%%&&''(MLLKKJJIlmmnnoop##$$%%&&DDCCBBAA]]^^__`` TTSSRRQQMMNNOOPP$$##""!!}}~~8899::;;aa``__^^ {{zzyyxxYYZZ[[\\ - - ihhggffe899::;;<98877665hiijjkkl yxxwwvvu())**++,IHHGGFFEpqqrrsst''(())**@@??>>==aabbccdd ~~}}!!""##$$PPOONNMMQQRRSSTT <<==>>??]]\\[[ZZwwvvuutt]]^^__`` eddccbba<==>>??@54433221lmmnnooputtssrrq,--..//0EDDCCBBAtuuvvwwx++,,--..<<;;::99eeffgghh - - ||{{zzyy%%&&''((LLKKJJIIUUVVWWXX@@AABBCCYYXXWWVVssrrqqppaabbccdda``__^^]@AABBCCD100//..-pqqrrsstqppoonnm01122334A@@??>>=xyyzz{{|//00112388776655iijjkkllxxwwvvuu))**++,,HHGGFFEEYYZZ[[\\DDEEFFGGUUTTSSRRoonnmmlleekkllmm]\\[[ZZYDEEFFGGH-,,++**)tuuvvwwxmllkkjji45566778=<<;;::9|}}~~4567788944332211mmnnooppttssrrqq--..//00DDCCBBAA]]^^__``~~}}||HHIIJJKKQQPONMLK kkeeddccnnooppqqYXXWWVVUHIIJJKKL)((''&&%xyyzz{{| - - ihhggffe899::;;<988776659::;;<<=00//..--qqrrssttppoonnmm11223344@@??>>==aabbccdd {{zzyyxxQQRRSSTTKJJIIHHG - - bbaa``__rrssttuu UTTSSRRQLMMNNOOP%$$##""!|}}~~ eddccbba<==>>??@54433221=>>??@@A,,++**))uuvvwwxxllkkjjii55667788<<;;::99eeffgghh - - wwvvuuttUUVVWWXXGFFEEDDC - - ^^]]\\[[vvwwxxyy !!""##$QPPOONNMPQQRRSST! a``__^^]@AABBCCD100//..-~~}}||{ABBCCDDE((''&&%%yyzz{{|| - - hhggffee99::;;<<88776655iijjkkllssrrqqppYYZZ[[\\CBBAA@@? ZZYYXXWWzz{{||}}$%%&&''(MLLKKJJITUUVVWWX]\\[[ZZYDEEFFGGH-,,++**){zzyyxxwEFFGGHHI$$##""!!}}~~ ddccbbaa==>>??@@44332211mmnnooppoonnmmll]]^^__``?>>==<<;VVUUTTSS~~())**++,IHHGGFFEXYYZZ[[\YXXWWVVUHIIJJKKL)((''&&%wvvuuttsIJJKKLMN ``__^^]]AABBCCDD00//..--qqrrssttkkeeddccaabbccdd;::99887RRQQKKJJ,--..//0EDDCCBBA\]]^^__` UTTSSRRQLMMNNOOP%$$##""!srrqqppoOPQQRRSS\\[[ZZYYEEFFGGHH,,++**))uuvvwwxxbbaa``__eekkllmm76543211IIHHGGFF01122334A@@??>>=`aabbccd ~~} !!""##$QPPOONNMPQQRRSST! onnmmllkTTUUVVWWXXWWVVUUIIJJKKLL((''&&%%yyzz{{|| - - ^^]]\\[[nnooppqq00//..-- EEDDCCBB~~}}|45566778=<<;;::9deeffggh - - }||{{zzy$%%&&''(MLLKKJJITUUVVWWXkeeddccbXXYYZZ[[ TTSSRRQQMMNNOOPP$$##""!!}}~~ ZZYYXXWWrrssttuu,,++**))!!""##$$AA@@??>>|{{zzyyx899::;;<98877665hiijjkkl yxxwwvvu())**++,IHHGGFFEXYYZZ[[\baa``__^\\]]^^__ ~~}}!!""##$$PPOONNMMQQRRSSTT VVUUTTSSvvwwxxyy((''&&%%%%&&''((==<<;;::xwwvvuut<==>>??@54433221lmmnnooputtssrrq,--..//0EDDCCBBA\]]^^__`^]]\\[[Z``aabbcc - - ||{{zzyy%%&&''((LLKKJJIIUUVVWWXXRRQQKKJJzz{{||}}$$##""!! \[[ZZYYXEFFGGHHI,++**))(uvvwwxxy lkkjjiihCDDEEFFGccbbaa``>>??@@AA33221100nnooppqqssrrqqpp..//0011CCBBAA@@^^__``aaBAA@@??>fgghhiij - - {zzyyxxw&''(())*KJJIIHHGVWWXXYYZ54433221XWWVVUUTIJJKKLLM(''&&%%$yzz{{||} - - hggffeedGHHIIJJK __^^]]\\BBCCDDEE//..--,,rrssttuuoonnmmll22334455??>>==<==<<;;:jkkllmmnwvvuutts*++,,--.GFFEEDDCZ[[\\]]^100//..- !TSSRRQQPMNNOOPPQ$##""!! }~~ dccbbaa`KQQRRSST - - [[ZZYYXXFFGGHHII++**))((vvwwxxyy kkjjiihh66778899;;::9988ffgghhii:9988776nooppqqrsrrqqppo.//00112CBBAA@@?^__``aab !!""#-,,++**)~~}}|!""##$$%POONNMMLQRRSSTTU `__^^]]\TUUVVWWX WWVVUUTTJJKKLLMM''&&%%$$zz{{||}} - - ggffeedd::;;<<==77665544jjkkllmm !!""##54321100rssttuuvonnmmllk23344556?>>==<<;bccddeef#$$%%&&')((''&&% -|{{zzyyx%&&''(()LKKJJIIHUVVWWXXY\[[ZZYYXXYYZZ[[\SSRRQQPPNNOOPPQQ##""!! ~~ccbbaa``>>??@@AA33221100nnooppqq$$%%&&''//..--,,vwwxxyyz -kjjiihhg6778899:;::99887fgghhiij'(())**+%$$##""! - xwwvvuut)**++,,-HGGFFEEDYZZ[[\\]XWWVVUUT\]]^^__`OONNMMLLRRSSTTUU__^^]]\\BBCCDDEE//..--,,rrssttuu(())**++++**))((z{{||}}~ - gffeeddc:;;<<==>76655443jkkllmmn+,,--../! tssrrqqp-..//001DCCBBAA@]^^__``a !TSSRRQQP`aabbccdKKJJIIHHVVWWXXYY[[ZZYYXXFFGGHHII++**))((vvwwxxyy,,--..//''&&%%$$~cbbaa``_>??@@AAB3221100/nooppqqr/0011778poonnmml12233445@??>>==>??@ - - hggffeed9::;;<<=87766554ijjkkllmxwwvvuut)**++,,-HGGFFEEDqrrssttu(())**++??>>==<>??@@WVVUUTTSJKKLLMMN'&&%%$$#z{{||}}~@AABBCCD dccbbaa`=>>??@@A43322110mnnooppqtssrrqqp-..//001DCCBBAA@uvvwwxxy,,--..//;;::9988ffgghhii - - {{zzyyxx&&''(())KKJJIIHHVVWWXXYYAABBCCDD !!"SRRQQPPONOOPPQQR#""!! ~DEEFFGGH - - `__^^]]\ABBCCDDE0//..--,qrrssttupoonnmml12233445@??>>==//..--,,rrssttuuoonnmmll22334455??>>==<>??@@A43322110~>??@@AAB++**))((vvwwxxyy kkjjiihh66778899;;::9988ffgghhii - - vvuuttssVVWWXXYYsrrqqppo.//00112CBBAA@@?^__``aab{zzyyxxwYZZ[[\\]!""##$$%POONNMMLQRRSSTTU `__^^]]\ABBCCDDE0//..--,~}}||{{zBCCDDEEF''&&%%$$zz{{||}} - - ggffeedd::;;<<==77665544jjkkllmmrrqqppooZZ[[\\]]onnmmllk23344556?>>==<<;bccddeef wvvuutts]^^__``a%&&''(()LKKJJIIHUVVWWXXY\[[ZZYYXEFFGGHHI,++**))(zyyxxwwvFGGHHIIJ##""!! ~~ccbbaa``>>??@@AA33221100nnooppqqnnmmllkk^^__``aa -kjjiihhg6778899:;::99887fgghhiij - - srrqqppoabbccdde )**++,,-HGGFFEEDYZZ[[\\]XWWVVUUTIJJKKLLM(''&&%%$vuuttssrJKKLMNOP__^^]]\\BBCCDDEE//..--,,rrssttuueeddccbbbbccddee - gffeeddc:;;<<==>76655443jkkllmmnonnmmllkekkllmmn !!""##$-..//001DCCBBAA@]^^__``a !TSSRRQQPMNNOOPPQ$##""!! rqqppoonQQRRSSTT[[ZZYYXXFFGGHHII++**))((vvwwxxyy aa``__^^kkllmmnncbbaa``_>??@@AAB3221100/nooppqqrkeeddccbnooppqqr$%%&&''(12233445@??>>==>??@@A43322110mnnooppqtssrrqqp-..//001DCCBBAA@]^^__``a]\\[[ZZYaabbccdd - - {{zzyyxx&&''(())KKJJIIHHVVWWXXYYQQKKJJII{{||}}~~ !!"SRRQQPPONOOPPQQR#""!! ~VUUTTSSR}||{{zzy45566778ABBCCDDE0//..--,qrrssttupoonnmml12233445@??>>==>??@IJJKKLLM(''&&%%$yzz{{||} - - hggffeed9::;;<<=87766554ijjkkllmQKKJJIIHoppqqrrsoonnmmll22334455??>>==<>==*++,,--.GFFEEDDCZ[[\\]]^EDDCCBBAqppoonnm@AABBCCDMNNOOPPQ$##""!! }~~ dccbbaa`=>>??@@A43322110mnnooppqHGGFFEEDsttuuvvw kkjjiihh66778899;;::9988ffgghhii - - {{zzyyxx&&''(())<<;;::99~~}}||{.//00112CBBAA@@?^__``aab !!"A@@??>>=mllkkjjiDEEFFGGHQRRSSTTU `__^^]]\ABBCCDDE0//..--,qrrssttu DCCBBAA@wxxyyzz{ - - ggffeedd::;;<<==77665544jjkkllmmwwvvuutt**++,,--88771100{zzyyxxw23344556?>>==<<;bccddeef ~~}}||{"##$$%%&=<<;;::9ihhggffeHIIJJKKLUVVWWXXY\[[ZZYYXEFFGGHHI,++**))(uvvwwxxy - - @??>>==<{||}}~~ccbbaa``>>??@@AA33221100nnooppqqssrrqqpp..//0011//..--,,wvvuutts6778899:;::99887fgghhiij - - {zzyyxxw&''(())*98877110eddccbbaLMMNNOOPYZZ[[\\]XWWVVUUTIJJKKLLM(''&&%%$yzz{{||} <;;::998__^^]]\\BBCCDDEE//..--,,rrssttuuoonnmmll22334455++**))((srrqqppo:;;<<==>76655443jkkllmmnwvvuutts*++,,--.0//..--,a``__^^]PQQRRSST]^^__``a !TSSRRQQPMNNOOPPQ$##""!! }~~8771100/[[ZZYYXXFFGGHHII++**))((vvwwxxyy kkjjiihh66778899''&&%%$$onnmmllk>??@@AAB3221100/nooppqqrsrrqqppo.//00112,++**))(]\\[[ZZYTUUVVWWXabbccdde ~~}}|!""##$$%POONNMMLQRRSSTTU /..--,,+WWVVUUTTJJKKLLMM''&&%%$$zz{{||}} - - ggffeedd::;;<<==##""!! kjihgfeeBCCDDEEF/..--,,+rssttuuvonnmmllk23344556(''&&%%$YXXWWVVUXYYZZ[[\effgghhi - - |{{zzyyx%&&''(()LKKJJIIHUVVWWXXY !!"+**))((' !!SSRRQQPPNNOOPPQQ##""!! ~~ccbbaa``>>??@@AAddccbbaaFGGHHIIJ+**))(('vwwxxyyz -kjjiihhg6778899:$##""!! UTTSSRRQ\]]^^__`ijjkkllmxwwvvuut)**++,,-HGGFFEEDYZZ[[\\]"##$$%%&'&&%%$$#~~}}||""##$$%%OONNMMLLRRSSTTUU__^^]]\\BBCCDDEE``__^^]]JKKLLMMN'&&%%$$#z{{||}}~ - gffeeddc:;;<<==> QPPOONNM`aabbccdmnnooppqtssrrqqp-..//001DCCBBAA@]^^__``a&''(())*#""!! {{zzyyxx&&''(())KKJJIIHHVVWWXXYY[[ZZYYXXFFGGHHII\\[[ZZYYNOOPPQQR#""!! ~cbbaa``_>??@@AABMLLKKJJIdeeffgghqrrssttupoonnmml12233445@??>>==>==<>=pqqrrsst}~~ dccbbaa`=>>??@@A43322110mnnooppqtssrrqqp;<<==>>? -kkjjiihh66778899;;::9988ffgghhii - - {{zzyyxx&&''(())KKJJIIHHVVWWXXYY - -JIIHHGGF^__``aab !!"SRRQQPPONOOPPQQR - =<<;;::9tuuvvwwx`__^^]]\ABBCCDDE0//..--,qrrssttupoonnmml?@@AABBC - ggffeedd::;;<<==77665544jjkkllmmwwvvuutt**++,,--GGFFEEDDZZ[[\\]] FEEDDCCBbccddeef ~~}}||{"##$$%%&ONNMMLLKRSSTTUUV98877665xyyzz{{||}}fpvbHAZ|dtZHAbJtArdnXv`bHAbnvpے`JXbtlfpvrXQJ`AJltbے`JtArfHfbdQZ|H~fr˂ptArdnXv`JltvpfXQr˂nXv`p˂rbdQZ|`JXQ|ZdQf~HZp˂fHQr˂pJtArdnXv`bHAbdQZ|JXQrZdQbtpvndrtA`vXnZHAb|ZdQbf~HbdQZ|H~fpZHAbf~HXQJ`ےdrtArZAbbtlfpvrXQJ`f`vXZHAb|ZdQf~HZp˂dtAp`JXlJtArXQJ`Jltvpfے`JXQtlJfpvdrtA`vXnے`JfpvbHAZJltے`JJtArdnXv`bHAnvpے`JXbtlfpvrXQJ`JltQr˂prd|ےHAZbdQZ|H~fr˂ptArdnXv`JltvpfXQr˂nXv`p˂rbdQZ|XQr˂|ZdQf~HZp˂fH~Qr˂pJtArdnXv`bHAbnvpZHAbZdQbtp˂rdrtA`vXnZHAb|ZdQbfHfbdQZ|H~fpZHAXQf~HXQJ`ےdrtApZHAbbtlfpvrXQJ`f`vXZHAb|ZdQf~HZp˂`vXے`JXlJtAXQJ`ےJltvpfے`JXQtlJpvndrtA`vXnr˂pfpvbHAZdQZ|ے`JJtArdnXv`Jltnvpے`JXbtlfpvrXQJ`nvpQr˂prdZQbbHAZbdQZ|H~fr˂ptArdrXQJ`JltvpfZHAbnXv`p˂rdrtAJXQr˂|ZdQf~HbdQZ|fH~Qr˂pJtArdnXv`bHAfH~ˑZHAXQtlJp˂rdrtA`vXnZHAb|ZdQbےHAZbdQZ|H~fے`JXQf~HXQJ`ےltbpZAb`btlfpvdrtf`vXZHAb|ZdQf~HZp˂f`vXHr˂pfpvXQJ`ےJltvpfے`JXQtlJp˂rdrtA`vXnr˂pfpvbHAZdQZ|`JXQrJtArdnXv`AJltnvpے`JXbtlfpvrXQJ`ۅ~f`ZHAbnXv`bHAZbdQZ|H~fr˂ptArdXQJ`ےJltvpfZHAbnXv`p˂rvXn˂pZH|ZdQfHbdQZ|fH~Qr˂pJtArdnXv`JltvXn`JXQf~Hp˂rdrtA`vXnZHAb|ZdQbbHAZbdQZ|H~f˂pZf~HXQJ`ےvpfHAbے`btlfpvdrtf`vXZHAb|ZdQf~HbdQZ|vpfHr˂pfpvXQJ`ےJltvpfے`JXQtlJp˂rdrtA`vXnHAbےfpvbHAZ~f`JXQrJtArdnrXQJ`AJltnvpے`JXbtlfpvdrt~f`ZHAbnXv`bHAZbdQZ|H~fr˂pfpvXQJ`ےJltvpf`JXQrnXv`p˂rvXH~˂pZH|ZdQےHAbdQZ|fH~Qr˂pJtArdnXv`AJltvXn˂pZHf~Hp˂rdrtA`vXnZHAbnXv`bHAZbdQZ|H~f˂p`f~HXQJ`ےf`vAbJXQbtlZp˂drtf`vXZHAb|ZdQfHbdQZ|f`Abے`fpvXQJ`ےJltvpfے`JXQf~Hp˂rdrtA`vXnJXQrbfpvbHAZXnvr˂pJtArdrXQJ`AJltnvpے`JXbtlfpvdrtvXnہJXQrnXv`bHAZbdQZ|H~fr˂pfpvXQJ`ےJltvpftl|rdtnXv`p˂rpfH~ZHAb|ZdQbHAbdQZ|fH~Qr˂pJtArdnrXQJ`AJltvpfH˂p`f~Hp˂rdrtA`vXnZHAےnXv`bHAZbdQZ|H~fZdQbtlJfpf~HXQJ`ےf`vے`JXQbtlZp˂drtf`vXZHAb|ZdQےHAbdQZ|~f`JXQrbtfpvXQJ`ےJltvpf`JXQrf~Hp˂rdrtA`vXnlJtAvnvfpvbHAZXnr˂pJfpvrXQJ`AJltnvpے`JXbtlZp˂drtvXnۉlJAnXv`bHAZbdQZ|H~fbtlfpvXQJ`ےJltvpfrd|f~HnXv`p˂rf`vXZHAbnXv`bHAbdQZ|fH~Qr˂pJtArdrXQJ`AJltvp`vX|ZdQf~Hp˂rdrtA`vXnJtAdnXv`bHAZbdQZ|H~fZdQtArfpvf~HXQJ`ےnvpJQrˍf~HZp˂drtf`vXZHAb|ZdQbHAbdQZ|nvpbtlfpvXQJ`ےJltvpf|ZdQbf~Hp˂rdrtA`vXnd|ZnXv`fpvbHAZfH~pZHAfpvrXQJ`AJltnvpے`JXbtlZp˂drtfH~JtArdnXv`bHAZbdQZ|H~ftlJfpvXQJ`ےJltvpfdQbtf~HnXv`p˂rf`vXbے`nXv`bHAbdQZ|fH~Qr˂pJfpvrXQJ`AJltf`vX|ZdQbf~Hp˂rdrtA`vXntArdnXv`bHAZbdQZ|H~flJtArfpvf~HXQJ`ےnvpJXQrˍf~HZp˂drtf`vXZHAbnXv`bHAbdQZ|nvpJtArfpvXQJ`ےJltvpf|ZdQbf~Hp˂rdrtA`vXnd|ZnXvf~fpvJlt`vXnpZHAbfpvrXQJ`AJltnvpے`JXf~HZp˂drtfHXd|ZnXv`bHAZbdQZ|ے`JXQtlJfpvXQJ`ےJltvpfdQbtdHfpvnXv`drtAJvpfJAdnXv`bHAbdQZ|fH~Qr˂pfpvrXQJ`AJltnvpdQbtf~Hp˂rdrtAr˂ptArdnXv`bHAZbdQZ|H~f|ZdQnXvf~HltbH~f|ZdQf~HZp˂drtf`vXZHAۅnXv`bHAbdQZ|fH~lJtArfpvXQJ`ےJltZHAb|ZdQbf~Hp˂rdrtA`vXnbtl`f~fpvdQZ|`vXnbtlfpvrXQJ`AJltnvp`JXQf~HZp˂drtf`vXd|ZnXv`bHAZbdQZ|ے`JXQtlJfpvXQJ`ےJltvpfJtArdHfpvnXv`drtAJvpfJtArdnXv`bHAbdQZ|fH~rbtlfpvrXQJ`AJltnvpdQbtf~Hp˂rdtAJr˂ptArdnXv`bHAZbdQZ|ے`JXQ|ZdQnXvf~HltbHXn|ZdQf~HZp˂drtf`vXJtAdnXv`bHAbdQZ|fH~JArd|fpvXQJ`ےltbZHAb|ZdQbf~Hp˂rdrtAHAbےbtl`f~fpfpvdQtAJlvpfHbtlfpvrXQJ`AJltnvp|ZdQf~HZp˂drtvpfہZdQbtnXv`bHAZnvpے`JXQtlJfpvXQJ`ےJlt`JXQr|ZdQbvnXnXv`tbdQ~f`JtArdnXv`bHAbdQZ|fH~btlfpvrXQJ`AJlt`JXQHlJtf~Hp˂rfHfr˂ptArdnXv`bHAZbdQZ|˂pZtlJv`fp˂rZ|dvXn|ZdQf~HZp˂drtf`vXJtArdnXv`bHAbdQZ|Abے`Ard|fpvXQJ`ے`vXnZHAb|ZdQbf~Hp˂rdtAJHAbےtArd~HfpXQJ`ےrtAJlvpfHbtlfpvrXQJ`AJltnvp|ZdQf~HZp˂drtJXQrZdQbtnXv`bHAZvpfے`JXQtlJfpvXQJ`ےltb`JXQr|ZdQbvnXbHAZtbdQ~vJtArdnXv`bHAbdQZ|fے`JXbtlfpvrXQJ`AJlt˂pZHlJArf~Hp˂rH~fr˂ptArdnXv`bHAZnvpے`tlJv`fp˂rZ|lpfے`|ZdQf~HZp˂drtQr˂pJtArdnXv`bHAbdQZ|Abے`|ZdQfpvXQJ`ے`vXnZHAb|ZdQbf~Hp˂rfHfJXQrtAdQbt~fvXQJ`ےtbdQZJXQrbtlfpvrXQJ`AJltZHAb|ZdQf~HZp˂drtJXQrbtlnXv`Jltvpfے`JXQtlJfpvXQJ`ے`vXn˂pZHAlJtAnXv`bHAZ|drZHAbJtArdnXv`bHAbdQZ|ے`JXbtlfpvrXQJ`AJltے`JtArdf~HbdQZ|H~fr˂ptArdnXv`bHAZvpfbے`rd|f~Hp˂rtAJl璒`JXQ|ZdQf~HZp˂dtAQr˂pJtArdnXv`bHAbdQZ|JXQr|ZdQfpvdrtA`vXnZHAb|ZdQbf~Hp˂rH~fJXQrZdQbtfpvXQJ`ےtbdQZr˂pbtlfpvrXQJ`JltZHAb|ZdQf~HZp˂drtpZHAbtlnXv`Jltvpfے`JXQtlJfpvXQJ`ے`vXn˂p`JlJtAnXv`f~HQJ`ےvXnZHAbہZdQbtf~H˂rXfHf`r˂p|ZdnrXQltbvpfH`JXQrlJtAvnrdrtAJvXnHAbےZdQbt`ےbrtAJl~f`˂pZHvnXJ`ےtbdvpfH󙐂ˁ`Zf۝`vfvnXJltvpfH`JXQlJtfpvQJ`ےvXnZHAbQbtlJ`AZpdQZ|~f`˂pZrd|XQJ`ےltbvpfH`JXQrlJtAHAZp˂tbdQvXnAے`v`fbHAZpQZ|d~f`QXAHrXnvˍv`fbdQZ|~f`r˂pArd|nXv`˙bHAZpvpfH`JXQ|ZdQ˂rXdrtAJvXnHAbےZdQbtHAZpdQZ|~f`˂pZrd|bHAZ|drvpfHJXQrbt~HfprXQrtAJlvXnېˁ`ZQpfH~~HfpۂdrtAvXnZHAbہZdQbtf~H˂rX~f`r˂pbtlQJ`ےltbvpfH`JXQrlJtA˂rXQdrtAJvXnHAbےZdQbtZp˂AJtb~f`lJtvnXJ`ےtbdvpfHXb㉀ۑf۝`vvnXJltvpfH`JXQlJtfpvQJ`ےvXnZHAbJtArdbHAZpdQZ|~f`˂pZrd|J`ےltbvpfH`JXQrlJtArXQJ`dQZ|vXnAd|v`fbHAZpQZ|d~f`pJAHrXnvˍv`ffpbdQZ|~f`r˂pArd|nXv`JltvpfH`JXQ|ZdQ˂rQJdrtAJvXnHAbےZdQbtbHAZpdQZ|~f`˂pZrd|ےbHAdrtAJvpfHZdQbt~HfprXQrtAJlvXnېˁ`ZQpfH~ㅝvndrtAvXnZHAbہZdQbtf~HbdQZ|~f`r˂pbtlbHAltbvpfH`JXQrlJf˂rXQdrtAJvXnHAbےZdQbtZp˂ltb~f`lJtAvnXJ`ےtbdvpfHXb㉀f۝`vrXQJ`JltvpfH`JXQlJtfpvdrtAvXnZHAbJtAdQbtZp˂dQZ|~f`˂pZpvnJ`ےltbvpfH`JXQrlJtArXQHAZdQZ|vXnrd|v`fbHAZpQZ|d~f`ˁ`ZQXbXnvˍHAZpbdQZ|~f`r˂pArd|nXv`JltvpfH`JXQlJtrXQJ`drtAJvXnHAbےXv`fbHAZpdQZ|~f`˂pZrd|p˂rdrtAJvpfے`ZdQbt~HfprXQrtAJlvXn㉀ۑpJpfH~ㅑ˂rXdrtAvXnZHAbہZdQbtfHfpbdQZ|~f`r˂pArd|ےbHAltbvpfH`JXQr~Hf˂rXQdrtAJvXnHAbےZdQbtXQJ`ےbdQZ|JXQrlJtAvnXJ`ےtbdvpfHAHr󙐂f۝`vQJ`ےJltvpfH`JXQlJtvndrtAvXnZHAbہZdQbtZp˂dQZ|~f`˂pZpvnJ`ےltbvpfH`JXQrlJfbHAZdrt˂pZHrd|v`fbHAZpQZ|d~f`ˁ`ZQXbXnvˍbHAZpbdQZ|~f`r˂pArd|rXQJ`JltvpfH`JXQlJtrXQJdrtAJvXnHAے`Xv`fbHAZpdQZ|~f`˂pZpvp˂rAJltAbے`ZdQbt~HfprXQrtAJlvXn㉀ۑpp|dr˂rXdrtAvXnZHAbہZdQbtHAZpbdQZ|~f`r˂pArdtbHAZpltbvpfHJXQrb~Hf˂rXQdrtAJvXnHAbے~HfpXQJ`pbdQZ|JXQrlJtAvnXJ`ےtbdvpfZH`ZQXbQtJlQJ`ےJltvpfH`JXQlJt˂rXdrtAvXnZHAbےlJfprXQdQZ|~f`tlJpvnJ`ےltbvpfH`JXQrvnX˂rXQAJl˂pZHrd|v`fbHAZpQZ|dAbے`ۑpJAtbAdZbHAZpbdQZ|~f`r˂pArd|QJ`ےJltvpfH`JXQvJ`ےdrtAJvXntAd|Xv`fbHAZpdQZ|~f`˂pZv`fJ`ےtbnAbے`ZdQbt~HfprXQrtAJlJXQrHr󙐂ˁ|dr˂rXdrtAvXnZHAbہZdQbtbHAZpbdQZ|~f`r˂p~HfpbHAZpltbvpfHZdQbt~Hf˂rXQdrtAJvXnHAے`~HfpbHAZpvpfHJXQrlJtAvnXJ`ےtbd˂pZH`ZQXbQtJlQJ`ےJltvpfH`JXQlJ˂rXdrtAvXnZHAbvnXrXQdQZ|~f`lJtApvnJ`ےltbvpfHJXQrbvnX˂rXQf`˂pZHrd|v`fbHAZpQZ|dAbے`ۑpJAtbAdZbHAZpbdQZ|~f`r˂pfpvQJ`ےJltvpfH`JXQv`fJ`bAZdrtAJvXnrd|Xv`fbHAZpdQZ|~f`tlJHfpvJ`ےvXnAbے`ZdQbt~HfprXQtAJlJXQrHQXb㉀|dr˂rXdrtAvXnZHAbnXv`˙bHAZpbdQZ|~f`r˂p~Hfpp˂rltbvpfےZdQbt~Hf˂rXQdrtAJvXntAd|nXvrXQJvpfHJXQrlJtAvnXJ`ےtbnے`ۑpJAHrQtJlQJ`ےJltvpfH`JXQf~H˂rXdrtAvXnZHAbvnXHXQJ`ےdQZ|`JXQrlJtApvnJ`ےltbvpfHZdQbt`f~`ےb~f`˂pZHrd|v`fbHAZp˅vpfHJXQr󙐂ˁ`ZtbAdZbHAZpbdQZ|~f`r˂pfpvQJ`ےJltvpfH`JXQfpvbHAZdrtAJ˂pZrd|Xv`fbHAZpdQZ|~f`lJtAHfpvHAZp˂vXnAbے`ZdQbt~HfprXQf`pZHAQXb㉀|dr˂rXdrtAvXnZHAے`nXv`˙bHAZpbdQZ|~f`r˂pnXv`p˂rltbHAbےZdQbt~Hf˂rXQdrtAJvXnrd|nXvrXQJvpfHJXQrlJtAvnXJ`ےvXnbے`ۑpJAHQtJlQJ`ےJltvpfHJXQrf~H˂rXdrtAvXnZHAbۍf~HXQJ`ےdQZ|`JXQrlJtApvnJ`ےltbvpfےZdQbt`pv`ےb~f`˂pZHrd|v`fbHAZpvpfHJXQrːf۝`vtbAdZbHAZpbdQZ|~f`btlfpvQJ`ےJltvpfH`JXQfpvbAZdtAJl˂pZrd|Xv`fbHAZpdQZ|`JXQrlJtAnXv`HAXQJ`vXnAbے`ZdQbt~HfprXQ~f`p`JXXnvˍ|dr˂rXdrtAvXnJtAd|nXv`˙bHAZpbdQZ|~f`r˂pnXv`rXQJ`tbnHAbےZdQbt~Hf˂rXQdrtAJ˂pZrd|f~HےJlvpfHJXQrlJtAvnXJ`ےJlvXnQr˂ppfH~QtJlQJ`ےJltvpfHZdQbtf~H˂rXdrtAvXnZHAے`pvےbHvpf`JXQrlJtApvnJ`ےltbHAbےZdQbtfpvtbQZd~f`˂pZHrd|v`ftbdvpfHZHAbf۝`vtbAdZbHAZpbdQZ|~f`lJtfpvQJ`ےJltvpfHJXQrnXv`AZp˂Hf`˂pZrd|Xv`fbHAZpdQZ|`JXQrlJtAnXv`rtAJlvXnAbے`ZdQbt~HfpQZ|d~f`ے`JXXnvˍ|dr˂rXdrtAvXnArd|nXv`˙bHAZpbdQZ|~f`btl|f~HrXQJ`vXnHAbےZdQbt~Hf˂rXQdtAJl˂pZrd|fntbdvpfHJXQrlJtAvnXrtAJlvXnQr˂ppfH~QtJlQJ`ےJltvpfہZdQbtf~H˂rXdrtAvXnZdQbtfpvےbHvpfH`JXQrlJtApvnJ`ےtbnHAbےZdQbtXv`fQZ|d~f`˂pZHrd|v`ftbdvpfHZHAXQf۝`vtbAdZbHAZpbdQZ|`JXQlJtfpvQJ`ےJltvpfHlJtnXv`AZrXQ~f`˂pZrd|Xv`fbHAZpvpf`JXQrlJtA~HfrtAJlvXnAbے`ZdQbtHfpQZ|d~f`r˂pXnvˍ|dr˂rXdrtAr˂pArd|nXv`˙bHAZpbdQZ|~f`Ard|fnXJ`ےJvXnHAbےZdQbt~Hf˂rXQHf`˂pZrd|pvntbdvpfHJXQrlJtAvnrXrtAJlvXnZHAbpfH~QtJlQJ`ےJltZHAbہZdQbtf~H˂rXdrtAvXnZdQtAv`fltbvpfH`JXQrlJtApvnJ`ےvXnHAbےZdQbtXv`fQZrtA~f`˂pZHrd|QJ`ےtbdvpfH`JXQf۝`vtbAdZbHAZpbdQZ|`JXQlJtfpvQJ`ےJltvpfrd|~HfpdQZ|~f`˂pZrd|Xv`fbHAZpvpfH`JXQrlJtA~HXJltvXnAbے`ZdQbtHAZpQZ|d~f`r˂pXnvˍ|dr˂rXdtAJlr˂pArd|nXv`˙bHAZpbdQZ|`JXQZdQbtvnXdrtAJvXnHAbےZdQbt~Hf˂rXQ~f`˂pZrd|v`fbdQZ|vpfHJXQrlJtArXQrtAJlvXnZHAbpfH~QtJlQJ`ےtbZHAbہZdQbtf~H˂rXdrtAr˂plJtAv`fltbvpfH`JXQrlJtApvnJ`ےJvXnHAbےZdQbt~HfpdrtA~f`˂pZHrd|J`ےtbdvpfH˂pZHf۝`vtbAdZbHAZpnvp`JXQlJtfpvQJ`ےJltZHAbrd|~HXdQZ|~f`˂pZrd|Xv`fltbvpfH`JXQrlJtAvnXJltvXnAbے`ZdQbtbHAZpQZ|d~f`Abے`Xnvˍ|dr˂rXfHf`r˂pArd|nXv`˙bHAZpbdQZ|`JXQZdQbtdv`fdrtAJvXnHAbےZdQbt~HfdQZ|~f`˂pZrd|v`pvbdQZ|vpfHJXQrlJfprXQrtAJlvXnہJXQrpfH~QtJlQJ`ےvXnZHAbہZdQbtf~H˂rXdtAJlr˂p|Zd~HfpltbvpfH`JXQrlJtApvndrtAJvXnHAbےZdQbtnrXQrAJl~f`˂pZHvnXJ`ےtbdvpfH˂p`Zf۝`vtbAdZbHAZpvpfH`JXQlJtfpvQJ`ےtbZHAbQbtlvnXdQZ|~f`˂pZrd|Xv`fltbvpfH`JXQrlJtAJ`p˂tbdQvXnAbے`v`fbHAZpQZ|d~f`QXb㉀Xnvˍ|dr˂rX~f`r˂pArd|nXv`˙bHAZpnvp`JXQJtArdv`pvdrtAJvXnHAbےZdQbtHfpdQZ|~f`˂pZrd|rXQJZ|dvpfHJXQr~HfprXQrtAJlvXnۑpJAHrpfH~QtJlt6666666666666667777777777777777777777777 \ No newline at end of file diff --git a/vendor/endroid/qr-code/assets/data/qrv31_0.dat b/vendor/endroid/qr-code/assets/data/qrv31_0.dat deleted file mode 100755 index 0449f38ff..000000000 --- a/vendor/endroid/qr-code/assets/data/qrv31_0.dat +++ /dev/null @@ -1,281 +0,0 @@ -}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqropopopopopopopopklklklklijijijijhghghghghghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUTSTSTSTSPOPOOOOOMNMNMNMNMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@?@?@?@?>=>=>=>=>;<;<;<;<9:9:9:9:}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqropopopopopopopopklklklklijijijijhghghghgfefefefefefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUTSTSTSTSOPOPOPOPMNMNMNMNMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>=>=>=>=>;<;<;<;<9:9:9:9:~}~}~}~}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqropopopopopopopopklklklklijijijiihghghghgfefefefefefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSRQOPOPOPOPMNMNMNMNMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>=>=>=>=>;<;<;<;<9:9:9:9:78787878}~}~}~}~}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqropopopoponmnmnmnklklklkliiiijijihghghghgfefefefefefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUVUVUVUVURQRQRQRQOPOPOPOPMNMNMNMNMNMNMNMLKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>=>=>=>=>;<;<;<;<9:9:9:9:78787878}~}~}~}~}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqropopopopmnmnmnmnklklklkljijijijihghghghgfefefefefefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUVUVUVUVURQRQRQRQOPOPOPOPMNMNMNMNKLKLKLKLKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>=>=>=>=<;<;<;<;<9:9:9:9:78765656}~}~}~}~}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqropopopopmnmnmnmnklklklkljijijijihghghghgfefefefedcdcdcdcdcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUVUVUVUVURQRQRQRQOPOPOPOPMNMNMNMNKLKLKLKLKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<;<;<;<;<9:9:987856555556}~}~}~}~}|{|{|{|{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqropopopopmnmnmnmnklklklkljijijijihghghghgfefefefedcdcdcdcdcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQOPOOOOOOMNMNMNMNKLKLKLKLKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<;<;<;<;<7878787856565656}~}~}~}~{|{|{|{|{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqropopopopmnmnmnmnklklklkljijijijihghghghgfefefefedcdcdcdcdcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPOMNMNMNMNKLKLKLKLKLKLKLKJIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<;<;<;<;<7878787856565656}~}~}~}~{|{|{|{|{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqropopopopmnmnmnmnklklklkljijijiiihghghghgfefefefedcdcdcdcdcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPOMNMNMNMNKLKLKLKLIJIJIJIJIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<;<;<;<;:7878787856565656}~}~}~}~{|{|{|{|{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqropopopopmnmnmnmnklklklkliiijijijhghghghgfefefefedcdcdcdcbabababababababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPOMNMNMNMNKLKLKLKLIJIJIJIJIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:7878787856565656}~}~}~}~{|{|{|{|{zyzyzyzyzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqropopopopmnmnmnmnklklklklijijijijhghghghgfefefefedcdcdcdcbabababababababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPOMNMNMNMNKLKLKLKLIJIJIJIJIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:7878787856565555}~}~}~}~{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqropopopopmnmnmnmnklklklklijijijijhghghghgfefefefedcdcdcdcbabababababababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPOMNMNMNMNKLKLKLKLIJIJIJIJIJIJIJIHGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:7878787855656565}~}~}~}~{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqropopopopmnmnmnmnklklklklijijijijhghghghgfefefefedcdcdcdcbabababababababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOOOOOOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:7878787865656565}~}~}~}~{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqropopopopmnmnmnmnklklklklijijijijhghghghgfefefefedcdcdcdcbabababa`_`_`_`_`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQOPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:7878787865656565}~}~}~}~{|{|{|{|yzyzyzyzyxwxwxwxwxwxwxwxuvuvuvuvststststqrqrqrqropopopopmnmnmnmnklklklklijijiiiihghghghgfefefefedcdcdcdcbabababa`_`_`_`_`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQOPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:7878787865656565}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxwxwxwxwxuvuvuvuvststststqrqrqrqropopopopmnmnmnmnklklklkliijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQOPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHGHGHGHGFEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:7878787865656565}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxwxwxwxwxuvuvuvuvststststqrqrqrqropopopopmnmnmnmnklklklkljijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQOPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:7878787865655555}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxwxwxwxwxuvuvuvuvststststqrqrqrqropopopopmnmnmnmnklklklkljijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQOPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:7878787856565656}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxwvuvuvuvuvuvuvuvststststqrqrqrqropopopopmnmnmnmnklklklkljijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQOOOOOOPOMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:7878787856565656}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvuvuvuvuvststststqrqrqrqropopopopmnmnmnmnklklklkljijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPOMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFEFEFEFEDCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:7878787856565656}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvuvuvuvuvststststqrqrqrqropopopopmnmnmnmnklklklkljijiiiiihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPOMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:7878787856565656}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvuvuvuvuvststststqrqrqrqropopopopmnmnmnmnklklklklijijijijhghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPOMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:7878787856565656}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvutstststststststqrqrqrqropopopopmnmnmnmnklklklklijijijijhghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPOMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:7878787856555555}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststststststqrqrqrqropopopopmnmnmnmnklklklklijijijijhghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPOMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDCDCDCDCBABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:7878787865656565}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststststststqrqrqrqropopopopmnmnmnmnklklklklijijijijhghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQOOOOOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABABABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:7878787865656565}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststststststqrqrqrqropopopopmnmnmnmnklklklklijijijijhghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQOPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABABABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:7878787865656565}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststsrqrqrqrqrqrqrqropopopopmnmnmnmnklklklklijiiiiiihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQOPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABABABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:7878787865656565}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqrqrqrqrqropopopopmnmnmnmnklklkjijjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQOPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABABABABABA@?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:7878787865656565}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqrqrqrqrqropopopopmnmnmnmnijijiiiihghghghghghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQOPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:7878787865555556}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqrqrqrqrqropopopopmnmnmnmnijijijijhghghghghghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQOPOOOOOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:7878787856565656}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqrqpopopopopopopopmnmnmnmlijijijijhghghghghghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUTSTSTSTSRQRQPOPOOPOPOPONMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:78787878565656565656565643434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('('('('('&%&%&%&%$#$#$#$#"!"!"!"!          - - - -5656565643434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('('('('&%&%&%&%&%$#$#$#$#"!"!"!"!             - - - -5656565643434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%&%&%&%&%$#$#$#$#"!"!"!"!             - - - -5555556543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%&%&%&%&%$#$#$#$#"!"!"!"!             - - - -6565654343434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%&%&%&%&%$#$#$#$#"!"!"!"!           - - - -4343434343434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%&%&%&%$#$#$#$#$#"!"!"!"!         - - - -4343434343434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!         - - - -4343434343434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!         - - - -4343434343434321212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!         - - - - - -4343434321212121212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#$#$#$#"!"!"!"!"!         - - - - - - - -4343434321212121212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!"!"!"!"!       - - - - - - - -4343434321212121212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!"!"!"!"!     - - - - - - - -43434343212121212121210/0/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!"!"!"!"!     - - - - - - 43434343212121210/0/0/0/0/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!"!"!"!      - - - -43434343212121210/0/0/0/0/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -43434343212121210/0/0/0/0/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -43434343212121210/0/0/0/0/0/0/.-.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -43434343212121210/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -43434343212121210/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -43434343212121210/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -43434343212121210/0/0/0/.-.-.-.-.-.-.-,+,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -43434343212121210/0/0/0/.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -43434343212121210/0/0/0/.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -43434343212121210/0/0/0/.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -43434343212121210/0/0/0/.-.-.-.-,+,+,+,+,+,+,+*)*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -43434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -43434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -43434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -43434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)*)*)*)('('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -43434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -43434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - - }}~~ - - xwwvvuut tuuvvwwx)((''&&%TUUVVWWXIHHGGFFE45566778ihhggffe - - ~~}}yyzz{{||$$##""!!YYZZ[[\\DDCCBBAA99::;;<>==<=>>??@@A`__^^]]\ !~~}}|yzz{{||}$##""!! qrrssttu - - tssrrqqp ~~}xyyzz{{|%$$##""!XYYZZ[[\EDDCCBBA899::;;>====>>??@@``__^^]] ~~}}yyzz{{|| - -  abbccdde<;;::998ABBCCDDE\[[ZZYYX!""##$$%|{{zzyyx}~~ uvvwwxxy - - poonmlkj !!""##$}||{{zzy|}}~~! \]]^^__`A@@??>>=<==>>??@a``__^^] ~~}~~}}||{xxwwvvuuaabbccdd<<;;::99AABBCCDD\\[[ZZYY!!""##$$||{{zzyy}}~~~~}}| - - effgghhi87766554EFFGGHHIXWWVVUUT%&&''(()xwwvvuut yzz{{||} -~~}} iihhggff$%%&&''(yxxwwvvu`aabbccd=<<;;::9@AABBCCD]\\[[ZZY !!""##$}||{{zzy{zzyyxxw !!""ttssrrqq - - eeffgghh88776655EEFFGGHHXXWWVVUU%%&&''((xxwwvvuu |{{zzyyx ijjkkllm43322110IJJKKLLMTSSRRQQP)**++,,-tssrrqqp - - }~~ - ||{{zzyy!!""eeddccbb())**++,uttssrrq - - deeffggh98877665DEEFFGGHYXXWWVVU$%%&&''(yxxwwvvu - - wvvuutts##$$%%&&ppoonnmm iijjkkll44332211IIJJKKLLTTSSRRQQ))**++,,ttssrrqq - - - - xwwvvuut mnnooppq0//..--,MNNOOPPQPOONNMML-..//001poonnmml xxwwvvuu##$$%%&&aa``__^^,--..//0qppoonnm hiijjkkl54433221HIIJJKKLUTTSSRRQ())**++,uttssrrq srrqqppo''(())**llkkjjii mmnnoopp00//..--MMNNOOPPPPOONNMM--..//00ppoonnmm tssrrqqp - - qrrssttu,++**))(QRRSSTTULKKJJIIH12233445lkkjjiih  ttssrrqq~~}}||''(())**]]\\[[ZZ01122334mllkkjji lmmnnoop100//..-LMMNNOOPQPPOONNM,--..//0qppoonnmoiihhggf++,,--..hhggffee - - qqrrsstt,,++**))QQRRSSTTLLKKJJII11223344llkkjjiipoonmlkjuvvwwxxy(''&&%%$UVVWWXXYHGGFFEED56677889hggffeed - -  - - ppoonnmm {{zzyyxx++,,--..YYXXWWVV45566778ihhggffe - - pqqrrsst-,,++**)PQQRRSSTMLLKKJJI01122334mllkkjjifeeddccb//001122ddccbbaauuvvwwxx((''&&%%UUVVWWXXHHGGFFEE55667788hhggffeeiihhggff !~~}}|yzz{{||}$##""!! YZZ[[\\]DCCBBAA@9::;;<<=dccbbaa`~ llkkjjii!!""##$$wwvvuutt//001122UUTSRQPO899::;;>==<=>>??@@A`__^^]]\ !~~}}|~}}||{{zhhggffee%%&&''((ssrrqqpp334455;;ONNMMLLK<==>>??@a``__^^] ~~}xyyzz{{|%$$##""!XYYZZ[[\EDDCCBBA899::;;>====>>??@@``__^^]] {{zzyyxx##$$%%&&aa``__^^%&&''(()xwwvvuut abbccdde<;;::998ABBCCDDE\[[ZZYYX!""##$$%|{{zzyyx zyyxxwwvddccbbaa))**++,,ooiihhgg<<==>>??KJJIIHHG@AABBCCD]\\[[ZZY !!""##$}||{{zzy|}}~~! \]]^^__`A@@??>>=<==>>??@a``__^^]%&&''(()ZYYXXWWV=>>??@@AXXWWVVUU%%&&''((xxwwvvuuaabbccdd<<;;::99AABBCCDD\\[[ZZYY!!""##$$wwvvuutt''(())**]]\\[[ZZ)**++,,-tssrrqqp - - effgghhi87766554EFFGGHHIXWWVVUUT%&&''(()xwwvvuut - - vuuttssr``__^^]]--..//00ffeeddcc@@AABBCCGFFEEDDCDEEFFGGHYXXWWVVU$%%&&''(yxxwwvvu`aabbccd=<<;;::9@AABBCCD]\\[[ZZY)**++,,-VUUOONNMABBCCDDETTSSRRQQ))**++,,ttssrrqq - - eeffgghh88776655EEFFGGHHXXWWVVUU%%&&''((ssrrqqpp++,,--..YYXXWWVV-..//001poonnmml ijjkkllm43322110IJJKKLLMTSSRRQQP)**++,,-tssrrqqp rqqppooi !!""##\\[[ZZYY11223344bbaa``__DDEEFFGGCBBAA@@?HIIJJKKLUTTSSRRQ())**++,uttssrrq - - deeffggh98877665DEEFFGGHYXXWWVVU-..//001MLLKKJJIEFFGGHHIPPOONNMM--..//00ppoonnmm iijjkkll44332211IIJJKKLLTTSSRRQQ))**++,,ooiihhgg//001122UUTSRQPO12233445lkkjjiih mnnooppq0//..--,MNNOOPPQPOONNMML-..//001poonnmmlihhggffe$$%%&&''XXWWVVUU55667788^^]]\\[[HHIIJJKK?>>==<<;LMMNNOOPQPPOONNM,--..//0qppoonnm hiijjkkl54433221HIIJJKKLUTTSSRRQ12233445IHHGGFFEIJJKKLLMLLKKJJII11223344llkkjjii mmnnoopp00//..--MMNNOOPPPPOONNMM--..//00ffeeddcc334455;;ONNMMLLK56677889hggffeed - - qrrssttu,++**))(QRRSSTTULKKJJIIH12233445lkkjjiiheddccbba(())**++TTSSRRQQ99::;;<EDDCCBBAMNNOOPQRHHGGFFEE55667788hhggffee - - qqrrsstt,,++**))QQRRSSTTLLKKJJII11223344bbaa``__<<==>>??KJJIIHHG9::;;<<=dccbbaa`uvvwwxxy(''&&%%$UVVWWXXYHGGFFEED56677889hggffeed!!"a``__^^],,--..//PPOONNMM==>>??@@VVUUOONNUUVVWWXX44332211TUUVVWWXIHHGGFFE45566778ihhggffe - - pqqrrsst-,,++**)PQQRRSSTMLLKKJJI>??@@AABA@@??>>=STUUVVWWDDCCBBAA99::;;<>??@@A`__^^]]\ !~~}}|yzz{{||}$##""!! YZZ[[\\]DCCBBAA@9::;;<<=dccbbaa`"##$$%%&]\\[[ZZY00112233LLKKJJIIAABBCCDDMMLLKKJJYYZZ[[\\00//..--XYYZZ[[\EDDCCBBA899::;;>====>>??@@``__^^]] ~~}}yyzz{{||$$##""!!YYZZ[[\\DDCCBBAA99::;;<>==<=>>??@@A`__^^]]\&''(())*YXXWWVVU44556789HHGGFFEEEEFFGGHHIIHHGGFF]]^^__``,,++**))\]]^^__`A@@??>>=<==>>??@a``__^^] ~~}xyyzz{{|%$$##""!XYYZZ[[\EDDCCBBAFGGHHIIJ43322110\\]]^^__<<;;::99AABBCCDD\\[[ZZYY!!""##$$||{{zzyy}}~~ ]]^^__``@@??>>====>>??@@VVUUOONNHHIIJJKK?>>==<<;EFFGGHHIXWWVVUUT%&&''(()xwwvvuut abbccdde<;;::998ABBCCDDE\[[ZZYYX*++,,--.UOONNMML:;;<<==>DDCCBBAAIIJJKKLLEEDDCCBBaabbccdd((''&&%%`aabbccd=<<;;::9@AABBCCD]\\[[ZZY !!""##$}||{{zzy|}}~~! \]]^^__`A@@??>>=JKKLLMMN0//..--,``aabbcc88776655EEFFGGHHXXWWVVUU%%&&''((xxwwvvuuaabbccdd<<;;::99AABBCCDDMMLLKKJJLLMMNNOO;:987655IJJKKLLMTSSRRQQP)**++,,-tssrrqqp - - effgghhi87766554EFFGGHHIXWWVVUUT.//00112LKKJJIIH>??@@AAB@@??>>==MMNNOOPPAA@@??>>eeffgghh$$##""!!deeffggh98877665DEEFFGGHYXXWWVVU$%%&&''(yxxwwvvu`aabbccd=<<;;::9NOOUUVVW,++**))(ddeeffgg44332211IIJJKKLLTTSSRRQQ))**++,,ttssrrqq - - eeffgghh88776655EEFFGGHHIIHHGGFFUUVVWWXX44332211MNNOOPPQPOONNMML-..//001poonnmml ijjkkllm43322110IJJKKLLMTSSRRQQP2334455;HGGFFEEDBCCDDEEF<<;;::99QQRRSSTT==<<;;55iiooppqq hiijjkkl54433221HIIJJKKLUTTSSRRQ())**++,uttssrrq - - deeffggh98877665WXXYYZZ[(''&&%%$hhiijklm00//..--MMNNOOPPPPOONNMM--..//00ppoonnmm iijjkkll44332211IIJJKKLLEEDDCCBBYYZZ[[\\00//..--QRRSSTTULKKJJIIH12233445lkkjjiih mnnooppq0//..--,MNNOOPPQPOONNMML;<<==>>?DCCBBAA@FGGHHIIJ88776655UUVVWWXX44332211rrssttuulmmnnoop100//..-LMMNNOOPQPPOONNM,--..//0qppoonnm hiijjkkl54433221[\\]]^^_$##""!!nooppqqr,,++**))QQRRSSTTLLKKJJII11223344llkkjjii mmnnoopp00//..--MMNNOOPPAA@@??>>]]^^__``,,++**))UVVWWXXYHGGFFEED56677889hggffeed - - qrrssttu,++**))(QRRSSTTULKKJJIIH?@@AABBC@??>>==>==<=>>??@@A`__^^]]\ !~~}}|yzz{{||}$##""!! YZZ[[\\]DCCBBAA@GHHIIJJK3221100/UUVVWWXX,,++**))aabbccdd((''&&%%~~ -xyyzz{{|%$$##""!XYYZZ[[\EDDCCBBA899::;;>====>>??@@``__^^]] ~~}}yyzz{{||$$##""!!YYZZ[[\\00//..--iiooppqq abbccdde<;;::998ABBCCDDE\[[ZZYYX!""##$$%|{{zzyyx}~~ ]^^__``a@??>>==>=<==>>??@a``__^^] ~~}xyyzz{{|%$$##""!pqqrrsst ~aabbccdd<<;;::99AABBCCDD\\[[ZZYY!!""##$$||{{zzyy}}~~ ]]^^__``,,++**))rrssttuueffgghhi87766554EFFGGHHIXWWVVUUT%&&''(()xwwvvuut abbccdde<;;::998OUUVVWWX+**))((']]^^__``$$##""!!iijjkkll`aabbccd=<<;;::9@AABBCCD]\\[[ZZY !!""##$}||{{zzy|}}~~! tuuvvwwx - - eeffgghh88776655EEFFGGHHXXWWVVUU%%&&''((xxwwvvuuaabbccdd((''&&%%vvwwxxyyijjkkllm43322110IJJKKLLMTSSRRQQP)**++,,-tssrrqqp - - effgghhi87766554XYYZZ[[\'&&%%$$#aabbccdd mmnnoopp - - deeffggh98877665DEEFFGGHYXXWWVVU$%%&&''(yxxwwvvuxyyzz{{|iijjkkll44332211IIJJKKLLTTSSRRQQ))**++,,ttssrrqq - - eeffgghh$$##""!!zz{{||}}mnnooppq0//..--,MNNOOPPQPOONNMML-..//001poonnmml ijjkkllm43322110\]]^^__`#""!!eeffgghhqqrrsstt hiijjkkl54433221HIIJJKKLUTTSSRRQ())**++,uttssrrq - - |}}~~ mmnnoopp00//..--MMNNOOPPPPOONNMM--..//00ppoonnmm iijjkkll~~ -qrrssttu,++**))(QRRSSTTULKKJJIIH12233445lkkjjiih mnnooppq0//..--,`aabbccdiijklmnouuvvwwxx ~~}}| lmmnnoop100//..-LMMNNOOPQPPOONNM,--..//0qppoonnm  - - - - qqrrsstt,,++**))QQRRSSTTLLKKJJII11223344llkkjjii mmnnoopp - uvvwwxxy(''&&%%$UVVWWXXYHGGFFEED56677889hggffeed - - qrrssttu,++**))(deeffgghoppqqrrsyyzz{{|| - - |{{zzyyx - - pqqrrsst-,,++**)PQQRRSSTMLLKKJJI01122334mllkkjji uuvvwwxx((''&&%%UUVVWWXXHHGGFFEE55667788hhggffee - - qqrrssttyzz{{||}$##""!! YZZ[[\\]DCCBBAA@9::;;<<=dccbbaa`uvvwwxxy(''&&%%$hiiooppqsttuuvvwwxxyyzz{##""!! ZZ[[\\]]CCBBAA@@::;;<<==ccbbaa``vvwwxxyy''&&%%$$VVWWXXYY33221100ffgghhii##""!! ^__``aab?>>==<<;>??@@AAB_^^]]\\[ !!"~~}}||{z{{||}}~#""!! Z[[\\]]^,++**))(z{{||}}~ - - {||}}~~^^__``aa??>>==<<>>??@@AA__^^]]\\ !!~~}}||zz{{||}}##""!! ZZ[[\\]]//..--,,ooppqqrrbccddeef;::99887BCCDDEEF[ZZYYXXW"##$$%%&{zzyyxxw~^__``aab(''&&%%$~ - - bbccddee;;::9988BBCCDDEE[[ZZYYXX""##$$%%{{zzyyxx~~^^__``aa++**))((ssttuuvvfgghhiij76655443FGGHHIIJWVVUUTTS&''(())*wvvuutts -bccddeef$##""!!~~} ffgghhii77665544FFGGHHIIWWVVUUTT&&''(())wwvvuutt bbccddee''&&%%$$wwxxyyzzjkkllmmn3221100/JKKLLMMNSRRQQPPO*++,,--.srrqqppo - fgghhiij}||{{zzyjjkkllmm33221100JJKKLLMMSSRRQQPP**++,,--ssrrqqpp - - ffgghhii##""!!{{||}}~~ nooppqqr/..--,,+NOOPPQQRONNMMLLK.//00112onnmmllkjkkllmmnyxxwwvvu nnooppqq//..--,,NNOOPPQQOONNMMLL..//0011oonnmmlljjkkllmm - - rssttuuv+**))(('RSSTTUUVKJJIIHHG23344556kjjiihhg nooppqqruttssrrq - - rrssttuu++**))((RRSSTTUUKKJJIIHH22334455kkjjiihh nnooppqq vwwxxyyz'&&%%$$#VWWXXYYZGFFEEDDC6778899:gffeeddc - - rssttuuv qppoonnm vvwwxxyy''&&%%$$VVWWXXYYGGFFEEDD66778899ggffeedd - - rrssttuuz{{||}}~#""!! Z[[\\]]^CBBAA@@?:;;<<==>cbbaa``_vwwxxyyz - - -mllkkjji !!""##$~~}}||zz{{||}}##""!! ZZ[[\\]]CCBBAA@@::;;<<==ccbbaa``vvwwxxyy ~^__``aab?>>==<<;>??@@AAB_^^]]\\[ !!"~~}}||{z{{||}}~ - ihhggffe$%%&&''({{zzyyxx~~^^__``aa??>>==<<>>??@@AA__^^]]\\ !!~~}}||zz{{||}} - -  -bccddeef;::99887BCCDDEEF[ZZYYXXW"##$$%%&{zzyyxxw~eddccbba())**++,wwvvuutt bbccddee;;::9988BBCCDDEE[[ZZYYXX""##$$%%{{zzyyxx~~~~}}||{ - fgghhiij76655443FGGHHIIJWVVUUTTS&''(())*wvvuutts -a``__^^],--..//0ssrrqqpp - - ffgghhii77665544FFGGHHIIWWVVUUTT&&''(())wwvvuutt  - -{zzyyxxwjkkllmmn3221100/JKKLLMMNSRRQQPPO*++,,--.srrqqppo - ]\\[[ZZY01122334oonnmmlljjkkllmm33221100JJKKLLMMSSRRQQPP**++,,--ssrrqqpp - - wvvuutts nooppqqr/..--,,+NOOPPQQRONNMMLLK.//00112onnmmllk!!""#YXXWWVVU45566778kkjjiihh nnooppqq//..--,,NNOOPPQQOONNMMLL..//0011oonnmmllsrrqqppo - - rssttuuv+**))(('RSSTTUUVKJJIIHHG23344556kjjiihhg#$$%%&&'UTTSSRRQ899::;;>??@ccbbaa``vvwwxxyy''&&%%$$VVWWXXYYGGFFEEDD66778899ggffeeddhhggffee !!"~~}}||{z{{||}}~#""!! Z[[\\]]^CBBAA@@?:;;<<==>cbbaa``_{zzyyxxw+,,--../MLLKKJJI@AABBCCD__^^]]\\ !!~~}}||zz{{||}}##""!! ZZ[[\\]]CCBBAA@@::;;<<==ccbbaa``~~}}||{{!!""##ddccbbaa"##$$%%&{zzyyxxw~^__``aab?>>==<<;>??@@AAB_^^]]\\[ !!"wvvuutts/0011223IHHGGFFEDEEFFGGH[[ZZYYXX""##$$%%{{zzyyxx~~^^__``aa??>>==<<>>??@@AA__^^]]\\ !!zzyyxxww$$%%&&''``__^^]]&''(())*wvvuutts -bccddeef;::99887BCCDDEEF[ZZYYXXW"##$$%%&srrqqppo34455;;>??@A@@??>>=LMMNNOOPSSRRQQPP**++,,--ssrrqqpp - - ffgghhii77665544FFGGHHIIWWVVUUTT&&''(())rrqqppoo,,--..//XXWWVVUU.//00112onnmmllkjkkllmmn3221100/JKKLLMMNSRRQQPPO*++,,--.feeddccb@AABBCCD=<<;;::9PQQRRSSTOONNMMLL..//0011oonnmmlljjkkllmm33221100JJKKLLMMSSRRQQPP**++,,--iihhggff00112233TSRQPOON23344556kjjiihhg nooppqqr/..--,,+NOOPPQQRONNMMLLK.//00112baa``__^DEEFFGGH98877665TUUVVWWXKKJJIIHH22334455kkjjiihh nnooppqq//..--,,NNOOPPQQOONNMMLL..//0011eeddccbb4455;;<>??@@JIIHHGGF:;;<<==>cbbaa``_vwwxxyyz'&&%%$$#VWWXXYYZGFFEEDDC6778899:ZYYXXWWVLMMNNOOU100//..-\]]^^__`CCBBAA@@::;;<<==ccbbaa``vvwwxxyy''&&%%$$VVWWXXYYGGFFEEDD66778899]]\\[[ZZAABBCCDDFEEDDCCB>??@@AAB_^^]]\\[ !!"~~}}||{z{{||}}~#""!! Z[[\\]]^CBBAA@@?:;;<<==>VUUOONNMUVVWWXXY-,,++**)`aabbccd??>>==<<>>??@@AA__^^]]\\ !!~~}}||zz{{||}}##""!! ZZ[[\\]]CCBBAA@@::;;<<==YYXXWWVVEEFFGGHHBAA@@??>BCCDDEEF[ZZYYXXW"##$$%%&{zzyyxxw~^__``aab?>>==<<;>??@@AABMLLKKJJIYZZ[[\\])((''&&%deeffggh;;::9988BBCCDDEE[[ZZYYXX""##$$%%{{zzyyxx~~^^__``aa??>>==<<>>??@@AAUUOONNMMIIJJKKLL>==<<;;:FGGHHIIJWVVUUTTS&''(())*wvvuutts -bccddeef;::99887BCCDDEEFIHHGGFFE]^^__``a%$$##""!hiijjkkl77665544FFGGHHIIWWVVUUTT&&''(())wwvvuutt bbccddee;;::9988BBCCDDEELLKKJJIIMMNNOOUU98765544JKKLLMMNSRRQQPPO*++,,--.srrqqppo - fgghhiij76655443FGGHHIIJEDDCCBBAabbccdde! lmmnnoop33221100JJKKLLMMSSRRQQPP**++,,--ssrrqqpp - - ffgghhii77665544FFGGHHIIHHGGFFEEVVWWXXYY33221100NOOPPQQRONNMMLLK.//00112onnmmllkjkkllmmn3221100/JKKLLMMNA@@??>>=effgghhipqqrrsst//..--,,NNOOPPQQOONNMMLL..//0011oonnmmlljjkkllmm33221100JJKKLLMMDDCCBBAAZZ[[\\]]//..--,,RSSTTUUVKJJIIHHG23344556kjjiihhg nooppqqr/..--,,+NOOPPQQR=<<;;554iooppqqrtuuvvwwx++**))((RRSSTTUUKKJJIIHH22334455kkjjiihh nnooppqq//..--,,NNOOPPQQ@@??>>==^^__``aa++**))((VWWXXYYZGFFEEDDC6778899:gffeeddc - - rssttuuv+**))(('RSSTTUUV43322110rssttuuvxyyzz{{|''&&%%$$VVWWXXYYGGFFEEDD66778899ggffeedd - - rrssttuu++**))((RRSSTTUU<<;;5544bbccddee''&&%%$$Z[[\\]]^CBBAA@@?:;;<<==>cbbaa``_vwwxxyyz'&&%%$$#VWWXXYYZ0//..--,vwwxxyyz |}}~~ZHAbے`JXQtArd˂rXQbdQZ|nvpQr˂pZHAۂ|ZdQfpvrXQJ`ۉbdQZ|fH~ˑZHAb|ZdQfpvnXv`drtAdfH~ZHAb`JXQrtlJnXv`bHAZdrtA`vXnے`JXQtlJnXv`fHfp˂rltbbJQbtlArd|f~H˂rXJltvpfHr˂pArd|f~HvnQJ`ےbdQZ|~f`ے`JXQr˂p|ZdQbJ`ےdrtAfH~ˑZHAb`JXQbtlnXv`bHAdrtf`vXے`JXbtlnXv`fHQZ|df`vXے`JXQbtltArdf~Hp˂rJltvpfr˂ptArdf~HpvnXQJ`ےdQZ|lr˂pJtAd|ZdQbtfpvQJ`ےbdQZ|~f`ZHAbہZdQbtfpvrXQJ`ۙbHAZpdrtAvXnr˂p|ZdQbtlJbHAZpJlbQZf`vXے`JXrbtlJtArdf~HZp˂AJltnvpQr˂pJtArdf~HfpvrtAJlnvpfr˂pJtAd|ZdQbfpvXQJ`ےbdQZ|H~fZHAb|ZdQbfpvrXQJ`bHAZtbnZHAbہZdQbtlJtnXv`˙bHAZpdrtAvXn`JXQlJtnXv`˒HAZp˂rXJltvpfHJXQrZHAbtlJtArd˂rXQ|drnvpQr˂pJtAd|ZdQfpvrXQJ`ۉbdQZ|fH~ˑZHAb|ZdQfpvnrXQJ`tbd~f`vZHAb|ZdQbtlJnXv`bHAZdrtA`vXnے`JXQtlJnXv`ےHAZp˂rvp``JXQlJtArdf~H˂rXJltvpfHr˂pArd|f~H˂rXQJ`ےbdQZ|~f`p`JXے`JXQtArdf~HJ`p˂tAJlfH~ˑZHAb|ZdQbtlnXv`bHAdrtf`vXے`JXbtlnXv`p˂QZ|dXnvے`JXQtlJtArdf~Hp˂rJltvpfr˂ptArdf~Hp˂rXQJ`ےvXnr˂pArd|f~HfpvQJ`ےbdQZ|~f`ZHAbہZdQbtfpvQJ`ےbHAZdrtAvXHQrbtr˂p|ZdQbXv`frXQJtbdQZf`vXے`JXbtlJtArdf~HZp˂AJltnvpQr˂pJtArdf~HrXQJ`ۙrtAJlpfH~r˂ptArdf~HfpvXQJ`ےbdQZ|H~fZHAb|ZdQbfpvXQJ`ےbHAZvpfHZHAbہZdQbtfpvnXv`˙bHAZpdrtAvXn`JXQlJtnXv`˙bHAZpdrtAJlt~fZHlJA|ZHAbtlJ~Hf`ےb|drnvpQr˂pJtArdf~HfpvrXQJ`ۉbdQZ|fH~ˑZHAb|ZdQfpvbHA|df`vZHAb|ZdQbfpvnXv`bHAZdrtA`vXnے`JXQtlJnXv`bHAZdrtA~f``JQrlJtnXv`fHfp˂rXJltvpfHr˂pArd|f~H˂rXJltbdQZ|AbˁZdQbtے`JXQtArdpvnHAZp˂tAJlfH~ˑZHAb|ZdQfpvnXv`bHAdrtf`vXے`JXbtlnXv`Zp˂rtAJlXnvے`JXQtlJnXv`fHfp˂rJltvpfr˂ptArdf~Hp˂rdQZ|vXnpZHAbArd|f~HvnQJ`ےbdQZ|~f`ZHAbہZdQbtfpvQJ`ےbdQZ|dtAJlpZHAlJtr˂p|ZdQbXv`frXQJtbQZdf`vXے`JXbtlnXv`fHZp˂AJltnvpQr˂pJtArdf~HrXQJ`ptbdQpfH~r˂ptArdf~HpvnXQJ`ےbdQZ|H~fZHAb|ZdQbfpvXQJ`ےdrtAJvp`vے`JZdQbtfpvrXQJ`ۙbHAZpdrtAvXn`JXQlJtnXv`˙bHAZpdrtAtbbے`Ard|ZHAbtlJ~Hf`ےrtAJlnvpQr˂pJtArdf~HfpvrXQJ`ۉbdQZ|fH~ˑZHAb|ZdQfpv˂rXZ|dfvXnZHAb|ZdQbfpvrXQJ`bHAZdrtA`vXnے`JXQtlJnXv`bHAZltbXnvXQr˂lJtnXv`˒HAZp˂rXJltvpfHr˂pArd|f~H˂rXJltnvp`JXQrˁZdQbtے`JXQtArdp`frXQJ`tbdfH~ˑZHAb|ZdQfpvnrXQJ`bHAdrtf`vXے`JXbtlnXv`QJ`ےrtAJlvpfHے`JXQtlJnXv`ےHAZp˂rJltvpfr˂ptArdf~Hp˂rdQZ|pfH~pZHAbArd|f~H˂rXQJ`ےbdQZ|~f`ZHAbہZdQbtfpvQJ`ےbdQZ|vXnpZHAlJArr˂p|ZdQb~HfpےbHAQZ|df`vXے`JXbtlnXv`ےHAZp˂AJltnvpQr˂pJtArdf~HbHAZptdrt~f`r˂ptArdf~Hp˂rXQJ`ےbdQZ|H~fZHAb|ZdQbfpvXQJ`ےdrtAJf`vے`JZdQbtfpvQJ`ےbHAZdrtAvXn`JXQlJtnXv`˙bHAZpdrtAvpfHbے`p|ZdQZHAbtlJvnXZp˂rtAJlnvpQr˂pJtArdf~HZp˂rXQJ`ۉbdQZ|fH~ˑZHAb|ZdQfpv˂rXAJltvXnZHAb|ZdQbfpvXQJ`ےbHAZdrtA`vXnے`JXQtlJnXv`bHAZl|dXnvXQrZHlJtnXv`˙bHAZpdrtAJltvpfHr˂pArd|f~H˂rXJlt~f`ZHAbbtlے`JXQtArdv`frXQJ`tbdfH~ˑZHAb|ZdQfpvrXQJ`ےbHAdrtf`vXے`JXbtlnXv`QJ`ےbdQZ|vpfHے`JXQtlJnXv`bHAZdrtAJltvpfr˂ptArdf~Hp˂rrtAJlpfHXAbے`Ard|f~H˂rXJltbdQZ|~f`ZHAbہZdQbtfpvQJ`ےbdQZ|vXnے`JXJtArdr˂p|ZdQb~HfpےbHAQZrtAf`vXے`JXbtlnXv`bHAZdrtAJltnvpQr˂pJtArdf~HrXQdrt~fvr˂ptArdf~Hp˂rJltbdQZ|H~fZHAb|ZdQbfpvXQJ`ےtbdQnvpJXQrZdQbtfpvQJ`ےbdQZ|dtAJlvXn`JXQlJtnXv`˙bHAZpdrtAvp`Qr˂p|ZdQZHAbtlJv~XQJ`ےJltnvpQr˂pJtArdf~HZp˂AJltbdQZ|fH~ˑZHAb|ZdQfpvJ`ےAJltnvpZHAb|ZdQbfpvXQJ`ےbdQZ|dtAJ`vXnے`JXQtlJnXv`bHAZZ|dfH~˂pZHlJtnXv`˙bHAZpdrtAtbvpfHr˂pArd|f~H˂rXJltvXnۑZHAbbtlے`JXQtArdHfpvbHAZbdQZ|fH~ˑZHAb|ZdQfpvrXQJ`ۉbdQZ|dtAf`vXے`JXbtlnXv`bHAZpˉbdQtAfH~ے`JXQtlJnXv`bHAZdrtAltbvpfr˂ptArdf~Hp˂rrtAJlf`vXAbے`Ard|f~H˂rXJltnvp~f`ZHAbہZdQbtfpvQJ`ےbdQZ|vpfHے`JXJtArr˂p|ZdQbnXvp˂rdrtAf`vXے`JXbtlnXv`bHAdrtJltnvpQr˂pJtArdf~HrXQJltf`vXr˂ptArdf~Hp˂rJltnvpH~fZHAb|ZdQbfpvXQJ`ےtdrnvpJXQrZdQbtfpvQJ`ےbdQZ|fHf`vXn`JXQlJtnXv`˙bHAZpdrtA~f`QHAbZdQbtZHAbtlJ`f~XQJ`ےJltnvpQr˂pJtArdf~HZp˂AJltbnvpfH~ˑZHAb|ZdQfpvJ`ےbdQZ|nvpZHAb|ZdQbfpvXQJ`ےbdQZ|fHf`vXnے`JXQtlJnXv`bHAZtAJlfH~ZAblJtnXv`˙bHAZpdrtAvXnvpfHr˂pArd|f~H˂rXJltvXnے`JXQlJtAے`JXQtArdHfpvbHAZbdQZ|fH~ˑZHAb|ZdQfpvrXQJ`ۉbdQZ|fHf`vXے`JXbtlnXv`bHAXQJ`drtAfH~ے`JXQtlJnXv`bHAZdrtA`vXnvpfr˂ptArdf~Hp˂rtbdQZvpfے`JXQArd|f~H˂rXJltvpfH~fZHAbہZdQbtfpvQJ`ےbdQZ|vpfHXr˂prd|r˂p|ZdQbnXHp`ےrAJlf`vXے`JXbtlnXv`bHAdrtf`vXnvpQr˂pJtArdf~HےbHJltf`vnr˂ptArdf~Hp˂rJltvpfH~fZHAb|ZdQbfpvXQJ`ے|drH~fr˂pZdQbtfpvQJ`ےbdQZ|~f`ZHAbے`JXQlJtnXv`˙bHAZpdrtAnvpZHAbZdQbtZHAbtlJfpvbHAZptbdQnvpQr˂pJtArdf~HZp˂AJltnvpfH~ˑZHAb|ZdQfpvAZp˂bdQZ|lvpfHZHAb|ZdQbfpvXQJ`ےbdQZ|H~fZHAbے`JXQtlJnXv`bHAZtAJl`vXnZHAblJtnXv`˙bHAZpdrtAvXn`JXQr˂pArd|f~H˂rXJltfH~`JXQlJtAے`JXQtArdnXv`˂rXQZ|dfH~ˑZHAb|ZdQfpvrXQJ`ۉbdQZ|fH~fZHAbے`JXbtlnXv`rXQJ`tbd~f`ے`JXQtlJnXv`bHAZdrtA`vXnے`JXQr˂ptArdf~Hp˂rtbdQtAvpfے`JXQArd|f~H˂rXJltvpfHr˂pZHAے`ZdQbtfpvQJ`ےbdQZ|f`vXrے`rdZQbr˂p|ZdQbf~HJ`ےrtAJlf`vXے`JXbtlnXv`bHAdrtf`vXے`JXQr˂pJtArdf~HےbHQZ|dvXnr˂ptArdf~Hp˂rJltvpfr˂pZHAے|ZdQbfpvXQJ`ےJltH~fr˂pZdQbtfpvQJ`ےbdQZ|~f`ZHAbہJXQrlJtnXv`˙bHAZpdrtAnvpJXQrtlJZHAbtlJfpvbHAZptbdQnvpQr˂pJtArdf~HZp˂AJltnvpQr˂pZHAۂ|ZdQfpvAZp`ۙrtAJlvpfHZHAb|ZdQbfpvXQJ`ےbdQZ|H~fZHAb`JXQrtlJnXv`bHAZbdQZ|`pfHZAb`lJtnXv`˙bHAZpdrtAvXn`JXQbtlArd|f~H˂rXJltfH~˂pZHtArdے`JXQtArdnXv`˂bZ|dnfH~ˑZHAb|ZdQfpvrXQJ`ۉbdQZ|fH~ˑZHAb`JXQbtlnXv`bHAtbd~f`ے`JXQtlJnXv`bHAZdrtA`vXnے`JXQbtltArdf~Hp˂rdrtA~f`JXQrArd|f~H˂rXJltvpfHr˂pJtAd|ZdQbtfpvQJ`ےbdQZ|vpAbے`|ZdQbr˂p|ZdQbpvnHAZdvff`vXے`JXbtlnXv`bHAdrtf`vXے`JXrbtlJtArdf~HZp˂QZ|lvXnvfr˂ptArdf~Hp˂rJltvpfr˂pJtAd|ZdQbfpvXQJ`ےJltvXnpZHAZdQbtfpvQJ`ےbdQZ|~f`ZHAbہZdQbtlJtnXv`˙bHAZpdrtAfH~ˁJXQrtlJZHAbtlJXv`frtAJf`vXnvpQr˂pJtArdf~HZp˂AJltnvpQr˂pJtAd|ZdQfpvrXQJ`ےtbnH~fZHAb|ZdQbfpvXQJ`ےbdQZ|H~fZHAb|ZdQbtlJnXv`bHAZbdQZ|vpfHbے`lJtnXv`˙bHAZpdrtAvXn`JXQlJtArdf~H˂rXJltf`vX˂p`tArdے`JXQtArd~HfbdQZ|nvpfH~ˑZHAb|ZdQfpvrXQJ`ۉbdQZ|fH~ˑZHAb|ZdQbtlnXv`bHAvpfZHAbے`JXQtlJnXv`bHAZdrtA`vXnے`JXQtlJtArdf~Hp˂rltb~f`JXQrArd|f~H˂rXJltvpfHr˂pArd|f~HfpvQJ`ےbdQZ|nvpJXQr|ZQblr˂p|ZdQbpvndrtAfH~fZHAbے`JXbtlnXv`bHAdrtf`vXے`JXbtlJtArdf~HZp˂f`vXے`JXQr˂ptArdf~Hp˂rJltvpfr˂ptArdf~HfpvXQJ`ےdQZ|vXH~pZA`ZdQbtfpvQJ`ےbdQZ|~f`ZHAbہZdQbtfpvnXv`˙bHAZpdrtAfH~˂pZHAJtArdZHAbtlJXv`pJltf`vXے`JXQr˂pJtArdf~HZp˂AJltnvpQr˂pJtArdf~HfpvbHAZnvpr˂pZHAے|ZdQbfpvXQJ`ےbdQZ|H~fZHAb|ZdQbfpvnXv`bHAZdrtAJfZHAJXQrlJtnXv`˙bHAZpdrtAvXn`JXQlJtnXv`fHfp˂rXJltf`pfHbے`|ZdQbtlXv`fbHAZpdrtAJvXn`JXQrlJtAXv`fHfp˂rXQltbvpfH`JXQrrd|Xv`frXQtbdvpfH˂pZHrd|~HfpvnrXJ`ےQZ|d~f`ZHAbۑpJAHrXnvˍJtArd~Hf˂rXQltbvpfH˂pZrd|~HfvnrJ`ےdQZ|~f`˂pZlJtAr~fpvJ`ےQZ|d~f`Abے`ZdQbtvnXQJ`ےbHAZp˙rtAJlvXnے`JXQ󙐂ˁ`p|dr|ZdpvnJ`ےdQZ|~f`HAbےZdQbtpvnXQJ`ےbHAZpdrtAJvXnHAbےd|ZnXv`bHAZp˙rtAJlvXnہJXQrlJtAv`fHAZp˂rXQtbdvpfHr˂p`pfH~QtJlQbJtAXv`fbHAZpdrtAJvXn`JXQrlJtAXv`fHAZp˂rXQltbvpfH`JXQrdQbt璍f~HrXQtbdvpfH˂pZHrd|~HfprXQJ`ےQZ|d~f`JXQrf۝`vtbAdZrdf~Hf˂rXQltbvpfH˂pZrd|~Hf˂rXQJ`ےdQZ|~f`˂p`lJtArfpvJ`ےQZ|d~f`Abے`ZdQbtvnXJ`ےbHAZdrtAJlvXnۉ˂pZHXnvˍ|dr~HfpvnJ`ےdQZ|~f`HAbےZdQbtpvnJ`ےbHAZdrtAJvXnJXQrd|ZnXv`bHAZp˙rtAJlvXnہJXQrlJtAv`fbHAZp˙rtAJltbdvpfHAbے`pfH~QtJlpvnXv`fbHAZpdrtAJvXn`JXQrlJtAXv`fbHAZpdrtAJltbvpfH˂pZHAdQtArdffpۂrXQtbdvpfH˂pZHrd|~HfprXQtbdQZ|d~f`JXQrf۝`vtbAdZXv`fHfp˂rXQltbvpfH˂pZrd|~Hf˂rXQltbdQZ|~f`bے`f~vnrXJ`ےQZ|d~f`Abے`ZdQbtvnXJ`ےQZ|dtAJlvXnۉ˂p`ZXnvˍ|dr~HfvnrJ`ےdQZ|~f`HAbےZdQbtpvnJ`ےdQZ|dtAJlvXnJXQrHfvnXQJ`ےbHAZp˙rtAJlvXnہJXQrlJtAv`fbHAZp˙rtAJltbnvpfHQXb㉀pfH~QtJlpvnXQJ`ےbHAZpdrtAJvXn`JXQrlJtAXv`fbHAZpdrtAJtbnvpfH˂p`Jv`fHAZp˂rXQtbdvpfH˂pZHrd|~HfprXQtbdvpfH~f`ۑpJAHrf۝`vtbAdZXv`fHAZp˂rXQltbvpfH˂pZrd|~Hf˂rXQltbvpf~f`XQrbt~HfprXQJ`ےQZ|d~f`Abے`ZdQbtvnXJ`ےQZ|df`vXn󙐂ˁ`ZXnvˍ|dr~Hf˂rXQJ`ےdQZ|~f`HAbےZdQbtpvnJ`ےdQZ|Hf`vXnl|ZvnXJ`ےbHAZdrtAJlvXnہJXQrlJtAv`fbHAZp˙rtAJlvXnvpfHQXb㉀pfH~QtJlpvnJ`ےbHAZdrtAJvXn`JXQrlJtAXv`fbHAZpdrtAJvXnvpfHdQbt璕v`fbHAZp˙rtAJltbdvpfH˂pZHrd|~HfprXQtbdvpfH~frۑp`ZQf۝`vtbAdZXv`fbHAZpdrtAJltbvpfH˂pZrd|~Hf˂rXQltbvpfH~fZlJtAr~HfprXQtbdQZ|d~f`Abے`ZdQbtvnXJ`ےQZ|d~f`˂pZHXb㉀ۑXnvˍ|dr~Hf˂rXQltbdQZ|~f`HAbےZdQbtpvnJ`ےdQZ|~f`HAbd|Zvnv`J`ےQZ|dtAJlvXnہJXQrlJtAv`fbHAZp˙rtAJlvXnAbے`pJAHrpfH~QtJlpvnJ`ےdQZ|dtAJlvXn`JXQrlJtAXv`fbHAZpdrtAJvXn˂pZHAdQbtf~HbHAZp˙rtAJltbnvpfH˂pZHrd|~HfprXQtbdvpfHJXQrˁ`ZQf۝`vtbAdZXv`fbHAZpdrtAJtbnvpfH˂pZrd|~Hf˂rXQltbvpfHbے`l|ZdQfpvrXQtbdvpfH~f`Abے`ZdQbtvnXJ`ےQZ|d~f`˂pZHXb㉀ۑXnvˍ|dr~Hf˂rXQltbvpf~f`HAbےZdQbtpvnJ`ےdQZ|~f`JXQrbtlnXv`J`ےQZ|df`vXnہJXQrlJtAv`fbHAZp˙rtAJlvXnAbے`pJAHQXbpfH~QtJlpvnJ`ےdQZ|Hf`vXn`JXQrlJtAXv`fbHAZpdrtAJvXn˂pZHAJtArdf~HbHAZp˙rtAJlvXnvpfH˂pZHrd|~HfprXQtbdvpfHpZHA㉀ۑpJf۝`vtbAdZXv`fbHAZpdrtAJvXnvpfH˂pZrd|~Hf˂rXQltbvpfHbے`|ZdQfpvrXQtbdvpfH~fZHAbے`ZdQbtvnXJ`ےQZ|d~f`bے`AHr󙐂Xnvˍ|dr~Hf˂rXQltbvpfH~fZHAbےZdQbtpvnJ`ےdQZ|~f`pZHAbbtlnvfJ`ےQZ|d~f`Abے`JXQrlJtAv`fbHAZp˙rtAJlvXnJXQrˁ`ZQXbpfH~QtJlpvnJ`ےdQZ|~f`HAbے`JXQrlJtAXv`fbHAZpdrtAJvXnے`JJtAdQb~HfpbHAZp˙rtAJlvXnہJXQr˂pZHrd|~HfprXQtbdvpfHpZHA㉀ۑpJf۝`vtbAdZXv`fbHAZpdrtAJvXn`JXQr˂pZrd|~Hf˂rXQltbvpfHXQr˂tlJvnXrXQtbdvpfH˂pZHAے`ZdQbtvnXJ`ےQZ|d~f`bے`AHr󙐉Xnvˍ|dr~Hf˂rXQltbvpfH˂pZHAے`ZdQbtpvnJ`ےdQZ|~f`pZHAbtArdv`fJ`ےQZ|d~f`Abے`JXQrbtlJtAv`fbHAZp˙rtAJlvXnJXQHAbۑpJApfH~QtJlpvnJ`ےdQZ|~f`HAbےJXQrblJtAXv`fbHAZpdrtAJvXnے`J|ZdQb~HfpbHAZp˙rtAJlvXnہJXQrlJtrd|~HfprXQtbdvpfHے`JXHr󙐂ˁf۝`vtbAdZXv`fbHAZpdrtAJvXn`JXQrtlJrd|~Hf˂rXQltbvpfHXQHAbtlJvnXvrXQtbdvpfH˂pZHAd|ZdQbtvnXJ`ےQZ|d~f`Qr˂p`ZQXbXnvˍ|dr~Hf˂rXQltbvpfH˂pZtAd|ZdQbtpvnJ`ےdQZ|~f`ے`JXQtArdtf~HfJ`ےQZ|d~f`Abے`ZdQbtlJtAv`fbHAZp˙rtAJlvXnۑZHAbۑpJApfH~QtJlpvnJ`ےdQZ|~f`HAbےZdQbtlJtAXv`fbHAZpdrtAJvXnr˂plJtApvnbHAZp˙rtAJlvXnہJXQrlJtArdf~HfprXQtbdvpfHے`JXHr󙐂ˁf۝`vtbAdZXv`fbHAZpdrtAJvXn`JXQrlJtArdf~Hf˂rXQltbvpfHZHAbrd|Xv`frXQtbdvpfH˂pZHrd|~HfpvnXJ`ےQZ|d~f`Qr`pJAHrXnvˍ|dr~Hf˂rXQltbvpfH˂pZrd|~HfpvnJ`ےdQZ|~f`ے`JXQZdQbt~HfJ`ےQZ|d~f`Abے`ZdQbtvnXv`fbHAZp˙rtAJlvXnے`JXQ󙐂ˁ`ZpfH~QtJlpvnJ`ےdQZ|~f`HAbےZdQbtpvnXv`fbHAZpdrtAJvXnrےlJtApvnbHAZp˙rtAJlvXnہJXQrlJtAv`fHfpۂrXQtbdvpfHr˂pQXb㉀f۝`vtbAdZ|JJKKKKKKKKKKKKKKKKKKKKKKKKKKKKK \ No newline at end of file diff --git a/vendor/endroid/qr-code/assets/data/qrv31_1.dat b/vendor/endroid/qr-code/assets/data/qrv31_1.dat deleted file mode 100755 index 98ce5641a..000000000 --- a/vendor/endroid/qr-code/assets/data/qrv31_1.dat +++ /dev/null @@ -1,281 +0,0 @@ -}~}~}~}~}~}~}~}~{|{|{|{|{|{|{|{|{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwxuvuvuvuvuvuvuvuvststststststststqrqrqrqrqrqrqrqrqpopopopopopopopopopopopmnmnmnmnklklklklklklklklijijijiijijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQPOPOOOOOOPOPOPOPMNMNMNMNMNMNMNMNMNMNMNMNKLKLKLKLKLKLKLKLIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDCDCDCDCBABABABABABABABAB?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=>;<;<;<;<;<;<;<;<9:9:9:9:9:9:9:9:78787878787878786565555556565656434343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!"!"!"!"!    }~}~}~}~}~}~}~}~{|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwxuvuvuvuvuvuvuvuvststststststststqrqrqrqrqrqrqrqropopopopopopopopopopopopmnmnmnmnklklklklklklklkliiiijijijijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQOPOPOPOPOPOPOPOPMNMNMNMNMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKLIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDABABABABABABABABABABABAB?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=>;<;<;<;<;<;<;<;<9:9:9:9:9:9:9:9:78787878787878785656565656565656434343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!"!"!"!     }~}~}~}~}~}~}~}~{|{|{|{|{|{|{|{|yzyzyzyzyzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwxuvuvuvuvuvuvuvuvststststststststqrqrqrqrqrqrqrqropopopopopopopopopopopopmnmnmnmnklklklklklklklkljijijijijijiiiiihghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQOPOPOPOPOOOOOOPOMNMNMNMNMNMNMNMNKLKLKLKLKLKLKLKLKLKLKLKLIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDABABABABABABABABABABABAB?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=>;<;<;<;<;<;<;<;<9:9:9:9:9:9:9:9:78787878787878785656565655555565434343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!        }~}~}~}~}~}~}~}~{|{|{|{|{|{|{|{|yzyzyzyzyzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwxuvuvuvuvuvuvuvuvststststststststqrqrqrqrqrqrqrqropopopopopopopoponmnmnmnmnmnmnmnklklklklklklklkljijijijiijijijijhghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSRQRQRQRQRQOPOPOPOPPOPOPOPOMNMNMNMNMNMNMNMNKLKLKLKLKLKLKLKLKLKLKLKLIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDABABABABABABABABABABABA@?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=>;<;<;<;<;<;<;<;<9:9:9:9:9:9:9:9:78787878787878785656565665656543434343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!        }~}~}~}~}~}~}~}~{|{|{|{|{|{|{|{|yzyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwxwxwxwxuvuvuvuvuvuvuvuvststststststststqrqrqrqrqrqrqrqropopopopopopopopmnmnmnmnmnmnmnmnklklklklklklklkljijijijiijijijijhghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSRQRQRQRQRQRQRQRQOPOPOPOPPOPOPOPOMNMNMNMNMNMNMNMNKLKLKLKLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDABABABABABABABAB?@?@?@?@?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=>;<;<;<;<;<;<;<;<9:9:9:9:9:9:9:9:78787878787656565656565643434343434343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!        }~}~}~}~}~}~}~}~{|{|{|{|{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwxwxwxwxwxuvuvuvuvuvuvuvuvststststststststqrqrqrqrqrqrqrqropopopopopopopopmnmnmnmnmnmnmnmnklklklklklklklkljijijijiijijijijhghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUVUVUVUVUTSTSTSTSRQRQRQRQRQRQRQRQOPOPOPOPPOPOPOPOMNMNMNMNMNMNMNMNKLKLKLKLKLKLKLKLIJIJIJIJIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDABABABABABABABAB?@?@?@?@?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=>;<;<;<;<;<;<;<;<9:9:9:9:9:9:9:9:78787878565555565656565643434343434343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)*)*)*)('('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!        }~}~}~}~}~}~}~}~{|{|{|{|{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwxwxwxwxwxuvuvuvuvuvuvuvuvststststststststqrqrqrqrqrqrqrqropopopopopopopopmnmnmnmnmnmnmnmnklklklklklklklkljijijiiiijijijijhghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUVUVUVUVUTSTSTSTSRQRQRQRQRQRQRQRQOPOOOOOOPOPOPOPOMNMNMNMNMNMNMNMNKLKLKLKLKLKLKLKLIJIJIJIJIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDABABABABABABABAB?@?@?@?@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=>;<;<;<;<;<;<;<;<9:9:9:9:9:9:9:9:78787878565656565655555543434343434343434343432121212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!        }~}~}~}~}~}~}~}~{|{|{|{|{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvuvuvuvuvststststststststqrqrqrqrqrqrqrqropopopopopopopopmnmnmnmnmnmnmnmnklklklklklklklkliiijijijijijijijhghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUVUVUVUVUTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPOMNMNMNMNMNMNMNMNKLKLKLKLKLKLKLKLIJIJIJIJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDABABABABABABABAB?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=>=>=>=>=>;<;<;<;<;<;<;<;<9:9:9:9:9:9:9:9:78787878565656566565656543434343434343432121212121212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!        }~}~}~}~}~}~}~}~{|{|{|{|{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwxuvuvuvuvuvuvuvuvuvuvuvuvststststststststqrqrqrqrqrqrqrqropopopopopopopopmnmnmnmnmnmnmnmnklklklklklklklklijijijijijiiiiiihghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOOOOOOPOPMNMNMNMNMNMNMNMNKLKLKLKLKLKLKLKLIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDABABABABABABABAB?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=>=>=>=>=>;<;<;<;<;<;<;<;<9:9:9:9:9:9:987878787878565656566565656543434343434343432121212121212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('('('('&%&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!        }~}~}~}~}~}~}~}~{|{|{|{|{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwxuvuvuvuvuvuvuvuvuvuvuvuvststststststststqrqrqrqrqrqrqrqropopopopopopopopmnmnmnmnmnmnmnmnklklklklklklklklijijijijjijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOOPOPOPOPMNMNMNMNMNMNMNMNKLKLKLKLKLKLKLKLIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDABABABABABABABAB?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;<9:9:9:9:78787878787878785656565665656565434343434343434321212121212121212121210/0/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!        }~}~}~}~}~}~}~}~{|{|{|{|{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwxuvuvuvuvuvuvuvuvutstststststststststststqrqrqrqrqrqrqrqropopopopopopopopmnmnmnmnmnmnmnmnklklklklklklkjijijijijijhghghghghghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOOPOPOPOPMNMNMNMNMNMNMNMNKLKLKLKLKLKLKLKLIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDABABABABABABABAB?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=>;<;<;<;<;<;<;<;<;<;<;<;<9:9:9:9:78787878787878785656555565656565434343434343434321212121212121210/0/0/0/0/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!        ~}~}~}~}~}~}~}~}~}~}~}~{|{|{|{|{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwxuvuvuvuvuvuvuvuvststststststststststststqrqrqrqrqrqrqrqropopopopopopopopmnmnmnmnmnmnmnmnklklklklijijiiiiijijijijhghghghghghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOOPOPOPOPMNMNMNMNMNMNMNMNKLKLKLKLKLKLKLKLIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDABABABABABABABAB?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=>;<;<;<;<;<;<;<;<;<;<;<;<9:9:9:9:78787878787878785565656565656565434343434343434321212121212121210/0/0/0/0/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!        }~}~}~}~}~}~}~}~}~}~}~}~{|{|{|{|{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwxuvuvuvuvuvuvuvuvststststststststststststqrqrqrqrqrqrqrqropopopopopopopopmnmnmnmnmnmnmnmnklklklklijijijijijijiiiihghghghghghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOOOOOOPOPOPOPOPMNMNMNMNMNMNMNMNKLKLKLKLKLKLKLKLIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDABABABABABABABAB?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=>;<;<;<;<;<;<;<;<;<;<;<;:9:9:9:9:78787878787878786565656565555556434343434343434321212121212121210/0/0/0/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!        }~}~}~}~}~}~}~}~}~}~}~}~{|{|{|{|{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwxuvuvuvuvuvuvuvuvststststststststsrqrqrqrqrqrqrqrqrqrqrqropopopopopopopopmnmnmnmnmnmnmnmnklklklklijijijijiijijijihghghghghghghghgfefefefefefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQOPOPOPOPOPOOOOOPMNMNMNMNMNMNMNMNKLKLKLKLKLKLKLKLIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCDABABABABABABABAB?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=>;<;<;<;<;<;<;<;<9:9:9:9:9:9:9:9:78787878787878786565656556565656434343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!      }~}~}~}~}~}~}~}~}|{|{|{|{|{|{|{|{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwxuvuvuvuvuvuvuvuvststststststststqrqrqrqrqrqrqrqrqrqrqrqropopopopopopopopmnmnmnmnmnmnmnmlklklklklijijijijjijijijihghghghghghghghgfefefefefefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMNKLKLKLKLKLKLKLKLIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDCDCDCDCDABABABABABABABAB?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=>;<;<;<;<;<;<;<;<9:9:9:9:9:9:9:9:78787878787878786565656556565656434343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!"!    }~}~}~}~}~}~}~}~{|{|{|{|{|{|{|{|{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwxuvuvuvuvuvuvuvuvststststststststqrqrqrqrqrqrqrqrqrqrqrqropopopopopopopopmnmnmnmnklklklklklklklklijijijijjijijijihghghghghghghghgfefefefefefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQPOPOOPOPOPOPMNMNMNMNMNMNMNMNMNMNMNMNKLKLKLKLKLKLKLKLIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDCDCDCDCDABABABABABABABAB?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=>;<;<;<;<;<;<;<;<9:9:9:9:9:9:9:9:78787878787878786565656556565656434343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!"!"!"!"!             - - - - - - - - - -          - - - - - - - -         - - - - - - - -         - - - - - - - -         - - - - - - - -         - - - - - - - -         - - - - - - - -          - - - - - - - -             - - - - - - - -             - - - - - - - -           - - - - - - - -         - - - - - - - -         - - - - - - - -         - - - - - - - - - -         - - - - - - - - - - - -         - - - - - - - - - - - -LLKKJJII - - EEFFGGHHEEDDCCBBeeffgghheeddccbb ,--..//0lmmnnoopmllkkjji-,,++**)TUUVVWWXEDDCCBBA<==>>??@|}}~~]\\[[ZZY$%%&&''(deeffgghuttssrrq54433221 LMMNNOOPMLLKKJJI - - BCCDDEEF43322110``aabbccttssrrqq44332211 MMNNOOPPLLKKJJII - - 55667788uuvvwwxxddccbbaa$$##""!! ]]^^__``||{{zzyy<<;;::99EEFFGGHHTTSSRRQQ--..//00mmnnooppbbaa``__@@AABBCCCBBAA@@? EFFGGHHITSSRRQQP-..//001mnnooppqlkkjjiih,++**))(UVVWWXXYDCCBBAA@=>>??@@A}~~\[[ZZYYX%&&''(()effgghhitssrrqqp43322110`aabbccdeddccbba44556789{||}}~~[[ZZYYXX&&''(())ffgghhiissrrqqpp33221100NNOOPPQQKKJJIIHH - - 66778899vvwwxxyyccbbaa``##""!!  !!^^__``aa{{zzyyxx;;::9988 FFGGHHIIDDCCBBAAHHGGFFEE - - IIJJKKLLAA@@??>>!!""iiooppqqaa``__^^01122334pqqrrsstihhggffe)((''&&%XYYZZ[[\~~}A@@??>>=@AABBCCDYXXWWVVU())**++,hiijjkklqppoonnm100//..-PQQRRSSTIHHGGFFE FGGHHIIJ~~}}||{0//..--, !!""ddeeffggppoonnmm00//..--QQRRSSTTHHGGFFEE99::;;<>==<<; - - IJJKKLLMPOONNMML 12233445qrrssttuhggffeed(''&&%%$YZZ[[\\]~~}}|@??>>==<ABBCCDDEXWWVVUUT)**++,,-ijjkkllmpoonnmml0//..--,deeffggha``__^^]:;;<<==>WWVVUUTT**++,,--jjkkllmmoonnmmll//..--,,RRSSTTUUGGFFEEDD::;;<<==zz{{||}}__^^]]\\""##$$%%bbccddeewwvvuutt77665544 - - JJKKLLMM@@??>>==DDCCBBAA MMNNOOPP==<<;;55##$$%%&&rrssttuu]]\\[[ZZ45566778tuuvvwwxeddccbba%$$##""! \]]^^__`}||{{zzy=<<;;::9DEEFFGGHUTTSSRRQ,--..//0lmmnnoopmllkkjji-,,++**)TUUVVWWXEDDCCBBAJKKLLMMN{zzyyxxw,++**))(##$$%%&&hhiijklmllkkjjii,,++**))UUVVWWXXDDCCBBAA==>>??@@}}~~\\[[ZZYY%%&&''((eeffgghhttssrrqq44332211 MMNNOOPPLLKKJJII - - 55667788uuvvwwxxZZYYXXWW - - HHIIJJKK~~}}|;:987655 MNNOOPPQLKKJJIIH - - 56677889uvvwwxxydccbbaa`$##""!!  !]^^__``a|{{zzyyx<;;::998 EFFGGHHITSSRRQQP-..//001mnnooppqlkkjjiih,++**))(!!"hiiooppq]\\[[ZZY ->??@@AABSSRRQQPP..//0011nnooppqqkkjjiihh++**))((VVWWXXYYCCBBAA@@>>??@@AA~~[[ZZYYXX&&''(())ffgghhiissrrqqpp33221100NNOOPPQQ<<;;5544~~}}@@??>>==QQRRSSTT44332211''(())**vvwwxxyyYYXXWWVV899::;;>=NOOUUVVWwvvuutts(''&&%%$''(())**nooppqqrhhggffee((''&&%%YYZZ[[\\~~}}@@??>>==AABBCCDDXXWWVVUU))**++,,iijjkkllppoonnmm00//..--QQRRSSTTHHGGFFEE99::;;<>==<<BBCCDDEEWWVVUUTT**++,,--jjkkllmmoonnmmll//..--,,RRSSTTUU33221100||{{zzyy<<;;::99UUVVWWXX~~}}||00//..--++,,--..zz{{||}}UUTSRQPO -<==>>??@|}}~~]\\[[ZZY$%%&&''(deeffgghuttssrrq54433221 LMMNNOOPMLLKKJJI - - 45566778tuuvvwwxeddccbba%$$##""! \]]^^__`}||{{zzy=<<;;::9 - - WXXYYZZ[srrqqppo$##""!!++,,--..rssttuuvddccbbaa$$##""!! ]]^^__``||{{zzyy<<;;::99EEFFGGHHTTSSRRQQ--..//00mmnnooppllkkjjii,,++**))UUVVWWXXDDCCBBAA==>>??@@}}~~MMLLKKJJ UUVVWWXXxwwvvuut00//..--UVVWWXXYDCCBBAA@=>>??@@A}~~\[[ZZYYX%&&''(()effgghhitssrrqqp43322110 MNNOOPPQLKKJJIIH - - 56677889uvvwwxxydccbbaa`$##""!! &''(())*uvvwwxxyUOONNMMLFGGHHIIJKKJJIIHH - - 66778899vvwwxxyyccbbaa``##""!!  !!^^__``aa{{zzyyxx;;::9988 FFGGHHIISSRRQQPP..//0011nnooppqqkkjjiihh++**))((VVWWXXYY~~}}||{{//..--,,xxwwvvuu88776655YYZZ[[\\{{zzyyxx,,++**))//001122~~ONNMMLLK - @AABBCCDYXXWWVVU())**++,hiijjkklqppoonnm100//..-PQQRRSSTIHHGGFFE 899::;;>==AABBCCDDIIHHGGFF - - YYZZ[[\\tssrrqqp,,++**))YZZ[[\\]~~}}|@??>>==<ABBCCDDEXWWVVUUT)**++,,-ijjkkllmpoonnmml0//..--,QRRSSTTUHGGFFEED9::;;<<=yzz{{||}`__^^]]\ *++,,--.yzz{{||}LKKJJIIH JKKLLMMNGGFFEEDD::;;<<==zz{{||}}__^^]]\\""##$$%%bbccddeewwvvuutt77665544 - - JJKKLLMMOONNMMLL 22334455rrssttuuggffeedd''&&%%$$ZZ[[\\]]zzyyxxww++**))((ttssrrqq44332211 ]]^^__``wwvvuutt((''&&%%334455;;KJJIIHHGDEEFFGGHUTTSSRRQ,--..//0lmmnnoopmllkkjji-,,++**)TUUVVWWXEDDCCBBA<==>>??@|}}~~]\\[[ZZY$%%&&''(deeffgghuttssrrq54433221_``aabbcfeeddccb33445567z{{||}}~\\[[ZZYY%%&&''((eeffgghhttssrrqq44332211 MMNNOOPPLLKKJJII - - 55667788uuvvwwxxddccbbaa$$##""!! ]]^^__``||{{zzyy<<;;::99EEFFGGHHEEDDCCBB]]^^__``poonmlkj((''&&%% !]^^__``a|{{zzyyx<;;::998 EFFGGHHITSSRRQQP-..//001mnnooppqlkkjjiih,++**))(UVVWWXXYDCCBBAA@=>>??@@A}~~\[[ZZYYX.//00112}~~HGGFFEED - - NOOPQRSTCCBBAA@@>>??@@AA~~[[ZZYYXX&&''(())ffgghhiissrrqqpp33221100NNOOPPQQKKJJIIHH - - 66778899vvwwxxyyccbbaa``##""!!  !!^^__``aavvuuttss''&&%%$$ppoonnmm00//..--!!""##$$aabbccddssrrqqpp$$##""!!<<==>>??GFFEEDDC - - HIIJJKKLQPPOONNM 01122334pqqrrsstihhggffe)((''&&%XYYZZ[[\~~}A@@??>>=@AABBCCDYXXWWVVU())**++,hiijjkklqppoonnm100//..-cddeeffgbaa``__^89:;;<<=~XXWWVVUU))**++,,iijjkkllppoonnmm00//..--QQRRSSTTHHGGFFEE99::;;<>aabbccddiihhggff$$##""!!!""##$$%abbccddexwwvvuut87766554 - - IJJKKLLMPOONNMML 12233445qrrssttuhggffeed(''&&%%$YZZ[[\\]~~}}|@??>>==<ABBCCDDEXWWVVUUT2334455;DCCBBAA@ UUVVWWXX~~}}||??>>==<<BBCCDDEEWWVVUUTT**++,,--jjkkllmmoonnmmll//..--,,RRSSTTUUGGFFEEDD::;;<<==zz{{||}}__^^]]\\""##$$%%bbccddeerrqqppoo##""!!llkkjjii,,++**))%%&&''((eeffgghhooiihhgg@@AABBCCCBBAA@@? LMMNNOOPMLLKKJJI - - 45566778tuuvvwwxeddccbba%$$##""! \]]^^__`}||{{zzy=<<;;::9DEEFFGGHUTTSSRRQ,--..//0lmmnnoopmllkkjji-,,++**)!ghhiioop^]]\\[[Z =>>??@@ATTSSRRQQ--..//00mmnnooppllkkjjii,,++**))UUVVWWXXDDCCBBAA==>>??@@}}~~\\[[ZZYY%%&&''((eeffgghhttssrrqq44332211 MMNNOOPP==<<;;55eeffgghheeddccbb %&&''(()effgghhitssrrqqp43322110 MNNOOPPQLKKJJIIH - - 56677889uvvwwxxydccbbaa`$##""!!  !]^^__``a|{{zzyyx<;;::998 EFFGGHHITSSRRQQP;<<==>>?@??>>==<YYZZ[[\\{{zzyyxx;;::9988 FFGGHHIISSRRQQPP..//0011nnooppqqkkjjiihh++**))((VVWWXXYYCCBBAA@@>>??@@AA~~[[ZZYYXX&&''(())ffgghhiiiihhggffhhggffee((''&&%%))**++,,iijjkkllffeeddccDDEEFFGG?>>==<<;PQQRRSSTIHHGGFFE 899::;;>==AABBCCDDXXWWVVUU))**++,,iijjkkllppoonnmm00//..--QQRRSSTT44332211!!""iiooppqqaa``__^^)**++,,-ijjkkllmpoonnmml0//..--,QRRSSTTUHGGFFEED9::;;<<=yzz{{||}`__^^]]\ !""##$$%abbccddexwwvvuut87766554 - - IJJKKLLMPOONNMML ?@@AABBC<;;55443]]^^__``wwvvuutt77665544 - - JJKKLLMMOONNMMLL 22334455rrssttuuggffeedd''&&%%$$ZZ[[\\]]~~}}||??>>==<<BBCCDDEEWWVVUUTT**++,,--jjkkllmmeeddccbbddccbbaa$$##""!!--..//00mmnnooppbbaa``__HHIIJJKK~~}}|;:987655TUUVVWWXEDDCCBBA<==>>??@|}}~~]\\[[ZZY$%%&&''(deeffgghuttssrrq54433221 LMMNNOOPMLLKKJJI - - 45566778tuuvvwwxeddccbba%$$##""!%&&''(()tuuvvwwxVUUOONNMEFFGGHHILLKKJJII - - 55667788uuvvwwxxddccbbaa$$##""!! ]]^^__``||{{zzyy<<;;::99EEFFGGHHTTSSRRQQ--..//00mmnnooppllkkjjii,,++**))UUVVWWXX~~}}||00//..--##$$%%&&rrssttuu]]\\[[ZZ-..//001mnnooppqlkkjjiih,++**))(UVVWWXXYDCCBBAA@=>>??@@A}~~\[[ZZYYX%&&''(()effgghhitssrrqqp43322110 MNNOOPPQLKKJJIIH - - CDDEEFFG~3221100/aabbccddssrrqqpp33221100NNOOPPQQKKJJIIHH - - 66778899vvwwxxyyccbbaa``##""!!  !!^^__``aa{{zzyyxx;;::9988 FFGGHHIISSRRQQPP..//0011nnooppqqaa``__^^``__^^]] 11223344qqrrsstt^^]]\\[[ LLMMNNOO|{{zzyyx44332211XYYZZ[[\~~}A@@??>>=@AABBCCDYXXWWVVU())**++,hiijjkklqppoonnm100//..-PQQRRSSTIHHGGFFE 899::;;>==<ABBCCDDEXWWVVUUT)**++,,-ijjkkllmpoonnmml0//..--,QRRSSTTUHGGFFEEDGHHIIJJK~}}||{{z/..--,,+ !!""##eeffgghhoonnmmll//..--,,RRSSTTUUGGFFEEDD::;;<<==zz{{||}}__^^]]\\""##$$%%bbccddeewwvvuutt77665544 - - JJKKLLMMOONNMMLL 22334455rrssttuu]]\\[[ZZ \\[[ZZYY55667788uuvvwwxxZZYYXXWW - - UUVVWWXXxwwvvuut00//..-- \]]^^__`}||{{zzy=<<;;::9DEEFFGGHUTTSSRRQ,--..//0lmmnnoopmllkkjji-,,++**)TUUVVWWXEDDCCBBA<==>>??@|}}~~]\\[[ZZY-..//001|}}~~IHHGGFFE - - MNNOOPQRDDCCBBAA==>>??@@}}~~\\[[ZZYY%%&&''((eeffgghhttssrrqq44332211 MMNNOOPPLLKKJJII - - 55667788uuvvwwxxddccbbaa$$##""!! ]]^^__``wwvvuutt((''&&%%++,,--..zz{{||}}UUTSRQPO -56677889uvvwwxxydccbbaa`$##""!!  !]^^__``a|{{zzyyx<;;::998 EFFGGHHITSSRRQQP-..//001mnnooppqlkkjjiih,++**))(UVVWWXXYDCCBBAA@KLLMMNNOzyyxxwwv+**))(('$$%%&&''iijklmnokkjjiihh++**))((VVWWXXYYCCBBAA@@>>??@@AA~~[[ZZYYXX&&''(())ffgghhiissrrqqpp33221100NNOOPPQQKKJJIIHH - - 66778899vvwwxxyyYYXXWWVV - - XXWWVVUU99::;;<>=@AABBCCDYXXWWVVU12233445EDDCCBBA STUUVVWW~~}}@@??>>==AABBCCDDXXWWVVUU))**++,,iijjkkllppoonnmm00//..--QQRRSSTTHHGGFFEE99::;;<>==< OUUVVWWXvuuttssr'&&%%$$#(())**++oppqqrrsggffeedd''&&%%$$ZZ[[\\]]~~}}||??>>==<<BBCCDDEEWWVVUUTT**++,,--jjkkllmmoonnmmll//..--,,RRSSTTUUGGFFEEDD::;;<<==zz{{||}}UUOONNMMTTSSRRQQ==>>??@@}}~~MMLLKKJJ]]^^__``poonmlkj((''&&%%$%%&&''(deeffgghuttssrrq54433221 LMMNNOOPMLLKKJJI - - 45566778tuuvvwwxeddccbba%$$##""! \]]^^__`}||{{zzy=<<;;::9DEEFFGGHUTTSSRRQ5;;<<==>A@@??>>=XXYYZZ[[||{{zzyy<<;;::99EEFFGGHHTTSSRRQQ--..//00mmnnooppllkkjjii,,++**))UUVVWWXXDDCCBBAA==>>??@@}}~~\\[[ZZYY%%&&''((eeffgghhooiihhgg334455;;KJJIIHHG=>>??@@A}~~\[[ZZYYX%&&''(()effgghhitssrrqqp43322110 MNNOOPPQLKKJJIIH - - 56677889uvvwwxxydccbbaa`$##""!!  !]^^__``a|{{zzyyx<;;::998 - - XYYZZ[[\rqqppooi#""!!,,--..//sttuuvvwccbbaa``##""!!  !!^^__``aa{{zzyyxx;;::9988 FFGGHHIISSRRQQPP..//0011nnooppqqkkjjiihh++**))((VVWWXXYYCCBBAA@@>>??@@AA~~LLKKJJII - -PPOONNMM AABBCCDDIIHHGGFFaabbccddiihhggff$$##""!!())**++,hiijjkklqppoonnm100//..-PQQRRSSTIHHGGFFE 899::;;??@@AAB=<<;;554\\]]^^__xxwwvvuu88776655 - - IIJJKKLLPPOONNMM 11223344qqrrsstthhggffee((''&&%%YYZZ[[\\~~}}@@??>>==AABBCCDDXXWWVVUU))**++,,iijjkkllffeeddcc<<==>>??GFFEEDDCABBCCDDEXWWVVUUT)**++,,-ijjkkllmpoonnmml0//..--,QRRSSTTUHGGFFEED9::;;<<=yzz{{||}`__^^]]\ !""##$$%abbccddexwwvvuut87766554 \]]^^__`ihhggffe00112233wxxyyzz{__^^]]\\""##$$%%bbccddeewwvvuutt77665544 - - JJKKLLMMOONNMMLL 22334455rrssttuuggffeedd''&&%%$$ZZ[[\\]]~~}}||??>>==<<BBCCDDEEHHGGFFEE !!""##ooppqqrr``__^^]]*++,,--.jkkllmmnonnmmllk/..--,,+RSSTTUUVGFFEEDDC:;;<<==>z{{||}}~_^^]]\\["##$$%%&bccddeefwvvuutts76655443 - JKKLLMMN=<<;;554#$$%%&&'rssttuuvQPPOONNM @AABBCCD$$%%&&''ssttuuvv\\[[ZZYY.//00112nooppqqrkjjiihhg+**))(('VWWXXYYZCBBAA@@?>??@@AAB~[ZZYYXXW&''(())*fgghhiijsrrqqppo3221100/NOOPPQQR43322110'(())**+vwwxxyyzMLLKKJJI - - DEEFFGGH(())**++wwxxyyzzXXWWVVUU 23344556rssttuuvgffeeddc'&&%%$$#Z[[\\]]^~~}}||{?>>==<<;BCCDDEEFWVVUUTTS*++,,--.jkkllmmnonnmmllk/..--,,+RSSTTUUV~~}}||{0//..--,+,,--../z{{||}}~IHHGGFFE - - HIIJJKKL,,--..//{{||}}~~TSRQPOON - - 6778899:vwwxxyyzcbbaa``_#""!!  !!"^__``aab{zzyyxxw;::99887 -FGGHHIIJSRRQQPPO.//00112nooppqqrkjjiihhg+**))(('VWWXXYYZ{zzyyxxw,++**))(/0011223~EDDCCBBA LMMNNOOP00112233NMMLLKKJ :;;<<==>z{{||}}~_^^]]\\["##$$%%&bccddeefwvvuutts76655443 - JKKLLMMNONNMMLLK 23344556rssttuuvgffeeddc'&&%%$$#Z[[\\]]^wvvuutts(''&&%%$34455;;<~~}A@@??>>=PQQRRSST4455;;<??@@AAB~[ZZYYXXW&''(())*fgghhiijsrrqqppo3221100/NOOPPQQRKJJIIHHG - - 6778899:vwwxxyyzcbbaa``_#""!!  !!"^__``aabsrrqqppo$##""!!<==>>??@}||{{zzy=<<;;::9TUUVVWWX==>>??@@FEEDDCCBBCCDDEEFWVVUUTTS*++,,--.jkkllmmnonnmmllk/..--,,+RSSTTUUVGFFEEDDC:;;<<==>z{{||}}~_^^]]\\["##$$%%&bccddeefoiihhggf@AABBCCDyxxwwvvu98877665XYYZZ[[\AABBCCDDBAA@@??> -FGGHHIIJSRRQQPPO.//00112nooppqqrkjjiihhg+**))(('VWWXXYYZCBBAA@@?>??@@AAB~[ZZYYXXW&''(())*fgghhiijfeeddccbDEEFFGGHuttssrrq54433221 \]]^^__`EEFFGGHH>==<<;;: - JKKLLMMNONNMMLLK 23344556rssttuuvgffeeddc'&&%%$$#Z[[\\]]^~~}}||{?>>==<<;BCCDDEEFWVVUUTTS*++,,--.jkkllmmnbaa``__^HIIJJKKLqppoonnm100//..- !!""##$`aabbccdIIJJKKLL~~}}||{98765544NOOPPQQRKJJIIHHG - - 6778899:vwwxxyyzcbbaa``_#""!!  !!"^__``aab{zzyyxxw;::99887 -FGGHHIIJSRRQQPPO.//00112nooppqqr^]]\\[[Z LMMNNOOUmllkkjji-,,++**)$%%&&''(deeffgghMMNNOOUU{zzyyxxw33221100RSSTTUUVGFFEEDDC:;;<<==>z{{||}}~_^^]]\\["##$$%%&bccddeefwvvuutts76655443 - JKKLLMMNONNMMLLK 23344556rssttuuvZYYXXWWV - - -UVVWWXXYihhggffe)((''&&%())**++,hiijjkklVVWWXXYYwvvuutts//..--,,VWWXXYYZCBBAA@@?>??@@AAB~[ZZYYXXW&''(())*fgghhiijsrrqqppo3221100/NOOPPQQRKJJIIHHG - - 6778899:vwwxxyyzVUUOONNM - YZZ[[\\]eddccbba%$$##""!,--..//0lmmnnoopZZ[[\\]]srrqqppo++**))((Z[[\\]]^~~}}||{?>>==<<;BCCDDEEFWVVUUTTS*++,,--.jkkllmmnonnmmllk/..--,,+RSSTTUUVGFFEEDDC:;;<<==>z{{||}}~MLLKKJJI]^^__``aa``__^^]! 01122334pqqrrsst^^__``aaonmlkjii''&&%%$$ !!"^__``aab{zzyyxxw;::99887 -FGGHHIIJSRRQQPPO.//00112nooppqqrkjjiihhg+**))(('VWWXXYYZCBBAA@@?>??@@AAB~IHHGGFFEabbccdde]\\[[ZZY45566778tuuvvwwxbbccddeehhggffee##""!! "##$$%%&bccddeefwvvuutts76655443 - JKKLLMMNONNMMLLK 23344556rssttuuvgffeeddc'&&%%$$#Z[[\\]]^~~}}||{?>>==<<;BCCDDEEFEDDCCBBAeffgghhiYXXWWVVU899::;;>=!!""#iooppqqrUTTSSRRQ<==>>??@|}}~~ZHAbے`JXQr˂p|ZdQbtlJ`f~˂rXQbHAZtAJl璂rAJlf`vXnvpQr˂pZHAb|ZdQbtlnXv`f~HfpvrXQJ`ےbHAdrtAJltnvpfH~ˑZHAbے`JXbtlJtArdf~HfpvnXv`bHAZpQZ|dJltnvpfnvpZHAbے`JXQtlJtArdf~HfpvnXv`bHAZp˂rJltbdQZ|H~f`vXnے`JXQr˂pJtAd|ZdQbtlJnXv`f~Hp˂rXQJ`ےtbdQdrtAJfH~bJQAbے`JtAd|ZdQbtlJtnXv`f~H˂rXQJ`ےbdQZ|drtAvXnvpfHr˂pZHAbہJXQrlJtArd|f~HfpvQJ`ےbHAZpdrtAJlt~f`nvpے`JXpZHAJtArJtArd~HfpvnJ`ےbHAZpdrtAJltbvpfH~f`HAbے`JXQr˂pZrd|ZdQbtpvnXv`fbHAZp˂rXQltbdQZ|Hf`vXnvpfHZHAbے`JXQr˂p|ZdQbtlJtArdHfpvJ`p˂p`ےtbdQZtbdQnvpfH~ˑZHAbے`JXbtlJtArdf~HfpvnrXQJ`bHAZp˂AJltbdQZ|fH~f`vXے`JXQr˂pJtArd|ZdQfpvnXv`fHrXQrtAJlbdQZ|~f`vfH~ے`JXQr˂ptArd|ZdQbfpvnXv`fHfp˂rXQJ`ےbdQZ|drtA`vXnvpfr˂pZHAb|ZdQbtlJtArdf~HfpvXQJ`ےbHAZZ|dltbf`vXr˂pJXQrZdQbtlJtArdf~HfpvQJ`ےbHAZpdrtAJltvpfH~f`ZHAbے`JXQbtlArd|ZdQbtfpvnXv`˙bHAZp˂rXJltbdQZ|vXnfH~Qr˂pbے`ZdQbt|ZdpvnXv`fbHAZp˂rXQltbdQZ|~f`vXn`JXQr˂pZHAے`ZdQbtlJtAXv`f~Hf˂rXQJ`ےdQZ|drtAJvXnvpfH~fZے`JXQr˂pZHAbtlJtArdf~HnXHrXQJbHAZp|drZ|dfH~f`vXے`JXQr˂pJtArd|ZdQfpvnXv`ےHAZp˂rXQJ`ۉbdQZ|drtf`vXnvpQr˂pZHAb|ZdQbtlnXv`f~HfpvJ`ےtbddrtAXnvf`vnr˂pZHAb|ZdQbtlJnXv`f~HpvnXQJ`ےbHAZdrtAJltvpfH~fZHAbے`JXQtlJtArdf~HfpvnXv`bHAZp˂rrtAJldQZ|lnvpZHAbۉZAblJtArd|f~HfpvnXv`˙bHAZp˂rXJltbdQZ|~f`vXn`JXQr˂pJtAd|ZdQbtlJtnXv`f~H˂rXQJ`ےbdQZ|drtAvp`f`pfHZHAbJXQr˒lJtAQbJtAXv`f~Hf˂rXQJ`ےdQZ|drtAJvXnvpfH˂pZHAbےJXQrblJtArd|~HfpvnJ`ےbHAZpdrtAJltbvpfH~f`HAbrےZHAbے`JXQtArd|ZdQbXv`ffpv`ےb˂rXQtAJlrtAJlf`vXnvpQr˂pZHAb|ZdQbtlnXv`f~HZp˂rXQJ`ےbHAdrtAJltnvpfH~ˑZHAbے`JXbtlJtArdf~HfpvnrXQJ`bHAXQJ`QZ|dJltpfH~vpfHZHAbے`JXQtlJtArdf~HfpvrXQJ`bHAZp˂rJltbdQZ|H~f`vXnے`JXQr˂ptArd|ZdQbfpvnXv`fHfp˂rXQJ`ےtdrtbnfH~`JXQے`JXQArd|ZdQbtfpvnXv`fHfp˂rXQJ`ےbdQZ|drtAvXnvpfHr˂pZHAbہZdQbtlJtArdf~HfpvQJ`ےbHAZpdrtAJltvXnۅ~f`ے`JXp`JXrd|rdf~HfpvnJ`ےbHAZpdrtAJltbvpfH~f`HAbے`JXQrtlJrd|ZdQbtpvnXv`fbHAZp˂rXQltbdQZ|~f`vXn˂pZHA`JXQrے`JXQr˂p|ZdQbtlJ~HfnXv`HAZp˂J`ےtbQZdtbdQnvpfH~ˑZHAbے`JXbtlJtArdf~HfpvrXQJ`ےbHAZdrtAJltbdQZ|fH~f`vXے`JXQr˂pJtArd|ZdQfpvnXv`p˂ےbHrtAJlbdQZ|lf`v~f`ے`JXQr˂ptArd|ZdQbfpvnXv`ےHAZp˂rXQJ`ےbdQZ|drtA`vXnvpfr˂pZHAb|ZdQbtlJnXv`f~HpvnXQJ`ےbHAZtAJl璀vp`vpfr˂pr˂pZdQbtlJtnXv`f~HvnQJ`ےbHAZpdrtAJltvpfH~f`ZHAbے`JXQlJtArd|f~HfpvnXv`˙bHAZp˂rXJltbdQZ|vpfHvXnQHAbQrbtZdQbt琕~HfpvnXv`fbHAZp˂rXQltbdQZ|~f`vXn`JXQr˂pZtAd|ZdQbtlJtAXv`f~Hf˂rXQJ`ےdQZ|drtAJvXnvpfHbے`˂pZr˂pZHAbtlJtArdpvnf~HrXQJbHAZprtAJlZ|dnfH~f`vXے`JXQr˂pJtArd|ZdQfpvnXv`bHAZp˂AJltbdQZ|dtAf`vXnvpQr˂pZHAb|ZdQbtlnXv`f~HrXQJ`AZp˂|dtbdXnvvXnr˂pZHAb|ZdQbtlJnXv`f~Hp˂rXQJ`ےbHAZdrtAJltvpfH~fZHAbے`JXQtlJtArdf~HfpvrXQJ`bHAZp˂rtbdQZvXnH~fZHAbZHAblJtArd|f~HfpvrXQJ`ۙbHAZp˂rXJltbdQZ|~f`vXn`JXQr˂pArd|ZdQbtfpvnXv`fHfp˂rXQJ`ےbdQZ|drtA~f`vpfH`JXQlJA|lJtApvnXv`fHfp˂rXQJ`ےdQZ|drtAJvXnvpfH˂pZHAbےZdQbtlJtArdf~HfpvnJ`ےbHAZpdrtAJltbvpfH~f`JXQrHAbےZHAbے`JXQtArd|ZdQbXv`ffpv`ے˂btbdvff`vXnvpQr˂pZHAb|ZdQbtlnXv`f~HZp˂rXQJ`ۉbdQZ|drtJltnvpfH~ˑZHAbے`JXbtlJtArdf~HfpvbHArXQJ`rtAJlQZ|dpfH~vpfHZHAbے`JXQtlJtArdf~HfpvXQJ`ےbHAZdrtAJltbdQZ|H~f`vXnے`JXQr˂ptArd|ZdQbfpvnXv`ےHAZp˂rXQJ`ے|drvpfH`vXn`JQrے`JXQArd|ZdQbtfpvnXv`˒HAZp˂rXQJ`ےbdQZ|drtAvXnvpfHr˂pZHAbہZdQbtlJtnXv`f~HvnQJ`ےbHAZpdrtAJltvXnۅ~f`r˂pZdQbtrdZQbXv`f~HfvnrJ`ےbHAZpdrtAJltbvpfH~f`HAbے`JXQrlJtArd|~HfpvnXv`fbHAZp˂rXQltbdQZ|~f`vXn˂pZHA`JXQrے`JXQr˂p|ZdQbtlJ~HfnXv`rXQJ`HAZdQZ|df`vXnvpfH~ˑZHAbے`JXbtlJtArdf~HfpvrXQJ`ےbHAdrtAJltbnvpfH~f`vXے`JXQr˂pJtArd|ZdQfpvnXv`Zp˂ےbHtbdQrtAJlfvXn~f`ے`JXQr˂ptArd|ZdQbfpvnXv`bHAZp˂rJltbdQZ|dtAJ`vXnvpfr˂pZHAb|ZdQbtlJnXv`f~Hp˂rXQJ`ےbHAZtAJl~f`vpfpZHAbr˂pZdQbtlJtnXv`f~H˂rXQJ`ےbHAZdrtAJltvpfH~f`ZHAbے`JXQlJtArd|f~HfpvrXQJ`ۙbHAZp˂rXJltbdQZ|vpfHXvXHZHAbۉlJttlJ~HfpvnXQJ`ےbHAZp˂rXQltbdQZ|~f`vXn`JXQr˂pZrd|ZdQbtpvnXv`fHfp˂rXQJ`ےdQZ|drtAJvXnvpfHbے`˂p`r˂pZHAbtlJtArdp`fpvnےbHArtAJrtAJlnvpfH~fZHAbے`JXQr˂pJtArd|ZdQfpvnXv`bHAZp˂AJltbdQZ|fHf`vXnvpQr˂pZHAb|ZdQbtlnXv`f~HrXQJ`pAZp`Z|dtbdvpfHvXnvfr˂pZHAb|ZdQbtlJnXv`f~Hp˂rXQJ`ےbdQZ|drtAltbvpfH~fZHAbے`JXQtlJtArdf~HfpvXQJ`ےbHAZdrtAtbdQtAvXnH~fے`JZAb`lJtArd|f~HfpvQJ`ےbHAZpdrtAJltbdQZ|~f`vXn`JXQr˂pArd|ZdQbtfpvnXv`˒HAZp˂rXQJ`ےbdQZ|drtAnvp~fZH`JXQArd|tArdpvnXv`fHAZp˂rXQJ`ےdQZ|drtAJvXnvpfH˂pZHAbےZdQbtlJtAXv`f~HfvnrJ`ےbHAZpdrtAJltbvpfH~f`pZHAbJXQrZHAbے`JXQtArd|ZdQb~HfpXv`fZp˂bdQZ|tbdfH~f`vXے`JXQr˂pZHAۂ|ZdQbtlnXv`f~HZp˂rXQJ`ۉbdQZ|drtf`vXnvpfH~ˑZHAbے`JXbtlJtArdf~Hfpv˂rXbHArtAJlQZ|l~f`H~fZHAbے`JXQtlJtArdf~HfpvXQJ`ےbHAZdrtAJltnvpH~f`vXnے`JXQr˂ptArd|ZdQbfpvnXv`bHAZp˂rdQZ|Jltvp`v`pfHXQr˂JXQrArd|ZdQbtfpvnXv`˙bHAZp˂rXJltbdQZ|dtAJlvXnvpfHr˂pZHAbہZdQbtlJtnXv`f~H˂rXQJ`ےbHAZdrtAJltfH~Abrے`ZdQbt|ZdQbXv`f~Hf˂rXQJ`ےbHAZdrtAJltbvpfH~f`HAbے`JXQrlJtArd|~HfpvnXQJ`ےbHAZp˂rXQltbdQZ|~f`vXnے`J˂pZHAے`JXQr˂p|ZdQbtlJvnX~HfrXQJ`drtAQZrtAf`vXnvpQr˂pZHAb`JXQbtlJtArdf~HfpvrXQJ`ےbHAdrtAJltnvpfH~fZHAbے`JXQr˂pJtArd|ZdQfpvnXv`QJ`ےZp˂tdrttbnvXnZHAbے`JXQr˂ptArd|ZdQbfpvnXv`bHAZp˂rJltbdQZ|fHf`vXnvpfr˂pZHAb|ZdQbtlJnXv`f~Hp˂rXQJ`ےdrtAJbdQZ|Xnv~f`pZHAbpZHAZdQbtlJtnXv`f~H˂rXQJ`ےbdQZ|drtAtbvpfH~f`ZHAbے`JXQlJtArd|f~HfpvQJ`ےbHAZpdrtAJltbdQZ|f`vXpZHAJXQrlJArtlJ~HfpvnJ`ےbHAZpdrtAJltbdQZ|~f`vXn`JXQr˂pZrd|ZdQbtpvnXv`fHAZp˂rXQJ`ےdQZ|drtAJvXnvpfHXQr˂bے`r˂pZHAbtlJtArdv`fpvnےbHAJltJltnvpfH~ˑZHAbے`JXrbtlJtArd|ZdQfpvnXv`bHAZp˂AJltbdQZ|fH~f`vXے`JXQr˂pZHAۂ|ZdQbtlnXv`f~HbHAZprXQJ`AJltvpfvpfHے`JXQr˂pZHAے|ZdQbtlJnXv`f~Hp˂rXQJ`ےbdQZ|drtA`vXnvpfH~fZHAbے`JXQtlJtArdf~HfpvXQJ`ےbHAZltbdrtApfH~vXnے`Jbے`lJtArd|f~HfpvQJ`ےbHAZpdrtAJltnvp~f`vXn`JXQr˂pArd|ZdQbtfpvnXv`˙bHAZp˂rXJltbdQZ|dtAJlnvpbے`˂pZH|ZdQtArdpvnXv`fbHAZp˂rXQltbdQZ|dtAJlvXnvpfH˂pZHAbےZdQbtlJtAXv`f~Hf˂rXQJ`ےbHAZdrtAJltbvpfH~f`pZHAbJXQrZHAbے`JXQtArd|ZdQb~HfpXv`pXQJ`ےbdQZ|bdQZ|fH~f`vXے`JXQr˂pJtAd|ZdQbtlnXv`f~HZp˂rXQJ`ۉbdQZ|drtf`vXnvpQr˂pZHAb`JXQbtlJtArdf~Hfpv˂rXbHAbdQZ|f`vX~fvr˂pZHAb`JXQrtlJtArdf~HfpvXQJ`ےbHAZdrtAJltvpfH~fZHAbے`JXQr˂ptArd|ZdQbfpvnXv`bHAZp˂rdQZ|Jltf`vvpfHXQrZHJXQrArd|ZdQbtfpvnXv`˙bHAZp˂rXJltbdQZ|fHf`vXnvpfHr˂pZHAbہZdQbtlJtnXv`f~H˂rXQJ`ےbdQZ|drtAtbfH~JXQrAbے`btl|ZQblXv`f~Hf˂rXQJ`ےdQZ|drtAJtbnvpfH~f`HAbے`JXQrlJtArd|~HfpvnJ`ےbHAZpdrtAJltbdQZ|~f`vXnے`J˂p`Jے`JXQr˂p|ZdQbtlJv~˂rXQbHAZdrtAdrtAf`vXnvpQr˂pZHAb|ZdQbtlJtArdf~HfpvrXQJ`ےbHAdrtAJltnvpfH~ˑZHAbے`JXrbtlJtArd|ZdQfpvnXv`QJ`ےZp˂drtnvpnvpZHAbے`JXQbtltArd|ZdQbfpvnXv`bHAZp˂rJltbdQZ|H~f`vXnے`JXQr˂pZHAے|ZdQbtlJnXv`f~Hp˂rXQJ`ےdrtAJbdQZ|Xnv~f`Abے`pZA`ZdQbtlJtnXv`f~H˂rXQJ`ےbdQZ|drtAvXnvpfH~fZHAbے`JXQlJtArd|f~HfpvQJ`ےbHAZpdrtAJltnvp`vppZHAJXQrJtArdJtArd~HfpvnJ`ےbHAZpdrtAJltbvpf~f`vXn`JXQr˂pZrd|ZdQbtpvnXv`fbHAZp˂rXQltbdQZ|dtAJlvXnvpfHXQHAbXQrbtlJtArr˂pZHAbtlJtArdHfpvJ`ےp˂rJlbQZJltnvpfH~ˑZHAbے`JXbtlJtArdf~HfpvnXv`bHAZp˂AJltbdQZ|fH~f`vXے`JXQr˂pJtAd|ZdQbtlnXv`f~HrXQbHAZAJltfH~fH~ے`JXQr˂pJtAd|ZdQbtlJnXv`f~Hp˂rXQJ`ےbdQZ|drtA`vXnvpfr˂pZHAb`JXQrtlJtArdf~HfpvXQJ`ےbHAZl|dltbpfHXvXH~JXQrJXQrlJtArd|f~HfpvQJ`ےbHAZpdrtAJltvpfH~f`ZHAbے`JXQr˂pArd|ZdQbtfpvnXv`˙bHAZp˂rXJltbdQZ|vXnfH~bے`p˂p`|ZdQ|ZdpvnXv`fbHAZp˂rXQltbdQZ|Hf`vXnvpfH˂pZHAbےZdQbtlJtAXv`f~Hf˂rXQJ`ےdQZ|drtAJtbnvpfH~f`ے`JXQl|Zd|ZZHAbے`JXQtArd|ZdQbnXvbHAZpXQJ`ے|drbdQZ|fH~f`vXے`JXQr˂pJtArd|ZdQfpvnXv`fHZp˂rXQJ`ۉbdQZ|drtf`vXnvpQr˂pZHAb|ZdQbtlJtArdf~HfpvJ`ےdrtAdbdQtAf`vXf`vXr˂pZHAb|ZdQbtlJtArdf~HfpvXQJ`ےbHAZdrtAJltvpfH~fZHAbے`JXQbtltArd|ZdQbfpvnXv`bHAZp˂rrtAJldQZ|nvpfZHA˂pZHbtlArd|ZdQbtfpvnXv`˙bHAZp˂rXJltbdQZ|~f`vXn`JXQr˂pZHAے`ZdQbtlJtnXv`f~H˂rXQJ`ےbdQZ|drtAvpfHf`vXZHAbJXQrbtlQbtlXv`f~Hf˂rXQJ`ےdQZ|drtAJvXnvpfH~fZHAbے`JXQrlJtArd|~HfpvnJ`ےbHAZpdrtAJltbvpf~f`vXnr˂pdQbtdQbtl|ZdQlJtArnXv`nXv`bHAZp˂rXQtbdQZ|d~f`vXnہJXQr˂pZHAے`ZdQbtlJtAv`f~HfprXQJ`ےQZ|drtAJlvXnvpfH~frQrXb㉀ۑ󙐂ˁ`ZpfH~ㅐf۝`vtbAdZbtld|Zf~Hf~HrXQJ`ےQZ|drtAJlvXnvpfH˂pZHAbے`JXQrbtlJtArd|~HfpvnXJ`ےbHAZp˙rtAJltbdvpfH~f`˂pZH`JXQpJAHrQXb㉀f۝`vXnvˍ|drJtArddQbtfpvfpvJ`ےbHAZp˙rtAJltbdvpfH~f`Abے`JXQrlJtrd|ZdQbtvnXv`fbHAZp˂rXQtbdQZ|d~f`vXnAbے`r˂pˁ`ZQۑpJAHrXnvˍp|drQtJl|ZdQlJtArnvfnXv`bHAZp˂rXQtbdQZ|d~f`vXnہJXQr˂pZHAd|ZdQbtlJtAv`f~HfprXQJ`ےQZ|drtAJlvXnvpfHJXQrZHAbXb㉀ۑ󙐂ˁ`pfH~QtJltbAdZbtld|Z~HfpۍffpۂrXQJ`ےQZ|drtAJlvXnvpfH˂pZHAbے`ZdQbtlJtArdf~HfpvnXJ`ےbHAZp˙rtAJltbdvpfH~f`˂pZH`JXQpJAHQXbpfH~ㅐf۝`vtbAdZ|drJtAdQbdQtArdvnXvnrXJ`ےbHAZp˙rtAJltbdvpfH~f`Abے`JXQrlJtArd|~HfpvnXv`fbHAZp˂rXQtbdQZ|d~f`vXnAbے`r˂p`㉀ۑpJf۝`vXnvˍ|drQtJltlJf~v`fQJ`ےbHAZp˂rXQtbdQZ|d~f`vXnہJXQr˂pZHrd|ZdQbtvnXv`fHfpۂrXQJ`ےQZ|drtAJlvXnvpfHpZHAJXQrAHr󙐂XnvˍpfH~QtJltbAdZtArdHfvnX~HfpۙHAZp˂rXQJ`ےQZ|drtAJlvXnvpfH˂pZHAbے`ZdQbtlJtAv`f~HfpvnrXJ`ےbHAZp˙rtAJltbdvpfH~f`bے`˂pZHˁ`ZQXbpfH~ㅐf۝`vtbAdZ|dr|ZdQbv`fvnXvrXQJ`ےbHAZdrtAJltbdvpfH~f`Abے`JXQrlJtArd|~HfpvnXQJ`ےbHAZp˂rXQtbdQZ|d~f`vXnJXQrAbے`㉀ۑpJf۝`vXnvˍ|drQtJltlJ~Hfpf~HfJ`ےbHAZp˙rtAJltbdQZ|d~f`vXnہJXQr˂pZHrd|ZdQbtvnXv`fHAZp˂rXQJ`ےQZ|drtAJlvXnvpfHpZHAJXQrAHr󙐉XnvˍpfH~QtJltbAdZtArdtvnXpvnbHAZp˂rXQtbdQZ|dtAJlvXnvpfH˂pZHAbے`ZdQbtlJtAv`f~HfprXQJ`ےbHAZdrtAJltbdvpfH~f`bے`˂p`ZۑpJApfH~ㅐf۝`vtbAdZ|drlJtAv`fXv`frXQJ`ےQZ|drtAJltbnvpfH~f`Abے`JXQrlJtArd|~HfpvnXJ`ےbHAZp˙rtAJltbdQZ|d~f`vXnJXQHAbQXb㉀Hr󙐂ˁf۝`vXnvˍ|drQtJlrd|~Hfp~HfJ`ےbHAZp˙rtAJltbdvpfH~f`vXnہJXQr˂pZHrd|ZdQbtvnXv`fbHAZp˂rXQtbdQZ|dtAJlvXnvpfHے`JXۑpJAHr`ZQXbXnvˍpfH~QtJltbAdZZdQbtvnv`pvnbHAZp˂rXQtbdQZ|df`vXnvpfH˂pZHAbے`ZdQbtlJtAv`f~HfprXQJ`ےQZ|drtAJltbnvpfH~f`Qr˂p󙐂ˁ`ZۑpJApfH~ㅐf۝`vtbAdZ|drlJtAf~HXv`frXQJ`ےQZ|drtAJlvXnvpfH~fZHAbے`JXQrlJtArd|~HfpvnXJ`ےbHAZp˙rtAJltbdvpfH~f`vXnۑZHAbQXb㉀Hr󙐂ˁf۝`vXnvˍ|drQtJlrd|fpv~fpvJ`ےbHAZp˙rtAJltbdvpfH~f`Abے`JXQr˂pZHrd|ZdQbtvnXv`fbHAZp˂rXQtbdQZ|df`vXnvpfHے`JXۑp`ZQ`pJAHrXnvˍpfH~QtJltbAdZ| \ No newline at end of file diff --git a/vendor/endroid/qr-code/assets/data/qrv31_2.dat b/vendor/endroid/qr-code/assets/data/qrv31_2.dat deleted file mode 100755 index 8bfc63022..000000000 --- a/vendor/endroid/qr-code/assets/data/qrv31_2.dat +++ /dev/null @@ -1,281 +0,0 @@ -{|{|{|{|yzyzyzyzwxwxwxwxststststqrqrqrqrmnmnmnmniiiijijihghghghgdcdcdcdcbabababa{|{|{|{|yzyzyzyzwxwxwxwxststststqrqrqrqrmnmnmnmnjijijijihghghghgdcdcdcdcbabababa{|{|{|{|yzyzyzyzwvuvuvuvststststqrqrqrqrmnmnmnmnjijijijihghghghgdcdcdcdcbabababa{|{|{|{|yzyzyzyzuvuvuvuvststststqrqrqrqrmnmnmnmnjijijijihghghghgdcdcdcdcbabababa{|{|{|{|yzyzyzyzuvuvuvuvststststqrqrqrqrmnmnmnmnjijijijihghghghgdcdcdcdcbabababa{|{|{|{|yzyzyzyzuvuvuvuvststststqpopopopmnmnmnmnjijijiiihghghghgdcdcdcdcbabababa{|{|{|{|yzyzyzyzuvuvuvuvststststopopopopmnmnmnmniiijijijhghghghgdcdcdcdcbabababa{|{|{|{|yzyzyzyzuvuvuvuvststststopopopopmnmnmnmnijijijijhghghghgdcdcdcdcbabababa{|{|{|{|yzyzyzyzuvuvuvuvststststopopopopmnmnmnmnijijijijhghghghgdcdcdcdcbabababa{|{|{|{|yzyzyzyzuvuvuvuvststststopopopopmnmnmnmnijijijijfefefefedcdcdcdcbabababa{|{|{|{|yzyzyzyzuvuvuvuvststststopopopopmnmnmnmnijijijijfefefefedcdcdcdcbabababa{|{|{|{|yzyzyzyzuvuvuvuvststststopopopopmnmnmnmnijijiiiifefefefedcdcdcdcbabababa{|{|{|{|yzyzyzyzuvuvuvuvststststopopopopmnmnmnmniijijijifefefefedcdcdcdc`_`_`_`_{|{|{|{|yzyzyzyzuvuvuvuvststststopopopopmnmnmnmnjijijijifefefefedcdcdcdc`_`_`_`_{|{|{|{|yzyzyzyzuvuvuvuvststststopopopopmnmnmnmnjijijijifefefefedcdcdcdc`_`_`_`_~}~}~}~{|{|{|{|yzyzyzyzuvuvuvuvststststopopopopmnmnmnmnjijijijifefefefedcdcdcdc`_`_`_`_}~}~}~}~{|{|{|{|yzyzyzyzuvuvuvuvststststopopopopmnmnmnmljijijijifefefefedcdcdcdc`_`_`_`_}~}~}~}~{|{|{|{|yzyzyzyzuvuvuvuvststststopopopopklklklkljijiiiiifefefefedcdcdcdc`_`_`_`_}~}~}~}~{|{|{|{|yxwxwxwxuvuvuvuvststststopopopopklklklklijijijijfefefefedcdcdcdc`_`_`_`_}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvststststopopopopklklklklijijijijfefefefedcdcdcdc`_`_`_`_}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvststststopopopopklklklklijijijijfefefefedcdcdcdc`_`_`_`_}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvsrqrqrqropopopopklklklklijijijijfefefefedcdcdcdc`_`_`_`_}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvqrqrqrqropopopopklklklklijijijijfefefefedcdcdcdc`_`_`_`_}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvqrqrqrqropopopopklklklklijiiiiiifefefefedcdcdcdc`_`_`_`_^]^]^]^]}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvqrqrqrqropopopopklklklkljijijijifefefefedcdcdcdc`_`_`_`_^]^]^]^]}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvqrqrqrqropopopopklklklklhghghghgfefefefedcdcdcdc`_`_`_`_^]^]^]^]}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvqrqrqrqropopopopklklklklhghghghgfefefefedcdcdcdc`_`_`_`_^]^]^]^]}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvqrqrqrqropopopopklklklklhghghghgfefefefedcdcdcdc`_`_`_`_^]^]^]^]}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvqrqrqrqropopopopklklklklhghghghgfefefefebabababa`_`_`_`_^]^]^]^]}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvqrqrqrqropopopopklklklklhghghghgfefefefebabababa`_`_`_`_^]^]^]^]}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvqrqrqrqropopopopklklklklhghghghgfefefefebabababa`_`_`_`_^]^]^]^]}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvqrqrqrqropopopopklklklklhghghghgfefefefebabababa`_`_`_`_^]^]^]^]}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvqrqrqrqropopopopklklklklhghghghgfefefefebabababa`_`_`_`_^]^]^]^]}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvqrqrqrqropopopopklklklklhghghghgfefefefebabababa`_`_`_`_^]^]^]^]}~}~}~}~{zyzyzyzwxwxwxwxuvuvuvuvqrqrqrqropopopopklklklklhghghghgfefefefebabababa`_`_`_`_^]^]^]^]}~}~}~}~yzyzyzyzwxwxwxwxuvuvuvuvqrqrqrqropopopopklklklklhghghghgfefefefebabababa`_`_`_`_^]^]^]^]}~}~}~}~yzyzyzyzwxwxwxwxuvuvuvuvqrqrqrqropopopopklklklklhghghghgfefefefebabababa`_`_`_`_^]^]^]^]}~}~}~}~yzyzyzyzwxwxwxwxutstststqrqrqrqropopopopklklklklhghghghgfefefefebabababa`_`_`_`_^]^]^]^]}~}~}~}~yzyzyzyzwxwxwxwxststststqrqrqrqropopopopklklklklhghghghgfefefefebabababa`_`_`_`_^]^]^]^]}~}~}~}~yzyzyzyzwxwxwxwxststststqrqrqrqropopopopklklklklhghghghgfefefefebabababa`_`_`_`_^]^]^]^]}~}~}~}~yzyzyzyzwxwxwxwxststststqrqrqrqronmnmnmnklklklklhghghghgfefefefebabababa`_`_`_`_^]^]^]^]}~}~}~}~yzyzyzyzwxwxwxwxststststqrqrqrqrmnmnmnmnklklklklhghghghgfefefefebabababa`_`_`_`_^]^]^]^]}~}~}~}~yzyzyzyzwxwxwxwxststststqrqrqrqrmnmnmnmnklklklklhghghghgfefefefebabababa`_`_`_`_^]^]^]^]}~}~}~}~yzyzyzyzwxwxwxwxststststqrqrqrqrmnmnmnmnklklklklhghghghgfefefefebabababa`_`_`_`_^]^]^]^]}~}~}~}~yzyzyzyzwxwxwxwxststststqrqrqrqrmnmnmnmnklklkjijhghghghgdcdcdcdcbabababa`_`_`_`_^]^]^]^]}~}~}~}~yzyzyzyzwxwxwxwxststststqrqrqrqrmnmnmnmnijijiiiihghghghgdcdcdcdcbabababa`_`_`_`_^]^]^]^]}~}~}~}~yzyzyzyzwxwxwxwxststststqrqrqrqrmnmnmnmnijijijijhghghghgdcdcdcdcbabababa`_`_`_`_^]^]^]^]}~}~}~}~yzyzyzyzwxwxwxwxststststqrqrqrqrmnmnmnmnijijijijhghghghgdcdcdcdcbabababa^]^]^]^]^]^]^]^]}~}~}~}~yzyzyzyzwxwxwxwxststststqrqrqrqrmnmnmnmnijijijijhghghghgdcdcdcdcbabababa^]^]^]^]^]^]^]^]}~}~}~}~yzyzyzyzwxwxwxwxststststqrqrqrqrmnmnmnmnijijijijhghghghgdcdcdcdcbabababa^]^]^]^]^]^]^]^]}|{|{|{|yzyzyzyzwxwxwxwxststststqrqrqrqrmnmnmnmnijijijiihghghghgdcdcdcdcbabababa^]^]^]^]^]^]^]^]^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSOPOPOPOPMNMNMNMNIJIJIJIJGHGHGHGHCDCDCDCDABABABAB=>=>=>=>;<;<;<;<7878787856565656212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#         ^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSOPOOOOOOMNMNMNMNIJIJIJIJGHGHGHGHCDCDCDCDABABABAB=>=>=>=>;<;<;<;<7878787856565656212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#         ^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSPOPOPOPOMNMNMNMNIJIJIJIJGHGHGHGHCDCDCDCDABABABAB=>=>=>=>;<;<;<;<7878787855555565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#         \[\[\[\[ZYZYZYZYXWXWXWXWTSTSTSTSPOPOPOPOMNMNMNMNIJIJIJIJGHGHGHGHCDCDCDCDABABABAB=>=>=>=>;<;<;<;<7878787865656543212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#         \[\[\[\[ZYZYZYZYXWXWXWXWTSTSTSTSPOPOPOPOMNMNMNMNIJIJIJIJGHGHGHGHCDCDCDCDABABABAB=>=>=>=>;<;<;<;<7878787843434343212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#         \[\[\[\[ZYZYZYZYXWXWXWXWTSTSTSTSPOPOPOPOMNMNMNMNIJIJIJIJGHGHGHGHCDCDCDCDABABABAB=>=>=>=>;<;<;<;<7878787843434343212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#         \[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTSPOPOPOPOMNMNMNMNIJIJIJIJGHGHGHGHCDCDCDCDABABABAB=>=>=>=>;<;<;<;<7878787843434343212121210/0/0/.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#         - -\[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTSPOOOOOOPMNMNMNMNIJIJIJIJGHGHGHGHCDCDCDCDABABABAB=>=>=>=>;<;<;<;<787878784343434321212121.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#         - - - -\[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTSOPOPOPOPMNMNMNMNIJIJIJIJGHGHGHGHCDCDCDCDABABABAB=>=>=>=>;<;<;<;<787878784343434321212121.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#         - - - -\[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTSOPOPOPOPMNMNMNMLIJIJIJIJGHGHGHGHCDCDCDCDABABABAB=>=>=>=>;<;<;<;<787878784343434321212121.-.-.-.-,+,+,+,+*)*)*)('&%&%&%&%$#$#$#$#         - - - -\[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTSOPOPOPOPKLKLKLKLIJIJIJIJGHGHGHGHCDCDCDCDABABABAB=>=>=>=>;<;<;<;<787878784343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#         - - - -\[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTSOPOPOPOPKLKLKLKLIJIJIJIJGHGHGHGHCDCDCDCDABABABAB=>=>=>=>;<;<;<;<787878784343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#         - - - -\[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTSOPOPOPOPKLKLKLKLIJIJIJIJGHGHGHGFCDCDCDCDABABABAB=>=>=>=>;<;<;<;<787878784343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#"!         - - - -\[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTSOOOOOOPOKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCDABABABAB=>=>=>=>;<;<;<;<787878784343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!         - - - -\[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTSPOPOPOPOKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCDABABABAB=>=>=>=>;<;<;<;<787878784343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!         - - - -\[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTSPOPOPOPOKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCDABABABA@=>=>=>=>;<;<;<;<787878784343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!         - - - -\[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTSPOPOPOPOKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>;<;<;<;<787878784343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!         - - - -\[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSRQPOPOPOPOKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>;<;<;<;<787878784343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!         - - - -\[\[\[\[ZYZYZYZYVUVUVUVURQRQRQRQPOPOPOPOKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>;<;<;<;:787878784343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!         - - - -\[\[\[\[ZYZYZYZYVUVUVUVURQRQRQRQOOOOOPOPKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>9:9:9:9:787878784343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!         - - - -\[\[\[\[ZYZYZYZYVUVUVUVURQRQRQRQOPOPOPOPKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>9:9:9:9:787878784343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!         - - - -\[\[\[\[ZYZYZYZYVUVUVUVURQRQRQRQOPOPOPOPKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>9:9:9:9:787878784343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!         - - - -\[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQOPOPOPOPKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>9:9:9:9:78787878434343432121210/.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!       - - - -\[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQOPOPOPOPKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>9:9:9:9:78765656434343430/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!     - - - -\[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQOPOOOOOPKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>9:9:9:9:56555556434343430/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!   - - - -\[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQOPOPOPONKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>9:9:9:9:56565656434343430/0/0/0/.-.-.-.-,+,+,+*)('('('('&%&%&%&%"!"!"!"! - - - -\[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQMNMNMNMNKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>9:9:9:9:56565656434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%"!"!"!"! - - - -\[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQMNMNMNMNKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>9:9:9:9:56565656434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%"!"!"!"! - - - -\[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQMNMNMNMNKLKLKLKLIJIJIJIHEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>9:9:9:9:56565656434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%$#"!"!"!"! - - - -\[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQMNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>9:9:9:9:56565555434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"! - - - -\[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQMNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>9:9:9:9:55656565434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"! - - - -\[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQMNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFCDCDCDCB?@?@?@?@=>=>=>=>9:9:9:9:65656565434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"! - - - -\[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQMNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFABABABAB?@?@?@?@=>=>=>=>9:9:9:9:65656565434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"! - - - -\[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQMNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFABABABAB?@?@?@?@=>=>=>=>9:9:9:9:65656565434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"! - - - -\[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQMNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFABABABAB?@?@?@?@=>=>=>=<9:9:9:9:65656565434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"! - - - -\[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQMNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFABABABAB?@?@?@?@;<;<;<;<9:9:9:9:65655555434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"! - - - -\[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQMNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFABABABAB?@?@?@?@;<;<;<;<9:9:9:9:56565656434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"! - - - -\[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQMNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFABABABAB?@?@?@?@;<;<;<;<9:9:9:9:56565656434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"! - - - -ZYZYZYZYXWXWXWXWVUVUVUVURQRQRQRQMNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFABABABAB?@?@?@?@;<;<;<;<9:9:9:9:56565656434343210/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"!  - - - -ZYZYZYZYXWXWXWXWVUVUVUVURQRQRQRQMNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFABABABAB?@?@?@?@;<;<;<;<9:9:9:9:56565656212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"!     - - - -ZYZYZYZYXWXWXWXWVUVUVUVURQRQRQRQMNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFABABABAB?@?@?@?@;<;<;<;<9:9:9:9:56565656212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"!     - - - -ZYZYZYZYXWXWXWXWTSTSTSTSRQRQRQRQMNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFABABABAB?@?@?@?@;<;<;<;<9:9:9:9:56555555212121210/0/0/0/.-.-.-,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!     - - ZYZYZYZYXWXWXWXWTSTSTSTSRQRQRQRQMNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFABABABAB?@?@?@?@;<;<;<;<9:9:9:9:65656565212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!     ZYZYZYZYXWXWXWXWTSTSTSTSRQRQRQRQMNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFABABABAB?@?@?@?@;<;<;<;<9:9:9:9:65656565212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!     ZYZYZYZYXWXWXWXWTSTSTSTSRQRQRQRQMNMNMNMNKLKLKLKJGHGHGHGHEFEFEFEFABABABAB?@?@?@?@;<;<;<;<9:9:9:9:65656565212121210/0/0/0/,+,+,+,+*)*)*)*)('('('&%$#$#$#$#"!"!"!"!     ZYZYZYZYXWXWXWXWTSTSTSTSRQRQPOPOMNMNMNMNIJIJIJIJGHGHGHGHEFEFEFEFABABABAB?@?@?@?@;<;<;<;<9:9:9:9:65656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"!     ZYZYZYZYXWXWXWXWTSTSTSTSPOPOOOOOMNMNMNMNIJIJIJIJGHGHGHGHEFEFEFEFABABABAB?@?@?@?@;<;<;<;<9:9:987865656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"!     ZYZYZYZYXWXWXWXWTSTSTSTSOPOPOPOPMNMNMNMNIJIJIJIJGHGHGHGHEFEFEFEDABABABAB?@?@?@?@;<;<;<;<7878787865555556212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!      ZYZYZYZYXWXWXWXWTSTSTSTSOPOPOPOPMNMNMNMNIJIJIJIJGHGHGHGHCDCDCDCDABABABAB?@?@?@?@;<;<;<;<7878787856565656212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#         ZYZYZYZYXWXWXWXWTSTSTSTSOPOPOPOPMNMNMNMNIJIJIJIJGHGHGHGHCDCDCDCDABABABAB?@?@?@?@;<;<;<;<7878787856565656212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#         ZYZYZYZYXWXWXWXWTSTSTSTSOPOPOPOPMNMNMNMNIJIJIJIJGHGHGHGHCDCDCDCDABABABAB?@?@?@?>;<;<;<;<7878787856565656212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#         QQRRSSTT334455;;=<<;;::9DEEFFGGH UTTSSRRQxyyzz{{|5;;<<==> !!""$$##""!!ppoonnmm]]^^__``UUVVWWXX<<==>>??98877665HIIJJKKLQPPOONNM|}}~~>??@@AAB##$$%%&& llkkjjiiaabbccddYYZZ[[\\@@AABBCC54433221~~}LMMNNOOPMLLKKJJIBCCDDEEF''(())**hhggffeeeeffgghh~~}}]]^^__``DDEEFFGG 100//..-}||{{zzyPQQRRSSTIHHGGFFEFGGHHIIJ++,,--..ddccbbaaiijjkkll||{{zzyyaabbccddHHIIJJKK !!""##$-,,++**)yxxwwvvuTUUVVWWX - - EDDCCBBAJKKLLMMN//001122``__^^]]mmnnooppxxwwvvuueeffgghhLLMMNNOO$%%&&''()((''&&%uttssrrqXYYZZ[[\ A@@??>>=NOOUUVVW33445567 \\[[ZZYYqqrrssttttssrrqqiijjkkllUUVVWWXX())**++,%$$##""!qppoonnm\]]^^__`=<<;;::9WXXYYZZ[89:;;<<= - - XXWWVVUUuuvvwwxxppoonnmmmmnnooppYYZZ[[\\,--..//0! mllkkjji`aabbccd98877665[\\]]^^_=>>??@@ATTSSRRQQyyzz{{||llkkjjiiqqrrsstt]]^^__``01122334ihhggffedeeffggh54433221~~}_``aabbcABBCCDDEPPOONNMM}}~~hhggffeeuuvvwwxxaabbccdd45566778eddccbbahiijjkkl 100//..-}||{{zzycddeeffgEFFGGHHILLKKJJIIddccbbaayyzz{{||eeffgghh899::;;<a``__^^]lmmnnoop !!""##$-,,++**)yxxwwvvughhiioopIJJKKLLMHHGGFFEE``__^^]]}}~~iiooppqq<==>>??@ ]\\[[ZZYpqqrrsst$%%&&''()((''&&%uttssrrqpqqrrsstMNNOOPQR - - DDCCBBAA\\[[ZZYYrrssttuu@AABBCCD - - YXXWWVVUtuuvvwwx())**++,%$$##""!qppoonnmtuuvvwwxSTUUVVWW @@??>>==XXWWVVUUvvwwxxyyDEEFFGGH UTTSSRRQxyyzz{{|,--..//0! mllkkjjixyyzz{{|XXYYZZ[[<<;;::99TTSSRRQQzz{{||}}HIIJJKKLQPPOONNM|}}~~01122334ihhggffe|}}~~\\]]^^__88776655PPOONNMM~~LMMNNOOPMLLKKJJI45566778eddccbba``aabbcc44332211~~}}LLKKJJIIPQQRRSSTIHHGGFFE899::;;<a``__^^]ddeeffgg 00//..--||{{zzyyHHGGFFEE~~}}||TUUVVWWX - - EDDCCBBA<==>>??@ ]\\[[ZZYhhiijklm!!""##$$,,++**))xxwwvvuuDDCCBBAA{{zzyyxxXYYZZ[[\ A@@??>>=@AABBCCD - - YXXWWVVUnooppqqr%%&&''((((''&&%%ttssrrqq@@??>>==wwvvuutt\]]^^__`=<<;;::9DEEFFGGH UTTSSRRQ~~}}||{rssttuuv))**++,,$$##""!!ppoonnmm<<;;::99ssrrqqpp~~}}|`aabbccd98877665HIIJJKKLQPPOONNM{zzyyxxwvwwxxyyz--..//00 llkkjjii88776655ooiihhgg|{{zzyyxdeeffggh54433221~~}LMMNNOOPMLLKKJJIwvvuuttsz{{||}}~11223344hhggffee44332211ffeeddccxwwvvuuthiijjkkl 100//..-}||{{zzyPQQRRSSTIHHGGFFEsrrqqppo~55667788ddccbbaa00//..--bbaa``__tssrrqqplmmnnoop !!""##$-,,++**)yxxwwvvuTUUVVWWX - - EDDCCBBAoiihhggf99::;;<<``__^^]],,++**))^^]]\\[[poonmlkjpqqrrsst$%%&&''()((''&&%uttssrrqXYYZZ[[\ A@@??>>=feeddccb==>>??@@ \\[[ZZYY((''&&%%ZZYYXXWWiihhggfftuuvvwwx())**++,%$$##""!qppoonnm\]]^^__`=<<;;::9baa``__^AABBCCDD - - XXWWVVUU$$##""!!VVUUOONNeeddccbbxyyzz{{|,--..//0! mllkkjji`aabbccd98877665^]]\\[[ZEEFFGGHHTTSSRRQQ MMLLKKJJaa``__^^|}}~~01122334ihhggffedeeffggh54433221ZYYXXWWVIIJJKKLLPPOONNMM!!""##$$IIHHGGFF]]\\[[ZZ45566778eddccbbahiijjkkl 100//..-VUUOONNM~~}}MMNNOOPPLLKKJJII%%&&''((EEDDCCBBYYXXWWVV899::;;<a``__^^]lmmnnoop !!""##$-,,++**)MLLKKJJI||{{zzyyQQRRSSTTHHGGFFEE))**++,,AA@@??>>UUTSRQPO<==>>??@ ]\\[[ZZYpqqrrsst$%%&&''()((''&&%IHHGGFFExxwwvvuuUUVVWWXX - - DDCCBBAA--..//00 ==<<;;55ONNMMLLK@AABBCCD - - YXXWWVVUtuuvvwwx())**++,%$$##""!EDDCCBBAttssrrqqYYZZ[[\\ @@??>>==11223344 - - 44332211KJJIIHHGDEEFFGGH UTTSSRRQxyyzz{{|,--..//0! A@@??>>=ppoonnmm]]^^__``<<;;::9955667788 - - 00//..--GFFEEDDCHIIJJKKLQPPOONNM|}}~~01122334=<<;;554llkkjjiiaabbccdd8877665599::;;<< ,,++**))CBBAA@@?~~}LMMNNOOPMLLKKJJI4556677843322110hhggffeeeeffgghh44332211==>>??@@((''&&%%?>>==<<;}||{{zzyPQQRRSSTIHHGGFFE899::;;<0//..--,ddccbbaaiijjkkll 00//..--AABBCCDD$$##""!!;:987655yxxwwvvuTUUVVWWX - - EDDCCBBA<==>>??@ ,++**))(``__^^]]mmnnoopp!!""##$$,,++**))EEFFGGHH44332211uttssrrqXYYZZ[[\ A@@??>>=@AABBCCD - - (''&&%%$\\[[ZZYYqqrrsstt%%&&''((((''&&%%IIJJKKLL 00//..--qppoonnm\]]^^__`=<<;;::9DEEFFGGH $##""!!XXWWVVUUuuvvwwxx))**++,,$$##""!!MMNNOOPP!!""##$$,,++**))mllkkjji`aabbccd98877665HIIJJKKLTTSSRRQQyyzz{{||--..//00 QQRRSSTT%%&&''(( ((''&&%%ihhggffedeeffggh54433221~~}LMMNNOOPPPOONNMM}}~~11223344UUVVWWXX))**++,, - - $$##""!!eddccbbahiijjkkl 100//..-}||{{zzyPQQRRSST - - LLKKJJII55667788YYZZ[[\\--..//00 - - a``__^^]lmmnnoop !!""##$-,,++**)yxxwwvvuTUUVVWWX  HHGGFFEE99::;;<<]]^^__``11223344]\\[[ZZYpqqrrsst$%%&&''()((''&&%uttssrrqXYYZZ[[\ - - DDCCBBAA==>>??@@ aabbccdd55667788YXXWWVVUtuuvvwwx())**++,%$$##""!qppoonnm\]]^^__`@@??>>==AABBCCDD - - eeffgghh99::;;<<UTTSSRRQxyyzz{{|,--..//0! mllkkjji`aabbccd!<<;;::99EEFFGGHHiijjkkll==>>??@@!!"" -QPPOONNM|}}~~01122334ihhggffedeeffggh!""##$$% - - 88776655IIJJKKLLmmnnooppAABBCCDD##$$%%&& - MLLKKJJI45566778eddccbbahiijjkkl%&&''(() 44332211~~}}MMNNOOPPqqrrssttEEFFGGHH''(())**IHHGGFFE899::;;<a``__^^]lmmnnoop)**++,,-00//..--||{{zzyyQQRRSSTTuuvvwwxxIIJJKKLL++,,--.. - - EDDCCBBA<==>>??@ ]\\[[ZZYpqqrrsst-..//001,,++**))xxwwvvuuUUVVWWXX - - yyzz{{||MMNNOOPP//001122 A@@??>>=@AABBCCD - - YXXWWVVUtuuvvwwx12233445((''&&%%ttssrrqqYYZZ[[\\ }}~~55667788ZZYYXXWWtssrrqqpeffgghhi43322110~~}}|MNNOOPPQLKKJJIIHvuuttssr{||}}~~22334455ggffeeddffgghhii33221100zzyyxxwwJKKLLMMNONNMMLLK~23344556ZYYXXWWV]\\[[ZZY99::;;<<VVUUOONNpoonmlkjijjkkllm !0//..--,|{{zzyyxQRRSSTTU HGGFFEEDrqqppooi66778899ccbbaa``jjkkllmm !!//..--,,vvuuttssNOOPPQQRKJJIIHHG6778899:VUUOONNMYXXWWVVU==>>??@@ MMLLKKJJiihhggffmnnooppq!""##$$%,++**))(xwwvvuutUVVWWXXY - - DCCBBAA@ihhggffe::;;<<==__^^]]\\nnooppqq""##$$%%++**))((rrqqppooRSSTTUUV -GFFEEDDC:;;<<==>MLLKKJJIUTTSSRRQAABBCCDD - - IIHHGGFFeeddccbbqrrssttu%&&''(()(''&&%%$tssrrqqpYZZ[[\\] @??>>==>??@@AA [[ZZYYXXrrssttuu&&''(())''&&%%$$iihhggffVWWXXYYZ - CBBAA@@?>??@@AAB IHHGGFFEQPPOONNMEEFFGGHHEEDDCCBBaa``__^^uvvwwxxy)**++,,-$##""!! poonnmml]^^__``a<;;::998a``__^^]BBCCDDEE - - WWVVUUTTvvwwxxyy**++,,--##""!! eeddccbb~~}}||{Z[[\\]]^?>>==<<;BCCDDEEF - - EDDCCBBAMLLKKJJIIIJJKKLLAA@@??>>]]\\[[ZZyzz{{||}-..//001 lkkjjiihabbccdde87766554]\\[[ZZYFFGGHHIISSRRQQPPzz{{||}}..//0011aa``__^^{zzyyxxw^__``aab;::99887FGGHHIIJA@@??>>=IHHGGFFE~~}}MMNNOOPP==<<;;55YYXXWWVV}~~12233445hggffeedeffgghhi43322110YXXWWVVUJJKKLLMMOONNMMLL~~22334455]]\\[[ZZwvvuuttsbccddeef76655443JKKLLMMN=<<;;554EDDCCBBA||{{zzyyQQRRSSTT44332211UUTSRQPO56677889dccbbaa`ijjkkllm !0//..--,UOONNMML~~}}||NNOOPPQQKKJJIIHH66778899YYXXWWVVsrrqqppofgghhiij3221100/~~}}||{NOOPPQQR43322110A@@??>>=xxwwvvuuUUVVWWXX - - 00//..--ONNMMLLK9::;;<<=`__^^]]\mnnooppq!""##$$%,++**))(LKKJJIIH{{zzyyxxRRSSTTUU GGFFEEDD::;;<<==UUOONNMMonmlkjiijkkllmmn !!"/..--,,+{zzyyxxwRSSTTUUV -0//..--,=<<;;::9ttssrrqqYYZZ[[\\ ,,++**))KJJIIHHG=>>??@@A \[[ZZYYXqrrssttu%&&''(()(''&&%%$HGGFFEEDwwvvuuttVVWWXXYY - - CCBBAA@@>>??@@AA LLKKJJIIhhggffeenooppqqr"##$$%%&+**))(('wvvuuttsVWWXXYYZ - ,++**))(98877665ppoonnmm]]^^__``((''&&%%GFFEEDDCABBCCDDE - - XWWVVUUTuvvwwxxy)**++,,-$##""!! DCCBBAA@ssrrqqppZZ[[\\]]??>>==<>==>==<<;IJJKKLLMPOONNMML}~~12233445<;;55443kkjjiihhbbccddee77665544JJKKLLMM@@??>>==\\[[ZZYYz{{||}}~.//00112kjjiihhgbccddeef-,,++**)ddccbbaaiijjkkll ;:987655~~}}|MNNOOPPQLKKJJIIH566778893221100/ggffeeddffgghhii33221100~~}}||NNOOPPQQ<<;;5544XXWWVVUU~23344556gffeeddcfgghhiij)((''&&%``__^^]]mmnnoopp!!""##$$44332211|{{zzyyxQRRSSTTU HGGFFEED9::;;<<=/..--,,+ccbbaa``jjkkllmm !!//..--,,{{zzyyxxRRSSTTUU 33221100TSRQPOON6778899:cbbaa``_jkkllmmn !!"%$$##""!\\[[ZZYYqqrrsstt%%&&''(( 00//..--xwwvvuutUVVWWXXY - - DCCBBAA@=>>??@@A +**))(('__^^]]\\nnooppqq""##$$%%++**))((wwvvuuttVVWWXXYY - - //..--,,NMMLLKKJ:;;<<==>_^^]]\\[nooppqqr"##$$%%& ! XXWWVVUUuuvvwwxx))**++,, - - ,,++**))tssrrqqpYZZ[[\\] @??>>==??@@AAB [ZZYYXXWrssttuuv&''(())* - - -TTSSRRQQyyzz{{||--..//00((''&&%%poonnmml]^^__``a<;;::998EFFGGHHI#""!!WWVVUUTTvvwwxxyy**++,,--##""!! oonnmmll^^__``aa''&&%%$$FEEDDCCBBCCDDEEF - - WVVUUTTSvwwxxyyz*++,,--. - PPOONNMM}}~~11223344 $$##""!!lkkjjiihabbccdde87766554IJJKKLLMSSRRQQPPzz{{||}}..//0011kkjjiihhbbccddee##""!!BAA@@??>FGGHHIIJSRRQQPPOz{{||}}~.//00112LLKKJJII55667788 - - hggffeedeffgghhi43322110~~}}|MNNOOPPQ OONNMMLL~~22334455ggffeeddffgghhii>==<<;;:JKKLLMMNONNMMLLK~23344556 HHGGFFEE99::;;<<dccbbaa`ijjkkllm !0//..--,|{{zzyyxQRRSSTTU - - KKJJIIHH66778899ccbbaa``jjkkllmm !!98765544~~}}||{NOOPPQQRKJJIIHHG6778899: - - DDCCBBAA==>>??@@`__^^]]\mnnooppq!""##$$%,++**))(xwwvvuutUVVWWXXY  -GGFFEEDD::;;<<==__^^]]\\nnooppqq""##$$%%33221100{zzyyxxwRSSTTUUV -GFFEEDDC:;;<<==>!!""# - - @@??>>==AABBCCDD\[[ZZYYXqrrssttu%&&''(()(''&&%%$tssrrqqpYZZ[[\\] - CCBBAA@@>>??@@AA [[ZZYYXXrrssttuu&&''(()) //..--,,wvvuuttsVWWXXYYZ - CBBAA@@?>??@@AAB#$$%%&&' <<;;::99EEFFGGHH!!"" -XWWVVUUTuvvwwxxy)**++,,-$##""!! poonnmml]^^__``a??>>==<>==<<;BCCDDEEF'(())**+88776655IIJJKKLL##$$%%&& - TSSRRQQPyzz{{||}-..//001 lkkjjiihabbccdde!!" ;;::9988FFGGHHIISSRRQQPPzz{{||}}..//0011''&&%%$$onnmmllk^__``aab;::99887FGGHHIIJ+,,--../44332211~~}}MMNNOOPP''(())**POONNMML}~~12233445hggffeedeffgghhi"##$$%%& - - 77665544JJKKLLMMOONNMMLL~~22334455 - -##""!! kjjiihhgbccddeef76655443JKKLLMMN/001122300//..--||{{zzyyQQRRSSTT++,,--..LKKJJIIH56677889dccbbaa`ijjkkllm&''(())* 33221100~~}}||NNOOPPQQKKJJIIHH66778899 gffeeddcfgghhiij3221100/~~}}||{NOOPPQQR34455;;< ,,++**))xxwwvvuuUUVVWWXX//001122 HGGFFEED9::;;<<=`__^^]]\mnnooppq*++,,--.//..--,,{{zzyyxxRRSSTTUU GGFFEEDD::;;<<==cbbaa``_jkkllmmn !!"/..--,,+{zzyyxxwRSSTTUUV<==>>??@ !!""##$((''&&%%ttssrrqqYYZZ[[\\334455;; - - DCCBBAA@=>>??@@A \[[ZZYYXqrrssttu.//00112++**))((wwvvuuttVVWWXXYY - - CCBBAA@@>>??@@AA_^^]]\\[nooppqqr"##$$%%&+**))(('wvvuuttsVWWXXYYZ@AABBCCD$%%&&''($$##""!!ppoonnmm]]^^__``<<==>>?? @??>>==>==<>? !!""####""!! oonnmmll^^__``aa;;::9988FFGGHHII!!""## - - WVVUUTTSvwwxxyyz*++,,--.#""!! onnmmllk^__``aabHIIJJKKL,--..//0hhggffeeeeffgghhDDEEFFGG87766554IJJKKLLMPOONNMML}~~?@@AABBC$$%%&&''kkjjiihhbbccddee77665544JJKKLLMM$$%%&&'' SRRQQPPOz{{||}}~.//00112kjjiihhgbccddeefLMMNNOOU01122334ddccbbaaiijjkkllHHIIJJKK43322110~~}}|MNNOOPPQLKKJJIIHCDDEEFFG(())**++ggffeeddffgghhii33221100~~}}||NNOOPPQQ(())**++ONNMMLLK~23344556gffeeddcfgghhiijUVVWWXXY45566778``__^^]]mmnnooppLLMMNNOO !0//..--,|{{zzyyxQRRSSTTU HGGFFEEDGHHIIJJK,,--..//ccbbaa``jjkkllmm !!//..--,,{{zzyyxxRRSSTTUU,,--..//KJJIIHHG6778899:cbbaa``_jkkllmmnYZZ[[\\]899::;;< \\[[ZZYYqqrrssttUUVVWWXX!""##$$%,++**))(xwwvvuutUVVWWXXY - - DCCBBAA@KLLMMNNO00112233__^^]]\\nnooppqq""##$$%%++**))((wwvvuuttVVWWXXYY00112233 -GFFEEDDC:;;<<==>_^^]]\\[nooppqqr]^^__``a<==>>??@ - - XXWWVVUUuuvvwwxxYYZZ[[\\%&&''(()(''&&%%$tssrrqqpYZZ[[\\] @??>>==??@@AAB [ZZYYXXWrssttuuvabbccdde@AABBCCDTTSSRRQQyyzz{{||]]^^__``)**++,,-$##""!! poonnmml]^^__``a<;;::998XYYZZ[[\:;;<<==> - - WWVVUUTTvvwwxxyy**++,,--##""!! oonnmmll^^__``aa==>>??@@?>>==<<;BCCDDEEF - - WVVUUTTSvwwxxyyzeffgghhiDEEFFGGHPPOONNMM}}~~aabbccdd-..//001 lkkjjiihabbccdde87766554\]]^^__`>??@@AABSSRRQQPPzz{{||}}..//0011kkjjiihhbbccddeeAABBCCDD;::99887FGGHHIIJSRRQQPPOz{{||}}~iooppqqrHIIJJKKLLLKKJJIIeeffgghh12233445hggffeedeffgghhi43322110~~}}|`aabbccdBCCDDEEFOONNMMLL~~22334455ggffeeddffgghhiiEEFFGGHH76655443JKKLLMMNONNMMLLK~rssttuuvLMMNNOOPHHGGFFEEiiooppqq56677889dccbbaa`ijjkkllm !0//..--,|{{zzyyxdeeffgghFGGHHIIJKKJJIIHH66778899ccbbaa``jjkkllmmIIJJKKLL3221100/~~}}||{NOOPPQQRKJJIIHHGvwwxxyyzPQQRRSST - - DDCCBBAArrssttuu9::;;<<=`__^^]]\mnnooppq!""##$$%,++**))(xwwvvuuthiiooppqJKKLLMMN GGFFEEDD::;;<<==__^^]]\\nnooppqqMMNNOOUU !!"/..--,,+{zzyyxxwRSSTTUUV -GFFEEDDCz{{||}}~TUUVVWWX @@??>>==vvwwxxyy=>>??@@A \[[ZZYYXqrrssttu%&&''(()(''&&%%$tssrrqqpqrrssttuNOOPQRST - - CCBBAA@@>>??@@AA [[ZZYYXXrrssttuuVVWWXXYY"##$$%%&+**))(('wvvuuttsVWWXXYYZ - CBBAA@@?~XYYZZ[[\<<;;::99zz{{||}}ABBCCDDE - - XWWVVUUTuvvwwxxy)**++,,-$##""!! poonnmmluvvwwxxyUUVVWWXX??>>==<>==<<;~~}\]]^^__`88776655~~}}||~~EFFGGHHITSSRRQQPyzz{{||}-..//001 lkkjjiihyzz{{||}YYZZ[[\\;;::9988FFGGHHIISSRRQQPPzz{{||}}^^__``aa*++,,--.#""!! onnmmllk^__``aab;::99887~~}}||{}||{{zzy`aabbccd44332211{{zzyyxxIJJKKLLMPOONNMML}~~12233445hggffeed}~~]]^^__``77665544JJKKLLMMOONNMMLL~~bbccddee.//00112kjjiihhgbccddeef76655443{zzyyxxwyxxwwvvudeeffggh 00//..--wwvvuuttMNNOOPPQLKKJJIIH56677889dccbbaa`aabbccdd33221100~~}}||NNOOPPQQKKJJIIHHffgghhii23344556gffeeddcfgghhiij3221100/wvvuuttsuttssrrqhiijjkkl!!""##$$,,++**))ssrrqqppQRRSSTTU HGGFFEED9::;;<<=`__^^]]\eeffgghh !!//..--,,{{zzyyxxRRSSTTUU GGFFEEDDooppqqrr6778899:cbbaa``_jkkllmmn !!"/..--,,+srrqqppoqppoonnmlmmnnoop%%&&''((((''&&%%ooiihhggUVVWWXXY - - DCCBBAA@=>>??@@A \[[ZZYYXiijklmno""##$$%%++**))((wwvvuuttVVWWXXYY - - CCBBAA@@ssttuuvv:;;<<==>_^^]]\\[nooppqqr"##$$%%&+**))(('oiihhggfmllkkjjipqqrrsst))**++,,$$##""!!ffeeddcc~~}}|YZZ[[\\] @??>>==>==<??@@AAB [ZZYYXXWrssttuuv&''(())*'&&%%$$#feeddccbihhggffetuuvvwwx--..//00 bbaa``__|{{zzyyx]^^__``a<;;::998EFFGGHHITSSRRQQP~}}||{{zsttuuvvw**++,,--##""!! oonnmmll^^__``aa;;::9988{{||}}~~BCCDDEEF - - WVVUUTTSvwwxxyyz*++,,--.#""!! baa``__^eddccbbaxyyzz{{|11223344^^]]\\[[xwwvvuutabbccdde87766554IJJKKLLMPOONNMMLzyyxxwwvwxxyyzz{..//0011kkjjiihhbbccddee77665544~~}}||{{FGGHHIIJSRRQQPPOz{{||}}~.//00112^]]\\[[Za``__^^]|}}~~ZHAb|ZdQb`ےfH~Qr˂pfpvZp˂dtAQr˂pbtlrXQ~f`vr˂pfpvp˂rے`JXQtlJrXQJ`f`vXZHAbnXv`rXQJ`JltZHAbJtArdJ`ےXnvZHAbnXv`XQJ`ےr˂ptArdےbHAnvpے`JXf~HbHAbnvpے`JX|ZdQbHAZppfH~ے`JXQf~HbHAZZHAb|ZdQbZp˂fH~Qr˂pfpvZp˂fHQr˂pbtlrXQf`vr˂pfpvp˂rے`JXQtlJrXQJ`f`vXZHAbnXv`rXQJ`f`vXZHAbJtArdJ`ےXnvZHAbnXv`XQJ`ےr˂ptArdےbHAnvpے`JXf~HbHAnvpے`JXf~HbHAXQJ`pfH~ے`JXQf~HbHAZZHAb|ZdQbXQJ`ےfH~Qr˂pfpvZp˂fH~Qr˂pfpvےbHfvXnr˂pfpvp˂rے`JXQtlJbHAZf`vXZHAbnXv`rXQJ`f`vXZHAbnXv`AZp˂vpfHZHAےnXv`XQJ`ےr˂ptArdp˂rnvpے`JXf~HbHAnvpے`JXf~HrXQJ`~f``JXQrf~HbHAZZHAb|ZdQbXQJ`ےfH~Qr˂pfpvZp˂fH~Qr˂pfpvےbHvXnbtlfpvp˂rے`JXQtlJbHAZf`vXZHAbnXv`rXQJ`f`vXZHAbnXv`AZp`ۅvpfHJtAdnXv`XQJ`ےr˂ptArdp`ےnvpے`JXf~HbHAnvpے`JXf~HbHA~fv|ZdQbf~HbHAZZHAb|ZdQbbHAZpfH~Qr˂pfpvZp˂fH~Qr˂pfpvZp˂nvptlJfpvdrtAے`JXQtlJ˂rXQf`vXZHAۅnXv`rXQJ`f`vXZHAbnXv`rXQJ`fH~tArdnXv`Jltr˂ptArdJ`ےnvp`JXQf~HbHAnvpے`JXf~HbHAf`vX|ZdQbf~HbdQZ|ZHAbf~HbHAZpfH~rbtlfpvZp˂fH~Qr˂pfpvZp˂nvptlJfpvdrtAے`JXQXv`f˂bf`vXJtAdnXv`rXQJ`f`vXZHAbnXv`bHAZfH~tArdnXv`Jltr˂p~HfHAZdnvp|ZdQf~HbHAnvpے`JXf~HdrtAdf`vn|ZdQbf~HbdQZ|ZHAbpvnrtAJfH~btlfpvZdrtfH~Qr˂pfpvQZ|dvpfHtlJfpvdrtAے`JXQXv`fbdQZ|f`vXJtArdnXv`AJltf`vXZHAۅnXv`rtAJl~f`tArdnXv`Jltr˂p~HfdrtAnvp|ZdQf~HbdQZ|nvp`JXQf~HtbdvXn|ZdQbf~HbdQZ|ZHAbp`fJltfH~btlfpvdrtfH~rbtlfpvQZ|dvpfHtlJfpvdrtAے`JXQ~HfpbdQZ|f`vXJtArdnXv`AJltf`vXJtAdnXv`rtAJl~f`tArdnXv`Jltr˂pvnXdrtAnvp|ZdQf~HbdQZ|nvp|ZdQf~H|dvXnvf|ZdQbf~HbdQZ|H~fZHAbv`fJlbQZfH~btlfpvdrtfH~btlfpvrtAJlH~ftlJfpvdrtA`vXnے`JXQ~Hfp|drf`vXJtArdnXv`AJltf`vXJtArdnXv`tbdQZHAbtArdnXv`Jltvpfr˂pv~tAJlnvp|ZdQf~HbdQZ|nvp|ZdQf~HZ|dے`JXQ|ZdQbfHfbdQZ|H~fZHAbHfpvtbdQZfH~btlfpvdrtfH~btlfpvrtAJlr˂ptlJpvndrtA`vXnے`JXQnXv|drf`vXJtArdnXv`AJltf`vXJtArdnXv`tdrtZHAbtArdrXQJ`Jltvpfr˂p`f~tAJlnvp|ZdQf~HbdQZ|nvp|ZdQf~HAJltے`JXQ|ZdQbےHAZbdQZ|H~fZHAbHfpvtbQZdfH~btlfpvdrtfH~btlfpvbdQZ|r˂ptlJp˂rdrtA`vXnے`JXQnXHrtAJlfZHAbJtArdnXv`AJltf`vXJtArdnXv`drtZHAbtArdXQJ`ےJltvpfr˂pfpvtbdے`JX|ZdQfHbdQZ|nvp|ZdQf~HAJltے`JXQ|ZdQbbHAZbdQZ|H~f|ZdQbnXv`QZ|dQr˂pbtlfpvdrtfH~btlfpvbdQtAr˂ptlJp˂rdrtA`vXntlJf~HrtAJlZHAbJtArdnrXQJ`AJltf`vXJtArdnXv`JltZHAbtArdXQJ`ےJltvpftArdfpvtbdے`JX|ZdQےHAbdQZ|nvp|ZdQf~HbdQZ|ے`JXQ|ZdQbbHAZbdQZ|H~f|ZdQbnXv`QZrtAQr˂pbtlZp˂drtfH~btlfpvdrtAr˂ptlJp˂rdrtA`vXntlJpvnJltZHAbJtArdrXQJ`AJltfZHAbJtArdnXv`JltZHAbtArdXQJ`ےJltvpftArdXv`fbdQZ|ے`JX|ZdQbHAbdQZ|ے`JX|ZdQfHbdQZ|lے`JXQ|ZdQbbHAZbdQZ|H~f|ZdQb~HfdrtAQr˂pbtlZp˂drtQr˂pbtlfpvtbdr˂ptlJp˂rdrtA`vXntlJpvnJltZHAbJtArdrXQJ`AJltZHAbJtArdnrXQJ`QZ|dZHAbtArdXQJ`ےJltvpftArdXv`pbdQZ|ے`JX|ZdQbHAbdQZ|ے`JX|ZdQp˂rtAJlے`JXQ|ZdQbbHAZbdQZ|H~f|ZdQb˂rXQrAJlQr˂pbtlZp˂drtQr˂pbtlrXQJ`ۑtbdr˂ptlJp˂rdrtA`vXntlJJ`ےtbdQZHAbJtArdrXQJ`AJltZHAbJtArdbHAQZ|lZHAbtArdXQJ`ےJltvpftArdbHAZpZ|dے`JX|ZdQbHAbdQZ|ے`JX|ZdQZp˂tbnے`JXQf~HbHAZbdQZ|H~f|ZdQb˂rXQrtAJlQr˂pbtlZp˂drtQr˂pbtlrXQJ`pvpfr˂pfpvp˂rdtAJ`vXntlJJ`p˂tbdQZHAbJtArdrXQJ`AJltZHAbJtArd˂rXf`vXZHAbnXv`XQJ`ےltbvpftArdrXQJZ|dnے`JX|ZdQbHAbdQZ|ے`JX|ZdQQJ`ےnvpے`JXQf~HbHAZnvpH~f|ZdQb`ےbvfQr˂pbtlZp˂drtQr˂pbtlbHAZpfH~r˂pfpvp˂rfHf`vXntlJHAZp˂f`vXZHAbJtArdrXQJ`AJltZHAbJtArd˂rXf`vXZHAbnXv`XQJ`ے`vXnvpftArdrXQJnvpے`JXf~HbHAbdQZ|ے`JX|ZdQQJ`ےnvpfے`JXQf~HbHAZvpfH~f`vXntArdnXv`rtAJlZHAbArd|QJ`ےJltZHAbArd|rXQJ`JltpZHAJtArdJ`ےltbHAbےrd|J`ےltbJXQrdQtArdJ`ےtbnAbے`rd|J`ےtbdbے`pfH~ㅀvpf|ZdQbf~Htdr`JQrZdQbtbHAZpbdQZ|`JXQZdQbtHAZpbdQZ|bے`p|ZdbHAZpdQZ|`JXQrZdQbtbHAZpdQZ|˂pZHAf~bHAZp˅vpfHJXQrZdQbtbHAZpQZ|dJXQHAbf۝`vH~ftlJfpvtAJlpZHAblJt˂rXdrtAr˂plJt˂rXdrtAZHAbQbJtA˂rXQdrtAJ˂pZlJtA˂rXQdrtAJbے`HfvnXrXQf`˂pZHlJtArXQrtAJlے`JXXnvˍZHAbtArdnXv`tbdQZے`JArd|QJ`ےJltZHAbArd|QJ`ےJltے`JXrdfJ`ےltbHAbےrd|J`ےltbpZHAbv`fJ`ےvXnAbے`rdfJ`ےtbdQr˂ppfH~ے`JXQ|ZdQbfHf|drXQr˂ZdQbtbHAZpbdQZ|`JXQZdQbtbHAZpbdQZ|Qr˂p~HfbHAZpdQZ|`JXQrZdQbtbHAZpdQZ|ے`J~HfpbHAZpvpfHJXQr~HfpbHAZpQZ|dZHAbf۝`vr˂ptlJpvntAJlpZHAblJt˂rXdrtAr˂plJt˂rXdrtAZHAbpvn˂rXQdtAJl˂pZlJtA˂rXQdrtAJXQr˂vnXrXQ~f`˂pZHvnXrXQtAJlے`JXXnvˍZHAbtArdrXQJ`tbdQtAے`JArd|QJ`ےJltZHAbArd|QJ`ےJltے`JXXv`fJ`ےtbnHAbےrd|J`ےltbpZHAbv`fJ`ےvXnAbے`v`fJ`ےtbnQrpfH~ے`JXQ|ZdQbےHAZJltXQrZHZdQbtbHAZpbdQZ|`JXQZdQbtbHAZpbdQZ|QHAbې~HfbHAZpvpf`JXQrZdQbtbHAZpdQZ|ے`J~HfpbHAZpvpfHJXQr~HfpbHAZp˅vpfH`JXQf۝`vr˂ptlJp˂rbdQZ|Abے`lJt˂rXdrtAr˂plJt˂rXdrtA`JXQpvn˂rXQHf`˂pZlJtA˂rXQdrtAJXQHAbvnv`rXQ~f`˂pZHvnXrXQf`r˂pXnvˍZHAbtArdXQJ`ےdrtAJXQrArdQJ`ےJltZHAbArd|QJ`ےJltr˂pXv`fJ`ےvXnHAbےrdfJ`ےltbے`JXQf~HJ`ےvXnAbے`v`fJ`ےvXnZHAbpfH~ے`JXQ|ZdQbbHAZJlt˂pZHf~HbHAZpbdQZ|`JXQZdQbtbHAZpbdQZ|ZHAbې~HfbHAZpvpfH`JXQr~HfbHAZpdQZ|r˂pfpvbHAZpvpfHJXQr~HfpbHAZpvpfH`JXQf۝`vr˂ptlJp˂rbdQZ|Abے`fpv˂rXdtAJlr˂plJt˂rXdrtA`JXQpvn˂rXQ~f`˂pZpvn˂rXQdtAJlZHAbnXv`rXQ~f`˂pZHvnXrXQ~f`r˂p`XnvˍZHAbtArdXQJ`ےltbJXQrnXv`QJ`ےtbZHAbArd|QJ`ےJltrے`Xv`fJ`ےvXnHAbےXv`fJ`ےtbnے`JXQf~HJ`ےvXnAbے`v`fJ`ےvXnہJXQrpfH~ے`JXQ|ZdQbbHAZdQZ|ZAbf~HbHAZpnvp`JXQZdQbtbHAZpbdQZ|JXQr~HfbHAZpvpfH`JXQr~HfbHAZpvpfrےfpvbHAZpvpfHJXQr~HfpbHAZpvpfH˂pZHf۝`vr˂ptlJp˂rdrtAJے`JXQfpv˂rXfHf`r˂plJt˂rXdrtA˂pZHpvn˂rXQ~f`˂pZpvn˂rXQHf``JXQrnvf󂀉rXQ~f`˂pZHvnXrXQ~f`Abے`XnvˍZHAbtArdXQJ`ےltbr˂pnXv`QJ`ےvXnZHAbArdQJ`ےJltAbے`Xv`fJ`ےvXnHAbےXv`fJ`ےvXn˂pZ~HfpJ`ےvXnAbے`v`fJ`ےvXnہJXQrpfH~ے`JXQ|ZdQbbHAZdQZ|lZHAbf~HbHAZpvpfH`JXQf~HbHAZpbdQZ|JXQr~HfbHAZpvpfH`JXQr~HfbHAZpvpfHHAbےvnXbHAZdvpfHJXQr~HfpbHAZpvpfH˂p`Zf۝`vr˂ptlJp˂rtbnے`JXQfpv˂rX~f`r˂pfpv˂rXdtAJl˂p`pvn˂rXQ~f`˂pZpvn˂rXQ~f``JXQrv`frtAJl~f`˂pZHvnXrXQ~f`QXb㉀XnvˍZHAbtArdXQJ`ےvp`r˂pnXv`QJ`ےvXnZHAbnXv`QJ`ےtbJXQrXv`fJ`ےvXnHAbےXv`fJ`ےvXn˂p`~HfpۑtbdvXnAے`v`fJ`ےvXnۑpJAHrpfH~ے`JXQ|ZdQbbHAZvXnZAb`f~HbHAZpvpfH`JXQf~HbHAZpnvp`pZHA㐕~HfbHAZpvpfH`JXQr~HfbHAZpvpfHJXQrvnXvQZ|dvpfHJXQrbt~HfpbHAZpvpfH󙐂ˁ`Zf۝`vr˂ptlJp˂rvpfHJXQrfpv˂rX~f`r˂pfpv˂rXvXnbے`pvn˂rXQ~f`˂pZpvn˂rXQ~f`˂pZHAf~HfrtAJl~f`lJtvnXrXQ~f`QXb㉀XnvˍZHAbtArdXQJ`ے~f`pZHAnXv`QJ`ےvXnZHAbnXv`QJ`ےvpfHJXQrXv`fJ`ےvXnHAbےXv`fJ`ےvXnbے`pvntbdvXnAd|v`fJ`ےvXnۑp`ZQp|drے`JXQf~HbHAZvXnbے`f~HbHAZpvpfH`JXQf~HbHAZp~f`p`JX~HfbHAZvpfH`JXQr~HfbHAZpvpfHJXQrXv`fQZ|dvpfHZdQbt~HfpbHAZdvpfHXb㉀ۑQtJlr˂pfpvp˂rvp`vJXQrfpv˂rX~f`r˂pfpv˂rXvXnQrbtpvndrtAJ~f`˂pZpvn˂rXQ~f`˂p`J~HfrtAJl~f`lJtAvnXrtAJl~f`pJAHrtbAdZZHAbnXv`XQJ`ےXnvpZA`nXv`QJ`ےvXnZHAbnXv`QJ`ےvp`lJA|Xv`fltbvXnHAے`Xv`fJ`ےvXnXQrbtpvntbdvXnrd|v`ftbdvXnېˁ`ZQ|drے`JXQf~HbHAZpfH~JXQrf~HbHAZpvpfH`JXQf~HbHAZpvXnہZdQbt~HfdQZ|vpfHJXQrb~HfbHAZpvpfHl|ZXv`fQZ|dvpfHZdQbt~HfpQZ|dvpfHXb㉀ۑQtJlr˂pfpvp˂rf`vbtlfpv˂rX~f`r˂pfpv˂rXvpfHlJtpvndrtAJ~f`tlJpvn˂rXQ~f`dQbt~fpvrtAJl~f`lJtAvnXrtAJl~f`pJAHQXbtbAdZZHAbnXv`XQJ`ےXnvJtAd|nXv`QJ`ےvXnZHAbnXv`QJ`ے~f`Ard|Xv`fltbvXntAd|Xv`fJ`ےvXnlJtArnXv`tbdvXnrd|v`ftbdvXn㉀ۑpJ|drے`JXQf~HbHAZpfHXZdQbtf~HbHAZvpfH`JXQf~HbHAZpvXnہZdQbt~HfdQZ|vpfHZdQbt~HfbHAZvpfHd|Zf~HQZ|dvpfHZdQbt~HfpQZ|dvpfHAHr󙐂QtJlr˂pfpvp˂rnvplJtfpvdrtA~f`r˂pfpv˂rXvpfHXlJArpvndrtAJ~f`lJtApvndrtAJ~f`dQbt璅fpvrtAJl~f`lJtAvnXrtAJl~f`ˁ`ZQXbtbAdZZHAbnXv`XQJ`ےfH~Ard|nXv`JltvXnZHAے`nXv`QJ`ےnvp|ZdQXv`fltbvXnrd|Xv`fltbvXnl|ZdQnXv`tbdvXnrd|v`ftbdvXn㉀ۑpJ|drے`JXQf~HbHAZf`vXZdQbtf~HbdQZ|vpfHJXQrf~HbHAZpfH~btl~HfdQZ|vpfHZdQbt~HfdQZ|vpfHbtlffpQZ|dvpfHZdQbt~HfpQZ|dvpfHAHr󙐉QtJlr˂pfpvp˂rnvplJtfpvdrtA~f`btlfpv˂rXf`vXJtArdpvndrtAJ~f`lJtApvndrtAJ~f`JtArdvnrXrtAJl~f`lJtAvnXrtAJl~f`ۑpJAtbAdZZHAbnXv`XQJ`ےfH~Ard|nXv`JltvXnJtAd|nXv`QJ`ےnvp|ZdQXv`fltbvXnrd|Xv`fltbvXn|ZdQQJ`ےtbdvXnrd|v`ftbdvXnHr󙐂ˁ|drے`JXQf~HbHAZvpfZdQbtf~HbdQZ|vpfHZdQbtf~HbHAZfH~btl~HfdQZ|vpfHZdQbt~HfdQZ|vpfHbtlHAZpQZ|dvpfHZdQbt~HfpQZ|dvpfH`ZQXbQtJlr˂pfpvp˂rH~flJtfpvdrtA~f`lJtfpvdrtAvpJtArpvndrtAJ~f`lJtApvndrtAJ~f`JtAdQbrXQrtAJl~fZHlJtAvnXrtAJl~f`ۑpJAtbAdZZHAےnXv`XQJ`ے`vXnArd|nXv`JltvXnArd|nXv`JltfH~ZdQbtXv`fltbvXnrd|Xv`fltbvXntlJJ`ےtbdAbے`rd|v`ftbdvXnHr󙐂ˁ|dr`JXQrf~HbHAZvpfZdQbtf~HbdQZ|vpfHZdQbtf~HbdQZ|f`vXlJtAHfpdQZ|vpfHZdQbt~HfdQZ|vpfHtArdbHAZpQZ|dJXQrZdQbtHfpQZ|dvpfH`pJAHrQtJlbtlfpvp˂rH~flJtfpvdrtA~f`lJtfpvdrtAnvprd|vnrdrtAJ~f`lJtApvndrtAJ~f`|ZdQbrXQrtAJl˂pZHlJtAvnrXrtAJl~f`󙐂ˁ`ZtbAdZJtAdnXv`XQJ`ے`pfHArd|nXv`JltvXnArd|nXv`JltfH~ZdQbtXQJ`ےltbvXnrd|Xv`fltbvXntlJJ`ےtbdAbے`rd|QJ`ےtbdvXnQXb㉀|dr|ZdQbf~HbHAZ~f`ZdQbtf~HbdQZ|vpfHZdQbtf~HbdQZ|f`pfHlJtAHAZpdQZ|vpfHZdQbt~HfdQZ|vpfHtArdtbHAZpQZ|dJXQrZdQbtHAZpQZ|dvpfHۑpJAHrQtJltlJfpvdrtAvXnlJtfpvdrtA~f`lJtfpvdrtA~f`rdZQb˂rXQdrtAJ~fZlJtApvndrtAJ~f`lJtArXQrtAJl˂pZHlJtArXQrtAJl~fr󙐂ˁ`tbAdZtArdnXv`dQZ|vpfHArd|nXv`JltvXnArd|nXv`JltvXntlJJ`ےltbHAbےrd|Xv`fltbvXnrd|J`ےtbdAbے`rd|J`ےtbd˂pZHpfH~|dr|ZdQbf~HdrtAJ~f`ZdQbtfHfpbdQZ|vpfHZdQbtf~HbdQZ|vpfHtArdbHAZpdQZ|`JXQrZdQbtHfpdQZ|vpfHZdQbtbHAZpQZ|dJXQrZdQbtbHAZpQZ|dAbے`f۝`vQtJltlJfpvltbvXH~lJtvndrtA~f`lJtfpvdrtA~f`|ZdQb˂rXQdrtAJ˂pZlJtAvnrdrtAJ~f`lJtArXQrtAJl˂pZHlJtArXQrtAJlJXQrXnvˍtbAdZtArdnXv`dQZ|fZHAArd|rXQJ`JltvXnArd|nXv`JltvXHtlJJ`ےltbHAbےrd|XQJ`ےltbvXnrd|J`ےtbdAbے`rd|J`ےtbd˂pZHpfH~|dr|ZdQbf~HdrtAJbJQZdQbtHAZpbdQZ|vpfHZdQbtf~HbdQZ|~fZHtArdbHAZpdQZ|`JXQrZdQbtHAZpdQZ|vpfHlJtArbHAZpQZ|dJXQrZdQbtbHAZpQZ|dAbے`f۝`vQtJltlJfpvl|dr˂plJt˂rXdrtA~flJtfpvdrtAAb|ZQbl˂rXQdrtAJ˂pZlJtA˂rXQdrtAJ~fZd|ZrXQrtAJl˂pZHlJtArXQrtAJlpZHAXnvˍtbAdZtArdnXv`rtAJlZHAbArd|QJ`ےJltZHAbArd|nXv`JltpZHAJtArdJ`ےltbHAbےrd|J`ےltbHAbdQbtJ`ےtbdAbے`rd|J`ےtbdbے`pfH~|dr|ZdQbf~HtbdQ`JXQZdQbtbHAZpbdQZ|`JXQZdQbtfHfpbdQZ|bے`|ZdbHAZpdQZ|`JXQrZdQbtbHAZpdQZ|˂pZHAlJtArbHAZpQZ|dJXQrZdQbtbHAZpQZ|dJXQrːf۝`vQtJltlJfpvZ|dr˂plJt˂rXdrtAr˂plJtvndrtAJXQrQbtl˂rXQdrtAJ˂pZlJtA˂rXQdrtAJbے`d|ZrXQtAJl˂pZHlJtArXQrtAJlpZHAXnvˍtbAdZ|-----------------------............................ \ No newline at end of file diff --git a/vendor/endroid/qr-code/assets/data/qrv31_3.dat b/vendor/endroid/qr-code/assets/data/qrv31_3.dat deleted file mode 100755 index c72dfda01..000000000 --- a/vendor/endroid/qr-code/assets/data/qrv31_3.dat +++ /dev/null @@ -1,281 +0,0 @@ -{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvqrqrqrqropopopopmnmnmnmnijijijijhghghghgfefefefedcdcdcdc`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTSRQRQRQRQ{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvqrqrqrqropopopopmnmnmnmnijijijiihghghghgfefefefedcdcdcdc`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTSRQRQRQRQ{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvqrqrqrqropopopopmnmnmnmniiiijijihghghghgfefefefedcdcdcdc`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTSRQRQPOPO{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvqrqrqrqropopopopmnmnmnmnjijijijihghghghgfefefefebabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTSPOPOOOOO~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvqrqrqrqropopopopmnmnmnmnjijijijihghghghgfefefefebabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTSOPOPOPOP}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvqrqrqrqropopopopmnmnmnmnjijijijihghghghgfefefefebabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTSOPOPOPOP}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvqrqrqrqropopopopmnmnmnmnjijijijihghghghgfefefefebabababa`_`_`_`_^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVUTSTSTSTSOPOPOPOP}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxutstststqrqrqrqropopopopmnmnmnmnjijijiiihghghghgfefefefebabababa`_`_`_`_^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVUTSTSTSTSOPOPOPOP}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxststststqrqrqrqropopopopmnmnmnmniiijijijhghghghgfefefefebabababa`_`_`_`_^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVUTSTSTSTSOPOPOPOP}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxststststqrqrqrqropopopopmnmnmnmnijijijijhghghghgfefefefebabababa`_`_`_`_^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVUTSTSTSTSOPOOOOOO}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxststststqrqrqrqropopopopmnmnmnmlijijijijhghghghgfefefefebabababa`_`_`_`_^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVUTSTSTSTSPOPOPOPO}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxststststqrqrqrqropopopopklklklklijijijijhghghghgdcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVUTSTSTSTSPOPOPOPO}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxststststqrqrqrqropopopopklklklklijijijijhghghghgdcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVUTSTSTSTSPOPOPOPO}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxststststqrqrqrqropopopopklklklklijijiiiihghghghgdcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVUTSTSTSTSPOPOPOPO}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxststststqrqrqrqropopopopklklklkliijijijihghghghgdcdcdcdcbabababa`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSPOPOPOPO}~}~}~}~{|{|{|{|yzyzyzyzwvuvuvuvststststqrqrqrqropopopopklklklkljijijijihghghghgdcdcdcdcbabababa`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSPOOOOOOP}~}~}~}~{|{|{|{|yzyzyzyzuvuvuvuvststststqrqrqrqropopopopklklklkljijijijihghghghgdcdcdcdcbabababa`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSOPOPOPOP}~}~}~}~{|{|{|{|yzyzyzyzuvuvuvuvststststqrqrqrqropopopopklklklkljijijijihghghghgdcdcdcdcbabababa`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSRQOPOPOPOP}~}~}~}~{|{|{|{|yzyzyzyzuvuvuvuvststststqrqrqrqropopopopklklklkljijijijihghghghgdcdcdcdcbabababa`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWVUVUVUVURQRQRQRQOPOPOPOP}~}~}~}~{|{|{|{|yzyzyzyzuvuvuvuvststststqrqrqrqropopopopklklklkljijiiiiifefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWVUVUVUVURQRQRQRQOPOPOPOP}~}~}~}~{|{|{|{|yzyzyzyzuvuvuvuvststststqrqrqrqropopopopklklklklijijijijfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWVUVUVUVURQRQRQRQOPOPOPOP}~}~}~}~{|{|{|{|yzyzyzyzuvuvuvuvststststqrqrqrqropopopopklklklklijijijijfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWVUVUVUVURQRQRQRQOOOOOOPO}~}~}~}~{|{|{|{|yzyzyzyzuvuvuvuvststststqrqrqrqropopopopklklklklijijijijfefefefedcdcdcdcbabababa`_`_`_`_\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVURQRQRQRQPOPOPOPO}~}~}~}~{|{|{|{|yxwxwxwxuvuvuvuvststststqrqrqrqropopopopklklklklijijijijfefefefedcdcdcdcbabababa`_`_`_`_\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVURQRQRQRQPOPOPOPO}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvststststqrqrqrqropopopopklklklklijijijijfefefefedcdcdcdcbabababa`_`_`_`_\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVURQRQRQRQPOPOPOPO}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvststststqrqrqrqropopopopklklklklijiiiiiifefefefedcdcdcdcbabababa`_`_`_`_\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVURQRQRQRQPOPOPOPO}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvststststqrqrqrqronmnmnmnklklklkljijijijifefefefedcdcdcdcbabababa`_`_`_`_\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVURQRQRQRQPOPOPOPO}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvststststqrqrqrqrmnmnmnmnklklklklhghghghgfefefefedcdcdcdcbabababa`_`_`_`_\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVURQRQRQRQOOOOOPOP}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvststststqrqrqrqrmnmnmnmnklklklklhghghghgfefefefedcdcdcdcbabababa`_`_`_`_\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVURQRQRQRQOPOPOPOP}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvststststqrqrqrqrmnmnmnmnklklklklhghghghgfefefefedcdcdcdcbabababa`_`_`_`_\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVURQRQRQRQOPOPOPOP}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvststststqrqrqrqrmnmnmnmnklklklklhghghghgfefefefedcdcdcdcbabababa^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVURQRQRQRQOPOPOPOP}~}~}~}~{zyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqrmnmnmnmnklklklklhghghghgfefefefedcdcdcdcbabababa^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVURQRQRQRQOPOPOPOP}~}~}~}~yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqrmnmnmnmnklklklklhghghghgfefefefedcdcdcdcbabababa^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVURQRQRQRQOPOOOOOP}~}~}~}~yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqrmnmnmnmnklklklklhghghghgfefefefedcdcdcdcbabababa^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWTSTSTSTSRQRQRQRQOPOPOPON}~}~}~}~yzyzyzyzwxwxwxwxuvuvuvuvststststqpopopopmnmnmnmnklklklklhghghghgfefefefedcdcdcdcbabababa^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWTSTSTSTSRQRQRQRQMNMNMNMN}~}~}~}~yzyzyzyzwxwxwxwxuvuvuvuvststststopopopopmnmnmnmnklklklklhghghghgfefefefedcdcdcdcbabababa^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWTSTSTSTSRQRQRQRQMNMNMNMN}~}~}~}~yzyzyzyzwxwxwxwxuvuvuvuvststststopopopopmnmnmnmnklklklklhghghghgfefefefedcdcdcdcbabababa^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWTSTSTSTSRQRQRQRQMNMNMNMN}~}~}~}~yzyzyzyzwxwxwxwxuvuvuvuvststststopopopopmnmnmnmnklklklklhghghghgfefefefedcdcdcdcbabababa^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWTSTSTSTSRQRQRQRQMNMNMNMN}~}~}~}~yzyzyzyzwxwxwxwxuvuvuvuvststststopopopopmnmnmnmnklklkjijhghghghgfefefefedcdcdcdc`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWTSTSTSTSRQRQRQRQMNMNMNMN}|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststopopopopmnmnmnmnijijiiiihghghghgfefefefedcdcdcdc`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWTSTSTSTSRQRQRQRQMNMNMNMN{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststopopopopmnmnmnmnijijijijhghghghgfefefefedcdcdcdc`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWTSTSTSTSRQRQRQRQMNMNMNMN{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststopopopopmnmnmnmnijijijijhghghghgfefefefedcdcdcdc`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTSRQRQRQRQMNMNMNMN{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvsrqrqrqropopopopmnmnmnmnijijijijhghghghgfefefefedcdcdcdc`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTSRQRQRQRQMNMNMNMNMNMNMNMNMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>9:9:9:9:7878787843434343212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!     - - - -MNMNMNMNKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>9:9:9:9:7878787843434343212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!     - - - -MNMNMNMNKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>9:9:9:9:7878787843434343212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!      - - - -MNMNMNMNKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=<9:9:9:9:7878787843434343212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%$#$#$#$#         - - - -MNMNMNMNKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCDABABABAB?@?@?@?@;<;<;<;<9:9:9:9:7878787843434343212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%$#$#$#$#         - - - -MNMNMNMNKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCDABABABAB?@?@?@?@;<;<;<;<9:9:9:9:7878787843434343212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%$#$#$#$#         - - - -MNMNMNMNKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCDABABABAB?@?@?@?@;<;<;<;<9:9:9:9:7878787843434343212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%$#$#$#$#         - - - -MNMNMNMNKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCDABABABAB?@?@?@?@;<;<;<;<9:9:9:9:7878787843434343212121210/0/0/0/.-.-.-,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#         - - - -MNMNMNMNKLKLKLKLIJIJIJIHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@;<;<;<;<9:9:9:9:7876565643434343212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#         - - - -MNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@;<;<;<;<9:9:9:9:5655555643434343212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#         - - - -MNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@;<;<;<;<9:9:9:9:5656565643434343212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#"!         - - - -MNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?>;<;<;<;<9:9:9:9:5656565643434343212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('&%&%&%&%"!"!"!"!         - - - -MNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFCDCDCDCDABABABAB=>=>=>=>;<;<;<;<9:9:9:9:5656565643434343212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('&%&%&%&%"!"!"!"!         - - - -MNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFCDCDCDCDABABABAB=>=>=>=>;<;<;<;<9:9:9:9:5656565643434343212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('&%&%&%&%"!"!"!"!         - - - -MNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFCDCDCDCDABABABAB=>=>=>=>;<;<;<;<9:9:9:9:5656555543434343212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('&%&%&%&%"!"!"!"!         - - - -MNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFCDCDCDCDABABABAB=>=>=>=>;<;<;<;<9:9:9:9:5565656543434343212121210/0/0/.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%"!"!"!"!         - - - -MNMNMNMNKLKLKLKJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB=>=>=>=>;<;<;<;<9:9:9:9:656565654343434321212121.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%"!"!"!"!         - - - -MNMNMNMNIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB=>=>=>=>;<;<;<;<9:9:9:9:656565654343434321212121.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%"!"!"!"!         - - MNMNMNMNIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB=>=>=>=>;<;<;<;<9:9:9:9:656565654343434321212121.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%$#"!"!"!"!         MNMNMNMNIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABA@=>=>=>=>;<;<;<;<9:9:9:9:656565654343434321212121.-.-.-.-,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!         MNMNMNMNIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:656555554343434321212121.-.-.-.-,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!         MNMNMNMNIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:565656564343434321212121.-.-.-.-,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!         MNMNMNMNIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:565656564343434321212121.-.-.-.-,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!         MNMNMNMNIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>;<;<;<;<9:9:987856565656434343432121210/.-.-.-.-,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!         MNMNMNMLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>;<;<;<;<7878787856565656434343430/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!         KLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>;<;<;<;<7878787856565656434343430/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!         - -KLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>;<;<;<;<7878787856555555434343430/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('&%$#$#$#$#"!"!"!"!         - - - -KLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCB?@?@?@?@=>=>=>=>;<;<;<;<7878787865656565434343430/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"!         - - - -KLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFABABABAB?@?@?@?@=>=>=>=>;<;<;<;<7878787865656565434343430/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"!         - - - -KLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFABABABAB?@?@?@?@=>=>=>=>;<;<;<;<7878787865656565434343430/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"!         - - - -KLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFABABABAB?@?@?@?@=>=>=>=>;<;<;<;<7878787865656565434343430/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"!       - - - -KLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFABABABAB?@?@?@?@=>=>=>=>;<;<;<;<7878787865656565434343210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"!     - - - -KLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFABABABAB?@?@?@?@=>=>=>=>;<;<;<;<7878787865555556212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"!     - - - -KLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFABABABAB?@?@?@?@=>=>=>=>;<;<;<;<7878787856565656212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"!   - - - -KLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFABABABAB?@?@?@?@=>=>=>=>;<;<;<;<7878787856565656212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)('&%&%&%&%$#$#$#$#"!"!"!"! - - - -KLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<7878787856565656212121210/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#"!"!"!"! - - - -KLKLKLKLIJIJIJIJGHGHGHGHCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<7878787856565656212121210/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#"!"!"!"! - - - -KLKLKLKLIJIJIJIJGHGHGHGHCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<7878787856565656212121210/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#"!"!"!"! - - - -KLKLKLKLIJIJIJIJGHGHGHGHCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;:7878787855555565212121210/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#"!"!"!"! - - - -KLKLKLKLIJIJIJIJGHGHGHGHCDCDCDCDABABABAB?@?@?@?@=>=>=>=>9:9:9:9:7878787865656543212121210/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#"!"!"!"! - - - -KLKLKLKLIJIJIJIJGHGHGHGHCDCDCDCDABABABAB?@?@?@?@=>=>=>=>9:9:9:9:7878787843434343212121210/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#"!"!"!"! - - - -KLKLKLKLIJIJIJIJGHGHGHGHCDCDCDCDABABABAB?@?@?@?@=>=>=>=>9:9:9:9:7878787843434343212121210/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#"!"!"!"!  - - - -KLKLKLKLIJIJIJIJGHGHGHGHCDCDCDCDABABABAB?@?@?@?@=>=>=>=>9:9:9:9:7878787843434343212121210/0/0/0/.-.-.-.-,+,+,+*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!     - - - -11223344((''&&%%aa``__^^\]]^^__` }||{{zzy01122334=<<;;::9pqqrrsstihhggffeWXXYYZZ[LLKKJJIIaabbccdd - - xxwwvvuu5566778888776655uuvvwwxx - - ZZYYXXWW~~55667788$$##""!!]]\\[[ZZ`aabbccd - - yxxwwvvu4556677898877665tuuvvwwx - - eddccbba[\\]]^^_HHGGFFEEeeffgghhttssrrqq99::;;<<44332211yyzz{{|| VVUUOONN99::;;<<YYXXWWVVdeeffggh uttssrrq899::;;<54433221xyyzz{{| a``__^^]_``aabbc !!""DDCCBBAAiijjkkllppoonnmm==>>??@@00//..--}}~~MMLLKKJJ~~}}==>>??@@UUTSRQPOhiijjkklqppoonnm<==>>??@100//..-|}}~~]\\[[ZZYcddeeffg##$$%%&&@@??>>==mmnnooppllkkjjiiAABBCCDD,,++**))IIHHGGFF||{{zzyyAABBCCDDONNMMLLKlmmnnoopmllkkjji@AABBCCD-,,++**)YXXWWVVUghhiioop''(())**<<;;::99qqrrsstthhggffeeEEFFGGHH((''&&%%EEDDCCBBxxwwvvuuEEFFGGHH KJJIIHHGpqqrrsstihhggffeDEEFFGGH)((''&&%UTTSSRRQpqqrrsst++,,--..88776655uuvvwwxx - - ddccbbaaIIJJKKLL$$##""!! AA@@??>>~~}}|ttssrrqqIIJJKKLL - - GFFEEDDCtuuvvwwx - - eddccbbaHIIJJKKL%$$##""! QPPOONNMtuuvvwwx//00112244332211yyzz{{|| ``__^^]]MMNNOOPP !!""##$$==<<;;55|{{zzyyxppoonnmmMMNNOOPP - - CBBAA@@?xyyzz{{| a``__^^]LMMNNOOP!  !!""##$MLLKKJJIxyyzz{{|3344556700//..--}}~~\\[[ZZYYQQRRSSTT%%&&''((44332211xwwvvuutllkkjjiiQQRRSSTT?>>==<<;|}}~~]\\[[ZZYPQQRRSST$%%&&''(IHHGGFFE|}}~~89:;;<<=,,++**))XXWWVVUUUUVVWWXX))**++,,00//..--tssrrqqphhggffeeUUVVWWXX;:987655YXXWWVVUTUUVVWWX())**++,EDDCCBBA=>>??@@A((''&&%%TTSSRRQQYYZZ[[\\~~}}--..//00,,++**))poonmlkjddccbbaaYYZZ[[\\44332211UTTSSRRQXYYZZ[[\~~},--..//0A@@??>>=ABBCCDDE$$##""!! PPOONNMM]]^^__`` ||{{zzyy11223344((''&&%%iihhggff``__^^]]]]^^__``!!""00//..-- QPPOONNM\]]^^__` }||{{zzy01122334=<<;;::9EFFGGHHI !!""##$$LLKKJJIIaabbccdd - - xxwwvvuu55667788$$##""!!eeddccbb\\[[ZZYYaabbccdd##$$%%&&,,++**)) !!""##$MLLKKJJI`aabbccd - - yxxwwvvu4556677898877665IJJKKLLM%%&&''((HHGGFFEEeeffgghhttssrrqq99::;;<<aa``__^^XXWWVVUUeeffgghh''(())**((''&&%%$%%&&''(IHHGGFFEdeeffggh uttssrrq899::;;<54433221~~}}||{MNNOOPQR))**++,,DDCCBBAAiijjkkllppoonnmm==>>??@@]]\\[[ZZTTSSRRQQiijjkkll++,,--..$$##""!!())**++,EDDCCBBAhiijjkklqppoonnm<==>>??@100//..-{zzyyxxwSTUUVVWW~~}}--..//00@@??>>==mmnnooppllkkjjiiAABBCCDDYYXXWWVVPPOONNMMmmnnoopp//001122 ~~},--..//0A@@??>>=lmmnnoopmllkkjji@AABBCCD-,,++**)wvvuuttsXXYYZZ[[ ||{{zzyy11223344<<;;::99qqrrsstthhggffeeEEFFGGHH UUTSRQPOLLKKJJIIqqrrsstt334455;;}||{{zzy01122334=<<;;::9pqqrrsstihhggffeDEEFFGGH)((''&&%srrqqppo\\]]^^__ - - xxwwvvuu5566778888776655uuvvwwxx - - ddccbbaaIIJJKKLL - - ONNMMLLKHHGGFFEEuuvvwwxx<<==>>??yxxwwvvu4556677898877665tuuvvwwx - - eddccbbaHIIJJKKL%$$##""!oiihhggf``aabbccttssrrqq99::;;<<44332211yyzz{{|| ``__^^]]MMNNOOPPKJJIIHHGDDCCBBAAyyzz{{||@@AABBCCuttssrrq899::;;<54433221xyyzz{{| a``__^^]LMMNNOOP! feeddccbddeeffggppoonnmm==>>??@@00//..--}}~~\\[[ZZYYQQRRSSTT GFFEEDDC@@??>>==}}~~DDEEFFGG -qppoonnm<==>>??@100//..-|}}~~]\\[[ZZYPQQRRSSTbaa``__^hhiijklmllkkjjiiAABBCCDD,,++**))XXWWVVUUUUVVWWXX - - CBBAA@@?<<;;::99HHIIJJKK - mllkkjji@AABBCCD-,,++**)YXXWWVVUTUUVVWWX^]]\\[[ZnooppqqrhhggffeeEEFFGGHH((''&&%%TTSSRRQQYYZZ[[\\?>>==<<;88776655LLMMNNOOihhggffeDEEFFGGH)((''&&%UTTSSRRQXYYZZ[[\ZYYXXWWVrssttuuv - - ddccbbaaIIJJKKLL$$##""!! PPOONNMM]]^^__``;:98765544332211UUVVWWXX - - eddccbbaHIIJJKKL%$$##""! QPPOONNM\]]^^__` VUUOONNMvwwxxyyz ``__^^]]MMNNOOPP !!""##$$LLKKJJIIaabbccdd4433221100//..--YYZZ[[\\ a``__^^]LMMNNOOP!  !!""##$MLLKKJJI`aabbccd - - MLLKKJJIz{{||}}~\\[[ZZYYQQRRSSTT%%&&''((HHGGFFEEeeffgghh!!""00//..--,,++**))]]^^__``]\\[[ZZYPQQRRSST$%%&&''(IHHGGFFEdeeffggh IHHGGFFE~XXWWVVUUUUVVWWXX))**++,,DDCCBBAAiijjkkll##$$%%&&,,++**))((''&&%%~~}}||aabbccddYXXWWVVUTUUVVWWX())**++,EDDCCBBAhiijjkklEDDCCBBATTSSRRQQYYZZ[[\\~~}}--..//00@@??>>==mmnnoopp''(())**((''&&%%$$##""!!{{zzyyxxeeffgghhUTTSSRRQXYYZZ[[\~~},--..//0A@@??>>=lmmnnoopA@@??>>= PPOONNMM]]^^__`` ||{{zzyy11223344<<;;::99qqrrsstt++,,--..$$##""!! wwvvuuttiiooppqq QPPOONNM\]]^^__` }||{{zzy01122334=<<;;::9pqqrrsst - - =<<;;554!!""##$$LLKKJJIIaabbccdd - - xxwwvvuu5566778888776655uuvvwwxx//001122 ssrrqqpprrssttuu !!""##$MLLKKJJI`aabbccd - - yxxwwvvu4556677898877665tuuvvwwx 43322110%%&&''((HHGGFFEEeeffgghhttssrrqq99::;;<<44332211yyzz{{||334455;;ooiihhggvvwwxxyy$%%&&''(IHHGGFFEdeeffggh uttssrrq899::;;<54433221xyyzz{{|0//..--,))**++,,DDCCBBAAiijjkkllppoonnmm==>>??@@00//..--}}~~<<==>>??ffeeddcczz{{||}}())**++,EDDCCBBAhiijjkklqppoonnm<==>>??@100//..-|}}~~,++**))(~~}}--..//00@@??>>==mmnnooppllkkjjiiAABBCCDD,,++**))@@AABBCC bbaa``__~~,--..//0A@@??>>=lmmnnoopmllkkjji@AABBCCD-,,++**)!(''&&%%$||{{zzyy11223344<<;;::99qqrrsstthhggffeeEEFFGGHH((''&&%%DDEEFFGG - - - ^^]]\\[[01122334=<<;;::9pqqrrsstihhggffeDEEFFGGH)((''&&%!""##$$%$##""!!xxwwvvuu5566778888776655uuvvwwxx - - ddccbbaaIIJJKKLL$$##""!!HHIIJJKK -  - - ZZYYXXWW4556677898877665tuuvvwwx - - eddccbbaHIIJJKKL%$$##""!%&&''(()ttssrrqq99::;;<<44332211yyzz{{|| ``__^^]]MMNNOOPP LLMMNNOO VVUUOONN899::;;<54433221xyyzz{{| a``__^^]LMMNNOOP! )**++,,-ppoonnmm==>>??@@00//..--}}~~\\[[ZZYYQQRRSSTTUUVVWWXXMMLLKKJJ<==>>??@100//..-|}}~~]\\[[ZZYPQQRRSST-..//001llkkjjiiAABBCCDD,,++**))XXWWVVUUUUVVWWXX~~}}||YYZZ[[\\ IIHHGGFF~~}}|@AABBCCD-,,++**)YXXWWVVUTUUVVWWX12233445 hhggffeeEEFFGGHH((''&&%%TTSSRRQQYYZZ[[\\{{zzyyxx]]^^__`` - - EEDDCCBB|{{zzyyxDEEFFGGH)((''&&%UTTSSRRQXYYZZ[[\~~}5;;<<==> - - ddccbbaaIIJJKKLL$$##""!! PPOONNMM]]^^__`` wwvvuuttaabbccdd  AA@@??>>xwwvvuutHIIJJKKL%$$##""! QPPOONNM\]]^^__` }||{{zzy>??@@AAB``__^^]]MMNNOOPP !!""##$$LLKKJJIIaabbccdd - - ssrrqqppeeffgghh!!""##$$==<<;;55tssrrqqpLMMNNOOP!  !!""##$MLLKKJJI`aabbccd - - yxxwwvvuBCCDDEEF\\[[ZZYYQQRRSSTT%%&&''((HHGGFFEEeeffgghhooiihhggiiooppqq%%&&''((44332211poonmlkjPQQRRSST$%%&&''(IHHGGFFEdeeffggh uttssrrqFGGHHIIJ - - XXWWVVUUUUVVWWXX))**++,,DDCCBBAAiijjkkllffeeddccrrssttuu))**++,,00//..--iihhggffTUUVVWWX())**++,EDDCCBBAhiijjkklqppoonnmJKKLLMMN TTSSRRQQYYZZ[[\\~~}}--..//00@@??>>==mmnnooppbbaa``__vvwwxxyy !--..//00,,++**))eeddccbbXYYZZ[[\~~},--..//0A@@??>>=lmmnnoopmllkkjjiNOOUUVVWPPOONNMM]]^^__`` ||{{zzyy11223344<<;;::99qqrrsstt^^]]\\[[zz{{||}}!""##$$%%&&''(())**++,,-DCCBBAA@ijjkkllmpoonnmml=>>??@@A0//..--,}~~+**))(('~~}}||..//0011??>>==<>==3221100/z{{||}}~_^^]]\\[NOOPPQQR544332215667788987766554uvvwwxxy - - dccbbaa`IJJKKLLM$##""!! &''(())*ssrrqqpp::;;<<==33221100zz{{||}}__^^]]\\NNOOPPQQMMNNOOUUonnmmllk>??@@AAB/..--,,+~[ZZYYXXWRSSTTUUV100//..-9::;;<<=43322110yzz{{||} `__^^]]\MNNOOPPQ *++,,--.oonnmmll>>??@@AA//..--,,~~[[ZZYYXXRRSSTTUUVVWWXXYYkjjiihhgBCCDDEEF+**))(('WVVUUTTSVWWXXYYZ-,,++**)=>>??@@A0//..--,}~~\[[ZZYYXQRRSSTTU.//00112kkjjiihhBBCCDDEE++**))((WWVVUUTTVVWWXXYY~~}}||{{ZZ[[\\]] -gffeeddcFGGHHIIJ'&&%%$$#SRRQQPPOZ[[\\]]^!!""#)((''&&%ABBCCDDE,++**))(XWWVVUUTUVVWWXXY2334455; -ggffeeddFFGGHHII''&&%%$$SSRRQQPPZZ[[\\]]zzyyxxww^^__``aa - cbbaa``_JKKLLMMN#""!!  !!"ONNMMLLK^__``aab#$$%%&&'%$$##""!EFFGGHHI(''&&%%$TSSRRQQPYZZ[[\\]~~}}|;<<==>>? - ccbbaa``JJKKLLMM##""!!  !!OONNMMLL^^__``aa vvuuttssbbccddee_^^]]\\[NOOPPQQR"##$$%%&KJJIIHHGbccddeef'(())**+! IJJKKLLM$##""!!  !POONNMML]^^__``a |{{zzyyx?@@AABBC__^^]]\\NNOOPPQQ""##$$%%KKJJIIHHbbccddee - - rrqqppooffgghhii[ZZYYXXWRSSTTUUV&''(())*GFFEEDDCfgghhiij+,,--../MNNOOPPQ !""##$$%LKKJJIIHabbccdde - - xwwvvuutCDDEEFFG [[ZZYYXXRRSSTTUU&&''(())GGFFEEDDffgghhiiiihhggffooppqqrrWVVUUTTSVWWXXYYZ*++,,--.CBBAA@@?jkkllmmn/0011223QRRSSTTU%&&''(()HGGFFEEDeffgghhitssrrqqpGHHIIJJK - - WWVVUUTTVVWWXXYY**++,,--CCBBAA@@jjkkllmmeeddccbbssttuuvvSRRQQPPOZ[[\\]]^~~}}||{.//00112?>>==<<;nooppqqr34455;;<UVVWWXXY)**++,,-DCCBBAA@ijjkkllmpoonnmmlKLLMMNNO SSRRQQPPZZ[[\\]]~~}}||..//0011??>>==<>??@ YZZ[[\\]~~}}|-..//001@??>>==3221100/z{{||}}~DEEFFGGH - - abbccdde - - xwwvvuut5667788987766554uvvwwxxy - - dccbbaa`\]]^^__`GGFFEEDDffgghhiissrrqqpp::;;<<==33221100zz{{||}}UUOONNMM*++,,--.CBBAA@@?jkkllmmnonnmmllk>??@@AAB/..--,,+~HIIJJKKL effgghhitssrrqqp9::;;<<=43322110yzz{{||} `__^^]]\`aabbccd !!""##CCBBAA@@jjkkllmmoonnmmll>>??@@AA//..--,,~~LLKKJJII.//00112?>>==<<;nooppqqrkjjiihhgBCCDDEEF+**))(('LMMNNOOUijjkkllmpoonnmml=>>??@@A0//..--,}~~\[[ZZYYXdeeffggh$$%%&&''??>>==<>==~~}}||{:;;<<==>3221100/z{{||}}~_^^]]\\[NOOPPQQR]^^__``a uvvwwxxy - - dccbbaa`IJJKKLLM$##""!!  !POONNMMLuvvwwxxy0011223333221100zz{{||}}__^^]]\\NNOOPPQQ""##$$%%<<;;5544{zzyyxxw>??@@AAB/..--,,+~[ZZYYXXWRSSTTUUV~~}}||{abbccdde !!""##$yzz{{||} `__^^]]\MNNOOPPQ !""##$$%LKKJJIIHyzz{{||}44556789//..--,,~~[[ZZYYXXRRSSTTUU&&''(())33221100wvvuuttsBCCDDEEF+**))(('WVVUUTTSVWWXXYYZ{zzyyxxweffgghhi$%%&&''(}~~\[[ZZYYXQRRSSTTU%&&''(()HGGFFEED}~~:;;<<==>++**))((WWVVUUTTVVWWXXYY**++,,--//..--,,srrqqppoFGGHHIIJ'&&%%$$#SRRQQPPOZ[[\\]]^wvvuuttsiooppqqr())**++,XWWVVUUTUVVWWXXY)**++,,-DCCBBAA@>??@@AAB''&&%%$$SSRRQQPPZZ[[\\]]~~}}||..//0011++**))((onmlkjiiJKKLLMMN#""!!  !!"ONNMMLLK^__``aab srrqqpporssttuuv,--..//0TSSRRQQPYZZ[[\\]~~}}|-..//001@??>>==>??@@AA\\[[ZZYYZ[[\\]]^~~}}||{.//00112?>>==<<;nooppqqr^]]\\[[Z~~}<==>>??@)**++,,-DCCBBAA@ijjkkllmpoonnmml=>>??@@A0//..--,zyyxxwwvUUVVWWXX~~}}||..//0011??>>==<>==3221100/z{{||}}~MLLKKJJIuttssrrqHIIJJKKLxwwvvuut5667788987766554uvvwwxxy - - dccbbaa`IJJKKLLM$##""!! ihhggffeaabbccddssrrqqpp::;;<<==33221100zz{{||}}__^^]]\\NNOOPPQQJIIHHGGFjkkllmmnonnmmllk>??@@AAB/..--,,+~IHHGGFFEqppoonnmLMMNNOOPtssrrqqp9::;;<<=43322110yzz{{||} `__^^]]\MNNOOPPQ eddccbbaeeffgghhoonnmmll>>??@@AA//..--,,~~[[ZZYYXXRRSSTTUU - -FEEDDCCBnooppqqrkjjiihhgBCCDDEEF+**))(('EDDCCBBAmllkkjjiPQQRRSSTpoonnmml=>>??@@A0//..--,}~~\[[ZZYYXQRRSSTTUa``__^^]iijklmnokkjjiihhBBCCDDEE++**))((WWVVUUTTVVWWXXYY BAA@@??>rssttuuv -gffeeddcFGGHHIIJ'&&%%$$#A@@??>>=ihhggffeTUUVVWWXlkkjjiihABBCCDDE,++**))(XWWVVUUTUVVWWXXY]\\[[ZZYoppqqrrs ggffeeddFFGGHHII''&&%%$$SSRRQQPPZZ[[\\]]>==<<;;:vwwxxyyz - cbbaa``_JKKLLMMN#""!!  !!"=<<;;554eddccbbaXYYZZ[[\hggffeedEFFGGHHI(''&&%%$TSSRRQQPYZZ[[\\]YXXWWVVUsttuuvvw - - ccbbaa``JJKKLLMM##""!!  !!OONNMMLL^^__``aa98765544z{{||}}~_^^]]\\[NOOPPQQR"##$$%%&43322110a``__^^]\]]^^__`dccbbaa`IJJKKLLM$##""!!  !POONNMML]^^__``a UOONNMMLwxxyyzz{__^^]]\\NNOOPPQQ""##$$%%KKJJIIHHbbccddee33221100~[ZZYYXXWRSSTTUUV&''(())*0//..--,]\\[[ZZY`aabbccd`__^^]]\MNNOOPPQ !""##$$%LKKJJIIHabbccdde - - LKKJJIIH{||}}~~[[ZZYYXXRRSSTTUU&&''(())GGFFEEDDffgghhii!!""##//..--,,WVVUUTTSVWWXXYYZ*++,,--.,++**))(YXXWWVVUdeeffggh\[[ZZYYXQRRSSTTU%&&''(()HGGFFEEDeffgghhiHGGFFEEDWWVVUUTTVVWWXXYY**++,,--CCBBAA@@jjkkllmm$$%%&&''++**))((SRRQQPPOZ[[\\]]^~~}}||{.//00112(''&&%%$UTTSSRRQhiijjkklXWWVVUUTUVVWWXXY)**++,,-DCCBBAA@ijjkkllmDCCBBAA@SSRRQQPPZZ[[\\]]~~}}||..//0011??>>==<>==>==< !!OONNMMLL^^__``aa {{zzyyxx22334455;;::9988rrssttuu,,--..//##""!! "##$$%%&KJJIIHHGbccddeef - - wvvuutts6778899:MLLKKJJIpqqrrsstPOONNMML]^^__``a |{{zzyyx12233445<;;::998qrrssttu - - <;;55443""##$$%%KKJJIIHHbbccddee - - wwvvuutt6677889977665544vvwwxxyy00112233&''(())*GFFEEDDCfgghhiijsrrqqppo:;;<<==>IHHGGFFEtuuvvwwxLKKJJIIHabbccdde - - xwwvvuut5667788987766554uvvwwxxy 3221100/&&''(())GGFFEEDDffgghhiissrrqqpp::;;<<==33221100zz{{||}}4455;;<<*++,,--.CBBAA@@?jkkllmmnonnmmllk>??@@AABEDDCCBBAxyyzz{{|HGGFFEEDeffgghhitssrrqqp9::;;<<=43322110yzz{{||}/..--,,+**++,,--CCBBAA@@jjkkllmmoonnmmll>>??@@AA//..--,,~~==>>??@@~~}}||{.//00112?>>==<<;nooppqqrkjjiihhgBCCDDEEF A@@??>>=|}}~~ZHAbtlJfpvtbdQZf`vXے`JXfpvrXQJ`ۉbdQZ|fH~ˑJtAdf~HےbHf`vXے`JXQtlJnXv`bdQZ|H~fZHAb|ZdQbp˂rrtAJl~f`ے`JXQtArdnXv`|drnvpQr˂pnXv`bHAdrtf`vX|ZdQfpvAZp˂nvpfr˂ptArdfHfdrtA`vXnے`JXQtlJXQJ`ےtdrvXH~r˂p|ZdQbpvntAJlfH~ˑZHAۍf~HZp˂AJltnvpbtlnXv`rXQJ`~f`vZHAb|ZdQbpvnJltvpfr˂ptArdbHAZtAJl璐fZHAZHAbtlJXv`ftbQZdf`vX`JXQfpvrXQJ`ۉbdQZ|fH~JtArdf~HےbHXnvے`JXQtlJrXQJ`bdQZ|H~fZHAb|ZdQbp˂rtbdQZbJQے`JXQtArd~HfrtAJlnvprbtlnXv`bHAdrtf`vX|ZdQfpvAZp`pfH~r˂ptArdےHAZdrtA`vXnے`JXQtlJXQJ`ے|drr˂pr˂p|ZdQbpvntbdfH~ˑJtAdf~HZp˂AJltnvpbtlnXv`bHAf`vZHAb|ZdQbp˂rJltvpfr˂ptArdbHAZtAJlZHAbZHAbtlJXv`pQZ|df`vX|ZdQfpvrXQJ`ۉbdQZ|fH~JtArdf~HZp˂Xnvے`JXQtlJXQJ`ےbdQZ|H~fZHAbf~Hp˂rtbdQtA`JXQے`JXQtArd˂rXQrtAJlnvpbtlnXv`bHAdrtfZHAb|ZdQfpvrXQJ`pfH~r˂ptArdbHAZdrtA`vXnے`JXQfpvXQJ`ےJltr˂pr˂p|ZdQbJ`ےtbdfH~JtArdf~HZp˂AJltے`JXbtlnXv`bHAfvXnZHAb|ZdQbp˂rJltvpfr˂pnXv`bHAZbdQZ|ZHAbZHAbtlJbHAZpQZrtAf`vX|ZdQfpvrXQJ`ۉbdQZ|Qr˂pJtArdf~HZp˂vpfHے`JXQtlJXQJ`ےbdQZ|H~fZHAbf~Hp˂rdrtA`JQrے`JXQtArd˂rXQJltnvpbtlnXv`bHAdrtZHAb|ZdQfpvbHAZ~f`r˂ptArdbHAZdrtA`vXnے`JXQfpvXQJ`ےJltpZHAbr˂p|ZdQbJ`p˂bdQZ|fH~JtArdf~HZp˂AJltے`JXbtlnXv`drtAdvXnZHAbf~Hp˂rJltvpfr˂pnXv`bHAZbdQZ|ے`JZHAbtlJrXQJdrtAfZHAb|ZdQfpvrXQJ`ۉbdQZ|Qr˂pJtArdf~HQZ|dvpfHے`JXQfpvXQJ`ےbdQZ|H~fZHAےf~Hp˂rltbXQr˂ے`JXQtArd`ےbJltے`JXbtlnXv`bHAdtAZHAb|ZdQfpvrtAJl~fvr˂pnXv`bHAZdrtA`vXn`JXQrfpvXQJ`ےdQZ|pZHAbr˂p|ZdQbHAZp˂bdQZ|Qr˂pJtArdf~HZp˂Jltے`JXbtlnXv`tbdnvpZHAbf~Hp˂rJltvpfbtlnXv`bHAZdrtAJے`JZHAbtlJrXQJrAJlZHAb|ZdQfpvrXQJ`bnvpQr˂pJtArdf~HQZ|dfH~ے`JXQfpvXQJ`ےbdQZ|H~fJtAdf~Hp˂rltbXQrZHے`JXQtArd`ےtbdQے`JXbtlnXv`bHAfHˑZHAb|ZdQfpvrtAJlf`vXr˂pnXv`bHAZdrtA`vXn|ZdQbfpvXQJ`ےdQZ|lAbے`r˂p|ZdQbrXQJ`Z|dQr˂pJtArdf~HZp˂f`vXے`JXbtlnXv`|dnvpZHAےf~Hp˂rJltvpftlJnXv`bHAZtbnJXQrZHAbtlJےbHArtAJlZHAb|ZdQfpvrXQJ`nvpQr˂pJtArdf~HrtAJlfH~`JXQrfpvXQJ`ےbdQZ|H~ftArdf~Hp˂rvp`˂pZHے`JXQtArdZp˂tbdQے`JXbtlnXv`bHAfH~ˑZHAb|ZdQfpvtbdQf`vnbtlnXv`bHAZdrtA`vXn|ZdQbfpvXQJ`ےvXnAbے`r˂p|ZdQbrXQJ`Z|dnQr˂pJtArdf~HZp˂f`vXے`JXbtlnXv`Z|dvpfHJtAdf~Hp˂rJltvpftlJnXv`bHAZvpfHJXQrZHAbtlJےbHAvfˑZHAb|ZdQfpvrXQJ`nvpQr˂pJtArdf~HrtAJl~f`|ZdQbfpvXQJ`ےbdQZ|H~ftArdf~Hp˂r~f`ZAbے`JXQtArdXQJ`ےf`vXے`JXbtlnXv`bHAfH~ˑZHAb|ZdQfpvtdrtvXntlJnXv`bHAZdrtAZHAb|ZdQbfpvXQJ`ےvXnے`JXQr˂pf~HbHAZnvpQr˂pJtArdf~HZdrtf`vXے`JXbtlnXv`AJltvpfHtArdf~Hp˂rJltے`JXQtlJnXv`bHAZvp`vr˂pZHAbXv`fp˂rfH~ˑZHAb|ZdQfpvAJltnvpQr˂pJtArdfHbdQZ|~f`|ZdQbfpvXQJ`ےbdQZ|r˂ptArdf~Hp˂rXnvZHAbے`JXQ~HfXQJ`ےf`vXے`JXbtlnXv`bdQZ|fH~ˑZHAb|ZdQfpvdrtvXnvftlJnXv`bHAZdrtAZHAb|ZdQbfpvXQJ`ےpfH~ے`JXQr˂ppvnbHAZnvpQr˂pJtArdf~Hdrtf`vXے`JXbtlnrXQJ`AJltH~ftArdf~Hp˂rJltے`JXQtlJnXv`bHAZf`vr˂pZHAbXv`fp`ےfH~ˑZHAb|ZdQfpvAJltnvpQr˂pJtArdp˂bdQtAZHAb|ZdQbfpvXQJ`ےbdQZ|r˂ptArdf~Hp˂rXnvZAb`ے`JXQ~HfbHAZpf`vXے`JXbtlnXv`bdQZ|fH~ˑZHAb|ZdQrXQJ`Jltے`JXQtlJnXv`bHAZdtAJZHAb|ZdQbfpvXQJ`ےpfHXJXQrr˂pp`f˂rXQnvpQr˂pJtArdfHdrtf`vXے`JXbtlbHAbdQZ|r˂ptArdf~Hp˂rltbے`JXQtlJnXv`bHAZnvppZHAZHAb~HfpJ`ےfH~ˑZHAb|ZdQfpvAJltnvpQr˂pJtArdZp˂drtAZHAb|ZdQbfpvXQJ`ےnvpr˂ptArdf~Hp˂rfH~bے`ے`JXQvnXbHAZpf`vXے`JXbtlnrXQJ`bdQZ|fH~ˑZHAb|ZdQrXQJ`pJltے`JXQtlJnXv`bHAZfHfZHAb|ZdQbfpvXQJ`ےf`vXJXQrr˂pv`f˂bnvpQr˂pJtArdےHAdrtf`vXے`JXbtl˂rXbdQZ|lr˂ptArdf~Hp˂r`vXnے`JXQtlJnXv`bHAZnvppZA`|ZdQb~HfpHAZdfH~ˑZHAb|ZdQZp˂AJltnvpQr˂pJtArdQJ`ےtbdZHAb|ZdQbfpvXQJ`ےvpfr˂ptArdf~HdrtAfH~JXQrtlJv~rtAJf`vXے`JXbtlrXQJ`ۉbdQZ|fH~ˑZHAbf~HbHAZpQZ|dے`JXQtlJnXv`bHAZH~fZHAb|ZdQbfpvdQZ|vpfbtltArdHfpvbdQZ|nvpQr˂pJtArdbHAdrtf`vXے`JXfpv˂rXrtAJlr˂ptArdf~Hp˂r`vXnے`JXQtlJnXv`drtAJH~fJtAd||ZdQbnXvdrtAfH~ˑZHAb|ZdQZp˂AJltnvpQr˂pnXv`QJ`ےtbdZHAb|ZdQbfpvXQJ`ےvpfr˂ptArdf~Hltb`vXnZdQbttlJ`f~Jltf`vXے`JXbtlrXQJ`ۉbdQZ|fH~ˑZHAbf~HrXQQZ|lے`JXQtlJnXv`bHAZH~fZHAb|ZdQbfpvdQZ|vpflJttArdHfpvbdQZ|nvpQr˂pJtArdbHAdrtf`vXے`JXfpvJ`ےtbnr˂ptArdf~HdrtA`vXnے`JXQtlJnXv`drtAJH~fArd||ZdQbnXHdrtAfH~ˑZHAbf~HZp˂AJltnvpQr˂pnXv`bHAZp˅vpfZHAb|ZdQbfpvJltvpfr˂ptArdfHfl|d`pfHZdQbttlJfpvJlbQZf`vXے`JXfpvrXQJ`ۉbdQZ|fH~ˑZHAۍf~HrXQf`vXے`JXQtlJnXv`bdQZ|H~fZHAb|ZdQbpvnrtAJl~f`lJttArdnXv`|drnvpQr˂pnXv`bHAdrtf`vX`JXQfpvJ`ےnvpr˂ptArdf~HdrtA`vXnے`JXQtlJrXQJ`tbdQvXnArd||ZdQbf~HtAJlfH~ˑZHAbf~HZp˂AJltnvprbtlnXv`bHAXQJ`fH~ZHAb|ZdQbfpvJltvpfr˂ptArdےHAZZ|dvpfHZdQbtlJtArd|f~H˂rXtb`JXQlJtnXv`˙bHAZpvXnAbے`~Hf˂rXQltbvpfHtlJXv`fbHAZpdrtAJvXntArdfpvtbdvpfH˂pZHrd|HAZp˙rtAJlvXnۉ˂p`ZXnvˍZdQbtfpvQJ`ےnvpr˂pArd|f~H˂rXvp`JXQrpvnJ`ےdQZ|~f`tAd|~Hf˂rXQltbvpfH|ZdQbnXv`QZ|d~f`Abے`ZdQbt炀rXQtbdvpfHQXb㉀pfH~ㅉlJtnXv`˙bHAZpfHf`ZHAbہZdQbtfpvQJ`ےvXnۉ˂p`Xv`fbHAZpdrtAJvXnZdQbtpvnJ`ےdQZ|~fZtlJffpۙrtAJlvXnہJXQrlJtAJ`ےQZ|d~f`ۑpJAHrf۝`vArd|f~H˂rXvXn`JXQlJtnXv`˙bHAZvpfHJXQrː~Hf˂rXQltbvpfHlJtAXv`fbHAZpdrtAJHAbtArdtvnrXtbdvpfH˂pZHrd|bHAZp˙rtAJlvXn󙐂ˁ`ZXnvˍZdQbtfpvQJ`ےvpfHr˂pArd|f~HdrtA~f`pZHApvnJ`ےdQZ|~f`rd|~Hf˂rXQltb˂pZHAlJtAQJ`ےQZ|d~f`Abے`ZdQbt炀rXQtbdvpfHQXb㉀pfH~ㅉlJtnXv`˙bHAZp~f`ZHAbہZdQbtfpvJltvXnbے`Xv`fbHAZpdrtAJvXnZdQbtpvnJ`ےdQZ|bے`rd|HAZp˙rtAJlvXnہJXQrlJtAJ`ےQZ|d~f`ۑp`ZQf۝`vArd|f~H˂rXvXn`JXQlJtnXv`bdQZ|vpfHXJXQrː~Hf˂rXQltbvpfHlJtAXv`fbHAZpdrtAJJXQrZdQbtrXQtbdvpfH˂pZHrdfbHAZp˙rtAJlvXnXb㉀ۑXnvˍZdQbtfpvQJ`ےvpfHr˂pArd|f~HdrtAnvpp`JXpvnJ`ےdQZ|~fZrd|~Hf˂rXQltb˂pZHAlJtAJ`ےQZ|d~f`Abے`~HfprXQtbdvpfHpJAHrpfH~ㅉlJtnXv`˙bHAZ~f`ZHAbہZdQbtfpvJltfH~QrbtXv`fbHAZpdrtAJHAbےZdQbtpvnJ`ےdQZ|bے`rd|bHAZp˙rtAJlvXnہJXQrvnXJ`ےQZ|d~f`ˁ`ZQf۝`vArd|f~HdrtAvXn`JXQlJtnXv`bdQZ|f`vXlJA|~Hf˂rXQltb`JXQrlJtAXv`fbHAZpdtAJlpZHAblJtArrXQtbdvpfH˂pZHv`fbHAZp˙rtAJlvXnXb㉀ۑXnvˍZdQbtfpvJltvpfHr˂pArd|fHfpdrtAnvpZdQbtpvnJ`ےdQZ|˂pZrd|~Hf˂rXQtbnے`Jd|ZJ`ےQZ|d~f`Abے`~HfprXQtbdvpfHpJAHQXbpfH~ㅉlJtnXv`bdQZ|~f`ZHAbہZdQbtvnJltfH~lJtXv`fbHAZpdrtAJHAbےZdQbtpvnJ`ےvpfXQr˂dQbtbHAZp˙rtAJlvXnہJXQrvnXJ`ےQZ|d~f`㉀ۑpJf۝`vArd|f~HdrtAvXn`JXQlJtrXQJ`bdQZ|vpArd|~Hf˂rXQltb`JXQrlJtAXv`fbHAZpHf`pZHAblJtArrXQtbdvpfH˂pZHv`fbHAZp˙rtAJlvXnAHr󙐂XnvˍZdQbtfpvJltvpfHr˂pArd|HAZpdrtAfH~ˁZdQbtpvnJ`ےdQZ|˂pZrd|~Hf˂rXQvXnے`Jd|ZJ`ےQZ|d~f`Aے`~HfprXQtbdvpfHˁ`ZQXbp|drlJtnXv`bdQZ|~f`ZHAbہZdQbt˂rXJltf`vXlJArXv`fbHAZpdtAJlHAbےZdQbtpvnJ`ےvpfHXQHAbdQtArdbHAZp˙rtAJlvXnJXQrbtvnXJ`ےQZ|d~f`㉀ۑpJQtJlArd|fHfpdrtAvXn`JXQlJtQJ`ےbdQZ|nvp|ZdQ~Hf˂rXQtbn`JXQrlJtAXv`fbHAZp~f`ے`JXQf~rXQtbdvpfHlJtv`fbHAZp˙rtAJlvXnAHr󙐉tbAdZZdQbtvnJltvpfHr˂pArd|bHAZpdrtAfH~btlpvnJ`ےvpf˂pZrd|~Hf˂rXQvXnr˂pHfvnXJ`ےQZ|d~f`Ad|~HfprXQtbdvpfHۑpJA|drlJtrXQJ`bdQZ|~f`ZHAbہZdQbt˂rXJltf`pfHJtArdXv`fbHAZpHf`HAbےZdQbtpvnJ`ےvpfHZHAbv`fbHAZp˙rtAJlvXnZdQbtvnXJ`ےQZ|d~frHr󙐂ˁQtJlArd|HAZpdrtAvXn`JXQlJtQJ`ےbdQZ|~f`|ZdQ~Hf˂rXQvXn`JXQrlJtAXv`fbHAZ~f`ے`JXQ~HfprXQtbdvpfHlJtAv`fbHAZp˙rtAJl˂pZH`ZQXbtbAdZZdQbt˂rXJltvpfHr˂pArd˙bHAZpdrtAvXnbtlpvnJ`ےvpfH˂pZrd|~HfdrtAJvXnrےvnXJ`ےQZ|d~f`rd|~HfprXQtbdAbے`ۑpJA|drlJtQJ`ےbdQZ|~f`ZHAbf~H˂rXJltvpfHJtArXv`fbHAZp~f`HAbےZdQbtpvnltbvpfH`JXQrv`fbHAZp˙rtAJlvXnZdQbtvnXJ`ےQZ|dJXQrHr󙐂ˁQtJlArd|bHAZpdrtAvXn`JXQfpvQJ`ےbdQZ|~f`ZdQbt琕~Hf˂rXQvXn`JXQrlJtAXv`fdQZ|~f`˂pZ~HfprXQtbdvpfHlJtAv`fbHAZp˙rtAJl˂pZH`pJAHrtbAdZZdQbt˂rXJltvpfHr˂pnXv`˙bHAZpdrtAvXHlJtApvnJ`ےvpfH˂pZrd|~HfdrtAJvXnHAbےvnv`J`ےQZ|d~fZHrd|~HfprXQtbdAbے`󙐂ˁ`Z|drlJtQJ`ےbdQZ|~f`ZHAbf~H˂rXJlt~fZHrd|Xv`fbHAZ~f`HAbےZdQbtpvnltbvpfH`JXQrf~HbHAZp˙rtAJlAbے`ZdQbtvnXJ`ےQZ|dpZHAQXb㉀QtJlArd˙bHAZpdrtAvXn`JXQfpvQJ`ےbdQZ|AbZdQbt琕~HfdrtAJvXn`JXQrlJtAXv`fdQZ|~f`˂p`fpvrXQtbdJXQrlJtAv`fbHAZp˙tAJlbے`ۑpJAHrtbAdZf~H˂rXJltvpfHr˂pnXv`˙bHAZpdrtApZHAlJtApvnltbvpfH˂pZrd|HfpdrtAJvXnJXQrnXv`J`ےQZ|d˂pZHrd|~HfprXQtbnJXQr󙐂ˁ`|drfpvQJ`ےbdQZ|~f`ZHAے`f~H˂rXJltbے`rdZQbXv`fdQZ|~f`HAbےZdQbtvnrltbvpfH˂pZHAf~HbHAZp˙rtAJlAbے`ZdQbtvnXJ`ےvpfHpZHApfH~QtJlnXv`˙bHAZpdrtAvXnJXQrfpvQJ`ےbdQZ|JXQrtlJ~HfdrtAJvXn`JXQrlJtAXQJ`ےdQZ|~f`bے`fpvrXQtbdJXQrlJtAv`fbHAZp˅f`bے`f۝`vtbAdZf~H˂rXJltvpfHbtlnXv`˙bHAZpdrtApZHAtArdpvnltbvpfH˂pZrd|HAZpdrtAJvXnJXQrnvfJ`ےQZ|d˂pZHrd|~HfprXQvXnJXQHAbXnvˍ|drfpvQJ`ےbdQZ|~f`JtAd|f~H˂rXJltbے`p|ZdQbXv`fdQZ|~f`HAbےZdQbt˂rXQltbvpfH˂p`J~HfpbHAZp˙tAJlAbے`ZdQbtvnXJ`ےvpfHے`JXpfH~QtJlnXv`˙bHAZpdrtAvXnZdQbtfpvQJ`ےbdQZ|ZHAbtlJHfpdrtAJvXn`JXQrlJtAJ`ےdQZ|~f`XQrbtvnXrXQtbnJXQrlJtAv`fbHAZp~f`Qr˂pf۝`vtbAdZf~H˂rXJltvpfHlJtnXv`˙bHAZpdrtAے`JXtArdvnrltbvpfH˂pZrd|bHAZpdrtAJvXnl|Zv`fJ`ےvpfH˂pZHrd|~HfprXQvXnۑZHAbXnvˍ|drfpvQJ`ےbdQZ|~f`Ard|f~H˂rXJltQr˂p|ZQblXQJ`ےdQZ|~f`HAbےZdQbt˂rXQltbvpfHdQbt~HfpbHAZp˅f`Abے`ZdQbtvnXJ`ےvpfHے`JXpfH~QtJlnXv`˙bHAZpdrtAvXnZdQbtfpvQJ`ےbdQZ|ZHAbJtArdHAZpdrtAJvXn`JXQrlJtAJ`ےdQZ|~f`lJtArvnXvrXQvXnہJXQrlJtAv`fbHAZd~f`Qrېf۝`vtbAdZf~H˂rXJltvpfHlJtnXv`˙bHAZpdrtAے`JX|Zd˂rXQltbvpfH˂pZrdfbHAZpdrtAJvXnd|Zf~HfJ`ےvpfH˂pZHrd|~HfprtAJlvXnے`JXQXnvˍ|drfpvQJ`ےbdQZ|~fArd|f~H˂rXJltQHAbQbtlJ`ےdQZ|~f`HAbے~Hf˂rXQltbvpfHdQbtpvnbHAZp~f`Abے`ZdQbtvnXtbdvpfHr˂ppfH~QtJlnXv`˙bHAZpdrtAZHAbہZdQbtfpvQJ`ےbdQZ|`JXQJtArdbHAZpdrtAJvXn`JXQrpvnJ`ےdQZ|~f`l|ZdQXv`frXQvXnہJXQrlJtAv`fQZ|d~f`ZHAbېf۝`vtbAdZf~H˂rXJlt`JXQlJtnXv`˙bHAZpdtAJlr˂p|Zd˂rXQltbvpfH˂pZXv`fbHAZpdrtAJvXnbtl~HfJ`ےvpfH˂pZHrd|~HfprtAJlvXnے`JXQXnvˍ|drfpvQJ`ےbdQZ|r˂pArd|f~H˂rXtbZHAbQbJtAJ`ےdQZ|~f`HAbے~Hf˂rXQltbvpfHJtArdpvnbHAZd~f`Abے`ZdQbtvnXtbdvpfHr˂p`pfH~QtJlnXv`˙bHAZpdrtAZHAbہZdQbtfpvQJ`ےnvp``JXQrdfbHAZpdrtAJvXn`JXQrpvnJ`ےdQZ|~f`|ZdQXv`frtAJlvXnہJXQrlJtAv`fQZ|d~f`JXQrf۝`vtbAdZf~H˂rXJlt`JXQlJtnXv`˙bHAZpvXnrے`~Hf˂rXQltbvpfH˂pZXv`fbHAZpdrtAJvXnbtl~fpvtbdvpfH˂pZHrd|HfpۙrtAJlvXnۉ˂pZHXnvˍ|drfpvQJ`ےbdQZ|r˂pArd|f~H˂rXvpfHJXQrpvnJ`ےdQZ|~f`HAے`~Hf˂rXQltbvpfHJtAdQbnXv`QZ|d~f`Abے`ZdQbtvnrXtbdvpfHAbے`pfH~QtJlnXv`˙bHAZpdtAJlZHAbہZdQbtfpvQJ`ے~f`˂pZHXv`fbHAZpdrtAJvXnJXQrbpvnJ`ےdQZ|~f`tlJf~HrtAJlvXnہJXQrlJtAQJ`ےQZ|d~f`JXQrf۝`vtbAdZ|6666666666666666666666666666666666666666667 \ No newline at end of file diff --git a/vendor/endroid/qr-code/assets/data/qrv32_0.dat b/vendor/endroid/qr-code/assets/data/qrv32_0.dat deleted file mode 100755 index b72bdaa20..000000000 --- a/vendor/endroid/qr-code/assets/data/qrv32_0.dat +++ /dev/null @@ -1,289 +0,0 @@ -}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqropopopopnmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWSTSTSTSTQRQRQRQRQRQRQRQPOPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:~}~}~}~}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqropopopopnmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYXWXWXWXWSTSTSTSTQRQRQRQROPOPOPOPOPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:}~}~}~}~}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqropopopopnmnmmmmmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYXWXWXWVUSTSTSTSTQRQRQRQROPOPOPOPOPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:}~}~}~}~}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqropopopopmnmnmnmnlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYVUVUVUVUSTSTSTSTQRQRQRQROPOPOPOPOPOPOPONMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:}~}~}~}~}|{|{|{|{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqropopopopmnmnmnmnlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYZYZYZYZYVUVUVUVUSTSTSTSTQRQRQRQROPOPOPOPMNMNMNMNMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:}~}~}~}~{|{|{|{|{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqropopopopmnmnmnmnlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYZYZYZYZYVUVUVUVUSTSSSSSSQRQRQRQROPOPOPOPMNMNMNMNMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:999999}~}~}~}~{|{|{|{|{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqropopopopmnmnmnmnlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYZYZYZYZYVUVUVUVUTSTSTSTSQRQRQRQROPOPOPOPMNMNMNMNMNMNMNMLKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<:9:9:9:9}~}~}~}~{|{|{|{|{zyzyzyzyzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqropopopopmnmnmnmnlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<:9:9:9:9}~}~}~}~{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqropopopopmnmmmmmmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<:9:9:9:9}~}~}~}~{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqropopopopnmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLKLKLKLKJIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<:9:9:9:9}~}~}~}~{|{|{|{|yzyzyzyzyxwxwxwxwxwxwxwxuvuvuvuvststststqrqrqrqropoponmnlklklklklklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<:9:9:9:987878787}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxwxwxwxwxuvuvuvuvststststqrqrqrqrmnmnmmmmlklklklklklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSSSSSSTQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<:999999:87878787}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxwxwxwxwxuvuvuvuvststststqrqrqrqrmnmnmnmnlklklklklklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUSTSTSTSTQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJIJIJIJIHGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:87878787}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxwvuvuvuvuvuvuvuvststststqrqrqrqrmnmnmnmnlklklklkjijijijijijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUSTSTSTSTQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:87878787}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvuvuvuvuvststststqrqrqrqpmnmnmnmnlklklklkjijijijijijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUSTSTSTSTQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:87878787}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvuvuvuvuvststststopopopopmnmnmnmnlklklklkjijijijijijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUSTSTSTSTQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHGHGHGHGFEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:87878787}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvutstststststststopopopopmnmnmnmnlklklklkjijijijihghghghghghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUSTSTSTSTQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:87878787}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststststststopopopopmnmnmnmmlklklklkjijijijihghghghghghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUSSSSSSTSQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<999999:987878787}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststststststopopopopmmmmnmnmlklklklkjijijijihghghghghghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFEFEFEFEDCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<:9:9:98787878787}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststsrqrqrqropopopopnmnmnmnmlklklklkjijijijihghghghgfefefefefefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;:9:9:8787878787878787}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqropopopopnmnmnmnmlklklklkjijijijihghghghgfefefefefefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDCDCDCDCDABABABAB?@?@?@?@=>=>=>=>9:99999:8787878787878787}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqropopopopnmnmnmnmlklklklkjijijijihghghghgfefefefefefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDCDCDCDCBABABABAB?@?@?@?@=>=>=>=>9:9:9:9:8787878787878787}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqropopopopnmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcdcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABABABABABAB?@?@?@?@=>=>=>=>9:9:9:9:8787878787878787}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqropopopopnmnmnmmmlklklklkjijijijihghghghgfefefefedcdcdcdcdcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUSSSSSTSTQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABABABABABAB?@?@?@?@=>=>=<;<9:9:9:9:8787878787878787}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqropopopopmmmnmnmnlklklklkjijijijihghghghgfefefefedcdcdcdcdcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUSTSTSTSTQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABABABABABA@?@?@?@?@;<;<;<;<9:9:9:9:8787878787878787}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqropopopopmnmnmnmnlklklklkjijijijihghghghgfefefefedcdcdcdcbabababababababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUSTSTSTSTQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@?@?@?@?@;<;<;<;<9:9:9:9:8787878787878787}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqropopopopmnmnmnmnlklklklkjijijijihghghghgfefefefedcdcdcdcbabababababababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUSTSTSTSTQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@?@?@?@?@;<;<;<;<9:9:99998787878787878787}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqropopopopmnmnmnmnlklklklkjijijijihghghghgfefefefedcdcdcdcbabababababababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUSTSTSTSTQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@?@?@?@?>;<;<;<;<99:9:9:98787878787878787}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqropopopopmnmnmnmnlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUSTSTSTSTQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<:9:9:9:98787878787878787}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqropopopopmnmnmmmmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUSTSSSSSTQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<:9:9:9:98787878787878787}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqropopopopmmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUSTSTSTSRQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<:9:9:9:98787878787878787}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqropopopopnmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUTSTSQRQRQRQRQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<:9:9:9:98787878787878765}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqropopopopnmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWTSTSSSSSQRQRQRQRQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<:9:999998787878765656565656565656565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -656565656565654343434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -656565654343434343434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - -656565654343434343434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!       - - - -656565654343434343434321212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -656565654343434321212121212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -656565654343434321212121212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -6565656543434343212121212121210/0/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!          - - - -6565656543434343212121210/0/0/0/0/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!            - - - -6565656543434343212121210/0/0/0/0/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!            - - - -6565656543434343212121210/0/0/0/0/0/0/.-.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!           - - - -6565656543434343212121210/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -6565656543434343212121210/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -6565656543434343212121210/0/0/0/.-.-.-.-.-.-.-,+,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - - - -6565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - - - - - -6565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!       - - - - - - - -6565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+,+,+,+*)*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!       - - - - - - 6565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!        - - - -6565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)*)*)*)*)('('('('&%&%&%&%$#$#$#$#       - - - -6565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)*)*)*)('('('('('&%&%&%&%$#$#$#$#         - - - -6565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('('('('('&%&%&%&%$#$#$#$#         - - - -6565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('('('('('&%&%&%&%$#$#"!"!         - - - -6565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('('('('&%&%&%&%&%"!"!"!"!         - - - -6565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%&%&%&%&%"!"!"!"!         - - - -6565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%&%&%&%&%"!"!"!"!      - - - -6565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%&%&%&%$#"!"!"!"!         - - - -6565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -6565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -6565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -6565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -6565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!       - - - -6565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -6565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - - - - iihhggff,--..//0qppoonnmhiijjkkl54433221PQQRRSSTMLLKKJJIFGGHHIIJ43322110ddeeffgg44332211QQRRSSTTLLKKJJII99::;;<>==??@@AAB - - eeddccbb01122334mllkkjjilmmnnoop100//..-TUUVVWWXIHHGGFFEJKKLLMMN0//..--,hhiijjkk00//..--UUVVWWXXHHGGFFEE==>>??@@``__^^]]%%&&''((xxwwvvuu  - - yyzz{{|| - -   - - yzz{{||}$##""!! abbccdde<;;::998IJJKKLLMTSSRRQQP12233445lkkjjiih%%&]\\[[ZZYBCCDDEEF %%&&aa``__^^45566778ihhggffe ~~}pqqrrsst-,,++**)XYYZZ[[\EDDCCBBANOOPPQQR,++**))(llmmnopq,,++**))YYZZ[[\\DDCCBBAAAABBCCDD\\[[ZZYY))**++,,ttssrrqq}}~~~~}}|}~~ effgghhi87766554MNNOOPPQPOONNMML56677889hggffeed&''(())*YSSRRQQPFGGHHIIJ''(())**]]\\[[ZZ899::;;>=RSSYYZZ[(''&&%%rssttuuv((''&&%%]]^^__``@@??>>==EEFFGGHHXXWWVVUU--..//00ppoonnmm |{{zzyyxijjkkllm43322110QRRSSTTULKKJJIIH9::;;<<=dccbbaa`*++,,--.POONNMMLJKKLLMMN~~}}++,,--..YYXWVUTS<==>>??@a``__^^]$%%&&''(yxxwwvvu  - - xyyzz{{|%$$##""!`aabbccd=<<;;::9[\\]]^^_vwwxxyyz$$##""!!aabbccdd<<;;::99IIJJKKLLTTSSRRQQ11223344llkkjjii - - xwwvvuutmnnooppq0//..--,UVVWWXXYHGGFFEED=>>??@@A`__^^]]\.//00112LKKJJIIHNOOPPQQR||{{zzyy~~}}||//001122SRRQQPPO@AABBCCD]\\[[ZZY())**++,uttssrrq |}}~~! deeffggh98877665_``aabbcz{{||}}~ eeffgghh88776655MMNNOOPPPPOONNMM55667788hhggffee ~~}}tssrqpon !~~}}| qrrssttu,++**))(YZZ[[\\]DCCBBAA@ABBCCDDE\[[ZZYYX23344556HGGFFEEDRSSTUVWXxxwwvvuu {{zzyyxx33445566ONNMMLLKDEEFFGGHYXXWWVVU,--..//0qppoonnmhiijjkkl54433221cddeeffg~iijjkkll44332211QQRRSSTTLLKKJJII99::;;<>==>??@@``__^^]]%%&&''((xxwwvvuu iihhggff%&&''(()xwwvvuut  - - yzz{{||}$##""!! abbccdde<;;::998IJJKKLLMTSSRRQQP?@@AABBC@??99887]]^^__``ppoonnmm%%&&''((ssmmllkk@@AABBCCGFFEEDDCLMMNNOOPQPPOONNM45566778ihhggffe ~~}pqqrrsst-,,++**)kllmmsst qqrrsstt,,++**))YYZZ[[\\DDCCBBAAAABBCCDD\\[[ZZYY))**++,,ttssrrqqeeddccbb)**++,,-tssrrqqp}~~ effgghhi87766554MNNOOPPQPOONNMMLCDDEEFFG76655443aabbccddllkkjjii))**++,,jjiihhggDDEEFFGGCBBAA@@?PQQRRSSTMLLKKJJI899::;;>==EEFFGGHHXXWWVVUU--..//00ppoonnmm%%&&aa``__^^-..//001poonnmmlijjkkllm43322110QRRSSTTULKKJJIIHGHHIIJJK3221100/eeffgghhhhggffee--..//00ffeeddccHHIIJJKK?>=<;:99TUUVVWWXIHHGGFFE<==>>??@a``__^^]$%%&&''(yxxwwvvu  - - xyyzz{{|%$$##""!xyyzz{{| - - yyzz{{||$$##""!!aabbccdd<<;;::99IIJJKKLLTTSSRRQQ11223344llkkjjii~~}}||''(())**]]\\[[ZZ12233445lkkjjiihmnnooppq0//..--,UVVWWXXYHGGFFEEDKLLMMNNO/..--,,+iijjkkllWWVVUUTTddccbbaa11223344bbaa``__LLMMNNOO88776655XYYZZ[[\EDDCCBBA@AABBCCD]\\[[ZZY())**++,uttssrrq |}}~~! |}}~~}}~~ eeffgghh88776655MMNNOOPPPPOONNMM55667788hhggffee {{zzyyxx++,,--..YYXWVUTS56677889hggffeed !~~}}| qrrssttu,++**))(YZZ[[\\]DCCBBAA@OPPQQRRS+**))(('mmnopqrsSSRRQQPP``__^^]]55667788^^]]\\[[PPQQRRSS44332211\]]^^__`A@@??>>=DEEFFGGHYXXWWVVU,--..//0qppoonnm - - iijjkkll44332211QQRRSSTTLLKKJJII99::;;<>==>??@@``__^^]]%%&&''((ssmmllkk33445566ONNMMLLK=>>??@@A`__^^]]\%&&''(()xwwvvuut  - - yzz{{||}$##""!! abbccdde<;;::998\]]^^__`wxxyyzz{KKJJIIHHXXWWVVUU==>>??@@QQPPOONN]]^^__``,,++**))deeffggh98877665LMMNNOOPQPPOONNM45566778ihhggffe ~~}~~}}qqrrsstt,,++**))YYZZ[[\\DDCCBBAAAABBCCDD\\[[ZZYY))**++,,jjiihhgg778899??KJJIIHHGABBCCDDE\[[ZZYYX)**++,,-tssrrqqp}~~ effgghhi87766554`aabbccd{||}}~~GGFFEEDDTTSSRRQQAABBCCDDMMLLKKJJaabbccdd((''&&%%hiijjkkl54433221PQQRRSSTMLLKKJJI899::;;>==EEFFGGHHXXWWVVUU--..//00ffeeddcc@@AABBCCGFFEEDDCEFFGGHHIXWWVVUUT-..//001poonnmmlijjkkllm43322110deeffgghCCBBAA@@PPOONNMMEEFFGGHHIIHHGGFFeeffgghh$#"! lmmnnoop100//..-TUUVVWWXIHHGGFFE<==>>??@a``__^^]$%%&&''(yxxwwvvu  - - xxwwvvuu  - - yyzz{{||$$##""!!aabbccdd<<;;::99IIJJKKLLTTSSRRQQ11223344bbaa``__DDEEFFGGCBBAA@@?IJJKKLLMTSSRRQQP12233445lkkjjiihmnnooppq0//..--,hiijjkkl??>>==<=<;:99MNNOOPPQPOONNMML56677889hggffeed !~~}}| qrrssttu,++**))(lmmssttu -;;::9988HHGGFFEEMMNNOOPPAA@@??99mmssttuutuuvvwwx)((''&&%\]]^^__`A@@??>>=DEEFFGGHYXXWWVVU,--..//0qppoonnm~~}}||{!"#$%%&&ppoonnmmiijjkkll44332211QQRRSSTTLLKKJJII99::;;<>??@@QQPPOONNPPQQRRSS44332211UVVWWXXYHGGFFEED=>>??@@A`__^^]]\%&&''(()xwwvvuut  - - yzz{{||}$##""!! yzz{{||}33221100@@??>>==UUVVWWXX44332211zz{{||}}|}}~~! deeffggh98877665LMMNNOOPQPPOONNM45566778ihhggffe ~~} - - wvvuutts++,,--..hhggffee ~~}}qqrrsstt,,++**))YYZZ[[\\DDCCBBAAAABBCCDDMMLLKKJJYYZZ[[\\00//..--YZZ[[\\]DCCBBAA@ABBCCDDE\[[ZZYYX)**++,,-tssrrqqp}~~ }~~ //..--,,<<;;::99YYZZ[[\\00//..--~~ -hiijjkkl54433221PQQRRSSTMLLKKJJI899::;;>==EEFFGGHHIIHHGGFF]]^^__``,,++**))]^^__``a@??>>==>??@a``__^^]$%%&&''(yxxwwvvujiihhggf33445566``__^^]]%%&&''((xxwwvvuu  - - yyzz{{||$$##""!!aabbccdd<<;;::99IIJJKKLLEEDDCCBBaabbccdd((''&&%%abbccdde<;;::998IJJKKLLMTSSRRQQP12233445lkkjjiih ''&&%%$$44332211aabbccdd((''&&%%pqqrrsst-,,++**)XYYZZ[[\EDDCCBBA@AABBCCD]\\[[ZZY())**++,uttssrrqfeeddccb778899:;\\[[ZZYY))**++,,ttssrrqq}}~~ eeffgghh88776655MMNNOOPPAA@@??99eeffgghh$#"! effgghhi87766554MNNOOPPQPOONNMML56677889hggffeed !~~}}| ~~}}||##""!! 00//..--eeffgghh - -  tuuvvwwx)((''&&%\]]^^__`A@@??>>=DEEFFGGHYXXWWVVU,--..//0qppoonnmbaa``__^<=>??@@AXXWWVVUU--..//00ppoonnmmiijjkkll44332211QQRRSSTT88776655iijjkkllijjkkllm43322110QRRSSTTULKKJJIIH9::;;<<=dccbbaa`!""##$$%|{{zzyyx - -  {{zzyyxx,,++**))iijjkkll  - - xyyzz{{|%$$##""!`aabbccd=<<;;::9HIIJJKKLUTTSSRRQ01122334mllkkjji%^]]\\[[ZABBCCDDETTSSRRQQ11223344llkkjjiimmnnoopp00//..--UUVVWWXX44332211mmssttuumnnooppq0//..--,UVVWWXXYHGGFFEED=>>??@@A`__^^]]\%&&''(()xwwvvuut  - - wwvvuutt((''&&%%mmnnoopp |}}~~! deeffggh98877665LMMNNOOPQPPOONNM45566778ihhggffe%&&''(()ZYYSSRRQEFFGGHHIPPOONNMM55667788hhggffee ~~}}qqrrsstt,,++**))YYZZ[[\\00//..--vvwwxxyyqrrssttu,++**))(YZZ[[\\]DCCBBAA@ABBCCDDE\[[ZZYYX)**++,,-tssrrqqp~ !"ssrrqqpp$$##""!!qqrrsstthiijjkkl54433221PQQRRSSTMLLKKJJI899::;;>==>??@a``__^^]-..//001MLLKKJJIMNNOOPPQHHGGFFEE==>>??@@``__^^]]%%&&''((xxwwvvuu  - - yyzz{{||$$##""!!aabbccdd((''&&%%~~ -yzz{{||}$##""!! abbccdde<;;::998IJJKKLLMTSSRRQQP12233445lkkjjiih zyyxxwwv(())**++kkjjiihh yyzz{{|| - - |{{zzyyx ~~}pqqrrsst-,,++**)XYYZZ[[\EDDCCBBA@AABBCCD]\\[[ZZY12233445IHHGGFFEQRRSSTUVDDCCBBAAAABBCCDD\\[[ZZYY))**++,,ttssrrqq}}~~ eeffgghh - }~~ effgghhi87766554MNNOOPPQPOONNMML56677889hggffeed !~~}}| - - vuuttssm,,--..//ggffeedd - - }}~~ - - xwwvvuut !!""##$}||{{zzy - -  tuuvvwwx)((''&&%\]]^^__`A@@??>>=DEEFFGGHYXXWWVVU56677889EDDCCBBAWXYYZZ[[@@??>>==EEFFGGHHXXWWVVUU--..//00ppoonnmmiijjkkllijjkkllm43322110QRRSSTTULKKJJIIH9::;;<<=dccbbaa`!""##$$%|{{zzyyx mllkkjji00112233ccbbaa``tssrqpon$%%&&''(yxxwwvvu  - - xyyzz{{|%$$##""!`aabbccd=<<;;::9HIIJJKKLUTTSSRRQ9??@@AABA@@??998\\]]^^__<<;;::99IIJJKKLLTTSSRRQQ11223344llkkjjiimmnnooppmnnooppq0//..--,UVVWWXXYHGGFFEED=>>??@@A`__^^]]\%&&''(()xwwvvuutihhggffe44556677__^^]]\\ mmllkkjj())**++,uttssrrq |}}~~! deeffggh98877665LMMNNOOPQPPOONNMBCCDDEEF87766554``aabbcc88776655MMNNOOPPPPOONNMM55667788hhggffee ~~}}qqrrsstt qrrssttu,++**))(YZZ[[\\]DCCBBAA@ABBCCDDE\[[ZZYYX)**++,,-tssrrqqpeddccbba8899:;<=[[ZZYYXX rrssttuu++**))((ZZ[[\\]]CCBBAA@@BBCCDDEE[[ZZYYXX**++,,--iihhggff8899??@@JIIHHGGFBCCDDEEF[ZZYYXXW*++,,--.srrqqppo~fgghhiij76655443NOOPPQQR87766554vwwxxyyz - -  vvwwxxyy''&&%%$$^^__``aa??>>==<JKKLLMMNSRRQQPPO23344556kjjiihhgnooppqqr/..--,,+VWWXXYYZ0//..--,~ - - ~~ffgghhii77665544NNOOPPQQOONNMMLL66778899]]\\[[ZZIIJJKKLL=<;:9988NOOPPQQRONNMMLLK6778899:gffeeddc !!"~~}}||{ -rssttuuv+**))(('Z[[\\]]^,++**))( jjkkllmm33221100RRSSTTUUKKJJIIHH::;;<<==YYSSRRQQMMNNOOPP77665544RSSTTUUVKJJIIHHG:;;<<==>cbbaa``_"##$$%%&{zzyyxxw -  vwwxxyyz'&&%%$$#^__``aab(''&&%%nnooppqq//..--,,VVWWXXYYGGFFEEDD>>??@@AAPPOONNMMQQRRSSYY33221100VWWXXYYZGFFEEDDC>??@@AAB_^^]]\\[&''(())*wvvuutts - - z{{||}}~#""!! bccddeef~~} !!~~}}|| rrssttuu++**))((ZZ[[\\]]CCBBAA@@BBCCDDEELLKKJJIIZZ[[\\]]//..--,,Z[[\\]]^CBBAA@@?BCCDDEEF[ZZYYXXW*++,,--.srrqqppo~fgghhiij}||{{zzy""##$$%%{{zzyyxx - -  vvwwxxyy''&&%%$$^^__``aa??>>==<>==<<;FGGHHIIJWVVUUTTS.//00112onnmmllkjkkllmmnyxxwwvvu &&''(())wwvvuutt - - zz{{||}}##""!! bbccddee;;::9988JJKKLLMMDDCCBBAAbbccddee''&&%%$#bccddeef;::99887JKKLLMMNSRRQQPPO23344556kjjiihhgnooppqqruttssrrq !!""##$**++,,--ssrrqqpp~~ffgghhii77665544NNOOPPQQ@@??9988ffgghhii"! fgghhiij76655443NOOPPQQRONNMMLLK6778899:gffeeddc !!"~~}}||{ -rssttuuv qppoonnm$%%&&''(..//0011oonnmmlljjkkllmm33221100RRSSTTUU77665544jjkkllmmjkkllmmn3221100/RSSTTUUVKJJIIHHG:;;<<==>cbbaa``_"##$$%%&{zzyyxxw -  vwwxxyyz - - -mllkkjji())**++,22334455kkjjiihhnnooppqq//..--,,VVWWXXYY33221100ssttuuvvnooppqqr/..--,,+VWWXXYYZGFFEEDDC>??@@AAB_^^]]\\[&''(())*wvvuutts - - z{{||}}~ - ihhggffe,--..//066778899ggffeedd !!~~}}|| rrssttuu++**))((ZZ[[\\]]//..--,,wwxxyyzzrssttuuv+**))(('Z[[\\]]^CBBAA@@?BCCDDEEF[ZZYYXXW*++,,--.srrqqppo~eddccbba01122334::;;<<==ccbbaa``""##$$%%{{zzyyxx - -  vvwwxxyy''&&%%$$^^__``aa++**))(({{||}}~~ vwwxxyyz'&&%%$$#^__``aab?>>==<<;FGGHHIIJWVVUUTTS.//00112onnmmllka``__^^]45566778>>??@@AA__^^]]\\&&''(())wwvvuutt - - zz{{||}}##""!! bbccddee''&&%% - - z{{||}}~#""!! bccddeef;::99887JKKLLMMNSRRQQPPO23344556kjjiihhg]\\[[ZZY899::;;>??@FFGGHHIIWWVVUUTT..//0011oonnmmlljjkkllmmjkkllmmn3221100/RSSTTUUVKJJIIHHG:;;<<==>cbbaa``_"##$$%%&{zzyyxxw - %%&&'UTTSSRRQ@AABBCCDJJKKLLMMSSRRQQPP22334455kkjjiihhnnooppqqnooppqqr/..--,,+VWWXXYYZGFFEEDDC>??@@AAB_^^]]\\[&''(())*wvvuutts'(())**+QPPOONNMDEEFFGGHNNOOPPQQOONNMMLL66778899ggffeedd !!~~}}|| rrssttuu -rssttuuv+**))(('Z[[\\]]^CBBAA@@?BCCDDEEF[ZZYYXXW*++,,--.srrqqppo+,,--../MLLKKJJIHIIJJKKLRRSSTTUUKKJJIIHH::;;<<==ccbbaa``""##$$%%{{zzyyxx - -  vvwwxxyy -  vwwxxyyz'&&%%$$#^__``aab?>>==<<;FGGHHIIJWVVUUTTS.//00112onnmmllk~~}}||{/0011223IHHGGFFELMMNNOOPVVWWXXYYGGFFEEDD>>??@@AA__^^]]\\&&''(())wwvvuutt - - zz{{||}} - -  - - z{{||}}~#""!! bccddeef;::99887JKKLLMMNSRRQQPPO23344556kjjiihhg{zzyyxxw34455667EDDCCBBAPQQRRSSTZZ[[\\]]CCBBAA@@BBCCDDEE[[ZZYYXX**++,,--ssrrqqpp~~~~}}||{~fgghhiij76655443NOOPPQQRONNMMLLK6778899:gffeeddc !!"wvvuutts78899??@A@@??>>=TUUVVWWX^^__``aa??>>==<cbbaa``_"##$$%%&smmllkkj@AABBCCD=<<;;::9XYYZZ[[\bbccddee;;::9988JJKKLLMMSSRRQQPP22334455kkjjiihh wvvuuttsnooppqqr/..--,,+VWWXXYYZGFFEEDDC>??@@AAB_^^]]\\[&''(())*jiihhggfDEEFFGGH98877665\]]^^__`ffgghhii77665544NNOOPPQQOONNMMLL66778899ggffeedd !!~~}}|| srqponmm !!"~~}}||{ -rssttuuv+**))(('Z[[\\]]^CBBAA@@?BCCDDEEF[ZZYYXXW*++,,--.feeddccbHIIJJKKL54433221`aabbccdjjkkllmm33221100RRSSTTUUKKJJIIHH::;;<<==ccbbaa``""##$$%%{{zzyyxx - - llkkjjii"##$$%%&{zzyyxxw -  vwwxxyyz'&&%%$$#^__``aab?>>==<<;FGGHHIIJWVVUUTTS.//00112baa``__^LMMNNOOP100//..-deeffgghnnooppqq//..--,,VVWWXXYYGGFFEEDD>>??@@AA__^^]]\\&&''(())wwvvuutthhggffee&''(())*wvvuutts - - z{{||}}~#""!! bccddeef;::99887JKKLLMMNSRRQQPPO23344556^]]\\[[ZPQQRRSSY-,,++**)hiijjkklrrssttuu++**))((ZZ[[\\]]CCBBAA@@BBCCDDEE[[ZZYYXX**++,,--ssrrqqppddccbbaa*++,,--.srrqqppo~fgghhiij76655443NOOPPQQRONNMMLLK6778899:ZYYSSRRQYZZ[[\\])((''&&%lmmnnoopvvwwxxyy''&&%%$$^^__``aa??>>==<QPPOONNM]^^__``a%$$##""!pqqrrsstzz{{||}}##""!! bbccddee;;::9988JJKKLLMMSSRRQQPP22334455kkjjiihh~~}}||{{(())**++\\[[ZZYY23344556kjjiihhgnooppqqr/..--,,+VWWXXYYZGFFEEDDC>??@@AABMLLKKJJIabbccdde! tuuvvwwx~~ffgghhii77665544NNOOPPQQOONNMMLL66778899ggffeedd !!zzyyxxww,,--..//XWVUTSSR6778899:gffeeddc !!"~~}}||{ -rssttuuv+**))(('Z[[\\]]^CBBAA@@?BCCDDEEFIHHGGFFEeffgghhixyyzz{{|jjkkllmm33221100RRSSTTUUKKJJIIHH::;;<<==ccbbaa``""##$$%%vvuuttss00112233RQQPPOON:;;<<==>cbbaa``_"##$$%%&{zzyyxxw -  vwwxxyyz'&&%%$$#^__``aab?>>==<<;FGGHHIIJEDDCCBBAijjkkllm|}}~~nnooppqq//..--,,VVWWXXYYGGFFEEDD>>??@@AA__^^]]\\&&''(())mmllkkjj44556677NMMLLKKJ>??@@AAB_^^]]\\[&''(())*wvvuutts - - z{{||}}~#""!! bccddeef;::99887JKKLLMMNA@@??998mssttuuvbdQZ|bdQZ|H~fZdQbt`f~Zp˂AJltf`vXے`JX`JXQ|ZdQfpvZp˂AJltf`vXے`JXZdQbtfpvےbHAJlt`vXnے`JXQ|ZdQbfpvp˂rJlt`vXn`vXnے`JXQ|ZdQbpvnJltvXnvXn`JXQZdQbtfpv˂rXJltvXn`JXQZdQbtfpvQJ`ےbdQZ|vpfHdrtA`vXn`vXnlJtAHfpvrXQJ`ۉbdQZ|nvpQr˂prbtlbtlnXv`rXQJ`ۉbdQZ|nvpQr˂plJtAnXv`Zp˂bdQZ|vpfr˂ptlJnXv`XQJ`ےbdQZ|vpfr˂pr˂ptlJXv`pbdQZ|vpfHr˂pr˂plJtnXv`QJ`ےbdQZ|vpfHr˂plJtnXv`˙bHAXQdrt~f`Jltvpfr˂prdt璀nXvbHAdrtfH~ˑZHAbJtAdJtArdf~HbHAdrtfH~ˑZHAbrd|f~HrXQJdrtAH~fZHAbtArdf~HbHAZdrtAH~fZHAbZHAےtArdvnrdrtA~f`ZHAbZHAے`Ard|f~HbHAZpdrtA~f`ZHAbArd|f~HJ`ےAdQZ|vXnbdQZ|H~f`JXQrlJtAr`f~Zp˂AJltf`vXے`JX|ZdQ|ZdQfpvZp˂AJltf`vXے`JXZdQtArdfpvbHAZpJlt`vXnے`JXQ|ZdQbfpvp˂rJlt`vXnے`JXQ`JXQr|ZdQbXQJ`pJltvXn`JXQJXQrZdQbtfpv˂rXJltvXn`JXQZdQbtfpvbHAZp˂drtAvpfHdrtA`vXn˂pZd|ZHfvnXrXQJ`ۉbdQZ|nvpQr˂pbtlbnXv`nXv`rXQJ`ۉbdQZ|nvpQr˂p|Zd~HfprXQbdQZ|vpfr˂ptlJnXv`XQJ`ےbdQZ|vpfr˂pbtltlJ˂rXQbdQZ|vpfHr˂pbtllJtnXv`QJ`ےbdQZ|vpfHr˂plJtnXv`˂rXQJlt~f`JltvpfHAbےdQbt璕v`fbHAdrtfH~ˑZHAbJtArdf~HfHbHAdrtfH~ˑZHAbQbtlvnXJ`ےdrtAH~fZHAbtArdf~HbHAZdrtAH~fZHAbJtAdtArdJ`ےdrAJ~f`ZHAbJtAd|Ard|f~HbHAZpdrtA~f`ZHAbArd|f~HJ`ےbdQZ|vXnvfbdQZ|H~f`JXQrlJtAr~HfpZp˂AJltf`vXے`JX|ZdQfpvfpvZp˂AJltf`vXے`JXJtArdv`fbHAZpJlt`vXnے`JXQ|ZdQbfpvp˂rJlt`vXnے`JXQ|ZdQb|ZdQbbHAZptbdQZvXn`JXQZdQbtZdQbfpv˂rXJltvXn`JXQZdQbtfpvbHAZp`drtAH~fdrtA`vXn˂pZd|lvnXrXQJ`ۉbdQZ|nvpQr˂pbtlnXv`nrXQJ`rXQJ`ۉbdQZ|nvpQr˂p|Zd~HfprXQbdQZ|vpfr˂ptlJnXv`XQJ`ےbdQZ|vpfr˂ptlJnXv`˂rXQ|drvpfHr˂plJtnXv`nXv`QJ`ےbdQZ|vpfHr˂plJtnXv`ˁےbHJl|d`vXnJltvpfHAXQrJtArdv`fbHAdrtfH~ˑZHAbJtArdf~HےHAbHAdrtfH~ˑZHAbQbtdvnXJ`bAZdrtAH~fZHAbtArdf~HbHAZdrtAH~fZHAbtArdpvnJ`ےtAJl璅~f`ZHAbArd|f~HfHfpbHAZpdrtA~f`ZHAbArd|f~HAZp˂rtAJlvpfbdQZ|H~f˂pZHA|ZdQ~HfpZp˂AJltf`vXے`JX|ZdQfpvZp˂Zp˂AJltf`vXے`JX|ZdQv`pp˂rJlt`vXnے`JXQ|ZdQbfpvp˂rJlt`vXnے`JXQ|ZdQbXv`fbHAXQJtbdQZvXn`JXQZdQbtfpvvn˂rXJltvXn`JXQZdQbtfpvrXQJ`tbdH~fdrtA`vXnbے`btlvnv`rXQJ`ۉbdQZ|nvpQr˂pbtlnXv`rXQJ`rbdQZ|bdQZ|nvpQr˂pbtlvnrXbdQZ|bdQZ|vpfr˂ptlJnXv`XQJ`ےbdQZ|vpfr˂ptlJ~Hf`ےb|drvpfHr˂plJtnXv`rXQJ`QJ`ےbdQZ|vpfHr˂plJtnXv`ˁےbHQZ|d`vXn`JXQrJltvpfJXQrJtArdf~HbHAdrtfH~ˑZHAbJtArdf~HbHAdrtdtAfH~ˑZHAbJtArdQJ`AdrtAdtAJH~fZHAbtArdf~HbHAZdrtAH~fZHAbtArdpvnHAZp˂tAJbd~f`ZHAbArd|f~HHAZpbHAZpdrtA~f`ZHAbArd|f~HAZp˂rtAJlvf~˂pZbdQZ|H~f˂pZHA|ZdQfpvZp˂AJltf`vXے`JX|ZdQfpvZp˂AJltJltf`vXے`JX|ZdQZp˂Jltltb`vXnے`JXQ|ZdQbfpvp˂rJlt`vXnے`JXQ|ZdQbXv`frXQJQZ|dvXn`JXQZdQbtfpv˂rX˂rJltvXn`JXQZdQbtfpv㉐bHAtdf`vXHAbےdrtA`vXnb˂tArdnXv`rXQJ`ۉbdQZ|nvpQr˂pbtlnXv`rXQJ`ۉbdQZ|bnvpnvpQr˂pbtl|rXQJ`bdQZ|nvpvpfr˂ptlJnXv`XQJ`ےbdQZ|vpfr˂ptlJnX`ےbrtAJlvpfHr˂plJtnXv`QJ`ےbdQZ|bdQZ|vpfHr˂plJtnXv`Zp˂rtAJlnvp`JXQrJltvpfpZHAb|ZdQbf~HbHAdrtfH~ˑZHAbJtArdf~HbHAdrtfHfH~ˑZHAbZdQb㒐bHAdrtAfHfH~fZHAbtArdf~HbHAZdrtAH~fZHAbtArdv`fHAZp`tbd~f`ZHAbArd|f~HbHAZpdrtAdtAJl~f`ZHAbArd|f~HrXQJ`ےtbdQfH~˂pZbdQZ|H~fے`JtlJfpvZp˂AJltf`vXے`JX|ZdQfpvZp˂AJltf`vXf`vXے`JXnXv`pZp˂Jlt`vXn`vXnے`JXQ|ZdQbfpvp˂rJlt`vXnے`JXQ|ZdQb~HfpےbHAQZ|dvXn`JXQZdQbtfpv˂rXJlttbvXn`JXQZdQbtfpv㒐bHAZ|df`vXHAbےdrtA`vXnXQr˂tArdnvfrXQJ`ۉbdQZ|nvpQr˂pbtlnXv`rXQJ`ۉbdQZ|nvpnr˂pQr˂pvnXrXQJ`bdQZ|vpfr˂pr˂ptlJnXv`XQJ`ےbdQZ|vpfr˂ptlJvnXZp˂rtAJlvpfHr˂plJtnXv`QJ`ےbdQZ|nvpvpfHr˂plJtnXv`Zp˂rtAJlnvp`JXQrJltvpfpZHAb|ZdQb~HfpےbHAdrtfH~ˑZHAbJtArdf~HbHAdrtfH~ˑZHAbZHAەv`fbHAZdrtAH~fZHAbZHAےtArdf~HbHAZdrtAH~fZHAbtArdv`frXQJ`bQZ|~f`ZHAbArd|f~HbHAZpdrtAfHf`~f`ZHAbArd|f~HrXQHAZptbdQf~f`˂pZbdQZ|H~fے`ptd|vnXZp˂AJltf`vXے`JX|ZdQfpvZp˂AJltf`vXے`JX`JXQ~HfprXQJJlt`vXnے`JXQ`JXQr|ZdQbfpvp˂rJlt`vXnے`JXQ|ZdQb~HXvےbHAdrtAvXn`JXQZdQbtfpv˂rXJltvXnvXn`JXQZdQbtfpv˂rXZ|ltvXnrHAbےdrtA`vXnZHAbZdQbtv`frXQJ`ۉbdQZ|nvpQr˂pbtlnXv`rXQJ`ۉbdQZ|nvpQr˂prbtlvnX`ےbbdQZ|vpfr˂pbtltlJnXv`XQJ`ےbdQZ|vpfr˂ptlJ`f~Zp˂JltvpfHr˂plJtnXv`QJ`ےbdQZ|vpfHr˂pr˂plJtnXv`QJ`ےbnۀ˂pZ`JXQrJltvpfے`JXQlJtA~HfpےbHAdrtfH~ˑZHAbJtArdf~HbHAdrtfH~ˑZHAb|ZdQv`fHAZp˂drtAH~fZHAbJtAdtArdf~HbHAZdrtAH~fZHAbtArdHfpvbHAZbdQZ|~f`ZHAbArd|f~HbHAZpdrtA~f`ZHAbZHAے`Ard|f~HbHAZpvpff`HAbے˂pZbdQZ|H~fr˂prd|vnXZp˂AJltf`vXے`JX|ZdQfpvZp˂AJltf`vXے`JXbtlnXrXQJJlt`vXnے`JXQ|ZdQb|ZdQbfpvp˂rJlt`vXnے`JXQ|ZdQbnXvp˂rdrtAvXn`JXQZdQbtfpv˂rXJltvXn`JXQJXQrZdQbtfpv˂rXvXn`JXQrHAbےdrtA`vXnZHAbZdQbtv`frrXQJ`ۉbdQZ|nvpQr˂pbtlnXv`rXQJ`ۉbdQZ|nvpQr˂pJtArdv`f`ےbbdQZ|vpfr˂ptlJnXv`nXv`XQJ`ےbdQZ|vpfr˂ptlJ`f~XQJ`ےJltvpfHr˂plJtnXv`QJ`ےbdQZ|vpfHr˂pbtllJtnXv`QJ`p˅vpfH˂pZ`JXQrJltvpfے`JXQl|ZQJHAbHAdrtfH~ˑZHAbJtArdf~HbHAdrtfH~ˑZHAb|ZdQ~HfpHAZpdrtAH~fZHAbtArdf~HfHfbHAZdrtAH~fZHAbtArdHfp`bHAZbQZd~f`ZHAbArd|f~HbHAZpdrtA~f`ZHAbJtAd|Ard|f~Hrbd~f`HAbے˂pZbdQZ|H~fHAbےdQbnXZp˂Zp˂AJltf`vXے`JX|ZdQfpvZp˂AJltf`vXے`JXbtlvnXrQJ`ےJlt`vXnے`JXQ|ZdQbfpvpvnp˂rJlt`vXnے`JXQ|ZdQbf~Hp˂rrtAJlvXn`JXQZdQbtfpv˂rXJltvXn`JXQZdQbtZdQbfpvQZ|lvXn`JXQrHAbےdrtA`vXn`JXQrv`f~rXQJ`rbdQZ|bdQZ|nvpQr˂pbtlnXv`rXQJ`ۉbdQZ|nvpQr˂pJtArdtv`fbHAZpbdQZ|vpfr˂ptlJnXv`rXQJ`XQJ`ےbdQZ|vpfr˂ptlJfpvXQHAZptbdQvpfHr˂plJtnXv`QJ`ےbdQZ|vpfHr˂plJtnXv`nXv`˒tbdQvpfH˂pZ`JXQrJltvpf˂pZfpv㒐bHAdrtdtAfH~ˑZHAbJtArdf~HbHAdrtfH~ˑZHAblJt~HXv`˂rXdrtAH~fZHAbtArdf~HےHAZbHAZdrtAH~fZHAbtArdnXv`˂rXQZ|d~f`ZHAbArd|f~HbHAZpdrtA~f`ZHAbArd|f~HfHfpZ|d~fvHAbے˂pZbdQZ|H~fHAbےnXv`Zp˂AJltJltf`vXے`JX|ZdQfpvZp˂AJltf`vXے`JXArd|f~HQJ`ےJlt`vXnے`JXQ|ZdQbfpvp˂rp˂rJlt`vXnے`JXQ|ZdQbf~HJ`ےrtAJlvXn`JXQZdQbtfpv˂rXJltvXn`JXQZdQbtfpvvnrtAJlnvp`JXQrHAbےdrtA`vXn`JXQrf~HrXQJ`ۉbdQZ|bnvpnvpQr˂pbtlnXv`rXQJ`ۉbdQZ|nvpQr˂pZdQbtfpvbHAZpbdQZ|vpfr˂ptlJnXv`XQJ`ےbdQZ|bdQZ|vpfr˂ptlJfpvbHAZptbdQvpfHr˂plJtnXv`QJ`ےbdQZ|vpfHr˂plJtnXv`rXQJ`ptbdQfH~˂pZ`JXQrJltvpf˂p|fpv㒐bHAdrtfHfH~ˑZHAbJtArdf~HbHAdrtfH~ˑZHAblJtnXv`˂rQJdrtAH~fZHAbtArdf~HbHAZdrtAdtAJH~fZHAbtArd~Hf˂rXQZ|AJl~f`ZHAbArd|f~HbHAZpdrtA~f`ZHAbArd|f~H˂rXZ|dtf`vXHAbے˂pZbdQZ|H~fZdQbtnXv`Zp˂AJltf`vXf`vXے`JX|ZdQfpvZp˂AJltf`vXے`JXArd|f~HbHAJlt`vXnے`JXQ|ZdQbfpvp˂rJltltb`vXnے`JXQ|ZdQbpvnJ`p˂tbvXn`JXQZdQbtfpv˂rXJltvXn`JXQZdQbtfpvQJ`ےbdQZ|nvp`JXQrHAے`drtA`vXnlJtAf~fvrXQJ`ۉbdQZ|nvpnr˂pQr˂pbtlnXv`rXQJ`ۉbdQZ|nvpQr˂plJtAfp`Zp˂bdQZ|vpfr˂ptlJnXv`XQJ`ےbdQZ|nvpvpfr˂ptlJXv`frbdQnvpvpfHr˂plJtnXv`QJ`ےbdQZ|vpfHr˂plJtnXv`˙bHAZpdrtfH~˂pZJXQrbJltvpfrd|nXvbHAdrtfH~ˑZHAbZHAJtArdf~HbHAdrtfH~ˑZHAbrd|f~HrXQJ`drtAH~fZHAbtArdf~HbHAZdrtAfHfH~fZHAbtArd~HfZ|rAfHf`~f`ZHAbArd|f~HbHAZpdrtA~f`ZHAbArd|f~H˂rXAJltf`vnHAbےtlJtAd|rd|~HfbHAZpdrtAJ~f`HAbےrd|~HfbHAZp|drf`pfJXQrrd|~HfpbHAZp˙rtAJl~f`Abے`Aے`rd|~HfpbHAZp˙rtAJl~f`ZHAbQXb㉀f۝`vZdQbtZdQbnpvn˂rXQltbvXn`JXQrZdQbtpvn˂rXQtAJlH~fpZHAZdQbtvnXrXQtbdvXnہJXQrJXQrbtZdQbtvnXrXQtbdvXnے`JXQۑpJAHrXnvˍlJtAXv`fXv`fJ`ےdQZ|vpfH˂pZlJtAXv`fJ`ےtbdQZ`vXnbے`JlJtAv`fJ`ےQZ|dvpfH˂pZHlJtlJtAv`fJ`ےQZ|dvpfHr˂p󙐂ˁ`Zp|drrd|~HfHfpbHAZpdrtAJ~f`HAbےrd|~HfbHAZp|drvpfQrpZrd|~HfpbHAZp˙rtAJl~f`Abے`Ad|rd|~HfpbHAZp˙rtAJl~f`ZHAbQXb㉀QtJlZdQbtpvnvnr˂rXQltbvXn`JXQrZdQbtpvn˂rXQtAdQZ|H~fHAbےZdQbtvnXrXQtbdvXnہJXQrZdQbtZdQbnXvnXrXQtbdvXnے`JXQHXnvˍtbAdZlJtAXv`fXQJ`ےJ`ےdQZ|vpfH˂pZlJtAXv`fJ`ےdrtA`vXH`JXQrlJtAv`fJ`ےQZ|dvpfH˂pZHlJtAv`fv`fJ`ےQZ|dvpfHAbے`pfH~|drrd|~HfHAZpbHAZpdrtAJ~f`HAbےrd|~HfbHAZpJlt~f`˂pZrd|~HfpbHAZp˙rtAJl~f`Abے`rd|~HfpHfpbHAZp˙rtAJl~f`JXQrf۝`vQtJlZdQbtpvn˂rXQ˂rbltbvXn`JXQrZdQbtpvn˂rXQbdQZ|vXnHAbےZdQbtvnXrXQtbdvXnہJXQrZdQbtvnXvnrXrXQtbdvXnۉ˂pZHXnvˍtbAdZlJtAXv`fJ`ےdQZ|dQZ|vpfH˂pZlJtAXv`fJ`ےdrtAvpfH`JXQrlJtAv`fJ`ےQZ|dvpfH˂pZHlJtAv`fQJ`ےJ`ےQZ|dvpfHAbے`pfH~|drrd|~HfbHAZpdrtAJdtAJl~f`HAbےrd|~HfbHAZpJl|~f`ZHAbrd|~HfpbHAZp˙rtAJl~f`Abے`rd|~HfpHAZpbHAZp˙rtAJl~f`JXQrf۝`vQtJlZdQbtpvn˂rXQltbtbnvXn`JXQrZdQbtpvn˂rXQdrtAJvXnے`JXZdQbtvnXrXQtbdvXnہJXQrZdQbtvnXrXQrbdtbdvXnۉ˂p`ZXnvˍtbAdZlJtAXv`fJ`ےdQZ|vpfvpfH˂pZlJtAXv`fJ`ےltbf`vQr˂plJtAv`fJ`ےQZ|dvpfH˂pZHlJtAv`fJ`ےQZ|dQZ|dvpfHQXb㉀pfH~|drrd|~HfbHAZpdrtAJHf`~f`HAbےrd|~HfbHAZpdQZ|XnvZHAbrd|~HfpbHAZp˙rtAJl~f`Abے`rd|~HfpbHAZp˙rtAJltAJl~f`ۑpJAHrf۝`vQtJlZdQbtpvn˂rXQltbvXnvXnr`JXQrZdQbtpvn˂rXQdrtAJpfH~ے`JXZdQbtvnXrXQtbdvXnہJXQrZdQbtvnXrXQtbdtbnvXn󙐂ˁ`ZXnvˍtbAdZlJtAXv`fJ`ےdQZ|vpfH˂pZ˂pZlJtAXv`fJ`ےltdf`vQr˂plJtAv`fJ`ےQZ|dvpfH˂pZHlJtAv`fJ`ےQZ|dvpfHvpfHQXb㉀pfH~|drrd|~HfbHAZpdrtAJ~f`HAbےHAے`rd|~HfbHAZprtAJlXnvZA`rd|~HfpbHAZp˙rtAJl~f`Abے`rd|~HfpbHAZp˙rtAJlf`~f`ۑpJAHrf۝`vQtJlZdQbtpvn˂rXQltbvXn`JXQrJXQrbZdQbtpvn˂rXQtbdQp`vXJXQrbtZdQbtvnXrXQtbdvXnہJXQrZdQbtvnXrXQtbdvXnvXnے`󙐉ۑXnvˍtbAdZlJtAXv`fJ`ےdQZ|vpfH˂pZtlJlJtAXv`fJ`ےZ|dnr˂lJtlJtAv`fJ`ےQZ|dvpfH˂pZHlJtAv`fJ`ےQZ|dvpfHJXQrpJAHrpfH~|drrd|~HfbHAZpdrtAJ~f`HAbےtAd|rd|~HfbHAZprtAJlpZAb`Ad|rd|~HfpbHAZp˙rtAJl~f`Abے`rd|~HfpbHAZp˙rtAJl~f`˂pZHˁ`ZQf۝`vQtJlZdQbtpvn˂rXQltbvXn`JXQrZdQbtZdQbnpvn˂rXQtbdQJXQrZdQbtZdQbnXvnXrXQtbdvXnہJXQrZdQbtvnXrXQtbdvXnAbے`Xb㉀ۑXnvˍtbAdZlJtAXv`fJ`ےdQZ|vpfH˂pZlJtAXv`fXv`fJ`ےZ|l璉˂pZHlJtAv`fv`fJ`ےQZ|dvpfH˂pZHlJtAv`fJ`ےQZ|dvpfHJXQrpJAHrpfH~|drrd|~HfbHAZpdrtAJ~f`HAbےrd|~HfHfpbHAZptbnAbے`rd|~HfpHfpbHAZp˙rtAJl~f`Abے`rd|~HfpbHAZp˙rtAJl~f`˂pZHˁ`pJf۝`vQtJlZdQbtpvn˂rXQltbvXn`JXQrZdQbtpvnvnr˂rXQvp`vJXQrZdQbtvnXvnrXrXQtbdvXnہJXQrZdQbtvnXrXQtbdvXnAXQrAHr󙐂XnvˍtbAdZlJtAXv`fJ`ےdQZ|vpfH˂pZlJtAXv`fXQJ`ےJ`ےXnv˂pZHlJtAv`fQJ`ےJ`ےQZ|dvpfH˂pZHlJtAv`fJ`ےQZ|dvpfHpZHAˁ`ZQXbpfH~|drrd|~HfbHAZpdrtAJ~f`HAbےrd|~HfHAZpbHAZppfH~AbJXQrd|~HfpHAZpbHAZp˙rtAJl~f`Abے`rd|~HfpbHAZp˙rtAJl~f`bے`㉀ۑpJf۝`vQtJlZdQbtpvn˂rXQltbvXn`JXQrZdQbtpvn˂rXQ˂rbf`vr˂pZdQbtvnXrXQrbdtbdvXnہJXQrZdQbtvnXrXQtbdvXnJXQrAHr󙐂XnvˍtbAdZlJtAXv`fJ`ےdQZ|vpfH˂pZlJtAXv`fJ`ےdQZ|lXnvZHAblJtAv`fJ`ےQZ|dQZ|dvpfH˂pZHlJtAv`fJ`ےQZ|dvpfHpZHAˁ`ZQXApfH~|drrd|~HfbHAZpdrtAJ~f`HAbےrd|~HfbHAZptbdQpfH~ے`JXQrd|~HfpbHAZp˙rtAJltAJl~f`Abے`rd|~HfpbHAZp˙rtAJl~f`b˂pHr󙐂ˁf۝`vQtJlZdQbtpvn˂rXQltbvXn`JXQrZdQbtpvn˂rXQZ|dvpr˂pZdQbtvnXrXQtbdtbnvXnہJXQrZdQbtvnXrXQtbdvXnۑZHAb`ZQXbXnvˍtbAdZlJtAXv`fJ`ےdQZ|vpfH˂pZlJtAXv`fJ`ےrtAJlfH~ZHAblJtAv`fJ`ےQZ|dvpfHvpfH˂pZHlJtAv`fJ`ےQZ|dvpfHے`JXۑpJApfH~|drrd|~HfbHAZpdrtAJ~f`HAbےrd|~HfbHAZptbdQf`vXJQrrd|~HfpbHAZp˙rtAJlf`~f`Abے`rd|~HfpbHAZp˙rtAJl~f`Qr˂pHr󙐂ˁf۝`vQtJlZdQbtpvn˂rXQltbvXn`JXQrZdQbtpvn˂rXQZ|dnvppZHAZdQbtvnXrXQtbdvXnvXnrJXQrZdQbtvnXrXQtbdvXnۑZHAb`ZQXbXnvˍtbAdZlJtAXv`fJ`ےdQZ|vpfH˂pZlJtAXv`fJ`ےtbdQZfH~bے`lJtAv`fJ`ےQZ|dvpfH˂pZH˂pZHlJtAv`fJ`ےQZ|dvpfHے`pˁ`ZpfH~|drQtJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKK \ No newline at end of file diff --git a/vendor/endroid/qr-code/assets/data/qrv32_1.dat b/vendor/endroid/qr-code/assets/data/qrv32_1.dat deleted file mode 100755 index d19aed965..000000000 --- a/vendor/endroid/qr-code/assets/data/qrv32_1.dat +++ /dev/null @@ -1,289 +0,0 @@ -}~}~}~}~}~}~}~}~{|{|{|{|{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvuvuvuvuvststststststststqrqrqrqropopopopopopopopmnmnmnmmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUSTSTSTSTQRQRQRQRQRQRQRQRQRQRQRQROPOPOPOPOPOPOPOPMNMNMNMNMNMNMNMNKLKLKLKLKLKLKLKLIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDABABABABABABABABABABABA@?@?@?@?@?@?@?@?@=>=>=>=>;<;<;<;<;<;<;<;<99:9:9:9:999999:87878787878787876565656565656565434343434343434321212121212121210/0/0/0/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!       }~}~}~}~}~}~}~}~{|{|{|{|{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwxuvuvuvuvuvuvuvuvuvuvuvuvststststststststqrqrqrqropopopopopopopopmmmmnmnmnmnmmmmmlklklklklklklklkjijijijijijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUTSTSSTSTSTSTQRQRQRQRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPOPMNMNMNMNMNMNMNMNKLKLKLKLKLKLKLKLIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDABABABABABABABAB?@?@?@?@?@?@?@?@?@?@?@?@=>=>=>=>;<;<;<;<;<;<;<;<:9:9:9:99:9:9:9:87878787878787876565656565656565434343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!     }~}~}~}~}~}~}~}~{|{|{|{|{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwxuvuvuvuvuvuvuvuvutstststststststststststqrqrqrqropopopopopopopopnmnmnmnmmnmnmnmnlklklklklklklklkjijijijijijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUTSTSSSSSSTSTSTSTQRQRQRQRQRQRQRQROPOPOPOPOPOPOPOPOPOPOPOPMNMNMNMNMNMNMNMNKLKLKLKLKLKLKLKLIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDABABABABABABABAB?@?@?@?@?@?@?@?@?@?@?@?>=>=>=>=>;<;<;<;<;<;<;<;<:9:9:9:99:9:9:9:87878787878787876565656565656565434343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!      }~}~}~}~}~}~}~}~{|{|{|{|{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwxuvuvuvuvuvuvuvuvststststststststststststqrqrqrqropopopopopopopopnmnmnmnmmnmnmnmnlklklklklklklklkjijijijijijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUSTSTSTSTSSSSSSTSQRQRQRQRQRQRQRQROPOPOPOPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMNKLKLKLKLKLKLKLKLIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDABABABABABABABAB?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=>;<;<;<;<;<;<;<;<:9:9:9:99:9:9:9:87878787878787876565656565656565434343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!       }~}~}~}~}~}~}~}~{|{|{|{|{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwxuvuvuvuvuvuvuvuvststststststststsrqrqrqrqrqrqrqropopopopopopopopnmnmnmnmmnmnmnmnlklklklklklklklkjijijijijijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUSTSTSTSTTSTSTSTSQRQRQRQRQRQRQRQROPOPOPOPOPOPOPOPMNMNMNMNMNMNMNMNMNMNMNMNKLKLKLKLKLKLKLKLIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDABABABABABABABAB?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=>;<;<;<;<;<;<;<;<:9:9:9:99:9:9:9:87878787878787876565656565656565434343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!       }~}~}~}~}~}~}~}~{|{|{|{|{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwxuvuvuvuvuvuvuvuvststststststststqrqrqrqrqrqrqrqropopopopopopopopnmnmnmnmmnmnmnmnlklklklklklklklkjijijijijijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUSTSTSTSTTSTSTSTSQRQRQRQRQRQRQRQROPOPOPOPOPOPOPOPMNMNMNMNMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKLIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDABABABABABABABAB?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=>;<;<;<;<;<;<;<;<:9:999999:9:9:9:87878787878787876565656565656565434343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#"!"!"!"!"!"!       }~}~}~}~}~}~}~}~{|{|{|{|{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwxuvuvuvuvuvuvuvuvststststststststqrqrqrqrqrqrqrqropopopopopopopopnmnmnmmmmnmnmnmnlklklklklklklklkjijijijijijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWVUVUVUVUVUSTSTSTSTTSTSTSTSQRQRQRQRQRQRQRQROPOPOPOPOPOPOPOPMNMNMNMNMNMNMNMNKLKLKLKLKLKLKLKLKLKLKLKLIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDABABABABABABABAB?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=>;<;<;<;<;<;<;<;<9:9:9:9:999999:987878787878787876565656565656565434343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)*)*)*)('('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#"!"!"!"!"!"!"!"!       }~}~}~}~}~}~}~}~{|{|{|{|{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwxuvuvuvuvuvuvuvuvststststststststqrqrqrqrqrqrqrqropopopopopopopopmmmnmnmnmnmmmmmmlklklklklklklklkjijijijijijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWVUVUVUVUVUVUVUVUSTSTSTSTTSTSTSTSQRQRQRQRQRQRQRQROPOPOPOPOPOPOPOPMNMNMNMNMNMNMNMNKLKLKLKLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDABABABABABABABAB?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=>;<;<;<;<;<;<;<;<9:9:9:9::9:9:98787878787878787876565656565656565434343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#"!"!"!"!"!"!"!"!    }~}~}~}~}~}~}~}~{|{|{|{|{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwxuvuvuvuvuvuvuvuvststststststststqrqrqrqrqrqrqrqropopopopopopopopmnmnmnmnnmnmnmnmlklklklklklklklkjijijijijijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWVUVUVUVUVUVUVUVUSTSSSSSSTSTSTSTSQRQRQRQRQRQRQRQROPOPOPOPOPOPOPOPMNMNMNMNMNMNMNMNKLKLKLKLKLKLKLKLIJIJIJIJIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDABABABABABABABAB?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=>;<;<;<;<;<;<;<;<9:9:9:9:8787878787878787878787876565656565656565434343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('('('('&%&%&%&%&%&%&%&%&%$#$#$#$#"!"!"!"!"!"!"!"!       ~}~}~}~}~}~}~}~}~}~}~}~{|{|{|{|{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwxuvuvuvuvuvuvuvuvststststststststqrqrqrqrqrqrqrqropopopopopopopopmnmnmnmnlklklklklklklklklklklklkjijijijijijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSSSSSSTSTQRQRQRQRQRQRQRQROPOPOPOPOPOPOPOPMNMNMNMNMNMNMNMNKLKLKLKLKLKLKLKLIJIJIJIJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDABABABABABABABAB?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=>;<;<;<;<;<;:9:9:9:9:9:9:8787878787878787878787656565656565656565434343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%&%&%&%&%$#$#$#$#"!"!"!"!"!"!"!"!        }~}~}~}~}~}~}~}~}~}~}~}~{|{|{|{|{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwxuvuvuvuvuvuvuvuvststststststststqrqrqrqrqrqrqrqropopopopopoponmnmnmnmnmnlklklklklklklklklklklklkjijijijijijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYZYZYZYZYXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSSTSTSTSTQRQRQRQRQRQRQRQROPOPOPOPOPOPOPOPMNMNMNMNMNMNMNMNKLKLKLKLKLKLKLKLIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDABABABABABABABAB?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=>;<;<;<;<9:99999:9:9:9:9:8787878787878787656565656565656565656565434343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%&%&%&%$#$#$#$#$#"!"!"!"!"!"!"!"!        }~}~}~}~}~}~}~}~}|{|{|{|{|{|{|{|{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwxuvuvuvuvuvuvuvuvststststststststqrqrqrqrqrqrqrqropopopopmnmnmmmmmnmnmnmnlklklklklklklklkjijijijijijijijijijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYZYZYZYZYXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSSTSTSTSTQRQRQRQRQRQRQRQROPOPOPOPOPOPOPOPMNMNMNMNMNMNMNMNKLKLKLKLKLKLKLKLIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDABABABABABABABAB?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=>;<;<;<;<9:9:9:9:9:9999998787878787878787656565656565656565656543434343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!        }~}~}~}~}~}~}~}~{|{|{|{|{|{|{|{|{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwxuvuvuvuvuvuvuvuvststststststststqrqrqrqrqrqrqrqropopopopmnmnmnmnmnmnmmmmlklklklklklklklkjijijijijijijijijijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSSTSTSTSTQRQRQRQRQRQRQRQROPOPOPOPOPOPOPOPMNMNMNMNMNMNMNMNKLKLKLKLKLKLKLKLIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDABABABABABABABAB?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=>;<;<;<;<9:9:9:9::9:9:9:98787878787878787656565656565656543434343434343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!        }~}~}~}~}~}~}~}~{|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwxuvuvuvuvuvuvuvuvststststststststqrqrqrqrqrqrqrqropopopopmnmnmnmnmmnmnmnmlklklklklklklklkjijijijijijijijihghghghghghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSSTSTSTSTQRQRQRQRQRQRQRQROPOPOPOPOPOPOPOPMNMNMNMNMNMNMNMNKLKLKLKLKLKLKLKLIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCDABABABABABABABAB?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=>;<;<;<;<9:9:9:9::9:9:9:98787878787878787656565656565656543434343434343434343432121212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!      }~}~}~}~}~}~}~}~{|{|{|{|{|{|{|{|yzyzyzyzyzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwxuvuvuvuvuvuvuvuvststststststststqrqrqrqrqrqrqrqropopopopmnmnmnmnnmnmnmnmlklklklklklklklkjijijijijijijijihghghghghghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSSSSSSTSTSTSTSTQRQRQRQRQRQRQRQROPOPOPOPOPOPOPOPMNMNMNMNMNMNMNMNKLKLKLKLKLKLKLKLIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDCDCDCDCDABABABABABABABAB?@?@?@?@?@?@?@?@=>=>=>=>=>=>=<;<;<;<;<;<9:9:9:9::9:9:9:98787878787878787656565656565656543434343434343432121212121212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!      }~}~}~}~}~}~}~}~{|{|{|{|{|{|{|{|yzyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwxwxwxwxuvuvuvuvuvuvuvuvststststststststqrqrqrqrqrqrqrqpopopopopmnmnmnmnnmnmnmnmlklklklklklklklkjijijijijijijijihghghghghghghghgfefefefefefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUSTSTSTSTSTSSSSSTQRQRQRQRQRQRQRQROPOPOPOPOPOPOPOPMNMNMNMNMNMNMNMNKLKLKLKLKLKLKLKLIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDCDCDCDCBABABABABABABABAB?@?@?@?@?@?@?@?@=>=>=>=>;<;<;<;<;<;<;<;<9:9:9:9::9:9:9:987878787878787876565656565656565434343434343434321212121212121212121210/0/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!      }~}~}~}~}~}~}~}~{|{|{|{|{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwxwxwxwxwxuvuvuvuvuvuvuvuvststststststststqrqrqrqropopopopopopopopmnmnmnmnnmnmnmnmlklklklklklklklkjijijijijijijijihghghghghghghghgfefefefefefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQROPOPOPOPOPOPOPOPMNMNMNMNMNMNMNMNKLKLKLKLKLKLKLKLIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDABABABABABABABABABABABAB?@?@?@?@?@?@?@?@=>=>=>=>;<;<;<;<;<;<;<;<9:9:9999:9:9:9:987878787878787876565656565656565434343434343434321212121212121210/0/0/0/0/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!             - - - - - - - -         - - - - - - - - - -         - - - - - - - - - - - -         - - - - - - - - - -          - - - - - - - -         - - - - - - - -         - - - - - - - -         - - - - - - - -         - - - - - - - -         - - - - - - - -         - - - - - - - -         - - - - - - - -         - - - - - - - -         - - - - - - - -          - - - - - - - -             - - - - - - - -           - - - - - - - -LLKKJJII - - MMNNOOPP88776655''(())**zz{{||}}YYXWVUTS -@AABBCCDYXXWWVVU01122334tuuvvwwxihhggffe%$$##""! !!""##$deeffgghyxxwwvvu54433221TUUVVWWXEDDCCBBADEEFFGGHUTTSSRRQ BCCDDEEF43322110 hhiijjkkppoonnmm,,++**))]]^^__``~~}}<<;;::99 - - MMNNOOPPLLKKJJII==>>??@@\\[[ZZYY--..//00qqrrssttllkkjjii((''&&%% aabbccddwwvvuutt33445566KJJIIHHGEFFGGHHITSSRRQQP 56677889yzz{{||}dccbbaa` %&&''(()ijjkkllmtssrrqqp0//..--,YZZ[[\\]@??>>==< IJJKKLLMPOONNMML - - GHHIIJJK~/..--,,+#$%%&&''mmnopqrskkjjiihh''&&%%$$ !!bbccddee{{zzyyxx77665544RRSSTTUUGGFFEEDDBBCCDDEEWWVVUUTT22334455vvwwxxyyggffeedd##""!! ""##$$%%ffgghhiimmllkkjj8899??@@FEEDDCCBHHGGFFEE QQRRSSTT44332211++,,--..~~SRRQQPPO - DEEFFGGHUTTSSRRQ 45566778xyyzz{{|eddccbba! $%%&&''(hiijjkkluttssrrq100//..-XYYZZ[[\A@@??>>=HIIJJKKLQPPOONNM - - FGGHHIIJ0//..--,!"#$%%&&llmmnopqllkkjjii((''&&%% aabbccdd||{{zzyy88776655 QQRRSSTTHHGGFFEEAABBCCDDXXWWVVUU11223344uuvvwwxxhhggffee$$##""!!!!""##$$eeffgghhssmmllkk778899??GFFEEDDC IJJKKLLMPOONNMML - - 9::;;<<=}~~`__^^]]\)**++,,-mnnooppqpoonnmml,++**))(]^^__``a~~}}|<;;::998 - - MNNOOPPQLKKJJIIHKLLMMNNO~}}||{{z+**))(('(())**++sttuuvvwggffeedd##""!! ""##$$%%ffgghhiiwwvvuutt33221100VVWWXXYYCCBBAA@@FFGGHHIISSRRQQPP 66778899zz{{||}}ccbbaa``&&''(())jjkkllmmiihhggffAABBCCDDBAA@@??>DDCCBBAAUUVVWWXX00//..--//001122ONNMMLLKHIIJJKKLQPPOONNM - - 899::;;<|}}~~a``__^^]())**++,lmmnnoopqppoonnm-,,++**)\]]^^__`~~}=<<;;::9 - - LMMNNOOPMLLKKJJI JKKLLMMN~~}}||{,++**))(''(())**rssttuuvhhggffee$$##""!!!!""##$$eeffgghhxxwwvvuu44332211UUVVWWXXDDCCBBAAEEFFGGHHTTSSRRQQ 55667788yyzz{{||ddccbbaa %%&&''((iijjkklljjiihhgg@@AABBCCCBBAA@@? - - MNNOOPPQLKKJJIIH=>>??@@A\[[ZZYYX-..//001qrrssttulkkjjiih(''&&%%$ !abbccdde|{{zzyyx87766554 QRRSSTTUHGGFFEEDOPPQQRRSzyyxxwwv'&&%%,,--..//wxxyyzz{ccbbaa``&&''(())jjkkllmmssrrqqpp//..--,,ZZ[[\\]]??>>==<< JJKKLLMMOONNMMLL - - ::;;<<==~~__^^]]\\**++,,--nnooppqqeeddccbbEEFFGGHH=<;:9988@@??>>==YYZZ[[\\~~}}||,,++**))33445566KJJIIHHG - - LMMNNOOPMLLKKJJI <==>>??@]\\[[ZZY,--..//0pqqrrsstmllkkjji)((''&&% `aabbccd}||{{zzy98877665 PQQRRSSTIHHGGFFENOOPPQQR{zzyyxxw(''&&%%++,,--..vwwxxyyzddccbbaa %%&&''((iijjkkllttssrrqq00//..--YYZZ[[\\@@??>>==IIJJKKLLPPOONNMM - - 99::;;<<}}~~``__^^]]))**++,,mmnnooppffeeddccDDEEFFGG?>=<;:99 QRRSSTTUHGGFFEEDABBCCDDEXWWVVUUT12233445uvvwwxxyhggffeed$##""!! !""##$$%effgghhixwwvvuut43322110UVVWWXXYDCCBBAA@ SYYZZ[[\vuuttssm00112233{||}}~~__^^]]\\**++,,--nnooppqqoonnmmll++**))((^^__``aa~~}}||;;::9988 - - NNOOPPQQKKJJIIHH>>??@@AA[[ZZYYXX..//0011rrssttuuaa``__^^ IIJJKKLL77665544~~}}<<;;::99]]^^__``{{zzyyxx((''&&%%778899??GFFEEDDC PQQRRSSTIHHGGFFE@AABBCCDYXXWWVVU01122334tuuvvwwxihhggffe%$$##""! !!""##$deeffgghyxxwwvvu54433221TUUVVWWXEDDCCBBARSSYYZZ[wvvuutts//001122z{{||}}~``__^^]]))**++,,mmnnooppppoonnmm,,++**))]]^^__``~~}}<<;;::99 - - MMNNOOPPLLKKJJII==>>??@@\\[[ZZYY--..//00qqrrssttbbaa``__ HHIIJJKK88776655UVVWWXXYDCCBBAA@EFFGGHHITSSRRQQP 56677889yzz{{||}dccbbaa` %&&''(()ijjkkllmtssrrqqp0//..--,YZZ[[\\]@??>>==< - - \]]^^__`mllkkjji44556677[[ZZYYXX..//0011rrssttuukkjjiihh''&&%%$$ !!bbccddee{{zzyyxx77665544RRSSTTUUGGFFEEDDBBCCDDEEWWVVUUTT22334455vvwwxxyy]]\\[[ZZ - - MMNNOOPP~~}}||{33221100||{{zzyy88776655 aabbccddwwvvuutt@@AABBCCCBBAA@@?TUUVVWWXEDDCCBBADEEFFGGHUTTSSRRQ 45566778xyyzz{{|eddccbba! $%%&&''(hiijjkkluttssrrq100//..-XYYZZ[[\A@@??>>= - - [\\]]^^_smmllkkj33445566~\\[[ZZYY--..//00qqrrssttllkkjjii((''&&%% aabbccdd||{{zzyy88776655 QQRRSSTTHHGGFFEEAABBCCDDXXWWVVUU11223344uuvvwwxx^^]]\\[[ - - LLMMNNOO~~}}|44332211YZZ[[\\]@??>>==< IJJKKLLMPOONNMML - - 9::;;<<=}~~`__^^]]\)**++,,-mnnooppqpoonnmml,++**))(]^^__``a~~}}|<;;::998 `aabbccdihhggffe8899:;<=WWVVUUTT22334455vvwwxxyyggffeedd##""!! ""##$$%%ffgghhiiwwvvuutt33221100VVWWXXYYCCBBAA@@FFGGHHIISSRRQQPP 66778899zz{{||}}YYSSRRQQQQRRSSYY{zzyyxxw//..--,,xxwwvvuu44332211!!""##$$eeffgghhssmmllkkDDEEFFGG?>=<;:99XYYZZ[[\A@@??>>=HIIJJKKLQPPOONNM - - 899::;;<|}}~~a``__^^]())**++,lmmnnoopqppoonnm-,,++**)\]]^^__`~~}=<<;;::9 _``aabbcjiihhggf778899:;XXWWVVUU11223344uuvvwwxxhhggffee$$##""!!!!""##$$eeffgghhxxwwvvuu44332211UUVVWWXXDDCCBBAAEEFFGGHHTTSSRRQQ 55667788yyzz{{||ZZYYSSRRPPQQRRSS|{{zzyyx00//..--]^^__``a~~}}|<;;::998 - - MNNOOPPQLKKJJIIH=>>??@@A\[[ZZYYX-..//001qrrssttulkkjjiih(''&&%%$ !abbccdde|{{zzyyx87766554deeffggheddccbba>??@@AABSSRRQQPP 66778899zz{{||}}ccbbaa``&&''(())jjkkllmmssrrqqpp//..--,,ZZ[[\\]]??>>==<< JJKKLLMMOONNMMLL - - ::;;<<==~~PPOONNMM - -ZZ[[\\]]wvvuutts++**))((ttssrrqq00//..--%%&&''((iijjkklljjiihhggHHIIJJKK88776655\]]^^__`~~}=<<;;::9 - - LMMNNOOPMLLKKJJI <==>>??@]\\[[ZZY,--..//0pqqrrsstmllkkjji)((''&&% `aabbccd}||{{zzy98877665cddeeffgfeeddccb<=>??@@ATTSSRRQQ 55667788yyzz{{||ddccbbaa %%&&''((iijjkkllttssrrqq00//..--YYZZ[[\\@@??>>==IIJJKKLLPPOONNMM - - 99::;;<<}}~~QQPPOONN YYZZ[[\\xwwvvuut,,++**)) !abbccdde|{{zzyyx87766554 QRRSSTTUHGGFFEEDABBCCDDEXWWVVUUT12233445uvvwwxxyhggffeed$##""!! !""##$$%effgghhixwwvvuut43322110hiijjkkla``__^^] -BCCDDEEFOONNMMLL - - ::;;<<==~~__^^]]\\**++,,--nnooppqqoonnmmll++**))((^^__``aa~~}}||;;::9988 - - NNOOPPQQKKJJIIHH>>??@@AALLKKJJII ^^__``aasrqponmm''&&%%$#ppoonnmm,,++**))))**++,,mmnnooppffeeddccLLMMNNOO~~}}|44332211 `aabbccd}||{{zzy98877665 PQQRRSSTIHHGGFFE@AABBCCDYXXWWVVU01122334tuuvvwwxihhggffe%$$##""! !!""##$deeffgghyxxwwvvu54433221ghhiijjkbaa``__^ ABBCCDDEPPOONNMM - - 99::;;<<}}~~``__^^]]))**++,,mmnnooppppoonnmm,,++**))]]^^__``~~}}<<;;::99 - - MMNNOOPPLLKKJJII==>>??@@MMLLKKJJ - - ]]^^__``tssrqpon((''&&%%!""##$$%effgghhixwwvvuut43322110UVVWWXXYDCCBBAA@EFFGGHHITSSRRQQP 56677889yzz{{||}dccbbaa` %&&''(()ijjkkllmtssrrqqp0//..--,lmmssttu]\\[[ZZY - FGGHHIIJKKJJIIHH>>??@@AA[[ZZYYXX..//0011rrssttuukkjjiihh''&&%%$$ !!bbccddee{{zzyyxx77665544RRSSTTUUGGFFEEDDBBCCDDEEHHGGFFEEbbccddeellkkjjii"! llkkjjii((''&&%%--..//00qqrrssttbbaa``__ PPQQRRSS|{{zzyyx00//..-- !!""##$deeffgghyxxwwvvu54433221TUUVVWWXEDDCCBBADEEFFGGHUTTSSRRQ 45566778xyyzz{{|eddccbba! $%%&&''(hiijjkkluttssrrq100//..-kllmmsst^]]\\[[Z - - EFFGGHHILLKKJJII==>>??@@\\[[ZZYY--..//00qqrrssttllkkjjii((''&&%% aabbccdd||{{zzyy88776655 QQRRSSTTHHGGFFEEAABBCCDDIIHHGGFFaabbccddmmllkkjj$#"! %&&''(()ijjkkllmtssrrqqp0//..--,YZZ[[\\]@??>>==< IJJKKLLMPOONNMML - - 9::;;<<=}~~`__^^]]\)**++,,-mnnooppqpoonnmml,++**))(%%&uvvwwxxyYSSRRQQPJKKLLMMNGGFFEEDDBBCCDDEEWWVVUUTT22334455vvwwxxyyggffeedd##""!! ""##$$%%ffgghhiiwwvvuutt33221100VVWWXXYYCCBBAA@@FFGGHHIIDDCCBBAAffgghhiihhggffeehhggffee$$##""!!11223344uuvvwwxx^^]]\\[[ - - YYZZ[[\\xwwvvuut,,++**))$%%&&''(hiijjkkluttssrrq100//..-XYYZZ[[\A@@??>>=HIIJJKKLQPPOONNM - - 899::;;<|}}~~a``__^^]())**++,lmmnnoopqppoonnm-,,++**)%tuuvvwwxZYYSSRRQIJJKKLLMHHGGFFEEAABBCCDDXXWWVVUU11223344uuvvwwxxhhggffee$$##""!!!!""##$$eeffgghhxxwwvvuu44332211UUVVWWXXDDCCBBAAEEFFGGHHEEDDCCBBeeffgghhiihhggff)**++,,-mnnooppqpoonnmml,++**))(]^^__``a~~}}|<;;::998 - - MNNOOPPQLKKJJIIH=>>??@@A\[[ZZYYX-..//001qrrssttulkkjjiih(''&&%%$&''(())*yzz{{||}POONNMML NOOPPQQRCCBBAA@@FFGGHHIISSRRQQPP 66778899zz{{||}}ccbbaa``&&''(())jjkkllmmssrrqqpp//..--,,ZZ[[\\]]??>>==<< JJKKLLMM@@??9988jjkkllmmddccbbaaddccbbaa 55667788yyzz{{||ZZYYSSRR - - ]]^^__``tssrqpon((''&&%%())**++,lmmnnoopqppoonnm-,,++**)\]]^^__`~~}=<<;;::9 - - LMMNNOOPMLLKKJJI <==>>??@]\\[[ZZY,--..//0pqqrrsstmllkkjji)((''&&%%&&''(()xyyzz{{|QPPOONNMMNNOOPPQDDCCBBAAEEFFGGHHTTSSRRQQ 55667788yyzz{{||ddccbbaa %%&&''((iijjkkllttssrrqq00//..--YYZZ[[\\@@??>>==IIJJKKLLAA@@??99iijjkklleeddccbb-..//001qrrssttulkkjjiih(''&&%%$ !abbccdde|{{zzyyx87766554 QRRSSTTUHGGFFEEDABBCCDDEXWWVVUUT12233445uvvwwxxyhggffeed$##""!! *++,,--.}~~LKKJJIIH - - RSSTUVWX??>>==<< JJKKLLMMOONNMMLL - - ::;;<<==~~__^^]]\\**++,,--nnooppqqoonnmmll++**))((^^__``aa~~}}||;;::9988 - - NNOOPPQQ77665544ssttuuvv``__^^]]``__^^]]99::;;<<}}~~QQPPOONNaabbccddmmllkkjj$#"! ,--..//0pqqrrsstmllkkjji)((''&&% `aabbccd}||{{zzy98877665 PQQRRSSTIHHGGFFE@AABBCCDYXXWWVVU01122334tuuvvwwxihhggffe%$$##""!)**++,,-|}}~~MLLKKJJI - - QRRSSTUV@@??>>==IIJJKKLLPPOONNMM - - 99::;;<<}}~~``__^^]]))**++,,mmnnooppppoonnmm,,++**))]]^^__``~~}}<<;;::99 - - MMNNOOPP88776655mmssttuuaa``__^^12233445uvvwwxxyhggffeed$##""!! !""##$$%effgghhixwwvvuut43322110UVVWWXXYDCCBBAA@EFFGGHHITSSRRQQP 56677889yzz{{||}dccbbaa` .//00112HGGFFEED YYZZ[[\\~~}}||;;::9988 - - NNOOPPQQKKJJIIHH>>??@@AA[[ZZYYXX..//0011rrssttuukkjjiihh''&&%%$$ !!bbccddee{{zzyyxx77665544RRSSTTUU33221100%%&&''wwxxyyzz\\[[ZZYY \\[[ZZYY==>>??@@MMLLKKJJeeffgghhiihhggff01122334tuuvvwwxihhggffe%$$##""! !!""##$deeffgghyxxwwvvu54433221TUUVVWWXEDDCCBBADEEFFGGHUTTSSRRQ 45566778xyyzz{{|eddccbba! -..//001IHHGGFFE WXYYZZ[[~~}}<<;;::99 - - MMNNOOPPLLKKJJII==>>??@@\\[[ZZYY--..//00qqrrssttllkkjjii((''&&%% aabbccdd||{{zzyy88776655 QQRRSSTT44332211%%&&vvwwxxyy]]\\[[ZZ56677889yzz{{||}dccbbaa` %&&''(()ijjkkllmtssrrqqp0//..--,YZZ[[\\]@??>>==< IJJKKLLMPOONNMML - - 9::;;<<=}~~`__^^]]\23344556DCCBBAA@]]^^__``{{zzyyxx77665544RRSSTTUUGGFFEEDDBBCCDDEEWWVVUUTT22334455vvwwxxyyggffeedd##""!! ""##$$%%ffgghhiiwwvvuutt33221100VVWWXXYY//..--,,(())**++{{||}}~~XWVUTSSR - - XXWWVVUUAABBCCDDIIHHGGFFiijjkklleeddccbb45566778xyyzz{{|eddccbba! $%%&&''(hiijjkkluttssrrq100//..-XYYZZ[[\A@@??>>=HIIJJKKLQPPOONNM - - 899::;;<|}}~~a``__^^]12233445EDDCCBBA\\]]^^__||{{zzyy88776655 QQRRSSTTHHGGFFEEAABBCCDDXXWWVVUU11223344uuvvwwxxhhggffee$$##""!!!!""##$$eeffgghhxxwwvvuu44332211UUVVWWXX00//..--''(())**zz{{||}}YYXWVUTS -9::;;<<=}~~`__^^]]\)**++,,-mnnooppqpoonnmml,++**))(]^^__``a~~}}|<;;::998 - - MNNOOPPQLKKJJIIH=>>??@@A\[[ZZYYX6778899?@??99887aabbccddwwvvuutt33221100VVWWXXYYCCBBAA@@FFGGHHIISSRRQQPP 66778899zz{{||}}ccbbaa``&&''(())jjkkllmmssrrqqpp//..--,,ZZ[[\\]]~~}}||{{++**))((,,--..//RQQPPOON TTSSRRQQ EEFFGGHHEEDDCCBBmmssttuuaa``__^^899::;;<|}}~~a``__^^]())**++,lmmnnoopqppoonnm-,,++**)\]]^^__`~~}=<<;;::9 - - LMMNNOOPMLLKKJJI <==>>??@]\\[[ZZY56677889A@@??998``aabbccxxwwvvuu44332211UUVVWWXXDDCCBBAAEEFFGGHHTTSSRRQQ 55667788yyzz{{||ddccbbaa %%&&''((iijjkkllttssrrqq00//..--YYZZ[[\\~~}}||,,++**))++,,--..~~SRRQQPPO - =>>??@@A\[[ZZYYX-..//001qrrssttulkkjjiih(''&&%%$ !abbccdde|{{zzyyx87766554 QRRSSTTUHGGFFEEDABBCCDDEXWWVVUUT?@@AABBC76655443eeffgghhssrrqqpp//..--,,ZZ[[\\]]??>>==<< JJKKLLMMOONNMMLL - - ::;;<<==~~__^^]]\\**++,,--nnooppqqoonnmmll++**))((^^__``aazzyyxxww''&&%%00112233NMMLLKKJPPOONNMM - - IIJJKKLLAA@@??99%%&&vvwwxxyy]]\\[[ZZ<==>>??@]\\[[ZZY,--..//0pqqrrsstmllkkjji)((''&&% `aabbccd}||{{zzy98877665 PQQRRSSTIHHGGFFE@AABBCCDYXXWWVVU9??@@AAB87766554ddeeffggttssrrqq00//..--YYZZ[[\\@@??>>==IIJJKKLLPPOONNMM - - 99::;;<<}}~~``__^^]]))**++,,mmnnooppppoonnmm,,++**))]]^^__``{{zzyyxx((''&&%%//001122ONNMMLLKABBCCDDEXWWVVUUT12233445uvvwwxxyhggffeed$##""!! !""##$$%effgghhixwwvvuut43322110UVVWWXXYDCCBBAA@EFFGGHHITSSRRQQP CDDEEFFG3221100/ !"iijjkklloonnmmll++**))((^^__``aa~~}}||;;::9988 - - NNOOPPQQKKJJIIHH>>??@@AA[[ZZYYXX..//0011rrssttuukkjjiihh''&&%%$$ !!bbccddeevvuuttss44556677JIIHHGGF -JKKLLMMNONNMMLLK - - :;;<<==>~_^^]]\\[*++,,--.nooppqqronnmmllk+**))(('^__``aab~~}}||{;::99887 - NOOPPQQRKJJIIHHG>??@@AABIHHGGFFEijjkkllmYXXWWVVU@AABBCCD - NOOPPQQRKJJIIHHG>??@@AAB[ZZYYXXW.//00112rssttuuvkjjiihhg'&&%%$$# !!"bccddeef{zzyyxxw76655443RSSTTUUVGFFEEDDCBCCDDEEFEDDCCBBAmssttuuvUTTSSRRQ DEEFFGGHRSSTTUUVGFFEEDDCBCCDDEEFWVVUUTTS23344556vwwxxyyzgffeeddc#""!! "##$$%%&fgghhiijwvvuutts3221100/VWWXXYYZCBBAA@@?FGGHHIIJA@@??998%%&&'vwwxxyyzQPPOONNM - - HIIJJKKLVWWXXYYZCBBAA@@?FGGHHIIJSRRQQPPO 6778899:z{{||}}~cbbaa``_&''(())*jkkllmmnsrrqqppo/..--,,+Z[[\\]]^?>>==<<; -JKKLLMMN87766554'(())**+z{{||}}~MLLKKJJI - - LMMNNOOPZ[[\\]]^?>>==<<; -JKKLLMMNONNMMLLK - - :;;<<==>~_^^]]\\[*++,,--.nooppqqronnmmllk+**))(('^__``aab~~}}||{;::99887 - NOOPPQQR43322110+,,--../~IHHGGFFE PQQRRSST^__``aab~~}}||{;::99887 - NOOPPQQRKJJIIHHG>??@@AAB[ZZYYXXW.//00112rssttuuvkjjiihhg'&&%%$$# !!"bccddeef{zzyyxxw76655443RSSTTUUV0//..--,/0011223EDDCCBBATUUVVWWX !!"bccddeef{zzyyxxw76655443RSSTTUUVGFFEEDDCBCCDDEEFWVVUUTTS23344556vwwxxyyzgffeeddc#""!! "##$$%%&fgghhiijwvvuutts3221100/VWWXXYYZ~~}}||{,++**))(34455667A@@??>>=XYYZZ[[\"##$$%%&fgghhiijwvvuutts3221100/VWWXXYYZCBBAA@@?FGGHHIIJSRRQQPPO 6778899:z{{||}}~cbbaa``_&''(())*jkkllmmnsrrqqppo/..--,,+Z[[\\]]^{zzyyxxw(''&&%%78899??@~~}=<<;;::9\]]^^__`&''(())*jkkllmmnsrrqqppo/..--,,+Z[[\\]]^?>>==<<; -JKKLLMMNONNMMLLK - - :;;<<==>~_^^]]\\[*++,,--.nooppqqronnmmllk+**))(('^__``aabwvvuutts@AABBCCD}||{{zzy98877665 `aabbccd*++,,--.nooppqqronnmmllk+**))(('^__``aab~~}}||{;::99887 - NOOPPQQRKJJIIHHG>??@@AAB[ZZYYXXW.//00112rssttuuvkjjiihhg'&&%%$$# !!"bccddeefsmmllkkjDEEFFGGHyxxwwvvu54433221 !!""##$deeffggh.//00112rssttuuvkjjiihhg'&&%%$$# !!"bccddeef{zzyyxxw76655443RSSTTUUVGFFEEDDCBCCDDEEFWVVUUTTS23344556vwwxxyyzgffeeddc#""!! "##$$%%&fgghhiijjiihhggfHIIJJKKLuttssrrq100//..-$%%&&''(hiijjkkl23344556vwwxxyyzgffeeddc#""!! "##$$%%&fgghhiijwvvuutts3221100/VWWXXYYZCBBAA@@?FGGHHIIJSRRQQPPO 6778899:z{{||}}~cbbaa``_&''(())*jkkllmmnfeeddccbLMMNNOOPqppoonnm-,,++**)())**++,lmmnnoop6778899:z{{||}}~cbbaa``_&''(())*jkkllmmnsrrqqppo/..--,,+Z[[\\]]^?>>==<<; -JKKLLMMNONNMMLLK - - :;;<<==>~_^^]]\\[*++,,--.nooppqqrbaa``__^ PQQRRSSYmllkkjji)((''&&%,--..//0pqqrrsst:;;<<==>~_^^]]\\[*++,,--.nooppqqronnmmllk+**))(('^__``aab~~}}||{;::99887 - NOOPPQQRKJJIIHHG>??@@AAB[ZZYYXXW.//00112rssttuuv^]]\\[[Z - - -YZZ[[\\]ihhggffe%$$##""!01122334tuuvvwwx>??@@AAB[ZZYYXXW.//00112rssttuuvkjjiihhg'&&%%$$# !!"bccddeef{zzyyxxw76655443RSSTTUUVGFFEEDDCBCCDDEEFWVVUUTTS23344556vwwxxyyzZYYSSRRQ - ]^^__``aeddccbba! 45566778xyyzz{{|BCCDDEEFWVVUUTTS23344556vwwxxyyzgffeeddc#""!! "##$$%%&fgghhiijwvvuutts3221100/VWWXXYYZCBBAA@@?FGGHHIIJSRRQQPPO 6778899:z{{||}}~QPPOONNMabbccddea``__^^]899::;;<|}}~~FGGHHIIJSRRQQPPO 6778899:z{{||}}~cbbaa``_&''(())*jkkllmmnsrrqqppo/..--,,+Z[[\\]]^?>>==<<; -JKKLLMMNONNMMLLK - - :;;<<==>~MLLKKJJIeffgghhi]\\[[ZZY<==>>??@bdQZ|Jlt`vXnH~fr˂pZHAblJtArlJtAHfvnXvnXbHArXQJ`AJltdrtnvpf`vXZHAbQr˂p|ZdQJtArdnXv`fpvbHArXQJ`AJltdrtbnvpf`vXfH~Qr˂pے`JXrd|vnXfpv㒐bHAZZp˂JltdrtAvpf`vXnZHAbr˂p|ZdQbtArdnXv`fpvfHfXQJ`ےp˂rdrtAbdQZ|`vXnH~fr˂pے`JXQtArdtlJXv`f~Hf`ےbJ`p˂tbdnvpvXn~f`r˂p`JXQArd|lJtfpvf~HQJ`ے˂rXdrtAbdQZ|vXn~f`r˂p`JXQJtAd|lJtZdQbf~HnXv`ˉrXQJ`Z|dQZ|dnvpvf~˂pZ`JXQrrd|lJtApvn~HfJ`ے˂rXQdrtAJdQZ|tbn~f`vpfH`JXQrHAbےlJtAZdQbt~HfXv`f˂rXQbHAZptbdQZtbdQf`pfnr˂pZHAdrtAbdQZ|vpf`vXn`JXQrے`JXQd|Zrd|v`fv`frZp˂󒐙bHAbdQZ|AJltfH~nvpے`JXZHAbbtl|ZdQf~HnXv`Zp˂󒐙bHAbdQZ|AJltfHnvpf`vXZHAbQr˂pZdQbtv`fnXv`ˑrXQJrXQJbdQZ|JltH~fvpfے`JXQZHAbtlJ|ZdQbf~HnXv`pvnbHAZXQJ`ےJltdrtAvpf`vXnZHAbr˂p|ZdQbtArdnXpvnHAZp`rbdQQZ|dfHf`vpfHvXnZHAbr˂pZdQbtArd|nXv`fpvbHAZpQJ`ےJltdrtAvpfHvXnZHAbr˂pZdQbtArd|nXv`fpvfHfpےbHrtAJlrtAJlfH~f`vXHAbے˂pZZdQbtrd|Xv`fpvnbHAZpJ`ےltbdrtAJvpfvXn~f`˂pZ`JXQrrd|lJtApvn~HfJ`ے˂rXQ|drZ|dH~fpZAb`bے`JJltdrtAH~fvpf˂pZr˂pdQbtZdQbt~HfpQJHArXQJ`Zp˂drtbdQZ|f`vXfH~Qr˂pے`JXJtArdbtlfpvf~HrXQJ`Zp˂drtbdQZ|f`vXfH~nr˂pے`JXZHAےlJtA~Hfpf~H`ےbbHAZpdrtAbdQZ|`vXnH~fr˂pے`JXQtArdtlJfpvf~HrXQJ`p˂rbHAZbdQZ|JltH~fvpfے`JXQZHAbtlJ|ZdQbv`fXv`fےbHAZ|rArtAJlvXn~f`r˂p`JXQZHAے`lJtZdQbtf~HnXv`ˑ˂rXbHAZpbdQZ|Jlt~f`vpfH`JXQZHAbۉlJtZdQbtf~HnXv`˝vnAZp˂tbdQtdf`vXnvp`JXQrHAbےlJtAZdQbt~HfXv`f˂rXQbHAZpdQZ|ltbHf`vpfHvXnrHAbے˂pZZdQbtrd|Xv`fpvnbHAZpJ`ےtAJlrtAJl`vXnJXQrQrpZbdQZ|Jlt`vXnH~fHAbےZHAblJtArl|ZvnXZp˂󒐙bHArbdQZ|AJltdtAnvpf`vXZHAbQr˂p|ZdQJtArdnXv`fpvbHArXQJ`AJltdrtnvpf`vXZHAbQr˂p`JXQrd|vnXfpvHAZp˂rXQJltdrtAvpf`vXnZHAbr˂p|ZdQbtArdnXv`fpvےHAZXQJ`ےp˂rdrtAbdQZ|`vXnH~fr˂pے`JXQtArdtlJ~Hfp~HfZp˂JltbQZ|vpfHvXnZHAbr˂pJXQrArd|lJtfpvf~HQJ`ے˂rXdrtAbdQZ|vXn~f`r˂p`JXQArd|lJtfpvf~HrXQJ`pbHAZ|dtrtAJlnvpfH~˂pZ`JXQrrd|lJtApvn~HfJ`ے˂rXQdrtAJdQZ|vXn~f`˂pZ`JXQrHAے`lJtAZdQbt~HfXv`f˂rXQbHAZptbdQZtbdQvpf˂pZHHAbےdrtAbdQZ|vpf`vXn`JXQrے`JXQd|ldQbnXv`frXQJ`Zp˂drtbdQZ|JltfH~nvpے`JXZHAbbtl|ZdQf~HnXv`Zp˂󒐙bHAbdQZ|AJltfH~nvpے`JXZHAbrbtlZdQtArdv`f~HfprXQJJ`ےbdQZ|JltH~fvpfے`JXQZHAbtlJ|ZdQbf~HnXv`p˂rbHAZbdQZ|JltdtAJvpf`vXnZHAbr˂p|ZdQbtArdvnXpvnrXQJ`bdQZ|drtA~f`vpfH`JXQZHAbbtlZdQbtArd|nXv`fpvbHAZpQJ`ےJltdrtAvpfHvXnZHAbr˂pZdQbtArd|nXv`fpv˂rXZp˂bdQZ|tbdQfH~f`vXHAbے˂pZZdQbtrd|Xv`fpvnbHAZpJ`ےltbdrtAJvpfHvXnHAbے˂pZJXQrbrd|lJtApvn~HfJ`ے˂rXQ|drZ|lH~fAbے``JXQrJltdrtAH~fvpf˂pZHAbےJtArdv`f~~HfpbHArXQJ`AJltdrtbnvpf`vXfH~Qr˂pے`JXJtArdbtlfpvf~HrXQJ`Zp˂drtbdQZ|f`vXfH~Qr˂pے`JX|ZdQ|ZdnXvnX`ےbbHAZpdrtAbdQZ|`vXnH~fr˂pے`JXQtArdtlJfpvf~HXQJ`ےp˂rdrtAbdQZ|ltbH~fvpfے`JXQZHAbtlJ|ZdQbv`fXv`pےbHAdrtAJltvXn~f`r˂p`JXQJtAd|lJtZdQbf~HnXv`ˑ˂rXbHAZpbdQZ|Jlt~f`vpfH`JXQZHAbۉlJtZdQbtf~HnXv`QJ`ےrXQJ`ہdrtZ|df`vnnvp`JXQrHAbےlJtAZdQbt~HfXv`f˂rXQbHAZpdQZ|ltb~f`vpfH`JXQrHAbےtlJZdQbtrd|Xv`fpvnbHAZpJ`ےtAdQZ|tbn`vXHJXQr˂pZbdQZ|Jlt`vXnH~fHAXQr`JXQr|ZdQfpvvnv`Zp˂󒐙bHAbdQZ|AJltfHnvpf`vXZHAbQr˂p|ZdQJtArdnXv`fpvbHArXQJ`AJltdrtnvpf`vXZHAbQr˂pbtlQbtlv`fv`fHAZprXQJltdrtAvpf`vXnZHAbr˂p|ZdQbtArdnXv`fpvbHAZXQJ`ےJltdrtAnvp`vXnH~fr˂pے`JXQtArdtlJ~HXvvnrZp˂JltbdQZ|vpfHvXnZHAbr˂pZdQbtArd|nXv`fpvfHfpQJ`ے˂rXdrtAbdQZ|vXn~f`r˂p`JXQArd|lJtfpvf~HbHAZpbHAAJltrtAJlvpfHf~f`˂pZ`JXQrrd|lJtApvn~HfJ`ے˂rXQdrtAJdQZ|vXn~f`˂pZ`JXQrtAd|lJtAZdQbn~HfXv`f˂rXQbHAZpdrtAvp`v~f`˂pZHHAbےdrtAbdQZ|vpf`vXn˂pZHA˂pZbtlnXv`f~HrXQJ`Zp˂drtbdQZ|f`vXfH~nr˂pے`JXZHAbtl|ZdQf~HnXv`Zp˂󒐙bHAbdQZ|AJltfH~nvpے`JXZHAbJtArdJtArd~Hfpە~HfprQJ`ےJ`bAZbdQZ|JltH~fvpfے`JXQZHAbtlJ|ZdQbf~HnXv`p˂rbHAZbdQZ|JltfHfvpf`vXnZHAbr˂p|ZdQbtArd`f~XQJ`pbHAZbdQZ|drtA~f`vpfH`JXQZHAbۉlJtZdQbtf~HnXv`˝vnbHAZpQJ`ےJltdrtAvpfHvXnZHAbr˂pZdQbtArd|nXv`fpv˂rXZp˂bdQZ|tbdQ~f`vXnrHAbے˂pZZdQbtrd|Xv`fpvnbHAZpJ`ےltbdrtAJvpfHvXnHAbے˂pZZdQbtrd|Xv`fpvnHfpJ`ے˂rXQJltXnvvXnAbJXQ`JXQrJltdrtAH~fvpfbے`HAbےJtArdf~HfpvbHArXQJ`AJltdrtnvpf`vXZHAbQr˂p`JXQJtArdbtlfpvf~HrXQJ`Zp˂drtbdQZ|f`vXfH~Qr˂pے`JX|ZdQ|ZdvnXvnXbHAZpp˂rdrtAbdQZ|`vXnH~fr˂pے`JXQtArdtlJfpvf~HXQJ`ےp˂rdrtAbdQZ|`vXnH~fr˂pے`JXQZHAےtlJ|ZdQbHfpv˂rXQp˂rdrAJJltvXn~f`r˂p`JXQArd|lJtfpvf~HrXQJ`ۑ˂rXbHAZpbdQZ|Jlt~f`vpfH`JXQZHAbۉlJtZdQbtf~HnXv`QJ`ےrXQHAZpdrtZ|ltvXnۀ˂pZ`JXQrHAے`lJtAZdQbt~HfXv`f˂rXQbHAZpdQZ|ltb~f`vpfH`JXQrHAbےlJtAZdQbt~HfXv`fvnrbHAZpJ`ےbdQZ|pfH~vpfHr˂pZHAbbdQZ|Jlt`vXnH~fJXQr`JXQr|ZdQfpvnXv`Zp˂󒐙bHAbdQZ|AJltfH~nvpے`JXZHAbrbtl|ZdQJtArdnXv`fpvbHArXQJ`AJltdrtnvpf`vXZHAbQr˂pbtlQbtdv`fv`pۑ˂rXbdQZ|JltdtAJvpf`vXnZHAbr˂p|ZdQbtArdnXv`fpvbHAZXQJ`ےJltdrtAvpf`vXnZHAbr˂p`JXQrtArdtlJnXvJ`ےXQJ`ےtbdQZbQZdvpfHvXnZHAbr˂pZdQbtArd|nXv`fpv㒐HAZpQJ`ے˂rdrtAbdQZ|vXn~f`r˂p`JXQArd|lJtfpvf~HbHAXQ˂rXAdQZ|bnvpfHHAbے˂pZJXQrbrd|lJtApvn~HfJ`ے˂rXQdrtAJdQZ|vXn~f`˂pZ`JXQrrd|lJtApvn~HfXQJ`ے˂rXQbHAZpdrtAf`v~f`ZHAbے`JXdrtAbdQZ|vpf`vXn˂pZHA˂p|tArdnXv`f~HrXQJ`Zp˂drtbdQZ|f`vXfH~Qr˂pے`JXJtAdbtl|ZdQf~HnXv`Zp˂󒐙bHAbdQZ|AJltfH~nvpے`JXZHAbJtArdt|ZdQ~HXv`vnrXQJ`ےdrtAbdQZ|ltbH~fvpfے`JXQZHAbtlJ|ZdQbf~HnXv`p˂rbHAZbdQZ|JltH~fvpfے`JXQZHAbbtl|ZdQbtArd`f~bHAZpbHAZ|drrtAJl~f`vpfH`JXQZHAbۉlJtZdQbtf~HnXv`ˑ˂rXbHAZpbdQZ|JltdtAJlvpfHvXnZHAbr˂pZdQbtArd|nXv`fpvJ`ےQJ`ےdrtAvpff`~f``JXQrHAbےtlJZdQbtrd|Xv`fpvnbHAZpJ`ےltbdrtAJvpfHvXnHAbے˂pZZdQbtrd|Xv`fpvnHAZpJ`ے˂rbJl|XnvvXnے`JXQQr˂pJltdrtAH~fvpfb˂ZdQbt|ZdQbf~fvfpvbHArXQJ`AJltdrtnvpf`vXZHAbQr˂p|ZdQJtArdbnXv`fpvfHrXQJ`Zp˂drtbdQZ|f`vXfH~Qr˂pے`JXlJtbtlf~HQJ`AbHAZpJltdrtAnvp`vXnH~fr˂pے`JXQtArdtlJfpvf~HXQJ`ےp˂rdrtAbdQZ|`vXnH~fr˂pے`JXQJtAdtlJ|ZdQbHfp`˂rXQp˂rtAJl璒tbdQvXn~f`r˂p`JXQArd|lJtfpvf~HQJ`ے˂rXdrtAbdQZ|tb~f`vpfH`JXQZHAbۉlJtZdQbtf~HnXv`bHAZp˙bHAZpJltvXnvXnvf˂pZ`JXQrtAd|lJtAZdQbn~HfXv`f˂rXQbHAZpdQZ|ltb~f`vpfH`JXQrHAbےlJtAZdQbt~HfXv`f˂rXQbHAZpdQZ|ldrtAJpfH~f`vr˂pZHAbbdQZ|Jlt`vXnH~fpZHAblJtAtlJnXvnvfZp˂󒐙bHAbdQZ|AJltfH~nvpے`JXZHAbbtl|ZdQf~HnXv`fpv㒐bHArXQJ`AJltdrtnvpf`vXZHAbQr˂pArd|JtArdfpvZp˂˂rQJbdQZ|JltfHfvpf`vXnZHAbr˂p|ZdQbtArdnXv`fpvbHAZXQJ`ےJltdrtAvpf`vXnZHAbr˂p|ZdQbtArdnXv`f~HJ`ےXQHAZptbdQZZ|dvpfHvXnZHAbr˂pZdQbtArd|nXv`fpvbHAZpQJ`ےJltdrtAnvpvXn~f`r˂p`JXQArd|lJtfpvf~HrXQ˂rXbdQZ|vpfHH~fHAbے˂pZZdQbtrd|Xv`fpvnHfpJ`ے˂rXQdrtAJdQZ|vXn~f`˂pZ`JXQrrd|lJtApvn~HfJ`ے˂rXQtbdQltbvpXnvZHAbے`JXdrtAbdQZ|vpf`vXnے`Jrd|tArd`f~~HfprXQJ`Zp˂drtbdQZ|f`vXfH~Qr˂pے`JXJtArdbtlfpvf~HnrXQJ`Zp˂󒐙bHAbdQZ|AJltfH~nvpے`JXZHAbZdQbt|ZdQnXv`rXQJ`ہbHAdrtAbdQZ|`vXnH~fr˂pے`JXQZHAےtlJ|ZdQbf~HnXv`p˂rbHAZbdQZ|JltH~fvpfے`JXQZHAbtlJ|ZdQbpvnfpvbHAXQJ˂rXQ|drrtAJl~f`vpfH`JXQZHAbۉlJtZdQbtf~HnXv`ˑ˂rXbHAZpbdQZ|JltfHf`vpfHvXnZHAbr˂pZdQbtArd|nXv`fpvJ`ےQJ`p˂drtA~f``vXn`JXQrHAbےlJtAZdQbt~HfXv`fvnrbHAZpJ`ےltbdrtAJvpfHvXnHAbے˂pZZdQbtrd|Xv`fpvnbHAZpJ`ےZ|ddQZ|fH~pfH~JQrQr˂pJltdrtAH~fvpfXQr˂ZdQbt|ZdQbHfpvvnXbHArXQJ`AJltdrtnvpf`vXZHAbQr˂p|ZdQJtArdnXv`fpvےHArXQJ`Zp˂drtbdQZ|f`vXfH~Qr˂pے`JXlJtbtl|f~HbHAZp˂JltdrtAvpf`vXnZHAbr˂p`JXQrtArdtlJfpvf~HXQJ`ےp˂rdrtAbdQZ|`vXnH~fr˂pے`JXQtArdtlJXv`fnXv``ےbJ`ےtAJbdtbdQvXn~f`r˂p`JXQArd|lJtfpvf~HQJ`ے˂rXdrtAbdQZ|vXn~f`r˂p`JXQZHAے`lJtZdQbtf~HnXv`bHAZp`rbdJl|dvXnvpf˂pZ`JXQrrd|lJtApvn~HfXQJ`ے˂rXQbHAZpdQZ|ltb~f`vpfH`JXQrHAbےlJtAZdQbt~HfXv`f˂rXQbHAZprtAJldrtAJf`vXf`vpZHAZA`bdQZ|Jlt`vXnH~fpZHAblJtAtd|nXvv`fZp˂󒐙bHAbdQZ|AJltfH~nvpے`JXZHAbbtl|ZdQf~HnXv`Zp˂󒐙bHArbdQZ|AJltdtAnvpf`vXZHAbQr˂pArd|ZdQbfp`Zp˂rXQJ`bdQZ|JltH~fvpfے`JXQZHAbbtl|ZdQbtArdnXv`fpvbHAZXQJ`ےJltdrtAvpf`vXnZHAbr˂p|ZdQbtArd~Hff~HHAZp˂bHAZpQZ|dZ|AJlvpfHvXnZHAbr˂pZdQbtArd|nXv`fpvbHAZpQJ`ےJltdrtAvpfHvXnZHAbr˂pJXQrArd|lJtfpvf~HےbHQZ|lrtAJlvpfHH~fHAbے˂pZZdQbtrd|Xv`fpvnHAZpJ`ے˂rbdrtAJdQZ|vXn~f`˂pZ`JXQrrd|lJtApvn~HfJ`ے˂rXQtbdQltdnvpXnvbے`JXQrbtdrtAbdQZ|vpf`vXnے`prdtZdQbt`f~~HfprXQJ`Zp˂drtbdQZ|f`vXfH~Qr˂pے`JXJtArdbtlfpvf~HrXQJ`Zp˂drtbdQZ|JltfH~nvpے`JXZHAblJtAnXv`pf~HrXQJ`ےbHAdrtAbdQZ|`vXnH~fr˂pے`JXQJtAdtlJ|ZdQbf~HnXv`p˂rbHAZbdQZ|JltH~fvpfے`JXQZHAbtlJ|ZdQbpvnfpvrXQJ˂rXQrtAJltb~f`vpfH`JXQZHAbۉlJtZdQbtf~HnXv`ˑ˂rXbHAZpbdQZ|Jlt~f`vpfH`JXQZHAbbtlZdQbtArd|nXv`fpvAZp˂tbdQtbd~fv`vXn`JXQrHAbےlJtAZdQbt~HfXv`f˂rXQbHAZpdQZ|ltbdtAJlvpfHvXnHAbے˂pZZdQbtrd|Xv`fpvnbHAZpJ`ےZ|drtAJlfH~p`vXJXQrˉlJtAd|lJtAZdQbnX~Hfpv`frXQbHAZpQZ|dtbd~f`vpfHJXQrAbے`lJtAZdQbt~Hfpv`frXQbHAZpQZ|dtbdtAJlvpfHvXnQr˂pQXb㉀`ZQXb㉐f۝`vpfH~tbAdZZdQbtrd|v`fvnXHfpJ`ےむrXQrtAJlQZ|dvXn~f`˂pZHJXQrrd|lJtAvnX~HfpJ`ےむrXQrtAJlQZ|dtbn~f`vpfHZHAbۑpJAHrˁ`ZXnvˍf۝`v|drlJtAZdQbt~Hfpv`fvnrXbHAZpJ`ےtbdrtAJlvpfHvXnAbے`˂pZHZdQbtrd|v`fvnXbHAZpJ`ےtbdrtAJlvpfHvXn~f`ے`p󙐉ۑQXb㉀pfH~XnvˍQtJlrd|lJtAvnX~HfpQJ`ےrXQbHAZpQZ|dtbd~f`vpfHJXQrAbے`lJtAZdQbt~Hfpv`frXQbHAZpQZ|dtbdf`vpfHvXnے`ZHAbpJAHrۑpJAHrf۝`vp|drtbAdZZdQbtrd|v`fvnXHAZpJ`ےむrbdrtAJlQZ|dvXn~f`˂pZHJXQrrd|lJtAvnX~HfpJ`ےむrXQrtAJlQZ|dvXn~f`JXQr`JXQˁ`ZQ󙐂ˁ`ZXnvˍQtJl|drlJtAZdQbt~Hfpv`frXQbHAZpQZ|dtbdtAJlvpfHvXnAbے`˂pZHZdQbtrd|v`fvnXbHAZpJ`ےtbdrtAJlvpfHvXnۉ˂pZHr˂pXb㉀ۑQXb㉀pfH~tbAdZQtJlrd|lJtAvnX~HfpJ`ےむrXQrtAJlQZ|dtbn~f`vpfHJXQrAbے`lJtAZdQbt~Hfpv`frXQbHAZpQZ|dtbd~f`vpfHAbے`ZHAbpJAHrXnvˍf۝`v|drtbAdZZdQbtrd|v`fvnXbHAZpJ`ےtbdrtAJlvpfHvXn~f`˂pZHJXQrrd|lJtAvnX~HfpJ`ےむrXQrtAJlQZ|dvXn~f`JXQr`JXQHˁ`pJpfH~XnvˍQtJl|drlJtAZdQbt~Hfpv`frXQbHAZpQZ|dtbdf`vpfHvXnrAbے`˂pZHZdQbtrd|v`fvnXbHAZpJ`ےtbdrtAJlvpfHvXnۉ˂pZHAbے`AHr󙐂f۝`vpfH~tbAdZQtJlrd|lJtAvnX~HfpJ`ےむrXQrtAJlQZ|dvXn~f`˂pZHJXQrAے`lJtAZdQbt~Hfpv`frXQbHAZpQZ|dtbd~f`vpfHAXQrˁJXQrˁ`ZQXbXnvˍf۝`v|drtbAdZZdQbtrd|v`fvnXbHAZpJ`ےtbdrtAJlvpfHvXnAbے`˂pZHJXQrbtrd|lJtAvnX~HfpJ`ےむrXQrtAJlQZ|dvXn~f`pZHA˂pZH㉀ۑpJpfH~XnvˍQtJl|drlJtAZdQbt~Hfpv`frXQbHAZpQZ|dtbd~f`vpfHJXQrAbے`lJtZdQbtrd|v`fvnXbHAZpJ`ےtbdrtAJlvpfHvXnbے`Abے`AHr󙐂f۝`vpfH~tbAdZQtJlrd|lJtAvnX~HfpJ`ےむrXQrtAJlQZ|dvXn~f`˂pZHJXQrAd|lJtAZdQbnX~Hfpv`frXQbHAZpQZ|dtbd~f`vpfHJXQrˁJXQrˁ`ZQXAXnvˍf۝`v|drtbAdZZdQbtrd|v`fvnXbHAZpJ`ےtbdrtAJlvpfHvXnAbے`˂pZHZdQbtrd|v`fvnXHfpJ`ےむrXQrtAJlQZ|dvXn~f`pZHA˂p`ZHr󙐂ˁpfH~XnvˍQtJl|drlJtAZdQbt~Hfpv`frXQbHAZpQZ|dtbd~f`vpfHJXQrAbے`lJtAZdQbt~Hfpv`fvnrXbHAZpJ`ےtbdrtAJlvpfHvXnb˂pQXb㉀`ZQXb㉐f۝`vpfH~tbAdZQtJlrd|lJtAvnX~HfpJ`ےむrXQrtAJlQZ|dvXn~f`˂pZHJXQrrd|lJtAvnX~HfpQJ`ےrXQbHAZpQZ|dtbd~f`vpfHZHAbۑpJAHrۑpJAXnvˍf۝`v|drtbAdZZdQbtrd|v`fvnXbHAZpJ`ےtbdrtAJlvpfHvXnAbے`˂pZHZdQbtrd|v`fvnXHAZpJ`ےむrbdrtAJlQZ|dvXn~f`ے`JX󙐂ˁ`ZHr󙐂ˁpfH~XnvˍQtJl|drQt \ No newline at end of file diff --git a/vendor/endroid/qr-code/assets/data/qrv32_2.dat b/vendor/endroid/qr-code/assets/data/qrv32_2.dat deleted file mode 100755 index d254d2962..000000000 --- a/vendor/endroid/qr-code/assets/data/qrv32_2.dat +++ /dev/null @@ -1,289 +0,0 @@ -}~}~}~}~yzyzyzyzwxwxwxwxststststqrqrqrqrnmnmnmnmjijijijihghghghgdcdcdcdc}~}~}~}~yzyzyzyzwxwxwxwxststststqrqrqrqrnmnmnmnmjijijijihghghghgdcdcdcdc}~}~}~}~yzyzyzyzwxwxwxwxststststqrqrqrqpnmnmmmmmjijijijihghghghgdcdcdcdc}~}~}~}~yzyzyzyzwxwxwxwxststststopopopopmnmnmnmnjijijijihghghghgdcdcdcdc}~}~}~}~yzyzyzyzwxwxwxwxststststopopopopmnmnmnmnjijijijihghghghgdcdcdcdc}~}~}~}~yzyzyzyzwxwxwxwxststststopopopopmnmnmnmnjijijijihghghghgdcdcdcdc}~}~}~}~yzyzyzyzwxwxwxwxststststopopopopmnmnmnmnjijijijihghghghgdcdcdcdc}~}~}~}~yzyzyzyzwxwxwxwxststststopopopopmnmnmnmnjijijijihghghghgdcdcdcdc}~}~}~}~yzyzyzyzwxwxwxwxststststopopopopmnmmmmmmjijijijihghghghgdcdcdcdc}~}~}~}~yzyzyzyzwxwxwxwxststststopopopopnmnmnmnmjijijijihghghghgdcdcdcdc}|{|{|{|yzyzyzyzwvuvuvuvststststopopopoplklklklkjijijijifefefefedcdcdcdc{|{|{|{|yzyzyzyzuvuvuvuvststststopopopoplklklklkjijijijifefefefedcdcdcdc{|{|{|{|yzyzyzyzuvuvuvuvststststopopopoplklklklkjijijijifefefefedcdcdcdc{|{|{|{|yzyzyzyzuvuvuvuvststststopopopoplklklklkjijijijifefefefedcdcdcdc{|{|{|{|yzyzyzyzuvuvuvuvststststopopopoplklklklkjijijijifefefefedcdcdcdc{|{|{|{|yzyzyzyzuvuvuvuvststststopopopoplklklklkjijijijifefefefedcdcdcdc{|{|{|{|yzyzyzyzuvuvuvuvststststopopopoplklklklkjijijijifefefefedcdcdcdc{|{|{|{|yzyzyzyzuvuvuvuvststststopopopoplklklklkjijijijifefefefedcdcdcdc{|{|{|{|yzyzyzyzuvuvuvuvststststopopopoplklklklkjijijijifefefefedcdcdcdc{|{|{|{|yzyzyzyzuvuvuvuvststststopopopoplklklklkjijijijifefefefedcdcdcdcbabababa{|{|{|{|yzyzyzyzuvuvuvuvststststopopopoplklklklkjijijijifefefefedcdcdcdcbabababa{|{|{|{|yzyzyzyzuvuvuvuvststststopopopoplklklklkjijijijifefefefedcdcdcdcbabababa{|{|{|{|yzyzyzyzuvuvuvuvststststopopopoplklklklkjijijijifefefefedcdcdcdcbabababa{|{|{|{|yzyzyzyzuvuvuvuvststststopopopoplklklklkjijijijifefefefedcdcdcdcbabababa{|{|{|{|yzyzyzyzuvuvuvuvststststopopopoplklklklkjijijijifefefefedcdcdcdcbabababa{|{|{|{|yzyzyzyzuvuvuvuvststststopopopoplklklklkjijijijifefefefedcdcdcdcbabababa{|{|{|{|yzyzyzyzuvuvuvuvststststopopopoplklklklkjijijijifefefefedcdcdcdcbabababa{|{|{|{|yzyzyzyzuvuvuvuvststststopopopoplklklklkjijijijifefefefedcdcdcdcbabababa~}~}~}~{|{|{|{|yxwxwxwxuvuvuvuvsrqrqrqropopopoplklklklkhghghghgfefefefebabababababababa}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvqrqrqrqropopopoplklklklkhghghghgfefefefebabababa`_`_`_`_}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvqrqrqrqropopopoplklklklkhghghghgfefefefebabababa`_`_`_`_}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvqrqrqrqropoponmnlklklklkhghghghgfefefefebabababa`_`_`_`_}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvqrqrqrqrmnmnmmmmlklklklkhghghghgfefefefebabababa`_`_`_`_}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvqrqrqrqrmnmnmnmnlklklklkhghghghgfefefefebabababa`_`_`_`_}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvqrqrqrqrmnmnmnmnlklklklkhghghghgfefefefebabababa`_`_`_`_}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvqrqrqrqrmnmnmnmnlklklklkhghghghgfefefefebabababa`_`_`_`_}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvqrqrqrqrmnmnmnmnlklklklkhghghghgfefefefebabababa`_`_`_`_}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvqrqrqrqrmnmnmnmnlklklklkhghghghgfefefefebabababa`_`_`_`_}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvqrqrqrqrmnmnmnmmlklklklkhghghghgfefefefebabababa`_`_`_`_}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvqrqrqrqrmmmmnmnmlklklklkhghghghgfefefefebabababa`_`_`_`_}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvqrqrqrqrnmnmnmnmlklklklkhghghghgfefefefebabababa`_`_`_`_}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvqrqrqrqrnmnmnmnmlklklklkhghghghgfefefefebabababa`_`_`_`_}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvqrqrqrqrnmnmnmnmlklklklkhghghghgfefefefebabababa`_`_`_`_}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvqrqrqrqrnmnmnmnmlklklklkhghghghgfefefefebabababa`_`_`_`_}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvqrqrqrqrnmnmnmmmlklklklkhghghghgfefefefebabababa`_`_`_`_}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvqrqrqrqrmmmnmnmnlklklklkhghghghgfefefefebabababa`_`_`_`_}~}~}~}~{zyzyzyzwxwxwxwxutstststqrqrqrqrmnmnmnmnjijijijihghghghgdcdcdcdcbabababa`_`_`_`_}~}~}~}~yzyzyzyzwxwxwxwxststststqrqrqrqrmnmnmnmnjijijijihghghghgdcdcdcdcbabababa`_`_`_`_}~}~}~}~yzyzyzyzwxwxwxwxststststqrqrqrqrmnmnmnmnjijijijihghghghgdcdcdcdcbabababa`_`_`_`_}~}~}~}~yzyzyzyzwxwxwxwxststststqrqrqrqrmnmnmnmnjijijijihghghghgdcdcdcdcbabababa`_`_`_`_}~}~}~}~yzyzyzyzwxwxwxwxststststqrqrqrqrmnmnmmmmjijijijihghghghgdcdcdcdcbabababa`_`_`_`_}~}~}~}~yzyzyzyzwxwxwxwxststststqrqrqrqrmmnmnmnmjijijijihghghghgdcdcdcdcbabababa`_`_`_`_}~}~}~}~yzyzyzyzwxwxwxwxststststqrqrqrqrnmnmnmnmjijijijihghghghgdcdcdcdcbabababa`_`_`_`_}~}~}~}~yzyzyzyzwxwxwxwxststststqrqrqrqrnmnmnmnmjijijijihghghghgdcdcdcdcbabababa`_`_`_`_`_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVUQRQRQRQROPOPOPOPKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>:9:9:9:965656565434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#         `_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVUQRQRQRQROPOPOPOPKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>:9:9:9:965656565434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#         `_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVUQRQRQRQROPOPOPOPKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>:9:9:9:965656565434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#         `_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVUQRQRQRQROPOPOPOPKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCD?@?@?@?@=>=>=<;<:999999:65656565434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#      `_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVUQRQRQRQROPOPOPOPKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCD?@?@?@?@;<;<;<;<9:9:9:9:65656565434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#         `_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVUQRQRQRQROPOPOPOPKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCD?@?@?@?@;<;<;<;<9:9:9:9:65656565434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#         `_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVUQRQRQRQROPOPOPOPKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCD?@?@?@?@;<;<;<;<9:9:9:9:65656565434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#         `_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVUQRQRQRQROPOPOPOPKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCD?@?@?@?@;<;<;<;<9:9:9:9:65656565434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#         `_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVUQRQRQRQROPOPOPOPKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCD?@?@?@?@;<;<;<;<9:9:9:9:65656565434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#         `_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVUQRQRQRQROPOPOPOPKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCD?@?@?@?@;<;<;<;<999999:965656565434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#       `_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVUQRQRQRQROPOPOPONKLKLKLKLIJIJIJIHEFEFEFEFCDCDCDCB?@?@?@?@;<;<;<;<:9:9:98765656565434343210/0/0/0/.-.-.-,+*)*)*)*)('('('&%$#$#$#$#         - -^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVUQRQRQRQRMNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFABABABAB?@?@?@?@;<;<;<;<8787878765656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#         - - - -^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVUQRQRQRQRMNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFABABABAB?@?@?@?@;<;<;<;<8787878765656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#         - - - -^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVUQRQRQRQRMNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFABABABAB?@?@?@?@;<;<;<;<8787878765656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#         - - - -^]^]^]^]\[\[\[\[XWXWXWXWVUVUTSTSQRQRQRQRMNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFABABABAB?@?@?@?@;<;<;<;<8787878765656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#        - - - -^]^]^]^]\[\[\[\[XWXWXWXWTSTSSSSSQRQRQRQRMNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFABABABAB?@?@?@?@;<;<;<;<8787878765656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#       - - - -^]^]^]^]\[\[\[\[XWXWXWXWSTSTSTSTQRQRQRQRMNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFABABABAB?@?@?@?@;<;<;<;<8787878765656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#         - - - -^]^]^]^]\[\[\[\[XWXWXWXWSTSTSTSTQRQRQRQRMNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFABABABAB?@?@?@?@;<;<;<;<8787878765656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#         - - - -^]^]^]^]\[\[\[\[XWXWXWXWSTSTSTSTQRQRQRQRMNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFABABABAB?@?@?@?@;<;<;<;<8787878765656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#         - - - -^]^]^]^]\[\[\[\[XWXWXWXWSTSTSTSTQRQRQRQRMNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFABABABAB?@?@?@?@;<;<;<;<8787878765656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#         - - - -^]^]^]^]\[\[\[\[XWXWXWXWSTSTSTSTQRQRQRQRMNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFABABABAB?@?@?@?@;<;<;<;<8787878765656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#        - - - -^]^]^]^]\[\[\[\[XWXWXWXWSTSSSSSSQRQRQRQRMNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFABABABAB?@?@?@?@;<;<;<;<8787878765656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#"!"!        - - - -^]^]^]^]\[\[\[\[XWXWXWXWTSTSTSTSQRQRQRQRMNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFABABABAB?@?@?@?@;<;<;<;<8787878765656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%"!"!"!"!         - - - -^]^]^]^]\[\[\[\[XWXWXWXWTSTSTSTSQRQRQRQRMNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFABABABAB?@?@?@?@;<;<;<;<8787878765656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%"!"!"!"!         - - - -^]^]^]^]\[\[\[\[XWXWXWXWTSTSTSTSQRQRQRQRMNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFABABABAB?@?@?@?@;<;<;<;<8787878765656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%"!"!"!"!         - - - -^]^]^]^]\[\[\[\[XWXWXWXWTSTSTSTSQRQRQRQRMNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFABABABAB?@?@?@?@;<;<;<;<8787878765656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%"!"!"!"!         - - - -^]^]^]^]\[\[\[\[XWXWXWXWTSTSTSTSQRQRQRQRMNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFABABABAB?@?@?@?@;<;<;<;<8787878765656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%"!"!"!"!         - - - -^]^]^]^]\[\[\[\[XWXWXWXWTSSSSSSTQRQRQRQRMNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFABABABAB?@?@?@?@;<;<;<;<8787878765656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%"!"!"!"!       - - - -^]^]^]^]\[\[\[\[XWXWXWXWSTSTSTSTQRQRQRQPMNMNMNMNKLKLKLKJGHGHGHGHEFEFEFEDABABABAB?@?@?@?>;<;<;<;<8787878765656543212121210/0/0/.-,+,+,+,+*)*)*)('&%&%&%&%"!"!"!"!     - - - -^]^]^]^]ZYZYZYZYXWXWXWXWSTSTSTSTOPOPOPOPMNMNMNMNIJIJIJIJGHGHGHGHCDCDCDCDABABABAB=>=>=>=>;<;<;<;<878787874343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"! - - - -^]^]^]^]ZYZYZYZYXWXWXWXWSTSTSTSTOPOPOPOPMNMNMNMNIJIJIJIJGHGHGHGHCDCDCDCDABABABAB=>=>=>=>;<;<;<;<878787874343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"! - - - -^]^]^]^]ZYZYZYZYXWXWXWXWSTSTSTSTOPOPOPOPMNMNMNMNIJIJIJIJGHGHGHGHCDCDCDCDABABABAB=>=>=>=>;<;<;<;<878787874343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"! - - - -^]^]^]^]ZYZYZYZYXWXWXWXWSTSTSTSTOPOPOPOPMNMNMNMNIJIJIJIJGHGHGHGHCDCDCDCDABABABAB=>=>=>=>;<;:9:9:878787874343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"! - - - -^]^]^]^]ZYZYZYZYXWXWXWXWSSSSSSTSOPOPOPOPMNMNMNMNIJIJIJIJGHGHGHGHCDCDCDCDABABABAB=>=>=>=>9:99999:878787874343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"! - - - -^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSOPOPOPOPMNMNMNMNIJIJIJIJGHGHGHGHCDCDCDCDABABABAB=>=>=>=>9:9:9:9:878787874343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"! - - - -^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSOPOPOPOPMNMNMNMNIJIJIJIJGHGHGHGHCDCDCDCDABABABAB=>=>=>=>9:9:9:9:878787874343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"! - - - -^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSOPOPOPOPMNMNMNMNIJIJIJIJGHGHGHGHCDCDCDCDABABABAB=>=>=>=>9:9:9:9:878787874343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"! - - - -^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSOPOPOPOPMNMNMNMNIJIJIJIJGHGHGHGHCDCDCDCDABABABAB=>=>=>=>9:9:9:9:878787874343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"! - - - -^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSOPOPOPOPMNMNMNMNIJIJIJIJGHGHGHGHCDCDCDCDABABABAB=>=>=>=>9:9:9:9:878787874343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"! - - - -^]^]^]^]ZYZYZYZYXWXWXWVUSSSSSTSTOPOPOPOPMNMNMNMNIJIJIJIJGHGHGHGHCDCDCDCDABABABAB=>=>=>=>9:9:9999878787874343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"! - - - -^]^]^]^]ZYZYZYZYVUVUVUVUSTSTSTSTOPOPOPOPMNMNMNMNIJIJIJIJGHGHGHGHCDCDCDCDABABABAB=>=>=>=>99:9:9:9878787874343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"! - - - -^]^]^]^]ZYZYZYZYVUVUVUVUSTSTSTSTOPOPOPOPMNMNMNMNIJIJIJIJGHGHGHGHCDCDCDCDABABABAB=>=>=>=>:9:9:9:9878787874343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"! - - - -^]^]^]^]ZYZYZYZYVUVUVUVUSTSTSTSTOPOPOPOPMNMNMNMNIJIJIJIJGHGHGHGHCDCDCDCDABABABAB=>=>=>=>:9:9:9:9878787874343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"! - - - -^]^]^]^]ZYZYZYZYVUVUVUVUSTSTSTSTOPOPOPOPMNMNMNMNIJIJIJIJGHGHGHGHCDCDCDCDABABABAB=>=>=>=>:9:9:9:9878787874343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"! - - - -^]^]^]^]ZYZYZYZYVUVUVUVUSTSTSTSTOPOPOPOPMNMNMNMNIJIJIJIJGHGHGHGHCDCDCDCDABABABAB=>=>=>=>:9:9:9:9878787874343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"! - - - -^]^]^]^]ZYZYZYZYVUVUVUVUSTSSSSSTOPOPOPOPMNMNMNMNIJIJIJIJGHGHGHGHCDCDCDCDABABABAB=>=>=>=>:9:99999878787874343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"! - - - -^]^]^]^]ZYZYZYZYVUVUVUVUSTSTSTSROPOPOPOPMNMNMNMLIJIJIJIJGHGHGHGFCDCDCDCDABABABA@=>=>=>=>9:9:9:9:87878765434343432121210/.-.-.-.-,+,+,+*)('('('('&%&%&%$#"!"!"!"!  - - \[\[\[\[ZYZYZYZYVUVUVUVUQRQRQRQROPOPOPOPKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>9:9:9:9:65656565434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"!     \[\[\[\[ZYZYZYZYVUVUVUVUQRQRQRQROPOPOPOPKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>9:9:9:9:65656565434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"!     \[\[\[\[ZYZYZYZYVUVUVUVUQRQRQRQROPOPOPOPKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>9:9:9:9:65656565434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"!     \[\[\[\[ZYZYZYZYVUVUVUVUQRQRQRQROPOPOPOPKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>9:9:9:9:65656565434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!        \[\[\[\[ZYZYZYZYVUVUVUVUQRQRQRQROPOPOPOPKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>9:99999965656565434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#       \[\[\[\[ZYZYZYZYVUVUVUVUQRQRQRQROPOPOPOPKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>:9:9:9:965656565434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#         \[\[\[\[ZYZYZYZYVUVUVUVUQRQRQRQROPOPOPOPKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>:9:9:9:965656565434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#         YYZZ[[\\DDEEFFGG !!""##$)((''&&%qppoonnmhiijjkkl !!""##$)((''&&%qppoonnmddeeffgg!!""##$$((''&&%%ppoonnmm]]^^__``HHIIJJKK$%%&&''(%$$##""!mllkkjjilmmnnoop$%%&&''(%$$##""!mllkkjjihhiijjkk%%&&''(($$##""!!llkkjjiiaabbccddLLMMNNOO())**++,! ihhggffepqqrrsst())**++,! ihhggffellmmnopq))**++,, hhggffeeeeffgghhPPQQRRSS,--..//0eddccbbatuuvvwwx,--..//0eddccbbarssttuuv--..//00ddccbbaa~~}}iijjkkllYYZZ[[\\01122334a``__^^]xyyzz{{|01122334a``__^^]vwwxxyyz11223344``__^^]]||{{zzyymmnnoopp]]^^__``45566778]\\[[ZZY|}}~~45566778]\\[[ZZYz{{||}}~55667788\\[[ZZYYxxwwvvuuqqrrssttaabbccdd899::;;< YXXWWVVU899::;;< YXXWWVVU~~}}||{~99::;;<< XXWWVVUUttssrrqquuvvwwxxeeffgghh<==>>??@ - - UTTSSRRQ<==>>??@ - - UTTSSRRQ{zzyyxxw==>>??@@ - - TTSSRRQQppoonnmmyyzz{{||iijjkkll@AABBCCD QPPOONNM@AABBCCD QPPOONNMwvvuuttsAABBCCDDPPOONNMMllkkjjii}}~~mmssttuuDEEFFGGHMLLKKJJIDEEFFGGHMLLKKJJIsmmllkkjEEFFGGHHLLKKJJIIhhggffeevvwwxxyyHIIJJKKLIHHGGFFEHIIJJKKLIHHGGFFEjiihhggfIIJJKKLLHHGGFFEEddccbbaazz{{||}}LMMNNOOPEDDCCBBALMMNNOOPEDDCCBBAfeeddccbMMNNOOPPDDCCBBAA``__^^]]~~PQQRRSST - - A@@??>>=PQQRRSST - - A@@??>>=baa``__^QQRRSSTT - - @@??>>==\\[[ZZYYTUUVVWWX =<<;;::9TUUVVWWX =<<;;::9^]]\\[[ZUUVVWWXX <<;;::99XXWWVVUUXYYZZ[[\98877665~~}XYYZZ[[\98877665ZYYSSRRQ~~}}YYZZ[[\\88776655TTSSRRQQ\]]^^__`54433221}||{{zzy\]]^^__`54433221QPPOONNM||{{zzyy]]^^__``44332211PPOONNMM`aabbccd100//..-yxxwwvvu`aabbccd100//..-MLLKKJJIxxwwvvuuaabbccdd00//..--LLKKJJII~~}}||deeffggh -,,++**)uttssrrqdeeffggh -,,++**)IHHGGFFEttssrrqqeeffgghh ,,++**))HHGGFFEE{{zzyyxxhiijjkkl !!""##$)((''&&%qppoonnmhiijjkkl !!""##$)((''&&%EDDCCBBAppoonnmmiijjkkll!!""##$$((''&&%%DDCCBBAAwwvvuutt~~}}|lmmnnoop$%%&&''(%$$##""!mllkkjjilmmnnoop$%%&&''(%$$##""!A@@??998llkkjjiimmnnoopp%%&&''(($$##""!!iijjkkll@@??>>==ssmmllkk|{{zzyyxpqqrrsst())**++,! ihhggffepqqrrsst())**++,! 87766554hhggffeeqqrrsstt))**++,, mmnnoopp<<;;::99jjiihhggxwwvvuuttuuvvwwx,--..//0eddccbbatuuvvwwx,--..//043322110ddccbbaauuvvwwxx--..//00qqrrsstt88776655ffeeddcctssrqponxyyzz{{|01122334a``__^^]xyyzz{{|011223340//..--,``__^^]]yyzz{{||11223344uuvvwwxx44332211bbaa``__mmllkkjj|}}~~45566778]\\[[ZZY|}}~~45566778,++**))(\\[[ZZYY}}~~55667788yyzz{{||00//..--^^]]\\[[iihhggff899::;;< YXXWWVVU899::;;< (''&&%%XXWWVVUU99::;;<< }}~~,,++**))ZZYYSSRReeddccbb<==>>??@ - - UTTSSRRQ<==>>??@ - - TTSSRRQQ==>>??@@ - - ((''&&%%QQPPOONNaa``__^^@AABBCCD QPPOONNM@AABBCCD PPOONNMMAABBCCDD$$##""!!MMLLKKJJ]]\\[[ZZDEEFFGGHMLLKKJJIDEEFFGGHLLKKJJIIEEFFGGHH IIHHGGFFYYXWVUTSHIIJJKKLIHHGGFFEHIIJJKKLHHGGFFEEIIJJKKLLEEDDCCBBSRRQQPPOLMMNNOOPEDDCCBBALMMNNOOP - -  DDCCBBAAMMNNOOPPAA@@??99ONNMMLLKPQQRRSST - - A@@??>>=PQQRRSST  - - @@??>>==QQRRSSTT - - 88776655KJJIIHHGTUUVVWWX =<<;;::9TUUVVWWX<<;;::99UUVVWWXX  44332211GFFEEDDC~~}XYYZZ[[\98877665~~}XYYZZ[[\88776655~~}}YYZZ[[\\ - - 00//..--CBBAA@@?}||{{zzy\]]^^__`54433221}||{{zzy\]]^^__` - - 44332211||{{zzyy]]^^__``~~}} - - ,,++**))?>=<;:99yxxwwvvu`aabbccd100//..-yxxwwvvu`aabbccd% 00//..--xxwwvvuuaabbccdd||{{zzyy ((''&&%%88776655uttssrrqdeeffggh -,,++**)uttssrrqdeeffggh%&&''((),,++**))ttssrrqqeeffgghh xxwwvvuu44332211qppoonnmhiijjkkl !!""##$)((''&&%qppoonnmhiijjkkl)**++,,-((''&&%%ppoonnmmiijjkkll!!""##$$ttssrrqq00//..--mllkkjjilmmnnoop$%%&&''(%$$##""!mllkkjjilmmnnoop-..//001$$##""!!llkkjjiimmnnoopp%%&&''((ppoonnmm,,++**))ihhggffepqqrrsst())**++,! ihhggffepqqrrsst12233445 hhggffeeqqrrsstt))**++,,llkkjjii ((''&&%%eddccbbatuuvvwwx,--..//0eddccbbatuuvvwwx56677889!"#$%%&&ddccbbaauuvvwwxx--..//00hhggffee!!""##$$ $#"! a``__^^]xyyzz{{|01122334a``__^^]xyyzz{{|9??@@AAB''(())**``__^^]]yyzz{{||11223344ddccbbaa%%&&''(( - - ]\\[[ZZY|}}~~45566778]\\[[ZZY|}}~~BCCDDEEF++,,--..\\[[ZZYY}}~~55667788``__^^]]))**++,, - - YXXWWVVU899::;;< YXXWWVVUFGGHHIIJ//001122 XXWWVVUU99::;;<<\\[[ZZYY--..//00UTTSSRRQ<==>>??@ - - UTTSSRRQJKKLLMMN33445566 - - TTSSRRQQ==>>??@@XXWWVVUU11223344QPPOONNM@AABBCCD QPPOONNMNOOPPQQR778899:;PPOONNMMAABBCCDDTTSSRRQQ55667788 -MLLKKJJIDEEFFGGHMLLKKJJIRSSYYZZ[<=>??@@ALLKKJJIIEEFFGGHHPPOONNMM99::;;<< - IHHGGFFEHIIJJKKLIHHGGFFE[\\]]^^_ABBCCDDEHHGGFFEEIIJJKKLLLLKKJJII==>>??@@%%&&EDDCCBBALMMNNOOPEDDCCBBA_``aabbcEFFGGHHIDDCCBBAAMMNNOOPPHHGGFFEEAABBCCDD''(())** - - A@@??>>=PQQRRSST - - A@@??>>=cddeeffgIJJKKLLM - - @@??>>==QQRRSSTTDDCCBBAAEEFFGGHH++,,--.. =<<;;::9TUUVVWWX =<<;;::9ghhiijjkMNNOOPPQ <<;;::99UUVVWWXX@@??>>==IIJJKKLL//00112298877665~~}XYYZZ[[\98877665~~}kllmmsstQRRSSTUV88776655~~}}YYZZ[[\\<<;;::99MMNNOOPP3344556654433221}||{{zzy\]]^^__`54433221}||{{zzytuuvvwwxWXYYZZ[[44332211||{{zzyy]]^^__``88776655QQRRSSTT778899??100//..-yxxwwvvu`aabbccd100//..-yxxwwvvuxyyzz{{|\\]]^^__00//..--xxwwvvuuaabbccdd44332211UUVVWWXX@@AABBCC -,,++**)uttssrrqdeeffggh -,,++**)uttssrrq|}}~~``aabbcc ,,++**))ttssrrqqeeffgghh00//..--,,++**))ttssrrqqeeffgghhHHIIJJKK !,++**))(tssrrqqpeffgghhi !,++**))(tssrrqqp}~~aabbccdd !!++**))((ssrrqqppffgghhii !!++**))((iihhggff~~}}||{fgghhiij !!"+**))(('srrqqppofgghhiij !!"+**))(('feeddccbeddccbba((''&&%%ppoonnmmiijjkkllLLMMNNOO!""##$$%(''&&%%$poonnmmlijjkkllm!""##$$%(''&&%%$poonnmmleeffgghh""##$$%%''&&%%$$oonnmmlljjkkllmm""##$$%%''&&%%$$eeddccbb{zzyyxxwjkkllmmn"##$$%%&'&&%%$$#onnmmllkjkkllmmn"##$$%%&'&&%%$$#baa``__^a``__^^]$$##""!!llkkjjiimmnnooppPPQQRRSS%&&''(()$##""!! lkkjjiihmnnooppq%&&''(()$##""!! lkkjjiihiijjkkll&&''(())##""!! kkjjiihhnnooppqq&&''(())##""!! aa``__^^wvvuuttsnooppqqr&''(())*#""!! kjjiihhgnooppqqr&''(())*#""!! ^]]\\[[Z]\\[[ZZY hhggffeeqqrrssttYYZZ[[\\)**++,,- hggffeedqrrssttu)**++,,- hggffeedmmnopqrs**++,,--ggffeeddrrssttuu**++,,--]]\\[[ZZsrqponmmrssttuuv*++,,--.gffeeddcrssttuuv*++,,--.ZYYSSRRQYXXWWVVUddccbbaauuvvwwxx]]^^__``-..//001dccbbaa`uvvwwxxy-..//001dccbbaa`sttuuvvw..//0011ccbbaa``vvwwxxyy..//0011YYSSRRQQllkkjjiivwwxxyyz.//00112cbbaa``_vwwxxyyz.//00112QPPOONNMUTTSSRRQ``__^^]]yyzz{{||aabbccdd12233445`__^^]]\yzz{{||}12233445`__^^]]\wxxyyzz{22334455__^^]]\\zz{{||}}22334455PPOONNMMhhggffeez{{||}}~23344556_^^]]\\[z{{||}}~23344556MLLKKJJIQPPOONNM\\[[ZZYY}}~~eeffgghh56677889\[[ZZYYX}~~56677889\[[ZZYYX~{||}}~~66778899[[ZZYYXX~~66778899LLKKJJIIddccbbaa~6778899:[ZZYYXXW~6778899:IHHGGFFEMLLKKJJI XXWWVVUUiijjkkll9::;;<<= XWWVVUUT9::;;<<= XWWVVUUT~}}||{{z::;;<<== WWVVUUTT::;;<<== HHGGFFEE``__^^]]:;;<<==> WVVUUTTS:;;<<==> EDDCCBBAIHHGGFFE - - TTSSRRQQmmssttuu=>>??@@A - - TSSRRQQP=>>??@@A - - TSSRRQQPzyyxxwwv>>??@@AA - - SSRRQQPP>>??@@AA - - DDCCBBAA\\[[ZZYY>??@@AAB - - SRRQQPPO>??@@AAB - - A@@??998EDDCCBBAPPOONNMMvvwwxxyyABBCCDDEPOONNMMLABBCCDDEPOONNMMLvuuttssmBBCCDDEEOONNMMLLBBCCDDEE@@??9988XWVUTSSRBCCDDEEFONNMMLLKBCCDDEEF87766554A@@??>>=LLKKJJIIzz{{||}}EFFGGHHILKKJJIIHEFFGGHHILKKJJIIHmllkkjjiFFGGHHIIKKJJIIHHFFGGHHII77665544RQQPPOONFGGHHIIJKJJIIHHGFGGHHIIJ43322110=<<;;::9HHGGFFEE~~IJJKKLLMHGGFFEEDIJJKKLLMHGGFFEEDihhggffeJJKKLLMMGGFFEEDDJJKKLLMM33221100NMMLLKKJJKKLLMMNGFFEEDDCJKKLLMMN0//..--,98877665DDCCBBAAMNNOOPPQ DCCBBAA@MNNOOPPQ DCCBBAA@eddccbbaNNOOPPQQ CCBBAA@@NNOOPPQQ //..--,,JIIHHGGFNOOPPQQR -CBBAA@@?NOOPPQQR -,++**))(54433221 - - @@??>>==QRRSSTTU - - @??>>==>==>==<>==<<;RSSTTUUV - (''&&%%100//..- <<;;::99~~}}||UVVWWXXY <;;::998UVVWWXXY <;;::998]\\[[ZZYVVWWXXYY;;::9988VVWWXXYY''&&%%BAA@@??>VWWXXYYZ;::99887VWWXXYYZ-,,++**)88776655{{zzyyxxYZZ[[\\]87766554~~}}|YZZ[[\\]87766554YSSRRQQP~~}}||ZZ[[\\]]77665544~~}}||ZZ[[\\]]=<;:9988~~}}||{Z[[\\]]^76655443~~}}||{Z[[\\]]^)((''&&%44332211wwvvuutt]^^__``a43322110|{{zzyyx]^^__``a43322110POONNMML{{zzyyxx^^__``aa33221100{{zzyyxx^^__``aa77665544{zzyyxxw^__``aab3221100/{zzyyxxw^__``aab%$$##""!00//..--ssmmllkkabbccdde0//..--,xwwvvuutabbccdde0//..--,LKKJJIIHwwvvuuttbbccddee//..--,,wwvvuuttbbccddee33221100wvvuuttsbccddeef/..--,,+wvvuuttsbccddeef!  ,,++**))jjiihhgg~~}}|effgghhi !,++**))(tssrrqqpeffgghhi !,++**))(HGGFFEEDssrrqqppffgghhii !!++**))((ssrrqqppffgghhii !!//..--,,srrqqppofgghhiij !!"+**))(('srrqqppofgghhiij !!" !!""##$$((''&&%%ffeeddcc|{{zzyyxijjkkllm!""##$$%(''&&%%$poonnmmlijjkkllm!""##$$%(''&&%%$DCCBBAA@oonnmmlljjkkllmm""##$$%%''&&%%$$oonnmmlljjkkllmm""##$$%% ++**))((onnmmllkjkkllmmn"##$$%%&'&&%%$$#onnmmllkjkkllmmn"##$$%%& - - -%%&&''(($$##""!!bbaa``__xwwvvuutmnnooppq%&&''(()$##""!! lkkjjiihmnnooppq%&&''(()$##""!! @??99887kkjjiihhnnooppqq&&''(())##""!! kkjjiihhnnooppqq&&''(()) - - ''&&%%$#kjjiihhgnooppqqr&''(())*#""!! kjjiihhgnooppqqr&''(())* - ))**++,, ^^]]\\[[tssrqponqrrssttu)**++,,- hggffeedqrrssttu)**++,,- 76655443ggffeeddrrssttuu**++,,--ggffeeddrrssttuu**++,,--"! gffeeddcrssttuuv*++,,--.gffeeddcrssttuuv*++,,--. --..//00ZZYYSSRRmmllkkjjuvvwwxxy-..//001dccbbaa`uvvwwxxy-..//0013221100/ccbbaa``vvwwxxyy..//0011ccbbaa``vvwwxxyy..//0011 - -cbbaa``_vwwxxyyz.//00112cbbaa``_vwwxxyyz.//00112 - - 11223344QQPPOONNiihhggffyzz{{||}12233445`__^^]]\yzz{{||}12233445/..--,,+__^^]]\\zz{{||}}22334455__^^]]\\zz{{||}}22334455 _^^]]\\[z{{||}}~23344556_^^]]\\[z{{||}}~23344556 - - 55667788MMLLKKJJeeddccbb}~~56677889\[[ZZYYX}~~56677889+**))(('[[ZZYYXX~~66778899[[ZZYYXX~~66778899[ZZYYXXW~6778899:[ZZYYXXW~6778899: 99::;;<< IIHHGGFFaa``__^^9::;;<<= XWWVVUUT9::;;<<= '&&%%WWVVUUTT::;;<<== WWVVUUTT::;;<<== WVVUUTTS:;;<<==> WVVUUTTS:;;<<==>%%&&'==>>??@@ - - EEDDCCBB]]\\[[ZZ=>>??@@A - - TSSRRQQP=>>??@@A - - SSRRQQPP>>??@@AA - - SSRRQQPP>>??@@AA - - SRRQQPPO>??@@AAB - - SRRQQPPO>??@@AAB'(())**+AABBCCDDAA@@??99YYXWVUTSABBCCDDEPOONNMMLABBCCDDEOONNMMLLBBCCDDEEOONNMMLLBBCCDDEE ONNMMLLKBCCDDEEFONNMMLLKBCCDDEEF+,,--../EEFFGGHH88776655SRRQQPPOEFFGGHHILKKJJIIHEFFGGHHIKKJJIIHHFFGGHHIIKKJJIIHHFFGGHHII%%&&''KJJIIHHGFGGHHIIJKJJIIHHGFGGHHIIJ/0011223 IIJJKKLL44332211ONNMMLLKIJJKKLLMHGGFFEEDIJJKKLLM GGFFEEDDJJKKLLMMGGFFEEDDJJKKLLMM(())**++GFFEEDDCJKKLLMMNGFFEEDDCJKKLLMMN34455667 !!""##$MMNNOOPP00//..--KJJIIHHGMNNOOPPQ DCCBBAA@MNNOOPPQ - -  -CCBBAA@@NNOOPPQQ CCBBAA@@NNOOPPQQ,,--..// -CBBAA@@?NOOPPQQR -CBBAA@@?NOOPPQQR78899??@$%%&&''(QQRRSSTT - - ,,++**))GFFEEDDCQRRSSTTU - - @??>>==>==<>==<>==<<;RSSTTUUV - ?>>==<<;RSSTTUUV@AABBCCD())**++,UUVVWWXX ((''&&%%CBBAA@@?UVVWWXXY <;;::998UVVWWXXY;;::9988VVWWXXYY;;::9988VVWWXXYY44556677;::99887VWWXXYYZ;::99887VWWXXYYZDEEFFGGH,--..//0YYZZ[[\\?>=<;:99~~}}|YZZ[[\\]87766554~~}}|YZZ[[\\] 77665544~~}}||ZZ[[\\]]77665544~~}}||ZZ[[\\]]8899??@@76655443~~}}||{Z[[\\]]^76655443~~}}||{Z[[\\]]^HIIJJKKL01122334]]^^__``88776655|{{zzyyx]^^__``a43322110|{{zzyyx]^^__``a - - 33221100{{zzyyxx^^__``aa33221100{{zzyyxx^^__``aaAABBCCDD3221100/{zzyyxxw^__``aab3221100/{zzyyxxw^__``aabLMMNNOOP45566778aabbccdd44332211xwwvvuutabbccdde0//..--,xwwvvuutabbccdde%%& //..--,,wwvvuuttbbccddee//..--,,wwvvuuttbbccddeeEEFFGGHH/..--,,+wvvuuttsbccddeef/..--,,+wvvuuttsbccddeefPQQRRSSY899::;;>??@iijjkkll!!""##$$ ,,++**))poonnmmlijjkkllm!""##$$%(''&&%%$poonnmmlijjkkllm*++,,--.''&&%%$$oonnmmlljjkkllmm""##$$%%''&&%%$$oonnmmlljjkkllmmMMNNOOPP"##$$%%&'&&%%$$#onnmmllkjkkllmmn"##$$%%&'&&%%$$#onnmmllkjkkllmmn]^^__``a@AABBCCDmmnnoopp%%&&''(( - - ((''&&%%lkkjjiihmnnooppq%&&''(()$##""!! lkkjjiihmnnooppq.//00112##""!! kkjjiihhnnooppqq&&''(())##""!! kkjjiihhnnooppqqQQRRSSYY&''(())*#""!! kjjiihhgnooppqqr&''(())*#""!! kjjiihhgnooppqqrabbccddeDEEFFGGHqqrrsstt))**++,,$#"! hggffeedqrrssttu)**++,,- hggffeedqrrssttu23344556 !"ggffeeddrrssttuu**++,,--ggffeeddrrssttuuZZ[[\\]]*++,,--.gffeeddcrssttuuv*++,,--.gffeeddcrssttuuveffgghhiHIIJJKKLuuvvwwxx--..//00 dccbbaa`uvvwwxxy-..//001dccbbaa`uvvwwxxy6778899?#$%%&&''ccbbaa``vvwwxxyy..//0011ccbbaa``vvwwxxyy^^__``aa.//00112cbbaa``_vwwxxyyz.//00112cbbaa``_vwwxxyyzijjkkllmLMMNNOOPyyzz{{||11223344 - - `__^^]]\yzz{{||}12233445`__^^]]\yzz{{||}?@@AABBC(())**++__^^]]\\zz{{||}}22334455__^^]]\\zz{{||}}bbccddee23344556_^^]]\\[z{{||}}~23344556_^^]]\\[z{{||}}~mssttuuvPQQRRSST}}~~55667788\[[ZZYYX}~~56677889\[[ZZYYX}~~CDDEEFFG,,--..//[[ZZYYXX~~66778899[[ZZYYXX~~ffgghhii6778899:[ZZYYXXW~6778899:[ZZYYXXW~vwwxxyyzTUUVVWWX99::;;<<XWWVVUUT9::;;<<= XWWVVUUTGHHIIJJK00112233 WWVVUUTT::;;<<== WWVVUUTTjjkkllmm:;;<<==> WVVUUTTS:;;<<==> WVVUUTTSz{{||}}~XYYZZ[[\==>>??@@ -TSSRRQQP=>>??@@A - - TSSRRQQPKLLMMNNO44556677 - - SSRRQQPP>>??@@AA - - SSRRQQPPssttuuvv>??@@AAB - - SRRQQPPO>??@@AAB - - SRRQQPPO~\]]^^__`AABBCCDD - POONNMMLABBCCDDEPOONNMMLOPPQQRRS8899:;<=OONNMMLLBBCCDDEEOONNMMLLwwxxyyzzBCCDDEEFONNMMLLKBCCDDEEFONNMMLLK`aabbccdEEFFGGHH%%&&LKKJJIIHEFFGGHHILKKJJIIHSYYZZ[[\>??@@AABKKJJIIHHFFGGHHIIKKJJIIHH{{||}}~~FGGHHIIJKJJIIHHGFGGHHIIJKJJIIHHGdeeffgghIIJJKKLL''(())**HGGFFEEDIJJKKLLMHGGFFEED\]]^^__`BCCDDEEFGGFFEEDDJJKKLLMMGGFFEEDDJKKLLMMNGFFEEDDCJKKLLMMNGFFEEDDC~~}hiijjkklMMNNOOPP++,,--.. DCCBBAA@MNNOOPPQ DCCBBAA@`aabbccdFGGHHIIJ CCBBAA@@NNOOPPQQ CCBBAA@@NOOPPQQR -CBBAA@@?NOOPPQQR -CBBAA@@?}||{{zzylmmnnoopQQRRSSTT//001122 - - @??>>==>==>==<>==<<RSSTTUUV - ?>>==<<;RSSTTUUV - ?>>==<<;~~}}||{yxxwwvvupqqrrsstUUVVWWXX33445566 <;;::998UVVWWXXY <;;::998hiijjkklNOOPPQQR;;::9988VVWWXXYY;;::9988~~}}||{{VWWXXYYZ;::99887VWWXXYYZ;::99887{zzyyxxwuttssrrqtuuvvwwx~~}}YYZZ[[\\778899??87766554~~}}|YZZ[[\\]87766554~~}}|lmmssttuRSSTUVWX77665544~~}}||ZZ[[\\]]77665544zzyyxxwwZ[[\\]]^76655443~~}}||{Z[[\\]]^76655443wvvuuttsqppoonnmxyyzz{{|||{{zzyy]]^^__``@@AABBCC43322110|{{zzyyx]^^__``a43322110|{{zzyyxuvvwwxxyYYZZ[[\\33221100{{zzyyxx^^__``aa33221100vvuuttss^__``aab3221100/{zzyyxxw^__``aab3221100/smmllkkjmllkkjji|}}~~xxwwvvuuaabbccddDDEEFFGG0//..--,xwwvvuutabbccdde0//..--,xwwvvuutyzz{{||}]]^^__``//..--,,wwvvuuttbbccddee//..--,,mmllkkjjbccddeef/..--,,+wvvuuttsbccddeef/..--,,+jiihhggfihhggffebdQZ|H~f|ZdQZp˂AJltے`JX|ZdQZp˂AJltے`JX|ZdQےbHA`vXnے`JXQfpvdrtA`vXnbtlrXQJ`ۉbdQZ|Qr˂pbtlrXQJ`ۉbdQZ|Qr˂pbtl|Zp˂vpfr˂pnXv`JltvpfJtArdbHAdrtZHAbJtArdbHAdrtZHAbZdQbrXQJH~fZHAbf~HbdQZ|H~f|ZdQZp˂AJltے`JX|ZdQZp˂AJltے`JXnXv`pbHAZp`vXnے`JXQfpvdrtA`vXntArdrXQJ`ۉbdQZ|Qr˂pbtlrXQJ`ۉbdQZ|Qr˂pvnXrXQvpfr˂pnXv`Jltvpf|ZdQbbHAdrtZHAbJtArdbHAdrtZHAbv`fJ`ےH~fZHAbf~HbdQZ|H~ftlJZp˂AJltے`JX|ZdQZp˂AJltے`JX~HfpbHAZp`vXnے`JXQfpvdrtA`vXntArdrXQJ`ۉbdQZ|Qr˂pbtlrXQJ`ۉbdQZ|Qr˂pvnXrXQvpfr˂pnXv`Jltvpf|ZdQbbHAdtAZHAbJtArdbHAdtAZHAbv`fJ`bAZH~fZHAےf~HbdQZ|H~ftd|Zp˂Jltے`JX|ZdQZp˂Jltے`JXnXp˂r`vXn`JXQrfpvdrtA`vXnZdQbtrXQJ`bnvpQr˂pbnXv`rXQJ`bnvpQr˂pv`fbdQZ|vpfbtlnXv`JltvpflJtAbHAfHˑZHAbf~HbHAfHˑZHAb~HfpdrtAH~fJtAdf~HbdQZ|H~frd|Zp˂f`vXے`JXfpvZp˂f`vXے`JXvnXJlt`vXn|ZdQbfpvdrtA`vXnZdQbtrXQJ`nvpQr˂pnXv`rXQJ`nvpQr˂pv`fbdQZ|vpftlJnXv`Jltr˂pl|ZbHAfH~ˑZHAbf~HbHAfH~ˑZHAb~HXv`drtAH~ftArdf~HbdQZ|`JXQrdQbnXZp˂f`vXے`JXfpvZp˂f`vXے`JXf~HJlt`vXn|ZdQbfpvdrtA˂pZv`f~rXQJ`nvpQr˂pnXv`rXQJ`nvpQr˂pfpvbdQZ|vpftlJnXv`JltHAbےfpv㒐bHAfH~ˑZHAbf~HbHAfH~ˑZHAbnXv`drtAH~ftArdf~HbdQZ|`JXQrnXv`Zp˂f`vXے`JXfpvZp˂f`vXے`JXf~HJlt`vXn|ZdQbfpvdrtA˂pZf~HrXQJ`nvpQr˂pnXv`rXQJ`nvpQr˂pfp`bdQZ|vpftlJnXv`p˂rJltHAXQrfpv㒐bHAfH~ˑZHAbf~HbHAfH~ˑZHAbf~HdrtAH~ftArdf~HXQJ`ےbdQZ|˂pZHAnXv`Zp˂f`vXے`JXfpvZp˂f`vXے`JXfpvJlt`vXn|ZdQbfpvbHAZdrtAbے`f~fvrXQJ`nvpQr˂pnXv`rXQJ`nvpQr˂pnXv`bdQZ|vpftlJnXv`p˂rJltJXQrnXvbHAfH~ˑZHAbf~HbHAfH~ˑZHAbf~HdrtAH~ftArdf~HXQJ`ےbdQZ|˂pZHA`f~Zp˂f`vXے`JXfpvZp˂f`vXے`JXfpvJlt`vXn|ZdQbfpvbHAZdrtAb˂HfpvrXQJ`nvpQr˂pnXv`rXQJ`nvpQr˂p~HfpbdQZ|vpftlJnXv`p˂rJltpZHAbnXvbHAfH~ˑZHAۍf~HbHAfH~ˑZHA۝vnXdrtAH~ftArdfHfXQJ`ےbdQZ|ے`J`f~Zp˂f`vX`JXQfpvZp˂f`vX`JXQv`fJlt`vXn|ZdQbpvnbHAZdrtAXQr˂HfvnXrbdQZ|nvprbtlnXv`rbdQZ|nvprbtl~HfpbdQZ|r˂ptlJrXQJ`p˂rJltpZHAbv`fdrtfH~ˑJtAdf~HdrtfH~ˑ|ZdQvnXdrtAZHAbtArdےHAZbdQZ|bdQZ|ے`p~HfpAJltf`vX|ZdQfpvAJltf`vXbtlv`pJltے`JXQ|ZdQbp˂rdrtAdrtAZHAbvnXbdQZ|nvpbtlnXv`bdQZ|nvpJtArdvnrXbdQZ|r˂ptlJXQJ`ےJltJltے`JXQv`fdrtfH~JtArdf~HdrtfH~˂|ZdQQJ`AdrtAZHAbtArdbHAZbdQZ|bdQZ|r˂p~HfpAJltf`vX|ZdQfpvAJltf`vXbtlZp˂Jltے`JXQ|ZdQbp˂rdrtA`vXnZHAbvnv`bdQZ|nvpbtlnXv`bdQZ|nvpJtArdtrXQJ`bdQZ|r˂ptlJXQJ`ےJltvpfے`JXQf~HdrtfH~JtArdf~HdrtfH~ˉlJtbHAdrtAZHAbtArdbHAZbdQZ|H~fHAbےfpvAJltf`vX|ZdQfpvAJltf`vXArd|Zp˂Jltے`JXQ|ZdQbp˂rdrtA`vXn`JXQrnXv`bdQZ|nvpbtlnXv`bdQZ|nvpZdQbtrXQJ`bdQZ|r˂ptlJXQJ`ےJltvpf˂pZf~HdrtfH~JtArdf~HdrtfH~ˉlJtbHAZdrtAZHAbtArdbHAZbdQZ|H~fHAbےfpvAJltf`vX|ZdQfpvAJltf`vXArd|rXQJJltے`JXQ|ZdQbp˂rdrtA`vXn`JXQrnvfbdQZ|nvpbtlnXv`bdQZ|nvplJtA`ےbbdQZ|r˂ptlJXQJ`ےJltvpf˂p|~HfpہdrtfH~JtArdf~HdrtfH~rd|HAZp˂drtAZHAbtArdbHAZbdQZ|H~fZdQbtvnXAJltf`vX|ZdQfpvAJltf`vXZdQbt瀉rXQJJltے`JXQ|ZdQbp˂rdrtA`vXnlJtAv`fbdQZ|nvpbtlnXv`bdQZ|nvplJtA`ےbbdQZ|r˂ptlJXQJ`ےJltvpfrd|~HfpہdrtfH~JtArdfHdrtfH~rd|HAZpdtAJZHAbtArdbHAZbdQZ|H~fZdQbtvnXAJltf`vX|ZdQfpvAJltf`vXZdQtArdrQJ`ےltbے`JXQ|ZdQbp˂rdrtA`vXnlJtAv`frbdQZ|nr˂pbtlnrXQJ`bdQZ|nr˂p|ZdbHAZpnvpr˂pnXv`XQJ`ےJltvpfrdtQJHAdrtZHAbJtArdےHAdrtZHAbQbtl˂rXfHfZHAbf~HbHAZbdQZ|H~flJtArZp˂AJltے`JX|ZdQZp˂AJltے`JXJtArdQJ`ے`vXnے`JXQfpvp˂rdrtA`vXnd|ZrXQJ`ۉbdQZ|Qr˂pbtlrXQJ`ۉbdQZ|Qr˂p|ZdbHAZpvpfr˂pnXv`XQJ`ےJltvpfdQbt璒bHAdrtZHAbJtArdbHAdrtZHAbQbtd˂rQJH~fZHAbf~HbHAZbdQZ|H~flJtArZp˂AJltے`JX|ZdQZp˂AJltے`JX|ZdQbHA`vXnے`JXQfpvp˂rdrtA`vXnd|lrXQJ`ۉbdQZ|Qr˂pbtlrXQJ`ۉbdQZ|Qr˂pbtlZp˂vpfr˂pnXv`XQJ`ےJltvpfJtArdbHAdrtZHAbJtArdbHAdrtZHAbJtArdrXQJ`H~fZHAbf~HbHAZbdQZ|drtAZHAbtArdrXQJ`~f`ZHAbf~HbHAZp~f`ZHAbf~HbHAZpvpfrd|~HfdrtAJ~f`rd|~Hf|drAbے`rd|bHAZp˙rtAJlAbے`rd|bHAZp˙rtAJlbے`f۝`vJltے`JXQ|ZdQbےbHAvXn`JXQfpv˂rXvXn`JXQfpv˂rXH~fZdQbtpvnltbvXnZdQbtpvntAJl璁JXQrZdQbt炀rXQtbdJXQrZdQbt炀rXQtbdJXQrXnvˍbdQZ|r˂ptlJZp˂vpfHr˂pnXv`QJ`ےvpfHr˂pnXv`QJ`p`vXnlJtAXv`fdQZ|vpfHlJtAXv`ftbdQZ˂pZHlJtAJ`ےQZ|d˂pZHlJtAJ`ےQZ|dpZHApfH~drtAZHAbtArdbHAZ~f`ZHAbf~HbHAZp~f`ZHAbf~Hrbdvf~rd|~HfdrtAJ~f`rd|~Hf|drAbJXQrd|bHAZp˙rtAJlAbے`rd|bHAZp˙rtAJlb˂pf۝`vJltے`JXQ|ZdQbp˂rvXn`JXQfpv˂rXvXn`JXQfpvQZ|lf`vXZdQbtpvnltbvXnZdQbtpvntAdQZ|r˂pZdQbt炀rXQtbdJXQrZdQbt炀rXQtbdZHAbXnvˍbdQZ|r˂ptlJXQJ`ےvpfHr˂pnXv`QJ`ےvpfHr˂pnXv`˒tbdQnvplJtAXv`fdQZ|vpfHlJtAXv`fdrtAZHAblJtAJ`ےQZ|d˂pZHlJtAJ`ےQZ|dے`JXpfH~drtAZHAbtArdbHAZ~f`ZHAbf~HbHAZp~f`ZHAbf~HZ|dfH~rd|~HfdrtAJ~f`rd|~HfJltے`JXQrd|bHAZp˙rtAJlAbے`rd|bHAZp˙rtAJlQr˂pf۝`vJltے`JXQ|ZdQbp˂rvXn`JXQfpv˂rXvXn`JXQfpvrtAJlf`vXZdQbtpvnltbvXnZdQbtpvnbdQZ|r˂pZdQbt炀rXQtbdJXQrZdQbt炀rXQtbdZHAbXnvˍbdQZ|r˂ptlJXQHAZpvpfHr˂pnXv`QJ`ےvpfHr˂pnXv`˒tbdQnvplJtAXv`fdQZ|vpfHlJtAXv`fdrtAZHAblJtAJ`ےQZ|d˂pZHlJtAJ`ےQZ|dے`ppfH~dtAJZHAbtArd˂rXQ~f`ZHAے`f~HbHAZp~f`ZHAے`f~HZ|dtf~f`rd|HfpdrtAJ~f`rd|HfpJl|JQrrd|bHAZp˙tAJlAbے`rd|bHAZp˙tAJlZHAbېf۝`vltbے`JXQ|ZdQbJ`ےvXnJXQrfpv˂rvXnJXQrfpvbdQZ|vXnrZdQbtvnrltbvXnrZdQbtvnrdrtAJpZHAZdQbnXrXQtbnJXQrZdQbnXrXQtbn`JXQXnvˍnvpr˂pnXv`bHAZpvpfHbtlnXv`bdQZ|vpfHbtlnXv`ˁdrt˂pZlJtAXQJ`ےdQZ|˂pZlJtAXQJ`ےltbbے`v`fJ`ےvpfH˂pZHv`fJ`ےvpfHr˂ppfH~fHfZHAbpvn˂rXQ~f`JtAd|f~HdrtA~f`JtAd|f~HAJltHAbےrd|HAZpdrtAJHAbےrd|HAZpdQZ|JXQr˕~HfpbHAZp˅f`Abے`~HfpbHAZp˅f`ZHAbېf۝`v`vXnے`JXQXv`fJ`p˂vXnZdQbtfpvJltvXnZdQbtfpvbdQZ|`JXQrZdQbt˂rXQltb`JXQrZdQbt˂rXQdrtAJpZHAvnXrXQvXnہJXQrvnXrXQvXnے`JXQHXnvˍvpfr˂p~HfrbdQvpfHlJtnXv`bdQZ|vpfHlJtnXv`ˁdrt˂pZlJtAJ`ےdQZ|˂pZlJtAJ`ےltdbے`Jv`fJ`ےvpfH˂pZHv`fJ`ےvpfHAbے`pfH~H~fZHAbpvnZ|rA~f`Ard|f~HdrtA~f`Ard|f~HAdQZ|HAbےrd|bHAZpdrtAJHAbےrd|bHAZprtAJlQrpZ~HfpbHAZp~f`Abے`~HfpbHAZp~f`JXQrf۝`v`vXnے`JXQXv`fJltvXnZdQbtfpvJltvXnZdQbtfpvdrtA`JXQrZdQbt˂rXQltb`JXQrZdQbt˂rXQtbdQHAbےvnXrXQvXnہJXQrvnXrXQvXnۉ˂pZHXnvˍvpfr˂pnXbdQZ|vpfHlJtnXv`bdQZ|vpfHlJtnXv`Jlt˂pZlJtAJ`ےdQZ|˂pZlJtAJ`ےZ|d`JXQrv`fJ`ےvpfH˂pZHv`fJ`ےvpfHAbے`pfH~H~fZHAbv`fdrtA~f`Ard|f~HdrtA~f`Ard|f~HbdQZ|HAbےrd|bHAZpdrtAJHAbےrd|bHAZprtAJl˂pZ~HfpbHAZp~f`Abے`~HfpbHAZp~f`JXQrf۝`v`vXnے`JXQ~HfpJltvXnZdQbtfpvJltvXnZdQbtfpvdrtA`JXQrZdQbt˂rXQltb`JXQrZdQbt˂rXQtbdQHAbےvnXrXQvXnہJXQrvnXrXQvXnۉ˂p`ZXnvˍvpfr˂pvnXbdQZ|vpfHlJtnXv`bdQZ|vpfHlJtnXv`Jl|d˂pZlJtAJ`ےdQZ|˂pZlJtAJ`ےZ|l`JXQrv`fJ`ےvpfH˂pZHv`fJ`ےvpfHQXb㉀pfH~H~fZHAbv`fdrAJ~f`Ard|f~HdrtA~f`Ard|f~HrtAJlHAbےrd|bHAZpdrtAJHAbےrd|bHAZptbnZHAb~HfpbHAZp~f`Abے`~HfpbHAZp~f`ۑpJAHrf۝`v`vXnے`JXQ~HXvtbdQZvXnZdQbtfpvJltvXnZdQbtfpvtbd`JXQrZdQbt˂rXQltb`JXQrZdQbt˂rXQvp`vے`JXvnXrXQvXnہJXQrvnXrXQvXn󙐂ˁ`ZXnvˍvpfr˂p`f~|drvpfHlJtnXv`bdQZ|vpfHlJtnXv`QZ|d˂pZlJtAJ`ےdQZ|˂pZlJtAJ`ےXnvQr˂pv`fJ`ےvpfH˂pZHv`fJ`ےvpfHQXb㉀p|drH~fZHAbHfpvtAJl璅~f`Ard|f~HdrtA~f`Ard|f~HrtAJlHAbےrd|bHAZpdrtAJHAbےrd|bHAZppfH~ZHAb~HfpbHAZp~f`Abے`~HfpbHAZp~f`ۑpJAHrQtJl`vXnے`JXQnXvtbdQZvXnZdQbtfpvJltvXnZdQbtfpvtd`JXQrZdQbt˂rXQltb`JXQrZdQbt˂rXQf`vے`JXvnXrXQvXnہJXQrvnXrXQvXn󙐉ۑtbAdZvpfr˂p`f~|drvpfHlJtnXv`bdQZ|vpfHlJtnXv`rtAJl瀉˂pZlJtAJ`ےdQZ|˂pZlJtAJ`ےXnvQr˂pv`fJ`ےvpfH˂pZHv`fJ`ےvpfHpJAHr|drH~fZHAےHfp`tAJbd~f`Ard|fHfpdrtA~f`Ard|fHfptbdQHAbےrd|bHAZpdtAJlHAbےrd|bHAZppfH~ZA`~HfpbHAZp~f`Aے`~HfpbHAZp~f`ˁ`ZQQtJl`vXn`JXQrf~HQZ|dvXnZdQbtvnJltvXnZdQbtvnZ|d`JXQrZdQbn˂rXQtbn`JXQrZdQbn˂rXQvpJXQrbtvnXrbdvXnJXQrbtvnXrbdvXnXb㉀ۑtbAdZvpfbtlfpvrtAJlr˂plJtrXQJ`bdQZ|r˂plJtrXQJ`prtAJl瀉˂pZXv`fJ`ےvpf˂pZXv`fJ`ےfH~lJtv`fQZ|dvpfHlJtv`fQZ|dvpfHpJAHr|drH~fJtAdnXv`tbdZHAbArd|HAZpdrtAZHAbArd|˂rXtbdQHAbے~HfbHAZpHf`HAbے~HfbHAZpf`vXAd|~HfprtAJl~f`Ad|~HfprtAJl~f`ˁ`pJQtJl`vXn|ZdQbf~HQZ|d`JXQZdQbt˂rXJlt`JXQZdQbtQJ`ےZ|lt`JXQrpvn˂rXQvXn`JXQrpvn˂rXQnvpZdQbtvnXtbdvXnZdQbtvnXtbdvXnAHr󙐂tbAdZvpftlJfpvrtAJlr˂plJtQJ`ےbdQZ|r˂plJtbHAZpbnۀ˂pZXv`fJ`ےvpfH˂pZXv`fJ`ےfH~lJtAv`fQZ|dvpfHlJtAv`fQZ|dvpfHˁ`ZQXb|drH~ftArd~HfbQZ|ZHAbArd|bHAZpdrtAZHAbArd|˂rXvpff`HAbے~HfbHAZp~f`HAbے~HfbHAZpf`pfrd|~HfprtAJl~f`rd|~HfprtAJl~f`㉀ۑpJQtJl`vXn|ZdQbpvndrtA`JXQZdQbt˂rXJlt`JXQZdQbtQJ`ےvXn`JXQrpvn˂rXQvXn`JXQrpvn˂rXQH~fZdQbtvnXtbdvXnZdQbtvnXtbdvXnAHr󙐂tbAdZvpftlJXv`fJltr˂plJtQJ`ےbdQZ|r˂plJtbHAXQvpfH˂pZXv`fJ`ےvpfH˂pZXv`fJ`ے`vXnlJtAv`fQZ|dvpfHlJtAv`fQZ|dvpfHˁ`ZQXA|drH~ftArd~HfbdQZ|ZHAbArd|bHAZpdrtAZHAbArd|J`ے~f`HAbے~HfbHAZp~f`HAbے~HfbHAZpvpfrd|~HfprtAJl~f`rd|~HfprtAJl~f`Hr󙐂ˁQtJl`vXn|ZdQbpvndrtA`JXQZdQbt˂rXJlt`JXQZdQbtbHAZpˍvXn`JXQrpvn˂rXQvXn`JXQrpvn˂rXQH~fZdQbtvnXtbdvXnZdQbtvnXtbdvXn`ZQXbtbAdZvpftlJXv`pJltr˂plJtQJ`ےbdQZ|r˂plJtrXQvpfH˂pZXv`fJ`ےvpfH˂pZXv`fJ`ے`vXHlJtAv`fQZ|dvpfHlJtAv`fQZ|dvpfHۑpJA|drH~ftArdvnrbQZdZHAbArd|bHAZpdrtAZHAbArd|J`ے~fvHAbے~HfbHAZp~f`HAbے~HfbHAZp~f`rd|~HfprtAJl~f`rd|~HfprtAJl~f`Hr󙐂ˁQtJl`vXn|ZdQbXQJ`prtAJl`JXQZdQbt˂rXJlt`JXQZdQbtbHAZp`nvp`JXQrpvn˂rXQvXn`JXQrpvn˂rXQvXnZdQbtvnXtbdvXnZdQbtvnXtbdvXn`ZQXbtbAdZvpftlJ˂rXQtbdQr˂plJtQJ`ےbdQZ|r˂plJtےbHfH~˂pZXv`fJ`ےvpfH˂pZXv`fJ`ےvpfHlJtAv`fQZ|dvpfHlJtAv`fQZ|dvpfH󀙐ˁ`Z|drH~ftArdJ`ےZ|dZHAbArd|bHAZpdrtAZHAbArd|AZp˂f`vXHAbے~HfbHAZp~f`HAbے~HfbHAZp~f`rd|~HfprtAJl~f`rd|~HfprtAJl~f`QXb㉀QtJl`vXn|ZdQbbHAZprtAJl`JXQZdQbt˂rXJlt`JXQZdQbtrXQJ`nvp`JXQrpvn˂rXQvXn`JXQrpvn˂rXQvXnZdQbtvnXtbdvXnZdQbtvnXtbdvXnۑpJAHrtbAdZvpftlJ˂rXQtbdQr˂plJtQJ`ےbdQZ|r˂plJtےbHfH~˂pZXv`fJ`ےvpfH˂pZXv`fJ`ےf`vlJtAv`fQZ|dvpfHlJtAv`fQZ|dvpfH󙐂ˁ`Z|drH~ftArdJ`ےZ|AJlZHAbArd|bHAZpdtAJlZHAbArd|AZp˂f`vnHAے`~HfbHAZp~f`HAے`~HfbHAZpXnvrd|HfpۙrtAJl~f`rd|HfpۙrtAJl~f`QXb㉀QtJl`vXn|ZdQbbHAXQJtb`JXQZdQb˂rXtb`JXQZdQb㉐bHAvpfHJXQrbpvn˂rbvXnJXQrbpvn˂rbpfH~ZdQbtvnrXtbdvXnrZdQbtvnrXtbdvXnے`XnvˍtbAdZr˂ptlJ`ےbnvpr˂pnXv`QJ`ےnvpr˂pnXv`Zp˂~f`tlJXv`fdQZ|vpfHtlJXv`fdQZ|lf`vlJtAQJ`ےQZ|d˂pZHlJtAQJ`ےQZ|dJXQrpfH~|drZHAbtArdHAZp˂fHf`ZHAbf~HbHAZpfHf`ZHAbf~HrXQJ`vXntAd|~HfdrtAJ~f`tAd|~HftbdQXnvrd|HAZp˙rtAJlAbے`rd|HAZp˙rtAJl˂pZHf۝`vQtJlے`JXQ|ZdQbrXQJvXn`JXQfpv˂rXvXn`JXQfpv㒐bHAvpfHZdQbtpvnltbvXnZdQbtpvnZ|dp`vXZdQbt炀rXQtbdJXQrZdQbt炀rXQtbdAbے`XnvˍtbAdZr˂ptlJ`ےbvpfHr˂pnXv`QJ`ےvpfHr˂pnXv`Zp˂~f`lJtAXv`fdQZ|vpfHlJtAXv`frtAJlnr˂lJtAJ`ےQZ|d˂pZHlJtAJ`ےQZ|dJXQrpfH~|drZHAbtArdHAZp`~f`ZHAbf~HbHAZp~f`ZHAbf~HrXQHAZpvXnvfrd|~HfdrtAJ~f`rd|~HftbdQpZAb`rd|bHAZp˙rtAJlAbے`rd|bHAZp˙rtAJl˂pZHf۝`vQtJlے`JXQ|ZdQbےbHAvXn`JXQfpv˂rXvXn`JXQfpv˂rXH~fZdQbtpvnltbvXnZdQbtpvnZ|dJXQrZdQbt炀rXQtbdJXQrZdQbt炀rXQtbdAXQrXnvˍtbAdZr˂ptlJZp˂vpfHr˂pnXv`QJ`ےvpfHr˂pnXv`QJ`ے`vXnlJtAXv`fdQZ|vpfHlJtAXv`ftbdQZ˂pZHlJtAJ`ےQZ|d˂pZHlJtAJ`ےQZ|dpZHApfH~|drQt-------------------................................... \ No newline at end of file diff --git a/vendor/endroid/qr-code/assets/data/qrv32_3.dat b/vendor/endroid/qr-code/assets/data/qrv32_3.dat deleted file mode 100755 index 5487dd475..000000000 --- a/vendor/endroid/qr-code/assets/data/qrv32_3.dat +++ /dev/null @@ -1,289 +0,0 @@ -}~}~}~}~{|{|{|{|yzyzyzyzuvuvuvuvststststqrqrqrqrmmmnmnmnlklklklkjijijijifefefefedcdcdcdcbabababa`_`_`_`_\[\[\[\[ZYZYZYZYXWXWXWXWSTSTSTST}~}~}~}~{|{|{|{|yxwxwxwxuvuvuvuvststststqrqrqrqrmnmnmnmnlklklklkhghghghgfefefefedcdcdcdcbabababa^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWSTSTSTST}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvststststqrqrqrqpmnmnmnmnlklklklkhghghghgfefefefedcdcdcdcbabababa^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWVUSTSTSTST}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvststststopopopopmnmnmnmnlklklklkhghghghgfefefefedcdcdcdcbabababa^]^]^]^]\[\[\[\[ZYZYZYZYVUVUVUVUSTSTSTST}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvststststopopopopmnmnmnmnlklklklkhghghghgfefefefedcdcdcdcbabababa^]^]^]^]\[\[\[\[ZYZYZYZYVUVUVUVUSTSTSTST}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvststststopopopopmnmnmmmmlklklklkhghghghgfefefefedcdcdcdcbabababa^]^]^]^]\[\[\[\[ZYZYZYZYVUVUVUVUSSSSSSTS}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvststststopopopopmmnmnmnmlklklklkhghghghgfefefefedcdcdcdcbabababa^]^]^]^]\[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTS}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvststststopopopopnmnmnmnmlklklklkhghghghgfefefefedcdcdcdcbabababa^]^]^]^]\[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTS}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvststststopopopopnmnmnmnmlklklklkhghghghgfefefefedcdcdcdcbabababa^]^]^]^]\[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTS}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvststststopopopopnmnmnmnmlklklklkhghghghgfefefefedcdcdcdcbabababa^]^]^]^]\[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTS}~}~}~}~{zyzyzyzwxwxwxwxuvuvuvuvststststopopopopnmnmnmnmjijijijihghghghgfefefefedcdcdcdc`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTSQRQRQRQR}~}~}~}~yzyzyzyzwxwxwxwxuvuvuvuvststststopopopopnmnmmmmmjijijijihghghghgfefefefedcdcdcdc`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYVUVUVUVUSSSSSTSTQRQRQRQR}~}~}~}~yzyzyzyzwxwxwxwxuvuvuvuvststststopopopopmnmnmnmnjijijijihghghghgfefefefedcdcdcdc`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYVUVUVUVUSTSTSTSTQRQRQRQR}~}~}~}~yzyzyzyzwxwxwxwxuvuvuvuvststststopopopopmnmnmnmnjijijijihghghghgfefefefedcdcdcdc`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYVUVUVUVUSTSTSTSTQRQRQRQR}~}~}~}~yzyzyzyzwxwxwxwxuvuvuvuvststststopopopopmnmnmnmnjijijijihghghghgfefefefedcdcdcdc`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYVUVUVUVUSTSTSTSTQRQRQRQR}~}~}~}~yzyzyzyzwxwxwxwxuvuvuvuvststststopopopopmnmnmnmnjijijijihghghghgfefefefedcdcdcdc`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYVUVUVUVUSTSTSTSTQRQRQRQR}~}~}~}~yzyzyzyzwxwxwxwxuvuvuvuvststststopopopopmnmnmnmnjijijijihghghghgfefefefedcdcdcdc`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYVUVUVUVUSTSTSTSTQRQRQRQR}~}~}~}~yzyzyzyzwxwxwxwxuvuvuvuvststststopopopopmnmmmmmmjijijijihghghghgfefefefedcdcdcdc`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYVUVUVUVUSTSSSSSTQRQRQRQR}~}~}~}~yzyzyzyzwxwxwxwxuvuvuvuvststststopopopopnmnmnmnmjijijijihghghghgfefefefedcdcdcdc`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYVUVUVUVUSTSTSTSRQRQRQRQR}|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvsrqrqrqropopopoplklklklkjijijijihghghghgfefefefebabababa`_`_`_`_^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVUQRQRQRQRQRQRQRQP{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvqrqrqrqropopopoplklklklkjijijijihghghghgfefefefebabababa`_`_`_`_^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVUQRQRQRQROPOPOPOP{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvqrqrqrqropopopoplklklklkjijijijihghghghgfefefefebabababa`_`_`_`_^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVUQRQRQRQROPOPOPOP{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvqrqrqrqropopopoplklklklkjijijijihghghghgfefefefebabababa`_`_`_`_^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVUQRQRQRQROPOPOPOP{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvqrqrqrqropopopoplklklklkjijijijihghghghgfefefefebabababa`_`_`_`_^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVUQRQRQRQROPOPOPOP{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvqrqrqrqropopopoplklklklkjijijijihghghghgfefefefebabababa`_`_`_`_^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVUQRQRQRQROPOPOPOP{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvqrqrqrqropopopoplklklklkjijijijihghghghgfefefefebabababa`_`_`_`_^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVUQRQRQRQROPOPOPOP{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvqrqrqrqropopopoplklklklkjijijijihghghghgfefefefebabababa`_`_`_`_^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVUQRQRQRQROPOPOPOP{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvqrqrqrqropopopoplklklklkjijijijihghghghgfefefefebabababa`_`_`_`_^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVUQRQRQRQROPOPOPOP~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxutstststqrqrqrqropopopoplklklklkjijijijihghghghgdcdcdcdcbabababa`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWVUVUVUVUQRQRQRQROPOPOPOP}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxststststqrqrqrqropopopoplklklklkjijijijihghghghgdcdcdcdcbabababa`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWVUVUVUVUQRQRQRQROPOPOPOP}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxststststqrqrqrqropopopoplklklklkjijijijihghghghgdcdcdcdcbabababa`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWVUVUVUVUQRQRQRQROPOPOPOP}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxststststqrqrqrqropoponmnlklklklkjijijijihghghghgdcdcdcdcbabababa`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWVUVUTSTSQRQRQRQROPOPOPOP}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxststststqrqrqrqrmnmnmmmmlklklklkjijijijihghghghgdcdcdcdcbabababa`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWTSTSSSSSQRQRQRQROPOPOPOP}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxststststqrqrqrqrmnmnmnmnlklklklkjijijijihghghghgdcdcdcdcbabababa`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWSTSTSTSTQRQRQRQROPOPOPOP}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxststststqrqrqrqrmnmnmnmnlklklklkjijijijihghghghgdcdcdcdcbabababa`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWSTSTSTSTQRQRQRQROPOPOPOP}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxststststqrqrqrqrmnmnmnmnlklklklkjijijijihghghghgdcdcdcdcbabababa`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWSTSTSTSTQRQRQRQROPOPOPOP}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxststststqrqrqrqrmnmnmnmnlklklklkjijijijihghghghgdcdcdcdcbabababa`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWSTSTSTSTQRQRQRQROPOPOPOP}~}~}~}~{|{|{|{|yzyzyzyzwvuvuvuvststststqrqrqrqrmnmnmnmnlklklklkjijijijifefefefedcdcdcdcbabababa`_`_`_`_\[\[\[\[ZYZYZYZYXWXWXWXWSTSTSTSTQRQRQRQROPOPOPOP}~}~}~}~{|{|{|{|yzyzyzyzuvuvuvuvststststqrqrqrqrmnmnmnmmlklklklkjijijijifefefefedcdcdcdcbabababa`_`_`_`_\[\[\[\[ZYZYZYZYXWXWXWXWSTSSSSSSQRQRQRQROPOPOPOP}~}~}~}~{|{|{|{|yzyzyzyzuvuvuvuvststststqrqrqrqrmmmmnmnmlklklklkjijijijifefefefedcdcdcdcbabababa`_`_`_`_\[\[\[\[ZYZYZYZYXWXWXWXWTSTSTSTSQRQRQRQROPOPOPOP}~}~}~}~{|{|{|{|yzyzyzyzuvuvuvuvststststqrqrqrqrnmnmnmnmlklklklkjijijijifefefefedcdcdcdcbabababa`_`_`_`_\[\[\[\[ZYZYZYZYXWXWXWXWTSTSTSTSQRQRQRQROPOPOPOP}~}~}~}~{|{|{|{|yzyzyzyzuvuvuvuvststststqrqrqrqrnmnmnmnmlklklklkjijijijifefefefedcdcdcdcbabababa`_`_`_`_\[\[\[\[ZYZYZYZYXWXWXWXWTSTSTSTSQRQRQRQROPOPOPOP}~}~}~}~{|{|{|{|yzyzyzyzuvuvuvuvststststqrqrqrqrnmnmnmnmlklklklkjijijijifefefefedcdcdcdcbabababa`_`_`_`_\[\[\[\[ZYZYZYZYXWXWXWXWTSTSTSTSQRQRQRQROPOPOPOP}~}~}~}~{|{|{|{|yzyzyzyzuvuvuvuvststststqrqrqrqrnmnmnmnmlklklklkjijijijifefefefedcdcdcdcbabababa`_`_`_`_\[\[\[\[ZYZYZYZYXWXWXWXWTSTSTSTSQRQRQRQROPOPOPOP}~}~}~}~{|{|{|{|yzyzyzyzuvuvuvuvststststqrqrqrqrnmnmnmmmlklklklkjijijijifefefefedcdcdcdcbabababa`_`_`_`_\[\[\[\[ZYZYZYZYXWXWXWXWTSSSSSSTQRQRQRQROPOPOPOPOPOPOPOPMNMNMNMNIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>9:9:9:9:8787878765656565434343430/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#     - - - -OPOPOPOPMNMNMNMLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCB?@?@?@?@=>=>=>=>9:9:9:9:8787878765656565434343210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)('&%&%&%&%$#$#$#$#      - - - -OPOPOPOPKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFABABABAB?@?@?@?@=>=>=>=>9:9:9:9:8787878765656565212121210/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#         - - - -OPOPOPOPKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFABABABAB?@?@?@?@=>=>=>=>9:9:99998787878765656565212121210/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#      - - - -OPOPOPOPKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFABABABAB?@?@?@?@=>=>=>=>99:9:9:98787878765656565212121210/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#         - - - -OPOPOPOPKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFABABABAB?@?@?@?@=>=>=>=>:9:9:9:98787878765656565212121210/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#         - - - -OPOPOPOPKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFABABABAB?@?@?@?@=>=>=>=>:9:9:9:98787878765656565212121210/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#         - - - -OPOPOPOPKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFABABABAB?@?@?@?@=>=>=>=>:9:9:9:98787878765656565212121210/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#         - - - -OPOPOPOPKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFABABABAB?@?@?@?@=>=>=>=>:9:9:9:98787878765656565212121210/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#         - - - -OPOPOPOPKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFABABABAB?@?@?@?@=>=>=>=>:9:999998787878765656565212121210/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#       - - - -OPOPOPONKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEDABABABAB?@?@?@?@=>=>=>=>9:9:9:9:8787878765656543212121210/0/0/0/.-.-.-.-,+,+,+*)('('('('&%&%&%&%$#$#$#$#         - - - -MNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHCDCDCDCDABABABAB?@?@?@?@=>=>=>=>9:9:9:9:8787878743434343212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%$#$#$#$#         - - - -MNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHCDCDCDCDABABABAB?@?@?@?@=>=>=<;<9:9:9:9:8787878743434343212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%$#$#"!"!         - - - -MNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHCDCDCDCDABABABAB?@?@?@?@;<;<;<;<9:9:9:9:8787878743434343212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%"!"!"!"!         - - - -MNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHCDCDCDCDABABABAB?@?@?@?@;<;<;<;<9:9:9:9:8787878743434343212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%"!"!"!"!        - - - -MNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHCDCDCDCDABABABAB?@?@?@?@;<;<;<;<9:9999998787878743434343212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%"!"!"!"!       - - - -MNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHCDCDCDCDABABABAB?@?@?@?@;<;<;<;<:9:9:9:98787878743434343212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%"!"!"!"!         - - - -MNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHCDCDCDCDABABABAB?@?@?@?@;<;<;<;<:9:9:9:98787878743434343212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%"!"!"!"!         - - - -MNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHCDCDCDCDABABABAB?@?@?@?@;<;<;<;<:9:9:9:98787878743434343212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%"!"!"!"!         - - - -MNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGFCDCDCDCDABABABAB?@?@?@?@;<;<;<;<:9:9:9:98787876543434343212121210/0/0/0/.-.-.-,+*)*)*)*)('('('('&%&%&%&%"!"!"!"!         - - MNMNMNMNKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCDABABABAB?@?@?@?@;<;<;<;<:9:9:9:96565656543434343212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('&%&%&%&%"!"!"!"!        MNMNMNMNKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCDABABABAB?@?@?@?@;<;<;<;<:999999:6565656543434343212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('&%&%&%&%"!"!"!"!        MNMNMNMNKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCDABABABAB?@?@?@?@;<;<;<;<9:9:9:9:6565656543434343212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('&%&%&%&%"!"!"!"!         MNMNMNMNKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCDABABABAB?@?@?@?@;<;<;<;<9:9:9:9:6565656543434343212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('&%&%&%&%"!"!"!"!         MNMNMNMNKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCDABABABAB?@?@?@?@;<;<;<;<9:9:9:9:6565656543434343212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('&%&%&%&%"!"!"!"!         MNMNMNMNKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCDABABABAB?@?@?@?@;<;<;<;<9:9:9:9:6565656543434343212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('&%&%&%&%"!"!"!"!         MNMNMNMNKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCDABABABAB?@?@?@?@;<;<;<;<9:9:9:9:6565656543434343212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('&%&%&%&%"!"!"!"!         MNMNMNMNKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCDABABABAB?@?@?@?@;<;<;<;<999999:96565656543434343212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('&%&%&%&%"!"!"!"!       MNMNMNMNKLKLKLKLIJIJIJIHEFEFEFEFCDCDCDCDABABABAB?@?@?@?>;<;<;<;<:9:9:9876565656543434343212121210/0/0/.-,+,+,+,+*)*)*)*)('('('('&%&%&%$#"!"!"!"!       - -MNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFCDCDCDCDABABABAB=>=>=>=>;<;<;<;<87878787656565654343434321212121.-.-.-.-,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!     - - - -MNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFCDCDCDCDABABABAB=>=>=>=>;<;<;<;<87878787656565654343434321212121.-.-.-.-,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!     - - - -MNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFCDCDCDCDABABABAB=>=>=>=>;<;<;<;<87878787656565654343434321212121.-.-.-.-,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!     - - - -MNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFCDCDCDCDABABABAB=>=>=>=>;<;<;<;<87878787656565654343434321212121.-.-.-.-,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!     - - - -MNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFCDCDCDCDABABABAB=>=>=>=>;<;<;<;<87878787656565654343434321212121.-.-.-.-,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!     - - - -MNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFCDCDCDCDABABABAB=>=>=>=>;<;<;<;<87878787656565654343434321212121.-.-.-.-,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!     - - - -MNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFCDCDCDCDABABABAB=>=>=>=>;<;<;<;<87878787656565654343434321212121.-.-.-.-,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!     - - - -MNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFCDCDCDCDABABABAB=>=>=>=>;<;<;<;<87878787656565654343434321212121.-.-.-.-,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!     - - - -MNMNMNMNKLKLKLKJGHGHGHGHEFEFEFEFCDCDCDCDABABABA@=>=>=>=>;<;<;<;<8787878765656565434343432121210/.-.-.-.-,+,+,+,+*)*)*)*)('('('&%$#$#$#$#"!"!"!"!   - - - -MNMNMNMNIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>;<;<;<;<8787878765656565434343430/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"! - - - -MNMNMNMNIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>;<;<;<;<8787878765656565434343430/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"! - - - -MNMNMNMNIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>;<;<;<;<8787878765656565434343430/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"! - - - -MNMNMNMNIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>;<;:9:9:8787878765656565434343430/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!    - - - -MNMNMNMNIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>9:99999:8787878765656565434343430/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#   - - - -MNMNMNMNIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>9:9:9:9:8787878765656565434343430/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#     - - - -MNMNMNMNIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>9:9:9:9:8787878765656565434343430/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#     - - - -55667788]]\\[[ZZhiijjkklqppoonnmDEEFFGGH)((''&&% !!""##$MLLKKJJI<=>??@@A((''&&%%!!""##$$LLKKJJIIiijjkkllppoonnmmEEFFGGHH SRRQQPPO99::;;<<YYXWVUTSlmmnnoopmllkkjjiHIIJJKKL%$$##""!$%%&&''(IHHGGFFEABBCCDDE$$##""!!%%&&''((HHGGFFEEmmnnooppllkkjjiiIIJJKKLL - - ONNMMLLK==>>??@@SRRQQPPOpqqrrsstihhggffeLMMNNOOP! ())**++,EDDCCBBAEFFGGHHI ))**++,,DDCCBBAAqqrrsstthhggffeeMMNNOOPPKJJIIHHGAABBCCDDONNMMLLKtuuvvwwx - - eddccbbaPQQRRSST,--..//0A@@??>>=IJJKKLLM--..//00@@??>>==uuvvwwxx - - ddccbbaaQQRRSSTT GFFEEDDC~~}}EEFFGGHH KJJIIHHGxyyzz{{| a``__^^]TUUVVWWX01122334=<<;;::9MNNOOPPQ11223344<<;;::99yyzz{{|| ``__^^]]UUVVWWXX - - CBBAA@@?||{{zzyyIIJJKKLL - - GFFEEDDC|}}~~]\\[[ZZYXYYZZ[[\~~}4556677898877665QRRSSTUV~~}}5566778888776655}}~~\\[[ZZYYYYZZ[[\\?>=<;:99xxwwvvuuMMNNOOPP - - CBBAA@@?YXXWWVVU\]]^^__` }||{{zzy899::;;<54433221~~}}||{WXYYZZ[[ ||{{zzyy99::;;<<44332211XXWWVVUU]]^^__``88776655ttssrrqqQQRRSSTT?>=<;:99UTTSSRRQ`aabbccd - - yxxwwvvu<==>>??@100//..-{zzyyxxw\\]]^^__ - - xxwwvvuu==>>??@@00//..--TTSSRRQQaabbccdd44332211ppoonnmmUUVVWWXX88776655 QPPOONNMdeeffggh uttssrrq@AABBCCD-,,++**)wvvuutts``aabbccttssrrqqAABBCCDD,,++**)) PPOONNMMeeffgghh00//..--llkkjjiiYYZZ[[\\44332211 !!""##$MLLKKJJIhiijjkklqppoonnmDEEFFGGH)((''&&%smmllkkjddeeffggppoonnmmEEFFGGHH((''&&%%!!""##$$LLKKJJIIiijjkkll%%&&,,++**))hhggffee]]^^__``00//..--$%%&&''(IHHGGFFElmmnnoopmllkkjjiHIIJJKKL%$$##""!jiihhggfhhiijjkkllkkjjiiIIJJKKLL$$##""!!%%&&''((HHGGFFEEmmnnoopp''(())**((''&&%%ijjkkllmddccbbaaaabbccdd%%&&,,++**))())**++,EDDCCBBApqqrrsstihhggffeLMMNNOOP! feeddccbllmmnopqhhggffeeMMNNOOPP ))**++,,DDCCBBAAqqrrsstt++,,--..$#"! mnnooppq``__^^]]eeffgghh''(())**((''&&%%,--..//0A@@??>>=tuuvvwwx - - eddccbbaPQQRRSSTbaa``__^rssttuuv - - ddccbbaaQQRRSSTT--..//00@@??>>==uuvvwwxx//001122qrrssttu\\[[ZZYYiijjkkll++,,--..$#"! 01122334=<<;;::9xyyzz{{| a``__^^]TUUVVWWX^]]\\[[Zvwwxxyyz ``__^^]]UUVVWWXX11223344<<;;::99yyzz{{||33445566uvvwwxxyXXWWVVUUmmnnoopp//001122~~}4556677898877665|}}~~]\\[[ZZYXYYZZ[[\ZYYSSRRQz{{||}}~\\[[ZZYYYYZZ[[\\~~}}5566778888776655}}~~778899??yzz{{||}TTSSRRQQqqrrsstt33445566}||{{zzy899::;;<54433221YXXWWVVU\]]^^__` QPPOONNM~XXWWVVUU]]^^__`` ||{{zzyy99::;;<<44332211@@AABBCC}~~PPOONNMMuuvvwwxx778899??yxxwwvvu<==>>??@100//..-UTTSSRRQ`aabbccd - - MLLKKJJITTSSRRQQaabbccdd - - xxwwvvuu==>>??@@00//..--DDEEFFGG -LLKKJJIIyyzz{{||@@AABBCCuttssrrq@AABBCCD-,,++**) QPPOONNMdeeffggh IHHGGFFE PPOONNMMeeffgghhttssrrqqAABBCCDD,,++**))HHIIJJKK - HHGGFFEE}}~~DDEEFFGG -qppoonnmDEEFFGGH)((''&&% !!""##$MLLKKJJIhiijjkklEDDCCBBA!!""##$$LLKKJJIIiijjkkllppoonnmmEEFFGGHH((''&&%%LLMMNNOODDCCBBAAHHIIJJKK - mllkkjjiHIIJJKKL%$$##""!$%%&&''(IHHGGFFElmmnnoopA@@??998%%&&''((HHGGFFEEmmnnooppllkkjjiiIIJJKKLL$$##""!!PPQQRRSS@@??>>==LLMMNNOOihhggffeLMMNNOOP! ())**++,EDDCCBBApqqrrsst - - 87766554))**++,,DDCCBBAAqqrrsstthhggffeeMMNNOOPP YYZZ[[\\ <<;;::99PPQQRRSS - - eddccbbaPQQRRSST,--..//0A@@??>>=tuuvvwwx 43322110--..//00@@??>>==uuvvwwxx - - ddccbbaaQQRRSSTT]]^^__`` - - 88776655YYZZ[[\\ a``__^^]TUUVVWWX01122334=<<;;::9xyyzz{{|0//..--,11223344<<;;::99yyzz{{|| ``__^^]]UUVVWWXX~~}}||aabbccdd 44332211]]^^__``]\\[[ZZYXYYZZ[[\~~}4556677898877665|}}~~,++**))(~~}}5566778888776655}}~~\\[[ZZYYYYZZ[[\\{{zzyyxxeeffgghh00//..--aabbccddYXXWWVVU\]]^^__` }||{{zzy899::;;<54433221(''&&%%||{{zzyy99::;;<<44332211XXWWVVUU]]^^__`` wwvvuuttiijjkkll~~}}|,,++**))eeffgghhUTTSSRRQ`aabbccd - - yxxwwvvu<==>>??@100//..-%xxwwvvuu==>>??@@00//..--TTSSRRQQaabbccdd - - ssmmllkkmmssttuu|{{zzyyx((''&&%%~~}}||iijjkkll QPPOONNMdeeffggh uttssrrq@AABBCCD-,,++**)%&&''(()ttssrrqqAABBCCDD,,++**)) PPOONNMMeeffgghhjjiihhggvvwwxxyy !xwwvvuut$$##""!!{{zzyyxxmmssttuu !!""##$MLLKKJJIhiijjkklqppoonnmDEEFFGGH)((''&&%)**++,,-ppoonnmmEEFFGGHH((''&&%%!!""##$$LLKKJJIIiijjkkllffeeddcczz{{||}}!""##$$%tssrrqqp wwvvuuttvvwwxxyy$%%&&''(IHHGGFFElmmnnoopmllkkjjiHIIJJKKL%$$##""!-..//001llkkjjiiIIJJKKLL$$##""!!%%&&''((HHGGFFEEmmnnooppbbaa``__~~%&&''(()poonnmmlssmmllkkzz{{||}}())**++,EDDCCBBApqqrrsstihhggffeLMMNNOOP! 12233445 hhggffeeMMNNOOPP ))**++,,DDCCBBAAqqrrsstt^^]]\\[[)**++,,-lkkjjiihjjiihhgg~~,--..//0A@@??>>=tuuvvwwx - - eddccbbaPQQRRSST56677889 - - ddccbbaaQQRRSSTT--..//00@@??>>==uuvvwwxx - - ZZYYSSRR-..//001hggffeedffeeddcc01122334=<<;;::9xyyzz{{| a``__^^]TUUVVWWX9??@@AAB``__^^]]UUVVWWXX11223344<<;;::99yyzz{{|| QQPPOONN12233445dccbbaa` bbaa``__4556677898877665|}}~~]\\[[ZZYXYYZZ[[\~~}BCCDDEEF\\[[ZZYYYYZZ[[\\~~}}5566778888776655}}~~MMLLKKJJ56677889`__^^]]\ - - ^^]]\\[[899::;;<54433221YXXWWVVU\]]^^__` }||{{zzyFGGHHIIJ - - XXWWVVUU]]^^__`` ||{{zzyy99::;;<<44332211IIHHGGFF9::;;<<=\[[ZZYYX - - ZZYYSSRR<==>>??@100//..-UTTSSRRQ`aabbccd - - yxxwwvvuJKKLLMMN TTSSRRQQaabbccdd - - xxwwvvuu==>>??@@00//..--EEDDCCBB=>>??@@AXWWVVUUT QQPPOONN@AABBCCD-,,++**) QPPOONNMdeeffggh uttssrrqNOOPPQQRPPOONNMMeeffgghhttssrrqqAABBCCDD,,++**)) AA@@??99~~}}|ABBCCDDETSSRRQQPMMLLKKJJDEEFFGGH)((''&&% !!""##$MLLKKJJIhiijjkklqppoonnmRSSYYZZ[LLKKJJIIiijjkkllppoonnmmEEFFGGHH((''&&%%!!""##$$88776655|{{zzyyxEFFGGHHIPOONNMMLIIHHGGFF~~}}|HIIJJKKL%$$##""!$%%&&''(IHHGGFFElmmnnoopmllkkjji[\\]]^^_HHGGFFEEmmnnooppllkkjjiiIIJJKKLL$$##""!!%%&&''((44332211xwwvvuutIJJKKLLMLKKJJIIHEEDDCCBB|{{zzyyxLMMNNOOP! ())**++,EDDCCBBApqqrrsstihhggffe_``aabbc DDCCBBAAqqrrsstthhggffeeMMNNOOPP ))**++,,00//..--tssrqponMNNOOPPQHGGFFEED AA@@??99xwwvvuutPQQRRSST,--..//0A@@??>>=tuuvvwwx - - eddccbbacddeeffg!"#$%%&&@@??>>==uuvvwwxx - - ddccbbaaQQRRSSTT--..//00,,++**))mmllkkjjQRRSSTTUDCCBBAA@!!""##$$88776655tssrqponTUUVVWWX01122334=<<;;::9xyyzz{{| a``__^^]ghhiijjk''(())**<<;;::99yyzz{{|| ``__^^]]UUVVWWXX11223344((''&&%%iihhggffUVVWWXXY@??>>==<%%&&''((44332211mmllkkjjXYYZZ[[\~~}4556677898877665|}}~~]\\[[ZZYkllmmsst++,,--..88776655}}~~\\[[ZZYYYYZZ[[\\~~}}55667788eeddccbbYZZ[[\\]<;;::998))**++,,00//..--iihhggff\]]^^__` }||{{zzy899::;;<54433221YXXWWVVUtuuvvwwx//00112244332211XXWWVVUU]]^^__`` ||{{zzyy99::;;<<aa``__^^]^^__``a87766554--..//00,,++**))eeddccbb`aabbccd - - yxxwwvvu<==>>??@100//..-UTTSSRRQxyyzz{{|3344556600//..--TTSSRRQQaabbccdd - - xxwwvvuu==>>??@@]]\\[[ZZabbccdde4332211011223344((''&&%%aa``__^^deeffggh uttssrrq@AABBCCD-,,++**) QPPOONNM|}}~~778899:;,,++**)) PPOONNMMeeffgghhttssrrqqAABBCCDDYYXWVUTSeffgghhi0//..--,,++**))( !POONNMMLeffgghhitssrrqqpOPPQQRRSOONNMMLLffgghhiissrrqqppBBCCDDEE++**))(( !!@@??9988~~}}||{BCCDDEEF+**))((' !!"ONNMMLLKfgghhiijsrrqqppoBCCDDEEF A@@??>>=(''&&%%$!""##$$%LKKJJIIHijjkkllmpoonnmmlSYYZZ[[\KKJJIIHHjjkkllmmoonnmmllFFGGHHII''&&%%$$""##$$%%77665544{zzyyxxwFGGHHIIJ'&&%%$$#"##$$%%&KJJIIHHGjkkllmmnonnmmllkFGGHHIIJ - - -=<<;;::9$##""!! %&&''(()HGGFFEEDmnnooppqlkkjjiih\]]^^__`GGFFEEDDnnooppqqkkjjiihhJJKKLLMM##""!! &&''(())33221100wvvuuttsJKKLLMMN#""!! &''(())*GFFEEDDCnooppqqrkjjiihhgJKKLLMMN - 98877665 )**++,,-DCCBBAA@qrrssttu hggffeed`aabbccd !"CCBBAA@@rrssttuu ggffeeddNNOOPPQQ**++,,--//..--,,srqponmmNOOPPQQR*++,,--.CBBAA@@?rssttuuv -gffeeddcNOOPPQQR54433221-..//001@??>>==>==<>==<<;vwwxxyyz - cbbaa``_RSSTTUUV100//..-12233445<;;::998yzz{{||} `__^^]]\hiijjkkl(())**++;;::9988zz{{||}}__^^]]\\VVWWXXYY22334455''&&%%hhggffeeVWWXXYYZ23344556;::99887z{{||}}~_^^]]\\[VWWXXYYZ-,,++**)~~}}|5667788987766554}~~\[[ZZYYXlmmssttu,,--..//77665544~~[[ZZYYXXZZ[[\\]]~~}}||66778899ddccbbaaZ[[\\]]^~~}}||{6778899:76655443~[ZZYYXXWZ[[\\]]^)((''&&% |{{zzyyx9::;;<<=43322110XWWVVUUTuvvwwxxy0011223333221100WWVVUUTT^^__``aa {{zzyyxx::;;<<==``__^^]]^__``aab {zzyyxxw:;;<<==>3221100/WVVUUTTS^__``aab%%&&'%$$##""! - - xwwvvuut=>>??@@A0//..--,TSSRRQQPyzz{{||}44556677//..--,,SSRRQQPPbbccddee - - wwvvuutt>>??@@AA\\[[ZZYYbccddeef - - wvvuutts>??@@AAB/..--,,+SRRQQPPObccddeef'(())**+! tssrrqqpABBCCDDE,++**))( !POONNMML}~~8899:;<=++**))(( !!OONNMMLLffgghhiissrrqqppBBCCDDEEXWVUTSSRfgghhiijsrrqqppoBCCDDEEF+**))((' !!"ONNMMLLKfgghhiij+,,--../poonnmmlEFFGGHHI(''&&%%$!""##$$%LKKJJIIH>??@@AAB''&&%%$$""##$$%%KKJJIIHHjjkkllmmoonnmmllFFGGHHII RQQPPOONjkkllmmnonnmmllkFGGHHIIJ'&&%%$$#"##$$%%&KJJIIHHGjkkllmmn/0011223lkkjjiihIJJKKLLM$##""!! %&&''(()HGGFFEEDBCCDDEEF##""!! &&''(())GGFFEEDDnnooppqqkkjjiihhJJKKLLMM - - NMMLLKKJnooppqqrkjjiihhgJKKLLMMN#""!! &''(())*GFFEEDDCnooppqqr34455667 hggffeedMNNOOPPQ )**++,,-DCCBBAA@FGGHHIIJ**++,,--CCBBAA@@rrssttuu ggffeeddNNOOPPQQJIIHHGGFrssttuuv -gffeeddcNOOPPQQR*++,,--.CBBAA@@?rssttuuv78899??@ - - dccbbaa`QRRSSTTU-..//001@??>>==>==<>==<<;vwwxxyyz@AABBCCD - - `__^^]]\UVVWWXXY12233445<;;::998NOOPPQQR22334455;;::9988zz{{||}}__^^]]\\VVWWXXYY BAA@@??>z{{||}}~_^^]]\\[VWWXXYYZ23344556;::99887z{{||}}~DEEFFGGH - - \[[ZZYYXYZZ[[\\]~~}}|5667788987766554~RSSTUVWX~~}}||6677889977665544~~[[ZZYYXXZZ[[\\]]=<;:9988~[ZZYYXXWZ[[\\]]^~~}}||{6778899:76655443~HIIJJKKL XWWVVUUT]^^__``a |{{zzyyx9::;;<<=43322110~}}||{{zYYZZ[[\\ {{zzyyxx::;;<<==33221100WWVVUUTT^^__``aa77665544WVVUUTTS^__``aab {zzyyxxw:;;<<==>3221100/LMMNNOOPTSSRRQQPabbccdde - - xwwvvuut=>>??@@A0//..--,zyyxxwwv]]^^__`` - - wwvvuutt>>??@@AA//..--,,SSRRQQPPbbccddee33221100SRRQQPPObccddeef - - wvvuutts>??@@AAB/..--,,+PQQRRSSY !POONNMMLeffgghhitssrrqqpABBCCDDE,++**))(vuuttssmaabbccddssrrqqppBBCCDDEE++**))(( !!OONNMMLLffgghhii//..--,, !!"ONNMMLLKfgghhiijsrrqqppoBCCDDEEF+**))(('YZZ[[\\]!""##$$%LKKJJIIHijjkkllmpoonnmmlEFFGGHHI(''&&%%$mllkkjjieeffgghhoonnmmllFFGGHHII''&&%%$$""##$$%%KKJJIIHHjjkkllmm%%&&''++**))(("##$$%%&KJJIIHHGjkkllmmnonnmmllkFGGHHIIJ'&&%%$$#]^^__``a %&&''(()HGGFFEEDmnnooppqlkkjjiihIJJKKLLM$##""!! ihhggffeiijjkkllkkjjiihhJJKKLLMM##""!! &&''(())GGFFEEDDnnooppqq(())**++''&&%%$#&''(())*GFFEEDDCnooppqqrkjjiihhgJKKLLMMN#""!! abbccdde !!""##$)**++,,-DCCBBAA@qrrssttu hggffeedMNNOOPPQ eddccbbammnopqrs ggffeeddNNOOPPQQ**++,,--CCBBAA@@rrssttuu,,--..//"! *++,,--.CBBAA@@?rssttuuv -gffeeddcNOOPPQQReffgghhi$%%&&''(-..//001@??>>==>==<>==<<;vwwxxyyz - cbbaa``_RSSTTUUV~~}}||{ijjkkllm())**++,12233445<;;::998yzz{{||} `__^^]]\UVVWWXXY]\\[[ZZYwxxyyzz{__^^]]\\VVWWXXYY22334455;;::9988zz{{||}}4455667723344556;::99887z{{||}}~_^^]]\\[VWWXXYYZ{zzyyxxwmssttuuv,--..//05667788987766554}~~\[[ZZYYXYZZ[[\\]YSSRRQQP{||}}~~[[ZZYYXXZZ[[\\]]~~}}||6677889977665544~~8899??@@~~}}||{6778899:76655443~[ZZYYXXWZ[[\\]]^wvvuuttsvwwxxyyz011223349::;;<<=43322110XWWVVUUT]^^__``a POONNMMLWWVVUUTT^^__``aa {{zzyyxx::;;<<==33221100AABBCCDD {zzyyxxw:;;<<==>3221100/WVVUUTTS^__``aab smmllkkjz{{||}}~45566778=>>??@@A0//..--,TSSRRQQPabbccdde - - LKKJJIIHSSRRQQPPbbccddee - - wwvvuutt>>??@@AA//..--,,EEFFGGHH - - wvvuutts>??@@AAB/..--,,+SRRQQPPObccddeef - - jiihhggf~899::;;>??@EFFGGHHI(''&&%%$!""##$$%LKKJJIIHijjkkllmDCCBBAA@""##$$%%KKJJIIHHjjkkllmmoonnmmllFFGGHHII''&&%%$$MMNNOOPPonnmmllkFGGHHIIJ'&&%%$$#"##$$%%&KJJIIHHGjkkllmmnbaa``__^@AABBCCDIJJKKLLM$##""!! %&&''(()HGGFFEEDmnnooppq @??99887&&''(())GGFFEEDDnnooppqqkkjjiihhJJKKLLMM##""!! QQRRSSYYkjjiihhgJKKLLMMN#""!! &''(())*GFFEEDDCnooppqqr^]]\\[[Z~~}DEEFFGGHMNNOOPPQ )**++,,-DCCBBAA@qrrssttu - - 76655443**++,,--CCBBAA@@rrssttuu ggffeeddNNOOPPQQZZ[[\\]] -gffeeddcNOOPPQQR*++,,--.CBBAA@@?rssttuuv -ZYYSSRRQ}||{{zzyHIIJJKKLQRRSSTTU-..//001@??>>==>==<>==<<;vwwxxyyz - QPPOONNMyxxwwvvuLMMNNOOPUVVWWXXY12233445<;;::998yzz{{||}/..--,,+22334455;;::9988zz{{||}}__^^]]\\VVWWXXYY~~}}||{{bbccddee_^^]]\\[VWWXXYYZ23344556;::99887z{{||}}~MLLKKJJIuttssrrqPQQRRSSTYZZ[[\\]~~}}|5667788987766554}~~+**))(('~~}}||6677889977665544~~[[ZZYYXXZZ[[\\]]zzyyxxwwffgghhii[ZZYYXXWZ[[\\]]^~~}}||{6778899:76655443~IHHGGFFEqppoonnmTUUVVWWX]^^__``a |{{zzyyx9::;;<<=43322110'&&%%{{zzyyxx::;;<<==33221100WWVVUUTT^^__``aa vvuuttssjjkkllmmWVVUUTTS^__``aab {zzyyxxw:;;<<==>3221100/EDDCCBBAmllkkjjiXYYZZ[[\abbccdde - - xwwvvuut=>>??@@A0//..--,%%&wwvvuutt>>??@@AA//..--,,SSRRQQPPbbccddee - - mmllkkjjssttuuvvSRRQQPPObccddeef - - wvvuutts>??@@AAB/..--,,+A@@??998ihhggffe\]]^^__`effgghhitssrrqqpABBCCDDE,++**))(&''(())*ssrrqqppBBCCDDEE++**))(( !!OONNMMLLffgghhiiiihhggffwwxxyyzz !!"ONNMMLLKfgghhiijsrrqqppoBCCDDEEF+**))((' !!"87766554eddccbba`aabbccdijjkkllmpoonnmmlEFFGGHHI(''&&%%$*++,,--.oonnmmllFFGGHHII''&&%%$$""##$$%%KKJJIIHHjjkkllmmeeddccbb{{||}}~~"##$$%%&KJJIIHHGjkkllmmnonnmmllkFGGHHIIJ'&&%%$$#"##$$%%&43322110a``__^^]deeffgghmnnooppqlkkjjiihIJJKKLLM$##""!! .//00112kkjjiihhJJKKLLMM##""!! &&''(())GGFFEEDDnnooppqqaa``__^^&''(())*GFFEEDDCnooppqqrkjjiihhgJKKLLMMN#""!! &''(())*0//..--,]\\[[ZZYhiijjkklqrrssttu hggffeedMNNOOPPQ 23344556 -ggffeeddNNOOPPQQ**++,,--CCBBAA@@rrssttuu ]]\\[[ZZ*++,,--.CBBAA@@?rssttuuv -gffeeddcNOOPPQQR*++,,--.,++**))(YXXWWVVUlmmnnoopuvvwwxxy - - dccbbaa`QRRSSTTU6778899? - ccbbaa``RRSSTTUU..//0011??>>==<>==<<;vwwxxyyz - cbbaa``_RSSTTUUV.//00112(''&&%%UTTSSRRQpqqrrsstyzz{{||} `__^^]]\UVVWWXXY?@@AABBC__^^]]\\VVWWXXYY22334455;;::9988zz{{||}}PPOONNMM23344556;::99887z{{||}}~_^^]]\\[VWWXXYYZ23344556QPPOONNMtuuvvwwx}~~\[[ZZYYXYZZ[[\\]~~}}|CDDEEFFG [[ZZYYXXZZ[[\\]]~~}}||6677889977665544~~LLKKJJII6778899:76655443~[ZZYYXXWZ[[\\]]^~~}}||{6778899:MLLKKJJIxyyzz{{|XWWVVUUT]^^__``a |{{zzyyxGHHIIJJK - - WWVVUUTT^^__``aa {{zzyyxx::;;<<==33221100HHGGFFEE:;;<<==>3221100/WVVUUTTS^__``aab {zzyyxxw:;;<<==>IHHGGFFE|}}~~TSSRRQQPabbccdde - - xwwvvuutKLLMMNNO SSRRQQPPbbccddee - - wwvvuutt>>??@@AA//..--,,DDCCBBAA>??@@AAB/..--,,+SRRQQPPObccddeef - - wvvuutts>??@@AABEDDCCBBAbdQZ|H~fHAbے`f~Zp˂Jltے`JX|ZdQfpvZp˂f`vXے`JX|ZdQrQJ`ےJlt`vXn|ZdQbfpvp˂rltbے`JXQ|ZdQbpvnQZ|ddrtA`vXn`JXQrHfvnXrXQJ`bnvpQr˂pbtlnXv`rbdQZ|nvpQr˂pbtl|bHAZpbdQZ|r˂ptlJnXv`XQJ`ےnvpr˂ptlJXv`prtAJlJltvpf˂pZv`fbHAfHˑZHAbJtArdf~HdrtfH~ˑZHAbZdQb˂rXdrtAZHAbtArdf~HbHAZfHfZHAbtArdvnrtbdbdQZ|H~fHAbے~HfpZp˂f`vXے`JX|ZdQfpvAJltf`vXے`JXnXv`pQJ`ےJltے`JXQ|ZdQbfpvp˂r`vXnے`JXQ|ZdQbXQJ`pQZ|ddrtA`vXn`JXQrvnXrXQJ`nvpQr˂pbtlnXv`bdQZ|nvpQr˂pvnXbHAZpbdQZ|r˂ptlJnXv`XQJ`ےvpfr˂ptlJ˂rXQrtAJlJltvpf˂p|v`fbHAfH~ˑZHAbJtArdf~HdrtfH~ˑZHAbv`f˂rQJdrtAZHAbtArdf~HbHAZH~fZHAbtArdJ`ےbQZ|bdQZ|H~fZdQbt~HfpZp˂f`vXے`JX|ZdQfpvAJltf`vXے`JX~HfpbHAJltے`JXQ|ZdQbfpvp˂r`vXnے`JXQ|ZdQbbHAZpdrtAdrtA`vXnlJtAvnv`rXQJ`nvpQr˂pbtlnXv`bdQZ|nvpQr˂pvnXZp˂bdQZ|r˂ptlJnXv`XQJ`ےvpfr˂ptlJ˂rXQJltJltvpfrd|f~HbHAfH~ˑZHAbJtArdfHdrtfH~ˑZHAbv`frXQJ`dtAJZHAbtArdf~HbHAZH~fZHAbtArdJ`ےbdQZ|bdQZ|H~fZdQbtfpvZp˂f`vXے`JX|ZdQfpvAJltf`vXے`JXnXےbHAltbے`JXQ|ZdQbfpvp˂r`vXnے`JXQ|ZdQbbHAXQJdrtAdrtA`vXnlJtAnXv`rbdQZ|nvpQr˂pbtlnrXQJ`bdQZ|nvpQr˂pv`fZp˂nvpr˂ptlJnXv`bdQZ|vpfr˂ptlJ`ےbJltvXnJltvpfrdtf~HdrtfH~ˑZHAbJtArdےHAdrtfH~ˑZHAb~HfprXQJfHfZHAbtArdf~HdrtAH~fZHAbtArdHAZp˂bQZdvpfHbdQZ|H~flJtArfpvAJltf`vXے`JX|ZdQZp˂AJltf`vXے`JXvnXbHAZp`vXnے`JXQ|ZdQbfpvJlt`vXnے`JXQ|ZdQbrXQJrtAJl~f`drtA`vXnd|ZnvfbdQZ|nvpQr˂pbtlrXQJ`ۉbdQZ|nvpQr˂pv`f󂀉rXQvpfr˂ptlJnXv`bdQZ|vpfr˂ptlJ`ےbtbdQvXnJltvpfdQbt~HfpہdrtfH~ˑZHAbJtArdbHAdrtfH~ˑZHAb~HXv`J`ےH~fZHAbtArdf~HdrtAH~fZHAbtArdHAZp`Z|dvpfHbdQZ|H~flJtArvnXAJltf`vXے`JX|ZdQZp˂AJltf`vXے`JXf~HbHAZp`vXnے`JXQ|ZdQbfpvJlt`vXnے`JXQ|ZdQbےbHArtAJl~f`drtA`vXnd|lv`fbdQZ|nvpQr˂pbtlrXQJ`ۉbdQZ|nvpQr˂pfpvrXQvpfr˂ptlJnXv`bdQZ|vpfr˂ptlJZp˂tbdQvXnJltvpfJtArd~HfpہdrtfH~ˑZHAbJtArdbHAdrtfH~ˑZHAۅnXv`J`bAZH~fZHAbtArdfHfdrtAH~fZHAbtArdrXQJ`Z|AJlvpfHbdQZ|H~f|ZdQvnXAJltf`vXے`JX|ZdQZp˂AJltf`vX`JXQf~Hp˂r`vXnے`JXQ|ZdQbpvnJlt`vXnے`JXQ|ZdQbےbHAtb~f`drtA`vXnbtlv`frbdQZ|nvpQr˂pbnXv`rXQJ`ۉbdQZ|nvprbtlfp`bdQZ|vpfr˂ptlJrXQJ`bdQZ|vpfr˂pnXv`Zp˂nvpvXnJltvpfJtArdQJHAdrtfH~ˑZHAbf~HbHAdrtfH~ˑ|ZdQf~HdrtAH~fZHAbtArdےHAZdrtAH~fZHAbpvnbHAZfHf`r˂pbdQZ|H~f|ZdQZp˂AJltf`vXے`JXfpvZp˂AJltf`vXbtlfpvJlt`vXnے`JXQ|ZdQbp˂rJlt`vXnے`JXQXv`fp˂rvXnZHAbdrtA`vXntArdrXQJ`ۉbdQZ|nvpQr˂pnXv`rXQJ`ۉbdQZ|nvpJtArdnXv`bdQZ|vpfr˂ptlJXQJ`ےbdQZ|vpfr˂p~HfXQJ`ےvpfH`JXQJltr˂p|ZdQbbHAdrtfH~ˑZHAbf~HbHAdrtfH~˂|ZdQf~HdrtAH~fZHAbtArdbHAZdrtAH~fZHAbpvnbHAZ~f`r˂pbdQZ|`JXQrtlJZp˂AJltf`vXے`JXfpvZp˂AJltf`vXbtlfpvJlt`vXnے`JXQ|ZdQbp˂rJlt`vXnے`JXQXv`fp˂rvXnZHAbdrtA˂pZtArdrXQJ`ۉbdQZ|nvpQr˂pnXv`rXQJ`ۉbdQZ|nvpJtArdt~HfpbdQZ|vpfr˂ptlJXQJ`ےbdQZ|vpfr˂pnXXQHAZpvpfH`JXQJltHAbے|ZdQbbHAdrtfH~ˑZHAۍf~HbHAdrtfH~ˉlJtvnXdrtAH~fZHAbtArdbHAZdrtAH~fZHAےv`f˂rXQ~f`r˂pbdQZ|`JXQrtd|Zp˂AJltf`vX`JXQfpvZp˂AJltf`vXArd|v`fJlt`vXnے`JXQ|ZdQbp˂rJlt`vXn`JXQr~HfpJ`ےvXnZHAbdrtA˂pZZdQbtrXQJ`ۉbdQZ|nvprbtlnXv`rXQJ`ۉbdQZ|nr˂pZdQbt~HfpbdQZ|vpfr˂pnXv`XQJ`ےbdQZ|vpfbtlvnXbHAZpvpfH`JXQJltHAXQrlJtAbHAdrtfH~ˑJtAdf~HbHAdrtZHAblJtvnXdrtAH~fZHAbf~HbHAZdrtAH~fJtAdv`f˂rXQ~f`r˂pbdQZ|˂pZHArd|Zp˂AJltf`vX|ZdQfpvZp˂AJltے`JXArd|v`pJlt`vXnے`JXQfpvp˂rJlt`vXn|ZdQb~HXvJ`p˂vXnZHAbdrtAbے`ZdQbtrXQJ`ۉbdQZ|nvpbtlnXv`rXQJ`ۉbdQZ|Qr˂plJtAvnrXbdQZ|vpfr˂pnXv`XQJ`ےbdQZ|vpftlJ`f~rbdQvpfH`JXQJltJXQrl|ZbHAdrtfH~JtArdf~HbHAdrtZHAbrd|QJ`AdrtAH~fZHAbf~HbHAZdrtAH~ftArdHfpvZ|rA~f`r˂pbdQZ|˂pZHAdQbnXZp˂AJltf`vX|ZdQfpvZp˂AJltے`JXZdQbtZp˂Jlt`vXnے`JXQfpvp˂rJlt`vXn|ZdQbnXvJltvXnZHAb`vXnb˂v`f~rXQJ`ۉbdQZ|nvpbtlnXv`rXQJ`ۉbdQZ|Qr˂plJtArXQJ`bdQZ|vpfr˂pnXv`XQJ`ےbdQZ|vpftlJ`f~bdQZ|vpfH`JXQvpfpZHAbfpv㒐bHAdrtfH~JtArdf~HbHAdtAZHAbrd|璐bHAdrtAH~fZHAےf~HbHAZdrtAH~ftArdHfp`drtA~f`r˂pH~fے`JnXv`Zp˂AJltf`vX|ZdQfpvZp˂Jltے`JXZdQtArdZp˂Jlt`vXn`JXQrfpvp˂rJlt`vXn|ZdQbf~HJltvXnZHAb`vXnXQr˂f~HrXQJ`ۉbdQZ|nr˂pbtlnXv`rXQJ`bnvpQr˂p|ZdrXQJ`bdQZ|vpfbtlnXv`XQJ`ےbdQZ|r˂ptlJfpvbdQZ|vpfH`JXQvpfpZHAbfpv㒐bHAdrtZHAbJtArdf~HbHAfHˑZHAbQbtlbHAZdrtAH~fJtAdf~HbHAZdrtAZHAbtArdnXv`drAJ~f`r˂pH~fے`pnXv`Zp˂AJltے`JX|ZdQfpvZp˂f`vXے`JXJtArdrXQJJlt`vXn|ZdQbfpvp˂rJltے`JXQ|ZdQbf~HtbdQZvXnZHAb`vXnZHAbf~fvrXQJ`ۉbdQZ|Qr˂pbtlnXv`rXQJ`nvpQr˂p|Zd`ےbbdQZ|vpftlJnXv`XQJ`ےbdQZ|r˂ptlJfpv|drvpfH`JXQvpfے`JXQnXvbHAdrtZHAbJtArdf~HbHAfH~ˑZHAbQbtdHAZp˂drtAH~ftArdf~HbHAZdrtAZHAbtArd~HftAJl璅~f`r˂pH~fr˂p`f~Zp˂AJltے`JX|ZdQfpvZp˂f`vXے`JX|ZdQrXQJJlt`vXn|ZdQbfpvp˂rJltے`JXQ|ZdQbpvntbdQZvXnZHAb`vXnZHAbHfpvrXQJ`ۉbdQZ|Qr˂pbtlnXv`rXQJ`nvpQr˂pbtl`ےbbdQZ|vpftlJnXv`XQJ`ےbdQZ|r˂ptlJXv`f|drvpfH`JXQvpfے`JXQnXvbHAdtAZHAbJtArdf~HbHAfH~ˑZHAbJtArdHAZpdrtAH~ftArdf~HbHAZdtAJZHAbtArd~HftAJbd~f`r˂pZHAbArd|bHAZpdrtA~f`ZHAے`f~HAZp˂~f`HAbےrd|HfpdrtAJ~f`HAbےrd|bHAZpJl|Abے`rd|~HfpbHAZp~f`Abے`rd|HfpۙrtAJl~f`JXQrf۝`v`JXQZdQb˂rXJltvXnJXQrfpv㉐bHAvXn`JXQrZdQbtvnrltbvXn`JXQrZdQbn˂rXQdrtAJJXQrZdQbtvnXrbdvXnہJXQrZdQbtvnrXtbdvXnۉ˂p`ZXnvˍr˂pnXv`QJ`ےbdQZ|vpfHbtlnXv`Zp˂vpfH˂pZlJtAXQJ`ےdQZ|vpfH˂pZXv`fJ`ےltb˂pZHlJtAv`fQZ|dvpfH˂pZHlJtAQJ`ےQZ|dvpfHQXb㉀pfH~ZHAbf~HbHAZpdrtA~f`JtAd|f~HrXQJ`ۅ~fvHAbےrd|HAZpdrtAJ~f`HAbے~HfbHAZpdQZ|AbJXQrd|~HfprtAJl~f`Abے`rd|HAZp˙rtAJl~f`ۑpJAHrf۝`v`JXQfpv˂rXJltvXnZdQbtfpv㒐bHAnvp`JXQrZdQbt˂rXQltbvXn`JXQrpvn˂rXQdrtAJr˂pZdQbtvnXtbdvXnہJXQrZdQbt炀rXQtbdvXn󙐂ˁ`ZXnvˍr˂pnXv`QJ`ےbdQZ|vpfHlJtnXv`Zp˂fH~˂pZlJtAJ`ےdQZ|vpfH˂pZXv`fJ`ےltdZHAblJtAv`fQZ|dvpfH˂pZHlJtAJ`ےQZ|dvpfHQXb㉀pfH~ZHAbf~HbHAZpdrtA~f`Ard|f~HrXQHAZpf`vXHAbےrd|bHAZpdrtAJ~f`HAbے~HfbHAZprtAJlے`JXQrd|~HfprtAJl~f`Abے`rd|bHAZp˙rtAJl~f`ۑpJAHrf۝`v`JXQfpv˂rXJltvXnZdQbtfpv˂rXnvp`JXQrZdQbt˂rXQltbvXn`JXQrpvn˂rXQtbdQr˂pZdQbtvnXtbdvXnہJXQrZdQbt炀rXQtbdvXn󙐉ۑXnvˍr˂pnXv`QJ`ےbdQZ|vpfHlJtnXv`QJ`ےfH~˂pZlJtAJ`ےdQZ|vpfH˂pZXv`fJ`ےZ|dZHAblJtAv`fQZ|dvpfH˂pZHlJtAJ`ےQZ|dvpfHpJAHrpfH~ZHAے`f~HbHAZpdrtA~f`Ard|f~HbHAZpf`vnHAbےrd|bHAZpdrtAJ~f`HAے`~HfbHAZprtAJlJQrrd|HfpۙrtAJl~f`Abے`rd|bHAZp˙rtAJl~f`ˁ`ZQf۝`vJXQrfpv˂rXJltvXnZdQbtfpv˂rXvpfH`JXQrZdQbn˂rXQltbvXnJXQrbpvn˂rXQtbdQpZHAZdQbtvnrXtbdvXnہJXQrZdQbnXrXQtbdvXnXb㉀ۑXnvˍbtlnXv`QJ`ےbdQZ|r˂plJtnXv`QJ`p~f`˂pZXv`fJ`ےdQZ|vpfHtlJXv`fJ`ےZ|lbے`lJtAQJ`ےQZ|dvpfH˂pZHv`fJ`ےQZ|dvpfHpJAHrpfH~JtAd|f~HbHAZpdrtAZHAbArd|f~HrbdvXnHAbے~HfbHAZpdrtAJ~f`tAd|~HfbHAZptbnJXQrrd|HAZp˙rtAJl~f`Abے`~HfpbHAZp˙rtAJl~f`ˁ`pJf۝`vZdQbtfpv˂rXJlt`JXQZdQbtfpvQZ|lvpfH`JXQrpvn˂rXQltbvXnZdQbtpvn˂rXQvp`vpZHAZdQbt炀rXQtbdvXnہJXQrvnXrXQtbdvXnAHr󙐂XnvˍlJtnXv`QJ`ےbdQZ|r˂plJtnXv`˒tbdQ~f`˂pZXv`fJ`ےdQZ|vpfHlJtAXv`fJ`ےXnvbے`JlJtAJ`ےQZ|dvpfH˂pZHv`fJ`ےQZ|dvpfHˁ`ZQXbp|drArd|f~HbHAZpdrtAZHAbArd|f~HZ|dvXnvfHAbے~HfbHAZpdrtAJ~f`rd|~HfbHAZppfH~QrpZrd|bHAZp˙rtAJl~f`Abے`~HfpbHAZp˙rtAJl~f`㉀ۑpJQtJlZdQbtfpv˂rXJlt`JXQZdQbtfpvrtAJlH~f`JXQrpvn˂rXQltbvXnZdQbtpvn˂rXQf`vHAbےZdQbt炀rXQtbdvXnہJXQrvnXrXQtbdvXnAHr󙐂tbAdZlJtnXv`QJ`ےbdQZ|r˂plJtnXv`˒tbdQ`vXn˂pZXv`fJ`ےdQZ|vpfHlJtAXv`fJ`ےXnv`JXQrlJtAJ`ےQZ|dvpfH˂pZHv`fJ`ےQZ|dvpfHˁ`ZQXA|drArd|f~HbHAZpdtAJlZHAbArd|f~HZ|dtvpfHAے`~HfbHAZpdrtAJ~f`rd|~HfbHAZppfH~˂pZrd|bHAZp˙rtAJl~f`Aے`~HfpbHAZp˙rtAJl~f`Hr󙐂ˁQtJlZdQbtfpv˂rXtb`JXQZdQbtfpvbdQZ|H~fJXQrbpvn˂rXQltbvXnrZdQbtpvn˂rXQvpHAbےZdQbnXrXQtbdvXnJXQrbtvnXrXQtbdvXnے``ZQXbtbAdZlJtnXv`QJ`ےnvpr˂plJtnXv`ˁdrt`vXntlJXv`fJ`ےdQZ|˂pZlJtAXv`fJ`ےfH~`JXQrv`fJ`ےQZ|dvpfHlJtv`fJ`ےQZ|dJXQrۑpJA|drArd|f~HbHAZpfHf`ZHAbArd|f~HAJltvf~tAd|~HfbHAZpdrtAJHAbےrd|~HfbHAZpf`vXZHAb~HfpbHAZp˙rtAJl~f`Ad|~HfpbHAZp˙rtAJl˂pZHHr󙐂ˁQtJlZdQbtfpv˂rXvXn`JXQZdQbtfpvbdQZ|f`vXZdQbtpvn˂rXQltb`JXQrZdQbtpvn˂rXQnvpے`JXvnXrXQtbdvXnZdQbtvnXrXQtbdAbے``ZQXbtbAdZlJtnXv`QJ`ےvpfHr˂plJtnXv`ˁdrtnvplJtAXv`fJ`ےdQZ|˂pZlJtAXv`fJ`ےfH~Qr˂pv`fJ`ےQZ|dvpfHlJtAv`fJ`ےQZ|dJXQrˁ`Z|drArd|f~HbHAZp~f`ZHAbArd|f~HAdQZ|fH~rd|~HfbHAZpdrtAJHAbےrd|~HfbHAZpf`pfZHAb~HfpbHAZp˙rtAJl~f`rd|~HfpbHAZp˙rtAJl˂pZHQXb㉀QtJlZdQbtfpv˂rXvXn`JXQZdQbtfpvdrtAf`vXZdQbtpvn˂rXQltb`JXQrZdQbtpvn˂rXQH~fے`JXvnXrXQtbdvXnZdQbtvnXrXQtbdAXQrۑpJAHrtbAdZlJtnXv`QJ`ےvpfHr˂plJtnXv`JltnvplJtAXv`fJ`ےdQZ|˂pZlJtAXv`fJ`ے`vXnQr˂pv`fJ`ےQZ|dvpfHlJtAv`fJ`ےQZ|dpZHA󙐂ˁ`Z|drArd|f~HbHAZp~f`ZHAbArd|fHfpbdQZ|f~f`rd|~HfbHAZpdtAJlHAbےrd|~HfbHAZpvpfZA`~HfpbHAZp˙rtAJl~f`rd|~HfpbHAZp˙tAJlbے`QXb㉀QtJlZdQbtfpv˂rvXn`JXQZdQbtvndrtAvXnrZdQbtpvn˂rXQtbn`JXQrZdQbtpvn˂rbH~fJXQrbtvnXrXQtbdvXnrZdQbtvnXrXQtbnJXQrXnvˍtbAdZlJtnXv`bdQZ|vpfHr˂plJtrXQJ`pJl|d˂pZlJtAXv`fJ`ےvpf˂pZlJtAXv`fdQZ|l`vXHlJtv`fJ`ےQZ|d˂pZHlJtAv`fJ`ےvpfHpZHApfH~|drArd|f~HdrtA~f`ZHAbArd|˂rXrtAJlHAbےrd|~HfbHAZpHf`HAbےrd|~HftbdQ~f`Ad|~HfpbHAZp˙rtAJlAbے`rd|~HfpbHAZp˅f`b˂pf۝`vQtJlZdQbtfpvJltvXn`JXQZdQbtQJ`ےtbd`JXQrZdQbtpvn˂rXQvXn`JXQrZdQbtpvnZ|dvXnZdQbtvnXrXQtbdJXQrZdQbtvnXrXQvXnۑZHAbXnvˍtbAdZlJtnXv`bdQZ|vpfHr˂plJtbHAZpQZ|d˂pZlJtAXv`fJ`ےvpfH˂pZlJtAXv`frtAJlvpfHlJtAv`fJ`ےQZ|d˂pZHlJtAv`fJ`ےvpfHے`JXpfH~|drArd|f~HdrtA~f`ZHAbArd|˂rXrtAJlHAbےrd|~HfbHAZp~f`HAbےrd|~HftbdQ~f`rd|~HfpbHAZp˙rtAJlAbے`rd|~HfpbHAZp~f`Qr˂pf۝`vQtJlZdQbtfpvJltvXn`JXQZdQbtQJ`ےtd`JXQrZdQbtpvn˂rXQvXn`JXQrZdQbtpvnZ|dvXnZdQbtvnXrXQtbdJXQrZdQbtvnXrXQvXnۑZHAbXnvˍtbAdZlJtnXv`bdQZ|vpfHr˂plJtbHAXQrtAJl瀉˂pZlJtAXv`fJ`ےvpfH˂pZlJtAXv`ftbdQZf`vlJtAv`fJ`ےQZ|d˂pZHlJtAv`fJ`ےvpfHے`ppfH~|drArd|fHfpdrtA~f`ZHAbArd|J`ےtbdQHAbےrd|~HfbHAZp~f`HAbےrd|Hfp|drXnvrd|~HfpbHAZp˙tAJlAbے`rd|~HfpbHAZp~f`ZHAbېf۝`vQtJlZdQbtvnJltvXn`JXQZdQbbHAZpZ|d`JXQrZdQbtpvn˂rbvXn`JXQrZdQbtvnrtAJlpfH~ZdQbtvnXrXQtbnJXQrZdQbtvnXrbdvXnے`JXQXnvˍtbAdZlJtrXQJ`bdQZ|vpfHr˂pnXv`˂rXQrtAJl瀉˂pZlJtAXv`fdQZ|vpfH˂pZlJtAXQJ`ےtbdQZf`vlJtAv`fJ`ےvpfH˂pZHlJtAv`fQZ|dvpfHr˂ppfH~|drArd|HAZpdrtA~f`ZHAbf~HJ`ےtbdQHAbےrd|~HfdrtAJ~f`HAbےrd|HAZp|drXnvrd|~HfpbHAZp˅f`Abے`rd|~HfprtAJl~f`ZHAbېf۝`vQtJlZdQbt˂rXJltvXn`JXQfpvbHAZp`Z|lt`JXQrZdQbtpvnltbvXn`JXQrZdQbt˂rXQtAdQZ|p`vXZdQbtvnXrXQvXnہJXQrZdQbtvnXtbdvXnے`JXQHXnvˍtbAdZlJtQJ`ےbdQZ|vpfHr˂pnXv`ˁےbHbnۀ˂pZlJtAXv`fdQZ|vpfH˂pZlJtAJ`ےdrtAnr˂lJtAv`fJ`ےvpfH˂pZHlJtAv`fQZ|dvpfHAbے`pfH~|drArd|bHAZpdrtA~f`ZHAbf~HAZp˂vpff`HAbےrd|~HfdrtAJ~f`HAbےrd|bHAZpJltpZAb`rd|~HfpbHAZp~f`Abے`rd|~HfprtAJl~f`JXQrf۝`vQtJlZdQbt˂rXJltvXn`JXQfpvrXQJ`vXn`JXQrZdQbtpvnltbvXn`JXQrZdQbt˂rXQbdQZ|JXQrZdQbtvnXrXQvXnہJXQrZdQbtvnXtbdvXnۉ˂pZHXnvˍtbAdZlJtQJ`ےbdQZ|vpfHr˂pnXv`ˁےbHvpfH˂pZlJtAXv`fdQZ|vpfH˂pZlJtAJ`ےdrtA˂pZHlJtAv`fJ`ےvpfH˂pZHlJtAv`fQZ|dvpfHAbے`pfH~|drQt666666666677777777777777777777777777777777777 \ No newline at end of file diff --git a/vendor/endroid/qr-code/assets/data/qrv33_0.dat b/vendor/endroid/qr-code/assets/data/qrv33_0.dat deleted file mode 100755 index 42ea5d54f..000000000 --- a/vendor/endroid/qr-code/assets/data/qrv33_0.dat +++ /dev/null @@ -1,297 +0,0 @@ -}~}~}~}~{|{|{|{|{zyzyzyzyzyzyzyzwxwxwxwxuvuvuvuvstststsrpopopoponmnmnmnmlklklklkjijijijihghghghghghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUSTSTSTSTQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<}~}~}~}~{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxuvuvuvuvqrqrqrqrpopopoponmnmnmnmlklklklkjijijijihghghghghghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUSTSTSTSTQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<}~}~}~}~{|{|{|{|yzyzyzyzyxwxwxwxwxwxwxwxuvuvuvuvqrqrqrqrpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefefefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUSTSSSSSTQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxwxwxwxwxuvuvuvuvqrqrqrqrooooopopnmnmnmnmlklklklkjijijijihghghghgfefefefefefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUSTSTSTSRQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxwvuvuvuvuvuvuvuvqrqrqrqropopopopnmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcdcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUQRQRQRQRQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvuvuvuvuvqrqrqrqropopopopnmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcdcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUTSTSQRQRQRQRQRQRQRQPOPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvutstststqrqrqrqropopopopnmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababababababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWTSTSSSSSQRQRQRQROPOPOPOPOPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqropopopopnmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababababababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWSTSTSTSTQRQRQRQROPOPOPOPOPOPOPONMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqropopopopnmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWSTSTSTSTQRQRQRQROPOPOPOPMNMNMNMNMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqropoooooonmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWSTSTSTSTQRQRQRQROPOPOPOPMNMNMNMNMNMNMNMLKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqrpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWVUSTSTSTSTQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqrpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[ZYZYZYZYVUVUVUVUSTSTSTSTQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLKLKLKLKJIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqrpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYVUVUVUVUSTSTSTSSQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqrpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYVUVUVUVUSSSSTSTSQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJIJIJIJIHGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqrpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYZYZYZYZYVUVUVUVUTSTSTSTSQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqrpopopooonmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYZYZYZYZYVUVUVUVUTSTSTSTSQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHGHGHGHGFEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqrooopopopnmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqropopopopnmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFEFEFEFEDCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqropopopopnmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqropopopopnmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSSSSSSTQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDCDCDCDCBABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqropopopopnmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUSTSTSTSTQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABABABABABAB?@?@?@?@=>=>=>=>;<;<;:9:9:9:9:9:}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqropopopopnmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUSTSTSTSTQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABABABABABA@?@?@?@?@=>=>=>=>9:9:9:9:9:9:9:9:}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqrooooooponmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUSTSTSTSTQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@?@?@?@?@=>=>=>=>9:9:9:9:9:9:9:9:}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqrpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUSTSTSTSTQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@?@?@?@?>=>=>=>=>9:9:9:9:9:9:9:9:}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqrpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUSTSTSTSTQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>=>=>=>=>9:9:9:9:9:9:9:9:}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqrpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUSTSTSSSSQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>=>=>=>=<9:9:9:9:9:9:9:9:}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqrpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUSSTSTSTSQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:9:9:9:9:}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqrpopooooonmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:9:9:9:9:}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqrpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:9:9:9:9:}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqrqrnmnmnmnmnmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:9:987878}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststqrqrqpopnmnmnmnmnmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:78777777~}~}~}~}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststopopoooonmnmnmnmlklklklklklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:87878787}~}~}~}~}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststoopopoponmnmnmnmlklklklklklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUSSSSSTSTQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:87878787}~}~}~}~}|{|{|{|{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststpopopoponmnmnmnmlklklklkjijijijijijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUSTSTSTSTQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:87878787}~}~}~}~{|{|{|{|{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststpopopoponmnmnmnmlklklklkjijijijijijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUSTSTSTSTQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<9:9:9:9:87878787878787876565656543434343212121210/0/0/0/0/0/0/.-.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -878787776565656543434343212121210/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -777878786565656543434343212121210/0/0/0/.-.-.-.-.-.-.-,+,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -787878786565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -787878786565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+,+,+,+*)*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -787878786565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -787878786565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)*)*)*)('('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -787878786565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -777777876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('('('('&%&%&%&%&%$#$#$#$#"!"!"!"!         - - - -878787876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%&%&%&%&%$#$#$#$#"!"!"!"!       - - - -878787876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%&%&%&%$#$#$#$#$#"!"!"!"!     - - - -878787876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!     - - - -878787876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#$#$#$#"!"!"!"!"!     - - - -878787876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!"!"!"!"!     - - - -878777776565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!"!"!"!       - - - -787878786565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!             - - - -787878786565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!           - - - -787878786565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -787878786565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - - - -787878786565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - - - - - -787878776565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - - - - 777787876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -878787876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -878787876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -878787876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -878787876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -877777876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -878787656565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -656565656565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -656565656565654343434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -656565654343434343434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -656565654343434343434321212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -656565654343434321212121212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -6565656543434343212121212121210/0/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -6565656543434343212121210/0/0/0/0/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - - - - ''(())**]]\\[[ZZ@AABBCCD]\\[[ZZY01122334mllkkjji !!""##$}||{{zzy |}}~~~~}} - - uuvvwwxx((''&&%%eeffgghh88776655UUVVWWXX44332211zz{{||}}}~~ mnnooppq0//..--,]^^__``a@??>>==>??@@A`__^^]]\-..//001feeddccb ++,,--..YYXWVUTSDEEFFGGHYXXWWVVU45566778ihhggffe$%%&&''(yxxwwvvu - -  ||{{zzyy ~~}} yyzz{{||$$##""!!iijjkkll44332211YYZZ[[\\00//..--~~ -qrrssttu,++**))(abbccdde<;;::998QRRSSTTULKKJJIIHABBCCDDE\[[ZZYYX12233445baa``__^//001122SRRQQPPOHIIJJKKLUTTSSRRQ899::;;>??@a``__^^],--..//0qppoonnm ~~}  tsrqpoon%%&&''((xxwwvvuu - - qqrrsstt,,++**))aabbccdd((''&&%%yzz{{||}$##""!! ijjkkllm43322110YZZ[[\\]DCCBBAA@IJJKKLLMTSSRRQQP9::;;<<=ZYYSSRRQ~~}}||77==>>??KJJIIHHGPQQRRSSTMLLKKJJI@AABBCCD]\\[[ZZY01122334mllkkjji !!""##$}||{{zzynmmllkkj))**++,,ttssrrqq - - uuvvwwxx((''&&%%eeffgghh$$##""!! }~~ mnnooppq0//..--,]^^__``a@??>>==>??@@AQPPOONNM~~}} {{zzyyxx@@AABBCCGFFEEDDCTUUVVWWXIHHGGFFEDEEFFGGHYXXWWVVU45566778ihhggffe$%%&&''(yxxwwvvujiihhggf--..//00ppoonnmm ~~}} yyzz{{||$$##""!!iijjkkll - - qrrssttu,++**))(abbccdde<;;::998QRRSSTTULKKJJIIHABBCCDDEMLLKKJJI||{{zzyy!!""##$$wwvvuuooDDEEFFGGCBBAA@@?XYYZZ[[\EDDCCBBAHIIJJKKLUTTSSRRQ899::;;>==<;:\]]^^__`A@@??>>=LMMNNOOPQPPOONNM<==>>??@a``__^^],--..//0qppoonnm ~~} "##$$%%&baa``__^55667788hhggffee%%&&''((xxwwvvuu - - qqrrsstt yzz{{||}$##""!! ijjkkllm43322110YZZ[[\\]DCCBBAA@IJJKKLLMEDDCCBBAttssrrqq))**++,,jjiihhggLLMMNNOO98776655`aabbccd=<<;;::9PQQRRSSTMLLKKJJI@AABBCCD]\\[[ZZY01122334mllkkjji !!""##$}||{{zzy&''(())*^]]\\[[Z99::;;<>==>=ppoonnmm--..//00ffeeddccPPQQRRSS44332211deeffggh98877665TUUVVWWXIHHGGFFEDEEFFGGHYXXWWVVU45566778ihhggffe$%%&&''(yxxwwvvu*++,,--.ZYYXWVUT==>>??@@``__^^]]--..//00ppoonnmm ~~}} yyzz{{|| - -  - - qrrssttu,++**))(abbccdde<;;::998QRRSSTTU=7766554llkkjjii11223344bbaa``__YYZZ[[\\00//..--hiijjkkl54433221XYYZZ[[\EDDCCBBAHIIJJKKLUTTSSRRQ899::;;>=LMMNNOOPQPPOONNM<==>>??@a``__^^],--..//0qppoonnm |{{zzyyx23344556OONNMMLLEEFFGGHHXXWWVVUU55667788hhggffee%%&&''((xxwwvvuu - -  |{{zzyyx !~~}}| yzz{{||}$##""!! ijjkkllm43322110YZZ[[\\]0//..--,ddccbbaa99::;;<>?KKJJIIHHIIJJKKLLTTSSRRQQ99::;;<>??@@QQPPOONNeeffgghh$$##""!!tuuvvwwx)((''&&%deeffggh98877665TUUVVWWXIHHGGFFEDEEFFGGHYXXWWVVU45566778ihhggffe$%%&&''(onnmmllk?@@AABBCGGFFEEDDMMNNOOPPPPOONNMM==>>??@@``__^^]]--..//00ppoonnmm ~~}} srqpoonn%&&''(()xwwvvuut - - qrrssttu,++**))(abbccdde(''&&%%$\\[[ZZYYAABBCCDDMMLLKKJJiijjkkll xyyzz{{|%$$##""!hiijjkkl54433221XYYZZ[[\EDDCCBBAHIIJJKKLUTTSSRRQ899::;;>=LMMNNOOPQPPOONNM<==>>??@a``__^^],--..//0gffeeddcGHHIIJJK??>>==<;UUVVWWXXHHGGFFEEEEFFGGHHXXWWVVUU55667788hhggffee%%&&''((xxwwvvuuiihhggff-..//001poonnmml !~~}}| yzz{{||}$##""!! ijjkkllmLMMNNOOPTTSSRRQQIIJJKKLLEEDDCCBBvvwwxxyypqqrrsst-,,++**)`aabbccd=<<;;::9PQQRRSSTMLLKKJJI@AABBCCD]\\[[ZZY01122334cbbaa``_KLLMMNNO:9877665YYZZ[[\\DDCCBBAAIIJJKKLLTTSSRRQQ99::;;<>zz{{||}}tuuvvwwx)((''&&%deeffggh98877665TUUVVWWXIHHGGFFEDEEFFGGHYXXWWVVU45566778_^^]]\\[OPPQQRRS54433221]]^^__``@@??>>==MMNNOOPPPPOONNMM==>>??@@``__^^]]--..//00ppoonnmm ~~}} ##$$%%&&aa``__^^56677889hggffeed%&&''(()xwwvvuut - - qrrssttuYZZ[[\\]LLKKJJIIQQRRSSTT==776655~~ -xyyzz{{|%$$##""!hiijjkkl54433221XYYZZ[[\EDDCCBBAHIIJJKKLUTTSSRRQ899::;;<[ZZYYSSRSYYZZ[[\100//..-aabbccdd<<;;::99QQRRSSTTLLKKJJIIAABBCCDD\\[[ZZYY11223344llkkjjii!!""##$$||{{zzyy''(())**]]\\[[ZZ9::;;<<=dccbbaa`)**++,,-tssrrqqp - - uvvwwxxy ]^^__``aHHGGFFEEUUVVWWXX44332211 -  |}}~~! lmmnnoop100//..-\]]^^__`A@@??>>=LMMNNOOPQPPOONNM<==>>??@RQQPPOON\]]^^__`-,,++**)eeffgghh88776655UUVVWWXXHHGGFFEEEEFFGGHHXXWWVVUU55667788hhggffee%%&&''((xxwwvvuu++,,--..YYXWVUTS=>>??@@A`__^^]]\-..//001poonnmml !~~}}| yzz{{||} - - abbccddeDDCCBBAAYYZZ[[\\00//..-- - - pqqrrsst-,,++**)`aabbccd=<<;;::9PQQRRSSTMLLKKJJI@AABBCCDNMMLLKKJ`aabbccd)((''&&%iijjkkll44332211YYZZ[[\\DDCCBBAAIIJJKKLLTTSSRRQQ99::;;<>==]]^^__``,,++**)) - - tuuvvwwx)((''&&%deeffggh98877665TUUVVWWXIHHGGFFEDEEFFGGHJIIHHGGFdeeffggh%$$##""!mmnnoopp00//..--]]^^__``@@??>>==MMNNOOPPPPOONNMM==>>??@@``__^^]]--..//00ppoonnmm {{zzyyxx33445566ONNMMLLKEFFGGHHIXWWVVUUT56677889hggffeed%&&''(()xwwvvuut - -  -ijjkkllm<<;;::99aabbccdd((''&&%% xyyzz{{|%$$##""!hiijjkkl54433221XYYZZ[[\EDDCCBBAHIIJJKKLFEEDDCCBhiijjkkl! qqrrsstt,,++**))aabbccdd<<;;::99QQRRSSTTLLKKJJIIAABBCCDD\\[[ZZYY11223344llkkjjii!!""##$$wwvvuuoo77==>>??KJJIIHHGIJJKKLLMTSSRRQQP9::;;<<=dccbbaa`)**++,,-tssrrqqp - -  - mnnoouuv88776655eeffgghh$$##""!! |}}~~! lmmnnoop100//..-\]]^^__`A@@??>>=LMMNNOOPBAA@@??>lmmnnoouuuvvwwxx((''&&%%eeffgghh88776655UUVVWWXXHHGGFFEEEEFFGGHHXXWWVVUU55667788hhggffee%%&&''((nnmmllkk@@AABBCCGFFEEDDCMNNOOPPQPOONNMML=>>??@@A`__^^]]\-..//001poonnmml !~~}}| vwwxxyyz44332211iijjkkll - - pqqrrsst-,,++**)`aabbccd=<<;;::9PQQRRSST>==77665uvvwwxxyyyzz{{||$$##""!!iijjkkll44332211YYZZ[[\\DDCCBBAAIIJJKKLLTTSSRRQQ99::;;<>==MMNNOOPPPPOONNMM==>>??@@``__^^]]--..//00ffeeddccHHIIJJKK?>>==<;:UVVWWXXYHGGFFEEDEFFGGHHIXWWVVUUT56677889hggffeed%&&''(()xwwvvuut ~,,++**))qqrrsstt ~~} xyyzz{{|%$$##""!hiijjkkl54433221XYYZZ[[\100//..-}~~ qqrrsstt,,++**))aabbccdd<<;;::99QQRRSSTTLLKKJJIIAABBCCDD\\[[ZZYY11223344bbaa``__LLMMNNOO98776655YZZ[[\\]DCCBBAA@IJJKKLLMTSSRRQQP9::;;<<=dccbbaa`)**++,,-tssrrqqp - - !!""#((''&&%%uuvvwwxx ~~}}| !!""##$}||{{zzy |}}~~! lmmnnoop100//..-\]]^^__`-,,++**) - - uuvvwwxx((''&&%%eeffgghh88776655UUVVWWXXHHGGFFEEEEFFGGHHXXWWVVUU55667788^^]]\\[[PPQQRRSS44332211]^^__``a@??>>==>??@@A`__^^]]\-..//001poonnmml !~~}}| #$$%%&&'$$##""!!yyzz{{|| - - |{{zzyyx$%%&&''(yxxwwvvu - - pqqrrsst-,,++**)`aabbccd)((''&&%yyzz{{||$$##""!!iijjkkll44332211YYZZ[[\\DDCCBBAAIIJJKKLLTTSSRRQQ99::;;<>==MMNNOOPPPPOONNMM==>>??@@QQPPOONN]]^^__``,,++**))effgghhi87766554UVVWWXXYHGGFFEEDEFFGGHHIXWWVVUUT56677889hggffeed%&&''(()xwwvvuut+,,--../srqpoonn,--..//0qppoonnm ~~} xyyzz{{|%$$##""!hiijjkkl! - - qqrrsstt,,++**))aabbccdd<<;;::99QQRRSSTTLLKKJJIIAABBCCDDMMLLKKJJaabbccdd((''&&%%ijjkkllm43322110YZZ[[\\]DCCBBAA@IJJKKLLMTSSRRQQP9::;;<<=dccbbaa`)**++,,-tssrrqqp~~}}||{/0011223mmllkkjj01122334mllkkjji !!""##$}||{{zzy |}}~~! lmmnnoop - - uuvvwwxx((''&&%%eeffgghh88776655UUVVWWXXHHGGFFEEEEFFGGHHIIHHGGFFeeffgghh$$##""!!mnnooppq0//..--,]^^__``a@??>>==>??@@A`__^^]]\-..//001poonnmml !{zzyyxxw34455667iihhggff45566778ihhggffe$%%&&''(yxxwwvvu - - pqqrrsst yyzz{{||$$##""!!iijjkkll44332211YYZZ[[\\DDCCBBAAIIJJKKLLEEDDCCBBiijjkkll qrrssttu,++**))(abbccdde<;;::998QRRSSTTULKKJJIIHABBCCDDE\[[ZZYYX12233445lkkjjiih!""##$$%wvvuuoon7==>>??@ !!""eeddccbb899::;;>==MMNNOOPPAA@@??>>mmnnoouuuvvwwxxy(''&&%%$effgghhi87766554UVVWWXXYHGGFFEEDEFFGGHHIXWWVVUUT56677889hggffeed%&&''(()nmmllkkj@AABBCCD - - ##$$%%&&aa``__^^<==>>??@a``__^^],--..//0qppoonnm ~~} xyyzz{{| - -  - - qqrrsstt,,++**))aabbccdd<<;;::99QQRRSSTT==776655vvwwxxyyyzz{{||}$##""!! ijjkkllm43322110YZZ[[\\]DCCBBAA@IJJKKLLMTSSRRQQP9::;;<<=dccbbaa`)**++,,-jiihhggfDEEFFGGH~~}}||{{zzyyxx !!~~}}||zz{{||}}##""!! jjkkllmm33221100ZZ[[\\]]//..--,, - - rssttuuv+**))(('bccddeef;::99887RSSTTUUVKJJIIHHGBCCDDEEFIHHGGFFEmnnoouuvwwvvuuts""##$$%%{{zzyyxx ~~nnooppqq//..--,,^^__``aa++**))(( vwwxxyyz'&&%%$$#fgghhiij76655443VWWXXYYZGFFEEDDCFGGHHIIJEDDCCBBAvwwxxyyz rqpoonnm&&''(())wwvvuutt - - rrssttuu++**))((bbccddee''&&%%$$z{{||}}~#""!! jkkllmmn3221100/Z[[\\]]^CBBAA@@?JKKLLMMNA@@??>>=z{{||}}~ - - mllkkjji**++,,--ssrrqqpp - - vvwwxxyy''&&%%$$ffgghhii##""!! ~nooppqqr/..--,,+^__``aab?>>==<<;NOOPPQQR=7766554~ - - ihhggffe..//0011oonnmmll !!~~}}||zz{{||}}##""!! jjkkllmm - - - rssttuuv+**))(('bccddeef;::99887RSSTTUUV43322110 eddccbba22334455kkjjiihh""##$$%%{{zzyyxx ~~nnooppqq - vwwxxyyz'&&%%$$#fgghhiij76655443VWWXXYYZ0//..--,a``__^^]66778899ggffeedd&&''(())wwvvuutt - - rrssttuuz{{||}}~#""!! jkkllmmn3221100/Z[[\\]]^,++**))(]\\[[ZZY::;;<<==ccbbaa``**++,,--ssrrqqpp - - vvwwxxyy  ~nooppqqr/..--,,+^__``aab(''&&%%$YXWVUTSS>>??@@AA__^^]]\\..//0011oonnmmll !!~~}}||zz{{||}} - -  - - - rssttuuv+**))(('bccddeef$##""!!~~} RRQQPPOOBBCCDDEE[[ZZYYXX22334455kkjjiihh""##$$%%{{zzyyxx ~~~~}}||{ - vwwxxyyz'&&%%$$#fgghhiij}||{{zzy !!""##$NNMMLLKKFFGGHHIIWWVVUUTT66778899ggffeedd&&''(())wwvvuutt - -  - -{zzyyxxw !!"~~}}||{z{{||}}~#""!! jkkllmmnyxxwwvvu$%%&&''(JJIIHHGGJJKKLLMMSSRRQQPP::;;<<==ccbbaa``**++,,--ssrrqqpp - -  wvvuutsr"##$$%%&{zzyyxxw ~nooppqqruttssrrq())**++,FFEEDDCCNNOOPPQQOONNMMLL>>??@@AA__^^]]\\..//0011oonnmmll !!~~}}||qpoonnmm&''(())*wvvuutts - - - rssttuuv qppoonnm,--..//0BBAA@@??RRSSTTUUKKJJIIHHBBCCDDEE[[ZZYYXX22334455kkjjiihh""##$$%%{{zzyyxxllkkjjii*++,,--.srrqqppo - vwwxxyyz - - -mllkkjji01122334>>==<;:9VVWWXXYYGGFFEEDDFFGGHHIIWWVVUUTT66778899ggffeedd&&''(())wwvvuutt hhggffee.//00112onnmmllk !!"~~}}||{z{{||}}~ - ihhggffe4556677887766554ZZ[[\\]]CCBBAA@@JJKKLLMMSSRRQQPP::;;<<==ccbbaa``**++,,--ssrrqqpp - - !!""##ddccbbaa23344556kjjiihhg"##$$%%&{zzyyxxw ~eddccbba899::;;<43322110^^__``aa??>>==<>??@@AA__^^]]\\..//0011oonnmmll !!~~}}||$$%%&&''``__^^]]6778899:gffeeddc&''(())*wvvuutts - - - a``__^^]<==>>??@0//..--,bbccddee;;::9988RRSSTTUUKKJJIIHHBBCCDDEE[[ZZYYXX22334455kkjjiihh""##$$%%{{zzyyxx(())**++\\[[ZZYY:;;<<==>cbbaa``_*++,,--.srrqqppo - ]\\[[ZZY@AABBCCD,++**))(ffgghhii77665544VVWWXXYYGGFFEEDDFFGGHHIIWWVVUUTT66778899ggffeedd&&''(())wwvvuutt,,--..//XWVUTSSR>??@@AAB_^^]]\\[.//00112onnmmllk !!"~~}}||{!!""#YXXWWVVUDEEFFGGH(''&&%%$jjkkllmm33221100ZZ[[\\]]CCBBAA@@JJKKLLMMSSRRQQPP::;;<<==ccbbaa``**++,,--ssrrqqpp~~}}||{{00112233RQQPPOONBCCDDEEF[ZZYYXXW23344556kjjiihhg"##$$%%&{zzyyxxw#$$%%&&'UTTSSRRQHIIJJKKL$##""!! nnooppqq//..--,,^^__``aa??>>==<>??@@AA__^^]]\\..//0011oonnmmll !!zzyyxxww44556677NMMLLKKJFGGHHIIJWVVUUTTS6778899:gffeeddc&''(())*wvvuutts -'(())**+QPPOONNMLMMNNOOPrrssttuu++**))((bbccddee;;::9988RRSSTTUUKKJJIIHHBBCCDDEE[[ZZYYXX22334455kkjjiihh""##$$%%vvuuoonn==>>??@@JIIHHGGFJKKLLMMNSRRQQPPO:;;<<==>cbbaa``_*++,,--.srrqqppo - +,,--../MLLKKJJIPQQRRSSTvvwwxxyy''&&%%$$ffgghhii77665544VVWWXXYYGGFFEEDDFFGGHHIIWWVVUUTT66778899ggffeedd&&''(())mmllkkjjAABBCCDDFEEDDCCBNOOPPQQRONNMMLLK>??@@AAB_^^]]\\[.//00112onnmmllk !!"~~}}||{/0011223IHHGGFFETUUVVWWXzz{{||}}##""!! jjkkllmm33221100ZZ[[\\]]CCBBAA@@JJKKLLMMSSRRQQPP::;;<<==ccbbaa``**++,,--iihhggffEEFFGGHHBAA@@??>RSSTTUUVKJJIIHHGBCCDDEEF[ZZYYXXW23344556kjjiihhg"##$$%%&{zzyyxxw34455667EDDCCBBAXYYZZ[[\~~nnooppqq//..--,,^^__``aa??>>==<>??@@AA__^^]]\\..//0011eeddccbbIIJJKKLL>==<;:98VWWXXYYZGFFEEDDCFGGHHIIJWVVUUTTS6778899:gffeeddc&''(())*wvvuutts~~}}||{7==>>??@A@@??>>=\]]^^__` - -rrssttuu++**))((bbccddee;;::9988RRSSTTUUKKJJIIHHBBCCDDEE[[ZZYYXX22334455aa``__^^MMNNOOPP77665544Z[[\\]]^CBBAA@@?JKKLLMMNSRRQQPPO:;;<<==>cbbaa``_*++,,--.srrqqppo{zzyyxxw@AABBCCD=<<;;::9`aabbccd vvwwxxyy''&&%%$$ffgghhii77665544VVWWXXYYGGFFEEDDFFGGHHIIWWVVUUTT66778899]]\\[[ZZQQRRSSYY33221100^__``aab?>>==<<;NOOPPQQRONNMMLLK>??@@AAB_^^]]\\[.//00112onnmmllk !!"wvvuuoonDEEFFGGH98877665deeffgghzz{{||}}##""!! jjkkllmm33221100ZZ[[\\]]CCBBAA@@JJKKLLMMSSRRQQPP::;;<<==YYSSRRQQZZ[[\\]]//..--,,bccddeef;::99887RSSTTUUVKJJIIHHGBCCDDEEF[ZZYYXXW23344556kjjiihhg"##$$%%&nmmllkkjHIIJJKKL54433221hiijjkkl ~~nnooppqq//..--,,^^__``aa??>>==<>??@@AAPPOONNMM^^__``aa++**))((fgghhiij76655443VWWXXYYZGFFEEDDCFGGHHIIJWVVUUTTS6778899:gffeeddc&''(())*jiihhggfLMMNNOOP100//..-lmmnnoop - - rrssttuu++**))((bbccddee;;::9988RRSSTTUUKKJJIIHHBBCCDDEELLKKJJIIbbccddee''&&%%$$jkkllmmn3221100/Z[[\\]]^CBBAA@@?JKKLLMMNSRRQQPPO:;;<<==>cbbaa``_*++,,--.feeddccbPQQRRSSY-,,++**)pqqrrsst - - vvwwxxyy''&&%%$$ffgghhii77665544VVWWXXYYGGFFEEDDFFGGHHIIHHGGFFEEffgghhii##""!! nooppqqr/..--,,+^__``aab?>>==<<;NOOPPQQRONNMMLLK>??@@AAB_^^]]\\[.//00112baa``__^YZZ[[\\])((''&&%tuuvvwwxzz{{||}}##""!! jjkkllmm33221100ZZ[[\\]]CCBBAA@@JJKKLLMMDDCCBBAAjjkkllmmrssttuuv+**))(('bccddeef;::99887RSSTTUUVKJJIIHHGBCCDDEEF[ZZYYXXW23344556^]]\\[[Z]^^__``a%$$##""!xyyzz{{| ~~nnooppqq//..--,,^^__``aa??>>==<>==nnoouuvvvwwxxyyz'&&%%$$#fgghhiij76655443VWWXXYYZGFFEEDDCFGGHHIIJWVVUUTTS6778899:ZYYSSRRQabbccdde! |}}~~ - - rrssttuu++**))((bbccddee;;::9988RRSSTTUU77665544wwxxyyzzz{{||}}~#""!! jkkllmmn3221100/Z[[\\]]^CBBAA@@?JKKLLMMNSRRQQPPO:;;<<==>QPPOONNMeffgghhi - - vvwwxxyy''&&%%$$ffgghhii77665544VVWWXXYY33221100{{||}}~~ ~nooppqqr/..--,,+^__``aab?>>==<<;NOOPPQQRONNMMLLK>??@@AABMLLKKJJIijjkkllmfpvp˂rJltpfH~pZHAbJtArdf~HrXQJ`ۉbdQZ|f`vXے`JXJtArdf~HnrXQJ`Zp˂AJltfH~ˁJXQrf~HXQJ`ےbdQZ|`vXnے`JXQZHAےtlJnXv`p˂rJltH~fZHAbtlJfpvJ`ےrtAJl~f`ZHAbۉlJtnXv`ˑ˂rXJlt~f`ZHAbۉlJtnXv`ˑ˂rXrtAJlnXv`XQJ`ےdrtAJf`vJQr|ZdQfpvbHAdrtnvpQr˂p|ZdQfpvےHArXQJ`ۉbdQZ|f`vXbtl|fpvbHAZdrtAvpfr˂p`JXQrtArdf~HXQJ`ےbdQZ|`vXnے`JXQtArdnXv`bHAZptbdQvXn`JXQArd|f~HQJ`ےbdQZ|vXn`JXQArd|f~HQJ`ےtbdQf~HbHAZltbXnv˂pZHbtlnXv`Zp˂AJltfH~ˑZHAbbtlnXv`Zp˂JltdtAnvpZdQbtnXv`p˂rJltH~fZHAbbtl|ZdQbfpvbHAZdrtAvpfr˂p|ZdQbf~H˂rXQZ|AJlvpfHr˂pZdQbtfpvbHAZpdrtAvpfHr˂pZdQbtfpvbHAZpZ|dfpvp˂rdQZ|pfH~Abے`JtArdf~HrXQJ`ۉbdQZ|f`vXے`JXJtArdf~HrXQJ`ۉbdQZ|JltfH~ˉlJtf~fpXQJ`ےbdQZ|`vXnے`JXQJtAdtlJnXv`p˂rJltH~fZHAbtlJfpvJ`ےtb~f`ZHAbۉlJtnXv`ˑ˂rXJlt~f`ZHAbۉlJtnXv`ˑ˂rXrtAdQZ|nXv`XQJ`ےdrtAJvpJXQr|ZdQfpvbHAdrtnvpQr˂p|ZdQfpvbHAdrtbnvpf`vXArd|vnXbHAZdrtAvpfr˂p|ZdQbfpvfHfXQJ`ےbdQZ|`vXnے`JXQtArdnXv`bHAXQJnvpvXn`JXQArd|f~HQJ`ےbdQZ|vXn`JXQArd|f~HQJ`ےdrtf~HbHAZltbfH~˂pZHbtlnXv`Zp˂AJltfH~ˑZHAbbtlnXv`Zp˂AJltfHnvpZdQbtv`fp˂rJltH~fZHAbtlJnXv`pvnbHAZdrtAvpfr˂p|ZdQbpvn`ےJlfHf`vpfr˂pZdQbtfpvbHAZpdrtAvpfHr˂pZdQbtfpvbHAZpAJltfpvp˂rdQZ|lf`vXAbے`JtArdf~HrXQJ`ۉbdQZ|f`vXے`JXJtArdf~HrXQJ`ۉbdQZ|f`vXfے`JXl|~HfpXQJ`ےbdQZ|`vXnے`JXQtArdf~HrXQJ`p˂rJltH~fZHAbtlJXv`ftbQZvXn`JXQZHAے`lJtnXv`ˑ˂rXJlt~f`ZHAbۉlJtnXv`ˑ˂rXbdQZ|nXv`XQJ`ےtbdQnvpJXQr|ZdQfpvbHAdrtnvpQr˂p|ZdQfpvbHAdrtnvpQHAbZdQbtvnXbHAZdrtAvpfr˂p|ZdQbfpvےHAZXQJ`ےbdQZ|`vXnے`JXQtArd~HfdrtAvpfHr˂pJXQrArd|f~HQJ`ےbdQZ|vXn`JXQArd|f~HQJ`ےdrtf~HbHAZZ|dfH~ZHAbbtlnXv`Zp˂AJltfH~ˑZHAbbtlnXv`Zp˂AJltfH~˒`JXQlJtAv`fp˂rJltH~fZHAbtlJnXv`p˂rJltdtAJvpfr˂p|ZdQbpvnJlt~f`ZHAbbtlZdQbtfpvbHAZpdrtAvpfHr˂pZdQbtfpvbHAZpAJltfpvp˂rrtAJlf`vXے`JXQJtArdf~HrXQJ`ۉbdQZ|f`vXے`JXJtArdf~HrXQJ`ۉbdQZ|f`vXr˂prd|~HfvnXQJ`ےbdQZ|`vXnے`JXQtArdf~HXQJ`ےbdQZ|ltbH~fZHAbtlJXv`pbdQZ|vXn`JXQJtAd|lJnXv`ˑ˂rXJlt~f`ZHAbۉlJtnXv`ˑ˂rXdrtAnXv`XQJ`ےtbdQH~fr˂p|ZdQfpvbHAdrtnvpQr˂p|ZdQfpvbHAdrtnvpZHAbZdQbtXv`fbHAZdrtAvpfr˂p|ZdQbfpvbHAZdrtAnvp`vXnے`JXQtArdvnrdrtAvpfHr˂pZdQbtfpvfHfpQJ`ےbdQZ|vXn`JXQArd|f~HQJ`ےJltf~HbHAZZ|d`vXnZHAbbtlnXv`Zp˂AJltfH~ˑZHAbbtlnXv`Zp˂AJltfH~˒`JXQlJtA~Hfp˂rJltH~fZHAbtlJnXv`p˂rJltfHfvpfr˂p|ZdQbXQJ`pJlt~f`ZHAbۉlJtnXv`˝vnbHAZpdrtAvpfHr˂pZdQbtfpvbHAZpbdQZ|fpvp˂rrtAdQZvpfے`JXQJtArdf~HrXQJ`ۉbdQZ|f`vXے`JXJtArdf~HrXQJ`ۉbdQZ|f`vXr˂p`rdtlpvnXQJ`ےbdQZ|`vXnے`JXQtArdf~HXQJ`ےbdQZ|`vXnے`JXQZHAےtlJ˂rXQbdQZ|vXn`JXQArd|f~HrXQJ`ۑ˂rXJlt~f`ZHAbۉlJtnXv`ˑ˂rXdrtAnXv`XQJ`ے|drH~fr˂p|ZdQfpvbHAdrtnvpQr˂p|ZdQfpvbHAdrtnvpJXQrJtArdXv`fbHAZdrtAvpfr˂p|ZdQbfpvbHAZdrtAvpfr˂p`JXQrtArdJ`ےrAJl璅vpfHr˂pZdQbtfpv㒐HAZpQJ`ےbdQZ|vXn`JXQArd|f~HQJ`ےJltf~HbHAZtAJl`vXnZAb`btlnXv`Zp˂AJltfH~ˑZHAbbtlnXv`Zp˂AJltfH~ˉ˂pZH|Zd~Hfp˂rJltH~fZHAbtlJnXv`p˂rJltH~fZHAbbtl|ZdQbbHAZptbdQZ~f`ZHAbۉlJtnXv`ˑ˂rXJltdtAJlvpfHr˂pZdQbtfpvbHAZpbdQZ|lnvpfpvp˂rtbdQZvp`JXQrJtArdf~HrXQJ`ۉbdQZ|f`vXے`JXJtArdf~HrXQJ`ۉbdQZ|f`vXAbے`QbtlpvnXQJ`ےbdQZ|`vXnے`JXQtArdf~HXQJ`ےbdQZ|`vXnے`JXQJtAdtlJ˂rXQ|drvXn`JXQArd|f~HQJ`ےbdQZ|tb~f`ZHAbۉlJtnXv`ˑ˂rXtbdfH~nXv`XQJ`ے|drvXnpZHA|ZdQfpvbHAdrtnvpQr˂p|ZdQfpvbHAdrtnvpJXQrJtArdvf~HbHAZdrtAvpfr˂p|ZdQbfpvbHAZdrtAvpfr˂p|ZdQbfpvJ`p˂tAJl璅vpfHr˂pZdQbtfpvbHAZpdrtAnvpvXn`JXQArd|f~HQJ`ےQZ|df`vXHf~HbHAZtAJlvpfHbے`btlnXv`Zp˂AJltfH~ˑZHAbbtlnXv`Zp˂AJltfH~ˉ˂pZH|Zdfpvp˂rJltH~fZHAbtlJnXv`p˂rJltH~fZHAbtlJ~HfrXQJtbdQZ~f`ZHAbۉlJtnXv`ˑ˂rXJltfHf`vpfr˂pZdQbtfpvbHAZprtAJl~f`fpvp˂rtdrtA~f`JXQrJtArdf~HrXQJ`ۉbdQZ|f`vXے`JXJtArdf~HrXQJ`ۉbdQZ|f`vXAbQtArdnXv`XQJ`ےbdQZ|`vXnے`JXQtArdf~HXQJ`ےbdQZ|`vXnے`JXQtArdpvn`ےb|drvXn`JXQArd|f~HQJ`ےbdQZ|vXn`JXQZHAے`lJtnXv`ˑ˂rXtbdvXnnXv`XQJ`ےJltvXnpZHAb|ZdQfpvbHAdrtnvpQr˂p|ZdQfpvbHAdrtnvppZHA|ZdQf~HbHAZdrtAvpfr˂p|ZdQbfpvbHAZdrtAvpfr˂p|ZdQbXv`fHAZp˂tAJbdvpfHr˂pZdQbtfpvbHAZpdrtAvpfHr˂pJXQrArd|f~HQJ`ےQZ|lvpfHf~HbHAZbdQZ|vpfHJAdbtlnXv`Zp˂AJltfH~ˑZHAbbtlnXv`Zp˂AJltfH~bے`btlfpvp˂rJltH~fZHAbtlJnXv`p˂rJltH~fZHAbtlJ~HfrXQJQZ|d~f`ZHAbۉlJtnXv`ˑ˂rXJlt~f`ZHAbbtlZdQbtfpvbHAZptbn~f`fpvp˂rdrtA~v|ZdQJfpvfHrXQJ`ۉbdQZ|f`vXے`JXJtArdf~HrXQJ`ۉbdQZ|f`vXJXQrJtArdnXv`XQJ`ےbdQZ|`vXnے`JXQtArdf~HXQJ`ےbdQZ|`vXnے`JXQtArdpvn`ےbrtAJlvXn`JXQArd|f~HQJ`ےbdQZ|vXn`JXQJtAd|lJnXv`ˑ˂rXvp`vXnnXv`XQJ`ےJltpfے`btlnXv`fpv㒐bHAdrtnvpQr˂p|ZdQfpvbHAdrtnvppZHA|ZdQf~fpbHAZdrtAvpfr˂p|ZdQbfpvbHAZdrtAvpfr˂p|ZdQbXv`pHAXQJ`tbdvpfHr˂pZdQbtfpvbHAZpdrtAvpfHr˂pZdQbtfpvfHfpQJ`ےvXnۅvp`f~HbHAZbdQZ|JXQrJtArdf~HnrXQJ`Zp˂AJltfH~ˑZHAbbtlnXv`Zp˂AJltfH~bے`btl|vnXp˂rJltH~fZHAbtlJnXv`p˂rJltH~fZHAbtlJvnXےbHAQZ|d~f`ZHAbۉlJtnXv`ˑ˂rXJlt~f`ZHAbۉlJtnXv`˝vnbHAZpvpfHvXnfpvp˂rltbZHAbۂ|ZdQfpvےHArXQJ`ۉbdQZ|f`vXے`JXJtArdf~HrXQJ`ۉbdQZ|f`vXJXQHAbZdQbtv`fXQJ`ےbdQZ|`vXnے`JXQtArdf~HXQJ`ےbdQZ|`vXnے`JXQtArdv`fZp˂rtAJlvXn`JXQArd|f~HQJ`ےbdQZ|vXn`JXQArd|f~HrXQJ`ۑ˂rX~f`vpfHnXv`XQJ`ےdQZ|`JXQbtlnXv`Zp˂JltdtAnvpQr˂p|ZdQfpvbHAdrtnvpے`JXlJt~HfpbHAZdrtAvpfr˂p|ZdQbfpvbHAZdrtAvpfr˂p|ZdQb~HfprXQJ`tbQZvpfHr˂pZdQbtfpvbHAZpdrtAvpfHr˂pZdQbtfpv㒐HAZpQJ`ےvXn~f`f~HbHAZdrtAJr˂pJtArdf~HrXQJ`ۉbdQZ|JltfH~ˑZHAbbtlnXv`Zp˂AJltfH~Qr˂pArd|vnXp˂rJltH~fZHAbtlJnXv`p˂rJltH~fZHAbtlJvnXےbHAdrtA~f`ZHAbۉlJtnXv`ˑ˂rXJlt~f`ZHAbۉlJtnXv`ˑ˂rXJltdvp`vXvXnfpvp˂rltbZHAbۂ|ZdQfpvbHAdrtbnvpf`vXے`JXJtArdf~HrXQJ`ۉbdQZ|f`vXZHAbZdQbtv`ffXQJ`ےbdQZ|`vXnے`JXQtArdf~HXQJ`ےbdQZ|`vXnے`JXQtArdv`fZp˂JltvXn`JXQArd|f~HQJ`ےbdQZ|vXn`JXQArd|f~HQJ`ےrtAJlnvpvpfHnXv`XQJ`ےdQZ|``JXQbtlnXv`Zp˂AJltfHnvpQr˂p|ZdQfpvbHAdrtnvpے`JXlJtpvnbHAZdrtAvpfr˂p|ZdQbfpvbHAZdrtAvpfr˂p|ZdQb~HXvbHAZbdQZ|vpfHr˂pZdQbtfpvbHAZpdrtAvpfHr˂pZdQbtfpvbHAZptbdfH~~vpf~HbHAZvXnr˂pZJtArdf~HrXQJ`ۉbdQZ|f`vXfے`JXZHAbtlnXv`Zp˂AJltfH~Qr˂pArdtrXQJ`p˂rJltH~fZHAbtlJnXv`p˂rJltH~fZHAbtlJ`f~p˂rdrtA~f`ZHAbۉlJtnXv`ˑ˂rXJlt~f`ZHAbۉlJtnXv`ˑ˂rXQZ|df`vXfے`fpvp˂rvpfHAb`J|ZdQfpvbHAdrtnvpQr˂p`JXQJtArdf~HrXQJ`ۉbdQZ|f`vX`JXQlJfpےHAZXQJ`ےbdQZ|`vXnے`JXQtArdf~HXQJ`ےbdQZ|`vXnے`JXQtArdHfpvXQJ`ےJltvXn`JXQArd|f~HQJ`ےbdQZ|vXn`JXQArd|f~HQJ`ےrtAJlnvpJXQrZnXv`XQJ`ے~f`XQr˂btlnXv`Zp˂AJltfH~ˑZHAbrbtl|ZdQfpvbHAdrtnvpr˂pvnvp˂rJltdtAJvpfr˂p|ZdQbfpvbHAZdrtAvpfr˂p|ZdQbnXvbHAZbdQZ|vpfHr˂pZdQbtfpvbHAZpdrtAvpfHr˂pZdQbtfpvbHAZptbdfH~HAbےf~HbHAZvXnpZHAbJtArdf~HrXQJ`ۉbdQZ|f`vXے`JXJtAdbtlnXv`Zp˂AJltfH~ZHAbۍf~HXQJ`ےbdQZ|ltbH~fZHAbtlJnXv`p˂rJltH~fZHAbtlJ`f~p˂rrAJl~f`ZHAbۉlJtnXv`ˑ˂rXJlt~f`ZHAbۉlJtnXv`ˑ˂rXQZ|l畀vp`JXQrfpvp˂rvp`vے`J|ZdQfpvbHAdrtnvpQr˂p|ZdQJfpvfHrXQJ`ۉbdQZ|f`vX`JXQfpvbHAZdrtAnvp`vXnے`JXQtArdf~HXQJ`ےbdQZ|`vXnے`JXQtArdHfpvXQJ`ptbdQvXn`JXQArd|f~HQJ`ےbdQZ|vXn`JXQArd|f~HQJ`ےtbdQfH~ˀ˂pZnXv`XQJ`ےXnvXQr˂btlnXv`Zp˂AJltfH~ˑZHAbbtlnXv`fpv㒐bHAdrtnvpr˂p`nXv`p˂rJltfHfvpfr˂p|ZdQbfpvbHAZdrtAvpfr˂p|ZdQb~H˂rXQZ|dvpfHr˂pZdQbtfpvbHAZpdrtAvpfHr˂pZdQbtfpvbHAZpZ|df`vXHAbے`JXQrrd|~HfJ`ےdQZ|tbn~f`HAbےlJtAXv`f˂rXQltb~f`˂pZd|ZnXv`rXQtbd~f`Abے`lJtAv`frXQtbd~f`Qr˂pۑp`ZpfH~ㅀ˂pZAZdQbtpvnbHAZpdrtAJvpfvXn`JXQrrd|~HfJ`ےdQZ|vXnHAbےdQbt璍ffpJ`ےQZ|dvXnہJXQrrd|~HfpJ`ےQZ|dvXnۑZHAbQXb㉀f۝`vb`JXlJtAXv`f˂rXQltbHf`vpfے˂pZZdQbtpvnbHAZpdrtAJvpfH`JXQrlJtArvnrXbHAZp˙rtAJlvpfH˂pZHZdQbtvnXbHAZp˙rtAJlvpfHے`JXۑpJAHrXnvˍQr˂prd|~HfJ`ےdQZ|vXn`JXQrHAے`lJtAXv`f˂rXQltb~f`˂p`dtlQJ`ےrXQtbd~f`Abے`lJtAv`frXQtbd~f`QHAb󙐂ˁ`Zp|drZHAbZdQbtpvnbHAZpdrtAJvpfH˂pZJXQrbrd|~HfJ`ےdQZ|vXnJXQrJfpvHAZpJ`ےJlQZ|dvXnہJXQrrd|~HfpJ`ےQZ|dvXnے`JXQQXb㉀QtJlے`JXlJtAXv`f˂rXQltb~f`HAbےtlJZdQbtpvnbHAZpdrtAJvpfH˂pZHAnvfrXQtbdtAJlvpfH˂pZHZdQbtvnXbHAZp˙rtAJlvpfHr˂pۑpJAHtbAdZQr˂prd|~HfJ`ےdQZ|vXn`JXQrtAd|lJfXv`f˂rXQltb~f`bے`~HfpJ`ےQZ|dtbn~f`Abے`lJtAv`frXQtbd~f`ZHAbېf۝`v|drZHAbZdQbtpvnbHAZpdrtAJvpfH˂pZZdQbtpvnHfpJ`ےdQZ|vXnJXQrvnXbHAZp˙rtAJlvpfHvXnہJXQrrd|~HfpJ`ےQZ|dvXnے`JXQXnvˍQtJlJQrlJtAXv`f˂rXQltb~f`HAbےlJtAXv`fvnrbHAZpdrtAJvpfH˂p`Jv`frXQtbdf`vpfے`˂pZHZdQbtvnXbHAZp˙rtAJlvpfHr˂p`pfH~tbAdZ˂pZHArd|~HfJ`ےdQZ|vXn`JXQrrd|~HfXQJ`ے˂rXQltb~f`XQrbt~HfpJ`ےQZ|dvXnہJXQrAے`lJtAv`frXQtbd~f`JXQrf۝`v|drbے`ZdQbtpvnbHAZpdrtAJvpfH˂pZZdQbtpvnHAZpJ`ےJdQZ|vXnl|ZvnXbHAZp˙rtAJlvpfH˂pZHJXQrbtrd|~HfpJ`ےQZ|dvXnۉ˂pZHXnvˍQtJlJXQrlJtAXv`f˂rXQltb~f`HAbےlJtAXv`f˂rXQltbdtAJlvpfHdQbt璕v`f~rXQtbd~f`Abے`lJtZdQbtvnXbHAZp˙rtAJlvpfHAbے`pfH~tbAdZ˂pZHArd|~HfJ`ےdQZ|vXn`JXQrrd|~HfJ`ےdQZ|tbn~f`lJtArfpvJ`ےQZ|dvXnہJXQrAd|lJfpv`frXQtbd~f`JXQrf۝`v|drbے`ZdQbtpvnbHAZpdrtAJvpfH˂pZZdQbtpvnbHAZpdrtAJvpfvXnd|ZnXv`bHAZp˙rtAJlvpfH˂pZHZdQbtvnXHfpJ`ےQZ|dvXnۉ˂p`ZXnvˍQtJlJXQrlJtAXv`f˂rXQltb~f`HAbےlJtAXv`f˂rXQltbHf`vpfےdQbtf~HrXQtbd~f`Abے`lJtAv`fvnrXbHAZp˙rtAJlvpfHQXb㉀pfH~tbAdZZHAbrd|~HfJ`ےdQZ|vXn`JXQrrd|~HfJ`ےdQZ|vXn`JXQHAl|ZdQfpvJ`ےQZ|dvXnہJXQrrd|~HfpQJ`ےrXQtbd~f`ۑpJAHrf۝`v|dr`JXQZdQbtpvnbHAZpdrtAJvpfH˂pZZdQbtpvnbHAZpdrtAJvpfHbے`btlnXv`bHAZp˙rtAJlvpfH˂pZHZdQbtvnXHAZpJ`ےJlQZ|dvXn󙐂ˁ`ZXnvˍQtJlr˂plJtAXv`f˂rXQltb~f`HAbےlJtAXv`f˂rXQltb~f`JXQrJtArdf~HrXQtbd~f`Abے`lJtAv`frXQtbdtAJlvpfHQXb㉀pfH~tbAdZZHAbrd|~HfJ`ےdQZ|vXn`JXQrrd|~HfJ`ےdQZ|vXn˂pZHA|ZdQfvnXJ`ےQZ|dvXnہJXQrrd|~HfpJ`ےQZ|dtbn~f`ۑp`ZQf۝`v|dr`JXQZdQbtpvnbHAZpdrtAJvpfH˂pZZdQbtpvnbHAZpdrtAJvpfHbے`btlv`fbHAZp˙rtAJlvpfH˂pZHZdQbtvnXbHAZp˙rtAJlvpfHvXnXb㉀ۑXnvˍQtJlr˂pZlJtAXv`f˂rXQltb~f`HAbےlJtAXv`f˂rXQltb~f`JXQrJtArd~HfpۂrXQtbd~f`Abے`lJtAv`frXQtbdf`vpfZHpJAHrpfH~tbAdZAb`Jrd|~HfJ`ےdQZ|vXn`JXQrrd|~HfJ`ےdQZ|vXn˂p`JtlJvnXJ`ےQZ|dvXnہJXQrrd|~HfpJ`ےQZ|dvXnAbے`ˁ`ZQf۝`v|drXQr˂ZdQbtpvnbHAZpdrtAJvpfH˂pZZdQbtpvnbHAZpdrtAJvpfHXQr˂tArdv`fbHAZp˙rtAJlvpfH˂pZHZdQbtvnXbHAZp˙rtAJlvpfHJXQrXb㉀ۑXnvˍQtJlpZHAblJtAXv`f˂rXQltb~f`HAbےlJtAXv`f˂rXQltb~f`pZHAb|ZdQb~HfpۂrXQtbd~f`Abے`lJtAv`frXQtbd~f`˂pZHpJAHrpfH~tbAdZے`Jrd|~HfJ`ےdQZ|vXn`JXQrrd|~HfJ`ےdQZ|vXnے`JtlJvnvfJ`ےQZ|dvXnہJXQrrd|~HfpJ`ےQZ|dvXnAbے`ۑpJf۝`v|drXQr˂ZdQbtpvnbHAZpdrtAJvpfH˂pZZdQbtpvnbHAZpdrtAJvpfHXQr˂tArd~HfbHAZp˙rtAJlvpfH˂pZHZdQbtvnXbHAZp˙rtAJlvpfHJXQrAHr󙐂XnvˍQtJlpZA`lJtAXv`f˂rXQltb~f`HAbےlJtAXv`f˂rXQltb~f`pZHAb|ZdQtApvnrXQtbd~f`Abے`lJtAv`frXQtbd~f`˂p`ˁ`ZQXbpfH~tbAdZJXQrbrd|~HfJ`ےdQZ|vXn`JXQrrd|~HfJ`ےdQZ|vXn˂prd|Xv`fJ`ےQZ|dvXnہJXQrrd|~HfpJ`ےQZ|dvXnJXQr㉀ۑpJf۝`v|drtlJZdQbtpvnbHAZpdrtAJvpfH˂pZZdQbtpvnbHAZpdrtAJvpfHZHAbZdQbt~HfbHAZp˙rtAJlvpfH˂pZHZdQbtvnXbHAZp˙rtAJlvpfHpZHAAHr󙐂XnvˍQtJltAd|lJfXv`f˂rXQltb~f`HAbےlJtAXv`f˂rXQltb~f`ے`JXQlJtApvnrXQtbd~f`Abے`lJtAv`frXQtbd~f`bے`ˁ`ZQXApfH~tbAdZZdQbtpvnHfpJ`ےdQZ|vXn`JXQrrd|~HfJ`ےdQZ|vXnr˂prd|Xv`fJ`ےQZ|dvXnہJXQrrd|~HfpJ`ےQZ|dvXnJXQrHr󙐂ˁf۝`v|drlJtAXv`fvnrbHAZpdrtAJvpfH˂pZZdQbtpvnbHAZpdrtAJvpfHZHAbZdQbt~fpvbHAZp˙rtAJlvpfH˂pZHZdQbtvnXbHAZp˙rtAJlvpfHpZHA`ZQXbXnvˍQtJlrd|~HfXQJ`ے˂rXQltb~f`HAbےlJtAXv`f˂rXQltb~f`ے`JXQl|ZnXv`rXQtbd~f`Abے`lJtAv`frXQtbd~f`b˂pۑpJApfH~tbAdZZdQbtpvnHAZpJ`ےJdQZ|vXn`JXQrrd|~HfJ`ےdQZ|vXnHAbےdQbt璍f~HJ`ےQZ|dvXnہJXQrrd|~HfpJ`ےQZ|dvXnۑZHAbHr󙐂ˁf۝`v|drlJtAXv`f˂rXQltbdtAJlvpfH˂pZZdQbtpvnbHAZpdrtAJvpfH`JXQrlJtArfpvbHAZp˙rtAJlvpfH˂pZHZdQbtvnXbHAZp˙rtAJlvpfHے`JX`ZQXbXnvˍQtJltJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKK \ No newline at end of file diff --git a/vendor/endroid/qr-code/assets/data/qrv33_1.dat b/vendor/endroid/qr-code/assets/data/qrv33_1.dat deleted file mode 100755 index 128d06bae..000000000 --- a/vendor/endroid/qr-code/assets/data/qrv33_1.dat +++ /dev/null @@ -1,297 +0,0 @@ -}~}~}~}~}~}~}~}~{|{|{|{|{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwxuvuvuvuvuvuvuvuvststststststststqrqrqrqrpopopopoopopopopnmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSSSSSSTSTQRQRQRQRQRQRQRQROPOPOPOPOPOPOPOPMNMNMNMNMNMNMNMNKLKLKLKLKLKLKLKLIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDABABABABABABABAB?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=>;<;<;<;<;<;<;<;<9:9:9:9:9:9:9:9:78787878878787876565656565656565434343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!}~}~}~}~}~}~}~}~{|{|{|{|{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwxuvuvuvuvuvuvuvuvstststststststsrqrqrqrqrpopopopoopopopopnmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSSTSTSTSTQRQRQRQRQRQRQRQROPOPOPOPOPOPOPOPMNMNMNMNMNMNMNMNKLKLKLKLKLKLKLKLIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDABABABABABABABAB?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=>;<;<;<;<;<;<;<;<9:9:9:9:9:9:9:9:77777787877777876565656565656565434343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!}~}~}~}~}~}~}~}~{|{|{|{|{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwxuvuvuvuvuvuvuvuvststststqrqrqrqrqrqrqrqrpopopopoopopopopnmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSSTSTSTSTQRQRQRQRQRQRQRQROPOPOPOPOPOPOPOPMNMNMNMNMNMNMNMNKLKLKLKLKLKLKLKLIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDABABABABABABABAB?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=>;<;<;<;<;<;<;<;<9:9:9:9:9:9:9:9:87878787878787656565656565656565434343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!~}~}~}~}~}~}~}~}~}~}~}~{|{|{|{|{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwxuvuvuvuvuvuvuvuvststststqrqrqrqrqrqrqrqrooooopopopopopopnmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYZYZYZYZYXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSSTSTSTSTQRQRQRQRQRQRQRQROPOPOPOPOPOPOPOPMNMNMNMNMNMNMNMNKLKLKLKLKLKLKLKLIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDABABABABABABABAB?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=>;<;<;<;<;<;<;<;<9:9:9:9:9:9:9:9:87878787656565656565656565656543434343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!}~}~}~}~}~}~}~}~}|{|{|{|{|{|{|{|{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwxuvuvuvuvuvuvuvuvststststqrqrqrqrqrqrqrqropopopopooooooponmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSSTSTSTSTQRQRQRQRQRQRQRQROPOPOPOPOPOPOPOPMNMNMNMNMNMNMNMNKLKLKLKLKLKLKLKLIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDABABABABABABABAB?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=>;<;<;<;<;<;<;<;<9:9:9:9:9:9:9:9:87878787656565656565656543434343434343434343432121212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!}~}~}~}~}~}~}~}~{|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwxuvuvuvuvuvuvuvuvststststqrqrqrqrqrqrqrqropopopoppopopoponmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSSSSSSTSTSSSSSTQRQRQRQRQRQRQRQROPOPOPOPOPOPOPOPMNMNMNMNMNMNMNMNKLKLKLKLKLKLKLKLIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDABABABABABABABAB?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=>;<;<;<;<;<;<;<;<9:9:9:9:9:987878878787876565656565656565434343434343434321212121212121212121210/0/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!}~}~}~}~}~}~}~}~{|{|{|{|{|{|{|{|yzyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwxwxwxwxuvuvuvuvuvuvuvuvststststqrqrqrqrqrqrqrqropopopoppopopoponmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQROPOPOPOPOPOPOPOPMNMNMNMNMNMNMNMNKLKLKLKLKLKLKLKLIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDABABABABABABABAB?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=>;<;<;<;<;<;<;<;<9:9:9:9:78777777878787876565656565656565434343434343434321212121212121210/0/0/0/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!}~}~}~}~}~}~}~}~{|{|{|{|{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvuvuvuvuvststststqrqrqrqrqrqrqrqropopopoppopopoponmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUSTSTSTSTQRQRQRQRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPOPMNMNMNMNMNMNMNMNKLKLKLKLKLKLKLKLIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDABABABABABABABAB?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=>;<;<;<;<;<;<;<;<9:9:9:9:87878787878777776565656565656565434343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!}~}~}~}~}~}~}~}~{|{|{|{|{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwxuvuvuvuvuvuvuvuvutstststststststqrqrqrqrqrqrqrqropopopoppopopoponmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUSTSTSTSTQRQRQRQRQRQRQRQROPOPOPOPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMNKLKLKLKLKLKLKLKLIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDABABABABABABABAB?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=>;<;<;<;<;<;<;<;<9:9:9:9:87878787787878786565656565656565434343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!}~}~}~}~}~}~}~}~{|{|{|{|{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwxuvuvuvuvuvuvuvuvststststststststqrqrqrqrqrqrqrqropoooooopopooooonmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUTSTSSTSTSTSTQRQRQRQRQRQRQRQROPOPOPOPOPOPOPOPMNMNMNMNMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKLIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDABABABABABABABAB?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=>;<;<;<;<;<;<;<;<9:9:9:9:87878787787878786565656565656565434343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)*)*)*)('('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!}~}~}~}~}~}~}~}~{|{|{|{|{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwxuvuvuvuvuvuvuvuvststststststststqrqrqrqrqrqrqrqrpopopopopopopoponmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUTSTSSSSSSTSTSTSTQRQRQRQRQRQRQRQROPOPOPOPOPOPOPOPMNMNMNMNMNMNMNMNKLKLKLKLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDABABABABABABABAB?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=>;<;<;<;<;<;<;<;<9:9:9:9:87878787787878786565656565656565434343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('('('('&%&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!}~}~}~}~}~}~}~}~{|{|{|{|{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwxuvuvuvuvuvuvuvuvststststststststqrqrqrqrqrqrqrqrpopopoponmnmnmnmnmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUSTSTSTSTSTSTSSSSQRQRQRQRQRQRQRQROPOPOPOPOPOPOPOPMNMNMNMNMNMNMNMNKLKLKLKLKLKLKLKLIJIJIJIJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDABABABABABABABAB?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=>;<;<;<;<;<;<;:9:9:9:9:9:87878787787878786565656565656565434343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!}~}~}~}~}~}~}~}~{|{|{|{|{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwxuvuvuvuvuvuvuvuvststststststststqrqrqrqrqrqrqrqrpopopoponmnmnmnmnmnmnmnmlklklklklklklklklklklklkjijijijijijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUSTSTSTSTSSTSTSTSQRQRQRQRQRQRQRQROPOPOPOPOPOPOPOPMNMNMNMNMNMNMNMNKLKLKLKLKLKLKLKLIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDABABABABABABABAB?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=>;<;<;<;<9:9:9:9:9:9:9:9:87878777787878786565656565656565434343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!"!}~}~}~}~}~}~}~}~{|{|{|{|{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwxuvuvuvuvuvuvuvuvststststststststqrqrqrqrqrqrqpoppopopoponmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijijijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUSTSTSTSTTSTSTSTSQRQRQRQRQRQRQRQROPOPOPOPOPOPOPOPMNMNMNMNMNMNMNMNKLKLKLKLKLKLKLKLIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCDABABABABABABABAB?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=>;<;<;<;<9:9:9:9:9:9:9:9:77787878787878776565656565656565434343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!"!"!"! }~}~}~}~}~}~}~}~{|{|{|{|{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwxuvuvuvuvuvuvuvuvststststststststqrqrqrqropopoooopopopoponmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghghghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUSTSTSTSTTSTSTSTSQRQRQRQRQRQRQRQROPOPOPOPOPOPOPOPMNMNMNMNMNMNMNMNKLKLKLKLKLKLKLKLIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDCDCDCDCBABABABABABABABAB?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=>;<;<;<;<9:9:9:9:9:9:9:9:78787878777787876565656565656565434343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!    }~}~}~}~}~}~}~}~{|{|{|{|{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwxuvuvuvuvuvuvuvuvststststststststqrqrqrqroopopopopopopooonmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghghghghghgfefefefefefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWVUVUVUVUVUSTSTSTSTTSTSTSTSQRQRQRQRQRQRQRQROPOPOPOPOPOPOPOPMNMNMNMNMNMNMNMNKLKLKLKLKLKLKLKLIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDABABABABABABABABABABABA@?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=>;<;<;<;<9:9:9:9:9:9:9:9:78787878878787876565656565656565434343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!    }~}~}~}~}~}~}~}~{|{|{|{|{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwxuvuvuvuvuvuvuvuvststststststststqrqrqrqrpopopopoooopopopnmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWVUVUVUVUVUVUVUVUSTSTSTSSTSTSTSTSQRQRQRQRQRQRQRQROPOPOPOPOPOPOPOPMNMNMNMNMNMNMNMNKLKLKLKLKLKLKLKLIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDABABABABABABABAB?@?@?@?@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=>;<;<;<;<9:9:9:9:9:9:9:9:78787878878787876565656565656565434343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!    }~}~}~}~}~}~}~}~{|{|{|{|{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwxuvuvuvuvuvuvuvuvststststststststqrqrqrqrpopopopoopopopopnmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWVUVUVUVUVUVUVUVUSSSSTSTSTSTSTSTSQRQRQRQRQRQRQRQROPOPOPOPOPOPOPOPMNMNMNMNMNMNMNMNKLKLKLKLKLKLKLKLIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDABABABABABABABAB?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=>=>=>=>=<;<;<;<;<9:9:9:9:9:9:9:9:78787878878787876565656565656565434343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!                         - - - - - - - -                 - - - - - - - -                 - - - - - - - -                  - - - - - - - -                   - - - - - - - -                 - - - - - - - - - -               - - - - - - - - - -              - - - - - - - -             - - - - - - - -             - - - - - - - -             - - - - - - - -             - - - - - - - -             - - - - - - - -             - - - - - - - -             - - - - - - - -             - - - - - - - -             - - - - - - - -             - - - - - - - -LLKKJJII UUVVWWXX00//..--33445566KJJIIHHG TUUVVWWXEDDCCBBALMMNNOOPMLLKKJJIDEEFFGGHUTTSSRRQ - - <==>>??@]\\[[ZZY45566778|}}~~eddccbba,--..//0tuuvvwwxcbbaa``_ - - OPPQQRRS~~}}100//..- eeffgghh||{{zzyy44332211]]^^__``<<;;::99 UUVVWWXXDDCCBBAAMMNNOOPPLLKKJJIIEEFFGGHHTTSSRRQQ - - ==>>??@@MMLLKKJJeeffgghhmmllkkjj -..//001uvvwwxxylkkjjiih$##""!! %&&''(()mnnooppqtssrrqqp,++**))( !effgghhi|{{zzyyx43322110]^^__``a<;;::998 UVVWWXXYDCCBBAA@ MNNOOPPQ=7766554#$$%%&&'z{{||}}~]\\[[ZZY - ->>??@@AA[[ZZYYXX66778899~~ccbbaa``..//0011vvwwxxyykkjjiihh##""!! &&''(())nnooppqqssrrqqpp++**))(( !!ffgghhii{{zzyyxx33221100^^__``aaHHGGFFEEYYZZ[[\\,,++**))77==>>??GFFEEDDCXYYZZ[[\A@@??>>= - - PQQRRSSTIHHGGFFEHIIJJKKLQPPOONNM @AABBCCDYXXWWVVU 899::;;>== - - QQRRSSTTHHGGFFEEIIJJKKLLPPOONNMMAABBCCDDIIHHGGFFiijjkklliihhggff12233445yzz{{||}hggffeed )**++,,-qrrssttupoonnmml(''&&%%$!""##$$%ijjkkllmxwwvvuut0//..--,abbccdde~~}}|87766554YZZ[[\\]@??>>==< - - QRRSSTTU43322110'(())**+~YXWVUTSS BBCCDDEEWWVVUUTT ::;;<<==__^^]]\\22334455zz{{||}}ggffeedd**++,,--rrssttuuoonnmmll''&&%%$$""##$$%%jjkkllmmwwvvuutt//..--,,bbccddeeDDCCBBAA]]^^__``~~}}||((''&&%%@@AABBCCCBBAA@@?\]]^^__`=<<;;::9 TUUVVWWXEDDCCBBALMMNNOOPMLLKKJJIDEEFFGGHUTTSSRRQ - - <==>>??@]\\[[ZZY45566778|}}~~[ZZYYSSR \]]^^__`xxwwvvuu)((''&&%%%&&''((mmnnooppttssrrqq,,++**)) eeffgghh||{{zzyy44332211]]^^__``<<;;::99 UUVVWWXXDDCCBBAAMMNNOOPPLLKKJJIIEEFFGGHHEEDDCCBBmmnnoouueeddccbb56677889}~~dccbbaa`-..//001uvvwwxxylkkjjiih$##""!! %&&''(()mnnooppqtssrrqqp,++**))( !effgghhi|{{zzyyx43322110]^^__``a<;;::998 UVVWWXXY0//..--,+,,--../RRQQPPOOFFGGHHIISSRRQQPP - - >>??@@AA[[ZZYYXX66778899~~ccbbaa``..//0011vvwwxxyykkjjiihh##""!! &&''(())nnooppqqssrrqqpp++**))(( !!ffgghhii@@??>>==aabbccdd{{zzyyxx$$##""!!DDEEFFGG?>>==<;:`aabbccd~~}98877665XYYZZ[[\A@@??>>= - - PQQRRSSTIHHGGFFEHIIJJKKLQPPOONNM @AABBCCDYXXWWVVU 899::;;>== - - QQRRSSTTHHGGFFEEIIJJKKLLAA@@??>>!!""vvwwxxyyaa``__^^9::;;<<=`__^^]]\12233445yzz{{||}hggffeed )**++,,-qrrssttupoonnmml(''&&%%$!""##$$%ijjkkllmxwwvvuut0//..--,abbccdde~~}}|87766554YZZ[[\\],++**))(/0011223NNMMLLKKJJKKLLMMOONNMMLLBBCCDDEEWWVVUUTT ::;;<<==__^^]]\\22334455zz{{||}}ggffeedd**++,,--rrssttuuoonnmmll''&&%%$$""##$$%%jjkkllmm<<;;::99 eeffgghhwwvvuuooHHIIJJKK98776655 deeffggh}||{{zzy54433221\]]^^__`=<<;;::9 TUUVVWWXEDDCCBBALMMNNOOPMLLKKJJIDEEFFGGHUTTSSRRQ - - <==>>??@NMMLLKKJ deeffgghnmmllkkj! --..//00uuvvwwxxllkkjjii$$##""!!%%&&''((mmnnooppttssrrqq,,++**)) eeffgghh||{{zzyy44332211]]^^__``<<;;::99 UUVVWWXXDDCCBBAAMMNNOOPP==776655##$$%%&&zz{{||}}]]\\[[ZZ -=>>??@@A\[[ZZYYX56677889}~~dccbbaa`-..//001uvvwwxxylkkjjiih$##""!! %&&''(()mnnooppqtssrrqqp,++**))( !effgghhi|{{zzyyx43322110]^^__``a~~}}||{(''&&%%$34455667JJIIHHGG NNOOPPQQKKJJIIHHFFGGHHIISSRRQQPP - - >>??@@AA[[ZZYYXX66778899~~ccbbaa``..//0011vvwwxxyykkjjiihh##""!! &&''(())nnooppqq~~}}88776655!!""##$$iijjkkllnnmmllkkLLMMNNOO44332211 !!""##$hiijjkklyxxwwvvu100//..-`aabbccd~~}98877665XYYZZ[[\A@@??>>= - - PQQRRSSTIHHGGFFEHIIJJKKLQPPOONNM @AABBCCDJIIHHGGFhiijjkkljiihhggf11223344yyzz{{||hhggffee ))**++,,qqrrssttppoonnmm((''&&%%!!""##$$iijjkkllxxwwvvuu00//..--aabbccdd~~}}88776655YYZZ[[\\@@??>>== - - QQRRSSTT44332211''(())**~~YYXWVUTS - ABBCCDDEXWWVVUUT 9::;;<<=`__^^]]\12233445yzz{{||}hggffeed )**++,,-qrrssttupoonnmml(''&&%%$!""##$$%ijjkkllmxwwvvuut0//..--,abbccdde{zzyyxxw$##""!!7==>>??@FFEEDDCC - - RRSSTTUUGGFFEEDDJJKKLLMMOONNMMLLBBCCDDEEWWVVUUTT ::;;<<==__^^]]\\22334455zz{{||}}ggffeedd**++,,--rrssttuu||{{zzyy44332211%%&&''((mmnnooppjjiihhggPPQQRRSS~~}}|00//..--$%%&&''(lmmnnooputtssrrq-,,++**) deeffggh}||{{zzy54433221\]]^^__`=<<;;::9 TUUVVWWXEDDCCBBALMMNNOOPMLLKKJJIDEEFFGGHFEEDDCCBlmmnnooufeeddccb55667788}}~~ddccbbaa--..//00uuvvwwxxllkkjjii$$##""!!%%&&''((mmnnooppttssrrqq,,++**)) eeffgghh||{{zzyy44332211]]^^__``<<;;::99 UUVVWWXX00//..--++,,--..SRRQQPPOEFFGGHHITSSRRQQP - - =>>??@@A\[[ZZYYX56677889}~~dccbbaa`-..//001uvvwwxxylkkjjiih$##""!! %&&''(()mnnooppqtssrrqqp,++**))( !effgghhiwvvuuoon@AABBCCDBBAA@@??VVWWXXYYCCBBAA@@ NNOOPPQQKKJJIIHHFFGGHHIISSRRQQPP - - >>??@@AA[[ZZYYXX66778899~~ccbbaa``..//0011vvwwxxyyxxwwvvuu00//..--))**++,,qqrrssttffeeddcc YYZZ[[\\|{{zzyyx,,++**))())**++,pqqrrsstqppoonnm)((''&&% !!""##$hiijjkklyxxwwvvu100//..-`aabbccd~~}98877665XYYZZ[[\A@@??>>= - - PQQRRSSTIHHGGFFEHIIJJKKLBAA@@??>!!"uvvwwxxybaa``__^99::;;<<``__^^]]11223344yyzz{{||hhggffee ))**++,,qqrrssttppoonnmm((''&&%%!!""##$$iijjkkllxxwwvvuu00//..--aabbccdd~~}}88776655YYZZ[[\\,,++**))//001122ONNMMLLKIJJKKLLMPOONNMMLABBCCDDEXWWVVUUT 9::;;<<=`__^^]]\12233445yzz{{||}hggffeed )**++,,-qrrssttupoonnmml(''&&%%$!""##$$%ijjkkllmnmmllkkjDEEFFGGH>>==<;:9ZZ[[\\]]??>>==<< - - RRSSTTUUGGFFEEDDJJKKLLMMOONNMMLLBBCCDDEEWWVVUUTT ::;;<<==__^^]]\\22334455zz{{||}}ttssrrqq,,++**))--..//00uuvvwwxxbbaa``__ - - ]]^^__``xwwvvuut((''&&%%,--..//0tuuvvwwxmllkkjji%$$##""!$%%&&''(lmmnnooputtssrrq-,,++**) deeffggh}||{{zzy54433221\]]^^__`=<<;;::9 TUUVVWWXEDDCCBBALMMNNOOP>==77665"##$$%%&yzz{{||}^]]\\[[Z ==>>??@@\\[[ZZYY55667788}}~~ddccbbaa--..//00uuvvwwxxllkkjjii$$##""!!%%&&''((mmnnooppttssrrqq,,++**)) eeffgghh||{{zzyy44332211]]^^__``~~}}||((''&&%%33445566KJJIIHHG MNNOOPPQLKKJJIIHEFFGGHHITSSRRQQP - - =>>??@@A\[[ZZYYX56677889}~~dccbbaa`-..//001uvvwwxxylkkjjiih$##""!! %&&''(()mnnooppqjiihhggfHIIJJKKL87766554^^__``aa;;::9988VVWWXXYYCCBBAA@@ NNOOPPQQKKJJIIHHFFGGHHIISSRRQQPP - - >>??@@AA[[ZZYYXX66778899~~ppoonnmm((''&&%%11223344yyzz{{||^^]]\\[[ - - aabbccddsrqpoonn$$##""!!01122334xyyzz{{|ihhggffe! ())**++,pqqrrsstqppoonnm)((''&&% !!""##$hiijjkklyxxwwvvu100//..-`aabbccd~~}98877665XYYZZ[[\A@@??>>= - - PQQRRSST54433221&''(())*}~~ZYYXWVUT - - AABBCCDDXXWWVVUU 99::;;<<``__^^]]11223344yyzz{{||hhggffee ))**++,,qqrrssttppoonnmm((''&&%%!!""##$$iijjkkllxxwwvvuu00//..--aabbccdd{{zzyyxx$$##""!!77==>>??GFFEEDDC - - QRRSSTTUHGGFFEEDIJJKKLLMPOONNMMLABBCCDDEXWWVVUUT 9::;;<<=`__^^]]\12233445yzz{{||}hggffeed )**++,,-qrrssttufeeddccb LMMNNOOP43322110bbccddee~~}}||77665544ZZ[[\\]]??>>==<< - - RRSSTTUUGGFFEEDDJJKKLLMMOONNMMLLBBCCDDEEWWVVUUTT ::;;<<==llkkjjii$$##""!!55667788}}~~ZZYYSSRReeffgghhmmllkkjj 45566778|}}~~eddccbba,--..//0tuuvvwwxmllkkjji%$$##""!$%%&&''(lmmnnooputtssrrq-,,++**) deeffggh}||{{zzy54433221\]]^^__`=<<;;::9 TUUVVWWX100//..-*++,,--.SSRRQQPPEEFFGGHHTTSSRRQQ - - ==>>??@@\\[[ZZYY55667788}}~~ddccbbaa--..//00uuvvwwxxllkkjjii$$##""!!%%&&''((mmnnooppttssrrqq,,++**)) eeffgghhwwvvuuoo@@AABBCCCBBAA@@? UVVWWXXYDCCBBAA@ MNNOOPPQLKKJJIIHEFFGGHHITSSRRQQP - - =>>??@@A\[[ZZYYX56677889}~~dccbbaa`-..//001uvvwwxxybaa``__^ - - PQQRRSSY~~}}||0//..--, !!ffgghhii{{zzyyxx33221100^^__``aa;;::9988VVWWXXYYCCBBAA@@ NNOOPPQQKKJJIIHHFFGGHHIISSRRQQPP - - >>??@@AAhhggffee 99::;;<>==<;:YZZ[[\\]@??>>==< - - QRRSSTTUHGGFFEEDIJJKKLLMPOONNMMLABBCCDDEXWWVVUUT 9::;;<<=`__^^]]\12233445yzz{{||}^]]\\[[ZYZZ[[\\]{{zzyyxx,++**))(""##$$%%jjkkllmmwwvvuutt//..--,,bbccddee~~}}||77665544ZZ[[\\]]??>>==<< - - RRSSTTUUGGFFEEDDJJKKLLMMOONNMMLLBBCCDDEEddccbbaa==>>??@@MMLLKKJJmmnnoouueeddccbb<==>>??@]\\[[ZZY45566778|}}~~eddccbba,--..//0tuuvvwwxmllkkjji%$$##""!$%%&&''(lmmnnooputtssrrq-,,++**) deeffggh}||{{zzy54433221\]]^^__`~~}}|)((''&&%23344556KKJJIIHHMMNNOOPPLLKKJJIIEEFFGGHHTTSSRRQQ - - ==>>??@@\\[[ZZYY55667788}}~~ddccbbaa--..//00uuvvwwxxllkkjjii$$##""!!%%&&''((mmnnooppjjiihhggHHIIJJKK98776655]^^__``a<;;::998 UVVWWXXYDCCBBAA@ MNNOOPPQLKKJJIIHEFFGGHHITSSRRQQP - - =>>??@@A\[[ZZYYX56677889}~~ZYYSSRRQ -]^^__``awwvvuuts(''&&%%$&&''(())nnooppqqssrrqqpp++**))(( !!ffgghhii{{zzyyxx33221100^^__``aa;;::9988VVWWXXYYCCBBAA@@ NNOOPPQQKKJJIIHHFFGGHHII``__^^]]AABBCCDDIIHHGGFF!!""vvwwxxyyaa``__^^@AABBCCDYXXWWVVU 899::;;>?GGFFEEDD - - QQRRSSTTHHGGFFEEIIJJKKLLPPOONNMMAABBCCDDXXWWVVUU 99::;;<<``__^^]]11223344yyzz{{||hhggffee ))**++,,qqrrssttffeeddcc LLMMNNOO44332211abbccdde~~}}|87766554YZZ[[\\]@??>>==< - - QRRSSTTUHGGFFEEDIJJKKLLMPOONNMMLABBCCDDEXWWVVUUT 9::;;<<=QPPOONNM - abbccdderqpoonnm$##""!! **++,,--rrssttuuoonnmmll''&&%%$$""##$$%%jjkkllmmwwvvuutt//..--,,bbccddee~~}}||77665544ZZ[[\\]]??>>==<< - - RRSSTTUUGGFFEEDDJJKKLLMM\\[[ZZYYEEFFGGHHEEDDCCBB##$$%%&&zz{{||}}]]\\[[ZZ -DEEFFGGHUTTSSRRQ - - <==>>??@]\\[[ZZY45566778|}}~~eddccbba,--..//0tuuvvwwxmllkkjji%$$##""!$%%&&''(lmmnnooputtssrrq-,,++**) deeffgghxwwvvuuo!?@@AABBCCCBBAA@@ UUVVWWXXDDCCBBAAMMNNOOPPLLKKJJIIEEFFGGHHTTSSRRQQ - - ==>>??@@\\[[ZZYY55667788}}~~ddccbbaa--..//00uuvvwwxxbbaa``__ - - PPQQRRSS~~}}|00//..-- !effgghhi|{{zzyyx43322110]^^__``a<;;::998 UVVWWXXYDCCBBAA@ MNNOOPPQLKKJJIIHEFFGGHHITSSRRQQP - - =>>??@@AMLLKKJJIeffgghhimllkkjji..//0011vvwwxxyykkjjiihh##""!! &&''(())nnooppqqssrrqqpp++**))(( !!ffgghhii{{zzyyxx33221100^^__``aa;;::9988VVWWXXYYCCBBAA@@ NNOOPPQQXXWWVVUU IIJJKKLLAA@@??>>''(())**~~YYXWVUTS - HIIJJKKLQPPOONNM @AABBCCDYXXWWVVU 899::;;>==<;YYZZ[[\\@@??>>== - - QQRRSSTTHHGGFFEEIIJJKKLLPPOONNMMAABBCCDDXXWWVVUU 99::;;<<``__^^]]11223344yyzz{{||^^]]\\[[YYZZ[[\\|{{zzyyx,,++**))!""##$$%ijjkkllmxwwvvuut0//..--,abbccdde~~}}|87766554YZZ[[\\]@??>>==< - - QRRSSTTUHGGFFEEDIJJKKLLMPOONNMMLABBCCDDEIHHGGFFEijjkkllmihhggffe22334455zz{{||}}ggffeedd**++,,--rrssttuuoonnmmll''&&%%$$""##$$%%jjkkllmmwwvvuutt//..--,,bbccddee~~}}||77665544ZZ[[\\]]??>>==<< - - RRSSTTUUTTSSRRQQ - - MMNNOOPP==776655++,,--..SRRQQPPOLMMNNOOPMLLKKJJIDEEFFGGHUTTSSRRQ - - <==>>??@]\\[[ZZY45566778|}}~~eddccbba,--..//0tuuvvwwxmllkkjji%$$##""!$%%&&''(lmmnnoopkjjiihhgGHHIIJJK:9877665]]^^__``<<;;::99 UUVVWWXXDDCCBBAAMMNNOOPPLLKKJJIIEEFFGGHHTTSSRRQQ - - ==>>??@@\\[[ZZYY55667788}}~~ZZYYSSRR ]]^^__``xwwvvuut((''&&%%%&&''(()mnnooppqtssrrqqp,++**))( !effgghhi|{{zzyyx43322110]^^__``a<;;::998 UVVWWXXYDCCBBAA@ MNNOOPPQLKKJJIIHEFFGGHHIEDDCCBBAmnnoouuveddccbba66778899~~ccbbaa``..//0011vvwwxxyykkjjiihh##""!! &&''(())nnooppqqssrrqqpp++**))(( !!ffgghhii{{zzyyxx33221100^^__``aa;;::9988VVWWXXYYPPOONNMM - - QQRRSSTT44332211//001122ONNMMLLK - - PQQRRSSTIHHGGFFEHIIJJKKLQPPOONNM @AABBCCDYXXWWVVU 899::;;>== - - QQRRSSTTHHGGFFEEIIJJKKLLPPOONNMMAABBCCDDXXWWVVUU 99::;;<>==< - - QRRSSTTUHGGFFEEDIJJKKLLMA@@??>>=!!""#vwwxxyyza``__^^]::;;<<==__^^]]\\22334455zz{{||}}ggffeedd**++,,--rrssttuuoonnmmll''&&%%$$""##$$%%jjkkllmmwwvvuutt//..--,,bbccddee~~}}||77665544ZZ[[\\]]~~}}||{{zzyyxxww##""!!==>>??@@FEEDDCCB - RSSTTUUVGFFEEDDCJKKLLMMNONNMMLLKBCCDDEEFWVVUUTTS :;;<<==>_^^]]\\[23344556z{{||}}~ZYYSSRRQeffgghhia``__^^]@AABBCCDvvuuoonnAABBCCDDBAA@@??>VWWXXYYZCBBAA@@? -NOOPPQQRKJJIIHHGFGGHHIIJSRRQQPPO - - >??@@AAB[ZZYYXXW6778899:~QPPOONNMijjkkllm]\\[[ZZYDEEFFGGHmmllkkjjEEFFGGHH>==<;:98Z[[\\]]^?>>==<<; - RSSTTUUVGFFEEDDCJKKLLMMNONNMMLLKBCCDDEEFWVVUUTTS :;;<<==>MLLKKJJImnnoouuvYXXWWVVU HIIJJKKLiihhggffIIJJKKLL77665544^__``aab;::99887VWWXXYYZCBBAA@@? -NOOPPQQRKJJIIHHGFGGHHIIJSRRQQPPO - - >??@@AABIHHGGFFE!!""#vwwxxyyzUTTSSRRQ - - LMMNNOOPeeddccbb MMNNOOPP33221100bccddeef~~}}||{76655443Z[[\\]]^?>>==<<; - RSSTTUUVGFFEEDDCJKKLLMMNONNMMLLKBCCDDEEFEDDCCBBA#$$%%&&'z{{||}}~QPPOONNM - - PQQRRSSTaa``__^^ - - QQRRSSYY~~}}||{//..--,, !!"fgghhiij{zzyyxxw3221100/^__``aab;::99887VWWXXYYZCBBAA@@? -NOOPPQQRKJJIIHHGFGGHHIIJA@@??>>='(())**+~MLLKKJJI TUUVVWWX]]\\[[ZZZZ[[\\]]{zzyyxxw++**))(("##$$%%&jkkllmmnwvvuutts/..--,,+bccddeef~~}}||{76655443Z[[\\]]^?>>==<<; - RSSTTUUVGFFEEDDCJKKLLMMN=7766554+,,--../IHHGGFFEXYYZZ[[\YYSSRRQQ - -^^__``aawvvuutsr''&&%%$$&''(())*nooppqqrsrrqqppo+**))((' !!"fgghhiij{zzyyxxw3221100/^__``aab;::99887VWWXXYYZCBBAA@@? -NOOPPQQR43322110/0011223EDDCCBBA\]]^^__`PPOONNMM bbccddeeqpoonnmm##""!! *++,,--.rssttuuvonnmmllk'&&%%$$#"##$$%%&jkkllmmnwvvuutts/..--,,+bccddeef~~}}||{76655443Z[[\\]]^?>>==<<; - RSSTTUUV0//..--,34455667A@@??>>=`aabbccdLLKKJJIIffgghhiillkkjjii.//00112vwwxxyyzkjjiihhg#""!! &''(())*nooppqqrsrrqqppo+**))((' !!"fgghhiij{zzyyxxw3221100/^__``aab;::99887VWWXXYYZ,++**))(7==>>??@=<<;;::9 deeffgghHHGGFFEEjjkkllmmhhggffee23344556z{{||}}~gffeeddc*++,,--.rssttuuvonnmmllk'&&%%$$#"##$$%%&jkkllmmnwvvuutts/..--,,+bccddeef~~}}||{76655443Z[[\\]]^~~}}||{(''&&%%$@AABBCCD~~}98877665 !!""##$hiijjkklDDCCBBAAnnoouuvvddccbbaa6778899:~cbbaa``_.//00112vwwxxyyzkjjiihhg#""!! &''(())*nooppqqrsrrqqppo+**))((' !!"fgghhiij{zzyyxxw3221100/^__``aab{zzyyxxw$##""!!DEEFFGGH}||{{zzy54433221$%%&&''(lmmnnoop@@??>>==!!""##wwxxyyzz``__^^]] :;;<<==>_^^]]\\[23344556z{{||}}~gffeeddc*++,,--.rssttuuvonnmmllk'&&%%$$#"##$$%%&jkkllmmnwvvuutts/..--,,+bccddeefwvvuuoonHIIJJKKLyxxwwvvu100//..-())**++,pqqrrsst77665544$$%%&&''{{||}}~~\\[[ZZYY - - >??@@AAB[ZZYYXXW6778899:~cbbaa``_.//00112vwwxxyyzkjjiihhg#""!! &''(())*nooppqqrsrrqqppo+**))((' !!"fgghhiijnmmllkkjLMMNNOOPuttssrrq-,,++**),--..//0tuuvvwwx33221100(())**++XWVUTSSR BCCDDEEFWVVUUTTS :;;<<==>_^^]]\\[23344556z{{||}}~gffeeddc*++,,--.rssttuuvonnmmllk'&&%%$$#"##$$%%&jkkllmmnjiihhggfPQQRRSSYqppoonnm)((''&&%01122334xyyzz{{|//..--,,,,--..//RQQPPOONFGGHHIIJSRRQQPPO - - >??@@AAB[ZZYYXXW6778899:~cbbaa``_.//00112vwwxxyyzkjjiihhg#""!! &''(())*nooppqqrfeeddccb YZZ[[\\]mllkkjji%$$##""!45566778|}}~~++**))((00112233NMMLLKKJJKKLLMMNONNMMLLKBCCDDEEFWVVUUTTS :;;<<==>_^^]]\\[23344556z{{||}}~gffeeddc*++,,--.rssttuuvbaa``__^ - - -]^^__``aihhggffe! 899::;;<''&&%%$$44556677JIIHHGGF -NOOPPQQRKJJIIHHGFGGHHIIJSRRQQPPO - - >??@@AAB[ZZYYXXW6778899:~cbbaa``_.//00112vwwxxyyz^]]\\[[Z - abbccddeeddccbba<==>>??@fpvfpvXQJ`ےXQJ`ےltbbdQZ|pfH~~vJXQrbtlbtlf~Hf~HےHAbHAJltAJltJltf`vXf`vXQr˂pQr˂pbtlbtlf~Hf~HbHAbHAAJltAJltf`vXf`vXJXQrr˂p`|Zdf~HnXv`bHAZbHAZJltJlt`vXn`vXnr˂pr˂ptlJtlJf~Hf~HےHAZbHAZJltJltltb`vXn`vXnr˂pr˂ptlJtlJHfpvJ`ےbHAZtbdQZrAJlvXnvXnr˂pr˂plJtlJtf~Hf~HbHAZpbHAZpJltJltvXnvXnr˂pr˂plJtlJtf~Hf~HHAZpbHAZpJltddrtAnvpvpfHZHAbXQr˂lJtAlJtA~Hf~HfbHAZpbHAZpltbltbvXnvXn˂pZ˂pZlJtAlJtA~Hf~HfbHAZpbHAZpltbltbvXnvXnnXv`nXv`bHAZbHAZdQZ|drtAvppfے`˂pZHJtArdJtArdfpvfpvZp˂Zp˂bdQZ|bdQZ|bnvpnvpnvpZHAbZHAJtArdJtArdfpvfpvZp˂Zp˂bdQZ|bdQZ|nvpnvp˂pZHJXQrQtArdfpvf~Hp˂rp˂rbdQZ|bdQZ|vpfvpfZHAbZHAbtArdtArdfpvfpvp˂rp˂rbdQZ|bdQZ|nvpvpfvpfZHAbZHAےtArdtArdnXvbHAZpp˂r|drtbdQvpfHvpfHZHAbZHAbArd|Ard|fpvfpv˂rX˂rXbdQZ|bdQZ|vpfHvpfHZHAbZHAbArd|Ard|fpvfpv˂rX˂rXrtAJlJltfH~~f`JQrpZA`rd|rd|pvnpvn˂rXQ˂rXQdQZ|dQZ|vpfHvpfHHAbےHAbےrd|rd|pvnpvn˂rXQ˂rXQdQZ|dQZ|vpfHvpfHf~Hf~Hp˂rp˂rdrtAJJltfH~JXQrAbے`|ZdQ|ZdQnXv`nXv`rXQJ`rXQJ`ہdrtdrtfHfH~fے`JXے`JX`JXQ|ZdQ|ZdQnXv`nXv`rXQJ`rXQJ`ہdrtdrtfH~fH~Abbtl||ZdQnXv`fpvXQJ`ےXQJ`ےdrtAdrtAH~fH~fے`JXQے`JXQ|ZdQb|ZdQbnXv`nXv`XQJ`ےXQJ`ےdrtAdrtAfHfH~fے`JXQے`JXQ`JXQr|ZdQb|ZdQb`f~˂rXQXQJ`ptAJlZ|d~f`~f``JXQ`JXQZdQbtZdQbtnXv`nXv`QJ`ےQJ`ےdrtAdrtA~f`~f``JXQ`JXQZdQbtZdQbtnXv`nXv`QJ`ےQJ`ےtbdbdQZ|f`vXvXn˂pZHAJXQrbZdQbtZdQbtXv`fXv`fJ`ےJ`ےdrtAJdrtAJ~f`~f``JXQr`JXQrZdQbtZdQbtXv`fXv`fJ`ےJ`ےdrtAJdrtAJ~f`~f`fpvfpvXQJ`ےXQJ`ےltbbdQZ|f`vXZHAbہJXQrbtlbtlf~Hf~HbHAbHAAJltAJltf`vXf`vXQr˂pQr˂prbtlbtlbtlf~HfHbHAbHAAJltAJltf`vXf`vXpZHAZdQbtbtlf~fpۅnXv`bHAZbHAZJltJlt`vXn`vXnr˂pr˂ptlJtlJf~Hf~HbHAZbHAZJltJlt`vXn`vXnr˂pr˂pbtltlJtlJHfpvJ`p˂˂rXQtbdQZrtAJlvXnvXnr˂pr˂plJtlJtf~Hf~HbHAZpbHAZpJltJltvXnvXnr˂pr˂plJtlJtf~Hf~HbHAZpbHAZpQZ|ddrtAnvpvpfHbے`tlJlJtAlJf~HfHfpbHAZpbHAZpltbltbvXnvXn˂pZ˂pZlJtAlJtA~Hf~HfbHAZpbHAZpltbltbvXnvXnnXv`nXv`bHAZbHAZdQZ|lltbnvp`JXQZHAbJtArdJtArdfpvfpvZp˂Zp˂bdQZ|bdQZ|nvpnvpZHAbZHAbJtAdJtArdJfpvfpvfpvZp˂Zp˂bdQZ|bdQZ|nvpnvpbے`lJtJtArdvnXf~fpp˂rp˂rbdQZ|bdQZ|vpfvpfZHAbZHAbtArdtArdfpvfpvp˂rp˂rbdQZ|bdQZ|vpfvpfZHAbZHAbJtAdtArdfpv~HrXQJJ`ے|drtbdQvpfHvpfHZHAbZHAbArd|Ard|fpvfpv˂rX˂rXbdQZ|bdQZ|vpfHvpfHZHAbZHAbArd|Ard|fpvfpv˂rX˂rXrtAJlJltfH~~vpJXQrtAd|rd|pvnpvnvnr˂rXQ˂rXQdQZ|dQZ|vpfHvpfHHAbےHAbےrd|rd|pvnpvn˂rXQ˂rXQdQZ|dQZ|vpfHvpfHf~Hf~Hp˂rp˂rtbdQdQZ|fH~r˂pے`JXQ|ZdQ|ZdQnXv`nXv`rXQJ`rXQJ`ہdrtdrtfH~fH~˙ے`JXے`JX|ZdQ|ZdQnXv`nXv`nrXQJ`rXQJ`rXQJ`ہdrtdtAfH~fH~JXQrArd||ZdQv`fvnXXQJ`ےXQJ`ےdrtAdrtAH~fH~fے`JXQے`JXQ|ZdQb|ZdQbnXv`nXv`XQJ`ےXQJ`ےdrtAdrtAH~fH~fے`JXQے`JXQ|ZdQb|ZdQb~Hffpv`ےbbHAZptAJbdZ|AJl~f`~f``JXQ`JXQZdQbtZdQbtnXv`nXv`QJ`ےQJ`ےdrtAdrtA~f`~f``JXQ`JXQZdQbtZdQbtnXv`nXv`QJ`ےQJ`ےtbdbdQZ|lvpfے`˂pZHAZdQbtZdQbtXv`fXv`fXQJ`ےJ`ےJ`ےJdrtAJdtAJl~f`~f``JXQr`JXQrZdQbtZdQbtXv`fXv`fJ`ےJ`ےdrtAJdrtAJ~f`~f`fpvfpvXQJ`ےXQJ`ےZ|ddrtAJf`vXZHAbr˂pbtlbtlf~Hf~HbHAbHAAJltAJltf`vXf`vXQr˂pQr˂pbtlbtlf~Hf~HےHAbHAJltAJltJltf`vXf`vXpZHAZdQbtbtl|~Hfpv`fbHAZbHAZJltJlt`vXn`vXnr˂pr˂ptlJtlJf~Hf~HbHAZbHAZJltJlt`vXn`vXnr˂pr˂ptlJtlJpvnnXv`HAZp˂˂rXQQZ|dtbvXnvXnr˂pr˂plJtlJtf~Hf~HbHAZpbHAZpJltJltvXnvXnr˂pr˂plJtlJtf~Hf~HbHAZpbHAZpQZ|ltbdfH~JXQrZbے`lJtAlJtA~Hf~HfHAZpbHAZpltbltbtbnvXnvXn˂pZ˂pZlJtAlJtA~Hf~HfbHAZpbHAZpltbltbvXnvXnnXv`nXv`bHAZbHAZrtAJlltbH~f`JXQZHAbJtArdJtArdfpvfpvZp˂Zp˂bdQZ|bdQZ|nvpnvpZHAbZHAbJtArdJtArdfpvfpvZp˂Zp˂bdQZ|bdQZ|bnvpnvpnvpbے`l|ZdQbtvnX~Hfpp˂rp˂rbdQZ|bdQZ|vpfvpfZHAbZHAbtArdtArdfpvfpvp˂rp˂rbdQZ|bdQZ|vpfvpfZHAbZHAbtArdtArdXv`ff~HrXQJJ`ےrtAJlnvpvpfHvpfZHAbZHAے`Ard|Ard|fpvfpv˂rX˂rXbdQZ|bdQZ|vpfHvpfHZHAbZHAbArd|Ard|fpvfpv˂rX˂rXtbdQQZ|df`vXHAbےJXQrrd|rd|pvnpvn˂rXQ˂rXQdQZ|dQZ|vpfvpfHvpfےHAbےHAے`rd|rd|pvnpvn˂rXQ˂rXQdQZ|dQZ|vpfHvpfHf~Hf~Hp˂rp˂rtbdQdQZ|``vXnr˂pZے`JXQ|ZdQ|ZdQnXv`nXv`rXQJ`rXQJ`ہdrtdrtfH~fH~˙ے`JXے`JX|ZdQ|ZdQnXv`nXv`rXQJ`rXQJ`ہdrtdrtfHfH~fے`JXJXQHAbZdQbtlJtv`fvnXXQJ`ےXQJ`ےdrtAdrtAH~fH~fے`JXQے`JXQ|ZdQb|ZdQbnXv`nXv`XQJ`ےXQJ`ےdrtAdrtAH~fH~fے`JXQے`JXQ|ZdQb|ZdQb~Hffpv`ےbbHAXQJtbdfHf`~f``JXQ`JXQJXQrZdQbtZdQbtnXv`nXv`QJ`ےQJ`ےdrtAdrtA~f`~f``JXQ`JXQZdQbtZdQbtnXv`nXv`QJ`ےQJ`ےZ|drtAJlnvp`JXQrZHAbZdQbtZdQbtXv`fXv`fJ`ےJ`ےdrtAJdrtAJHf`~f``JXQr`JXQrJXQrbZdQbtZdQbtXv`fXv`fJ`ےJ`ےdrtAJdrtAJ~f`~f`fpvfpvXQJ`ےXQJ`ےZ|dvXnvpfAb`Jr˂pbtlbtlf~Hf~HbHAbHAAJltAJltf`vXf`vXQr˂pQr˂pbtlbtlf~Hf~HbHAbHAAJltAJltf`vXf`vXQHAbۙے`JXlJtAArd|~Hfvnv`ffbHAZbHAZJltJlt`vXn`vXnr˂pr˂ptlJtlJf~Hf~HbHAZbHAZJltJlt`vXn`vXnr˂pr˂ptlJtlJpvnnXv`HAXQJ``ےJlQZ|dvXnvXnr˂pr˂pbtllJtlJf~HfHfpbHAZpbHAZpJltJltvXnvXnr˂pr˂plJtlJtf~Hf~HbHAZpbHAZprtAJltbdfH~ˀ˂pZ`JXQlJtAlJtA~Hf~HfbHAZpbHAZpltbltbvXnvXn˂pZ˂pZtlJlJtAlJf~HfHfpbHAZpbHAZpltbltbvXnvXnnXv`nXv`bHAZbHAZrtAdQZvpfHH~fXQr˂ZAb`JtArdJtArdfpvfpvZp˂Zp˂bdQZ|bdQZ|nvpnvpZHAbZHAbJtArdJtArdfpvfpvZp˂Zp˂bdQZ|bdQZ|nvpnvp`JXQQr˂prd|ZdQbtXv`fpvnp˂rp˂rbdQZ|bdQZ|vpfvpfZHAbZHAbtArdtArdfpvfpvp˂rp˂rbdQZ|bdQZ|vpfvpfZHAbZHAbtArdtArdXv`ppvnےbHAtbQZrtAJlvpfHvpfHZHAbZHAbJtAd|Ard|fpvfpvvn˂rX˂rXbdQZ|bdQZ|vpfHvpfHZHAbZHAbArd|Ard|fpvfpv˂rX˂rXtbdQQZ|lf`vXHHAbےr˂prd|rd|pvnpvn˂rXQ˂rXQdQZ|dQZ|vpfHvpfHHAbےHAbےtAd|rd|pvnpvnvnr˂rXQ˂rXQdQZ|dQZ|vpfHvpfHf~Hf~Hp˂rp˂r|dr~f``vXnpZHAbJXQr˂|ZdQ|ZdQnXv`nXv`rXQJ`rXQJ`ہdrtdrtfH~fH~˙ے`JXے`JX|ZdQ|ZdQnXv`nXv`rXQJ`rXQJ`ہdrtdrtfH~fH~r˂pZHAbZdQbtlJt~HfrXQJ`XQJ`ےXQJ`ےdrtAdtAJH~fH~fے`JXQے`JXQ|ZdQb|ZdQbnXv`nXv`XQJ`ےXQJ`ےdrtAdrtAH~fH~fے`JXQے`JXQ|ZdQb|ZdQbvnXXv`fZp˂drtAtbQZ~f`~f``JXQ`JXQZdQbtZdQbtnXv`nXv`rXQJ`QJ`ےQJ`ےdrtAdtAJl~f`~f``JXQ`JXQZdQbtZdQbtnXv`nXv`QJ`ےQJ`ےZ|dtbn~f``JXQrZHAbZdQbtZdQbtXv`fXv`fJ`ےJ`ےdrtAJdrtAJ~f`~f``JXQr`JXQrZdQbtZdQbtXv`fXv`fXQJ`ےJ`ےJ`ےJdrtAJdtAJl~f`~f`fpvfpvXQJ`ےXQJ`ےtAJlvXnvp`ے`JpZHAbtlbtlf~Hf~HbHAbHAAJltAJltf`vXf`vXQr˂pQr˂pbtlbtlf~Hf~HbHAbHAAJltAJltf`vXf`vXZHAbۙے`JXlJtAArdtpvnےHAZbHAZJltJltltb`vXn`vXnr˂pr˂ptlJtlJf~Hf~HbHAZbHAZJltJlt`vXn`vXnr˂pr˂ptlJtlJv`f~HfrXQJ`JltdrtAvXnvXnr˂pr˂plJtlJtf~Hf~HHAZpbHAZpJltJlttbvXnvXnr˂pr˂plJtlJtf~Hf~HbHAZpbHAZprtAdQZ|vp`vXn˂pZA`JXQlJtAlJtA~Hf~HfbHAZpbHAZpltbltbvXnvXn˂pZ˂pZlJtAlJtA~Hf~HfHAZpbHAZpltbltbtbnvXnvXnnXv`nXv`bHAZbHAZtbdQZvp`vvXnXQr˂bے`JtArdJtArdfpvfpvZp˂Zp˂bdQZ|bdQZ|nvpnvpZHAbZHAbJtArdJtArdfpvfpvZp˂Zp˂bdQZ|bdQZ|nvpnvp`JXQQr˂prdtllJfpXv`fp˂rp˂rbdQZ|bdQZ|nvpvpfvpfZHAbZHAےtArdtArdfpvfpvp˂rp˂rbdQZ|bdQZ|vpfvpfZHAbZHAbtArdtArd~HfppvnےbHAbdQZ|JltvpfHvpfHZHAbZHAbArd|Ard|fpvfpv˂rX˂rXbdQZ|bdQZ|nvpvpfHvpfZHAbZHAے`Ard|Ard|fpvfpv˂rX˂rXdrtvXnۅvpfHb`JXr˂pZrd|rd|pvnpvn˂rXQ˂rXQdQZ|dQZ|vpfHvpfHHAbےHAbےrd|rd|pvnpvn˂rXQ˂rXQdQZ|dQZ|vpfvpfHvpfےf~Hf~Hp˂rp˂r|drXnvvpfHpZHAbJXQr˂|ZdQ|ZdQnXv`nXv`rXQJ`rXQJ`ہdrtdrtfH~fH~˙ے`JXے`JX|ZdQ|ZdQnXv`nXv`rXQJ`rXQJ`ہdrtdrtfH~fH~r˂p``JXQJtArdvnv~HfXQJ`ےXQJ`ےdrtAdrtAfHfH~fے`JXQے`JXQ`JXQr|ZdQb|ZdQbnXv`nXv`XQJ`ےXQJ`ےdrtAdrtAH~fH~fے`JXQے`JXQ|ZdQb|ZdQbvnXXv`pZp˂drtAbdQZ|~f`~f``JXQ`JXQZdQbtZdQbtnXv`nXv`QJ`ےQJ`ےdrtAdrtAfHf`~f``JXQ`JXQJXQrZdQbtZdQbtnXv`nXv`QJ`ےQJ`ےAJltvpfH~f`Qr˂pAb`JZdQbtZdQbtXv`fXv`fJ`ےJ`ےdrtAJdrtAJ~f`~f``JXQr`JXQrZdQbtZdQbtXv`fXv`fJ`ےJ`ےdrtAJdrtAJHf`~f``JXQHAfpvfpvXQJ`ےXQJ`ےtAJlpfH~~f`JQrpZHAbbtlbtlf~HfHbHAbHAAJltAJltf`vXf`vXQr˂pQr˂pbtlbtlf~Hf~HbHAbHAAJltAJltf`vXf`vXJXQrr˂p|Zdf~HpvnbHAZbHAZJltJlt`vXn`vXnr˂pr˂pbtltlJtlJf~HfHfbHAZbHAZJltJlt`vXn`vXnr˂pr˂ptlJtlJv`fvnrbHAZJltdrtAvXnvXnr˂pr˂plJtlJtf~Hf~HbHAZpbHAZpJltJltvXnvXnr˂pr˂pbtllJtlJf~HfHfpbHAZpbHAZpbdQZ|~f`vXnZHAbXQr˂lJtAlJtA~Hf~HfbHAZpbHAZpltbltbvXnvXn˂pZ˂pZlJtAlJtA~Hf~HfbHAZpbHAZpltbltbvXnvXnbے`nXv`nXv`bHAZJlttdrtAf`vvXn˂pZHJAdJtArdJfpvfpvfpvZp˂Zp˂bdQZ|bdQZ|nvpnvpZHAbZHAbJtArdJtArdfpvfpvZp˂Zp˂bdQZ|bdQZ|nvpnvp˂pZHZHAbQbtlfpvvf~Hp˂rp˂rbdQZ|bdQZ|vpfvpfZHAbZHAbJtAdtArdfpvfpvpvnp˂rp˂rbdQZ|bdQZ|vpfvpfZHAbZHAbtArdtArd~HXvXQJ`pp˂rbdQZ|JltvpfHvpfHZHAbZHAbArd|Ard|fpvfpv˂rX˂rXbdQZ|bdQZ|vpfHvpfHZHAbZHAbJtAd|Ard|fpvfpvvn˂rX˂rXdrtvXnۅvp`ے`JXpZHAbrd|rd|pvnpvn˂rXQ˂rXQdQZ|dQZ|vpfHvpfHHAbےHAbےrd|rd|pvnpvn˂rXQ˂rXQdQZ|dQZ|vpfHvpfHJXQrf~Hp˂rp˂rdrtAJJltXnvvpfHAbے`|ZdQ|ZdQnXv`nXv`nrXQJ`rXQJ`rXQJ`ہdrtdtAfH~fH~˙ے`JXے`JX|ZdQ|ZdQnXv`nXv`rXQJ`rXQJ`ہdrtdrtfH~fH~Abے``JXQJtArdnXv`fpvXQJ`ےXQJ`ےdrtAdrtAH~fH~fے`JXQے`JXQ|ZdQb|ZdQbnXv`nXv`rXQJ`XQJ`ےXQJ`ےdrtAdtAJH~fH~fے`JXQے`JXQ|ZdQb|ZdQb`f~˂rXQXQJ`ےrAJlbdQZ|~f`~f``JXQ`JXQZdQbtZdQbtnXv`nXv`QJ`ےQJ`ےdrtAdrtA~f`~f``JXQ`JXQZdQbtZdQbtnXv`nXv`rXQJ`QJ`ےQJ`ےAJltvp`vXvXnQr˂pے`JZdQbtZdQbtXv`fXv`fJ`ےJ`ےdrtAJdrtAJ~f`~f``JXQr`JXQrZdQbtZdQbtXv`fXv`fJ`ےJ`ےdrtAJdrtAJ~f`~f`˂pZHAbے`JXQr˂p`tlJJfpvv`f󂀉rXQrXQQZ|dQZ|dvpfHvpfHvpfے`Abے`Aے`rd|rd|vnXvnXrXQrXQQZ|dQZ|dvpfHvpfHb˂pۑpJAHrHr󙐂ˁXnvˍXnvˍtbAdZ˂p`JJXQrtArdnvf~HfpJ`ےJ`ےrtAJlrtAJlf`~f`JXQrJXQrJXQrbtZdQbtZdQbtv`fv`fJ`ےJ`ےrtAJlrtAJl~f`~f`ZHAb󙐂ˁ`Z`ZQXbpfH~pfH~|drXQr˂˂pZHA|ZdQb~HfpvnvfbHAZpbHAZpˑtbdtbdvXnvXnۉ˂pZH˂pZHlJtlJtAlJfp~HfpHfpbHAZpbHAZpˑtbdtbdvXnvXnۙے`JXQXb㉀ۑp`Zf۝`vf۝`vQtJlpZHAbbے`tlJvnX~HfrXQrXQQZ|dQZ|dvpfHvpfHAbے`Abے`Ad|rd|vnXvnXvnrXrXQrXQQZ|dQZ|dvpfHvpfHQr˂pۑp`ZQQXb㉀XnvˍXnvˍtbAdZے`JJXQrtArdv`fpvnJ`ےJ`ےrtAJlrtAJl~f`~f`JXQrJXQrZdQbtZdQbtv`fv`fQJ`ےJ`ےJ`ےJlrtAJltAJl~f`~f`ZHAbXb㉀ۑۑpJAHrpfH~p|dr|drXQr˂˂p`J|ZdQtA~HfpXv`fbHAZpbHAZpˑtbdtbdvXnvXnۉ˂pZH˂pZHlJtAlJtA~Hfp~HfpHAZpbHAZpˑtbdtbdtbnvXnvXnۙے`JXpJAHr󙐂ˁ`Zf۝`vQtJlQtJlpZHAbXQrbtrd|vnX~HfrXQrXQQZ|dQZ|dvpfHvpfHAbے`Abے`rd|rd|vnXvnXrXQrXQQZ|dQZ|dvpfHvpfHvpfZHQHAbېˁ`ZQQXb㉀XnvˍtbAdZtbAdZ˂pl|ZZdQbtv`f~pvnJ`ےJ`ےrtAJlrtAJl~f`~f`JXQrJXQrZdQbtZdQbtv`fv`fJ`ےJ`ےrtAJlrtAJlf`~f`Abے``JXQXb㉀ۑۑpJAHpfH~|dr|drZHAbdQbtlJtAfpvXv`fbHAZpbHAZpˑtbdtbdvXnvXnۉ˂pZH˂pZHlJtAlJtA~Hfp~HfpbHAZpbHAZpˑtbdtbdvXnvXnہJXQrr˂ppJAHrf۝`vf۝`vQtJlQtJlے`JXQlJtArrd|nXv`~fpvrXQrXQQZ|dQZ|dvpfHvpfHAbے`Abے`rd|rd|vnXvnXrXQrXQQZ|dQZ|dvpfHvpfH˂pZHZHAbېۑpJXnvˍXnvˍtbAdZtbAdZr˂pd|ZZdQbtf~HnXv`J`ےJ`ےrtAJlrtAJl~f`~f`JXQrJXQrZdQbtZdQbtv`fv`fJ`ےJ`ےrtAJlrtAJl~f`~f`Abے``JXQAHr󙐂pfH~pfH~|dr|drZHAbdQbtl|Zfpvf~HbHAZpbHAZpˑtbdtbdvXnvXnۉ˂pZH˂pZHlJtAlJtA~Hfp~HfpbHAZpbHAZpˑtbdtbdvXnvXnہJXQrr˂p`ˁ`ZQXbf۝`vf۝`vQtJlQtJlے`JXQl|ZdQdQbtnXv`fpvrXQrXQQZ|dQZ|dvpfHvpfHAbے`Abے`rd|rd|vnXvnXrXQrXQQZ|dQZ|dvpfHvpfH˂p`JXQr㉀ۑpJXnvˍXnvˍtbAdZtbAdZHAbےbtllJtArf~HnXv`J`ےJ`ےrtAJlrtAJl~f`~f`JXQrJXQrZdQbtZdQbtv`fv`fJ`ےJ`ےrtAJlrtAJl~f`~f`JXQrˉ˂pZHAHr󙐂pfH~pfH~|dr|dr`JXQrJtArdd|ZfvnXffpbHAZpbHAZpˑtbdtbdvXnvXnۉ˂pZH˂pZHlJtAlJtA~Hfp~HfpbHAZpbHAZpˑtbdtbdvXnvXnۂpZHAAbے`ˁ`ZQXAf۝`vf۝`vQtJlQtJl˂pZ|ZdQdQbtv`fvnrXrXQrXQQZ|dQZ|dvpfHvpfHAbے`Abے`rd|rd|vnXvnXrXQrXQQZ|dQZ|dvpfHvpfHbے`JXQrHr󙐂ˁXnvˍXnvˍtbAdZtbAdZHAbےbtllJtAr~HfpQJ`ےJ`ےJ`ےJlrtAJltAJl~f`~f`JXQrJXQrZdQbtZdQbtv`fv`fJ`ےJ`ےrtAJlrtAJl~f`~f`JXQrˉ˂p`Z`ZQXbpfH~pfH~|dr|dr`JXQrJtArddtlvnXHAZpbHAZpˑtbdtbdtbnvXnvXnۉ˂pZH˂pZHlJtAlJtA~Hfp~HfpbHAZpbHAZpˑtbdtbdvXnvXnۂpZHAQXb㉀ۑpJAf۝`vf۝`vQtJlQtJlt \ No newline at end of file diff --git a/vendor/endroid/qr-code/assets/data/qrv33_2.dat b/vendor/endroid/qr-code/assets/data/qrv33_2.dat deleted file mode 100755 index cc3686817..000000000 --- a/vendor/endroid/qr-code/assets/data/qrv33_2.dat +++ /dev/null @@ -1,297 +0,0 @@ -}~}~}~}~yzyzyzyzwxwxwxwxststststoopopoponmnmnmnmjijijijihghghghg}~}~}~}~yzyzyzyzwxwxwxwxststststpopopoponmnmnmnmjijijijihghghghg}~}~}~}~yzyzyzyzwxwxwxwxststststpopopoponmnmnmnmjijijijihghghghg}~}~}~}~yzyzyzyzwxwxwxwxststststpopopoponmnmnmnmjijijijihghghghg}~}~}~}~yzyzyzyzwxwxwxwxststststpopopoponmnmnmnmjijijijihghghghg}~}~}~}~yzyzyzyzwxwxwxwxststststpopopoponmnmnmnmjijijijihghghghg}~}~}~}~yzyzyzyzwxwxwxwxststststooooopopnmnmnmnmjijijijihghghghg}~}~}~}~yzyzyzyzwxwxwxwxststststopopopopnmnmnmnmjijijijihghghghg}~}~}~}~yzyzyzyzwxwxwxwxststststopopopopnmnmnmnmjijijijihghghghg}~}~}~}~yzyzyzyzwxwxwxwxststststopopopopnmnmnmnmjijijijifefefefe}~}~}~}~yzyzyzyzwxwxwxwxststststopopopopnmnmnmnmjijijijifefefefe}~}~}~}~yzyzyzyzwxwxwxwxststststopopopopnmnmnmnmjijijijifefefefedcdcdcdc}~}~}~}~yzyzyzyzwxwxwxwxststststopoooooolklklklkjijijijifefefefedcdcdcdc}~}~}~}~yzyzyzyzwxwxwxwxststststpopopopolklklklkjijijijifefefefedcdcdcdc}~}~}~}~yzyzyzyzwxwxwxwxststststpopopopolklklklkjijijijifefefefedcdcdcdc}~}~}~}~yzyzyzyzwxwxwxwxststststpopopopolklklklkjijijijifefefefedcdcdcdc}~}~}~}~yzyzyzyzwvuvuvuvststststpopopopolklklklkjijijijifefefefedcdcdcdc}~}~}~}~yzyzyzyzuvuvuvuvststststpopopopolklklklkjijijijifefefefedcdcdcdc}~}~}~}~yzyzyzyzuvuvuvuvststststpopopooolklklklkjijijijifefefefedcdcdcdc}|{|{|{|yzyzyzyzuvuvuvuvststststooopopoplklklklkjijijijifefefefedcdcdcdc{|{|{|{|yzyzyzyzuvuvuvuvststststopopopoplklklklkjijijijifefefefedcdcdcdc{|{|{|{|yzyzyzyzuvuvuvuvststststopopopoplklklklkjijijijifefefefedcdcdcdc{|{|{|{|yzyzyzyzuvuvuvuvststststopopopoplklklklkjijijijifefefefedcdcdcdc{|{|{|{|yzyzyzyzuvuvuvuvststststopopopoplklklklkjijijijifefefefedcdcdcdc{|{|{|{|yzyzyzyzuvuvuvuvststststopopopoplklklklkjijijijifefefefedcdcdcdc{|{|{|{|yzyzyzyzuvuvuvuvstststsroooooopolklklklkjijijijifefefefedcdcdcdc{|{|{|{|yzyzyzyzuvuvuvuvqrqrqrqrpopopopolklklklkjijijijifefefefedcdcdcdc{|{|{|{|yzyzyzyzuvuvuvuvqrqrqrqrpopopopolklklklkjijijijifefefefedcdcdcdc{|{|{|{|yzyzyzyzuvuvuvuvqrqrqrqrpopopopolklklklkjijijijifefefefedcdcdcdc{|{|{|{|yzyzyzyzuvuvuvuvqrqrqrqrpopopopolklklklkhghghghgfefefefedcdcdcdc{|{|{|{|yzyzyzyzuvuvuvuvqrqrqrqrpopooooolklklklkhghghghgfefefefedcdcdcdc{|{|{|{|yzyzyzyzuvuvuvuvqrqrqrqrpopopopolklklklkhghghghgfefefefedcdcdcdc{|{|{|{|yzyzyzyzuvuvuvuvqrqrqrqrnmnmnmnmlklklklkhghghghgfefefefedcdcdcdc{|{|{|{|yzyzyzyzuvuvuvuvqrqrqrqrnmnmnmnmlklklklkhghghghgfefefefedcdcdcdc{|{|{|{|yzyzyzyzuvuvuvuvqrqrqrqrnmnmnmnmlklklklkhghghghgfefefefedcdcdcdc{|{|{|{|yzyzyzyzuvuvuvuvqrqrqrqrnmnmnmnmlklklklkhghghghgfefefefedcdcdcdc{|{|{|{|yxwxwxwxuvuvuvuvqrqrqrqrnmnmnmnmlklklklkhghghghgfefefefedcdcdcdc{|{|{|{|wxwxwxwxuvuvuvuvqrqrqrqrnmnmnmnmlklklklkhghghghgfefefefebabababa{|{|{|{|wxwxwxwxuvuvuvuvqrqrqrqrnmnmnmnmlklklklkhghghghgfefefefebabababa~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvqrqrqrqrnmnmnmnmlklklklkhghghghgfefefefebabababa}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvqrqrqrqrnmnmnmnmlklklklkhghghghgfefefefebabababa}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvqrqrqrqrnmnmnmnmlklklklkhghghghgfefefefebabababa}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvqrqrqrqrnmnmnmnmlklklklkhghghghgfefefefebabababa}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvqrqrqrqrnmnmnmnmlklklklkhghghghgfefefefebabababa}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvqrqrqrqrnmnmnmnmlklklklkhghghghgfefefefebabababa}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvqrqrqrqrnmnmnmnmlklklklkhghghghgfefefefebabababa}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvqrqrqrqrnmnmnmnmlklklklkhghghghgdcdcdcdcbabababa}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvqrqrqrqrnmnmnmnmlklklklkhghghghgdcdcdcdcbabababa}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvqrqrqrqrnmnmnmnmlklklklkhghghghgdcdcdcdcbabababa}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvqrqrqrqrnmnmnmnmjijijijihghghghgdcdcdcdcbabababa}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvqrqrqrqrnmnmnmnmjijijijihghghghgdcdcdcdcbabababa}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvqrqrqrqrnmnmnmnmjijijijihghghghgdcdcdcdcbabababa}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvqrqrqrqrnmnmnmnmjijijijihghghghgdcdcdcdcbabababa}~}~}~}~{|{|{|{|wxwxwxwxutstststqrqrqrqrnmnmnmnmjijijijihghghghgdcdcdcdcbabababa}~}~}~}~{|{|{|{|wxwxwxwxststststqrqrqrqrnmnmnmnmjijijijihghghghgdcdcdcdcbabababa}~}~}~}~{|{|{|{|wxwxwxwxststststqrqrqpopnmnmnmnmjijijijihghghghgdcdcdcdcbabababa}~}~}~}~{zyzyzyzwxwxwxwxststststopopoooonmnmnmnmjijijijihghghghgdcdcdcdcbabababababababa^]^]^]^]\[\[\[\[XWXWXWXWSTSTSTSTQRQRQRQRMNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFABABABAB?@?@?@?>;<;<;<;<878787874343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!     babababa^]^]^]^]\[\[\[\[XWXWXWXWSTSTSTSTQRQRQRQRMNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFABABABAB=>=>=>=>;<;<;<;<878787874343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!     babababa^]^]^]^]\[\[\[\[XWXWXWXWSTSTSTSTQRQRQRQRMNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFABABABAB=>=>=>=>;<;<;<;<878787874343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!     babababa^]^]^]^]\[\[\[\[XWXWXWXWSTSTSTSSQRQRQRQRMNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEDABABABAB=>=>=>=>;<;<;<;<878777774343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!     babababa^]^]^]^]\[\[\[\[XWXWXWXWSSSSTSTSQRQRQRQRMNMNMNMNKLKLKLKLGHGHGHGHCDCDCDCDABABABAB=>=>=>=>;<;<;<;<787878784343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!     babababa^]^]^]^]\[\[\[\[XWXWXWXWTSTSTSTSQRQRQRQRMNMNMNMNKLKLKLKLGHGHGHGHCDCDCDCDABABABAB=>=>=>=>;<;<;<;<787878784343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!     babababa^]^]^]^]\[\[\[\[XWXWXWXWTSTSTSTSQRQRQRQRMNMNMNMNKLKLKLKJGHGHGHGHCDCDCDCDABABABAB=>=>=>=>;<;<;<;<787878784343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!     babababa^]^]^]^]\[\[\[\[XWXWXWXWTSTSTSTSQRQRQRQRMNMNMNMNIJIJIJIJGHGHGHGHCDCDCDCDABABABAB=>=>=>=>;<;<;<;<787878784343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%$#"!"!"!"!     babababa^]^]^]^]\[\[\[\[XWXWXWXWTSTSTSTSQRQRQRQRMNMNMNMNIJIJIJIJGHGHGHGHCDCDCDCDABABABAB=>=>=>=>;<;<;<;<787878784343434321212121.-.-.-.-,+,+,+,+('('('('$#$#$#$#"!"!"!"!     babababa^]^]^]^]\[\[\[\[XWXWXWXWTSTSTSTSQRQRQRQPMNMNMNMNIJIJIJIJGHGHGHGHCDCDCDCDABABABAB=>=>=>=>;<;<;<;<787878774343434321212121.-.-.-.-,+,+,+,+('('('('$#$#$#$#"!"!"!"!     babababa^]^]^]^]\[\[\[\[XWXWXWXWTSSSSSSTOPOPOPOPMNMNMNMNIJIJIJIJGHGHGHGHCDCDCDCDABABABAB=>=>=>=>;<;<;:9:777787874343434321212121.-.-.-.-,+,+,+*)('('('('$#$#$#$#"!"!"!"!     babababa^]^]^]^]\[\[\[\[XWXWXWXWSTSTSTSTOPOPOPOPMNMNMNMNIJIJIJIJGHGHGHGHCDCDCDCDABABABAB=>=>=>=>9:9:9:9:878787874343434321212121.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"!     babababa^]^]^]^]\[\[\[\[XWXWXWXWSTSTSTSTOPOPOPOPMNMNMNMNIJIJIJIJGHGHGHGHCDCDCDCDABABABAB=>=>=>=>9:9:9:9:878787874343434321212121.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"!     babababa^]^]^]^]\[\[\[\[XWXWXWXWSTSTSTSTOPOPOPOPMNMNMNMNIJIJIJIJGHGHGHGHCDCDCDCDABABABAB=>=>=>=>9:9:9:9:87878787434343432121210/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"!     babababa^]^]^]^]ZYZYZYZYXWXWXWXWSTSTSTSTOPOPOPOPMNMNMNMNIJIJIJIJGHGHGHGHCDCDCDCDABABABAB=>=>=>=>9:9:9:9:87878787434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"!     - -babababa^]^]^]^]ZYZYZYZYXWXWXWXWSTSTSTSTOPOPOPOPMNMNMNMNIJIJIJIJGHGHGHGHCDCDCDCDABABABAB=>=>=>=>9:9:9:9:87777787434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"!     - - - -babababa^]^]^]^]ZYZYZYZYXWXWXWXWSTSTSSSSOPOPOPOPMNMNMNMNIJIJIJIJGHGHGHGHCDCDCDCDABABABAB=>=>=>=>9:9:9:9:87878765434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"!     - - - -`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWSSTSTSTSOPOPOPOPMNMNMNMNIJIJIJIJGHGHGHGHCDCDCDCDABABABAB=>=>=>=>9:9:9:9:65656565434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"!     - - - -`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSOPOPOPOPMNMNMNMNIJIJIJIJGHGHGHGHCDCDCDCDABABABAB=>=>=>=>9:9:9:9:65656565434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"!     - - - -`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSOPOPOPOPMNMNMNMNIJIJIJIJGHGHGHGHCDCDCDCDABABABAB=>=>=>=>9:9:9:9:65656565434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"!     - - - -`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSOPOPOPOPMNMNMNMNIJIJIJIJGHGHGHGHCDCDCDCDABABABA@=>=>=>=>9:9:9:9:65656565434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"!     - - - -`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSOPOPOPOPMNMNMNMNIJIJIJIJGHGHGHGHCDCDCDCD?@?@?@?@=>=>=>=>9:9:9:9:65656565434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"!     - - - -`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSOPOPOPOPMNMNMNMNIJIJIJIJGHGHGHGHCDCDCDCD?@?@?@?@=>=>=>=>9:9:9:9:65656565434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"!     - - - -`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWVUSSSSSTSTOPOPOPOPMNMNMNMNIJIJIJIJGHGHGHGFCDCDCDCD?@?@?@?@=>=>=>=>9:9:9:9:65656565434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"!     - - - -`_`_`_`_^]^]^]^]ZYZYZYZYVUVUVUVUSTSTSTSTOPOPOPOPMNMNMNMNIJIJIJIJEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>9:9:9:9:65656565434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!      - - - -`_`_`_`_^]^]^]^]ZYZYZYZYVUVUVUVUSTSTSTSTOPOPOPOPMNMNMNMNIJIJIJIJEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>9:9:9:9:65656565434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#         - - - -`_`_`_`_^]^]^]^]ZYZYZYZYVUVUVUVUSTSTSTSTOPOPOPOPMNMNMNMLIJIJIJIJEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>9:9:9:9:65656565434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#         - - - -`_`_`_`_^]^]^]^]ZYZYZYZYVUVUVUVUSTSTSTSTOPOPOPOPKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>9:9:9:9:65656565434343430/0/0/0/.-.-.-.-*)*)*)*)('('('&%$#$#$#$#         - - - -`_`_`_`_^]^]^]^]ZYZYZYZYVUVUVUVUSTSSSSSTOPOPOPOPKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>9:9:9:9:65656565434343430/0/0/0/.-.-.-.-*)*)*)*)&%&%&%&%$#$#$#$#         - - - -`_`_`_`_^]^]^]^]ZYZYZYZYVUVUVUVUSTSTSTSROPOPOPOPKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>9:9:9:9:65656565434343430/0/0/0/.-.-.-.-*)*)*)*)&%&%&%&%$#$#$#$#         - - - -`_`_`_`_^]^]^]^]ZYZYZYZYVUVUVUVUQRQRQRQROPOPOPOPKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>9:9:9:9:65656565434343430/0/0/0/.-.-.-,+*)*)*)*)&%&%&%&%$#$#$#$#         - - - -`_`_`_`_^]^]^]^]ZYZYZYZYVUVUVUVUQRQRQRQROPOPOPOPKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>9:9:9:9:65656565434343430/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#         - - - -`_`_`_`_^]^]^]^]ZYZYZYZYVUVUVUVUQRQRQRQROPOPOPOPKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>9:9:9:9:65656565434343430/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#         - - - -`_`_`_`_^]^]^]^]ZYZYZYZYVUVUVUVUQRQRQRQROPOPOPOPKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>9:9:9:9:65656565434343210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#         - - - -`_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVUQRQRQRQROPOPOPOPKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>9:9:9:9:65656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#       - - - -`_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVUQRQRQRQROPOPOPOPKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>9:9:9:9:65656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#     - - - -`_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVUQRQRQRQROPOPOPOPKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>9:9:9:9:65656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#     - - - -`_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVUQRQRQRQROPOPOPOPKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=<9:9:9:9:65656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#     - - - -`_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVUQRQRQRQROPOPOPOPKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCD?@?@?@?@;<;<;<;<9:9:9:9:65656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#     - - - -`_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVUQRQRQRQROPOPOPOPKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCD?@?@?@?@;<;<;<;<9:9:9:9:65656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#     - - - -`_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVUQRQRQRQROPOPOPOPKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCB?@?@?@?@;<;<;<;<9:98787865656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#     - - - -`_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVUQRQRQRQROPOPOPOPKLKLKLKLIJIJIJIJEFEFEFEFABABABAB?@?@?@?@;<;<;<;<7877777765656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#     - - - -`_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVUQRQRQRQROPOPOPOPKLKLKLKLIJIJIJIJEFEFEFEFABABABAB?@?@?@?@;<;<;<;<8787878765656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#     - - - -`_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVUQRQRQRQROPOPOPOPKLKLKLKLIJIJIJIHEFEFEFEFABABABAB?@?@?@?@;<;<;<;<8787878765656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#     - - - -`_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVUQRQRQRQROPOPOPOPKLKLKLKLGHGHGHGHEFEFEFEFABABABAB?@?@?@?@;<;<;<;<8787878765656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#"!     - - - -`_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVUQRQRQRQROPOPOPOPKLKLKLKLGHGHGHGHEFEFEFEFABABABAB?@?@?@?@;<;<;<;<8787878765656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%"!"!"!"!     - - - -`_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVUQRQRQRQROPOPOPONKLKLKLKLGHGHGHGHEFEFEFEFABABABAB?@?@?@?@;<;<;<;<8787878765656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%"!"!"!"!     - - - -`_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVUQRQRQRQRMNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFABABABAB?@?@?@?@;<;<;<;<8787877765656565212121210/0/0/0/,+,+,+,+*)*)*)('&%&%&%&%"!"!"!"!     - - - -`_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVUQRQRQRQRMNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFABABABAB?@?@?@?@;<;<;<;<7778787865656565212121210/0/0/0/,+,+,+,+('('('('&%&%&%&%"!"!"!"!     - - - -`_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVUQRQRQRQRMNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFABABABAB?@?@?@?@;<;<;<;<7878787865656565212121210/0/0/0/,+,+,+,+('('('('&%&%&%&%"!"!"!"!     - - - -`_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVUQRQRQRQRMNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFABABABAB?@?@?@?@;<;<;<;<7878787865656565212121210/0/0/.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!     - - - -`_`_`_`_\[\[\[\[XWXWXWXWVUVUVUVUQRQRQRQRMNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFABABABAB?@?@?@?@;<;<;<;<787878786565656521212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!     - - `_`_`_`_\[\[\[\[XWXWXWXWVUVUVUVUQRQRQRQRMNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFABABABAB?@?@?@?@;<;<;<;<787878786565656521212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!     `_`_`_`_\[\[\[\[XWXWXWXWVUVUTSTSQRQRQRQRMNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFABABABAB?@?@?@?@;<;<;<;<787878786565654321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!     ^]^]^]^]\[\[\[\[XWXWXWXWTSTSSSSSQRQRQRQRMNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFABABABAB?@?@?@?@;<;<;<;<777777874343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!    ^]^]^]^]\[\[\[\[XWXWXWXWSTSTSTSTQRQRQRQRMNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFABABABAB?@?@?@?@;<;<;<;<878787874343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!     ^]^]^]^]\[\[\[\[XWXWXWXWSTSTSTSTQRQRQRQRMNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFABABABAB?@?@?@?@;<;<;<;<878787874343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!     aabbccddPPQQRRSS01122334YXXWWVVUHIIJJKKLA@@??>>=~~}}|eeffgghh!!""##$$$$##""!!eeffgghhYYZZ[[\\45566778 UTTSSRRQLMMNNOOP - - =<<;;::9|{{zzyyxiijjkkll%%&&''(( iijjkkll]]^^__``899::;;< - - QPPOONNMPQQRRSST 98877665xwwvvuuommnnoopp))**++,,mmnnooppaabbccdd<==>>??@ MLLKKJJITUUVVWWX54433221onnmmllk~~}}qqrrsstt--..//00qqrrsstteeffgghh@AABBCCDIHHGGFFEXYYZZ[[\100//..-kjjiihhg||{{zzyyuuvvwwxx11223344~~}}uuvvwwxxiijjkkllDEEFFGGHEDDCCBBA\]]^^__`-,,++**)gffeeddcxxwwvvuuyyzz{{||55667788 ||{{zzyyyyzz{{||mmnnoouuHIIJJKKLA@@??>>=`aabbccd )((''&&%cbbaa``_tsrqpoon}}~~99::;;<< - - xxwwvvuu}}~~vvwwxxyyLMMNNOOP - - =<<;;::9~~}deeffggh !!""##$%$$##""!_^^]]\\[nmmllkkj==>>??@@ttssrrqqzz{{||}}PQQRRSST 98877665}||{{zzyhiijjkkl$%%&&''(! [ZZYYSSRjiihhggfAABBCCDDppoonnmm~~TUUVVWWX54433221yxxwwvvulmmnnoop())**++,RQQPPOONfeeddccbEEFFGGHHllkkjjiiXYYZZ[[\100//..-uttssrrqpqqrrsst,--..//0NMMLLKKJbaa``__^IIJJKKLLhhggffee\]]^^__`-,,++**)qppoonnmtuuvvwwx01122334JIIHHGGF^]]\\[[ZMMNNOOPP - - hhggffeeddccbbaa`aabbccd )((''&&%mllkkjjixyyzz{{|45566778 FEEDDCCBZYYXWVUTQQRRSSTT ddccbbaa``__^^]]deeffggh !!""##$%$$##""!ihhggffe|}}~~899::;;< - - BAA@@??>SSRRQQPPUUVVWWXX``__^^]]\\[[ZZYYhiijjkkl$%%&&''(! eddccbba<==>>??@ >==77665OONNMMLLYYZZ[[\\\\[[ZZYYXXWWVVUUlmmnnoop())**++,a``__^^]@AABBCCD54433221KKJJIIHH]]^^__``XXWWVVUUTTSSRRQQpqqrrsst,--..//0]\\[[ZZYDEEFFGGH100//..-GGFFEEDDaabbccdd TTSSRRQQPPOONNMM~~}}||tuuvvwwx01122334YXXWWVVUHIIJJKKL-,,++**)CCBBAA@@~~}}eeffgghh!!""##$$PPOONNMMLLKKJJII{{zzyyxx~~}}|xyyzz{{|45566778 UTTSSRRQLMMNNOOP - - )((''&&%??>>==<;||{{zzyyiijjkkll%%&&''((LLKKJJIIHHGGFFEEwwvvuuoo|{{zzyyx|}}~~899::;;< - - QPPOONNMPQQRRSST %$$##""!:9877665xxwwvvuummnnoopp))**++,,HHGGFFEEDDCCBBAAnnmmllkkxwwvvuut<==>>??@ MLLKKJJITUUVVWWX!54433221ttssrrqqqqrrsstt--..//00DDCCBBAA@@??>>==jjiihhggsrqpoonn@AABBCCDIHHGGFFEXYYZZ[[\100//..-ppoonnmmuuvvwwxx11223344@@??>>==<<;;::99ffeeddccmmllkkjjDEEFFGGHEDDCCBBA\]]^^__`-,,++**)llkkjjiiyyzz{{||55667788<<;;::9988776655bbaa``__iihhggffHIIJJKKLA@@??>>=`aabbccd  )((''&&%hhggffee}}~~99::;;<<8877665544332211^^]]\\[[eeddccbbLMMNNOOP - - =<<;;::9~~}deeffggh !!""##$ - - %$$##""!ddccbbaa==>>??@@4433221100//..--ZZYYSSRRaa``__^^PQQRRSST 98877665}||{{zzyhiijjkkl$%%&&''(! ``__^^]]AABBCCDD00//..--,,++**))QQPPOONN]]\\[[ZZTUUVVWWX54433221yxxwwvvulmmnnoop())**++, \\[[ZZYYEEFFGGHH,,++**))((''&&%%MMLLKKJJYYXWVUTSXYYZZ[[\100//..-uttssrrqpqqrrsst,--..//0 - - XXWWVVUUIIJJKKLL((''&&%%$$##""!!IIHHGGFFSRRQQPPO\]]^^__`-,,++**)qppoonnmtuuvvwwx01122334 TTSSRRQQMMNNOOPP$$##""!! EEDDCCBBONNMMLLK`aabbccd )((''&&%mllkkjjixyyzz{{|45566778 PPOONNMMQQRRSSTT AA@@??>>KJJIIHHG~~}deeffggh !!""##$%$$##""!ihhggffe|}}~~899::;;< - - LLKKJJIIUUVVWWXX==776655GFFEEDDC}||{{zzyhiijjkkl$%%&&''(! eddccbba<==>>??@!!"HHGGFFEEYYZZ[[\\44332211CBBAA@@?yxxwwvvulmmnnoop())**++,a``__^^]@AABBCCD"##$$%%&DDCCBBAA]]^^__`` 00//..--?>>==<;:uttssrrqpqqrrsst,--..//0]\\[[ZZYDEEFFGGH&''(())*@@??>>==aabbccdd - - ,,++**))98776655qppoonnmtuuvvwwx01122334YXXWWVVUHIIJJKKL*++,,--. - - <<;;::99~~}}eeffgghh - - - - ((''&&%%44332211mllkkjjixyyzz{{|45566778 UTTSSRRQLMMNNOOP.//00112 88776655||{{zzyyiijjkkll $$##""!!00//..--ihhggffe|}}~~899::;;< - - QPPOONNMPQQRRSST2334455644332211xxwwvvuummnnoopp,,++**))eddccbba<==>>??@ MLLKKJJITUUVVWWX677==>>?00//..--ttssrrqqqqrrsstt((''&&%%a``__^^]@AABBCCDIHHGGFFEXYYZZ[[\?@@AABBC,,++**))ppoonnmmuuvvwwxx$$##""!!]\\[[ZZYDEEFFGGHEDDCCBBA\]]^^__`CDDEEFFG ((''&&%%llkkjjiiyyzz{{|| - -   YXXWWVVUHIIJJKKLA@@??>>=`aabbccdGHHIIJJK!!""##$$$$##""!!hhggffee}}~~ !!""##$$ - - UTTSSRRQLMMNNOOP - - =<<;;::9~~}deeffgghKLLMMNNO%%&&''(( ddccbbaa%%&&''(( - - QPPOONNMPQQRRSST 98877665}||{{zzyhiijjkklOPPQQRRS))**++,,``__^^]]))**++,,MLLKKJJITUUVVWWX54433221yxxwwvvulmmnnoopSYYZZ[[\--..//00\\[[ZZYY--..//00 -IHHGGFFEXYYZZ[[\100//..-uttssrrqpqqrrsst\]]^^__`11223344XXWWVVUU 11223344 - EDDCCBBA\]]^^__`-,,++**)qppoonnmtuuvvwwx`aabbccd55667788 TTSSRRQQ!!""##$$55667788!!""A@@??>>=`aabbccd )((''&&%mllkkjjixyyzz{{|deeffggh99::;;<< - - PPOONNMM%%&&''((99::;;<<##$$%%&& - - =<<;;::9~~}deeffggh !!""##$%$$##""!ihhggffe|}}~~hiijjkkl==>>??@@LLKKJJII))**++,,==>>??@@''(())** 98877665}||{{zzyhiijjkkl$%%&&''(! eddccbbalmmnnoouAABBCCDDHHGGFFEE--..//00AABBCCDD++,,--..54433221yxxwwvvulmmnnoop())**++,a``__^^]uvvwwxxyEEFFGGHHDDCCBBAA11223344EEFFGGHH//001122100//..-uttssrrqpqqrrsst,--..//0]\\[[ZZYyzz{{||}IIJJKKLL@@??>>==55667788IIJJKKLL33445566-,,++**)qppoonnmtuuvvwwx01122334YXXWWVVU}~~MMNNOOPP - - <<;;::99~~}}99::;;<>?? )((''&&%mllkkjjixyyzz{{|45566778 UTTSSRRQQQRRSSTT 88776655||{{zzyy==>>??@@QQRRSSTT@@AABBCC !!""##$%$$##""!ihhggffe|}}~~899::;;< - - QPPOONNMUUVVWWXX44332211xxwwvvuuAABBCCDDUUVVWWXXDDEEFFGG$%%&&''(! eddccbba<==>>??@ MLLKKJJIYYZZ[[\\00//..--ttssrrqqEEFFGGHHYYZZ[[\\HHIIJJKK())**++,a``__^^]@AABBCCDIHHGGFFE]]^^__``,,++**))ppoonnmmIIJJKKLL]]^^__``LLMMNNOO,--..//0]\\[[ZZYDEEFFGGHEDDCCBBAaabbccdd ((''&&%%llkkjjiiMMNNOOPPQQRRSSTT 88776655wwvvuuoomnnooppq)**++,,-`__^^]]\ABBCCDDE43322110JJIIHHGG^^__``aa++**))((oonnmmllvvwwxxyy22334455 SRRQQPPONOOPPQQR - ;::99887wvvuuoonmllkkjjiUUVVWWXX44332211nnmmllkk~~}}|qrrssttu-..//001\[[ZZYYXEFFGGHHI0//..--,FFEEDDCCbbccddee !!''&&%%$$kkjjiihhzz{{||}}66778899 - - ONNMMLLKRSSTTUUV76655443nmmllkkjihhggffeYYZZ[[\\00//..--jjiihhgg|{{zzyyxuvvwwxxy12233445XWWVVUUTIJJKKLLM ,++**))(BBAA@@??~~}}||ffgghhii""##$$%%##""!! ggffeedd~~::;;<<== KJJIIHHGVWWXXYYZ3221100/jiihhggfeddccbba]]^^__``,,++**))ffeeddccxwwvvuutyzz{{||}56677889 TSSRRQQPMNNOOPPQ - - (''&&%%$>>==<;:9{{zzyyxxjjkkllmm&&''(())ccbbaa``>>??@@AA!!""##GFFEEDDCZ[[\\]]^/..--,,+feeddccba``__^^]aabbccdd ((''&&%%bbaa``__srqpoonn}~~9::;;<<= - - POONNMMLQRRSSTTU $##""!!87766554wwvvuuttnnooppqq**++,,--__^^]]\\BBCCDDEE$$%%&&''CBBAA@@?^__``aab+**))(('baa``__^]\\[[ZZYeeffgghh!!""##$$$$##""!!^^]]\\[[mmllkkjj=>>??@@ALKKJJIIHUVVWWXXY43322110ssrrqqpprrssttuu..//0011[[ZZYYXXFFGGHHII(())**++ -?>>==<<;bccddeef !!"'&&%%$$#^]]\\[[ZYXXWWVVUiijjkkll%%&&''(( ZZYYSSRRiihhggffABBCCDDEHGGFFEEDYZZ[[\\]0//..--,oonnmmllvvwwxxyy22334455WWVVUUTTJJKKLLMM,,--..// - ;::99887~~}}||{fgghhiij"##$$%%&#""!! ZYYSSRRQUTTSSRRQmmnnoopp))**++,,QQPPOONNeeddccbbEFFGGHHIDCCBBAA@]^^__``a,++**))(kkjjiihhzz{{||}}66778899 SSRRQQPPNNOOPPQQ0011223376655443{zzyyxxwjkkllmmn&''(())*QPPOONNMQPPOONNMqqrrsstt--..//00MMLLKKJJaa``__^^IJJKKLLM @??>>==>??@@AAKKJJIIHHVVWWXXYY==>>??@@/..--,,+srrqqpporssttuuv.//00112IHHGGFFEIHHGGFFEyyzz{{||55667788 EEDDCCBBYYXWVUTSQRRSSTTU 87766554|{{zzyyxijjkkllm%&&''(()__^^]]\\BBCCDDEEGGFFEEDDZZ[[\\]]AABBCCDD+**))(('onnmmllkvwwxxyyz23344556EDDCCBBAEDDCCBBA}}~~99::;;<< - - AA@@??>>SRRQQPPOUVVWWXXY43322110xwwvvuutmnnooppq)**++,,- -[[ZZYYXXFFGGHHIICCBBAA@@^^__``aaEEFFGGHH !!"'&&%%$$#kjjiihhgz{{||}}~6778899: A@@??>>=A@@??>>===>>??@@==776655ONNMMLLKYZZ[[\\]0//..--,tssrrqqpqrrssttu-..//001 - WWVVUUTTJJKKLLMM ??>>==< - - =7766554=<<;;::9AABBCCDD44332211KJJIIHHG]^^__``a,++**))(poonnmmluvvwwxxy12233445SSRRQQPPNNOOPPQQ - - ;;::9988~~}}||ffgghhiiMMNNOOPP&''(())*cbbaa``_>??@@AAB4332211098877665EEFFGGHH00//..--GFFEEDDCabbccdde !(''&&%%$lkkjjiihyzz{{||}56677889 - -OONNMMLLRRSSTTUU77665544{{zzyyxxjjkkllmmQQRRSSYY*++,,--._^^]]\\[BCCDDEEF0//..--,54433221IIJJKKLL,,++**))CBBAA@@?~~}}|effgghhi!""##$$%$##""!! hggffeed}~~9::;;<<= KKJJIIHHVVWWXXYY33221100wwvvuuttnnooppqqZZ[[\\]].//00112[ZZYYXXWFGGHHIIJ,++**))(100//..-MMNNOOPP - - ((''&&%%?>>==<;:|{{zzyyxijjkkllm%&&''(() dccbbaa`=>>??@@A!!""#GGFFEEDDZZ[[\\]]//..--,,ssrrqqpprrssttuu^^__``aa23344556WVVUUTTSJKKLLMMN -(''&&%%$-,,++**)QQRRSSTT $$##""!!98776655xwwvvuutmnnooppq)**++,,-`__^^]]\ABBCCDDE#$$%%&&'CCBBAA@@^^__``aa++**))((oonnmmllvvwwxxyybbccddee6778899: SRRQQPPONOOPPQQR - $##""!!)((''&&%UUVVWWXX44332211tssrrqqpqrrssttu-..//001\[[ZZYYXEFFGGHHI'(())**+ ??>>==< - - ONNMMLLKRSSTTUUV%$$##""!YYZZ[[\\00//..--poonnmmluvvwwxxy12233445XWWVVUUTIJJKKLLM+,,--../ - - ;;::9988~~}}||ffgghhii""##$$%%##""!! ggffeedd~~jjkkllmm>??@@AABKJJIIHHGVWWXXYYZ! ]]^^__``,,++**))lkkjjiihyzz{{||}56677889 TSSRRQQPMNNOOPPQ/001122377665544{{zzyyxxjjkkllmm&&''(())ccbbaa``nnoouuvvBCCDDEEFGFFEEDDCZ[[\\]]^aabbccdd  ((''&&%%hggffeed}~~9::;;<<= - - POONNMMLQRRSSTTU3445566733221100wwvvuuttnnooppqq**++,,--__^^]]\\wwxxyyzzFGGHHIIJCBBAA@@?^__``aab ~~}}eeffgghh!!""##$$ - - $$##""!!dccbbaa`=>>??@@ALKKJJIIHUVVWWXXY7==>>??@//..--,,ssrrqqpprrssttuu..//0011[[ZZYYXX{{||}}~~JKKLLMMN -?>>==<<;bccddeef !!" - - -||{{zzyyiijjkkll%%&&''(( `__^^]]\ABBCCDDEHGGFFEEDYZZ[[\\]@AABBCCD++**))((oonnmmllvvwwxxyy22334455WWVVUUTTNOOPPQQR - ;::99887~~}}||{fgghhiij"##$$%%& -  xxwwvvuummnnoopp))**++,, \[[ZZYYXEFFGGHHIDCCBBAA@]^^__``aDEEFFGGH !!''&&%%$$kkjjiihhzz{{||}}66778899 SSRRQQPPRSSTTUUV76655443{zzyyxxwjkkllmmn&''(())* - - ttssrrqqqqrrsstt--..//00 - - XWWVVUUTIJJKKLLM @??>>==>??@@AAKKJJIIHHZ[[\\]]^/..--,,+srrqqpporssttuuv.//00112 llkkjjiiyyzz{{||55667788 -POONNMMLQRRSSTTU 87766554|{{zzyyxijjkkllmPQQRRSSY**++,,--__^^]]\\BBCCDDEEGGFFEEDD^__``aab+**))(('onnmmllkvwwxxyyz23344556!!""#hhggffee}}~~99::;;<< - LKKJJIIHUVVWWXXY43322110xwwvvuutmnnooppqYZZ[[\\]..//0011[[ZZYYXXFFGGHHIICCBBAA@@bccddeef !!"'&&%%$$#kjjiihhgz{{||}}~6778899:#$$%%&&'ddccbbaa==>>??@@!!""HGGFFEEDYZZ[[\\]0//..--,tssrrqqpqrrssttu]^^__``a22334455WWVVUUTTJJKKLLMM ??>>==<<~~}}||{{fgghhiij"##$$%%&#""!! gffeeddc~:;;<<==>'(())**+``__^^]]AABBCCDD##$$%%&&DCCBBAA@]^^__``a,++**))(poonnmmluvvwwxxyabbccdde66778899 SSRRQQPPNNOOPPQQ - - ;;::9988zzyyxxwwjkkllmmn&''(())*cbbaa``_>??@@AAB+,,--../ \\[[ZZYYEEFFGGHH''(())** @??>>==>??@@AAKKJJIIHHVVWWXXYY33221100mmllkkjj~~}}||{rssttuuv.//00112[ZZYYXXWFGGHHIIJ34455667$%%&&''(TTSSRRQQMMNNOOPP//001122 87766554|{{zzyyxijjkkllm%&&''(() dccbbaa`mnnoouuvBBCCDDEEGGFFEEDDZZ[[\\]]//..--,,iihhggff{zzyyxxwvwwxxyyz23344556WVVUUTTSJKKLLMMN7==>>??@())**++,PPOONNMMQQRRSSTT3344556643322110xwwvvuutmnnooppq)**++,,-`__^^]]\vwwxxyyzFFGGHHIICCBBAA@@^^__``aa++**))((eeddccbbwvvuutsrz{{||}}~6778899: SRRQQPPONOOPPQQR@AABBCCD,--..//0LLKKJJIIUUVVWWXX77==>>??0//..--,tssrrqqpqrrssttu-..//001\[[ZZYYXz{{||}}~JJKKLLMM ??>>==< - - ONNMMLLKRSSTTUUVDEEFFGGH01122334HHGGFFEEYYZZ[[\\@@AABBCC,++**))(poonnmmluvvwwxxy12233445XWWVVUUT~NNOOPPQQ - - ;;::9988~~}}||ffgghhii""##$$%%##""!! ]]\\[[ZZllkkjjii>??@@AABKJJIIHHGVWWXXYYZHIIJJKKL45566778DDCCBBAA]]^^__``DDEEFFGG !(''&&%%$lkkjjiihyzz{{||}56677889 TSSRRQQPRRSSTTUU77665544{{zzyyxxjjkkllmm&&''(())YYSSRRQQhhggffeeBCCDDEEFGFFEEDDCZ[[\\]]^LMMNNOOP899::;;<@@??>>==aabbccddHHIIJJKK!""##$$%$##""!! hggffeed}~~9::;;<<= - - POONNMMLVVWWXXYY33221100wwvvuuttnnooppqq**++,,--PPOONNMMddccbbaaFGGHHIIJCBBAA@@?^__``aabPQQRRSSY<==>>??@<<;;::99~~}}eeffgghhLLMMNNOO%&&''(() dccbbaa`=>>??@@ALKKJJIIHZZ[[\\]]//..--,,ssrrqqpprrssttuu..//0011LLKKJJII``__^^]]JKKLLMMN -?>>==<<;bccddeefYZZ[[\\]@AABBCCD88776655||{{zzyyiijjkkllPPQQRRSS)**++,,-`__^^]]\ABBCCDDEHGGFFEED^^__``aa++**))((oonnmmllvvwwxxyy22334455HHGGFFEE\\[[ZZYYNOOPPQQR - ;::99887~~}}||{fgghhiij]^^__``aDEEFFGGH44332211xxwwvvuummnnooppYYZZ[[\\-..//001\[[ZZYYXEFFGGHHIDCCBBAA@bbccddee !!''&&%%$$kkjjiihhzz{{||}}66778899 DDCCBBAAXWVUTSSRRSSTTUUV76655443{zzyyxxwjkkllmmnabbccddeHIIJJKKL00//..--ttssrrqqqqrrsstt]]^^__``12233445XWWVVUUTIJJKKLLM @??>>==<~~}}||{ffgghhii""##$$%%##""!! ggffeedd~~::;;<<== - - @@??>>==RQQPPOONVWWXXYYZ3221100/wvvuuttsnooppqqreffgghhiLMMNNOOP,,++**))ppoonnmmuuvvwwxxaabbccdd56677889 TSSRRQQPMNNOOPPQ - - <;;::998{zzyyxxwjjkkllmm&&''(())ccbbaa``>>??@@AA77665544NMMLLKKJZ[[\\]]^/..--,,+srrqqpporssttuuvijjkkllmPQQRRSST((''&&%%llkkjjiiyyzz{{||eeffgghh9::;;<<= - - POONNMMLQRRSSTTU 87766554wvvuuoonnnooppqq**++,,--__^^]]\\BBCCDDEE33221100JIIHHGGF^__``aab+**))(('onnmmllkvwwxxyyzmnnoouuvTUUVVWWX$$##""!!hhggffee}}~~iijjkkll=>>??@@ALKKJJIIHUVVWWXXY43322110nmmllkkj~~}}||rrssttuu..//0011[[ZZYYXXFFGGHHII//..--,,FEEDDCCBbccddeef !!"'&&%%$$#kjjiihhgz{{||}}~vwwxxyyzXYYZZ[[\ ddccbbaammnnoouuABBCCDDEHGGFFEEDYZZ[[\\]0//..--,jiihhggf{{zzyyxxvvwwxxyy22334455WWVVUUTTJJKKLLMM ++**))((BAA@@??>~~}}||{fgghhiij"##$$%%&#""!! gffeeddc~z{{||}}~\]]^^__```__^^]]vvwwxxyyEFFGGHHIDCCBBAA@]^^__``a,++**))(feeddccbwwvvuutszz{{||}}66778899 SSRRQQPPNNOOPPQQ - - ''&&%%$$>==<;:98{zzyyxxwjkkllmmn&''(())*cbbaa``_~`aabbccd\\[[ZZYYzz{{||}}IJJKKLLM @??>>==>??@@AAKKJJIIHHVVWWXXYY33221100srrqqpporssttuuv.//00112[ZZYYXXWhiijjkkl TTSSRRQQQRRSSTTU 87766554|{{zzyyxijjkkllm%&&''(() ZYYSSRRQihhggffeBBCCDDEEGGFFEEDDZZ[[\\]]//..--,,onnmmllkvwwxxyyz23344556WVVUUTTSlmmnnoop - - PPOONNMMUVVWWXXY43322110xwwvvuutmnnooppq)**++,,-QPPOONNMeddccbbaFFGGHHIICCBBAA@@^^__``aa++**))((kjjiihhgz{{||}}~6778899: SRRQQPPOpqqrrsstLLKKJJIIYZZ[[\\]0//..--,tssrrqqpqrrssttu-..//001MLLKKJJIa``__^^]JJKKLLMM ??>>==< - - ONNMMLLK~~}tuuvvwwxHHGGFFEE]^^__``a,++**))(poonnmmluvvwwxxy12233445IHHGGFFE]\\[[ZZYNNOOPPQQ - - ;;::9988~~}}||ffgghhii""##$$%% - - ##""!! cbbaa``_>??@@AABKJJIIHHG}||{{zzyxyyzz{{|DDCCBBAAabbccdde !(''&&%%$lkkjjiihyzz{{||}56677889 EDDCCBBAYXWVUTSSRRSSTTUU77665544{{zzyyxxjjkkllmm&&''(())_^^]]\\[BCCDDEEFGFFEEDDCyxxwwvvu|}}~~@@??>>==~~}}||effgghhi!""##$$%$##""!! hggffeed}~~9::;;<<= - - A@@??>>=RRQQPPOOVVWWXXYY33221100wwvvuuttnnooppqq**++,,-- - -[ZZYYXXWFGGHHIIJCBBAA@@?~~}}||{uttssrrq - - <<;;::99{{zzyyxxijjkkllm%&&''(() dccbbaa`=>>??@@A=7766554NNMMLLKKZZ[[\\]]//..--,,ssrrqqpprrssttuu..//0011 WVVUUTTSJKKLLMMN -?>>==<<;{zzyyxxwqppoonnmfpvXQJ`ےf`vXbtlf~HAJltf`vXbtlےHAAJltZHAbۍf~HbHAZ`vXnr˂pnXv`bHAZH~fJtArdfpvbdQZ|nvpJtArdZp˂bdQZ|`JXQfpvp˂rvpfZHAbf~Hp˂r`vXn|ZdQnXv`drtfے`JX|ZdQrXQJ`ہdrtr˂p`nXv`XQJ`ےH~fے`JXQfpvXQJ`ےvpfbtlfHAJltQr˂pbtlbHAAJltJXQrf~HbHAZ`vXnr˂pnXv`bHAZH~fJtArdfpvbdQZ|ZHAbJtArdZp˂bdQZ|˂pZHfpvp˂rvpfZHAbf~Hp˂r`vXn|ZdQnrXQJ`drtے`JX|ZdQrXQJ`ہdrtAbے`nXv`XQJ`ےH~fے`JXQfpvXQJ`ےvp`btlےHAAJltQr˂pbtlbHAAJltJXQrf~fpېbHAZ`vXnr˂pnXv`bHAZvXnJtArdZp˂bdQZ|ZHAbJtArdZp˂bdQZ|˂pZHvnXp˂rvpfZHAےf~Hp˂rvpfH|ZdQrXQJ`ہdrtے`JX|ZdQrXQJ`ہdrtAbv`fXQJ`ےH~f`JXQrfpvXQJ`ے~f`btlbHAAJltQr˂pbtlbHAAJltpZHA~HfpېbHAZ`vXnbtlnXv`bHAZvXnJtArdZp˂bdQZ|ZHAbJtArdZp˂bdQZ|bے`vnXp˂rvpfJtAdf~Hp˂rvpfH|ZdQrXQJ`ہdrtے`JX|ZdQrXQJ`ہdrtJXQrv`fXQJ`ےH~f|ZdQbf~HfpvXQJ`ے~vbtlbHAAJltQr˂pbtlbHAAJltpZHA~HfvnJlt`vXntlJfpvnXv`Jltpfے`JtArdZp˂bdQZ|ZHAbJtArdZp˂bdQZ|bے`Xv`fbdQZ|vpftArdnXv`f~HdrtAJJXQr|ZdQrXQJ`ہdrtے`JX|ZdQrXQJ`ہdtAJXQHAb~HfdrtAH~f|ZdQbf~HfpvltbZHAbbtlbHAAJltQr˂pbtlbHAJltے`JXpvnJlt`vXntlJfpvnXv`dQZ|`JXQJtArdZp˂bdQZ|ZHAbJtArdZp˂bnvpQr˂pXv`fbdQZ|vpftArdnXv`f~HdrtAJr˂p|ZdQrXQJ`ہdrtے`JX|ZdQrXQJ`۝fHˑZHAb~HfdrtAH~f|ZdQbf~HfpvltbZHAbbtlbHAAJltQr˂pbtlbHAf`vXے`JXpvnJlt`vXntlJfpvnXv`dQZ|l`JXQJtArdZp˂bdQZ|ZHAbJfpvZp˂nvpQr˂pvf~HbdQZ|vpftArdnXv`f~HtbdQr˂pZ|ZdQrXQJ`ہdtAے`JXnXv`rXQJ`fH~ˑ`JXQfpvdrtAH~f|ZdQbf~HfpvZ|dAb`JbtlbHAJltQr˂pf~HbHAf`vXr˂pnXv`Jlt`vXntlJfpvnXv`rtAJlXQr˂JtArdZp˂bnvpZHAbfpvZp˂nvpZHAbۍf~HbdQZ|vpftArdnXv`f~HtbdQpZHAb|ZdQrXQJ`۝fH˙ے`JXnXv`rXQJ`fH~˒`JXQfpvdrtAH~f|ZdQbf~HfpvZ|dے`JbtlbHAf`vXQr˂pf~HbHAf`vXr˂p`nXv`Jlt`vXntlJfpvnXv`rtAdQZXQr˂JfpvZp˂nvpZHAbfpvZp˂nvpJXQrf~fpbdQZ|vpftArdnXv`f~H|drpZHAbnXv`rXQJ`fH~˙ے`JXnXv`rXQJ`fH~btl|vnXdrtAH~f|ZdQbf~HfpvtAJl璐JQrf~HbHAf`vXQr˂pf~HbHAf`vXZdQbtv`fJlt`vXntlJfpvnXv`tbdQZ˂pZHfpvZp˂nvpZHAbfpvZp˂nvplJt~HfpbdQZ|vpftArdnXv`f~H|drAbے`nXv`rXQJ`fH~˙ے`JXnXv`rXQJ`fH~Ard|vnXdrtAے`JXQ|ZdQbf~HfpvtAJl璁JXQrf~HbHAf`vXQr˂pf~HbHAf`vXZdQbtv`ffJltr˂ptlJfpvnXv`tdrtA˂pZHfpvZp˂nvpZHAbfpvZp˂nvpl|pvnbdQZ|ZHAbtArdnXv`f~HJltAbے`nXv`rXQJ`fH~˙ے`JXnXv`rXQJ`fH~ZdQbtrXQJ`drtAے`JXQ|ZdQbf~HfpvbdQZ|JXQrf~HbHAf`vXQr˂pf~HbHAf`vXlJtAےHAZJltr˂ptlJfpvnXv`drtAZHAbfpvZp˂nvpZHAbfpvZp˂nvprd|p˂rbdQZ|ZHAbtArdnXv`p˂rJltے`JXQnXv`rXQJ`fH~˙ے`JXnXv`rXQJ`fH~ZdQbtXQJ`ےdrtAے`JXQ|ZdQbfHfXQJ`ےbdQZ|r˂pf~HbHAf`vXQr˂pf~HJltf`vXlJtAbHAZJltr˂ptlJpvnbHAZltbZHAbfpvZp˂nvpZHAۅfpvbdQZ|nvprdtlp˂rbdQZ|ZHAbtArdrXQJ`p˂rdQZ|ے`JXQnXv`rXQJ`fH~˒`JXQnXv`drtfH~ˑJtArdXQJ`ےdrtAے`JXQ|ZdQbےHAZXQJ`ےdrtAJr˂pf~HbHAf`vXrbtlf~HAJltf`vX|ZdbHAZJltr˂ptlJp˂rbHAZltbZAb`fpvZp˂nvpJtAdfpvbdQZ|nvpQbtlp˂rbdQZ|ZHAbtArdXQJ`ےp˂rdQZ|`JXQr˅nXv`rXQJ`fH~˂|ZdQnXv`drtfH~ˑJtArdXQJ`ےdrtAے`JXQ|ZdQbbHAZXQJ`ےvXnpZHAf~HJltf`vXbtlf~HAJltf`vX|ZdbHAZJltr˂ptlJp˂rbHAZvpfHbے`fpvbdQZ|nvpJtArdfpvbdQZ|nvpQtArdp˂rbdQZ|ZHAbtArdXQJ`ےp˂r~f`JXQr˅nXv`drtfH~˂|ZdQnXv`drtfH~˂|ZdQXQJ`ےdrtAے`JXQ|ZdQbbHAZXQJ`ےvXnpZHAbf~HAJltf`vXbtlf~HAJltf`vXbtlbHAZJltr˂ptlJp˂rbHAZvp`vJAdfpvbdQZ|nvpJtArdfpvbdQZ|nvpJtArdp˂rbdQZ|ZHAbfpvXQJ`ےp˂rXnv|ZdQnXv`drtfH~˂|ZdQnXv`drtfH~˂|ZdQXQJ`ےdtAJے`JXQnXv`bHAZXQJ`ےpfH~btlf~HAJltf`vXbtlf~HAJltf`vXbtl|bHAZltbr˂pf~Hp˂rbHAZf`vJtArdfpvbdQZ|nvpJtArdfpvbdQZ|nvpZdQbtp˂rnvpZHAbfpvXQJ`ےp˂rXnv|ZdQnXv`drtfH~˂|ZdQnXv`drtfH~ˉlJtXQJ`ےfHfے`JXQnXv`bHAZXQJ`ےpfH~btlf~HAJltf`vXbtlf~HAJltf`vXArd|bHAZ`vXnr˂pf~Hp˂rbHAZvpJtArdfpvbdQZ|nvpJtArdfpvbdQZ|nvpZdQbtp˂rvpfZHAbfpvXQJ`ےp˂rfH~|ZdQnXv`drtfH~˂|ZdQnXv`drtfے`JXlJtXQJ`ےH~fے`JXQnXv`bHAZXQJ`ےf`vXbtlf~HAJltf`vXbtlfHAJltQHAbArdt琙bHAZ`vXnr˂pf~Hp˂rbHAZnvpJtArdfpvbdQZ|nvpJtArdfpvbdQZ|`JXQlJfpp˂rvpfZHAbfpvXQJ`ےp˂rfH~|ZdQnXv`drtfH~˂|ZdQnrXQJ`drtr˂pvnvXQJ`ےH~fے`JXQnXv`bHAZp˂rvpfZHAbXv`pbdQZ|vpfHArd|fpvbdQZ|vpfHArd|vnJltJXQrpvn˂rXQvpfHHAbےpvn˂rXQvpfHlJtArfpvQZ|dvpfے`rd|炀rXQQZ|d˂p`XnvˍXQJ`ےH~fے`JXQvnXdrtA~f`ZdQbtnXv`˂drtA~f`ZdQbtrXQJ`bdQZ|˂pZHAXv`fJ`ے~f``JXQrXv`fJ`ے~f`d|ZnXv`rtAJlJXQrZdQbtJ`ےrtAJlJXQrpfH~ㅐbHAZ`vXnr˂pv`fJltvXnlJtf~HJltvXnlJtHAZpdrtAbے`~HfbHAZpvXn˂pZ~HfbHAZpvXndQbt璍ffpۑtbd˂pZHlJtAbHAZpˑtbdpZHAf۝`vp˂rvpfZHAb~HfpbdQZ|vpfHArd|fpvbdQZ|vpfArd|˂rXJltJXQrpvn˂rXQvpfHHAbےpvn˂rXQvpfHl|ZdQvnrXQZ|dAbے`rd|炀rXQQZ|dbے`XnvˍXQJ`ےH~fے`JXQvnXrAJl璅~f`ZdQbtnXv`˂drtA`JXQZdQbtQJ`ےbdQZ|lZHAbXv`fJ`ے~f``JXQrXv`fJ`ے~f`btlQJ`ےrtAJlJXQrZdQbtJ`ےrtAJlJXQrpfH~ㅐbHAZ`vXnr˂pv`ftbdQZvXnlJtfHfpJltr˂plJtbHAZptbd`JXQ~HfbHAZpvXn˂pZ~HfbHAZpvXnJtArdHAZpˑtbd˂pZHlJtAbHAZpˑtbdpZHAf۝`vp˂rvpfZHAb~HXv|drvpfHArd|vnbdQZ|ZHAbArd|˂rXQZ|dr˂ppvn˂rXQvpfHHAbےpvn˂rXQvpfH|ZdQrXQQZ|dAbے`rd|炀rXQQZ|db˂pXnvˍXQJ`ےH~fے`JXQ`f~tAJl璅~f`ZdQbtrXQJ`ۂdrtA`JXQZdQbtQJ`ےrtAJlZHAbXv`fJ`ے~f``JXQrXv`fJ`ےJ~f`btlJ`ےrtAJlJXQrZdQbtJ`ےrtAJlZHAbpfH~ㅐbHAZ`vXnr˂pHfpvtbdQZvXnlJtHAZpJltr˂plJtbHAZptbd`JXQ~HfbHAZpvXn˂pZ~HfltbvXnJtArdbHAZpˑtbd˂pZHlJtAbHAZpˑtbdے`JXf۝`vp˂rvpfZHAbnXv|drvpfArd|˂rXbdQZ|ZHAbArd|˂rXQZ|lr˂pZpvn˂rXQvpfHHAے`pvndQZ|vpfHtlJrXQQZ|dAbے`rd|炀rXQQZ|dQr˂pXnvˍXQJ`ےH~fے`JXQ`f~tAJbd`JXQZdQbtQJ`ےdrtA`JXQZdQbtQJ`ےtbnAb`JXv`fJ`ے~f`JXQrbXv`fdrtAJ~f`tArdJ`ےrtAJlJXQrZdQbtJ`ےrtAJlZHAbpfH~ㅐbHAZ`vXnr˂pHfpvQZ|dr˂plJtbHAZpJltr˂plJtbHAZpvp`XQr˂~HfbHAZpvXntlJ~HfltbvXn|ZdQbbHAZpˑtbd˂pZHlJtAbHAZpˑtbdے`JXf۝`vp˂rvpfZHAے~HrtAJlZHAbArd|˂rXbdQZ|ZHAbArd|˂rXvXnpZHAbpvn˂rXQvpfHtAd|pvndQZ|vpfHtlJrXQQZ|dAbے`rd|炀rXQQZ|dQHAbXnvˍXQJ`ےH~f`JXQrfpvtbd`JXQZdQbtQJ`ےdrtA`JXQZdQbtQJ`ےvpfHے`JXv`fJ`ےJ~f`ZdQbtXv`fdrtAJ~f`tArdJ`ےrtAJlJXQrZdQbtJ`ےtAJl`JXQpfH~ㅐbHAZ`vXnbtlnXv`QZ|dr˂plJtbHAZpJltr˂plJtbHAZp~f`XQr˂~HfltbvXnlJtA~HfltbvXn|ZdQtAbHAZpˑtbd˂pZHlJtAbHAZp˒tbnr˂pf۝`vp˂rvpfJtAdf~HrtAJlZHAbArd|˂rXbdQZ|ZHAbArd|˂rXvXnpZA`pvndQZ|vpfHrd|pvndQZ|vpfHrd|rXQQZ|dAbے`rd|炀rXQvpfHZHAbXnvˍXQJ`ےH~f|ZdQbfpvtbQZ`JXQZdQbtQJ`ےdrtA`JXQZdQbtQJ`ےvp`vXJXQrbXv`fdrtAJ~f`ZdQbtXv`fdrtAJ~f`ZdQbtJ`ےrtAJlJXQrZdQbtJ`ےㅐf``JXQpfH~Jlt`vXntlJnXv`drtAr˂plJtbHAZpJltr˂plJtbHAZpnvptlJ~HfltbvXnlJtA~HfltbvXnlJtAbHAZpˑtbd˂pZHlJfpbHAZpvXnr˂p`f۝`vbdQZ|vpftArdpvnJltZHAbArd|˂rXbdQZ|ZHAbArd|˂rXfH~tAd|pvndQZ|vpfHrd|pvndQZ|vpfHrd|rXQQZ|dAbے`vnXrXQvpfHJXQrXnvˍdrtAH~f|ZdQbXv`fbdQZ|`JXQZdQbtQJ`ےdrtA`JXQZdQbtQJ`ےf`vXZdQbtXv`fdrtAJ~f`ZdQbtXv`fdrtAJ~f`ZdQbtJ`ےtAJlJXQrv`fJ`ے~f`˂pZHpfH~Jlt`vXntlJ~HfdrtAr˂plJtbHAZpJltr˂plJbHAZpnvplJtA~HfltbvXnlJtA~HfltbvXnl|ZbHAZp˒tbn˂pZH~HfpbHAZpvXnAbے`f۝`vbdQZ|vpftArdpvnJltZHAbArd|˂rXbdQZ|ZHAbfpv˂rXfH~rd|pvndQZ|vpfHrd|pvndQZ|vpfHdQbt璂rXQvpfHAbے`vnXrXQvpfHJXQrXnvˍdrtAH~f|ZdQbXv`pbdQZ|`JXQZdQbtQJ`ےdtAJl`JXQnXv`QJ`ےvpZdQbtXv`fdrtAJ~f`ZdQbtXv`fdrtAJ~f`lJtArJ`ےㅐf`JXQrv`fJ`ے~f`˂p`ZpfH~Jlt`vXntlJvnrrAJlr˂plJtbHAZptbr˂pf~HbHAZpfH~lJtA~HfltbvXnlJtA~HfltbvXnd|ZbHAZpvXnۉ˂pZH~HfpbHAZpvXnQXb㉀f۝`vbdQZ|vpftArdXQJ`ptbdQZHAbArd|˂rXnvpZHAbfpv˂rXf`vXrd|pvndQZ|vpfHrd|pvndQZ|vpfےdQbt璂rXQvpfHAbے`vnXrXQvpfHۑpJAHrXnvˍdrtAH~f|ZdQb˂rXQZ|d`JXQZdQbtQJ`ےfHf``JXQnXv`QJ`ےnvpZdQbtXv`fdrtAJ~f`ZdQbtXv`fdrtAJ`JXQHAlJtArJ`ے~f`JXQrv`fJ`ے~f`󙐂ˁ`Zp|drJlt`vXntlJJ`ےrtAJlr˂plJbHAZpvXnr˂pf~HbHAZpfH~lJtA~HfltbvXnlJtAHfpltbbے`dtlbHAZpvXnۉ˂pZH~HfpbHAZpvXnQXb㉀QtJlbdQZ|vpftArdbHAZptbdQZHAbfpv˂rXvpfHZHAbfpv˂rXf`vXHrd|pvndQZ|vpfHrd|vnrdQZ|JXQrJfpvrXQvpfHAbے`vnXrXQvpfHۑp`ZQtbAdZdrtAH~f|ZdQb˂rXQZ|AJl`JXQnXv`QJ`ے~f``JXQnXv`QJ`ے~f`ZdQbtXv`fdrtAJ~f`ZdQbtXQJ`ےdrtAJ˂pZHAnvfJ`ے~f`JXQrv`fJ`ے~f`Xb㉀ۑ|drJlt`vXntlJJ`p˂tbr˂pf~HbHAZpvXnr˂pf~HbHAZpvXnlJtA~HfltbvXnlJtAHAZpltbbے`~HfpbHAZpvXnۉ˂pZH~HfpbHAZpvXnpJAHrQtJlbdQZ|vpftArdrXQJnvpZHAbfpv˂rXvpfHZHAbfpv˂rXvpfHrd|pvndQZ|vpfےrd|˂rXQdQZ|JXQrvnXrXQvpfHAbے`vnXrXQvpfHˁ`ZQtbAdZdrtAH~f|ZdQb`ےbfHf``JXQnXv`QJ`ے~f``JXQnXv`QJ`ے~f`ZdQbtXv`fdrtAJ`JXQrZdQbtJ`ےdrtAJ˂p`Jv`fJ`ے~f`JXQrv`fJ`ے~f`Xb㉀ۑ|drJlt`vXntlJHAZp˂vXnr˂pf~HbHAZpvXnr˂pf~HbHAZpvXnlJtAHfpltb˂pZlJtAbHAZpltbXQr˂~HfpbHAZpvXnۉ˂pZH~HfpbHAZpvXnpJAHrQtJlbdQZ|vpftArdrXQJvpfHZHAbfpv˂rXvpfHZHAbfpv˂rXvp`rd|vnrdQZ|HAbےrd|˂rXQdQZ|pZHAbvnXrXQvpfHAbے`vnXrXQvpfH󐉀ۑpJtbAdZdrtAے`JXQ|ZdQb`ےb~f``JXQnXv`QJ`ے~f``JXQnXv`QJ`ےvXnZdQbtXQJ`ےdrtAJ`JXQrZdQbtJ`ےdrtAJے`Jv`f~J`ے~f`JXQrv`fJ`ےJl~f`AHr󙐂|drJltr˂ptlJHAXQJ`vXnr˂pf~HbHAZpvXnr˂pf~HbHAZpvpfHlJtAHAZpltb˂pZlJtAbHAZpltbXQr˂fpvbHAZpvXnۉ˂pZH~HfptbdvXnˁ`ZQXbQtJlbdQZ|ZHAbtArdےbHAvpfHZHAbfpv˂rXvpfHZHAbfpv˂rX~f`rd|˂rXQdQZ|HAbےrd|˂rXQdQZ|pZHAbnXv`rXQvpfHAے`vnXQZ|dvpfH㉀ۑpJtbAdZdrtAے`JXQ|ZdQbZp˂~f``JXQnXv`QJ`ے~f``JXQnXv`QJ`ےvXnZdQbtJ`ےdrtAJ`JXQrZdQbtJ`ےdrtAJ˂pf~HJ`ے~f`JXQrbtv`frtAJl~f`AHr󙐂|drJltr˂ptlJrXQJ`vXnr˂pf~HbHAZpvXnr˂pf~HJltdvpfHlJtAbHAZpltb˂pZlJtAbHAZpltbZHAbfpvbHAZpvXnۉlJt~HfptbdvXnˁ`ZQXAQtJlbdQZ|ZHAbtArdےbHAvpfHZHAbfpv˂rXvpfHZHAے`fpvrtAJl~vprd|˂rXQdQZ|HAbےrd|˂rXQdQZ|ے`JXQnXv`rXQvpfHAd|vnXQZ|dvpfHHr󙐂ˁtbAdZdrtAے`JXQ|ZdQbZp˂~f``JXQnXv`QJ`ے~f`JXQrnXv`ˑtbdfے`ZdQbtJ`ےdrtAJ`JXQrZdQbtJ`ےdrtAJr˂pf~HJ`ےJl~f`ZdQbtv`frtAJl~f``ZQXb|drJltr˂ptlJbHAZvXnr˂pf~HbHAZpvXnbtlf~HQZ|dJXQrZlJtAbHAZpltb˂pZlJtAbHAZpltbZHAbfvnXtbdvXnےlJtA~HfptbdvXnۀۑpJAQtJlbdQZ|ZHAbtArdp˂rvpfHZHAbfpv˂rXvpfHJtAd|fpvrtAJlHAbےrd|˂rXQdQZ|HAbےrd|˂rXQdQZ|ے`JXQv`fQZ|dvpfHrd|vnXQZ|dvpfHHr󙐂ˁtbAdZdrtAے`JXQ|ZdQbXQJ`ے~f``JXQnXv`QJ`ے~f`ZdQbtnXv`ˑtbd`JXQrZdQbtJ`ےdrtAJ`JXQrZdQbtJ`ےdtAJlHAbے~HfpۙrtAJl~f`ZdQbtv`frtAJl~f``ZQXb|drJltr˂ptlJbHAZvXnr˂pf~HJltvXnlJtf~HQZ|l瀉˂pZlJtAbHAZpltb˂pZlJtAbHAZptbn`JXQrvnXtbdvXnےlJtA~HfptbdvXnۀۑp`ZQtJlbdQZ|ZHAbtArdp˂rvpfHZHAے`fpvbdQZ|vpfHArd|fpvtbdQHAbےrd|˂rXQdQZ|HAbےrd|˂rXQvpf˂pZv`fQZ|dvpfHrd|vnXQZ|dvpfHQXb㉀tbAdZdrtAے`JXQ|ZdQbXQJ`p~f`JXQrnXv`˂drtA~f`ZdQbtnXv`Z|d`JXQrZdQbtJ`ےdrtAJ`JXQrZdQbtJ`ےHf`HAbے~HfpۙrtAJl~f`ZdQbtv`frtAJl~f`ۑpJAHr|drJltr˂ptlJ˂rXQvXnbtlf~HJltvXnlJtf~HrtAJl瀉˂pZAlJtAbHAZpltb˂pZlJfbHAZpvXn`JXQrvnvftbdvXnےlJtA~HfptbdvXn󙐂ˁ`ZQtJlbdQZ|ZHAbtArdJ`ےvpfHJtAd|fpvbdQZ|vpfHArd|fpvtbdQb`JXrd|˂rXQdQZ|HAbےpvn˂rXQvpfH˂p`~HfQZ|dvpfHrd|vnXQZ|dvpfHQXb㉀tbAdZdrtAے`JXQ|ZdQbbHAZp~f`ZdQbtnXv`˂drtA~f`ZdQbtnXv`Z|dQr˂pZdQbtJ`ےdtAJl`JXQrXv`fJ`ے~f`JXQrpvnrtAJl~f`ZdQbtv`frtAJl~f`ۑpJAH|drJltr˂ptlJ˂rXQvXnlJtf~HJltvXnlJtf~HrtAdQZ|ZHAblJtAbHAZptbn˂pZ~HfbHAZpvXn˂pZHAXv`ftbdvXnےlJtA~HfptbdvXnېf۝`vQtJlbdQZ|ZHAbfpvJ`ےvpfHArd|fpvbdQZ|vpfHArd|fpvdrtے`JXrd|˂rXQvpfHAbےpvn˂rXQvpfHbے`~HfQZ|dvpfHrd|vnXQZ|dvpfZHXnvˍtbAdZdtAJے`JXQ~HfbHAXQJ~f`ZdQbtnXv`˂drtA~f`ZdQbtnXv`AJltQr˂pZdQbtJ`ےHf``JXQrXv`fJ`ے~f`JXQrpvnrtAJl~f`ZdQbtv`frtAJlAbے`pfH~|drltbr˂ppvn`ےJlvXnlJtf~HJltvXnlJtf~HbdQZ|ZHAblJfbHAZpvXn˂pZ~HfbHAZpvXn˂p`JXv`ftbdvXnےlJtAHfpۑtbdJXQrf۝`vQtJlnvpZHAbXv`ftbQZvpfHArd|fpvbdQZ|vpfHArd|fpvdrtJQrpvn˂rXQvpfHHAbےpvn˂rXQvpfHXQrbt~fpvQZ|dvpfHrd|vnrXQZ|d˂pZHXnvˍtbAdZfHfے`JXQ~HfdrtA~f`ZdQbtnXv`˂drtA~f`ZdQbtnXv`AJlt˂pZHAXv`fJ`ے~f``JXQrXv`fJ`ے~f`l|ZnXv`rtAJl~f`ZdQbtQJ`ےrtAJlAbے`pfH~|dr`vXnr˂ppvnJltvXnlJtf~HJltvXnlJtfHfpdrtAbے`~HfbHAZpvXn˂pZ~HfbHAZpvXndQbt璍f~HtbdvXnےlJtAHAZpˑtbdJXQrf۝`vQtJlt-----------.............................................. \ No newline at end of file diff --git a/vendor/endroid/qr-code/assets/data/qrv33_3.dat b/vendor/endroid/qr-code/assets/data/qrv33_3.dat deleted file mode 100755 index 815f34988..000000000 --- a/vendor/endroid/qr-code/assets/data/qrv33_3.dat +++ /dev/null @@ -1,297 +0,0 @@ -}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxststststqrqrqrqrnmnmnmnmlklklklkjijijijifefefefedcdcdcdcbabababa^]^]^]^]\[\[\[\[ZYZYZYZYVUVUVUVU}~}~}~}~{|{|{|{|yzyzyzyzwvuvuvuvststststqrqrqpopnmnmnmnmlklklklkjijijijifefefefedcdcdcdcbabababa^]^]^]^]\[\[\[\[ZYZYZYZYVUVUVUVU}~}~}~}~{|{|{|{|yzyzyzyzuvuvuvuvststststopopoooonmnmnmnmlklklklkhghghghgfefefefedcdcdcdcbabababa^]^]^]^]\[\[\[\[ZYZYZYZYVUVUVUVU}~}~}~}~{|{|{|{|yzyzyzyzuvuvuvuvststststoopopoponmnmnmnmlklklklkhghghghgfefefefedcdcdcdcbabababa^]^]^]^]\[\[\[\[ZYZYZYZYVUVUVUVU}~}~}~}~{|{|{|{|yzyzyzyzuvuvuvuvststststpopopoponmnmnmnmlklklklkhghghghgfefefefedcdcdcdcbabababa^]^]^]^]\[\[\[\[ZYZYZYZYVUVUVUVU}~}~}~}~{|{|{|{|yzyzyzyzuvuvuvuvststststpopopoponmnmnmnmlklklklkhghghghgfefefefedcdcdcdcbabababa^]^]^]^]\[\[\[\[ZYZYZYZYVUVUVUVU}~}~}~}~{|{|{|{|yzyzyzyzuvuvuvuvststststpopopoponmnmnmnmlklklklkhghghghgfefefefedcdcdcdc`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYVUVUVUVU}~}~}~}~{|{|{|{|yzyzyzyzuvuvuvuvststststpopopoponmnmnmnmlklklklkhghghghgfefefefedcdcdcdc`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYVUVUVUVU}~}~}~}~{|{|{|{|yzyzyzyzuvuvuvuvststststpopopoponmnmnmnmlklklklkhghghghgfefefefedcdcdcdc`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYVUVUVUVU}~}~}~}~{|{|{|{|yzyzyzyzuvuvuvuvststststooooopopnmnmnmnmlklklklkhghghghgfefefefedcdcdcdc`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYVUVUVUVU}~}~}~}~{|{|{|{|yzyzyzyzuvuvuvuvststststopopopopnmnmnmnmlklklklkhghghghgfefefefedcdcdcdc`_`_`_`_^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVU}~}~}~}~{|{|{|{|yzyzyzyzuvuvuvuvststststopopopopnmnmnmnmlklklklkhghghghgfefefefedcdcdcdc`_`_`_`_^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVU}~}~}~}~{|{|{|{|yxwxwxwxuvuvuvuvststststopopopopnmnmnmnmlklklklkhghghghgfefefefedcdcdcdc`_`_`_`_^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVU}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvststststopopopopnmnmnmnmjijijijihghghghgfefefefedcdcdcdc`_`_`_`_^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVU}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvststststopopopopnmnmnmnmjijijijihghghghgfefefefedcdcdcdc`_`_`_`_^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVU}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvststststopoooooonmnmnmnmjijijijihghghghgfefefefedcdcdcdc`_`_`_`_^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVU}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvststststpopopoponmnmnmnmjijijijihghghghgfefefefedcdcdcdc`_`_`_`_^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVU}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvststststpopopoponmnmnmnmjijijijihghghghgfefefefebabababa`_`_`_`_^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVU}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvststststpopopoponmnmnmnmjijijijihghghghgfefefefebabababa`_`_`_`_^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVU}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvstststsrpopopoponmnmnmnmjijijijihghghghgfefefefebabababa`_`_`_`_^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVU}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvqrqrqrqrpopopoponmnmnmnmjijijijihghghghgfefefefebabababa`_`_`_`_^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVU}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvqrqrqrqrpopopooonmnmnmnmjijijijihghghghgfefefefebabababa`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWVUVUTSTS}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvqrqrqrqrooopopopnmnmnmnmjijijijihghghghgfefefefebabababa`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWTSTSSSSS}~}~}~}~{zyzyzyzwxwxwxwxuvuvuvuvqrqrqrqropopopopnmnmnmnmjijijijihghghghgfefefefebabababa`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWSTSTSTST}~}~}~}~yzyzyzyzwxwxwxwxuvuvuvuvqrqrqrqropopopoplklklklkjijijijihghghghgfefefefebabababa`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWSTSTSTST}~}~}~}~yzyzyzyzwxwxwxwxuvuvuvuvqrqrqrqropopopoplklklklkjijijijihghghghgfefefefebabababa`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWSTSTSTST}~}~}~}~yzyzyzyzwxwxwxwxuvuvuvuvqrqrqrqropopopoplklklklkjijijijihghghghgfefefefebabababa`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWSTSTSTST}~}~}~}~yzyzyzyzwxwxwxwxuvuvuvuvqrqrqrqropopopoplklklklkjijijijihghghghgfefefefebabababa`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWSTSTSTST}~}~}~}~yzyzyzyzwxwxwxwxuvuvuvuvqrqrqrqroooooopolklklklkjijijijihghghghgdcdcdcdcbabababa`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWSTSTSTSS}~}~}~}~yzyzyzyzwxwxwxwxuvuvuvuvqrqrqrqrpopopopolklklklkjijijijihghghghgdcdcdcdcbabababa`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWSSSSTSTSSSSSSTST}~}~}~}~yzyzyzyzwxwxwxwxuvuvuvuvqrqrqrqrpopopopolklklklkjijijijihghghghgdcdcdcdcbabababa`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSSTSTSTST}~}~}~}~yzyzyzyzwxwxwxwxuvuvuvuvqrqrqrqrpopopopolklklklkjijijijihghghghgdcdcdcdcbabababa`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSSTSTSTST}~}~}~}~yzyzyzyzwxwxwxwxuvuvuvuvqrqrqrqrpopopopolklklklkjijijijihghghghgdcdcdcdcbabababa`_`_`_`_\[\[\[\[ZYZYZYZYXWXWXWXWTSTSTSTSSTSTSTST}~}~}~}~yzyzyzyzwxwxwxwxuvuvuvuvqrqrqrqrpopooooolklklklkjijijijihghghghgdcdcdcdcbabababa`_`_`_`_\[\[\[\[ZYZYZYZYXWXWXWXWTSTSTSTSSTSTSTST}|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvqrqrqrqrpopopopolklklklkjijijijihghghghgdcdcdcdcbabababa`_`_`_`_\[\[\[\[ZYZYZYZYXWXWXWXWTSTSTSTSSTSSSSST{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvqrqrqrqrnmnmnmnmlklklklkjijijijihghghghgdcdcdcdcbabababa`_`_`_`_\[\[\[\[ZYZYZYZYXWXWXWXWTSSSSSSTSTSTSTSR{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvqrqrqrqrnmnmnmnmlklklklkjijijijihghghghgdcdcdcdcbabababa`_`_`_`_\[\[\[\[ZYZYZYZYXWXWXWXWSTSTSTSTQRQRQRQR{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvqrqrqrqrnmnmnmnmlklklklkjijijijihghghghgdcdcdcdcbabababa`_`_`_`_\[\[\[\[ZYZYZYZYXWXWXWXWSTSTSTSTQRQRQRQR{|{|{|{|yzyzyzyzwxwxwxwxutstststqrqrqrqrnmnmnmnmlklklklkjijijijihghghghgdcdcdcdcbabababa`_`_`_`_\[\[\[\[ZYZYZYZYXWXWXWXWSTSTSTSTQRQRQRQR{|{|{|{|yzyzyzyzwxwxwxwxststststqrqrqrqrnmnmnmnmlklklklkjijijijifefefefedcdcdcdcbabababa`_`_`_`_\[\[\[\[ZYZYZYZYXWXWXWVUSTSTSTSTQRQRQRQR{|{|{|{|yzyzyzyzwxwxwxwxststststqrqrqrqrnmnmnmnmlklklklkjijijijifefefefedcdcdcdcbabababa`_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVUSTSTSTSTQRQRQRQR{|{|{|{|yzyzyzyzwxwxwxwxststststqrqrqrqrnmnmnmnmlklklklkjijijijifefefefedcdcdcdcbabababa`_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVUSTSTSSSSQRQRQRQR{|{|{|{|yzyzyzyzwxwxwxwxststststqrqrqrqrnmnmnmnmlklklklkjijijijifefefefedcdcdcdcbabababa`_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVUSSTSTSTSQRQRQRQR{|{|{|{|yzyzyzyzwxwxwxwxststststqrqrqrqrnmnmnmnmlklklklkjijijijifefefefedcdcdcdcbabababa^]^]^]^]\[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTSQRQRQRQR{|{|{|{|yzyzyzyzwxwxwxwxststststqrqrqrqrnmnmnmnmlklklklkjijijijifefefefedcdcdcdcbabababa^]^]^]^]\[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTSQRQRQRQR~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxststststqrqrqrqrnmnmnmnmlklklklkjijijijifefefefedcdcdcdcbabababa^]^]^]^]\[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTSQRQRQRQR}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxststststqrqrqrqrnmnmnmnmlklklklkjijijijifefefefedcdcdcdcbabababa^]^]^]^]\[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTSQRQRQRQR}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxststststqrqrqrqrnmnmnmnmlklklklkjijijijifefefefedcdcdcdcbabababa^]^]^]^]\[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTSQRQRQRQRQRQRQRQROPOPOPOPMNMNMNMNIJIJIJIJGHGHGHGHEFEFEFEFABABABAB?@?@?@?@=>=>=>=>9:9:9:9:7878787743434343212121210/0/0/0/.-.-.-,+*)*)*)*)('('('('&%&%&%&%"!"!"!"!     - - - -QRQRQRQROPOPOPOPMNMNMNMNIJIJIJIJGHGHGHGHEFEFEFEFABABABAB?@?@?@?@=>=>=>=>9:9:9:9:7777878743434343212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('&%&%&%&%"!"!"!"!     - - - -QRQRQRQROPOPOPOPMNMNMNMLIJIJIJIJGHGHGHGHEFEFEFEFABABABAB?@?@?@?@=>=>=>=>9:9:9:9:8787878743434343212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('&%&%&%&%"!"!"!"!     - - - -QRQRQRQROPOPOPOPKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFABABABAB?@?@?@?@=>=>=>=>9:9:9:9:8787878743434343212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('&%&%&%&%"!"!"!"!     - - - -QRQRQRQROPOPOPOPKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFABABABAB?@?@?@?@=>=>=>=>9:9:9:9:8787878743434343212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('&%&%&%$#"!"!"!"!     - - - -QRQRQRQROPOPOPOPKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFABABABAB?@?@?@?@=>=>=>=>9:9:9:9:8787878743434343212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!     - - - -QRQRQRQROPOPOPOPKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEDABABABAB?@?@?@?@=>=>=>=>9:9:9:9:8777778743434343212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!     - - - -QRQRQRQROPOPOPOPKLKLKLKLIJIJIJIJGHGHGHGHCDCDCDCDABABABAB?@?@?@?@=>=>=>=>9:9:9:9:8787876543434343212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!     - - - -QRQRQRQROPOPOPOPKLKLKLKLIJIJIJIJGHGHGHGHCDCDCDCDABABABAB?@?@?@?@=>=>=>=>9:9:9:9:6565656543434343212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!     - - - -QRQRQRQROPOPOPOPKLKLKLKLIJIJIJIJGHGHGHGHCDCDCDCDABABABAB?@?@?@?@=>=>=>=>9:9:9:9:6565656543434343212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!      - - - -QRQRQRQROPOPOPOPKLKLKLKLIJIJIJIJGHGHGHGHCDCDCDCDABABABAB?@?@?@?@=>=>=>=<9:9:9:9:6565656543434343212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!         - - - -QRQRQRQROPOPOPOPKLKLKLKLIJIJIJIJGHGHGHGHCDCDCDCDABABABAB?@?@?@?@;<;<;<;<9:9:9:9:6565656543434343212121210/0/0/.-,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!         - - - -QRQRQRQROPOPOPOPKLKLKLKLIJIJIJIJGHGHGHGHCDCDCDCDABABABAB?@?@?@?@;<;<;<;<9:9:9:9:656565654343434321212121.-.-.-.-,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!       - - - -QRQRQRQROPOPOPONKLKLKLKLIJIJIJIJGHGHGHGHCDCDCDCDABABABAB?@?@?@?@;<;<;<;<9:9:9:9:656565654343434321212121.-.-.-.-,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!     - - - -QRQRQRQRMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHCDCDCDCDABABABAB?@?@?@?@;<;<;<;<9:9:9:9:656565654343434321212121.-.-.-.-,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!     - - - -QRQRQRQRMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHCDCDCDCDABABABAB?@?@?@?@;<;<;<;<9:9:9:9:656565654343434321212121.-.-.-.-,+,+,+,+*)*)*)*)('('('&%$#$#$#$#"!"!"!"!     - - - -QRQRQRQRMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHCDCDCDCDABABABAB?@?@?@?@;<;<;<;<9:9:9:9:656565654343434321212121.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"!     - - - -QRQRQRQRMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGFCDCDCDCDABABABAB?@?@?@?@;<;<;<;<9:9:9:9:656565654343434321212121.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"!     - - - -QRQRQRQRMNMNMNMNKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCDABABABAB?@?@?@?@;<;<;<;<9:9:9:9:656565654343434321212121.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"!     - - - -QRQRQRQRMNMNMNMNKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCDABABABAB?@?@?@?@;<;<;<;<9:9:9:9:656565654343434321212121.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"!     - - - -QRQRQRQRMNMNMNMNKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCDABABABAB?@?@?@?@;<;<;<;<9:9:9:9:656565654343434321212121.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"!     - - - -QRQRQRQRMNMNMNMNKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCDABABABAB?@?@?@?>;<;<;<;<9:9:9:9:656565654343434321212121.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"!     - - - -QRQRQRQRMNMNMNMNKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCDABABABAB=>=>=>=>;<;<;<;<9:98787865656565434343432121210/.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"!     - - - -QRQRQRQRMNMNMNMNKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCDABABABAB=>=>=>=>;<;<;<;<7877777765656565434343430/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"!     - - - -QRQRQRQPMNMNMNMNKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCDABABABAB=>=>=>=>;<;<;<;<8787878765656565434343430/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"!     - - OPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCDABABABAB=>=>=>=>;<;<;<;<8787878765656565434343430/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"!     OPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCDABABABAB=>=>=>=>;<;<;<;<8787878765656565434343430/0/0/0/.-.-.-.-,+,+,+,+*)*)*)('&%&%&%&%$#$#$#$#"!"!"!"!     OPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCDABABABAB=>=>=>=>;<;<;<;<8787878765656565434343430/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#"!"!"!"!     OPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIHEFEFEFEFCDCDCDCDABABABAB=>=>=>=>;<;<;<;<8787878765656565434343430/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#"!"!"!"!     OPOPOPOPMNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFCDCDCDCDABABABAB=>=>=>=>;<;<;<;<8787877765656565434343430/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#"!"!"!"!     OPOPOPOPMNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFCDCDCDCDABABABAB=>=>=>=>;<;<;<;<7778787865656565434343430/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#"!"!"!      OPOPOPOPMNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFCDCDCDCDABABABAB=>=>=>=>;<;<;<;<7878787865656565434343430/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#         OPOPOPOPMNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFCDCDCDCDABABABA@=>=>=>=>;<;<;<;<7878787865656565434343430/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#         OPOPOPOPMNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>;<;<;<;<7878787865656565434343210/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#         OPOPOPOPMNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>;<;<;<;<7878787865656565212121210/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#         OPOPOPOPMNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>;<;<;<;<7878787865656565212121210/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#         - -OPOPOPOPMNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>;<;<;<;<7777778765656565212121210/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#         - - - -OPOPOPOPMNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>;<;<;<;<8787878765656565212121210/0/0/0/.-.-.-.-,+,+,+*)('('('('&%&%&%&%$#$#$#$#         - - - -OPOPOPOPMNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>;<;<;<;<8787878765656565212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%$#$#$#$#         - - - -OPOPOPOPMNMNMNMNKLKLKLKJGHGHGHGHEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>;<;<;<;<8787878765656565212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%$#$#$#$#         - - - -OPOPOPOPMNMNMNMNIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>;<;<;:9:8787878765656565212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%$#$#$#$#         - - - -OPOPOPOPMNMNMNMNIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>9:9:9:9:8787878765656565212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%$#$#$#"!         - - - -OPOPOPOPMNMNMNMNIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>9:9:9:9:8787777765656565212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%"!"!"!"!         - - - -OPOPOPOPMNMNMNMNIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCB?@?@?@?@=>=>=>=>9:9:9:9:7878787865656565212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%"!"!"!"!         - - - -OPOPOPOPMNMNMNMNIJIJIJIJGHGHGHGHEFEFEFEFABABABAB?@?@?@?@=>=>=>=>9:9:9:9:7878787865656543212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%"!"!"!"!         - - - -OPOPOPOPMNMNMNMNIJIJIJIJGHGHGHGHEFEFEFEFABABABAB?@?@?@?@=>=>=>=>9:9:9:9:7878787843434343212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%"!"!"!"!         - - - -OPOPOPOPMNMNMNMNIJIJIJIJGHGHGHGHEFEFEFEFABABABAB?@?@?@?@=>=>=>=>9:9:9:9:7878787843434343212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%"!"!"!"!       - - - -OPOPOPOPMNMNMNMNIJIJIJIJGHGHGHGHEFEFEFEFABABABAB?@?@?@?@=>=>=>=>9:9:9:9:7878787843434343212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%"!"!"!"!     - - - -==>>??@@KJJIIHHG MLLKKJJItuuvvwwx ]\\[[ZZYdeeffgghcbbaa``_5566778844332211%%&&''((DDCCBBAA}}~~TTSSRRQQmmnnoopp++,,--..AABBCCDD GFFEEDDC !!""##$IHHGGFFExyyzz{{|YXXWWVVUhiijjkkl_^^]]\\[99::;;<<00//..--))**++,,@@??>>==PPOONNMMqqrrsstt//001122EEFFGGHH - - CBBAA@@?$%%&&''(EDDCCBBA|}}~~UTTSSRRQlmmnnoop[ZZYYSSR==>>??@@,,++**))--..//00<<;;::99 LLKKJJIIuuvvwwxx33445566IIJJKKLL - - ?>>==<;:())**++,A@@??>>=QPPOONNMpqqrrsst - - RQQPPOONAABBCCDD((''&&%%1122334488776655!!""##$$HHGGFFEEyyzz{{||77==>>??MMNNOOPP98776655,--..//0=<<;;::9 MLLKKJJItuuvvwwx NMMLLKKJEEFFGGHH$$##""!!5566778844332211%%&&''((DDCCBBAA}}~~@@AABBCC~~}}QQRRSSTT443322110112233498877665 !!""##$IHHGGFFExyyzz{{|JIIHHGGFIIJJKKLL 99::;;<<00//..--))**++,,@@??>>==DDEEFFGG||{{zzyyUUVVWWXX00//..--4556677854433221$%%&&''(EDDCCBBA|}}~~FEEDDCCB~~}}MMNNOOPP==>>??@@,,++**))--..//00<<;;::99HHIIJJKKxxwwvvuuYYZZ[[\\!!"",,++**))899::;;<100//..-())**++,A@@??>>=BAA@@??>||{{zzyyQQRRSSTT~~}}AABBCCDD((''&&%%1122334488776655LLMMNNOOttssrrqq]]^^__``##$$%%&&((''&&%%<==>>??@-,,++**),--..//0=<<;;::9 >==77665xxwwvvuuUUVVWWXX||{{zzyyEEFFGGHH$$##""!!5566778844332211PPQQRRSSppoonnmmaabbccdd''(())**$$##""!!~~}@AABBCCD)((''&&%0112233498877665 !!""##$54433221tsrqpoonYYZZ[[\\ xxwwvvuuIIJJKKLL 99::;;<<00//..--YYZZ[[\\llkkjjiieeffgghh++,,--.. }||{{zzyDEEFFGGH%$$##""!4556677854433221$%%&&''(100//..-nmmllkkj]]^^__`` - - ttssrrqqMMNNOOPP==>>??@@,,++**))]]^^__``hhggffeeiijjkkll//001122yxxwwvvuHIIJJKKL! 899::;;<100//..-())**++,-,,++**)jiihhggfaabbccddppoonnmmQQRRSSTT~~}}AABBCCDD((''&&%%aabbccddddccbbaammnnoopp33445566uttssrrqLMMNNOOP<==>>??@-,,++**),--..//0)((''&&%feeddccbeeffgghhllkkjjiiUUVVWWXX||{{zzyyEEFFGGHH$$##""!!eeffgghh``__^^]]qqrrsstt77==>>??qppoonnmPQQRRSST~~}@AABBCCD)((''&&%01122334%$$##""!baa``__^iijjkkllhhggffeeYYZZ[[\\ xxwwvvuuIIJJKKLL iijjkkll\\[[ZZYYuuvvwwxx@@AABBCC -mllkkjjiTUUVVWWX}||{{zzyDEEFFGGH%$$##""!45566778!^]]\\[[Zmmnnooppddccbbaa]]^^__`` - - ttssrrqqMMNNOOPP~~}}||mmnnoouuXXWWVVUUyyzz{{||DDEEFFGG - ihhggffeXYYZZ[[\ yxxwwvvuHIIJJKKL! 899::;;<ZYYXWVUTqqrrsstt - - ``__^^]]aabbccddppoonnmmQQRRSSTT{{zzyyxxvvwwxxyyTTSSRRQQ}}~~HHIIJJKKeddccbba\]]^^__` - - uttssrrqLMMNNOOP<==>>??@SSRRQQPPuuvvwwxx \\[[ZZYYeeffgghhllkkjjiiUUVVWWXXwwvvuuoozz{{||}}PPOONNMMLLMMNNOO - - a``__^^]`aabbccd qppoonnmPQQRRSST~~}@AABBCCD OONNMMLLyyzz{{||XXWWVVUUiijjkkllhhggffeeYYZZ[[\\ nnmmllkk~~LLKKJJIIPPQQRRSS ]\\[[ZZYdeeffgghmllkkjjiTUUVVWWX}||{{zzyDEEFFGGH - - KKJJIIHH}}~~TTSSRRQQmmnnooppddccbbaa]]^^__`` - - jjiihhggHHGGFFEEYYZZ[[\\YXXWWVVUhiijjkklihhggffeXYYZZ[[\ yxxwwvvuHIIJJKKLGGFFEEDDPPOONNMMqqrrsstt - - ``__^^]]aabbccddffeeddccDDCCBBAA]]^^__``UTTSSRRQlmmnnoopeddccbba\]]^^__` - - uttssrrqLMMNNOOP CCBBAA@@ LLKKJJIIuuvvwwxx \\[[ZZYYeeffgghhbbaa``__@@??>>==aabbccddQPPOONNMpqqrrsst - - a``__^^]`aabbccd qppoonnmPQQRRSST - - ??>>==<;!!""##$$HHGGFFEEyyzz{{||XXWWVVUUiijjkkll^^]]\\[[<<;;::99eeffgghh MLLKKJJItuuvvwwx ]\\[[ZZYdeeffgghmllkkjjiTUUVVWWX :9877665%%&&''((DDCCBBAA}}~~TTSSRRQQmmnnooppZZYYSSRR88776655iijjkkll !!""##$IHHGGFFExyyzz{{|YXXWWVVUhiijjkklihhggffeXYYZZ[[\54433221))**++,,@@??>>==PPOONNMMqqrrsstt - - QQPPOONN44332211mmnnoouu$%%&&''(EDDCCBBA|}}~~UTTSSRRQlmmnnoopeddccbba\]]^^__`100//..---..//00<<;;::99 LLKKJJIIuuvvwwxx MMLLKKJJ00//..--vvwwxxyy())**++,A@@??>>=QPPOONNMpqqrrsst - - a``__^^]`aabbccd!!"-,,++**)1122334488776655!!""##$$HHGGFFEEyyzz{{||IIHHGGFF,,++**))~~}}||zz{{||}},--..//0=<<;;::9 MLLKKJJItuuvvwwx ]\\[[ZZYdeeffggh"##$$%%&)((''&&%5566778844332211%%&&''((DDCCBBAA}}~~EEDDCCBB~~}}|((''&&%%{{zzyyxx~~0112233498877665 !!""##$IHHGGFFExyyzz{{|YXXWWVVUhiijjkkl&''(())*%$$##""!99::;;<<00//..--))**++,,@@??>>==AA@@??>>|{{zzyyx$$##""!!wwvvuuoo4556677854433221$%%&&''(EDDCCBBA|}}~~UTTSSRRQlmmnnoop*++,,--.! ==>>??@@,,++**))--..//00<<;;::99 ==776655xwwvvuut nnmmllkk899::;;<100//..-())**++,A@@??>>=QPPOONNMpqqrrsst.//00112~~}}AABBCCDD((''&&%%1122334488776655!!""##$$44332211srqpoonn jjiihhgg<==>>??@-,,++**),--..//0=<<;;::9 MLLKKJJItuuvvwwx23344556||{{zzyyEEFFGGHH$$##""!!5566778844332211%%&&''((00//..--mmllkkjjffeeddcc@AABBCCD)((''&&%0112233498877665 !!""##$IHHGGFFExyyzz{{|677==>>?xxwwvvuuIIJJKKLL 99::;;<<00//..--))**++,,,,++**))iihhggffbbaa``__DEEFFGGH%$$##""!4556677854433221$%%&&''(EDDCCBBA|}}~~?@@AABBC ttssrrqqMMNNOOPP==>>??@@,,++**))--..//00((''&&%%eeddccbb ^^]]\\[[HIIJJKKL! 899::;;<100//..-())**++,A@@??>>=CDDEEFFG - - ppoonnmmQQRRSSTT~~}}AABBCCDD((''&&%%11223344$$##""!!aa``__^^ - - - ZZYYSSRRLMMNNOOP<==>>??@-,,++**),--..//0=<<;;::9GHHIIJJKllkkjjiiUUVVWWXX||{{zzyyEEFFGGHH$$##""!!55667788]]\\[[ZZ -  - - QQPPOONNPQQRRSST~~}@AABBCCD)((''&&%0112233498877665KLLMMNNOhhggffeeYYZZ[[\\ xxwwvvuuIIJJKKLL 99::;;<<YYXWVUTS MMLLKKJJ~~}}|TUUVVWWX}||{{zzyDEEFFGGH%$$##""!4556677854433221OPPQQRRSddccbbaa]]^^__`` - - ttssrrqqMMNNOOPP==>>??@@SRRQQPPOIIHHGGFF|{{zzyyxXYYZZ[[\ yxxwwvvuHIIJJKKL! 899::;;<100//..-SYYZZ[[\ - - ``__^^]]aabbccddppoonnmmQQRRSSTT~~}}AABBCCDD ONNMMLLK EEDDCCBBxwwvvuut\]]^^__` - - uttssrrqLMMNNOOP<==>>??@-,,++**)\]]^^__` \\[[ZZYYeeffgghhllkkjjiiUUVVWWXX||{{zzyyEEFFGGHH - - KJJIIHHG - - AA@@??>>srqpoonn`aabbccd qppoonnmPQQRRSST~~}@AABBCCD)((''&&%`aabbccdXXWWVVUUiijjkkllhhggffeeYYZZ[[\\ xxwwvvuuIIJJKKLLGFFEEDDC  ==776655mmllkkjjdeeffgghmllkkjjiTUUVVWWX}||{{zzyDEEFFGGH%$$##""!deeffgghTTSSRRQQmmnnooppddccbbaa]]^^__`` - - ttssrrqqMMNNOOPP CBBAA@@?!!""##$$44332211iihhggffhiijjkklihhggffeXYYZZ[[\ yxxwwvvuHIIJJKKL! hiijjkklPPOONNMMqqrrsstt - - ``__^^]]aabbccddppoonnmmQQRRSSTT - - ?>>==<;:%%&&''((00//..--eeddccbblmmnnoopeddccbba\]]^^__` - - uttssrrqLMMNNOOP~~}}|lmmnnoou LLKKJJIIuuvvwwxx \\[[ZZYYeeffgghhllkkjjiiUUVVWWXX98776655))**++,,,,++**))aa``__^^pqqrrsst - - a``__^^]`aabbccd qppoonnmPQQRRSST|{{zzyyxuvvwwxxy!!""##$$HHGGFFEEyyzz{{||XXWWVVUUiijjkkllhhggffeeYYZZ[[\\44332211 !--..//00((''&&%%]]\\[[ZZtuuvvwwx ]\\[[ZZYdeeffgghmllkkjjiTUUVVWWXxwwvvuuoyzz{{||}%%&&''((DDCCBBAA}}~~TTSSRRQQmmnnooppddccbbaa]]^^__``00//..--!""##$$%11223344$$##""!!YYXWVUTSxyyzz{{|YXXWWVVUhiijjkklihhggffeXYYZZ[[\ onnmmllk}~~))**++,,@@??>>==PPOONNMMqqrrsstt - - ``__^^]]aabbccdd!!"",,++**))%&&''(()55667788SRRQQPPO|}}~~UTTSSRRQlmmnnoopeddccbba\]]^^__` - - kjjiihhg--..//00<<;;::99 LLKKJJIIuuvvwwxx \\[[ZZYYeeffgghh##$$%%&&((''&&%%)**++,,-99::;;<<ONNMMLLKQPPOONNMpqqrrsst - - a``__^^]`aabbccd gffeeddc1122334488776655!!""##$$HHGGFFEEyyzz{{||XXWWVVUUiijjkkll''(())**$$##""!!-..//0011223344587766554!""##$$%HGGFFEEDyzz{{||}XWWVVUUTijjkkllm'(())**+$##""!! ::;;<<==//..--,,**++,,--??>>==<<@@??>>=={zzyyxxwRSSTTUUV~~}}||{BCCDDEEF'&&%%$$#23344556IHHGGFFE5667788943322110%&&''(()DCCBBAA@}~~TSSRRQQPmnnooppq+,,--../>>??@@AA++**))((..//0011;;::9988 !!77665544wvvuutsrVWWXXYYZ{zzyyxxwFGGHHIIJ#""!! 6778899:EDDCCBBA9::;;<<=0//..--,)**++,,-@??>>==<POONNMMLqrrssttu/0011223~~}}||BBCCDDEE''&&%%$$2233445577665544""##$$%%33221100qpoonnmmZ[[\\]]^ wvvuuttsJKKLLMMN:;;<<==>A@@??>>==>>??@@A,++**))(-..//001<;;::998 !LKKJJIIHuvvwwxxy34455667{{zzyyxxFFGGHHII##""!! 6677889933221100&&''(())//..--,,llkkjjii^__``aab - - srrqqppoNOOPPQQR>??@@AAB =<<;;::9ABBCCDDE(''&&%%$1223344587766554!""##$$%HGGFFEEDyzz{{||}7==>>??@wwvvuuttJJKKLLMM::;;<<==//..--,,**++,,--++**))((hhggffeebccddeefonnmmllkRSSTTUUV~~}}||{BCCDDEEF - - -98877665EFFGGHHI$##""!! 5667788943322110%&&''(()DCCBBAA@}~~@AABBCCD - -ssrrqqppNNOOPPQQ>>??@@AA++**))((..//0011''&&%%$$ddccbbaafgghhiijkjjiihhgVWWXXYYZ{zzyyxxwFGGHHIIJ - 54433221IJJKKLLM 9::;;<<=0//..--,)**++,,-@??>>==>??@@A,++**))(-..//001<;;::998HIIJJKKLkkjjiihhVVWWXXYY{{zzyyxxFFGGHHII##""!! 66778899\\[[ZZYYnooppqqr -cbbaa``_^__``aab - - srrqqppoNOOPPQQR-,,++**)QRRSSTTU~~}}|ABBCCDDE(''&&%%$1223344587766554LMMNNOOPggffeeddZZ[[\\]] wwvvuuttJJKKLLMM::;;<<==XWVUTSSRrssttuuv - _^^]]\\[bccddeefonnmmllkRSSTTUUV)((''&&%UVVWWXXY|{{zzyyxEFFGGHHI$##""!! 5667788943322110PQQRRSSY ccbbaa``^^__``aa - - ssrrqqppNNOOPPQQ>>??@@AARQQPPOONvwwxxyyz[ZZYYXXWfgghhiijkjjiihhgVWWXXYYZ!!""#%$$##""!YZZ[[\\] xwwvvuutIJJKKLLM 9::;;<<=0//..--,YZZ[[\\] - - __^^]]\\bbccddeeoonnmmllRRSSTTUU~~}}||BBCCDDEE NMMLLKKJz{{||}}~WVVUUTTSjkkllmmngffeeddcZ[[\\]]^#$$%%&&'! ]^^__``a - - tssrrqqpMNNOOPPQ=>>??@@A,++**))(]^^__``a[[ZZYYXXffgghhiikkjjiihhVVWWXXYY{{zzyyxxFFGGHHII - - JIIHHGGF~SRRQQPPOnooppqqr -cbbaa``_^__``aab'(())**+abbccddepoonnmmlQRRSSTTU~~}}|ABBCCDDE(''&&%%$abbccddeWWVVUUTTjjkkllmmggffeeddZZ[[\\]] wwvvuuttJJKKLLMMFEEDDCCBONNMMLLKrssttuuv - _^^]]\\[bccddeef+,,--../effgghhilkkjjiihUVVWWXXY|{{zzyyxEFFGGHHI$##""!! effgghhiSSRRQQPPnnooppqq ccbbaa``^^__``aa - - ssrrqqppNNOOPPQQ - -BAA@@??> !!"KJJIIHHGvwwxxyyz[ZZYYXXWfgghhiij/0011223ijjkkllmhggffeedYZZ[[\\] xwwvvuutIJJKKLLM ijjkkllmOONNMMLLrrssttuu - - __^^]]\\bbccddeeoonnmmllRRSSTTUU >==<;:98"##$$%%&GFFEEDDCz{{||}}~WVVUUTTSjkkllmmn34455667 mnnooppq dccbbaa`]^^__``a - - tssrrqqpMNNOOPPQ~~}}||{mnnoouuv !!KKJJIIHHvvwwxxyy[[ZZYYXXffgghhiikkjjiihhVVWWXXYY77665544&''(())*CBBAA@@?~SRRQQPPOnooppqqr7==>>??@ - - qrrssttu - - `__^^]]\abbccddepoonnmmlQRRSSTTU{zzyyxxwvwwxxyyz""##$$%%GGFFEEDDzz{{||}}WWVVUUTTjjkkllmmggffeeddZZ[[\\]]33221100*++,,--.?>>==<<;ONNMMLLKrssttuuv@AABBCCD - - uvvwwxxy \[[ZZYYXeffgghhilkkjjiihUVVWWXXYwvvuuoonz{{||}}~&&''(())CCBBAA@@~~SSRRQQPPnnooppqq ccbbaa``^^__``aa//..--,,.//00112;::99887 !!"KJJIIHHGvwwxxyyzDEEFFGGH yzz{{||}XWWVVUUTijjkkllmhggffeedYZZ[[\\] nmmllkkj~**++,,--??>>==<<OONNMMLLrrssttuu - - __^^]]\\bbccddee!!""##++**))((2334455676655443"##$$%%&GFFEEDDCz{{||}}~HIIJJKKL}~~TSSRRQQPmnnooppq dccbbaa`]^^__``a - - jiihhggf..//0011;;::9988 !!KKJJIIHHvvwwxxyy[[ZZYYXXffgghhii$$%%&&''''&&%%$$6778899:3221100/&''(())*CBBAA@@?~LMMNNOOPPOONNMMLqrrssttu - - `__^^]]\abbccddefeeddccb2233445577665544""##$$%%GGFFEEDDzz{{||}}WWVVUUTTjjkkllmm(())**++##""!! :;;<<==>/..--,,+*++,,--.?>>==<<;PQQRRSSY !LKKJJIIHuvvwwxxy \[[ZZYYXeffgghhibaa``__^6677889933221100&&''(())CCBBAA@@~~SSRRQQPPnnooppqq,,--..//>??@@AAB+**))(('.//00112;::99887YZZ[[\\] !""##$$%HGGFFEEDyzz{{||}XWWVVUUTijjkkllm^]]\\[[Z::;;<<==//..--,,**++,,--??>>==<<OONNMMLLrrssttuu00112233~~}}||{BCCDDEEF'&&%%$$#2334455676655443]^^__``a !!""##$%&&''(()DCCBBAA@}~~TSSRRQQPmnnooppq ZYYSSRRQ>>??@@AA++**))((..//0011;;::9988 !!KKJJIIHHvvwwxxyy44556677{zzyyxxwFGGHHIIJ#""!! 6778899:3221100/abbccdde$%%&&''()**++,,-@??>>==<POONNMMLqrrssttu - - QPPOONNMBBCCDDEE''&&%%$$2233445577665544""##$$%%GGFFEEDDzz{{||}}==>>??@@ wvvuuttsJKKLLMMN:;;<<==>/..--,,+effgghhi())**++,-..//001<;;::998 !LKKJJIIHuvvwwxxy MLLKKJJIFFGGHHII##""!! 6677889933221100&&''(())CCBBAA@@~~AABBCCDD - - srrqqppoNOOPPQQR>??@@AAB+**))(('ijjkkllm,--..//01223344587766554!""##$$%HGGFFEEDyzz{{||}IHHGGFFEJJKKLLMM::;;<<==//..--,,**++,,--??>>==<>??@@AA++**))((..//0011;;::9988IIJJKKLLkjjiihhgVWWXXYYZ{zzyyxxwFGGHHIIJ#""!! vwwxxyyz455667789::;;<<=0//..--,)**++,,-@??>>==<A@@??>>={{zzyyxxRRSSTTUU~~}}||BBCCDDEE''&&%%$$2233445577665544MMNNOOPPgffeeddcZ[[\\]]^ wvvuuttsJKKLLMMN~~}}||{z{{||}}~899::;;<=>>??@@A,++**))(-..//001<;;::998 !=7766554wwvvuutsVVWWXXYY{{zzyyxxFFGGHHII##""!! 6677889933221100QQRRSSYY -cbbaa``_^__``aab - - srrqqppoNOOPPQQR{zzyyxxw~<==>>??@~~}}|ABBCCDDE(''&&%%$1223344587766554!""##$$%43322110rqpoonnmZZ[[\\]] wwvvuuttJJKKLLMM::;;<<==//..--,,ZZ[[\\]] - _^^]]\\[bccddeefonnmmllkRSSTTUUVwvvuuoon@AABBCCD|{{zzyyxEFFGGHHI$##""!! 5667788943322110%&&''(()0//..--,mllkkjji^^__``aa - - ssrrqqppNNOOPPQQ>>??@@AA++**))((^^__``aa[ZZYYXXWfgghhiijkjjiihhgVWWXXYYZnmmllkkjDEEFFGGHxwwvvuutIJJKKLLM 9::;;<<=0//..--,)**++,,-,++**))(ihhggffebbccddeeoonnmmllRRSSTTUU~~}}||BBCCDDEE''&&%%$$bbccddeeWVVUUTTSjkkllmmngffeeddcZ[[\\]]^ jiihhggfHIIJJKKLtssrrqqpMNNOOPPQ=>>??@@A,++**))(-..//001(''&&%%$eddccbbaffgghhiikkjjiihhVVWWXXYY{{zzyyxxFFGGHHII##""!! ffgghhiiSRRQQPPOnooppqqr -cbbaa``_^__``aab - - feeddccbLMMNNOOPpoonnmmlQRRSSTTU~~}}|ABBCCDDE(''&&%%$12233445$##""!!a``__^^]jjkkllmmggffeeddZZ[[\\]] wwvvuuttJJKKLLMMjjkkllmmONNMMLLKrssttuuv - _^^]]\\[bccddeefbaa``__^~~}PQQRRSSTlkkjjiihUVVWWXXY|{{zzyyxEFFGGHHI$##""!! 56677889]\\[[ZZYnnooppqq ccbbaa``^^__``aa - - ssrrqqppNNOOPPQQ~~}}||{{nnoouuvv !!"KJJIIHHGvwwxxyyz[ZZYYXXWfgghhiij^]]\\[[Z}||{{zzyTUUVVWWXhggffeedYZZ[[\\] xwwvvuutIJJKKLLM 9::;;<<=YXWVUTSSrrssttuu - - __^^]]\\bbccddeeoonnmmllRRSSTTUUzzyyxxwwwwxxyyzz"##$$%%&GFFEEDDCz{{||}}~WVVUUTTSjkkllmmnZYYSSRRQyxxwwvvuXYYZZ[[\dccbbaa`]^^__``a - - tssrrqqpMNNOOPPQ=>>??@@ARRQQPPOOvvwwxxyy[[ZZYYXXffgghhiikkjjiihhVVWWXXYYvvuuoonn{{||}}~~&''(())*CBBAA@@?~SRRQQPPOnooppqqr -QPPOONNMuttssrrq\]]^^__``__^^]]\abbccddepoonnmmlQRRSSTTU~~}}|ABBCCDDE NNMMLLKKzz{{||}}WWVVUUTTjjkkllmmggffeeddZZ[[\\]] mmllkkjj*++,,--.?>>==<<;ONNMMLLKrssttuuv - MLLKKJJIqppoonnm`aabbccd\[[ZZYYXeffgghhilkkjjiihUVVWWXXY|{{zzyyxEFFGGHHI - - JJIIHHGG~~SSRRQQPPnnooppqq ccbbaa``^^__``aa - - iihhggff.//00112;::99887 !!"KJJIIHHGvwwxxyyzIHHGGFFEmllkkjjideeffgghXWWVVUUTijjkkllmhggffeedYZZ[[\\] xwwvvuutIJJKKLLMFFEEDDCCOONNMMLLrrssttuu - - __^^]]\\bbccddeeeeddccbb2334455676655443"##$$%%&GFFEEDDCz{{||}}~EDDCCBBAihhggffehiijjkklTSSRRQQPmnnooppq dccbbaa`]^^__``a - - tssrrqqpMNNOOPPQ -BBAA@@?? !!KKJJIIHHvvwwxxyy[[ZZYYXXffgghhiiaa``__^^6778899:3221100/&''(())*CBBAA@@?~A@@??>>=eddccbbalmmnnoopPOONNMMLqrrssttu - - `__^^]]\abbccddepoonnmmlQRRSSTTU - >>==<;:9""##$$%%GGFFEEDDzz{{||}}WWVVUUTTjjkkllmm]]\\[[ZZ:;;<<==>/..--,,+*++,,--.?>>==<<;=7766554a``__^^]pqqrrsstLKKJJIIHuvvwwxxy \[[ZZYYXeffgghhilkkjjiihUVVWWXXY87766554&&''(())CCBBAA@@~~SSRRQQPPnnooppqq YYSSRRQQ>??@@AAB+**))(('.//00112;::99887 !!"43322110]\\[[ZZYtuuvvwwxHGGFFEEDyzz{{||}XWWVVUUTijjkkllmhggffeedYZZ[[\\]43322110**++,,--??>>==<<OONNMMLLrrssttuu - - PPOONNMMBCCDDEEF'&&%%$$#2334455676655443"##$$%%&0//..--,YXXWWVVUxyyzz{{|DCCBBAA@}~~TSSRRQQPmnnooppq dccbbaa`]^^__``a0//..--,..//0011;;::9988 !!KKJJIIHHvvwwxxyyLLKKJJIIFGGHHIIJ#""!! 6778899:3221100/&''(())*,++**))(UTTSSRRQ|}}~~@??>>==<POONNMMLqrrssttu - - `__^^]]\abbccdde!!""#,++**))(2233445577665544""##$$%%GGFFEEDDzz{{||}}HHGGFFEEJKKLLMMN:;;<<==>/..--,,+*++,,--.(''&&%%$QPPOONNM<;;::998 !LKKJJIIHuvvwwxxy \[[ZZYYXeffgghhi#$$%%&&'(''&&%%$6677889933221100&&''(())CCBBAA@@~~DDCCBBAA~~}}||{NOOPPQQR>??@@AAB+**))(('.//00112$##""!!MLLKKJJIfpvXQJ`ےdrtAJJXQrbtlbHAAJltf`vXbtlf~HbHAJltJXQrArdt琙bHAZJlt`vXntlJf~HbHAZ`vXnr˂ptlJHAZp˂nXv`bHAZltb˂pZHJtArdZp˂bdQZ|nvpJtArdfpvZp˂bnvp˂pZHlJfpp˂rbdQZ|vpftArdfpvp˂rvpfZHAbtArdrXQJf~Hp˂rdQZ|`Abے`|ZdQrXQJ`ہdrtfH~˂|ZdQnXv`rXQJ`۝fHAb˝vnvXQJ`ےdrtAے`JXQ|ZdQbnXv`XQJ`ےH~fے`JXQ|ZdQb`ےbfpvXQJ`ےvXnJXQrbtlbHAAJltf`vXbtlf~HbHAf`vXpZHAf~HbHAZJltr˂ptlJf~HbHAZ`vXnr˂ptlJHAXQJ`nXv`bHAZvpfHZHAbJfpvZp˂bdQZ|nvpJtArdfpvZp˂nvpbے`fpvp˂rbdQZ|ZHAbtArdfpvp˂rvpfZHAbtArdےbHAf~Hp˂r~f`ے`JXQnXv`rXQJ`ہdrtfH~˂|ZdQnXv`rXQJ`fH~JXQrnXv`XQJ`ےdrtAے`JXQ|ZdQbnXv`XQJ`ےH~fے`JXQ|ZdQbZp˂fpvXQJ`ےvXnr˂pf~HbHAAJltf`vXbtlf~HbHAf`vXpZHAf~HbHAZJltr˂ptlJf~HJlt`vXnr˂ptlJrXQJ`nXv`bHAZvp`vZHAbfpvZp˂bdQZ|nvpJtArdfpvZp˂nvpbے`fpvp˂rbdQZ|ZHAbtArdfpvbdQZ|vpfZHAbtArdےbHAf~Hp˂rXnvے`JXQnXv`rXQJ`ہdrtfے`JX|ZdQnXv`rXQJ`fH~JXQHAbnXv`XQJ`ےdrtAے`JXQ|ZdQbnXv`drtAH~fے`JXQ|ZdQbZp˂fpvXQJ`ےpfH~r˂pf~HbHAAJltQr˂pbtlf~HbHAf`vXے`JXf~fpېbHAZJltr˂ptlJf~HJlt`vXnr˂ptlJbHAZnXv`bHAZf`vZAb`fpvZp˂bdQZ|ZHAbJtArdfpvZp˂nvpQr˂pvnXp˂rbdQZ|ZHAbtArdfpvbdQZ|vpfZHAbfpvp˂rf~Hp˂rXnvJXQr˅nXv`rXQJ`ہdrtے`JX|ZdQnXv`rXQJ`fH~ˑZHAbv`fXQJ`ےdtAJے`JXQ|ZdQbnXv`drtAH~fے`JXQ~HfXQJ`ےfpvXQJ`ےpfH~pZHAf~HbHAAJltQr˂pbtlf~HJltf`vXے`JX~HfpېbHAZltbr˂ptlJf~HJlt`vXnr˂ppvnbHAZnXv`bHAZvpbے`fpvZp˂bdQZ|ZHAbJtArdfpvbdQZ|nvpQr˂pvnXp˂rnvpZHAbtArdfpvbdQZ|vpfZHAbXv`fp˂rf~Hp˂rfH~JXQr˅nXv`rXQJ`ہdrtے`JX|ZdQnXv`drtfH~ˑ`JXQv`fXQJ`ےfHfے`JXQ|ZdQbnXv`drtAH~fے`JXQ~HfXQJ`pfpvXQJ`ےf`vXpZHAbf~HbHAAJltQr˂pbtlf~HAJltf`vXr˂p~HfvnbHAZ`vXnr˂ptlJfHfJlt`vXnr˂ppvn˂rXQnXv`bHAZnvpJAdfpvZp˂bdQZ|ZHAbJtArdfpvbdQZ|nvpZHAbXv`fp˂rvpfZHAbtArdpvnbdQZ|vpfZHAbXv`pJ`ےf~Hp˂rfH~|ZdQnXv`rXQJ`ہdtAے`JX|ZdQnXv`drtfH~˒`JXQ~HfXQJ`ےH~fے`JXQ|ZdQbrXQJ`drtAH~fے`JXQvnXbHAZpfpvXQJ`ےf`vXbtlf~HbHAJltQr˂pbtlf~HAJltf`vXr˂p`pvnbHAZ`vXnr˂ptlJےHAZJlt`vXnr˂pv`f˂rXQnXv`bHAZH~fJtArdfpvZp˂bnvpZHAbJtArdfpvbdQZ|nvpJXQrXv`fp˂rvpfZHAbtArdp˂rbdQZ|vpfZHAے~HfpJ`ےf~Hp˂r`vXn|ZdQnXv`rXQJ`۝fH˙ے`JX|ZdQnXv`drtfH~btl|~HfXQJ`ےH~fے`JXQ|ZdQbXQJ`ےdrtAH~f`JXQrvnXbHAXQJfpvXQJ`ےvpfbtlf~HbHAf`vXQr˂pbtlfHAJltf`vXZdQbtpvnbHAZ`vXnr˂ptlJbHAZJlt`vXnbtlv`f`ےJlnXv`JltH~fJtArdfpvZp˂nvpZHAbJtArdfpvbdQZ|nvplJtvf~Hp˂rvpfZHAbtArdp˂rbdQZ|vpfJtAd~HXvtbQZf~HdrtAJ`vXn|ZdQnXv`rXQJ`fH~˙ے`JX|ZdQnrXQJ`drtfH~Ard|fpvXQJ`ےH~fے`JXQ|ZdQbXQJ`ےdrtAH~f|ZdQb`f~drtAfpvltbvp`btlf~HbHAf`vXQr˂pbtlےHAAJltf`vXZdQbtnXv`Jlt`vXnr˂ptlJbHAZJlt`vXntlJHfpvJltnXv`dQZ|vXnJtArdfpvZp˂nvpZHAbJtArdZp˂bdQZ|nvpl|f~HbdQZ|vpfZHAbtArdp˂rbdQZ|vpftArdnXvbdQZ|f~HdrtAJvpfH|ZdQnXv`rXQJ`fH~˙ے`JX|ZdQrXQJ`ہdrtfH~ZdQbtfpvdrtAH~fے`JXQ|ZdQbXQJ`ےdrtAH~f|ZdQb`f~drtAfpvltb~f`btlf~HbHAf`vXQr˂pbtlbHAAJltf`vXlJtAnXv`Jlt`vXnr˂ptlJbHAZJlt`vXntlJHfpvJltnXv`dQZ|lvXnJtArdfpvZp˂nvpZHAbJtArdZp˂bdQZ|nvprd|f~fpbdQZ|vpfZHAbfpvp˂rbdQZ|vpftArd~HbdQZ|f~HtbdQvpfH|ZdQnXv`rXQJ`fH~˙ے`JX|ZdQrXQJ`ہdrtfH~ZdQbtvnXdrtAH~fے`JXQnXv`XQJ`ےdrtAH~f|ZdQbfpvrAJl璂rAJlfpvZ|d~vbtlf~HJltf`vXQr˂pbtlbHAAJltf`vXlJtAv`fJlt`vXnr˂pf~HbHAZJlt`vXntlJnXv`tbdQZtbdQnXv`rtAJlpfے`JtArdfpvbdQZ|nvpZHAbJtArdZp˂bdQZ|nvprdtl~HfpbdQZ|vpfZHAbfpvp˂rbdQZ|vpftArdf~H|drZ|df~HtbdQJXQr|ZdQnXv`drtfH~˙ے`JX|ZdQrXQJ`ہdrtfH~ˑJtArdvnXdrtAH~fے`JXQnXv`XQJ`ےdrtAے`JXQ|ZdQbfpvtAJlrtAJlfpvZ|dZHAbbtlf~HAJltf`vXQr˂pbtlbHAAJltf`vX|Zdv`ffJlt`vXnr˂pf~HbHAZJltr˂ptlJnXv`tbdQZtbdQnXv`rtAdQZ`JXQJtArdfpvbdQZ|nvpZHAbJfpvZp˂bdQZ|nvpQbtlpvnbdQZ|vpfZHAbfpvp˂rbdQZ|ZHAbtArdpvn|drZ|AJlp˂r|drr˂p|ZdQnXv`drtfH~˙ے`JXnXv`rXQJ`ہdrtfH~ˑJtArdrXQJ`drtAH~fے`JXQnXv`XQJ`ےdrtAے`JXQ|ZdQbXv`ftAJbdtbXQJ`ےtAJlZHAbbtlf~HAJltf`vXQr˂pf~HbHAAJltf`vX|ZdےHAZJlt`vXnr˂pf~HbHAZJltr˂ptlJ~HfQZ|dnvpbHAZtbdQZ`JXQJtArdfpvbdQZ|nvpZHAbfpvZp˂bdQZ|nvpQtArdp˂rbdQZ|vpfZHAےfpvp˂rbdQZ|ZHAbtArdpvnrtAJlfHf`p˂r|drr˂pZ|ZdQnXv`drtfH~˙ے`JXnXv`rXQJ`ہdrtfے`JX|ZdQXQJ`ےdrtAH~f`JXQrnXv`XQJ`ےdrtAے`JXQ|ZdQbXv`ptbdvXnXQJ`ےtAJlAb`JbtlfHAJltf`vXQr˂pf~HbHAAJltQHAbbtlbHAZJlt`vXnbtlf~HbHAZJltr˂ptlJvnrQZ|dvpfHbHAZtdrtAXQr˂JtArdfpvbdQZ|nvpZHAbfpvZp˂bdQZ|`JXQJtArdp˂rbdQZ|vpfJtAdfpvp˂rbdQZ|ZHAbtArdXQJ`prtAJl~f`p˂rJltpZHAb|ZdQnrXQJ`drtfH~˙ے`JXnXv`rXQJ`ہdrtr˂p|ZdQXQJ`ےdrtAH~f|ZdQbnXv`XQJ`ےdtAJے`JXQ|ZdQb˂rXQtbQZvXnXQJ`ےbdQZ|ے`JbtlےHAAJltf`vXQr˂pf~HbHAAJltZHAbbtl|bHAZJlt`vXntlJf~HbHAZltbr˂ptlJJ`ےdrtAvpfHbHAZdrtAXQr˂JtArdZp˂bdQZ|nvpZHAۅfpvZp˂bdQZ|`JXQZdQbtp˂rbdQZ|vpftArdfpvp˂rnvpZHAbtArdbHAZpJlt~f`p˂rJltpZHAb|ZdQrXQJ`ہdrtfH~˒`JXQnXv`rXQJ`ہdrtr˂p`lJtXQJ`ےdrtAH~f|ZdQbnXv`XQJ`ےfHfے`JXQ|ZdQb˂rXQbdQZ|vXnXQJ`ےbdQZ|JQrbtlbHAAJltf`vXrbtlf~HbHAAJltJXQrArd|bHAZJlt`vXntlJf~HbHAZ`vXnr˂ptlJJ`p˂drtAvpfHbHAZltb˂pZHJtArdZp˂bdQZ|nvpJtAdfpvZp˂bdQZ|˂pZHZdQbtp˂rbdQZ|vpftArdfpvp˂rvpfZHAbtArdrXQJJlt~f`p˂rdQZ|Abے`|ZdQrXQJ`ہdrtfH~˂|ZdQnXv`rXQJ`ہdtAAbے`lJtXQJ`ےdrtAH~f|ZdQbnXv`XQJ`ےH~fے`JXQ|ZdQb`ےbbdQZ|vXnvpfHZHAbArd|˂rXbdQZ|vpfHArd|fpv˂rXfH~r˂pZpvn˂rXQdQZ|vpfےrd|pvn˂rXQvpfHے`JXQvnXrXQQZ|dAbے`rd|vnXQZ|dvpfHJXQrXnvˍ~f``JXQZdQbtQJ`ےdrtA~f`ZdQbtnXv`QJ`ےf`vXAb`JXv`fJ`ےdrtAJ`JXQrZdQbtXv`fJ`ے~f`HAbےv`f~J`ےrtAJlJXQrZdQbtv`frtAJl~f`˂pZHpfH~ㅍvXnr˂plJbHAZpJltvXnlJtf~HbHAZpnvpXQr˂~HfbHAZpltb˂pZlJtA~HfbHAZpvXn`JXQrfpvbHAZpˑtbd˂pZHlJtA~HfptbdvXnAbے`f۝`vvpfHZHAbfpv˂rXbdQZ|vpfHArd|fpv˂rXfH~pZHAbpvn˂rXQdQZ|HAbےrd|pvn˂rXQvpfH˂pZnXv`rXQQZ|dAbے`rd|vnXQZ|dvpfHJXQrXnvˍ~f``JXQnXv`QJ`ےdrtA~f`ZdQbtnXv`QJ`ےvpے`JXv`fJ`ےdrtAJ`JXQrZdQbtXv`fJ`ےJ~f`HAbےf~HJ`ےtAJlJXQrZdQbtv`frtAJl~f`˂p`ZpfH~ㅍvXnr˂pf~HbHAZpJltvXnlJtf~HbHAZpfH~XQr˂~HfbHAZpltb˂pZlJtA~HfltbvXn`JXQrfpvbHAZp˒tbn˂pZHlJtA~HfptbdvXnQXb㉀f۝`vvpfHZHAbfpv˂rXbdQZ|vpfArd|fpv˂rXf`vXpZA`pvn˂rXQdQZ|HAbےrd|pvndQZ|vpfH˂p`nXv`rXQvpfHAbے`rd|vnXQZ|dvpfHۑpJAHrXnvˍ~f``JXQnXv`QJ`ےdrtA`JXQZdQbtnXv`QJ`ےnvpJXQrbXv`fJ`ےdrtAJ`JXQrZdQbtXv`fdrtAJ~f`JXQrf~HJ`ےㅐf`JXQrZdQbtv`frtAJl~f`󙐂ˁ`ZpfH~ㅍvXnr˂pf~HbHAZpJltr˂plJtf~HbHAZpfH~tlJ~HfbHAZpltb˂pZlJtA~HfltbvXn˂pZHAfvnXbHAZpvXnۉ˂pZHlJtAHfpۑtbdvXnQXb㉀f۝`vvpfHZHAbfpv˂rXbdQZ|ZHAbArd|fpv˂rXf`vXHtAd|pvn˂rXQdQZ|HAbےrd|pvndQZ|vpfHbے`v`f󂀉rXQvpfHAbے`rd|vnrXQZ|dvpfHۑp`ZQXnvˍ~f``JXQnXv`QJ`ےdrtA`JXQZdQbtnXv`QJ`ے~f`ZdQbtXv`fJ`ےdtAJl`JXQrZdQbtXv`fdrtAJ~f`JXQr~HfpJ`ے~f`JXQrZdQbtQJ`ےrtAJl~f`Xb㉀ۑpfH~ㅍvXnr˂pf~HbHAZpJltr˂plJtf~HJltdvXnlJtA~HfbHAZptbn˂pZlJtA~HfltbvXn˂p`JvnXbHAZpvXnۉ˂pZHlJtAHAZpˑtbdvXnpJAHrf۝`vvpfHZHAے`fpv˂rXbdQZ|ZHAbArd|fpvrtAJlvpfHrd|pvn˂rXQvpfHAbےrd|pvndQZ|vpfHXQrbtv`f󂀉rXQvpfHAbے`rd|炀rXQQZ|dvpfHˁ`ZQXnvˍ~f`JXQrnXv`QJ`ےdrtA`JXQZdQbtnXv`ˑtbd~f`ZdQbtXv`fJ`ےHf``JXQrZdQbtXv`fdrtAJ~f`l|Z~HfpJ`ے~f`JXQrZdQbtJ`ےrtAJl~f`Xb㉀ۑpfH~ㅍvXnbtlf~HbHAZpJltr˂plJtf~HQZ|dvXnlJtA~HfbHAZpvXn˂pZlJtAHfpltbvXndQbtvnvfbHAZpvXnۉ˂pZHlJtAbHAZpˑtbdvXnpJAHrf۝`vvpfHJtAd|fpv˂rXbdQZ|ZHAbArd|fpvrtAJlvp`rd|pvn˂rXQvpfHHAbےrd|vnrdQZ|vpfHlJtAr~HfrXQvpfHAbے`rd|炀rXQQZ|dvpfH󐉀ۑpJXnvˍ~f`ZdQbtnXv`QJ`ےdtAJl`JXQZdQbtnXv`ˑtbdvXnZdQbtXv`fJ`ے~f``JXQrZdQbtXQJ`ےdrtAJ~f`d|ZpvnJ`ےJl~f`JXQrZdQbtJ`ےrtAJl~f`AHr󙐂p|drvXnlJtf~HbHAZptbr˂plJtf~HQZ|lvpfHlJtA~HfbHAZpvXn˂pZlJtAHAZpltbvXndQbtXv`ftbdvXnۉ˂pZHlJtAbHAZpˑtbdvXnˁ`ZQXbQtJlvpfHArd|fpv˂rXnvpZHAbArd|fpvtbdQ~f`rd|pvn˂rXQvpfHHAbےrd|˂rXQdQZ|vpfHl|ZdQ~HfQZ|dvpfHAbے`rd|炀rXQQZ|dvpfH㉀ۑpJtbAdZ~f`ZdQbtnXv`QJ`ےfHf``JXQZdQbtnXv`Z|dvXnZdQbtXv`fJ`ے~f``JXQrZdQbtJ`ےdrtAJ~f`btlpvnrtAJl~f`JXQrZdQbtJ`ےrtAJl~f`AHr󙐂|drvXnlJtf~HbHAZpvXnr˂plJtfHfprtAJlvpfHlJtA~HfbHAZpvXn˂pZlJtAbHAZpltbvXnJtArdXv`ftbdvXnۉ˂pZHlJfpbHAZpˑtbdvXnˁ`ZQXAQtJlvpfHArd|fpv˂rXvpfHZHAbArd|vntbdQ~vprd|pvn˂rXQvpfHHAbےrd|˂rXQdQZ|vpfH|ZdQ~fpvQZ|dvpfHAbے`vnXrXQQZ|dvpfHHr󙐂ˁtbAdZ~f`ZdQbtnXv`QJ`ے~f``JXQZdQbtrXQJ`Z|dfے`ZdQbtXv`fJ`ےJ~f``JXQrZdQbtJ`ےdrtAJ~f`btlnXv`rtAJl~f`JXQrv`fJ`ےrtAJl~f``ZQXb|drvXnlJtf~HbHAZpvXnr˂plJtHAZprtAdQZ|JXQrZlJtA~HfltbvXn˂pZlJtAbHAZpltbvXnJtArdf~HtbdvXnۉ˂pZH~HfpbHAZpˑtbdvXnۀۑpJAQtJlvpfArd|fpv˂rXvpfHZHAbArd|˂rXdrtHAbےrd|pvndQZ|vpfHHAbےrd|˂rXQdQZ|vpfHtlJfpvQZ|dvpfHAbے`vnXrXQQZ|dvpfZHHr󙐂ˁtbAdZ`JXQZdQbtnXv`QJ`ے~f``JXQZdQbtQJ`ےAJlt`JXQrZdQbtXv`fdrtAJ~f``JXQrZdQbtJ`ےdrtAJ~f`tArdnXv`rtAJl~f`JXQrv`fJ`ےrtAJlAbے``ZQXb|drr˂plJtf~HbHAZpvXnr˂plJtbHAZpbdQZ|˂pZlJtA~HfltbvXn˂pZlJfbHAZpltbvXn|ZdQbffpۑtbdvXnۉ˂pZH~HfpbHAZpˑtbdJXQrۑp`ZQtJlZHAbArd|fpv˂rXvpfHZHAbArd|˂rXdrtHAbےrd|pvndQZ|vpfHHAbےpvn˂rXQdQZ|vpfHtlJvnrXQZ|dvpfHAbے`vnXrXQQZ|d˂pZHQXb㉀tbAdZ`JXQZdQbtnXv`QJ`ے~f``JXQZdQbtQJ`ےAJlt`JXQrZdQbtXv`fdrtAJ~f``JXQrXv`fJ`ےdrtAJ~f`tArdQJ`ےrtAJl~f`JXQrv`fJ`ےrtAJlAbے`ۑpJAHr|drr˂plJtf~HJltvXnr˂plJtbHAZpdrtA˂pZAlJtA~HfltbvXn˂pZ~HfbHAZpltbvXn|ZdQtAHAZpˑtbdvXnۉ˂pZH~HfpbHAZpˑtbdJXQr󙐂ˁ`ZQtJlZHAbArd|fpvbdQZ|vpfHZHAbArd|˂rXJltb`JXrd|pvndQZ|vpfHHAbےpvn˂rXQdQZ|vpfےrd|rXQQZ|dvpfHAے`vnXrXQQZ|d˂p`QXb㉀tbAdZ`JXQZdQbtnXv`˂drtA~f``JXQZdQbtQJ`ےbdQZ|Qr˂pZdQbtXv`fdrtAJ~f``JXQrXv`fJ`ےdrtAJ`JXQHAZdQbtJ`ےrtAJl~f`JXQrbtv`fJ`ےrtAJlJXQrۑpJAH|drr˂plJtf~HJltvXnr˂plJbHAZpdrtAZHAblJtAHfpltbvXn˂pZ~HfbHAZpltbbے`lJtAbHAZpˑtbdvXnۉlJt~HfpbHAZpˑtbdpZHAf۝`vQtJlZHAbArd|fpvbdQZ|vpfHZHAbfpv˂rXJltے`JXrd|vnrdQZ|vpfHHAbےpvn˂rXQdQZ|JXQrrd|rXQQZ|dvpfHAd|vnXrXQQZ|dbے`XnvˍtbAdZ`JXQZdQbtnXv`˂drtA~f``JXQnXv`QJ`ےbdQZ|lQr˂pZdQbtXQJ`ےdrtAJ~f``JXQrXv`fJ`ےdrtAJ˂pZHAZdQbtJ`ےrtAJl~f`ZdQbtv`fJ`ےtAJlJXQrpfH~|drr˂plJtf~HJltvXnr˂pf~HbHAZptbdZHAblJtAHAZpltbvXn˂pZ~HfbHAZpltbbے`l|ZbHAZpˑtbdvXnےlJtA~HfpbHAZp˒tbnpZHAf۝`vQtJlZHAbArd|fpvbdQZ|vpfHZHAbfpv˂rXQZ|dJQrrd|˂rXQdQZ|vpfHHAے`pvn˂rXQdQZ|JXQrdQbt璂rXQQZ|dvpfHrd|vnXrXQvpfHb˂pXnvˍtbAdZ`JXQZdQbtnXv`˂drtA~f``JXQnXv`QJ`ےrtAJl˂pZHAZdQbtJ`ےdrtAJ~f`JXQrbXv`fJ`ےdrtAJ˂p`JlJtArJ`ےrtAJl~f`ZdQbtv`fJ`ےㅐf`ZHAbpfH~|drr˂plJtfHfpJltvXnr˂pf~HbHAZptbdbے`lJtAbHAZpltbvXntlJ~HfbHAZpltbXQr˂d|ZbHAZpˑtbdvXnےlJtA~HfpbHAZpvXnۙے`JXf۝`vQtJlZHAbArd|vnbdQZ|vpfHZHAbfpv˂rXQZ|lJXQrrd|˂rXQdQZ|vpfHtAd|pvn˂rXQdQZ|pZHAbdQbt璂rXQQZ|dvpfHrd|vnXrXQvpfHQr˂pXnvˍtbAdZ`JXQZdQbtrXQJ`ۂdrtA~f``JXQnXv`QJ`ےtbn˂pZHAZdQbtJ`ےdrtAJ~f`ZdQbtXv`fJ`ےdtAJlے`JlJtArJ`ےrtAJl~f`ZdQbtv`fJ`ے~f`ZHAbpfH~|drr˂plJtHAZpJltvXnr˂pf~HbHAZpvp`bے`lJtAbHAZpltbvXnlJtA~HfbHAZptbnXQr˂dtlbHAZpˑtbdvXnےlJtA~HfpbHAZpvXnۙے`JXf۝`vQtJlZHAbArd|˂rXbdQZ|vpfHZHAے`fpv˂rXvXnJXQrrd|˂rXQdQZ|vpfHrd|pvn˂rXQvpfpZHAbJfpvrXQQZ|dvpfے`rd|vnXrXQvpfHQHAbXnvˍtbAdZ`JXQZdQbtQJ`ےdrtA~f`JXQrnXv`QJ`ےvpfHZHAbZdQbtJ`ےdrtAJ~f`ZdQbtXv`fJ`ےHf`˂pnvfJ`ےrtAJlJXQrZdQbtv`fJ`ے~f``JXQpfH~|drr˂plJtbHAZpJltvXnbtlf~HbHAZp~f``JXQlJfbHAZpltbvXnlJtA~HfbHAZpvXnZHAb~HfpbHAZpˑtbd˂pZHlJtA~HfpbHAZpvXnr˂pf۝`vQtJlZHAbArd|˂rXbdQZ|vpfHJtAd|fpv˂rXvXnr˂ppvn˂rXQdQZ|vpfHrd|pvn˂rXQvpfHے`JXQvnXrXQQZ|dAbے`rd|vnXrXQvpfHZHAbXnvˍtbAdZ`JXQZdQbtQJ`ےdrtA~f`ZdQbtnXv`QJ`ےvp`vXZHAbXv`fJ`ےdrtAJ~f`ZdQbtXv`fJ`ے~f`r˂pv`fJ`ےrtAJlJXQrZdQbtv`fJ`ےJl~f``JXQpfH~|drr˂plJtbHAZpJltvXnlJtf~HbHAZpnvp`JXQ~HfbHAZpltbvXnlJtA~HfbHAZpvXnZHAb~HfpbHAZpˑtbd˂pZHlJtA~HfptbdvXnr˂p`f۝`vQtJlt666666666666666666666666666667777777777777777777 \ No newline at end of file diff --git a/vendor/endroid/qr-code/assets/data/qrv34_0.dat b/vendor/endroid/qr-code/assets/data/qrv34_0.dat deleted file mode 100755 index 690400562..000000000 --- a/vendor/endroid/qr-code/assets/data/qrv34_0.dat +++ /dev/null @@ -1,305 +0,0 @@ -}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYWWWWWXWXUVUVUVUVSTSTSTSTQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYWXWXWXWXUVUVUVUVSTSTSTSTQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYWXWXWXWXUVUVUVUVSTSTSTSTQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYWXWXWXWXUVUVUVUVSTSTSTSTQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvsssssstsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYWXWXWXWXUVUVUVUVSTSTSTSTQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvtstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYWXWXWXWXUVUVUVUVSTSTSTSTQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvtstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYWXWWWWWXUVUVUVUVSTSTSTSTQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=<;<;<}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvtstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYWXWXWXWVUVUVUVUVSTSTSTSTQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@;<;;;;;;}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvtstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYUVUVUVUVUVUVUVUTSTSTSTSTQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@<;<;<;<;}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvtstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYUVUVUVUVSTSTSTSTSTSTSTSRQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@<;<;<;<;}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvtstsssssrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYXWXWUVUVUVUVSTSTSTSTQRQRQRQRQRQRQRQPOPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@<;<;<;<;}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvtstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[XWXWWWWWUVUVUVUVSTSTSTSTQRQRQRQROPOPOPOPOPOPOPONMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@<;<;<;<;}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvrqrqrqrqrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[WXWXWXWXUVUVUVUVSTSTSTSTQRQRQRQROPOPOPOPMNMNMNMNMNMNMNMLKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?>=><;<;<;<;}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvrqrqrqrqpopopopopopopoponmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[WXWXWXWXUVUVUVUVSTSTSTSTQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLKLKLKLKJIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB=>=>=>=><;<;<;;;}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvutstrqrqrqrqpopopoponmnmnmnmnmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[WXWXWXWXUVUVUVUVSTSTSTSTQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJIJIJIJIHGHGHGHGHEFEFEFEFCDCDCDCDABABABAB=>=>=>=>;;;<;<;<<;<;<;<;}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxststssssrqrqrqrqpopopoponmnmnmnmlklklklklklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[WXWXWXWXUVUVUVUVSTSTSTSTQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHGHGHGHGFEFEFEFEFCDCDCDCDABABABAB=>=>=>=>;<;<;<;<<;<;<;<;}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxsstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijijijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[ZYWXWXWXWXUVUVUVUVSTSTSTSTQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFEFEFEFEDCDCDCDCDABABABAB=>=>=>=>;<;<;<;<<;;;;;<;}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxtstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghghghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]ZYZYZYZYWXWXWXWWUVUVUVUVSTSTSTSTQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDCDCDCDCBABABABAB=>=>=>=>;<;<;<;<<;<;<;:9}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxtstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefefefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]ZYZYZYZYWWWWXWXWUVUVUVUVSTSTSTSTQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABABABABABA@=>=>=>=>;<;<;<;<:9:9:9:9}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxtstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcdcdcdcdcbabababa`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWUVUVUVUVSTSTSTSTQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<:9:9:9:9}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwvtstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababababababa`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWUVUVUVUVSTSTSTSTQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;;;;;;<;:9:9:9:9}~}~}~}~{|{|{|{|yzyzyzyzuvuvuvuvtstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWUVUVUVUVSTSTSTSTQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=><;<;<;<;:9:9:9:9}~}~}~}~{|{|{|{|yzyzyzyzuvuvuvuvssssststrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]^]^]^]^]ZYZYZYZYXWXWXWXWUVUVUVUVSTSTSTSTQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=><;<;<;<;:9:9:9:9}~}~}~}~{|{|{|{|yzyzyzyzuvuvuvuvststststrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWUVUVUVUVSTSTSTSTQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=><;<;<;<;:9:9:9:9~}~}~}~}~}~}~}~{|{|{|{|yzyzyzyzuvuvuvuvststststrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWWWWWWXUVUVUVUVSTSTSTSTQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=><;<;<;<;:9:9:9:9}~}~}~}~}|{|{|{|{|{|{|{|yzyzyzyzuvuvuvuvststststrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYWXWXWXWXUVUVUVUVSTSTSTSTQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=><;<;<;<;:9:9:9:9}~}~}~}~{|{|{|{|{zyzyzyzyzyzyzyzuvuvuvuvststststrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYWXWXWXWXUVUVUVUVSTSTSTSTQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=><;<;;;;;:9:9:9:9}~}~}~}~{|{|{|{|yzyzyzyzyxwxwxwxuvuvuvuvststststrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYWXWXWXWXUVUVUVUVSTSTSTSTQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<:9:9:9:9}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvstssssssrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYWXWXWXWXUVUVUVUVSTSTSTSTQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<:9:9:9:9}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvtstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYWXWXWXWXUVUVUVUVSTSTSTSTQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<:9:9:9:9}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvtstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYWXWXWWWWUVUVUVUVSTSTSTSTQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<:9:9:9:9}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvtstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYWWXWXWXWUVUVUVUVSTSTSTSTQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;<:9:9:9:9}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvtstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWUVUVUVUVSTSTSTSTQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;<;<;<;;:9:9:9:9}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvtstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWUVUVUVUVSTSTSTSTQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=>;;;;<;<;:9:9:9:9}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvtststsssrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWUVUVUVUVSTSTSTSTQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=><;<;<;<;:9:9:9:9}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvssstststrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWUVUVUVUVSTSTSTSTQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=><;<;<;<;:9:9:9:9}~}~}~}~{|{|{|{|yzyzyzyzwxwxwxwxuvuvuvuvststststrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWUVUVUVUVSTSTSTSTQRQRQRQROPOPOPOPMNMNMNMNKLKLKLKLIJIJIJIJGHGHGHGHEFEFEFEFCDCDCDCDABABABAB?@?@?@?@=>=>=>=><;<;<;<;:9:9:9:9:9:9:9:9878787876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -:9:9:9:9878787876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -:9:9:9:9878787876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -:9:9:9:9878787876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -:9:9:9:9878787876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -:9:9:9:9878787876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - -:9:9:9:9878787876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - -:9:9:9:9878787876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -:9:9:9:9878787876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -:9:9:9:9878787876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -:9:9:9:9878787876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -:9:9:9:9878787876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -:9:9:9:9878787876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!       - - - -:9:9:9:9878787876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!       - - - -:9:9:9:9878787876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!     - - - -:9:9:9:9878787876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!     - - - -:9:9:9:9878787876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!        - - - -:9:9:9:9878787876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#       - - - -:9:9:987878787876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#         - - - -87878787878787656565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#         - - - -87878787656565656565654343434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#         - - - -87878787656565654343434343434321212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#          - - - -878787876565656543434343212121212121210/0/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#"!"!           - - - -878787876565656543434343212121210/0/0/0/0/0/0/.-.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%"!"!"!"!       - - - - - -878787876565656543434343212121210/0/0/0/.-.-.-.-.-.-.-,+,+,+,+,+*)*)*)*)('('('('&%&%&%&%"!"!"!"!        - - - - - - 878787876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+,+,+,+*)*)*)*)*)('('('('&%&%&%&%"!"!"!"!         - - - -878787876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)*)*)*)('('('('('&%&%&%&%"!"!"!"!         - - - -878787876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('('('('&%&%&%&%&%"!"!"!"!         - - - -878787876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%&%&%&%$#"!"!"!"!         - - - -878787876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -878787876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!       - - - -878787876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -878787876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -878787876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -878787876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -878787876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - -878787876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!      - - - - 33445566ONNMMLLKTUUVVWWXIHHGGFFELMMNNOOPQPPOONNMDEEFFGGHYXXWWVVU<==>>??@a``__^^]45566778ihhggffe,--..//0gffeeddcOPPQQRRS54433221eeffgghh88776655]]^^__``@@??>>==UUVVWWXXHHGGFFEEMMNNOOPPPPOONNMMEEFFGGHHXXWWVVUU==>>??@@QQPPOONNeeffgghh$#"! uvvwwxxy(''&&%%$mnnooppq0//..--,effgghhi87766554]^^__``a@??>>==>=TUUVVWWXIHHGGFFELMMNNOOPQPPOONNMDEEFFGGHYXXWWVVU<==>>??@a``__^^]45566778_^^]]WWVW]]^^__`-,,++**)mmnnoopp00//..--eeffgghh88776655]]^^__``@@??>>==UUVVWWXXHHGGFFEEMMNNOOPPPPOONNMMEEFFGGHHIIHHGGFFmmnnoopp}~~ uvvwwxxy(''&&%%$mnnooppq0//..--,effgghhi87766554]^^__``a@??>>==`aabbccd=<<;;::9XYYZZ[[\EDDCCBBAPQQRRSSTMLLKKJJIHIIJJKKLUTTSSRRQ@AABBCCD]\\[[ZZY899::;;>=TUUVVWWXIHHGGFFELMMNNOOPQPPOONNMDEEFFGGHYXXWWVVU<==>>??@RQQPPOONdeeffggh%$#"! uuvvwwxx((''&&%%mmnnoopp00//..--eeffgghh88776655]]^^__``@@??>>==UUVVWWXXHHGGFFEEMMNNOOPPAA;;::99zz{{||}}}~~ uvvwwxxy(''&&%%$mnnooppq0//..--,effgghhi87766554]^^__``a,++**))(!!""##$$rrqqppooLLMMNNOO88776655hiijjkkl54433221`aabbccd=<<;;::9XYYZZ[[\EDDCCBBAPQQRRSSTMLLKKJJIHIIJJKKLUTTSSRRQ@AABBCCDNMMLLKKJhiijjkklyyzz{{||$$##""!!qqrrsstt,,++**))iijjkkll44332211aabbccdd<<;;::99YYZZ[[\\DDCCBBAAQQRRSSTT88776655~~ -yzz{{||}$##""!! qrrssttu,++**))(ijjkkllm43322110abbccdde(''&&%%~~}}%%&&''((nnmmllkkPPQQRRSS44332211lmmnnoop100//..-deeffggh98877665\]]^^__`A@@??>>=TUUVVWWXIHHGGFFELMMNNOOPQPPOONNMDEEFFGGHJIIHHGGFlmmnnoop}}~~ uuvvwwxx((''&&%%mmnnoopp00//..--eeffgghh88776655]]^^__``@@??>>==UUVVWWXX44332211 -  }~~ uvvwwxxy(''&&%%$mnnooppq0//..--,effgghhi||{{zzyy))**++,,jjiihhggTTUUVVWW00//..--pqqrrsst-,,++**)hiijjkkl54433221`aabbccd=<<;;::9XYYZZ[[\EDDCCBBAPQQRRSSTMLLKKJJIHIIJJKKLFEEDDCCBpqqrrssyyyzz{{||$$##""!!qqrrsstt,,++**))iijjkkll44332211aabbccdd<<;;::99YYZZ[[\\00//..-- - - yzz{{||}$##""!! qrrssttu,++**))(ijjkkllmxxwwvvuu--..//00ffeeddcc]]^^__``,,++**))tuuvvwwx)((''&&%lmmnnoop100//..-deeffggh98877665\]]^^__`A@@??>>=TUUVVWWXIHHGGFFELMMNNOOPBAA;;::9yzz{{||}}}~~ uuvvwwxx((''&&%%mmnnoopp00//..--eeffgghh88776655]]^^__``,,++**)) }~~ uvvwwxxy(''&&%%$mnnooppqttssrrqq11223344bbaa``__aabbccdd((''&&%%xyyzz{{|%$$##""!pqqrrsst-,,++**)hiijjkkl54433221`aabbccd=<<;;::9XYYZZ[[\EDDCCBBAPQQRRSST98877665}~~ yyzz{{||$$##""!!qqrrsstt,,++**))iijjkkll44332211aabbccdd((''&&%%  - - yzz{{||}$##""!! qrrssttuppoonnmm55667788^^]]WWVVeeffgghh$#"! |}}~~! tuuvvwwx)((''&&%lmmnnoop100//..-deeffggh98877665\]]^^__`A@@??>>=TUUVVWWX54433221 - -  }}~~ uuvvwwxx((''&&%%mmnnoopp00//..--eeffgghh - -  }~~ uvvwwxxy llkkjjii99::;;<>??@@QQPPOONNmmnnoopp|}}~~! tuuvvwwx)((''&&%lmmnnoop100//..-deeffggh98877665\]]^^__`-,,++**) }}~~ uuvvwwxx((''&&%%mmnnoopp - -  }~~~~}}||ddccbbaaAABBCCDDMMLLKKJJqqrrssyyxyyzz{{|%$$##""!pqqrrsst-,,++**)hiijjkkl54433221`aabbccd)((''&&% - - yyzz{{||$$##""!!qqrrsstt   - -  -{{zzyyxw``__^^]]EEFFGGHHIIHHGGFFzz{{||}} |}}~~! tuuvvwwx)((''&&%lmmnnoop100//..-deeffggh% - -  }}~~ uuvvwwxx  - -  - vutssrrq\\[[ZZYYIIJJKKLLEEDDCCBB~~ - - - xyyzz{{|%$$##""!pqqrrsst-,,++**)hiijjkkl  - - yyzz{{|| - -  !~~}}|   - - qppoonnm - -XXWWVVUUMMNNOOPPAA;;::99 -   |}}~~! tuuvvwwx)((''&&%lmmnnoop - -  }}~~~~}}|!""##$$%|{{zzyyx - - mllkkjji TTSSRRQQQQRRSSTT88776655 - - xyyzz{{|%$$##""!pqqrrsst  - -  |{{zzyyx%&&''(()xwwvvuut !~~}}|  ihhggffePPOONNMMUUVVWWXX44332211 - -   |}}~~! tuuvvwwx  - -  - - wvutssrr)**++,,-tssrrqqp!""##$$%|{{zzyyx - - eddccbbaLLKKJJIIYYZZ[[\\00//..--  - - xyyzz{{| - -  ~~}}  - - qqppoonn-..//001poonnmml%&&''(()xwwvvuut !~~}}|  %%&&'a``__^^] HHGGFFEE]]^^__``,,++**)) - -   |}}~~~~}}!!""##$$||{{zzyy - - mmllkkjj12233445lkkjjiih)**++,,-tssrrqqp!""##$$%|{{zzyyx - - '(())**+]\[ZYXWW - - DDCCBBAAaabbccdd((''&&%%  - -  ||{{zzyy%%&&''((xxwwvvuu ~~}} iihhggff56677889hggffeed-..//001poonnmml%&&''(()xwwvvuut !~~}}| +,,--../VVUUTTSS@@??>>==eeffgghh - -   - - xwvutssr))**++,,ttssrrqq!!""##$$||{{zzyy - - eeddccbb9::;;<<=dccbbaa`12233445lkkjjiih)**++,,-tssrrqqp!""##$$%|{{zzyyx/0011223RRQQPPOO<<;;::99iijjkkll ~~}  - - rqqppoon--..//00ppoonnmm%%&&''((xxwwvvuu ~~}} %%&&aa``__^^=>>??@@A`__^^]]\56677889hggffeed-..//001poonnmml%&&''(()xwwvvuut !~~}}|34455667NNMMLLKK88776655mmnnoopp !!""##$}||{{zzy - -  nmmllkkj11223344llkkjjii))**++,,ttssrrqq!!""##$$||{{zzyy - - ''(())**]]\[ZYXWABBCCDDE\[[ZZYYX9::;;<<=dccbbaa`12233445lkkjjiih)**++,,-tssrrqqp!""##$$%|{{zzyyx~~}}||{78899::;JJIIHHGG44332211qqrrsstt$%%&&''(yxxwwvvu ~~} jiihhggf55667788hhggffee--..//00ppoonnmm%%&&''((xxwwvvuu ~~}} ++,,--..WVVUUTTSEFFGGHHIXWWVVUUT=>>??@@A`__^^]]\56677889hggffeed-..//001poonnmml%&&''(()xwwvvuut !{zzyyssr;AABBCCDFFEEDDCC !!00//..--uuvvwwxx ~~}}|())**++,uttssrrq !!""##$}||{{zzy - - feeddccb99::;;<=""##$$%%,,++**))yyzz{{|| - - |{{zzyyx,--..//0qppoonnm$%%&&''(yxxwwvvu ~~} %%&baa``__^==>>??@@``__^^]]55667788hhggffee--..//00ppoonnmm%%&&''((xxwwvvuu ~~}}33445566ONNMMLLKMNNOOPPQPOONNMMLEFFGGHHIXWWVVUUT=>>??@@A`__^^]]\56677889hggffeed-..//001poonnmml%&&''(()nmmllkkjHIIJJKKL<;;::998&&''(())((''&&%%}}~~ - - wvutssrr01122334mllkkjji())**++,uttssrrq !!""##$}||{{zzy - - &''(())*^]]\[ZYXAABBCCDD\\[[ZZYY99::;;<>??@@``__^^]]55667788hhggffee--..//00ppoonnmm%%&&''((xxwwvvuu {{zzyyss;;AABBCCGFFEEDDCUVVWWXXYHGGFFEEDMNNOOPPQPOONNMMLEFFGGHHIXWWVVUUT=>>??@@A`__^^]]\56677889hggffeed-..//001feeddccbPQQRRSST43322110..//0011 mmllkkjj899::;;YZZ[[\\]DCCBBAA@QRRSSTTULKKJJIIHIJJKKLLMTSSRRQQPABBCCDDE\[[ZZYYX9::;;<<=dccbbaa`12233445baa``__^TUUVVWW]0//..--,22334455iihhggff<==>>??@a``__^^]45566778ihhggffe,--..//0qppoonnm$%%&&''(yxxwwvvu ~~}23344556OONNMMLLMMNNOOPPPPOONNMMEEFFGGHHXXWWVVUU==>>??@@``__^^]]55667788hhggffee--..//00ppoonnmm%%&&''((nnmmllkkHHIIJJKK=<;;::99]^^__``a@??>>==>??@@A`__^^]]\56677889^]]WWVVU]^^__``a,++**))(66778899eeddccbb@AABBCCD]\\[[ZZY899::;;>??@a``__^^]45566778ihhggffe,--..//0qppoonnm$%%&&''(yxxwwvvu |{{zzyys:;;AABBCGGFFEEDDUUVVWWXXHHGGFFEEMMNNOOPPPPOONNMMEEFFGGHHXXWWVVUU==>>??@@``__^^]]55667788hhggffee--..//00ffeeddccPPQQRRSS44332211effgghhi87766554]^^__``a@??>>==>??@@AQPPOONNMeffgghhi#"! >>??@@AA ''(())**]]\[ZYXWHIIJJKKLUTTSSRRQ@AABBCCD]\\[[ZZY899::;;>??@a``__^^]45566778ihhggffe,--..//0qppoonnm$%%&&''(onnmmllkGHHIIJJK>=<;;::9]]^^__``@@??>>==UUVVWWXXHHGGFFEEMMNNOOPPPPOONNMMEEFFGGHHXXWWVVUU==>>??@@``__^^]]55667788^^]]WWVV]]^^__``,,++**))mnnooppq0//..--,effgghhi87766554]^^__``a@??>>==>??@@AA__^^]]\\66778899ggffeedd..//0011oonnmmll&&''(())mmllkkjjIIJJKKLL;;::9988^__``aab?>>==<<;VWWXXYYZGFFEEDDCNOOPPQQRONNMMLLKFGGHHIIJWVVUUTTS>??@@AAB_^^]]\\[6778899:UTTSSRRQijjkkllmRRSSTTUUKKJJIIHHJJKKLLMMSSRRQQPPBBCCDDEE[[ZZYYXX::;;<<==ccbbaa``22334455kkjjiihh**++,,--iihhggffMMNNOOPP77665544bccddeef;::99887Z[[\\]]^CBBAA@@?RSSTTUUVKJJIIHHGJKKLLMMNSRRQQPPOBCCDDEEF[ZZYYXXW:;;<<==>QPPOONNMmnnooppqVVWWXXYYGGFFEEDDNNOOPPQQOONNMMLLFFGGHHIIWWVVUUTT>>??@@AA__^^]]\\66778899ggffeedd..//0011eeddccbbQQRRSSTT33221100fgghhiij76655443^__``aab?>>==<<;VWWXXYYZGFFEEDDCNOOPPQQRONNMMLLKFGGHHIIJWVVUUTTS>??@@AABMLLKKJJIqrrssyyz ZZ[[\\]]CCBBAA@@RRSSTTUUKKJJIIHHJJKKLLMMSSRRQQPPBBCCDDEE[[ZZYYXX::;;<<==ccbbaa``22334455aa``__^^UUVVWW]]//..--,,jkkllmmn3221100/bccddeef;::99887Z[[\\]]^CBBAA@@?RSSTTUUVKJJIIHHGJKKLLMMNSRRQQPPOBCCDDEEFIHHGGFFEz{{||}}~ - - ^^__``aa??>>==<>??@@AA__^^]]\\66778899]]WWVVUU^^__``aa++**))((nooppqqr/..--,,+fgghhiij76655443^__``aab?>>==<<;VWWXXYYZGFFEEDDCNOOPPQQRONNMMLLKFGGHHIIJEDDCCBBA~ - - bbccddee;;::9988ZZ[[\\]]CCBBAA@@RRSSTTUUKKJJIIHHJJKKLLMMSSRRQQPPBBCCDDEE[[ZZYYXX::;;<<==TTSSRRQQbbccddee''&&%%$#rssttuuv+**))(('jkkllmmn3221100/bccddeef;::99887Z[[\\]]^CBBAA@@?RSSTTUUVKJJIIHHGJKKLLMMNA;;::998 ffgghhii77665544^^__``aa??>>==<>??@@AAPPOONNMMffgghhii"! vwwxxyyz'&&%%$$#nooppqqr/..--,,+fgghhiij76655443^__``aab?>>==<<;VWWXXYYZGFFEEDDCNOOPPQQR87766554jjkkllmm33221100bbccddee;;::9988ZZ[[\\]]CCBBAA@@RRSSTTUUKKJJIIHHJJKKLLMMSSRRQQPPBBCCDDEELLKKJJIIjjkkllmmz{{||}}~#""!! rssttuuv+**))(('jkkllmmn3221100/bccddeef;::99887Z[[\\]]^CBBAA@@?RSSTTUUV43322110nnooppqq//..--,,ffgghhii77665544^^__``aa??>>==<>==<<;VWWXXYYZ0//..--,rrssttuu++**))((jjkkllmm33221100bbccddee;;::9988ZZ[[\\]]CCBBAA@@RRSSTTUUKKJJIIHHJJKKLLMMDDCCBBAArrssyyzzz{{||}}~#""!! rssttuuv+**))(('jkkllmmn3221100/bccddeef;::99887Z[[\\]]^,++**))( vvwwxxyy''&&%%$$nnooppqq//..--,,ffgghhii77665544^^__``aa??>>==<>==<>??@ ~~vvwwxxyy''&&%%$$nnooppqq -  ~eddccbba@AABBCCD - - zz{{||}}##""!! rrssttuu - - - a``__^^]DEEFFGGH ~~vvwwxxyy  -  ]\\[[ZZYHIIJJKKL  - - zz{{||}} - -  !!"~~}}||{ - - - YXXWWVVULMMNNOOP - -  ~~~~}}||{"##$$%%&{zzyyxxw - %%&&'UTTSSRRQPQQRRSST  - -  - -{zzyyxwv&''(())*wvvuutts !!"~~}}||{ -'(())**+QPPOONNMTUUVVWWX - -  utssrrqq*++,,--.srrqqppo"##$$%%&{zzyyxxw - +,,--../MLLKKJJIXYYZZ[[\~~}}||  - - ppoonnmm.//00112onnmmllk&''(())*wvvuutts !!"~~}}||{ -/0011223IHHGGFFE\]]^^__`{{zzyyxx - - llkkjjii23344556kjjiihhg*++,,--.srrqqppo"##$$%%&{zzyyxxw - 34455667EDDCCBBA`aabbccdwwvvuutt !!~~}}|| hhggffee6778899:gffeeddc.//00112onnmmllk&''(())*wvvuutts !!"~~}}||{78899::;A@@??>>=deeffgghssrrqqpp""##$$%%{{zzyyxx - - ddccbbaa:;;<<==>cbbaa``_23344556kjjiihhg*++,,--.srrqqppo"##$$%%&{zzyyxxw;AABBCCD=<<;;::9hiijjkkloonnmmll&&''(())wwvvuutt !!~~}}|| %%&&''``__^^]]>??@@AAB_^^]]\\[6778899:gffeeddc.//00112onnmmllk&''(())*wvvuutts !!"~~}}||{~~}}||{DEEFFGGH98877665lmmnnoopkkjjiihh**++,,--ssrrqqpp""##$$%%{{zzyyxx - - (())**++\[ZYXWWVBCCDDEEF[ZZYYXXW:;;<<==>cbbaa``_23344556kjjiihhg*++,,--.srrqqppo"##$$%%&{zzyyxxw{zzyyssrHIIJJKKL54433221pqqrrsstggffeedd..//0011oonnmmll&&''(())wwvvuutt !!~~}}||,,--..//VUUTTSSRFGGHHIIJWVVUUTTS>??@@AAB_^^]]\\[6778899:gffeeddc.//00112onnmmllk&''(())*wvvuutts !!"rqqppoonLMMNNOOP100//..-tuuvvwwxccbbaa``22334455kkjjiihh**++,,--ssrrqqpp""##$$%%{{zzyyxx00112233RQQPPOONJKKLLMMNSRRQQPPOBCCDDEEF[ZZYYXXW:;;<<==>cbbaa``_23344556kjjiihhg*++,,--.srrqqppo"##$$%%&nmmllkkjPQQRRSST-,,++**)xyyzz{{|__^^]]\\66778899ggffeedd..//0011oonnmmll&&''(())wwvvuutt !!~~}}||44556677NMMLLKKJNOOPPQQRONNMMLLKFGGHHIIJWVVUUTTS>??@@AAB_^^]]\\[6778899:gffeeddc.//00112onnmmllk&''(())*jiihhggfTUUVVWW])((''&&%|}}~~[[ZZYYXX::;;<<==ccbbaa``22334455kkjjiihh**++,,--ssrrqqpp""##$$%%{{zzyyxx~~}}||{{8899::;;JIIHHGGFRSSTTUUVKJJIIHHGJKKLLMMNSRRQQPPOBCCDDEEF[ZZYYXXW:;;<<==>cbbaa``_23344556kjjiihhg*++,,--.feeddccb]^^__``a%$$##""!WWVVUUTT>>??@@AA__^^]]\\66778899ggffeedd..//0011oonnmmll&&''(())wwvvuutt !!zzyyssrrAABBCCDDFEEDDCCBVWWXXYYZGFFEEDDCNOOPPQQRONNMMLLKFGGHHIIJWVVUUTTS>??@@AAB_^^]]\\[6778899:gffeeddc.//00112baa``__^abbccdde! SSRRQQPPBBCCDDEE[[ZZYYXX::;;<<==ccbbaa``22334455kkjjiihh**++,,--ssrrqqpp""##$$%%qqppoonnEEFFGGHHBAA@?>=cbbaa``_23344556^]]WWVVUeffgghhiZHAbtlJ~Hf`ےbrtAJlnvpQr˂pJtArdf~HZp˂AJltnvpQr˂pJtArdf~HZp˂rtAJlf`vXے`JXtArdf~Hp˂rJltvpfr˂ptArdf~Hp˂rJltvpfpZHAbtArdnvf˂rXJltvpfHr˂pArd|f~H˂rXJltvpfHr˂pArd|Xv`J`ےے`JXQtArdpvnHAZp˂tbdfH~ˑZHAb|ZdQfpvrXQJ`ۉbdQZ|fH~ˑZHAb|ZdQfpvrXQJ`ۑtbdnvpQr˂p|ZdQbfpvXQJ`ےbdQZ|H~fZHAb|ZdQbfpvXQJ`ےbdQZ|H~fے`J|ZdQb~HfpQJ`ےbdQZ|~f`ZHAbہZdQbtfpvQJ`ےbdQZ|~f`ZHAbہZdQbtf~HbHAZpr˂p|ZdQbXv`fbHAQZ|df`vXے`JXbtlnXv`bHAdrtf`vXے`JXbtlnXv`bHAQZ|l`vXZHAbtlJnXv`bHAZdrtA`vXnے`JXQtlJnXv`bHAZdrtA`vXnXQr˂tlJvnXbHAZpdrtAvXn`JXQlJtnXv`˙bHAZpdrtAvXn`JXQlJtfpvむrXQZHAbtlJ~HfZp˂rtAJnvpQr˂pJtArdf~HZp˂AJltnvpQr˂pJtArdf~HZp˂tbdQnvpے`JXtArdf~Hp˂rJltvpfr˂ptArdf~Hp˂rJltvpfpZHAbtArdtv`f˂rXJltvpfHr˂pArd|f~H˂rXJltvpfHr˂pArd|nXv`J`ےے`JXQtArdpvrXQJ`bdQZ|fH~ˑZHAb|ZdQfpvrXQJ`ۉbdQZ|fH~ˑZHAb|ZdQfpvrXQJ`Z|dfH~QrZHA|ZdQbfpvXQJ`ےbdQZ|H~fZHAb|ZdQbfpvXQJ`ےbdQZ|H~f˂plJtA~HfpQJ`ےbdQZ|~f`ZHAbہZdQbtfpvQJ`ےbdQZ|~f`ZHAbہZdQbtf~HbHAZpr˂p|ZdQb~HfpےbHAdrtAf`vXے`JXbtlnXv`bHAdrtf`vXے`JXbtlnXv`bHArtAJlf`vXbے`tlJnXv`bHAZdrtA`vXnے`JXQtlJnXv`bHAZdrtA`vXnZHAbrd|vnXbHAZpdrtAvXn`JXQlJtnXv`˙bHAZpdrtAvXn`JXQlJtfpvbHZHAbtlJvnXZp˂JltnvpQr˂pJtArdf~HZp˂AJltnvpQr˂pJtArdf~HZp˂tbdQnvpJXQrtArdf~Hp˂rJltvpfr˂ptArdf~Hp˂rJltvpfے`JXQZdQbtv`ffp˂rXJltvpfHr˂pArd|f~H˂rXJltvpfHr˂pArd|~HfpAZdے`JXQtArdv`frXQJ`bdQZ|fH~ˑZHAb|ZdQfpvrXQJ`ۉbdQZ|fH~ˑZHAb|ZdQfpvrXQJ`Z|dfH~˂pZHA|ZdQbfpvXQJ`ےbdQZ|H~fZHAb|ZdQbfpvXQJ`ےbdQZ|H~fr˂plJtAvnQJ`ےbdQZ|~f`ZHAbہZdQbtfpvQJ`ےbdQZ|~f`ZHAbہZdQbtvnXrtAJbr˂p|ZdQb~Hfpp˂rdrtAf`vXے`JXbtlnXv`bHAdrtf`vXے`JXbtlnXv`bHArtAdQZ|vpfHbے`tlJnXv`bHAZdrtA`vXnے`JXQtlJnXv`bHAZdrtA`vXnZHAbrd|rXQJ`ۙbHAZdtAJlvXn`JXQlJtnXv`˙bHAZpdrtAvXn`JXQlJtv`fdQZ|ZHAbtlJvnXXQJ`ےJltnvpQr˂pJtArdf~HZp˂AJltnvpQr˂pJtArdf~HZp˂drt~f`JXQrtArdf~Hp˂rJltvpfr˂ptArdf~Hp˂rJltvpfے`JXQZdQtArHAZpdrtAtbvpfHr˂pArd|f~H˂rXJltvpfHr˂pArd|~HfpdrtAJے`JXQtArdv`pvbHAZbQZdfH~ˑZHAb|ZdQfpvrXQJ`ۉbdQZ|fH~ˑZHAb|ZdQfpvrXQJ`AJltvXn˂pZA|ZdQbfpvXQJ`ےbdQZ|H~fZHAb|ZdQbfpvXQJ`ےbdQZ|H~fHAbےdf˂rXJltnvp~fZHAے`ZdQbtfpvQJ`ےbdQZ|~f`ZHAbہZdQbtvnXltbr˂p|ZdQbnXvp˂rrtAJlf`vXے`JXbtlnXv`bHAdrtf`vXے`JXbtlnXv`bHAbdQZ|vpfH`JXQrtlJnXv`bHAZdrtA`vXnے`JXQtlJnXv`bHAZdrtA`vXn`JXQr~HfvQJ`ےbdQZ|fHf`ZHAbہJXQrlJtnXv`˙bHAZpdrtAvXn`JXQlJtv`pdQZ|ZHAbtlJ`f~XQJ`ےtbdQnvpQr˂pJtArdf~HZp˂AJltnvpQr˂pJtArdf~HZp˂drt~f`btltArdfHfp˂rJltvpfr˂ptArdf~Hp˂rJltvpf˂pZnXv`˙bHAZpdrtAvXn`JXQbtlArdfHfp˂rXJltvpfHr˂pArd|vnrXdrtAJے`JXQtArdHfpvbHAXQZ|dfH~ˑZHAb|ZdQfpvrXQJ`ۉbdQZ|fH~ˑZHAb|ZdQfpvrXQJ`AJltvXHJtAdf~HpvnXQJ`ےbdQZ|H~fZHAb|ZdQbfpvXQJ`ےbdQZ|H~fHAbےf~H˂rXJltvpfHr˂pJtAd|f~HvnQJ`ےbdQZ|~f`ZHAbہZdQbtQJ`pltbQr˂p|ZdQbnXvJ`ےrtAJlf`vXے`JXbtlnXv`bHAdrtf`vXے`JXbtlnXv`bHAdrtA~fZH|ZdQbfpvrXQJ`bHAZdtAJ`vXnے`JXQtlJnXv`bHAZdrtA`vXn`JXQrfpvQJ`ےbdQZ|~f`ZHAbہZdQbtfpvrXQJ`ۙbHAZdtAJlvXn`JXQlJtrXQZdrttAJlZHAbtlJ`f~bHAZptbdQnvpQr˂pJtArdf~HZp˂AJltnvpQr˂pJtArdf~HZp˂JltAbJtlJnXv`ےHAZdrtAltbvpfr˂ptArdf~Hp˂rJltvpf˂p`nXv`˙bHAZpdrtAvXn`JXQlJtnXv`˒HAZpdrtAtbvpfHr˂pArd|J`ےAJlttbdQZے`JXQtArdHXv`˂rXQZ|dnfH~ˑZHAۂ|ZdQfpvrXQJ`ۉbdQZ|fH~ˑZHAb|ZdQfpvrXQJ`bdQZ|Qr˂ptArdf~Hp˂rJltnvpH~fZHAے|ZdQbfpvXQJ`ےbdQZ|H~fJXQrbf~H˂rXJltvpfHr˂pArd|f~H˂rXJltnvp~fZHAے`ZdQbtbHAZpˉbdQZ||AJlr˂p|ZdQbf~HJ`ےvffZHAb`JXQbtlnXv`bHAdrtf`vXے`JXbtlnXv`bHAdrtAZHAb|ZdQbfpvXQJ`ےbdQZ|fHfZHAb`JXQrtlJnXv`bHAZdrtA`vXntl|fpvnQJ`ےbdQZ|~f`ZHAbہZdQbtfpvQJ`ےbdQZ|fHf`ZHAbہJXQrlJtrXQdrttbnZHAbtlJfpvbHAZpf`vXے`JXrbtlJtArdfHZp˂AJltnvpQr˂pJtArdf~HZp˂Jltے`JXQtlJnXv`bHAZdrtA`vXnے`JXQbtltArdfHfp˂rJltvpfZdQbtvf~bHAZpdrtAvXn`JXQlJtnXv`˙bHAZpdrtAvXn`JXQbtlArdJ`ےAJltvpfے`JXQtArdnXv`˂bnvpQr˂pJtAdf~HfpvrXQJ`ۉbdQZ|fH~ˑZHAb|ZdQfpvrXQJ`bdQZ|lr˂ptArdf~Hp˂rJltvpfr˂pJtAdf~HpvnXQJ`ےbdQZ|H~flJtAHfpv˂rXJltvpfHr˂pArd|f~H˂rXJltvpfHr˂pJtAd|f~HXbHAXQJ`bdQZ|Hf`r˂p|ZdQbf~HHAZdfH~ˑZHAb|ZdQfpvnrXQJ`bHAdtAf`vXے`JXbtlnXv`bHAtbZHAb|ZdQbfpvXQJ`ےbdQZ|H~fZHAb|ZdQbfpvrXQJ`bHAZdtAJ`vXnrd|nXvQJ`ےbdQZ|~f`ZHAbہZdQbtfpvQJ`ےbdQZ|~f`ZHAbہZdQbtv`fےbHrAJlvXnZHAbtlJfpvrtAJf`vXے`JXbtlnXv`ےHAZdrtJltnvpQr˂pJtArdf~HZp˂nvp`ے`JXQtlJnXv`bHAZdrtA`vXnے`JXQtlJnXv`ےHAZdrtAltbvpfZdQbt`f~bHAZpdrtAvXn`JXQlJtnXv`˙bHAZpdrtAvXn`JXQlJt~HfpAZp˂tbdQvpfHے`JXQtArd~HfbdQZ|nvpQr˂pJtArdf~HZp˂AJltbnvpfH~ˑZHAۂ|ZdQfpvrXQJ`ۍvXnrZHAtArdf~Hp˂rJltvpfr˂ptArdf~Hp˂rJltnvpH~flJtAHfpv˂rXJltvpfHr˂pArd|f~H˂rXJltvpfHr˂pArd|vnXrXQJ`Z|d~f`r˂p|ZdQbpvndrtAfH~ˑZHAb|ZdQfpvrXQJ`ۉbdQZ|fHfZHAb`JXQbtlnXv`bHAvpfHbے`|ZdQbfpvXQJ`ےbdQZ|H~fZHAb|ZdQbfpvXQJ`ےbdQZ|fHfZHAbrdt璀nXvQJ`ےbdQZ|~f`ZHAbہZdQbtfpvQJ`ےbdQZ|~f`ZHAbہZdQbtv`fےbHrtAJlvXnZHAbtlJXv`fJltf`vXے`JXbtlnXv`bHAdrtf`vXے`JXrbtlJtArdfHZp˂~f`JXQrtlJnXv`bHAZdrtA`vXnے`JXQtlJnXv`bHAZdrtA`vXn˂pZlJtAr`f~fpbHAZpdrtAvXn`JXQlJtnXv`˙bHAZpdrtAvXn`JXQlJt~HfpAZp˂tbdQvpfHے`JXQtArd~HfbdQZ|nvpQr˂pJtArdf~HZp˂AJltnvpQr˂pJtAdf~HfpvrXQJ`ۍvXnpZHAtArdf~Hp˂rJltvpfr˂ptArdf~Hp˂rJltvpfHAbےd|ZvnX˂rXJltvpfHr˂pArd|f~H˂rXJltvpfHr˂pArd|v󉐙bHAZ|d~f`r˂p|ZdQbpvndrtAfH~ˑZHAb|ZdQfpvrXQJ`ۉbdQZ|fH~ˑZHAb|ZdQfpvnrXQJ`bHAvpfHbے`|ZdQbfpvXQJ`ےbdQZ|H~fZHAb|ZdQbfpvXQJ`ےbdQZ|H~f`JXQrdQbt璕v`fQJ`ےbdQZ|~f`ZHAbہZdQbtfpvQJ`ےbdQZ|~f`ZHAbہZdQbt~HfpZp˂rtAJvXnZHAbtlJXv`pJltbf`vXے`JXbtlnXv`bHAdrtf`vXے`JXbtlnXv`ےHAZdrt~JXQrtlJnXv`bHAZdrtA`vXnے`JXQtlJnXv`bHAZdrtA`vXn˂pZlJtAr~HfpbHAZpdrtAvXn`JXQlJtnXv`˙bHAZpdrtAvXn`JXQlJtvnXrXQJ`bdQZ|vpfHے`JXQtArd˂rXQQZdrnvpQr˂pJtArdf~HZp˂AJltnvpQr˂pJtArdf~HZp˂AdQZ|vpfHpZAbtArdf~Hp˂rJltvpfr˂ptArdf~Hp˂rJltvpfHAbےd|ZvnX˂rXJltvpfHr˂pArd|f~H˂rXJltvpfHr˂pArd|v`f󒐙bHAdrtA~f`r˂p|ZdQbJ`ےtAJlfH~ˑZHAb|ZdQfpvrXQJ`ۉbdQZ|fH~ˑZHAb|ZdQfpvrXQJ`ۂdrtA~f``JXQr|ZdQbfpvXQJ`ےbdQZ|H~fZHAb|ZdQbfpvXQJ`ےbdQZ|H~f`JXQHAdQtArdv`fQJ`ےbdQZ|~f`ZHAbہZdQbtfpvQJ`ےbdQZ|~f`ZHAbہZdQbt~HfpZp˂JltvXnZHAbtlJbHAZptbdQZf`vXے`JXbtlnXv`bHAdrtf`vXے`JXbtlnXv`bHAJltvXnۀ˂pZtlJnXv`bHAZdrtA`vXnے`JXQtlJnXv`bHAZdrtA`vXnbے`|ZdQ~HfvbHAZpdrtAvXn`JXQlJtnXv`˙bHAZpdrtAvXn`JXQlJtvnXrXQJ`pbdQZ|vpfHے`JXQtArd˂rXQ|drnvpQr˂pJtArdf~HZp˂AJltnvpQr˂pJtArdf~HZp˂bdQZ|vpfHHAbےtArdf~Hp˂rJltvpfr˂ptArdf~Hp˂rJltvpfJXQrbtlnXv`˂rXJltvpfHr˂pArd|f~H˂rXJltvpfHr˂pArd|v`pv˂rXdrtA~f`r˂p|ZdQbJ`ےtAJlfH~ˑZHAb|ZdQfpvrXQJ`ۉbdQZ|fH~ˑZHAb|ZdQfpvrXQJ`ۂdrtA~f``JXQr|ZdQbfpvXQJ`ےbdQZ|H~fZHAb|ZdQbfpvXQJ`ےbdQZ|H~f˂pZHAJtArdf~HQJ`ےbdQZ|~f`ZHAbہZdQbtfpvQJ`ےbdQZ|~f`ZHAbہZdQbtnXv`QJ`ےJltbvXnZHAbtlJbHAXQJtbdQZf`vXے`JXbtlnXv`bHAdrtf`vXے`JXbtlnXv`bHAJltdvXH~˂pZtlJnXv`bHAZdrtA`vXnے`JXQtlJnXv`bHAZdrtA`vXnbے`|ZdQfpvbHAZpdrtAvXn`JXQlJtnXv`˙bHAZpdrtAvXn`JXQlJtf~HbHAZpQZdrvpfHے`JXQtArd`ےb|rAJlnvpQr˂pJtArdf~HZp˂AJltnvpQr˂pJtArdf~HZp˂rtAJlf`vXHAbtArdf~Hp˂rJltvpfr˂ptArdf~Hp˂rJltvpfJXQrbtlnXv`˂rXJltvpfHr˂pArd|f~H˂rXJltvpfHr˂pArd|fpv˂rXtAJl~f`r˂pf~HHAZp˂tbdfH~ˑZHAb|ZdQfpvrXQJ`ۉbdQZ|fH~ˑZHAb|ZdQfpvrXQJ`ۑtbdnvpJQr˂p|ZdQbfpvXQJ`ےbdQZ|H~fZHAb|ZdQbfpvXQJ`ےbdQZ|H~f˂p`J|ZdQbf~HQJ`ےbdQZ|~f`ZHAbہZdQbtfpvQJ`ےbdQZ|~f`ZHAbہZdQbtnXv`QJ`ےtbdQZvXn|ZdQbXv`frXQJQZ|df`vXے`JXbtlnXv`bHAdrtf`vXے`JXbtlnXv`bHAQZ|dfH~ZHAbtlJnXv`bHAZdrtA`vXnے`JXQtlJnXv`bHAZdrtA`vXnXQr˂tlJfpvbHAZpdrtAvXn`JXQlJtnXv`˙bHAZpdrtAvXn`JXQlJtf~HbHAXQ|drvpfH~f`HAbےZdQbtpvnJ`ےdQZ|~f`HAbےZdQbtpvnJ`ےtbdQZvpf˂pZZdQbtvnXJ`ےQZ|d~f`Abے`ZdQbtvnXJ`ےQZ|d~f`Qr˂p`ZQXbXnvˍvXn`JXQrlJtAXv`fbHAZpdrtAJvXn`JXQrlJtAXv`fbHAZp|drH~fHAbےlJtAv`fbHAZp˙rtAJlvXnہJXQrlJtAv`fbHAZp˙rtAJlvXnۑZHAbۑpJApfH~vpfH˂pZrd|~Hf˂rXQltbvpfH˂pZrd|~Hf˂rXQtAJl`vXn`JXQrrd|~HfprXQtbdvpfH˂pZHrd|~HfprXQtbdvpfHے`JXHr󙐉f۝`v~f`HAbےZdQbtpvnJ`ےdQZ|~f`HAbےZdQbtpvnJ`ےtbdQZvp`˂pZZdQbtvnXJ`ےQZ|d~f`Abے`ZdQbtvnXJ`ےQZ|d~f`Qr˂pۑpJAHrXnvˍvXn`JXQrlJtAXv`fbHAZpdrtAJvXn`JXQrlJtAXv`fbHAZp|ltvXnHAbےlJtAv`fbHAZp˙rtAJlvXnہJXQrlJtAv`fbHAZp˙rtAJlvXnۑZHAb󙐂ˁ`Zp|drvpfH˂pZrd|~Hf˂rXQltbvpfH˂pZrd|~Hf˂rXQbdQZ|vpfH`JXQrrd|~HfprXQtbdvpfH˂pZHrd|~HfprXQtbdvpfH󙀉˂pQXb㉀QtJl~f`HAbےZdQbtpvnJ`ےdQZ|~f`HAbےZdQbtpvnJ`ےdrtA~f`ZHAbZdQbtvnXJ`ےQZ|d~f`Abے`ZdQbtvnXJ`ےQZ|d~f`ZHAbۑpJAHrtbAdZvXn`JXQrlJtAXv`fbHAZpdrtAJvXn`JXQrlJtAXv`fbHAZpJltvXnے`JXlJtAv`fbHAZp˙rtAJlvXnہJXQrlJtAv`fbHAZp˙rtAJlvXnے`JXQ󙐂ˁ`|drvpfH˂pZrd|~Hf˂rXQltbvpfH˂pZrd|~Hf˂rXQbdQZ|vpfHQr˂prd|~HfprXQtbdvpfH˂pZHrd|~HfprXQtbdvpfHr˂ppfH~QtJl~f`HAbےZdQbtpvnJ`ےdQZ|~f`HAbےZdQbtpvnJ`ےdrtA~vZHAbZdQbtvnXJ`ےQZ|d~f`Abے`ZdQbtvnXJ`ےQZ|d~f`ZHAbېf۝`vtbAdZvXn`JXQrlJtAXv`fbHAZpdrtAJvXn`JXQrlJtAXv`fbHAZpdQZ|pfH~ے`JXlJtAv`fbHAZp˙rtAJlvXnہJXQrlJtAv`fbHAZp˙rtAJlvXnے`JXQHXnvˍ|drvpfH˂pZrd|~Hf˂rXQltbvpfH˂pZrd|~Hf˂rXQdrtAJf`vQr˂prd|~HfprXQtbdvpfH˂pZHrd|~HfprXQtbdvpfHAbے`pfH~QtJl~f`HAbےZdQbtpvnJ`ےdQZ|~f`HAbےZdQbtpvnJ`ےltbXnvZA`ZdQbtvnXJ`ےQZ|d~f`Abے`ZdQbtvnXJ`ےQZ|d~f`JXQrf۝`vtbAdZvXn`JXQrlJtAXv`fbHAZpdrtAJvXn`JXQrlJtAXv`fbHAZpdQZ|pfH~JXQrbtlJtAv`fbHAZp˙rtAJlvXnہJXQrlJtAv`fbHAZp˙rtAJlvXnۉ˂pZHXnvˍ|drvpfH˂pZrd|~Hf˂rXQltbvpfH˂pZrd|~Hf˂rXQdrtAJf`vlJtrdfHfpۂrXQtbdvpfH˂pZHrd|~HfprXQtbdvpfHAbے`pfH~QtJl~f`HAbےZdQbtpvnJ`ےdQZ|~f`HAbےZdQbtpvnJ`ےltdXH~Ad|~HfpvnrXJ`ےQZ|d~f`Abے`ZdQbtvnXJ`ےQZ|d~f`JXQrf۝`vtbAdZvXn`JXQrlJtAXv`fbHAZpdrtAJvXn`JXQrlJtAXv`fbHAZprtAJlfZHAbZdQbtvnXQJ`ےbHAZdtAJlvXnہJXQrlJtAv`fbHAZp˙rtAJlvXnۉ˂p`ZXnvˍ|drvpfH˂pZrd|~Hf˂rXQltbvpfH˂pZrd|~Hf˂rXQtbdQJQrlJtAv`fHAZp˙rtAJltbnvpfH˂pZHrd|~HfprXQtbdvpfHQXb㉀pfH~QtJl~fZHAے`ZdQbtpvnJ`ےdQZ|~f`HAbےZdQbtpvnJ`ےZ|d˂pZHrd|~HfprXQtbdvpfH~fZHAے`ZdQbtvnXJ`ےQZ|d~f`ۑpJAHrf۝`vtbAdZHAbےJXQrblJtAXv`fbHAZpdrtAJvXn`JXQrlJtAXv`fbHAZprtAJlAbے`ZdQbtvnXJ`ےQZ|df`Abے`JXQrbtlJtAv`fbHAZp˙rtAJlvXn󙐂ˁ`ZXnvˍ|dr`JXQrtlJrdfHfp˂rXQltbvpfH˂pZrd|~Hf˂rXQtbdQJXQrlJtAv`fbHAZp˙rtAJlvXnہJXQrlJtrdfHfpۂrXQtbdvpfHQXb㉀pfH~QtJl˂pZtAd|~HfvnrJ`ےdQZ|~f`HAbےZdQbtpvnJ`ےZ|l璉˂pZHrd|~HfprXQtbdvpfH˂pZHAd|~HfpvnrXJ`ےQZ|d~f`ۑpJAHrf۝`vtbAdZHAbےZdQbtpvnXQJ`ےbHAZdtAJlvXn`JXQrlJtAXv`fbHAZptbnAbے`ZdQbtvnXJ`ےQZ|d~f`Abے`ZdQbtvnXQJ`ےbHAZdtAJlvXn󙐉ۑXnvˍ|dr`JXQrlJtAXv`fHAZpdrtAJtbnvpfH˂pZrd|~Hf˂rXQvp`vJXQrlJtAv`fbHAZp˙rtAJlvXnہJXQrlJtAv`fHAZp˙rtAJltbnvpfHpJAHrpfH~QtJl˂pZrd|~Hf˂rXQltbvpf~fZHAے`ZdQbtpvnJ`ےXnvZHAbrd|~HfprXQtbdvpfH˂pZHrd|~HfprXQtbdvpfH~frˁ`ZQf۝`vtbAdZHAbےZdQbtpvnJ`ےdQZ|Hf`HAbےJXQrblJtAXv`fbHAZppfH~ے`JXQZdQbtvnXJ`ےQZ|d~f`Abے`ZdQbtvnXJ`ےQZ|df`˂pZHXb㉀ۑXnvˍ|dr`JXQrlJtAXv`fbHAZpdrtAJvXn`JXQrtlJrdfHfp˂rXQf`vr˂plJtAv`fbHAZp˙rtAJlvXnہJXQrlJtAv`fbHAZp˙rtAJlvXnAbے`pJAHrpfH~QtJl˂pZrd|~Hf˂rXQltbvpfH˂pZtAd|~HfvnrJ`ےXnvZHAbrd|~HfprXQtbdvpfH˂pZHrd|~HfprXQtbdvpfHJXQrˁ`ZQf۝`vtbAdZHAbےZdQbtpvnJ`ےdQZ|~f`HAbےZdQbtpvnXQJ`ےbHAZpfH~ے`JXQZdQbtvnXJ`ےQZ|d~f`Abے`ZdQbtvnXJ`ےQZ|d~f`˂pZHXAHr󙐂Xnvˍ|dr`JXQrlJtAXv`fbHAZpdrtAJvXn`JXQrlJtAXv`fHAZpdrtAdQvpr˂plJtAv`fbHAZp˙rtAJlvXnہJXQrlJtAv`fbHAZp˙rtAJlvXnAbے`ˁ`ZQXbpfH~QtJl˂pZrd|~Hf˂rXQltbvpfH˂pZrd|~Hf˂rXQZ|dfH~ZAb`rd|~HfprXQtbdvpfH˂pZHrd|~HfprXQtbdvpfHJXQHA㉀ۑpJf۝`vtbAdZHAbےZdQbtpvnJ`ےdQZ|~f`HAbےZdQbtpvnJ`ےrtAJlf`vXJXQrZdQbtvnXJ`ےQZ|d~f`Abے`ZdQbtvnXJ`ےQZ|d~f`bے`AHr󙐂Xnvˍ|dr`JXQrlJtAXv`fbHAZpdrtAJvXn`JXQrlJtAXv`fbHAZptbdQnvppZHAlJtAv`fbHAZp˙rtAJlvXnہJXQrlJtAv`fbHAZp˙rtAJlvXnJXQrˁ`ZQXbpfH~QtJl˂pZrd|~Hf˂rXQltbvpfH˂pZrd|~Hf˂rXQZ|dfH~bے`rd|~HfprXQtbdvpfH˂pZHrd|~HfprXQtbdvpfHpZHA㉀ۑpf۝`vtbAdZHAbےZdQbtpvnJ`ےdQZ|~f`HAbےZdQbtpvnJ`ےrtAJlf`vXJXQrZdQbtvnXJ`ےQZ|d~f`Abے`ZdQbtvnXJ`ےQZ|d~f`bے``ZQXbXnvˍ|dr`JXQrlJtAXv`fbHAZpdrtAJvXn`JXQrlJtAXv`fbHAZptdrH~fpZHAlJtAv`fbHAZp˙rtAJlvXnہJXQrlJtAv`fbHAZp˙rtAJlvXnJXQrˀۑpJApfH~QtJl˂pZrd|~Hf˂rXQltbvpfH˂pZrd|~Hf˂rXQtAJl`vXnbJQrrd|~HfprXQtbdvpfH˂pZHrd|~HfprXQtbdvpfHp`JXHr󙐂ˁf۝`vtbAdZ|JJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKK \ No newline at end of file diff --git a/vendor/endroid/qr-code/assets/data/qrv34_1.dat b/vendor/endroid/qr-code/assets/data/qrv34_1.dat deleted file mode 100755 index 2cf2bf90e..000000000 --- a/vendor/endroid/qr-code/assets/data/qrv34_1.dat +++ /dev/null @@ -1,305 +0,0 @@ -}~}~}~}~}~}~}~}~{|{|{|{|{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwxuvuvuvuvtstststsststststrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYWXWXWXWXWWXWXWXWUVUVUVUVUVUVUVUVSTSTSTSTSTSTSTSTQRQRQRQRQRQRQRQROPOPOPOPOPOPOPOPMNMNMNMNMNMNMNMNKLKLKLKLKLKLKLKLIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDABABABABABABABAB?@?@?@?@?@?@?@?@=>=>=>=>;<;;;;;;<;<;;;;;:9:9:9:9:9:9:9:987878787878787876565656565656565434343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!}~}~}~}~}~}~}~}~{|{|{|{|{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwxuvuvuvuvtstststsststststrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYWXWXWXWXXWXWXWXWUVUVUVUVUVUVUVUVSTSTSTSTSTSTSTSTQRQRQRQRQRQRQRQROPOPOPOPOPOPOPOPMNMNMNMNMNMNMNMNKLKLKLKLKLKLKLKLIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDABABABABABABABAB?@?@?@?@?@?@?@?@=>=>=>=><;<;<;<;;<;<;<;<:9:9:9:9:9:9:9:987878787878787876565656565656565434343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!}~}~}~}~}~}~}~}~{|{|{|{|{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwxuvuvuvuvtstststsststststrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYWXWXWXWXXWXWXWXWUVUVUVUVUVUVUVUVSTSTSTSTSTSTSTSTQRQRQRQRQRQRQRQROPOPOPOPOPOPOPOPMNMNMNMNMNMNMNMNKLKLKLKLKLKLKLKLIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDABABABABABABABAB?@?@?@?@?@?@?@?@=>=>=>=><;<;<;<;;<;<;<;<:9:9:9:9:9:9:9:987878787878787876565656565656565434343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!}~}~}~}~}~}~}~}~{|{|{|{|{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwxuvuvuvuvtstststsststststrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYWXWXWXWXXWXWXWXWUVUVUVUVUVUVUVUVSTSTSTSTSTSTSTSTQRQRQRQRQRQRQRQROPOPOPOPOPOPOPOPMNMNMNMNMNMNMNMNKLKLKLKLKLKLKLKLIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDABABABABABABABAB?@?@?@?@?@?@?@?@=>=>=>=><;<;<;<;;<;<;<;<:9:9:9:9:9:9:9:987878787878787876565656565656565434343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!}~}~}~}~}~}~}~}~{|{|{|{|{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwvuvuvuvuvtstststsststststrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYWXWXWXWXXWXWXWXWUVUVUVUVUVUVUVUVSTSTSTSTSTSTSTSTQRQRQRQRQRQRQRQROPOPOPOPOPOPOPOPMNMNMNMNMNMNMNMNKLKLKLKLKLKLKLKLIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDABABABABABABABAB?@?@?@?@?@?@?@?@=>=>=>=><;<;<;<;;<;<;<;<:9:9:9:9:9:9:9:987878787878787876565656565656565434343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!}~}~}~}~}~}~}~}~{|{|{|{|{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxuvuvuvuvuvuvuvuvssssststsssssstsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[ZYZYZYZYZYWXWXWXWWXWXWXWXWUVUVUVUVUVUVUVUVSTSTSTSTSTSTSTSTQRQRQRQRQRQRQRQROPOPOPOPOPOPOPOPMNMNMNMNMNMNMNMNKLKLKLKLKLKLKLKLIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDABABABABABABABAB?@?@?@?@?@?@?@?@=>=>=>=><;<;<;<;;<;<;<;<:9:9:9:9:9:9:9:987878787878787876565656565656565434343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!}~}~}~}~}~}~}~}~{|{|{|{|{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxuvuvuvuvuvuvuvuvststststtstststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[ZYZYZYZYZYZYZYZYWWWWXWXWWWWWWXWXUVUVUVUVUVUVUVUVSTSTSTSTSTSTSTSTQRQRQRQRQRQRQRQROPOPOPOPOPOPOPOPMNMNMNMNMNMNMNMNKLKLKLKLKLKLKLKLIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDABABABABABABABAB?@?@?@?@?@?@?>=>=>=>=>=><;<;<;;;;<;<;<;;:9:9:9:9:9:9:9:987878787878787876565656565656565434343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!}~}~}~}~}~}~}~}~{|{|{|{|{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxuvuvuvuvuvuvuvuvststststtstststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWWXWXWXWXUVUVUVUVUVUVUVUVSTSTSTSTSTSTSTSTQRQRQRQRQRQRQRQROPOPOPOPOPOPOPOPMNMNMNMNMNMNMNMNKLKLKLKLKLKLKLKLIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDABABABABABABABAB?@?@?@?@=>=>=>=>=>=>=>=>;;;<;<;<;;;;<;<;:9:9:9:9:9:9:9:987878787878787876565656565656565434343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#"!"!"!"!"!"!}~}~}~}~}~}~}~}~{|{|{|{|{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxuvuvuvuvuvuvuvuvststststtstststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWWXWXWXWXUVUVUVUVUVUVUVUVSTSTSTSTSTSTSTSTQRQRQRQRQRQRQRQROPOPOPOPOPOPOPOPMNMNMNMNMNMNMNMNKLKLKLKLKLKLKLKLIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDABABABABABABABAB?@?@?@?@=>=>=>=>=>=>=>=>;<;<;<;<<;<;<;<;:9:9:9:9:9:9:9:987878787878787876565656565656565434343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#"!"!"!"!"!"!"!"!}~}~}~}~}~}~}~}~{|{|{|{|{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxuvuvuvuvuvuvuvuvststststtstststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWWXWXWXWXUVUVUVUVUVUVUVUVSTSTSTSTSTSTSTSTQRQRQRQRQRQRQRQROPOPOPOPOPOPOPOPMNMNMNMNMNMNMNMNKLKLKLKLKLKLKLKLIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDABABABABABABABAB?@?@?@?@=>=>=>=>=>=>=>=>;<;<;<;<<;<;<;<;:9:9:9:9:9:9:9:987878787878787876565656565656565434343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#"!"!"!"!"!"!"!"!}~}~}~}~}~}~}~}~{|{|{|{|{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxuvuvuvuvuvuvuvuvststststtstststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWWXWXWXWXUVUVUVUVUVUVUVUVSTSTSTSTSTSTSTSTQRQRQRQRQRQRQRQROPOPOPOPOPOPOPOPMNMNMNMNMNMNMNMNKLKLKLKLKLKLKLKLIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDABABABABABABABAB?@?@?@?@=>=>=>=>=>=>=>=>;<;<;<;<<;<;<;<;:9:9:9:9:9:9:9:987878787878787876565656565656565434343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#"!"!"!"!"!"!"!"!}~}~}~}~}~}~}~}~{|{|{|{|{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxuvuvuvuvuvuvuvuvstsssssststsssssrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWWXWXWXWXUVUVUVUVUVUVUVUVSTSTSTSTSTSTSTSTQRQRQRQRQRQRQRQROPOPOPOPOPOPOPOPMNMNMNMNMNMNMNMNKLKLKLKLKLKLKLKLIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDABABABABABABABAB?@?@?@?@=>=>=>=>=>=>=>=>;<;<;<;<<;<;<;<;:9:9:9:9:9:9:9:987878787878787876565656565656565434343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#"!"!"!"!"!"!"!"!~}~}~}~}~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxuvuvuvuvuvuvuvuvtstststststststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[ZYZYZYZYZYZYZYZYXWWWWWWXWXWWWWWXUVUVUVUVUVUVUVUVSTSTSTSTSTSTSTSTQRQRQRQRQRQRQRQROPOPOPOPOPOPOPOPMNMNMNMNMNMNMNMNKLKLKLKLKLKLKLKLIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDABABABABABABABAB?@?@?@?@=>=>=>=>=>=>=>=>;<;<;<;<<;<;<;<;:9:9:9:9:9:9:9:987878787878787876565656565656565434343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#"!"!"!"!"!"!"!"!}~}~}~}~}~}~}~}~{|{|{|{|{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwxuvuvuvuvuvuvuvuvtstststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@=>=>=>=>=>=>=>=>;;;;;;<;<;;;;;<;:9:9:9:9:9:9:9:987878787878787876565656565656565434343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#"!"!"!"!"!"!"!"!"!   }~}~}~}~}~}~}~}~{|{|{|{|{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwxuvuvuvuvuvuvuvuvtstststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYWXWXWXWXUVUVUVUVUVUVUVUVSTSTSTSTSTSTSTSTQRQRQRQRQRQRQRQROPOPOPOPOPOPOPOPMNMNMNMNMNMNMNMNKLKLKLKLKLKLKLKLIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDABABABABABABABAB?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=><;<;<;<;<;<;<;:9:9:9:9:9:9:9:987878787878787876565656565656565434343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#"!"!"!"!"!"!"!"!  }~}~}~}~}~}~}~}~{|{|{|{|{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwxuvuvuvuvuvuvuvuvtstststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYWXWXWXWXUVUVUVUVUVUVUVUVSTSTSTSTSTSTSTSTQRQRQRQRQRQRQRQROPOPOPOPOPOPOPOPMNMNMNMNMNMNMNMNKLKLKLKLKLKLKLKLIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDABABABABABABABAB?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=><;<;<;<;:9:9:9:9:9:9:9:987878787878787876565656565656565434343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!    }~}~}~}~}~}~}~}~{|{|{|{|{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwxuvuvuvuvuvuvutsttstststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYWXWXWXWXUVUVUVUVUVUVUVUVSTSTSTSTSTSTSTSTQRQRQRQRQRQRQRQROPOPOPOPOPOPOPOPMNMNMNMNMNMNMNMNKLKLKLKLKLKLKLKLIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDABABABABABABABAB?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=><;<;<;<;:9:9:9:9:9:9:9:987878787878787876565656565656565434343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!    }~}~}~}~}~}~}~}~{|{|{|{|{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwxuvuvuvuvststsssstststsssrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYXWXWWXWXWXWXUVUVUVUVUVUVUVUVSTSTSTSTSTSTSTSTQRQRQRQRQRQRQRQROPOPOPOPOPOPOPOPMNMNMNMNMNMNMNMNKLKLKLKLKLKLKLKLIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDABABABABABABABAB?@?@?@?@?@?@?@?@=>=>=>=>=>=>=>=><;<;<;<;:9:9:9:9:9:9:9:987878787878787876565656565656565434343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!    }~}~}~}~}~}~}~}~{|{|{|{|{|{|{|{|yzyzyzyzyzyzyzyzwxwxwxwxwxwxwxwxuvuvuvuvsstststsssstststrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYXWXWWWWWWXWXWWWWUVUVUVUVUVUVUVUVSTSTSTSTSTSTSTSTQRQRQRQRQRQRQRQROPOPOPOPOPOPOPOPMNMNMNMNMNMNMNMNKLKLKLKLKLKLKLKLIJIJIJIJIJIJIJIJGHGHGHGHGHGHGHGHEFEFEFEFEFEFEFEFCDCDCDCDCDCDCDCDABABABABABABABAB?@?@?@?@?@?@?@?@=>=>=>=>=>=<;<;<<;<;<;<;:9:9:9:9:9:9:9:987878787878787876565656565656565434343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!                    - - - - - - - -              - - - - - - - -               - - - - - - - -                 - - - - - - - -                 - - - - - - - -                 - - - - - - - -                 - - - - - - - -                 - - - - - - - -             - - - - - - - -              - - - - - - - -              - - - - - - - -             - - - - - - - -             - - - - - - - -             - - - - - - - -          - - - - - - - -             - - - - - - - -             - - - - - - - -             - - - - - - - -             - - - - - - - -LLKKJJII]]^^__``((''&&%%DDEEFFGG=<;;::99 hiijjkkl}||{{zzy100//..- hiijjkkl}||{{zzy100//..- hiijjkkl}||{{zzy100//..- hiijjkkl}||{{zzy100//..- hiijjkkl}||{{zzy100//..- hiijjkklsrrqqppoGHHIIJJK98877665eeffgghh~~}}44332211eeffgghh~~}}44332211eeffgghh~~}}44332211eeffgghh~~}}44332211eeffgghh~~}}44332211eeffgghh{{zzyyssDDEEFFGG=<;;::99abbccdde87766554abbccdde87766554abbccdde87766554abbccdde87766554abbccdde87766554abbccdde~~}}||{;AABBCCDBBAA@?>=^^__``aa;;::9988^^__``aa;;::9988^^__``aa;;::9988^^__``aa;;::9988^^__``aa;;::9988^^__``aa''&&%%8899::;;HHGGFFEEaabbccdd~~}}||HHIIJJKK88776655 !!""##$lmmnnoopyxxwwvvu-,,++**) !!""##$lmmnnoopyxxwwvvu-,,++**) !!""##$lmmnnoopyxxwwvvu-,,++**) !!""##$lmmnnoopyxxwwvvu-,,++**) !!""##$lmmnnoopyxxwwvvu-,,++**) !!""##$lmmnnooponnmmllkKLLMMNNO54433221 iijjkkll||{{zzyy00//..-- iijjkkll||{{zzyy00//..-- iijjkkll||{{zzyy00//..-- iijjkkll||{{zzyy00//..-- iijjkkll||{{zzyy00//..-- iijjkkllrrqqppooHHIIJJKK88776655effgghhi~~}}|43322110effgghhi~~}}|43322110effgghhi~~}}|43322110effgghhi~~}}|43322110effgghhi~~}}|43322110effgghhi{zzyyssrDEEFFGGH<;;::998bbccddee77665544bbccddee77665544bbccddee77665544bbccddee77665544bbccddee77665544bbccddee~~}}||{{AABBCCDDDDCCBBAAeeffgghh{{zzyyssLLMMNNOO44332211$%%&&''(pqqrrsstuttssrrq)((''&&%$%%&&''(pqqrrsstuttssrrq)((''&&%$%%&&''(pqqrrsstuttssrrq)((''&&%$%%&&''(pqqrrsstuttssrrq)((''&&%$%%&&''(pqqrrsstuttssrrq)((''&&%$%%&&''(pqqrrsstkjjiihhg OPPQQRRS100//..-!!""##$$mmnnooppxxwwvvuu,,++**))!!""##$$mmnnooppxxwwvvuu,,++**))!!""##$$mmnnooppxxwwvvuu,,++**))!!""##$$mmnnooppxxwwvvuu,,++**))!!""##$$mmnnooppxxwwvvuu,,++**))!!""##$$mmnnooppnnmmllkkLLMMNNOO44332211 !ijjkkllm|{{zzyyx0//..--, !ijjkkllm|{{zzyyx0//..--, !ijjkkllm|{{zzyyx0//..--, !ijjkkllm|{{zzyyx0//..--, !ijjkkllm|{{zzyyx0//..--, !ijjkkllmrqqppoonHIIJJKKL87766554ffgghhii~~}}||33221100ffgghhii~~}}||33221100ffgghhii~~}}||33221100ffgghhii~~}}||33221100ffgghhii~~}}||33221100ffgghhiizzyyssrrEEFFGGHH@@??>>== iijjkkllrrqqppooPPQQRRSS00//..--())**++,tuuvvwwxqppoonnm%$$##""!())**++,tuuvvwwxqppoonnm%$$##""!())**++,tuuvvwwxqppoonnm%$$##""!())**++,tuuvvwwxqppoonnm%$$##""!())**++,tuuvvwwxqppoonnm%$$##""!())**++,tuuvvwwxgffeeddc - - STTUUVVW~~}}-,,++**)%%&&''((qqrrssttttssrrqq((''&&%%%%&&''((qqrrssttttssrrqq((''&&%%%%&&''((qqrrssttttssrrqq((''&&%%%%&&''((qqrrssttttssrrqq((''&&%%%%&&''((qqrrssttttssrrqq((''&&%%%%&&''((qqrrssttjjiihhgg PPQQRRSS00//..--!""##$$%mnnooppqxwwvvuut,++**))(!""##$$%mnnooppqxwwvvuut,++**))(!""##$$%mnnooppqxwwvvuut,++**))(!""##$$%mnnooppqxwwvvuut,++**))(!""##$$%mnnooppqxwwvvuut,++**))(!""##$$%mnnooppqnmmllkkjLMMNNOOP43322110 !!jjkkllmm{{zzyyxx//..--,, !!jjkkllmm{{zzyyxx//..--,, !!jjkkllmm{{zzyyxx//..--,, !!jjkkllmm{{zzyyxx//..--,, !!jjkkllmm{{zzyyxx//..--,, !!jjkkllmmqqppoonnIIJJKKLL<<;;::99!!""##$$mmnnooppnnmmllkkTTUUVVWW~~}}|,,++**)),--..//0xyyzz{{|mllkkjji! ,--..//0xyyzz{{|mllkkjji! ,--..//0xyyzz{{|mllkkjji! ,--..//0xyyzz{{|mllkkjji! ,--..//0xyyzz{{|mllkkjji! ,--..//0xyyzz{{|cbbaa``_W]]^^__`||{{zzyy)((''&&%))**++,,uuvvwwxxppoonnmm$$##""!!))**++,,uuvvwwxxppoonnmm$$##""!!))**++,,uuvvwwxxppoonnmm$$##""!!))**++,,uuvvwwxxppoonnmm$$##""!!))**++,,uuvvwwxxppoonnmm$$##""!!))**++,,uuvvwwxxffeeddcc - - TTUUVVWW~~}}|,,++**))%&&''(()qrrssttutssrrqqp(''&&%%$%&&''(()qrrssttutssrrqqp(''&&%%$%&&''(()qrrssttutssrrqqp(''&&%%$%&&''(()qrrssttutssrrqqp(''&&%%$%&&''(()qrrssttutssrrqqp(''&&%%$%&&''(()qrrssttujiihhggf PQQRRSST0//..--,""##$$%%nnooppqqwwvvuutt++**))((""##$$%%nnooppqqwwvvuutt++**))((""##$$%%nnooppqqwwvvuutt++**))((""##$$%%nnooppqqwwvvuutt++**))((""##$$%%nnooppqqwwvvuutt++**))((""##$$%%nnooppqqmmllkkjjMMNNOOPP88776655%%&&''((qqrrssttjjiihhgg ]]^^__``|{{zzyyx((''&&%%01122334|}}~~ihhggffe01122334|}}~~ihhggffe01122334|}}~~ihhggffe01122334|}}~~ihhggffe01122334|}}~~ihhggffe01122334|}}~~_^^]]WWV `aabbccdxwvutssr%$#"! --..//00yyzz{{||llkkjjii --..//00yyzz{{||llkkjjii --..//00yyzz{{||llkkjjii --..//00yyzz{{||llkkjjii --..//00yyzz{{||llkkjjii --..//00yyzz{{||bbaa``__]]^^__``|{{zzyyx((''&&%%)**++,,-uvvwwxxypoonnmml$##""!! )**++,,-uvvwwxxypoonnmml$##""!! )**++,,-uvvwwxxypoonnmml$##""!! )**++,,-uvvwwxxypoonnmml$##""!! )**++,,-uvvwwxxypoonnmml$##""!! )**++,,-uvvwwxxyfeeddccb - - TUUVVWW]~~}}||,++**))(&&''(())rrssttuussrrqqpp''&&%%$$&&''(())rrssttuussrrqqpp''&&%%$$&&''(())rrssttuussrrqqpp''&&%%$$&&''(())rrssttuussrrqqpp''&&%%$$&&''(())rrssttuussrrqqpp''&&%%$$&&''(())rrssttuuiihhggff QQRRSSTT~~}}44332211))**++,,uuvvwwxxffeeddcc - - aabbccddwvutssrr$#"! 45566778eddccbba45566778eddccbba45566778eddccbba45566778eddccbba45566778eddccbba45566778VUUTTSSR - - deeffgghrqqppoon11223344}}~~hhggffee11223344}}~~hhggffee11223344}}~~hhggffee11223344}}~~hhggffee11223344}}~~hhggffee11223344}}~~^^]]WWVV aabbccddwvutssrr$#"! -..//001yzz{{||}lkkjjiih -..//001yzz{{||}lkkjjiih -..//001yzz{{||}lkkjjiih -..//001yzz{{||}lkkjjiih -..//001yzz{{||}lkkjjiih -..//001yzz{{||}baa``__^]^^__``a{{zzyyxw(''&&%%$**++,,--vvwwxxyyoonnmmll##""!! **++,,--vvwwxxyyoonnmmll##""!! **++,,--vvwwxxyyoonnmmll##""!! **++,,--vvwwxxyyoonnmmll##""!! **++,,--vvwwxxyyoonnmmll##""!! **++,,--vvwwxxyyeeddccbb - - UUVVWW]]||{{zzyy00//..----..//00yyzz{{||bbaa``__ - - eeffgghhqqppoonn899::;;>??@]\\[[ZZY <==>>??@]\\[[ZZY <==>>??@]\\[[ZZY <==>>??@]\\[[ZZY <==>>??@]\\[[ZZY <==>>??@NMMLLKKJlmmnnoopjiihhggf99::;;<<``__^^]]99::;;<<``__^^]]99::;;<<``__^^]]99::;;<<``__^^]]99::;;<<``__^^]]99::;;<>??@@\\[[ZZYY ==>>??@@\\[[ZZYY ==>>??@@\\[[ZZYY ==>>??@@\\[[ZZYY ==>>??@@\\[[ZZYY ==>>??@@MMLLKKJJmmnnooppiihhggff9::;;<<=`__^^]]\9::;;<<=`__^^]]\9::;;<<=`__^^]]\9::;;<<=`__^^]]\9::;;<<=`__^^]]\9::;;<<=QPPOONNMijjkkllmmllkkjji66778899ccbbaa``66778899ccbbaa``66778899ccbbaa``66778899ccbbaa``66778899ccbbaa``66778899TTSSRRQQ ffgghhiippoonnmm$$##""!!99::;;<>??@@A\[[ZZYYX =>>??@@A\[[ZZYYX =>>??@@A\[[ZZYYX =>>??@@A\[[ZZYYX =>>??@@A\[[ZZYYX =>>??@@AMLLKKJJImnnooppqihhggffe::;;<<==__^^]]\\::;;<<==__^^]]\\::;;<<==__^^]]\\::;;<<==__^^]]\\::;;<<==__^^]]\\::;;<<==PPOONNMMjjkkllmmllkkjjii ==>>??@@MMLLKKJJzz{{||}}aa``__^^ -HIIJJKKLQPPOONNMHIIJJKKLQPPOONNMHIIJJKKLQPPOONNMHIIJJKKLQPPOONNMHIIJJKKLQPPOONNMHIIJJKKLBAA;;::9%%&}~~^]]\[ZYX - - EEFFGGHHTTSSRRQQEEFFGGHHTTSSRRQQEEFFGGHHTTSSRRQQEEFFGGHHTTSSRRQQEEFFGGHHTTSSRRQQEEFFGGHHEEDDCCBBzz{{||}}aa``__^^ -ABBCCDDEXWWVVUUT - - ABBCCDDEXWWVVUUT - - ABBCCDDEXWWVVUUT - - ABBCCDDEXWWVVUUT - - ABBCCDDEXWWVVUUT - - ABBCCDDEIHHGGFFEqrrssyyzeddccbba>>??@@AA[[ZZYYXX >>??@@AA[[ZZYYXX >>??@@AA[[ZZYYXX >>??@@AA[[ZZYYXX >>??@@AA[[ZZYYXX >>??@@AALLKKJJIInnooppqqhhggffeeAABBCCDDIIHHGGFF%%&&~~]]\[ZYXW - LMMNNOOPMLLKKJJILMMNNOOPMLLKKJJILMMNNOOPMLLKKJJILMMNNOOPMLLKKJJILMMNNOOPMLLKKJJILMMNNOOP98877665&''(())*WWVVUUTTIIJJKKLLPPOONNMMIIJJKKLLPPOONNMMIIJJKKLLPPOONNMMIIJJKKLLPPOONNMMIIJJKKLLPPOONNMMIIJJKKLLAA;;::99%%&&~~]]\[ZYXW - EFFGGHHITSSRRQQPEFFGGHHITSSRRQQPEFFGGHHITSSRRQQPEFFGGHHITSSRRQQPEFFGGHHITSSRRQQPEFFGGHHIEDDCCBBAz{{||}}~a``__^^] - -BBCCDDEEWWVVUUTT - - BBCCDDEEWWVVUUTT - - BBCCDDEEWWVVUUTT - - BBCCDDEEWWVVUUTT - - BBCCDDEEWWVVUUTT - - BBCCDDEEHHGGFFEErrssyyzzddccbbaaEEFFGGHHEEDDCCBB''(())**WVVUUTTSPQQRRSSTIHHGGFFEPQQRRSSTIHHGGFFEPQQRRSSTIHHGGFFEPQQRRSSTIHHGGFFEPQQRRSSTIHHGGFFEPQQRRSST54433221*++,,--.SSRRQQPPMMNNOOPPLLKKJJIIMMNNOOPPLLKKJJIIMMNNOOPPLLKKJJIIMMNNOOPPLLKKJJIIMMNNOOPPLLKKJJIIMMNNOOPP88776655''(())**WVVUUTTSIJJKKLLMPOONNMMLIJJKKLLMPOONNMMLIJJKKLLMPOONNMMLIJJKKLLMPOONNMMLIJJKKLLMPOONNMMLIJJKKLLMA;;::998%%&&'~]\[ZYXWW FFGGHHIISSRRQQPPFFGGHHIISSRRQQPPFFGGHHIISSRRQQPPFFGGHHIISSRRQQPPFFGGHHIISSRRQQPPFFGGHHIIDDCCBBAA{{||}}~~``__^^]]IIJJKKLLAA;;::99++,,--..SRRQQPPO - - TUUVVWWXEDDCCBBA - - TUUVVWWXEDDCCBBA - - TUUVVWWXEDDCCBBA - - TUUVVWWXEDDCCBBA - - TUUVVWWXEDDCCBBA - - TUUVVWWX100//..-.//00112OONNMMLLQQRRSSTTHHGGFFEEQQRRSSTTHHGGFFEEQQRRSSTTHHGGFFEEQQRRSSTTHHGGFFEEQQRRSSTTHHGGFFEEQQRRSSTT44332211++,,--..SRRQQPPOMNNOOPPQLKKJJIIHMNNOOPPQLKKJJIIHMNNOOPPQLKKJJIIHMNNOOPPQLKKJJIIHMNNOOPPQLKKJJIIHMNNOOPPQ87766554'(())**+VVUUTTSSJJKKLLMMOONNMMLLJJKKLLMMOONNMMLLJJKKLLMMOONNMMLLJJKKLLMMOONNMMLLJJKKLLMMOONNMMLLJJKKLLMM;;::9988%%&&''\\[[ZZYY MMNNOOPP88776655//001122ONNMMLLK XYYZZ[[\A@@??>>= XYYZZ[[\A@@??>>= XYYZZ[[\A@@??>>= XYYZZ[[\A@@??>>= XYYZZ[[\A@@??>>= XYYZZ[[\-,,++**)23344556KKJJIIHH - - UUVVWWXXDDCCBBAA - - UUVVWWXXDDCCBBAA - - UUVVWWXXDDCCBBAA - - UUVVWWXXDDCCBBAA - - UUVVWWXXDDCCBBAA - - UUVVWWXX00//..--//001122ONNMMLLK QRRSSTTUHGGFFEED QRRSSTTUHGGFFEED QRRSSTTUHGGFFEED QRRSSTTUHGGFFEED QRRSSTTUHGGFFEED QRRSSTTU43322110+,,--../RRQQPPOONNOOPPQQKKJJIIHHNNOOPPQQKKJJIIHHNNOOPPQQKKJJIIHHNNOOPPQQKKJJIIHHNNOOPPQQKKJJIIHHNNOOPPQQ77665544(())**++XXWWVVUU - - QQRRSSTT4433221133445566KJJIIHHG\]]^^__`=<<;;::9\]]^^__`=<<;;::9\]]^^__`=<<;;::9\]]^^__`=<<;;::9\]]^^__`=<<;;::9\]]^^__`)((''&&%6778899:GGFFEEDD YYZZ[[\\@@??>>== YYZZ[[\\@@??>>== YYZZ[[\\@@??>>== YYZZ[[\\@@??>>== YYZZ[[\\@@??>>== YYZZ[[\\,,++**))33445566KJJIIHHG - - UVVWWXXYDCCBBAA@ - - UVVWWXXYDCCBBAA@ - - UVVWWXXYDCCBBAA@ - - UVVWWXXYDCCBBAA@ - - UVVWWXXYDCCBBAA@ - - UVVWWXXY0//..--,/0011223NNMMLLKK RRSSTTUUGGFFEEDD RRSSTTUUGGFFEEDD RRSSTTUUGGFFEEDD RRSSTTUUGGFFEEDD RRSSTTUUGGFFEEDD RRSSTTUU33221100,,--..//TTSSRRQQ - - UUVVWWXX00//..--778899::GFFEEDDC`aabbccd98877665`aabbccd98877665`aabbccd98877665`aabbccd98877665`aabbccd98877665`aabbccd~~}}|%:;;AABBCCCBBAA@?]]^^__``<<;;::99]]^^__``<<;;::99]]^^__``<<;;::99]]^^__``<<;;::99]]^^__``<<;;::99]]^^__``((''&&%%778899::GFFEEDDC YZZ[[\\]@??>>==< YZZ[[\\]@??>>==< YZZ[[\\]@??>>==< YZZ[[\\]@??>>==< YZZ[[\\]@??>>==< YZZ[[\\],++**))(34455667JJIIHHGG - - VVWWXXYYCCBBAA@@ - - VVWWXXYYCCBBAA@@ - - VVWWXXYYCCBBAA@@ - - VVWWXXYYCCBBAA@@ - - VVWWXXYYCCBBAA@@ - - VVWWXXYY//..--,,00112233PPOONNMM YYZZ[[\\,,++**));;AABBCCCBBAA@?>deeffggh~~}54433221deeffggh~~}54433221deeffggh~~}54433221deeffggh~~}54433221deeffggh~~}54433221deeffggh|{{zzyysCDDEEFFG>=<;;::9aabbccdd88776655aabbccdd88776655aabbccdd88776655aabbccdd88776655aabbccdd88776655aabbccdd~~}}||;;AABBCCCBBAA@?>]^^__``a<;;::998]^^__``a<;;::998]^^__``a<;;::998]^^__``a<;;::998]^^__``a<;;::998]^^__``a(''&&%%78899::;FFEEDDCCZZ[[\\]]??>>==<<ZZ[[\\]]??>>==<<ZZ[[\\]]??>>==<<ZZ[[\\]]??>>==<<ZZ[[\\]]??>>==<<ZZ[[\\]]++**))((44556677~~}}||{++**))((&''(())*rssttuuvsrrqqppo'&&%%$$#&''(())*rssttuuvsrrqqppo'&&%%$$#&''(())*rssttuuvsrrqqppo'&&%%$$#&''(())*rssttuuvsrrqqppo'&&%%$$#&''(())*rssttuuvsrrqqppo'&&%%$$#&''(())*rssttuuvfeeddccb - - -abbccddeihhggffe@AABBCCD{zzyyxwv''&&%%$#*++,,--.vwwxxyyzonnmmllk#""!! *++,,--.vwwxxyyzonnmmllk#""!! *++,,--.vwwxxyyzonnmmllk#""!! *++,,--.vwwxxyyzonnmmllk#""!! *++,,--.vwwxxyyzonnmmllk#""!! *++,,--.vwwxxyyzbaa``__^ - effgghhieddccbbaDEEFFGGHutssrrqq"! .//00112z{{||}}~kjjiihhg.//00112z{{||}}~kjjiihhg.//00112z{{||}}~kjjiihhg.//00112z{{||}}~kjjiihhg.//00112z{{||}}~kjjiihhg.//00112z{{||}}~^]]WWVVUijjkkllma``__^^]HIIJJKKLppoonnmm23344556~gffeeddc23344556~gffeeddc23344556~gffeeddc23344556~gffeeddc23344556~gffeeddc23344556~UTTSSRRQmnnooppq]\\[[ZZY LMMNNOOPllkkjjii6778899:cbbaa``_6778899:cbbaa``_6778899:cbbaa``_6778899:cbbaa``_6778899:cbbaa``_6778899:QPPOONNMqrrssyyzYXXWWVVU - - PQQRRSSThhggffee:;;<<==>_^^]]\\[:;;<<==>_^^]]\\[:;;<<==>_^^]]\\[:;;<<==>_^^]]\\[:;;<<==>_^^]]\\[:;;<<==>MLLKKJJIz{{||}}~UTTSSRRQ - - TUUVVWWXddccbbaa >??@@AAB[ZZYYXXW >??@@AAB[ZZYYXXW >??@@AAB[ZZYYXXW >??@@AAB[ZZYYXXW >??@@AAB[ZZYYXXW >??@@AABIHHGGFFE%%&&'~QPPOONNM XYYZZ[[\``__^^]] - - BCCDDEEFWVVUUTTS - - BCCDDEEFWVVUUTTS - - BCCDDEEFWVVUUTTS - - BCCDDEEFWVVUUTTS - - BCCDDEEFWVVUUTTS - - BCCDDEEFEDDCCBBA'(())**+MLLKKJJI\]]^^__`\[ZYXWWV FGGHHIIJSRRQQPPOFGGHHIIJSRRQQPPOFGGHHIIJSRRQQPPOFGGHHIIJSRRQQPPOFGGHHIIJSRRQQPPOFGGHHIIJA;;::998+,,--../IHHGGFFE`aabbccdVUUTTSSRJKKLLMMNONNMMLLKJKKLLMMNONNMMLLKJKKLLMMNONNMMLLKJKKLLMMNONNMMLLKJKKLLMMNONNMMLLKJKKLLMMN87766554/0011223EDDCCBBAdeeffgghRQQPPOONNOOPPQQRKJJIIHHGNOOPPQQRKJJIIHHGNOOPPQQRKJJIIHHGNOOPPQQRKJJIIHHGNOOPPQQRKJJIIHHGNOOPPQQR4332211034455667A@@??>>= hiijjkklNMMLLKKJ -RSSTTUUVGFFEEDDC -RSSTTUUVGFFEEDDC -RSSTTUUVGFFEEDDC -RSSTTUUVGFFEEDDC -RSSTTUUVGFFEEDDC -RSSTTUUV0//..--,78899::;=<<;;::9 !!""##$lmmnnoopJIIHHGGF - VWWXXYYZCBBAA@@? - VWWXXYYZCBBAA@@? - VWWXXYYZCBBAA@@? - VWWXXYYZCBBAA@@? - VWWXXYYZCBBAA@@? - VWWXXYYZ,++**))(;AABBCCD98877665$%%&&''(pqqrrsstFEEDDCCBZ[[\\]]^?>>==<<;Z[[\\]]^?>>==<<;Z[[\\]]^?>>==<<;Z[[\\]]^?>>==<<;Z[[\\]]^?>>==<<;Z[[\\]]^(''&&%%DEEFFGGH~~}54433221())**++,tuuvvwwxBAA@?>=<^__``aab;::99887^__``aab;::99887^__``aab;::99887^__``aab;::99887^__``aab;::99887^__``aab~~}}||{HIIJJKKL}||{{zzy100//..-,--..//0xyyzz{{|;;::9988bccddeef76655443bccddeef76655443bccddeef76655443bccddeef76655443bccddeef76655443bccddeef{zzyyssrLMMNNOOPyxxwwvvu-,,++**)01122334|}}~~77665544fgghhiij~~}}||{3221100/fgghhiij~~}}||{3221100/fgghhiij~~}}||{3221100/fgghhiij~~}}||{3221100/fgghhiij~~}}||{3221100/fgghhiijrqqppoonPQQRRSSTuttssrrq)((''&&%4556677833221100 !!"jkkllmmn{zzyyxxw/..--,,+ !!"jkkllmmn{zzyyxxw/..--,,+ !!"jkkllmmn{zzyyxxw/..--,,+ !!"jkkllmmn{zzyyxxw/..--,,+ !!"jkkllmmn{zzyyxxw/..--,,+ !!"jkkllmmnnmmllkkjTUUVVWW]qppoonnm%$$##""!899::;;>??@ZHAbے`JXQtArd|ZdQbXv`ffpvZp˂bdQZ|bdQZ|fH~f`vXے`JXQr˂pJtArd|ZdQfpvnXv`bHAZp˂AJltbdQZ|fH~f`vXے`JXQr˂pJtArd|ZdQfpvnXv`bHAZp˂rtAJlbdQZ|nvpZHAbZHAbtlJtArdf~HfpvXQJ`ےbHAZdrtAJltvpfH~fZHAbے`JXQtlJtArdf~HfpvXQJ`ےbHAZdrtAJltvpfH~f`JXQHA`JXQr|ZdQnXv`˅nXv`˂rXQJ`ےbdQZ|drtAvXnvpfHr˂pZHAbہZdQbtlJtnXv`f~H˂rXQJ`ےbdQZ|drtAvXnvpfHr˂pZHAbہZdQbtlJt~Hfp~HfpbHArtAJbrtAJ~f`vXn`JXQr˂pZrd|ZdQbtpvnXv`fbHAZp˂rXQltbdQZ|~f`vXn`JXQr˂pZrd|ZdQbtpvnXv`fbHAZp˂rXQZ|dltdf`vXے`JXQr˂p|ZdQbtlJ~Hf~HfrXQJ`drtAdrtAf`vXnvpQr˂pZHAb|ZdQbtlnXv`f~HZp˂rXQJ`ۉbdQZ|drtf`vXnvpQr˂pZHAb|ZdQbtlnXv`f~HZp˂rXQJ`ۑtbddrtAfH~ے`JXQے`JXtArd|ZdQbfpvnXv`bHAZp˂rJltbdQZ|H~f`vXnے`JXQr˂ptArd|ZdQbfpvnXv`bHAZp˂rJltbdQZ|H~f`vXnbے`˂pZbtlf~Hf~HQJ`ےbHAZpdrtAJltvpfH~f`ZHAbے`JXQlJtArd|f~HfpvQJ`ےbHAZpdrtAJltvpfH~f`ZHAbے`JXQlJtArd|vvnXZp˂dQZ|bdQZ|vXnvpfH˂pZHAbےZdQbtlJtAXv`f~Hf˂rXQJ`ےdQZ|drtAJvXnvpfH˂pZHAbےZdQbtlJtAXv`f~Hf˂rXQJ`ےrtAJlrtAJlH~fr˂pZHAbtlJtArdpvpvnےbHAJltJltnvpfH~ˑZHAbے`JXbtlJtArdf~HfpvrXQJ`ےbHAdrtAJltnvpfH~ˑZHAbے`JXbtlJtArdf~HfpvrXQJ`ےbHAQZ|dJltf`vXr˂pQr˂p|ZdQbtlJnXv`f~Hp˂rXQJ`ےbdQZ|drtA`vXnvpfr˂pZHAb|ZdQbtlJnXv`f~Hp˂rXQJ`ےbdQZ|drtA`vXnvpfJXQrHAbےJtArdfpvfpvbHAZp˂rXJltbdQZ|~f`vXn`JXQr˂pArd|ZdQbtfpvnXv`˙bHAZp˂rXJltbdQZ|~f`vXn`JXQr˂pArd|ZdQbt~Hfpەv`frXQJ`drtAJdrtAvpfH~f`HAbے`JXQrlJtArd|~HfpvnJ`ےbHAZpdrtAJltbvpfH~f`HAbے`JXQrlJtArd|~HfpvnJ`ےbHAZptdrtbdQ`vXnZHAbے`JXQtArd|ZdQb~HfpXv`fZp˂bdQZ|bdQZ|fH~f`vXے`JXQr˂pJtArd|ZdQfpvnXv`bHAZp˂AJltbdQZ|fH~f`vXے`JXQr˂pJtArd|ZdQfpvnXv`bHAZp˂rtAJlbdQZ|lnvpZHAbZHAbtlJtArdf~HfpvXQJ`ےbHAZdrtAJltvpfH~fZHAbے`JXQtlJtArdf~HfpvXQJ`ےbHAZdrtAJltvpfH~f˂pZHA`JXQr|ZdQnXv`nXv`˂rXQJ`ےbdQZ|drtAvXnvpfHr˂pZHAbہZdQbtlJtnXv`f~H˂rXQJ`ےbdQZ|drtAvXnvpfHr˂pZHAbہZdQbtlJtvnX~HfpbHAltbJlt~f`vXn`JXQr˂pZrd|ZdQbtpvnXv`fbHAZp˂rXQltbdQZ|~f`vXn`JXQr˂pZrd|ZdQbtpvnXv`fbHAZp˂rXQtAJlZ|dvpfے`JXQr˂p|ZdQbtlJvnX~HfrXQJ`drtAdrtAf`vXnvpQr˂pZHAb|ZdQbtlnXv`f~HZp˂rXQJ`ۉbdQZ|drtf`vXnvpQr˂pZHAb|ZdQbtlnXv`f~HZp˂rXQJ`ۑtbdtb`vXے`JXQے`JXtArd|ZdQbfpvnXv`bHAZp˂rJltbdQZ|H~f`vXnے`JXQr˂ptArd|ZdQbfpvnXv`bHAZp˂rJltbdQZ|H~f`vXnbے`˂p`btlf~Hf~HQJ`ےbHAZpdrtAJltvpfH~f`ZHAbے`JXQlJtArd|f~HfpvQJ`ےbHAZpdrtAJltvpfH~f`ZHAbے`JXQlJtArd|v`fvnXZp˂dQZ|bdQZ|vXnvpfH˂pZHAbےZdQbtlJtAXv`f~Hf˂rXQJ`ےdQZ|drtAJvXnvpfH˂pZHAbےZdQbtlJtAXv`f~Hf˂rXQJ`ےtbdQZrtAJlH~fr˂pZHAbtlJtArdv`fpvnp˂rJltbJltnvpfH~ˑZHAbے`JXbtlJtArdf~HfpvrXQJ`ےbHAdrtAJltnvpfH~ˑZHAbے`JXbtlJtArdf~HfpvrXQJ`ےbHAQZ|lnvp`nvprZHAQrZHA|ZdQbtlJnXv`f~Hp˂rXQJ`ےbdQZ|drtA`vXnvpfr˂pZHAb|ZdQbtlJnXv`f~Hp˂rXQJ`ےbdQZ|drtA`vXnvpfJXQrJXQrb|ZdQbfpvnfpvbHAZp˂rXJltbdQZ|~f`vXn`JXQr˂pArd|ZdQbtfpvnXv`˙bHAZp˂rXJltbdQZ|~f`vXn`JXQr˂pArd|ZdQbt~Hfpەv`prXQJ`pdrtAJdrtAvpfH~f`HAbے`JXQrlJtArd|~HfpvnJ`ےbHAZpdrtAJltbvpfH~f`HAbے`JXQrlJtArd|~HfpvnJ`ےbHAZp|drtbdQ`vXnZHAbے`JXQtArd|ZdQb~HfpXv`pXQJ`ےQZdrbQZdfH~f`vXے`JXQr˂pJtArd|ZdQfpvnXv`bHAZp˂AJltbdQZ|fH~f`vXے`JXQr˂pJtArd|ZdQfpvnXv`bHAZp˂tbdQvXnfH~bے`bے`tlJtArdf~HfpvXQJ`ےbHAZdrtAJltvpfH~fZHAbے`JXQtlJtArdf~HfpvXQJ`ےbHAZdrtAJltvpfH~f˂p`Jtl|tlJvf~nvf˂rXQJ`ےbdQZ|drtAvXnvpfHr˂pZHAbہZdQbtlJtnXv`f~H˂rXQJ`ےbdQZ|drtAvXnvpfHr˂pZHAbہZdQbtlJtvnXvnrX˂rXltbQJltb~f`vXn`JXQr˂pZrd|ZdQbtpvnXv`fbHAZp˂rXQltbdQZ|~f`vXn`JXQr˂pZrd|ZdQbtpvnXv`fbHAZp˂rXQtAJlZ|l璀vp`ے`JXQr˂p|ZdQbtlJvnX˂rXQbHAZtAJlrtAJlf`vXnvpQr˂pZHAb|ZdQbtlnXv`f~HZp˂rXQJ`ۉbdQZ|drtf`vXnvpQr˂pZHAb|ZdQbtlnXv`f~HZp˂rXQJ`Z|dvpfHf`vXJXQrJXQrtArd|ZdQbfpvnXv`bHAZp˂rJltbdQZ|H~f`vXnے`JXQr˂ptArd|ZdQbfpvnXv`bHAZp˂rJltbdQZ|H~f`vXnXQr˂ZdQbttArdHfpv~HfpQJ`ےbHAZpdrtAJltvpfH~f`ZHAbے`JXQlJtArd|f~HfpvQJ`ےbHAZpdrtAJltvpfH~f`ZHAbے`JXQlJtArd|v`pvQJ`pQJ`ےZdrtQZdrvXnvpfH˂pZHAbےZdQbtlJtAXv`f~Hf˂rXQJ`ےdQZ|drtAJvXnvpfH˂pZHAbےZdQbtlJtAXv`f~Hf˂rXQJ`ےtbdQZtbnvXnr˂pZHAbtlJtArdv`pvJ`ےp˂rtbdQZtbdQnvpfH~ˑZHAbے`JXbtlJtArdf~HfpvrXQJ`ےbHAdrtAJltnvpfH~ˑZHAbے`JXbtlJtArdf~HfpvrXQJ`ےbHArtAJl~f`nvppZHA˂pZHA|ZdQbtlJnXv`f~Hp˂rXQJ`ےbdQZ|drtA`vXnvpfr˂pZHAb|ZdQbtlJnXv`f~Hp˂rXQJ`ےbdQZ|drtA`vXnvpfpZHAblJtA|ZdQbnXvvnXbHAZp˂rXJltbdQZ|~f`vXn`JXQr˂pArd|ZdQbtfpvnXv`˙bHAZp˂rXJltbdQZ|~f`vXn`JXQr˂pArd|ZdQbtnXv`rXQbHAZpAJlttAJlvpfH~f`HAbے`JXQrlJtArd|~HfpvnJ`ےbHAZpdrtAJltbvpfH~f`HAbے`JXQrlJtArd|~HfpvnJ`ےbHAZp|ltvp`vvpfHZHAbے`JXQtArd|ZdQbnXvbHAZpXQJ`ے|drZ|dfH~f`vXے`JXQr˂pJtArd|ZdQfpvnXv`bHAZp˂AJltbdQZ|fH~f`vXے`JXQr˂pJtArd|ZdQfpvnXv`bHAZp˂tbdQvXnfH~bے`bے`tlJtArdf~HfpvXQJ`ےbHAZdrtAJltvpfH~fZHAbے`JXQtlJtArdf~HfpvXQJ`ےbHAZdrtAJltvpfH~fے`Jrd|tlJ`f~v`f˂rXQJ`ےbdQZ|drtAvXnvpfHr˂pZHAbہZdQbtlJtnXv`f~H˂rXQJ`ےbdQZ|drtAvXnvpfHr˂pZHAbہZdQbtlJtf~HJ`ے˂rXbdQZ|tbdQZ~f`vXn`JXQr˂pZrd|ZdQbtpvnXv`fbHAZp˂rXQltbdQZ|~f`vXn`JXQr˂pZrd|ZdQbtpvnXv`fbHAZp˂rXQbdQZ|Xnv~f`ے`JXQr˂p|ZdQbtlJ`f~˂rXQbHAXQtAJlrtAJlf`vXnvpQr˂pZHAۂ|ZdQbtlnXv`fHZp˂rXQJ`ۉbdQZ|dtAf`vXnvpQr˂pZHAۂ|ZdQbtlnXv`fHZp˂rXQJ`Z|dvpfHvpfHJXQrJXQrtArd|ZdQbfpvnXv`bHAZp˂rJltbdQZ|H~f`vXnے`JXQr˂ptArd|ZdQbfpvnXv`bHAZp˂rJltbdQZ|H~f`vXnXQr˂ZdQbttArdtHfpv~HfpQJ`ےbHAZpdrtAJltvpfH~f`ZHAbے`JXQlJtArd|f~HfpvQJ`ےbHAZpdrtAJltvpfH~f`ZHAbے`JXQlJtArd|fpvbHAZpQJ`ےdrt|drvXnvpfH˂pZHAbےZdQbtlJtAXv`f~Hf˂rXQJ`ےdQZ|drtAJvXnvpfH˂pZHAbےZdQbtlJtAXv`f~Hf˂rXQJ`ےdrtApfH~vXnr˂pZHAbtlJtArdHfpvJ`ےJ`ےtbdQZtbdQnvpfH~ˑZHAb`JXQbtlJtArdf~HfpvrXQJ`ےbHAdrtJltnvpfH~ˑZHAb`JXQbtlJtArdf~HfpvrXQJ`ےbHArtAdQZ|~ۅ~f`pZAb˂pZA|ZdQbtlJnXv`fHfp˂rXQJ`ےbdQZ|dtAJ`vXnvpfr˂pZHAے|ZdQbtlJnXv`fHfp˂rXQJ`ےbdQZ|dtAJ`vXnvpfpZHAblJtAlJtAnXvvnXbHAZp˂rXJltbdQZ|~f`vXn`JXQr˂pArd|ZdQbtfpvnXv`˙bHAZp˂rXJltbdQZ|~f`vXn`JXQr˂pArd|ZdQbtnXv`rXQbHAXQAJlttAJlvpfH~f`HAbے`JXQrlJtArd|~HfpvnJ`ےbHAZpdrtAJltbvpfH~f`HAbے`JXQrlJtArd|~HfpvnJ`ےbHAZpJltf`vvpfHZHAbے`JXQtArd|ZdQbnXvbHAXQJbHAZp|rAJlZ|dnfH~fZHAbے`JXrbtlJtArdf~HfpvnrXQJ`bHAZdrtAJltbnvpfH~fZHAbے`JXrbtlJtArdf~HfpvnrXQJ`bHAZdrtdrtvpfHvXn`JXQr`JXQrtlJtArdf~HpvnXQJ`ےbHAZdrtAltbvpfH~fZHAb`JXQrtlJtArdf~HpvnXQJ`ےbHAZdrtAltbvpfH~f˂prdtrd|`f~fpv`ffp˂rXQJ`ےbdQZ|dtAJlvXnvpfHr˂pZHAے`ZdQbtlJtnXv`fHfp˂rXQJ`ےbdQZ|dtAJlvXnvpfHr˂pZHAے`ZdQbtlJtf~HJ`ےJ`ےbdQZ|tbdQZ~f`vXn`JXQr˂pZrd|ZdQbtpvnXv`fbHAZp˂rXQltbdQZ|~f`vXn`JXQr˂pZrd|ZdQbtpvnXv`fbHAZp˂rXQbdQZ|Xnv~vے`JXQr˂p|ZdQbtlJ`f~`ےb˂rXQtbdvff`vXے`JXQr˂pJtAd|ZdQfpvnXv`ےHAZp˂AJltbdQZ|fHf`vXے`JXQr˂pJtAd|ZdQfpvnXv`ےHAZp˂AdQZ|AJlt~f`vpfH˂pZbtltArdf~HfpvrXQJ`bHAZdrtAJltnvpH~fZHAbے`JXQbtltArdf~HfpvrXQJ`bHAZdrtAJltnvpH~fZHAbZHAblJtArZdQbtvnXvnQJ`ےbHAZdrtAtbvpfH~fZHAbہJXQrlJtArdf~HvnQJ`ےbHAZdrtAtbvpfH~fZHAbہJXQrlJtArd˅Xv`bHAXQJ`bHAZpˁrAJl|AJlvXnvpfH˂pZHAے`ZdQbtlJtAXv`fHfp˂rXQJ`ےdQZ|dtAJlvXnvpfH˂pZHAے`ZdQbtlJtAXv`fHfp˂rXQJ`ےdrtApfH~pfH~fZHAbr˂pZHAbtlJtArdHXv`HAZp˂J`ےQZ|df`vXnvpQr˂pZHAb|ZdQbtlnXv`f~HZp˂rXQJ`ۉbdQZ|drtf`vXnvpQr˂pZHAb|ZdQbtlnXv`f~HZp˂rXQJ`ۂdrtAbdQZ|vXnۅ~f`HAbےJtAd|ZdQbfpvnXv`ےHAZp˂rJltbdQZ|fHf`vXnے`JXQr˂pJtAd|ZdQbfpvnXv`ےHAZp˂rJltbdQZ|fHf`vXn˂pZے`JXQd|ZlJtAv`frXQJ`ۙbHAZpdrtAJltnvp~f`ZHAbے`JXQbtlArd|f~HfpvrXQJ`ۙbHAZpdrtAJltnvp~f`ZHAbے`JXQbtlArd|f~HXf~HےbHrXQtbdQtbnvpfH~fZHAbےJXQrblJtArdf~HfvnrJ`ےbHAZdrtAJtbnvpfH~fZHAbےJXQrblJtArdf~HfvnrJ`ےbHAZdQZ|vpf`vJQrZHAbے`JXQtArdf~Hf~HrXQJbHAZprtAJlnvpfH~ˑZHAbے`JXbtlJtArdf~HfpvrXQJ`ےbHAdrtAJltnvpfH~ˑZHAbے`JXbtlJtArdf~HfpvrXQJ`ےbHAJltdrtvpfHvXH`JXQr|ZdQbtlJnXv`f~Hp˂rXQJ`ےbdQZ|drtA`vXnvpfr˂pZHAb|ZdQbtlJnXv`f~Hp˂rXQJ`ےbdQZ|drtA`vXnvpfHAbےr˂pdQbtrd|~HfpHAZp˂rXJltbdQZ|fHf`vXn`JXQr˂pJtAd|ZdQbtfpvnXv`˒HAZp˂rXJltbdQZ|fHf`vXn`JXQr˂pJtAd|ZdQbtv`ffpvAZp˂J`ےZ|dvpf~f`HAbے`JXQrtlJrd|~HfpvnXQJ`ےbHAZpdrtAJltbvpf~f`HAbے`JXQrtlJrd|~HfpvnXQJ`ےbHAZpdrtAdQdrtAJfH~Xnv˂pZHے`JXQr˂p|ZdQbXv`ffpv`ےb˂btbdfH~f`vXے`JXQr˂pJtArd|ZdQfpvnXv`bHAZp˂AJltbdQZ|fH~f`vXے`JXQr˂pJtArd|ZdQfpvnXv`bHAZp˂bdQZ|AJlt~f`~fZH˂pZtlJtArdf~HfpvXQJ`ےbHAZdrtAJltvpfH~fZHAbے`JXQtlJtArdf~HfpvXQJ`ےbHAZdrtAJltvpfH~f`JXQrZHAblJtArZdQtArvnX˂rXQJ`ےbdQZ|drtAvXnvpfHr˂pZHAbہZdQbtlJtnXv`f~H˂rXQJ`ےbdQZ|drtAvXnvpfHr˂pZHAbہZdQbtlJt~HfpnXv`ˉrXQJ`bHAZprtAJlHf`vXn`JXQr˂pZtAd|ZdQbtpvnXv`fHAZp˂rXQltbdQZ|Hf`vXn`JXQr˂pZtAd|ZdQbtpvnXv`fHAZp˂rXQZ|dltbf`vXpfH~Abے`r˂p|ZdQbtlJ~HfnXv`HAZp˂HAZdQZ|df`vXnvpQr˂pZHAb|ZdQbtlnXv`f~HZp˂rXQJ`ۉbdQZ|drtf`vXnvpQr˂pZHAb|ZdQbtlnXv`f~HZp˂rXQJ`ۂdrtAdrtAvXH~AbJHAbtArd|ZdQbfpvnXv`bHAZp˂rJltbdQZ|H~f`vXnے`JXQr˂ptArd|ZdQbfpvnXv`bHAZp˂rJltbdQZ|H~f`vXn˂pZے`JXQd|Zdfv`fQJ`ےbHAZpdrtAJltvpfH~f`ZHAbے`JXQlJtArd|f~HfpvQJ`ےbHAZpdrtAJltvpfH~f`ZHAbے`JXQlJtArd|vnXf~HےbHbHtbdQvXnvpfH˂pZHAbےZdQbtlJtAXv`f~Hf˂rXQJ`ےdQZ|drtAJvXnvpfH˂pZHAbےZdQbtlJtAXv`f~Hf˂rXQJ`ےrtAJldQZ|nvpf`vJXQrZHAbtlJtArdpvnf~HbHArtAJrtAJnvpfH~ˑZHAbے`JXbtlJtArdf~HfpvrXQJ`ےbHAdrtAJltnvpfH~ˑZHAbے`JXbtlJtArdf~HfpvrXQJ`ےbHAJltdJltf`vXQr˂pJQr˂p|ZdQbtlJnXv`f~Hp˂rXQJ`ےbdQZ|drtA`vXnvpfr˂pZHAb|ZdQbtlJnXv`f~Hp˂rXQJ`ےbdQZ|drtA`vXnvpfHAbےHAbےdQtArd~Hfv~HfvbHAZp˂rXJltbdQZ|~f`vXn`JXQr˂pArd|ZdQbtfpvnXv`˙bHAZp˂rXJltbdQZ|~f`vXn`JXQr˂pArd|ZdQbtv`ffpvAZp˂AZdZ|dvpfH~f`HAbے`JXQrlJtArd|~HfpvnJ`ےbHAZpdrtAJltbvpfH~f`HAbے`JXQrlJtArd|~HfpvnJ`ےbHAZptbdQdrtAJfH~XH~˂pZHAbے`HAbےlJtArd|~HfpvnXJ`ےbHAZp˙rtAJltbdvpfH~f`Abے`JXQrlJtArd|~HfpvnXJ`ےbHAZp˙rtAJltbdvpfH~f`bے`˂p`ZۑpJApfH~ㅐf۝`vtbAdZJXQr`JXQrrd|ZdQbtvnXv`fbHAZp˂rXQtbdQZ|d~f`vXnہJXQr˂pZHrd|ZdQbtvnXv`fbHAZp˂rXQtbdQZ|d~f`vXnJXQrQXb㉀Hr󙐂ˁf۝`vXnvˍ|drZHAbZHAbZdQbtlJtAv`f~HfprXQJ`ےQZ|drtAJlvXnvpfH˂pZHAbے`ZdQbtlJtAv`f~HfprXQJ`ےQZ|drtAJlvXnvpfHp`JXۑpJAHr`ZQXbXnvˍpfH~QtJlے`JXQے`JXlJtArd|~HfpvnXJ`ےbHAZp˙rtAJltbdvpfH~f`Abے`JXQrlJtArd|~HfpvnXJ`ےbHAZp˙rtAJltbdvpfH~f`Qr˂p󙐂ˁ`ZۑpJApfH~ㅐf۝`vtbAdZr˂pQr˂prd|ZdQbtvnXv`fbHAZp˂rXQtbdQZ|d~f`vXnہJXQr˂pZHrd|ZdQbtvnXv`fbHAZp˂rXQtbdQZ|d~f`vXnۑZHAbQXb㉀Hr󙐉f۝`vXnvˍ|drZHAbZHAbZdQbtlJtAv`f~HfprXQJ`ےQZ|drtAJlvXnvpfH˂pZHAbے`ZdQbtlJtAv`f~HfprXQJ`ےQZ|drtAJlvXnvpfHے`JXۑpJAHrۑpJAHrXnvˍp|drQtJlے`JXQے`JXlJtArd|~HfpvnXJ`ےbHAZp˙rtAJltbdvpfH~f`Abے`JXQrlJtArd|~HfpvnXJ`ےbHAZp˙rtAJltbdvpfH~f`Qr˂p󙐉ۑ󙐂ˁ`ZpfH~QtJltbAdZr˂pQr˂prd|ZdQbtvnXv`fbHAZp˂rXQtbdQZ|d~f`vXnہJXQr˂pZHrd|ZdQbtvnXv`fbHAZp˂rXQtbdQZ|d~f`vXnۑZHAbpJAHrQXb㉀f۝`vtbAdZ|drZAb`ZA`ZdQbtlJtAv`fHfpۂrXQJ`ےQZ|dtAJlvXnvpfH˂pZHAے`ZdQbtlJtAv`fHfpۂrXQJ`ےQZ|dtAJlvXnvpfH󙀉˂pˁ`ZQۑpJAHrXnvˍ|drQtJlJXQrJXQrbtlJtArdf~HfpvnrXJ`ےbHAZdrtAJltbnvpfH~fZHAbے`JXQrbtlJtArdf~HfpvnrXJ`ےbHAZdrtAJltbnvpfH~frZHAbXb㉀ۑ󙐂ˁ`pfH~QtJltbAdZpZHAlJtrd|~HfpvnXQJ`ےbHAZp˙rtAJltbdvpfH~f`Abے`JXQrlJtrd|~HfpvnXQJ`ےbHAZp˙rtAJltbdvpfH~f`˂pZH`JXQpJAHrpfH~ㅐf۝`vtbAdZ|drbے`Ad|ZdQbtvnXv`fHAZp˂rXQtbdQZ|df`vXnہJXQr˂pZHAd|ZdQbtvnXv`fHAZp˂rXQtbdQZ|df`vXnAbے`r˂pˁ`ZQf۝`vXnvˍ|drQtJlJXQrZdQbtlJtAv`f~HfprXQJ`ےQZ|drtAJlvXnvpfH˂pZHAbے`ZdQbtlJtAv`f~HfprXQJ`ےQZ|drtAJlvXnvpfHJXQrZHAbXAHr󙐂XnvˍpfH~QtJltbAdZpZHAlJtArd|~HfpvnXJ`ےbHAZp˙rtAJltbdvpfH~f`Abے`JXQrlJtArd|~HfpvnXJ`ےbHAZp˙rtAJltbdvpfH~f`˂pZH`JXQHˁ`ZQXbpfH~ㅐf۝`vtbAdZ|drbJQrrd|ZdQbtvnXv`fbHAZp˂rXQtbdQZ|d~f`vXnہJXQr˂pZHrd|ZdQbtvnXv`fbHAZp˂rXQtbdQZ|d~f`vXnAbے`Abے`㉀ۑpJf۝`vXnvˍ|drQtJl˂pZZdQbtlJtAv`f~HfprXQJ`ےQZ|drtAJlvXnvpfH˂pZHAbے`ZdQbtlJtAv`f~HfprXQJ`ےQZ|drtAJlvXnvpfHJXQHAJXQrAHr󙐂XnvˍpfH~QtJltbAdZHAbےlJtArd|~HfpvnXJ`ےbHAZp˙rtAJltbdvpfH~f`Abے`JXQrlJtArd|~HfpvnXJ`ےbHAZp˙rtAJltbdvpfH~f`bے`˂pZHˁ`ZQXbpfH~ㅐf۝`vtbAdZ|dr`JXQrrd|ZdQbtvnXv`fbHAZp˂rXQtbdQZ|d~f`vXnہJXQr˂pZHrd|ZdQbtvnXv`fbHAZp˂rXQtbdQZ|d~f`vXnJXQrAbے`㉀ۑpf۝`vXnvˍ|drQtJl˂pZZdQbtlJtAv`f~HfprXQJ`ےQZ|drtAJlvXnvpfH˂pZHAbے`ZdQbtlJtAv`f~HfprXQJ`ےQZ|drtAJlvXnvpfHpZHAJXQr`ZQXbXnvˍpfH~QtJltbAdZ| \ No newline at end of file diff --git a/vendor/endroid/qr-code/assets/data/qrv34_2.dat b/vendor/endroid/qr-code/assets/data/qrv34_2.dat deleted file mode 100755 index 4829b3148..000000000 --- a/vendor/endroid/qr-code/assets/data/qrv34_2.dat +++ /dev/null @@ -1,305 +0,0 @@ -}~}~}~}~{|{|{|{|wxwxwxwxtstststspopopoponmnmnmnmjijijijihghghghg}~}~}~}~{|{|{|{|wxwxwxwxtstststspopopoponmnmnmnmjijijijihghghghg}~}~}~}~{|{|{|{|wxwxwxwxtstststspopopoponmnmnmnmjijijijihghghghg}~}~}~}~{|{|{|{|wxwxwxwxtststssspopopoponmnmnmnmjijijijihghghghg}~}~}~}~{zyzyzyzwxwxwxwxssstststpopopoponmnmnmnmjijijijihghghghg}~}~}~}~yzyzyzyzwxwxwxwxststststpopopoponmnmnmnmjijijijihghghghg}~}~}~}~yzyzyzyzwxwxwxwxststststpopopoponmnmnmnmjijijijifefefefe}~}~}~}~yzyzyzyzwxwxwxwxststststpopopoponmnmnmnmjijijijifefefefe}~}~}~}~yzyzyzyzwxwxwxwxststststpopopoponmnmnmnmjijijijifefefefe}~}~}~}~yzyzyzyzwxwxwxwxststststpopopoponmnmnmnmjijijijifefefefe}~}~}~}~yzyzyzyzwxwxwxwxsssssstspopopoponmnmnmnmjijijijifefefefe}~}~}~}~yzyzyzyzwxwxwxwxtstststspopopoponmnmnmnmjijijijifefefefe}~}~}~}~yzyzyzyzwxwxwxwvtstststspopopopolklklklkjijijijifefefefe}~}~}~}~yzyzyzyzuvuvuvuvtstststspopopopolklklklkjijijijifefefefe}~}~}~}~yzyzyzyzuvuvuvuvtstststspopopopolklklklkjijijijifefefefe}~}~}~}~yzyzyzyzuvuvuvuvtstststspopopopolklklklkjijijijifefefefe}~}~}~}~yzyzyzyzuvuvuvuvtstssssspopopopolklklklkjijijijifefefefe}~}~}~}~yzyzyzyzuvuvuvuvtstststspopopopolklklklkjijijijifefefefe}~}~}~}~yzyzyzyzuvuvuvuvrqrqrqrqpopopopolklklklkjijijijifefefefe}~}~}~}~yzyzyzyzuvuvuvuvrqrqrqrqpopopopolklklklkjijijijifefefefe}~}~}~}~yzyzyzyzuvuvuvuvrqrqrqrqpopopopolklklklkjijijijifefefefe}~}~}~}~yzyzyzyzuvuvuvuvrqrqrqrqpopopopolklklklkjijijijifefefefe}~}~}~}~yzyzyzyzuvuvuvuvrqrqrqrqpopopopolklklklkjijijijifefefefe}~}~}~}~yzyzyzyzuvuvuvuvrqrqrqrqpopopopolklklklkjijijijifefefefe}~}~}~}~yzyzyzyzuvuvuvuvrqrqrqrqpopopopolklklklkjijijijifefefefe}~}~}~}~yzyzyzyzuvuvuvuvrqrqrqrqpopopopolklklklkjijijijifefefefe}|{|{|{|yzyzyzyzuvuvuvuvrqrqrqrqpopopopolklklklkjijijijifefefefe{|{|{|{|yzyzyzyzuvuvuvuvrqrqrqrqpopopopolklklklkjijijijifefefefe{|{|{|{|yzyzyzyzuvuvuvuvrqrqrqrqpopopopolklklklkhghghghgfefefefe{|{|{|{|yzyzyzyzuvuvuvuvrqrqrqrqpopopopolklklklkhghghghgfefefefe{|{|{|{|yzyzyzyzuvuvuvuvrqrqrqrqpopopopolklklklkhghghghgfefefefe{|{|{|{|yzyzyzyzuvuvuvuvrqrqrqrqpopopopolklklklkhghghghgfefefefe{|{|{|{|yzyzyzyzuvuvuvuvrqrqrqrqpopopopolklklklkhghghghgfefefefe{|{|{|{|yzyzyzyzuvuvuvuvrqrqrqrqpopopopolklklklkhghghghgfefefefe{|{|{|{|yzyzyzyzuvuvuvuvrqrqrqrqnmnmnmnmlklklklkhghghghgfefefefe{|{|{|{|yzyzyzyzuvuvuvuvrqrqrqrqnmnmnmnmlklklklkhghghghgfefefefe{|{|{|{|yzyzyzyzuvuvuvuvrqrqrqrqnmnmnmnmlklklklkhghghghgfefefefe{|{|{|{|yzyzyzyzuvuvuvuvrqrqrqrqnmnmnmnmlklklklkhghghghgfefefefe{|{|{|{|yzyzyzyzuvuvuvuvrqrqrqrqnmnmnmnmlklklklkhghghghgfefefefe{|{|{|{|yzyzyzyzuvuvuvuvrqrqrqrqnmnmnmnmlklklklkhghghghgfefefefe{|{|{|{|yzyzyzyzuvuvuvuvrqrqrqrqnmnmnmnmlklklklkhghghghgfefefefe{|{|{|{|yzyzyzyzuvuvuvuvrqrqrqrqnmnmnmnmlklklklkhghghghgfefefefe{|{|{|{|yxwxwxwxuvuvuvuvrqrqrqrqnmnmnmnmlklklklkhghghghgfefefefe{|{|{|{|wxwxwxwxuvuvutstrqrqrqrqnmnmnmnmlklklklkhghghghgfefefefe{|{|{|{|wxwxwxwxststssssrqrqrqrqnmnmnmnmlklklklkhghghghgdcdcdcdc{|{|{|{|wxwxwxwxsstststsrqrqrqrqnmnmnmnmlklklklkhghghghgdcdcdcdc{|{|{|{|wxwxwxwxtstststsrqrqrqrqnmnmnmnmlklklklkhghghghgdcdcdcdc{|{|{|{|wxwxwxwxtstststsrqrqrqrqnmnmnmnmlklklklkhghghghgdcdcdcdc~}~}~}~{|{|{|{|wxwxwxwxtstststsrqrqrqrqnmnmnmnmlklklklkhghghghgdcdcdcdc}~}~}~}~{|{|{|{|wxwxwxwxtstststsrqrqrqrqnmnmnmnmlklklklkhghghghgdcdcdcdc}~}~}~}~{|{|{|{|wxwxwxwxtstststsrqrqrqrqnmnmnmnmjijijijihghghghgdcdcdcdc}~}~}~}~{|{|{|{|wxwxwxwxssssststrqrqrqrqnmnmnmnmjijijijihghghghgdcdcdcdc}~}~}~}~{|{|{|{|wxwxwxwxststststrqrqrqrqnmnmnmnmjijijijihghghghgdcdcdcdc}~}~}~}~{|{|{|{|wxwxwxwxststststrqrqrqrqnmnmnmnmjijijijihghghghgdcdcdcdc}~}~}~}~{|{|{|{|wxwxwxwxststststrqrqrqrqnmnmnmnmjijijijihghghghgdcdcdcdc}~}~}~}~{|{|{|{|wxwxwxwxststststrqrqrqrqnmnmnmnmjijijijihghghghgdcdcdcdc}~}~}~}~{|{|{|{|wxwxwxwxststststpopopoponmnmnmnmjijijijihghghghgdcdcdcdc}~}~}~}~{|{|{|{|wxwxwxwxstsssssspopopoponmnmnmnmjijijijihghghghgdcdcdcdc}~}~}~}~{|{|{|{|wxwxwxwxtstststspopopoponmnmnmnmjijijijihghghghgdcdcdcdc}~}~}~}~{|{|{|{|wxwxwxwxtstststspopopoponmnmnmnmjijijijihghghghgdcdcdcdcdcdcdcdcdcdcdcdc`_`_`_`_^]^]^]^]ZYZYZYZYUVUVUVUVSTSTSTSTOPOPOPOPMNMNMNMLIJIJIJIJEFEFEFEFCDCDCDCD?@?@?@?@;<;<;<;<:9:9:9:965656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%"!"!"!"! dcdcdcdc`_`_`_`_^]^]^]^]ZYZYZYZYUVUVUVUVSTSTSTSTOPOPOPOPKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCD?@?@?@?@;<;<;<;<:9:9:9:965656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%"!"!"!"! dcdcdcdc`_`_`_`_^]^]^]^]ZYZYZYZYUVUVUVUVSTSTSTSTOPOPOPOPKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCD?@?@?@?@;<;<;<;<:9:9:98765656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%"!"!"!"!  dcdcdcdc`_`_`_`_^]^]^]^]ZYZYZYZYUVUVUVUVSTSTSTSTOPOPOPOPKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCD?@?@?@?@;<;<;<;<8787878765656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%"!"!"!"!     dcdcdcdc`_`_`_`_^]^]^]^]ZYZYZYZYUVUVUVUVSTSTSTSTOPOPOPOPKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCD?@?@?@?@;;;;;;<;8787878765656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%"!"!"!"!     dcdcdcdc`_`_`_`_^]^]^]^]ZYZYZYZYUVUVUVUVSTSTSTSTOPOPOPOPKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCD?@?@?@?@<;<;<;<;8787878765656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%"!"!"!"!     dcdcdcdc`_`_`_`_^]^]^]^]ZYZYZYZYUVUVUVUVSTSTSTSROPOPOPOPKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCD?@?@?@?@<;<;<;<;8787878765656565212121210/0/0/0/,+,+,+,+*)*)*)('&%&%&%&%"!"!"!"!     dcdcdcdc`_`_`_`_^]^]^]^]ZYZYZYZYUVUVUVUVQRQRQRQROPOPOPOPKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCD?@?@?@?@<;<;<;<;8787878765656565212121210/0/0/0/,+,+,+,+('('('('&%&%&%&%"!"!"!"!     dcdcdcdc`_`_`_`_^]^]^]^]ZYZYZYZYUVUVUVUVQRQRQRQROPOPOPOPKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCD?@?@?@?@<;<;<;<;8787878765656565212121210/0/0/0/,+,+,+,+('('('('&%&%&%&%"!"!"!"!     dcdcdcdc`_`_`_`_^]^]^]^]ZYZYZYZYUVUVUVUVQRQRQRQROPOPOPOPKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCD?@?@?@?@<;<;<;<;8787878765656565212121210/0/0/0/,+,+,+,+('('('('&%&%&%&%"!"!"!"!     dcdcdcdc`_`_`_`_^]^]^]^]ZYZYZYZYUVUVUVUVQRQRQRQROPOPOPOPKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCB?@?@?@?@<;<;;;;;8787878765656565212121210/0/0/0/,+,+,+,+('('('('&%&%&%&%"!"!"!"!     dcdcdcdc`_`_`_`_^]^]^]^]ZYZYZYZYUVUVUVUVQRQRQRQROPOPOPOPKLKLKLKLIJIJIJIJEFEFEFEFABABABAB?@?@?@?@;<;<;<;<8787878765656565212121210/0/0/0/,+,+,+,+('('('('&%&%&%&%"!"!"!"!     dcdcdcdc`_`_`_`_^]^]^]^]ZYZYZYZYUVUVUVUVQRQRQRQROPOPOPOPKLKLKLKLIJIJIJIJEFEFEFEFABABABAB?@?@?@?@;<;<;<;<8787878765656565212121210/0/0/.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!     dcdcdcdc`_`_`_`_^]^]^]^]ZYZYZYZYUVUVUVUVQRQRQRQROPOPOPOPKLKLKLKLIJIJIJIJEFEFEFEFABABABAB?@?@?@?@;<;<;<;<878787876565656521212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!     dcdcdcdc`_`_`_`_^]^]^]^]ZYZYZYZYUVUVUVUVQRQRQRQROPOPOPOPKLKLKLKLIJIJIJIJEFEFEFEFABABABAB?@?@?@?@;<;<;<;<878787876565656521212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!     dcdcdcdc`_`_`_`_\[\[\[\[ZYZYZYZYUVUVUVUVQRQRQRQROPOPOPOPKLKLKLKLIJIJIJIJEFEFEFEFABABABAB?@?@?@?@;<;<;<;<878787876565656521212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!     dcdcdcdc`_`_`_`_\[\[\[\[ZYZYXWXWUVUVUVUVQRQRQRQROPOPOPOPKLKLKLKLIJIJIJIHEFEFEFEFABABABAB?@?@?@?@;<;<;<;;878787876565656521212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!     dcdcdcdc`_`_`_`_\[\[\[\[XWXWWWWWUVUVUVUVQRQRQRQROPOPOPOPKLKLKLKLGHGHGHGHEFEFEFEFABABABAB?@?@?@?@;;;;<;<;878787876565656521212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!     dcdcdcdc`_`_`_`_\[\[\[\[WXWXWXWXUVUVUVUVQRQRQRQROPOPOPOPKLKLKLKLGHGHGHGHEFEFEFEFABABABAB?@?@?@?@<;<;<;<;878787876565654321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!     - -dcdcdcdc`_`_`_`_\[\[\[\[WXWXWXWXUVUVUVUVQRQRQRQROPOPOPOPKLKLKLKLGHGHGHGHEFEFEFEFABABABAB?@?@?>=><;<;<;<;878787874343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!     - - - -dcdcdcdc`_`_`_`_\[\[\[\[WXWXWXWXUVUVUVUVQRQRQRQROPOPOPOPKLKLKLKLGHGHGHGHEFEFEFEFABABABAB=>=>=>=><;<;<;<;878787874343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!     - - - -babababa`_`_`_`_\[\[\[\[WXWXWXWXUVUVUVUVQRQRQRQROPOPOPOPKLKLKLKLGHGHGHGHEFEFEFEFABABABAB=>=>=>=><;<;<;<;878787874343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!     - - - -babababa`_`_`_`_\[\[\[\[WXWXWXWXUVUVUVUVQRQRQRQROPOPOPONKLKLKLKLGHGHGHGHEFEFEFEFABABABAB=>=>=>=><;<;<;<;878787874343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%$#"!"!"!"!     - - - -babababa`_`_`_`_\[\[\[\[WXWXWXWWUVUVUVUVQRQRQRQRMNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFABABABAB=>=>=>=><;;;;;<;878787874343434321212121.-.-.-.-,+,+,+,+('('('('$#$#$#$#"!"!"!"!     - - - -babababa`_`_`_`_\[\[\[\[WWWWXWXWUVUVUVUVQRQRQRQRMNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFABABABAB=>=>=>=><;<;<;:9878787874343434321212121.-.-.-.-,+,+,+,+('('('('$#$#$#$#"!        - - - -babababa`_`_`_`_\[\[\[\[XWXWXWXWUVUVUVUVQRQRQRQRMNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFABABABAB=>=>=>=>:9:9:9:9878787874343434321212121.-.-.-.-,+,+,+,+('('('('$#$#$#$#       - - - -babababa`_`_`_`_\[\[\[\[XWXWXWXWUVUVUVUVQRQRQRQRMNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFABABABAB=>=>=>=>:9:9:9:9878787874343434321212121.-.-.-.-,+,+,+,+('('('('$#$#$#$#         - - - -babababa`_`_`_`_\[\[\[\[XWXWXWXWUVUVUVUVQRQRQRQRMNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFABABABAB=>=>=>=>:9:9:9:9878787874343434321212121.-.-.-.-,+,+,+,+('('('('$#$#$#$#         - - - -babababa`_`_`_`_\[\[\[\[XWXWXWXWUVUVUVUTQRQRQRQRMNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFABABABAB=>=>=>=>:9:9:9:9878787874343434321212121.-.-.-.-,+,+,+*)('('('('$#$#$#$#         - - - -babababa`_`_`_`_\[\[\[\[XWXWXWXWSTSTSTSTQRQRQRQRMNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFABABABAB=>=>=>=>:9:9:9:9878787874343434321212121.-.-.-.-*)*)*)*)('('('('$#$#$#$#         - - - -babababa`_`_`_`_\[\[\[\[XWWWWWWXSTSTSTSTQRQRQRQRMNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFABABABAB=>=>=>=>:9:9:9:9878787874343434321212121.-.-.-.-*)*)*)*)('('('('$#$#$#$#         - - - -babababa`_`_`_`_\[\[\[\[WXWXWXWXSTSTSTSTQRQRQRQRMNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFABABABAB=>=>=>=>:9:9:9:9878787874343434321212121.-.-.-.-*)*)*)*)('('('('$#$#$#$#       - - - -babababa`_`_`_`_\[\[\[\[WXWXWXWXSTSTSTSTQRQRQRQRMNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEDABABABAB=>=>=>=>:9:9:9:9878787874343434321212121.-.-.-.-*)*)*)*)('('('('$#$#$#$#        - - - -babababa`_`_`_`_\[\[\[\[WXWXWXWXSTSTSTSTQRQRQRQRMNMNMNMNKLKLKLKLGHGHGHGHCDCDCDCDABABABAB=>=>=>=>:9:9:9:9878787874343434321212121.-.-.-.-*)*)*)*)('('('('$#$#$#$#         - - - -babababa`_`_`_`_\[\[\[\[WXWXWXWXSTSTSTSTQRQRQRQRMNMNMNMNKLKLKLKLGHGHGHGHCDCDCDCDABABABAB=>=>=>=>:9:9:9:987878787434343432121210/.-.-.-.-*)*)*)*)('('('('$#$#$#$#         - - - -babababa`_`_`_`_\[\[\[\[WXWXWXWXSTSTSTSTQRQRQRQRMNMNMNMNKLKLKLKLGHGHGHGHCDCDCDCDABABABAB=>=>=>=>:9:9:9:987878787434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#         - - - -babababa`_`_`_`_\[\[\[\[WXWXWWWWSTSTSTSTQRQRQRQRMNMNMNMNKLKLKLKLGHGHGHGHCDCDCDCDABABABAB=>=>=>=>:9:9:9:987878787434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#         - - - -babababa^]^]^]^]\[\[\[\[WWXWXWXWSTSTSTSTQRQRQRQRMNMNMNMNKLKLKLKLGHGHGHGHCDCDCDCDABABABAB=>=>=>=>:9:9:9:987878787434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#         - - - -babababa^]^]^]^]\[\[\[\[XWXWXWXWSTSTSTSTQRQRQRQRMNMNMNMNKLKLKLKJGHGHGHGHCDCDCDCDABABABAB=>=>=>=>:9:9:9:987878787434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#       - - - -babababa^]^]^]^]\[\[\[\[XWXWXWXWSTSTSTSTQRQRQRQRMNMNMNMNIJIJIJIJGHGHGHGHCDCDCDCDABABABAB=>=>=>=>:9:9:9:987878787434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#         - - - -babababa^]^]^]^]\[\[\[\[XWXWXWXWSTSTSTSTQRQRQRQRMNMNMNMNIJIJIJIJGHGHGHGHCDCDCDCDABABABAB=>=>=>=>:9:9:9:987878765434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#       - - - -babababa^]^]^]^]\[\[\[\[XWXWXWXWSTSTSTSTQRQRQRQRMNMNMNMNIJIJIJIJGHGHGHGHCDCDCDCDABABABAB=>=>=>=>:9:9:9:965656565434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#     - - - -babababa^]^]^]^]\[\[\[\[XWXWXWXWSTSTSTSTQRQRQRQRMNMNMNMNIJIJIJIJGHGHGHGHCDCDCDCDABABABAB=>=>=>=>:9:9:9:965656565434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#     - - - -babababa^]^]^]^]\[\[\[\[WWWWWXWXSTSTSTSTQRQRQRQRMNMNMNMNIJIJIJIJGHGHGHGHCDCDCDCDABABABAB=>=>=>=>:9:9:9:965656565434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#     - - - -babababa^]^]^]^]\[\[\[\[WXWXWXWXSTSTSTSTQRQRQRQPMNMNMNMNIJIJIJIJGHGHGHGHCDCDCDCDABABABAB=>=>=>=>:9:9:9:965656565434343430/0/0/0/.-.-.-.-*)*)*)*)('('('&%$#$#$#$#  - - - -babababa^]^]^]^]\[\[\[ZYWXWXWXWXSTSTSTSTOPOPOPOPMNMNMNMNIJIJIJIJGHGHGHGHCDCDCDCDABABABAB=>=>=>=>:9:9:9:965656565434343430/0/0/0/.-.-.-.-*)*)*)*)&%&%&%&%$#$#$#$#     - - - -babababa^]^]^]^]ZYZYZYZYWXWXWXWXSTSTSTSTOPOPOPOPMNMNMNMNIJIJIJIJGHGHGHGHCDCDCDCDABABABAB=>=>=>=>:9:9:9:965656565434343430/0/0/0/.-.-.-.-*)*)*)*)&%&%&%&%$#$#$#$#     - - - -babababa^]^]^]^]ZYZYZYZYWXWXWXWXSTSTSTSTOPOPOPOPMNMNMNMNIJIJIJIJGHGHGHGHCDCDCDCDABABABAB=>=>=>=>:9:9:9:965656565434343430/0/0/0/.-.-.-.-*)*)*)*)&%&%&%&%$#$#$#$#     - - - -babababa^]^]^]^]ZYZYZYZYWXWXWXWXSTSTSTSTOPOPOPOPMNMNMNMNIJIJIJIJGHGHGHGHCDCDCDCDABABABA@=>=>=>=>:9:9:9:965656565434343430/0/0/0/.-.-.-.-*)*)*)*)&%&%&%&%$#$#$#$#     - - - -babababa^]^]^]^]ZYZYZYZYWXWWWWWXSTSTSTSTOPOPOPOPMNMNMNMNIJIJIJIJGHGHGHGHCDCDCDCD?@?@?@?@=>=>=>=>:9:9:9:965656565434343430/0/0/0/.-.-.-.-*)*)*)*)&%&%&%&%$#$#$#$#     - - - -babababa^]^]^]^]ZYZYZYZYWXWXWXWVSTSTSTSTOPOPOPOPMNMNMNMNIJIJIJIJGHGHGHGHCDCDCDCD?@?@?@?@=>=<;<;<:9:9:9:965656565434343430/0/0/0/.-.-.-,+*)*)*)*)&%&%&%&%$#$#$#$#    - - - -babababa^]^]^]^]ZYZYZYZYUVUVUVUVSTSTSTSTOPOPOPOPMNMNMNMNIJIJIJIJGHGHGHGHCDCDCDCD?@?@?@?@;<;;;;;;:9:9:9:965656565434343430/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#    - - - -babababa^]^]^]^]ZYZYZYZYUVUVUVUVSTSTSTSTOPOPOPOPMNMNMNMNIJIJIJIJGHGHGHGHCDCDCDCD?@?@?@?@<;<;<;<;:9:9:9:965656565434343430/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#     - - - -babababa^]^]^]^]ZYZYZYZYUVUVUVUVSTSTSTSTOPOPOPOPMNMNMNMNIJIJIJIJGHGHGHGHCDCDCDCD?@?@?@?@<;<;<;<;:9:9:9:965656565434343430/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#"!"!     - - - -babababa^]^]^]^]ZYZYZYZYUVUVUVUVSTSTSTSTOPOPOPOPMNMNMNMNIJIJIJIJGHGHGHGFCDCDCDCD?@?@?@?@<;<;<;<;:9:9:9:965656565434343430/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%"!"!"!"!     - - - -babababa^]^]^]^]ZYZYZYZYUVUVUVUVSTSTSTSTOPOPOPOPMNMNMNMNIJIJIJIJEFEFEFEFCDCDCDCD?@?@?@?@<;<;<;<;:9:9:9:965656565434343430/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%"!"!"!"!     - - - -babababa^]^]^]^]ZYZYZYZYUVUVUVUVSTSTSTSTOPOPOPOPMNMNMNMNIJIJIJIJEFEFEFEFCDCDCDCD?@?@?@?@<;<;<;<;:9:9:9:965656565434343210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%"!"!"!"!     - - babababa^]^]^]^]ZYZYZYZYUVUVUVUVSTSTSTSTOPOPOPOPMNMNMNMNIJIJIJIJEFEFEFEFCDCDCDCD?@?@?@?@<;<;<;;;:9:9:9:965656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%"!"!"!"!   babababa^]^]^]^]ZYZYZYZYUVUVUVUVSTSTSTSTOPOPOPOPMNMNMNMNIJIJIJIJEFEFEFEFCDCDCDCD?@?@?@?@;;;<;<;<:9:9:9:965656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%"!"!"!"!   `_`_`_`_^]^]^]^]ZYZYZYZYUVUVUVUVSTSTSTSTOPOPOPOPMNMNMNMNIJIJIJIJEFEFEFEFCDCDCDCD?@?@?@?@;<;<;<;<:9:9:9:965656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%"!"!"!"! iijjkkllaabbccdd@AABBCCDA@@??>>=~~}pqqrrsst01122334 BAA;;::9OONNMMLLiijjkkll))**++,,mmnnooppeeffgghhDEEFFGGH=<<;;::9}||{{zzytuuvvwwx45566778 - - 98877665KKJJIIHHmmnnoopp--..//00qqrrssttiijjkkllHIIJJKKL - - 98877665yxxwwvvuxyyzz{{|899::;;< 54433221GGFFEEDD~~}}qqrrsstt11223344 uuvvwwxxmmnnooppLMMNNOOP 54433221uttssrrq|}}~~<==>>??@100//..-CCBBAA@?||{{zzyyuuvvwwxx55667788 - - yyzz{{||qqrrssyyPQQRRSST100//..-qppoonnm@AABBCCD-,,++**)>=<;;::9xxwwvvuuyyzz{{||99::;;<<}}~~zz{{||}}TUUVVWWX-,,++**)mllkkjjiDEEFFGGH)((''&&%98877665ttssrrqq}}~~==>>??@@~~}}~~XYYZZ[[\)((''&&%ihhggffeHIIJJKKL - - %54433221ppoonnmmAABBCCDD||{{zzyy\]]^^__` %$$##""!eddccbbaLMMNNOOP 100//..-llkkjjiiEEFFGGHHxxwwvvuu`aabbccd !!""##$! a``__^^]PQQRRSST-,,++**)hhggffeeIIJJKKLL - - ttssrrqqdeeffggh$%%&&''(]\\[[ZZYTUUVVWWX)((''&&%ddccbbaaMMNNOOPP ppoonnmmhiijjkkl())**++,YXXWWVVUXYYZZ[[\ %$#"! ``__^^]]QQRRSSTTllkkjjiilmmnnoop,--..//0UTTSSRRQ\]]^^__` - - \\[[ZZYYUUVVWWXXhhggffeepqqrrsst01122334 QPPOONNM`aabbccd !!""##$XXWWVVUUYYZZ[[\\ddccbbaatuuvvwwx45566778 - - MLLKKJJIdeeffggh$%%&&''( TTSSRRQQ]]^^__`` ``__^^]]xyyzz{{|899::;;< IHHGGFFEhiijjkkl())**++, - - PPOONNMMaabbccdd!!""##$$\\[[ZZYY|}}~~<==>>??@EDDCCBBAlmmnnoop,--..//0  LLKKJJIIeeffgghh%%&&''((XXWWVVUU@AABBCCDA@@??>>=~~}pqqrrsst01122334 - - HHGGFFEEiijjkkll))**++,,TTSSRRQQ~~}}||~~}}|DEEFFGGH=<<;;::9}||{{zzytuuvvwwx45566778DDCCBBAAmmnnoopp--..//00PPOONNMM{{zzyyss|{{zzyyxHIIJJKKL - - 98877665yxxwwvvuxyyzz{{|899::;;<@@??>>==~~}}qqrrsstt11223344LLKKJJIIrrqqppoowvutssrrLMMNNOOP 54433221uttssrrq|}}~~<==>>??@%%&<<;;::99||{{zzyyuuvvwwxx55667788HHGGFFEEnnmmllkkqqppoonnPQQRRSST100//..-qppoonnm@AABBCCD&''(())* - - 88776655xxwwvvuuyyzz{{||99::;;<>??@@@@??>>==ffeeddcciihhggffXYYZZ[[\)((''&&%ihhggffeHIIJJKKL.//0011200//..--ppoonnmmAABBCCDD<<;;::99bbaa``__eeddccbb\]]^^__` %$$##""!eddccbbaLMMNNOOP23344556,,++**))llkkjjiiEEFFGGHH88776655^^]]WWVVaa``__^^`aabbccd !!""##$! a``__^^]PQQRRSST6778899:((''&&%%hhggffeeIIJJKKLL44332211UUTTSSRR]]\[ZYXWdeeffggh$%%&&''(]\\[[ZZYTUUVVWWX:;;AABBC $$##""!!ddccbbaaMMNNOOPP00//..--QQPPOONNWVVUUTTShiijjkkl())**++,YXXWWVVUXYYZZ[[\CDDEEFFG!!""##$$ ``__^^]]QQRRSSTT,,++**))MMLLKKJJSRRQQPPOlmmnnoop,--..//0UTTSSRRQ\]]^^__`GHHIIJJK%%&&''((\\[[ZZYYUUVVWWXX((''&&%%IIHHGGFFONNMMLLK~~}pqqrrsst01122334 QPPOONNM`aabbccdKLLMMNNO))**++,,XXWWVVUUYYZZ[[\\$$##""!!EEDDCCBBKJJIIHHG}||{{zzytuuvvwwx45566778 - - MLLKKJJIdeeffgghOPPQQRRS--..//00TTSSRRQQ]]^^__`` AA;;::99GFFEEDDCyxxwwvvuxyyzz{{|899::;;< IHHGGFFEhiijjkklSTTUUVVW11223344 PPOONNMMaabbccdd88776655CBBAA@?>uttssrrq|}}~~<==>>??@EDDCCBBAlmmnnoopW]]^^__`55667788 - - LLKKJJIIeeffgghh44332211=<;;::99qppoonnm@AABBCCDA@@??>>=~~}pqqrrsst`aabbccd99::;;<<HHGGFFEEiijjkkll00//..--88776655mllkkjjiDEEFFGGH=<<;;::9}||{{zzytuuvvwwxdeeffggh==>>??@@DDCCBBAAmmnnoopp ,,++**))44332211ihhggffeHIIJJKKL - - 98877665yxxwwvvuxyyzz{{|hiijjkklAABBCCDD@@??>>==~~}}qqrrsstt - - ((''&&%%00//..--eddccbbaLMMNNOOP 54433221uttssrrq|}}~~lmmnnoopEEFFGGHH<<;;::99||{{zzyyuuvvwwxx - - ,,++**))a``__^^]PQQRRSST100//..-qppoonnmpqqrrssyIIJJKKLL - - 88776655xxwwvvuuyyzz{{|| ((''&&%%]\\[[ZZYTUUVVWWX-,,++**)mllkkjjiyzz{{||}MMNNOOPP 44332211ttssrrqq}}~~$#"! YXXWWVVUXYYZZ[[\)((''&&%ihhggffe}~~QQRRSSTT00//..--ppoonnmmUTTSSRRQ\]]^^__` %$$##""!eddccbbaUUVVWWXX,,++**))llkkjjii QPPOONNM`aabbccd !!""##$! a``__^^]YYZZ[[\\((''&&%%hhggffee - - MLLKKJJIdeeffggh$%%&&''(]\\[[ZZY]]^^__`` $$##""!!ddccbbaa!!""##$$ - - IHHGGFFEhiijjkkl())**++,YXXWWVVUaabbccdd!!""##$$ ``__^^]]%%&&''(( -EDDCCBBAlmmnnoop,--..//0UTTSSRRQeeffgghh%%&&''((\\[[ZZYY))**++,, - A@@??>>=~~}pqqrrsst01122334 QPPOONNMiijjkkll))**++,,XXWWVVUU--..//00=<<;;::9}||{{zzytuuvvwwx45566778 - - MLLKKJJImmnnoopp--..//00TTSSRRQQ11223344 - - 98877665yxxwwvvuxyyzz{{|899::;;< IHHGGFFEqqrrsstt11223344 PPOONNMM55667788%%&& 54433221uttssrrq|}}~~<==>>??@EDDCCBBA~~}}|uuvvwwxx55667788 - - LLKKJJII99::;;<<''(())**100//..-qppoonnm@AABBCCDA@@??>>=|{{zzyysyyzz{{||99::;;<<HHGGFFEE==>>??@@++,,--..-,,++**)mllkkjjiDEEFFGGH=<<;;::9srrqqppo~~}}}}~~==>>??@@DDCCBBAAAABBCCDD//001122)((''&&%ihhggffeHIIJJKKL - - 98877665onnmmllk||{{zzyyAABBCCDD@@??>>==~~}}EEFFGGHH33445566 %$$##""!eddccbbaLMMNNOOP 54433221kjjiihhgxwvutssrEEFFGGHH<<;;::99||{{zzyyIIJJKKLL778899:: !!""##$! a``__^^]PQQRRSST100//..-gffeeddcrqqppoonIIJJKKLL - - 88776655xxwwvvuuMMNNOOPP;;AABBCC$%%&&''(]\\[[ZZYTUUVVWWX-,,++**)cbbaa``_nmmllkkjMMNNOOPP 44332211ttssrrqqQQRRSSTTDDEEFFGG())**++,YXXWWVVUXYYZZ[[\)((''&&%_^^]]WWVjiihhggfQQRRSSTT00//..--ppoonnmmUUVVWWXXHHIIJJKK,--..//0UTTSSRRQ\]]^^__` %$$##""!VUUTTSSRfeeddccbUUVVWWXX,,++**))llkkjjiiYYZZ[[\\LLMMNNOO01122334 QPPOONNM`aabbccd !!""##$! RQQPPOONbaa``__^YYZZ[[\\((''&&%%hhggffee]]^^__``PPQQRRSS45566778 - - MLLKKJJIdeeffggh$%%&&''(NMMLLKKJ^]]\[ZYX]]^^__`` $$##""!!ddccbbaaaabbccddTTUUVVWW899::;;< IHHGGFFEhiijjkkl())**++,JIIHHGGFWWVVUUTTaabbccdd!!""##$$ ``__^^]]eeffgghh]]^^__``<==>>??@EDDCCBBAlmmnnoop,--..//0FEEDDCCBSSRRQQPPeeffgghh%%&&''((\\[[ZZYYXXWWVVUUTTSSRRQQ]]^^__``HHIIJJKK%&&''(()\[[ZZYYXUVVWWXXY,++**))(baa``__^mllkkjjiNNOOPPQQ33221100ssrrqqpp~~>>??@@AA%%&&'' -;::99887{zzyyxxwvwwxxyyz6778899: - - KJJIIHHGuttssrrqPPOONNMMaabbccddLLMMNNOO)**++,,-XWWVVUUTYZZ[[\\](''&&%%$^]]WWVVUihhggffeRRSSTTUU//..--,,oonnmmllBBCCDDEE(())**++ - 76655443wvvuuttsz{{||}}~:;;<<==>GFFEEDDC~~}}||{qppoonnmLLKKJJIIeeffgghhPPQQRRSS-..//001TSSRRQQP]^^__``a !$##""!! UTTSSRRQeddccbbaVVWWXXYY++**))((kkjjiihhFFGGHHII,,--..//3221100/srrqqppo~>??@@AABCBBAA@@?{zzyyssrmllkkjjiHHGGFFEEiijjkkllTTUUVVWW12233445 POONNMMLabbccdde!""##$$% QPPOONNMa``__^^]ZZ[[\\]]''&&%%$$ggffeeddJJKKLLMM00112233/..--,,+onnmmllkBCCDDEEF?>>==<<;rqqppoonihhggffeDDCCBBAAmmnnoopp]]^^__``56677889 - - LKKJJIIHeffgghhi%&&''(()MLLKKJJI]\[ZYXWW^^__``aa !!##""!! ccbbaa``NNOOPPQQ44556677+**))(('kjjiihhgFGGHHIIJ -;::99887nmmllkkjeddccbba@@??>>==~~}}qqrrssttaabbccdd9::;;<<=HGGFFEEDijjkkllm)**++,,-IHHGGFFEVVUUTTSSbbccddee""##$$%%__^^]]\\RRSSTTUU8899::;;'&&%%$$#gffeeddcJKKLLMMN - 76655443jiihhggfa``__^^]<<;;::99||{{zzyyuuvvwwxxeeffgghh=>>??@@ADCCBBAA@mnnooppq-..//001EDDCCBBARRQQPPOOffgghhii&&''(())[[ZZYYXXVVWWXXYYAABBCCDD !!"#""!! cbbaa``_NOOPPQQR3221100/feeddccb]\\[[ZZY88776655xxwwvvuuyyzz{{||iijjkkllABBCCDDE@??>>==<~~}}|qrrssttu12233445 A;;::998NNMMLLKKjjkkllmm**++,,--WWVVUUTTZZ[[\\]]EEFFGGHH"##$$%%&_^^]]\\[RSSTTUUV/..--,,+baa``__^YXXWWVVU44332211ttssrrqq}}~~mmnnooppEFFGGHHI <;;::998|{{zzyyxuvvwwxxy56677889 - - 87766554JJIIHHGGnnooppqq..//0011SSRRQQPP^^__``aaIIJJKKLL&''(())*[ZZYYXXWVWWXXYYZ+**))(('^]]WWVVUUTTSSRRQ00//..--ppoonnmmqqrrssyyIJJKKLLM - - 87766554xwwvvuutyzz{{||}9::;;<<=43322110FFEEDDCC~~}}||rrssttuu22334455 OONNMMLLbbccddeeMMNNOOPP*++,,--.WVVUUTTSZ[[\\]]^'&&%%$$#UTTSSRRQQPPOONNM,,++**))llkkjjiizz{{||}}MNNOOPPQ 43322110tssrrqqp}~~=>>??@@A0//..--,BBAA@?>={{zzyyxxvvwwxxyy66778899 - - KKJJIIHHffgghhiiQQRRSSTT.//00112SRRQQPPO^__``aab !!"#""!! QPPOONNMMLLKKJJI((''&&%%hhggffee~~QRRSSTTU0//..--,poonnmmlABBCCDDE,++**))(<;;::998wwvvuuttzz{{||}}::;;<<==GGFFEEDDjjkkllmmUUVVWW]]23344556 ONNMMLLKbccddeef"##$$%%&MLLKKJJIIHHGGFFE$$##""!!ddccbbaaUVVWWXXY,++**))(lkkjjiihEFFGGHHI (''&&%%87766554ssrrqqpp~~>>??@@AACCBBAA@@nnooppqq^^__``aa6778899: - - KJJIIHHGfgghhiij&''(())*IHHGGFFEEDDCCBBA ``__^^]]YZZ[[\\](''&&%%$hggffeedIJJKKLLM - - 43322110oonnmmllBBCCDDEE??>>==<<~~}}||rrssttuubbccddee:;;<<==>GFFEEDDCjkkllmmn*++,,--.EDDCCBBAA@@??>>=\\[[ZZYY]^^__``a !$##""!! dccbbaa`MNNOOPPQ 0//..--,kkjjiihhFFGGHHII ;;::9988{{zzyyxxvvwwxxyyffgghhii>??@@AABCBBAA@@?nooppqqr.//00112A;;::998=<<;;::9XXWWVVUUabbccdde!""##$$% `__^^]]\QRRSSTTU,++**))(ggffeeddJJKKLLMM - - 77665544wwvvuuttzz{{||}}jjkkllmmBCCDDEEF?>>==<<;~~}}||{rssttuuv23344556 8776655498877665TTSSRRQQeffgghhi%&&''(()\[[ZZYYXUVVWWXXY(''&&%%$ccbbaa``NNOOPPQQ33221100ssrrqqpp~~nnooppqqFGGHHIIJ -;::99887{zzyyxxwvwwxxyyz6778899: - - 4332211054433221 PPOONNMMijjkkllm)**++,,-XWWVVUUTYZZ[[\\] #"! __^^]]\\RRSSTTUU//..--,,oonnmmllrrssyyzzJKKLLMMN - 76655443wvvuuttsz{{||}}~:;;<<==>0//..--,100//..- - - LLKKJJIImnnooppq-..//001TSSRRQQP]^^__``a ! - - [[ZZYYXXVVWWXXYY++**))((kkjjiihh{{||}}~~NOOPPQQR3221100/srrqqppo~>??@@AAB,++**))(-,,++**)HHGGFFEEqrrssttu12233445 POONNMMLabbccdde!""##$$%WWVVUUTTZZ[[\\]]''&&%%$$ggffeeddRSSTTUUV/..--,,+onnmmllkBCCDDEEF(''&&%%)((''&&%DDCCBBAA~~}}||uvvwwxxy56677889 - - LKKJJIIHeffgghhi%&&''(() -SSRRQQPP^^__``aa !!##""!! ccbbaa``VWWXXYYZ+**))(('kjjiihhgFGGHHIIJ -%$$##""!@@??>>=={{zzyyssyzz{{||}9::;;<<=HGGFFEEDijjkkllm)**++,,- - OONNMMLLbbccddee""##$$%%__^^]]\\Z[[\\]]^'&&%%$$#gffeeddcJKKLLMMN - ! <<;;::99rrqqppoo~~}}|}~~=>>??@@ADCCBBAA@mnnooppq-..//001 - -KKJJIIHHffgghhii&&''(())[[ZZYYXX^__``aab !!"#""!! cbbaa``_NOOPPQQR - - 88776655nnmmllkk|{{zzyyxABBCCDDE@??>>==<~~}}|qrrssttu12233445 GGFFEEDDjjkkllmm**++,,--WWVVUUTTbccddeef"##$$%%&_^^]]\\[RSSTTUUV 44332211jjiihhggwvutssrrEFFGGHHI <;;::998|{{zzyyxuvvwwxxy56677889CCBBAA@@nnooppqq..//0011SSRRQQPPfgghhiij&''(())*[ZZYYXXWVWWXXYYZ 00//..--ffeeddccqqppoonnIJJKKLLM - - 87766554xwwvvuutyzz{{||}9::;;<<=??>>==<<~~}}||rrssttuu22334455 OONNMMLLjkkllmmn*++,,--.WVVUUTTSZ[[\\]]^ - - - ,,++**))bbaa``__mmllkkjjMNNOOPPQ 43322110tssrrqqp}~~=>>??@@A%%&&' ;;::9988{{zzyyxxvvwwxxyy66778899 - - KKJJIIHHnooppqqr.//00112SRRQQPPO^__``aab !!" -  - - ((''&&%%^^]]WWVViihhggffQRRSSTTU0//..--,poonnmmlABBCCDDE'(())**+ - - 77665544wwvvuuttzz{{||}}::;;<<==GGFFEEDDrssttuuv23344556 ONNMMLLKbccddeef"##$$%%& - -  $$##""!!UUTTSSRReeddccbbUVVWWXXY,++**))(lkkjjiihEFFGGHHI+,,--../33221100ssrrqqpp~~>>??@@AACCBBAA@@~~}}||{{vwwxxyyz6778899: - - KJJIIHHGfgghhiij&''(())* !!""##$$ QQPPOONNaa``__^^YZZ[[\\](''&&%%$hggffeedIJJKKLLM/0011223//..--,,oonnmmllBBCCDDEE??>>==<GFFEEDDCjkkllmmn*++,,--.%%&&''((MMLLKKJJ]]\[ZYXW]^^__``a !$##""!! dccbbaa`MNNOOPPQ34455667++**))((kkjjiihhFFGGHHII ;;::9988qqppoonn~~}}||{~>??@@AABCBBAA@@?nooppqqr.//00112))**++,,IIHHGGFFWVVUUTTSabbccdde!""##$$% `__^^]]\QRRSSTTU78899::;''&&%%$$ggffeeddJJKKLLMM - - 77665544mmllkkjj{zzyyxwvBCCDDEEF?>>==<<;~~}}||{rssttuuv23344556%%&&'--..//00EEDDCCBBSRRQQPPOeffgghhi%&&''(()\[[ZZYYXUVVWWXXY;AABBCCD !!##""!! ccbbaa``NNOOPPQQ33221100iihhggffutssrrqqFGGHHIIJ -;::99887{zzyyxxwvwwxxyyz6778899:'(())**+ 11223344 AA;;::99ONNMMLLKijjkkllm)**++,,-XWWVVUUTYZZ[[\\]DEEFFGGH""##$$%%__^^]]\\RRSSTTUU//..--,,eeddccbbppoonnmmJKKLLMMN - 76655443wvvuuttsz{{||}}~:;;<<==>+,,--../ !!""##$55667788 - - 88776655KJJIIHHGmnnooppq-..//001TSSRRQQP]^^__``aHIIJJKKL&&''(())[[ZZYYXXVVWWXXYY++**))((aa``__^^llkkjjiiNOOPPQQR3221100/srrqqppo~>??@@AAB/0011223$%%&&''(99::;;<<44332211GFFEEDDC~~}}|qrrssttu12233445 POONNMMLabbccddeLMMNNOOP**++,,--WWVVUUTTZZ[[\\]]''&&%%$$]]WWVVUUhhggffeeRSSTTUUV/..--,,+onnmmllkBCCDDEEF34455667())**++,==>>??@@00//..--CBBAA@?>|{{zzyyxuvvwwxxy56677889 - - LKKJJIIHeffgghhiPQQRRSST..//0011SSRRQQPP^^__``aa !!##""!! TTSSRRQQddccbbaaVWWXXYYZ+**))(('kjjiihhgFGGHHIIJ78899::;,--..//0AABBCCDD,,++**))=<;;::99xwwvvuutyzz{{||}9::;;<<=HGGFFEEDijjkkllmTUUVVWW]22334455 OONNMMLLbbccddee""##$$%%PPOONNMM``__^^]]Z[[\\]]^'&&%%$$#gffeeddcJKKLLMMN;AABBCCD01122334EEFFGGHH((''&&%%88776655tssrrqqp}~~=>>??@@ADCCBBAA@mnnooppq]^^__``a66778899 - - KKJJIIHHffgghhii&&''(())LLKKJJII\[ZYXWWV^__``aab !!"#""!! cbbaa``_NOOPPQQRDEEFFGGH45566778IIJJKKLL - - 44332211poonnmmlABBCCDDE@??>>==<~~}}|qrrssttuabbccdde::;;<<==GGFFEEDDjjkkllmm**++,,--HHGGFFEEVUUTTSSRbccddeef"##$$%%&_^^]]\\[RSSTTUUVHIIJJKKL899::;;>??@@AACCBBAA@@nnooppqq..//0011DDCCBBAARQQPPOONfgghhiij&''(())*[ZZYYXXWVWWXXYYZLMMNNOOP<==>>??@QQRRSSTT,,++**))hggffeedIJJKKLLM - - 87766554xwwvvuutyzz{{||}ijjkkllmBBCCDDEE??>>==<<~~}}||rrssttuu22334455 ;;::9988NMMLLKKJjkkllmmn*++,,--.WVVUUTTSZ[[\\]]^PQQRRSST@AABBCCDUUVVWWXX((''&&%%dccbbaa`MNNOOPPQ 43322110tssrrqqp}~~mnnooppqFFGGHHII ;;::9988{{zzyyxxvvwwxxyy66778899 - - 77665544JIIHHGGFnooppqqr.//00112SRRQQPPO^__``aabTUUVVWW]DEEFFGGHYYZZ[[\\ $#"! `__^^]]\QRRSSTTU0//..--,poonnmmlqrrssyyzJJKKLLMM - - 77665544wwvvuuttzz{{||}}::;;<<==33221100FEEDDCCB~~}}||{rssttuuv23344556 ONNMMLLKbccddeef]^^__``aHIIJJKKL]]^^__`` - - \[[ZZYYXUVVWWXXY,++**))(lkkjjiihz{{||}}~NNOOPPQQ33221100ssrrqqpp~~>>??@@AA//..--,,BAA@?>=<{zzyyxxwvwwxxyyz6778899: - - KJJIIHHGfgghhiijabbccddeLMMNNOOPaabbccdd!!""##$$XWWVVUUTYZZ[[\\](''&&%%$hggffeed~RRSSTTUU//..--,,oonnmmllBBCCDDEE++**))((;;::9988wvvuuttsz{{||}}~:;;<<==>GFFEEDDCjkkllmmneffgghhiPQQRRSSTeeffgghh%%&&''(( TSSRRQQP]^^__``a !$##""!! dccbbaa`VVWWXXYY++**))((kkjjiihhFFGGHHII ''&&%%77665544srrqqppo~>??@@AABCBBAA@@?nooppqqrijjkkllmTUUVVWWXiijjkkll))**++,, - - POONNMMLabbccdde!""##$$% `__^^]]\ZZ[[\\]]''&&%%$$ggffeeddJJKKLLMM - - 33221100onnmmllkBCCDDEEF?>>==<<;~~}}||{rssttuuvmnnooppqXYYZZ[[\mmnnoopp--..//00 -LKKJJIIHeffgghhi%&&''(()\[[ZZYYX^^__``aa !!##""!! ccbbaa``NNOOPPQQ//..--,,kjjiihhgFGGHHIIJ -;::99887{zzyyxxwvwwxxyyzqrrssyyz\]]^^__`qqrrsstt11223344 - HGGFFEEDijjkkllm)**++,,-XWWVVUUTbbccddee""##$$%%__^^]]\\RRSSTTUU++**))((gffeeddcJKKLLMMN - 76655443wvvuuttsz{{||}}~z{{||}}~`aabbccduuvvwwxx55667788DCCBBAA@mnnooppq-..//001TSSRRQQPffgghhii&&''(())[[ZZYYXXVVWWXXYY''&&%%$#cbbaa``_NOOPPQQR3221100/srrqqppo~~deeffgghyyzz{{||99::;;<<@??>>==<~~}}|qrrssttu12233445 POONNMMLjjkkllmm**++,,--WWVVUUTTZZ[[\\]] "! _^^]]\\[RSSTTUUV/..--,,+onnmmllkhiijjkkl}}~~==>>??@@%%&& <;;::998|{{zzyyxuvvwwxxy56677889 - - LKKJJIIHnnooppqq..//0011SSRRQQPP^^__``aa !! - - [ZZYYXXWVWWXXYYZ+**))(('kjjiihhglmmnnoopAABBCCDD''(())** - - 87766554xwwvvuutyzz{{||}9::;;<<=HGGFFEEDrrssttuu22334455 OONNMMLLbbccddee""##$$%%WVVUUTTSZ[[\\]]^'&&%%$$#gffeeddcpqqrrsstEEFFGGHH++,,--.. 43322110tssrrqqp}~~=>>??@@ADCCBBAA@~~}}||{vvwwxxyy66778899 - - KKJJIIHHffgghhii&&''(()) - -SRRQQPPO^__``aab !!"#""!! cbbaa``_tuuvvwwxIIJJKKLL//0011220//..--,poonnmmlABBCCDDE@??>>==<{zzyyssrzz{{||}}::;;<<==GGFFEEDDjjkkllmm**++,,--  ONNMMLLKbccddeef"##$$%%&_^^]]\\[xyyzz{{|MMNNOOPP33445566,++**))(lkkjjiihEFFGGHHI <;;::998rqqppoon~~}}||~~>>??@@AACCBBAA@@nnooppqq..//0011 - - KJJIIHHGfgghhiij&''(())*[ZZYYXXW|}}~~QQRRSSTT778899::(''&&%%$hggffeedIJJKKLLM - - 87766554nmmllkkj{{zzyyxwBBCCDDEE??>>==<<~~}}||rrssttuu22334455 GFFEEDDCjkkllmmn*++,,--.WVVUUTTS~~}UUVVWWXX;;AABBCC !$##""!! dccbbaa`MNNOOPPQ 43322110jiihhggfvutssrrqFFGGHHII ;;::9988{{zzyyxxvvwwxxyy66778899CBBAA@@?nooppqqr.//00112SRRQQPPO}||{{zzyYYZZ[[\\DDEEFFGG!""##$$% `__^^]]\QRRSSTTU0//..--,feeddccbqppoonnmJJKKLLMM - - 77665544wwvvuuttzz{{||}}::;;<<==?>>==<<;~~}}||{rssttuuv23344556 ONNMMLLKyxxwwvvuZHAb|ZdQbXQJ`ےfH~rbtlfpvdrtfH~btlfpvrtAdQZ|HAbےfpvp˂rH~fr˂pے`JXQtlJbHAZf`vXJtAdnXv`AJltf`vXJtArdnXv`drt`JXQrnXv`XQJ`ے`vXnZHAbr˂ptArdp˂rnvp|ZdQf~HbdQZ|nvp|ZdQfHAJlt˂pZf~HbHAZvpfے`JXQZHAb|ZdQbXQJ`ےfH~btlfpvdrtfH~btlfpvbdQZ|HAbfpvp˂rH~fr˂pے`JXQtlJbHAXQf`vXJtArdnXv`AJltf`vXJtArdnrXQJ`drtJQr˂pnXv`XQJ`ے`vXnZHAےr˂ptArdJ`ےnvp|ZdQf~HbdQZ|nvp|ZdQےHAAJltZHAbf~HbHAZvpf`JXQrZHAb|ZdQbbHAZpfH~btlfpvdrtfH~btlZp˂drtAے`JXfpvp˂rH~fbtlے`JXQtlJ˂rXQf`vXJtArdnXv`AJltf`vXJtArdrXQJ`JltQr˂pnXv`XQJ`ے`vXnJtAdr˂ptArdJ`ےnvp|ZdQf~HbdQZ|nvp|ZdQbHAbdQZ|ZHAbf~HbHAZvpf|ZdQbZHAb|ZdQbbHAZpfH~btlfpvdrtfH~btlZp˂drtAے`JXfpvp˂rH~ftlJے`JXQtlJ˂bf`vXJtArdnXv`AJltfZHAbJtArdrXQJ`JltQrZHAnXv`XQJ`ے`vXntArdr˂ptArdHAZdnvp|ZdQf~HbdQZ|ے`JX|ZdQbHAbdQZ|lbے`f~HbHAZvpf|ZdQbZHAbf~HrtAJfH~btlfpvdrtQr˂pbtlZp˂tbJXQrfpvdrtAH~ftlJے`JXQXv`fbdQZ|f`vXJtArdnXv`AJltZHAbJtArdrXQJ`nvp`˂pZHAnXv`Jlt`vXntArdr˂p~HfdrtAnvp|ZdQfHbdQZ|ے`JX|ZdQbHAvXnbے`f~HbdQZ|vpf|ZdQbZHAbpvnJltfH~btlfpvdrtQr˂pbtlZp˂vpfHJXQrfpvdrtAH~ftlJے`JXQXv`fbdQZ|f`vXJtArdnrXQJ`AJltZHAbJtArdrXQJ`ۅ~f`˂pZAnXv`Jlt`vXntArdr˂p~HfdrtAnvp|ZdQےHAbdQZ|ے`JX|ZdQbHAvXn`JXQrf~HbdQZ|vpf|ZdQbZHAbpvJltbfH~btlZp˂drtQr˂pbtlZp˂vpfHbtlfpvdrtAH~ftlJے`JXQ~HfpQZdrf`vXJtArdrXQJ`AJltZHAbJtArdrXQJ`ۅ~JtAdnXv`Jlt`vXntArdr˂pvnXtAJlnvp|ZdQbHAbdQZ|ے`JX|ZdQbHAvpfH|ZdQbf~HbdQZ|vpf|ZdQbZHAbv`ftbdQZfH~btlZp˂drtQr˂pbtlZp˂~f`tlJfpvdrtAH~ftlJے`JXQ~Hfp|drfZHAbJtArdrXQJ`AJltZHAbJtArdrXQJ`vXntArdnXv`Jlt`vXntArdr˂pvnXtAJl璙ے`JX|ZdQbHAbdQZ|ے`JX|ZdQbHAvpfH|ZdQbf~HbdQZ|vpf|ZdQbZHAbv`pvtbdQZQr˂pbtlZp˂drtQr˂pbtlZp˂~f`tlJfpvdrtAH~ftlJے`JXQnXv|rAJlZHAbJtArdrXQJ`AJltZHAbJtArdrXQJ`vXH~tArdnXv`Jlt`vXntArdr˂p`f~tbdے`JX|ZdQbHAbdQZ|ے`JXf~HbHAf`vX|ZdQbf~HbdQZ|vpf|ZdQbZHAbHfpvQZ|dQr˂pbtlZp˂drtQr˂pfpvZp˂nvptlJfpvdrtAH~ftlJے`JXQnXvrtAJlZHAbJtArdrXQJ`AJltZHAbnXv`rXQJ`۝fH~tArdnXv`JltZHAbtArdr˂p`f~tbdے`JX|ZdQbHAbdQZ|ے`JXf~HbHAf`vX|ZdQbf~HbdQZ|ے`JXQ|ZdQbZHAbHXv`QZ|dQr˂pbtlZp˂dtAQr˂pfpvZp˂nvptlJfpvdrtAr˂ptlJے`JXQf~HrtAJZHAbJtArdrXQJ`JltZHAbnXv`rXQJ`۝`vXtArdnXv`JltZHAbtArdr˂pfpvbdQZ|ے`JX|ZdQbHAbnvpے`JXf~HbHAnvp|ZdQbfHfbdQZ|ے`JXQ|ZdQbZHAbnXv`drtAQr˂pbtlZp˂fHQr˂pfpvZp˂fH~tlJpvndrtAr˂ptlJے`JXQf~HJltZHAbJtArdrXQJ`f`vXZHAbnXv`rXQJ`f`vXtArdrXQJ`JltZHAbtArdr˂pfpvbdQZ|ے`JX|ZdQbHAnvpے`JXf~HbHAnvp|ZdQbےHAZbdQZ|ے`JXQ|ZdQb|ZdQb~HfdrtAQr˂pbtlZp˂fH~Qr˂pfpvZp˂fH~tlJp˂rdrtAr˂ptlJtlJpvnJltZHAbJtArdrXQJ`f`vXZHAbnXv`rXQJ`ۅvpfHtArdXQJ`ےJltZHAbtArdtArdXv`fbQZdے`JXf~HbHAnvpے`JXf~HbHA~f`|ZdQbbHAZbdQZ|ے`JXQ|ZdQb|ZdQb~HfrtAJlQr˂pfpvZp˂fH~Qr˂pfpvZp˂vXntlJp˂rdrtAr˂ptlJtlJpvntbdQZHAbnXv`rXQJ`f`vXZHAbnXv`rXQJ`ۅvpfHtArdXQJ`ےJltZHAbtArdtArdXv`pZ|dے`JXf~HbHAnvpے`JXf~HbHA~f`|ZdQbbHAZbdQZ|ے`JXQ|ZdQb|ZdQb˂rXQrtAJlQr˂pfpvZp˂fH~Qr˂pfpvZdrtvXHtlJp˂rdrtAr˂ptlJtlJJ`ےtbdQZHAbnXv`rXQJ`f`vXZHAbnXv`AdQZ|~fZHtArdXQJ`ےJltZHAbtArdtArdbHAZpZ|dnے`JXf~HbHAnvpے`JXf~HdrtAAbJ|ZdQbbHAZbdQZ|ے`JXQf~H|ZdQb˂rXQvfQr˂pfpvZp˂fH~Qr˂pfpvJltQr˂ptlJp˂rdrtAr˂pfpvtlJJ`ےf`vXZHAbnXv`rXQJ`f`vXZHAۅnXv`bdQZ|ZHAbtArdXQJ`ےJltZHAbnXv`tArdbHAXQJnvpے`JXf~HbHAnvp`JXQf~HdrtAے`JXQ|ZdQbbHAZbdQZ|ے`JXQf~H|ZdQb`ےbfH~Qr˂pfpvZp˂fH~rbtlfpvJltdr˂ptlJp˂rdtAJr˂pfpvtlJHAZp˂f`vXZHAbnXv`rXQJ`f`vXJtAdnXv`rtAJlZHAbtArdXQJ`ےltbZHAbnXv`tArdrXQJnvpے`JXf~HbHAnvp|ZdQf~Htbdے`JXQ|ZdQbbHAZnvpے`JXQf~H|ZdQb`ےbfH~Qr˂pfpvZp˂fH~btlfpvQZ|drZHAtlJp˂rfHfr˂pfpvtlJHAZp˂f`vXZHAbnXv`rXQJ`f`vXJtArdnXv`rtAJlbے`tArdXQJ`ے`vXnZHAbnXv`tArdbHAnvpے`JXf~HbHAnvp|ZdQf~HtbdJXQr|ZdQbbHAZvpfے`JXQf~H|ZdQbZp˂fH~Qr˂pfpvZdrtfH~btlfpvQZ|lpZHAtlJp˂rH~fr˂pfpvtlJrXQJ`f`vXZHAbnXv`AJltf`vXJtArdnXv`tbdQbے`tArdXQJ`ے`vXnZHAbnXv`tArdےbHAnvpے`JXf~HbdQZ|nvp|ZdQf~HZ|dJXQrf~HbHAZvpfے`JXQf~H|ZdQbZp˂fH~Qr˂pfpvdrtfH~btlfpvrtAJlpZAbfpvp˂rH~fr˂pfpvtlJrXQJ`f`vXZHAۅnXv`AJltf`vXJtArdnXv`tbdQ`JXQrnXv`XQJ`ے`vXnZHAbnXv`tArdp˂rnvp`JXQf~HbdQZ|nvp|ZdQf~HZ|d˂pZf~HbHAZvpfے`JXQf~HfpvnXv`Jlt`vXnbtlQJ`ےJltZHAbArdQJ`ےvXnZHAbvnXbdQZ|vXnrd|J`ےltbHAbےrd|J`ےvpAd|v`ftbdvXnrd|v`ftbd˂pZHpfH~f~HbdQZ|vpfJtArdbHAZpbdQZ|`JXQf~HbHAZpvpfH`JXQv`pvdrtvpfHZdQbtbHAZpdQZ|`JXQrZdQbtbHAZpfH~ZdQbt~HfpQZ|dvpfHZdQbtHfpQZ|dAbے`f۝`vfpvdrtAH~f|ZdQ˂rXdrtAr˂pfpv˂rX~f`r˂pnXv`AJlt~fZlJtA˂rXQdrtAJ˂pZlJtA˂rXQf`vXlJtAvnXrtAJl~f`lJtAvnrXrtAJlJXQHAXnvˍnXv`Jlt`vXnbtlQJ`ےJltZHAbnXv`QJ`ےvXnZHAbۍf~HbdQZ|HAbےrd|J`ےltbHAbےrd|J`ےnvprd|v`ftbdvXnrd|QJ`ےtbdbے`pfH~f~HbdQZ|vpf|ZdQbbHAZpbdQZ|`JXQf~HbHAZpvpfH`JXQfpvrAJl`JXQrZdQbtbHAZpdQZ|`JXQrZdQbtbHAZpfH~ZdQbt~HfpQZ|dvpfHZdQbtHAZpQZ|dJXQrːf۝`vfpvdrtAH~ftlJ˂rXdtAJlr˂pfpv˂rX~f`r˂pnXv`tbdQ˂pZlJtA˂rXQdrtAJ˂pZlJtA˂rXQf`vXlJtAvnXrtAJl~f`lJtArXQrtAJlpZHAXnvˍnXv`Jlt`vXntArdQJ`ےtbZHAbnXv`QJ`ےvXnZHAbۍf~HZ|dHAbےrd|J`ےltbHAbےrdfJ`ےH~frd|v`ftbdvXnrd|J`ےtbdbے`pfH~f~HbdQZ|vpf|ZdQbbHAZpnvp`JXQf~HbHAZpvpfH`JXQXv`rtAJl`JXQrZdQbtbHAZpdQZ|`JXQr~HfbHAZp`vXnZdQbt~HfpQZ|dvpfHZdQbtbHAZpQZ|dJXQrːf۝`vfpvdrtAH~ftlJ˂rXfHf`r˂pfpv˂rX~f`r˂pf~HtbdQ˂pZlJtA˂rXQdrtAJ˂pZpvn˂rXQvpflJtAvnXrtAJl~fZHlJtArXQrtAJlp`JXXnvˍnXv`Jlt`vXntArdtQJ`ےvXnZHAbnXv`QJ`ےvXnZHAے`fpvZ|dHAbےrd|J`ےltbHAbےXv`fJ`ےH~frd|v`ftbdAbے`rd|J`ےtbdQr˂ppfH~f~HbdQZ|vpflJtAbHAZpvpfH`JXQf~HbHAZpvpfHJXQrnXv`rtAJ`JXQrZdQbtbHAZpdQZ|`JXQr~HfbHAZp`vXnZdQbt~HfpQZ|dJXQrZdQbtbHAZpQZ|dZHAbf۝`vfpvdrtAH~frd|˂rX~f`r˂pfpv˂rX~f`btlf~HbdQZ|˂pZlJtA˂rXQdtAJl˂pZpvn˂rXQvp`lJtAvnXrtAJl˂pZHlJtArXQrtAJlے`JXXnvˍnXv`Jlt`vXnZdQbtQJ`ےvXnZHAbnXv`QJ`ےvXnJtAd|fpvdrtAHAbےrd|J`ےtbnHAbےXv`fJ`ےvXnrd|v`ftbdAbے`rd|J`ےtbdQr˂ppfH~f~HbdQZ|vpflJtAbHAZpvpfH`JXQf~HbHAZpvpfHZdQbt~HfpJlt`JXQrZdQbtbHAZpvpf`JXQr~HfbHAZpvpfHZdQbtHfpQZ|dJXQrZdQbtbHAZpQZ|dZHAbf۝`vfpvdrtAH~frd|˂rX~f`r˂pfpv˂rX~f`lJtvnXbdQZ|˂pZlJtA˂rXQHf`˂pZpvn˂rXQ~f`lJtAvnrXrtAJl˂pZHlJtArXQrtAJl˂pXnvˍnXv`JltZHAbZdQtArQJ`ےvXnZHAbnXv`QJ`ےvXnArd|v`fdrtAHAbےrd|J`ےvXnHAbےXv`fJ`ےvXnrd|QJ`ےtbdAbے`rd|J`ےtbdZHAbpfH~f~HbdQZ|˂pZdfbHAZpvpfH`JXQf~HbHAZvpfHZdQbt~HfpJltb`JXQrZdQbtbHAZpvpfH`JXQr~HfbHAZpvpfHZdQbtHAZpQZ|dJXQrZdQbtbHAZpQZ|d`JXQf۝`vfpvdrtAHAbے~Hfv˂rX~f`r˂pfpvdrtA~f`lJtvnXQZdr˂pZlJtA˂rXQ~f`˂pZpvn˂rXQ~vlJtArXQrtAJl˂pZHlJtArXQtAJlr˂pXnvˍnXv`Jlt`JXQrnXv`QJ`ےvXnZHAbnXv`JltvXnArd|v`ptAJlHAbےrdfJ`ےvXnHAbےXv`fJ`ےpfH~rd|J`ےtbdAbے`rd|J`ےtbnZHAbpfH~fHfbdQZ|˂pZf~HbHAZpvpfH`JXQf~HbdQZ|vpfHZdQbtvnrXtbdQZ`JXQr~HfbHAZpvpfH`JXQr~HfbHAZpf`vZdQbtbHAZpQZ|dJXQrZdQbtbHAZp˅vpfH`JXQHf۝`vpvndrtAHAbےfpv˂rX~f`r˂pfpvdrtA~f`lJtQJ`p|dr˂pZpvn˂rXQ~f`˂pZpvn˂rXQXnvlJtArXQrtAJl˂pZHlJtArXQf`Abے`XnvˍrXQJ`Jlt`JXQHAnXv`QJ`ےvXnZHAے`nXv`JltvXnArd|rXQtAJlHAbےXv`fJ`ےvXnHAbےXv`fJ`ےpfH~rd|J`ےtbdAbے`rd|J`ےvXnہJXQrpfH~ےHAZbdQZ|bے`f~HbHAZpvpfHJXQrf~HbdQZ|vpfHZdQbtJ`ےtbdQZ`JXQr~HfbHAZpvpfH`JXQr~HfbHAZf`vZdQbtbHAZpQZ|dJXQrZdQbtbHAZpvpfH˂pZHf۝`vp˂rdrtAJXQrfpvn˂rX~f`btlfpvdrtA~f`lJtbHAZp|AJl˂pZpvn˂rXQ~f`˂pZpvndrtAdQXH~lJtArXQrtAJl˂pZHlJtArXQ~f`Abے`XnvˍXQJ`ےJlt˂pZHAvf~QJ`ےvXnJtAd|nXv`JltvXnArd|rXQtbnHAbےXv`fJ`ےvXnHAbےXv`fZ|dfZHAbrd|J`ےtbdAbے`rdfJ`ےvXnہJXQrpfH~ㅐbHAZbdQZ|bے`HfpvbHAZpvpfHZdQbtf~HbdQZ|vpfHZdQbtJ`ے々vpf`JXQr~HfbHAZpvpfH`JXQr~HfrtAJlJQrZdQbtbHAZpQZ|dJXQr~HfpbHAZpvpfH˂p`Zf۝`vp˂rdrtAJXQrnXv˂rX~f`lJtfpvdrtA~f`lJtbHAXQJ`Hf`˂pZpvn˂rXQ~f`˂pZpvntbdQ˂pZHlJtArXQrtAJl˂pZHvnXrXQ~f`QXb㉀XnvˍXQJ`ےJlt˂p`J`f~QJ`ےvXnArd|nXv`JltvXnArd|ےbHvXnHAbےXv`fJ`ےvXnHAے`Xv`fZ|dAbے`rd|J`ےtbdAbے`v`fJ`ےvXnۑpJAHrp|drbHAZbdQZ|XQr˂HfpvbHAZvpfHZdQbtf~HbdQZ|vpfHZdQbtAZp˂vpfH`JXQr~HfbHAZpvpfHJXQrb~HfrtAJlJXQrZdQbtbHAZpQZ|dJXQr~HfpbHAZpvpfH󙐂ˁ`ZQtJlp˂rdrtApZHAbnXvdrtA~f`lJtfpvdrtA~f`lJtrXQJ`~f`˂pZpvn˂rXQ~f`tlJpvntdr˂pZHlJtArXQtAJl˂pZHvnXrXQ~f`QXb㉀tbAdZXQJ`ےJltے`J`f~fpJltvXnArd|nXv`JltvXnArd|ےbHvXnHAbےXv`fJ`ےvXntAd|Xv`ftAJlAbے`rd|J`ےtbnAbے`v`fJ`ےvXnۑpJAHr|drbHAZbdQZ|XQr˂vnXbdQZ|vpfHZdQbtf~HbdQZ|vpfHZdQbtAZp˂vpfH`JXQr~HfbHAZpvpfHZdQbt~HftbdQZJXQrZdQbtbHAZp˅vpfHJXQr~HfpbHAZpvpfH󙐉ۑQtJlp˂rdrtApZHAbv`fdrtA~f`lJtfpvdrtA~flJtbHA~f`˂pZpvn˂rXQ~f`lJtApvn|drZHAblJtArXQf`˂pZHvnXrXQ~f`pJAHrtbAdZXQJ`ےJlt˂p~HfpJltvXnArd|nXv`JltZHAbArd|Zp˂vXnHAbےXv`fJ`ےvXnrd|Xv`ftAJlے`JXQrd|J`ےvXnAbے`v`fJ`ےvXnېˁ`ZQ|drbHAZbdQZ|ZHAbvnXbdQZ|vpfHZdQbtf~HbdQZ|`JXQZdQbtrXQJ`vpfH`JXQr~HfbHAZvpfHZdQbt~HftbdQZr˂pZdQbtbHAZpvpfHJXQr~HfpbHAZpvpfHXb㉀ۑQtJlp˂rdtAJے`JXQv`fdrtA~f`lJtfpvdrtAr˂plJtbHA~f`˂pZpvndrtAJ~f`lJtApvn|ltZHAblJtArXQ~f`˂pZHvnXrXQ~f`pJAHrtbAdZXQJ`ےltbr˂p~HfvJltvXnArd|nXv`JltZHAbArd|Zp˂vXnHAbےXv`fltbvXnrd|Xv`fbdQZ|ے`JXQrdfJ`ےvXnAbے`v`fJ`ےvXnېˁ`ZQ|drbHAZnvpZHAbnXv`bdQZ|vpfHZdQbtfHfpbdQZ|`JXQZdQbtrXQJ`pvpfH`JXQr~HfdQZ|vpfHZdQbt~HfdrtAr˂p~HfpbHAZpvpfHJXQr~HfpbHAZpvpfHXAHr󙐂QtJlp˂rfHfے`JXQf~HdrtA~f`lJtvndrtAr˂plJt˂rX~f`˂pZpvndrtAJ~f`lJtApvnJltZAb`vnXrXQ~f`˂pZHvnXrXQ~f`ˁ`ZQXbtbAdZXQJ`ے`vXnHAbےfpvJltvXnArd|rXQJ`JltZHAbArd|QJ`ےvXnHAے`Xv`fltbvXnrd|Xv`fbdQZ|JXQr˕v`fJ`ےvXnAbے`v`fJ`ےvXn㉀ۑpJ|drbHAZvpf`JXQrnXv`bdQZ|vpfHZdQbtHAZpbdQZ|`JXQZdQbtbHAZpvpfHJXQrb~HfdQZ|vpfHZdQbt~HfdrtApZHA~HfpbHAZpvpfHJXQr~HfpbHAZdvpfHAHr󙐂QtJlp˂rH~f˂pZf~HdrtA~f`lJt˂rXdrtAr˂plJt˂rX~f`tlJpvndrtAJ~f`lJtApvndQZ|bے`vnXrXQ~f`˂pZHvnXrtAJl~f`ˁ`ZQXbtbAdZXQJ`ے`vXnHAbےfpvJltvXnArd|QJ`ےJltZHAbArd|QJ`ےvXntAd|Xv`fltbvXnrd|Xv`fdrtAJJXQr˕v`fJ`ےvXnAbے`v`ftbdvXn㉀ۑp|drbHAZvpf`JXQrnvfbdQZ|vpfHZdQbtbHAZpbdQZ|`JXQZdQbtbHAXQvpfHZdQbt~HfdQZ|vpfHZdQbtHfpltbpZHA~HfpbHAZpvpfHJXQr~HfpQZ|dvpfH`ZQXbQtJlp˂rH~f˂p`~HfpۂdrtA~flJt˂rXdrtAr˂plJtJ`ے~f`lJtApvndrtAJ~f`lJtAvnrdQZ|bJQrvnXrXQ~f`˂pZHvnXrtAJl~f`ۑpJAtbAdZXQJ`ے`vXnJXQrbvnXJltZHAbArd|QJ`ےJltZHAbArd|bHAZpvXnrd|Xv`fltbvXnrd|XQJ`ےdrtAJ˂pZv`fJ`ےvXnAے`v`ftbdvXnHr󙐂ˁ|drbHAZvpftl|v`fbdQZ|`JXQZdQbtbHAZpbdQZ|`JXQZdQbtrXQvpfHZdQbt~HfdQZ|vpfHZdQbtHAZpltdHAbے~HfpbHAZpvpfHJXQrbt~HfpQZ|dvpfH`ZQXbQtJlp˂rH~fZdQbt~HfpۂdrtAr˂plJt˂rXdrtAr˂plJtJ`ے~f`lJtApvndrtAJ~f`lJtA˂rXQrtAJl`JXQrvnXrXQ~f`lJtvnXrtAJl~f`ۑpJAtbAdZXQJ`ے`vXnlJtAvnXJltZHAbArd|QJ`ےJltZHAbArdbHAZpvXnrd|Xv`fltbvXnrd|J`ےtbdQ˂pZv`fJ`ےvXnAd|v`ftbdvXnHr󙐉|drbHAZvpfrd|v`ffpbdQZ|`JXQZdQbtbHAZpbdQZ|`JXQf~HXbHvpfHZdQbt~HfdQZ|vpfHZdQbtbHAZpZ|dHAbے~HfpbHAZpvpfHZdQbt~HfpQZ|dvpfHۑpJAHrQtJlp˂rH~fZdQbtvndrtAr˂plJt˂rXdrtAr˂pv`fAZd~f`lJtApvndrtAJ~fZlJtA˂rXQrtAJl`JXQrvnXrXQ~f`lJtAvnXrtAJl~f`󙐂ˁ`ZtbAdZXQJ`ے`vXnlJtArXQJ`JltZHAbArd|QJ`ےJltZHAbە~HfprtAJbvXnrd|Xv`fltbHAbےrd|J`ےtbdQZHAbv`fJ`ےvXnrd|v`ftbdvXnQXb㉀|drbHAZvpfrdt璒HAZpbdQZ|`JXQZdQbtbHAZpbdQZ|`JXQvnXdQZ|vpfHZdQbt~HfdQZ|`JXQrZdQbtbHAZpZ|l璙ے`JX~HfpbHAZdvpfHZdQbt~HfpQZ|dvpfHۑpJAHrQtJlp˂rH~flJtAr˂rXdrtAr˂plJt˂rXdtAJlr˂pv`fdrtAJ~f`lJtApvndrtAJ˂pZlJtA˂rXQtbnQr˂pvnXrtAJl~f`lJtAvnXrtAJl~f`󙐂ˁ`tbAdZXQJ`ے`vXnd|ZQJ`ےJltZHAbArd|QJ`ےtbZHAbە~HfpltbvXnrd|Xv`fltbHAbےrd|J`ےvp`vZHAbv`ftbdvXnrd|v`ftbdvXnpfH~|drbHAZvpfdQbt璙bHAZpbdQZ|`JXQZdQbtbHAZpnvp`JXQvdQZ|vpfHZdQbtHfpdQZ|`JXQrZdQbtbHAZpXnvے`JX~HfpQZ|dvpfHZdQbt~HfpQZ|dvpfHf۝`vQtJlp˂rH~flJtAr˂rXdrtAr˂plJt˂rXfHf`r˂p~HfpdrtAJ~f`lJtAvnrdrtAJ˂pZlJtA˂rXQpfH~Qr˂pvnXrtAJl~f`lJtAvnXrtAJl~frXnvˍtbAdZXQJ`ے`vXnd|ZQJ`ےJltZHAbArd|QJ`ےvXnZHAbvnXltbQvXnrd|XQJ`ےltbHAbےrd|J`ےf`vZA`v`ftbdvXnrd|v`ftbd˂pZHpfH~|drbHAZvpfdQtArdbHAZpbdQZ|`JXQZdQbtbHAZpvpfH`JXQv`fZdrtvpfHZdQbtHAZpdQZ|`JXQrZdQbtbHAZpXnvJXQrbt~HfpQZ|dvpfHZdQbt~HfpQZ|dAbے`f۝`vQtJldrtAH~f|ZdQ˂rXdrtAr˂plJt˂rX~f`r˂p~HfpAJlt~f`lJtA˂rXQdrtAJ˂pZlJtA˂rXQpfH~lJtvnXrtAJl~f`lJtAvnXrtAJlJXQrXnvˍtbAdZ|.........................................................../ \ No newline at end of file diff --git a/vendor/endroid/qr-code/assets/data/qrv34_3.dat b/vendor/endroid/qr-code/assets/data/qrv34_3.dat deleted file mode 100755 index a9e264c6a..000000000 --- a/vendor/endroid/qr-code/assets/data/qrv34_3.dat +++ /dev/null @@ -1,305 +0,0 @@ -{|{|{|{|yzyzyzyzwxwxwxwvtststsssrqrqrqrqnmnmnmnmlklklklkjijijijifefefefedcdcdcdc`_`_`_`_^]^]^]^]\[\[\[\[WXWXWXWX{|{|{|{|yzyzyzyzuvuvuvuvssstststrqrqrqrqnmnmnmnmlklklklkhghghghgfefefefedcdcdcdc`_`_`_`_^]^]^]^]\[\[\[\[WXWXWXWX{|{|{|{|yzyzyzyzuvuvuvuvststststpopopoponmnmnmnmlklklklkhghghghgfefefefedcdcdcdc`_`_`_`_^]^]^]^]\[\[\[\[WXWXWXWX{|{|{|{|yzyzyzyzuvuvuvuvststststpopopoponmnmnmnmlklklklkhghghghgfefefefedcdcdcdc`_`_`_`_^]^]^]^]\[\[\[\[WXWXWXWX{|{|{|{|yzyzyzyzuvuvuvuvststststpopopoponmnmnmnmlklklklkhghghghgfefefefedcdcdcdc`_`_`_`_^]^]^]^]\[\[\[ZYWXWXWWWW{|{|{|{|yzyzyzyzuvuvuvuvststststpopopoponmnmnmnmlklklklkhghghghgfefefefedcdcdcdc`_`_`_`_^]^]^]^]ZYZYZYZYWWXWXWXW{|{|{|{|yzyzyzyzuvuvuvuvststststpopopoponmnmnmnmlklklklkhghghghgfefefefedcdcdcdc`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXW{|{|{|{|yzyzyzyzuvuvuvuvsssssstspopopoponmnmnmnmlklklklkhghghghgfefefefedcdcdcdc`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXW{|{|{|{|yzyzyzyzuvuvuvuvtstststspopopoponmnmnmnmlklklklkhghghghgfefefefedcdcdcdc`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXW~}~}~}~{|{|{|{|yzyzyzyzuvuvuvuvtstststspopopoponmnmnmnmlklklklkhghghghgfefefefedcdcdcdc`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXW}~}~}~}~{|{|{|{|yzyzyzyzuvuvuvuvtstststspopopoponmnmnmnmlklklklkhghghghgfefefefedcdcdcdc`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXW}~}~}~}~{|{|{|{|yzyzyzyzuvuvuvuvtstststspopopoponmnmnmnmlklklklkhghghghgfefefefedcdcdcdc`_`_`_`_^]^]^]^]ZYZYZYZYWWWWWXWX}~}~}~}~{|{|{|{|yzyzyzyzuvuvuvuvtstststspopopoponmnmnmnmlklklklkhghghghgfefefefedcdcdcdc`_`_`_`_^]^]^]^]ZYZYZYZYWXWXWXWX}~}~}~}~{|{|{|{|yzyzyzyzuvuvuvuvtstssssspopopoponmnmnmnmlklklklkhghghghgfefefefebabababa`_`_`_`_^]^]^]^]ZYZYZYZYWXWXWXWX}~}~}~}~{|{|{|{|yzyzyzyzuvuvuvuvtstststspopopoponmnmnmnmjijijijihghghghgfefefefebabababa`_`_`_`_^]^]^]^]ZYZYZYZYWXWXWXWX}~}~}~}~{|{|{|{|yzyzyzyzuvuvuvuvrqrqrqrqpopopoponmnmnmnmjijijijihghghghgfefefefebabababa`_`_`_`_^]^]^]^]ZYZYZYZYWXWXWXWX}~}~}~}~{|{|{|{|yzyzyzyzuvuvuvuvrqrqrqrqpopopoponmnmnmnmjijijijihghghghgfefefefebabababa`_`_`_`_^]^]^]^]ZYZYZYZYWXWXWXWX}~}~}~}~{|{|{|{|yzyzyzyzuvuvuvuvrqrqrqrqpopopoponmnmnmnmjijijijihghghghgfefefefebabababa`_`_`_`_^]^]^]^]ZYZYZYZYWXWWWWWX}~}~}~}~{|{|{|{|yzyzyzyzuvuvuvuvrqrqrqrqpopopoponmnmnmnmjijijijihghghghgfefefefebabababa`_`_`_`_^]^]^]^]ZYZYZYZYWXWXWXWV}~}~}~}~{|{|{|{|yzyzyzyzuvuvuvuvrqrqrqrqpopopoponmnmnmnmjijijijihghghghgfefefefebabababa`_`_`_`_^]^]^]^]ZYZYZYZYUVUVUVUV}~}~}~}~{|{|{|{|yzyzyzyzuvuvuvuvrqrqrqrqpopopoponmnmnmnmjijijijihghghghgfefefefebabababa`_`_`_`_^]^]^]^]ZYZYZYZYUVUVUVUV}~}~}~}~{|{|{|{|yxwxwxwxuvuvuvuvrqrqrqrqpopopoponmnmnmnmjijijijihghghghgfefefefebabababa`_`_`_`_^]^]^]^]ZYZYZYZYUVUVUVUV}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvrqrqrqrqpopopoponmnmnmnmjijijijihghghghgfefefefebabababa`_`_`_`_^]^]^]^]ZYZYZYZYUVUVUVUV}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvrqrqrqrqpopopoponmnmnmnmjijijijihghghghgfefefefebabababa`_`_`_`_^]^]^]^]ZYZYZYZYUVUVUVUV}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvrqrqrqrqpopopoponmnmnmnmjijijijihghghghgfefefefebabababa`_`_`_`_^]^]^]^]ZYZYZYZYUVUVUVUV}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvrqrqrqrqpopopoponmnmnmnmjijijijihghghghgfefefefebabababa`_`_`_`_\[\[\[\[ZYZYZYZYUVUVUVUV}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvrqrqrqrqpopopoponmnmnmnmjijijijihghghghgdcdcdcdcbabababa`_`_`_`_\[\[\[\[ZYZYZYZYUVUVUVUV}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvrqrqrqrqpopopopolklklklkjijijijihghghghgdcdcdcdcbabababa`_`_`_`_\[\[\[\[ZYZYZYZYUVUVUVUV}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvrqrqrqrqpopopopolklklklkjijijijihghghghgdcdcdcdcbabababa`_`_`_`_\[\[\[\[ZYZYZYZYUVUVUVUV}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvrqrqrqrqpopopopolklklklkjijijijihghghghgdcdcdcdcbabababa`_`_`_`_\[\[\[\[ZYZYZYZYUVUVUVUV}~}~}~}~{|{|{|{|wxwxwxwxuvuvuvuvrqrqrqrqpopopopolklklklkjijijijihghghghgdcdcdcdcbabababa`_`_`_`_\[\[\[\[ZYZYZYZYUVUVUVUV}~}~}~}~{|{|{|{|wxwxwxwxuvuvutstrqrqrqrqpopopopolklklklkjijijijihghghghgdcdcdcdcbabababa`_`_`_`_\[\[\[\[ZYZYZYZYUVUVUVUV}~}~}~}~{|{|{|{|wxwxwxwxststssssrqrqrqrqpopopopolklklklkjijijijihghghghgdcdcdcdcbabababa`_`_`_`_\[\[\[\[ZYZYZYZYUVUVUVUV}~}~}~}~{|{|{|{|wxwxwxwxsstststsrqrqrqrqpopopopolklklklkjijijijihghghghgdcdcdcdcbabababa`_`_`_`_\[\[\[\[ZYZYZYZYUVUVUVUV}~}~}~}~{zyzyzyzwxwxwxwxtstststsrqrqrqrqpopopopolklklklkjijijijihghghghgdcdcdcdcbabababa`_`_`_`_\[\[\[\[ZYZYZYZYUVUVUVUV}~}~}~}~yzyzyzyzwxwxwxwxtstststsrqrqrqrqpopopopolklklklkjijijijihghghghgdcdcdcdcbabababa`_`_`_`_\[\[\[\[ZYZYXWXWUVUVUVUV}~}~}~}~yzyzyzyzwxwxwxwxtstststsrqrqrqrqpopopopolklklklkjijijijihghghghgdcdcdcdcbabababa`_`_`_`_\[\[\[\[XWXWWWWWUVUVUVUV}~}~}~}~yzyzyzyzwxwxwxwxtstststsrqrqrqrqpopopopolklklklkjijijijihghghghgdcdcdcdcbabababa`_`_`_`_\[\[\[\[WXWXWXWXUVUVUVUV}~}~}~}~yzyzyzyzwxwxwxwxtstststsrqrqrqrqpopopopolklklklkjijijijihghghghgdcdcdcdcbabababa^]^]^]^]\[\[\[\[WXWXWXWXUVUVUVUV}~}~}~}~yzyzyzyzwxwxwxwxssssststrqrqrqrqpopopopolklklklkjijijijifefefefedcdcdcdcbabababa^]^]^]^]\[\[\[\[WXWXWXWXUVUVUVUV}~}~}~}~yzyzyzyzwxwxwxwxststststrqrqrqrqnmnmnmnmlklklklkjijijijifefefefedcdcdcdcbabababa^]^]^]^]\[\[\[\[WXWXWXWXUVUVUVUV}~}~}~}~yzyzyzyzwxwxwxwxststststrqrqrqrqnmnmnmnmlklklklkjijijijifefefefedcdcdcdcbabababa^]^]^]^]\[\[\[\[WXWXWXWXUVUVUVUV}~}~}~}~yzyzyzyzwxwxwxwxststststrqrqrqrqnmnmnmnmlklklklkjijijijifefefefedcdcdcdcbabababa^]^]^]^]\[\[\[\[WXWXWXWWUVUVUVUV}~}~}~}~yzyzyzyzwxwxwxwxststststrqrqrqrqnmnmnmnmlklklklkjijijijifefefefedcdcdcdcbabababa^]^]^]^]\[\[\[\[WWWWXWXWUVUVUVUV}~}~}~}~yzyzyzyzwxwxwxwxststststrqrqrqrqnmnmnmnmlklklklkjijijijifefefefedcdcdcdcbabababa^]^]^]^]\[\[\[\[XWXWXWXWUVUVUVUVUVUVUVUV}~}~}~}~yzyzyzyzwxwxwxwxstssssssrqrqrqrqnmnmnmnmlklklklkjijijijifefefefedcdcdcdcbabababa^]^]^]^]\[\[\[\[XWXWXWXWUVUVUVUVUVUVUVUV}~}~}~}~yzyzyzyzwxwxwxwxtstststsrqrqrqrqnmnmnmnmlklklklkjijijijifefefefedcdcdcdcbabababa^]^]^]^]\[\[\[\[XWXWXWXWUVUVUVUVUVUVUVUV}|{|{|{|yzyzyzyzwxwxwxwxtstststsrqrqrqrqnmnmnmnmlklklklkjijijijifefefefedcdcdcdcbabababa^]^]^]^]\[\[\[\[XWXWXWXWUVUVUVUVUVUVUVUV{|{|{|{|yzyzyzyzwxwxwxwxtstststsrqrqrqrqnmnmnmnmlklklklkjijijijifefefefedcdcdcdcbabababa^]^]^]^]\[\[\[\[XWXWXWXWUVUVUVUVUVUVUVUV{|{|{|{|yzyzyzyzwxwxwxwxtstststsrqrqrqrqnmnmnmnmlklklklkjijijijifefefefedcdcdcdcbabababa^]^]^]^]\[\[\[\[XWWWWWWXUVUVUVUVUVUVUVUT{|{|{|{|yzyzyzyzwxwxwxwxtstststsrqrqrqrqnmnmnmnmlklklklkjijijijifefefefedcdcdcdcbabababa^]^]^]^]\[\[\[\[WXWXWXWXUVUVUVUVSTSTSTSTSTSTSTSTQRQRQRQROPOPOPOPKLKLKLKLIJIJIJIJGHGHGHGHCDCDCDCDABABABAB?@?@?@?@<;<;<;<;:9:9:9:9656565654343434321212121.-.-.-.-,+,+,+,+*)*)*)('&%&%&%&%$#$#$#$#         - - - -STSTSTSTQRQRQRQROPOPOPOPKLKLKLKLIJIJIJIJGHGHGHGHCDCDCDCDABABABAB?@?@?>=><;<;;;;;:9:9:9:965656565434343432121210/.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#         - - - -STSTSTSTQRQRQRQROPOPOPOPKLKLKLKLIJIJIJIJGHGHGHGHCDCDCDCDABABABAB=>=>=>=>;<;<;<;<:9:9:98765656565434343430/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#         - - - -STSTSTSTQRQRQRQROPOPOPOPKLKLKLKLIJIJIJIJGHGHGHGHCDCDCDCDABABABAB=>=>=>=>;<;<;<;<8787878765656565434343430/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#         - - - -STSTSTSTQRQRQRQROPOPOPOPKLKLKLKLIJIJIJIJGHGHGHGHCDCDCDCDABABABAB=>=>=>=>;<;<;<;<8787878765656565434343430/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#       - - - -STSTSTSTQRQRQRQROPOPOPOPKLKLKLKLIJIJIJIJGHGHGHGHCDCDCDCDABABABAB=>=>=>=>;<;<;<;<8787878765656565434343430/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#"!"!  - - - -STSTSTSTQRQRQRQROPOPOPOPKLKLKLKLIJIJIJIJGHGHGHGHCDCDCDCDABABABAB=>=>=>=>;<;<;<;<8787878765656565434343430/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!     - - - -STSTSTSTQRQRQRQROPOPOPOPKLKLKLKLIJIJIJIJGHGHGHGHCDCDCDCDABABABAB=>=>=>=>;<;<;<;;8787878765656565434343430/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!     - - - -STSTSTSTQRQRQRQROPOPOPOPKLKLKLKLIJIJIJIJGHGHGHGHCDCDCDCDABABABAB=>=>=>=>;;;;<;<;8787878765656565434343430/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!     - - - -STSTSTSTQRQRQRQROPOPOPOPKLKLKLKLIJIJIJIJGHGHGHGFCDCDCDCDABABABAB=>=>=>=><;<;<;<;8787878765656565434343430/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!     - - - -STSTSTSTQRQRQRQROPOPOPONKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCDABABABAB=>=>=>=><;<;<;<;8787878765656565434343430/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!     - - - -STSTSTSTQRQRQRQRMNMNMNMNKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCDABABABAB=>=>=>=><;<;<;<;8787878765656565434343430/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!    - - - -STSTSTSTQRQRQRQRMNMNMNMNKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCDABABABAB=>=>=>=><;<;<;<;8787878765656565434343430/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!    - - - -STSTSTSTQRQRQRQRMNMNMNMNKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCDABABABAB=>=>=>=><;<;<;<;8787878765656565434343430/0/0/0/.-.-.-.-,+,+,+*)('('('('&%&%&%&%"!"!"!"!     - - - -STSTSTSTQRQRQRQRMNMNMNMNKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCDABABABAB=>=>=>=><;;;;;<;8787878765656565434343210/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%"!"!"!"!     - - - -STSTSTSTQRQRQRQRMNMNMNMNKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCDABABABAB=>=>=>=><;<;<;:98787878765656565212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%"!"!"!"!     - - - -STSTSTSTQRQRQRQRMNMNMNMNKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCDABABABAB=>=>=>=>:9:9:9:98787878765656565212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%"!"!"!"!     - - - -STSTSTSTQRQRQRQRMNMNMNMNKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCDABABABAB=>=>=>=>:9:9:9:98787878765656565212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%"!"!"!"!      - - - -STSTSTSTQRQRQRQRMNMNMNMNKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCDABABABAB=>=>=>=>:9:9:9:98787878765656565212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%"!"!"!"!       - - - -STSTSTSTQRQRQRQRMNMNMNMNKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCDABABABAB=>=>=>=>:9:9:9:98787878765656565212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%"!"!"!"!       - - - -STSTSTSTQRQRQRQRMNMNMNMNKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCDABABABAB=>=>=>=>:9:9:9:98787878765656565212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%"!"!"!"!     - - - -STSTSTSTQRQRQRQRMNMNMNMNKLKLKLKLIJIJIJIJEFEFEFEFCDCDCDCDABABABA@=>=>=>=>:9:9:9:98787878765656565212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%"!"!"!"!     - - - -STSTSTSTQRQRQRQRMNMNMNMNKLKLKLKLIJIJIJIHEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>:9:9:9:98787878765656565212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%"!"!"!"!     - - - -STSTSTSTQRQRQRQPMNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>:9:9:9:98787878765656565212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%"!"!"!"!     - - - -STSTSTSTOPOPOPOPMNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>:9:9:9:98787878765656565212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%"!"!"!"!     - - - -STSTSTSTOPOPOPOPMNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>:9:9:9:98787878765656565212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%$#"!"!"!"!     - - - -STSTSTSTOPOPOPOPMNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>:9:9:9:98787878765656565212121210/0/0/0/.-.-.-,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!     - - - -STSTSTSTOPOPOPOPMNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>:9:9:9:98787878765656543212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!     - - - -STSTSTSTOPOPOPOPMNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>:9:9:9:98787878743434343212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!     - - - -STSTSTSTOPOPOPOPMNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>:9:9:9:98787878743434343212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!     - - STSTSTSTOPOPOPOPMNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>:9:9:9:98787878743434343212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!     STSTSTSTOPOPOPOPMNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFCDCDCDCD?@?@?@?@=>=>=>=>:9:9:9:98787878743434343212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!     STSTSTSTOPOPOPOPMNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFCDCDCDCD?@?@?@?@=>=<;<;<:9:9:9:98787878743434343212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!     STSTSTSTOPOPOPOPMNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFCDCDCDCD?@?@?@?@;<;;;;;;:9:9:9:98787878743434343212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!     STSTSTSTOPOPOPOPMNMNMNMNKLKLKLKLGHGHGHGHEFEFEFEFCDCDCDCB?@?@?@?@<;<;<;<;:9:9:9:98787878743434343212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!     STSTSTSTOPOPOPOPMNMNMNMNKLKLKLKJGHGHGHGHEFEFEFEFABABABAB?@?@?@?@<;<;<;<;:9:9:9:98787878743434343212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!     STSTSTSROPOPOPOPMNMNMNMNIJIJIJIJGHGHGHGHEFEFEFEFABABABAB?@?@?@?@<;<;<;<;:9:9:9:98787878743434343212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!        QRQRQRQROPOPOPOPMNMNMNMNIJIJIJIJGHGHGHGHEFEFEFEFABABABAB?@?@?@?@<;<;<;<;:9:9:9:98787878743434343212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('$#$#$#$#       QRQRQRQROPOPOPOPMNMNMNMNIJIJIJIJGHGHGHGHEFEFEFEFABABABAB?@?@?@?@<;<;<;<;:9:9:9:98787878743434343212121210/0/0/0/,+,+,+,+*)*)*)*)('('('&%$#$#$#$#         QRQRQRQROPOPOPOPMNMNMNMNIJIJIJIJGHGHGHGHEFEFEFEFABABABAB?@?@?@?@<;<;<;;;:9:9:9:98787878743434343212121210/0/0/.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#         QRQRQRQROPOPOPOPMNMNMNMNIJIJIJIJGHGHGHGHEFEFEFEFABABABAB?@?@?@?@;;;<;<;<:9:9:9:9878787654343434321212121.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#         QRQRQRQROPOPOPOPMNMNMNMNIJIJIJIJGHGHGHGHEFEFEFEFABABABAB?@?@?@?@;<;<;<;<:9:9:9:9656565654343434321212121.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#         QRQRQRQROPOPOPOPMNMNMNMNIJIJIJIJGHGHGHGHEFEFEFEFABABABAB?@?@?@?@;<;<;<;<:9:9:9:9656565654343434321212121.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#         - -QRQRQRQROPOPOPOPMNMNMNMNIJIJIJIJGHGHGHGHEFEFEFEFABABABAB?@?@?@?@;<;<;<;<:9:9:9:9656565654343434321212121.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#       - - - -QRQRQRQROPOPOPOPMNMNMNMNIJIJIJIJGHGHGHGHEFEFEFEFABABABAB?@?@?@?@;<;<;<;<:9:9:9:9656565654343434321212121.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#        - - - -QRQRQRQROPOPOPOPMNMNMNMNIJIJIJIJGHGHGHGHEFEFEFEFABABABAB?@?@?@?@;<;<;<;<:9:9:9:9656565654343434321212121.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#         - - - -QRQRQRQROPOPOPOPMNMNMNMNIJIJIJIJGHGHGHGHEFEFEFEFABABABAB?@?@?@?@;;;;;;<;:9:9:9:9656565654343434321212121.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#         - - - -QRQRQRQROPOPOPOPMNMNMNMNIJIJIJIJGHGHGHGHEFEFEFEDABABABAB?@?@?@?@<;<;<;<;:9:9:9:9656565654343434321212121.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#         - - - -QRQRQRQROPOPOPOPMNMNMNMLIJIJIJIJGHGHGHGHCDCDCDCDABABABAB?@?@?@?@<;<;<;<;:9:9:9:9656565654343434321212121.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#         - - - -QRQRQRQROPOPOPOPKLKLKLKLIJIJIJIJGHGHGHGHCDCDCDCDABABABAB?@?@?@?@<;<;<;<;:9:9:9:9656565654343434321212121.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#         - - - -QRQRQRQROPOPOPOPKLKLKLKLIJIJIJIJGHGHGHGHCDCDCDCDABABABAB?@?@?@?@<;<;<;<;:9:9:9:9656565654343434321212121.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#       - - - -EEFFGGHH - - 88776655<==>>??@)((''&&%@AABBCCD%$$##""!DEEFFGGHCCBBAA@?--..//0088776655112233444433221155667788SRRQQPPOIIJJKKLL44332211@AABBCCD%$$##""!DEEFFGGH! HIIJJKKL >=<;;::911223344443322115566778800//..--99::;;<<ONNMMLLKMMNNOOPP00//..--DEEFFGGH! HIIJJKKL~~}LMMNNOOP - - 988776655566778800//..--99::;;<<,,++**))==>>??@@ KJJIIHHGQQRRSSTT,,++**))HIIJJKKL~~}LMMNNOOP}||{{zzyPQQRRSST 5443322199::;;<<,,++**))==>>??@@((''&&%%AABBCCDD - - GFFEEDDCUUVVWWXX((''&&%%~~}LMMNNOOP}||{{zzyPQQRRSSTyxxwwvvuTUUVVWWX100//..-==>>??@@((''&&%%AABBCCDD$$##""!!EEFFGGHHCBBAA@?>YYZZ[[\\%%&&$#"! }||{{zzyPQQRRSSTyxxwwvvuTUUVVWWX uttssrrqXYYZZ[[\-,,++**)AABBCCDD$$##""!!EEFFGGHH IIJJKKLL =<;;::99~~}}]]^^__``''(())**yxxwwvvuTUUVVWWX uttssrrqXYYZZ[[\ - - qppoonnm\]]^^__`)((''&&%EEFFGGHH IIJJKKLL~~}}MMNNOOPP - - 88776655||{{zzyyaabbccdd++,,--..uttssrrqXYYZZ[[\ - - qppoonnm\]]^^__` mllkkjji`aabbccd%%&%$#"! IIJJKKLL~~}}MMNNOOPP||{{zzyyQQRRSSTT44332211xxwwvvuueeffgghh//001122qppoonnm\]]^^__` mllkkjji`aabbccdihhggffedeeffggh&''(())*~~}}MMNNOOPP||{{zzyyQQRRSSTTxxwwvvuuUUVVWWXX00//..--ttssrrqqiijjkkll33445566mllkkjji`aabbccdihhggffedeeffggheddccbbahiijjkkl*++,,--.||{{zzyyQQRRSSTTxxwwvvuuUUVVWWXX ttssrrqqYYZZ[[\\,,++**))ppoonnmmmmnnoopp778899:: -ihhggffedeeffggheddccbbahiijjkkla``__^^]lmmnnoop.//00112xxwwvvuuUUVVWWXX ttssrrqqYYZZ[[\\ - - ppoonnmm]]^^__``((''&&%%llkkjjiiqqrrsstt;;AABBCC - eddccbbahiijjkkla``__^^]lmmnnoop - - ]\\[[ZZYpqqrrsst23344556ttssrrqqYYZZ[[\\ - - ppoonnmm]]^^__``llkkjjiiaabbccdd%%&&$#"! hhggffeeuuvvwwxxDDEEFFGGa``__^^]lmmnnoop - - ]\\[[ZZYpqqrrsst YXXWWVVUtuuvvwwx6778899: ppoonnmm]]^^__``llkkjjiiaabbccddhhggffeeeeffgghh''(())**ddccbbaayyzz{{||HHIIJJKK - - ]\\[[ZZYpqqrrsst YXXWWVVUtuuvvwwxUTTSSRRQxyyzz{{|:;;AABBC - - llkkjjiiaabbccddhhggffeeeeffgghhddccbbaaiijjkkll++,,--..``__^^]]}}~~LLMMNNOO YXXWWVVUtuuvvwwxUTTSSRRQxyyzz{{|QPPOONNM|}}~~CDDEEFFGhhggffeeeeffgghhddccbbaaiijjkkll``__^^]]mmnnoopp//001122\\[[ZZYYPPQQRRSSUTTSSRRQxyyzz{{|QPPOONNM|}}~~MLLKKJJIGHHIIJJKddccbbaaiijjkkll``__^^]]mmnnoopp - - \\[[ZZYYqqrrsstt33445566XXWWVVUUTTUUVVWWQPPOONNM|}}~~MLLKKJJI IHHGGFFEKLLMMNNO``__^^]]mmnnoopp - - \\[[ZZYYqqrrsstt XXWWVVUUuuvvwwxx778899:: -TTSSRRQQ]]^^__``MLLKKJJI IHHGGFFE !!""##$EDDCCBBAOPPQQRRS - - \\[[ZZYYqqrrsstt XXWWVVUUuuvvwwxxTTSSRRQQyyzz{{||;;AABBCC - PPOONNMMaabbccdd IHHGGFFE !!""##$EDDCCBBA$%%&&''(A@@??>>=STTUUVVW XXWWVVUUuuvvwwxxTTSSRRQQyyzz{{||PPOONNMM}}~~DDEEFFGGLLKKJJIIeeffgghh !!""##$EDDCCBBA$%%&&''(A@@??>>=())**++,=<<;;::9W]]^^__`TTSSRRQQyyzz{{||PPOONNMM}}~~LLKKJJIIHHIIJJKKHHGGFFEEiijjkkll$%%&&''(A@@??>>=())**++,=<<;;::9,--..//098877665`aabbccdPPOONNMM}}~~LLKKJJII HHGGFFEELLMMNNOO DDCCBBAAmmnnoopp())**++,=<<;;::9,--..//0988776650112233454433221deeffgghLLKKJJII HHGGFFEE!!""##$$DDCCBBAAPPQQRRSS - - @@??>>==qqrrssyy,--..//098877665011223345443322145566778100//..-hiijjkkl HHGGFFEE!!""##$$DDCCBBAA%%&&''((@@??>>==TTUUVVWW <<;;::99zz{{||}}011223345443322145566778100//..-899::;;<-,,++**)lmmnnoop!!""##$$DDCCBBAA%%&&''((@@??>>==))**++,,<<;;::99]]^^__``88776655~~45566778100//..-899::;;<-,,++**)<==>>??@)((''&&%pqqrrssy%%&&''((@@??>>==))**++,,<<;;::99--..//0088776655aabbccdd44332211899::;;<-,,++**)<==>>??@)((''&&%@AABBCCD%$$##""!yzz{{||}))**++,,<<;;::99--..//00887766551122334444332211eeffgghh00//..--~~}}||<==>>??@)((''&&%@AABBCCD%$$##""!DEEFFGGH! ~~}}|}~~--..//008877665511223344443322115566778800//..--iijjkkll !,,++**)){{zzyyss@AABBCCD%$$##""!DEEFFGGH! HIIJJKKL|{{zzyys11223344443322115566778800//..--99::;;<<,,++**))mmnnoopp!""##$$%((''&&%%rrqqppooDEEFFGGH! HIIJJKKL~~}LMMNNOOPsrrqqppo5566778800//..--99::;;<<,,++**))==>>??@@((''&&%%qqrrssyy%&&''(()$$##""!!nnmmllkkHIIJJKKL~~}LMMNNOOP}||{{zzyPQQRRSSTonnmmllk99::;;<<,,++**))==>>??@@((''&&%%AABBCCDD$$##""!!zz{{||}})**++,,- jjiihhggLMMNNOOP}||{{zzyPQQRRSSTyxxwwvvuTUUVVWWX kjjiihhg==>>??@@((''&&%%AABBCCDD$$##""!!EEFFGGHH ~~}}||~~-..//001ffeeddccPQQRRSSTyxxwwvvuTUUVVWWX uttssrrqXYYZZ[[\ - - gffeeddcAABBCCDD$$##""!!EEFFGGHH IIJJKKLL{{zzyyss12233445bbaa``__TUUVVWWX uttssrrqXYYZZ[[\ - - qppoonnm\]]^^__` cbbaa``_EEFFGGHH IIJJKKLL~~}}MMNNOOPPrrqqppoo56677889^^]]WWVVXYYZZ[[\ - - qppoonnm\]]^^__` mllkkjji`aabbccd_^^]]WWVIIJJKKLL~~}}MMNNOOPP||{{zzyyQQRRSSTTnnmmllkk9::;;<<= UUTTSSRR\]]^^__` mllkkjji`aabbccdihhggffedeeffgghVUUTTSSRMMNNOOPP||{{zzyyQQRRSSTTxxwwvvuuUUVVWWXX jjiihhgg=>>??@@A - - QQPPOONN~~}}|`aabbccdihhggffedeeffggheddccbbahiijjkklRQQPPOONQQRRSSTTxxwwvvuuUUVVWWXX ttssrrqqYYZZ[[\\ - - ffeeddccABBCCDDE - - MMLLKKJJ|{{zzyyxdeeffggheddccbbahiijjkkla``__^^]lmmnnoop - - NMMLLKKJUUVVWWXX ttssrrqqYYZZ[[\\ - - ppoonnmm]]^^__``bbaa``__EFFGGHHI IIHHGGFFwvutssrrhiijjkkla``__^^]lmmnnoop - - ]\\[[ZZYpqqrrsst JIIHHGGF~~}}YYZZ[[\\ - - ppoonnmm]]^^__``llkkjjiiaabbccdd^^]]WWVVIJJKKLLMEEDDCCBBqqppoonnlmmnnoop - - ]\\[[ZZYpqqrrsst YXXWWVVUtuuvvwwxFEEDDCCB||{{zzyy]]^^__``llkkjjiiaabbccddhhggffeeeeffgghhUUTTSSRRMNNOOPPQAA;;::99mmllkkjjpqqrrsst YXXWWVVUtuuvvwwxUTTSSRRQxyyzz{{|BAA;;::9xwvutssraabbccddhhggffeeeeffgghhddccbbaaiijjkkllQQPPOONNQRRSSTTU88776655iihhggfftuuvvwwxUTTSSRRQxyyzz{{|QPPOONNM|}}~~98877665rqqppooneeffgghhddccbbaaiijjkkll``__^^]]mmnnoopp - - MMLLKKJJUVVWWXXY 44332211eeddccbbxyyzz{{|QPPOONNM|}}~~MLLKKJJI 54433221nmmllkkjiijjkkll``__^^]]mmnnoopp - - \\[[ZZYYqqrrsstt IIHHGGFF~~}}|YZZ[[\\]!!""##$$00//..--aa``__^^|}}~~MLLKKJJI IHHGGFFE !!""##$100//..-jiihhggfmmnnoopp - - \\[[ZZYYqqrrsstt XXWWVVUUuuvvwwxxEEDDCCBB|{{zzyyx]^^__``a%%&&''((,,++**))]]\[ZYXW IHHGGFFE !!""##$EDDCCBBA$%%&&''(-,,++**)feeddccbqqrrsstt XXWWVVUUuuvvwwxxTTSSRRQQyyzz{{||AA;;::99wvutssrrabbccdde))**++,,((''&&%%WVVUUTTS !!""##$EDDCCBBA$%%&&''(A@@??>>=())**++,)((''&&%baa``__^uuvvwwxxTTSSRRQQyyzz{{||PPOONNMM}}~~88776655qqppoonneffgghhi--..//00SRRQQPPO$%%&&''(A@@??>>=())**++,=<<;;::9,--..//0%^]]\[ZYXyyzz{{||PPOONNMM}}~~LLKKJJII 44332211mmllkkjjijjkkllm11223344ONNMMLLK())**++,=<<;;::9,--..//09887766501122334WWVVUUTT}}~~LLKKJJII HHGGFFEE!!""##$$00//..--iihhggffmnnooppq55667788KJJIIHHG,--..//098877665011223345443322145566778SSRRQQPP HHGGFFEE!!""##$$DDCCBBAA%%&&''((,,++**))eeddccbbqrrssttu99::;;<<GFFEEDDC011223345443322145566778100//..-899::;;<OONNMMLL!!""##$$DDCCBBAA%%&&''((@@??>>==))**++,,((''&&%%aa``__^^uvvwwxxy==>>??@@ CBBAA@?>45566778100//..-899::;;<-,,++**)<==>>??@ KKJJIIHH%%&&''((@@??>>==))**++,,<<;;::99--..//00]]\[ZYXWyzz{{||}AABBCCDD - - =<;;::99899::;;<-,,++**)<==>>??@)((''&&%@AABBCCD - - GGFFEEDD))**++,,<<;;::99--..//008877665511223344WVVUUTTS}~~9::;;<<=,++**))(=>>??@@A(''&&%%$ABBCCDDE - - FFEEDDCC**++,,--;;::9988..//00117766554422334455VUUTTSSR~KJJIIHHG !!"GFFEEDDC"##$$%%&,++**))(QPPOONNM=>>??@@A(''&&%%$ABBCCDDE$##""!! EFFGGHHIBBAA@?>=..//001177665544223344553322110066778899RQQPPOON !!"GFFEEDDC"##$$%%&CBBAA@@?&''(())*(''&&%%MLLKKJJIABBCCDDE$##""!! EFFGGHHI IJJKKLLM -<;;::998223344553322110066778899//..--,,::;;<<==NMMLLKKJ"##$$%%&CBBAA@@?&''(())*?>>==<<;*++,,--.IHHGGFFEEFFGGHHI IJJKKLLM~~}}|MNNOOPPQ - 8776655466778899//..--,,::;;<<==++**))((>>??@@AA JIIHHGGF&''(())*?>>==<<;*++,,--.;::99887.//00112EDDCCBBAIJJKKLLM~~}}|MNNOOPPQ|{{zzyyxQRRSSTTU43322110::;;<<==++**))((>>??@@AA''&&%%$$BBCCDDEE - - FEEDDCCB*++,,--.;::99887.//001127665544323344556A@@??>>=~~}}|MNNOOPPQ|{{zzyyxQRRSSTTUxwwvvuutUVVWWXXY0//..--,>>??@@AA''&&%%$$BBCCDDEE##""!! FFGGHHIIBAA@?>=<.//0011276655443233445563221100/6778899:=<<;;::9|{{zzyyxQRRSSTTUxwwvvuutUVVWWXXY tssrrqqpYZZ[[\\],++**))(BBCCDDEE##""!! FFGGHHIIJJKKLLMM - -;;::9988233445563221100/6778899:/..--,,+:;;<<==> 98877665xwwvvuutUVVWWXXY tssrrqqpYZZ[[\\] - - poonnmml]^^__``a(''&&%%$FFGGHHIIJJKKLLMM~~}}||NNOOPPQQ 776655446778899:/..--,,+:;;<<==>+**))(('>??@@AAB - - -54433221tssrrqqpYZZ[[\\] - - poonnmml]^^__``alkkjjiihabbccdde%%&&'#"! JJKKLLMM~~}}||NNOOPPQQ{{zzyyxxRRSSTTUU33221100:;;<<==>+**))(('>??@@AAB'&&%%$$#BCCDDEEF - 100//..-poonnmml]^^__``alkkjjiihabbccddehggffeedeffgghhi'(())**+~~}}||NNOOPPQQ{{zzyyxxRRSSTTUUwwvvuuttVVWWXXYY//..--,,>??@@AAB'&&%%$$#BCCDDEEF#""!! FGGHHIIJ-,,++**)lkkjjiihabbccddehggffeedeffgghhidccbbaa`ijjkkllm+,,--../{{zzyyxxRRSSTTUUwwvvuuttVVWWXXYY ssrrqqppZZ[[\\]]++**))((BCCDDEEF#""!! FGGHHIIJJKKLLMMN)((''&&%hggffeedeffgghhidccbbaa`ijjkkllm `__^^]]\mnnooppq/0011223wwvvuuttVVWWXXYY ssrrqqppZZ[[\\]] - - oonnmmll^^__``aa''&&%%$#FGGHHIIJJKKLLMMN~~}}||{NOOPPQQR%$$##""!dccbbaa`ijjkkllm `__^^]]\mnnooppq - - \[[ZZYYXqrrssttu34455667ssrrqqppZZ[[\\]] - - oonnmmll^^__``aakkjjiihhbbccddee%%&&''"! JKKLLMMN~~}}||{NOOPPQQR{zzyyxxwRSSTTUUV! `__^^]]\mnnooppq - - \[[ZZYYXqrrssttu XWWVVUUTuvvwwxxy78899::; - -oonnmmll^^__``aakkjjiihhbbccddeeggffeeddffgghhii(())**++~~}}||{NOOPPQQR{zzyyxxwRSSTTUUVwvvuuttsVWWXXYYZ%%&&'\[[ZZYYXqrrssttu XWWVVUUTuvvwwxxyTSSRRQQPyzz{{||};AABBCCD kkjjiihhbbccddeeggffeeddffgghhiiccbbaa``jjkkllmm,,--..//{zzyyxxwRSSTTUUVwvvuuttsVWWXXYYZ srrqqppoZ[[\\]]^'(())**+XWWVVUUTuvvwwxxyTSSRRQQPyzz{{||}POONNMML}~~DEEFFGGHggffeeddffgghhiiccbbaa``jjkkllmm __^^]]\\nnooppqq00112233wvvuuttsVWWXXYYZ srrqqppoZ[[\\]]^ - - onnmmllk^__``aab+,,--../TSSRRQQPyzz{{||}POONNMML}~~LKKJJIIHHIIJJKKLccbbaa``jjkkllmm __^^]]\\nnooppqq - - [[ZZYYXXrrssttuu44556677 srrqqppoZ[[\\]]^ - - onnmmllk^__``aabkjjiihhgbccddeef/0011223 POONNMML}~~LKKJJIIH !HGGFFEEDLMMNNOOP __^^]]\\nnooppqq - - [[ZZYYXXrrssttuuWWVVUUTTvvwwxxyy8899::;; - - onnmmllk^__``aabkjjiihhgbccddeefgffeeddcfgghhiij34455667 - - LKKJJIIH !HGGFFEED!""##$$%DCCBBAA@PQQRRSST - - [[ZZYYXXrrssttuuWWVVUUTTvvwwxxyySSRRQQPPzz{{||}}AABBCCDD kjjiihhgbccddeefgffeeddcfgghhiijcbbaa``_jkkllmmn78899::; - - HGGFFEED!""##$$%DCCBBAA@%&&''(()@??>>==>==<)**++,,-<;;::998]^^__``aSSRRQQPPzz{{||}}OONNMMLL~~KKJJIIHHIIJJKKLLcbbaa``_jkkllmmn -_^^]]\\[nooppqqr - [ZZYYXXWrssttuuvDEEFFGGH@??>>==<)**++,,-<;;::998-..//00187766554abbccddeOONNMMLL~~KKJJIIHH !!GGFFEEDDMMNNOOPP -_^^]]\\[nooppqqr - [ZZYYXXWrssttuuvWVVUUTTSvwwxxyyzHIIJJKKL<;;::998-..//001877665541223344543322110effgghhiKKJJIIHH !!GGFFEEDD""##$$%%CCBBAA@@QQRRSSTT - [ZZYYXXWrssttuuvWVVUUTTSvwwxxyyzSRRQQPPOz{{||}}~LMMNNOOP877665541223344543322110566778890//..--,ijjkkllm !!GGFFEEDD""##$$%%CCBBAA@@&&''(())??>>==<>==<<**++,,--;;::9988^^__``aaSRRQQPPOz{{||}}~ONNMMLLK~KJJIIHHGTUUVVWW] !!""##$0//..--,9::;;<<=,++**))(=>>??@@A(''&&%%$qrrssyyz&&''(())??>>==<<**++,,--;;::9988..//001177665544bbccddeeONNMMLLK~KJJIIHHG !!"GFFEEDDC]^^__``a$%%&&''(,++**))(=>>??@@A(''&&%%$ABBCCDDE$##""!! z{{||}}~**++,,--;;::9988..//0011776655442233445533221100ffgghhiiKJJIIHHG !!"GFFEEDDC"##$$%%&CBBAA@@?abbccdde())**++,(''&&%%$ABBCCDDE$##""!! EFFGGHHI ~~}}||{~..//001177665544223344553322110066778899//..--,,jjkkllmm !!"GFFEEDDC"##$$%%&CBBAA@@?&''(())*?>>==<<;effgghhi,--..//0$##""!! EFFGGHHI IJJKKLLM{zzyyssr223344553322110066778899//..--,,::;;<<==++**))((nnooppqq"##$$%%&CBBAA@@?&''(())*?>>==<<;*++,,--.;::99887ijjkkllm01122334 IJJKKLLM~~}}|MNNOOPPQrqqppoon66778899//..--,,::;;<<==++**))((>>??@@AA''&&%%$$rrssyyzz&''(())*?>>==<<;*++,,--.;::99887.//0011276655443mnnooppq45566778~~}}|MNNOOPPQ|{{zzyyxQRRSSTTUnmmllkkj::;;<<==++**))((>>??@@AA''&&%%$$BBCCDDEE##""!! {{||}}~~*++,,--.;::99887.//0011276655443233445563221100/qrrssyyz899::;;<|{{zzyyxQRRSSTTUxwwvvuutUVVWWXXY jiihhggf>>??@@AA''&&%%$$BBCCDDEE##""!! FFGGHHII~~}}||{{.//0011276655443233445563221100/6778899:/..--,,+z{{||}}~<==>>??@xwwvvuutUVVWWXXY tssrrqqpYZZ[[\\] - - feeddccbBBCCDDEE##""!! FFGGHHIIJJKKLLMMzzyyssrr233445563221100/6778899:/..--,,+:;;<<==>+**))(('~@AABBCCD tssrrqqpYZZ[[\\] - - poonnmml]^^__``abaa``__^FFGGHHIIJJKKLLMM~~}}||NNOOPPQQqqppoonn6778899:/..--,,+:;;<<==>+**))(('>??@@AAB'&&%%$$#DEEFFGGH - - poonnmml]^^__``alkkjjiihabbccdde^]]WWVVUJJKKLLMM~~}}||NNOOPPQQ{{zzyyxxRRSSTTUUmmllkkjj:;;<<==>+**))(('>??@@AAB'&&%%$$#BCCDDEEF#""!! ~~}}||{HIIJJKKLlkkjjiihabbccddehggffeedeffgghhiUTTSSRRQNNOOPPQQ{{zzyyxxRRSSTTUUwwvvuuttVVWWXXYY iihhggff>??@@AAB'&&%%$$#BCCDDEEF#""!! FGGHHIIJ{zzyyssrLMMNNOOPhggffeedeffgghhidccbbaa`ijjkkllm QPPOONNMRRSSTTUUwwvvuuttVVWWXXYY ssrrqqppZZ[[\\]] - - eeddccbbBCCDDEEF#""!! FGGHHIIJJKKLLMMNrqqppoonPQQRRSSTdccbbaa`ijjkkllm `__^^]]\mnnooppq - - MLLKKJJIVVWWXXYY ssrrqqppZZ[[\\]] - - oonnmmll^^__``aaaa``__^^FGGHHIIJJKKLLMMN~~}}||{NOOPPQQRnmmllkkjTUUVVWWX `__^^]]\mnnooppq - - \[[ZZYYXqrrssttu IHHGGFFE~~}}||ZZ[[\\]] - - oonnmmll^^__``aakkjjiihhbbccddee]]WWVVUUJKKLLMMN~~}}||{NOOPPQQR{zzyyxxwRSSTTUUVjiihhggfXYYZZ[[\ - - \[[ZZYYXqrrssttu XWWVVUUTuvvwwxxyEDDCCBBA{{zzyyxw^^__``aakkjjiihhbbccddeeggffeeddffgghhiiTTSSRRQQNOOPPQQR{zzyyxxwRSSTTUUVwvvuuttsVWWXXYYZ feeddccb~~}\]]^^__` XWWVVUUTuvvwwxxyTSSRRQQPyzz{{||}A;;::998vutssrrqbbccddeeggffeeddffgghhiiccbbaa``jjkkllmm PPOONNMMRSSTTUUVwvvuuttsVWWXXYYZ srrqqppoZ[[\\]]^ - - baa``__^}||{{zzy`aabbccdTSSRRQQPyzz{{||}POONNMML}~~87766554qppoonnmffgghhiiccbbaa``jjkkllmm __^^]]\\nnooppqq - - LLKKJJIIVWWXXYYZ srrqqppoZ[[\\]]^ - - onnmmllk^__``aab^]]WWVVUyxxwwvvudeeffgghPOONNMML}~~LKKJJIIH !43322110mllkkjjijjkkllmm __^^]]\\nnooppqq - - [[ZZYYXXrrssttuuHHGGFFEE~~}}||{Z[[\\]]^ - - onnmmllk^__``aabkjjiihhgbccddeefUTTSSRRQuttssrrqhiijjkklLKKJJIIH !HGGFFEED!""##$$%0//..--,ihhggffennooppqq - - [[ZZYYXXrrssttuuWWVVUUTTvvwwxxyyDDCCBBAA{zzyyxwv^__``aabkjjiihhgbccddeefgffeeddcfgghhiijQPPOONNMqppoonnmlmmnnoop !HGGFFEED!""##$$%DCCBBAA@%&&''((),++**))(eddccbbarrssttuuWWVVUUTTvvwwxxyySSRRQQPPzz{{||}};;::9988utssrrqqbccddeefgffeeddcfgghhiijcbbaa``_jkkllmmn -MLLKKJJImllkkjjipqqrrsst!""##$$%DCCBBAA@%&&''(()@??>>==<)**++,,-(''&&%%a``__^^]vvwwxxyySSRRQQPPzz{{||}}OONNMMLL~~77665544ppoonnmmfgghhiijcbbaa``_jkkllmmn -_^^]]\\[nooppqqr - IHHGGFFEihhggffetuuvvwwx%&&''(()@??>>==<)**++,,-<;;::998-..//001]\[ZYXWWzz{{||}}OONNMMLL~~KKJJIIHH !!33221100llkkjjiijkkllmmn -_^^]]\\[nooppqqr - [ZZYYXXWrssttuuvEDDCCBBAeddccbbaxyyzz{{|)**++,,-<;;::998-..//0018776655412233445VVUUTTSS~~KKJJIIHH !!GGFFEEDD""##$$%%//..--,,hhggffeenooppqqr - [ZZYYXXWrssttuuvWVVUUTTSvwwxxyyzA;;::998a``__^^]|}}~~-..//00187766554122334454332211056677889RRQQPPOO !!GGFFEEDD""##$$%%CCBBAA@@&&''(())++**))((ddccbbaarssttuuvWVVUUTTSvwwxxyyzSRRQQPPOz{{||}}~87766554]\\[[ZZY1223344543322110566778890//..--,9::;;<<=NNMMLLKK""##$$%%CCBBAA@@&&''(())??>>==<<**++,,--''&&%%``__^^]]vwwxxyyzSRRQQPPOz{{||}}~ONNMMLLK~43322110YXXWWVVU566778890//..--,9::;;<<=,++**))(=>>??@@A JJIIHHGG&&''(())??>>==<<**++,,--;;::9988..//0011\[ZYXWWVz{{||}}~ONNMMLLK~KJJIIHHG !!"0//..--,UTTSSRRQZHAb|ZdQb˂rXQdrtAQr˂pbtlfpvdrtfH~Qr˂pfpvZp˂tbHAbtlJp˂rdrtAH~ftlJfpvdrtAH~f˂pZv`fے`JXQtlJJ`ےJltZHAbJtArdnXv`AJltf`vXZHAbnXv`rXQJ`nvp`JQr˂ptArdXQJ`ےJltZHAbtArdnXv`Jlt`vXnHAbے~Hfpr˂ptArdbHAZpbdQZ|ے`JX|ZdQf~HbdQZ|nvpے`JXf~HbHAvXnZHAbf~HbHAZbdQZ|ے`JXQ|ZdQbf~HbdQZ|vpf`JXQrvnXZHAb|ZdQb˂rXQdrtAQr˂pbtlfpvdrtfH~Qr˂pfpvZp˂vpfHے`JXfpvp˂rdrtAr˂ptlJfpvdrtAH~f˂p`v`fے`JXQtlJJ`ےJltZHAbJtArdnXv`AJltf`vXZHAbnXv`rXQJ`ۅ~f`Qr˂pnXv`XQJ`ےJltZHAbtArdnXv`Jlt`vXnJXQrb~Hfvr˂ptArdbHAXQJbQZdے`JX|ZdQf~HbdQZ|nvpے`JXf~HbHAvXnZHAbf~HbHAZbdQZ|ے`JXQ|ZdQbf~HbdQZ|vpftl|nXv`ZHAb|ZdQb`ےbrtAJlQr˂pbtlfpvdrtfH~Qr˂pfpvZp˂vpfHے`JXfpvp˂rdrtAr˂ptlJfpvdrtAH~fZdQbtf~Hے`JXQtlJHAZp˂tbdQZHAbJtArdnXv`AJltf`vXZHAۅnXv`rXQJ`ۅ~QrZHAnXv`XQJ`ےJltZHAbtArdnXv`Jlt`vXnlJtAfpvr˂ptArdrXQJZ|dے`JX|ZdQfHbdQZ|nvp`JXQf~HbHAvpfHbے`f~HbHAZbdQZ|ے`JXQ|ZdQbf~HbdQZ|vpfrd|nXv`ZHAb|ZdQb`ےbrtAJlQr˂pbtlfpvdrtfH~rbtlfpvZp˂~f`JXQrfpvp˂rdrtAr˂ptlJfpvdrtAH~fZdQbtf~Hے`JXQtlJHAZp˂tbdQZHAbJtArdnrXQJ`AJltf`vXJtAdnXv`rXQJ`vXn˂pZHAnXv`XQJ`ےJltZHAbtArdnXv`Jlt`vXnlJtAfpvr˂ptArdbHAZ|dnے`JX|ZdQےHAbdQZ|nvp|ZdQf~HbHAvpfHbے`f~HbHAZbdQZ|ے`JXQ|ZdQbfHfbdQZ|vpfrdtnvfZHAb|ZdQbZp˂vfQr˂pbtlZp˂drtfH~btlfpvZp˂~f`JXQrfpvp˂rdtAJr˂ptlJpvndrtAH~flJtAr~Hfpے`JXQtlJrXQJ`f`vXZHAbJtArdrXQJ`AJltf`vXJtArdnXv`rXQJ`vXH~˂pZAnXv`XQJ`ےltbZHAbtArdrXQJ`Jlt`vXnd|ZvnXr˂ptArdےbHAnvpے`JX|ZdQbHAbdQZ|nvp|ZdQf~HbHAf`vX`JXQrf~HbHAZnvpے`JXQ|ZdQbےHAZbdQZ|vpfdQbtv`fZHAb|ZdQbZp˂fH~Qr˂pbtlZp˂drtfH~btlfpvZp˂nvpbtlfpvp˂rfHfr˂ptlJp˂rdrtAH~flJtAr~Hfpے`JXQtlJrXQJ`f`vXZHAbJtArdrXQJ`AJltf`vXJtArdnXv`rXQJ`۝fH~JtAdnXv`XQJ`ے`vXnZHAbtArdXQJ`ےJlt`vXnd|ZvnXr˂ptArdp˂rnvpے`JX|ZdQbHAbdQZ|nvp|ZdQf~HbHAf`vX|ZdQbf~HbHAZvpfے`JXQ|ZdQbbHAZbdQZ|vpfdQtArdv`ffpZHAb|ZdQbXQJ`ےfH~Qr˂pbtlZp˂drtfH~btlfpvZp˂nvptlJfpvp˂rH~fr˂ptlJp˂rdrtAH~f|ZdQvnے`JXQtlJbHAZf`vXZHAbJtArdrXQJ`AJltf`vXJtArdnXv`rXQJ`۝`vXtArdnXv`XQJ`ے`vXnZHAbtArdXQJ`ےJlt`vXnbtlrXQJ`r˂ptArdp˂rnvpے`JX|ZdQbHAbdQZ|nvp|ZdQf~HbHAnvp|ZdQbf~HbHAZvpfے`JXQ|ZdQbbHAZbdQZ|vpfJtArdHAZpZHAbf~HXQJ`ےfH~Qr˂pbtlZp˂drtfH~btlfpvZdrtfH~tlJfpvp˂rH~fr˂ptlJp˂rdrtAH~f|ZdQ˂rXے`JXQXv`fbHAXQf`vXZHAbJtArdrXQJ`AJltfZHAbJtArdnXv`AdQZ|f`vXtArdnXv`XQJ`ے`vXnZHAbtArdXQJ`ےJlt`vXnbtlQJ`ےr˂p~HfJ`ےnvpے`JXf~HbHAbdQZ|ے`JX|ZdQf~HdrtAnvp|ZdQbf~HbHAZvpfے`JXQ|ZdQbbHAZbdQZ|vpf|ZdQbbHAZpZHAbpvnbHAZpfH~Qr˂pfpvZp˂drtQr˂pbtlfpvJltfH~tlJfpvp˂rH~fr˂ptlJp˂rdrtAH~ftlJ˂rXے`JXQXv`f˂rXQf`vXZHAbnXv`rXQJ`AJltZHAbJtArdnXv`bdQZ|vpfHtArdnXv`XQJ`ے`vXnZHAbtArdXQJ`ےJltZHAbtArdQJ`ےr˂p~HfJ`ےnvpے`JXf~HbHAbdQZ|ے`JX|ZdQf~HdrtA~f`|ZdQbf~HbHAZvpfے`JXQf~HbHAZbdQZ|˂pZ|ZdQbbHAZpZHAbpvbHAZpfH~Qr˂pfpvZp˂drtQr˂pbtlfpvJltdvXntlJfpvdrtAH~fr˂pfpvp˂rdrtAHAbےtlJ˂rXے`JXQ~Hfp˂bf`vXZHAbnXv`rXQJ`AJltZHAbJtArdnXv`rtAJlvpfHtArdnXv`Jlt`vXnZHAbnXv`XQJ`ےJlt`JXQrtArdtQJ`ےr˂pvnXHAZdnvpے`JXf~HbHAbdQZ|ے`JX|ZdQf~Htbd~f`|ZdQbf~HbdQZ|vpfے`JXQf~HbHAZbdQZ|˂pZlJtAbHAZpZHAbv`frtAJfH~Qr˂pfpvZp˂drtQr˂pbtlfpvQZ|dvXHtlJfpvdrtAH~fr˂pfpvp˂rdrtAHAbےrd|˂rXے`JXQ~HfpbdQZ|f`vXZHAbnXv`rXQJ`AJltZHAbJtArdnXv`rtAJl~fZHtArdnXv`Jlt`vXnZHAbnXv`XQJ`ےJlt`JXQHAZdQbtQJ`ےr˂pvnXdrtAnvpے`JXf~HbHAbdQZ|ے`JX|ZdQfHtbdAbJ|ZdQbf~HbdQZ|vpfے`JXQf~HbHAZbdQZ|bے`lJtAbHAZpZHAbv`pvJltfH~Qr˂pfpvZp˂dtAQr˂pbtlfpvQZ|lQr˂ptlJfpvdrtAH~fr˂pfpvp˂rdrtAJXQrrd|˂rXے`JXQnXvbdQZ|f`vXZHAۅnXv`rXQJ`JltZHAbJtArdnrXQJ`tbdQZHAbtArdnXv`Jlt`vXnZHAbnXv`XQJ`ےJlt˂pZHAZdQtArQJ`ےr˂p`f~drtAnvp`JXQf~HbHAbnvpے`JX|ZdQےHAZ|dے`JXQ|ZdQbf~HbdQZ|vpfے`JXQf~HbHAZbdQZ|bے`dfbHAZp|ZdQbHfpvJltbfH~rbtlfpvZp˂fHQr˂pbtlZp˂rtAJlr˂ptlJfpvdrtAH~fr˂pfpvp˂rdtAJJXQr~Hfv˂rXtlJnXvQZdrf`vXJtAdnXv`rXQJ`f`vXZHAbJtArdrXQJ`ےtbdQZHAbtArdnXv`Jlt`vXnZHAےnXv`XQJ`ےltb˂p`JnXv`QJ`ےtArd`f~tAJlnvp|ZdQf~HbHAnvpے`JX|ZdQbHAZ|dے`JXQ|ZdQbfHfbdQZ|vpf`JXQrf~HbHAZnvpXQr˂f~HbHAZp|ZdQbHXv`tbdQZfH~btlfpvZp˂fH~Qr˂pbtlZp˂rtAdQZ|rZHAtlJpvndrtAH~fbtlfpvp˂rfHfpZHAbfpv˂rXtlJf~H|drf`vXJtArdnXv`rXQJ`f`vXZHAbJtArdrXQJ`ہdrtbے`tArdrXQJ`Jlt`vXnJtAdnXv`XQJ`ے`vXnے`JnXv`QJ`ےtArdfpvtAJlnvp|ZdQf~HbHAnvpے`JX|ZdQbHAAJltJXQr|ZdQbےHAZbdQZ|vpf|ZdQbf~HbHAZvpfXQr˂f~HbHAZp|ZdQbnXv`tbdQZfH~btlfpvZp˂fH~Qr˂pbtlZp˂bdQZ|pZHAtlJp˂rdrtAH~ftlJfpvp˂rH~fpZHAbfpvn˂rXtlJf~H|rAJlf`vXJtArdnXv`rXQJ`f`vXZHAbJtArdrXQJ`ہdrtbے`tArdXQJ`ےJlt`vXntArdnXv`XQJ`ے`vXn˂pvf~QJ`ےtArdfpvtbdnvp|ZdQf~HbHAnvpے`JX|ZdQbHAAJltJXQr|ZdQbbHAZbdQZ|vpf|ZdQbf~HbHAZvpfZHAbHfpvbHAZp˂rX|ZdQb~HfQZ|dfH~btlfpvZp˂fH~Qr˂pbtlZp˂drtApZAbtlJp˂rdrtAH~ftlJfpvp˂rH~fے`JXQnXv˂rXQJ`ےtlJpvnrtAJlf`vXJtArdnXv`rXQJ`f`vXZHAbJtArdrXQJ`Jlt`JXQrtArdXQJ`ےJlt`vXntArdnXv`XQJ`ے`vXnr˂p`f~QJ`ےbHAZptArdXv`ftbdnvp|ZdQf~HbHAnvpے`JXf~HbHAbdQZ|˂pZ|ZdQbbHAZbdQZ|vpf|ZdQbf~HbHAZvpfZHAbHfpvbHAZp˂rX|ZdQb~HfQZ|dfH~btlfpvZdrtfH~Qr˂pfpvZp˂drtAHAbےtlJp˂rdrtAH~ftlJfpvp˂rH~fے`JXQnXv˂rXQJ`ےtlJpvnrtAJfZHAbJtArdnXv`AJltf`vXZHAbnXv`rXQJ`Jlt`JXQrtArdXQJ`ےJlt`vXntArdnXv`XQJ`ے`vXnHAbے`f~fpQJ`ےbHAZtArdXv`pbdQZ|ے`JX|ZdQf~HbdQZ|nvpے`JXf~HbHAbdQZ|l˂pZ|ZdQbbHAZbdQZ|vpf|ZdQbf~HbHAZvpf`JXQrvnXbHAZpdrtAJltvXnZHAbnXv`QJ`ےJltZHAbArd|v`pZ|dvXnrd|Xv`fJ`ےvXnHAbےrdfJ`ےtbdQJXQrrd|J`ےtbdvXnrd|v`fJ`ےvXnZHAbpfH~bdQZ|vpfH`JXQf~HbHAZpbdQZ|`JXQZdQbtvnrXrtAJvpfHZdQbt~HfbHAZvpfH`JXQr~HfbHAZpZ|dpZHAZdQbtbHAZpQZ|dvpfHZdQbt~HfpbHAZpvpfH`JXQHf۝`vdrtA~f`r˂pfpv˂rXdrtAr˂plJtQJ`pbdQZ|~fZlJtApvndrtAJ~f`˂pZpvn˂rXQrtAJlbے`lJtArXQrtAJl~f`lJtAvnXrXQ~f`Abے`XnvˍJltvXnZHAbnXv`QJ`ےJltZHAbArd|rXQdrtAHAbےrd|Xv`fltbvXnHAbےXv`fJ`ےtbdQJXQrrd|J`ےtbdvXnrd|v`fJ`ےvXnہJXQrpfH~bdQZ|vpfH`JXQf~HbHAZpbdQZ|`JXQZdQbtJ`ےJlt`JXQrZdQbt~HfdQZ|vpfH`JXQr~HfbHAZpZ|l璂pZHAZdQbtbHAZpQZ|dvpfHZdQbt~HfpbHAZdvpfH˂pZHf۝`vdrtA~f`r˂pfpv˂rXdrtAr˂plJtbHAZpbdQZ|˂pZlJtApvndrtAJ~f`˂pZpvn˂rXQtbnbJQrlJtArXQrtAJl~fZHlJtAvnXrtAJl~f`Abے`XnvˍJltvXnZHAbnXv`QJ`ےJltZHAbArd|rXQdrtAHAbےrd|Xv`fltbvXnHAbےXv`fJ`ےvp`v˂pZrdfJ`ےtbdAbے`rd|v`ftbdvXnہJXQrpfH~bdQZ|vpfH`JXQf~HbHAZpbdQZ|`JXQZdQbtJ`ےJltb`JXQrZdQbt~HfdQZ|vpfH`JXQr~HfbHAZpXnvHAbے~HfpbHAZpQZ|dJXQrZdQbt~HfpQZ|dvpfH˂p`Zf۝`vdrtA~f`r˂pfpv˂rXdtAJlr˂plJtbHAXQJ`QZdr˂pZlJtApvndrtAJ~f`˂pZpvn˂rXQpfH~`JXQrvnXrXQrtAJl˂pZHlJtAvnXrtAJl~f`QXb㉀XnvˍJltvXnZHAے`nXv`QJ`ےtbZHAbArd|ےbHtAJlHAbےrd|Xv`fltbvXnHAbےXv`fJ`ےf`v˂pZv`fJ`ےtbdAbے`rd|v`ftbdvXnۑpJAHrpfH~bdQZ|vpfHJXQrf~HbHAZpnvp`JXQZdQbtAZp˂tbdQZ`JXQrZdQbt~HfdQZ|vpfH`JXQr~HfbHAZpXnvHAbے~HfpbHAZpQZ|dJXQrZdQbt~HfpQZ|dvpfH󙐂ˁ`Zf۝`vdrtA~f`btlfpv˂rXfHf`r˂plJtrXQJ`|dr˂pZlJtApvndrtAJ~f`˂pZpvn˂rXQpfH~`JXQrvnXrXQrtAJl˂pZHlJtAvnXrtAJl~f`QXb㉀XnvˍJltvXnJtAd|nXv`QJ`ےvXnZHAbArd|ےbHtAJlHAbےrd|Xv`fltbvXnHAے`Xv`fJ`ےvpZHAbv`fJ`ےtbdAbے`rd|v`ftbdvXnۑpJAHrpfH~bdQZ|vpfHZdQbtf~HbHAZpvpfH`JXQZdQbtAZp˂tbdQZ`JXQrZdQbtHfpdQZ|vpfHJXQrb~HfbHAZpfH~ے`JX~HfpbHAZpQZ|dJXQrZdQbt~HfpQZ|dvpfH󙐉ۑf۝`vdrtA~f`lJtfpv˂rX~f`r˂plJtbHA|AJl˂pZlJtAvnrdrtAJ~f`tlJpvn˂rXQf`vXQr˂pvnXrXQrtAJl˂pZHlJtAvnXrtAJl~f`pJAHrXnvˍJltvXnArd|nXv`QJ`ےvXnZHAbArd|Zp˂tbnHAbےrd|XQJ`ےltbvXntAd|Xv`fJ`ےnvpZHAbv`fJ`ےtbdAbے`rd|v`ftbdvXnېˁ`ZQpfH~bdQZ|vpfHZdQbtf~HbHAZpvpfH`JXQZdQbtrXQJ`ۀvpf`JXQrZdQbtHAZpdQZ|vpfHZdQbt~HfbHAZpfH~ے`JX~HfpbHAZpQZ|dJXQrZdQbtHfpQZ|dvpfHXb㉀ۑf۝`vdrtA~f`lJtfpv˂rX~f`r˂plJtbHAHf`˂pZlJtA˂rXQdrtAJ~f`lJtApvn˂rXQf`vXQr˂pvnXrXQtAJl˂pZHlJtAvnrXrtAJl~f`pJAHrXnvˍJltvXnArd|nXv`QJ`ےvXnZHAbArd|Zp˂vXnHAbےrd|J`ےltbvXnrd|Xv`fJ`ےH~fZA`v`fJ`ےtbnAbے`rd|QJ`ےtbdvXnېˁ`ZQp|drbdQZ|vpfHZdQbtf~HbHAZpvpfH`JXQZdQbtrXQJ`pvpfH`JXQrZdQbtbHAZpdQZ|vpfHZdQbt~HfbHAZp`vXnJXQrbt~HfpbHAZp˅vpfHJXQrZdQbtHAZpQZ|dvpfHXAHr󙐂QtJldrtA~f`lJtfpv˂rX~f`r˂plJt˂rX~f`˂pZlJtA˂rXQdrtAJ~f`lJtApvn˂rXQvpflJtvnXrXQf`˂pZHlJtArXQrtAJl~f`ˁ`ZQXbtbAdZJltvXnArd|nXv`QJ`ےvXnZHAbArdQJ`ےvXnHAbےrd|J`ےltbvXnrd|Xv`fJ`ےH~fAd|v`fJ`ےvXnAbے`rd|J`ےtbdvXn㉀ۑpJ|drbdQZ|vpfHZdQbtf~HbHAZvpfH`JXQf~HXbHAZpvpfH`JXQrZdQbtbHAZpdQZ|vpfHZdQbt~HfbHAZp`vXnZdQbt~HfpbHAZpvpfHJXQrZdQbtbHAZpQZ|dvpfHAHr󙐂QtJldrtA~flJtfpvdrtA~f`r˂pv`f˂rX~f`˂pZlJtA˂rXQdrtAJ~f`lJtApvn˂rXQvp`lJtAvnXrXQ~f`˂pZHlJtArXQrtAJl~f`ˁ`ZQXbtbAdZJltZHAbArd|nXv`JltvXnZHAbە~HfpQJ`ےvXnHAbےrd|J`ےltbvXnrd|Xv`fJ`ےvXnrd|v`fJ`ےvXnAbے`rd|J`ےtbdvXn㉀ۑp|drbdQZ|`JXQZdQbtf~HbdQZ|vpfH`JXQvnXbHAXQvpfH`JXQrZdQbtbHAZpdQZ|vpfHZdQbt~HfbHAZvpfHZdQbt~HfpbHAZpvpfHJXQrZdQbtbHAZpQZ|dvpfH`ZQXbQtJldrtAr˂plJtfpvdrtA~f`r˂pv`fJ`ے~f`˂pZlJtA˂rXQdrtAJ~fZlJtApvndrtAdQ~f`lJtAvnXrXQ~f`˂pZHlJtArXQrtAJl~f`ۑpJAtbAdZJltZHAbArd|nXv`JltvXnZHAbە~HfpbHAZpvXnHAbےrdfJ`ےltbHAbےrd|Xv`fZ|dvXnrd|v`fJ`ےvXnAbے`rd|J`ےtbdvXnHr󙐂ˁ|drbdQZ|`JXQZdQbtf~HbdQZ|vpfH`JXQv󂀉rXQvpfH`JXQr~HfbHAZpdQZ|`JXQrZdQbt~HfrtAJlvpfHZdQbt~HfpbHAZpvpfHJXQrZdQbtbHAZpQZ|dvpfH`ZQXbQtJldrtAr˂plJtfpvdrtA~f`r˂p~HfpJ`ے~f`˂pZpvn˂rXQdrtAJ˂pZlJtApvntbdQ~vlJtAvnXrXQ~f`˂pZHlJtArXQrtAJl~frۑpJAtbAdZJltZHAbArd|nXv`JltvXnZHAbvnXbHAZpvXnHAbےXv`fJ`ےltbHAbےrd|Xv`fZ|dpfH~rd|v`fJ`ےvXnAbے`rdfJ`ےtbd˂pZHHr󙐉|drbdQZ|`JXQZdQbtf~HbdQZ|vpfH`JXQv`f󂀉bHvpfH`JXQr~HfbHAZpdQZ|`JXQrZdQbt~HfrtAJlf`vZdQbt~HfpbHAZdvpfHJXQr~HfpbHAZpQZ|dAbے`ۑpJAHrQtJldrtAr˂plJtfpvdrtA~f`r˂p~HfpAZd~f`˂pZpvn˂rXQdrtAJ˂pZlJtApvntdrXnvlJtAvnXrtAJl~f`˂pZHvnXrXQrtAJlJXQr󙐂ˁ`ZtbAdZJltZHAbArd|nXv`JltvXnZHAے`vnXrtAJbvXnHAbےXv`fJ`ےltbHAbےrd|Xv`ftAJlpfH~rd|v`ftbdvXnAbے`v`fJ`ےtbd˂pZHQXb㉀|drbdQZ|`JXQZdQbtfHfpbdQZ|vpfHJXQrv`pvdQZ|vpfH`JXQr~HfbHAZpdQZ|`JXQrZdQbt~HftbdQZf`vZdQbt~HfpQZ|dvpfHJXQr~HfpbHAZpQZ|dAbے`ۑpJAHrQtJldtAJlr˂plJtvndrtA~f`btlnXv`drtAJ~f`˂pZpvn˂rXQdrtAJ˂pZlJtApvn|drXH~lJtAvnXrtAJl~f`˂pZHvnXrXQrtAJlJXQHA󙐂ˁ`tbAdZtbZHAbArd|rXQJ`JltvXnJtAd|f~HltbvXnHAbےXv`fJ`ےltbHAbےrd|Xv`ftAJlfZHAbrd|v`ftbdvXnAbے`v`fJ`ےtbdbے`pfH~|drnvp`JXQZdQbtHAZpbdQZ|vpfHZdQbtfpvdQZ|vpfH`JXQr~HfbHAZpdQZ|`JXQrZdQbtHfptbdQZJQrZdQbt~HfpQZ|dvpfHJXQr~HfpbHAZpQZ|dJXQrːf۝`vQtJlfHf`r˂plJt˂rXdrtA~f`lJtnXv`drtAJ~f`˂pZpvn˂rXQdtAJl˂pZlJtAvnr|lt˂pZHlJtAvnXrtAJl~f`˂pZHvnXrXQrtAJlpZHAXnvˍtbAdZvXnZHAbArd|QJ`ےJltvXnArd|f~HltbQvXnHAے`Xv`fJ`ےtbnHAbےrd|XQJ`ےbdQZ|Abے`rd|v`ftbdvXnAbے`v`fJ`ےtbdbے`pfH~|drvpfH`JXQZdQbtbHAZpbdQZ|vpfHZdQbtXv`ZdrtvpfHJXQrb~HfbHAZpvpf`JXQrZdQbtHAZpdrtAJXQrZdQbt~HfpQZ|dvpfHJXQr~HfpbHAZpQZ|dJXQrːf۝`vQtJl~f`r˂plJt˂rXdrtA~f`lJtf~HAJlt~f`tlJpvn˂rXQHf`˂pZlJtA˂rXQJlt˂pZHlJtAvnXrtAJl~f`˂pZHvnXrXQtAJlp`JXXnvˍtbAdZvXnZHAbArd|QJ`ےJltvXnArd|fpvbdQZ|vXntAd|Xv`fJ`ےvXnHAbےrd|J`ےbdQZ|Abے`rd|v`ftbdvXnAے`v`fJ`ےtbnQr˂ppfH~|drvpfH`JXQZdQbtbHAZpbdQZ|vpfHZdQbtnXv`ˁdrtvpfHZdQbt~HfbHAZpvpfH`JXQrZdQbtbHAZpdrtAJXQrZdQbtHfpQZ|dvpfHJXQrbt~HfpbHAZp˅vpfHZHAbf۝`vQtJl~f`r˂plJt˂rXdrtA~f`lJtf~HAJlt~f`lJtApvn˂rXQ~f`˂pZlJtA˂rXQdQZ|ZHAblJtAvnrXrtAJl~f`lJtvnXrXQf`ے`JXXnvˍtbAdZvXnZHAbArd|QJ`ےJltvXnArd|fpvbdQZ|vXnrd|Xv`fJ`ےvXnHAbےrd|J`ےdrtAJے`JXQrd|QJ`ےtbdvXnAd|v`fJ`ےvXnQr˂ppfH~|drvpfH`JXQZdQbtbHAZpbdQZ|vpfHZdQbt~HfprAJlvpfHZdQbt~HfbHAZpvpfH`JXQrZdQbtbHAZpltbr˂pZdQbtHAZpQZ|dvpfHZdQbt~HfpbHAZpvpfHZHAbf۝`vQtJl~f`r˂plJt˂rXdrtA~flJtvnXtbdQ~f`lJtApvn˂rXQ~f`˂pZlJtA˂rXQdQZ|ZHAblJtArXQrtAJl~f`lJtAvnXrXQ~f`˂pXnvˍtbAdZvXnZHAbArdQJ`ےJltZHAbArd|v`fZ|dvXnrd|Xv`fJ`ےvXnHAbےrd|J`ےdrtAJے`JXQrd|J`ےtbdvXnrd|v`fJ`ےvXnZHAbpfH~|drvpfH`JXQf~HbHAZpbdQZ|`JXQZdQbt~HfprtAJlvpfHZdQbt~HfbHAZpvpfH`JXQrZdQbtbHAZpltdr˂pZdQbtbHAZpQZ|dvpfHZdQbt~HfpbHAZpvpfH`JXQf۝`vQtJl~f`r˂pfpv˂rXdrtAr˂plJtvnXtbdQ~f`lJtApvn˂rXQ~f`˂pZlJtA˂rXQrtAJlZAb`lJtArXQrtAJl~f`lJtAvnXrXQ~f`r˂pXnvˍtbAdZ|666666666666666666666666666666666666666666667777777 \ No newline at end of file diff --git a/vendor/endroid/qr-code/assets/data/qrv35_0.dat b/vendor/endroid/qr-code/assets/data/qrv35_0.dat deleted file mode 100755 index 712d99df8..000000000 --- a/vendor/endroid/qr-code/assets/data/qrv35_0.dat +++ /dev/null @@ -1,313 +0,0 @@ -~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgcccdcdcdbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYZYZYXWXWXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQNMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?>=>=>=>=~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgcdcdcdcdbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWXWXWVUVUVUVUVUVUTSTSTSTSRQRQRQRQNMNMNMNMLKKKKKKLJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?>=>=>=>=~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgcdcdcdcdbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUVUVUTSTSTSTSTSTSRQRQRQRQNMNMNMNMKLKLKLKLJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?>=>=>=>=~}~}~}~}|{{{{{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgcdcdcdcdbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSTSTSRQRQRQRQRQRQNMNMNMNMKLKLKLKLJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?>=>=>=>=~}~}~}~}|{|{|{zyzyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgcdcdcdcdbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQRQRQPOPONMNMNMNMKLKLKLKLJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?>=>=>=>=~}~}~}~}zyzyzyzyzyzyzyxwxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgccccccdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMKLKLKLKLJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?>=>=>=>=~}~}~}~}zyzyzyzyxwxwxwxwxwxwxwvuvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihgfefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMKLKLKKKKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?>=>=>=>=~}~}~}~}zyzyzyzyxwxwxwxwvuvuvuvuvuvuvutststststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijifefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMKKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?>=>=>=>=|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutststststststsrqrqrqrqrqpopopoponmnmnmnmlklklklkjijijijifefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?>=>=>=>={{{{{|{|zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqrqrqrqpopopopoponmnmnmnmlklklklkjijijijifefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?>=>=>=>={|{|{|{|zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopopopopoponmnmnmnmnmlklklklkjijijijifefefefedcdcccccbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?>=>=>=>={|{|{|{|zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmnmnmnmlklklklklkjijijijifefefefecdcdcdcdbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?>=>=>=>={|{|{|{|zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklklklklkjijijijijifefefefecdcdcdcdbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMKKKKKLKLJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?>=>=>=>=<;<;<;<;{|{|{|{|zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijijijijihgfefefefecdcdcdcdbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMKLKLKLKLJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?>=>=>=>=<;<;<;<;{|{{{{{{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefecdcdcdcdbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMKLKLKLKLJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?>=>=>=>=<;<;<;<;~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefecdcdcdccbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMKLKLKLKLJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?>=>=>=>=<;<;<;<;~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefeccccdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMKLKLKLKLJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?>=>=>=>=<;<;<;<;~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMKLKKKKKKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?>=>=>=>=<;<;<;<;~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?>=>=>=>=<;<;<;<;~}~}~}~}|{|{|{{{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?>=>=>=>=<;<;<;<;~}~}~}~}{{{|{|{|zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?>=>=>=>=<;<;<;<;~}~}~}~}{|{|{|{|zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefedccccccdbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?>=>=>=>=<;<;<;<;~}~}~}~}{|{|{|{|zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefecdcdcdcdbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKKKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?>=>=>=>=<;<;<;<;~}~}~}~}{|{|{|{|zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefecdcdcdcdbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMKKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?>=>=>=>=<;<;<;<;~}~}~}~}{|{|{|{|zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefecdcdcdcdbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKJIJIJIJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?>=>=>=>=<;<;<;<;~}~}~}~}{{{{{{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefecdcdcdcdbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMJIJIJIJIJIHGHGHGHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?>=>=>=>=<;<;<;<;~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefecdcdccccbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMJIJIJIJIHGHGHGHGHGFEFEFEFEFEFEFEDCDCDCDCBABABABA@?@?@?@?>=>=>=>=<;<;<;<;~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefeccdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMLKLKJIJIJIJIHGHGHGHGFEFEFEFEFEDCDCDCDCDCDCDCBABABABA@?@?@?@?>=>=>=>=<;<;<;<;~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPOLKLKKKKKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCDCBABABABABABABA@?@?@?@?>=>=>=>=<;<;<;<;~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPOKLKLKLKLJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABABA@?@?@?@?@?@?@?>=>=>=>=<;<;<;<;~}~}~}~}|{|{{{{{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPOKLKLKLKLJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?@?>=>=>=>=>=>=>=<;<;<;<;~}~}~}~}{|{|{|{|zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPOKLKLKLKLJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?>=>=>=>=>=<;<;<;<;<;<;<;~}~}~}~}{|{|{|{|zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefeccccdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPOKLKLKLKLJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?>=>=>=>=<;<;<;<;<;<;<;<;~}~}~}~}{|{|{|{|zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefedcdcbabababababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPOKLKLKLKKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?>=>=>=>=<;<;<;<;<;<;<;<;~}~}~}~}{|{|{|{|zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefebabababababa`_`_`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPOKKKKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?>=>=>=>=<;<;<;<;<;<;<;<;~}~}~}~}{|{|{|{{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefebabababa`_`_`_`_`_`_^]^]^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQNMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?>=>=>=>=<;<;<;<;<;<;<;<;~}~}~}~}{{{{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefedcbabababa`_`_`_`_^]^]^]^]^]^]\[\[\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQNMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?>=>=>=>=<;<;<;<;<;<;<;<;~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgdcdcdcccbabababa`_`_`_`_^]^]^]^]\[\[\[\[\[\[ZYZYZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQNMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?>=>=>=>=<;<;<;<;<;<;<;<;<;<;<;<;:9:9:9:96565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - <;<;<;<;:9:9:9:96565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - <;<;<;<;:9:9:9:96565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - <;<;<;<;:9:9:9:96565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - <;<;<;<;:9:9:9:96565656533333434212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - <;<;<;<;:9:9:9:96565656534343434212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - <;:9:9:9:9:9:9:96565656534343434212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - :9:9:9:9:98787876565656534343434212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - :9:9:9:9878787876565656534343434212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - :9:9:9:9878787876565656534333333212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - :9:9:9:9878787876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - :9:9:9:9878787876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - :9:9:9:9878787876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - :9:9:9:9878787876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - :9:9:9:9878787876565656543434333212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - :9:9:9:9878787876565656533343434212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - :9:9:9:9878787876565656534343434212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - :9:9:9:9878787876565656534343434212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - :9:9:9:9878787876565656534343434212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - :9:9:9:9878787876565656534343434212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - :9:9:9:9878787876565656533333343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - :9:9:9:9878787876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - :9:9:9:9878787876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - :9:9:9:9878787876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!         - - - - :9:9:9:9878787876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!           - - - - :9:9:9:9878787876565656543433333212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - - :9:9:9:9878787876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - - - - :9:9:9:9878787876565656521212121212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - :9:9:9:98787878765656565212121210/0/0/0/0/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!      - - - - :9:9:9:98787878765656565212121210/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!    - - - - :9:9:9:98787878765434343212121210/0/0/0/.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!    - - - - :9:9:9:98787878743333334212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!    - - - - :9:9:9:98787878734343434212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('('('('('&%&%&%&%$#$#$#$#"!"!"!"!    - - - - :9:9:9:98787878734343434212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%&%&%&%&%$#$#$#$#"!"!"!"!    - - - - :9:9:9:98787878734343434212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!    - - - - :9:9:9:98787878734343434212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!"!"!"!"!    - - - - :9:9:9:98787878734343333212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - :9:9:9:98787876533434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - -  ==>>??@@FFEEDDCCaabbccdd@@??>>==YYZZ[[\\HHGGFFEEQQRRSSTTPPOONNMMIIJJKKLLXXWWVVUUAABBCCDDQQKKJJIIssttuuvv~~##""!! vvwwxxyy++**))((nnooppqq33221100ffgghhii""!!  mmllkkjj8899::;;iihhggff00112233qqppoonn(())**++yyxxwwvv !!""##AABBCCDDBBAA@@??eeffgghh<<;;::99]]^^__``DDCCBBAAUUVVWWXXLLKKJJIIMMNNOOPPTTSSRRQQEEFFGGHHHHGGFFEEwwxxyyzzzz{{||}}''&&%%$$rrssttuu//..--,,jjkkllmm - - - - iihgfedc<<==>>??eeddccbb44556677mmllkkjj,,--..//uuttssrr$$%%&&''EEFFGGHH>>==<<;;iijjkkll88776655aabbccdd@@??>>==YYZZ[[\\HHGGFFEEQQRRSSTTPPOONNMMIIJJKKLLDDCCBBAA{{ - -~~##""!! vvwwxxyy++**))((nnooppqq !!cbbaa``_@@AABBCCaa``__^^8899::;;iihhggff00112233qqppoonn(())**++{{IIJJKKQQ::998765mmnnoopp44332211eeffgghh<<;;::99]]^^__``DDCCBBAAUUVVWWXXLLKKJJIIMMNNOOPP@@??>>==  zz{{||}}''&&%%$$rrssttuu !!"" - -""##$$%%_^^]]\\[DDEEFFGG]]\\[[ZZ<<==>>??eeddccbb44556677mmllkkjj,,--..// zzyyxxwwRRSSTTUU43322110qqrrsstt00//..--iijjkkll88776655aabbccdd@@??>>==YYZZ[[\\HHGGFFEEQQRRSSTT<<;;::99 - - ~~##""!! vvwwxxyy - -##$$%%&&~~}}||{{ &&''(())[ZZYYXXWHHIIJJKKYYXXWWVV@@AABBCCaa``__^^8899::;;iihhggff00112233!!""##$$vvuuttssVVWWXXYY0//..--,uuvvwwxx,,++**))mmnnoopp44332211eeffgghh<<;;::99]]^^__``DDCCBBAAUUVVWWXX33221100 zz{{||}} ~}|{{''(())**zzyyxxww !!"" - -**++,,--WVVUUTTSLLMMNNOOUUTTSSRRDDEEFFGG]]\\[[ZZ<<==>>??eeddccbb44556677%%&&''((rrqqppooZZ[[\\]],++**))(yyzz{{||((''&&%%qqrrsstt00//..--iijjkkll88776655aabbccdd@@??>>==YYZZ[[\\//..--,,  - - ~~zzyyxxww++,,--..vvuuttss##$$%%&&~~}}||{{ ..//0011SRRQQPONPPQQRRSSQQPPOONNHHIIJJKKYYXXWWVV@@AABBCCaa``__^^8899::;;~~}}))**++,,nnmmllkk^^__``aa(''&&%%$}}~~$$##""!!uuvvwwxx,,++**))mmnnoopp44332211eeffgghh<<;;::99]]^^__``++**))(( - -   - - vvuuttss//001122rrqqppoo''(())**zzyyxxww !!""223399::MLKKJJIITTUUVVWWMMLLKKJJLLMMNNOOUUTTSSRRDDEEFFGG]]\\[[ZZ<<==>>??||{{zzyy--..//00jjiiccbbbbcciijj$##""!! yyzz{{||((''&&%%qqrrsstt00//..--iijjkkll88776655aabbccdd''&&%%$$  - -  rrqqppoo33445566nnmmllkk++,,--..vvuuttss##$$%%&&~~}}||{{;;<<==>>HHGGFFEEXXYYZZ[[IIHHGGFFPPQQRRSSQQPPOONNHHIIJJKKYYXXWWVV@@AABBCCxxwwvvuu11223344aa``__^^kkllmmnn}}~~$$##""!!uuvvwwxx,,++**))mmnnoopp44332211eeffgghh##""!! - -  nnmmllkk778899::jjiihhgg//001122rrqqppoo''(())**zzyyxxww !!""??@@AABBDDCCBBAA\\]]^^__EEDDCCBBTTUUVVWWMMLLKKJJLLMMNNOOUUTTSSRRDDEEFFGGttssrrqq55667788]]\\[[ZZooppqqrr yyzz{{||((''&&%%qqrrsstt00//..--iijjkkll  - - jjiihgfe;;<<==>>ffeeddcc33445566nnmmllkk++,,--..vvuuttss##$$%%&&~~}}||{{{{zzyyCCDDEEFF@@??>>==``aabbccAA@@??>>XXYYZZ[[IIHHGGFFPPQQRRSSQQPPOONNHHIIJJKKppoonnmm99::;;<>??@@UUTTSSRRwwxxyyzz  yyzz{{||((''&&%%qqrrsstt !! !!""##$$`__^^]]\CCDDEEFF^^]]\\[[;;<<==>>ffeeddcc33445566nnmmllkk++,,--..vvuuttss##$$%%&&ttssrrqqKKQQRRSS87654332hhiijjkk99887766``aabbccAA@@??>>XXYYZZ[[IIHHGGFFPPQQRRSS~~hhggffeeAABBCCDDQQKKJJII{{ - - - - }}~~$$##""!!uuvvwwxx ""##$$%%~~}}|| - - %%&&''((\[[ZZYYXGGHHIIJJZZYYXXWW??@@AABBbbaa``__778899::jjiihhgg//001122rrqqppoo''(())**ppoonnmmTTUUVVWW21100//.llmmnnoo55443322ddeeffgg==<<;;::\\]]^^__EEDDCCBBTTUUVVWW}}||{{zzddccbbaaEEFFGGHHHHGGFFEE   yyzz{{|| - - ~}|&&''(()){{zzyyxx !! ))**++,,XWWVVUUTKKLLMMNNVVUUTTSSCCDDEEFF^^]]\\[[;;<<==>>ffeeddcc33445566nnmmllkk++,,--..llkkjjiiXXYYZZ[[.--,,++*ppqqrrss1100//..hhiijjkk99887766``aabbccAA@@??>>XXYYZZ[[yyxxwwvv``__^^]]IIJJKKLLDDCCBBAA - - }}~~{{zzyyxx**++,,--wwvvuutt""##$$%%~~}}|| - - --..//00TSSRRQQPOOPPQQRRRRQQPPOOGGHHIIJJZZYYXXWW??@@AABBbbaa``__778899::jjiihhgg//001122ccbbaa``\\]]^^__*))((''&ttuuvvww--,,++**llmmnnoo55443322ddeeffgg==<<;;::\\]]^^__uuttssrr\\[[ZZYYMMNNOOPP@@??>>== - -   - -wwvvuutt..//0011ssrrqqpp&&''(()){{zzyyxx !!11223399ONMLKKJJSSTTUUVVNNMMLLKKKKLLMMNNVVUUTTSSCCDDEEFF^^]]\\[[;;<<==>>ffeeddcc33445566__^^]]\\``aabbcc&%%$$##"xxyyzz{{))((''&&ppqqrrss1100//..hhiijjkk99887766``aabbccqqppoonnXXWWVVUUQQRRSSTT<<;;::99  - -  ssrrqqpp22334455oonnmmll**++,,--wwvvuutt""##$$%%~~}}||::;;<<==IIHHGGFFWWXXYYZZJJIIHHGGOOPPQQRRRRQQPPOOGGHHIIJJZZYYXXWW??@@AABBbbaa``__778899::[[ZZYYXXiijjkkll"!! ||}}~~%%$$##""ttuuvvww--,,++**llmmnnoo55443322ddeeffggmmllkkjjTTSSRRQQUUVVWWXX33221100 - -  oonnmmll66778899kkjjiihh..//0011ssrrqqpp&&''(()){{zzyyxx !!>>??@@AAEEDDCCBB[[\\]]^^FFEEDDCCSSTTUUVVNNMMLLKKKKLLMMNNVVUUTTSSCCDDEEFF^^]]\\[[;;<<==>>WWVVUUTTmmnnoopp!! xxyyzz{{))((''&&ppqqrrss1100//..hhiijjkkiihhggffPPOONNMMYYZZ[[\\//..--,,  - - kkjjiihg::;;<<==ggffeedd22334455oonnmmll**++,,--wwvvuutt""##$$%%~~}}||{{zzBBCCDDEEAA@@??>>__``aabbBBAA@@??WWXXYYZZJJIIHHGGOOPPQQRRRRQQPPOOGGHHIIJJZZYYXXWW??@@AABBSSRRQQKKqqrrsstt||}}~~%%$$##""ttuuvvww--,,++**llmmnnooeeddccbbLLKKJJII]]^^__``++**))(( - - fedccbba>>??@@AAccbbaa``66778899kkjjiihh..//0011ssrrqqpp&&''(()){{zzyyxx !!yyxxwwvvFFGGHHII==<<;;::ccddeeff>>==<<;;[[\\]]^^FFEEDDCCSSTTUUVVNNMMLLKKKKLLMMNNVVUUTTSSCCDDEEFFJJIIHHGGuuvvwwxx!! xxyyzz{{))((''&&ppqqrrssaa``__^^HHGGFFEEaabbccdd''&&%%$$  !!""##a``__^^]BBCCDDEE__^^]]\\::;;<<==ggffeedd22334455oonnmmll**++,,--wwvvuutt""##$$%%uuttssrrJJKKQQRR99876543gghhiijj::998877__``aabbBBAA@@??WWXXYYZZJJIIHHGGOOPPQQRRRRQQPPOOGGHHIIJJFFEEDDCCyyzz{{ ||}}~~%%$$##""ttuuvvww]]\\[[ZZDDCCBBAAeeffgghh##""!!!!""##$$~~}} - - $$%%&&'']\\[[ZZYFFGGHHII[[ZZYYXX>>??@@AAccbbaa``66778899kkjjiihh..//0011ssrrqqpp&&''(())qqppoonnSSTTUUVV3221100/kkllmmnn66554433ccddeeff>>==<<;;[[\\]]^^FFEEDDCCSSTTUUVVNNMMLLKKKKLLMMNNBBAA@@?? - - !! xxyyzz{{YYXXWWVV@@??>>==iijjkkll%%&&''((||{{zzyy  (())**++YXXWWVVUJJKKLLMMWWVVUUTTBBCCDDEE__^^]]\\::;;<<==ggffeedd22334455oonnmmll**++,,--mmllkkjjWWXXYYZZ/..--,,+ooppqqrr221100//gghhiijj::998877__``aabbBBAA@@??WWXXYYZZJJIIHHGGOOPPQQRR>>==<<;; - -||}}~~UUTTSSRR<<;;::99mmnnoopp))**++,,xxwwvvuu!!""##$$~~}} - - ,,--..//UTTSSRRQNNOOPPQQSSRRQQPPFFGGHHII[[ZZYYXX>>??@@AAccbbaa``66778899kkjjiihh..//0011iiccbbaa[[\\]]^^+**))(('ssttuuvv..--,,++kkllmmnn66554433ccddeeff>>==<<;;[[\\]]^^FFEEDDCCSSTTUUVV::993322 QQPPOONN88776655qqrrsstt~}|--..//00ttssrrqq%%&&''((||{{zzyy  00112233QPONMLKKRRSSTTUUOONNMMLLJJKKLLMMWWVVUUTTBBCCDDEE__^^]]\\::;;<<==ggffeedd22334455``__^^]]__``aabb'&&%%$$#wwxxyyzz**))((''ooppqqrr221100//gghhiijj::998877__``aabbBBAA@@??WWXXYYZZ1100//.. - -MMLLKKJJ44332211uuvvwwxx {{zzyyxx11223344ppoonnmm))**++,,xxwwvvuu!!""##$$~~}}99::;;<>??@@AAccbbaa``66778899\\[[ZZYYcciijjkk#""!! {{||}}~~&&%%$$##ssttuuvv..--,,++kkllmmnn66554433ccddeeff>>==<<;;[[\\]]^^--,,++** - -  IIHHGGFF00//..--yyzz{{|| - - - -wwvvuutt55667788llkkjjii--..//00ttssrrqq%%&&''((||{{zzyy ==>>??@@FFEEDDCCZZ[[\\]]GGFFEEDDRRSSTTUUOONNMMLLJJKKLLMMWWVVUUTTBBCCDDEE__^^]]\\::;;<<==XXWWVVUUllmmnnoo""!! wwxxyyzz**))((''ooppqqrr221100//gghhiijj::998877__``aabb))((''&&  - -EEDDCCBB,,++**))}}~~ ssrrqqpp99::;;<>??@@AATTSSRRQQppqqrrss{{||}}~~&&%%$$##ssttuuvv..--,,++kkllmmnn66554433ccddeeff%%$$##"" - -  AA@@??>>((''&&%%oonnmmll==>>??@@ddccbbaa55667788llkkjjii--..//00ttssrrqq%%&&''((||{{zzyy zzyyxxwwEEFFGGHH>>==<<;;bbccddee??>>==<>??@@ddccbbaa55667788llkkjjii--..//00ttssrrqq%%&&''((rrqqppooRRSSTTUU43322110jjkkllmm77665544bbccddee??>>==<>==<< {{||}}~~&&%%$$##ssttuuvv !!""##~~ - - 1100//..$$%%&&'']\\[[ZZYMMNNOOPPTTSSRRQQEEFFGGHH\\[[ZZYY==>>??@@ddccbbaa55667788llkkjjii--..//00jjiiccbbZZ[[\\]],++**))(rrssttuu//..--,,jjkkllmm77665544bbccddee??>>==<>??@@ddccbbaa55667788]]\\[[ZZbbcciijj$##""!! zz{{||}}''&&%%$$rrssttuu//..--,,jjkkllmm77665544bbccddee??>>==<>??@@UUTTSSRRooppqqrrzz{{||}}''&&%%$$rrssttuu//..--,,jjkkllmm77665544bbccddee&&%%$$## - - - -  qqppoonn44556677mmllkkjj,,--..//uuttssrr$$%%&&''}}||{{zz xxwwvvuu--..//00ttssrrqq%%&&''((||{{zzyy  00112233QPONMLKKRRSSTTUUOONNMMLLJJKKLLMMWWVVUUTTBBCCDDEE__^^]]\\::;;<<==ggffeedd22334455]]\\[[ZZooppqqrr - - ttssrrqq11223344ppoonnmm))**++,,xxwwvvuu!!""##$$~~}}99::;;<>??@@AAccbbaa``66778899YYXXWWVVssttuuvvppoonnmm55667788llkkjjii--..//00ttssrrqq%%&&''((||{{zzyy ==>>??@@FFEEDDCCZZ[[\\]]GGFFEEDDRRSSTTUUOONNMMLLJJKKLLMMWWVVUUTTBBCCDDEE__^^]]\\::;;<<==UUTTSSRRwwxxyyzz - -llkkjjii99::;;<>??@@AAQQKKJJII{{ - - hgfedccb==>>??@@ddccbbaa55667788llkkjjii--..//00ttssrrqq%%&&''((||{{zzyy zzyyxxwwEEFFGGHH>>==<<;;bbccddee??>>==<>??@@ddccbbaa55667788llkkjjii--..//00ttssrrqq%%&&''((rrqqppooRRSSTTUU43322110jjkkllmm77665544bbccddee??>>==<>==''(())**ZYYXXWWVIIJJKKLLXXWWVVUUAABBCCDD``__^^]]99::;;<>??@@ddccbbaa55667788llkkjjii--..//00jjiiccbbZZ[[\\]],++**))(rrssttuu//..--,,jjkkllmm77665544bbccddee??>>==<>??@@ddccbbaa55667788]]\\[[ZZbbcciijj$##""!! zz{{||}}''&&%%$$rrssttuu//..--,,jjkkllmm77665544bbccddee??>>==<>??GGFFEEDDYYZZ[[\\HHGGFFEEQQRRSSTTPPOONNMMIIJJKKLLXXWWVVUUAABBCCDD``__^^]]99::;;<>??@@UUTTSSRRooppqqrrzz{{||}}''&&%%$$rrssttuu//..--,,jjkkllmm77665544bbccddee##""!!~~}}||**++,,--{{zzyyxxDDEEFFGG??>>==<>==YYZZ[[\\HHGGFFEEQQRRSSTTPPOONNMMIIJJKKLLXXWWVVUUAABBCCDDQQKKJJIIssttuuvv~~##""!! vvwwxxyy++**))((nnooppqq33221100ffgghhii{{zzyyxx..//0011 !!""##wwvvuuttHHIIJJKK;;::9987eeffgghh<<;;::99]]^^__``DDCCBBAAUUVVWWXXLLKKJJIIMMNNOOPPTTSSRRQQEEFFGGHHHHGGFFEEwwxxyyzzzz{{||}}''&&%%$$rrssttuu//..--,,jjkkllmmwwvvuutt22334455$$%%&&''ssrrqqppQQRRSSTT65433221iijjkkll88776655aabbccdd@@??>>==YYZZ[[\\HHGGFFEEQQRRSSTTPPOONNMMIIJJKKLLDDCCBBAA{{ - -~~##""!! vvwwxxyy++**))((nnooppqqssrrqqpp66778899(())**++oonnmmllUUVVWWXX100//..-mmnnoopp44332211eeffgghh<<;;::99]]^^__``DDCCBBAAUUVVWWXXLLKKJJIIMMNNOOPP@@??>>==  zz{{||}}''&&%%$$rrssttuu oonnmmll::;;<<==,,--..//kkjjiiccYYZZ[[\\-,,++**)qqrrsstt00//..--iijjkkll88776655aabbccdd@@??>>==YYZZ[[\\HHGGFFEEQQRRSSTT<<;;::99 - - ~~##""!! vvwwxxyy - - - -kkjjiihh>>??@@AA00112233bbaa``__]]^^__``)((''&&%uuvvwwxx,,++**))mmnnoopp44332211eeffgghh<<;;::99]]^^__``DDCCBBAAUUVVWWXX33221100 zz{{||}} ggffeeddBBCCDDEE44556677^^]]\\[[aabbccii%$$##""!yyzz{{||((''&&%%qqrrsstt00//..--iijjkkll88776655aabbccdd@@??>>==YYZZ[[\\//..--,,  - - ~~ccbbaa``FFGGHHII8899::;;ZZYYXXWWjjkkllmm! }}~~$$##""!!uuvvwwxx,,++**))mmnnoopp44332211eeffgghh<<;;::99]]^^__``++**))(( - -  __^^]]\\JJKKLLMM<<==>>??VVUUTTSSnnooppqq yyzz{{||((''&&%%qqrrsstt00//..--iijjkkll88776655aabbccdd''&&%%$$  - - [[ZZYYXXNNOOPPQQ@@AABBCCRRQQKKJJrrssttuu}}~~$$##""!!uuvvwwxx,,++**))mmnnoopp44332211eeffgghh##""!! - -  !!""##WWVVUUTTRRSSTTUUDDEEFFGGIIHHGGFFvvwwxxyy yyzz{{||((''&&%%qqrrsstt00//..--iijjkkll  - - $$%%&&''SSRRQQPPVVWWXXYYHHIIJJKKEEDDCCBBzz{{ }}~~$$##""!!uuvvwwxx,,++**))mmnnoopp - - (())**++OONNMMLLZZ[[\\]]LLMMNNOOAA@@??>> - -   yyzz{{||((''&&%%qqrrsstt !! ,,--..//KKJJIIHH^^__``aaPPQQRRSS==<<;;:: - - }}~~$$##""!!uuvvwwxx ""##$$%%~~}}|| - - 00112233GGFFEEDDbbccddeeTTUUVVWW99332211  yyzz{{|| - - ~}|&&''(()){{zzyyxx !! 99::;;<>??@@??>>==<>??@@AAccbbaa``66778899kkjjiihh..//0011ssrrqqpp&&''(()){{zzyyxx !!vvuuttssVVWWXXYY++**))((~~ppqqrrss  !!""##a``__^^]BBCCDDEE__^^]]\\::;;<<==ggffeedd22334455oonnmmll**++,,--wwvvuutt""##$$%%rrqqppooZZ[[\\]]''&&%%$$ttuuvvww !!""##$$~~}} - - $$%%&&'']\\[[ZZYFFGGHHII[[ZZYYXX>>??@@AAccbbaa``66778899kkjjiihh..//0011ssrrqqpp&&''(())nnmmllkk^^__``aa##""!! xxyyzz{{ - - ~%%&&''((||{{zzyy  (())**++YXXWWVVUJJKKLLMMWWVVUUTTBBCCDDEE__^^]]\\::;;<<==ggffeedd22334455oonnmmll**++,,--jjiiccbbbbcciijj||}}~~}|{{zzyy))**++,,xxwwvvuu!!""##$$~~}} - - ,,--..//UTTSSRRQNNOOPPQQSSRRQQPPFFGGHHII[[ZZYYXX>>??@@AAccbbaa``66778899kkjjiihh..//0011aa``__^^kkllmmnnbdQZ|vpf˂pZtlJv`fXQJ`ےJltH~fr˂p|ZdQbf~HXQJ`ےJltH~fp`JXQd|Z`f~J`ےltb~f`˂pZZdQbt~HfJ`ےltb~f`˂p`J~fpvHAZp˂Z|dXnvbے`lJtAdQbnXHfpv`ےbtbdQf`vtArdnXvZp˂|drnvpے`JJtArdnXvZp˂drtAH~fHAbےtArd~HfpbHAZbdQZ|`vXnZHAbtlJfpvbHAZbdQZ|`vXnr˂pdQbtHfpvbHAZpdQZ|vXnHAbےlJtApvnbHAZpdQZ|vXnXQr˂nXv`rXQJrtAJlpfH~JXQrd|Zv`fnrXQHAZp˂Z|dXnv|ZdQb`f~fprXQJ`tAJlfH~XQr˂|ZdQ`f~rXQJ`Jlt`vXn`JXQr|ZdQbvnXp˂rdrtAvpfے`JXQtArdnXv`p˂rdrtAvpfZHAbl|ZdQnXv˂rXQdrtAJvpfH`JXQrrd|Xv`f˂rXQdrtAJvpfHpZHAbf~H`ےbtbdQf`v˂pZHAdQbt~HfpJ`ےrbdQtAJlpfH~tl|vnXےbHAtbdQZf`vXpZHAbbtlHfpvےbHAbdQZ|vpf˂p`tl|v`f~XQJ`ےJltH~fr˂p|ZdQbf~HXQJ`ےJltH~fے`JXQbtl`ffpJ`ےltb~f`˂pZZdQbt~HfJ`ےltb~f`ے`JfpvHAZp˂Z|dXnvbے`lJtArvnXHAZp˂Z|dtbnf`vZdQbtv`fZp˂|drnvpے`JJtArdnXvZp˂drtAH~fJXQrZdQbtfpv㐙bHAZbdQZ|`vXnZHAbtlJfpvbHAZbdQZ|`vXnr˂pJtArdvnrbHAZpdQZ|vXnHAbےlJtApvnbHAZpdQZ|vXnXQr˂nXv`rXQJrtAJlpfH~JXQrd|Zv`frXQJrtAJlvpfHXnrlJtA~HfprXQJ`tAJlfH~XQr˂|ZdQ`f~rXQJ`Jlt`vXn˂pZHAlJtAnXv`p˂rdrtAvpfے`JXQtArdnXv`p˂rdrtAvpf`JXQr|ZdQXQJ`ے˂rbdtAJlvpfH`JXQrrd|Xv`f˂rXQdrtAJvpfHp`JXQf~fp`ےbtbdQf`v˂pZHAdQbt~Hfp`ےbtbdQf`v˂p`Jrd|vnXےbHAtbdQZf`vXpZHAbbtlHfpvےbHAbdQZ|vpfbے`rd|f~HXQJ`ےJltH~fr˂p|ZdQbf~HXQJ`ےJltH~f˂pZbtlHAZpdQZ|tbn~f`˂pZZdQbt~HfJ`ےltb~f`rbtvnXHAZp˂Z|dXnvbے`lJtArvnXHAZp˂Z|dXnvXQr˂ZdQbtv`f~Zp˂|drnvpے`JJtArdnXvZp˂drtAH~fJXQrZdQbtfpv㐙bHAZbdQZ|`vXnZHAbtlJfpvbHAZbdQZ|`vXnHAbے|ZdQb˂rXQdrtAJvpfvXnrHAے`lJtApvnbHAZpdQZ|vXnl|ZdQv`frXQJrtAJlpfH~JXQrd|Zv`frXQJrtAJlpfH~pZHAbl|ZfpvrXQJ`tAJlfH~XQr˂|ZdQ`f~rXQJ`Jlt`vXn˂p`Jl|ZnXv`fp˂rdrtAvpfے`JXQtArdnXv`p˂rdrtAvpf`JXQrnXv`J`ےltbHf`˂pZJXQrbrd|Xv`f˂rXQdrtAJvpfHbtl~Hfp`ےbtbdQf`v˂pZHAdQbt~Hfp`ےbtbdQf`vے`JdQbtnXv`ےbHAtbdQZf`vXpZHAbbtlHfpvےbHAbdQZ|vpfXQr˂dQbt璕~fpvXQJ`ےJltH~fr˂p|ZdQbf~HXQJ`ےJltH~f˂p`f~fpbHAZpdQZ|vXnHAbےtlJZdQbnHfpJ`ےltb~f`JtArdvnXHAZp˂Z|dXnvbے`lJtArvnXHAZp˂Z|dXnvXQr˂lJtArf~HZp˂|drnvpے`JJtArdnXvZp˂drtAH~fpZHAblJtArnXvbHAZbdQZ|`vXnZHAbtlJfpvbHAZbdQZ|`vXnJXQrvnX˂rXQdrtAJvpfH`JXQrtAd|Xv`fvnrbHAZpdQZ|vXn|ZdQv`f~rXQJrtAJlpfH~JXQrd|Zv`frXQJrtAJlpfH~p`JXQd|ZfpvrXQJ`tAJlfH~XQr˂|ZdQ`f~rXQJ`Jlt`vXnے`Jd|Z`f~p˂rdrtAvpfے`JXQtArdnXv`p˂rdrtAvpf˂pZHAv`fJ`ےltb~f`˂pZZdQbt~HfXQJ`ے˂rbdtAJlvpfHbtlfpv`ےbtbdQf`v˂pZHAdQbt~Hfp`ےbtbdQf`vr˂pdQbtnXv`ےbHAtbdQZf`vXpZHAbbtlHfpvےbHAbdQZ|vpfXQr˂dQbtHfpvXQJ`ےJltH~fr˂p|ZdQbf~HXQJ`ےJltH~fbے`~HfpbHAZpdQZ|vXnHAbےlJtApvnHAZpdQZ|tbn~f`|ZdQbnXv`HAZp˂Z|dXnvbے`lJtArvnXHAZp˂Z|dXnvZHAbl|ZdQf~fpZp˂|drnvpے`JJtArdnXvZp˂|drdrtAH~fp`JXQl|ZdQnXvbHAZbdQZ|`vXnZHAbtlJfpvbHAZbdQZ|`vXnJXQrvnX˂rXQdrtAJvpfH`JXQrrd|Xv`f˂rXQdrtAJvpfvXnrtlJf~HrXQJrtAJlpfH~JXQrd|Zv`frXQJrtAJlpfH~ے`JXQbtlvnXrXQJ`tAJlfH~XQr˂|ZdQ`f~rXQJ`tAJlJlt`vXnr˂pbtl`frQp˂rdtAJvpfے`JXQtArdnXv`p˂rdrtAvpf˂p`Jv`f~fJ`ےltb~f`˂pZZdQbt~HfJ`ےltbHf`˂p`tArdfpv`ےbtbdQf`v˂pZHAdQbt~Hfp`ےbtbdQf`vr˂pJtArdv`fےbHAtbdQZf`vXpZHAbbtlHfpvےbHAtbdQZbdQZ|vpfZHAbJtArdJHAZbdQZ|ltbH~fr˂p|ZdQbf~HXQJ`ےJltH~fXQrbtpvnbHAZpdQZ|vXnHAbےlJtApvnbHAZpdQZ|vXnJXQr|ZdQbnXv`fHAZp˂Z|dXnvbے`lJtArvnXHAZp˂Z|dXnv`JXQr|ZdQ~HfpZp˂|drnvpے`JJtArdnXvZp˂|drdrtAH~fے`JXQ|ZdQp˂rdrtAnvp`vXnZHAےtlJfpvbHAZbdQZ|`vXnl|ZXv`f˂rXQdrtAJvpfH`JXQrrd|Xv`f˂rXQdrtAJvpfH˂pZHAtl|~fpvrXQJrtAJlpfH~JXQrd|Zv`frXQJrtAJlpfH~˂pZbtlvnXrXQJ`tAJlfH~XQr˂|ZdQ`f~rXQJ`tAJlJlt`vXnr˂pbtlXQJ`ےJltfHfr˂p`JXQrtArdnXv`p˂rdrtAvpfdQbt璐~HfJ`ےltb~f`˂pZZdQbt~HfJ`ےltb~f`bے`ZdQbtnXv`ےbtbdQf`v˂pZHAdQbt~Hfp`ےbtbdQf`vHAbے|ZdQbv`f~fےbHAtbdQZf`vXpZHAbbtlHfpvےbHAtbdQZbdQZ|vpf`JXQr|ZdQbbHAZbdQZ|`vXnZHAbbtl|ZdQbfHfXQJ`ےJltH~flJtArpvnbHAZpdQZ|vXnHAbےlJtApvnbHAZpdQZ|vXnJXQrlJtA`f~HAZp˂Z|dXnvbے`lJtArvnXHAZp˂Z|dXnv`JXQrtlJpvnZp˂|drnvpے`JJtArdnXvZp˂|drdrtAH~f˂pZnXv`p˂rdrtAvpfے`JXQJtAdnXv`pvnbHAZbdQZ|`vXnd|ZXv`f˂rXQdrtAJvpfH`JXQrrd|Xv`f˂rXQdrtAJvpfH˂p`Jrd|HfpvrXQJrtAJlpfH~JXQrd|Zv`frXQJrtAJlpfH~˂p`tArdXv`frXQJ`tAJlfH~XQr˂|ZdQ`f~rXQJ`tAJlJlt`vXnHAbےf~fpXQJ`ےJltH~fr˂p|ZdQbf~HrXQJ`p˂rdtAJvpfdQbt~fpvJ`ےltb~f`˂pZZdQbt~HfJ`ےltb~f`XQr˂ZdQbtnXv`ےbtbdQf`v˂pZHAdQbt~Hfp`ےbtbdQf`vJXQr|ZdQb~HfےbHAtbdQZf`vXpZHAbbtlHfpvےbHAtbdQZbdQZ|vpf`JXQrvnXbHAZbdQZ|`vXnZHAbtlJfpvےHAZbdQZ|ltbH~fl|ZdQnXv`bHAZpdQZ|vXnHAbےlJtApvnbHAZpdQZ|vXnpZHAbl|Z`f~fpHAZp˂Z|dXnvbے`lJtArvnXHAZp˂Z|dXnv˂pZHAtl|pvnZp˂|drnvpے`JJtArdnXvZp˂|drdrtAH~f˂p`v`fp˂rdrtAvpfے`JXQtArdnXv`p˂rdrtAnvp`vXnbtlf~H˂rXQdrtAJvpfH`JXQrrd|Xv`f˂rXQdrtAJvpfHے`JdQbt璝vnXrXQJrtAJlpfH~JXQrd|Zv`frXQJrtAJlpfH~bے`ZdQbtXv`frXQJ`tAJlfH~XQr˂|ZdQ`f~rXQJ`tAJlJlt`vXnJXQr~HfpXQJ`ےJltH~fr˂p|ZdQbf~HXQJ`ےJltfHfr˂pJtArdfpvJ`ےltb~f`˂pZZdQbt~HfJ`ےltb~f`XQr˂lJtArv`f`ےbtbdQf`v˂pZHAdQbt~Hfp`ےbtbdQf`vJXQrlJtAfpvےbHAtbdQZf`vXpZHAbbtlHfpvےbHAtbdQZbdQZ|vpf˂pZHAvnXbHAZbdQZ|`vXnZHAbtlJfpvbHAZbdQZ|`vXn`JXQr|ZdQnXv`bHAZpdQZ|vXnHAbےlJtApvnbHAZpdQZ|vXnp`JXQd|Z~HfpHAZp˂Z|dXnvbے`lJtArvnXHAZp˂Z|dXnv˂p`Jrd|nrXQJZp˂|dtAnvpے`JJtArdnXvZp˂|drdrtAH~fbے`v`f~fp˂rdrtAvpfے`JXQtArdnXv`p˂rdrtAvpf˂pZbtlf~fp˂rXQdrtAJvpfH`JXQrrd|Xv`f˂rXQdrtAJvpfHr˂pdQbt璝vnXrXQJrtAJlpfH~JXQrd|Zv`frXQJrtAJlpfH~XQr˂ZdQbt`ےHArbdQZJltfH~XQr˂|ZdQ`f~rXQJ`tAJlJlt`vXnJXQrpvnXQJ`ےJltH~fr˂p|ZdQbf~HXQJ`ےJltH~fHAbے|ZdQbvnXJ`ےltb~f`˂pZZdQbt~HfJ`ےltb~f`ZHAbl|ZdQv`f~`ےbtbdQf`v˂pZHAdQbt~Hfp`ےbtbdQf`vpZHAbl|ZZp˂|drbnvf`vXpZHAbtlHfpvےbHAtbdQZbdQZ|vpf˂p|ZXv`fbHAZbdQZ|`vXnZHAbtlJfpvbHAZbdQZ|`vXn`JXQrtlJv`fbHAZpdQZ|vXnHAbےlJtApvnbHAZpdQZ|vXnے`JXQbtlfpvHAZp˂Z|dXnvbے`lJtArvnXHAZp˂Z|dXnvے`JdQbnXrXQJ`tAJlpfHnr˂ے`JXQJtArdnXvZp˂|drdrtAH~fdQbt璐~Hfp˂rdrtAvpfے`JXQtArdnXv`p˂rdrtAvpf˂p`tArd~Hfp˂rXQdrtAJvpfH`JXQrrd|Xv`f˂rXQdrtAJvpfHr˂pJtArdnXv`rXQJrtAJlpfH~JXQrd|Zv`frXQJrtAJlpfH~XQr˂v`f~ےbHAtbdQZf`vXpZHAbrbt|ZdQ`fHrXQJ`tAJlJlt`vXnlJtArpvnXQJ`ےJltH~fr˂p|ZdQbf~HXQJ`ےJltH~fJXQr|ZdQbvnXJ`ےltb~f`˂pZZdQbt~HfJ`ےltb~f``JXQr|ZdQf~H`ےbtbdQf`v˂pZHAdQbt~Hfp`ےbtbdQf`vp`JXQfpvZp˂|drnvpے`JlJtAdbnXvfpvےbHAtbdQZbdQZ|vpfd|ZXv`fbHAZbdQZ|`vXnZHAbtlJfpvbHAZbdQZ|`vXn˂pZHAtl|v`f~bHAZpdQZ|vXnHAbےlJtApvnbHAZpdQZ|vXn˂pZbtlfpvHAZp˂Z|dXnvbے`lJtArvnXHAZp˂Z|dXnvr˂pnXv`rXQJ`tAJlfH~XQr˂|ZdQ`f~nrXQJZp˂|drdrtAH~fdQbt~fpvp˂rdrtAvpfے`JXQtArdnXv`p˂rdrtAvpfbے`ZdQbtfpv˂rXQdrtAJvpfH`JXQrrd|Xv`f˂rXQdrtAJvpfHHAbے|ZdQbnXv`rXQJrtAJlpfH~JXQrd|Zv`frXQJrtAJlpfH~ZHAbf~HےbHAtbdQZf`vXpZHAbbtlHfpv`ےHArbdQZtAJlJlt`vXnl|ZdQnXv`XQJ`ےJltH~fr˂p|ZdQbf~HXQJ`ےJltH~fJXQrlJtAnXv`J`ےltb~f`˂pZZdQbt~HfJ`ےltb~f``JXQrtlJffpv`ےbtbdQf`v˂pZHAdQbt~Hfp`ےbtbdQf`vے`JXQfpvZp˂|drnvpے`JJtArdnXvZp˂|drtbdQZbdQZ|vpfbtlf~HbHAZbdQZ|`vXnZHAbtlJfpvbHAZbdQZ|`vXn˂p`Jrd|f~HbHAZpdQZ|vXnHAbےlJtApvnbHAZpdQZ|vXn˂p`tArdnrXQHAZp˂Z|dXnvbے`lJtArvnXHAZp˂Z|dXnvr˂pnXv`frXQJ`tAJlfH~XQr˂|ZdQ`f~rXQJ`tAJl|drdrtAH~fJtArdfpvp˂rdrtAvpfے`JXQtArdnXv`p˂rdrtAvpfXQr˂ZdQbtfpv˂rXQdrtAJvpfH`JXQrrd|Xv`f˂rXQdrtAJvpfHJXQr|ZdQbJ`ےrbdQtAJlpfH~JXQrd|Zv`frXQJrtAJlpfH~`JXQr~fpvےbHAtbdQZf`vXpZHAbbtlHfpvےbHAtbdQZtAJlJlt`vXn|ZdQnXv`XQJ`ےJltH~fr˂p|ZdQbf~HXQJ`ےJltH~fpZHAbl|ZnXv`fJ`ےltb~f`˂pZZdQbt~HfJ`ےltb~f`˂pZHAtl|HAZp˂Z|dtbnf`v˂pZHAdQbt~Hfp`ےbtbdQf`vbtlnXvZp˂|drnvpے`JJtArdnXvZp˂|drtbdQZbdQZ|r˂pbtlf~fpbHAZbdQZ|`vXnZHAbtlJfpvbHAZbdQZ|`vXnے`JdQbt璕~fpvbHAZpdQZ|vXnHAbےlJtApvnbHAZpdQZ|vXnbے`ZdQbnrXQJrtAJlvpfHXnrے`JlJtArvnXHAZp˂Z|dXnv|ZdQb`f~rXQJ`tAJlfH~XQr˂|ZdQ`f~rXQJ`tAJl|dr`vXn`JXQr|ZdQbvnXp˂rdrtAvpfے`JXQtArdnXv`p˂rdrtAvpfXQr˂lJtArnXv˂rXQdrtAJvpfH`JXQrrd|Xv`f˂rXQdrtAJvpfHJXQrXv`f`ےbtbdQf`v˂pZHAXQrbtd|Zv`frXQJrtAJlpfH~tlJHfpvےbHAtbdQZf`vXpZHAbbtlHfpvےbHAtbdQZtAJltbdQZf`vXtl|nXv`p˂rdrtAvpfے`JXQtArdnXv`p˂rdrtAvpf˂pZbtlf~fp˂rXQdrtAJvpfH`JXQrrd|Xv`f˂rXQdrtAJvpfHpZHAbpJAHrvˍpf|drnvpZdQbtf~HXQJ`ےJltH~fr˂p|ZdQbf~HXQJ`ےJltH~fHAbے|ZdQbvnXJ`ےltb~f`˂pZZdQbt~HfJ`ےltb~f`ے`Jˁ`ZH~ㅐftAJlfH~lJtAfpvbHAZbdQZ|`vXnZHAbtlJfpvbHAZbdQZ|`vXn`JXQrtlJv`fbHAZpdQZ|vXnHAbےlJtApvnbHAZpdQZ|vXnXQr˂QXb㉀۝`vXntbdQZf`vXrd|nXv`p˂rdrtAvpfے`JXQtArdnXv`p˂rdrtAvpf˂p`tArd~Hfp˂rXQdrtAJvpfH`JXQrrd|Xv`f˂rXQdrtAJvpfHp`JXQp`ZQXvˍp||dtAnvpZdQbtf~fpXQJ`ےJltH~fr˂p|ZdQbf~HXQJ`ےJltH~fJXQr|ZdQbvnXJ`ےltb~f`˂pZZdQbt~HfJ`ےltb~f`r˂pb㉀ۑpdrQtJltfH~l|ZvnXbHAZbdQZ|`vXnZHAbtlJfpvbHAZbdQZ|`vXn˂pZHAtl|v`f~bHAZpdQZ|vXnHAbےlJtApvnbHAZpdQZ|vXnZHAbJAHrJltbnvf`vXdQbtv`fp˂rdrtAvpfے`JXQtArdnXv`p˂rdrtAvpfbے`ZdQbtfpv˂rXQdrtAJvpfH`JXQrrd|Xv`f˂rXQdrtAJvpfHے`JXQˁ`ZQXbAdZ|pfHnr˂lJtAr~HfpXQJ`ےJltH~fr˂p|ZdQbf~HXQJ`ےJltH~fJXQrlJtAnXv`J`ےltb~f`˂pZZdQbt~HfJ`ےltb~f`r˂pb㉀XndrQtf`vXp`JXQd|ZvnXbHAZbdQZ|`vXnZHAbtlJfpvbHAZbdQZ|`vXn˂p`Jrd|f~HbHAZpdQZ|vXnHAbےlJtApvnbHAZpdQZ|vXn`JXQrvˍpfJltnvpr˂pdQbtv`f~fp˂rdrtAvpfے`JXQtArdnXv`p˂rdrtAvpfXQr˂ZdQbtfpv˂rXQdrtAJvpfH`JXQrrd|Xv`f˂rXQdrtAJvpfH˂pZH~ㅐfbAdZ|fH~ZHAbl|ZdQpvnXQJ`ےJltH~fr˂p|ZdQbf~HXQJ`ےJltH~fpZHAbl|ZnXv`fJ`ےltb~f`˂pZZdQbt~HfJ`ےltb~f`HAbے`vXndrQtf`vXے`JXQbtlXv`fbHAZbdQZ|`vXnZHAbtlJfpvbHAZbdQZ|`vXnے`JdQbt璕~fpvbHAZpdQZ|vXnHAbےlJtApvnbHAZpdQZ|vXn`JXQrvˍpfJltnvpr˂pJtArd~Hfp˂rdrtAvpfے`JXQtArdnXv`p˂rdrtAvpfXQr˂lJtArnXv˂rXQdrtAJvpfH`JXQrrd|Xv`f˂rXQdrtAJvpfH˂p`H~ㅐfbAdZ|fH~`JXQr|ZdQpvnXQJ`ےJltH~fr˂p|ZdQbf~HXQJ`ےJltH~fp`JXQd|Z`f~J`ےltb~f`˂pZZdQbt~HfJ`ےltb~f`JXQr`vXndrQtf`vX˂pZbtlXv`fbHAZbdQZ|`vXnZHAbtlJfpvbHAZbdQZ|`vXnr˂pdQbtHfpvbHAZpdQZ|vXnHAbےlJtApvnbHAZpdQZ|vXn˂pZHAvˍpfJltnvpHAbے|ZdQb~fpvp˂rdrtAvpfے`JXQtArdnXv`p˂rdrtAvpfZHAbl|ZdQnXv˂rXQdrtAJvpfH`JXQrrd|Xv`f˂rXQdrtAJvpfHbے`H~ㅐfbAdZ|fH~`JXQrtlJnXv`XQJ`ےJltH~fr˂p|ZdQbf~HXQJ`ےJltH~fے`JXQbtl`ffpJ`ےltb~f`˂pZZdQbt~HfJ`ےltb~f`JXQr`vXndrQtf`vX˂p`tArdf~HbHAZbdQZ|`vXnZHAbtlJfpvbHAZbdQZ|`vXnr˂pJtArdvnrbHAZpdQZ|vXnHAbےlJtApvnbHAZpdQZ|vXn˂p`ZvˍpfJltnvpJXQr|ZdQbfpvp˂rdrtAvpfے`JXQtArdnXv`p˂rdrtAvpf`JXQr|ZdQXQJ`ے˂rbdtAJlvpfH`JXQrrd|Xv`f˂rXQdrtAJvpfHQXb㉀ەH~ㅐfbAdZ|fH~˂pZHAtl|nXv`XQJ`ےJltH~fr˂p|ZdQbf~HXQJ`ےJltH~f˂pZbtlHAZpdQZ|tbn~f`˂pZZdQbt~HfJ`ےltb~f`pJAHr`vXndrQtf`vXbے`ZdQbtf~fpbHAZbdQZ|`vXnZHAbtlJfpvbHAZbdQZ|`vXnHAbے|ZdQb˂rXQdrtAJvpfvXnrHAے`lJtApvnbHAZpdQZ|vXnˁ`ZvˍpfJltnvpJXQrlJtAvnXp˂rdrtAvpfے`JXQtArdnXv`p˂rdrtAvpf`JXQrnXv`J`ےltbHf`˂pZJXQrbrd|Xv`f˂rXQdrtAJvpfHQXb㉀ەH~ㅐfbAdZ|fH~˂p`Jrd|v`fXQJ`ےJltH~fr˂p|ZdQbf~HXQJ`ےJltH~f˂p`f~fpbHAZpdQZ|vXnHAbےtlJZdQbnHfpJ`ےltb~f`p`ZQX`vXndrQtf`vXXQr˂ZdQbt~HfpbHAZbdQZ|`vXnZHAbtlJfpvbHAZbdQZ|`vXnJXQrvnX˂rXQdrtAJvpfH`JXQrtAd|Xv`fvnrbHAZpdQZ|vXnb㉀ۑpvˍpfJltnvppZHAbl|ZvnXp˂rdrtAvpfے`JXQtArdnXv`p˂rdrtAvpf˂pZHAv`fJ`ےltb~f`˂pZZdQbt~HfXQJ`ے˂rbdtAJlvpfHJAHr󙐕H~ㅐfbAdZ|fH~ے`JdQbtv`ffXQJ`ےJltH~fr˂p|ZdQbf~HXQJ`ےJltH~fbے`~HfpbHAZpdQZ|vXnHAbےlJtApvnHAZpdQZ|tbn~f`ˁ`ZQX`vXndrQtf`vXXQr˂lJtArpvnbHAZbdQZ|`vXnZHAbtlJfpvbHAZbdQZ|`vXnJXQrvnX˂rXQdrtAJvpfH`JXQrrd|Xv`f˂rXQdrtAJvpfvXnےb㉀ۑpvˍpfJltnvpp`JXQd|ZrXQJ`p˂rdtAJvpfے`JXQtArdnXv`p˂rdrtAvpf˂p`Jv`f~fJ`ےltb~f`˂pZZdQbt~HfJ`ےltbHf``JXQr`ZQXbH~ㅐfbAdZ|fH~r˂pdQbtےHAZbdQZ|ltbH~fr˂p|ZdQbf~HXQJ`ےJltH~fXQrbtpvnbHAZpdQZ|vXnHAbےlJtApvnbHAZpdQZ|vXn˂pZۑpJ`vXndrQtf`vXZHAbl|ZdQp˂rdrtAnvp`vXnZHAےtlJfpvbHAZbdQZ|`vXnl|ZXv`f˂rXQdrtAJvpfH`JXQrrd|Xv`f˂rXQdrtAJvpfHHAbےAHr󙐂˕vˍpfJltnvpے`JXQbnXvXQJ`ےJltfHfr˂p`JXQrtArdnXv`p˂rdrtAvpfdQbt璐~HfJ`ےltb~f`˂pZZdQbt~HfJ`ےltb~f``JXQr`ZQXbH~ㅐfbAdZ|fH~r˂p`f~fpbHAZbdQZ|`vXnZHAbbtl|ZdQbfHfXQJ`ےJltH~flJtArpvnbHAZpdQZ|vXnHAbےlJtApvnbHAZpdQZ|vXn˂p`ۑp``vXndrQtf`vX`JXQrvnXp˂rdrtAvpfے`JXQJtAdnXv`pvnbHAZbdQZ|`vXnd|ZXv`f˂rXQdrtAJvpfH`JXQrrd|Xv`f˂rXQdrtAJvpfHJXQrZQXb㉀vˍpfJltnvp˂pZv`fXQJ`ےJltH~fr˂p|ZdQbf~HrXQJ`p˂rdtAJvpfdQbt~fpvJ`ےltb~f`˂pZZdQbt~HfJ`ےltb~f`˂pZHAۑpJAHH~ㅐfbAdZ|fH~HAbے~HfpbHAZbdQZ|`vXnZHAbtlJfpvےHAZbdQZ|ltbH~fl|ZdQnXv`bHAZpdQZ|vXnHAbےlJtApvnbHAZpdQZ|vXnbے`r󙐂ˁ``vXndrQtf`vX`JXQrvnXp˂rdrtAvpfے`JXQtArdnXv`p˂rdrtAnvp`vXnbtlf~H˂rXQdrtAJvpfH`JXQrrd|Xv`f˂rXQdrtAJvpfHJXQrZQXb㉀vˍpfJltnvp˂p`v`f~XQJ`ےJltH~fr˂p|ZdQbf~HXQJ`ےJltfHfr˂pJtArdfpvJ`ےltb~f`˂pZZdQbt~HfJ`ےltb~f`˂p`Jۑp`ZH~ㅐfbAdZ|fH~JXQrbfpvbHAZbdQZ|`vXnZHAbtlJfpvbHAZbdQZ|`vXn`JXQr|ZdQnXv`bHAZpdQZ|vXnHAbےlJtApvnbHAZpdQZ|vXnXQr˂QXb㉀۝`vXndrQtKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLL \ No newline at end of file diff --git a/vendor/endroid/qr-code/assets/data/qrv35_1.dat b/vendor/endroid/qr-code/assets/data/qrv35_1.dat deleted file mode 100755 index 76cb19811..000000000 --- a/vendor/endroid/qr-code/assets/data/qrv35_1.dat +++ /dev/null @@ -1,313 +0,0 @@ -~}~}~}~}~}~}~}~}|{|{|{{{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghghghghghgfefefefecccdcdcddcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9878787878787878765656565433333344343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!~}~}~}~}~}~}~}~}{{{|{|{||{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghghghghghgfefefefecdcdcdcddcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPONMNMNMNMNMNMNMNMLKKKKKKLLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9878787878787878765656565343434344343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!~}~}~}~}~}~}~}~}{|{|{|{||{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghghghghghgfefefefecdcdcdcddccccccdbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPONMNMNMNMNMNMNMNMKLKLKLKLLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9878787878787878765656565343434344343433321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!~}~}~}~}~}~}~}~}{|{|{|{||{{{{{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghghghghghgfefefefecdcdcdcdcdcdcdcdbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQRQRQPOPOPOPONMNMNMNMNMNMNMNMKLKLKLKLLKLKLKKKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9878787878787878765656565343434343334343421212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#$#$#$#$#"!"!"!"!~}~}~}~}~}~}~}~}{|{|{|{||{|{|{zyzyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghghghghghgfefefefecdcdcdcdcdcdcdcdbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQRQRQPOPOPOPOPOPONMNMNMNMNMNMNMNMKLKLKLKLKKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9878787878787878765656565343434343434343421212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!~}~}~}~}~}~}~}~}{|{|{|{|zyzyzyzyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghghghghghgfefefefeccccccdccdcdcdcdbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMKLKLKLKLLKJIJIJIJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9878787878787878765656565343433333434343421212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!~}~}~}~}~}~}~}~}{{{{{{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghghgfefefefefefefedcdcdcdccdcdcdcdbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMKLKLKKKKJIJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9878787878787876565656565334343433434343421212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!~}~}~}~}~}~}~}~}|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvuvuvuvutststststststststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghgfefefefefefefefedcdcdcdccdcdccccbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMKKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9878787876565656565656565434343433434343421212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutststststststststststsrqrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghgfefefefefefefefedcdcdcdcccdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMNMNMLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9878787876565656565656565434343433333334321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!~}~}~}~}{{{{{|{||{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqrqrqrqpopopopopopopopoponmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMLKLKKKKKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCDCBABABABABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9878787876565656565656565434343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!~}~}~}~}{|{|{|{||{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopopopopopopopopoponmnmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghgfefefefefefefefedcdcccccdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMKLKLKLKLLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABABA@?@?@?@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9878787876565656565656565434343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!~}~}~}~}{|{|{|{||{|{{{{{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmnmnmnmlklklklklklklklklkjijijijijijijijihghghghgfefefefefefefefecdcdcdcddcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMKLKLKLKLLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9878787876565656565656565333334344343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!~}~}~}~}{|{|{|{|{|{|{|{|zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmlklklklklklklklklklklkjijijijijijijijijihghghghgfefefefefefefefecdcdcdcddcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMKLKLKLKLKKKKKLKLJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9878787876565656565656565343434344343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!"!"!"!"!~}~}~}~}{|{|{|{|{|{|{|{|zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijijijijihghghghghgfefefefefefefefecdcdcdcdccccdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMKLKLKLKLKLKLKLKLJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9:9:9:9878787876565656565656565343434344343333321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!"!"!"!"!~}~}~}~}{|{{{{{{{|{|{|{|zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghghghghghgfefefefefefefefecdcdcdcddcdcbabababababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMKLKLKLKKKLKLKLKLJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9:9878787878787876565656565656565343434344343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!"!"!"!"!~}~}~}~}~}~}|{|{|{|{{|{|{|{|zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghghghghghgfefefefefefefefecdcdcdccbabababababababababa`_`_`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMKKKKLKLKKLKLKLKLJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:987878787878787876565656565656565343434342121212121212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!"!"!"!"!~}~}~}~}~}~}~}~}|{|{|{|{{|{|{|{{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghghghghghgfefefefefefefefeccccdcdcbabababababababa`_`_`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKKLKLKLKLJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9878787878787878765656565656565653433333321212121212121210/0/0/0/0/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!"!"!"!"!~}~}~}~}~}~}~}~}|{|{|{|{{{{{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghghghghghgfefefefefefefedcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKKLKKKKKKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9878787878787878765656565656565654343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!    ~}~}~}~}~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghghghghghgfefefefedcdcdcccdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9878787878787878765656565654343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!                    - - - - - - - -                 - - - - - - - -                 - - - - - - - -                 - - - - - - - -                  - - - - - - - -                    - - - - - - - -                 - - - - - - - - -                 - - - - - - - - - - -                 - - - - - - - -               - - - - - - - -             - - - - - - - -             - - - - - - - -             - - - - - - - -             - - - - - - - -             - - - - - - - -             - - - - - - - -             - - - - - - - -             - - - - - - - -             - - - - - - - - PPOONNMM YYZZ[[\\//..--,,==>>??@@FFEEDDCCaabbccdd@@??>>== YYZZ[[\\HHGGFFEEQQRRSSTTPPOONNMMIIJJKKLLXXWWVVUU - - AABBCCDDQQKKJJIIssttuuvvkkjjiihg::;;<<==ggffeedd22334455~~oonnmmll##""!! **++,,--vvwwxxyywwvvuutt++**))((""##$$%%nnooppqq~~}}||33221100ffgghhii{{zz""!!BBCCDDEEAA@@??>>__``aabbBBAA@@?? WWXXYYZZJJIIHHGGOOPPQQRRRRQQPPOOGGHHIIJJZZYYXXWW ??@@AABBSSRRQQKKqqrrssttmmllkkjj8899::;;iihhggff00112233||}}~~qqppoonn%%$$##""(())**++ttuuvvwwyyxxwwvv--,,++** !!""##llmmnnoo~~55443322ddeeffgg$$##""!!@@AABBCCCCBBAA@@]]^^__``DDCCBBAA - - UUVVWWXXLLKKJJIIMMNNOOPPTTSSRRQQEEFFGGHH\\[[ZZYY ==>>??@@LLKKJJII]]^^__``++**))((AABBCCDDBBAA@@??eeffgghh<<;;::99]]^^__``DDCCBBAA - - UUVVWWXXLLKKJJIIMMNNOOPPTTSSRRQQEEFFGGHHHHGGFFEEwwxxyyzzfedccbba>>??@@AAccbbaa``66778899kkjjiihh..//0011zz{{||}}ssrrqqpp''&&%%$$&&''(())rrssttuu{{zzyyxx//..--,, !!jjkkllmmyyxxwwvvFFGGHHII==<<;;::ccddeeff>>==<<;;[[\\]]^^FFEEDDCC - -SSTTUUVVNNMMLLKKKKLLMMNNVVUUTTSS - - CCDDEEFFJJIIHHGGuuvvwwxxiihgfedc<<==>>??eeddccbb44556677mmllkkjj!! ,,--..//xxyyzz{{uuttssrr))((''&&$$%%&&''ppqqrrss}}||{{zz1100//..hhiijjkk{{zzyyxxDDEEFFGG??>>==<<aabbccdd@@??>>== YYZZ[[\\HHGGFFEEQQRRSSTTPPOONNMMIIJJKKLLXXWWVVUU - - AABBCCDDHHGGFFEEaabbccdd''&&%%$$EEFFGGHH>>==<<;; iijjkkll88776655aabbccdd@@??>>== YYZZ[[\\HHGGFFEEQQRRSSTTPPOONNMMIIJJKKLLDDCCBBAA!!""##{{a``__^^] - -BBCCDDEE__^^]]\\::;;<<==ggffeedd22334455~~oonnmmll##""!! **++,,--vvwwxxyywwvvuutt++**))((""##$$%%nnooppqquuttssrrJJKKQQRR99876543gghhiijj::998877__``aabbBBAA@@?? WWXXYYZZJJIIHHGGOOPPQQRRRRQQPPOOGGHHIIJJFFEEDDCC!!yyzz{{cbbaa``_ @@AABBCCaa``__^^8899::;;iihhggff00112233||}}~~qqppoonn%%$$##""(())**++ttuuvvwwyyxxwwvv--,,++** !!""##llmmnnoowwvvuuttHHIIJJKK;;::9987eeffgghh<<;;::99]]^^__``DDCCBBAA - - UUVVWWXXLLKKJJIIMMNNOOPPTTSSRRQQEEFFGGHHDDCCBBAAeeffgghh{{##""!!IIJJKKQQ::998765!!""##$$mmnnoopp~~}}44332211eeffgghh<<;;::99]]^^__``DDCCBBAA - - UUVVWWXXLLKKJJIIMMNNOOPP@@??>>==$$%%&&'']\\[[ZZY FFGGHHII[[ZZYYXX >>??@@AAccbbaa``66778899kkjjiihh..//0011zz{{||}}ssrrqqpp''&&%%$$&&''(())rrssttuuqqppoonnSSTTUUVV3221100/ !!""kkllmmnn66554433ccddeeff>>==<<;;[[\\]]^^FFEEDDCC - -SSTTUUVVNNMMLLKKKKLLMMNNBBAA@@??""##$$%%_^^]]\\[ - - DDEEFFGG]]\\[[ZZ<<==>>??eeddccbb44556677mmllkkjj!! ,,--..//xxyyzz{{uuttssrr))((''&&$$%%&&''ppqqrrssssrrqqppQQRRSSTT65433221 iijjkkll88776655aabbccdd@@??>>== YYZZ[[\\HHGGFFEEQQRRSSTTPPOONNMMIIJJKKLL@@??>>== iijjkkllzzyyxxwwRRSSTTUU43322110%%&&''((qqrrsstt||{{zzyy00//..-- iijjkkll88776655aabbccdd@@??>>== YYZZ[[\\HHGGFFEEQQRRSSTT<<;;::99(())**++YXXWWVVUJJKKLLMMWWVVUUTT - - BBCCDDEE__^^]]\\::;;<<==ggffeedd22334455~~oonnmmll##""!! **++,,--vvwwxxyymmllkkjj - -WWXXYYZZ/..--,,+##$$%%&&ooppqqrr~~}}||{{221100//gghhiijj::998877__``aabbBBAA@@?? WWXXYYZZJJIIHHGGOOPPQQRR>>==<<;;&&''(())[ZZYYXXWHHIIJJKKYYXXWWVV - -@@AABBCCaa``__^^8899::;;iihhggff00112233||}}~~qqppoonn%%$$##""(())**++ttuuvvwwoonnmmll UUVVWWXX100//..-!!""##$$mmnnoopp~~}}44332211eeffgghh<<;;::99]]^^__``DDCCBBAA - - UUVVWWXXLLKKJJIIMMNNOOPP<<;;::99!!""##$$mmnnooppvvuuttssVVWWXXYY0//..--,))**++,,uuvvwwxxxxwwvvuu,,++**))!!""##$$mmnnoopp~~}}44332211eeffgghh<<;;::99]]^^__``DDCCBBAA - - UUVVWWXX33221100,,--..//UTTSSRRQNNOOPPQQSSRRQQPPFFGGHHII[[ZZYYXX >>??@@AAccbbaa``66778899kkjjiihh..//0011zz{{||}}iiccbbaa [[\\]]^^~}|{{+**))(('''(())**ssttuuvvzzyyxxww..--,,++ !!""kkllmmnn66554433ccddeeff>>==<<;;[[\\]]^^FFEEDDCC - -SSTTUUVV::993322**++,,--WVVUUTTSLLMMNNOOUUTTSSRR DDEEFFGG]]\\[[ZZ<<==>>??eeddccbb44556677mmllkkjj!! ,,--..//xxyyzz{{kkjjiicc - - YYZZ[[\\~-,,++**)%%&&''((qqrrsstt||{{zzyy00//..-- iijjkkll88776655aabbccdd@@??>>== YYZZ[[\\HHGGFFEEQQRRSSTT88776655%%&&''((qqrrssttrrqqppooZZ[[\\]]~}|,++**))(--..//00yyzz{{||ttssrrqq((''&&%%%%&&''((qqrrsstt||{{zzyy00//..-- iijjkkll88776655aabbccdd@@??>>== YYZZ[[\\//..--,,00112233QPONMLKK RRSSTTUUOONNMMLLJJKKLLMMWWVVUUTT - - BBCCDDEE__^^]]\\::;;<<==ggffeedd22334455~~``__^^]]__``aabbzzyyxxww'&&%%$$#++,,--..wwxxyyzzvvuuttss**))((''##$$%%&&ooppqqrr~~}}||{{221100//gghhiijj::998877__``aabbBBAA@@?? WWXXYYZZ1100//....//0011SRRQQPONPPQQRRSSQQPPOONNHHIIJJKKYYXXWWVV - -@@AABBCCaa``__^^8899::;;iihhggff00112233||}}~~bbaa``__]]^^__``}|{{zzyy)((''&&%))**++,,uuvvwwxxxxwwvvuu,,++**))!!""##$$mmnnoopp~~}}44332211eeffgghh<<;;::99]]^^__``DDCCBBAA - - UUVVWWXX~~}}44332211))**++,,uuvvwwxxnnmmllkk ^^__``aa{{zzyyxx(''&&%%$11223344}}~~ppoonnmm$$##""!!))**++,,uuvvwwxxxxwwvvuu,,++**))!!""##$$mmnnoopp~~}}44332211eeffgghh<<;;::99]]^^__``++**))((99::;;<>??@@AAccbbaa``66778899\\[[ZZYY - - cciijjkkvvuuttss#""!! //001122{{||}}~~rrqqppoo&&%%$$##''(())**ssttuuvvzzyyxxww..--,,++ !!""kkllmmnn66554433ccddeeff>>==<<;;[[\\]]^^--,,++**223399::MLKKJJII - - TTUUVVWWMMLLKKJJLLMMNNOOUUTTSSRR DDEEFFGG]]\\[[ZZ<<==>>??eeddccbb44556677^^]]\\[[ aabbcciixxwwvvuu%$$##""!--..//00yyzz{{||ttssrrqq((''&&%%%%&&''((qqrrsstt||{{zzyy00//..-- iijjkkll88776655aabbccdd@@??>>== YYZZ[[\\||{{zzyy00//..----..//00yyzz{{||jjiiccbb - - - -bbcciijjwwvvuutt$##""!! 55667788llkkjjii --..//00yyzz{{||ttssrrqq((''&&%%%%&&''((qqrrsstt||{{zzyy00//..-- iijjkkll88776655aabbccdd''&&%%$$==>>??@@FFEEDDCCZZ[[\\]]GGFFEEDD RRSSTTUUOONNMMLLJJKKLLMMWWVVUUTT - - BBCCDDEE__^^]]\\::;;<<==XXWWVVUU llmmnnoorrqqppoo33445566nnmmllkk""!! ++,,--..wwxxyyzzvvuuttss**))((''##$$%%&&ooppqqrr~~}}||{{221100//gghhiijj::998877__``aabb))((''&&;;<<==>>HHGGFFEE XXYYZZ[[IIHHGGFFPPQQRRSSQQPPOONNHHIIJJKKYYXXWWVV - -@@AABBCCaa``__^^8899::;;ZZYYXXWW - - jjkkllmmttssrrqq! 11223344}}~~ppoonnmm$$##""!!))**++,,uuvvwwxxxxwwvvuu,,++**))!!""##$$mmnnoopp~~}}44332211eeffgghh<<;;::99]]^^__``xxwwvvuu,,++**))11223344}}~~aa``__^^ kkllmmnnssrrqqpp99::;;<>??@@AATTSSRRQQppqqrrssnnmmllkk778899::jjiihhgg//001122{{||}}~~rrqqppoo&&%%$$##''(())**ssttuuvvzzyyxxww..--,,++ !!""kkllmmnn66554433ccddeeff%%$$##""??@@AABBDDCCBBAA\\]]^^__EEDDCCBB - - TTUUVVWWMMLLKKJJLLMMNNOOUUTTSSRR DDEEFFGG]]\\[[ZZ<<==>>??VVUUTTSSnnooppqqppoonnmm55667788llkkjjii --..//00yyzz{{||ttssrrqq((''&&%%%%&&''((qqrrsstt||{{zzyy00//..-- iijjkkll88776655aabbccddttssrrqq((''&&%%55667788]]\\[[ZZooppqqrroonnmmll==>>??@@ddccbbaa55667788llkkjjii --..//00yyzz{{||ttssrrqq((''&&%%%%&&''((qqrrsstt||{{zzyy00//..-- iijjkkllzzyyxxwwEEFFGGHH>>==<<;;bbccddee??>>==<<ZZ[[\\]]GGFFEEDD RRSSTTUUOONNMMLLJJKKLLMMWWVVUUTT - - BBCCDDEEKKJJIIHHttuuvvwwjjiihgfe;;<<==>>ffeeddcc33445566nnmmllkk""!! ++,,--..wwxxyyzzvvuuttss**))((''##$$%%&&ooppqqrr~~}}||{{221100//gghhiijj{{zzyy!!CCDDEEFF@@??>>==``aabbccAA@@??>> XXYYZZ[[IIHHGGFFPPQQRRSSQQPPOONNHHIIJJKKYYXXWWVV - -@@AABBCCRRQQKKJJrrssttuullkkjjii99::;;<>??@@ddccbbaa55667788llkkjjii --..//00yyzz{{||ttssrrqq((''&&%%%%&&''((qqrrsstt||{{zzyy00//..-- iijjkkllllkkjjii ==>>??@@UUTTSSRRwwxxyyzzfedccbbaEEFFGGHH\\[[ZZYY ==>>??@@ddccbbaa55667788llkkjjii --..//00yyzz{{||ttssrrqq((''&&%%%%&&''((qqrrssttrrqqppooRRSSTTUU43322110 !!jjkkllmm77665544bbccddee??>>==<<ZZ[[\\]]GGFFEEDD RRSSTTUUOONNMMLLJJKKLLMMCCBBAA@@!!""##$$`__^^]]\ - - CCDDEEFF^^]]\\[[;;<<==>>ffeeddcc33445566nnmmllkk""!! ++,,--..wwxxyyzzvvuuttss**))((''##$$%%&&ooppqqrrttssrrqqKKQQRRSS87654332hhiijjkk99887766``aabbccAA@@??>> XXYYZZ[[IIHHGGFFPPQQRRSSQQPPOONNHHIIJJKKEEDDCCBB!!""zz{{baa``__^ AABBCCDD``__^^]]99::;;<>==<<%%&&''((\[[ZZYYXGGHHIIJJZZYYXXWW ??@@AABBbbaa``__778899::jjiihhgg//001122{{||}}~~rrqqppoo&&%%$$##''(())**ssttuuvvppoonnmm TTUUVVWW21100//. !!""##llmmnnoo~~55443322ddeeffgg==<<;;::\\]]^^__EEDDCCBB - - TTUUVVWWMMLLKKJJLLMMNNOOAA@@??>>##$$%%&&^]]\\[[Z - - EEFFGGHH\\[[ZZYY ==>>??@@ddccbbaa55667788llkkjjii --..//00yyzz{{||ttssrrqq((''&&%%%%&&''((qqrrssttddccbbaaEEFFGGHHHHGGFFEE$$%%&&'']\\[[ZZY MMNNOOPPTTSSRRQQEEFFGGHH\\[[ZZYY ==>>??@@ddccbbaa55667788llkkjjii --..//00yyzz{{||jjiiccbb - - ZZ[[\\]]~}|,++**))(&&''(())rrssttuu{{zzyyxx//..--,, !!jjkkllmm77665544bbccddee??>>==<<ZZ[[\\]]GGFFEEDD RRSSTTUU;;::9933))**++,,XWWVVUUTKKLLMMNNVVUUTTSS - - CCDDEEFF^^]]\\[[;;<<==>>ffeeddcc33445566nnmmllkk""!! ++,,--..wwxxyyzzllkkjjii - - XXYYZZ[[.--,,++*$$%%&&''ppqqrrss}}||{{zz1100//..hhiijjkk99887766``aabbccAA@@??>> XXYYZZ[[IIHHGGFFPPQQRRSS==<<;;::''(())**ZYYXXWWVIIJJKKLLXXWWVVUU - - AABBCCDD``__^^]]99::;;<>??@@ddccbbaa55667788llkkjjii --..//00yyzz{{||\\[[ZZYY MMNNOOPP@@??>>==,,--..//UTTSSRRQ - - UUVVWWXXLLKKJJIIMMNNOOPPTTSSRRQQEEFFGGHH\\[[ZZYY ==>>??@@ddccbbaa55667788]]\\[[ZZ - -bbcciijjwwvvuutt$##""!! ..//0011zz{{||}}ssrrqqpp''&&%%$$&&''(())rrssttuu{{zzyyxx//..--,, !!jjkkllmm77665544bbccddee??>>==<<ZZ[[\\]]..--,,++11223399ONMLKKJJ - -SSTTUUVVNNMMLLKKKKLLMMNNVVUUTTSS - - CCDDEEFF^^]]\\[[;;<<==>>ffeeddcc33445566__^^]]\\``aabbccyyxxwwvv&%%$$##",,--..//xxyyzz{{uuttssrr))((''&&$$%%&&''ppqqrrss}}||{{zz1100//..hhiijjkk99887766``aabbccAA@@??>> XXYYZZ[[00//..--//001122RQQPONMLQQRRSSTTPPOONNMMIIJJKKLLXXWWVVUU - - AABBCCDD``__^^]]99::;;<>??@@ddccbbaa55667788TTSSRRQQ - - UUVVWWXX3322110099::;;<>??@@UUTTSSRRooppqqrroonnmmll66778899kkjjiihh..//0011zz{{||}}ssrrqqpp''&&%%$$&&''(())rrssttuu{{zzyyxx//..--,, !!jjkkllmm77665544bbccddee&&%%$$##>>??@@AAEEDDCCBB[[\\]]^^FFEEDDCC - -SSTTUUVVNNMMLLKKKKLLMMNNVVUUTTSS - - CCDDEEFF^^]]\\[[;;<<==>>WWVVUUTT mmnnooppqqppoonn44556677mmllkkjj!! ,,--..//xxyyzz{{uuttssrr))((''&&$$%%&&''ppqqrrss}}||{{zz1100//..hhiijjkk99887766``aabbcc((''&&%%<<==>>??GGFFEEDD YYZZ[[\\HHGGFFEEQQRRSSTTPPOONNMMIIJJKKLLXXWWVVUU - - AABBCCDD``__^^]]99::;;<>??@@AAccbbaa``66778899YYXXWWVVssttuuvv__^^]]\\JJKKLLMM''&&%%$$==>>??@@FFEEDDCCZZ[[\\]]GGFFEEDD RRSSTTUUOONNMMLLJJKKLLMMWWVVUUTT - - BBCCDDEE__^^]]\\::;;<<==UUTTSSRRwwxxyyzz[[ZZYYXX NNOOPPQQ{{##""!!AABBCCDDBBAA@@??^^__``aaCCBBAA@@ - - VVWWXXYYKKJJIIHHNNOOPPQQSSRRQQPPFFGGHHII[[ZZYYXX >>??@@AAQQKKJJII!!""##{{WWVVUUTT - - RRSSTTUUzzyyxxwwEEFFGGHH>>==<<;;bbccddee??>>==<<ZZ[[\\]]GGFFEEDD RRSSTTUUOONNMMLLJJKKLLMMWWVVUUTT - - BBCCDDEEHHGGFFEE$$%%&&''SSRRQQPP - - VVWWXXYYvvuuttssIIJJKKQQ::998765ffgghhii;;::9988^^__``aaCCBBAA@@ - - VVWWXXYYKKJJIIHHNNOOPPQQSSRRQQPPFFGGHHIIDDCCBBAA(())**++OONNMMLLZZ[[\\]]rrqqppooRRSSTTUU43322110 !!jjkkllmm77665544bbccddee??>>==<<ZZ[[\\]]GGFFEEDD RRSSTTUUOONNMMLLJJKKLLMM@@??>>==,,--..//KKJJIIHH^^__``aannmmllkk VVWWXXYY0//..--,""##$$%%nnooppqq~~}}||33221100ffgghhii;;::9988^^__``aaCCBBAA@@ - - VVWWXXYYKKJJIIHHNNOOPPQQ<<;;::9900112233GGFFEEDDbbccddeejjiiccbb - - ZZ[[\\]]~}|,++**))(&&''(())rrssttuu{{zzyyxx//..--,, !!jjkkllmm77665544bbccddee??>>==<<ZZ[[\\]]GGFFEEDD RRSSTTUU3322110099::;;<>??@@??>>==<< !!jjkkllmm]]\\[[ZZ - -bbcciijjwwvvuutt$##""!! ..//0011zz{{||}}ssrrqqpp''&&%%$$&&''(())rrssttuu{{zzyyxx//..--,, !!jjkkllmm77665544bbccddee??>>==<<ZZ[[\\]]++**))((AABBCCDD;;::9988""##$$%%nnooppqqYYXXWWVV kkllmmnnssrrqqpp22334455~~oonnmmll##""!! **++,,--vvwwxxyywwvvuutt++**))((""##$$%%nnooppqq~~}}||33221100ffgghhii;;::9988^^__``aa''&&%%$$EEFFGGHH77665544&&''(())rrssttuuUUTTSSRRooppqqrroonnmmll66778899kkjjiihh..//0011zz{{||}}ssrrqqpp''&&%%$$&&''(())rrssttuu{{zzyyxx//..--,, !!jjkkllmm77665544bbccddee{{##""!!IIJJKKQQ~~}}||33221100**++,,--vvwwxxyyQQKKJJIIssttuuvvkkjjiihg::;;<<==ggffeedd22334455~~oonnmmll##""!! **++,,--vvwwxxyywwvvuutt++**))((""##$$%%nnooppqq~~}}||33221100ffgghhiizzyyxxwwRRSSTTUU{{zzyyxx//..--,,..//0011zz{{||}}HHGGFFEEwwxxyyzzfedccbba>>??@@AAccbbaa``66778899kkjjiihh..//0011zz{{||}}ssrrqqpp''&&%%$$&&''(())rrssttuu{{zzyyxx//..--,, !!jjkkllmmvvuuttssVVWWXXYYwwvvuutt++**))((22334455~~DDCCBBAA!!""##{{a``__^^] - -BBCCDDEE__^^]]\\::;;<<==ggffeedd22334455~~oonnmmll##""!! **++,,--vvwwxxyywwvvuutt++**))((""##$$%%nnooppqqrrqqppooZZ[[\\]]ssrrqqpp''&&%%$$66778899@@??>>==$$%%&&'']\\[[ZZY FFGGHHII[[ZZYYXX >>??@@AAccbbaa``66778899kkjjiihh..//0011zz{{||}}ssrrqqpp''&&%%$$&&''(())rrssttuunnmmllkk ^^__``aaoonnmmll##""!! ::;;<<==<<;;::99(())**++YXXWWVVUJJKKLLMMWWVVUUTT - - BBCCDDEE__^^]]\\::;;<<==ggffeedd22334455~~oonnmmll##""!! **++,,--vvwwxxyyjjiiccbb - - - -bbcciijjkkjjiihh>>??@@AA33221100,,--..//UTTSSRRQNNOOPPQQSSRRQQPPFFGGHHII[[ZZYYXX >>??@@AAccbbaa``66778899kkjjiihh..//0011zz{{||}}aa``__^^ kkllmmnnggffeeddBBCCDDEEbdQZ|drtAvpfH~f˂pZ˂pZtlJnXv`v`fp˂rXQJ`ےdrtAJltvpfH~fے`JXQr˂pJtAd|ZdQbnXv`f~HpvnXQJ`ےbHAZJltbdQZ|H~f`vXnp`JXQd|Zd|ZXv`f`f~˂rXQJ`ےdrtAJltbvpfH~f``JXQr˂pZrd|ZdQbtXv`f~Hf˂rXQJ`ےdrtAJltbvpfH~f`˂p`J˂p`Jrd|~fpvHfpvHAZp˂rXQJZ|drtAJlXnvpfH~bے`JXQrlJtAd|ZdQbnXv`fHfpvrXQJ`ےbrtAJltbdQpfH~f`v˂p`tArdtArdnXvXv`fZp˂rXQJ`|drtAJlnvpfH~ے`JXQr˂JtArd|ZdQnXv`f~Zp˂rXQJ`|drtAJlnvpfH~r˂pr˂pJtArd`f~fp~HfbHAZp˂rbdQZ|drtA`vXnvpfZHAbے`JXQbtltArd|ZdQbnXv`fHfp˂rXQJ`ےdrtAJltvpfdrtAJltH~f`vXnHAbےHAbےtArdf~fp~HfpXQJ`ےbHAZJltbdQZ|H~f`vXnr˂pZHAb|ZdQbtlJf~HfpvrXQJ`bHAZp˂rbdQZ|dtAJ`vXnvpfr˂pdQbtdQbt~fpvHfpvJ`ےbHAZpltbdQZ|~f`vXn˂pZHAbےZdQbtlJtA~HfpvnJ`ےbHAZpltbdQZ|~f`vXnXQr˂XQr˂ZdQbtnXv`nXvrXQJ`ےbrtAJltbdQpfH~f`vJXQr˂pZHAd|ZdQbtv`f~HfpnrXQ`ےbHAZp˂tbdQZ|df`vXnvJXQr|ZdQb|ZdQb`f~fp~HfrXQJ`ےbHAtAJltbdQZfH~f`vXXQr˂pZHAb|ZdQbtl`f~HfpvrXQJ`ےbHAtAJltbdQZfH~f`vX`JXQr`JXQr|ZdQvnXpvnp˂rXQJ`ےdrtAJltvpfH~fے`JXQr˂pJtAd|ZdQbnXv`f~HpvnXQJ`ےbHAZJltbdQZ|H~fJltbdQZ|`vXnvpf`JXQr`JXQr|ZdQbvnXvnXbHAZp˂rbdQZ|drtA`vXnvpfZHAbے`JXQtlJtArdfpvnXv`ےHAZp˂rbdQZ|drtAltbvpfH~fZHAbl|ZdQl|ZdQnXv`nXvbHAZp˂rXQdQZ|drtAJvXnvpfHHAbے`JXQrlJtArd|pvnXv`fbHAZp˂rXQdQZ|drtAJvXnvpfHpZHAbpZHAbl|Zf~H`f~fp`ےbHAZp˂tbdQZ|df`vXnv˂pZHAbے`dQbtlJtAr~HfpvnXJ`ےHAZp˂rbdQZ|dtAJlXnvpfH~˂pZHAtl|tl|vnXpvnےbHAZp˂tbdQZ|drf`vXnvppZHAbے`JbtlJtArdHfpvnXvےbHAZp˂tbdQZ|drf`vXnvp˂pZ˂pZbtlv`fXv`fXQJ`ےbHAZJltbdQZ|H~f`vXnr˂pZHAb|ZdQbtlJf~HfpvrXQJ`bHAZp˂rbdQZ|dtAJ`vXnbdQZ|drtAvpfH~f˂p`˂p`tl|v`fv`f~p˂rXQJ`ےdrtAJltvpfH~fے`JXQr˂ptArd|ZdQbnXv`f~Hp˂rXQJ`ےdrtAJltnvpH~f`vXnے`JXQbtlbtlf~H`ffp˂rXQJ`ےdrtAJltbvpfH~f``JXQr˂pZrd|ZdQbtXv`f~Hf˂rXQJ`ےdrtAJltbvpfH~f`ے`Jے`JdQbt璅fpvvnXHAZp˂rXQJZ|drtAJlXnvpfH~bے`JXQrlJtArd|ZvnXv`fHAZp˂rXQJZ|drtAJltbnpfH~f`vbے`ZdQbtZdQbtv`fXv`fZp˂rXQJ`|drtAJlnvpfH~ے`JXQr˂JtArd|ZdQnXv`f~Zp˂rXQJ`|drtAJlnvpfH~HAbےHAbے|ZdQb~Hfp~fpvbHAZp˂rbdQZ|drtA`vXnvpfZHAbے`JXQtlJtArdfpvnXv`ےHAZp˂rbdQZ|drtAltbvpfdrtAJltH~f`vXnJXQrJXQrZdQbt~HfpfpvXQJ`ےbHAZJltbdQZ|H~f`vXnr˂pZHAb|ZdQbtlJf~HfpvXQJ`ےbHAZJltbdQZ|fHf`vXnr˂pr˂pJtArdJtArdfpvvnrJ`ےbHAZpltbdQZ|~f`vXn˂pZHAbےZdQbtlJtA~HfpvnJ`ےbHAZpltbdQZ|~f`vXnXQr˂XQr˂lJtArnXv`v`frXQJ`ےbrtAJltbdQpfH~f`vJXQr˂pZHAd|ZdQbtv`f~HfprXQJ`ےbrtAJltbdQvpfHf`vXnrJXQrlJtAlJtA~HfpfpvrXQJ`ےbHAtAJltbdQZfH~f`vXXQr˂pZHAb|ZdQbtl`f~HfpvrXQJ`ےbHAtAJltbdQZfH~f`vX`JXQr`JXQrtlJvnXnXv`p˂rXQJ`ےdrtAJltvpfH~fے`JXQr˂ptArd|ZdQbnXv`f~Hp˂rXQJ`ےdrtAJltnvpH~fJltbdQZ|`vXnvpf˂pZHA˂pZHAlJtAvnXnXv`ːbHAZp˂rbdQZ|drtA`vXnvpfZHAbے`JXQtlJtArdfpvnXv`bHAZp˂rbdQZ|drtA`vXnvpf`JXQr`JXQr|ZdQ|ZdQnXv`XQJ`ےbHAZp˂rbdQZ|dtAJlvXnvpfHHAbے`JXQrlJtArd|pvnXv`fbHAZp˂rXQdQZ|drtAJvXnvpfHp`JXQp`JXQd|Zf~fp~Hfp`ےbHAZp˂tbdQZ|df`vXnv˂pZHAbے`dQbtlJtAr~HfpvnX`ےbHAZp˂tbdQZ|df`vXnv˂p`J˂p`Jrd|rd|vnXnrXQJےbHAZp˂tbdQZ|dtAf`vXnvppZHAbے`JbtlJtArdHfpvnXvےbHAZp˂tbdQZ|drf`vXnvp˂p`˂p`tArdv`f~f~HXQJ`ےbHAZJltbdQZ|H~f`vXnr˂pZHAb|ZdQbtlJf~HfpvXQJ`ےbHAZJltbdQZ|fHf`vXnbdQZ|drtAvpfH~fbے`bے`rd|v`f~ff~Hp˂rXQJ`ےdrtAJltvpfH~fے`JXQr˂ptArd|ZdQbnXv`f~Hp˂rXQJ`ےdrtAJltvpfH~f˂pZ˂pZbtlbtlf~fpHAZp˂rXQdQZ|drtAJtbnvpfH~f``JXQr˂pZrd|ZdQbtXv`f~Hf˂rXQJ`ےdrtAJltbvpfH~f`r˂prbtdQbtvnXvnXHAZp˂rXQJZ|drtAJlXnvpfH~bے`JXQrlJtArd|ZvnXv`fHAZp˂rXQJZ|drtAJlXnvpfH~XQr˂XQr˂ZdQbtZdQbtv`f~`ےHAZp˂rbdQZ|drJltnvpfH~ے`JXQr˂JtArd|ZdQnXv`f~Zp˂rXQJ`|drtAJlnvpfH~JXQrJXQrb|ZdQbfpvfpvbHAZp˂rbdQZ|drtA`vXnvpfZHAbے`JXQtlJtArdfpvnXv`bHAZp˂rbdQZ|drtA`vXnvpfdrtAJltH~f`vXnJXQrJXQrZdQbtpvnfpvXQJ`ےbHAZJltbdQZ|H~f`vXnr˂pZHAb|ZdQbtlJf~HfpvXQJ`ےbHAZJltbdQZ|H~f`vXnHAbےHAbے|ZdQb|ZdQbvnX˂rXQJ`ےdrtAJltbvpf~f`vXnr˂pZHAے`ZdQbtlJtA~HfpvnJ`ےbHAZpltbdQZ|~f`vXnZHAbl|ZdQl|ZdQv`fv`f~rXQJ`ےbrtAJltbdQpfH~f`vJXQr˂pZHAd|ZdQbtv`f~HfprXQJ`ےbrtAJltbdQpfH~f`vpZHAbpZHAbl|Zl|ZfpvZp˂rXQJ`|drtAJlbnvfH~f`vXXQr˂pZHA|ZdQbtl`f~HfpvrXQJ`ےbHAtAJltbdQZfH~f`vX˂pZHAtl|tl|nXv`nXv`p˂rXQJ`ےdrtAJltvpfH~fے`JXQr˂ptArd|ZdQbnXv`f~Hp˂rXQJ`ےdrtAJltvpfH~fJltbdQZ|`vXnvpf˂p`J˂p|Zl|ZXv`fnXv`fbHAZp˂rbdQZ|drtA`vXnvpfZHAbے`JXQtlJtArdfpvnXv`bHAZp˂rbdQZ|drtA`vXnvpf`JXQr`JXQrtlJnXv`v`fJ`ےbHAZpltbdQZ|Hf`vXn˂pZHAbےJXQrblJtArd|pvnXv`fbHAZp˂rXQdQZ|drtAJvXnvpfHے`JXQbtlbtl~Hfpfpv`ےbHAZp˂tbdQZ|df`vXnv˂pZHAbے`dQbtlJtAr~HfpvnX`ےbHAZp˂tbdQZ|df`vXnvے`Jے`JdQbtdQbnXnXv`rXQJ`ےbHAtAJltbdQZpfHf`vXnr˂pZHAbے`JXQbtlJtArdHfpvnXvےbHAZp˂tbdQZ|drf`vXnvpbے`ZdQbtZdQbtf~Hf~fpXQJ`ےbHAZJltbdQZ|H~f`vXnr˂pZHAb|ZdQbtlJf~HfpvXQJ`ےbHAZJltbdQZ|H~f`vXnbdQZ|drtAvpfH~fXQr˂dQbtdQbt璐~Hf~fpvp˂rXQJ`ےdrtAJltvpfH~fے`JXQr˂ptArd|ZdQbnXv`f~Hp˂rXQJ`ےdrtAJltvpfH~f˂p`˂p`tArdf~fp~HfpbHAZp˂rXQdQZ|drtAJvXnvpfHHAbے`JXQrtlJrd|ZdQbnXv`fHfp˂rXQJ`ےdrtAJltbvpfH~f`r˂pJtArdJtArdvnXnXv`HAZp˂rXQJZ|drtAJlXnvpfH~bے`JXQrlJtArd|ZvnXv`fHAZp˂rXQJZ|drtAJlXnvpfH~XQr˂XQr˂lJtArv`f~f~HےbHAZp˂tbdQZ|drf`vXnvppZHAbے`JrbtJtArd|ZdQnXv`fHZp˂rXQJ`|drtAJlnvpfH~JXQrlJtAlJtAfpvvnXbHAZp˂rbdQZ|drtA`vXnvpfZHAbے`JXQtlJtArdfpvnXv`bHAZp˂rbdQZ|drtA`vXnvpfdrtAJltH~f`vXnpZHAblJtArlJtArpvnnXvXQJ`ےbHAZJltbdQZ|H~f`vXnr˂pZHAb|ZdQbtlJf~HfpvXQJ`ےbHAZJltbdQZ|H~f`vXnJXQrJXQr|ZdQbvnXvnX˂rXQJ`ےdrtAJltbvpfH~f``JXQr˂pZtAd|ZdQbtXv`f~HfvnrJ`ےbHAZpltbdQZ|~f`vXn`JXQr|ZdQ|ZdQv`f~f~HrXQJ`ےbrtAJltbdQpfH~f`vJXQr˂pZHAd|ZdQbtv`f~HfprXQJ`ےbrtAJltbdQpfH~f`vp`JXQp`JXQd|ZfpvfpvZp˂rXQJ`|drtAJlnvpfH~ے`JXQr˂lJtAd|ZdQbnXv`f~fpvrXQJ`ےbHAtAJltbdQZfH~f`vX˂p`Jrd|rd|nXv`v`fp˂rXQJ`ےdrtAJltvpfH~fے`JXQr˂ptArd|ZdQbnXv`f~Hp˂rXQJ`ےdrtAJltvpfH~fJltbdQZ|`vXnvpfے`Jd|Zd|ZXv`f`f~bHAZp˂rbdQZ|drtA`vXnvpfZHAbے`JXQtlJtArdfpvnXv`bHAZp˂rbdQZ|drtA`vXnvpf˂pZHA˂pZHAtl|v`fv`f~J`ےbHAZpltbdQZ|~f`vXn˂pZHAbےZdQbtlJtA~HfpvnXQJ`ےbHAZp˂rbdQZ|dtAJlvXnvpfH˂pZbtlbtlfpvfpv`ےbHAZp˂tbdQZ|df`vXnv˂pZHAbے`dQbtlJtAr~HfpvnX`ےbHAZp˂tbdQZ|df`vXnvr˂pr˂pdQbtnXv`nXv`rXQJ`ےbHAtAJltbdQZfH~f`vXXQr˂pZHAb|ZdQbtl`f~HfpvnrXQJےbHAZp˂tbdQZ|dtAf`vXnvpXQr˂ZdQbtZdQbtf~fp~HfpXQJ`ےbHAZJltbdQZ|H~f`vXnr˂pZHAb|ZdQbtlJf~HfpvXQJ`ےbHAZJltbdQZ|H~f`vXnbdQZ|drtAvpfH~fXQr˂dQbtdQbt~fpvHfpvp˂rXQJ`ےdrtAJltvpfH~fے`JXQr˂ptArd|ZdQbnXv`f~Hp˂rXQJ`ےdrtAJltvpfH~fbے`bے`ZdQbt~HfpfpvbHAZp˂rXQdQZ|drtAJvXnvpfHHAbے`JXQrlJtArd|pvnXv`fHAZp˂rXQdQZ|drtAJtbnvpfH~f`HAbے|ZdQb|ZdQbnXv`nXv`HAZp˂rXQJZ|drtAJlXnvpfH~bے`JXQrlJtArd|ZvnXv`fHAZp˂rXQJZ|drtAJlXnvpfH~ZHAbZHAbl|ZdQf~Hf~fpےbHAZp˂tbdQZ|drf`vXnvppZHAbے`JbtlJtArdHfpvnXv`ےHAZp˂rbdQZ|drJltnvpfH~pZHAbl|Zl|ZvnXvnXbHAZp˂rbdQZ|drtA`vXnvpfZHAbے`JXQtlJtArdfpvnXv`bHAZp˂rbdQZ|drtA`vXnvpfH~fdrtAJltH~f`vXnp`JXQl|ZdQl|ZdQnXv`nXvXQJ`ےbHAZJltbdQZ|H~f`vXnr˂pZHAb|ZdQbtlJf~HfpvXQJ`ےbHAZJltbdQZ|H~f`vXnJXQrJXQrlJtAvnXnXv`˂rXQJ`ےdrtAJltbvpfH~f``JXQr˂pZrd|ZdQbtXv`f~Hf˂rXQJ`ےdrtAJltbvpf~f`vXnr`JXQrtlJtlJf~HffpvrXQJ`ےbrtAJltbdQpfH~f`vJXQr˂pZHAd|ZdQbtv`f~HfprXQJ`ےbrtAJltbdQpfH~f`vے`JXQے`JXQbtlfpvvnXZp˂rXQJ`|drtAJlnvpfH~ے`JXQr˂JtArd|ZdQnXv`f~Zp˂rXQJ`|drtAJlbnvfH~f`vXے`JdQbtdQbtv`fv`ffp˂rXQJ`ےdrtAJltvpfH~fے`JXQr˂ptArd|ZdQbnXv`f~Hp˂rXQJ`ےdrtAJltvpfH~f`vXnJltbdQZ|`vXnvpfr˂pbtlbtlf~H`frQbHAZp˂rbdQZ|dtAJ`vXnvpfZHAbے`JXQtlJtArdfpvnXv`bHAZp˂rbdQZ|drtA`vXnvpf˂p`J˂p`Jrd|v`f~ff~HJ`ےbHAZpltbdQZ|~f`vXn˂pZHAbےZdQbtlJtA~HfpvnJ`ےbHAZpltbdQZ|Hf`vXn˂p`˂p`tArdtArdfpv々nrXQ`ےbHAZp˂tbdQZ|df`vXnv˂pZHAbے`dQbtlJtAr~HfpvnX`ےbHAZp˂tbdQZ|df`vXnvr˂pr˂pJtArdnXv`fv`frXQJ`ےbHAtAJltbdQZfH~f`vXXQr˂pZHAb|ZdQbtl`f~HfpvrXQJ`ےbHAtAJltbdQZpfHf`vXnr˂XQr˂lJtArlJtAr~HfppvnXQJ`ےbHAZJltbdQZ|H~f`vXnr˂pZHAb|ZdQbtlJf~HfpvXQJ`ےbHAZJltbdQZ|H~f`vXnvpfbdQZ|drtAvpfH~fZHAbJtArdJtArdfpvJHAZp˂rbdQZ|drtAltbvpfH~fے`JXQr˂ptArd|ZdQbnXv`f~Hp˂rXQJ`ےdrtAJltvpfH~fXQr˂XQrbtZdQbtpvnfpvbHAZp˂rXQdQZ|drtAJvXnvpfHHAbے`JXQrlJtArd|pvnXv`fbHAZp˂rXQdQZ|drtAJvXnvpfHJXQrJXQr|ZdQb|ZdQbnXv`fJ`ےHAZp˂rbdQZ|dtAJlXnvpfH~bے`JXQrlJtArd|ZvnXv`fHAZp˂rXQJZ|drtAJlXnvpfH~`JXQr`JXQr|ZdQ~fpv~HfpےbHAZp˂tbdQZ|drf`vXnvppZHAbے`JbtlJtArdHfpvnXvےbHAZp˂tbdQZ|drf`vXnvpp`JXQp`JXQd|Zd|ZvnXrXQJ`bHAZp˂rbdQZ|dtAJ`vXnvpfZHAbے`JXQtlJtArdfpvnXv`bHAZp˂rbdQZ|drtA`vXnvpfH~fdrtAJltH~f`vXnے`JXQ|ZdQ|ZdQnXv`p˂rXQJ`ےdrtAJltnvpH~f`vXnr˂pZHAے|ZdQbtlJf~HfpvXQJ`ےbHAZJltbdQZ|H~f`vXnpZHAbl|Zl|ZXv`fnXv`f˂rXQJ`ےdrtAJltbvpfH~f``JXQr˂pZrd|ZdQbtXv`f~Hf˂rXQJ`ےdrtAJltbvpfH~f`˂pZHA˂pZHAtl|tl|~fpvHAZp˂rXQJZ|drtAJltbnpfH~f`vJXQr˂pZHAd|ZdQbtv`f~HfprXQJ`ےbrtAJltbdQpfH~f`v˂pZbtlbtlnXvvnXZp˂rXQJ`|drtAJlnvpfH~ے`JXQr˂JtArd|ZdQnXv`f~Zp˂rXQJ`|drtAJlnvpfH~r˂pr˂pdQbtdQbtv`f~fےHAZp˂rbdQZ|drtAltbvpfH~fے`JXQr˂ptArd|ZdQbnXv`f~Hp˂rXQJ`ےdrtAJltvpfH~f`vXnJltbdQZ|`vXnr˂pr˂pbtlbtlf~fpXQJ`ےbHAZJltbdQZ|fHf`vXnr˂pZHAb`JXQrtlJtArdfpvnXv`bHAZp˂rbdQZ|drtA`vXnvpfے`JdQbtdQbt璐~Hf~fpvJ`ےbHAZpltbdQZ|~f`vXn˂pZHAbےZdQbtlJtA~HfpvnJ`ےbHAZpltbdQZ|~f`vXnbے`bے`ZdQbtZdQbnnXvrXQJ`ےbrtAJltbdQvpfHf`vXnr˂pZHAے`JdQbtlJtAr~HfpvnX`ےbHAZp˂tbdQZ|df`vXnvHAbے|ZdQb|ZdQb`f~v`f~frXQJ`ےbHAtAJltbdQZfH~f`vXXQr˂pZHAb|ZdQbtl`f~HfpvrXQJ`ےbHAtAJltbdQZfH~f`vXZHAbZHAbl|ZdQl|ZdQpvnp˂rXQJ`ےdrtAJltnvpH~f`vXnr˂pZHAے|ZdQbtlJf~HfpvXQJ`ےbHAZJltbdQZ|H~f`vXnr˂pbdQZ|`vXnvpf`JXQr`JXQr|ZdQb|ZdQbvnXbHAZp˂rbdQZ|drtA`vXnvpfZHAbے`JXQbtltArd|ZdQbnXv`fHfp˂rXQJ`ےdrtAJltvpfH~fXQr˂lJtArlJtArpvnnXvbHAZp˂rXQdQZ|drtAJvXnvpfHHAbے`JXQrlJtArd|pvnXv`fbHAZp˂rXQdQZ|drtAJvXnvpfHJXQrJXQrlJtAXv`f`f~`ےbHAZp˂tbdQZ|df`vXnv˂pZHAbے`XQrbtlJtArd|ZvnXv`fHAZp˂rXQJZ|drtAJlXnvpfH~`JXQrtlJtlJHfpvpvnےbHAZp˂tbdQZ|drf`vXnvppZHAbے`JbtlJtArdHfpvnXvےbHAZp˂tbdQZ|drf`vXnvpے`JXQے`JXQbtlbnXvXv`fXQJ`ےbHAZJltbdQZ|fHf`vXnr˂pZHAb`JXQrtlJtArdfpvnXv`bHAZp˂rbdQZ|drtA`vXnvpf`JXQr˂pZ˂pZbtlbtlf~fpHAZp˂rXQdQZ|drtAJtbnvpfH~f``JXQr˂pZrd|ZdQbtXv`f~Hf˂rXQJ`ےdrtAJltbvpfH~f`pZHAbpJAHrpJAHr`vXnvˍpfdrQtHAbےHAbے|ZdQb|ZdQbvnX˂rXQJ`ےdrtAJltbvpf~f`vXnr˂pZHAے`ZdQbtlJtA~HfpvnJ`ےbHAZpltbdQZ|~f`vXnے`Jˁ`Zˁ`ZvˍpfH~ㅐfJlt`JXQr`JXQrtlJnXv`v`fJ`ےbHAZpltbdQZ|Hf`vXn˂pZHAbےJXQrblJtArd|pvnXv`fbHAZp˂rXQdQZ|drtAJvXnvpfHXQr˂QXb㉀QXb㉀ەH~ㅐf۝`vXnbAdZ|˂p`˂p`tArdf~fp~HfpbHAZp˂rXQdQZ|drtAJvXnvpfHHAbے`JXQrtlJrd|ZdQbnXv`fHfp˂rXQJ`ےdrtAJltbvpfH~f`p`JXQp`ZQXp`ZQX`vXnvˍp|drQtJXQrJXQr|ZdQbvnXvnX˂rXQJ`ےdrtAJltbvpfH~f``JXQr˂pZtAd|ZdQbtXv`f~HfvnrJ`ےbHAZpltbdQZ|~f`vXnr˂pb㉀ۑpb㉀ۑpvˍpfdrQtJlt˂pZHA˂pZHAtl|v`fv`f~J`ےbHAZpltbdQZ|~f`vXn˂pZHAbےZdQbtlJtA~HfpvnXQJ`ےbHAZp˂rbdQZ|dtAJlvXnvpfHZHAbJAHrJAHr󙐕H~ㅐfJltbAdZ|bے`bے`ZdQbt~HfpfpvbHAZp˂rXQdQZ|drtAJvXnvpfHHAbے`JXQrlJtArd|pvnXv`fHAZp˂rXQdQZ|drtAJtbnvpfH~f`ے`JXQˁ`ZQXˁ`ZQX`vXnbAdZ|drQtJXQrJXQrlJtAvnXnXv`˂rXQJ`ےdrtAJltbvpfH~f``JXQr˂pZrd|ZdQbtXv`f~Hf˂rXQJ`ےdrtAJltbvpf~f`vXnےr˂pb㉀ۑpb㉀XnvˍpfdrQtJlt˂p`J˂p`Jrd|v`f~ff~HJ`ےbHAZpltbdQZ|~f`vXn˂pZHAbےZdQbtlJtA~HfpvnJ`ےbHAZpltbdQZ|Hf`vXn`JXQr`JXQr`ZQXb㕀vˍpfH~ㅐfJltbAdZ|XQr˂XQrbtZdQbtpvnfpvbHAZp˂rXQdQZ|drtAJvXnvpfHHAbے`JXQrlJtArd|pvnXv`fbHAZp˂rXQdQZ|drtAJvXnvpfH˂pZ˂pZۑpJH~ㅐf۝`vXnbAdZ|drQtpZHAbl|Zl|ZXv`fnXv`f˂rXQJ`ےdrtAJltbvpfH~f``JXQr˂pZrd|ZdQbtXv`f~Hf˂rXQJ`ےdrtAJltbvpfH~f`HAbےHAbےAHr󙐂˝`vXnvˍpfdrQtJltے`JdQbtdQbt璐~Hf~fpvJ`ےbHAZpltbdQZ|~f`vXn˂pZHAbےZdQbtlJtA~HfpvnJ`ےbHAZpltbdQZ|~f`vXn`JXQr`JXQr`ZQXb㕀vˍpfH~ㅐfJltbAdZ|XQr˂lJtArlJtArpvnnXvbHAZp˂rXQdQZ|drtAJvXnvpfHHAbے`JXQrlJtArd|pvnXv`fbHAZp˂rXQdQZ|drtAJvXnvpfH˂p`˂p`ۑp`H~ㅐf۝`vXnbAdZ|drQtp`JXQd|Zd|ZXv`f`f~˂rXQJ`ےdrtAJltbvpfH~f``JXQr˂pZrd|ZdQbtXv`f~Hf˂rXQJ`ےdrtAJltbvpfH~f`JXQrJXQrZQXb㉀`vXnvˍpfdrQtJltr˂pdQbtdQbt~fpvHfpvJ`ےbHAZpltbdQZ|~f`vXn˂pZHAbےZdQbtlJtA~HfpvnJ`ےbHAZpltbdQZ|~f`vXn˂pZHA˂pZHAۑpJAHvˍpfH~ㅐfJltbAdZ|ZHAbl|ZdQl|ZdQnXv`nXvbHAZp˂rXQdQZ|drtAJvXnvpfHHAbے`JXQrlJtArd|pvnXv`fbHAZp˂rXQdQZ|drtAJvXnvpfHbے`bے`r󙐂ˁ`H~ㅐf۝`vXnbAdZ|drQtے`JXQbtlbtlf~H`ffp˂rXQJ`ےdrtAJltbvpfH~f``JXQr˂pZrd|ZdQbtXv`f~Hf˂rXQJ`ےdrtAJltbvpfH~f`JXQrJXQrZQXb㉀`vXnvˍpfdrQtJltr˂pJtArdJtArdfpvvnrJ`ےbHAZpltbdQZ|~f`vXn˂pZHAbےZdQbtlJtA~HfpvnJ`ےbHAZpltbdQZ|~f`vXn˂p`J˂p`Zۑp`ZvˍpfH~ㅐfJltbAdZ|`JXQr|ZdQ|ZdQnXv`XQJ`ےbHAZp˂rbdQZ|dtAJlvXnvpfHHAbے`JXQrlJtArd|pvnXv`fbHAZp˂rXQdQZ|drtAJvXnvpfHXQr˂QXb㉀QXb㉀ەH~ㅐf۝`vXnbAdZ|drQt \ No newline at end of file diff --git a/vendor/endroid/qr-code/assets/data/qrv35_2.dat b/vendor/endroid/qr-code/assets/data/qrv35_2.dat deleted file mode 100755 index 3a3ac08d3..000000000 --- a/vendor/endroid/qr-code/assets/data/qrv35_2.dat +++ /dev/null @@ -1,313 +0,0 @@ -~}~}~}~}zyzyzyzyvuvuvuvutstststspopopoponmnmnmnm~}~}~}~}zyzyzyzyvuvuvuvutstststspopopoponmnmnmnm~}~}~}~}zyzyzyzyvuvuvuvutstststspopopoponmnmnmnm~}~}~}~}zyzyzyzyvuvuvuvutstststspopopoponmnmnmlk~}~}~}~}zyzyzyzyvuvuvuvutstststspopopopolklklklk~}~}~}~}zyzyzyzyvuvuvuvutstststspopopopolklklklk~}~}~}~}zyzyzyzyvuvuvuvutstststspopopopolklklklk~}~}~}~}zyzyzyzyvuvuvuvutstststspopopopolklklklk~}~}~}~}zyzyzyzyvuvuvuvutstststspopopopolklklklk~}~}~}~}zyzyzyzyvuvuvuvutstststspopopopolklklklk~}~}~}~}zyzyzyzyvuvuvuvutstststspopopopolklklklk|{|{|{|{zyzyzyzyvuvuvuvutstststspopopopolklklklk{{{{{|{|zyzyzyzyvuvuvuvutststsrqpopopopolklklklk{|{|{|{|zyzyzyzyvuvuvuvurqrqrqrqpopopopolklklklk{|{|{|{|zyzyzyzyvuvuvuvurqrqrqrqpopopopolklklklk{|{|{|{|zyzyzyzyvuvuvuvurqrqrqrqpopopopolklklklk{|{|{|{|zyzyzyzyvuvuvuvurqrqrqrqpopopopolklklklk{|{{{{{{zyzyzyzyvuvuvuvurqrqrqrqpopopopolklklklk|{|{|{|{zyzyzyzyvuvuvuvurqrqrqrqpopopopolklklklk|{|{|{|{zyzyzyzyvuvuvuvurqrqrqrqpopopopolklklklk|{|{|{|{zyzyzyzyvuvuvuvurqrqrqrqpopopopolklklklk|{|{|{|{zyzyzyxwvuvuvuvurqrqrqrqpopopopolklklklk|{|{|{{{xwxwxwxwvuvuvuvurqrqrqrqpopopopolklklklkjijijiji{{{|{|{|xwxwxwxwvuvuvuvurqrqrqrqpopopopolklklklkjijijiji{|{|{|{|xwxwxwxwvuvuvuvurqrqrqrqpopopopolklklklkjijijiji{|{|{|{|xwxwxwxwvuvuvuvurqrqrqrqpopopopolklklklkjijijiji{|{|{|{|xwxwxwxwvuvuvuvurqrqrqrqpopopopolklklklkjijijiji{|{|{|{|xwxwxwxwvuvuvuvurqrqrqrqpopoponmlklklklkjijijiji{{{{{{|{xwxwxwxwvuvuvuvurqrqrqrqnmnmnmnmlklklklkjijijiji|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqnmnmnmnmlklklklkjijijiji|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqnmnmnmnmlklklklkjijijiji|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqnmnmnmnmlklklklkjijijiji|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqnmnmnmnmlklklklkjijijiji|{|{{{{{xwxwxwxwvuvuvuvurqrqrqrqnmnmnmnmlklklklkjijijiji{|{|{|{|xwxwxwxwvuvuvuvurqrqrqrqnmnmnmnmlklklklkjijijiji{|{|{|{|xwxwxwxwvuvuvuvurqrqrqrqnmnmnmnmlklklklkjijijiji{|{|{|{|xwxwxwxwvuvuvutsrqrqrqrqnmnmnmnmlklklklkjijijiji{|{|{|{|xwxwxwxwtstststsrqrqrqrqnmnmnmnmlklklklkjijijiji{|{|{|{{xwxwxwxwtstststsrqrqrqrqnmnmnmnmlklklklkjijijiji{{{{|{|{xwxwxwxwtstststsrqrqrqrqnmnmnmnmlklklklkjijijiji|{|{|{|{xwxwxwxwtstststsrqrqrqrqnmnmnmnmlklklklkjijijihg|{|{|{|{xwxwxwxwtstststsrqrqrqrqnmnmnmnmlklklklkhghghghg|{|{|{|{xwxwxwxwtstststsrqrqrqrqnmnmnmnmlklklkjihghghghg~}~}|{|{|{|{xwxwxwxwtstststsrqrqrqrqnmnmnmnmjijijijihghghghg~}~}~}~}|{{{{{|{xwxwxwxwtstststsrqrqrqrqnmnmnmnmjijijijihghghghg~}~}~}~}|{|{|{zyxwxwxwxwtstststsrqrqrqrqnmnmnmnmjijijijihghghghg~}~}~}~}zyzyzyzyxwxwxwxwtstststsrqrqrqrqnmnmnmnmjijijijihghghghg~}~}~}~}zyzyzyzyxwxwxwxwtstststsrqrqrqrqnmnmnmnmjijijijihghghghg~}~}~}~}zyzyzyzyxwxwxwxwtstststsrqrqrqrqnmnmnmnmjijijijihghghghg~}~}~}~}zyzyzyzyxwxwxwxwtstststsrqrqrqrqnmnmnmnmjijijijihghghghg~}~}~}~}zyzyzyzyxwxwxwxwtstststsrqrqrqrqnmnmnmnmjijijijihghghghg~}~}~}~}zyzyzyzyxwxwxwxwtstststsrqrqrqponmnmnmnmjijijijihghghghg~}~}~}~}zyzyzyzyxwxwxwxwtstststspopopoponmnmnmnmjijijijihghghghg~}~}~}~}zyzyzyzyxwxwxwxwtstststspopopoponmnmnmnmjijijijihghghghg~}~}~}~}zyzyzyzyxwxwxwxwtstststspopopoponmnmnmnmjijijijihghghghg~}~}~}~}zyzyzyzyxwxwxwxwtstststspopopoponmnmnmnmjijijijihghghghg~}~}~}~}zyzyzyzyxwxwxwxwtstststspopopoponmnmnmnmjijijijihghghghg~}~}~}~}zyzyzyzyxwxwxwxwtstststspopopoponmnmnmnmjijijijihghghghg~}~}~}~}zyzyzyzyxwxwxwxwtstststspopopoponmnmnmnmjijijijihghghghg~}~}~}~}zyzyzyzyxwxwxwxwtstststspopopoponmnmnmnmjijijijihghghghg~}~}~}~}zyzyzyzyxwxwxwvutstststspopopoponmnmnmnmjijijijihghghghg~}~}~}~}zyzyzyzyvuvuvuvutstststspopopoponmnmnmnmjijijijihghghghg~}~}~}~}zyzyzyzyvuvuvuvutstststspopopoponmnmnmnmjijijijihghghghghghghghgcdcdcdcd`_`_`_`_^]^]^]^]ZYZYZYZYVUVUVUVUTSTSTSTSPOPOPOPOLKLKLKLKHGHGHGHGFEFEFEFEBABABABA>=>=>=>=<;<;<;<;87878787343434340/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#     - - - hghghghgcdcdcdcd`_`_`_`_^]^]\[\[ZYZYZYZYVUVUVUVUTSTSTSTSPOPOPOPOLKLKLKLKHGHGHGHGFEFEFEFEBABABABA>=>=>=>=<;<;<;<;87878787343434340/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#     hghghghgcdcdcdcd`_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTSPOPOPOPOLKLKLKLKHGHGHGHGFEFEFEFEBABABABA>=>=>=>=<;<;<;<;87878787343434340/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#     hghghghgcdcdcccc`_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTSPOPOPOPOLKLKLKLKHGHGHGHGFEFEFEFEBABABABA>=>=>=>=<;<;<;<;87878787343434340/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#     hghghghgccdcdcdc`_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTSPOPOPOPOKKKKKLKLHGHGHGHGFEFEFEFEBABABABA>=>=>=>=<;<;<;<;87878787343333330/0/0/0/.-.-.-.-*)*)*)*)&%&%&%&%$#$#$#$#     hghghghgdcdcdcdc`_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTSPOPOPOPOKLKLKLKLHGHGHGHGFEFEFEFEBABABABA>=>=>=>=<;<;<;<;87878787434343430/0/0/0/.-.-.-.-*)*)*)*)&%&%&%&%$#$#$#$#     hghghghgdcdcdcdc`_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTSPOPOPOPOKLKLKLKLHGHGHGHGFEFEFEFEBABABABA>=>=>=>=<;<;<;<;87878787434343430/0/0/0/.-.-.-.-*)*)*)*)&%&%&%&%$#$#$#$#     hghghghgdcdcdcdc`_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVUTSTSRQRQPOPOPOPOKLKLKLKLHGHGHGHGFEDCDCDCBABABABA>=>=>=>=<;<;<;<;87878787434343430/0/0/0/.-.-.-.-*)*)*)*)&%&%&%&%$#$#$#$#     hgfefefedcdcdcdc`_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVURQRQRQRQPOPOPOPOKLKLKLKLHGHGHGHGDCDCDCDCBABABABA>=>=>=>=<;<;<;<;87878787434343430/0/0/0/.-.-.-.-*)*)*)*)&%&%&%&%$#$#$#$#     fefefefeccccdcdc`_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVURQRQRQRQPOPOPOPOKLKKKKKKHGHGHGHGDCDCDCDCBABABABA>=>=>=>=<;<;<;<;87878787434343330/0/0/0/.-.-.-.-*)*)*)*)&%&%&%&%$#$#$#$#     fefefefedcdcbaba`_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVURQRQRQRQPOPOPOPOLKLKLKLKHGHGHGHGDCDCDCDCBABABABA>=>=>=>=<;<;<;<;87878787333434340/0/0/0/.-.-.-.-*)*)*)*)&%&%&%&%$#$#$#$#        fefefefebabababa`_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVURQRQRQRQPOPOPOPOLKLKLKLKHGHGHGHGDCDCDCDCBABABABA>=>=>=>=<;<;<;<;87878787343434340/0/0/0/.-.-.-.-*)*)*)*)&%&%&%&%$#$#$#$#        fefefefebabababa`_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVURQRQRQRQPOPOPOPOLKLKLKLKHGHGHGHGDCDCDCDCBABABABA>=>=>=>=<;<;<;<;87878787343434340/0/0/0/.-.-.-.-*)*)*)*)&%&%&%&%$#$#$#$#        fefefefebabababa`_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVURQRQRQRQPOPOPOPOLKLKLKLKHGHGHGHGDCDCDCDCBABABABA>=>=>=>=<;:9:9:987878787343434340/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#        fefefefebabababa`_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMLKLKLKKKHGHGHGHGDCDCDCDCBABABABA>=>=>=>=:9:9:9:987878787343434340/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#        fefefefebabababa`_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMKKLKLKLKHGHGHGHGDCDCDCDCBABABABA>=>=>=>=:9:9:9:987878787333333430/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#        fefefefebabababa`_`_`_`_\[\[\[\[ZYZYXWXWVUVUVUVURQRQRQRQNMNMNMNMLKJIJIJIHGHGHGHGDCDCDCDCBABABABA>=>=>=>=:9:9:9:987878787434343430/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#        fefefefebabababa`_`_`_`_\[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDCBABABABA>=>=>=>=:9:9:9:987878787434343430/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#        fefefefebabababa`_`_`_`_\[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDCBABABABA>=>=>=>=:9:9:9:987878787434343430/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#        fefefefebabababa`_`_`_`_\[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDCBABABABA>=>=>=>=:9:9:9:987878765434343430/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%"!"!"!"!        fefefefebabababa`_`_`_`_\[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDCBABABABA>=>=>=>=:9:9:9:965656565434333330/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%"!"!"!"!        fefefefebabababa`_`_`_`_\[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDCBABABABA>=>=>=>=:9:9:9:965656565434343430/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%"!"!"!"!        fefefefebabababa`_`_`_`_\[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDCBA@?@?@?>=>=>=>=:9:9:9:965656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%"!"!"!"!        fefefefebabababa`_`_`_`_\[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:965656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%"!"!"!"!        fefefefebabababa`_`_`_`_\[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:965656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%"!"!"!"!        - fefefefebabababa`_`_^]^]\[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:965656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%"!"!"!"!      - - - - fefefefebabababa^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:965656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%"!"!"!"!    - - - - fefefefebabababa^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:965656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%"!"!"!"!    - - - - fefefefebabababa^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:965656565212121210/0/0/0/,+,+,+,+('('('('&%&%&%&%"!"!"!"!    - - - - fefefefebabababa^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:965656565212121210/0/0/0/,+,+,+,+('('('('&%&%&%&%"!"!"!"!    - - - - fefefefebabababa^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:965656565212121210/0/0/0/,+,+,+,+('('('('&%&%&%&%"!"!"!"!    - - - - fefefefebabababa^]^]^]^]\[\[\[\[XWXWXWXWVUVUTSTSRQRQRQRQNMNMNMNMJIJIJIJIHGFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:965656565212121210/0/0/0/,+,+,+,+('('('('&%&%&%&%"!"!"!"!    - - - - fefefefebabababa^]^]^]^]\[\[\[\[XWXWXWXWTSTSTSTSRQRQRQRQNMNMNMNMJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:965656565212121210/0/0/0/,+,+,+,+('('('('&%&%&%&%"!"!"!"!    - - - - fefefefebabababa^]^]^]^]\[\[\[\[XWXWXWXWTSTSTSTSRQRQRQRQNMNMNMNMJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:965656565212121210/0/0/0/,+,+,+,+('('('('&%&%&%&%"!"!"!"!    - - - - fefefefebabababa^]^]^]^]\[\[\[\[XWXWXWXWTSTSTSTSRQRQRQRQNMNMNMNMJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:965656565212121210/0/0/0/,+,+,+,+('('('('&%&%&%&%"!"!"!"!    - - - - fefefefebabababa^]^]^]^]\[\[\[\[XWXWXWXWTSTSTSTSRQRQRQRQNMNMNMNMJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:965656565212121210/0/0/0/,+,+,+,+('('('('&%&%&%&%"!"!"!"!    - - - - fefefefebabababa^]^]^]^]\[\[\[\[XWXWXWXWTSTSTSTSRQRQRQRQNMNMNMNMJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:965656565212121210/0/0/0/,+,+,+,+('('('('&%&%&%&%"!"!"!"!    - - - - fefefefebabababa^]^]^]^]\[\[\[\[XWXWXWXWTSTSTSTSRQRQRQRQNMNMNMNMJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?>=<;<;<;:9:9:9:96565656521212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!    - - - - fefefedcbabababa^]^]^]^]\[\[\[\[XWXWXWXWTSTSTSTSRQRQRQRQNMNMNMNMJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?<;<;<;<;:9:9:9:96565656521212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!    - - - - dcdcdcccbabababa^]^]^]^]\[\[\[\[XWXWXWXWTSTSTSTSRQRQRQRQNMNMNMNMJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?<;<;<;<;:9:9:9:96565656521212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!    - - - - cccdcdcdbabababa^]^]^]^]\[\[ZYZYXWXWXWXWTSTSTSTSRQRQRQRQNMNMNMNMJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?<;<;<;<;:9:9:9:96565656521212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!    - - - - cdcdcdcdbabababa^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSRQRQRQRQNMNMNMNMJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?<;<;<;<;:9:9:9:96565656521212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!    - - - - cdcdcdcdbabababa^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSRQRQRQRQNMNMNMNMJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?<;<;<;<;:9:9:9:96565656521212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!    - - - - cdcdcdcdbabababa^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSRQRQRQRQNMNMNMNMJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?<;<;<;<;:9:9:9:96565656521212121.-.-.-.-,+,+,+,+('('('('$#$#$#$#"!"!"!"!    - - - - cdcdcdcdbabababa^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSRQRQRQRQNMNMLKLKJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?<;<;<;<;:9:9:9:96565656521212121.-.-.-.-,+,+,+,+('('('('$#$#$#$#"!"!"!"!    - - - - ccccccdcbabababa^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSRQRQRQRQLKLKKKKKJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?<;<;<;<;:9:9:9:96565656521212121.-.-.-.-,+,+,+,+('('('('$#$#$#$#"!"!"!"!    - - - - dcdcdcdcbabababa^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSRQRQPOPOKLKLKLKLJIJIJIJIFEFEFEFEDCBABABA@?@?@?@?<;<;<;<;:9:9:9:96565656521212121.-.-.-.-,+,+,+,+('('('('$#$#$#$#"!"!"!"!    - - - - dcdcdcdcbabababa^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSPOPOPOPOKLKLKLKLJIJIJIJIFEFEFEFEBABABABA@?@?@?@?<;<;<;<;:9:9:9:96565656521212121.-.-.-.-,+,+,+,+('('('('$#$#$#$#"!"!"!"!    - - - - dcdcdcdcbabababa^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSPOPOPOPOKLKLKLKLJIJIJIJIFEFEFEFEBABABABA@?@?@?@?<;<;<;<;:9:9:9:96565656521212121.-.-.-.-,+,+,+,+('('('('$#$#$#$#"!"!"!"!   - - - - dcdcdcdcbaba`_`_^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSPOPOPOPOKLKLKLKLJIJIJIJIFEFEFEFEBABABABA@?@?@?@?<;<;<;<;:9:9:9:96565656521212121.-.-.-.-,+,+,+,+('('('('$#$#$#$#"!"!"!"! - - - - dcdccccc`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSPOPOPOPOKLKLKLKKJIJIJIJIFEFEFEFEBABABABA@?@?@?@?<;<;<;<;:9:9:9:96543434321212121.-.-.-.-,+,+,+,+('('('('$#$#$#$#"!"!"!"! - - - - cdcdcdcd`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSPOPOPOPOKKKKLKLKJIJIJIJIFEFEFEFEBABABABA@?@?@?@?<;<;<;<;:9:9:9:94333333421212121.-.-.-.-,+,+,+,+('('('('$#$#$#$#"!"!"!"! - - - - cdcdcdcd`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEBABABABA@?@?@?@?<;<;<;<;:98787873434343421212121.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"! - - - - cdcdcdcd`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEBABABABA@?@?@?@?<;<;<;<;878787873434343421212121.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"! - - - - cdcdcdcd`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEBABABABA@?@?@?@?<;<;<;<;878787873434343421212121.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"! - - - - cdcdcdcc`_`_`_`_^]^]^]^]ZYZYZYZYXWXWVUVUTSTSTSTSPOPOPOPOLKLKLKLKJIHGHGHGFEFEFEFEBABABABA@?@?@?@?<;<;<;<;878787873434343421212121.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"! - - - - ccccdcdc`_`_`_`_^]^]^]^]ZYZYZYZYVUVUVUVUTSTSTSTSPOPOPOPOLKKKKKKLHGHGHGHGFEFEFEFEBABABABA@?@?@?@?<;<;<;<;878787873434333321212121.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"! - - - - dcdcdcdc`_`_`_`_^]^]^]^]ZYZYZYZYVUVUVUVUTSTSTSTSPOPOPOPOKLKLKLKLHGHGHGHGFEFEFEFEBABABABA@?@?@?@?<;<;<;<;878787873343434321212121.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"! - - - - dcdcdcdc`_`_`_`_^]^]^]^]ZYZYZYZYVUVUVUVUTSTSTSTSPOPOPOPOKLKLKLKLHGHGHGHGFEFEFEFEBABABABA@?@?@?@?<;<;<;<;878787874343434321212121.-.-.-.-*)*)*)*)('('('('$#$#$#$#     - - - - dcdcdcdc`_`_`_`_^]^]^]^]ZYZYZYZYVUVUVUVUTSTSTSTSPOPOPOPOKLKLKLKLHGHGHGHGFEFEFEFEBABABABA@?@?@?@?<;<;<;<;878787874343434321212121.-.-.-.-*)*)*)*)('('('('$#$#$#$#     - - - - dcdcdcdc`_`_`_`_^]^]^]^]ZYZYZYZYVUVUVUVUTSTSTSTSPOPOPOPOKLKLKLKLHGHGHGHGFEFEFEFEBABABABA@?@?@?@?<;<;<;<;878787874343434321212121.-.-.-.-*)*)*)*)('('('('$#$#$#$#     - - - - dccccccd`_`_`_`_^]^]^]^]ZYZYZYZYVUVUVUVUTSTSTSTSPOPOPOPOKLKLKKKKHGHGHGHGFEFEFEFEBABABABA@?>=>=>=<;<;<;<;87878787434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#     - - - - cdcdcdcd`_`_`_`_^]^]^]^]ZYZYZYZYVUVUVUVUTSTSTSTSPOPOPOPOKKLKLKLKHGHGHGHGFEFEFEFEBABABABA>=>=>=>=<;<;<;<;87878787333334340/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#     - - - - qqrrssttwwxxyyzz]]^^__``!!""##$$XXWWVVUUiijjkkllbbcciijjFFGGHHII - - 33221100oonnmmlluuvvwwxx{{aabbccdd%%&&''((TTSSRRQQmmnnooppkkllmmnnJJKKLLMM//..--,,kkjjiihhyyzz{{||eeffgghh))**++,,PPOONNMMqqrrssttooppqqrrNNOOPPQQ++**))((ggffeedd}}~~iijjkkll--..//00 LLKKJJIIuuvvwwxxssttuuvvRRSSTTUU''&&%%$$ccbbaa``mmnnoopp11223344 - - HHGGFFEEyyzz{{||wwxxyyzzVVWWXXYY##""!! __^^]]\\qqrrsstt55667788DDCCBBAA~~}}}}~~{{ZZ[[\\]] !![[ZZYYXXuuvvwwxx99::;;<<@@??>>==||{{zzyy^^__``aa""##$$%%WWVVUUTT~~}}yyzz{{||==>>??@@<<;;::99xxwwvvuubbccddee&&''(())SSRRQQPP||{{zzyy}}~~AABBCCDD88776655ttssrrqqffgghhii**++,,--OONNMMLLxxwwvvuuEEFFGGHH - - 44332211ppoonnmmjjkkllmm..//0011 KKJJIIHHttssrrqqIIJJKKLL 00//..--llkkjjiinnooppqq22334455 - - GGFFEEDDppoonnmmMMNNOOPP,,++**))hhggffeerrssttuu66778899CCBBAA@@~~}}||llkkjjiiQQRRSSTT((''&&%%ddccbbaavvwwxxyy::;;<<==??>>==<<{{zzyyxxhhggffee~}|UUVVWWXX$$##""!!``__^^]]zz{{||}}>>??@@AA;;::9988wwvvuuttddccbbaa{{zzyyxxYYZZ[[\\ \\[[ZZYY~~BBCCDDEE 77665544ssrrqqpp``__^^]]wwvvuutt]]^^__``!!""##$$XXWWVVUUFFGGHHII - - 33221100oonnmmll\\[[ZZYY{{ssrrqqppaabbccdd%%&&''((TTSSRRQQJJKKLLMM//..--,,kkjjiihhXXWWVVUUzzyyxxwwoonnmmlleeffgghh))**++,,PPOONNMM~}|NNOOPPQQ++**))((ggffeeddTTSSRRQQvvuuttsskkjjiihgiijjkkll--..//00 LLKKJJII{{{{zzyyxxRRSSTTUU''&&%%$$ccbbaa``PPOONNMMrrqqppoofedccbbammnnoopp11223344 - - HHGGFFEEzzyyxxwwwwvvuuttVVWWXXYY##""!! __^^]]\\LLKKJJIInnmmllkka``__^^]qqrrsstt55667788DDCCBBAAvvuuttssssrrqqppZZ[[\\]] !![[ZZYYXXHHGGFFEEjjiiccbb]\\[[ZZYuuvvwwxx99::;;<<@@??>>==rrqqppoooonnmmll^^__``aa""##$$%%WWVVUUTTDDCCBBAAaa``__^^YXXWWVVUyyzz{{||==>>??@@<<;;::99nnmmllkkkkjjiihgbbccddee&&''(())SSRRQQPPRRSSTTUU@@??>>==]]\\[[ZZUTTSSRRQ~~}}}}~~AABBCCDD88776655jjiiccbbfedccbbaffgghhii**++,,--OONNMMLLVVWWXXYY<<;;::99YYXXWWVVQPONMLKK||{{zzyyEEFFGGHH - - 44332211aa``__^^a``__^^]jjkkllmm..//0011 KKJJIIHHZZ[[\\]]88776655UUTTSSRRJJIIHHGGxxwwvvuuIIJJKKLL 00//..--]]\\[[ZZ]\\[[ZZYnnooppqq22334455 - - GGFFEEDD^^__``aa44332211QQKKJJIIFFEEDDCCttssrrqqMMNNOOPP,,++**))YYXXWWVVYXXWWVVUrrssttuu66778899CCBBAA@@bbccddee00//..--HHGGFFEEBBAA@@??ppoonnmmQQRRSSTT((''&&%%UUTTSSRRUTTSSRRQvvwwxxyy::;;<<==??>>==<>==<<;;llkkjjiiUUVVWWXX$$##""!!QQKKJJIIQPONMLKKzz{{||}}>>??@@AA;;::9988jjkkllmm((''&&%%@@??>>==::998765hhggffeeYYZZ[[\\ HHGGFFEEJJIIHHGG~~}}||~~BBCCDDEE 77665544nnooppqq$$##""!!<<;;::9943322110ddccbbaa]]^^__``!!""##$$DDCCBBAAFFEEDDCC{{zzyyxxFFGGHHII - - 33221100rrssttuu 332211000//..--,``__^^]]aabbccdd%%&&''((@@??>>==BBAA@@??wwvvuuttJJKKLLMM//..--,,vvwwxxyy//..--,,,++**))(\\[[ZZYYeeffgghh))**++,,<<;;::99>>==<<;;ssrrqqppNNOOPPQQ++**))((zz{{||}}++**))(((''&&%%$XXWWVVUUiijjkkll--..//00 33221100::998765oonnmmllRRSSTTUU''&&%%$$~~''&&%%$$$##""!! TTSSRRQQmmnnoopp11223344 - - //..--,,43322110kkjjiihhVVWWXXYY##""!!  ##""!!PPOONNMMqqrrsstt55667788++**))((0//..--,ggffeeddZZ[[\\]] !! - - LLKKJJIIuuvvwwxx99::;;<<''&&%%$$,++**))(ccbbaa``^^__``aa""##$$%% - - HHGGFFEEyyzz{{||==>>??@@##""!!(''&&%%$__^^]]\\bbccddee&&''(()) DDCCBBAA~~}}}}~~AABBCCDD$##""!! [[ZZYYXXffgghhii**++,,-- - -@@??>>==||{{zzyyEEFFGGHH - - WWVVUUTTjjkkllmm..//0011  - - - - <<;;::99xxwwvvuuIIJJKKLL SSRRQQPPnnooppqq22334455 - -  88776655ttssrrqqMMNNOOPP OONNMMLLrrssttuu66778899  - - 44332211ppoonnmmQQRRSSTT - - KKJJIIHHvvwwxxyy::;;<<==!!""##$$ 00//..--llkkjjiiUUVVWWXX - -GGFFEEDDzz{{||}}>>??@@AA%%&&''((,,++**))hhggffeeYYZZ[[\\  - - CCBBAA@@~~}}||~~BBCCDDEE ))**++,,!!""##((''&&%%ddccbbaa]]^^__``!!""##$$ ??>>==<<{{zzyyxxFFGGHHII - - --..//00$$%%&&''$$##""!!``__^^]]aabbccdd%%&&''((;;::9988wwvvuuttJJKKLLMM{{zz11223344(())**++ \\[[ZZYYeeffgghh))**++,, 77665544ssrrqqppNNOOPPQQyyxxwwvv55667788,,--..//!!""##$$XXWWVVUUiijjkkll--..//00 - - 33221100oonnmmllRRSSTTUUuuttssrr99::;;<<00112233%%&&''((TTSSRRQQmmnnoopp11223344!!""##//..--,,kkjjiihhVVWWXXYYqqppoonn==>>??@@99::;;<<))**++,,PPOONNMMqqrrsstt55667788$$%%&&''++**))((ggffeeddZZ[[\\]] !!mmllkkjjAABBCCDD==>>??@@--..//00 LLKKJJIIuuvvwwxx99::;;<<(())**++''&&%%$$ccbbaa``^^__``aa""##$$%%iiccbbaaEEFFGGHHAABBCCDD11223344 - - HHGGFFEEyyzz{{||==>>??@@,,--..//##""!! __^^]]\\bbccddee&&''(())``__^^]]IIJJKKLLEEFFGGHH55667788DDCCBBAA~~}}}}~~AABBCCDD00112233 !![[ZZYYXXffgghhii**++,,--\\[[ZZYYMMNNOOPPIIJJKKQQ99::;;<<@@??>>==||{{zzyyEEFFGGHH99::;;<<""##$$%%WWVVUUTTjjkkllmm..//0011XXWWVVUUQQRRSSTTRRSSTTUU==>>??@@<<;;::99xxwwvvuuIIJJKKLL==>>??@@&&''(())SSRRQQPPnnooppqq22334455TTSSRRQQUUVVWWXXVVWWXXYYAABBCCDD88776655ttssrrqqMMNNOOPPAABBCCDD**++,,--OONNMMLLrrssttuu66778899KKJJIIHHYYZZ[[\\ZZ[[\\]]EEFFGGHH - - 44332211ppoonnmmQQRRSSTTEEFFGGHH..//0011 KKJJIIHHvvwwxxyy::;;<<==GGFFEEDD]]^^__``^^__``aaIIJJKKLL 00//..--llkkjjiiUUVVWWXXIIJJKKQQ22334455 - - GGFFEEDDzz{{||}}>>??@@AACCBBAA@@aabbccddbbcciijjMMNNOOPP,,++**))hhggffeeYYZZ[[\\RRSSTTUU66778899CCBBAA@@~~}}||~~BBCCDDEE??>>==<>==<<{{zzyyxxFFGGHHII;;::9933iijjkkllooppqqrrUUVVWWXX$$##""!!``__^^]]aabbccddZZ[[\\]]>>??@@AA;;::9988wwvvuuttJJKKLLMM221100//mmnnooppssttuuvvYYZZ[[\\ \\[[ZZYYeeffgghh^^__``aaBBCCDDEE 77665544ssrrqqppNNOOPPQQ..--,,++**))((''/..--,,+ffeeddcc[[\\]]^^ !!""FFEEDDCCHHGGFFEE}}||{{zzDDEEFFGG - - 55443322bbaa``__baa``__^iijjkkll--..//00 LLKKJJII{{{{zzyyxxRRSSTTUU''&&%%$$ccbbaa``{{zzyyxx&&%%$$##+**))(('bbaa``____``aabb##$$%%&&BBAA@@??DDCCBBAAyyxxwwvvHHIIJJKK 1100//..^^]]\\[[^]]\\[[Zmmnnoopp11223344 - - HHGGFFEEzzyyxxwwwwvvuuttVVWWXXYY##""!! __^^]]\\wwvvuutt""!!'&&%%$$#^^]]\\[[ccddeeff''(())**>>==<<;;@@??>>==uuttssrrLLMMNNOO--,,++**ZZYYXXWWZYYXXWWVqqrrsstt55667788DDCCBBAAvvuuttssssrrqqppZZ[[\\]] !![[ZZYYXXssrrqqpp#""!! ZZYYXXWWgghhiijj++,,--..::993322<<;;::99qqppoonnPPQQRRSS))((''&&VVUUTTSSVUUTTSSRuuvvwwxx99::;;<<@@??>>==rrqqppoooonnmmll^^__``aa""##$$%%WWVVUUTToonnmmllVVUUTTSSkkllmmnn//001122 1100//..87654332mmllkkjjTTUUVVWW%%$$##""RRQQKKJJRQQPONMLyyzz{{||==>>??@@<<;;::99nnmmllkkkkjjiihgbbccddee&&''(())SSRRQQPPkkjjiihhRRQQPPOOooppqqrr33445566 - - --,,++**21100//.iihhggffXXYYZZ[[!! IIHHGGFFKKJJIIHH~~}}}}~~AABBCCDD88776655jjiiccbbfedccbbaffgghhii**++,,--OONNMMLL{{ggffeedd - -NNMMLLKKssttuuvv778899::))((''&&.--,,++*eeddccbb\\]]^^__ !!""##EEDDCCBBGGFFEEDD||{{zzyyEEFFGGHH - - 44332211aa``__^^a``__^^]jjkkllmm..//0011 KKJJIIHHzzyyxxwwccbbaa``  JJIIHHGGwwxxyyzz;;<<==>>%%$$##""*))((''&aa``__^^``aabbcc$$%%&&''AA@@??>>CCBBAA@@xxwwvvuuIIJJKKLL 00//..--]]\\[[ZZ]\\[[ZZYnnooppqq22334455 - - GGFFEEDDvvuuttss__^^]]\\ - - FFEEDDCC{{||}}~~??@@AABB!!&%%$$##"]]\\[[ZZddeeffgg(())**++==<<;;::??>>==<>==<>==<<;;zzyyxxwwGGHHIIJJ UUTTSSRRllmmnnoo00112233 - -00//..--65433221llkkjjiiUUVVWWXX$$##""!!QQKKJJIIQPONMLKKzz{{||}}>>??@@AA;;::9988jjiiccbbSSRRQQPP::998877vvuuttssKKLLMMNN QQPPOONNppqqrrss44556677 ,,++**))100//..-hhggffeeYYZZ[[\\ HHGGFFEEJJIIHHGG~~}}||~~BBCCDDEE 77665544aa``__^^OONNMMLL - -66554433rrqqppooOOPPQQRR - - MMLLKKJJttuuvvww8899::;;((''&&%%-,,++**)ddccbbaa]]^^__``!!""##$$DDCCBBAAFFEEDDCC{{zzyyxxFFGGHHII - - 33221100]]\\[[ZZKKJJIIHH 221100//nnmmllkkSSTTUUVV IIHHGGFFxxyyzz{{<<==>>??$$##""!!)((''&&%``__^^]]aabbccdd%%&&''((@@??>>==BBAA@@??wwvvuuttJJKKLLMM//..--,,YYXXWWVVGGFFEEDD!!""##$$..--,,++jjiihhggWWXXYYZZ - - EEDDCCBB~~||}}~~@@AABBCC%$$##""!\\[[ZZYYeeffgghh))**++,,<<;;::99>>==<<;;ssrrqqppNNOOPPQQ++**))((UUTTSSRRCCBBAA@@%%&&''((**))((''ffeeddcc[[\\]]^^ !!"" - - AA@@??>>}}||{{zzDDEEFFGG - - ! XXWWVVUUiijjkkll--..//00 33221100::998765oonnmmllRRSSTTUU''&&%%$$QQKKJJII??>>==<<))**++,,&&%%$$##bbaa``____``aabb##$$%%&& ==<<;;::yyxxwwvvHHIIJJKK TTSSRRQQmmnnoopp11223344 - - //..--,,43322110kkjjiihhVVWWXXYY##""!! HHGGFFEE;;::9988--..//00""!! ^^]]\\[[ccddeeff''(())**99887766uuttssrrLLMMNNOO PPOONNMMqqrrsstt55667788++**))((0//..--,ggffeeddZZ[[\\]] !!DDCCBBAA7766554411223399 !!""ZZYYXXWWgghhiijj++,,--.. - - 55443322qqppoonnPPQQRRSS - - LLKKJJIIuuvvwwxx99::;;<<''&&%%$$,++**))(ccbbaa``^^__``aa""##$$%%@@??>>==33221100::;;<<==##$$%%&&VVUUTTSSkkllmmnn//001122!! 1100//..mmllkkjjTTUUVVWW HHGGFFEEyyzz{{||==>>??@@##""!!(''&&%%$__^^]]\\bbccddee&&''(())<<;;::99//..--,,>>??@@AA''(())**RRQQPPOOooppqqrr33445566""##$$%%--,,++**iihhggffXXYYZZ[[ - - DDCCBBAA~~}}}}~~AABBCCDD$##""!! [[ZZYYXXffgghhii**++,,--33221100++**))((BBCCDDEE++,,--..NNMMLLKKssttuuvv778899::&&''(())))((''&&eeddccbb\\]]^^__ !!""## - - @@??>>==||{{zzyyEEFFGGHH - - WWVVUUTTjjkkllmm..//0011 //..--,,''&&%%$$FFGGHHII//001122 JJIIHHGGwwxxyyzz;;<<==>>**++,,--%%$$##""aa``__^^``aabbcc$$%%&&''<<;;::99xxwwvvuuIIJJKKLL SSRRQQPPnnooppqq22334455 - - ++**))((##""!! JJKKQQRR33445566 - - FFEEDDCC{{||}}~~??@@AABB..//0011!! ]]\\[[ZZddeeffgg(())**++88776655ttssrrqqMMNNOOPP OONNMMLLrrssttuu66778899''&&%%$$SSTTUUVV778899::BBAA@@??~~}}||{{CCDDEEFF223399:: !!""##YYXXWWVVhhiijjkk,,--..// - - 44332211ppoonnmmQQRRSSTT - - KKJJIIHHvvwwxxyy::;;<<==##""!!WWXXYYZZ;;<<==>>>>==<<;;zzyyxxwwGGHHIIJJ;;<<==>>$$%%&&''UUTTSSRRllmmnnoo00112233!!"" 00//..--llkkjjiiUUVVWWXX - -GGFFEEDDzz{{||}}>>??@@AA[[\\]]^^??@@AABB::998877vvuuttssKKLLMMNN??@@AABB(())**++QQPPOONNppqqrrss44556677##$$%%&&,,++**))hhggffeeYYZZ[[\\  - - CCBBAA@@~~}}||~~BBCCDDEE __``aabbCCDDEEFF - -66554433rrqqppooOOPPQQRRCCDDEEFF,,--..//MMLLKKJJttuuvvww8899::;;''(())**((''&&%%ddccbbaa]]^^__``!!""##$$ ??>>==<<{{zzyyxxFFGGHHII - -  cciijjkkGGHHIIJJ 221100//nnmmllkkSSTTUUVVGGHHIIJJ00112233 - -IIHHGGFFxxyyzz{{<<==>>??++,,--..$$##""!!``__^^]]aabbccdd%%&&''((;;::9988wwvvuuttJJKKLLMM - - llmmnnooKKLLMMNN..--,,++jjiihhggWWXXYYZZKKQQRRSS44556677 EEDDCCBB~~||}}~~@@AABBCC//001122 \\[[ZZYYeeffgghh))**++,, 77665544ssrrqqppNNOOPPQQ - - - - - - ppqqrrssOOPPQQRR**))((''ffeeddcc[[\\]]^^TTUUVVWW8899::;;AA@@??>>}}||{{zzDDEEFFGG3399::;;!!""##$$XXWWVVUUiijjkkll--..//00 - - 33221100oonnmmllRRSSTTUU ttuuvvwwSSTTUUVV&&%%$$##bbaa``____``aabbXXYYZZ[[<<==>>??==<<;;::yyxxwwvvHHIIJJKK<<==>>??%%&&''((TTSSRRQQmmnnoopp11223344!!""##//..--,,kkjjiihhVVWWXXYYxxyyzz{{WWXXYYZZ""!! ^^]]\\[[ccddeeff\\]]^^__@@AABBCC99887766uuttssrrLLMMNNOO@@AABBCC))**++,,PPOONNMMqqrrsstt55667788$$%%&&''++**))((ggffeeddZZ[[\\]] !![[\\]]^^ !!""ZZYYXXWWgghhiijj``aabbccDDEEFFGG - - 55443322qqppoonnPPQQRRSSDDEEFFGG--..//00 LLKKJJIIuuvvwwxx99::;;<<(())**++''&&%%$$ccbbaa``^^__``aa""##$$%%__``aabb##$$%%&&VVUUTTSSkkllmmnniijjkkllHHIIJJKK 1100//..mmllkkjjTTUUVVWWHHIIJJKK11223344 - - HHGGFFEEyyzz{{||==>>??@@,,--..//##""!! __^^]]\\bbccddee&&''(())!!""## !!ccddeeff''(())**RRQQPPOOooppqqrrmmnnooppLLMMNNOO--,,++**iihhggffXXYYZZ[[QQRRSSTT55667788DDCCBBAA~~}}}}~~AABBCCDD00112233 !![[ZZYYXXffgghhii**++,,--$$%%&&''""##$$%%gghhiijj++,,--..NNMMLLKKssttuuvvqqrrssttPPQQRRSS))((''&&eeddccbb\\]]^^__UUVVWWXX99::;;<<@@??>>==||{{zzyyEEFFGGHH99::;;<<""##$$%%WWVVUUTTjjkkllmm..//0011(())**++&&''(())kkllmmnn//001122 JJIIHHGGwwxxyyzzuuvvwwxxTTUUVVWW%%$$##""aa``__^^``aabbccYYZZ[[\\==>>??@@<<;;::99xxwwvvuuIIJJKKLL==>>??@@&&''(())SSRRQQPPnnooppqq22334455,,--..//**++,,--ooppqqrr33445566 - - FFEEDDCC{{||}}~~yyzz{{XXYYZZ[[!! ]]\\[[ZZddeeffgg]]^^__``AABBCCDD88776655ttssrrqqMMNNOOPPAABBCCDD**++,,--OONNMMLLrrssttuu6677889900112233..//0011ssttuuvv778899::BBAA@@??~~}}||{{\\]]^^__ !!""##YYXXWWVVhhiijjkkaabbcciiEEFFGGHH - - 44332211ppoonnmmQQRRSSTTEEFFGGHH..//0011 KKJJIIHHvvwwxxyy::;;<<==99::;;<<22334455wwxxyyzz;;<<==>>>>==<<;;zzyyxxww``aabbcc$$%%&&''UUTTSSRRllmmnnoojjkkllmmIIJJKKLL 00//..--llkkjjiiUUVVWWXXIIJJKKQQ22334455 - - GGFFEEDDzz{{||}}>>??@@AA==>>??@@66778899{{||}}~~??@@AABB::998877vvuuttssddeeffgg(())**++QQPPOONNppqqrrssnnooppqqMMNNOOPP,,++**))hhggffeeYYZZ[[\\RRSSTTUU66778899CCBBAA@@~~}}||~~BBCCDDEEAABBCCDD::;;<<==CCDDEEFF - -66554433rrqqppoohhiijjkk,,--..//MMLLKKJJttuuvvwwrrssttuuQQRRSSTT((''&&%%ddccbbaa]]^^__``VVWWXXYY::;;<<==??>>==<<{{zzyyxxFFGGHHIIEEFFGGHH>>??@@AAGGHHIIJJ 221100//nnmmllkkllmmnnoo00112233 - -IIHHGGFFxxyyzz{{vvwwxxyyUUVVWWXX$$##""!!``__^^]]aabbccddZZ[[\\]]>>??@@AA;;::9988wwvvuuttJJKKLLMMIIJJKKQQBBCCDDEEKKLLMMNN..--,,++jjiihhggppqqrrss44556677 EEDDCCBB~~||}}~~zz{{YYZZ[[\\ \\[[ZZYYeeffgghh^^__``aaBBCCDDEE 77665544ssrrqqppNNOOPPQQRRSSTTUUFFGGHHII~}|{{OOPPQQRR**))((''ffeeddccttuuvvww8899::;;AA@@??>>}}||{{zz]]^^__``!!""##$$XXWWVVUUiijjkkllbbcciijjFFGGHHII - - 33221100oonnmmllRRSSTTUUVVWWXXYYJJKKLLMMzzyyxxwwSSTTUUVV&&%%$$##bbaa``__xxyyzz{{<<==>>??==<<;;::yyxxwwvvaabbccdd%%&&''((TTSSRRQQmmnnooppkkllmmnnJJKKLLMM//..--,,kkjjiihhVVWWXXYYZZ[[\\]]NNOOPPQQvvuuttssWWXXYYZZ""!! ^^]]\\[[||}}~~@@AABBCC99887766uuttssrreeffgghh))**++,,PPOONNMMqqrrssttooppqqrrNNOOPPQQ++**))((ggffeeddZZ[[\\]]^^__``aaRRSSTTUUrrqqppoo[[\\]]^^ !!""ZZYYXXWWDDEEFFGG - - 55443322qqppoonniijjkkll--..//00 LLKKJJIIuuvvwwxxssttuuvvRRSSTTUU''&&%%$$ccbbaa``^^__``aabbcciijjVVWWXXYYnnmmllkk__``aabb##$$%%&&VVUUTTSSHHIIJJKK 1100//..mmllkkjjmmnnoopp11223344 - - HHGGFFEEyyzz{{||wwxxyyzzVVWWXXYY##""!! __^^]]\\bbccddeekkllmmnnZZ[[\\]]jjiihgfeccddeeff''(())**RRQQPPOOLLMMNNOO--,,++**iihhggffqqrrsstt55667788DDCCBBAA~~}}}}~~{{ZZ[[\\]] !![[ZZYYXXffgghhiiooppqqrr^^__``aadccbbaa`gghhiijj++,,--..NNMMLLKK~}|{{zzPPQQRRSS))((''&&eeddccbbuuvvwwxx99::;;<<@@??>>==||{{zzyy^^__``aa""##$$%%WWVVUUTTjjkkllmmssttuuvvbbccddee`__^^]]\kkllmmnn//001122 JJIIHHGG{{zzyyyyxxwwvvTTUUVVWW%%$$##""aa``__^^yyzz{{||==>>??@@<<;;::99xxwwvvuubbccddee&&''(())SSRRQQPPnnooppqqwwxxyyzzffgghhii\[[ZZYYXooppqqrr33445566 - - FFEEDDCCxxwwvvuuuuttssrrXXYYZZ[[!! ]]\\[[ZZ}}~~AABBCCDD88776655ttssrrqqffgghhii**++,,--OONNMMLLrrssttuu{{jjkkllmmXWWVVUUTssttuuvv778899::BBAA@@??ttssrrqqqqppoonn\\]]^^__ !!""##YYXXWWVVEEFFGGHH - - 44332211ppoonnmmjjkkllmm..//0011 KKJJIIHHvvwwxxyynnooppqqTSSRRQQPwwxxyyzz;;<<==>>>>==<<;;ppoonnmmmmllkkjj``aabbcc$$%%&&''UUTTSSRRIIJJKKLL 00//..--llkkjjiinnooppqq22334455 - - GGFFEEDDzz{{||}}rrssttuuONMLKKJJ{{||}}~~??@@AABB::998877llkkjjiiiihgfedcddeeffgg(())**++QQPPOONN~MMNNOOPP,,++**))hhggffeerrssttuu66778899CCBBAA@@~~}}||~~vvwwxxyyIIHHGGFF~~}}||{{CCDDEEFF - -66554433ccbbaa``cbbaa``_hhiijjkk,,--..//MMLLKKJJ}|{{zzyyQQRRSSTT((''&&%%ddccbbaavvwwxxyy::;;<<==??>>==<<{{zzyyxxzz{{||}}EEDDCCBBzzyyxxwwGGHHIIJJ 221100//__^^]]\\_^^]]\\[llmmnnoo00112233 - -IIHHGGFF{{zzyyxxxxwwvvuuUUVVWWXX$$##""!!``__^^]]zz{{||}}>>??@@AA;;::9988wwvvuutt~~AA@@??>>vvuuttssKKLLMMNN..--,,++[[ZZYYXX[ZZYYXXWppqqrrss44556677 EEDDCCBBwwvvuuttttssrrqqYYZZ[[\\ \\[[ZZYY~~BBCCDDEE 77665544ssrrqqpp==<<;;::rrqqppooOOPPQQRR**))((''WWVVUUTTWVVUUTTSttuuvvww8899::;;AA@@??>>ssrrqqppppoonnmm]]^^__``!!""##$$XXWWVVUUFFGGHHII - - 33221100oonnmmll99876543nnmmllkkSSTTUUVV&&%%$$##SSRRQQKKSRRQQPONxxyyzz{{<<==>>??==<<;;::oonnmmllllkkjjiiaabbccdd%%&&''((TTSSRRQQJJKKLLMM//..--,,kkjjiihh3221100/jjiihhggWWXXYYZZ""!! JJIIHHGGMLKKJJII~~||}}~~@@AABBCC99887766kkjjiicchgfedccbeeffgghh))**++,,PPOONNMM~}|NNOOPPQQ++**))((ggffeedd~~}}||bdQZ|H~fdQbtp˂r`vXnے`JXQfpvJlt`vXnl|Z˂rXQvXn`JXQrpvn˂rXQdrtA`vXnl|ZdQXQJ`ےvpfr˂pnXv`bdQZ|vpfdQbtJ`ےvpfH˂pZXv`fJ`ےJltvpfbtlbHAZH~fZHAbf~HdrtAH~flJtArbHAZp~f`HAbے~HfbHAZpbdQZ|H~fJtArdp˂r`vXnے`JXQfpvJlt`vXnd|Z˂rXQvXn`JXQrpvn˂rbdrtA`vXn|ZdQXQJ`ےvpfr˂pnXv`bdQZ|vpfdQbtJ`ےvpfH˂pZXv`fdQZ|JltvpfbtlbHAZH~fZHAےf~HdrtAH~fl|ZdQbHAZp~f`HAbے~HfdrtAJbdQZ|H~f|ZdQbp˂r`vXn`JXQrfpvJlt`vXnbtl˂rXQvXn`JXQrpvnltbdrtA`vXnnXv`XQJ`ےvpfbtlnXv`bdQZ|vpfJtArdJ`ےvpfH˂pZXv`fdQZ|Jltvpff~fpېbHAZH~fJtAdf~HdrtAH~f|ZdQbHAZp~f`HAbے~HfdrtAJbdQZ|H~fvnXp˂r`vXn|ZdQbfpvJlt`vXnbtl˂rXQvXn`JXQrpvnltbdrtA`vXnv`fXQJ`ےvpftlJnXv`bdQZ|vpf|ZdQbJ`ےvpfH˂pZXv`fdQZ|Jltr˂p~HfpېbHAZH~ftArdf~HdrtAH~fnXv`bHAZp~f`HAے`~HfdrtAJbdQZ|`JXQrvnXp˂r`vXn|ZdQbfpvJlt`vXnf~fp˂rXQvXnJXQrbpvnltbdrtA˂pZv`f~fXQJ`ےvpftlJnXv`bdQZ|r˂pvnXJ`ےvpfHtlJXv`fdQZ|JltHAbےpvnbHAZH~ftArdf~HdrtA`JXQrv`fbHAZp~f`tAd|~HfdrtAJbdQZ|`JXQrXv`fp˂r`vXn|ZdQbfpvJlt˂pZ~Hfp˂rXQvXnZdQbtpvnltbdrtA˂p`~HfbdQZ|vpftlJnXv`bdQZ|HAbےvnXJ`ےvpfHlJtAXv`fdQZ|JltJXQrpvndrtAH~ftArdf~HdrtA`JXQrv`f~fbHAZp~f`rd|~HfdrtAJbdQZ|˂pZHAXv`fJlt`vXn|ZdQbfpvJlt˂p`pvn˂rXQvXnZdQbtpvnltbdrtAbے`~fpvbdQZ|vpftlJnXv`bdQZ|JXQrXv`fJ`ےvpfHlJtAXv`fdQZ|JltJXQrnXv`drtAH~ftArdfHfdrtA˂pZHA~HfbHAZp~f`rd|~HfdrtAJbdQZ|˂p`Jf~HJlt`vXn|ZdQbpvnJltbے`pvn˂rbvXnZdQbtpvnltbdrtAXQr˂fpvbdQZ|vpftlJrXQJ`bdQZ|JXQrXv`fdQZ|vpfHlJtAXv`fdQZ|vXnJltpZHAbnXv`drtAH~ftArdےHAZdrtA˂p`J~fpvdrtAJ~f`rd|~HfdrtAJvpfHbdQZ|ے`Jf~fpJlt`vXn|ZdQbp˂rJltXQr˂nXv`ltbvXnZdQbtpvnltb~f`drtAXQr˂vnXbdQZ|vpftlJXQJ`ےbdQZ|pZHAbf~HdQZ|vpfHlJtAXv`fdQZ|vXnJltp`JXQv`fdrtAH~ftArdbHAZdrtAے`JfpvdrtAJ~f`rd|HfpdrtAJvpfHbdQZ|r˂p~HfpJlt`vXn|ZdQbp˂rJltXQr˂nXv`ltbvXnZdQbtvnrltb~f`drtAZHAbvnXbdQZ|vpftlJXQJ`ےbdQZ|p`JXQf~fpdQZ|vpfHlJtAXQJ`ےdQZ|vXnJltے`JXQv`f~drtAH~ftArdbHAZdrtAr˂pvnXdrtAJ~f`rd|HAZpdrtAJvpfHbdQZ|r˂pfpvJlt`vXn|ZdQbp˂rJltZHAbv`fltbvXnZdQbt˂rXQltb~f`drtA`JXQrnXv`bdQZ|r˂ptlJXQJ`ےbdQZ|ے`JXQ~HfpdQZ|vpfHlJtAJ`ےdQZ|vXnJlt˂pZf~HdrtAZHAbtArdbHAZdrtAr˂pvnXdrtAJ~f`rd|bHAZpdrtAJvpfHbdQZ|HAbےfpvJltے`JXQ|ZdQbp˂rJlt`JXQrv`f~ltbvXnZdQbt˂rXQltb~f`drtA`JXQrnXv`fbdQZ|r˂ptlJXQJ`ےbdQZ|˂pZfpvdQZ|vpfHlJtAJ`ےdQZ|vXnJlt˂p`~fpvdrtAZHAbtArdbHAZdtAJHAbےnXv`drtAJ~f`rd|bHAZpdrtAJvpfHbdQZ|JXQrnXvJltے`JXQ|ZdQbp˂rltb`JXQrf~HltbvXnrZdQbt˂rXQltb~f``vXn˂pZHA`f~bdQZ|r˂ptlJXQJ`ےnvp˂p`fpvdQZ|˂pZlJtAJ`ےdQZ|vXnvpfbے`HfpvdrtAZHAbtArdbHAZfHfJXQrnXv`fdrtAJHAbےrd|bHAZpdrtAJvpfHH~fJXQrnXvJltے`JXQ|ZdQbp˂r`vXn˂pZHA~fpvltb`JXQrZdQbt˂rXQltb~f``vXn˂p|Z`frQbdQZ|r˂ptlJXQJ`ےvpfbے`nXvdQZ|˂pZlJtAJ`ےdQZ|vXnrvpfdQbtJHAZdrtAZHAbtArdbHAZH~fJXQr`f~drtAJHAbےrd|bHAZpdtAJl˂p`H~flJtArp˂rJltے`JXQ|ZdQbp˂r`vXn˂p`JHfpvltb`JXQrZdQbt˂rXQtbnJXQr`vXnd|ZXQJ`ےbdQZ|r˂ptlJXQJ`ےvpfXQrbtnXvdQZ|˂pZlJtAJ`ےvpf˂pZHAvpfdQbt璐bHAZdrtAZHAbtArdbHAZH~fl|Z`ffpdrtAJHAbےrd|bHAZpHf`bے`H~fl|ZdQp˂rJltے`JXQ|ZdQbp˂r`vXndQbtvnrltb`JXQrZdQbt˂rXQvXnJXQr`vXnbtlXQJ`ےbdQZ|r˂pnXv`XQJ`ےvpflJtArXQJ`ےdQZ|˂pZlJtAJ`ےvpfH˂p`JvpfJtArdbHAZdrtAZHAbf~HbHAZH~fd|ZHAZpdrtAJHAbےrd|bHAZp~f`XQr˂H~f|ZdQp˂rJltے`JXQfpvp˂r`vXndQbt˂rXQltb`JXQrZdQbt˂rXQvXnpZHAb`vXnbtlXQJ`ےbdQZ|r˂pnXv`XQJ`ےvpfl|ZdQJ`ےdQZ|˂pZlJtAJ`ےvpfHے`Jvpf|ZdQbbHAZdrtAZHAbf~HbHAZH~fbtlbHAZpdrtAJHAbےrd|bHAZp~f`XQr˂H~ftlJp˂rJltے`JXQfpvp˂r`vXnJtArd˂rXQltb`JXQrZdQbn˂rXQvXnp`JXQ`vXntArdXQJ`ےbdQZ|r˂pnXv`XQJ`ےvpf|ZdQJ`ےdQZ|˂pZXv`fJ`ےvpfHr˂pvpf|ZdQbbHAZdtAJZHAbf~HbHAZH~fbtlbHAZpdrtAJHAbے~HfbHAZp~f`ZHAbH~ftl|p˂rltbے`JXQfpvp˂r`vXn|ZdQb˂rXQltb`JXQrpvn˂rXQvXnے`JXQ`vXnZdQbtXQJ`ےnvpr˂pnXv`XQJ`ےvpftlJJ`ےdQZ|˂pZXv`fJ`ےvpfHr˂pvpflJtAbHAZfHfZHAbf~HbHAZH~ftArdbHAZpdrtAJHAbے~HfbHAZp~f``JXQrH~frd|p˂r`vXnے`JXQfpvp˂r`vXn|ZdQb˂rXQltb`JXQrpvn˂rXQvXn˂pZ`vXnZdQbtXQJ`ےvpfr˂pnXv`XQJ`ےvpftl|J`ےdQZ|˂pZXv`fJ`ےvpfHHAbےvpfl|ZbHAZH~fZHAbf~HbHAZH~fZdQbtbHAZpdtAJlHAbے~HfbHAZp~f``JXQrH~fdQbtp˂r`vXnے`JXQfpvp˂r`vXnlJtA˂rXQtbn`JXQrpvn˂rXQvXn˂p``vXnlJtArXQJ`ےvpfr˂pnXv`bdQZ|vpfrd|J`ےvpf˂pZXv`fJ`ےvpfHJXQrvpfd|ZbHAZH~fZHAbf~HdrtAH~fZdQbtbHAZpHf`HAbے~HfbHAZp~f`˂pZHAbے`v`frtAJlf`vd|ZHAZp˂rtAJl˂pZHAnXv`tAJlf`vX|ZdQZp˂tAJlJXQrvnXJlt`vXn|ZdQbfpvJlt˂p`pvn˂rXQvXnZdQbtpvnltbvXnے`vXnJXQr~HfptbdQXnrdQbt璀rXQJtbdQbے`f~HtbdQZnvpbtlrXQJ`tbdQZ˂pZHAv`fbdQZ|vpftlJnXv`bdQZ|JXQrXv`fJ`ےvpfHlJtAXv`fdQZ|`JXQrvˍpf˂p`JvnXZ|d˂pZHAlJtAr`ےbZ|dJXQrfpv|drfH~JtArdےbHA|drbے`~HfpdrtAH~ftArdfHfdrtA˂pZHA~HfbHAZp~f`rd|~HfdrtAJ˂pZH~ㅐfXQr˂v`f~rtAJlbے`d|ZHAZp˂rtAJl˂p`JnXv`tAJlf`vX|ZdQZp˂tAJlJXQrvnXJlt`vXn|ZdQbpvnJltbے`pvn˂rbvXnZdQbtpvnltbHAbے`vXnpZHAbfpvtbdQJXQrdQbt璀rXQJtbdQXQr˂f~fptbdQZnvpbtlrXQJ`tbdQZ˂p`Jv`f~fbdQZ|vpftlJrXQJ`bdQZ|JXQrXv`fdQZ|vpfHlJtAXv`fdQZ|`JXQrvˍpfے`JnXv`Z|d˂pZHAlJtAr`ےbZ|dpZHAbvnX|drfH~JtArdےbHA|drXQr˂pvndrtAH~ftArdےHAZdrtA˂p`J~fpvdrtAJ~f`rd|~HfdrtAJ˂p`H~ㅐfXQr˂f~HrtAJlbے`d|ZHAZp˂tAJl璐ے`Jv`ftAJlf`vX|ZdQZp˂tAJlpZHAbXv`fJlt`vXn|ZdQbp˂rJltXQr˂nXv`ltbvXnZdQbtpvnltbJXQr`vXnp`JXQfpvtbdQJXQrdQbt璀rXQJtbnXQr˂~HfptbdQZnr˂btlrXQJ`tbdQZے`J~HfbdQZ|vpftlJXQJ`ےbdQZ|pZHAbf~HdQZ|vpfHlJtAXv`fdQZ|˂pZHAvˍpfrbtnXv`Z|d˂pZHAlJtAr`ےbvpfHp`JXQvnX|drpZHAbJtArdےbHA|drXQr˂pvndrtAH~ftArdbHAZdrtAے`JfpvdrtAJ~f`rd|HfpdrtAJbے`H~ㅐfl|ZdQffpvrtAJlbے`d|ZHAZp˂f`vr˂pv`f~ftAJl璐ے`J|ZdQZp˂tAJlp`JXQXv`fJlt`vXn|ZdQbp˂rJltXQr˂nXv`ltbvXnZdQbtvnrltbJXQr`vXnbtlnrXQtbdQJXQrdQbt璀rXQJXnvZHAbpvntbdQZXQr˂btlrXQJ`tbdQZr˂p~fpvbdQZ|vpftlJXQJ`ےbdQZ|p`JXQf~fpdQZ|vpfHlJtAXQJ`ےdQZ|˂p`JvˍpfJtArdJ`ےZ|d˂pZHAlJtAr`ےbpfH~ے`JXQXv`f|drpZHAbJtArdےbHA|dtAZHAbnXv`drtAH~ftArdbHAZdrtAr˂pvnXdrtAJ~f`rd|HAZpdrtAJXQr˂H~ㅐf|ZdQHAZp˂rtAJlbے`d|ZHAZp˂f`vr˂p~HftAJl璐ے`J|ZdQZp˂Jltے`JXQf~HJlt`vXn|ZdQbp˂rJltZHAbv`fltbvXnZdQbt˂rXQltbpZHAb`vXnbtlrXQJtbdQJXQrdQbt璀rXQJXnv`JXQrpvntbdQZXQr˂btlrXQJ`bnvr˂pfpvbdQZ|r˂ptlJXQJ`ےbdQZ|ے`JXQ~HfpdQZ|vpfHlJtAJ`ےdQZ|ے`Jvˍpf|ZdQb`ےbZ|d˂pZHAlJtAr`ےbpfH~btlXv`f|drpZHAbJtArdےbHApfH`JXQrnXv`drtAZHAbtArdbHAZdrtAr˂pvnXdrtAJ~f`rd|bHAZpdrtAJXQr˂H~ㅐftlJHAZp˂rtAJlbے`d|ZHAZp˂f`v|ZdQbfpvtAJl璐ے`J|ZdQZp˂f`vX˂pZf~fpJltے`JXQ|ZdQbp˂rJlt`JXQrv`f~ltbvXnZdQbt˂rXQltbp`JXQ`vXntArdrXQJtbdQJXQrdQbnXrXQJXnvtlJnrXQJtbdQZXQr˂btlrXQJ`nvpHAbےvnXbdQZ|r˂ptlJXQJ`ےbdQZ|˂pZfpvdQZ|vpfHlJtAJ`ےdQZ|r˂pvˍpf|ZdQb`ےbZ|d˂pZHAv`f`ےbpfH~tArd`ےHA|drpZHAbJtArdےbHAfH~`JXQrv`fdrtAZHAbtArdbHAZdtAJHAbےnXv`drtAJ~f`rd|bHAZpdrtAJZHAbH~ㅐftl|HAZp˂rtAJlbے`~HfpHAZp˂f`v|ZdQbZp˂tAJl璐ے`J|ZdQZp˂f`vX˂p`~HfpJltے`JXQ|ZdQbp˂rltb`JXQrf~HltbvXnrZdQbt˂rXQltbے`JXQ`vXnZdQbtrXQJtbdQJXQrvnXrXQJXnvtl|rXQJ`tbdQZXQr˂btlrXQJ`nvpJXQrbvnXbdQZ|r˂ptlJXQJ`ےnvp˂p`fpvdQZ|˂pZlJtAJ`ےdQZ|r˂pvˍpflJtA`ےbZ|d˂pZHAv`f`ےbpfH~ZdQbtےbHA|drpZHAbJtArdےbHAfH~tl|v`ffdrtAZHAbtArdbHAZfHfJXQrnXv`fdrtAJHAbےrd|bHAZpdrtAJ`JXQrH~ㅐfrd|HAZp˂rtAJlbے`~HfpHAZp˂f`vlJtAZp˂tAJl璐ے`J|ZdQZp˂f`vXZdQbtpvnJltے`JXQ|ZdQbp˂r`vXn˂pZHA~fpvltb`JXQrZdQbt˂rXQltb˂pZ`vXnZdQbtrXQJtbdQJXQrvnXrXQJXnvrd|rXQJ`tbdQZXQr˂bnXvrXQJ`nvplJtArXQJ`bdQZ|r˂ptlJXQJ`ےvpfbے`nXvdQZ|˂pZlJtAJ`ےdQZ|HAbےvˍpfl|Z`ےbZ|d˂pZHAv`f`ےbpfH~ZdQbtےbHA|drpZHAb`f~ےbHAfH~rd|ےHAZdrtAZHAbtArdbHAZH~fJXQr`f~drtAJHAbےrd|bHAZpdtAJl`JXQrH~ㅐfdQbtHAZp˂tAJlbے`~HfpHAZp˂f`vl|ZZp˂tAJl璐ے`JHfpvZp˂f`vXZdQbtp˂rJltے`JXQ|ZdQbp˂r`vXn˂p`JHfpvltb`JXQrZdQbt˂rXQtbn˂p``vXnlJtArrXQJtbnJXQrvnXrXQJXnvdQbtrXQJ`tbdQZXQr˂nXvrXQJ`nvpl|ZXQJ`ےbdQZ|r˂ptlJXQJ`ےvpfXQrbtnXvdQZ|˂pZlJtAJ`ےvpfJXQrvˍpfd|Z`ےbvpfH˂pZHAv`f`ےbpfH~lJtArےbHA|drpZHAb`f~ےbHAfH~dQbt璐bHAZdrtAZHAbtArdbHAZH~fl|Z`ffpdrtAJHAbےrd|bHAZpHf`˂pZHAH~ㅐfdQbtHAZp˂f`vbے`~HfpHAZp˂f`vd|ZZp˂tAJl璐ے`JHfpvZp˂f`vXlJtArp˂rJltے`JXQ|ZdQbp˂r`vXndQbtvnrltb`JXQrZdQbt˂rXQvXnbے``vXnl|ZdQrXQJXnvJXQrvnXrXQJXnvdQbtrXQJ`tbdQZXQr˂nXvrXQJ`nvpd|ZXQJ`ےbdQZ|r˂pnXv`XQJ`ےvpflJtArXQJ`ےdQZ|˂pZlJtAJ`ےvpfHJXQrvˍp|btl`ےbpfH~˂pZHAv`f`ےbpfH~l|ZdQےbHA|dtApZHAb`f~ےbHAfH~dQbt璐bHAZdrtAZHAbf~HbHAZH~fd|ZHAZpdrtAJHAbےrd|bHAZp~f`˂p`ZdrQtJtArdHAZp˂f`vbے`~HfpHAZp˂f`vbtlZp˂Jltے`JHfpvZp˂f`vXl|ZdQp˂rJltے`JXQfpvp˂r`vXndQbt˂rXQltb`JXQrZdQbt˂rXQvXnQXb㉀Jlt|ZdQrXQJXnvJXQrvnXrbdQXnvJtArdrXQJ`bnvXQr˂nXvrXQJ`nvpbtlXQJ`ےbdQZ|r˂pnXv`XQJ`ےvpfl|ZdQJ`ےdQZ|˂pZlJtAJ`ےvpfHpJAHrbAdZ|btl`ےbpfH~˂pZHAv`fZ|dpfH~|ZdQےbHApfHpZHAb`f~ےbHAfH~JtArdbHAZdrtAZHAbf~HbHAZH~fbtlbHAZpdrtAJHAbےrd|bHAZp~f`ˁ`ZdrQt|ZdQbHAZp˂f`vbے`~HfprtAJlf`vbtlZp˂f`vXے`JHfpvZp˂f`vX|ZdQp˂rJltے`JXQfpvp˂r`vXnJtArd˂rXQltb`JXQrZdQbn˂rXQvXnQXb㉀JlttlJrXQJXnvJXQrvnXtbdQXnv|ZdQbrXQJ`nvpXQr˂nXvrXQJ`nvpbtlXQJ`ےbdQZ|r˂pnXv`XQJ`ےvpf|ZdQJ`ےdQZ|˂pZXv`fJ`ےvpfHp`ZQXbAdZ|tArd`ےbpfH~˂pZHAv`fZ|dpfH~tlJےbHAfH~pZHAb`f~ےbHAfH~|ZdQbbHAZdtAJZHAbf~HbHAZH~fbtlbHAZpdrtAJHAbے~HfbHAZp~f`b㉀ۑpdrQt|ZdQbHAZp˂f`vbے`~HfprtAJlf`vtArdZp˂f`vXے`JHfpvZp˂f`vXtlJp˂rltbے`JXQfpvp˂r`vXn|ZdQb˂rXQltb`JXQrpvn˂rXQvXnJAHrJlttl|rXQJXnvJXQrvnXtbdQXnv|ZdQbrXQJ`nvpXQr˂nXvrbdQZnvptArdXQJ`ےnvpr˂pnXv`XQJ`ےvpftlJJ`ےdQZ|˂pZXv`fJ`ےvpfHˁ`ZQXbAdZ|ZdQbn`ےbpfH~˂pZHAv`fZ|dpfH~tl|ےbHAfH~pZHAb`f~|drfH~|ZdQbbHAZfHfZHAbf~HbHAZH~ftArdbHAZpdrtAJHAbے~HfbHAZp~f`b㉀ۑpdrQtXv`fHAZp˂f`vے`J~HfprtAJlf`vZdQbtZp˂f`vXے`JHfpvtAJlf`vXtl|p˂r`vXnے`JXQfpvp˂r`vXn|ZdQb˂rXQltb`JXQrpvn˂rXQvXn`ZQXbJlt~fpvrXQJXnvXQrbtvnXtbdQXnvlJtArXQJ`nvpXQr˂nXvtbdQZnvpZdQbtXQJ`ےvpfr˂pnXv`XQJ`ےvpftl|J`ےdQZ|˂pZXv`fJ`ےvpfHۑpJbAdZ|nXv``ےbpfH~lJtAv`fZ|dpfH~rd|ےbHAfH~pZHAb`f~|drfH~lJtAbHAZH~fZHAbf~HbHAZH~fZdQbtbHAZpdtAJlHAbے~HfbHAZp~f`AHr󙐂˂drQtf~HHAZp˂f`vd|Z~HfprtAJlf`vZdQbtZp˂f`vXے`JHfpvtAJlf`vXrd|p˂r`vXnے`JXQfpvp˂r`vXnlJtA˂rXQtbn`JXQrpvn˂rXQvXn`ZQXbJltfpvrXQJXnvdQbtvnXtbdQXnvl|ZrXQJ`nvpXQr˂nXvtbdQZnvpZdQbtXQJ`ےvpfr˂pnXv`bdQZ|vpfrd|J`ےvpf˂pZXv`fJ`ےvpfHۑp`bAdZ|nXv``ےbpfH~lJtArv`fZ|dpfH~dQbnXےbHAfH~pZHA`f~|drfH~l|ZbHAZH~fZHAbf~HdrtAH~fZdQbtbHAZpHf`HAbے~HfbHAZp~f`ZQXb㉀drQtf~fpHAZp˂f`vd|Z~HfprtAJlf`vv`f~Zp˂f`vXے`JXQHfpvtAJlf`vXdQbtp˂r`vXnے`JXQfpvJlt`vXnl|Z˂rXQvXn`JXQrpvn˂rXQvXnۑpJAHJltvnXrXQJXnvdQbtvnXtbdQXnrfpvrXQJ`nvprbt璀nXvtbdQZnvplJtArXQJ`ےvpfr˂pnXv`bdQZ|vpfdQbtJ`ےvpfH˂pZXv`fJ`ےvpfHr󙐂ˁ`bAdZ|v`f`ےbpfH~lJtArv`fZ|d˂p`JnXv`ےbHAfH~lJtAd`f~|drfH~d|ZbHAZH~fZHAbf~HdrtAH~flJtArbHAZp~f`HAbے~HfbHAZp~f`ZQXb㉀drQt~HfpHAZp˂f`vd|Z~HfprtAJlXQr˂f~HZp˂f`vX|ZdQHfpvtAJlf`vXdQbtp˂r`vXnے`JXQfpvJlt`vXnd|Z˂rXQvXn`JXQrpvn˂rbvXnۑp`ZJltvnXrbdQXnvdQbtvnXtbdQpZHAbfpvrXQJ`nvpbtlnXvtbdQZnvpl|ZdQXQJ`ےvpfr˂pnXv`bdQZ|vpfdQbtJ`ےvpfH˂pZXv`fdQZ|vpfHQXb㉀bAdZ|v`f~Z|dpfH~lJtArv`fZ|dے`JnXv`fےbHAfH~JtArd`f~|drfH~bnXvbHAZH~fZHAےf~HdrtAH~fl|ZdQbHAZp~f`HAbے~HfdrtAJ~f`pJAHrdrQtfpvrtAJlf`vd|Z~HfprtAJlXQr˂~fpvZp˂f`vX|ZdQHfpvtAJlf`vX`f~fpp˂r`vXn`JXQrfpvJlt`vXnbtl˂rXQvXn`JXQrpvnltbvXnˁ`ZJltnXv`tbdQXnvdQbtvnXtbdQp`JXQnXvrXQJ`nvpbtlnXvtbdQZnr˂vnXXQJ`ےvpfbtlnXv`bdQZ|vpfJtArdJ`ےvpfH˂pZXv`fdQZ|vpfHQXb㉀bAdZ|f~HZ|dpfH~lJtArv`fZ|dr˂p`f~ےbHAfH~JtArd`f~|drp`JXQv`fbHAZH~fJtAdf~HdrtAH~f|ZdQbHAZp~f`HAbے~HfdrtAJ~f`p`ZQXdrQtfpvrtAJlf`vd|ZHfpvrtAJlZHAbHfpvZp˂f`vX|ZdQHfpvtAJlr˂p~Hfpp˂r`vXn|ZdQbfpvJlt`vXnbtl˂rXQvXn`JXQrpvnltbvXnb㉀ۑpJltnXv`ftbdQXnvdQbt璀nrXQtbdQے`JXQnXvrbdQZnvpbtlnXvtbdQZZHAbvnXXQJ`ےvpftlJnXv`bdQZ|vpf|ZdQbJ`ےvpfH˂pZXv`fdQZ|vpfHJAHrbAdZ|~fpvZ|dpfH~lJtArJ`ےZ|dr˂p`f~fp|drfH~JtArd`f~|drے`JXQv`f~bHAZH~ftArdf~HdrtAH~fnXv`bHAZp~f`HAے`~HfdrtAJ~f`ˁ`ZQXdrQtnXvrtAJlf`vd|ZHAZp˂rtAJl`JXQrvnXtAJlf`vX|ZdQHfpvtAJlr˂pfpvp˂r`vXn|ZdQbfpvJlt`vXnf~fp˂rXQvXnJXQrbpvnltbvXnb㉀XnJlt`f~tbdQXnvdQbt璀rXQJtbdQ˂pZv`ftbdQZnvpbtlnXvtbdQZ`JXQrnXv`XQJ`ےvpftlJnXv`bdQZ|r˂pvnXJ`ےvpfHtlJXv`fdQZ|vpfHvˍpfbAdZ|HfpvZ|dpfH~lJtAr`ےbZ|dHAbے~Hfp|drfH~JtArd`fH|dr˂pZf~HbHAZH~ftArdf~HdrtA`JXQrv`fbHAZp~f`tAd|~HfdrtAJ~f`H~ㅐfۂdrQtnXvrtAJlf`vd|ZHAZp˂rtAJl`JXQrvnXtAJlf`vX|ZdQfpvtAJlHAbےfpvp˂r`vXn|ZdQbfpvJlt˂pZ~Hfp˂rXQvXnZdQbtpvnltbvXn`vXnJlt`f~fptbdQXnvdQbt璀rXQJtbdQ˂p`v`f~tbdQZnvpbtlnrXQJtbdQZ`JXQrnXv`bdQZ|vpftlJnXv`bdQZ|HAbےvnXJ`ےvpfHlJtAXv`fdQZ|vpfHvˍpfbAdZ|vnXZ|dpfH~lJtAr`ےbZ|dJXQrfpv|drfH~JtArd`ےHA|dr˂p`f~fpdrtAH~ftArdf~HdrtA`JXQrv`f~fbHAZp~f`rd|~HfdrtAJ~f`H~ㅐfۂdrQt----------------------......................................... \ No newline at end of file diff --git a/vendor/endroid/qr-code/assets/data/qrv35_3.dat b/vendor/endroid/qr-code/assets/data/qrv35_3.dat deleted file mode 100755 index a827705dd..000000000 --- a/vendor/endroid/qr-code/assets/data/qrv35_3.dat +++ /dev/null @@ -1,313 +0,0 @@ -{|{|{|{|zyzyzyzyxwxwxwxwtstststsrqrqrqrqnmnmnmnmlklklklkjijijijifefefefebabababa`_`_`_`_^]^]^]^]ZYZYZYZY{|{{{{{{zyzyzyzyxwxwxwvutstststsrqrqrqrqnmnmnmnmlklklklkjijijijifefefefebabababa`_`_`_`_^]^]^]^]ZYZYZYZY|{|{|{|{zyzyzyzyvuvuvuvutstststsrqrqrqrqnmnmnmnmlklklklkjijijijifefefefebabababa`_`_`_`_^]^]^]^]ZYZYZYZY|{|{|{|{zyzyzyzyvuvuvuvutstststsrqrqrqrqnmnmnmnmlklklklkjijijijifefefefebabababa`_`_`_`_^]^]^]^]ZYZYZYZY|{|{|{|{zyzyzyzyvuvuvuvutstststsrqrqrqrqnmnmnmnmlklklklkjijijijifefefefebabababa`_`_`_`_^]^]^]^]ZYZYZYZY|{|{|{|{zyzyzyzyvuvuvuvutstststsrqrqrqrqnmnmnmnmlklklklkjijijijifefefefebabababa`_`_`_`_^]^]^]^]ZYZYZYZY|{|{|{{{zyzyzyzyvuvuvuvutstststsrqrqrqrqnmnmnmnmlklklklkjijijijifefefefebabababa`_`_`_`_^]^]^]^]ZYZYZYZY{{{|{|{|zyzyzyzyvuvuvuvutstststsrqrqrqrqnmnmnmnmlklklklkjijijijifefefefebabababa`_`_`_`_^]^]^]^]ZYZYZYZY{|{|{|{|zyzyzyzyvuvuvuvutstststsrqrqrqrqnmnmnmnmlklklklkjijijijifefefefebabababa`_`_`_`_^]^]^]^]ZYZYZYZY{|{|{|{|zyzyzyzyvuvuvuvutstststsrqrqrqrqnmnmnmnmlklklklkjijijihgfefefefebabababa`_`_`_`_^]^]^]^]ZYZYZYZY{|{|{|{|zyzyzyzyvuvuvuvutstststsrqrqrqrqnmnmnmnmlklklklkhghghghgfefefefebabababa`_`_`_`_^]^]\[\[ZYZYZYZY{|{|{|{|zyzyzyzyvuvuvuvutstststsrqrqrqrqnmnmnmnmlklklklkhghghghgfefefefebabababa`_`_`_`_\[\[\[\[ZYZYZYZY{{{{{{|{zyzyzyzyvuvuvuvutstststsrqrqrqponmnmnmnmlklklklkhghghghgfefefefebabababa`_`_`_`_\[\[\[\[ZYZYZYZY|{|{|{|{zyzyzyzyvuvuvuvutstststspopopoponmnmnmnmlklklklkhghghghgfefefefebabababa`_`_`_`_\[\[\[\[ZYZYZYZY|{|{|{|{zyzyzyzyvuvuvuvutstststspopopoponmnmnmnmlklklklkhghghghgfefefefebabababa`_`_`_`_\[\[\[\[ZYZYZYZY|{|{|{|{zyzyzyxwvuvuvuvutstststspopopoponmnmnmnmlklklklkhghghghgfefefefebabababa`_`_`_`_\[\[\[\[ZYZYZYZY|{|{|{|{xwxwxwxwvuvuvuvutstststspopopoponmnmnmnmlklklklkhghghghgfefefefebabababa`_`_`_`_\[\[\[\[ZYZYZYZY~}~}|{|{{{{{xwxwxwxwvuvuvuvutstststspopopoponmnmnmnmlklklklkhghghghgfefefedcbabababa`_`_`_`_\[\[\[\[ZYZYZYZY~}~}~}~}{|{|{|{|xwxwxwxwvuvuvuvutstststspopopoponmnmnmnmlklklklkhghghghgdcdcdcccbabababa`_`_`_`_\[\[\[\[ZYZYZYZY~}~}~}~}{|{|{|{|xwxwxwxwvuvuvuvutstststspopopoponmnmnmnmlklklklkhghghghgcccdcdcdbabababa`_`_`_`_\[\[\[\[ZYZYZYZY~}~}~}~}{|{|{|{|xwxwxwxwvuvuvuvutstststspopopoponmnmnmnmlklklklkhghghghgcdcdcdcdbabababa`_`_`_`_\[\[\[\[ZYZYZYZY~}~}~}~}{|{|{|{|xwxwxwxwvuvuvuvutstststspopopoponmnmnmnmlklklklkhghghghgcdcdcdcdbabababa`_`_`_`_\[\[\[\[ZYZYZYZY~}~}~}~}{|{|{|{{xwxwxwxwvuvuvuvutstststspopopoponmnmnmnmlklklklkhghghghgcdcdcdcdbabababa`_`_`_`_\[\[\[\[ZYZYZYZY~}~}~}~}{{{{|{|{xwxwxwxwvuvuvuvutstststspopopoponmnmnmnmlklklkjihghghghgcdcdcdcdbabababa`_`_`_`_\[\[\[\[ZYZYZYZY~}~}~}~}|{|{|{|{xwxwxwxwvuvuvuvutstststspopopoponmnmnmnmjijijijihghghghgccccccdcbabababa`_`_^]^]\[\[\[\[ZYZYZYZY~}~}~}~}|{|{|{|{xwxwxwxwvuvuvuvutstststspopopoponmnmnmnmjijijijihghghghgdcdcdcdcbabababa^]^]^]^]\[\[\[\[ZYZYZYZY~}~}~}~}|{|{|{|{xwxwxwxwvuvuvuvutststsrqpopopoponmnmnmnmjijijijihghghghgdcdcdcdcbabababa^]^]^]^]\[\[\[\[ZYZYZYZY~}~}~}~}|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqpopopoponmnmnmnmjijijijihghghghgdcdcdcdcbabababa^]^]^]^]\[\[\[\[ZYZYZYZY~}~}~}~}|{{{{{|{xwxwxwxwvuvuvuvurqrqrqrqpopopoponmnmnmnmjijijijihghghghgdcdcdcdcbabababa^]^]^]^]\[\[\[\[ZYZYZYZY~}~}~}~}|{|{|{zyxwxwxwxwvuvuvuvurqrqrqrqpopopoponmnmnmnmjijijijihghghghgdcdcccccbabababa^]^]^]^]\[\[\[\[ZYZYZYZY~}~}~}~}zyzyzyzyxwxwxwxwvuvuvuvurqrqrqrqpopopoponmnmnmnmjijijijihghghghgcdcdcdcdbabababa^]^]^]^]\[\[\[\[ZYZYZYZY~}~}~}~}zyzyzyzyxwxwxwxwvuvuvuvurqrqrqrqpopopoponmnmnmnmjijijijihghghghgcdcdcdcdbabababa^]^]^]^]\[\[\[\[ZYZYZYZY~}~}~}~}zyzyzyzyxwxwxwxwvuvuvuvurqrqrqrqpopopoponmnmnmnmjijijijihghghghgcdcdcdcdbabababa^]^]^]^]\[\[\[\[ZYZYZYZY~}~}~}~}zyzyzyzyxwxwxwxwvuvuvuvurqrqrqrqpopopoponmnmnmnmjijijijihghghghgcdcdcdcdbabababa^]^]^]^]\[\[\[\[ZYZYZYZY~}~}~}~}zyzyzyzyxwxwxwxwvuvuvuvurqrqrqrqpopopoponmnmnmnmjijijijihghghghgcdcdcdccbabababa^]^]^]^]\[\[\[\[ZYZYZYZY~}~}~}~}zyzyzyzyxwxwxwxwvuvuvuvurqrqrqrqpopopoponmnmnmnmjijijijihghghghgccccdcdcbabababa^]^]^]^]\[\[\[\[ZYZYXWXW~}~}~}~}zyzyzyzyxwxwxwxwvuvuvuvurqrqrqrqpopopoponmnmnmnmjijijijihghghghgdcdcdcdcbabababa^]^]^]^]\[\[\[\[XWXWXWXW~}~}~}~}zyzyzyzyxwxwxwxwvuvuvuvurqrqrqrqpopopoponmnmnmlkjijijijihghghghgdcdcdcdcbabababa^]^]^]^]\[\[\[\[XWXWXWXW~}~}~}~}zyzyzyzyxwxwxwxwvuvuvuvurqrqrqrqpopopopolklklklkjijijijihghghghgdcdcdcdcbaba`_`_^]^]^]^]\[\[\[\[XWXWXWXW~}~}~}~}zyzyzyzyxwxwxwxwvuvuvuvurqrqrqrqpopopopolklklklkjijijijihghghghgdcdcdcdc`_`_`_`_^]^]^]^]\[\[\[\[XWXWXWXWXWXWXWXW~}~}~}~}zyzyzyzyxwxwxwxwvuvuvutsrqrqrqrqpopopopolklklklkjijijijihgfefefedccccccd`_`_`_`_^]^]^]^]\[\[\[\[XWXWXWXWXWXWXWXW~}~}~}~}zyzyzyzyxwxwxwxwtstststsrqrqrqrqpopopopolklklklkjijijijifefefefecdcdcdcd`_`_`_`_^]^]^]^]\[\[\[\[XWXWXWXWXWXWXWXW~}~}~}~}zyzyzyzyxwxwxwxwtstststsrqrqrqrqpopopopolklklklkjijijijifefefefecdcdcdcd`_`_`_`_^]^]^]^]\[\[\[\[XWXWXWXWXWXWXWXW~}~}~}~}zyzyzyzyxwxwxwxwtstststsrqrqrqrqpopopopolklklklkjijijijifefefefecdcdcdcd`_`_`_`_^]^]^]^]\[\[\[\[XWXWXWXWXWXWXWXW~}~}~}~}zyzyzyzyxwxwxwxwtstststsrqrqrqrqpopopopolklklklkjijijijifefefefecdcdcdcd`_`_`_`_^]^]^]^]\[\[\[\[XWXWXWXWXWXWXWXW~}~}~}~}zyzyzyzyxwxwxwxwtstststsrqrqrqrqpopopopolklklklkjijijijifefefefecdcdcccc`_`_`_`_^]^]^]^]\[\[\[\[XWXWXWXWXWXWXWXW~}~}~}~}zyzyzyzyxwxwxwxwtstststsrqrqrqrqpopopopolklklklkjijijijifefefefeccdcdcdc`_`_`_`_^]^]^]^]\[\[\[\[XWXWXWXWXWXWXWXW~}~}~}~}zyzyzyzyxwxwxwxwtstststsrqrqrqrqpopopopolklklklkjijijijifefefefedcdcdcdc`_`_`_`_^]^]^]^]\[\[\[\[XWXWXWXWXWXWXWXW|{|{|{|{zyzyzyzyxwxwxwxwtstststsrqrqrqrqpopopopolklklklkjijijijifefefefedcdcdcdc`_`_`_`_^]^]^]^]\[\[\[\[XWXWXWXWXWXWXWXW{{{{{|{|zyzyzyzyxwxwxwxwtstststsrqrqrqrqpopopopolklklklkjijijijifefefefedcdcdcdc`_`_`_`_^]^]^]^]\[\[ZYZYXWXWXWXWXWXWXWXW{|{|{|{|zyzyzyzyxwxwxwxwtstststsrqrqrqrqpopopopolklklklkjijijijifefefefedcdcdcdc`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWXWXWXWXW{|{|{|{|zyzyzyzyxwxwxwxwtstststsrqrqrqrqpopoponmlklklklkjijijijifefefefeccccdcdc`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWXWXWXWXW{|{|{|{|zyzyzyzyxwxwxwxwtstststsrqrqrqrqnmnmnmnmlklklklkjijijijifefefefedcdcbaba`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWXWXWXWXWXWXWXWXWTSTSTSTSRQRQRQRQNMNMNMNMKLKLKLKLHGHGHGHGFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=<;<;<;<;8787878734343434212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"!    - - - - XWXWXWXWTSTSTSTSRQRQRQRQNMNMNMNMKLKKKKKKHGHGHGHGFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=<;<;<;<;8787878734343434212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"!    - - - - XWXWXWXWTSTSTSTSRQRQRQRQNMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=<;:9:9:98787878734343333212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"!    - - - - XWXWXWXWTSTSTSTSRQRQRQRQNMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:9878787873343434321212121.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"!    - - - - XWXWXWXWTSTSTSTSRQRQRQRQNMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:9878787874343434321212121.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"!    - - - - XWXWXWXWTSTSTSTSRQRQRQRQNMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEDCBABABA@?@?@?@?>=>=>=>=:9:9:9:9878787874343434321212121.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"!    - - - - XWXWXWXWTSTSTSTSRQRQRQRQNMNMNMNMLKLKLKKKHGHGHGHGFEFEFEFEBABABABA@?@?@?@?>=>=>=>=:9:9:9:9878787874343434321212121.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"!    - - - - XWXWVUVUTSTSTSTSRQRQRQRQNMNMNMNMKKLKLKLKHGHGHGHGFEFEFEFEBABABABA@?@?@?@?>=>=>=>=:9:9:9:9878787874343434321212121.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"!    - - - - VUVUVUVUTSTSTSTSRQRQRQRQNMNMNMNMLKJIJIJIHGHGHGHGFEFEFEFEBABABABA@?@?@?@?>=>=>=>=:9:9:9:9878787873333343421212121.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"!   - - - - VUVUVUVUTSTSTSTSRQRQRQRQNMNMNMNMJIJIJIJIHGHGHGHGFEFEFEFEBABABABA@?@?@?@?>=>=>=>=:9:9:9:9878787873434343421212121.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"! - - - - VUVUVUVUTSTSTSTSRQRQRQRQNMNMNMNMJIJIJIJIHGHGHGHGFEFEFEFEBABABABA@?@?@?@?>=>=>=>=:9:9:9:9878787873434343421212121.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"! - - - - VUVUVUVUTSTSTSTSRQRQRQRQNMNMNMNMJIJIJIJIHGHGHGHGFEFEFEFEBABABABA@?@?@?@?>=>=>=>=:9:9:9:9878787873434343421212121.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#     - - - - VUVUVUVUTSTSTSTSRQRQRQRQNMNMNMNMJIJIJIJIHGHGHGHGFEFEFEFEBABABABA@?@?@?@?>=>=>=>=:9:9:9:9878787873434343421212121.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#     - - - - VUVUVUVUTSTSTSTSRQRQRQRQNMNMNMNMJIJIJIJIHGHGHGHGFEFEFEFEBABABABA@?@?@?@?>=>=>=>=:9:9:9:9878787873433333321212121.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#     - - - - VUVUVUVUTSTSTSTSRQRQRQRQNMNMNMNMJIJIJIJIHGHGHGHGFEFEFEFEBABABABA@?@?@?@?>=>=>=>=:9:9:9:9878787874343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#     - - - - VUVUVUVUTSTSTSTSRQRQRQRQNMNMNMNMJIJIJIJIHGHGHGHGFEFEFEFEBABABABA@?@?@?@?>=>=>=>=:9:9:9:9878787874343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#     - - - - VUVUVUVUTSTSTSTSRQRQRQRQNMNMNMNMJIJIJIJIHGHGHGHGFEFEFEFEBABABABA@?@?@?@?>=<;<;<;:9:9:9:9878787874343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#     - - - - VUVUVUVUTSTSTSTSRQRQRQRQNMNMNMNMJIJIJIJIHGHGHGHGFEFEFEFEBABABABA@?@?@?@?<;<;<;<;:9:9:9:987878787434343430/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#     - - - - VUVUVUVUTSTSTSTSRQRQPOPONMNMNMNMJIJIJIJIHGHGHGHGFEFEFEFEBABABABA@?@?@?@?<;<;<;<;:9:9:9:987878765434343330/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#     - - - - VUVUVUVUTSTSTSTSPOPOPOPONMNMNMNMJIJIJIJIHGHGHGHGFEDCDCDCBABABABA@?@?@?@?<;<;<;<;:9:9:9:965656565333434340/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#     - - - - VUVUVUVUTSTSTSTSPOPOPOPONMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDCBABABABA@?@?@?@?<;<;<;<;:9:9:9:965656565343434340/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#     - - - - VUVUVUVUTSTSTSTSPOPOPOPONMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDCBABABABA@?@?@?@?<;<;<;<;:9:9:9:965656565343434340/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#     - - - - VUVUVUVUTSTSTSTSPOPOPOPONMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDCBABABABA@?@?@?@?<;<;<;<;:9:9:9:965656565343434340/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#     - - - - VUVUVUVUTSTSTSTSPOPOPOPONMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDCBABABABA@?@?@?@?<;<;<;<;:9:9:9:965656565343434340/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#        - - - - VUVUVUVUTSTSTSTSPOPOPOPONMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDCBABABABA@?@?@?@?<;<;<;<;:9:9:9:965656565333333430/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#        - - - - VUVUVUVUTSTSTSTSPOPOPOPONMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDCBABABABA@?@?@?@?<;<;<;<;:9:9:9:965656565434343430/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!        - - - - VUVUVUVUTSTSTSTSPOPOPOPONMNMLKLKJIJIJIJIHGHGHGHGDCDCDCDCBABABABA@?@?@?@?<;<;<;<;:9:9:9:965656565434343430/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!        - - - - VUVUVUVUTSTSTSTSPOPOPOPOLKLKKKKKJIJIJIJIHGHGHGHGDCDCDCDCBABABABA@?@?@?@?<;<;<;<;:9:9:9:965656565434343430/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!        - - - - VUVUVUVUTSTSTSTSPOPOPOPOKLKLKLKLJIJIJIJIHGHGHGHGDCDCDCDCBABABABA@?@?@?@?<;<;<;<;:9:9:9:965656565434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%"!"!"!"!        - - - - VUVUVUVUTSTSTSTSPOPOPOPOKLKLKLKLJIJIJIJIHGHGHGHGDCDCDCDCBABABABA@?@?@?@?<;<;<;<;:9:9:9:965656565434333330/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%"!"!"!"!        - - - - VUVUVUVUTSTSTSTSPOPOPOPOKLKLKLKLJIJIJIJIHGHGHGHGDCDCDCDCBABABABA@?>=>=>=<;<;<;<;:9:9:9:965656565434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%"!"!"!"!        - - - - VUVUVUVUTSTSTSTSPOPOPOPOKLKLKLKLJIJIJIJIHGHGHGHGDCDCDCDCBABABABA>=>=>=>=<;<;<;<;:9:9:9:965656565212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%"!"!"!"!        - - - - VUVUVUVUTSTSRQRQPOPOPOPOKLKLKLKKJIJIJIJIHGHGHGHGDCDCDCDCBABABABA>=>=>=>=<;<;<;<;:9:9:9:965656565212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%"!"!"!"!        - - - - VUVUVUVURQRQRQRQPOPOPOPOKKKKLKLKJIJIJIJIHGFEFEFEDCDCDCDCBABABABA>=>=>=>=<;<;<;<;:9:9:9:965656565212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%"!"!"!"!        - - - VUVUVUVURQRQRQRQPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDCBABABABA>=>=>=>=<;<;<;<;:9:9:9:965656565212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%"!"!"!"!        VUVUVUVURQRQRQRQPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDCBABABABA>=>=>=>=<;<;<;<;:9:9:9:965656565212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%"!"!"!"!        VUVUVUVURQRQRQRQPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDCBABABABA>=>=>=>=<;<;<;<;:9:9:9:965656565212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%"!"!"!"!        VUVUVUVURQRQRQRQPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDCBABABABA>=>=>=>=<;<;<;<;:9:9:9:965656565212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%"!"!"!"!        VUVUVUVURQRQRQRQPOPOPOPOLKKKKKKLJIJIJIJIFEFEFEFEDCDCDCDCBABABABA>=>=>=>=<;<;<;<;:9:9:9:965656565212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%"!"!"!"!        VUVUVUVURQRQRQRQPOPOPOPOKLKLKLKLJIJIJIJIFEFEFEFEDCDCDCDCBABABABA>=>=>=>=<;<;<;<;:9:9:9:965656565212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"!        VUVUVUVURQRQRQRQPOPOPOPOKLKLKLKLJIJIJIJIFEFEFEFEDCDCDCDCBABABABA>=>=>=>=<;<;<;<;:9:9:9:965656565212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"!        VUVUVUVURQRQRQRQPOPOPOPOKLKLKLKLJIJIJIJIFEFEFEFEDCDCDCDCBABABABA>=>=>=>=<;<;<;<;:987878765656565212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"!      VUVUVUVURQRQRQRQPOPOPOPOKLKLKLKLJIJIJIJIFEFEFEFEDCDCDCDCBABABABA>=>=>=>=<;<;<;<;8787878765656565212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!    VUVUVUVURQRQRQRQPOPOPOPOKLKLKKKKJIJIJIJIFEFEFEFEDCDCDCDCBABABABA>=>=>=>=<;<;<;<;8787878765656565212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!    VUVUVUVURQRQRQRQPOPOPOPOKKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDCBA@?@?@?>=>=>=>=<;<;<;<;8787878765656565212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!    VUVUVUVURQRQRQRQPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=<;<;<;<;8787878765656565212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!    VUVUTSTSRQRQRQRQPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=<;<;<;<;8787878765656565212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!    TSTSTSTSRQRQRQRQPOPOPOPOLKLKLKLKJIHGHGHGFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=<;<;<;<;8787878765656565212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!    - TSTSTSTSRQRQRQRQPOPOPOPOLKLKLKLKHGHGHGHGFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=<;<;<;<;8787878765656565212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!    - - - - TSTSTSTSRQRQRQRQNMNMNMNMKKKKKLKLHGHGHGHGFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=<;<;<;<;8787878765434343212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!    - - - - TSTSTSTSRQRQRQRQNMNMNMNMKLKLKLKLHGHGHGHGFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=<;<;<;<;8787878743333334212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!    - - - - TSTSTSTSRQRQRQRQNMNMNMNMKLKLKLKLHGHGHGHGFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=<;<;<;<;8787878734343434212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!    - - - - TSTSTSTSRQRQRQRQNMNMNMNMKLKLKLKLHGHGHGHGFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=<;<;<;<;8787878734343434212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!    - - - - IIJJKKLL(''&&%%$~~}}UUVVWWXX ttssrrqqaabbccddYYXXWWVV^^__``aakkjjiihhjjkkllmm __^^]]\\vvwwxxyyBBCCDDEEbbaa``__ssttuuvvMMNNOOPP$##""!! ||{{zzyyYYZZ[[\\ - - ppoonnmmeeffgghhUUTTSSRR~}|bbccddeeggffeeddnnooppqq - - [[ZZYYXXzz{{||}}FFGGHHII - -^^]]\\[[wwxxyyzzQQRRSSTT!!""##xxwwvvuu]]^^__``llkkjjiiiijjkkllQQKKJJII{{zzyyxxffgghhiiccbbaa``rrssttuuWWVVUUTT~~JJKKQQRR ZZYYXXWW{{||}}~~UUVVWWXX$$%%&&''ttssrrqqaabbccddhhggffeemmnnoopp - - HHGGFFEEwwvvuuttjjkkllmm __^^]]\\vvwwxxyySSRRQQPPSSTTUUVVVVUUTTSSYYZZ[[\\(())**++ppoonnmmeeffgghhddccbbaaqqrrsstt DDCCBBAAssrrqqppnnooppqq - - [[ZZYYXXzz{{||}}OONNMMLLWWXXYYZZRRQQPPOO !!""]]^^__``,,--..//llkkjjiiiijjkkll``__^^]]uuvvwwxx@@??>>==oonnmmllrrssttuuWWVVUUTT~~KKJJIIHH[[\\]]^^NNMMLLKK##$$%%&&aabbccdd00112233 - -hhggffeemmnnoopp - - \\[[ZZYYyyzz{{||<<;;::99kkjjiihgvvwwxxyySSRRQQPP !!GGFFEEDD__``aabbJJIIHHGG''(())**~~}}eeffgghh99::;;<< ddccbbaaqqrrsstt XXWWVVUU}}~~33221100fedccbbazz{{||}}OONNMMLL""##$$%%CCBBAA@@cciijjkk !!""FFEEDDCC++,,--..||{{zzyyiijjkkll==>>??@@``__^^]]uuvvwwxxTTSSRRQQ //..--,,a``__^^]~~KKJJIIHH&&''(())??>>==<>==<<;;33445566ttssrrqqqqrrssttEEFFGGHH XXWWVVUU}}~~LLKKJJII%%&&''((''&&%%$$YXXWWVVU""##$$%%CCBBAA@@..//001177665544ttuuvvww++,,--..::998877778899::ppoonnmmuuvvwwxxIIJJKKQQTTSSRRQQ HHGGFFEE))**++,,##""!!UTTSSRRQ&&''(())??>>==<<2233445533221100xxyyzz{{//00112266554433;;<<==>>llkkjjiiyyzz{{||RRSSTTUUPPOONNMM!!""##$$DDCCBBAA--..//00QPONMLKK**++,,--;;::998866778899//..--,,33445566221100//??@@AABBhhggffee}}~~VVWWXXYYLLKKJJII%%&&''((@@??>>==11223344JJIIHHGG..//001177665544::;;<<==++**))((778899::..--,,++CCDDEEFFddccbbaaZZ[[\\]] HHGGFFEE))**++,,<<;;::9955667788FFEEDDCC2233445533221100>>??@@AA''&&%%$$;;<<==>>**))((''GGHHIIJJ``__^^]]^^__``aa!!""##$$DDCCBBAA--..//008877665599::;;<< BBAA@@??66778899//..--,,BBCCDDEE##""!! {{zz??@@AABB&&%%$$##KKLLMMNN\\[[ZZYYbbcciijj%%&&''((@@??>>==1122334444332211==>>??@@ - - >>==<<;;::;;<<==++**))((FFGGHHIIyyxxwwvvCCDDEEFF""!! OOPPQQRRXXWWVVUUkkllmmnn))**++,,<<;;::995566778800//..--AABBCCDD::998765>>??@@AA''&&%%$$JJKKLLMMuuttssrrGGHHIIJJSSTTUUVVTTSSRRQQooppqqrr--..//008877665599::;;<<,,++**))EEFFGGHH - -43322110BBCCDDEE##""!! NNOOPPQQqqppoonnKKLLMMNN~~}}||{{WWXXYYZZPPOONNMMssttuuvv1122334444332211==>>??@@((''&&%%IIJJKKLL 0//..--,FFGGHHIIRRSSTTUUmmllkkjjOOPPQQRRzzyyxxww[[\\]]^^LLKKJJIIwwxxyyzz5566778800//..--AABBCCDD$$##""!!MMNNOOPP,++**))(JJKKLLMM~~}}||VVWWXXYY iiccbbaaSSTTUUVVvvuuttss__``aabbHHGGFFEE{{99::;;<<,,++**))EEFFGGHH QQRRSSTT(''&&%%$NNOOPPQQ{{zzyyxxZZ[[\\]] - - ``__^^]]WWXXYYZZ rrqqppooccddeeffDDCCBBAA==>>??@@((''&&%%IIJJKKLL~~}}UUVVWWXX$##""!! RRSSTTUUwwvvuutt^^__``aa\\[[ZZYY[[\\]]^^ - - nnmmllkkgghhiijj@@??>>==AABBCCDD$$##""!!MMNNOOPP||{{zzyyYYZZ[[\\!!""##~~}}||VVWWXXYY ssrrqqppbbccddeeXXWWVVUU__``aabbjjiihhggkkllmmnn<<;;::99EEFFGGHH QQRRSSTTxxwwvvuu]]^^__``$$%%&&''{{zzyyxxZZ[[\\]] - - oonnmmllffgghhiiTTSSRRQQ~}|{{ccddeeffffeeddccooppqqrr88776655IIJJKKLL~~}}UUVVWWXX ttssrrqqaabbccdd(())**++wwvvuutt^^__``aakkjjiihhjjkkllmm KKJJIIHHzzyyxxwwgghhiijjbbaa``__ssttuuvv44332211{{MMNNOOPP||{{zzyyYYZZ[[\\ - - ppoonnmmeeffgghh,,--..//ssrrqqppbbccddeeggffeeddnnooppqq - - GGFFEEDDvvuuttsskkllmmnn - -^^]]\\[[wwxxyyzz00//..--zzyyxxwwQQRRSSTTxxwwvvuu]]^^__``llkkjjiiiijjkkll00112233 - -oonnmmllffgghhiiccbbaa``rrssttuuCCBBAA@@rrqqppooooppqqrr ZZYYXXWW{{||}}~~,,++**))vvuuttssUUVVWWXX ttssrrqqaabbccddhhggffeemmnnoopp99::;;<< kkjjiihhjjkkllmm __^^]]\\vvwwxxyy??>>==<>??@@ggffeeddnnooppqq - - [[ZZYYXXzz{{||}};;::9933jjiihgfewwxxyyzzRRQQPPOO$$##""!!nnmmllkk]]^^__``llkkjjiiiijjkkll``__^^]]uuvvwwxxAABBCCDDccbbaa``rrssttuuWWVVUUTT~~221100//dccbbaa`{{||}}~~NNMMLLKK jjiiccbbaabbccddhhggffeemmnnoopp - - \\[[ZZYYyyzz{{||EEFFGGHH __^^]]\\vvwwxxyySSRRQQPP !!..--,,++`__^^]]\JJIIHHGGaa``__^^eeffgghhddccbbaaqqrrsstt XXWWVVUU}}~~IIJJKKQQ - - [[ZZYYXXzz{{||}}OONNMMLL""##$$%%**))((''\[[ZZYYX !!""FFEEDDCC]]\\[[ZZ~}|iijjkkll``__^^]]uuvvwwxxTTSSRRQQRRSSTTUUWWVVUUTT~~KKJJIIHH&&''(())&&%%$$##XWWVVUUT##$$%%&&BBAA@@??YYXXWWVV{{zzyyxxmmnnoopp - - \\[[ZZYYyyzz{{||PPOONNMMVVWWXXYYSSRRQQPP !!GGFFEEDD**++,,--""!!TSSRRQQP''(())**>>==<<;; UUTTSSRRwwvvuuttqqrrsstt XXWWVVUU}}~~LLKKJJIIZZ[[\\]]OONNMMLL""##$$%%CCBBAA@@..//0011ONMLKKJJ++,,--..::998877 - - QQKKJJIIssrrqqppuuvvwwxxTTSSRRQQ HHGGFFEE^^__``aaKKJJIIHH&&''(())??>>==<<22334455IIHHGGFF//00112266554433 - - HHGGFFEEoonnmmllyyzz{{||PPOONNMM!!""##$$DDCCBBAAbbcciijj !!GGFFEEDD**++,,--;;::998866778899EEDDCCBB33445566221100// DDCCBBAAkkjjiihg}}~~LLKKJJII%%&&''((@@??>>==kkllmmnn""##$$%%CCBBAA@@..//001177665544::;;<<== - -AA@@??>>778899::..--,,++@@??>>==fedccbba HHGGFFEE))**++,,<<;;::99ooppqqrr&&''(())??>>==<<2233445533221100>>??@@AA ==<<;;::;;<<==>>**))((''VVUUTTSS<<;;::99a``__^^]!!""##$$DDCCBBAA--..//0088776655ssttuuvv**++,,--;;::998866778899//..--,,BBCCDDEE99876543??@@AABB&&%%$$##RRQQPPOO33221100]\\[[ZZY%%&&''((@@??>>==1122334444332211wwxxyyzz..//001177665544::;;<<==++**))((FFGGHHII - - 3221100/CCDDEEFF""!! NNMMLLKK //..--,,YXXWWVVU))**++,,<<;;::995566778800//..--{{2233445533221100>>??@@AA''&&%%$$JJKKLLMM /..--,,+GGHHIIJJJJIIHHGG!!""##$$++**))((UTTSSRRQ--..//008877665599::;;<<,,++**))66778899//..--,,BBCCDDEE##""!! NNOOPPQQ+**))(('KKLLMMNN~~}}||{{FFEEDDCC%%&&''((''&&%%$$QPONMLKK1122334444332211==>>??@@((''&&%%::;;<<==++**))((FFGGHHIIRRSSTTUU'&&%%$$#OOPPQQRRzzyyxxwwBBAA@@??))**++,,##""!!JJIIHHGG5566778800//..--AABBCCDD$$##""!!{{>>??@@AA''&&%%$$JJKKLLMM~~}}||VVWWXXYY#""!! SSTTUUVVvvuuttss>>==<<;;--..//00FFEEDDCC99::;;<<,,++**))EEFFGGHH zzyyxxwwBBCCDDEE##""!! NNOOPPQQ{{zzyyxxZZ[[\\]]!!""##$$~~}}||{{WWXXYYZZ rrqqppoo::99887711223344BBAA@@??==>>??@@((''&&%%IIJJKKLLvvuuttssFFGGHHIIRRSSTTUUwwvvuutt^^__``aa%%&&''((zzyyxxww[[\\]]^^ - - nnmmllkk6655443355667788>>==<<;;AABBCCDD$$##""!!MMNNOOPPrrqqppooJJKKLLMM~~}}||VVWWXXYY ssrrqqppbbccddee))**++,,vvuuttss__``aabbjjiihhgg221100//99::;;<< ::998765EEFFGGHH QQRRSSTTnnmmllkkNNOOPPQQ{{zzyyxxZZ[[\\]] - - oonnmmllffgghhii--..//00 rrqqppooccddeeffffeeddcc..--,,++==>>??@@ - - - -43322110IIJJKKLL~~}}UUVVWWXX jjiiccbbRRSSTTUUwwvvuutt^^__``aakkjjiihhjjkkllmm11223399 - - nnmmllkkgghhiijjbbaa``__**))((''AABBCCDD 0//..--,MMNNOOPP||{{zzyyYYZZ[[\\ - - aa``__^^VVWWXXYY ssrrqqppbbccddeeggffeeddnnooppqq::;;<<==jjiihhggkkllmmnn - -^^]]\\[[&&%%$$##EEFFGGHH,++**))(QQRRSSTTxxwwvvuu]]^^__``]]\\[[ZZZZ[[\\]] - - oonnmmllffgghhiiccbbaa``rrssttuu>>??@@AAffeeddccooppqqrr ZZYYXXWW""!! SSTTUUVV&%%$$##"PPQQRRSSyyxxwwvv\\]]^^__ ^^]]\\[[YYZZ[[\\ - - ppoonnmmeeffgghhddccbbaaqqrrsstt==>>??@@ggffeeddnnooppqq - - [[ZZYYXXzz{{||}}33221100SSRRQQPP~~}}||{{WWXXYYZZ!!"!! ~~TTUUVVWWuuttssrr``aabbccZZYYXXWW]]^^__``llkkjjiiiijjkkll``__^^]]uuvvwwxxAABBCCDDccbbaa``rrssttuuWWVVUUTT~~//..--,,OONNMMLLzzyyxxww[[\\]]^^""##$$%%}}||{{zzXXYYZZ[[ - -qqppoonnddeeffggVVUUTTSS~aabbccddhhggffeemmnnoopp - - \\[[ZZYYyyzz{{||EEFFGGHH __^^]]\\vvwwxxyySSRRQQPP !!++**))((KKJJIIHHvvuuttss__``aabb&&''(())yyxxwwvv\\]]^^__ mmllkkjjhhiijjkkRRQQKKJJ}|{{zzyyeeffgghhddccbbaaqqrrsstt XXWWVVUU}}~~IIJJKKQQ - - [[ZZYYXXzz{{||}}OONNMMLL""##$$%%''&&%%$$GGFFEEDD rrqqppooccddeeff**++,,--uuttssrr``aabbcciihhggffllmmnnoo - - IIHHGGFFxxwwvvuuiijjkkll``__^^]]uuvvwwxxTTSSRRQQRRSSTTUUWWVVUUTT~~KKJJIIHH&&''(())##""!!CCBBAA@@ - - nnmmllkkgghhiijj..//0011 qqppoonnddeeffggeeddccbbppqqrrss EEDDCCBBttssrrqqmmnnoopp - - \\[[ZZYYyyzz{{||PPOONNMMVVWWXXYYSSRRQQPP !!GGFFEEDD**++,,--??>>==<<jjiihhggkkllmmnn223399:: - - mmllkkjjhhiijjkkaa``__^^ttuuvvwwAA@@??>>ppoonnmmqqrrsstt XXWWVVUU}}~~LLKKJJIIZZ[[\\]]OONNMMLL""##$$%%CCBBAA@@..//0011;;::9988ffeeddccooppqqrr;;<<==>>iihhggffllmmnnoo - - ]]\\[[ZZxxyyzz{{==<<;;::llkkjjiiuuvvwwxxTTSSRRQQ HHGGFFEE^^__``aaKKJJIIHH&&''(())??>>==<<2233445577665544bbaa``__ssttuuvv??@@AABBeeddccbbppqqrrss YYXXWWVV||}}~~99332211hgfedccbyyzz{{||PPOONNMM!!""##$$DDCCBBAAbbcciijj !!GGFFEEDD**++,,--;;::998866778899 33221100 - -^^]]\\[[wwxxyyzzCCDDEEFFaa``__^^ttuuvvwwUUTTSSRR00//..--baa``__^}}~~LLKKJJII%%&&''((@@??>>==kkllmmnn""##$$%%CCBBAA@@..//001177665544::;;<<== - - - -//..--,, ZZYYXXWW{{||}}~~GGHHIIJJ - - ]]\\[[ZZxxyyzz{{QQPPOONN !!""##,,++**))^]]\\[[Z HHGGFFEE))**++,,<<;;::99ooppqqrr&&''(())??>>==<<2233445533221100>>??@@AA ++**))((VVUUTTSSKKQQRRSS YYXXWWVV||}}~~MMLLKKJJ$$%%&&''((''&&%%ZYYXXWWV!!""##$$DDCCBBAA--..//0088776655ssttuuvv**++,,--;;::998866778899//..--,,BBCCDDEE''&&%%$$RRQQPPOOTTUUVVWWUUTTSSRRIIHHGGFF(())**++$$##""!!VUUTTSSR%%&&''((@@??>>==1122334444332211wwxxyyzz..//001177665544::;;<<==++**))((FFGGHHII##""!! NNMMLLKKXXYYZZ[[QQPPOONN !!""##EEDDCCBB,,--..//RQQPONML))**++,,<<;;::995566778800//..--{{2233445533221100>>??@@AA''&&%%$$JJKKLLMMJJIIHHGG\\]]^^__MMLLKKJJ$$%%&&''AA@@??>>00112233KKJJIIHH--..//008877665599::;;<<,,++**))66778899//..--,,BBCCDDEE##""!! NNOOPPQQ!!""## !!""FFEEDDCC``aabbccIIHHGGFF(())**++==<<;;::44556677GGFFEEDD1122334444332211==>>??@@((''&&%%::;;<<==++**))((FFGGHHIIRRSSTTUU$$%%&&''##$$%%&&BBAA@@??iijjkkll !!""##EEDDCCBB,,--..//998877668899::;; CCBBAA@@5566778800//..--AABBCCDD$$##""!!{{>>??@@AA''&&%%$$JJKKLLMM~~}}||VVWWXXYY(())**++''(())**>>==<<;;mmnnoopp$$%%&&''AA@@??>>0011223355443322<<==>>?? - - ??>>==<<99::;;<<,,++**))EEFFGGHH zzyyxxwwBBCCDDEE##""!! NNOOPPQQ{{zzyyxxZZ[[\\]],,--..// ++,,--..::998877qqrrsstt(())**++==<<;;::445566771100//..@@AABBCC;;::9987==>>??@@((''&&%%IIJJKKLLvvuuttssFFGGHHIIRRSSTTUUwwvvuutt^^__``aa00112233 - - //00112266554433uuvvwwxx,,--..//998877668899::;;--,,++**DDEEFFGG 65433221AABBCCDD$$##""!!MMNNOOPPrrqqppooJJKKLLMM~~}}||VVWWXXYY ssrrqqppbbccddee99::;;<< - - 33445566221100//yyzz{{0011223355443322<<==>>??))((''&&HHIIJJKK - - 100//..-EEFFGGHH QQRRSSTTnnmmllkkNNOOPPQQ{{zzyyxxZZ[[\\]] - - oonnmmllffgghhii==>>??@@778899::..--,,++445566771100//..@@AABBCC%%$$##""LLMMNNOO-,,++**)IIJJKKLL~~}}UUVVWWXX jjiiccbbRRSSTTUUwwvvuutt^^__``aakkjjiihhjjkkllmmAABBCCDD;;<<==>>**))((''8899::;;--,,++**DDEEFFGG!! PPQQRRSS)((''&&%MMNNOOPP||{{zzyyYYZZ[[\\ - - aa``__^^VVWWXXYY ssrrqqppbbccddeeggffeeddnnooppqqEEFFGGHH??@@AABB&&%%$$##<<==>>??))((''&&HHIIJJKK~~TTUUVVWW%$$##""!QQRRSSTTxxwwvvuu]]^^__``]]\\[[ZZZZ[[\\]] - - oonnmmllffgghhiiccbbaa``rrssttuuIIJJKKQQCCDDEEFF""!! {{zzyy@@AABBCC%%$$##""LLMMNNOO}}||{{zzXXYYZZ[[!!""! ~~}}UUVVWWXX ttssrrqqaabbccddYYXXWWVV^^__``aakkjjiihhjjkkllmm __^^]]\\vvwwxxyyRRSSTTUU !!GGHHIIJJxxwwvvuuDDEEFFGG!! PPQQRRSSyyxxwwvv\\]]^^__##$$%%&&||{{zzyyYYZZ[[\\ - - ppoonnmmeeffgghhUUTTSSRR~}|bbccddeeggffeeddnnooppqq - - [[ZZYYXXzz{{||}}VVWWXXYY""##$$%%KKLLMMNNttssrrqqHHIIJJKK~~TTUUVVWWuuttssrr``aabbcc''(())**xxwwvvuu]]^^__``llkkjjiiiijjkkllQQKKJJII{{zzyyxxffgghhiiccbbaa``rrssttuuWWVVUUTT~~ZZ[[\\]]&&''(())OOPPQQRRppoonnmmLLMMNNOO}}||{{zzXXYYZZ[[ - -qqppoonnddeeffgg++,,--..ttssrrqqaabbccddhhggffeemmnnoopp - - HHGGFFEEwwvvuuttjjkkllmm __^^]]\\vvwwxxyySSRRQQPP^^__``aa**++,,--SSTTUUVVllkkjjiiPPQQRRSSyyxxwwvv\\]]^^__ mmllkkjjhhiijjkk//001122 ppoonnmmeeffgghhddccbbaaqqrrsstt DDCCBBAAssrrqqppnnooppqq - - [[ZZYYXXzz{{||}}OONNMMLLbbcciijj..//0011WWXXYYZZ ccbbaa``TTUUVVWWuuttssrr``aabbcciihhggffllmmnnoo3399::;; - - llkkjjiiiijjkkll``__^^]]uuvvwwxx@@??>>==oonnmmllrrssttuuWWVVUUTT~~KKJJIIHHkkllmmnn22334455[[\\]]^^ - - __^^]]\\XXYYZZ[[ - -qqppoonnddeeffggeeddccbbppqqrrss<<==>>??hhggffeemmnnoopp - - \\[[ZZYYyyzz{{||<<;;::99kkjjiihgvvwwxxyySSRRQQPP !!GGFFEEDDooppqqrr66778899__``aabb[[ZZYYXX\\]]^^__ mmllkkjjhhiijjkkaa``__^^ttuuvvww@@AABBCCddccbbaaqqrrsstt XXWWVVUU}}~~33221100fedccbbazz{{||}}OONNMMLL""##$$%%CCBBAA@@ssttuuvv::;;<<==ccddeeffWWVVUUTT``aabbcciihhggffllmmnnoo - - ]]\\[[ZZxxyyzz{{DDEEFFGG``__^^]]uuvvwwxxTTSSRRQQ //..--,,a``__^^]~~KKJJIIHH&&''(())??>>==<>??@@AAgghhiijjSSRRQQKK~}|{{zzddeeffggeeddccbbppqqrrss YYXXWWVV||}}~~HHIIJJKK - - \\[[ZZYYyyzz{{||PPOONNMM!!""##$$++**))((]\\[[ZZY !!GGFFEEDD**++,,--;;::9988{{BBCCDDEEkkllmmnn - -JJIIHHGGyyxxwwvvhhiijjkkaa``__^^ttuuvvwwUUTTSSRRQQRRSSTT XXWWVVUU}}~~LLKKJJII%%&&''((''&&%%$$YXXWWVVU""##$$%%CCBBAA@@..//001177665544FFGGHHIIooppqqrr FFEEDDCCuuttssrrllmmnnoo - - ]]\\[[ZZxxyyzz{{QQPPOONNUUVVWWXXTTSSRRQQ HHGGFFEE))**++,,##""!!UTTSSRRQ&&''(())??>>==<<2233445533221100JJKKLLMMssttuuvvBBAA@@??qqppoonnppqqrrss YYXXWWVV||}}~~MMLLKKJJYYZZ[[\\PPOONNMM!!""##$$DDCCBBAA--..//00QPONMLKK**++,,--;;::998866778899//..--,,NNOOPPQQwwxxyyzz>>==<<;;mmllkkjjttuuvvwwUUTTSSRRIIHHGGFF]]^^__``LLKKJJII%%&&''((@@??>>==11223344JJIIHHGG..//001177665544::;;<<==++**))((RRSSTTUU{{||}}~~::993322iihgfedcxxyyzz{{QQPPOONN !!""##EEDDCCBBaabbccii HHGGFFEE))**++,,<<;;::9955667788FFEEDDCC2233445533221100>>??@@AA''&&%%$${{VVWWXXYY1100//..cbbaa``_||}}~~MMLLKKJJ$$%%&&''AA@@??>>jjkkllmm!!""##$$DDCCBBAA--..//008877665599::;;<< BBAA@@??66778899//..--,,BBCCDDEE##""!! zzyyxxwwZZ[[\\]] !!""--,,++**_^^]]\\[IIHHGGFF(())**++==<<;;::nnooppqq%%&&''((@@??>>==1122334444332211==>>??@@ - - >>==<<;;::;;<<==++**))((FFGGHHIIvvuuttss^^__``aa##$$%%&&))((''&&[ZZYYXXW !!""##EEDDCCBB,,--..//99887766rrssttuu))**++,,<<;;::995566778800//..--AABBCCDD::998765>>??@@AA''&&%%$$JJKKLLMMrrqqppoobbccddee''(())**%%$$##""WVVUUTTS$$%%&&''AA@@??>>0011223355443322vvwwxxyy--..//008877665599::;;<<,,++**))EEFFGGHH - -43322110BBCCDDEE##""!! NNOOPPQQnnmmllkk~~}}||ffgghhii++,,--..!!SRRQQPON(())**++==<<;;::445566771100//..zz{{1122334444332211==>>??@@((''&&%%IIJJKKLL 0//..--,FFGGHHIIRRSSTTUUjjiiccbb{{zzyyxxjjkkllmm//001122MLKKJJII,,--..//998877668899::;;--,,++**5566778800//..--AABBCCDD$$##""!!MMNNOOPP,++**))(JJKKLLMM~~}}||VVWWXXYY aa``__^^wwvvuuttnnooppqq33445566HHGGFFEE0011223355443322<<==>>??))((''&&99::;;<<,,++**))EEFFGGHH QQRRSSTT(''&&%%$NNOOPPQQ{{zzyyxxZZ[[\\]] - - ]]\\[[ZZssrrqqpprrssttuu778899:: DDCCBBAA445566771100//..@@AABBCC%%$$##""==>>??@@((''&&%%IIJJKKLL~~}}UUVVWWXX$##""!! RRSSTTUUwwvvuutt^^__``aaYYXXWWVVoonnmmllvvwwxxyy;;<<==>> - - @@??>>==8899::;;--,,++**DDEEFFGG!! {{zzyyxxAABBCCDD$$##""!!MMNNOOPP||{{zzyyYYZZ[[\\!!""##~~}}||VVWWXXYY ssrrqqppbbccddeeUUTTSSRRkkjjiihhzz{{||}}??@@AABB<<;;::99<<==>>??))((''&&HHIIJJKKwwvvuuttEEFFGGHH QQRRSSTTxxwwvvuu]]^^__``$$%%&&''{{zzyyxxZZ[[\\]] - - oonnmmllffgghhiiQQKKJJIIggffeedd~~CCDDEEFF87654332@@AABBCC%%$$##""LLMMNNOOssrrqqppIIJJKKLL~~}}UUVVWWXX ttssrrqqaabbccdd(())**++wwvvuutt^^__``aakkjjiihhjjkkllmm HHGGFFEEccbbaa``GGHHIIJJ - - 21100//.DDEEFFGG!! PPQQRRSSoonnmmllMMNNOOPP||{{zzyyYYZZ[[\\ - - ppoonnmmeeffgghh,,--..//ssrrqqppbbccddeeggffeeddnnooppqq - - DDCCBBAA__^^]]\\KKLLMMNN .--,,++*HHIIJJKK~~TTUUVVWWkkjjiiccQQRRSSTTxxwwvvuu]]^^__``llkkjjiiiijjkkll00112233 - -oonnmmllffgghhiiccbbaa``rrssttuu@@??>>==[[ZZYYXXOOPPQQRR*))((''&LLMMNNOO}}||{{zzXXYYZZ[[ - -bbaa``__UUVVWWXX ttssrrqqaabbccddhhggffeemmnnoopp99::;;<< kkjjiihhjjkkllmm __^^]]\\vvwwxxyy<<;;::99WWVVUUTTbdQZ|vpfd|ZfpvdrtAvpfے`JXQf~HXQJ`ےltbے`JvnX˂rXQdtAJl˂pZZdQbtHAZpdQZ|vXnrd|J`ےtbdQf`vlJtArdrtAH~fdQbtnXv`fJltH~fr˂pfpvbHAZnvpXQr˂v`f~fJ`ےtbnHAbےlJtA˂rXQdrtAJvpfHZdQbtHAZp˂Z|dXnvd|ZJlt`vXnl|ZdQ~fpvbdQZ|`vXnZHAےnXv`p˂rfHfp`JXQpvnbHAZpvpf`JXQrrd|J`ےltb~f`l|ZrXQJrtAJlpfH~dQbtbdQZ|vpfbtlnXvdrtAvpf`JXQrf~HXQJ`ے`vXnr˂pXv`f˂rXQHf`˂pZZdQbtbHAZpdQZ|vXndQbt`ےbtbdQf`vlJtArdrtAH~fJtArd`f~JltH~fbtlfpvbHAZvpfZHAb~HfJ`ےvXnHAbےlJtA˂rXQdrtAJvpfHlJtArHAZp˂Z|dXnvd|ZJlt`vXn|ZdQHfpvbdQZ|`vXnJtAdnXv`p˂rH~fے`JXQpvnbHAZpvpfH`JXQrrd|J`ےltb~f`d|ZrXQJrtAJlpfH~dQbtbdQZ|vpfbtlnXvdrtAvpf|ZdQbf~HXQJ`ے`vXnr˂pXv`f˂rXQ~f`˂pZZdQbtbHAZpdQZ|vXndQbt`ےbtbdQf`vlJtArdrtAH~f|ZdQb`frQJltH~ftlJfpvbHAZvpf`JXQr~fpvJ`ےvXnHAbےlJtA˂rXQdrtAJvpfHl|ZdQHAZp˂Z|dXnvd|ZJlt`vXntlJJHAZbdQZ|`vXntArdnXv`p˂rH~f˂pZnXv`bHAZpvpfH`JXQrrd|J`ےltb~f`btlrXQJrtAJlpfH~dQbtbdQZ|vpftArdp˂rdrtAvpf|ZdQbf~HXQJ`ے`vXnHAbےf~H˂rXQ~f`˂pZZdQbtbHAZpdQZ|vXnrJtArd`ےbtbdQf`vlJtArdrtAH~f|ZdQbXQJ`ےJltH~ftlJfpvbHAZvpf`JXQrfpvJ`ےvXnHAbےlJtA˂rXQdrtAJ˂p`|ZdQHAZp˂Z|dXnrd|ZJlt`vXntl|bHAZbdQZ|`vXntArdnXv`p˂rH~f˂p`nXv`bHAZpvpfH`JXQrrd|J`ےltbJXQrbtlrXQJrtAJl˂pZHAdQbtbdQZ|vpfZdQbtp˂rdrtAvpf|ZdQbf~HXQJ`ے`vXnJXQrf~fp˂rXQ~f`˂pZZdQbnbHAZpdQZ|˂pZHA|ZdQb`ےbtbdQbے`lJtArdrtAH~flJtAXQJ`ےJltH~ftlJfpvbHAZvpf˂pZHAvnXJ`ےvXnHAbےXv`f˂rXQdrtAJbے`tlJHAZp˂Z|dJXQrd|ZJlt`vXnrd|bHAZbdQZ|`vXntArdnXv`p˂rH~fbے`v`fbHAZpvpfH`JXQr~HfJ`ےltbJXQrtArdrXQJrtAJl˂pZHAdQbtbdQZ|vpfZdQbtp˂rdrtAvpf|ZdQbf~HbdQZ|`vXnJXQr~Hfp˂rb~f`˂pZpvnbHAZpdQZ|˂p`J|ZdQb`ےbtbdQbے`lJtArdrtAH~fl|ZXQJ`ےJltH~ftlJfpvdrtAvpf˂p`JvnXdQZ|vXnHAbےXv`f˂rXQdrtAJXQr˂tl|HAZp˂Z|dJXQrd|ZJlt`vXndQbt璐bHAZbdQZ|`vXntArdnXv`JltH~fXQrbtv`f~drtAJvpfH`JXQr~HfJ`ےltbpZHAbZdQbnrXQJrtAJl˂pZHAdQbtbdQZ|vpflJtArp˂rdrtAr˂p|ZdQbf~HbdQZ|`vXnl|Zfpvltb~f`˂pZpvnbHAZpdQZ|ے`JXv`f`ےbtbdQbے`lJtArdrtAH~fd|ZXQJ`ےJltZHAbtlJfpvdrtAvpfdQbtnXv`dQZ|vXnHAbےXv`f˂rXQdrtAJXQr˂~fpvHAZp˂Z|dJXQrd|ZJlt`vXndQbt璐bHAZbdQZ|ے`JXQtArdnXv`JltH~flJtArf~HdrtAJvpfH`JXQr~HfJ`ےltbp`JXQnXv`rXQJrtAJl˂pZHAdQbtbdQZ|r˂pl|ZdQp˂rdrtAr˂p|ZdQbf~HbdQZ|`vXnd|Zfpvltb~f`˂pZpvnbHAZpdQZ|r˂pf~H`ےbtbdQbے`lJtArdrtA`JXQrbtlXQJ`ےJltZHAbtlJfpvdrtAvpfdQbtnXv`fdQZ|vXnHAbےXv`f˂rXQdtAJlZHAbfpvHAZp˂Z|dJXQrd|ZJlt˂pZJtArdbHAZbdQZ|ے`JXQtArdnXv`JltH~fl|ZdQ~fpvdrtAJvpfH`JXQr~HfJ`ےtbnے`JXQnXv`rXQJtAJl˂pZHAdQbtbdQZ|HAbے|ZdQp˂rdrtAr˂p|ZdQbf~HbdQZ|`vXnbtlnXvltb~f`˂pZpvnbHAZpvpfr˂pf~fp`ےbtbnbے`lJtArdrtA`JXQrbtlXQJ`ےJltZHAbtlJfpvdrtAvpfJtArd`f~dQZ|vXnHAے`Xv`f˂rXQHf``JXQrvnXHAZp˂vpfHJXQrd|ZJlt˂p`|ZdQbbHAZbdQZ|ے`JXQtArdnXv`JltH~f|ZdQHfpvdrtAJvpfHJXQrb~HfJ`ےvXn˂pZv`frXQJf`v˂pZHAdQbtbdQZ|JXQrnXv`p˂rdrtAr˂p|ZdQbfHfbdQZ|`vXnbtlnXvltb~f`tlJpvnbHAZpvpfHHAbے~Hfp`ےbXnvbے`lJtArdrtA˂pZHAf~fpXQJ`ےJltZHAbtlJpvndrtAvpf|ZdQb`ffpdQZ|vXntAd|Xv`f˂rXQ~f``JXQrvnXHAZp˂pfH~JXQrd|ZJltbے`vnXbHAZbdQZ|ے`JXQtArdrXQJ`JltH~ftlJvnrdrtAJvpfHZdQbt~HfJ`ےvXn˂p`v`f~rXQJf`v˂pZHAdQbtbdQZ|JXQrv`fp˂rdtAJr˂p|ZdQbےHAZbdQZ|`vXntArdXQJ`ےltb~f`lJtApvnbHAZpvpfHJXQrfpv`ےbXnvbے`lJtArdrtA˂p`J~HfpXQJ`ےltbZHAbtlJp˂rdrtAvpf|ZdQbHAZpdQZ|vXnrd|Xv`f˂rXQ~f`˂pZHAnXv`HAZp˂pfH~JXQrd|ZJltXQr˂vnXbHAZnvpے`JXQtArdXQJ`ےJltH~ftl|˂rXQdrtAJvpfHZdQbt~HfJ`ےvXnbے`f~HrXQJf`v˂pZHAdQbtbdQZ|pZHAbv`f~fp˂rfHfr˂p|ZdQbbHAZbdQZ|`vXnZdQbtJ`ےltb~f`lJtApvnbHAZpvpfHJXQrfpv`ےbXnvbے`lJtArdrtAے`JpvnXQJ`ے`vXnZHAbtlJp˂rdrtAvpflJtAbHAZpdQZ|vXnrd|Xv`f˂rXQ~f`˂p`JnXv`fHAZp˂pfH~JXQrd|ZJltXQr˂Xv`fbHAZvpfے`JXQtArdXQJ`ےJltH~frd|˂rXQdrtAJvpfHZdQbt~HfJ`ےvXnXQr˂~fpvrXQJf`v˂pZHAdQbnXbdQZ|p`JXQ~Hfp˂rH~fr˂p|ZdQbbHAZbdQZ|`vXnZdQbtJ`ےltb~f`lJtApvnbHAZpvpfHpZHAbnXv`ےbXnvbے`v`f`vXnr˂ppvnXQJ`ے`vXnZHAbtlJp˂rdrtAvpfl|ZbHAZpdQZ|vXnrd|Xv`f˂rb~f`ے`J`f~HAZp˂pfH~JXQr~HfpvpfZHAbXv`fbHAZvpfے`JXQtArdXQJ`ےJltH~fdQbt˂rXQdrtAJvpfHZdQbt~HfdQZ|vXnXQr˂HfpvrbdQf`v˂pZHAvnXH~fے`JXQ~fpvp˂rH~fr˂p|ZdQbbHAZbdQZ|`vXnlJtArJ`ےltb~f`lJtApvndrtAJvpfHp`JXQnXvZ|dXnvbے`v`fvnX`vXnr˂pnXv`XQJ`ے`vXnZHAbtlJp˂rdrtAr˂pd|ZbHAZpdQZ|vXnrrd|Xv`fltb~f`rbt`f~fprtAJlpfH~JXQr~Hfpv`fvpf`JXQrf~HbHAZvpfے`JXQtArdXQJ`ےJlt`JXQrdQbt˂rXQdrtAJ˂pZZdQbt~HfdQZ|vXnl|ZdQvnXtbdQf`v˂pZHAvnX~HfpH~f˂pZfpvp˂rH~fr˂p|ZdQbbHAZbdQZ|˂pZl|ZdQJ`ےltbHAbےlJtApvndrtAJvpfHbtlv`fZ|dXnvbے`v`fvnX`vXnHAbےnXv`XQJ`ے`vXnZHAbnXv`p˂rdrtAHAbےbtlbHAZpdQZ|`JXQrrd|Xv`fltb~f`JtArd~HfprtAJlpfH~JXQr~Hfpv`fvpf`JXQrf~fpbHAZvpfے`JXQf~HXQJ`ےJlt`JXQrJtArd˂rXQdrtAJ˂pZZdQbt~HfdQZ|vXn|ZdQvnXtbdQf`v˂pZHAvnX~HfpH~f˂p`vnXp˂rH~fr˂pfpvbHAZbdQZ|˂p`|ZdQJ`ےltbHAbےlJtApvndrtAJvpfHbtlv`f~Z|dXnvbے`v`fvnX`vXnJXQrv`fbdQZ|`vXnZHAbnXv`p˂rdrtAJXQrbtlbHAZpdQZ|`JXQrrd|Xv`fltb~f`|ZdQbfpvrtAJlpfH~JXQr~Hfpv`fvpf˂pZHA~HfpdrtAvpfے`JXQf~HXQJ`ےJlt˂pZHA|ZdQb˂rXQdrtAJ˂pZZdQbt~HfdQZ|vXntlJnXv`tbdQf`v˂pZHAvnX~HfpH~fbے`vnXJltH~fr˂pfpvbHAZbdQZ|bے`nXv`J`ےltbHAbےlJtApvndrtAJvpfHtArdf~HZ|dXnvے`Jv`fvnX`vXnJXQrv`f~bdQZ|`vXnZHAbnXv`p˂rdrtAJXQrf~fpbHAZpdQZ|`JXQrrd|Xv`fltb~f`|ZdQbfpvrtAJlpfH~XQrbt~Hfpv`fvpf˂p|ZfpvdrtAvpfے`JXQf~HXQJ`ےJlt˂p`JvnX˂rXQdrtAJ˂pZZdQbtHfpdQZ|vXntl|nXv`tbdQf`vlJtAvnX~HfpH~fdQbtnXv`JltH~fr˂pfpvbHAZbdQZ|XQr˂v`fJ`ےltbHAbےlJtAvnrdrtAJvpfHZdQbtffpvZ|dXnvd|Zv`fvnX`vXnlJtArf~HbdQZ|`vXnZHAbnXv`p˂rdtAJpZHAb~HfpbHAZpdQZ|`JXQrrd|XQJ`ےltb~f`lJtAnrXQrtAJlpfH~dQbt~Hfpv`f~HfpZ|dXnv|ZdQbvnXtbdQZf`vXpZHAbnXvZp˂|dtA˂pZHA~HfpbHAZbdQZ|ے`JXQtArdrXQJ`JltH~ftlJvnrdrtAJvpfHZdQbt~HfJ`ےvXn`JXQrvˍpfvnXrtAJlpfH~tl|v`f~f|drnvpے`J`f~rXQJ`Jltbے`vnXp˂rdtAJr˂p|ZdQbےHAZbdQZ|`vXntArdXQJ`ےltb~f`lJtApvnbHAZpvpfH˂pZH~ㅐfv`ftbdQf`vZdQbtpvntAJlfH~XQr˂HfpvےbHAbnvJXQrv`f~XQJ`ےltbZHAbtlJp˂rdrtAvpf|ZdQbHAZpdQZ|vXnrd|Xv`f˂rXQ~f`HAbے`vXn~HfpZ|dXnvlJtAXv`ftbdQZf`vXpZHAnXvZp˂pfH˂p`JfpvbHAZnvpے`JXQtArdXQJ`ےJltH~ftl|˂rXQdrtAJvpfHZdQbt~HfJ`ےvXn`JXQrvˍpfvnXrtAJlpfH~rd|~Hf|drnvpے`JXQ`f~rXQJ`f`vXXQr˂nXv`p˂rfHfr˂p|ZdQbbHAZbdQZ|`vXnZdQbtJ`ےltb~f`lJtApvnbHAZpvpfH˂p`H~ㅐfv`ftbdQf`vZdQbtpvntAJlfH~rbtHfpvےbHAnvppZHAbf~HXQJ`ے`vXnZHAbtlJp˂rdrtAvpflJtAbHAZpdQZ|vXnrd|Xv`f˂rXQ~f`JXQr`vXnHfpvZ|dXnvl|ZXv`ftbdQZf`vXlJtAdnXvZp˂fH~ے`JfpvbHAZvpfے`JXQtArdXQJ`ےJltH~frd|˂rXQdrtAJvpfHZdQbt~HfJ`ےvXn˂pZHAvˍpfnrXQrtAJlpfH~dQbt璅fpv|drnvp|ZdQ`f~rXQJ`f`vXXQr˂nXv`p˂rH~fr˂p|ZdQbbHAZbdQZ|`vXnZdQbtJ`ےltb~f`lJtApvnbHAZpvpfHbے`H~ㅐfJ`ےtbdQf`vlJtArnrXQJtAJlfH~btlHfpvےbHAnvpp`JXQf~fpXQJ`ے`vXnZHAbtlJp˂rdrtAvpfl|ZbHAZpdQZ|vXnrd|Xv`f˂rb~f`JXQr`vXnHAZp˂Z|dXnvd|Z`ےHAtbdQZf`vXJtArdnXvZp˂fH~r˂pvnXbHAZvpfے`JXQtArdXQJ`ےJltH~fdQbt˂rXQdrtAJvpfHZdQbt~HfdQZ|vXn˂p`ZvˍpfrXQJrtAJlpfH~dQbtZp˂|drnvp|ZdQ`f~rXQJ`f`vXZHAbv`fp˂rH~fr˂p|ZdQbbHAZbdQZ|`vXnlJtArJ`ےltb~f`lJtApvndrtAJvpfHQXb㉀ەH~ㅐf`ےbtbdQf`vl|ZdQrXQJ`tAJlfH~btlHfpvےbHAnvpے`JXQ~HfpXQJ`ے`vXnZHAbtlJp˂rdrtAr˂pd|ZbHAZpdQZ|vXnrrd|Xv`fltb~f`pJAHr`vXnHAZp˂Z|dXnvbtlےbHAtbdQZf`vXJtArdnXvZp˂fH~r˂pvnXbHAZvpfے`JXQtArdXQJ`ےJlt`JXQrdQbt˂rXQdrtAJ˂pZZdQbt~HfdQZ|vXnˁ`ZvˍpfrXQJrtAJlpfH~JtArdZp˂|drnvp|ZdQ`f~rXQJ`f`vX`JXQrv`f~fp˂rH~fr˂p|ZdQbbHAZbdQZ|˂pZl|ZdQJ`ےltbHAbےlJtApvndrtAJvpfHQXb㉀ەH~ㅐf`ےbtbdQf`v|ZdQrXQJ`tAJlfH~btlHfpvےbHAnvp˂pZpvnXQJ`ے`vXnZHAbnXv`p˂rdrtAHAbےbtlbHAZpdQZ|`JXQrrd|Xv`fltb~f`p`ZQX`vXnHAZp˂Z|dXnvbtlےbHAtbdQZf`vXJtArdnXvZp˂fH~HAbےXv`fbHAZvpfے`JXQf~HXQJ`ےJlt`JXQrJtArd˂rXQdrtAJ˂pZZdQbt~HfdQZ|vXnb㉀ۑpvˍpfrXQJrtAJlpfH~|ZdQbZp˂|drnvp|ZdQ`f~rbdQZf`vX`JXQr~Hfp˂rH~fr˂pfpvbHAZbdQZ|˂p`|ZdQJ`ےltbHAbےlJtApvndrtAJvpfHJAHr󙐕H~ㅐf`ےbtbdQf`vtlJrXQJ`tAJlfH~btlHfpv|drnvp˂p`pvnbdQZ|`vXnZHAbnXv`p˂rdrtAJXQrbtlbHAZpdQZ|`JXQrrd|Xv`fltb~f`ˁ`ZQX`vXnHAZp˂Z|dXnrtArdےbHAtbdQZf`vXJtArdnXvtAJlfH~JXQrbXv`fdrtAvpfے`JXQf~HXQJ`ےJlt˂pZHA|ZdQb˂rXQdrtAJ˂pZZdQbt~HfdQZ|vXnb㉀ۑpvˍp|rXQJrtAJl˂p`J|ZdQbZp˂|drnr˂|ZdQ`f~tbdQZf`vXtl|~fpvJltH~fr˂pfpvbHAZbdQZ|bے`nXv`J`ےltbHAbےlJtApvndrtAJvpfH`ZQXbdrQt`ےbtbdQXQr˂tl|rXQJ`tAJlpZHAbbtlHfpv|drnvpZdQbtnXv`bdQZ|`vXnZHAbnXv`p˂rdrtAJXQrf~fpbHAZpdQZ|`JXQrrd|Xv`fltb~f`ۑpJJltHAZp˂Z|dpZHAbZdQbtےbHAtbdQZے`JJtArdnXvtAJlfH~lJtAf~HdrtAvpfے`JXQf~HXQJ`ےJlt˂p`JvnX˂rXQdrtAJ˂pZZdQbtHfpdQZ|vXnAHr󙐂bAdZ|rXQJrtAJlے`JlJtAZp˂|drXQr˂|ZdQ`f~tbdQZf`vXrd|fpvJltH~fr˂pfpvbHAZbdQZ|XQr˂v`fJ`ےltbHAbےlJtAvnrdrtAJvpfH`ZQXbdrQt`ےbtbdQXQr˂rd|rXQJ`tAJlpZHAbbtlHfpv|drnvpZdQbtnXv`bdQZ|`vXnZHAbnXv`p˂rdtAJpZHAb~HfpbHAZpdQZ|`JXQrrd|XQJ`ےltb~f`ۑp`JltHAZp˂Z|dp`JXQZdQbtےbHAtbdQZے`JJtArdnXvtAJlfH~l|Zf~fpdrtAvpfے`JXQf~HXQJ`ےltbے`JvnX˂rXQdtAJl˂pZZdQbtHAZpdQZ|vXnZQXb㉀bAdZ|rXQJrtAJlr˂pl|ZZp˂|drXQr˂|ZdQ`f~tbdQZf`vXdQbtvnXJltH~fr˂pfpvbHAZnvpXQr˂v`f~fJ`ےtbnHAbےlJtA˂rXQdrtAJvpfHۑpJAHdrQt`ےbtbdQZHAbdQbnXrXQJ`tAJlpZHAbbtlHfpv|drnvplJtArv`fbdQZ|`vXnZHAےnXv`p˂rfHfp`JXQpvnbHAZpvpf`JXQrrd|J`ےltb~f`r󙐂ˁ`JltHAZp˂Z|dے`JXQv`f~ےbHAtbdQZے`JJtArdnXvtAJlfH~d|Z~HfpdrtAvpf`JXQrf~HXQJ`ے`vXnr˂pXv`f˂rXQHf`˂pZZdQbtbHAZpdQZ|vXnZQXb㉀bAdZ|rXQJrtAJlr˂pfpvZp˂|drXQr˂|ZdQ`fHtbdQZf`vXdQbtvnXJltH~fbtlfpvbHAZvpfZHAb~HfJ`ےvXnHAbےlJtA˂rXQdrtAJvpfHۑp`ZdrQt`ےbtbdQ`JXQrnXv`rXQJ`tAJlpZHAbbtlfpv|drnvpl|ZdQv`ffbdQZ|`vXnJtAdnXv`p˂rH~fے`JXQpvnbHAZpvpfH`JXQrrd|J`ےltb~f`QXb㉀JltHAZp˂Z|d˂pZf~HےbHAtbdQZے`JJtArdnrXQJtAJlfH~btlpvndrtAvpf|ZdQbf~HXQJ`ے`vXnr˂pXv`f˂rXQ~f`˂pZZdQbtbHAZpdQZ|vXnpJAHrbAdZ|rXQJtAJlHAbےfpvZp˂|dtAXQr˂|ZdQ`ےHAtbdQZf`vXJtArdrXQJ`JltH~ftlJfpvbHAZvpf`JXQr~fpvJ`ےvXnHAbےlJtA˂rXQdrtAJvpfHˁ`ZdrQt`ےbtbn`JXQrnXv`frXQJ`JltpZHAbbtlZp˂|drnvp|ZdQےHAZbdQZ|`vXntArdnXv`p˂rH~f˂pZnXv`bHAZpvpfH`JXQrrd|J`ےltb~f`QXb㉀JltHAZp˂vpfH˂p`~fpvےbHAbnvے`JJtArdrXQJ`tAJlfH~btlp˂rdrtAvpf|ZdQbf~HXQJ`ے`vXnHAbےf~H˂rXQ~f`˂pZZdQbtbHAZpdQZ|vXnےp`ZQXbAdZ|rXQJf`vJXQrnXvZp˂pfHXQr˂|ZdQےbHAtbdQZf`vX|ZdQbXQJ`ےJltH~ftlJfpvbHAZvpf`JXQrfpvJ`ےvXnHAbےlJtA˂rXQdrtAJ`JXQrb㉀ۑpdrQt`ےbXnv˂pZHA`f~rXQJ`f`vXpZHAbbtlZp˂|drnvptlJbHAZbdQZ|`vXntArdnXv`p˂rH~f˂p`nXv`bHAZpvpfH`JXQrrd|J`ےltb˂pZJAHrJltHAZp˂pfH~bے`HfpvےbHAnvpے`JJtArdrXQJ`tAJlfH~tArdp˂rdrtAvpf|ZdQbf~HXQJ`ے`vXnJXQrf~fp˂rXQ~f`˂pZZdQbnbHAZpdQZ|HAbےˁ`ZQXbAdZ|rXQJf`vJXQrnXvZp˂fH~XQr˂|ZdQےbHAtbdQZf`vX|ZdQbXQJ`ےJltH~ftlJfpvbHAZvpf˂pZHAvnXJ`ےvXnHAbےXv`f˂rXQdrtAJ`JXQrb㉀XndrQt`ےbXnv˂p`J`f~fprXQJ`f`vXpZHAbbtlZp˂|drnvptl|bHAZbdQZ|`vXntArdnXv`p˂rH~fbے`v`fbHAZpvpfH`JXQr~HfJ`ےltb˂p`vˍpfJltHAZp˂pfH~XQr˂vnXےbHAnvpے`JJtArdrXQJ`tAJlfH~ZdQbtp˂rdrtAvpf|ZdQbf~HbdQZ|`vXnJXQr~Hfp˂rb~f`˂pZpvnbHAZpdQZ|JXQrH~ㅐfbAdZ|rXQJf`vpZHAbv`fZp˂fH~XQr˂|ZdQےbHAtbdQZf`vXlJtAXQJ`ےJltH~ftlJfpvdrtAvpf˂p`JvnXdQZ|vXnHAbےXv`f˂rXQdrtAJ˂pZHA`vXndrQt`ےbXnvے`J~HfprXQJ`f`vXpZHAbbtlZp˂|drnr˂rd|bHAZbdQZ|`vXntArdnXv`JltH~fXQrbtv`f~drtAJvpfH`JXQr~HfJ`ےltbbے`vˍpfJltHAZp˂pfH~XQr˂vnXےbHAnvpے`JJtArdrXQJ`tAJlp`JXQZdQbtp˂rdrtAr˂p|ZdQbf~HbdQZ|`vXnl|Zfpvltb~f`˂pZpvnbHAZpdQZ|JXQrH~ㅐfbAdZ|rXQJf`vp`JXQv`f~Zp˂fH~XQr˂|ZdQےbHAtbdQZr˂pl|ZXQJ`ےJltZHAbtlJfpvdrtAvpfdQbtnXv`dQZ|vXnHAbےXv`f˂rXQdrtAJ˂p`J`vXndrQt`ےbXnvr˂pfpvrXQJ`f`vXpZHAbbnXvZp˂|drZHAbdQbt璐bHAZbdQZ|ے`JXQtArdnXv`JltH~flJtArf~HdrtAJvpfH`JXQr~HfJ`ےltbXQr˂vˍpfJltHAZp˂pfH~ZHAbnXv`ےbHAnvpے`J`f~rXQJ`tAJlے`JXQlJtArp˂rdrtAr˂p|ZdQbf~HbdQZ|`vXnd|Zfpvltb~f`˂pZpvnbHAZpdQZ|pZHAbH~ㅐfbAdZ|rbdQf`vے`JXQf~HZp˂fH~XQr˂HfpvےbHAtbdQZr˂pd|ZXQJ`ےJltZHAbtlJfpvdrtAvpfdQbtnXv`fdQZ|vXnHAbےXv`f˂rXQdtAJlے`J`vXndrQtZ|dXnvr˂pfpvrbdQZf`vXpZHAbnXvZp˂|dr`JXQrdQbt璐bHAZbdQZ|ے`JXQtArdnXv`JltH~fl|ZdQ~fpvdrtAJvpfH`JXQr~HfJ`ےtbnXQr˂vˍpfJltrtAJlpfH~`JXQrnXv`|drnvpے`J`f~rXQJ`tAJl璀˂pZl|ZdQp˂rdrtAr˂p|ZdQbf~HbdQZ|`vXnbtlnXvltb~f`˂pZpvnbHAZpvpfp`JXQH~ㅐfbAdZ|tbdQf`vbtlf~fptAJlfH~XQr˂HfpvےbHAtbdQZHAbےbnXvXQJ`ےJltZHAbtlJfpvdrtAvpfJtArd`f~dQZ|vXnHAے`Xv`f˂rXQHf`r˂p`vXndrQtZ|dXnv|ZdQbvnXtbdQZf`vXpZHAbnXvZp˂|dr`JXQr`f~fpbHAZbdQZ|ے`JXQtArdnXv`JltH~f|ZdQHfpvdrtAJvpfHJXQrb~HfJ`ےvXnZHAbvˍpfJltrtAJlpfH~tlJv`f|drnvpے`J`f~rXQJ`tAJl璀˂p`vnXp˂rdrtAr˂p|ZdQbfHfbdQZ|`vXnbtlnXvltb~f`tlJpvnbHAZpvpfHے`JXQH~ㅐfbAdZ|tbdQf`vtArd~HfptAJlfH~XQr˂HfpvےbHAtbdQZJXQrv`fXQJ`ےJltZHAbtlJpvndrtAvpf|ZdQb`ffpdQZ|vXntAd|Xv`f˂rXQ~f`r˂p`vXndrQt66666666666666666666666666666666666666677777777777777 \ No newline at end of file diff --git a/vendor/endroid/qr-code/assets/data/qrv36_0.dat b/vendor/endroid/qr-code/assets/data/qrv36_0.dat deleted file mode 100755 index dfa74a81b..000000000 --- a/vendor/endroid/qr-code/assets/data/qrv36_0.dat +++ /dev/null @@ -1,321 +0,0 @@ -}~}~}~}~|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefecdcdcdcdbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPOLKLKLKLKIJIJIJIJHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?}~}~}~}~|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefecdcdcdcdbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPOLKLKLKLKIJIJIJIJHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?}~}~}~}~|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefecdcdcdcdbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPOLKLKLKLKIIIIIIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?}~}~}~}~|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefeccccccdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPOLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?}~}~}}}}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPOLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?}}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPOLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPOLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?>=>=>=>=~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefeccccdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPOLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?>=>=>=>=~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefedcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMLKLKLKLKIIIIIJIJHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?>=>=>=>=~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefebabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKIJIJIJIJHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?>=>=>=>=~}~}}}}}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefebabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKIJIJIJIJHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?>=>=>=>=}~}~}~}~|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefebabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKIJIJIJIJHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?>=>=>=>=}~}~}~}~|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefedcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKIJIJIJIJHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?>=>=>=>=}~}~}~}~|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgdcdcdcccbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKIJIJIJIIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?>=>=>=>=}~}~}~}~|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgcccdcdcdbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKIIIIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?>=>=>=>=}~}~}~}~|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgcdcdcdcdbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?>=>=>=>=}~}}}}}}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgcdcdcdcdbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?>=>=>=>=~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgcdcdcdcdbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?>=>=>=>=~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgcdcdcdcdbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?>=>=>=>=~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgcdcdccccbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIIIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?>=>=>=>=~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgccdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKIIIJIJIJHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?>=>=>=>=~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihgfefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKIJIJIJIJHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?>=>=>=>=~}}}}}}~|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijifefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKIJIJIJIJHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?>=>=>=>=}~}~}~}~|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijifefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKIJIJIJIJHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?>=>=>=>=}~}~}~}~|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijifefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKIJIJIJIJHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?>=>=>=>=}~}~}~}~|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijifefefefedcdcccccbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKIJIJIIIIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?>=>=>=>=}~}~}~}~|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijifefefefecdcdcdcdbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKIIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?>=>=>=>=}~}~}~}~|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijifefefefecdcdcdcdbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?>=>=>=>=>=>=>=}}}}}}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijifefefefecdcdcdcdbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?>=>=>=>=>=>=>=>=~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihgfefefefecdcdcdcdbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?>=>=>=>=>=>=>=>=|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefecdcdcdcdbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?>=>=>=>=>=>=>=>=|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefecdccccccbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?>=>=>=>=>=>=>=>=|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMJIJIIIIIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?>=>=>=>=>=>=>=>=|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?>=>=>=>=>=<;<;<;~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?>=>=>=>=<;<;<;<;}}}}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?>=>=>=>=<;<;<;<;~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMJIIIIIIJHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?>=>=>=>=<;<;<;<;~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefedccccccdbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMIJIJIJIJHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?>=>=>=>=<;<;<;<;~}~}~}}}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefecdcdcdcdbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMIJIJIJIJHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?>=>=>=>=<;<;<;<;}}}~}~}~|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefecdcdcdcdbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMIJIJIJIJHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9878787876565656543434343212121210/0/0///.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - <;<;<;<;:9:9:9:987878787656565654343434321212121///0/0/0.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - <;<;<;<;:9:9:9:987878787656565654343434321212121/0/0/0/0.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - <;<;<;<;:9:9:9:987878787656565654343434321212121/0/0/0/0.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - <;<;<;<;:9:9:9:987878787656565654343434321212121/0/0/0/0.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - <;<;<;<;:9:9:9:987878787656565654343434321212121/0/0/0/0.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - <;<;<;<;:9:9:9:987878787656565654343434321212121/0/0////.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - <;<;<;<;:9:9:9:987878787656565654343434321212121//0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - <;<;<;<;:9:9:9:9878787876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - <;<;<;<;:9:9:9:9878787876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - <;<;<;<;:9:9:9:9878787876565656543434343212121210/0/////.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - <;<;<;<;:9:9:9:9878787876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - <;<;<;<;:9:9:9:987878787656565654343434321212121.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - <;<;<;<;:9:9:9:987878787656565654343434321212121.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - <;<;<;<;:9:9:9:987878787656565654343434321212121.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - <;<;<;<;:9:9:9:987878787656565654343434321212121.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - <;<;<;<;:9:9:9:9878787876565656543434343210/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - <;<;<;<;:9:9:9:98787878765656565434343430//////0.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - <;<;<;<;:9:9:9:9878787876565656543434343/0/0/0/0.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - <;<;<;<;:9:9:9:9878787876565656543434343/0/0/0/0.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - <;<;<;<;:9:9:9:9878787876565656543434343/0/0/0/0.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - <;<;<;<;:9:9:9:9878787876565656543434343/0/0/0/0.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - <;<;<;<;:9:9:9:9878787876565656543434343/0/0/0/0.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - <;<;<;<;:9:9:9:9878787876565656543434343//////0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - <;<;<;<;:9:9:9:98787878765656565434343210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - <;<;<;<;:9:9:9:98787878765656565212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - <;<;<;<;:9:9:9:98787878765656565212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - <;<;<;<;:9:9:9:98787878765656565212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - <;<;<;<;:9:9:9:98787878765656565212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - <;<;<;<;:9:9:9:9878787876565656521212121/////0/0.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - <;<;<;<;:9:9:9:9878787876565656521212121/0/0/0/0.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - <;<;<;<;:9:9:9:9878787876565656521212121/0/0/0/0.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - <;<;<;<;:9:9:9:9878787876565656521212121/0/0/0/0.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - <;:9:9:9:9878787876565656543434321212121/0/0/0/0.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - :9:9:9:987878787656565654343434321212121/0/0/0//.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - :9:9:9:987878787656565654343434321212121////0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - :9:9:9:9878787876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - :9:9:9:9878787876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - :9:9:9:9878787876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - :9:9:9:9878787876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - IIOOPPQQ::998877uuvvwwxx,,++**))uuvvwwxx,,++**))uuvvwwxx,,++**))uuvvwwxx,,++**))uuvvwwxx,,++**)) !wwvvuutt**++,,--wwvvuutt**++,,--wwvvuutt**++,,--wwvvuutt**++,,--wwvvuutt**++,,--mmllkkjj__``aabb'&&%%$$#""!! ""!! ""!! ""!! ""!! '(())**+mmllkkjj44556677mmllkkjj44556677mmllkkjjRRSSTTUU66554321yyzz{{||((''&&%%yyzz{{||((''&&%%yyzz{{||((''&&%%yyzz{{||((''&&%%yyzz{{||((''&&%%!""##$$%ssrrqqpp..//0011ssrrqqpp..//0011ssrrqqpp..//0011ssrrqqpp..//0011ssrrqqpp..//0011iiccbbaacciijjkk#""!! +,,--../iihhggff8899::;;iihhggff8899::;;iihhggff}}||{{VVWWXXYY0//..--,}}~~$$##""!!}}~~$$##""!!}}~~$$##""!!}}~~$$##""!!}}~~$$##""!!%&&''(()oonnmmll22334455oonnmmll22334455oonnmmll22334455oonnmmll22334455oonnmmll22334455``__^^]]llmmnnoo/0123455eeddccbb<<==>>??eeddccbb<<==>>??eeddccbb zzyyxxwwZZ[[\\]],++**))(     )**++,,-kkjjiihh66778899kkjjiihh66778899kkjjiihh66778899kkjjiihh66778899kkjjiihh66778899\\[[ZZYYppqqrrss66778899aa``__^^@@AABBCCaa``__^^@@AABBCCaa``__^^!!""##$$vvuuttss^^__``aa(''&&%%$-..//012ggffeedd::;;<<==ggffeedd::;;<<==ggffeedd::;;<<==ggffeedd::;;<<==ggffeedd::;;<<==XXWWVVUUttuuvvww::;;<<==]]\\[[ZZDDEEFFGG]]\\[[ZZDDEEFFGG]]\\[[ZZ%%&&''((rrqqppoobbcciijj$##""!! 34556677ccbbaa``>>??@@AAccbbaa``>>??@@AAccbbaa``>>??@@AAccbbaa``>>??@@AAccbbaa``>>??@@AATTSSRRQQxxyyzz{{      >>??@@AAYYXXWWVVHHIIJJKKYYXXWWVVHHIIJJKKYYXXWWVV))**++,,nnmmllkkkkllmmnn 8899::;;__^^]]\\BBCCDDEE__^^]]\\BBCCDDEE__^^]]\\BBCCDDEE__^^]]\\BBCCDDEE__^^]]\\BBCCDDEEPPOOIIHH||}} - - - -  - -  - -  - -  - - }}||{{BBCCDDEEUUTTSSRRLLMMNNOOUUTTSSRRLLMMNNOOUUTTSSRR44556677--..//00jjiiccbbooppqqrr     <<==>>??[[ZZYYXXFFGGHHII[[ZZYYXXFFGGHHII[[ZZYYXXFFGGHHII[[ZZYYXXFFGGHHII[[ZZYYXXFFGGHHIIGGFFEEDDzzyyxxwwFFGGHHIIQQPPOONNPPQQRRSSQQPPOONNPPQQRRSSQQPPOONN8899::;;~~}}11223344aa``__^^ssttuuvv - - - - - - - - - - }}@@AABBCCWWVVUUTTJJKKLLMMWWVVUUTTJJKKLLMMWWVVUUTTJJKKLLMMWWVVUUTTJJKKLLMMWWVVUUTTJJKKLLMMCCBBAA@@vvuuttssJKLMNOOPMMLLKKJJTTUUVVWWMMLLKKJJTTUUVVWWMMLLKKJJ<<==>>??||{{zzyy55667788]]\\[[ZZwwxxyyzz||{{zzyyDDEEFFGGSSRRQQPPNNOOPPQQSSRRQQPPNNOOPPQQSSRRQQPPNNOOPPQQSSRRQQPPNNOOPPQQSSRRQQPPNNOOPPQQ??>>==<< - -rrqqppooPQQRRSSTIIHHGGFFXXYYZZ[[IIHHGGFFXXYYZZ[[IIHHGGFF@@AABBCCxxwwvvuu99::;;<>??@@UUTTSSRR ttssrrqqNOOPPQQRKKJJIIHHVVWWXXYYKKJJIIHHVVWWXXYYKKJJIIHHVVWWXXYYKKJJIIHHVVWWXXYYKKJJIIHHVVWWXXYY776655//     jjiiccbbXYYZZ[[\AA@@??>>``aabbccAA@@??>>``aabbccAA@@??>>HHIIJJKKppoonnmmAABBCCDDQQPPOOII - - ppoonnmmRSSTTUUVGGFFEEDDZZ[[\\]]GGFFEEDDZZ[[\\]]GGFFEEDDZZ[[\\]]GGFFEEDDZZ[[\\]]GGFFEEDDZZ[[\\]]..--,,++aa``__^^\]]^^__`==<<;;::ddeeffgg==<<;;::ddeeffgg==<<;;::LLMMNNOOllkkjjiiEEFFGGHHHHGGFFEE - - - - - - - - - - llkkjjiiVWWXXYYZCCBBAA@@^^__``aaCCBBAA@@^^__``aaCCBBAA@@^^__``aaCCBBAA@@^^__``aaCCBBAA@@^^__``aa**))(('']]\\[[ZZ`aabbccd99887766hhiijjkk99887766hhiijjkk99887766PPQQRRSShhggffeeIIJJKKLLDDCCBBAA     ccbbaa``Z[[\\]]^??>>==<>==<>==<>==<>==<>==__^^]]\\^__``aab;;::9988ffgghhii;;::9988ffgghhii;;::9988ffgghhii;;::9988ffgghhii;;::9988ffgghhii""!! $$%%&&''UUTTSSRRkkllmmnn1100//..ppqqrrss1100//..ppqqrrss1100//..XXYYZZ[[``__^^]]QQRRSSTT<<;;::99 !![[ZZYYXXbccdefgh77665544jjkkllmm77665544jjkkllmm77665544jjkkllmm77665544jjkkllmm77665544jjkkllmm !!"" !!"" !!"" !!"" !!""(())**++QQPPOOIIooppqqrr--,,++**ttuuvvww--,,++**ttuuvvww--,,++**\\]]^^__\\[[ZZYYUUVVWWXX88776655""##$$%%WWVVUUTTiijjkkll33221100nnooppqq33221100nnooppqq33221100nnooppqq33221100nnooppqq33221100nnooppqq##$$%%&&~~}}||{{##$$%%&&~~}}||{{##$$%%&&~~}}||{{##$$%%&&~~}}||{{##$$%%&&~~}}||{{,,--..//HHGGFFEEssttuuvv))((''&&xxyyzz{{))((''&&xxyyzz{{))((''&&``aabbccXXWWVVUUYYZZ[[\\//..--,,     &&''(())SSRRQQPPmmnnoopp//..--,,rrssttuu//..--,,rrssttuu//..--,,rrssttuu//..--,,rrssttuu//..--,,rrssttuu''(())**zzyyxxww''(())**zzyyxxww''(())**zzyyxxww''(())**zzyyxxww''(())**zzyyxxww55667788DDCCBBAAwwxxyyzz%%$$##""||}}~~%%$$##""||}}~~%%$$##""ddeeffggTTSSRRQQ]]^^__``++**))((!!""##$$~~}}!!""##$$~~}}!!""##$$~~}}!!""##$$~~}}!!""##$$~~}}**++,,--OOIIHHGGqqrrsstt++**))((vvwwxxyy++**))((vvwwxxyy++**))((vvwwxxyy++**))((vvwwxxyy++**))((vvwwxxyy - -++,,--..vvuuttss++,,--..vvuuttss++,,--..vvuuttss++,,--..vvuuttss++,,--..vvuuttss99::;;<<@@??>>=={{||}}~!! !! !! hhiijjkkPPOONNMMaabbccdd''&&%%$$%%&&''((||{{zzyy%%&&''((||{{zzyy%%&&''((||{{zzyy%%&&''((||{{zzyy%%&&''((||{{zzyy..//5566FFEEDDCCuuvvwwxx''&&%%$$zz{{||}}''&&%%$$zz{{||}}''&&%%$$zz{{||}}''&&%%$$zz{{||}}''&&%%$$zz{{||}} ~}}||{{//001122rrqqppoo//001122rrqqppoo//001122rrqqppoo//001122rrqqppoo//001122rrqqppoo==>>??@@<<;;::99llmmnnooLLKKJJIIeeffgghh##""!! ))**++,,xxwwvvuu))**++,,xxwwvvuu))**++,,xxwwvvuu))**++,,xxwwvvuu))**++,,xxwwvvuu778899::BBAA@@??yyzz{{||##""!! ~~##""!! ~~##""!! ~~##""!! ~~##""!! ~~zzyyxxww33445566nnmmllkk33445566nnmmllkk33445566nnmmllkk33445566nnmmllkk33445566nnmmllkkAABBCCDD88776655ppqqrrssHHGGFFEEiijjkkll--..//00ttssrrqq--..//00ttssrrqq--..//00ttssrrqq--..//00ttssrrqq--..//00ttssrrqq;;<<==>>>>==<<;;}}~ - - vvuuttss778899::jjiihhgg778899::jjiihhgg778899::jjiihhgg778899::jjiihhgg778899::jjiihhggEEFFGGHH//..--,,ttuuvvwwDDCCBBAAmmnnoopp11223344ppoonnmm11223344ppoonnmm11223344ppoonnmm11223344ppoonnmm11223344ppoonnmm??@@AABB::998877 rrqqppoo;;<<==>>ffeeddcc;;<<==>>ffeeddcc;;<<==>>ffeeddcc;;<<==>>ffeeddcc;;<<==>>ffeeddccIIOOPPQQ++**))((xxyyzz{{@@??>>==qqrrsstt~}}||55667788llkkjjii55667788llkkjjii55667788llkkjjii55667788llkkjjii55667788llkkjjiiCCDDEEFF6655//..nnmmllkk??@@AABBbbaa``__??@@AABBbbaa``__??@@AABBbbaa``__??@@AABBbbaa``__??@@AABBbbaa``__RRSSTTUU''&&%%$$ - - - - - -||}}~~<<;;::99uuvvwwxx {{zzyyxx99::;;<>??@@ddccbbaa==>>??@@ddccbbaa==>>??@@ddccbbaa==>>??@@ddccbbaa==>>??@@ddccbbaaPPQQRRSS))((''&&      dccbbaa`GGHHIIJJZZYYXXWWGGHHIIJJZZYYXXWWGGHHIIJJZZYYXXWWGGHHIIJJZZYYXXWWGGHHIIJJZZYYXXWWZZ[[\\]]44332211}}~~ ssrrqqppAABBCCDD``__^^]]AABBCCDD``__^^]]AABBCCDD``__^^]]AABBCCDD``__^^]]AABBCCDD``__^^]]TTUUVVWW%%$$##"" - -  - -  - -  - -  - - !!""##$$`__^^]]\KKLLMMNNVVUUTTSSKKLLMMNNVVUUTTSSKKLLMMNNVVUUTTSSKKLLMMNNVVUUTTSSKKLLMMNNVVUUTTSS^^__``aa00//..--oonnmmllEEFFGGHH\\[[ZZYYEEFFGGHH\\[[ZZYYEEFFGGHH\\[[ZZYYEEFFGGHH\\[[ZZYYEEFFGGHH\\[[ZZYYXXYYZZ[[!! %%&&''((\[[ZZYYXOOPPQQRRRRQQPPOOOOPPQQRRRRQQPPOOOOPPQQRRRRQQPPOOOOPPQQRRRRQQPPOOOOPPQQRRRRQQPPOObbcciijj,,++**))kkjjiihgIIJJKKLLXXWWVVUUIIJJKKLLXXWWVVUUIIJJKKLLXXWWVVUUIIJJKKLLXXWWVVUUIIJJKKLLXXWWVVUU\\]]^^__))**++,,XWWVVUUTSSTTUUVVNNMMLLKKSSTTUUVVNNMMLLKKSSTTUUVVNNMMLLKKSSTTUUVVNNMMLLKKSSTTUUVVNNMMLLKKkkllmmnn  - -  - -  - - ((''&&%%fedccbbaMMNNOOPPTTSSRRQQMMNNOOPPTTSSRRQQMMNNOOPPTTSSRRQQMMNNOOPPTTSSRRQQMMNNOOPPTTSSRRQQ``aabbcc--..//55TSSRRQQPWWXXYYZZJJIIHHGGWWXXYYZZJJIIHHGGWWXXYYZZJJIIHHGGWWXXYYZZJJIIHHGGWWXXYYZZJJIIHHGGooppqqrr - -    $$##""!! !!""##a``__^^]QQRRSSTTPPOONNMMQQRRSSTTPPOONNMMQQRRSSTTPPOONNMMQQRRSSTTPPOONNMMQQRRSSTTPPOONNMMiijjkkll      66778899POONMLKJ[[\\]]^^FFEEDDCC[[\\]]^^FFEEDDCC[[\\]]^^FFEEDDCC[[\\]]^^FFEEDDCC[[\\]]^^FFEEDDCCssttuuvv $$%%&&'']\\[[ZZYUUVVWWXXLLKKJJIIUUVVWWXXLLKKJJIIUUVVWWXXLLKKJJIIUUVVWWXXLLKKJJIIUUVVWWXXLLKKJJIImmnnoopp - - - - - - - - - - - - ::;;<<==IIHHGGFF__``aabbBBAA@@??__``aabbBBAA@@??__``aabbBBAA@@??__``aabbBBAA@@??__``aabbBBAA@@??wwxxyyzz(())**++YXXWWVVUYYZZ[[\\HHGGFFEEYYZZ[[\\HHGGFFEEYYZZ[[\\HHGGFFEEYYZZ[[\\HHGGFFEEYYZZ[[\\HHGGFFEEqqrrsstt>>??@@AAEEDDCCBBccddeeff>>==<<;;ccddeeff>>==<<;;ccddeeff>>==<<;;ccddeeff>>==<<;;ccddeeff>>==<<;;{{||}} - - ,,--..//UTTSSRRQ]]^^__``DDCCBBAA]]^^__``DDCCBBAA]]^^__``DDCCBBAA]]^^__``DDCCBBAA]]^^__``DDCCBBAAuuvvwwxxBBCCDDEEAA@@??>>gghhiijj::998877gghhiijj::998877gghhiijj::998877gghhiijj::998877gghhiijj::998877 55667788QPPOONMLaabbccdd@@??>>==aabbccdd@@??>>==aabbccdd@@??>>==aabbccdd@@??>>==aabbccdd@@??>>==yyzz{{|| - -FFGGHHII==<<;;::kkllmmnn66554433kkllmmnn66554433kkllmmnn66554433kkllmmnn66554433kkllmmnn66554433~~ !!""##~~ !!""##~~ !!""## 99::;;<>??@@FFEEDDCCiijjkkll88776655iijjkkll88776655iijjkkll88776655iijjkkll88776655iijjkkll88776655 !! !! !! !! !!yyxxwwvvSSTTUUVV5543210/ssttuuvv..--,,++ssttuuvv..--,,++ssttuuvv..--,,++ssttuuvv..--,,++ssttuuvv..--,,++yyxxwwvv(())**++yyxxwwvv(())**++yyxxwwvv(())**++ - - AABBCCDDBBAA@@??mmnnoopp44332211mmnnoopp44332211mmnnoopp44332211mmnnoopp44332211mmnnoopp44332211~~}}||""##$$%%~~}}||""##$$%%~~}}||""##$$%%~~}}||""##$$%%~~}}||""##$$%%uuttssrrWWXXYYZZ/..--,,+wwxxyyzz**))((''wwxxyyzz**))((''wwxxyyzz**))((''wwxxyyzz**))((''wwxxyyzz**))(('' !!""#uuttssrr,,--..//uuttssrr,,--..//uuttssrr,,--..// EEFFGGHH>>==<<;;qqrrsstt00//..--qqrrsstt00//..--qqrrsstt00//..--qqrrsstt00//..--qqrrsstt00//..--{{zzyyxx&&''(()){{zzyyxx&&''(()){{zzyyxx&&''(()){{zzyyxx&&''(()){{zzyyxx&&''(())qqppoonn[[\\]]^^+**))(('{{||}}~~&&%%$$##{{||}}~~&&%%$$##{{||}}~~&&%%$$##{{||}}~~&&%%$$##{{||}}~~&&%%$$###$$%%&&'qqppoonn00112233qqppoonn00112233qqppoonn00112233{{zzyyxxQQRRSSTT77665543qqrrsstt00//..--qqrrsstt00//..--qqrrsstt00//..--qqrrsstt00//..--qqrrsstt00//..--{{zzyyxx&&''(()){{zzyyxx&&''(()){{zzyyxx&&''(())nnmmllkkkkllmmnn~~ !!""##~~ !!""##wwvvuuttUUVVWWXX210//..-uuvvwwxx,,++**))uuvvwwxx,,++**))uuvvwwxx,,++**))uuvvwwxx,,++**))uuvvwwxx,,++**)) !wwvvuutt**++,,--wwvvuutt**++,,--wwvvuutt**++,,--jjiiccbbooppqqrr}}||{{zz$$%%&&''}}||{{zz$$%%&&''ssrrqqppYYZZ[[\\-,,++**)yyzz{{||((''&&%%yyzz{{||((''&&%%yyzz{{||((''&&%%yyzz{{||((''&&%%yyzz{{||((''&&%%!""##$$%ssrrqqpp..//0011ssrrqqpp..//0011ssrrqqpp..//0011aa``__^^ssttuuvvyyxxwwvv(())**++yyxxwwvv(())**++oonnmmll]]^^__``)((''&&%}}~~$$##""!!}}~~$$##""!!}}~~$$##""!!}}~~$$##""!!}}~~$$##""!!%&&''(()oonnmmll22334455oonnmmll22334455oonnmmll22334455]]\\[[ZZwwxxyyzz uuttssrr,,--..//uuttssrr,,--..//kkjjiiccaabbccii%$$##""!     )**++,,-kkjjiihh66778899kkjjiihh66778899kkjjiihh66778899YYXXWWVV{{||}} - - qqppoonn00112233qqppoonn00112233bbaa``__jjkkllmm! -..//012ggffeedd::;;<<==ggffeedd::;;<<==ggffeedd::;;<<==UUTTSSRR - - mmllkkjj44556677mmllkkjj44556677^^]]\\[[nnooppqq34556677ccbbaa``>>??@@AAccbbaa``>>??@@AAccbbaa``>>??@@AAQQPPOOIIiihhggff8899::;;iihhggff8899::;;ZZYYXXWWrrssttuu8899::;;__^^]]\\BBCCDDEE__^^]]\\BBCCDDEE__^^]]\\BBCCDDEEHHGGFFEEeeddccbb<<==>>??eeddccbb<<==>>??VVUUTTSSvvwwxxyy     <<==>>??[[ZZYYXXFFGGHHII[[ZZYYXXFFGGHHII[[ZZYYXXFFGGHHIIDDCCBBAAaa``__^^@@AABBCCaa``__^^@@AABBCCRRQQPPOOzz{{||}} - - - - - - - - - - }}@@AABBCCWWVVUUTTJJKKLLMMWWVVUUTTJJKKLLMMWWVVUUTTJJKKLLMM@@??>>==]]\\[[ZZDDEEFFGG]]\\[[ZZDDEEFFGGIIHHGGFF - - ||{{zzyyDDEEFFGGSSRRQQPPNNOOPPQQSSRRQQPPNNOOPPQQSSRRQQPPNNOOPPQQ<<;;::99 !!YYXXWWVVHHIIJJKKYYXXWWVVHHIIJJKKEEDDCCBBxxwwvvuuHHIIJKLMOONNMMLLRRSSTTUUOONNMMLLRRSSTTUUOONNMMLLRRSSTTUU88776655""##$$%%UUTTSSRRLLMMNNOOUUTTSSRRLLMMNNOOAA@@??>>ttssrrqqNOOPPQQRKKJJIIHHVVWWXXYYKKJJIIHHVVWWXXYYKKJJIIHHVVWWXXYY//..--,,&&''(())QQPPOONNPPQQRRSSQQPPOONNPPQQRRSS==<<;;:: - - ppoonnmmRSSTTUUVGGFFEEDDZZ[[\\]]GGFFEEDDZZ[[\\]]GGFFEEDDZZ[[\\]]++**))((**++,,--MMLLKKJJTTUUVVWWMMLLKKJJTTUUVVWW99887766 - - - - - - - - - - llkkjjiiVWWXXYYZCCBBAA@@^^__``aaCCBBAA@@^^__``aaCCBBAA@@^^__``aa''&&%%$$..//0011IIHHGGFFXXYYZZ[[IIHHGGFFXXYYZZ[[55//..--     ccbbaa``Z[[\\]]^??>>==<>==<>==<>``aabbccAA@@??>>``aabbcc((''&&%% !![[ZZYYXXbccdefgh77665544jjkkllmm77665544jjkkllmm77665544jjkkllmmwwvvuutt::;;<<====<<;;::ddeeffgg==<<;;::ddeeffgg$$##""!!""##$$%%WWVVUUTTiijjkkll33221100nnooppqq33221100nnooppqq33221100nnooppqqssrrqqpp>>??@@AA99887766hhiijjkk99887766hhiijjkk      &&''(())SSRRQQPPmmnnoopp//..--,,rrssttuu//..--,,rrssttuu//..--,,rrssttuu oonnmmllBBCCDDEE55443322llmmnnoo55443322llmmnnoo!!""##$$~~}}!!""##$$~~}}!!""##$$~~}}!!""##$$~~}}!!""##$$~~}}**++,,--OOIIHHGGqqrrsstt++**))((vvwwxxyy++**))((vvwwxxyy++**))((vvwwxxyy - - - -kkjjiihhFFGGHHII1100//..ppqqrrss1100//..ppqqrrss%%&&''((||{{zzyy%%&&''((||{{zzyy%%&&''((||{{zzyy%%&&''((||{{zzyy%%&&''((||{{zzyy..//5566FFEEDDCCuuvvwwxx''&&%%$$zz{{||}}''&&%%$$zz{{||}}''&&%%$$zz{{||}} ggffeeddJJKKLLMM--,,++**ttuuvvww--,,++**ttuuvvww ))**++,,xxwwvvuu))**++,,xxwwvvuu))**++,,xxwwvvuu))**++,,xxwwvvuu))**++,,xxwwvvuu778899::BBAA@@??yyzz{{||##""!! ~~##""!! ~~##""!! ~~ccbbaa``NNOOPPQQ))((''&&xxyyzz{{))((''&&xxyyzz{{ - - ~}}--..//00ttssrrqq--..//00ttssrrqq--..//00ttssrrqq--..//00ttssrrqq--..//00ttssrrqq;;<<==>>>>==<<;;}}~__^^]]\\RRSSTTUU%%$$##""||}}~~%%$$##""||}}~~||{{zzyy11223344ppoonnmm11223344ppoonnmm11223344ppoonnmm11223344ppoonnmm11223344ppoonnmm??@@AABB::998877[[ZZYYXXVVWWXXYY!! !!  xxwwvvuu55667788llkkjjii55667788llkkjjii55667788llkkjjii55667788llkkjjii55667788llkkjjiiCCDDEEFF6655//.. !!""##WWVVUUTTZZ[[\\]] - - ttssrrqq99::;;<>??@@ddccbbaa==>>??@@ddccbbaa==>>??@@ddccbbaa==>>??@@ddccbbaa==>>??@@ddccbbaaPPQQRRSS))((''&&   (())**++OONNMMLLbbccddeellkkjjiiAABBCCDD``__^^]]AABBCCDD``__^^]]AABBCCDD``__^^]]AABBCCDD``__^^]]AABBCCDD``__^^]]TTUUVVWW%%$$##"" - -  - -  - - ,,--..//KKJJIIHHffgghhiihgfedccbEEFFGGHH\\[[ZZYYEEFFGGHH\\[[ZZYYEEFFGGHH\\[[ZZYYEEFFGGHH\\[[ZZYYEEFFGGHH\\[[ZZYYXXYYZZ[[!! 55667788GGFFEEDDjjkkllmm - - - - !!""baa``__^IIJJKKLLXXWWVVUUIIJJKKLLXXWWVVUUIIJJKKLLXXWWVVUUIIJJKKLLXXWWVVUUIIJJKKLLXXWWVVUU\\]]^^__99::;;<>??@@??>>==<>??GGFFEEDDaabbccdd@@??>>==aabbccdd@@??>>==aabbccdd@@??>>==aabbccdd@@??>>==aabbccdd@@??>>==yyzz{{|| - -}}||{{VVWWXXYY++**))((@@AABBCCCCBBAA@@eeffgghh<<;;::99eeffgghh<<;;::99eeffgghh<<;;::99eeffgghh<<;;::99eeffgghh<<;;::99}} zzyyxxwwZZ[[\\]]''&&%%$$DDEEFFGG??>>==<=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9878787878787878765656565656565654343434321212121212121210/0/0/0//0/0////.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#}~}~}~}~~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghghgfefefefefefefedcdcdcdccdcdcdcdbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMLKLKLKLKLKLKLKLKIJIJIJIJIJIJIJIJHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9878787878787878765656565656565654343434321212121212121210/0/0/0///0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#}~}~}~}~~}}}}}}~|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghgfefefefefefefefedcdcdcdccdcdcdcdbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMLKLKLKLKLKLKLKLKIIIIIIJIIJIJIJIJHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9878787878787878765656565656565654343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#}~}~}~}~}~}~}~}~|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghgfefefefefefefefedcdcdcdcccccccdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIIJIJIJIJHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:987878787878787876565656565656565434343432121212121212121/////0/00/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#}~}~}}}}}~}~}~}~|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIIJIJIJIJHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:987878787878787876565656565656565434343432121212121212121/0/0/0/00/0/////.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#}}~}~}~}}~}~}~}~|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghgfefefefefefefefedcdcccccdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIIJIJIIIIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:987878787878787876565656565656565434343432121212121212121/0/0/0/00/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#~}~}~}~}}~}~}~}~|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghgfefefefefefefefecdcdcdcddcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIIIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:987878787878787876565656565656565434343432121212121212121/0/0/0/0.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!~}~}~}~}}~}~}~}~|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghgfefefefefefefefecdcdcdcdccccdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:987878787878787876565656565656565434343434343432121212121212121/0/0/0/0.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!~}~}~}~}}}}}}}~}|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghgfefefefefefefefecdcdcdcddcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMNMNMLKLKLKLKLKLKLKLKIIIIIJIJHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:98787878787878787656565656565656543434343434343432121212121212121/0/0/0//.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!~}~}~}~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghghgfefefefefefefefecdcdcdcdbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKIJIJIJIJHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:98787878787878787656565656565656543434343434343432121212121212121////0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!~}~}}}}}|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghghghghghgfefefefefefefefecdcdcdcdbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKIJIJIJIJHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:987878787878787876565656565656565434343434343434321212121210/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!}~}~}~}~|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghghghghghgfefefefefefefefecdccccccbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKLKLKJIJIIJIJIJIJHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9878787878787878765656565656565654343434343434343212121210//////00/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!}~}~}~}~|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghghghghghgfefefefefefefedcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKJIJIIIIIIJIJIJIJHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:987878787878787876565656565656565434343434343434321212121/0/0/0/00/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!}~}~}~}~|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghghghghghgfefefefedcdcdcccdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKJIJIJIJIIJIJIJIIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:987878787878787876565656565656565434343434343434321212121/0/0/0/00/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!~}~}~}~}}~}~}~}~|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghghghghghgfefefefecccdcdcddcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKJIJIJIJIIIIIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:987878787878787876565656565656565434343434343434321212121/0/0/0/00/0/0///.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!}}}}~}~}}~}~}~}~|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghghghghghgfefefefecdcdcdcddcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:987878787878787876565656565656565434343434343434321212121/0/0/0/0///0/0/0.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!~}~}~}~}}~}}}}}}|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghghghghghgfefefefecdcdcdcddcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKJIIIIIIJJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:987878787878787876565656565656565434343434343434321212121/0/0/0/0/0/0/0/0.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!~}~}~}~}~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghghghghghgfefefefecdcdcdcddccccccdbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKIJIJIJIJJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:987878787878787876565656565656565434343434343434321212121//////0//0/0/0/0.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!~}~}~}}}~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghghghghghgfefefefecdcdcdcdcdcdcdcdbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKIJIJIJIJJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9878787878787878765656565656565654343434343434321212121210/0/0/0//0/0/0/0.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!}}}~}~}~~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghghghghghgfefefefecdcdcccccdcdcdcdbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKIJIJIJIJJIJIJIIIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9878787878787878765656565656565654343434321212121212121210/0/0/0//0/0/0/0.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!"!"!"!"!                - - - - - - - - "!"!"!"!                - - - - - - - - "!"!"!"!                - - - - - - - - "!"!"!"!                - - - - - - - - "!"!"!"!                - - - - - - - - "!"!"!"!                - - - - - - - - "!"!"!"!                - - - - - - - - "!"!"!"!                - - - - - - - - "!"!"!"!                - - - - - - - - "!"!"!"!                - - - - - - - - "!"!"!"!                - - - - - - - - "!"!"!"!                - - - - - - - -                 - - - - - - - -                 - - - - - - - -                 - - - - - - - -                 - - - - - - - -                 - - - - - - - -                 - - - - - - - -                 - - - - - - - -                 - - - - - - - - PPOONNMMaabbccdd''&&%%$$IIOOPPQQ::998877%%&&''((uuvvwwxx||{{zzyy,,++**))%%&&''((uuvvwwxx||{{zzyy,,++**))%%&&''((uuvvwwxx||{{zzyy,,++**))%%&&''((uuvvwwxx||{{zzyy,,++**))%%&&''((uuvvwwxx||{{zzyy,,++**))..//5566FFEEDDCC !uuvvwwxxwwvvuutt''&&%%$$**++,,--zz{{||}}wwvvuutt''&&%%$$**++,,--zz{{||}}wwvvuutt''&&%%$$**++,,--zz{{||}}wwvvuutt''&&%%$$**++,,--zz{{||}}wwvvuutt''&&%%$$**++,,--zz{{||}}mmllkkjj __``aabb~}}||{{'&&%%$$#//001122rrqqppoo""!! //001122rrqqppoo""!! //001122rrqqppoo""!! //001122rrqqppoo""!! //001122rrqqppoo""!! ==>>??@@<<;;::99'(())**+mmllkkjj44556677mmllkkjj44556677mmllkkjj44556677mmllkkjj44556677mmllkkjj44556677^^]]\\[[ - - nnooppqqttssrrqq99::;;<>??@@ddccbbaa==>>??@@ddccbbaa==>>??@@ddccbbaaHHGGFFEEiijjkkll}}||{{VVWWXXYY0//..--,--..//00}}~~ttssrrqq$$##""!!--..//00}}~~ttssrrqq$$##""!!--..//00}}~~ttssrrqq$$##""!!--..//00}}~~ttssrrqq$$##""!!--..//00}}~~ttssrrqq$$##""!!;;<<==>>>>==<<;;%&&''(()}}~oonnmmll22334455oonnmmll22334455oonnmmll22334455oonnmmll22334455oonnmmll22334455``__^^]] - - llmmnnoovvuuttss778899::jjiihhgg778899::jjiihhgg778899::jjiihhgg778899::jjiihhgg778899::jjiihhggEEFFGGHH//..--,,/0123455eeddccbb<<==>>??eeddccbb<<==>>??eeddccbb<<==>>??eeddccbb<<==>>??eeddccbb<<==>>??VVUUTTSSvvwwxxyyllkkjjiiAABBCCDD``__^^]] AABBCCDD``__^^]] AABBCCDD``__^^]] DDCCBBAA mmnnooppzzyyxxwwZZ[[\\]],++**))(11223344ppoonnmm 11223344ppoonnmm 11223344ppoonnmm 11223344ppoonnmm 11223344ppoonnmm ??@@AABB::998877)**++,,-kkjjiihh66778899kkjjiihh66778899kkjjiihh66778899kkjjiihh66778899kkjjiihh66778899\\[[ZZYY ppqqrrssrrqqppoo;;<<==>>ffeeddcc;;<<==>>ffeeddcc;;<<==>>ffeeddcc;;<<==>>ffeeddcc;;<<==>>ffeeddccIIOOPPQQ++**))((66778899aa``__^^@@AABBCCaa``__^^@@AABBCCaa``__^^@@AABBCCaa``__^^@@AABBCCaa``__^^@@AABBCCRRQQPPOOzz{{||}}hgfedccb EEFFGGHH\\[[ZZYY - - EEFFGGHH\\[[ZZYY - - EEFFGGHH\\[[ZZYY - - @@??>>==!!""##$$qqrrssttvvuuttss^^__``aa~}}||(''&&%%$55667788llkkjjii55667788llkkjjii55667788llkkjjii55667788llkkjjii55667788llkkjjiiCCDDEEFF6655//..-..//012ggffeedd::;;<<==ggffeedd::;;<<==ggffeedd::;;<<==ggffeedd::;;<<==ggffeedd::;;<<==XXWWVVUUttuuvvwwnnmmllkk??@@AABBbbaa``__??@@AABBbbaa``__??@@AABBbbaa``__??@@AABBbbaa``__??@@AABBbbaa``__RRSSTTUU''&&%%$$::;;<<==]]\\[[ZZ - -DDEEFFGG]]\\[[ZZ - -DDEEFFGG]]\\[[ZZ - -DDEEFFGG]]\\[[ZZ - -DDEEFFGG]]\\[[ZZ - -DDEEFFGGIIHHGGFF !!""baa``__^ - - IIJJKKLLXXWWVVUUIIJJKKLLXXWWVVUUIIJJKKLLXXWWVVUU<<;;::99%%&&''((uuvvwwxxrrqqppoo bbcciijj{{zzyyxx$##""!! 99::;;<>??@@AAccbbaa``>>??@@AAccbbaa``>>??@@AAccbbaa``>>??@@AAccbbaa``>>??@@AATTSSRRQQxxyyzz{{jjiihgfe CCDDEEFF^^]]\\[[ CCDDEEFF^^]]\\[[ CCDDEEFF^^]]\\[[ CCDDEEFF^^]]\\[[ CCDDEEFF^^]]\\[[ VVWWXXYY##""!! >>??@@AAYYXXWWVV HHIIJJKKYYXXWWVV HHIIJJKKYYXXWWVV HHIIJJKKYYXXWWVV HHIIJJKKYYXXWWVV HHIIJJKKEEDDCCBB##$$%%&&^]]\\[[ZMMNNOOPPTTSSRRQQMMNNOOPPTTSSRRQQMMNNOOPPTTSSRRQQ88776655))**++,,yyzz{{||nnmmllkk - - - -kkllmmnnwwvvuutt ==>>??@@ddccbbaa==>>??@@ddccbbaa==>>??@@ddccbbaa==>>??@@ddccbbaa==>>??@@ddccbbaaPPQQRRSS))((''&&8899::;;__^^]]\\ BBCCDDEE__^^]]\\ BBCCDDEE__^^]]\\ BBCCDDEE__^^]]\\ BBCCDDEE__^^]]\\ BBCCDDEEPPOOIIHH ||}}dccbbaa` - - GGHHIIJJZZYYXXWW - - GGHHIIJJZZYYXXWW - - GGHHIIJJZZYYXXWW - - GGHHIIJJZZYYXXWW - - GGHHIIJJZZYYXXWW - - ZZ[[\\]]}}||{{BBCCDDEEUUTTSSRRLLMMNNOOUUTTSSRRLLMMNNOOUUTTSSRRLLMMNNOOUUTTSSRRLLMMNNOOUUTTSSRRLLMMNNOOAA@@??>>''(())**ZYYXXWWVQQRRSSTTPPOONNMMQQRRSSTTPPOONNMMQQRRSSTTPPOONNMM99::;;<<44332211--..//00}}~~jjiiccbb ooppqqrrssrrqqppAABBCCDD``__^^]] AABBCCDD``__^^]] AABBCCDD``__^^]] AABBCCDD``__^^]] AABBCCDD``__^^]] TTUUVVWW%%$$##""<<==>>??[[ZZYYXX - - FFGGHHII[[ZZYYXX - - FFGGHHII[[ZZYYXX - - FFGGHHII[[ZZYYXX - - FFGGHHII[[ZZYYXX - - FFGGHHIIGGFFEEDD!!""##$$`__^^]]\KKLLMMNNVVUUTTSSKKLLMMNNVVUUTTSSKKLLMMNNVVUUTTSSKKLLMMNNVVUUTTSSKKLLMMNNVVUUTTSS^^__``aazzyyxxwwFFGGHHIIQQPPOONNPPQQRRSSQQPPOONNPPQQRRSSQQPPOONNPPQQRRSSQQPPOONNPPQQRRSSQQPPOONNPPQQRRSS==<<;;::++,,--..VUUTTSSRUUVVWWXXLLKKJJIIUUVVWWXXLLKKJJIIUUVVWWXXLLKKJJII==>>??@@~~}}00//..--11223344aa``__^^ssttuuvvoonnmmllEEFFGGHH\\[[ZZYY - - EEFFGGHH\\[[ZZYY - - EEFFGGHH\\[[ZZYY - - EEFFGGHH\\[[ZZYY - - EEFFGGHH\\[[ZZYY - - XXYYZZ[[}}!! @@AABBCCWWVVUUTTJJKKLLMMWWVVUUTTJJKKLLMMWWVVUUTTJJKKLLMMWWVVUUTTJJKKLLMMWWVVUUTTJJKKLLMMCCBBAA@@%%&&''((\[[ZZYYXOOPPQQRRRRQQPPOOOOPPQQRRRRQQPPOOOOPPQQRRRRQQPPOOOOPPQQRRRRQQPPOOOOPPQQRRRRQQPPOObbcciijjvvuuttssJKLMNOOPMMLLKKJJTTUUVVWWMMLLKKJJTTUUVVWWMMLLKKJJTTUUVVWWMMLLKKJJTTUUVVWWMMLLKKJJTTUUVVWW99887766//556677RQQPPOON - - YYZZ[[\\HHGGFFEE - - YYZZ[[\\HHGGFFEE - - YYZZ[[\\HHGGFFEE - - AABBCCDD||{{zzyy,,++**))55667788]]\\[[ZZwwxxyyzzkkjjiihgIIJJKKLLXXWWVVUUIIJJKKLLXXWWVVUUIIJJKKLLXXWWVVUUIIJJKKLLXXWWVVUUIIJJKKLLXXWWVVUU\\]]^^__||{{zzyyDDEEFFGGSSRRQQPPNNOOPPQQSSRRQQPPNNOOPPQQSSRRQQPPNNOOPPQQSSRRQQPPNNOOPPQQSSRRQQPPNNOOPPQQ??>>==<<))**++,,XWWVVUUTSSTTUUVVNNMMLLKKSSTTUUVVNNMMLLKKSSTTUUVVNNMMLLKKSSTTUUVVNNMMLLKKSSTTUUVVNNMMLLKK - -kkllmmnnrrqqppoo PQQRRSSTIIHHGGFF - - XXYYZZ[[IIHHGGFF - - XXYYZZ[[IIHHGGFF - - XXYYZZ[[IIHHGGFF - - XXYYZZ[[IIHHGGFF - - XXYYZZ[[55//..--8899::;;MLKJIIHH ]]^^__``DDCCBBAA ]]^^__``DDCCBBAA ]]^^__``DDCCBBAA EEFFGGHHxxwwvvuu((''&&%%99::;;<>??GGFFEEDDaabbccdd@@??>>==aabbccdd@@??>>==aabbccdd@@??>>==IIJJKKLLttssrrqq$$##""!!==>>??@@UUTTSSRR !!""##a``__^^] QQRRSSTTPPOONNMMQQRRSSTTPPOONNMMQQRRSSTTPPOONNMMQQRRSSTTPPOONNMMQQRRSSTTPPOONNMMiijjkkllttssrrqq NOOPPQQRKKJJIIHH VVWWXXYYKKJJIIHH VVWWXXYYKKJJIIHH VVWWXXYYKKJJIIHH VVWWXXYYKKJJIIHH VVWWXXYY776655//66778899POONMLKJ [[\\]]^^FFEEDDCC [[\\]]^^FFEEDDCC [[\\]]^^FFEEDDCC [[\\]]^^FFEEDDCC [[\\]]^^FFEEDDCCssttuuvvjjiiccbbXYYZZ[[\AA@@??>>``aabbccAA@@??>>``aabbccAA@@??>>``aabbccAA@@??>>``aabbccAA@@??>>``aabbcc((''&&%%@@AABBCCCCBBAA@@eeffgghh<<;;::99eeffgghh<<;;::99eeffgghh<<;;::99MMNNOOPPppoonnmm AABBCCDDQQPPOOII$$%%&&'']\\[[ZZYUUVVWWXXLLKKJJIIUUVVWWXXLLKKJJIIUUVVWWXXLLKKJJIIUUVVWWXXLLKKJJIIUUVVWWXXLLKKJJII - - mmnnooppppoonnmm - - RSSTTUUVGGFFEEDD - - ZZ[[\\]]GGFFEEDD - - ZZ[[\\]]GGFFEEDD - - ZZ[[\\]]GGFFEEDD - - ZZ[[\\]]GGFFEEDD - - ZZ[[\\]]..--,,++::;;<<==IIHHGGFF__``aabbBBAA@@??__``aabbBBAA@@??__``aabbBBAA@@??__``aabbBBAA@@??__``aabbBBAA@@??wwxxyyzzaa``__^^\]]^^__`==<<;;::ddeeffgg==<<;;::ddeeffgg==<<;;::ddeeffgg==<<;;::ddeeffgg==<<;;::ddeeffgg$$##""!!DDEEFFGG??>>==<<iijjkkll88776655iijjkkll88776655iijjkkll88776655QQRRSSTTllkkjjiiEEFFGGHHHHGGFFEE(())**++YXXWWVVU - - YYZZ[[\\HHGGFFEE - - YYZZ[[\\HHGGFFEE - - YYZZ[[\\HHGGFFEE - - YYZZ[[\\HHGGFFEE - - YYZZ[[\\HHGGFFEE qqrrssttllkkjjiiVWWXXYYZCCBBAA@@^^__``aaCCBBAA@@^^__``aaCCBBAA@@^^__``aaCCBBAA@@^^__``aaCCBBAA@@^^__``aa**))((''>>??@@AAEEDDCCBBccddeeff>>==<<;;ccddeeff>>==<<;;ccddeeff>>==<<;;ccddeeff>>==<<;;ccddeeff>>==<<;;{{||}}]]\\[[ZZ - - `aabbccd99887766hhiijjkk99887766hhiijjkk99887766hhiijjkk99887766hhiijjkk99887766hhiijjkk}}|| HHIIOOPP;;::9988 mmnnoopp44332211 mmnnoopp44332211 mmnnoopp44332211 UUVVWWXXhhggffeeIIJJKKLLDDCCBBAA,,--..//UTTSSRRQ ]]^^__``DDCCBBAA ]]^^__``DDCCBBAA ]]^^__``DDCCBBAA ]]^^__``DDCCBBAA ]]^^__``DDCCBBAAuuvvwwxxccbbaa``Z[[\\]]^??>>==<<bbccddee??>>==<<bbccddee??>>==<<bbccddee??>>==<<bbccddee??>>==<<bbccddee&&%%$$##BBCCDDEEAA@@??>>gghhiijj::998877gghhiijj::998877gghhiijj::998877gghhiijj::998877gghhiijj::998877 !!""##YYXXWWVV efghiijj55443322llmmnnoo55443322llmmnnoo55443322llmmnnoo55443322llmmnnoo55443322llmmnnoo{{zzyyxxQQRRSSTT77665543!!""##$$qqrrsstt~~}}00//..--!!""##$$qqrrsstt~~}}00//..--!!""##$$qqrrsstt~~}}00//..--!!""##$$YYZZ[[\\ddccbbaaMMNNOOPP@@??>>==55667788QPPOONMLaabbccdd@@??>>==aabbccdd@@??>>==aabbccdd@@??>>==aabbccdd@@??>>==aabbccdd@@??>>==yyzz{{||__^^]]\\ - -^__``aab;;::9988ffgghhii;;::9988ffgghhii;;::9988ffgghhii;;::9988ffgghhii;;::9988ffgghhii""!! FFGGHHII==<<;;::kkllmmnn66554433kkllmmnn66554433kkllmmnn66554433kkllmmnn66554433kkllmmnn66554433$$%%&&''UUTTSSRRkkllmmnn~~1100//.. !!""##ppqqrrss~~1100//.. !!""##ppqqrrss~~1100//.. !!""##ppqqrrss~~1100//.. !!""##ppqqrrss~~1100//.. !!""##ppqqrrsswwvvuuttUUVVWWXX210//..-%%&&''((uuvvwwxx||{{zzyy,,++**))%%&&''((uuvvwwxx||{{zzyy,,++**))%%&&''((uuvvwwxx||{{zzyy,,++**))%%&&''((]]^^__````__^^]] QQRRSSTT<<;;::9999::;;<>??@@FFEEDDCCiijjkkll88776655iijjkkll88776655iijjkkll88776655iijjkkll88776655iijjkkll88776655""##$$%%WWVVUUTTiijjkkll33221100 !!nnooppqq33221100 !!nnooppqq33221100 !!nnooppqq33221100 !!nnooppqq33221100 !!nnooppqqyyxxwwvvSSTTUUVV5543210/##$$%%&&ssttuuvv~~}}||{{..--,,++##$$%%&&ssttuuvv~~}}||{{..--,,++##$$%%&&ssttuuvv~~}}||{{..--,,++##$$%%&&ssttuuvv~~}}||{{..--,,++##$$%%&&ssttuuvv~~}}||{{..--,,++,,--..//HHGGFFEEssttuuvvyyxxwwvv))((''&&(())**++xxyyzz{{yyxxwwvv))((''&&(())**++xxyyzz{{yyxxwwvv))((''&&(())**++xxyyzz{{yyxxwwvv))((''&&(())**++xxyyzz{{yyxxwwvv))((''&&(())**++xxyyzz{{oonnmmll - - ]]^^__``~}})((''&&%--..//00}}~~ttssrrqq$$##""!!--..//00}}~~ttssrrqq$$##""!!--..//00}}~~ttssrrqq$$##""!!--..//00eeffgghhXXWWVVUU - - YYZZ[[\\//..--,,AABBCCDDBBAA@@?? mmnnoopp44332211 mmnnoopp44332211 mmnnoopp44332211 mmnnoopp44332211 mmnnoopp44332211&&''(())SSRRQQPPmmnnoopp~~}}||//..--,,""##$$%%rrssttuu~~}}||//..--,,""##$$%%rrssttuu~~}}||//..--,,""##$$%%rrssttuu~~}}||//..--,,""##$$%%rrssttuu~~}}||//..--,,""##$$%%rrssttuuuuttssrrWWXXYYZZ/..--,,+''(())**wwxxyyzzzzyyxxww**))((''''(())**wwxxyyzzzzyyxxww**))((''''(())**wwxxyyzzzzyyxxww**))((''''(())**wwxxyyzzzzyyxxww**))((''''(())**wwxxyyzzzzyyxxww**))((''55667788DDCCBBAA !!""#wwxxyyzzuuttssrr%%$$##"",,--..//||}}~~uuttssrr%%$$##"",,--..//||}}~~uuttssrr%%$$##"",,--..//||}}~~uuttssrr%%$$##"",,--..//||}}~~uuttssrr%%$$##"",,--..//||}}~~kkjjiiccaabbccii||{{zzyy%$$##""!11223344ppoonnmm 11223344ppoonnmm 11223344ppoonnmm 11223344iijjkkllTTSSRRQQ ]]^^__``++**))((EEFFGGHH>>==<<;;!!""##$$qqrrsstt~~}}00//..--!!""##$$qqrrsstt~~}}00//..--!!""##$$qqrrsstt~~}}00//..--!!""##$$qqrrsstt~~}}00//..--!!""##$$qqrrsstt~~}}00//..--**++,,--OOIIHHGGqqrrsstt{{zzyyxx++**))((&&''(())vvwwxxyy{{zzyyxx++**))((&&''(())vvwwxxyy{{zzyyxx++**))((&&''(())vvwwxxyy{{zzyyxx++**))((&&''(())vvwwxxyy{{zzyyxx++**))((&&''(())vvwwxxyyqqppoonn - -[[\\]]^^+**))(('++,,--..{{||}}~~vvuuttss&&%%$$##++,,--..{{||}}~~vvuuttss&&%%$$##++,,--..{{||}}~~vvuuttss&&%%$$##++,,--..{{||}}~~vvuuttss&&%%$$##++,,--..{{||}}~~vvuuttss&&%%$$##99::;;<<@@??>>==#$$%%&&'{{||}}~qqppoonn!! 00112233qqppoonn!! 00112233qqppoonn!! 00112233qqppoonn!! 00112233qqppoonn!! 00112233bbaa``__ jjkkllmmxxwwvvuu! 55667788llkkjjii55667788llkkjjii55667788llkkjjii55667788mmnnooppqqrrsstt~~}}00//..--!!""##$$qqrrsstt~~}}00//..--**++,,--OOIIHHGGqqrrsstt{{zzyyxx++**))((&&''(())vvwwxxyy{{zzyyxx++**))((&&''(())vvwwxxyy{{zzyyxx++**))((&&''(())vvwwxxyynnmmllkk - - - -kkllmmnnkkjjiihhFFGGHHIIuuvvwwxx||{{zzyy,,++**))%%&&''((uuvvwwxx||{{zzyy,,++**))..//5566FFEEDDCC !uuvvwwxxwwvvuutt''&&%%$$**++,,--zz{{||}}wwvvuutt''&&%%$$**++,,--zz{{||}}wwvvuutt''&&%%$$**++,,--zz{{||}}jjiiccbb ooppqqrrggffeeddJJKKLLMMyyzz{{||xxwwvvuu((''&&%%))**++,,yyzz{{||xxwwvvuu((''&&%%778899::BBAA@@??!""##$$%yyzz{{||ssrrqqpp##""!! ..//0011~~ssrrqqpp##""!! ..//0011~~ssrrqqpp##""!! ..//0011~~aa``__^^ssttuuvvccbbaa``NNOOPPQQ}}~~ttssrrqq$$##""!!--..//00}}~~ttssrrqq$$##""!!;;<<==>>>>==<<;;%&&''(()}}~oonnmmll22334455oonnmmll22334455oonnmmll22334455]]\\[[ZZwwxxyyzz__^^]]\\ RRSSTTUUppoonnmm 11223344ppoonnmm ??@@AABB::998877)**++,,-kkjjiihh66778899kkjjiihh66778899kkjjiihh66778899YYXXWWVV{{||}}[[ZZYYXX - - VVWWXXYYllkkjjii55667788llkkjjiiCCDDEEFF6655//..-..//012ggffeedd::;;<<==ggffeedd::;;<<==ggffeedd::;;<<==UUTTSSRR !!""##WWVVUUTT - - ZZ[[\\]]hhggffee99::;;<>??@@AAccbbaa``>>??@@AAccbbaa``>>??@@AAQQPPOOII$$%%&&''SSRRQQPP^^__``aaddccbbaa==>>??@@ddccbbaaPPQQRRSS))((''&&8899::;;__^^]]\\ BBCCDDEE__^^]]\\ BBCCDDEE__^^]]\\ BBCCDDEEHHGGFFEE(())**++OONNMMLLbbccddee``__^^]] AABBCCDD``__^^]] TTUUVVWW%%$$##""<<==>>??[[ZZYYXX - - FFGGHHII[[ZZYYXX - - FFGGHHII[[ZZYYXX - - FFGGHHIIDDCCBBAA,,--..//KKJJIIHHffgghhii\\[[ZZYY - - EEFFGGHH\\[[ZZYY - - XXYYZZ[[}}!! @@AABBCCWWVVUUTTJJKKLLMMWWVVUUTTJJKKLLMMWWVVUUTTJJKKLLMM@@??>>==55667788GGFFEEDDjjkkllmmXXWWVVUUIIJJKKLLXXWWVVUU\\]]^^__||{{zzyyDDEEFFGGSSRRQQPPNNOOPPQQSSRRQQPPNNOOPPQQSSRRQQPPNNOOPPQQ<<;;::9999::;;<>??@@??>>==<<""##$$%%rrssttuuPPOONNMMQQRRSSTTPPOONNMMiijjkkllttssrrqq NOOPPQQRKKJJIIHH VVWWXXYYKKJJIIHH VVWWXXYYKKJJIIHH VVWWXXYY//..--,,AABBCCDD;;::9988&&''(())vvwwxxyyLLKKJJIIUUVVWWXXLLKKJJII - - mmnnooppppoonnmm - - RSSTTUUVGGFFEEDD - - ZZ[[\\]]GGFFEEDD - - ZZ[[\\]]GGFFEEDD - - ZZ[[\\]]++**))((EEFFGGHH77665544**++,,--zz{{||}}HHGGFFEE - - YYZZ[[\\HHGGFFEE qqrrssttllkkjjiiVWWXXYYZCCBBAA@@^^__``aaCCBBAA@@^^__``aaCCBBAA@@^^__``aa''&&%%$$IIOOPPQQ33221100..//0011~~DDCCBBAA ]]^^__``DDCCBBAAuuvvwwxxccbbaa``Z[[\\]]^??>>==<<bbccddee??>>==<<bbccddee??>>==<<bbccddee##""!! RRSSTTUU~~}}||//..--,,22334455@@??>>==aabbccdd@@??>>==yyzz{{||__^^]]\\ - -^__``aab;;::9988ffgghhii;;::9988ffgghhii;;::9988ffgghhii}}||{{VVWWXXYY{{zzyyxx++**))((66778899<<;;::99eeffgghh<<;;::99 !!}}[[ZZYYXX bccdefgh77665544jjkkllmm77665544jjkkllmm77665544jjkkllmmzzyyxxwwZZ[[\\]]wwvvuutt''&&%%$$::;;<<==88776655iijjkkll88776655""##$$%%WWVVUUTTiijjkkll33221100 !!nnooppqq33221100 !!nnooppqq33221100 !!nnooppqqvvuuttss^^__``aassrrqqpp##""!! >>??@@AA44332211 mmnnoopp44332211&&''(())SSRRQQPPmmnnoopp~~}}||//..--,,""##$$%%rrssttuu~~}}||//..--,,""##$$%%rrssttuu~~}}||//..--,,""##$$%%rrssttuurrqqppoo bbcciijjoonnmmllBBCCDDEEfpvf~HbHAZXQJ`ےdrtAJltbf`JXQr˂pZHAtlJ|ZdQbfpvf~HXQJ`ےp˂rJltdrtAvpf`vXnے`JXQZHAbtlJ|ZdQbfpvf~HXQJ`ےp˂rJltdrtAvXH~vpfH˂pZHAArd||ZdQbXv`fpvnbHAZpJ`ےdQZ|ltb~f`vpfH˂pZ`JXQrrd|lJtAXv`fpvnbHAZpJ`ےdQZ|ltb~f`vpfHXQr˂p`JXQdQbt璕~HfpvnXrXQJHAZp˂rtAJlZ|dXnvf`vbے`˂pZHAdQbtd|Z~Hfpv`frXQJHAZp˂rtAJlZ|dXnvf`vbے`˂pZHAtlJfpvnXv`ےbHZrXtbdQZtAJlfH~nvpXQr˂ے`JJtArdbtlnXvHfpvےbHArXQJ`tbdQZtAJlfH~nvpXQr˂ے`JJtArdbtlv`f˂rXQJ`ےdrtAAJlb`vXnH~fZHAbr˂p|ZdQbtArdf~HnXv`p˂rbHAZdrtAbdQZ|nXv`fpvp˂rbHAZltbdQZ|vXnpZHAbJQtArdtlJnXv`fpvbHAZXQJ`ےbdQZ|JltH~fvpfr˂pے`JXQtArdtlJnXv`fpvbHAZXQJ`ےbdQZ|Jltf`v~vbے`ZdQbttlJ~HfXv`f˂rXQbHAZpdrtAJdQZ|vXn~f`HAbے˂pZZdQbtrd|~HfXv`f˂rXQbHAZpdrtAJdQZ|vXn~f`p`JXQrbtl|ZdQvnXv`f`ےbrXQJtbdQrtAJlpfH~XnvJXQrbے`lJtArdQbtvnX~Hfp`ےbrXQJtbdQrtAJlpfH~XnvJXQrbے`tArd~Hff~HAZp˂QJ`ے|drtbdQZf`vXfH~pZHAbXQr˂|ZdQJtArd`f~nXvZp˂ےbHA|drtbdQZf`vXfH~pZHAbXQr˂|ZdQJtArd~HfpJ`ےbHAZpJltQZ|dvpf`vXnے`JXQZHAbtlJ|ZdQbfpvf~HXQJ`ےp˂rJltdrtAf~HnXv`XQJ`ےp˂rdQtAJldrtAJvpfHbے`r˂p|ZdQbtArdf~HnXv`p˂rbHAZdrtAbdQZ|`vXnH~fZHAbr˂p|ZdQbtArdf~HnXv`p˂rbHAZdrtAbdQZ|Xnvpfے`JXQrlJttArZdpvn~HfJ`ے˂rXQltbdrtAJvpfHvXn`JXQrHAbےlJtAZdQbtpvn~HfJ`ے˂rXQltbdrtAJvpfHvXnr˂pl|ZdQbtlv`f~HfpHAZp˂`ےbZ|dtbdQf`vpfH~˂pZHAJXQrd|ZlJtArv`fvnXHAZp˂`ےbZ|dtbdQf`vpfH~˂pZHAJXQr|ZdQbpvnXv`frQJbHAZptAJl|drnvpf`vXے`JpZHAbbtl|ZdQHfpv`f~rXQJ`Zp˂tAJl|drnvpf`vXے`JpZHAbbtl|ZdQvnXbHAZp˂rXQbdQZ|rtAJlH~fvpfr˂pے`JXQtArdtlJnXv`fpvbHAZXQJ`ےbdQZ|Jltfpvf~HbHAZXQJ`ےtbdQl|d~f`JXQrZHAbtlJ|ZdQbfpvf~HXQJ`ےp˂rJltdrtAvpf`vXnے`JXQZHAbtlJ|ZdQbfpvf~HXQJ`ےp˂rJltdrtApfH~JXQHAb˂pZHAArd|QbtlXv`fpvnbHAZpJ`ےdQZ|ltb~f`vpfH˂pZ`JXQrrd|lJtAXv`fpvnbHAZpJ`ےdQZ|ltb~f`vpfHZHAbbtlJtArd~Hfpvnv`rXQJHAZp˂rtAJlZ|dXnvf`vbے`˂pZHAdQbtd|Z~Hfpv`frXQJHAZp˂rtAJlZ|dXnvf`vbے`˂pZHAtd|Xv`f~HfbHAZp˂rXtbdQZtAJlfH~nvpXQr˂ے`JJtArdbtlnXvHfpvےbHArXQJ`tbdQZtAJlfH~nvpXQr˂ے`JJtArdbtlv`f`ےbJ`ےrAJltbdQ`vXnH~fZHAbr˂p|ZdQbtArdf~HnXv`p˂rbHAZdrtAbdQZ|nXv`fpvp˂rbHAZZ|drtAJlvXnZAbے`JXQtArdtlJnXv`fpvbHAZXQJ`ےbdQZ|JltH~fvpfr˂pے`JXQtArdtlJnXv`fpvbHAZXQJ`ےbdQZ|Jltf`vے`Jb˂ZdQbJtArd~HfXv`f˂rXQbHAZpdrtAJdQZ|vXn~f`HAbے˂pZZdQbtrd|~HfXv`f˂rXQbHAZpdrtAJdQZ|vXn~f`ے`JXQJtArd|ZdQvnXf~H`ےbrXQJtbdQrtAJlpfH~XnvJXQrbے`lJtArdQbtvnX~Hfp`ےbrXQJtbdQrtAJlpfH~XnvJXQrbے`ZdQbt~Hfpvn˂rXQQJ`ے|drtbdQZf`vXfH~pZHAbXQr˂|ZdQJtArd`f~nXvZp˂ےbHA|drtbdQZf`vXfH~pZHAbXQr˂|ZdQJtArdnXvHAZp˂rXQJtbdQZ|AJvpf`vXnے`JXQZHAےtlJ|ZdQbfpvfHfXQJ`ےp˂rJltdtAJf~HnXv`XQJ`ےp˂rrtAJltbdQvp`v`JXQrr˂p|ZdQbtArdf~HnXv`p˂rbHAZdrtAbdQZ|`vXnH~fZHAbr˂p|ZdQbtArdf~HnXv`p˂rbHAZdrtAbdQZ|XnXQr˂pZHAbJtArd|Zdpvn~HfJ`ے˂rXQltbdrtAJvpfHvXn`JXQrHAbےlJtAZdQbtpvn~HfJ`ے˂rXQltbdrtAJvpfHvXnr˂p|lJbtlv`f~fpvHAZp˂`ےbZ|dtbdQf`vpfH~˂pZHAJXQrd|ZlJtArv`fvnXHAZp˂`ےbZ|dtbdQf`vpfH~˂pZHAJXQrlJtApvnXv`fJ`ےbHAZtAJl|dtAnvpf`vXے`JpZHAbtl|ZdQHfpv`fHrXQJ`Zp˂tAJl|dtAnvpf`vXے`JpZHAbtl|ZdQ`f~rXQJ`ےbZ|dltbH~fvpfr˂p`JXQrtArdtlJnXv`pvnbHAZXQJ`ےbdQZ|ltbfpvf~HbHAZXQJ`ےtbdQZ|`vXnv˂pZZHAbtlJ|ZdQbfpvf~HXQJ`ےp˂rJltdrtAvpf`vXnے`JXQZHAbtlJ|ZdQbfpvf~HXQJ`ےp˂rJltdrtAf`vXpZHAbے`J|ZdQQbtlXv`fpvnbHAZpJ`ےdQZ|ltb~f`vpfH˂pZ`JXQrrd|lJtAXv`fpvnbHAZpJ`ےdQZ|ltb~f`vpfHZHAXQrtArdJtAdQbfpvnXv`rXQJHAZp˂rtAJlZ|dXnvf`vbے`˂pZHAdQbtd|Z~Hfpv`frXQJHAZp˂rtAJlZ|dXnvf`vbے`˂pZHArd|XHfp~HfbHAZprXQJ`tbdQZJltfH~nvpXQr˂ے`JXQJtArdbtlnXvfpvےbHArXQJ`tbdQZJltfH~nvpXQr˂ے`JXQJtArdbtlHfpv`ےbHAZp˂rtAJlnvp`vXnے`JXQZHAbbtl|ZdQbfpvf~HrXQJ`p˂rJltdrtAnvp`vXnnXv`fpvp˂rbHAZZ|lXnvpfH~HAbے`JQrtArdtlJnXv`fpvbHAZXQJ`ےbdQZ|JltH~fvpfr˂pے`JXQtArdtlJnXv`fpvbHAZXQJ`ےbdQZ|Jltnvpے`JXQr˂btlJtArd~HfXv`f˂rXQbHAZpdrtAJdQZ|vXn~f`HAbے˂pZZdQbtrd|~HfXv`f˂rXQbHAZpdrtAJdQZ|vXn~f`˂pZ|ZdQbtlJnXv`ffpv`ےbrXQJtbdQtAJlpfH~XnvJXQrے`JlJtArdQbtvnXHfpv`ےbrXQJtbdQtAJlpfH~XnvJXQrے`JZdQbtvnXp`f˂rXQےJl|drbnvf`vXfے`JpZHAbrbt|ZdQJfpv`f~nrXQJZp˂ےJl|drbnvf`vXfے`JpZHAbrbt|ZdQJfpvnXvHAZp˂rXQJtbdQfHfvpfr˂pے`JXQJtAdtlJnXv`fpvےHAZXQJ`ےbdQZ|JltfHfvpff~HnXv`XQJ`ےp˂rtbdQZpfH~f`v`JXQrpZHAb|ZdQbtArdf~HnXv`p˂rbHAZdrtAbdQZ|`vXnH~fZHAbr˂p|ZdQbtArdf~HnXv`p˂rbHAZdrtAbdQZ|fH~XQrpZHAbJtArdZQbtpvnHfpJ`ے˂rXQltbdtAJlvpfHvXn`JXQrHAے`lJtAZdQbtpvnHfpJ`ے˂rXQltbdtAJlvpfHvXnHAbےtlJtArdf~HnrXQHAZp˂`ےJlZ|dtbnf`vpfے`˂pZHAXQrbtd|ZlJfpv`fnrXQHAZp˂`ےJlZ|dtbnf`vpfے`˂pZHAXQrbtl|Zv`f~HfpJbHAtbdQZtAJlpfHnvpXQr˂ے`JlJtAdbtlnXvHfpv`ےHArXQJ`tbdQZtAJlpfHnvpXQr˂ے`JlJtAdbtl~H`f~bHA`ےbZ|dr`vXnH~fZHAbr˂p|ZdQbtArdf~HnXv`p˂rbHAZdrtAbdQZ|`vXnH~ffpvf~HbHAZXQJ`ے|drf`pXnv˂pZAے`JtlJ|ZdQbfpvfHfXQJ`ےp˂rJltdtAJvpf`vXnے`JXQZHAےtlJ|ZdQbfpvfHfXQJ`ےp˂rJltdtAJf`vXے`JXQے`p|ZdQlJfXv`fvnrbHAZpJ`ےJdQZ|tbn~f`vpfے˂pZJXQrbrd|lJfXv`fvnrbHAZpJ`ےJdQZ|tbn~f`vpfے`JXQrtArd|ZdQbfpvJ`ےrXQJtbdQrtAJlvpfHXnvJXQrbے`lJtAdQbtvnX~HfpJ`ےrXQJtbdQrtAJlvpfHXnvJXQrbے`l|ZdQbt~HfpvnXZp˂|drtbdQZf`vXfH~pZHAbXQr˂|ZdQJtArd`f~nXvZp˂ےbHA|drtbdQZf`vXfH~pZHAbXQr˂|ZdQJtArdfpvHXv`Zp˂HAXQJ`AJtbvpf`vXnے`JXQZHAbtlJ|ZdQbfpvf~HXQJ`ےp˂rJltdrtAvpf`vXnnXv`fpvp˂rbHAZtAJlfH~pfHXb`JXXQr˂tArdtlJnXv`pvnbHAZXQJ`ےbdQZ|ltbH~fvpfr˂p`JXQrtArdtlJnXv`pvnbHAZXQJ`ےbdQZ|ltbnvpr˂pZHAbbtJApvn~HfXQJ`ے˂rXQltbdrtAJvpfvXn`JXQrHAbےtlJZdQbtpvn~HfXQJ`ے˂rXQltbdrtAJvpfvXn`JXQHA˂pZ|ZdQtAtlJnXv`HAZp˂`ےbZ|dtbdQf`vpfH~˂pZHAJXQrd|ZlJtArv`fvnXHAZp˂`ےbZ|dtbdQf`vpfH~˂pZHAJXQrdQbtlJtArvnXv`pvrXQJ`tAJl|drnvpf`vXے`JpZHAbbtl|ZdQHfpv`f~rXQJ`Zp˂tAJl|drnvpf`vXے`JpZHAbbtl|ZdQnXv`f~HrXQJ`ےJldQZ|H~fvpfr˂pے`JXQtArdtlJnXv`fpvbHAZXQJ`ےbdQZ|JltH~fvpff~HnXv`XQJ`ےp˂rtbdQZf`vXnvpQr˂ppZHAb|ZdQbfpvf~HrXQJ`p˂rJltdrtAnvp`vXnے`JXQZHAbbtl|ZdQbfpvf~HrXQJ`p˂rJltdrtAnvp`vXnZHAbے`JXQrd|Xv`fpvnHAZpJ`ےdQZ|ltbHf`vpfH˂pZ`JXQrtAd|lJtAXv`fpvnHAZpJ`ےdQZ|ltbHf`vpfHbے`HAbrd|tArdtf~fvrXQJHAZp˂rtAJlZ|dXnvf`vbے`˂pZHAdQbtd|Z~Hfpv`frXQJHAZp˂rtAJlZ|dXnvf`vbے`˂pZHAlJtArd|Zv`pvnrXQbHAtbdQZtAJlfH~nvpXQr˂ے`JJtArdbtlnXvHfpvےbHArXQJ`tbdQZtAJlfH~nvpXQr˂ے`JJtArdbtlf~HfpvےbHAtbQZddrtAJ`vXnH~fZHAbr˂p|ZdQbtArdf~HnXv`p˂rbHAZdrtAbdQZ|`vXnH~ffpvf~HbHAZXQJ`ے|dtnvpfH~ZHAbJAdtlJnXv`fpvےHAZXQJ`ےbdQZ|JltfHfvpfr˂pے`JXQJtAdtlJnXv`fpvےHAZXQJ`ےbdQZ|Jlt`vXnvpfے`JXQr˂pZdQbt琕~HfXv`f˂rXQbHAZpdrtAJdQZ|vXn~f`HAbے˂pZZdQbtrd|~HfXv`f˂rXQbHAZpdrtAJdQZ|vXn~f`JXQr˂pZHAZdQbtlJfnXv`ےbrXQJtbdQrtAJlpfH~XnvJXQrbے`lJtArdQbtvnX~Hfp`ےbrXQJtbdQrtAJlpfH~XnvJXQrbے`d|ldQbt璀nXvJ`AZZp˂|drtbdQZf`vXfH~pZHAbXQr˂|ZdQJtArd`f~nXvZp˂ےbHA|drtbdQZf`vXfH~pZHAbXQr˂|ZdQJtArdfpvnXv`Zp˂rtAJlltbvpf`vXnے`JXQZHAbtlJ|ZdQbfpvf~HXQJ`ےp˂rJltdrtAvpf`vXnnXv`fpvp˂rbHAZbdQZ|fH~f`vXے`JX|ZdQbtArdf~HnXv`p˂rbHAZdrtAbdQZ|`vXnH~fZHAbr˂p|ZdQbtArdf~HnXv`p˂rbHAZdrtAbdQZ|vpfH~fr˂p`JXQrlJtApvn~HfJ`ے˂rXQltbdrtAJvpfHvXn`JXQrHAbےlJtAZdQbtpvn~HfJ`ے˂rXQltbdrtAJvpfHvXn˂pZHAbے`lJtApvn`f~HAZp˂`ےbZ|dtbdQf`vpfH~˂pZHAJXQrd|ZlJtArv`fvnXHAZp˂`ےbZ|dtbdQf`vpfH~˂pZHAJXQrJtArdlJtAdQ`f~p˂rrXQJ`tAJl|drnvpf`vXے`JpZHAbbtl|ZdQHfpv`f~rXQJ`Zp˂tAJl|drnvpf`vXے`JpZHAbbtl|ZdQnXHff~HrXQHAZtbddQZ|H~fvpfr˂pے`JXQtArdtlJnXv`fpvbHAZXQJ`ےbdQZ|JltH~fvpff~HnXv`XQJ`ےp˂rdrtAf`vXnvpQr˂ptlJ|ZdQbfpvf~HXQJ`ےp˂rJltdrtAvpf`vXnے`JXQZHAbtlJ|ZdQbfpvf~HXQJ`ےp˂rJltdrtAH~f`vXn`JXQrbtlrd|Xv`fpvnbHAZpJ`ےdQZ|ltb~f`vpfH˂pZ`JXQrrd|lJtAXv`fpvnbHAZpJ`ےdQZ|ltb~f`vpfHbے`JXQrrd|vf~HHfpvrXQJHAZp˂rtAJlZ|dXnvf`vbے`˂pZHAdQbtd|Z~Hfpv`frXQJHAZp˂rtAJlZ|dXnvf`vbے`˂pZHA|ZdQbtlHfpvXQJ`ےbAZp˂tbdQZtAJlfH~nvpXQr˂ے`JJtArdbtlnXvHfpvےbHArXQJ`tbdQZtAJlfH~nvpXQr˂ے`JJtArdbtlpvnfp`fp˂rQZ|ddrtAJ`vXnH~fZHAbr˂p|ZdQbtArdf~HnXv`p˂rbHAZdrtAbdQZ|`vXnH~ffpvf~HbHAZXQJ`ےJltH~ffH~ZHAbtArdtlJnXv`fpvbHAZXQJ`ےbdQZ|JltH~fvpfr˂pے`JXQtArdtlJnXv`fpvbHAZXQJ`ےbdQZ|Jlt`pfHvpf˂pZJA|ZZdQbt琕~HfXv`f˂rXQbHAZpdrtAJdQZ|vXn~f`HAbے˂pZZdQbtrd|~HfXv`f˂rXQbHAZpdrtAJdQZ|vXn~f`JXQr˂pZHAZdQbtfpvnXv`ےbrXQJtbdQrtAJlpfH~XnvJXQrbے`lJtArdQbtvnX~Hfp`ےbrXQJtbdQrtAJlpfH~XnvJXQrbے`btlJtArdnXvbHAZrXQJ|drtbdQZf`vXfH~pZHAbXQr˂|ZdQJtArd`f~nXvZp˂ےbHA|drtbdQZf`vXfH~pZHAbXQr˂|ZdQJtArdXv`f~HfXQJ`ےrtAJlbdQZ|vpf`vXnے`JXQZHAbtlJ|ZdQbfpvf~HXQJ`ےp˂rJltdrtAvpf`vXnnXv`fpvp˂rJltbdQZ|`vXnvpfJXQr|ZdQbtArdf~HnXv`p˂rbHAZdrtAbdQZ|`vXnH~fZHAbr˂p|ZdQbtArdf~HnXv`p˂rbHAZdrtAbdQZ|~f`HXnHAbےdQbt璒lJArpvn~HfJ`ے˂rXQltbdrtAJvpfHvXn`JXQrHAbےlJtAZdQbtpvn~HfJ`ے˂rXQltbdrtAJvpfHvXnے`Jbے`d|ZnXv``f~HAZp˂`ےbZ|dtbdQf`vpfH~˂pZHAJXQrd|ZlJtArv`fvnXHAZp˂`ےbZ|dtbdQf`vpfH~˂pZHAJXQrJtArd|ZdQ`fprQJ``ےbtAJl|drnvpf`vXے`JpZHAbbtl|ZdQHfpv`f~rXQJ`Zp˂tAJl|drnvpf`vXے`JpZHAbbtl|ZdQ~HfpvnbHAZtbddrtH~fvpfr˂pے`JXQtArdtlJnXv`fpvbHAZXQJ`ےbdQZ|JltH~fvpff~HnXv`XQJ`ےdrtAJdrtAvpfے`JXQ˂pZHAtlJ|ZdQbfpvf~HXQJ`ےp˂rJltdrtAvpf`vXnے`JXQZHAbtlJ|ZdQbfpvf~HXQJ`ےp˂rJltdrtAvXnvpfH`JXQrlJtAr|ZdQbXv`fpvnbHAZpJ`ےdQZ|ltb~f`vpfH˂pZ`JXQrrd|lJtAXv`fpvnbHAZpJ`ےdQZ|ltb~f`vpfHXQr˂pZHAbdQbt璍f~HHfvnXrXQJHAZp˂rtAJlZ|dXnvf`vbے`˂pZHAdQbtd|Z~Hfpv`frXQJHAZp˂rtAJlZ|dXnvf`vbے`˂pZHA|ZdQbtlnXv`ےbHHAZp˂tbdQZtAJlfH~nvpXQr˂ے`JJtArdbtlnXvHfpvےbHArXQJ`tbdQZtAJlfH~nvpXQr˂ے`JJtArdbtlpvnXv`pp˂rQZrtAAJlt`vXnH~fZHAbr˂p|ZdQbtArdf~HnXv`p˂rbHAZdrtAbdQZ|`vXnH~ffpvp˂rbHAZltbdQZ|H~frZHAbے`tArdtlJnXv`fpvbHAZXQJ`ےbdQZ|JltH~fvpfr˂pے`JXQtArdtlJnXv`fpvbHAZXQJ`ےbdQZ|JltvpfH~f`˂pZd|ZQtlJ~HfXv`f˂rXQbHAZpdrtAJdQZ|vXn~f`HAbے˂pZZdQbtrd|~HfXv`f˂rXQbHAZpdrtAJdQZ|vXn~f`pZHAbے`JlJtArfpvv`f`ےbrXQJtbdQrtAJlpfH~XnvJXQrbے`lJtArdQbtvnX~Hfp`ےbrXQJtbdQrtAJlpfH~XnvJXQrbے`tArdJtArdf~HAZp˂rXQJ|drtbdQZf`vXfH~pZHAbXQr˂|ZdQJtArd`f~nXvZp˂ےbHA|drtbdQZf`vXfH~pZHAbXQr˂|ZdQJtArdXv`pvnrXQJ`pJltbdQZ|vpf`vXnے`JXQZHAbtlJ|ZdQbfpvf~HXQJ`ےp˂rJltdrtAvpf`vXnnXv`XQJ`ےp˂rdQZ|drtAJ`vXnbے`JXQr|ZdQbtArdf~HnXv`p˂rbHAZdrtAbdQZ|`vXnH~fZHAbr˂p|ZdQbtArdf~HnXv`p˂rbHAZdrtAbdQZ|~f`vXnHAXQrblJttArdpvn~HfJ`ے˂rXQltbdrtAJvpfHvXn`JXQrHAbےlJtAZdQbtpvn~HfJ`ے˂rXQltbdrtAJvpfHvXnے`JXQr˂d|ZnXvf~HfpHAZp˂`ےbZ|dtbdQf`vpfH~˂pZHAJXQrd|ZlJtArv`fvnXHAZp˂`ےbZ|dtbdQf`vpfH~˂pZHAJXQr|ZdQbtlJfpvrXQJ``ےbAtAJl|drnvpf`vXے`JpZHAbbtl|ZdQHfpv`f~rXQJ`Zp˂tAJl|drnvpf`vXے`JpZHAbbtl|ZdQvnXXQJ`p˂rXQbdQZ|drtH~fvpfr˂pے`JXQtArdtlJnXv`fpvbHAZXQJ`ےbdQZ|JltH~fvpfH~fZHAbr˂p|ZdQbtArdf~HnXv`bHAZp˂rXQdtbdQnvpfHH~f`JXQrHAbےlJtAZdQbtpvn~HfJ`ے˂rXQltbdrtAJvpfHvXnJXQr˂p`ZQXb㉀ەvˍpf`vXndrQt`vXnے`JXQZHAbtlJ|ZdQbfpvf~H˂bJ`ےZ|d~f``vXn˂pZ`JXQrrd|lJtAXv`fpvnbHAZpJ`ےdQZ|ltb~f`vpfH˂p`JQXb㉀ۑpJAHrH~ㅐfەvˍpfJltvpfr˂pے`JXQtArdtlJnXv`fpvHAZp˂bHAXQJrtAJlvXnvpfHAbے˂pZZdQbtrd|~HfXv`f˂rXQbHAZpdrtAJdQZ|vXn~f`XQr˂pJAHr󙐂ˁ`Z`vXnH~ㅐfbAdZ|H~fZHAbr˂p|ZdQbtArdf~HnXv`rXQJ`ےJltbdQvpfHH~fvX`JXQrHAbےlJtAZdQbtpvn~HfJ`ے˂rXQltbdrtAJvpfHvXnpZHAbˁ`pQXb㉀ەvˍpf`vXndrQt`vXnے`JXQZHAbtlJ|ZdQbfpvf~H`ےbtdrZ|d~f`nvp˂pZ`JXQrrd|lJtAXv`fpvnbHAZpJ`ےdQZ|ltb~f`vpfHے`JJAHr󙐑pJAHQXH~ㅐfەvˍp|Jltvpfr˂pے`JXQtArdtlJnXv`fpvHAZp˂tAJlrtAdQZvXnvfH~HAbے˂pZZdQbtrd|~HfXv`f˂rXQbHAZpdrtAJdQZ|vXn~f`XQr˂ˁ`ZQXb㉀ۑp`vXndrQtbAdZ|H~fZHAbr˂p|ZdQbtArdf~HnXv`rXQHAtbdQZ|drfH~f`vX`JXQrHAbےlJtAZdQbtpvn~HfJ`ے˂rXQltbdrtAJvpfHvXnpZHAXQb㉀ۑpJAHr󙐕vˍpfJltdrQt`vXnے`JXQZHAbtlJ|ZdQbfpvf~HZp˂|drtAJlf`vXnvp˂pZ`JXQrrd|lJtAXv`fpvnbHAZpJ`ےdQZ|ltb~f`vpfHr˂pJAHr󙐂ˁ`ZQXH~ㅐfbAdZ|Jltvpfr˂pے`JXQtArdtlJnXv`fpvrXQJ`tAJltbdQZnvpfH~HAbے˂pZZdQbtrd|~HfXv`f˂rXQbHAZpdrtAJdQZ|vXn~f`ZHAbˁ`ZQXb㉀ۑp`vXndrQtbAdZ|H~fZHAbr˂p|ZdQbtArdf~HnXv`ےbHAtbdQtA|drfH~fvn`JXQrHAے`lJtAZdQbtpvnHfpJ`ے˂rXQltbdtAJlvpfHvXnے`JXQAHr󙐂JAHfەvˍpfJltdrQt`vXnے`JXQZHAےtlJ|ZdQbfpvfHfZp˂JlttAJl|f`vXvpfے˂pZJXQrbrd|lJfXv`fvnrbHAZpJ`ےJdQZ|tbn~f`vpfZr˂p`ZQXb`vXnH~ㅐfbAdZ|Jltvpfr˂p`JXQrtArdtlJnXv`pvnrXQJ`bdQZ|drtAnvf`JXQrHAbےtlJZdQbtpvn~HfXQJ`ے˂rXQltbdrtAJvpfvXnHAbےZHAbۑpJvˍpf`vXndrQtbAdZ|ے`JXQZHAbbtl|ZdQbfpvf~HrXQJ`p˂rdrtAJlt~f`˂pZ`JXQrtAd|lJtAXv`fpvnHAZpJ`ےdQZ|ltbHf`vpfH`JXQr˂pZAHr󙐂˕H~ㅐfەvˍpfJltdrQtr˂pے`JXQJtAdtlJnXv`fpvp˂rXQJ`ےJltbdQZ|vXnHAbے˂pZZdQbtrd|~HfXv`f˂rXQbHAZpdrtAJdQZ|vXn~f`˂pZHAbے`ZQXb`vXnH~ㅐfbAdZ|JltZHAbr˂p|ZdQbtArdf~HnXv`XQJ`ےbHAZbdQZ|ltbvpfH`JXQrHAbےlJtAZdQbtpvn~HfJ`ے˂rXQltbdrtAJvpfHvXnHAbے`JXQrˁ`vˍpf`vXndrQtbAdZ|ے`JXQZHAbtlJ|ZdQbfpvf~HbHAZp˂rltbnvp~f`˂pZ`JXQrrd|lJtAXv`fpvnbHAZpJ`ےdQZ|ltb~f`vpfH`JXQr˂pZZQXb㉀H~ㅐfەvˍpfJltdrQtr˂pے`JXQtArdtlJnXv`fpvp`ےXQJ`ےdQZ|ff`vvXnHAbے˂pZZdQbtrd|~HfXv`f˂rXQbHAZpdrtAJdQZ|vXn~f`ے`HAbےۑpJAH`vXnH~ㅐfbAdZ|JltZHAbr˂p|ZdQbtArdf~HnXv`bHAZprXQdrtAJXnvvpf~f`JXQrHAbےlJtAZdQbtpvn~HfJ`ے˂rXQltbdrtAJvpfHvXnJXQr`pZHAr󙐂ˁ`vˍpf`vXndrQtbAdZ|ے`JXQZHAbtlJ|ZdQbfpvf~H˂rXQJ`ےltbpfH~`vXn˂pZ`JXQrrd|lJtAXv`fpvnbHAZpJ`ےdQZ|ltb~f`vpfH˂pZHAbے`ZQXb㉀H~ㅐfەvˍpfJltdrQtr˂pے`JXQtArdtlJnXv`fpvJ`ےbHAZpdQZ|f`vvpfHAbے˂pZZdQbtrd|~HfXv`f˂rXQbHAZpdrtAJdQZ|vXn~f`bے`JXQrۑp`Z`vXnH~ㅐfbAdZ|Jlt \ No newline at end of file diff --git a/vendor/endroid/qr-code/assets/data/qrv36_2.dat b/vendor/endroid/qr-code/assets/data/qrv36_2.dat deleted file mode 100755 index 0687c2b63..000000000 --- a/vendor/endroid/qr-code/assets/data/qrv36_2.dat +++ /dev/null @@ -1,321 +0,0 @@ -~}~}~}~}zyzyzyzyvuvuvuvutstststspopopopo~}~}~}~}zyzyzyzyvuvuvuvutstststspopopopo~}}}}}}~zyzyzyzyvuvuvuvutstststspopopopolklklklk}~}~}~}~zyzyzyzyvuvuvuvutstststspopopopolklklklk}~}~}~}~zyzyzyzyvuvuvuvutstststspopopopolklklklk}~}~}~}~zyzyzyzyvuvuvuvutstststspopopopolklklklk}~}~}~}~zyzyzyzyvuvuvuvutstststspopopopolklklklk}~}~}~}~zyzyzyzyvuvuvuvutstststspopopopolklklklk}}}}}}~}zyzyzyzyvuvuvuvutstststspopopopolklklklk~}~}~}|{zyzyzyzyvuvuvuvutstststspopopopolklklklk|{|{|{|{zyzyzyzyvuvuvuvutstststspopopopolklklklk|{|{|{|{zyzyzyzyvuvuvuvutststsrqpopopopolklklklk|{|{|{|{zyzyzyzyvuvuvuvurqrqrqrqpopopopolklklklk|{|{|{|{zyzyzyzyvuvuvuvurqrqrqrqpopopopolklklklk|{|{|{|{zyzyzyzyvuvuvuvurqrqrqrqpopopopolklklklk|{|{|{|{zyzyzyzyvuvuvuvurqrqrqrqpopopopolklklklk|{|{|{|{zyzyzyzyvuvuvuvurqrqrqrqpopopopolklklklk|{|{|{|{zyzyzyzyvuvuvuvurqrqrqrqpopopopolklklklk|{|{|{|{zyzyzyzyvuvuvuvurqrqrqrqpopopopolklklklk|{|{|{|{zyzyzyzyvuvuvuvurqrqrqrqpopopopolklklklk|{|{|{|{zyzyzyzyvuvuvuvurqrqrqrqpopopopolklklklk|{|{|{|{zyzyzyzyvuvuvuvurqrqrqrqpopopopolklklklk|{|{|{|{zyzyzyzyvuvuvuvurqrqrqrqpopopopolklklklk|{|{|{|{zyzyzyxwvuvuvuvurqrqrqrqpopopopolklklklk|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqpopopopolklklklk|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqpopoponmlklklklk|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqnmnmnmnmlklklklk|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqnmnmnmnmlklklklk|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqnmnmnmnmlklklklk|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqnmnmnmnmlklklklk|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqnmnmnmnmlklklklk|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqnmnmnmnmlklklklk|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqnmnmnmnmlklklklk|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqnmnmnmnmlklklklk|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqnmnmnmnmlklklklk|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqnmnmnmnmlklklklk|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqnmnmnmnmlklklklk|{|{|{|{xwxwxwxwvuvuvutsrqrqrqrqnmnmnmnmlklklklk|{|{|{|{xwxwxwxwtstststsrqrqrqrqnmnmnmnmlklklklk|{|{|{|{xwxwxwxwtstststsrqrqrqrqnmnmnmnmlklklklk~}~}~}~}|{|{|{|{xwxwxwxwtstststsrqrqrqrqnmnmnmnmlklklklk}}}}~}~}|{|{|{|{xwxwxwxwtstststsrqrqrqrqnmnmnmnmlklklkji~}~}~}~}|{|{|{|{xwxwxwxwtstststsrqrqrqrqnmnmnmnmjijijiji~}~}~}~}|{|{|{|{xwxwxwxwtstststsrqrqrqrqnmnmnmnmjijijiji~}~}~}}}|{|{|{|{xwxwxwxwtstststsrqrqrqrqnmnmnmnmjijijiji}}}~}~}~|{|{|{|{xwxwxwxwtstststsrqrqrqrqnmnmnmnmjijijiji}~}~}~}~|{|{|{|{xwxwxwxwtstststsrqrqrqrqnmnmnmnmjijijiji}~}~}~}~|{|{|{|{xwxwxwxwtstststsrqrqrqrqnmnmnmnmjijijiji}~}~}~}~|{|{|{|{xwxwxwxwtstststsrqrqrqrqnmnmnmnmjijijiji}~}~}~}~|{|{|{zyxwxwxwxwtstststsrqrqrqrqnmnmnmnmjijijiji}~}~}}}}zyzyzyzyxwxwxwxwtstststsrqrqrqrqnmnmnmnmjijijiji}}~}~}~}zyzyzyzyxwxwxwxwtstststsrqrqrqponmnmnmnmjijijiji~}~}~}~}zyzyzyzyxwxwxwxwtstststspopopoponmnmnmnmjijijiji~}~}~}~}zyzyzyzyxwxwxwxwtstststspopopoponmnmnmnmjijijiji~}~}~}~}zyzyzyzyxwxwxwxwtstststspopopoponmnmnmnmjijijiji~}~}~}~}zyzyzyzyxwxwxwxwtstststspopopoponmnmnmnmjijijiji~}~}}}}}zyzyzyzyxwxwxwxwtstststspopopoponmnmnmnmjijijiji}~}~}~}~zyzyzyzyxwxwxwxwtstststspopopoponmnmnmnmjijijiji}~}~}~}~zyzyzyzyxwxwxwxwtstststspopopoponmnmnmnmjijijiji}~}~}~}~zyzyzyzyxwxwxwxwtstststspopopoponmnmnmnmjijijiji}~}~}~}~zyzyzyzyxwxwxwxwtstststspopopoponmnmnmnmjijijiji}~}~}~}~zyzyzyzyxwxwxwxwtstststspopopoponmnmnmnmjijijiji}~}}}}}}zyzyzyzyxwxwxwxwtstststspopopoponmnmnmnmjijijiji~}~}~}~}zyzyzyzyxwxwxwvutstststspopopoponmnmnmnmjijijiji~}~}~}~}zyzyzyzyvuvuvuvutstststspopopoponmnmnmnmjijijiji~}~}~}~}zyzyzyzyvuvuvuvutstststspopopoponmnmnmlkjijijijijijijijifefefefebabababa^]^]^]^]\[\[\[\[XWXWXWXWTSTSTSTSRQRQRQRQNMNMNMNMIIIIIJIJFEFEFEFEDCDCDCDC@?@?@?@?<;<;<;<;:9:9:9:96565656521212121.-.-.-.-,+,+,+,+('('('('$#$#$#$#"!"!"!"! - - - - jijijijifefefefebabababa^]^]^]^]\[\[\[\[XWXWXWXWTSTSTSTSRQRQRQRQNMNMNMNMIJIJIJIJFEFEFEFEDCDCDCDC@?@?@?@?<;<;<;<;:9:9:9:96565656521212121.-.-.-.-,+,+,+,+('('('('$#$#$#$#"!"!"!"! - - - - jijijijifefefefebabababa^]^]^]^]\[\[\[\[XWXWXWXWTSTSTSTSRQRQRQRQNMNMNMNMIJIJIJIJFEFEFEFEDCDCDCDC@?@?@?@?<;<;<;<;:9:9:9:96565656521212121.-.-.-.-,+,+,+,+('('('('$#$#$#$#"!"!"!"! - - - jijijijifefefefebabababa^]^]^]^]\[\[\[\[XWXWXWXWTSTSTSTSRQRQRQRQNMNMNMNMIJIJIJIJFEFEFEFEDCDCDCDC@?@?@?@?<;<;<;<;:9:9:9:96565656521212121.-.-.-.-,+,+,+,+('('('('$#$#$#$#"!"!"!"! jijijijifefefefebabababa^]^]^]^]\[\[\[\[XWXWXWXWTSTSTSTSRQRQRQRQNMNMNMNMIJIJIJIJFEFEFEFEDCDCDCDC@?@?@?@?<;<;<;<;:9:9:9:96565656521212121.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"! jijijijifefefefebabababa^]^]^]^]\[\[\[\[XWXWXWXWTSTSTSTSRQRQRQRQNMNMNMNMIJIJIJIIFEFEFEFEDCDCDCDC@?@?@?@?<;<;<;<;:9:9:9:96565656521212121.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"! jijijijifefefefebabababa^]^]^]^]\[\[\[\[XWXWXWXWTSTSTSTSRQRQRQRQNMNMNMNMIIIIJIJIFEFEFEFEDCDCDCDC@?@?@?@?<;<;<;<;:9:9:9:96565656521212121.-.-.-.-*)*)*)*)('('('('$#$#$#$#     jijijijifefefefebabababa^]^]^]^]\[\[\[\[XWXWXWXWTSTSTSTSRQRQRQRQNMNMNMNMJIJIJIJIFEFEFEFEDCBABABA@?@?@?@?<;<;<;<;:9:9:9:96565656521212121.-.-.-.-*)*)*)*)('('('('$#$#$#$#     jijijijifefefefebabababa^]^]^]^]\[\[\[\[XWXWXWXWTSTSTSTSRQRQRQRQNMNMNMNMJIJIJIJIFEFEFEFEBABABABA@?@?@?@?<;<;<;<;:9:9:9:96565656521212121.-.-.-.-*)*)*)*)('('('('$#$#$#$#     jijijijifefefefebabababa^]^]^]^]\[\[\[\[XWXWXWXWTSTSTSTSRQRQRQRQNMNMNMNMJIJIJIJIFEFEFEFEBABABABA@?@?@?@?<;<;<;<;:98787876565656521212121.-.-.-.-*)*)*)*)('('('('$#$#$#$#     jijijijifefefefebabababa^]^]^]^]\[\[ZYZYXWXWXWXWTSTSTSTSRQRQRQRQNMNMNMNMJIJIJIJIFEFEFEFEBABABABA@?@?@?@?<;<;<;<;878787876565656521212121.-.-.-.-*)*)*)*)('('('('$#$#$#$#     jijijijifefefefebabababa^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSRQRQRQRQNMNMNMNMJIJIJIIIFEFEFEFEBABABABA@?@?@?@?<;<;<;<;878787876565656521212121.-.-.-.-*)*)*)*)('('('('$#$#$#$#     jijijijifefefedcbabababa^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSRQRQPOPONMNMNMNMIIIJIJIJFEFEFEFEBABABABA@?@?@?@?<;<;<;<;878787876565656521212121.-.-.-.-*)*)*)*)('('('('$#$#$#$#     jijijijidcdcdcccbabababa^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSPOPOPOPONMNMNMNMIJIJIJIJFEFEFEFEBABABABA@?@?@?@?<;<;<;<;878787876565656521212121.-.-.-.-*)*)*)*)('('('('$#$#$#$#     jijijijicccdcdcdbabababa^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSPOPOPOPONMNMNMNMIJIJIJIJFEFEFEFEBABABABA@?@?@?@?<;<;<;<;878787876565656521212121.-.-.-.-*)*)*)*)('('('('$#$#$#$#     jijijihgcdcdcdcdbabababa^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSPOPOPOPONMNMNMNMIJIJIJIJFEFEFEFEBABABABA@?@?@?@?<;<;<;<;878787876565656521212121.-.-.-.-*)*)*)*)('('('('$#$#$#$#        hghghghgcdcdcdcdbabababa^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSPOPOPOPONMNMNMNMIJIJIJIJFEFEFEFEBABABABA@?@?@?@?<;<;<;<;878787876565656521212121.-.-.-.-*)*)*)*)('('('('$#$#$#$#        hghghghgcdcdcdcdbabababa^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSPOPOPOPONMNMNMNMIJIJIIIIFEFEFEFEBABABABA@?@?@?@?<;<;<;<;878787876565656521212121.-.-.-.-*)*)*)*)('('('('$#$#$#$#        hghghghgcdcdcdcdbabababa^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSPOPOPOPOLKLKLKLKIIJIJIJIFEFEFEFEBABABABA@?@?@?@?<;<;<;<;878787876565656521212121.-.-.-.-*)*)*)*)&%&%&%&%$#$#$#$#        hghghghgcdcdccccbabababa^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSPOPOPOPOLKLKLKLKJIHGHGHGFEFEFEFEBABABABA@?@?@?@?<;<;<;<;878787876565656521212121.-.-.-.-*)*)*)*)&%&%&%&%$#$#$#$#        hghghghgccdcdcdcbabababa^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSPOPOPOPOLKLKLKLKHGHGHGHGFEFEFEFEBABABABA@?@?@?@?<;<;<;<;8787878765656565210/0/0/.-.-.-.-*)*)*)*)&%&%&%&%$#$#$#$#        hghghghgdcdcdcdcbabababa^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSPOPOPOPOLKLKLKLKHGHGHGHGFEFEFEFEBABABABA@?>=>=>=<;<;<;<;87878787656565650//////0.-.-.-.-*)*)*)*)&%&%&%&%$#$#$#$#        hghghghgdcdcdcdcbaba`_`_^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSPOPOPOPOLKLKLKLKHGHGHGHGFEFEFEFEBABABABA>=>=>=>=<;<;<;<;8787878765656565/0/0/0/0.-.-.-.-*)*)*)*)&%&%&%&%$#$#$#$#        hghghghgdcdcdcdc`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSPOPOPOPOLKLKLKLKHGHGHGHGFEFEFEFEBABABABA>=>=>=>=<;<;<;<;8787878765434343/0/0/0/0.-.-.-.-*)*)*)*)&%&%&%&%$#$#$#$#        hghghghgdcdcdcdc`_`_`_`_^]^]^]^]ZYZYZYZYXWXWVUVUTSTSTSTSPOPOPOPOLKLKLKLKHGHGHGHGFEFEFEFEBABABABA>=>=>=>=<;<;<;<;8787878743434343/0/0/0/0.-.-.-.-*)*)*)*)&%&%&%&%$#$#$#$#        hghghghgdcdccccc`_`_`_`_^]^]^]^]ZYZYZYZYVUVUVUVUTSTSTSTSPOPOPOPOLKLKLKLKHGHGHGHGFEFEFEFEBABABABA>=>=>=>=<;<;<;<;8787878743434343/0/0/0/0.-.-.-.-*)*)*)*)&%&%&%&%$#$#$#$#        hghghghgcdcdcdcd`_`_`_`_^]^]^]^]ZYZYZYZYVUVUVUVUTSTSTSTSPOPOPOPOLKLKLKLKHGHGHGHGFEFEFEFEBABABABA>=>=>=>=<;<;<;<;8787878743434343/0/0/0/0.-.-.-.-*)*)*)*)&%&%&%&%$#$#$#$#        hghghghgcdcdcdcd`_`_`_`_^]^]^]^]ZYZYZYZYVUVUVUVUTSTSTSTSPOPOPOPOLKLKLKLKHGHGHGHGFEFEFEFEBABABABA>=>=>=>=<;<;<;<;8787878743434343//////0/.-.-.-.-*)*)*)*)&%&%&%&%$#$#$#$#        hghghghgcdcdcdcd`_`_`_`_^]^]^]^]ZYZYZYZYVUVUVUVUTSTSTSTSPOPOPOPOLKLKLKLKHGHGHGHGFEFEFEFEBABABABA>=>=>=>=<;<;<;<;87878787434343430/0/0/0/.-.-.-.-*)*)*)*)&%&%&%&%$#$#$#$#        - hghghghgcdcdcdcd`_`_`_`_^]^]^]^]ZYZYZYZYVUVUVUVUTSTSTSTSPOPOPOPOLKLKLKLKHGHGHGHGFEFEFEFEBABABABA>=>=>=>=<;<;<;<;87878787434343430/0/0/0/.-.-.-.-*)*)*)*)&%&%&%&%$#$#$#$#        - - - - hghghghgcdcdcdcd`_`_`_`_^]^]^]^]ZYZYZYZYVUVUVUVUTSTSTSTSPOPOPOPOLKLKLKLKHGHGHGHGFEFEFEFEBABABABA>=>=>=>=<;<;<;<;87878787434343430/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#        - - - - hghghghgcdcccccc`_`_`_`_^]^]^]^]ZYZYZYZYVUVUVUVUTSTSTSTSPOPOPOPOLKLKLKLKHGHGHGHGFEFEFEFEBABABABA>=>=>=>=<;<;<;<;87878787434343430/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#        - - - - hghghghgdcdcdcdc`_`_`_`_^]^]^]^]ZYZYZYZYVUVUVUVUTSTSTSTSPOPOPOPOLKLKLKLKHGHGHGHGFEFEFEFEBABABABA>=>=>=>=<;<;<;<;87878787434343430/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%"!"!"!"!        - - - - hghghghgdcdcdcdc`_`_`_`_^]^]^]^]ZYZYZYZYVUVUVUVUTSTSTSTSPOPOPOPOLKLKLKLKHGHGHGHGFEDCDCDCBABABABA>=>=>=>=<;<;<;<;8787878743434343/////0/0,+,+,+,+*)*)*)*)&%&%&%&%"!"!"!"!        - - - - hghghghgdcdcdcdc`_`_`_`_^]^]^]^]ZYZYZYZYVUVUVUVUTSTSTSTSPOPOPOPOLKLKLKLKHGHGHGHGDCDCDCDCBABABABA>=>=>=>=<;<;<;<;8787878743434343/0/0/0/0,+,+,+,+*)*)*)*)&%&%&%&%"!"!"!"!        - - - - hghghghgdcdcdcdc`_`_`_`_^]^]^]^]ZYZYZYZYVUVUVUVUTSTSTSTSPOPOPOPOLKLKLKLKHGHGHGHGDCDCDCDCBABABABA>=>=>=>=<;:9:9:98787878743434343/0/0/0/0,+,+,+,+*)*)*)*)&%&%&%&%"!"!"!"!        - - - - hghghghgdcdcdcdc`_`_`_`_^]^]\[\[ZYZYZYZYVUVUVUVUTSTSTSTSPOPOPOPOLKLKLKLKHGHGHGHGDCDCDCDCBABABABA>=>=>=>=:9:9:9:98787878743434343/0/0/0/0,+,+,+,+*)*)*)*)&%&%&%&%"!"!"!"!        - - - - hghghghgdccccccd`_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTSPOPOPOPOLKLKLKLKHGHGHGHGDCDCDCDCBABABABA>=>=>=>=:9:9:9:98787878743434343/0/0/0/0,+,+,+,+*)*)*)*)&%&%&%&%"!"!"!"!        - - - - hghghghgcdcdcdcd`_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVUTSTSRQRQPOPOPOPOLKLKLKLKHGHGHGHGDCDCDCDCBABABABA>=>=>=>=:9:9:9:98787878743434343/0/0/0//,+,+,+,+*)*)*)*)&%&%&%&%"!"!"!"!        - - - - hghghghgcdcdcdcd`_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVURQRQRQRQPOPOPOPOLKLKLKLKHGHGHGHGDCDCDCDCBABABABA>=>=>=>=:9:9:9:98787878743434343////0/0/,+,+,+,+*)*)*)*)&%&%&%&%"!"!"!"!        - - - - hghghghgcdcdcdcd`_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVURQRQRQRQPOPOPOPOLKLKLKLKHGHGHGHGDCDCDCDCBABABABA>=>=>=>=:9:9:9:987878787434343430/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%"!"!"!"!        - - - - hghghghgcdcdcdcd`_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVURQRQRQRQPOPOPOPOLKLKLKLKHGHGHGHGDCDCDCDCBABABABA>=>=>=>=:9:9:9:987878787434343430/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%"!"!"!"!        - - - - hghghghgcdcdcdcd`_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVURQRQRQRQPOPOPOPOLKLKLKLKHGHGHGHGDCDCDCDCBABABABA>=>=>=>=:9:9:9:987878787434343430/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%"!"!"!"!        - - - - hghghghgccccccdc`_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVURQRQRQRQPOPOPOPOLKLKLKLKHGHGHGHGDCDCDCDCBABABABA>=>=>=>=:9:9:9:987878787434343430/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%"!"!"!"!        - - - - hghghghgdcdcdcdc`_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVURQRQRQRQPOPOPOPOLKLKLKLKHGHGHGHGDCDCDCDCBABABABA>=>=>=>=:9:9:9:987878787434343430/0/0///,+,+,+,+('('('('&%&%&%&%"!"!"!"!        - - - - hghghghgdcdcdcdc`_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVURQRQRQRQPOPOPOPOLKLKLKLKHGHGHGHGDCDCDCDCBABABABA>=>=>=>=:9:9:9:98787878743434343///0/0/0,+,+,+,+('('('('&%&%&%&%"!"!"!"!        - - - - hghghghgdcdcdcdc`_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVURQRQRQRQPOPOPOPOLKLKLKLKHGHGHGHGDCDCDCDCBABABABA>=>=>=>=:9:9:9:98787878743434343/0/0/0/0,+,+,+,+('('('('&%&%&%&%"!"!"!"!    - - - - hgfefefeccccdcdc`_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVURQRQRQRQPOPOPOPOLKLKLKLKHGHGHGHGDCDCDCDCBA@?@?@?>=>=>=>=:9:9:9:98787878743434343/0/0/0/0,+,+,+,+('('('('&%&%&%&%"!"!"!"!    - - - - fefefefedcdcbaba`_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVURQRQRQRQPOPOPOPOLKLKLKLKHGHGHGHGDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:98787878743434343/0/0/0/0,+,+,+,+('('('('&%&%&%&%"!"!"!"!    - - - - fefefefebabababa`_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVURQRQRQRQPOPOPOPOLKLKJIJIHGHGHGHGDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:98765656543434343/0/0/0/0,+,+,+,+('('('('&%&%&%&%"!"!"!"!    - - - - fefefefebabababa`_`_`_`_\[\[\[\[ZYZYXWXWVUVUVUVURQRQRQRQPOPOPOPOJIJIIIIIHGHGHGHGDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:96565656543434343/0/0////,+,+,+,+('('('('&%&%&%&%"!"!"!"!    - - - - fefefefebabababa`_`_`_`_\[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQPOPOPOPOJIJIJIJIHGHGHGHGDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:96565656543434343//0/0/0/,+,+,+,+('('('('&%&%&%&%"!"!"!"!    - - - - fefefefebabababa`_`_`_`_\[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQPOPONMNMJIJIJIJIHGHGHGHGDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:965656565434343430/0/0/0/,+,+,+,+('('('('&%&%&%&%"!"!"!"!    - - - - fefefefebabababa`_`_`_`_\[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:965656565434343430/0/0/0/,+,+,+,+('('('('&%&%&%&%"!"!"!"!    - - - - fefefefebabababa`_`_`_`_\[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQNMNMNMNMJIIIIIIJHGHGHGHGDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:965656565434343210/0/////,+,+,+,+('('('('&%&%&%&%"!"!"!"!   - - - - fefefefebabababa`_`_`_`_\[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQNMNMNMNMIJIJIJIJHGHGHGHGDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:965656565212121210/0/0/0/,+,+,+,+('('('('&%&%&%&%"!"!"!"! - - - - fefefefebabababa`_`_`_`_\[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQNMNMNMNMIJIJIJIJHGHGHGHGDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:96565656521212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"! - - - - fefefefebabababa`_`_`_`_\[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQNMNMNMNMIJIJIJIJHGHGHGHGDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:96565656521212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"! - - - - fefefefebabababa`_`_`_`_\[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQNMNMNMNMIJIJIJIJHGHGHGHGDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:96565656521212121.-.-.-.-,+,+,+,+('('('('$#$#$#$#"!"!"!"! - - - - fefefefebabababa`_`_`_`_\[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQNMNMNMNMIJIJIJIJHGFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:96565656521212121.-.-.-.-,+,+,+,+('('('('$#$#$#$#"!"!"!"! - - - - fefefefebabababa`_`_`_`_\[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQNMNMNMNMIIIIIIJIFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:96565656521212121.-.-.-.-,+,+,+,+('('('('$#$#$#$#"!"!"!"! - - - - fefefefebabababa`_`_`_`_\[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?>=<;<;<;:9:9:9:96565656521212121.-.-.-.-,+,+,+,+('('('('$#$#$#$#"!"!"!"! - - - - fefefefebabababa`_`_^]^]\[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?<;<;<;<;:9:9:9:96565656521212121.-.-.-.-,+,+,+,+('('('('$#$#$#$#"!"!"!"! - - - - fefefefebabababa^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?<;<;<;<;:9:9:9:96565656521212121.-.-.-.-,+,+,+,+('('('('$#$#$#$#"!"!"!"! - - - - fefefefebabababa^]^]^]^]\[\[\[\[XWXWXWXWVUVUTSTSRQRQRQRQNMNMNMNMJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?<;<;<;<;:9:9:9:96565656521212121.-.-.-.-,+,+,+,+('('('('$#$#$#$#"!"!"!"! - - - - fefefefebabababa^]^]^]^]\[\[\[\[XWXWXWXWTSTSTSTSRQRQRQRQNMNMNMNMJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?<;<;<;<;:9:9:9:96565656521212121.-.-.-.-,+,+,+,+('('('('$#$#$#$#"!"!"!"! - - - - yyzz{{||mmnnoopp55667788<<;;::99ttssrrqquuvvwwxxuuvvwwxxBBCCDDEE - - //..--,,ggffeedd}}~~qqrrsstt99::;;<<88776655ppoonnmmyyzz{{||yyzz{{||FFGGHHII++**))((ccbbaa``uuvvwwxx==>>??@@44332211llkkjjii}}}}~JJKKLLMM''&&%%$$__^^]]\\yyzz{{||AABBCCDD - - 00//..--hhggffeeNNOOPPQQ##""!! [[ZZYYXX}}~~EEFFGGHH ,,++**))ddccbbaaRRSSTTUUWWVVUUTTIIJJKKLL((''&&%%``__^^]]VVWWXXYY !!SSRRQQPPMMNNOOPP$$##""!!\\[[ZZYYZZ[[\\]]""##$$%%OONNMMLLQQRRSSTT XXWWVVUU^^__``aa&&''(())KKJJIIHH~~}}UUVVWWXX TTSSRRQQbbccddee**++,,-- GGFFEEDD||{{zzyyYYZZ[[\\!!""##$$PPOONNMMffgghhii..//0011 - - CCBBAA@@xxwwvvuu]]^^__``%%&&''((LLKKJJIIjjkkllmm22334455??>>==<<~~}}||ttssrrqqaabbccdd))**++,, HHGGFFEE~~}}nnooppqq66778899;;::9988{{zzyyxxppoonnmm~}}||eeffgghh--..//00 - - DDCCBBAA||{{zzyyrrssttuu::;;<<==77665544wwvvuuttllkkjjii{{zzyyxxiijjkkll11223344@@??>>==xxwwvvuuvvwwxxyy>>??@@AA 33221100ssrrqqpphhggffeewwvvuuttmmnnoopp55667788<<;;::99ttssrrqq}}zz{{||}}BBCCDDEE - - //..--,,oonnmmllddccbbaassrrqqppqqrrsstt99::;;<<88776655ppoonnmm||{{zzyy~~FFGGHHII++**))((kkjjiihh``__^^]]}}||{{oonnmmlluuvvwwxx==>>??@@44332211llkkjjiixxwwvvuuJJKKLLMM''&&%%$$ggffeedd\\[[ZZYYzzyyxxwwkkjjiihgyyzz{{||AABBCCDD - - 00//..--hhggffeettssrrqqNNOOPPQQ##""!! ccbbaa``XXWWVVUUvvuuttssfedccbba}}~~EEFFGGHH ,,++**))ddccbbaappoonnmm~~}}||RRSSTTUU__^^]]\\TTSSRRQQrrqqppooa``__^^]IIJJKKLL((''&&%%``__^^]]llkkjjii{{zzyyxxVVWWXXYY !![[ZZYYXXPPOONNMMnnmmllkk]\\[[ZZYMMNNOOPP$$##""!!\\[[ZZYYccbbaa``wwvvuuttZZ[[\\]]""##$$%%WWVVUUTTLLKKJJIIjjiiccbbYXXWWVVU~~}}QQRRSSTT XXWWVVUU__^^]]\\ssrrqqpp^^__``aa&&''(())SSRRQQPPHHGGFFEEaa``__^^UTTSSRRQ||{{zzyyUUVVWWXX TTSSRRQQ[[ZZYYXXoonnmmllbbccddee**++,,-- OONNMMLLDDCCBBAA]]\\[[ZZQPPOONMLxxwwvvuuYYZZ[[\\!!""##$$PPOONNMMWWVVUUTTkkjjiihhffgghhii..//0011 - - KKJJIIHH@@??>>==YYXXWWVVKJIIHHGGttssrrqq]]^^__``%%&&''((LLKKJJIISSRRQQPPggffeeddjjkkllmm22334455GGFFEEDD<<;;::99UUTTSSRRFFEEDDCCppoonnmmaabbccdd))**++,, HHGGFFEEOOIIHHGGccbbaa``nnooppqq66778899CCBBAA@@88776655QQPPOOIIBBAA@@??llkkjjiieeffgghh--..//00 - - DDCCBBAAFFEEDDCC__^^]]\\rrssttuu::;;<<==??>>==<<44332211HHGGFFEE>>==<<;;hhggffeeiijjkkll11223344@@??>>==BBAA@@??[[ZZYYXXvvwwxxyy>>??@@AA ;;::998800//..--DDCCBBAA::998877ddccbbaammnnoopp55667788<<;;::99>>==<<;;WWVVUUTTzz{{||}}BBCCDDEE - - 77665544,,++**))@@??>>==66554321``__^^]]qqrrsstt99::;;<<88776655::998877SSRRQQPP~~FFGGHHII33221100((''&&%%<<;;::990//..--,\\[[ZZYYuuvvwwxx==>>??@@443322116655//..OONNMMLLJJKKLLMM//..--,,$$##""!!88776655,++**))(XXWWVVUUyyzz{{||AABBCCDD - - 00//..----,,++**KKJJIIHHNNOOPPQQ++**))(( //..--,,(''&&%%$TTSSRRQQ}}~~EEFFGGHH ,,++**))))((''&&GGFFEEDD~~}}||RRSSTTUU''&&%%$$++**))(($##""!! PPOONNMMIIJJKKLL((''&&%%%%$$##""CCBBAA@@{{zzyyxxVVWWXXYY !!##""!! ''&&%%$$ LLKKJJIIMMNNOOPP$$##""!!!! ??>>==<>==xxwwvvuuYYZZ[[\\!!""##$$ 33221100kkjjiihhffgghhii..//0011 - -  - -<<;;::99ttssrrqq]]^^__``%%&&''(( - - //..--,,ggffeeddjjkkllmm22334455  88776655ppoonnmmaabbccdd))**++,, ++**))((ccbbaa``nnooppqq66778899 - -  - - - -44332211llkkjjiieeffgghh--..//00 - - ''&&%%$$__^^]]\\rrssttuu::;;<<==  - - 00//..--hhggffeeiijjkkll11223344 - -##""!! [[ZZYYXXvvwwxxyy>>??@@AA ,,++**))ddccbbaammnnoopp55667788 WWVVUUTTzz{{||}}BBCCDDEE ((''&&%%``__^^]]qqrrsstt99::;;<<SSRRQQPP~~FFGGHHII !!""##$$$$##""!!\\[[ZZYYuuvvwwxx==>>??@@ - - OONNMMLLJJKKLLMM - - %%&&''(( !!""## XXWWVVUUyyzz{{||AABBCCDD KKJJIIHHNNOOPPQQ))**++,,$$%%&&'' TTSSRRQQ}}~~EEFFGGHH ! GGFFEEDD~~}}||RRSSTTUU--..//00(())**++!!""##$$PPOONNMMIIJJKKLL!""##$$% - - CCBBAA@@{{zzyyxxVVWWXXYY11223344,,--..//%%&&''((LLKKJJIIMMNNOOPP !!%&&''(()??>>==<>??@@==>>??@@11223344@@??>>==xxwwvvuuYYZZ[[\\**++,,--34556677 33221100kkjjiihhffgghhii&&''(())AABBCCDDAABBCCDD55667788<<;;::99ttssrrqq]]^^__``..//55668899::;; - - //..--,,ggffeeddjjkkllmm**++,,--EEFFGGHHEEFFGGHH99::;;<<88776655ppoonnmmaabbccdd778899::<<==>>??++**))((ccbbaa``nnooppqq..//0011IIJJKKLLIIOOPPQQ==>>??@@44332211llkkjjiieeffgghh;;<<==>>@@AABBCC''&&%%$$__^^]]\\rrssttuu22334455MMNNOOPPRRSSTTUUAABBCCDD - - 00//..--hhggffeeiijjkkll??@@AABBDDEEFFGG##""!! [[ZZYYXXvvwwxxyy66778899QQRRSSTTVVWWXXYYEEFFGGHH ,,++**))ddccbbaammnnooppCCDDEEFFHHIIJKLMWWVVUUTTzz{{||}}::;;<<==UUVVWWXXZZ[[\\]]IIJJKKLL((''&&%%``__^^]]qqrrssttGGHHIIOONOOPPQQR !!SSRRQQPP~~>>??@@AAYYZZ[[\\^^__``aaMMNNOOPP$$##""!!\\[[ZZYYuuvvwwxxPPQQRRSSRSSTTUUV""##$$%%OONNMMLLBBCCDDEE]]^^__``bbcciijjQQRRSSTT XXWWVVUUyyzz{{||TTUUVVWWVWWXXYYZ&&''(())KKJJIIHHFFGGHHIIaabbccddkkllmmnnUUVVWWXX TTSSRRQQ}}~~XXYYZZ[[Z[[\\]]^**++,,-- GGFFEEDD~~}}||JJKKLLMMeeffgghhooppqqrrYYZZ[[\\!!""##$$PPOONNMM\\]]^^__^__``aab..//0011 - - CCBBAA@@{{zzyyxxNNOOPPQQiijjkkllssttuuvv]]^^__``%%&&''((LLKKJJII``aabbccbccdefgh22334455??>>==<>==xxwwvvuuqqrrssttqqrrsstt>>??@@AA 33221100kkjjiihh^^__``aabbccddee__``aabbGGHHIIJJ**))((''bbaa``__ooppqqrrEEFFGGHHJKLMNOOPUUTTSSRR||}}~~DDEEFFGG<<==>>??))**++,, HHGGFFEE~~}}QQRRSSTT""##$$%%)**++,,-;;::9988ssrrqqppffgghhiicciijjkkKKLLMMNN&&%%$$##^^]]\\[[ssttuuvvIIOOPPQQPQQRRSST !!""##QQPPOONNHHIIJJKK@@AABBCC--..//00 - - DDCCBBAA||{{zzyyUUVVWWXX&&''(())-..//01277665544oonnmmll~~}}||jjkkllmmllmmnnooOOPPQQRR""!! ZZYYXXWWwwxxyyzzRRSSTTUUTUUVVWWX$$%%&&''MMLLKKJJLLMMNNOODDEEFFGG11223344@@??>>==xxwwvvuuYYZZ[[\\**++,,--34556677 33221100kkjjiihh{{zzyyxxnnooppqqppqqrrssSSTTUUVVVVUUTTSS{{||}}~~VVWWXXYYXYYZZ[[\(())**++IIHHGGFF~~PPQQRRSSHHIIOOPP55667788<<;;::99ttssrrqq]]^^__``..//55668899::;; - - //..--,,ggffeeddwwvvuuttrrssttuuttuuvvwwWWXXYYZZ !!""RRQQPPOOZZ[[\\]]\]]^^__`,,--..// - -EEDDCCBB}}||{{zzTTUUVVWWQQRRSSTT99::;;<<88776655ppoonnmmaabbccdd778899::<<==>>??++**))((ccbbaa``ssrrqqppvvwwxxyyxxyyzz{{[[\\]]^^##$$%%&&NNMMLLKK^^__``aa`aabbccd00112233 AA@@??>>yyxxwwvvXXYYZZ[[UUVVWWXX==>>??@@44332211llkkjjiieeffgghh;;<<==>>@@AABBCC''&&%%$$__^^]]\\oonnmmllzz{{||}}||}}__``aabb''(())**JJIIHHGGbbcciijjefghiijj44556677==<<;;::uuttssrr\\]]^^__YYZZ[[\\AABBCCDD - - 00//..--hhggffeeiijjkkll??@@AABBDDEEFFGG##""!! [[ZZYYXXkkjjiihh~~ccddeeff++,,--.. FFEEDDCC~~}}||{{kkllmmnnkkllmmnn8899::;;99887766qqppoonn``aabbcc]]^^__``EEFFGGHH ,,++**))ddccbbaammnnooppCCDDEEFFHHIIJKLMWWVVUUTTggffeeddgghhiijj//001122 - - BBAA@@??zzyyxxwwooppqqrrooppqqrr<<==>>??55443322mmllkkjjddeeffggaabbcciiIIJJKKLL((''&&%%``__^^]]qqrrssttGGHHIIOONOOPPQQR !!SSRRQQPP}}||{{ccbbaa``kkllmmnn33445566>>==<<;;vvuuttssssttuuvvssttuuvv@@AABBCC - - 1100//..iihhggffhhiijjkkjjkkllmmMMNNOOPP$$##""!!\\[[ZZYYuuvvwwxxPPQQRRSSRSSTTUUV""##$$%%OONNMMLLzzyyxxww__^^]]\\ooppqqrr778899::::998877rrqqppoowwxxyyzzwwxxyyzzDDEEFFGG --,,++**eeddccbbllmmnnoonnooppqqQQRRSSTT XXWWVVUUyyzz{{||TTUUVVWWVWWXXYYZ&&''(())KKJJIIHHvvuuttss[[ZZYYXXssttuuvv;;<<==>>66554433nnmmllkk{{||}}{{||}}~HHIIJJKK))((''&&aa``__^^ppqqrrssrrssttuuUUVVWWXX TTSSRRQQ}}~~XXYYZZ[[Z[[\\]]^**++,,-- GGFFEEDDrrqqppooWWVVUUTTwwxxyyzz??@@AABB - -221100//jjiihhggLLMMNNOO%%$$##""]]\\[[ZZttuuvvwwvvwwxxyyYYZZ[[\\!!""##$$PPOONNMM\\]]^^__^__``aab..//0011 - - CCBBAA@@nnmmllkkSSRRQQPP{{||}}~~CCDDEEFF ..--,,++ffeeddccPPQQRRSS!! YYXXWWVVxxyyzz{{zz{{||}}]]^^__``%%&&''((LLKKJJII``aabbccbccdefgh22334455??>>==<>==xxwwvvuuqqrrssttqqrrsstt>>??@@AA 33221100YYXXWWVVCCBBAA@@SSTTUUVVVVUUTTSS``aabbcc(())**++IIHHGGFF~~mmnnoopp55667788<<;;::99ttssrrqquuvvwwxxuuvvwwxxBBCCDDEE - - //..--,,UUTTSSRR??>>==<>yyxxwwvvuuvvwwxx==>>??@@44332211llkkjjii}}}}~JJKKLLMM''&&%%$$HHGGFFEE77665544~}}||{{__``aabb''(())**JJIIHHGGllmmnnoo44556677==<<;;::uuttssrryyzz{{||AABBCCDD - - 00//..--hhggffeeNNOOPPQQ##""!! DDCCBBAA33221100zzyyxxwwccddeeff++,,--.. FFEEDDCC~~}}||{{ppqqrrss8899::;;99887766qqppoonn}}~~EEFFGGHH ,,++**))ddccbbaaRRSSTTUU@@??>>==//..--,,}}||{{zzvvuuttssgghhiijj//001122 - - BBAA@@??zzyyxxwwttuuvvww<<==>>??55443322mmllkkjjIIJJKKLL((''&&%%``__^^]]VVWWXXYY !!<<;;::99++**))((yyxxwwvvrrqqppookkllmmnn33445566>>==<<;;vvuuttssxxyyzz{{@@AABBCC - - 1100//..iihhggffMMNNOOPP$$##""!!\\[[ZZYYZZ[[\\]]""##$$%%88776655''&&%%$$uuttssrrnnmmllkkooppqqrr778899::::998877rrqqppoo}}||{{||}}~~DDEEFFGG --,,++**eeddccbbQQRRSSTT XXWWVVUU^^__``aa&&''(())//..--,,##""!! qqppoonnjjiihgfessttuuvv;;<<==>>66554433nnmmllkkzzyyxxwwHHIIJJKK))((''&&aa``__^^UUVVWWXX TTSSRRQQbbccddee**++,,-- ++**))((mmllkkjjdccbbaa`wwxxyyzz??@@AABB - -221100//jjiihhggvvuuttssLLMMNNOO%%$$##""]]\\[[ZZYYZZ[[\\!!""##$$PPOONNMMffgghhii..//0011 - - ''&&%%$$iiccbbaa`__^^]]\{{||}}~~CCDDEEFF ..--,,++ffeeddccrrqqppoo~~PPQQRRSS!! YYXXWWVV~}}]]^^__``%%&&''((LLKKJJIIjjkkllmm22334455##""!! ``__^^]]\[[ZZYYXGGHHIIJJ**))((''bbaa``__nnmmllkk}}||{{zzTTUUVVWWUUTTSSRR||{{zzyyaabbccdd))**++,, HHGGFFEE~~}}nnooppqq66778899\\[[ZZYYXWWVVUUTKKLLMMNN&&%%$$##^^]]\\[[jjiiccbbyyxxwwvvXXYYZZ[[ !!""##QQPPOONN}}||xxwwvvuueeffgghh--..//00 - - DDCCBBAA||{{zzyyrrssttuu::;;<<== XXWWVVUUTSSRRQQPOOPPQQRR""!! ZZYYXXWWaa``__^^uuttssrr\\]]^^__$$%%&&''MMLLKKJJ{{zzyyxxttssrrqqiijjkkll11223344@@??>>==xxwwvvuuvvwwxxyy>>??@@AA  - - TTSSRRQQPOONMLKJ~~}}||{{SSTTUUVVVVUUTTSS]]\\[[ZZqqppoonn``aabbcc(())**++IIHHGGFFwwvvuuttppoonnmmmmnnoopp55667788<<;;::99ttssrrqq}}zz{{||}}BBCCDDEE - -  - - PPOOIIHHIIHHGGFFzzyyxxwwWWXXYYZZ !!""RRQQPPOOYYXXWWVVmmllkkjjddeeffgg,,--..// - -EEDDCCBBssrrqqppllkkjjiiqqrrsstt99::;;<<88776655ppoonnmm||{{zzyy~~FFGGHHII - - - -GGFFEEDDEEDDCCBBvvuuttss[[\\]]^^##$$%%&&NNMMLLKKUUTTSSRRiihhggffhhiijjkk00112233 AA@@??>>oonnmmllhgfedccbuuvvwwxx==>>??@@44332211llkkjjiixxwwvvuuJJKKLLMM CCBBAA@@AA@@??>>rrqqppoo__``aabb''(())**JJIIHHGGQQPPOOIIeeddccbbllmmnnoo44556677==<<;;::kkjjiiccbaa``__^yyzz{{||AABBCCDD - - 00//..--hhggffeettssrrqqNNOOPPQQ??>>==<<==<<;;::nnmmllkkccddeeff++,,--.. FFEEDDCCHHGGFFEEaa``__^^ppqqrrss8899::;;99887766bbaa``__^]]\\[[Z}}~~EEFFGGHH ,,++**))ddccbbaappoonnmm~~}}||RRSSTTUU;;::998899887766jjiihhgggghhiijj//001122 - - BBAA@@??DDCCBBAA]]\\[[ZZttuuvvww<<==>>??55443322^^]]\\[[ZYYXXWWVIIJJKKLL((''&&%%``__^^]]llkkjjii{{zzyyxxVVWWXXYY !! !!776655//5543210/ffeeddcckkllmmnn33445566>>==<<;;@@??>>==YYXXWWVVxxyyzz{{@@AABBCC - - 1100//..ZZYYXXWWVUUTTSSRMMNNOOPP$$##""!!\\[[ZZYYccbbaa``wwvvuuttZZ[[\\]]""##$$%% !!""##""##$$%%..--,,++/..--,,+bbaa``__ooppqqrr778899::::998877<<;;::99UUTTSSRR||}}~~DDEEFFGG --,,++**VVUUTTSSRQQPPOON~~}}QQRRSSTT XXWWVVUU__^^]]\\ssrrqqpp^^__``aa&&''(())$$%%&&''&&''(())**))((''+**))(('^^]]\\[[ssttuuvv;;<<==>>6655443388776655QQPPOONNHHIIJJKK))((''&&RRQQPPOOMLKJIIHH||{{zzyyUUVVWWXX TTSSRRQQ[[ZZYYXXoonnmmllbbccddee**++,,--(())**++**++,,--&&%%$$##'&&%%$$#ZZYYXXWWwwxxyyzz??@@AABB - -221100////..--,,MMLLKKJJLLMMNNOO%%$$##""IIHHGGFFGGFFEEDDxxwwvvuuYYZZ[[\\!!""##$$PPOONNMMWWVVUUTTkkjjiihhffgghhii..//0011,,--..//..//0011""!! #""!! VVUUTTSS{{||}}~~CCDDEEFF ..--,,++++**))((IIHHGGFF~~PPQQRRSS!! EEDDCCBBCCBBAA@@ttssrrqq]]^^__``%%&&''((LLKKJJIISSRRQQPPggffeeddjjkkllmm223344555566778822334455RRQQPPOOGGHHIIJJ**))((''''&&%%$$EEDDCCBB}}||{{zzTTUUVVWWAA@@??>>??>>==<>yyxxwwvvXXYYZZ[[ !!""##==<<;;::;;::9988llkkjjiieeffgghh--..//00 - - DDCCBBAAFFEEDDCC__^^]]\\rrssttuu::;;<<====>>??@@::;;<<==JJIIHHGGOOPPQQRR""!! ==<<;;::uuttssrr\\]]^^__$$%%&&''9988776677665543hhggffeeiijjkkll11223344@@??>>==BBAA@@??[[ZZYYXXvvwwxxyy>>??@@AAAABBCCDD>>??@@AA - - FFEEDDCC~~}}||{{SSTTUUVV99887766qqppoonn``aabbcc(())**++55//..--210//..-ddccbbaammnnoopp55667788<<;;::99>>==<<;;WWVVUUTTzz{{||}}BBCCDDEEEEFFGGHHBBCCDDEE  - - BBAA@@??zzyyxxwwWWXXYYZZ !!""55443322mmllkkjjddeeffgg,,--..// - -,,++**))-,,++**)``__^^]]qqrrsstt99::;;<<88776655::998877SSRRQQPP~~FFGGHHIIIIOOPPQQFFGGHHII>>==<<;;vvuuttss[[\\]]^^##$$%%&& 1100//..iihhggffhhiijjkk00112233 ((''&&%%)((''&&%\\[[ZZYYuuvvwwxx==>>??@@443322116655//..OONNMMLLJJKKLLMMRRSSTTUUJJKKLLMM - - ::998877rrqqppoo__``aabb''(())** - - --,,++**eeddccbbllmmnnoo44556677$$##""!!%$$##""!XXWWVVUUyyzz{{||AABBCCDD - - 00//..----,,++**KKJJIIHHNNOOPPQQVVWWXXYYNNOOPPQQ 66554433nnmmllkkccddeeff++,,--.. ))((''&&aa``__^^ppqqrrss8899::;; ! TTSSRRQQ}}~~EEFFGGHH ,,++**))))((''&&GGFFEEDD~~}}||RRSSTTUUZZ[[\\]]RRSSTTUU - -221100//jjiihhgggghhiijj//001122 - - %%$$##""]]\\[[ZZttuuvvww<<==>>??PPOONNMMIIJJKKLL((''&&%%%%$$##""CCBBAA@@{{zzyyxxVVWWXXYY^^__``aaVVWWXXYY ..--,,++ffeeddcckkllmmnn33445566 - - !! YYXXWWVVxxyyzz{{@@AABBCC - - LLKKJJIIMMNNOOPP$$##""!!!! ??>>==<> - -QQPPOONNHHIIJJKK - -  DDCCBBAA||{{zzyyUUVVWWXX 77665544oonnmmllbbccddeeooppqqrrbbccddee%%&&''((""!! ZZYYXXWWwwxxyyzz??@@AABB MMLLKKJJLLMMNNOO - - @@??>>==xxwwvvuuYYZZ[[\\!!""##$$ 33221100kkjjiihhffgghhiissttuuvvffgghhii))**++,,VVUUTTSS{{||}}~~CCDDEEFFIIHHGGFF~~PPQQRRSS <<;;::99ttssrrqq]]^^__``%%&&''(( - - //..--,,ggffeeddjjkkllmmwwxxyyzzjjkkllmm--..//55 !!""RRQQPPOOGGHHIIJJ !!""# - -EEDDCCBB}}||{{zzTTUUVVWW - - 88776655ppoonnmmaabbccdd))**++,, ++**))((ccbbaa``nnooppqq{{||}}nnooppqq66778899##$$%%&&NNMMLLKKKKLLMMNN#$$%%&&' AA@@??>>yyxxwwvvXXYYZZ[[ !!""##44332211llkkjjiieeffgghh--..//00 - - ''&&%%$$__^^]]\\rrssttuurrssttuu::;;<<==''(())**JJIIHHGGOOPPQQRR !!""##'(())**+==<<;;::uuttssrr\\]]^^__$$%%&&'' - - 00//..--hhggffeeiijjkkll11223344 - -##""!! [[ZZYYXXvvwwxxyyvvwwxxyy>>??@@AA++,,--.. FFEEDDCC~~}}||{{SSTTUUVV$$%%&&''+,,--../99887766qqppoonn``aabbcc(())**++ ,,++**))ddccbbaammnnoopp55667788 WWVVUUTTzz{{||}}zz{{||}}BBCCDDEE//001122 - - BBAA@@??zzyyxxwwWWXXYYZZ(())**++/012345555443322mmllkkjjddeeffgg,,--..// !!""((''&&%%``__^^]]qqrrsstt99::;;<<SSRRQQPP~~~~FFGGHHII33445566>>==<<;;vvuuttss[[\\]]^^,,--..//66778899 - - 1100//..iihhggffhhiijjkk00112233##$$%%&&$$##""!!\\[[ZZYYuuvvwwxx==>>??@@ - - OONNMMLLOOPPQQRR778899::::998877rrqqppoo__``aabb55667788::;;<<== --,,++**eeddccbbllmmnnoo44556677''(())** XXWWVVUUyyzz{{||AABBCCDD KKJJIIHHSSTTUUVV;;<<==>>66554433nnmmllkkccddeeff99::;;<<>>??@@AA))((''&&aa``__^^ppqqrrss8899::;;++,,--.. TTSSRRQQ}}~~EEFFGGHH ! GGFFEEDD~~}}||WWXXYYZZ??@@AABB - -221100//jjiihhgggghhiijj==>>??@@BBCCDDEE%%$$##""]]\\[[ZZttuuvvww<<==>>??//556677!!""##$$PPOONNMMIIJJKKLL!""##$$% - - CCBBAA@@{{zzyyxx[[\\]]^^CCDDEEFF ..--,,++ffeeddcckkllmmnnAABBCCDDFFGGHHII!! YYXXWWVVxxyyzz{{@@AABBCC8899::;;%%&&''((LLKKJJIIMMNNOOPP !!%&&''(()??>>==<=>=>=<;<;<;<;:9:9:9:96565656543434343/0/0/0/0.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"!        - - - - ZYZYZYZYVUVUVUVUTSTSTSTSPOPOPOPONMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDCBABABABA>=>=>=>=<;<;<;<;:9:9:9:96565656543434343/0/0/0//.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"!        - - - - ZYZYZYZYVUVUVUVUTSTSTSTSPOPOPOPONMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDCBABABABA>=>=>=>=<;<;<;<;:9:9:9:96565656543434343////0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"!        - - - - ZYZYZYZYVUVUVUVUTSTSTSTSPOPOPOPONMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDCBABABABA>=>=>=>=<;<;<;<;:9:9:9:965656565434343430/0/0/0/,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!    - - - - ZYZYZYZYVUVUVUVUTSTSTSTSPOPOPOPONMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDCBABABABA>=>=>=>=<;<;<;<;:9:9:9:965656565434343430/0/0/0/,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!    - - - - ZYZYXWXWVUVUVUVUTSTSTSTSPOPOPOPONMNMNMNMIIIIIJIJHGHGHGHGDCDCDCDCBABABABA>=>=>=>=<;<;<;<;:9:9:9:965656565434343430/0/0/0/,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!   - - - - XWXWXWXWVUVUVUVUTSTSTSTSPOPOPOPONMNMNMNMIJIJIJIJHGHGHGHGDCDCDCDCBABABABA>=>=>=>=<;<;<;<;:9:9:9:965656565434343430/0/0/0/,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"! - - - - XWXWXWXWVUVUVUVUTSTSTSTSPOPOPOPONMNMNMNMIJIJIJIJHGHGHGHGDCDCDCDCBABABABA>=>=>=>=<;<;<;<;:9:9:9:965656565434343210/0/0///,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"! - - - - XWXWXWXWVUVUVUVUTSTSTSTSPOPOPOPONMNMNMNMIJIJIJIJHGFEFEFEDCDCDCDCBABABABA>=>=>=>=<;<;<;<;:98787876565656521212121///0/0/0,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"! - - - - XWXWXWXWVUVUVUVUTSTSTSTSPOPOPOPONMNMNMNMIJIJIJIJFEFEFEFEDCDCDCDCBABABABA>=>=>=>=<;<;<;<;878787876565656521212121/0/0/0/0,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"! - - - - XWXWXWXWVUVUVUVUTSTSTSTSPOPOPOPONMNMNMNMIJIJIJIIFEFEFEFEDCDCDCDCBABABABA>=>=>=>=<;<;<;<;878787876565656521212121/0/0/0/0,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"! - - - - XWXWXWXWVUVUVUVUTSTSTSTSPOPOPOPONMNMNMNMIIIIJIJIFEFEFEFEDCDCDCDCBABABABA>=>=>=>=<;<;<;<;878787876565656521212121/0/0/0/0,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"! - - - - XWXWXWXWVUVUVUVUTSTSTSTSPOPOPOPONMNMNMNMJIJIJIJIFEFEFEFEDCDCDCDCBABABABA>=>=>=>=<;<;<;<;878787876565656521212121/0/0/0/0,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"! - - - - XWXWXWXWVUVUVUVUTSTSRQRQPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDCBABABABA>=>=>=>=<;<;<;<;878787876565656521212121/0/0////,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"! - - - - XWXWXWXWVUVUVUVURQRQRQRQPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDCBABABABA>=>=>=>=<;<;<;<;878787876565656521212121//0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"! - - - - XWXWXWXWVUVUVUVURQRQRQRQPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDCBABABABA>=>=>=>=<;<;<;<;8787878765656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"! - - - - XWXWXWXWVUVUVUVURQRQRQRQPOPOPOPOLKLKLKLKJIJIJIIIFEFEFEFEDCDCDCDCBA@?@?@?>=>=>=>=<;<;<;<;8787878765656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"! - - - - XWXWXWXWVUVUVUVURQRQRQRQPOPOPOPOLKLKLKLKIIIJIJIJFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=<;<;<;<;8787878765656565212121210/0/////,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"! - - - - XWXWXWXWVUVUVUVURQRQRQRQPOPOPOPOLKLKLKLKIJIJIJIJFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=<;<;<;<;8787878765656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"! - - - - XWXWXWXWVUVUVUVURQRQRQRQPOPOPOPOLKLKLKLKIJIJIJIJFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=<;<;<;<;878787876565656521212121.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#     - - - - XWXWXWXWVUVUVUVURQRQRQRQPOPOPOPOLKLKLKLKIJIJIJIJFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=<;<;<;<;878787876565656521212121.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#     - - - - XWXWXWXWVUVUVUVURQRQRQRQPOPOPOPOLKLKLKLKIJIJIJIJFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=<;<;<;<;878787876565656521212121.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#     - - - - XWXWXWXWVUVUVUVURQRQRQRQPOPOPOPOLKLKLKLKIJIJIIIIFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=<;<;<;<;878787876565656521212121.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#        - - - - XWXWXWXWVUVUVUVURQRQRQRQPOPOPOPOLKLKLKLKIIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=<;<;<;<;878787876565656521212121.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#        - - - - XWXWXWXWVUVUVUVURQRQRQRQPOPOPOPOLKLKLKLKJIHGHGHGFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=<;:9:9:9878787876565656521212121.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#        - - - - XWXWXWXWVUVUVUVURQRQRQRQPOPOPOPOLKLKLKLKHGHGHGHGFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:9878787876565656521212121.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#        - - - - XWXWXWXWVUVUVUVURQRQRQRQPOPOPOPOLKLKLKLKHGHGHGHGFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:9878787876565656521212121.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#        - - - - XWXWXWXWVUVUVUVURQRQRQRQPOPOPOPOLKLKLKLKHGHGHGHGFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:9878787876565656521212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#        - - - - XWXWXWXWVUVUVUVURQRQRQRQPOPOPOPOLKLKLKLKHGHGHGHGFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:9878787876565656521212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#        - - - - XWXWXWXWVUVUTSTSRQRQRQRQPOPOPOPOLKLKLKLKHGHGHGHGFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:9878787876565656521212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#        - - - XWXWXWXWTSTSTSTSRQRQRQRQPOPOPOPOLKLKLKLKHGHGHGHGFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:9878787876565656521212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#        XWXWXWXWTSTSTSTSRQRQRQRQPOPOPOPOLKLKLKLKHGHGHGHGFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:9878787876565656521212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#        XWXWXWXWTSTSTSTSRQRQRQRQPOPOPOPOLKLKLKLKHGHGHGHGFEFEFEFEDCBABABA@?@?@?@?>=>=>=>=:9:9:9:9878787876543434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#        XWXWXWXWTSTSTSTSRQRQRQRQPOPOPOPOLKLKLKLKHGHGHGHGFEFEFEFEBABABABA@?@?@?@?>=>=>=>=:9:9:9:9878787874343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#        XWXWXWXWTSTSTSTSRQRQRQRQPOPOPOPOLKLKLKLKHGHGHGHGFEFEFEFEBABABABA@?@?@?@?>=>=>=>=:9:9:9:9878787874343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#        XWXWXWXWTSTSTSTSRQRQRQRQPOPOPOPOLKLKLKLKHGHGHGHGFEFEFEFEBABABABA@?@?@?@?>=>=>=>=:9:9:9:9878787874343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!        XWXWXWXWTSTSTSTSRQRQRQRQPOPOPOPOLKLKLKLKHGHGHGHGFEFEFEFEBABABABA@?@?@?@?>=>=>=>=:9:9:9:9878787874343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!        XWXWXWXWTSTSTSTSRQRQRQRQPOPONMNMLKLKLKLKHGHGHGHGFEFEFEFEBABABABA@?@?@?@?>=>=>=>=:9:9:9:9878787874343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!        XWXWXWXWTSTSTSTSRQRQRQRQNMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEBABABABA@?@?@?@?>=>=>=>=:9:9:9:9878787874343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!        XWXWXWXWTSTSTSTSRQRQRQRQNMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEBABABABA@?@?@?@?>=>=>=>=:9:9:9:98787878743434343210/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!        XWXWXWXWTSTSTSTSRQRQRQRQNMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEBABABABA@?@?@?@?>=<;<;<;:9:9:9:987878787434343430//////0.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!        XWXWXWXWTSTSTSTSRQRQRQRQNMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEBABABABA@?@?@?@?<;<;<;<;:9:9:9:98787878743434343/0/0/0/0.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!        XWXWXWXWTSTSTSTSRQRQRQRQNMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEBABABABA@?@?@?@?<;<;<;<;:9:9:9:98787878743434343/0/0/0/0.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!        XWXWXWXWTSTSTSTSRQRQRQRQNMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEBABABABA@?@?@?@?<;<;<;<;:9:9:9:98787878743434343/0/0/0/0.-.-.-.-*)*)*)*)('('('('&%&%&%&%"!"!"!"!        XWXWXWXWTSTSTSTSRQRQRQRQNMNMNMNMLKLKJIJIHGHGHGHGFEFEFEFEBABABABA@?@?@?@?<;<;<;<;:9:9:9:98787878743434343/0/0/0/0.-.-.-.-*)*)*)*)('('('('&%&%&%&%"!"!"!"!        XWXWVUVUTSTSTSTSRQRQRQRQNMNMNMNMJIJIIIIIHGHGHGHGFEFEFEFEBABABABA@?@?@?@?<;<;<;<;:9:9:9:98787878743434343/0/0/0/0.-.-.-.-*)*)*)*)('('('('&%&%&%&%"!"!"!"!        - VUVUVUVUTSTSTSTSRQRQRQRQNMNMNMNMJIJIJIJIHGHGHGHGFEFEFEFEBABABABA@?@?@?@?<;<;<;<;:9:9:9:98787878743434343//////0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%"!"!"!"!        - - - - QQRRSSTT$$%%&&''llkkjjiiuuvvwwxxLLKKJJII55667788,,++**))[[ZZYYXXJJKKLLMMwwvvuuttjjkkllmm - - WWVVUUTT__``aabb !!""BBAA@@??UUVVWWXX(())**++hhggffeeyyzz{{||HHGGFFEE99::;;<<((''&&%%WWVVUUTTNNOOPPQQssrrqqppnnooppqqSSRRQQPPcciijjkk##$$%%&&>>==<<;;YYZZ[[\\,,--..// - -ddccbbaa}}~~ DDCCBBAA==>>??@@$$##""!!SSRRQQPPRRSSTTUU oonnmmllrrssttuuOONNMMLLllmmnnoo''(())**::998877]]^^__``55667788 ``__^^]]!!""##$$@@??>>==AABBCCDD OOIIHHGGVVWWXXYY - - kkjjiihhvvwwxxyyKKJJIIHHppqqrrss++,,--..66554433aabbccdd99::;;<<\\[[ZZYY%%&&''((<<;;::99EEFFGGHHFFEEDDCCZZ[[\\]]ggffeeddzz{{||}}GGFFEEDDttuuvvww//001122221100//eeffgghh==>>??@@ - - XXWWVVUU))**++,,88776655IIJJKKLLBBAA@@??^^__``aaccbbaa``~~ !!CCBBAA@@xxyyzz{{33445566..--,,++iijjkkllAABBCCDD TTSSRRQQ--..//0044332211MMNNOOPP>>==<<;;~~}}||bbccddee__^^]]\\""##$$%%??>>==<<||}}778899::**))((''mmnnooppEEFFGGHHPPOONNMM1122334400//..--QQRRSSTT ::998877{{zzyyxxffgghhii [[ZZYYXX&&''(());;::9988;;<<==>>&&%%$$##~~}}qqrrssttIIOOPPQQLLKKJJII55667788,,++**))UUVVWWXX - - 6655//..wwvvuuttjjkkllmm - - WWVVUUTT**++,,--77665544??@@AABB""!! ||{{zzyyuuvvwwxxRRSSTTUUHHGGFFEE99::;;<<((''&&%%YYZZ[[\\--,,++**ssrrqqppnnooppqqSSRRQQPP..//001133221100CCDDEEFF~~}}||{{xxwwvvuuyyzz{{||VVWWXXYY DDCCBBAA==>>??@@$$##""!!]]^^__``))((''&&oonnmmllrrssttuuOONNMMLL22334455//..--,,GGHHIIJJzzyyxxwwttssrrqq}}~~ZZ[[\\]]!!""##$$@@??>>==AABBCCDD ~~}}aabbccdd%%$$##""kkjjiihhvvwwxxyyKKJJIIHH66778899++**))((KKLLMMNNvvuuttssppoonnmm^^__``aa%%&&''((<<;;::99EEFFGGHH||{{zzyyeeffgghh - - !! ggffeeddzz{{||}}GGFFEEDD::;;<<==''&&%%$$}}||{{zzOOPPQQRRrrqqppoollkkjjiibbcciijj))**++,,88776655IIJJKKLLxxwwvvuuiijjkkll ccbbaa``~~ !!CCBBAA@@>>??@@AA##""!! yyxxwwvvSSTTUUVV nnmmllkkhhggffeekkllmmnn--..//0044332211MMNNOOPPttssrrqqmmnnoopp__^^]]\\""##$$%%??>>==<>??@@$$##""!!]]^^__``ddccbbaa}}~~&&''(())OONNMMLL22334455//..--,,RRSSTTUU ``__^^]]gghhiijj - -ZZYYXXWWTTSSRRQQAABBCCDD ~~}}aabbccdd``__^^]]**++,,-- - -KKJJIIHH66778899++**))((VVWWXXYY - - \\[[ZZYYkkllmmnn VVUUTTSSPPOONNMMEEFFGGHH||{{zzyyeeffgghh\\[[ZZYY..//5566 GGFFEEDD::;;<<==''&&%%$$ZZ[[\\]]XXWWVVUU~}}||{{ooppqqrrRRQQPPOOLLKKJJIIIIJJKKLLxxwwvvuuiijjkkll - - XXWWVVUU778899::CCBBAA@@>>??@@AA##""!! ^^__``aaTTSSRRQQzzyyxxwwssttuuvvNNMMLLKKHHGGFFEEMMNNOOPPttssrrqqmmnnoopp TTSSRRQQ;;<<==>>??>>==<>==UUVVWWXX - - llkkjjiiuuvvwwxxLLKKJJIICCDDEEFF !77665544JJKKLLMMwwvvuuttjjkkllmm - - CCBBAA@@nnmmllkk !!""BBAA@@??<<;;::99YYZZ[[\\hhggffeeyyzz{{||HHGGFFEEGGHHIIOO!""##$$%33221100NNOOPPQQssrrqqppnnooppqq??>>==<>==<<;;88776655}}||{{]]^^__``ddccbbaa}}~~ DDCCBBAAPPQQRRSS%&&''(()//..--,,RRSSTTUU oonnmmllrrssttuu;;::9988dccbbaa`''(())**::99887744332211zzyyxxwwaabbccdd``__^^]]!!""##$$@@??>>==TTUUVVWW)**++,,-++**))((VVWWXXYY - - kkjjiihhvvwwxxyy776655//`__^^]]\++,,--..6655443300//..--vvuuttsseeffgghh\\[[ZZYY%%&&''((<<;;::99XXYYZZ[[-..//012''&&%%$$ZZ[[\\]]ggffeeddzz{{||}}..--,,++\[[ZZYYX//001122221100//,,++**))rrqqppooiijjkkll - - XXWWVVUU))**++,,88776655\\]]^^__34556677##""!! ^^__``aaccbbaa``~~ !!**))((''XWWVVUUT33445566..--,,++((''&&%%nnmmllkkmmnnoopp TTSSRRQQ--..//0044332211``aabbcc8899::;;~~}}||bbccddee__^^]]\\""##$$%%&&%%$$##TSSRRQQP778899::**))((''$$##""!!jjiiccbbqqrrssttPPOONNMM1122334400//..--iijjkkll<<==>>??{{zzyyxxffgghhii [[ZZYYXX&&''(())""!! POONMLKJ;;<<==>>&&%%$$## aa``__^^~}}||uuvvwwxxLLKKJJII55667788,,++**))mmnnoopp@@AABBCCwwvvuuttjjkkllmm - - WWVVUUTT**++,,--IIHHGGFF??@@AABB""!! ]]\\[[ZZ{{zzyyxxyyzz{{||HHGGFFEE99::;;<<((''&&%%qqrrssttDDEEFFGGssrrqqppnnooppqqSSRRQQPP..//0011EEDDCCBBCCDDEEFFYYXXWWVVwwvvuutt}}~~ DDCCBBAA==>>??@@$$##""!!uuvvwwxxHHIIJKLM oonnmmllrrssttuuOONNMMLL22334455AA@@??>>GGHHIIJJUUTTSSRRssrrqqpp!!""##$$@@??>>==AABBCCDD ~~}}yyzz{{||NOOPPQQR - - kkjjiihhvvwwxxyyKKJJIIHH66778899 - -==<<;;::KKLLMMNN QQPPOOIIoonnmmll%%&&''((<<;;::99EEFFGGHH||{{zzyy}}RSSTTUUVggffeeddzz{{||}}GGFFEEDD::;;<<== 99887766OOPPQQRR - - HHGGFFEEkkjjiihg))**++,,88776655IIJJKKLLxxwwvvuuVWWXXYYZccbbaa``~~ !!CCBBAA@@>>??@@AA5543210/SSTTUUVV - - DDCCBBAAfedccbba--..//0044332211MMNNOOPPttssrrqqZ[[\\]]^__^^]]\\""##$$%%??>>==<>==a``__^^]1122334400//..--QQRRSSTT ppoonnmm^__``aab [[ZZYYXX&&''(());;::9988FFGGHHII +**))(('[[\\]]^^<<;;::99]\\[[ZZY55667788,,++**))UUVVWWXX - - llkkjjiibccdefgh - - WWVVUUTT**++,,--77665544JJKKLLMM'&&%%$$#__``aabb88776655YXXWWVVU99::;;<<((''&&%%YYZZ[[\\hhggffeeiijjkkllSSRRQQPP..//001133221100NNOOPPQQ#""!! ~~}}||{{ccddeeff//..--,,UTTSSRRQ==>>??@@$$##""!!]]^^__``ddccbbaammnnooppOONNMMLL22334455//..--,,RRSSTTUU zzyyxxwwgghhiijj - - ++**))((QPPOONMLAABBCCDD ~~}}aabbccdd``__^^]]qqrrssttKKJJIIHH66778899++**))((VVWWXXYY!!""##$$vvuuttsskkllmmnn !!""##$$''&&%%$$KJIIHHGGEEFFGGHH||{{zzyyeeffgghh\\[[ZZYYuuvvwwxxGGFFEEDD::;;<<==''&&%%$$ZZ[[\\]]%%&&''((rrqqppooooppqqrr%%&&''((##""!! FFEEDDCCIIJJKKLLxxwwvvuuiijjkkll - - XXWWVVUUyyzz{{|| !!CCBBAA@@>>??@@AA##""!! ^^__``aa))**++,, nnmmllkkssttuuvv))**++,,BBAA@@??MMNNOOPPttssrrqqmmnnoopp TTSSRRQQ}}~""##$$%%??>>==<>==<<;;QQRRSSTT ppoonnmmqqrrssttPPOONNMM&&''(());;::9988FFGGHHII{{zzyyxxffgghhii66778899ffeeddcc{{||}}~~CCDDEEFF11223344::998877UUVVWWXX - - llkkjjiiuuvvwwxxLLKKJJII}}**++,,--77665544JJKKLLMMwwvvuuttjjkkllmm::;;<<==bbaa``__ !!""GGHHIIJJ55667788 66554321YYZZ[[\\hhggffeeyyzz{{||HHGGFFEE||{{zzyy..//001133221100NNOOPPQQssrrqqppnnooppqq>>??@@AA^^]]\\[[##$$%%&&KKLLMMNN99::;;<< - - - -0//..--,]]^^__``ddccbbaa}}~~ DDCCBBAAxxwwvvuu22334455//..--,,RRSSTTUU oonnmmllrrssttuuBBCCDDEE - -ZZYYXXWW''(())**OOPPQQRR==>>??@@ ,++**))(~~}}aabbccdd``__^^]]!!""##$$@@??>>==ttssrrqq66778899++**))((VVWWXXYY - - kkjjiihhvvwwxxyyFFGGHHII VVUUTTSS++,,--..SSTTUUVVAABBCCDD(''&&%%$||{{zzyyeeffgghh\\[[ZZYY%%&&''((<<;;::99ppoonnmm::;;<<==''&&%%$$ZZ[[\\]]ggffeeddzz{{||}}OOPPQQRRRRQQPPOO//001122WWXXYYZZEEFFGGHH$##""!! xxwwvvuuiijjkkll - - XXWWVVUU))**++,,88776655llkkjjii>>??@@AA##""!! ^^__``aaccbbaa``~~SSTTUUVVNNMMLLKK33445566[[\\]]^^IIJJKKLL ttssrrqqmmnnoopp TTSSRRQQ--..//0044332211ccbbaa``BBCCDDEE~~}}||bbccddee__^^]]\\WWXXYYZZJJIIHHGG778899::__``aabbMMNNOOPP !!""##ppoonnmmqqrrssttPPOONNMM1122334400//..--__^^]]\\FFGGHHII{{zzyyxxffgghhii [[ZZYYXX[[\\]]^^FFEEDDCC;;<<==>>ccddeeffgghhiijj - -ZZYYXXWW55667788 EEDDCCBB<<==>>??%%$$##""\\]]^^__VVUUTTSS||{{zzyyqqrrssttPPOONNMM1122334400//..--iijjkkll<<==>>??{{zzyyxxffgghhii DDCCBBAA[[ZZYYXXkkllmmnn VVUUTTSS99::;;<<AA@@??>>@@AABBCC!! ~~``aabbccRRQQPPOOxxwwvvuuuuvvwwxxLLKKJJII55667788,,++**))mmnnoopp@@AABBCCwwvvuuttjjkkllmm - - @@??>>==WWVVUUTTooppqqrrRRQQPPOO==>>??@@==<<;;::DDEEFFGG}}||{{zzddeeffggIIHHGGFFttssrrqqyyzz{{||HHGGFFEE99::;;<<((''&&%%qqrrssttDDEEFFGGssrrqqppnnooppqq<<;;::99SSRRQQPPssttuuvvNNMMLLKKAABBCCDD99887766HHIIJJKKyyxxwwvvhhiijjkk - - EEDDCCBBppoonnmm}}~~ DDCCBBAA==>>??@@$$##""!!uuvvwwxxHHIIJKLM oonnmmllrrssttuu88776655OONNMMLLwwxxyyzzJJIIHHGGEEFFGGHH !!""#55443322LLMMNNOOuuttssrrllmmnnoo AA@@??>>llkkjjii!!""##$$@@??>>==AABBCCDD ~~}}yyzz{{||NOOPPQQR - - kkjjiihhvvwwxxyy//..--,,KKJJIIHH{{||}}~~FFEEDDCCIIOOPPQQ#$$%%&&'1100//..PPQQRRSSqqppoonnppqqrrss==<<;;::hgfedccb%%&&''((<<;;::99EEFFGGHH||{{zzyy}}RSSTTUUVggffeeddzz{{||}}++**))((GGFFEEDD !!""BBAA@@??RRSSTTUU'(())**+--,,++**TTUUVVWW - -mmllkkjjttuuvvww99887766baa``__^))**++,,88776655IIJJKKLLxxwwvvuuVWWXXYYZccbbaa``~~ !!''&&%%$$CCBBAA@@##$$%%&&>>==<<;;VVWWXXYY+,,--../))((''&&XXYYZZ[[ iihhggffxxyyzz{{55//..--^]]\\[[Z--..//0044332211MMNNOOPPttssrrqqZ[[\\]]^__^^]]\\""##$$%%##""!! ??>>==<<''(())**::998877ZZ[[\\]]/0123455%%$$##""\\]]^^__eeddccbb||}}~~,,++**))ZYYXXWWV1122334400//..--QQRRSSTT ppoonnmm^__``aab [[ZZYYXX&&''(());;::9988++,,--..66554433^^__``aa66778899!! ~~``aabbccaa``__^^ !!""##((''&&%%VUUTTSSR55667788,,++**))UUVVWWXX - - llkkjjiibccdefgh - - WWVVUUTT**++,,--77665544//001122221100//bbcciijj::;;<<==}}||{{zzddeeffgg]]\\[[ZZ$$%%&&''$$##""!!RQQPPOON99::;;<<((''&&%%YYZZ[[\\hhggffeeiijjkkllSSRRQQPP..//00113322110033445566..--,,++kkllmmnn>>??@@AAyyxxwwvvhhiijjkk - - YYXXWWVV(())**++ MLKJIIHH==>>??@@$$##""!!]]^^__``ddccbbaammnnooppOONNMMLL22334455 //..--,,778899::**))((''ooppqqrrBBCCDDEEuuttssrrllmmnnoo UUTTSSRR,,--..//GGFFEEDDAABBCCDD ~~}}aabbccdd``__^^]]qqrrssttKKJJIIHH66778899 - - - -++**))((;;<<==>>&&%%$$##ssttuuvvFFGGHHIIqqppoonnppqqrrssQQPPOONN00112233CCBBAA@@EEFFGGHH||{{zzyyeeffgghh\\[[ZZYYuuvvwwxxGGFFEEDD::;;<<== ''&&%%$$??@@AABB""!! wwxxyyzzJKLMNOOP - -mmllkkjjttuuvvwwMMLLKKJJ44556677 ??>>==<>??@@AA##""!! CCDDEEFF~~}}||{{{{||}}PQQRRSST iihhggffxxyyzz{{IIHHGGFF8899::;; - - ;;::9988MMNNOOPPttssrrqqmmnnoopp TTSSRRQQ}}~""##$$%%??>>==<>??77665543QQRRSSTT ppoonnmmqqrrssttPPOONNMM&&''(());;::9988FFGGHHIIKKLLMMNNvvuuttssXYYZZ[[\aa``__^^ !!""##AA@@??>>@@AABBCC 210//..-UUVVWWXX - - llkkjjiiuuvvwwxxLLKKJJII}}**++,,--77665544JJKKLLMM !!""##OOPPQQRRrrqqppoo\]]^^__`]]\\[[ZZ$$%%&&''==<<;;::DDEEFFGG - - -,,++**)YYZZ[[\\hhggffeeyyzz{{||HHGGFFEE||{{zzyy..//001133221100NNOOPPQQ$$%%&&''SSTTUUVV nnmmllkk`aabbccd - - YYXXWWVV(())**++99887766HHIIJJKK)((''&&%]]^^__``ddccbbaa}}~~ DDCCBBAAxxwwvvuu22334455//..--,,RRSSTTUU(())**++ WWXXYYZZ - - jjiihhggefghiijj UUTTSSRR,,--..//55443322LLMMNNOO%$$##""!~~}}aabbccdd``__^^]]!!""##$$@@??>>==ttssrrqq66778899++**))((VVWWXXYY,,--..// - - [[\\]]^^ffeeddcckkllmmnnQQPPOONN001122331100//..PPQQRRSS! ||{{zzyyeeffgghh\\[[ZZYY%%&&''((<<;;::99ppoonnmm::;;<<==''&&%%$$ZZ[[\\]]55667788 - - __``aabbbbaa``__ooppqqrrMMLLKKJJ44556677--,,++**TTUUVVWW !!""xxwwvvuuiijjkkll - - XXWWVVUU))**++,,88776655llkkjjii>>??@@AA##""!! ^^__``aa99::;;<<~~}}||{{ccddeeff^^]]\\[[ssttuuvvIIHHGGFF8899::;;))((''&&XXYYZZ[[##$$%%&&ttssrrqqmmnnoopp TTSSRRQQ--..//0044332211ccbbaa``BBCCDDEE~~}}||bbccddee==>>??@@zzyyxxwwgghhiijj - -ZZYYXXWWwwxxyyzzEEDDCCBB<<==>>??%%$$##""\\]]^^__''(())**ppoonnmmqqrrssttPPOONNMM1122334400//..--__^^]]\\FFGGHHII{{zzyyxxffgghhiiAABBCCDDvvuuttsskkllmmnn VVUUTTSS{{||}}~ !!""##AA@@??>>@@AABBCC!! ~~``aabbcc++,,--.. llkkjjiiuuvvwwxxLLKKJJII55667788,,++**))[[ZZYYXXJJKKLLMMwwvvuuttjjkkllmmEEFFGGHHrrqqppooooppqqrrRRQQPPOO$$%%&&''==<<;;::DDEEFFGG}}||{{zzddeeffgg//556677 - - hhggffeeyyzz{{||HHGGFFEE99::;;<<((''&&%%WWVVUUTTNNOOPPQQssrrqqppnnooppqqIIOOPPQQ !!nnmmllkkssttuuvvNNMMLLKK(())**++99887766HHIIJJKKyyxxwwvvhhiijjkk8899::;;ddccbbaa}}~~ DDCCBBAA==>>??@@$$##""!!SSRRQQPPRRSSTTUU oonnmmllrrssttuuRRSSTTUU""##$$%%jjiihhggwwxxyyzzJJIIHHGG}}||{{,,--..//55443322LLMMNNOOuuttssrrllmmnnoo<<==>>??``__^^]]!!""##$$@@??>>==AABBCCDD OOIIHHGGVVWWXXYY - - kkjjiihhvvwwxxyyVVWWXXYY&&''(())ffeeddcc{{||}}~~FFEEDDCCzzyyxxww001122331100//..PPQQRRSSqqppoonnppqqrrss@@AABBCC\\[[ZZYY%%&&''((<<;;::99EEFFGGHHFFEEDDCCZZ[[\\]]ggffeeddzz{{||}}ZZ[[\\]]**++,,--bbaa``__ !!""BBAA@@??vvuuttss44556677--,,++**TTUUVVWW - -mmllkkjjttuuvvwwDDEEFFGG - - XXWWVVUU))**++,,88776655IIJJKKLLBBAA@@??^^__``aaccbbaa``~~^^__``aa..//0011^^]]\\[[##$$%%&&>>==<<;;rrqqppoo8899::;;))((''&&XXYYZZ[[ iihhggffxxyyzz{{HHIIOOPP TTSSRRQQ--..//0044332211MMNNOOPP>>==<<;;~~}}||bbccddee__^^]]\\bbcciijj22334455ZZYYXXWW''(())**::998877nnmmllkk<<==>>??%%$$##""\\]]^^__eeddccbb||}}~~QQRRSSTTPPOONNMM1122334400//..--QQRRSSTT ::998877{{zzyyxxffgghhii [[ZZYYXXkkllmmnn66778899VVUUTTSS++,,--..66554433jjiiccbb@@AABBCC!! ~~``aabbccaa``__^^UUVVWWXXLLKKJJII55667788,,++**))UUVVWWXX - - 6655//..wwvvuuttjjkkllmm - - WWVVUUTTooppqqrr::;;<<==RRQQPPOO//001122221100//aa``__^^DDEEFFGG}}||{{zzddeeffgg]]\\[[ZZYYZZ[[\\HHGGFFEE99::;;<<((''&&%%YYZZ[[\\--,,++**ssrrqqppnnooppqqSSRRQQPPssttuuvv>>??@@AANNMMLLKK33445566..--,,++]]\\[[ZZHHIIJJKKyyxxwwvvhhiijjkk - - YYXXWWVV]]^^__`` DDCCBBAA==>>??@@$$##""!!]]^^__``))((''&&oonnmmllrrssttuuOONNMMLLwwxxyyzzBBCCDDEEJJIIHHGG778899::**))((''YYXXWWVVLLMMNNOOuuttssrrllmmnnoo UUTTSSRRaabbccii!!""##$$@@??>>==AABBCCDD ~~}}aabbccdd%%$$##""kkjjiihhvvwwxxyyKKJJIIHH{{||}}FFGGHHIIFFEEDDCC;;<<==>>&&%%$$##UUTTSSRRPPQQRRSSqqppoonnppqqrrssQQPPOONNjjkkllmm%%&&''((<<;;::99EEFFGGHH||{{zzyyeeffgghh - - !! ggffeeddzz{{||}}GGFFEEDDJJKKLLMMBBAA@@????@@AABB""!! QQPPOOIITTUUVVWW - -mmllkkjjttuuvvwwMMLLKKJJnnooppqq))**++,,88776655IIJJKKLLxxwwvvuuiijjkkll ccbbaa``~~ !!CCBBAA@@NNOOPPQQ>>==<<;;CCDDEEFFHHGGFFEEXXYYZZ[[ iihhggffxxyyzz{{IIHHGGFFrrssttuu--..//0044332211MMNNOOPPttssrrqqmmnnoopp__^^]]\\""##$$%%??>>==<>==~~``aabbccaa``__^^ !!""##AA@@??>>zz{{||}}55667788,,++**))UUVVWWXX - - llkkjjiiuuvvwwxx !! - - WWVVUUTT**++,,--77665544ZZ[[\\]]221100//OOPPQQRR<<;;::99}}||{{zzddeeffgg]]\\[[ZZ$$%%&&''==<<;;::99::;;<<((''&&%%YYZZ[[\\hhggffeeyyzz{{||""##$$%%SSRRQQPP..//001133221100^^__``aa..--,,++SSTTUUVV 88776655yyxxwwvvhhiijjkk - - YYXXWWVV(())**++99887766==>>??@@$$##""!!]]^^__``ddccbbaa}}~~&&''(())OONNMMLL22334455//..--,,bbccddee**))((''WWXXYYZZ - - //..--,,uuttssrrllmmnnoo UUTTSSRR,,--..//55443322AABBCCDD ~~}}aabbccdd``__^^]]**++,,-- - -KKJJIIHH66778899++**))((}}||{{ffgghhii&&%%$$##[[\\]]^^++**))((qqppoonnppqqrrssQQPPOONN001122331100//..EEFFGGHH||{{zzyyeeffgghh\\[[ZZYY..//5566 GGFFEEDD::;;<<==''&&%%$$zzyyxxwwjjkkllmm""!! __``aabb''&&%%$$mmllkkjjttuuvvwwMMLLKKJJ44556677--,,++**IIJJKKLLxxwwvvuuiijjkkll - - XXWWVVUU778899::CCBBAA@@>>??@@AA##""!! vvuuttssnnooppqq~~}}||{{ccddeeff - -##""!! iihhggffxxyyzz{{IIHHGGFF8899::;;))((''&&}}||MMNNOOPPttssrrqqmmnnoopp TTSSRRQQ;;<<==>>??>>==<>??%%$$##""{{zzyyxxQQRRSSTT ppoonnmmqqrrssttPPOONNMM??@@AABB;;::9988FFGGHHIInnmmllkk{{zzyyxxvvwwxxyyvvuuttsskkllmmnnaa``__^^ !!""##AA@@??>>@@AABBCC!! wwvvuuttUUVVWWXX - - llkkjjiiuuvvwwxxLLKKJJIICCDDEEFF !77665544JJKKLLMMjjiiccbbwwvvuuttzz{{||}}rrqqppooooppqqrr]]\\[[ZZ$$%%&&''==<<;;::DDEEFFGGssrrqqppYYZZ[[\\hhggffeeyyzz{{||HHGGFFEEGGHHIIOO!""##$$%33221100NNOOPPQQaa``__^^ssrrqqpp~~ nnmmllkkssttuuvv YYXXWWVV(())**++99887766HHIIJJKKoonnmmll]]^^__``ddccbbaa}}~~ DDCCBBAAPPQQRRSS%&&''(()//..--,,RRSSTTUU ]]\\[[ZZoonnmmll - - jjiihhggwwxxyyzz !!""## - - UUTTSSRR,,--..//55443322LLMMNNOOkkjjiiccaabbccdd``__^^]]!!""##$$@@??>>==TTUUVVWW)**++,,-++**))((VVWWXXYY - - YYXXWWVVkkjjiihhffeeddcc{{||}}~~$$%%&&''QQPPOONN001122331100//..PPQQRRSSbbaa``__eeffgghh\\[[ZZYY%%&&''((<<;;::99XXYYZZ[[-..//012''&&%%$$ZZ[[\\]]UUTTSSRRggffeeddbbaa``__(())**++MMLLKKJJ44556677--,,++**TTUUVVWW - -^^]]\\[[iijjkkll - - XXWWVVUU))**++,,88776655\\]]^^__34556677##""!! ^^__``aaQQPPOOIIccbbaa``^^]]\\[[,,--..// - - IIHHGGFF8899::;;))((''&&XXYYZZ[[ ZZYYXXWW~}}mmnnoopp TTSSRRQQ--..//0044332211``aabbcc8899::;;~~}}||bbccddeeHHGGFFEE__^^]]\\fpvp˂rnvppZHAbnXv`p˂r`vXnے`JXQtArdbHAZdrtAHAbے~HfJ`ےdQZ|˂pZZdQbt˂rXQltb~f`dQbtHAZp˂rtAJlpfے`nXv`XQJ`ےfH~ے`Jf~HXQJ`ےvpfr˂p|ZdQbp˂rJlt`JXQrpvnbHAZpdrtAJHAbےlJtAJ`ےdQZ|vXnl|ZdQrXQJtbdQJXQrf~HbHAZf`vXXQr˂fpvbHAZH~fZHAbtlJXQJ`ےbdQZ|˂pZXv`f˂rXQltb`JXQrrd|bHAZpdrtAJvpfHbtl`ےbZ|d˂pZHAfpvp˂rH~fpZHAbnXv`p˂r`vXnے`JXQfpvbHAZdrtAHAXQr~HfJ`ےdQZ|˂pZZdQbt˂rXQltb~f`JtArdHAZp˂rtAJlbے`nXv`XQJ`ے`vXnJAdf~HXQJ`ےvpfr˂pnXv`p˂rJlt˂pZHApvnbHAZpdtAJlHAbےlJtAJ`ےdQZ|vXn|ZdQrXQJtbdQJXQrf~HbHAZvpf|ZdQbfpvbHAZH~fZHAbf~HXQJ`ےbdQZ|bے`Xv`f˂rXQtbn`JXQrrd|bHAZpdrtAJvpfےbtl`ےbZ|d˂pZHAfpvp˂rH~ftlJnXv`p˂r`vXnے`JXQfpvbHAZdrtAJXQr~HfJ`ےvpf˂pZZdQbt˂rXQltb`JXQHAJtAdQbHAZp˂rtAJlbے`nXv`XQJ`ے`vXntArdf~HXQJ`ےvpfr˂pnXv`p˂rJlt˂pZHApvnbHAZpHf`HAbےlJtAJ`ےdQZ|bے`tlJrXQJtbdQJXQrf~HbHAZf`|ZdQbfpvbHAZH~fZHAbf~HXQJ`ےbdQZ|b˂Xv`f˂rXQvXn`JXQrrd|bHAZpdrtAJJXQrtArd`ےbZ|d˂pZHAfpvp˂rvXntlJnXv`p˂r`vXnے`JXQfpvbHAZdtAJpZHAb~HfJ`ےvpfH˂pZZdQbt˂rXQltb˂pZHA|ZdQbHAZp˂rtAJlbے`nXv`XQJ`ےvpfHtArdf~HXQJ`ےvpfr˂pnXv`p˂rltbے`JpvnbHAZp~f`HAbےlJtAJ`ےdQZ|bے`tlJrXQJtbdQJXQrf~HbHAZ~f`|ZdQbfpvJltH~fZHAbf~HXQJ`ےnvpXQr˂Xv`f˂rXQvXn`JXQrrd|bHAZpdrtAJJXQrtArdt`ےbZ|d˂pZHAfpvp˂rvXntlJnXv`bdQZ|`vXnے`JXQfpvbHAZ`vXnpZHAb~HfJ`ےvpfH˂pZZdQbt˂rXQltbے`JlJfHAZp˂rtAJlbے`nXv`XQJ`ےvp`vtArdf~HdrtAvpfr˂pnXv`p˂rvpfے`ppvnbHAZp~f`HAbےlJfJ`ےdQZ|XQr˂pvnrXQJtbdQJXQrf~HbHAZXnv|ZdQbfpvJltH~fZHAbf~HXQJ`ےH~fZHAbXv`f˂rXQvXn`JXQrpvnbHAZpdrtAJpZHAbvf~H`ےbZ|d˂pZHAfpvp˂rpfH~tlJnXv`bdQZ|`vXnے`JXQfpvbHAZ`pfHے`JXQ~HfJ`ےvpfH˂pZXv`f˂rXQltbے`JfpvHAZp˂tAJlbے`nXv`XQJ`ےf`vtArdf~HdrtAvpfr˂pnXv`p˂r~f`r˂ppvnbHAZp~f`HAbے~HfJ`ےdQZ|XQr˂nXv`rXQJtbnJXQrf~HbHAZXnv|ZdQbfpvJltH~fZHAےf~HXQJ`ےvXn`JXQrXv`f˂rXQvXn`JXQrpvnbHAZpdrtAJp`JXQf~H`ےbvpfH˂pZHAfpvp˂rpfHXtlJnXv`bdQZ|`vXn`JXQrfpvbHAZvpfHbtl~HfJ`ےvpfH˂pZXv`f˂rXQltbr˂pfpvHAZp˂f`vbے`nXv`XQJ`ےnvptArdf~HdrtAvpfbtlnXv`p˂r~f`JA|ZpvnbHAZp~f`HAbے~HfJ`ےdQZ|ZHAbnXvfrXQJXnvJXQrf~HJltfH~|ZdQbfpvJltH~fJtAdf~HXQJ`ےvXH~dQbtXv`f˂rXQvXn`JXQrpvnbHAZpdtAJlے`JXQ~Hfp`ےbpfH~˂pZHAfpvdrtAJf`vXtlJnXv`bdQZ|`vXn|ZdQbfpvbHAZf`vlJtAr~HfJ`ےJvpfH˂pZXv`f˂rXQtbnr˂pvnXHAZp˂f`vbے`nXv`ltbnvptArdf~HdrtAvpftlJnXv`p˂rXnvd|ZQpvnltb~f`HAbے~HfJ`ےvpfZHAXQrv`frXQJXnvJXQrf~HdQZ|fH~|ZdQbfpvJltH~ftArdf~HXQJ`ےpfH~blJtXv`fdQZ|vXn`JXQrpvnbHAZpHf`˂pZ~Hfp`ےbpfH~˂pZHAfpvdrtAJvpftlJnXv`bdQZ|`vXn|ZdQbfpvbHAZf`vArd|~HfdrtAJvpfH˂pZXv`f˂rXQvXnHAbےvnXHAZp˂f`vbے`nXv`ltbے`JXQtArdfHfdrtAvpftlJnXv`p˂rXnZdQbtpvnltb~f`HAbے~HfJ`ےvpfH`JXQrv`f~rXQJXnvJXQrf~HdQtAJlrZHA|ZdQbpvnJltH~ftArdf~HXQJ`ےf`vXlJtXv`fdQZ|vXn`JXQrpvnbHAZp~f`˂pZfpv`ےbpfH~˂pZHAfpvtbdQbے`tlJrXQJ`bdQZ|`vXn|ZdQbfpvJltnvpArd|~HfdrtAJvpfH˂pZXv`f˂rXQvXnHAbnXv`HAZp˂f`vbے`nXv`Z|dJXQrtArdےHAZdrtAvpftlJnXv`bdQZ|fH~ZdQbpvnltb~f`HAے`~HfJ`ےvpfH˂pZHAf~HrXQJXnvJXQrf~HrtAJlpZHA|ZdQbp˂rJltH~ftArdf~HdrtAf`vXJtArdXv`fdQZ|vXnJXQrbpvnbHAZp~f`bے`fpv`ےbpfH~˂pZHAfpvtbdQbے`tlJXQJ`ےbdQZ|`vXn|ZdQbfpvJltnvp|ZdQ~HfdrtAJvpfHtlJXv`f˂rXQvXnJXQrnXv`HAZp˂f`vbے`nXv`Z|lJXQrtArdbHAZdrtAvpftlJnXv`bdQZ|`vXnbtlpvnltb~f`tAd|~HfJ`ےvpfH˂pZHAf~fvrXQJXnvJXQrf~HtbdQZZAbے|ZdQbp˂rJltH~ftArdf~HdrtAvpfJtArdXv`fdQZ|vXnZdQbtpvnbHAZp~f`bے`nXv`ےJlpfH~˂pZHAfpv|dr`JXQrtlJXQJ`ےbdQZ|`vXn|ZdQbfpvJltH~f|ZdQ~HfdrtAJvpfHlJtAXv`f˂rXQvXnpZHAb`f~tbdQf`vbے`nXv`tAJl璀˂pZtArdbHAZdrtAvpftlJnXv`bdQZ|`vXnbtJApvnltb~f`rd|~HfJ`ےvpfHے`JHfpvZ|dXnvJXQrf~HtbdQZHAbے|ZdQbp˂rJltے`JXQtArdf~HdrtAvpfrd|Xv`fdQZ|vXnZdQbtpvnbHAZp~f`XQr˂nXvrtAJlpfH~˂pZHAfpv|dt`JXQrtlJXQJ`ےbdQZ|r˂p|ZdQbfpvJltHXnZdQbt琕HfpdrtAJvpfHlJtAXv`f˂rXQvXnp`JXQ`f~tbdQf`vbے`nXv`bdQZ|˂pZAtArdbHAZdrtAZHAbtlJnXv`bdQZ|vpfHlJtAvnrltb~f`rd|~HfJ`ےJvpfHrbtHfvnXZ|dXnvJXQrp˂rdrtAb`JX|ZdQbp˂rJltے`JXQtArdf~HdrtA~f`rd|XQJ`ےdQZ|vXnZdQbtpvnltb~f`l|ZdQv`frtAJlpfH~˂pZHAXQJ`ےJltQr˂ptlJXQJ`ےbdQZ|r˂p|ZdQbfpvJltvXnZdQbt琙HAZpdrtAJvpfHlJtAXv`fdQZ|vXnbtl~HfptbdQf`vے`JbHAZbdQZ|ZHAbtArdbHAZdrtAZHAbtlJnXv`bdQZ|vpfHlJAr˂rXQltb~f`rd|~HfdrtAJvpfHJtArdvnXZ|dXnvXQrbtp˂rdrtAے`JX|ZdQbp˂rJltے`JXQtArdfHfdrtA~v|ZdQbJ`ےdQZ|vXnZdQbtpvnltb~f`|lJv`frtAJlpfH~lJtAXQJ`ےdQZ|Qr˂ptlJXQJ`ےbdQZ|r˂p|ZdQbpvnJltpfے`tlJbHAZpdrtAJvpfHlJtAXv`fdQZ|vXntArd~HfptbdQf`vd|ZbHAZdrtAJZHAbfpvbHAZdrtAZHAbtlJrXQJ`bdQZ|JXQHAbtArd˂rXQltb~f`rd|~HfdrtAJvpfH|ZdQbvnv`Z|dXnvdQbtp˂rltbJXQrnXv`p˂rJltے`JXQtArdےHAZdrtAے`J|ZdQbJ`ےdQZ|vXnZdQbtpvnltb~f`tlJf~HrtAJlpfH~lJtArXQJ`ےdQZ|˂pZHAf~HXQJ`ےbdQZ|r˂p|ZdQbp˂rJltXQr˂tlJbHAZpdrtAJvpfےlJtAXv`fdQZ|vXntArdfpvtbdQf`vd|ZbHAZdrtAJbے`fpvbHAZdrtAZHAbtlJXQJ`ےbdQZ|pZHAbtArZd˂rXQltb`JXQrrd|~HfdrtAJvpfH|ZdQtAnXv`Z|dXnvdQbtlJtArp˂rl|dJXQrnXv`p˂rJltے`JXQtArdbHAZdrtAے`JQbtlJ`ےdQZ|˂pZZdQbtpvnltb~f`rd|ffpvrtAJlpfH~lJtArd|ZXQJ`ےrtAJl˂pZHAf~HXQJ`ےbdQZ|r˂p|ZdQbp˂rJltXQrJtArdbHAZpdrtAJHAbےlJtAXv`fdQZ|vXnZdQbtnrXQtbdQf`vd|ZdQbt璐bHAZtbdQbJQfpvbHAZdtAJZHAbtlJXQJ`ےbdQZ|ے`JXQ|Zd˂rXQltb`JXQrrd|~HfdrtAJvpfHlJtAJ`ےZ|dXnvdQbtlJtArp˂rZ|`vr˂pnXv`p˂rltbے`JXQtArdbHAZdrtAr˂pQbtlJ`ےdQZ|˂pZZdQbtpvnltb~f`rd|HAZp˂rtAJlpfH~lJtArd|ZXQJ`ےXnvZHAbf~HXQJ`ےnvpr˂p|ZdQbp˂rJltZHAbJtArdbHAZpdrtAJHAbےlJtAXv`fdQZ|vXnZdQbtrXQJtbdQf`vd|ZdQbt璐bHAZpfH~`JXQfpvbHAZfHfZHAbtlJXQJ`ےbdQZ|ے`JXQZQbt˂rXQltb`JXQrrd|HfpdrtAJvpfHd|Z`ےbZ|dXnvdQbtlJtArp˂rf`pr˂pnXv`p˂r`vXnے`JXQtArdbHAZdrtAr˂plJfJ`ےdQZ|˂pZZdQbtvnrltb~f`dQbtHAZp˂rtAJlpfH~lJtArd|ZXQJ`ےfH~ZHAbf~HXQJ`ےvpfr˂p|ZdQbp˂rJlt`JXQrpvnbHAZpdrtAJHAbےlJtAXQJ`ےdQZ|vXnlJtArrXQJtbdQf`vd|ZdQbt璐bHAZf`vX`JQrfpvbHAZH~fZHAbtlJXQJ`ےbdQZ|˂pZXv`f˂rXQltb`JXQrrd|HAZpdrtAJvpfHd|Z`ےbZ|dXnvdQbtlJtArd|ZHAZp˂rtAJlpfH~tArdXQJ`ے|drnvpbtlnXvtbdQZf`vXے`JXQvnXJltH~ftArdf~HXQJ`ےvpfr˂pnXv`p˂rnvp`JXQrpvnbHAZpHf`ZHAbH~ㅐfdQbt璀rXQJtbdQf`v|ZdQbbHAZtAJlfے`JJtArd`f~|drnvprbtv`fbdQZ|`vXn|ZdQbfpvbHAZH~fZHAbf~HXQJ`ےfH~˂pZXv`f˂rXQvXnے`JXQ`vXnlJtAr`ےbZ|dXnvtlJprQJ`tbdQZXQr˂|ZdQHfpvtAJlfH~lJtAdnXvdrtAvpftlJnXv`p˂r`vXnے`JXQfpvbHAZf`vXHAbے~HfJ`ےvpfHr˂pvˍpfd|ZHAZp˂rtAJlpfH~tArdےbH|drpZHAbbtlnXvtbdQZf`vX|ZdQ`f~JltH~ftArdf~HXQJ`ےvpfr˂pnXv`p˂rnvf`JXQrpvnbHAZp~f`ZHAbH~ㅐfdQbt璀rXQJtbdQf`v|ZdQbAZp˂tAJl璐ے`JJtArd`f~|drnvpbtlHfpvbdQZ|`vXn|ZdQbfpvJltH~fZHAbf~HXQJ`ے~f`˂pZXv`f˂rXQvXn˂pZ`vXnlJtAr`ےbZ|dXnvtd|rXQJ`tbdQZXQr˂|ZdQHfpvtAJlfH~JtArdnXvrAJl瀅vpftlJnXv`bdQZ|`vXnے`JXQfpvrXQvXnHAے`~HfJ`ےvpfHHAbےvˍpfd|ZHAZp˂rtAJlpfے`ZdQbtےbH|drpZHAbbtlnXvtbdQZf`vX|ZdQ`f~tbdQH~ftArdf~HdrtAvpfr˂pnXv`J`ےvpfHJXQrbpvnbHAZp~f``JXQrH~ㅐfdQbt璀rXQJtbdQJXQrlJtAAZp˂tAJl璐ے`JJtArd`fH|drnvpbtlHXv`Z|d`vXn|ZdQbfpvJltH~fZHAbf~HbHAZp~f`tlJXv`f˂rXQvXn˂pZ`vXnlJtAr`ےbZ|d˂pZHArd|rQJtbdQZXQr˂|ZdQfpvtAJlfH~JtArdf~HrtAJl瀅vpftlJnXv`bdQZ|`vXnے`JXQfpv˂rXQvXntAd|~HfJ`ےvpfHHAbےvˍpfd|ZHAZp˂rtAJlbے`ZdQbtbHAZp|drpZHAbbtlnrXQJtbdQZf`vX|ZdQfpvtbdQH~ftArdf~HdrtAvpfr˂pnXv`J`ےvpf~fZdQbtpvnbHAZp~f``pZHAH~ㅐfdQbt璀rXQJtbdQJXQrl|Z˂rXQtAJl璐ے`JJtArd`ےHA|drnvpbtlnXv`Z|dr`vXn|ZdQbfpvJltH~fZHAےf~HbHAXQJ`vXnlJtAXv`f˂rXQvXnbے``vXnlJtAr`ےbZ|d˂pZHAdQbtJ`ےtbdQZXQr˂|ZdQZp˂tAJlfH~JtArdf~HAJtbvpftlJnXv`bdQZ|`vXn`JXQrfpv`ےJlvpfrd|~HfJ`ےvpfHJXQrvˍpfd|ZHAZp˂rtAJlbے`lJtArbHAZp|drpZHAbbtlrXQJ`tbdQZf`vX|ZdQfp`fdQZ|ے`JXQtArdf~HdrtAvpfbtlnXv`tdrH~fZdQbtpvnbHAZp~f`˂p`ZH~ㅐfdQbt璀rXQJtbdQJXQrd|Z˂rXQtAJl璐ے`JJtArdےbHA|drnvpbtl~HfdrtAJr˂p|ZdQbfpvJltH~fJtAdf~HtAJl`vXnlJtAXv`f˂rXQvXnQXb㉀۝`vXnlJfp`ےbZ|d˂pZHAdQbtJbHAtbdQZXQr˂|ZdQZp˂tAJlfH~JtArdpvnltbZHAbtlJnXv`bdQZ|`vXn|ZdQbfpvtbdQZvpfrd|~HfJ`ےJvpfHpJAHrvˍpfvnXHAZp˂rtAJlbے`lJtAdQZp˂|dtApZHAbbtlrXQJ`tbdQZf`vX|ZdQXv`pdQZ|ے`JXQtArdf~HdrtAvpftlJnXv`|drH~fvXZdQbtpvnltb~f`ˁ`pH~ㅐfv`frXQJtbdQJXQrbtlrXQJ`Jltے`JJtArdےbHA|drnvpbtlvnrdrtAJr˂p|ZdQbfpvJltH~ftArdf~HtAJl璕nvplJtAXv`fdQZ|vXnJAHr󙐝`vXn~Hfp`ےbZ|d˂pZHAJtArdbHAbnvXQr˂|ZdQZp˂tAJlfے`JJtArdXQJ`pbdQZ|ZHAbtlJnXv`bdQZ|`vXn|ZdQbfpvtbdQtAfH~rd|~HfdrtAJvpfHˁ`ZQXvˍpfvnXHAZp˂rtAJlbے`|ZdQZp˂pfHpZHAbbtlrXQJ`tbdQZXQr˂|ZdQ˂rXQdrtے`JXQtArdfHfdrtAvpftlJnXv`Jltf`vXZdQbtpvnltb~f`b㉀ۑpH~ㅐfv`frXQJtbdQJXQrbtlrXQJ`f`vXے`JJtArdےbHA|drpZHAbbtlJ`ےAJltr˂p|ZdQbpvnJltH~ftArdf~HbdQZ|nvplJtAXv`fdQZ|vXnJAHr󙐝`vXn~Hfp`ےbZ|d˂pZHAJtArdbAZp˂nvpXQr˂|ZdQZp˂tAJl璐ے`JJtArdbHAZpbdQZ|ZHAbtlJrXQJ`bdQZ|`vXn|ZdQbfpvdrtAfH~rd|~HfdrtAJvpfHˁ`ZQXvˍp|vnXHAZp˂tAJlbے`tlJrXQJfH~pZHAbbtlrXQJ`tbdQZXQr˂|ZdQ`ےbdrtے`JXQtArdےHAZdrtAvpftlJnXv`JltfvnZdQbtpvnltb~f`AHr󙐂˂drQtv`frXQJtbnJXQrfpv`ےbf`vXے`JJtArdےbHA|drpZHAbbtlHAZp˂AJlbr˂p|ZdQbp˂rJltH~ftArdf~HbdQZ|vpfےlJtAXv`fdQZ|vXn`ZQXbJlt~Hfp`ےbvpfH˂pZHA~HfHAZp˂nvpXQr˂|ZdQZp˂tAJl璐ے`JJtArdrXQJQZ|dZHAbtlJXQJ`ےbdQZ|`vXn|ZdQbfpvltb`JXQrrd|~HfdrtAJvpfHۑpJbAdZ|vnXHAZp˂f`vbے`pvnrXQJfH~pZHAbbtlrXQJ`tbdQZXQr˂|ZdQ`ےbrtAJlے`JXQtArdbHAZdrtAvpftlJnXv`dQZ|˂pZZdQbtpvnltb~f`AHr󙐂˂drQtv`frXQJXnvJXQrXv`f`ےbAf`vXے`JJfpvےbHA|drpZHAbbtlHAZp˂tbdQr˂p|ZdQbp˂rJltH~ftArdf~HdrtAJHAbےlJtAXv`fdQZ|vXn`ZQXbJlt~Hfp`ےbpfH~˂pZHA~HfZrXnvpXQr˂nXvZp˂tAJl璐ے`JJtArdbHAZ|AJZHAbtlJXQJ`ےbdQZ|`vXn|ZdQbfpvltb`JXQrrd|~HfdrtAJvpfHˁ`bAdZ|vnXHAZp˂f`vbے`pvnQJ`ےfH~pZHAb`f~rXQJ`tbdQZXQr˂|ZdQZp˂ltbے`JXQtArdbHAZdrtAvpftlJnXv`dQZ|˂pZZdQbtpvnltb~f`ZQXb㉀drQtv`frXQJXnvJXQrXHfpbHAZpf`vXے`JHfpvےbHA|drpZHAbbtlrXQJ`nvpr˂p|ZdQbp˂rJltے`JXQtArdf~HdtbdQHAbےlJtAXv`fdQZ|vXnۑpJAHJlt~Hfp`ےbpfH~˂pZHAvnX˂rXnvpXQr˂nXvZp˂tAJl璐ے`JJtArdےbHAfHfZHAbtlJXQJ`ےbdQZ|r˂p|ZdQbfpvZ|d`JXQrrd|HfpdrtAJvpfHr󙐂ˁ`bAdZ|vnXHAZp˂f`vbے`v`fQJ`ےfH~pZHAb`f~rXQJ`tbdQZXQr˂|ZdQZp˂`vXnے`JXQtArdbHAZdrtAZHAbtlJnXv`rtAJl˂pZZdQbtvnrltb~f`ZQXb㉀drQtv`frXQJXnvJXQr~HfpbHAZf`vXے`JHfpvےbHA|dtApZHAbbtlrXQHAZvpfr˂p|ZdQbp˂rJltے`JXQtArdf~HtbdQHAbےlJtAXQJ`ےdQZ|vXnۑp`ZJlt~Hfp`ےbpfH~˂pZHAvnXrXQJ`nvpXQr˂nXvZp˂Jltے`JJtArdp˂rH~fZHAbtlJXQJ`ےbdQZ|r˂p|ZdQbfpvZ|d`JXQrrd|HAZpdrtAJvpfHQXb㉀bAdZ|vnXHAZp˂f`vbے`v`pvےJlfH~pZHAb`f~rXQJ`bnvXQr˂|ZdQXQJ`ے`vXnے`JXQtArdbHAZdrtAZHAbtlJnXv`rtAdQZ˂pZZdQbt˂rXQltb~f`pJAHrdrQtv`frXQJXnvJXQrnXvtbdQZf`vXے`JHfpvےbHApfHpZHAbbtlbHAZvpfr˂p|ZdQbp˂rJltے`JXQtArdfHf|drHAbےlJtAJ`ےdQZ|vXnˁ`ZJlt~Hfp`ےbpfH~˂pZHA`f~|drnvpXQr˂nXvZp˂f`vXے`JJtArdp˂rH~fZHAbtlJXQJ`ےbdQZ|r˂p|ZdQbpvntAJl`JXQrrd|bHAZpdrtAJvpfHQXb㉀bAdZ|vnXHAZp˂f`vbے`HfpvtAJlfH~pZHAb`f~rXQJ`nvpXQr˂|ZdQXQJ`p`vXnے`JXQfpvbHAZdrtAZHAbtlJrXQJ`tbdQZ˂pZZdQbt˂rXQltb~f`pJAHQXdrQtv`frXQJXnvJXQrnXvtbdQZf`vXے`JHfpvےbHAfH~pZHAbbtl˂rXQvpfr˂pnXv`p˂rJltے`JXQtArdp˂r|drHAbےlJtAJ`ےdQZ|vXnb㉀ۑpJlt~Hfp`ےJlpfH~˂pZHA`f|drnvpXQr˂nXvZp˂f`vXے`JJtArdJ`ےH~fZHAbf~HXQJ`ےbdQZ|r˂p|ZdQbXQJ`ےtAJl|`JXQrrd|bHAZpdrtAJvpfZJAHrbAdZ|vnXtbdQf`vbے`nXv`tAJlfH~pZHA`f~rXQJ`nvpXQr˂|ZdQbHAZp`vXnے`JXQfpvbHAZdrtAZHAbtlJbHAZdrtA˂pZZdQbt˂rXQltbHAbےˁ`ZQXdrQtv`fZ|dXnvJXQrf~HtbdQZf`vXے`JXQHfpvےbHAfH~pZHAbbtl˂rXQvpfr˂pnXv`p˂rJltے`JXQtArdp`ےJltHAbےlJtAJ`ےdQZ|`JXQrb㉀ۑpJlt~HfprtAJlpfH~˂pZHAfpv|drnvprbt璀nXvZp˂f`vXے`JJfpvJ`ےH~fZHAbf~HXQJ`ےbdQZ|r˂p|ZdQbbHAZpbdQZ|`JXQrrd|bHAZpdrtAJ˂pZJAHfbAdZ|vnXtbdQf`vbے`nXv`tAJlfH~lJtAd`f~rXQJ`nvpXQr˂~HrXQJ`vXnے`JXQfpvbHAZdtAJZHAbtlJ˂rXQltb˂pZZdQbt˂rXQltbHAbے`vXndrQtv`fZ|dXnvJXQrf~HtbdQZf`vX|ZdQHfpvےbHAfH~pZHAbfpv`ےbvpfr˂pnXv`p˂rltbے`JXQtArdJ`ےnvpHAbےlJtAJ`ےdQZ|`JXQrvˍpfJlt~HfprtAJlpfH~˂pZHAXv`f|drnvpbtlnXvZp˂f`vXے`JnXv`HAZp˂H~fZHAbf~HXQJ`ےnvpr˂p|ZdQbbHAZpff`v`JXQrrd|bHAZpdrtAJے`H~ㅐfbAdZ|vnXtbdQf`vے`J~HftAJlfH~JtArd`f~rXQJ`nvpXQr˂f~HrXQJ`vXnے`JXQfpvbHAZfHfZHAbtlJ˂bXnv˂pZZdQbt˂rXQltbJXQr`vXndrQtv`fZ|dXnvXQrbtpvntbdQZf`vX|ZdQHfpvےbHAfH~pZHAbfpv`ےbvpfr˂pnXv`p˂r`vXnے`JXQtArdHAZp˂pfH~HAbےlJfJ`ےdQZ|˂pZHAvˍpfJlt~HfprtAJlpfH~l|ZXv`f|drnvpbtlnXvZp˂f`vXے`JnXHfHAXQJ`H~fZHAbf~HXQJ`ےvpfr˂p|ZdQbrXQJf`v`JXQrpvnbHAZpdrtAJbے`H~ㅐfbAdZ|vnXtbdQf`vdQbt璐~HftAJlfH~JtArd`f~rXQJ`nvpXQr˂pvnےJl`vXnے`JXQfpvbHAZH~fZHAbtlJ`ےbnvpfH˂pZXv`f˂rXQltbJXQr`vXndrQtv`fZ|dXnvlJtArp`ftbdQZf`vX|ZdQHfpvےJlfH~pZHAbXv`ftbQZdvpfr˂pnXv`p˂r`vXnے`JXQtArdHAZp˂~f`HAbے~HfJ`ےdQZ|˂p`JvˍpfJlt~HfprtAJlpfH~d|l~Hfp|drnvpbtlnXvtbdQZf`vXے`J~HfrtAJlH~fZHAےf~HXQJ`ےvpfr˂p|ZdQbrXQHAvXn`JXQrpvnbHAZpdrtAJXQr˂H~ㅐfbAdZ|vnXtbdQf`vJtArdvnXtAJlfH~JtArd`f~|drnvpXQr˂pvntbd`vXn`JXQrfpvbHAZH~fZHAbtlJZp˂vpfH˂pZXv`f˂rXQltbpZHAb`vXndrQtv`fZ|dXnv|ZdQv`pvtbdQZf`vX|ZdQHfpvtAJlfH~pZHAbXv`pQZ|dvpfbtlnXv`p˂r`vXnے`JXQfpvrXQJ`~f`HAbے~HfJ`ےdQZ|ے`JvˍpfJltHfpvrtAJlpfH~btlnrXQ|drnvpbtlnXvtbdQZf`vXے`JvnXrtAJlH~fJtAdf~HXQJ`ےvpfr˂pnXv`ےbHAvXnv`JXQrpvnbHAZpdtAJlXQr˂H~ㅐfbAdZ|nrXQtbdQf`vJtArdJ`AZtAJlfH~JtArd`f~|drnvpXQr˂v`ftbd`vXn|ZdQbfpvbHAZH~fZHAbf~HZp˂fH~˂pZXv`f˂rXQtbnpZHAXQ`vXndrQtJ`ےZ|dXnv|ZdQp˂rtbdQZf`vX|ZdQHfpvtAJlfH~pZHA~HfpQZrtAvpftlJnXv`p˂r`vXnے`JXQfpvrXQJ`f`vXHAbے~HfJ`ےvpfr˂pvˍpfJlt66666666666666666666666666666666666666666666667777777777 \ No newline at end of file diff --git a/vendor/endroid/qr-code/assets/data/qrv37_0.dat b/vendor/endroid/qr-code/assets/data/qrv37_0.dat deleted file mode 100755 index d670ed061..000000000 --- a/vendor/endroid/qr-code/assets/data/qrv37_0.dat +++ /dev/null @@ -1,329 +0,0 @@ -~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijifefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQNMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijihgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQNMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkhghghgggfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQNMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkggghghghfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQNMMMMMMNLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkghghghghfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQMNMNMNMNLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkghghghghfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQMNMNMNMNLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkghghghghfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQMNMNMNMNLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkghghghghfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQMNMNMNMNLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkghghggggfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSPOPOPOPOMNMNMNMNLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkgghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSPOPOPOPOMMMMMMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkhghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkhghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlkjijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmjijijijihghgggggfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmjijijijighghghghfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSPOPOPOPOMMMMMNMNLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmjijijijighghghghfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSPOPOPOPOMNMNMNMNLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmjijijijighghghghfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSPOPOPOPOMNMNMNMNLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmjijijijighghghghfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSRQRQPOPOPOPOMNMNMNMNLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmjijijijighghghghfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVURQRQRQRQPOPOPOPOMNMNMNMNLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmjijijijighggggggfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUTSTSRQRQRQRQPOPOPOPOMNMNMNMMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWTSTSTSTSRQRQRQRQPOPOPOPOMMMMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmlkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBA@?@?@?~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopopolklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDC@?@?@?@?~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopoponmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCBABABA@?@?@?@?~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqnmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEBABABABA@?@?@?@?~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqponmnmnmnmlklklklkjijijijihgggggghfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[ZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMMMLKLKLKLKJIJIJIJIHGHGHGHGFEDCDCDCBABABABA@?@?@?@?~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststspopopoponmnmnmnmlklklklkjijijijighghghghfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPOMMMNMNMNLKLKLKLKJIJIJIJIHGHGHGHGDCDCDCDCBABABABA@?@?@?@?~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutststsrqpopopoponmnmnmnmlklklklkjijijijighghghghfefefefedcdcdcdcbabababa`_`_`_`_^]^]\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPOMNMNMNMNLKLKLKLKJIJIJIJIHGFEFEFEDCDCDCDCBABABABA@?@?@?@?~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvurqrqrqrqpopopoponmnmnmnmlklklklkjijijijighghghghfefefefedcdcdcdcbabababa`_`_`_`_\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPOMNMNMNMNLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDCBABABABA@?@?@?@?@?@?@?@?~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvutsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijighghghghfefefefedcdcdcdcbabababa`_`_^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPOMNMNMNMNLKLKLKLKJIHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?@?@?@?@?~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwtstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijighghghghfefefefedcdcdcdcbabababa^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPOMNMNMNMNLKLKLKLKHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?@?@?@?@?~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijigggggghgfefefefedcdcdcdcbaba`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPOMNMNMMMMLKJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?@?@?@?@?~}~}~}~}|{|{|{|{zyzyzyzyvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdc`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPOMMNMNMNMJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?@?@?@?@?~}~}~}~}|{|{|{|{zyzyzyxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefedcdcbaba`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?@?@?@?@?~}~}~}~}|{|{|{|{xwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefefefebabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPOLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?@?@?@?@?~}~}~}~}|{|{|{zyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghghghgfefedcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPOLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?@?@?@?@?~}~}~}~}zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijigggghghgdcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPOLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?@?@?@?@?~}~}~}|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghgfefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPOLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?@?@?@?@?|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijifefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPOLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?@?@?@?@?~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijifefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPONMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?@?@?@?@?~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijifefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQNMNMMMMMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?@?@?@?@?~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijifefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQNMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?@?@?@?@?@?@?@?@?>=>=>=>=<;<;<;<;:98787876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%"!"!"!"!     - - - - @?@?@?@?>=>=>=>=<;<;<;<;878787876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%"!"!"!"!     - - - - @?@?@?@?>=>=>=>=<;:9:9:9878787876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!        - - - - @?@?@?@?>=>=>=>=:9:9:9:9878787876565656543434333212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!        - - - - @?@?@?@?>=<;<;<;:9:9:9:9878787876565656533343434212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"!        - - - - @?@?@?@?<;<;<;<;:9:9:9:9878787876565656534343434212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"!        - - - - @?>=>=>=<;<;<;<;:9:9:9:9878787876565656534343434212121210/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - >=>=>=>=<;<;<;<;:9:9:9:9878787876565656534343434212121210/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - >=>=>=>=<;<;<;<;:9:9:9:9878787876565656534343434212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - >=>=>=>=<;<;<;<;:9:9:9:9878787876565656534343333212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - >=>=>=>=<;<;<;<;:9:9:9:9878787876565656533434343212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - >=>=>=>=<;<;<;<;:9:9:9:9878787876565656543434343212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - >=>=>=>=<;<;<;<;:9:9:9:987878787656565654343434321212121.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - >=>=>=>=<;<;<;<;:9:9:9:987878787656565654343434321212121.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - >=>=>=>=<;<;<;<;:9:9:9:98787878765656565434333330/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - >=>=>=>=<;<;<;<;:9:9:9:98787878765656565434343430/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - >=>=>=>=<;<;<;<;:9:9:9:98787878765656565212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - >=>=>=>=<;<;<;<;:9:9:9:98787878765656565212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - >=>=>=>=<;<;<;<;:9:9:9:98787878765656565212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - >=>=>=>=<;<;<;<;:9:9:9:98787878765656565212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - >=>=>=>=<;<;<;<;:9:9:9:98787878765656565212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - >=>=>=>=<;<;<;<;:9:9:9:98787878765656565212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - >=>=>=>=<;<;<;<;:9:9:9:98787878765434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - >=>=>=>=<;<;<;<;:9:9:9:98787878743333334212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - >=>=>=>=<;<;<;<;:9:9:9:98787878734343434212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - >=>=>=>=<;<;<;<;:9:9:9:98787878734343434212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - >=>=>=>=<;<;<;<;:9:9:9:98787878734343434212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - >=>=>=>=<;<;<;<;:9:9:9:98787878734343434212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - >=>=>=>=<;<;<;<;:9:9:9:98787878734343434212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - >=>=>=>=<;<;<;<;:9:9:9:98787878733333343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - >=>=>=>=<;<;<;<;:9:9:9:98787878743434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - >=>=>=>=<;<;<;<;:9:9:9:98787878743434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - >=>=>=>=<;<;<;<;:9:9:9:98787876543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - >=>=>=>=<;<;<;<;:9:9:9:96565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - >=>=>=>=<;<;<;<;:9:9:9:96565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - >=>=>=>=<;<;<;<;:9:9:9:96565656533333434212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - >=>=>=>=<;<;<;<;:9:9:9:96565656534343434212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - >=>=>=>=<;<;<;<;:9:9:9:96565656534343434212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - >=>=>=>=<;<;<;<;:9:9:9:96565656534343434212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - >=>=>=>=<;<;<;<;:9:9:9:96565656534343434212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!    >=>=>=>=<;<;<;<;:9:9:9:96565656534343433212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!    - >=>=>=>=<;<;<;<;:9:9:9:96565656533334343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#        - - - - >=>=>=>=<;<;<;<;:9:9:9:96565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#       - - - - zzyyxxwwffggmmnn!!""##$$||{{zzyy11223344llkkjjiiTTUUVVWW!!  - - **++,,--ssrrqqpp::;;<<==ccbbaa``JJKKLLMM??>>==<<##$$%%&&zzyyxxww33445566jjiihhggCCDDEEFFZZYYXXWWSSTTUUVVJJIIHHGG{{||}}~~ ~~,,--..//qqppoonn<<==>>??aa``__^^LLMMNNOO vvuuttssooppqqrr%%&&''((xxwwvvuu55667788hhggffeeXXYYZZ[[ !!~~}}||..//0011oonnmmll>>??@@AA__^^]]\\NNOOPPQQ;;::9933''(())**vvuuttss778899::ffeeddccGGHHIIJJVVUUTTSSWWXXYYZZFFEEDDCC}}||{{zz00112233mmllkkjj@@AABBCC]]\\[[ZZPPQQRRSS!!""##$$rrqqppoossttuuvv - - ))**++,,ttssrrqq99::;;<>bbaa``__KKLLMMNNRRQQPPOO[[\\]]^^BBAA@@??yyxxwwvv44556677iihhggffDDEEFFGGYYXXWWVVTTUUVVWW%%&&''((nnmmggffwwxxyyzz - -  ~~}}--..//00ppoonnmm==>>??@@``__^^]]``aabbcc &&''(())wwvvuutt66778899ggffeeddFFGGHHIIWWVVUUTTVVWWXXYY..--,,++ !!""~~}}||{{//001122nnmmllkk??@@AABB^^]]\\[[OOPPQQRRNNMMLLKK__``aabb>>==<<;;uuttssrr8899::;;eeddccbbHHIIJJKKUUTTSSRRXXYYZZ[[))**++,,eeddccbb{{||}}~~ !!""##$$||{{zzyy11223344llkkjjiiAABBCCDD\\[[ZZYYddeeffgg - - **++,,--ssrrqqpp::;;<<==ccbbaa``JJKKLLMMSSRRQQPPZZ[[\\]]**))((''##$$%%&&zzyyxxww33445566jjiihhggCCDDEEFFZZYYXXWWSSTTUUVVJJIIHHGGccddeeff::998877 !!""#qqppoonn<<==>>??aa``__^^LLMMNNOOQQPPOONN\\]]^^__--..//00aa``__^^%%&&''((xxwwvvuu55667788hhggffeeEEFFGGHHXXWWVVUUmmnnoopp !!~~}}||..//0011oonnmmll>>??@@AA__^^]]\\NNOOPPQQOONNMMLL^^__``aa&&%%$$##''(())**vvuuttss778899::ffeeddccGGHHIIJJVVUUTTSSWWXXYYZZFFEEDDCCgghhiijj66554433#$$%%&&'mmllkkjj@@AABBCC]]\\[[ZZPPQQRRSSMMLLKKJJ``aabbcc11223344]]\\[[ZZ - - ))**++,,ttssrrqq99::;;<>bbaa``__KKLLMMNNRRQQPPOO[[\\]]^^BBAA@@??kkllmmnn221100//'(())**+iihhggffDDEEFFGGYYXXWWVVTTUUVVWWIIHHGGFFddeeffgg55667788YYXXWWVV  ~~}}--..//00ppoonnmm==>>??@@``__^^]]MMNNOOPPPPOONNMMuuvvwwxx - -&&''(())wwvvuutt66778899ggffeeddFFGGHHIIWWVVUUTTVVWWXXYYGGFFEEDDffgghhii//001122nnmmllkk??@@AABB^^]]\\[[OOPPQQRRNNMMLLKK__``aabb>>==<<;;ooppqqrr..--,,+++,,--../eeddccbbHHIIJJKKUUTTSSRRXXYYZZ[[EEDDCCBBhhiijjkk99::;;<>llmmnnoo~~}}==>>??@@LLKKJJII%%&&''((xxwwvvuu55667788hhggffeeEEFFGGHHXXWWVVUUUUVVWWXXHHGGFFEE}}~~~~}}||..//0011oonnmmll>>??@@AA__^^]]\\NNOOPPQQOONNMMLL^^__``aa??>>==<>bbaa``__KKLLMMNNRRQQPPOO[[\\]]^^BBAA@@??kkllmmnn221100//{{||}}~~""!! ::;;<<==YYXXWWVVTTUUVVWWIIHHGGFFddeeffgg99887766ttuuvvwwxxwwvvuuEEFFGGHHDDCCBBAA ~~}}--..//00ppoonnmm==>>??@@``__^^]]MMNNOOPPPPOONNMM]]^^__``@@??>>==wwvvuutt66778899ggffeeddFFGGHHIIWWVVUUTTVVWWXXYYGGFFEEDDffgghhii77665544vvwwxxyy zzyyxxww??@@AABB^^]]\\[[OOPPQQRRNNMMLLKK__``aabb>>==<<;;ooppqqrr..--,,++>>??@@AAUUTTSSRRXXYYZZ[[EEDDCCBBhhiijjkk55443322xxyyzz{{ttssrrqqIIJJKKLL@@??>>==!!""##$$||{{zzyy11223344llkkjjiiAABBCCDD\\[[ZZYYQQRRSSTTLLKKJJIIaabbccdd<<;;::99 !ssrrqqpp::;;<<==ccbbaa``JJKKLLMMSSRRQQPPZZ[[\\]]CCBBAA@@jjkkllmm33221100zz{{||}}vvuuttssCCDDEEFFZZYYXXWWSSTTUUVVJJIIHHGGccddeeff::998877ssttuuvv**))((''BBCCDDEEQQPPOONN\\]]^^__AA@@??>>llmmnnoo1100//..||}}~~ppoonnmmMMNNOOPP<<;;::99%%&&''((xxwwvvuu55667788hhggffeeEEFFGGHHXXWWVVUUUUVVWWXXHHGGFFEEeeffgghh88776655!""##$$%oonnmmll>>??@@AA__^^]]\\NNOOPPQQOONNMMLL^^__``aa??>>==<>??@@``__^^]]MMNNOOPPPPOONNMM]]^^__``@@??>>==mmnnoopp00//..--)**++,,-ggffeeddFFGGHHIIWWVVUUTTVVWWXXYYGGFFEEDDffgghhii77665544vvwwxxyy''&&%%$$hggffeedOOPPQQRRNNMMLLKK__``aabb>>==<<;;ooppqqrr..--,,++ ~~}}||{{NOPQRSSTEEDDCCBBhhiijjkk55443322xxyyzz{{%%$$##""ddccbbaaYYZZ[[\\++**))((11223344llkkjjiiAABBCCDD\\[[ZZYYQQRRSSTTLLKKJJIIaabbccdd<<;;::99qqrrsstt,,++**))-..//001ccbbaa``JJKKLLMMSSRRQQPPZZ[[\\]]CCBBAA@@jjkkllmm33221100zz{{||}}##""!! dccbbaa`SSTTUUVVJJIIHHGGccddeeff::998877ssttuuvv**))(('' - - zzyyxxwwTUUVVWWXAA@@??>>llmmnnoo1100//..||}}~~!! ``__^^]]]]^^__``''&&%%$$55667788hhggffeeEEFFGGHHXXWWVVUUUUVVWWXXHHGGFFEEeeffgghh88776655uuvvwwxx((''&&%%12233456__^^]]\\NNOOPPQQOONNMMLL^^__``aa??>>==<>??@@``__^^]]MMNNOOPPPPOONNMM]]^^__``@@??>>==mmnnoopp00//..--}}~~ <<==>>??WWVVUUTTVVWWXXYYGGFFEEDDffgghhii77665544vvwwxxyy''&&%%$$%%&&''((XWWVVUUT__``aabb>>==<<;;ooppqqrr..--,,++  - -nnmmggff`aabbccd55443322xxyyzz{{%%$$##""TTSSRRQQiijjkkll~~}}||AABBCCDD\\[[ZZYYQQRRSSTTLLKKJJIIaabbccdd<<;;::99qqrrsstt,,++**))@@AABBCCSSRRQQPPZZ[[\\]]CCBBAA@@jjkkllmm33221100zz{{||}}##""!! ))**++,,TSSRQPONccddeeff::998877ssttuuvv**))(('' - -  eeddccbbdeeffggh1100//..||}}~~!! PPOONNMMmmnnoopp{{zzyyxxEEFFGGHHXXWWVVUUUUVVWWXXHHGGFFEEeeffgghh88776655uuvvwwxx((''&&%%DDEEFFGGOONNMMLL^^__``aa??>>==<>==mmnnoopp00//..--}}~~  ~~}}LLMMNOPQGGFFEEDDffgghhii77665544vvwwxxyy''&&%%$$::;;<<==EEDDCCBBooppqqrr..--,,++ YYXXWWVVssttuuvv%%$$##""DDCCBBAAyyzz{{|| oonnmmlkQQRRSSTTLLKKJJIIaabbccdd<<;;::99qqrrsstt,,++**)) - - ||{{zzyyRSSTTUUVCCBBAA@@jjkkllmm33221100zz{{||}}##""!! >>??@@AAAA@@??>>ssttuuvv**))(('' - -  - - !!""##UUTTSSMMwwxxyyzz!! @@??>>==}}~~jihggffeUUVVWWXXHHGGFFEEeeffgghh88776655uuvvwwxx((''&&%%xxwwvvuuVWWXXYYZ??>>==<>==mmnnoopp00//..--}}~~  ppoonnmm^__``aab77665544vvwwxxyy''&&%%$$ - - JJKKLLMM3221100/ ,,--..//DDCCBBAA 44332211 !!""##]\\[[ZZYaabbccdd<<;;::99qqrrsstt,,++**)) - - - - ggffeeddbccddeef33221100zz{{||}}##""!! SSTTUUVV/..--,,+ - -  - -00112233@@??>>==00//..--$$%%&&''YXXWWVVUeeffgghh88776655uuvvwwxx((''&&%% ccbbaa``fgghijkl//..--,,~~ ~~WWXXYYZZ+**))((' 99::;;<<<<;;::99 - -QQPPOONN,,++**))(())**++UTTSSRQPiijjkkll44332211yyzz{{||$$##""!!__^^]]\\mmnnoopp++**))(( - -  }}||{{zz[[\\]]^^'&&%%$$# !!""~~}}||{{==>>??@@33221100  - - MMLLKKJJ((''&&%%,,--..//ONMMLLKKmmnnoopp00//..--}}~~  [[ZZYYXXqqrrsstt''&&%%$$ - - yyxxwwvv__``aabb#""!!  ##$$%%&&zzyyxxwwAABBCCDD//..--,, ~~IIHHGGFF$$##""!!00112233JJIIHHGGqqrrsstt,,++**)) - -  !!WWVVUUTTuuvvwwxx##""!!  !!uuttssrrccddeeff - -  - -''(())**vvuuttssEEFFGGHH++**))(( !!""##}}||{{zzEEDDCCBB 99::;;<>==>>??@@BBAA@@??yyzz{{||$$##""!! &&''(())JJIIHHGG}}~~ - -  &&''(())mmggffeeppqqrrss !!""~~}}||{{//001122nnmmllkkMMSSTTUU##""!!  - - (())**++uuttssrr==<<;;::AABBCCDD>>==<<;;}}~~  **++,,--FFEEDDCC - - **++,,--ddccbbaattuuvvww ##$$%%&&zzyyxxww33445566jjiihhggVVWWXXYY ~~,,--..//qqppoonn99887766EEFFGGHH::998765 - - ..//0011BBAA@@?? !!~~}}||..//0011``__^^]]xxyyzz{{ - -  - -''(())**vvuuttss778899::ffeeddccZZ[[\\]] !!""##}}||{{zz00112233mmllkkjj55443322 IIJJKKLL43322110 - - 223399::>>==<<;; ""##$$%%{{zzyyxx22334455\\[[ZZYY||}}~~ ++,,--..rrqqppoo;;<<==>>bbaa``__^^__``aa$$%%&&''yyxxwwvv44556677iihhggff1100//.. - - MMSSTTUU0//..--,  ~~}};;<<==>>::993322 - -  &&''(())wwvvuutt66778899XXWWVVUU !!""~~}}||{{//001122nnmmllkk??@@AABB^^]]\\[[bbccddee (())**++uuttssrr8899::;;eeddccbb--,,++** - - VVWWXXYY,++**))( !!""##$$||{{zzyy??@@AABB1100//.. - - **++,,--ssrrqqpp::;;<<==TTSSMMLL##$$%%&&zzyyxxww33445566jjiihhggCCDDEEFFZZYYXXWWffggmmnn - - ~~,,--..//qqppoonn<<==>>??aa``__^^))((''&& ZZ[[\\]](''&&%%$ - - %%&&''((xxwwvvuuCCDDEEFF--,,++** !!~~}}||..//0011oonnmmll>>??@@AAKKJJIIHH - -''(())**vvuuttss778899::ffeeddccGGHHIIJJVVUUTTSSooppqqrr !!""##}}||{{zz00112233mmllkkjj@@AABBCC]]\\[[ZZ%%$$##""^^__``aa$##""!!  - - ))**++,,ttssrrqqGGHHIIJJ))((''&&""##$$%%{{zzyyxx22334455kkjjiihhBBCCDDEEGGFFEEDD ++,,--..rrqqppoo;;<<==>>bbaa``__KKLLMMNNRRQQPPOOssttuuvv$$%%&&''yyxxwwvv44556677iihhggffDDEEFFGGYYXXWWVV!! ~~}}||{{bbccddee   ~~}}--..//00ppoonnmmKKLLMMSS%%$$##"" &&''(())wwvvuutt66778899ggffeeddFFGGHHIICCBBAA@@ !!""~~}}||{{//001122nnmmllkk??@@AABB^^]]\\[[OOPPQQRRNNMMLLKKwwxxyyzz - - (())**++uuttssrr8899::;;eeddccbbHHIIJJKKUUTTSSRR 3399::;;GGFFEEDDmmnnoopp00//..--}}~~  [[ZZYYXXqqrrsstt''&&%%$$ - - ZZ[[\\]]##""!! <<==>>??CCBBAA@@qqrrsstt,,++**)) - -  !!WWVVUUTTuuvvwwxx##""!! ^^__``aa@@AABBCC??>>==<>==<<;; ""##$$%%nnmmggffwwxxyyzz - - ~~}}||YYZZ[[\\)((''&&%  ~~}};;<<==>>::993322 - -  &&''(())eeddccbb{{||}}~~ - -  - - {{zzyyxx]]^^__``%$$##""! !!""##$$||{{zzyy??@@AABB1100//.. - - **++,,--aa``__^^ wwvvuuttaabbccdd!  - - %%&&''((xxwwvvuuCCDDEEFF--,,++** !!~~}}||..//0011]]\\[[ZZ !!""##ssrrqqppeeffggmm - - ))**++,,ttssrrqqGGHHIIJJ))((''&&""##$$%%{{zzyyxx22334455YYXXWWVV$$%%&&''oonnmmggnnooppqq  ~~}}--..//00ppoonnmmKKLLMMSS%%$$##"" &&''(())wwvvuutt66778899UUTTSSMM(())**++ffeeddccrrssttuu!!""##$$||{{zzyy11223344llkkjjiiTTUUVVWW!!  - - **++,,--ssrrqqpp::;;<<==LLKKJJII !!~~,,--..//bbaa``__vvwwxxyy %%&&''((xxwwvvuu55667788hhggffeeXXYYZZ[[ !!~~}}||..//0011oonnmmll>>??@@AAHHGGFFEE""##$$%% !!""##}}||{{zz00112233^^]]\\[[zz{{||}} - -  - - ))**++,,ttssrrqq99::;;<>??@@``__^^]]``aabbcc &&''(())wwvvuutt66778899ggffeeddFFGGHHII@@??>>==**++,,--(())**++uuttssrr8899::;;VVUUTTSS!!""##$$||{{zzyy11223344llkkjjiiAABBCCDD\\[[ZZYYddeeffgg - - **++,,--ssrrqqpp::;;<<==ccbbaa``JJKKLLMM<<;;::99..//0011,,--..//qqppoonn<<==>>??MMLLKKJJ%%&&''((xxwwvvuu55667788hhggffeeEEFFGGHHXXWWVVUUmmnnoopp !!~~}}||..//0011oonnmmll>>??@@AA__^^]]\\NNOOPPQQ332211002233445500112233mmllkkjj@@AABBCCIIHHGGFF - - ))**++,,ttssrrqq99::;;<>??@@``__^^]]MMNNOOPPPPOONNMMuuvvwwxx - -&&''(())wwvvuutt66778899ggffeeddFFGGHHIIWWVVUUTTVVWWXXYY++**))((::;;<<==8899::;;eeddccbbHHIIJJKKAA@@??>>!!""##$$||{{zzyy11223344llkkjjiiAABBCCDD\\[[ZZYYQQRRSSTTLLKKJJIIyyzz{{|| **++,,--ssrrqqpp::;;<<==ccbbaa``JJKKLLMMSSRRQQPPZZ[[\\]]''&&%%$$~~}}||>>??@@AA<<==>>??aa``__^^LLMMNNOO==<<;;::%%&&''((xxwwvvuu55667788hhggffeeEEFFGGHHXXWWVVUUUUVVWWXXHHGGFFEE}}~~~~}}||..//0011oonnmmll>>??@@AA__^^]]\\NNOOPPQQOONNMMLL^^__``aa##""!! {{zzyyxxBBCCDDEE@@AABBCC]]\\[[ZZPPQQRRSS99332211))**++,,ttssrrqq99::;;<>??@@``__^^]]MMNNOOPPPPOONNMM]]^^__``@@??>>==wwvvuutt66778899ggffeeddFFGGHHIIWWVVUUTTVVWWXXYYGGFFEEDDffgghhiissrrqqppJJKKLLMMHHIIJJKKUUTTSSRRXXYYZZ[[,,++**))!!""##$$||{{zzyy11223344llkkjjiiAABBCCDD\\[[ZZYYQQRRSSTTLLKKJJIIaabbccdd<<;;::99 !ssrrqqpp::;;<<==ccbbaa``JJKKLLMMSSRRQQPPZZ[[\\]]CCBBAA@@jjkkllmmoonnmmllNNOOPPQQLLMMNNOOQQPPOONN\\]]^^__((''&&%%%%&&''((xxwwvvuu55667788hhggffeeEEFFGGHHXXWWVVUUUUVVWWXXHHGGFFEEeeffgghh88776655!""##$$%oonnmmll>>??@@AA__^^]]\\NNOOPPQQOONNMMLL^^__``aa??>>==<>??@@``__^^]]MMNNOOPPPPOONNMM]]^^__``@@??>>==mmnnoopp00//..--)**++,,-ggffeeddFFGGHHIIWWVVUUTTVVWWXXYYGGFFEEDDffgghhii77665544vvwwxxyy ccbbaa``ZZ[[\\]]XXYYZZ[[EEDDCCBBhhiijjkk11223344llkkjjiiAABBCCDD\\[[ZZYYQQRRSSTTLLKKJJIIaabbccdd<<;;::99qqrrsstt,,++**))-..//001ccbbaa``JJKKLLMMSSRRQQPPZZ[[\\]]CCBBAA@@jjkkllmm33221100zz{{||}}__^^]]\\^^__``aa\\]]^^__AA@@??>>llmmnnoo55667788hhggffeeEEFFGGHHXXWWVVUUUUVVWWXXHHGGFFEEeeffgghh88776655uuvvwwxx((''&&%%12233456__^^]]\\NNOOPPQQOONNMMLL^^__``aa??>>==<>??@@``__^^]]MMNNOOPPPPOONNMM]]^^__``@@??>>==mmnnoopp00//..--}}~~ <<==>>??WWVVUUTTVVWWXXYYGGFFEEDDffgghhii77665544vvwwxxyy''&&%%$$ !!""##SSRRQQPPjjkkllmmhhiijjkk55443322xxyyzz{{xxwwvvuuAABBCCDD\\[[ZZYYQQRRSSTTLLKKJJIIaabbccdd<<;;::99qqrrsstt,,++**))@@AABBCCSSRRQQPPZZ[[\\]]CCBBAA@@jjkkllmm33221100zz{{||}}##""!! $$%%&&''OONNMMLLnnooppqqllmmnnoo1100//..||}}~~ ttssrrqqEEFFGGHHXXWWVVUUUUVVWWXXHHGGFFEEeeffgghh88776655uuvvwwxx((''&&%%DDEEFFGGOONNMMLL^^__``aa??>>==<>==mmnnoopp00//..--}}~~  ~~}}LLMMNOPQGGFFEEDDffgghhii77665544vvwwxxyy''&&%%$$00112233CCBBAA@@zz{{||}}xxyyzz{{%%$$##""feeddccbQQRRSSTTLLKKJJIIaabbccdd<<;;::99qqrrsstt,,++**)) - - ||{{zzyyRSSTTUUVCCBBAA@@jjkkllmm33221100zz{{||}}##""!! 99::;;<>==<<~~||}}~~!! baa``__^UUVVWWXXHHGGFFEEeeffgghh88776655uuvvwwxx((''&&%%xxwwvvuuVWWXXYYZ??>>==<>??@@;;::9988 !!""^]]\\[[ZYYZZ[[\\DDCCBBAAiijjkkll44332211yyzz{{||$$##""!!ttssrrqqZ[[\\]]^;;::9988rrssttuu++**))(( - - AABBCCDD77665544##$$%%&&ZYYXXWWV]]^^__``@@??>>==mmnnoopp00//..--}}~~  ppoonnmm^__``aab77665544vvwwxxyy''&&%%$$EEFFGGHH33221100''(())**VUUTTSSRaabbccdd<<;;::99qqrrsstt,,++**)) - - - - ggffeeddbccddeef33221100zz{{||}}##""!! IIJJKKLL//..--,,++,,--..QPONMMLLeeffgghh88776655uuvvwwxx((''&&%% ccbbaa``fgghijkl//..--,,~~ MMSSTTUU++**))(( - -//001122KKJJIIHHiijjkkll44332211yyzz{{||$$##""!!__^^]]\\mmnnoopp++**))(( - -  VVWWXXYY''&&%%$$ZHAbtlJvnXbHAXQJtbdQZvpfbtlnXv`bHAZdrtA`vXnے`JXQtlJnXv`rXQJ`|dtHAbےZdQbtpvnJ`ےdQZ|~f`HAbےZdQbtpvnJ`ےltb`vXHd|Z~HfprXQJtbdQpfH~˂pZHAd|Z~HfprXQJtbdQpfH~tlJ`f~Zp˂tAJlnvpXQr˂JtArdے`JXQtArdv`f`ےb|drH~fJtAdf~Hp˂rJltvpfr˂ptArdf~HےbHAbdQZ|`JXQrlJtAXv`fbHAZpdrtAJvXn`JXQrlJtAXv`fbHAZpdQZ|l~fZdQbtvnX`ےbZ|df`vbے`dQbtvnX`ےbZ|df`ptArdHfpvrXQJ`tbdQZfH~pZHAb|ZdQr˂p|ZdQb~HfpHAZp˂tAJlZHAb|ZdQbfpvXQJ`ےbdQZ|H~fZHAb|ZdQbfpvZp˂drtA˂pZrd|~Hf˂rXQltbvpfH˂pZrd|~Hf˂rXQtbdQHAblJtArv`fHAZp˂rtAJlXnvJXQrlJtArv`fHAZp˂rtAJlfH~|ZdQbnXvےbHA|drf`vXے`JbtlZHAbtlJv~rXQJtbdQZے`JXQtlJnXv`bHAZdrtA`vXnے`JXQtlJnXv`rXQJ`JltHAbےZdQbtpvnJ`ےdQZ|~f`HAbےZdQbtpvnJ`ےZ|dJQr˂pd|Z~HfprXQJtbdQpfH~˂pZHAd|Z~HfprXQJtbdQf`vXtJArd`f~Zp˂tAJlnvpXQr˂JtArdے`JXQtArdHfpv`ےb|dnr˂ptArdf~Hp˂rJltvpfr˂ptArdf~HےbHAbdQZ|`JXQrlJtAXv`fbHAZpdrtAJvXn`JXQrlJtAXv`fbHAZprtAJlZHAbdQbtvnX`ےbZ|df`vbے`dQbtvnX`ےbZ|dnvp|ZdHfpvrXQJ`tbdQZfH~pZHAb|ZdQr˂p|ZdQbnXvHAZp`vffZHAb|ZdQbfpvXQJ`ےbdQZ|H~fZHAb|ZdQbfpvXQJ`ےltb˂pZrd|~Hf˂rXQltbvpfH˂pZrd|~Hf˂rXQtbdQے`JXlJtArv`fHAZp˂rtAJlXnvJXQrlJtArv`fHAZp˂rtAJlfH~QbtlnXvےbHA|drf`vXے`JbtlZHAbtlJ`f~ےbHA`vXnے`JXQtlJnXv`bHAZdrtA`vXnے`JXQtlJnXv`bHAZnvpHAbےZdQbtpvnJ`ےdQZ|~f`HAbےZdQbtpvnJ`ےZ|dQr˂pd|Z~HfprXQJtbdQpfH~˂pZHAd|Z~HfprXQJtbdQf`vXJtArd`f~Zp˂tAJlnvpXQr˂JtArdے`JXQtArdHfpvZp˂vpfr˂ptArdf~Hp˂rJltvpfr˂ptArdf~Hp˂rff`v`JXQrlJtAXv`fbHAZpdrtAJvXn`JXQrlJtAXv`fbHAZptbdQZZHAbdQbtvnX`ےbZ|df`vbے`dQbtvnX`ےbZ|dH~f|ZdHfpvrXQJ`tbdQZfH~pZHAb|ZdQr˂p|ZdQbnXHrXQJ`H~fZHAb|ZdQbfpvXQJ`ےbdQZ|H~fZHAb|ZdQbfpvXQJ`ےXnv˂pZrd|~Hf˂rXQltbvpfH˂pZrd|~Hf˂rXQ|drے`JQrlJtArv`fHAZp˂rtAJlXnvJXQrlJtArv`fHAZp˂rtAJlZHAbQbtlnXvےbHA|drf`vXے`JbtlZHAbtlJfpvےbHA`vXnے`JXQtlJnXv`bHAZdrtA`vXnے`JXQtlJnXv`bHAZpfH~HAbےZdQbtpvnJ`ےdQZ|~f`HAbےZdQbtpvnJ`ےtAJl璉pZHAd|Z~HfprXQJtbdQpfH~˂pZHAd|Z~HfprXQJtbdQ˂pZJAr|`f~Zp˂tAJlnvpXQr˂JtArdے`JXQtArdnXv`Zp˂vpfr˂ptArdf~Hp˂rJltvpfr˂ptArdf~Hp`ےf`v`JXQrlJtAXv`fbHAZpdrtAJvXn`JXQrlJtAXv`fbHAZptbdQZbے`dQbtvnX`ےbZ|df`vbے`dQbtvnX`ےbZ|dHAbےZdQbtHfpvrXQJ`tbdQZfH~pZHAb|ZdQr˂p|ZdQbf~HbHAZH~fZHAb|ZdQbfpvXQJ`ےbdQZ|H~fZHAb|ZdQbfpvbHAZpXnv˂pZrd|~Hf˂rXQltbvpfH˂pZrd|~Hf˂rXQ|ltJXQrlJtArv`fHAZp˂rtAJlXnvJXQrlJtArv`fHAZp˂rtAJl`JXQrlJtAnXvےbHA|drf`vXے`JbtlZHAbtlJfpvdrtA`vXnے`JXQtlJnXv`bHAZdrtA`vXnے`JXQtlJnXv`˂rXQf~f`HAbےZdQbtpvnJ`ےdQZ|~f`HAbےZdQbtpvnJ`ےbnv˂pZHAd|Z~HfprXQJtbdQpfH~˂pZHAd|Z~HfprXQJtbdQ˂pZrd|`f~Zp˂tAJlnvpXQr˂JtArdے`JXQtArdnXv`JbdQ瀅vpfr˂ptArdf~Hp˂rJltvpfr˂ptArdf~HJ`ےvXn`JXQrlJtAXv`fbHAZpdrtAJvXn`JXQrlJtAXv`fbHAZpp`vXbے`dQbtvnX`ےbZ|df`vbے`dQbtvnX`ےbZ|dHAbےZdQbtHfpvrXQJ`tbdQZfH~pZHAb|ZdQr˂p|ZdQbpvnZ|dH~fZHAb|ZdQbfpvXQJ`ےbdQZ|H~fZHAb|ZdQbfpvbHAZpvpfH˂pZrd|~Hf˂rXQltbvpfH˂pZrd|~Hf˂rXQnvpJXQrlJtArv`fHAZp˂rtAJlXnvJXQrlJtArv`fHAZp˂rtAJl`pZHAlJtAnXvےbHA|drf`vXے`JbtlZHAbtlJXv`frtAJl`vXnے`JXQtlJnXv`bHAZdrtA`vXnے`JXQtlJnXv`˂b~f`HAbےZdQbtpvnJ`ےdQZ|~f`HAbےZdQbtpvnJ`ےfH~ZHAbd|Z~HfprXQJtbdQpfH~˂pZHAd|Z~HfprXQJtbdQbے`rZdQ`f~Zp˂tAJlnvpXQr˂JtArdے`JXQtArd~HftbdQ瀅vpfr˂ptArdf~Hp˂rJltvpfr˂ptArdf~HHAZdvXn`JXQrlJtAXv`fbHAZpdrtAJvXn`JXQrlJtAXv`fbHAZpf`vX`JXQdQbtvnX`ےbZ|df`vbے`dQbtvnX`ےbZ|dJXQrbtlHfpvrXQJ`tbdQZfH~pZHAb|ZdQr˂p|ZdQbpvnZ|dH~fZHAb|ZdQbfpvXQJ`ےbdQZ|H~fZHAb|ZdQbfpvrtAdQZvpf~˂pZrd|~Hf˂rXQltbvpfH˂pZrd|~Hf˂rXQnfr˂plJtArv`fHAZp˂rtAJlXnvJXQrlJtArv`fHAZp˂tAJl˂pZHAJtArdnXvےbHA|drf`vXے`JbtlZHAbtlJXv`frtAJl`vXnے`JXQtlJnXv`bHAZdrtA`vXnے`JXQtlJnXv`|drf`vXHAbےZdQbtpvnJ`ےdQZ|~f`HAbےZdQbtpvnJ`ے`vXnZHAbd|Z~HfprXQJtbdQpfH~˂pZHAd|Z~HfprXQJtbnbے`|ZdQ`f~Zp˂tAJlnvpXQr˂JtArdے`JXQtArdnXbQZ|vpfr˂ptArdf~Hp˂rJltvpfr˂ptArdf~HtAJlnvp`JXQrlJtAXv`fbHAZpdrtAJvXn`JXQrlJtAXv`fbHAZpvpf`JXQdQbtvnX`ےbZ|df`vbے`dQbtvnX`ےbvp`vJXQHAbbtlHfpvrXQJ`tbdQZfH~pZHAb|ZdQr˂p|ZdQbv`fdrtAJH~fZHAb|ZdQbfpvXQJ`ےbdQZ|H~fZHAb|ZdQbfpvtbdQZfH~˂pZrd|~Hf˂rXQltbvpfH˂pZrd|~Hf˂rXQH~frZAblJtArv`fHAZp˂rtAJlXnvJXQrlJtArv`fHAZdXnvے`JJtArdnXvےbHA|drf`vXے`JbtlZHAbtlJ~Hfpltb`vXnے`JXQtlJnXv`bHAZdrtA`vXnے`JXQtlJnXv`|drf`vXHAbےZdQbtpvnJ`ےdQZ|~f`HAbےZdQbtpvnJ`ے`vXnے`Jd|Z~HfprXQJtbdQpfH~˂pZHAd|ZHfpvrtAJlpfH~XQr˂ZQbt`f~Zp˂tAJlnvpXQr˂JtArdے`JXQtArdvnXdQZ|vpfr˂ptArdf~Hp˂rJltvpfr˂ptArdf~HtAJl|nvp`JXQrlJtAXv`fbHAZpdrtAJvXn`JXQrlJtAXv`fbHAZvp`XQr˂dQbtvnX`ےbZ|df`vbے`dQbt璀nrXQtbdQf`vpZHAblJtArHfpvrXQJ`tbdQZfH~pZHAf~r˂p|ZdQbv`p˂drtAJH~fZHAb|ZdQbfpvXQJ`ےbdQZ|H~fZHAb|ZdQbfpvdrtAfH~f˂pZrd|~Hf˂rXQltbvpfH˂pZrd|HfpdrtAdQvXnpZHAblJtArv`fHAZp˂rtAJlXnvJXQrlJtArJ`ےZ|dXnے`Jd|ZnXvےbHA|drf`vXے`JXQHfpvZHAbtlJrXQJltbQ`vXnے`JXQtlJnXv`bHAZdrtA`vXnے`JXQtlJnXv`JltvXnHAbےZdQbtpvnJ`ےdQZ|~f`HAbےZdQbtvnrZ|dvpfHے`Jd|Z~HfprXQJtbdQpfH~˂pZHAdfHAZp˂rtAJlf`vXXQrdQbt`f~Zp˂tAJlnvprbt璀nXvے`JXQtArd`ےbZdrtvpfr˂ptArdf~Hp˂rJltvpfr˂ptArdfHfbdQZ|vpfH`JXQrlJtAXv`fbHAZpdrtAJvXn`JXQrlJtAXQJ`ےrtAJl~f`XQr˂dQbtvnX`ےbZ|df`vے`J~HfprXQJtbdQnvpے`JXQlJtArHfpvrXQJ`tbdQZfH~lJtAd`f~r˂p|ZdQbHAZp˂AJltH~fZHAb|ZdQbfpvXQJ`ےbdQZ|H~fZHAb|ZdQbpvndrtA~f`˂pZrd|~Hf˂rXQltbvpfH˂pZrdfHAZptbdQvXnpZAb`lJtArv`fHAZp˂rtAJlXnvXQrbtvnX`ےbZ|dfH~r˂pd|ZQnXvےbHA|dtAfZHAb|ZdQHfpvZHAbtlJrXQHAbdQZ|`vXnے`JXQtlJnXv`bHAZdrtA`vXnے`JXQtlJrXQJ`JltvXnHAbےZdQbtpvnJ`ےdQZ|~f`HAے`~Hf˂rXQZ|dvpfHJXQrd|Z~HfprXQJtbdQpfH~lJtAv`fHAZp˂rtAJlf`vXZHAbblJt`f~Zp˂Jltے`JbtlnXvے`JXQtArdZp˂drtvpfr˂ptArdf~Hp˂rJltvpfr˂ptArdp˂rdrtAJvpfH`JXQrlJtAXv`fbHAZpdrtAJvXnJXQrbpvnJ`ےrtAJlXnv˂pZHdQbtvnX`ےbZ|dfZHAd|Z~HfprXQJtbdQnvpے`JXQArd|HfpvrXQJ`bnvXQr˂JtArd`f~r˂p|ZdQbrXQJ`AJltH~fZHAb|ZdQbfpvXQJ`ےbdQZ|H~fZHAےf~HXQJ`ےltb~fvn˂pZrd|~Hf˂rXQltbvpfHtlJXv`fbHAZp|drpfH~Abے`lJtArv`fHAZp˂tAJlbے`dQbtvnX`ےbZ|d`vXnr˂pZdQbtnXvےbHApfHpZHAb|ZdQHfpv`f~ZHAbtlJےbHAbdQZ`vXnے`JXQtlJnXv`bHAZdrtA`vXn`JXQrfpvbHAZdQZ|vpfHAbےZdQbtpvnJ`ےdQZ|~fZtAd|~Hf˂rXQtAJl璐f`vJXQrd|Z~HfprXQJtbnJXQrlJtArv`fHAZp˂rtAJlvpf`JXQrlJt`fHZdrf`vXے`JbtlnXvHfpvے`JXQtArdZp˂rtAJlvpfr˂ptArdf~Hp˂rJltvpfbtlnXv`p˂rdrtAJH~f`JXQrlJtAXv`fbHAZpdtAJlHAbےZdQbtpvnJ`ےtbdQZXnv˂pZHdQbtvnX`ےbvpfH˂pZHAd|Z~HfprXQJtbdQH~f˂pZArd|fpvtAJlnvpXQr˂JtArd`f~nXvr˂p|ZdQbrXQJ`tbdQH~fZHAb|ZdQbfpvXQJ`ےbdQZ|H~fJtAdf~HXQHAZpltb`vXn˂pZrd|~Hf˂rXQtbn`JXQrlJtAXv`fbHAZp|drpfH~AbJXQlJtArv`fHAZdf`vbے`dQbtvnX`ےbZ|d`vXnHAbےZdQbnrXQJtbdQZfH~pZHAb|ZdQHfpv`f~ZHAbtlJp˂rZ|d`vXnے`JXQtlJnXv`bHAZdtAJZHAb|ZdQbfpv˂rXQdQtAJlvpfHAbےZdQbtpvnJ`ےvpf˂pZrd|~Hf˂rXQtAJl璐vpr˂pd|ZHfpvrtAJlXnvJXQrlJtArv`fHAZp˂rtAJlvpf`JXQrJtArd`ےHA|drf`vXے`JbtlnXvHfpvے`JXQtArdXQJ`ےrtAJlvpfr˂ptArdf~Hp˂rltbے`JXQtlJnXv`J`ےtbdQH~f`JXQrlJtAXv`fbHAZHf`HAbےZdQbtpvnJ`ےtdrtAfH~ZHAbdQbt璀nrXQtbdQpfH~˂pZHAd|Z~HfprXQJtbdQHXn˂pZf~Zp˂tAJlnvpXQr˂JtArd`f~nXvr˂pf~HbHAZtbdQH~fZHAb|ZdQbfpvXQJ`ےnvpr˂ptArdf~HbHAZpZ|d`vnvp˂pZrd|HfpdrtAJvXn`JXQrlJtAXv`fbHAZpJltf`vXے`JXQlJtArJ`ےZ|df`vbے`dQbtvnX`ےbZ|dvpfHHAXQrHfpvrXQJ`tbdQZfH~pZHAb|ZdQHfpv`f~ZHAbXv`fp˂rZ|rA`vXnے`JXQtlJnXv`bHAZfHfZHAb|ZdQbfpv˂rXQrtAJlfH~HAbےZdQbtvnrltbvpfH˂pZrd|~Hf˂rXQbdQZ|nvpr˂pdfHAZp˂rtAJlXnvJXQrlJtArv`fHAZp˂rtAJl~f`˂pZHAnXvےbHA|drf`vXے`JbtlnXvHfpvے`JXQ~HfXQJ`ےJltvpfr˂ptArdfHfdrtA`vXnے`JXQtlJnXv`J`p˂tbdQf`vX`JXQrlJtAXQJ`ےdQZ|~f`HAbےZdQbtpvnJ`ےdrtAfH~ZA`J~HfprXQJtbdQpfH~˂pZHAd|Z~HfprXQJtbdQvXnbے``f~Zp˂tAJlnvpXQr˂JtArd`f~nXvr˂ppvnrXQbdQZ|H~fZHAb|ZdQbpvnJltvpfr˂ptArdf~HrXQJZ|l璕nvp˂pZrdfHAZpdrtAJvXn`JXQrlJtAXv`fbHAZpJltf`pfXQrbtvnX`ےbZ|df`vbے`dQbtvnX`ےbZ|dvpfHJXQrHfpvrXQJ`tbdQZfH~pZHAb|ZdQHfpv`f~|ZdQbXv`fJ`ےdrtA`vXnے`JXQtlJrXQJ`bdQZ|H~fZHAb|ZdQbfpv`ےbtbdQZfH~HAے`~Hf˂rXQltbvpfH˂pZrd|~Hf˂rXQbdQtAJH~flJtAv`fHAZp˂rtAJlXnvJXQrlJtArv`fHAZp˂rtAJl~v˂p`JnXvےbHA|drf`vXے`JbtlnXvHfpvtlJ~HfbHAZpJltvpfr˂ptArdےHAZdrtA`vXnے`JXQtlJnXv`HAZp˂|drf`vXJXQrbpvnJ`ےdQZ|~f`HAbےZdQbtpvnJ`ےltb`vXnd|Z~HfprXQJtbdQpfH~˂pZHAd|Z~HfprXQJtbdQpfH~XQrbt`f~Zp˂tAJlnvpXQr˂JtArd`f~nXvtArdp`f˂rXQbdQZ|H~fZHAےf~Hp˂rJltvpfr˂ptArdf~HrXQJtAJl璕nvfHtlJXv`fbHAZpdrtAJvXn`JXQrlJtAXv`fbHAZpdQZ|vpfdQbtvnX`ےbZ|df`vbے`dQbtvnX`ےbZ|df`vlJAHfpvrXQJ`tbdQZfH~pZHAb|ZdQHfpv`f~|ZdQb~HfpJ`ےdrAJ`vXn`JXQrfpvXQJ`ےbdQZ|H~fZHAb|ZdQbfpv`ےtbdQZ~fZtAd|~Hf˂rXQltbvpfH˂pZrd|~Hf˂rXQdrtAJH~flJtArv`fHAZp˂rtAJlXnvJXQrlJtArv`fHAZp˂rtAJlXnv|ZdQbnXvےbHA|drf`vXے`JbtlnXvHfpvnXvےbHA|dtAfZHAbl|ZdQXv`fXQJ`ےbdQZ|H~fZHAb|ZdQbfpvXQJ`ےnvpr˂p|ZdQb~HfbHAZltbvpfH˂pZrd|HfpdrtAJvXnHAbےr󙐂ˁ`vˍpf`f~Zp˂Jlt˂pbtl~HfbHAZdrtA`vXnے`JXQtlJnXv`bHAZfHfZHAbtd|pvnp˂rdQZ|~f`HAbےZdQbtvnrltbvpfH`pZHAZQXb㉀H~ㅐfHfpvrXQJ`bnvZHAbJtArdpvnp˂rJltvpfr˂ptArdfHfdrtA`vXnے`JXQZdQbtXHfpXQJ`ےdrtAJvXn`JXQrlJtAXQJ`ےdQZ|~f`bے`ۑpJAH`vXnnXvےbHApfHے`JXQ|ZdQXv`fXQJ`ےbdQZ|H~fZHAb|ZdQbpvnJltvpfr˂plJtAvnXbHAZltbvpfH˂pZrdfHAZpdrtAJvXnJXQrr󙐉ەvˍpf`fHZdrf`vXr˂pbtl~fpvbHAZdrtA`vXnے`JXQtlJrXQJ`bdQZ|H~fZHAbrd|v`fprQJ`dQZ|~f`HAے`~Hf˂rXQltbvpfH˂pZHApJAHrH~ㅐffpvtAJlnvpZHAbJtAdQbnXv`p˂rJltvpfr˂ptArdےHAZdrtA`vXnے`JXQZdQbt~HfpےbHdrtAJvXnJXQrbpvnJ`ےdQZ|~f`bے`ˁ`Z`vXnnrXQJtbdQZfH~ے`pZtlJf~HXQJ`ےbdQZ|H~fZHAےf~Hp˂rJltvpfr˂pl|ZvnXAZp˂ltbvpfHtlJXv`fbHAZpdrtAJvXnJXQHAbQXb㉀ەvˍp|`ےHA|drf`vXHAbےtArdfpvbHAZdrtA`vXn`JXQrfpvXQJ`ےbdQZ|H~fZHAbdQbtv`pvrXQJ`dQZ|~fZtAd|~Hf˂rXQltbvpfHے`JpJAHrdrQtZp˂tAJlnvp`JXQr|ZdQbnXv`p˂rJltvpfbtlnXv`bHAZdrtA`vXnے`JXQlJtArnXvےbHdtAJlHAbےZdQbtpvnJ`ےdQZ|~f`XQr˂ˁ`pJltrXQJ`tbdQZfH~˂pZtlJf~fXQJ`ےbdQZ|H~fJtAdf~Hp˂rJltvpfr˂pd|Z`f~AZp˂tbn`JXQrlJtAXv`fbHAZpdrtAJvXnpZHAbJAHrbAdZ|ےbHA|drf`vXHAbےtArdtvnXbHAZdtAJZHAb|ZdQbfpvXQJ`ےbdQZ|H~fZHAbdQbtHfpvrQJvpf˂pZrd|~Hf˂rXQltbvpfHے`Jˁ`ZQXdrQtZp˂tAJlnvp`JXQHAlJtAv`fp˂rltbے`JXQtlJnXv`bHAZdrtA`vXnے`JXQlJtAdQnXvbHAZHf`HAbےZdQbtpvnJ`ےdQZ|~f`XQrb㉀ۑpJltrXQJ`tbdQZfH~bے`rd|~HfpXQJ`ےnvpr˂ptArdf~Hp˂rJltvpfr˂pbtl`fdrtAJvXn`JXQrlJtAXv`fbHAZpdrtAJvXnے`JXQJAHrbAdZ|ےbHA|drf`vXJXQrZdQbtvnXbHAZfHfZHAb|ZdQbfpvXQJ`ےbdQZ|H~fZHAbJtArdnXv`ltbvpfH˂pZrd|~Hf˂rXQltbvpfHr˂pˁ`pfdrQtZp˂tAJlnvp˂pZHAlJtAv`ffdrtA`vXnے`JXQtlJnXv`bHAZdrtA`vXnے`JXQ|ZdQf~HdQZ|~f`HAbےZdQbtpvnJ`ےdQZ|~f`ZHAbH~ㅐfJltrXQJ`tbdQZfH~bے`rd|pvnJltvpfr˂ptArdf~Hp˂rJltvpfr˂pbtlfpvdrtAJvXn`JXQrlJtAXv`fbHAZpdrtAJvXnے`JXQ`vXnbAdZ|ےbHA|drf`vXJXQrlJtArrXQJ`bdQZ|H~fZHAb|ZdQbfpvXQJ`ےbdQZ|H~fZHAbJtArdnXv`ltbvpfH˂pZrd|~Hf˂rXQltbvpfHr˂pvˍpfdrQtZp˂tAJlnvpے`Jd|ZےHAZdrtA`vXnے`JXQtlJnXv`bHAZdrtA`vXnے`JXQtlJpvndQZ|~f`HAbےZdQbtpvnJ`ےdQZ|~f``JXQrH~ㅐfJltrXQJ`tbdQZfH~XQr˂dQbtp˂rJltvpfr˂ptArdf~Hp˂rJltvpfr˂ptArdrXQJ`drtAJvXn`JXQrlJtAXv`fbHAZpdrtAJvXn˂pZ`vXnbAdZ|ےbHA|drf`vXpZHAblJtArXQJ`ےbdQZ|H~fZHAb|ZdQbfpvXQJ`ےbdQZ|H~fZHAb|ZdQbAZp˂ltbvpfH˂pZrd|~Hf˂rXQltbvpfHHAbےvˍpfdrQtZp˂tAJlnvpے`Jd|ZbHAZdrtA`vXnے`JXQtlJnXv`bHAZdrtA`vXnے`JXQtlJrXQJdQZ|~f`HAbےZdQbtpvnJ`ےdQZ|~f``JXQrH~ㅐfJltrXQJ`tbdQZfH~XQr˂dQtArdp˂rJltvpfr˂ptArdf~Hp˂rJltvpfr˂ptArd`ےbdrtAJvXn`JXQrlJtAXv`fbHAZpdrtAJvXn˂pZ`vXnbAdZ|ےbHA|drf`vXp`JXQf~XQJ`ےbdQZ|H~fZHAb|ZdQbfpvXQJ`ےbdQZ|H~fZHAb|lJtAHAZp˂ltbvpfH˂pZrd|~Hf˂rXQltbvpfHHAXQrvˍpfdrQtZp˂tAJlnvpr˂pHfvnXbHAZdrtA`vXnے`JXQtlJnXv`bHAZdrtA`vXnے`JXQrd|rXQJdQZ|~f`HAbےZdQbtpvnJ`ےdQZ|~f`˂pZHAH~ㅐfJltrXQJ`tbdQZfH~ZHAbv`fp˂rJltvpfr˂ptArdf~Hp˂rJltvpfr˂pZdQbtbHAZpdrtAJvXn`JXQrlJtAXv`fbHAZpdrtAJvXnbے``vXnbAdZ|ےbHA|drf`vXے`JXQ~HfpXQJ`ےbdQZ|H~fZHAb|ZdQbfpvXQJ`ےbdQZ|H~fZHAblJtA˂rXltbvpfH˂pZrd|~Hf˂rXQltbvpfHJXQrvˍpfdrQtZp˂tAJlnvpr˂pvnXbHAZdrtA`vXnے`JXQtlJnXv`bHAZdrtA`vXnے`JXQrd|QJ`ےdQZ|~f`HAbےZdQbtpvnJ`ےdQZ|~f`˂p`ZH~ㅐfJltrXQJ`tbdQZfH~ZHAXQrv`fp˂rJltvpfr˂ptArdf~Hp˂rJltvpfr˂pZdQtArbHAZpdrtAJvXn`JXQrlJtAXv`fbHAZpdrtAJvXnQXb㉀۝`vXnbAdZ|ےbHA|drf`vX˂pZ~HfpXQJ`ےbdQZ|H~fZHAb|ZdQbfpvXQJ`ےbdQZ|H~fZHAbdf˂rXltbvpfH˂pZrd|~Hf˂rXQltbvpfHpJAHrvˍpfdrQtZp˂tAJlnvpHAbےvnv`bHAZdrtA`vXnے`JXQtlJnXv`bHAZdrtA`vXnے`JXQ~HXvQJ`bdQZ|~f`HAbےZdQbtpvnJ`ےdQZ|~f`ˁ`ZH~ㅐfJltrXQJ`tbdQZfH~`JXQrf~Hp˂rJltvpfr˂ptArdf~Hp˂rJltvpfr˂p`f~AZp˂drtAJvXn`JXQrlJtAXv`fbHAZpdrtAJvXnQXb㉀`vXnbAdZ|ےbHA|drf`vX˂p`fpvXQJ`ےbdQZ|H~fZHAb|ZdQbfpvXQJ`ےbdQZ|H~fZHAbHfpvrXQJ`ltbvpfH˂pZrd|~Hf˂rXQltbvpfHˁ`ZQXvˍpfdrQtZp˂tAJlnvpJXQrbnXv`bHAZdrtA`vXnے`JXQtlJnXv`bHAZdrtA`vXnے`JXQnXvےbHAdQZ|~f`HAbےZdQbtpvnJ`ےdQZ|~f`b㉀ۑpH~ㅐfJltrXQJ`tbdQZfH~tl|f~Hp˂rJltvpfr˂ptArdf~Hp˂rJltvpfr˂p`f~Zp˂drtAJvXn`JXQrlJtAXv`fbHAZpdrtAJvXnJAHr󙐝`vXnbAdZ|ےbHA|drf`vXZdQbtfpvXQJ`ےbdQZ|H~fZHAb|ZdQbfpvXQJ`ےbdQZ|H~fZHAbHfp`rXQJ`ltbvpfH˂pZrd|~Hf˂rXQltbvpfHˁ`ZQXvˍpfdrQtZp˂tAJlnvplJtAnvfbHAZdrtA`vXnے`JXQtlJnXv`bHAZdrtA`vXnے`JXQf~HےbAZdQZ|~f`HAbےZdQbtpvnJ`ےdQZ|~f`b㉀ۑpH~ㅐfJltrXQJ`tbdQZfH~rd|~Hfpp˂rJltvpfr˂ptArdf~Hp˂rJltvpfr˂pfpvrXQdrtAJvXn`JXQrlJtAXv`fbHAZpdrtAJvXn`ZQXb`vXnbAdZ|ےbHA|drf`vXZdQbtvnXXQJ`ےbdQZ|H~fZHAb|ZdQbfpvXQJ`ےbdQZ|H~fZHAےnXv`J`ےltbvpfH˂pZrd|~Hf˂rXQltbvpfHۑpJvˍpfdrQtZp˂tAJlnvpd|Zv`fbHAZdrtA`vXnے`JXQtlJnXv`bHAZdrtA`vXn`JXQrf~HbHAZpdQZ|~f`HAbےZdQbtpvnJ`ےdQZ|~frAHr󙐂˕H~ㅐfJltrXQJ`tbdQZfH~dQbt~Hfpp˂rJltvpfr˂ptArdf~Hp˂rJltvpfbtlfpvrXQdrtAJvXn`JXQrlJtAXv`fbHAZpdtAJl˂pZ`ZQXb`vXnbAdZ|ےbHA|drf`vXlJtArvnXvXQJ`ےbdQZ|H~fZHAb|ZdQbfpvXQJ`ےbdQZ|H~f|ZdQb~HfJ`ےltbvpfH˂pZrd|~Hf˂rXQtbnHAbےۑpJvˍpfdrQtZp˂tAJlnvpd|Zf~HfbHAZdrtA`vXnے`JXQtlJnXv`bHAZdtAJZHAbtlJpvnbHAZrdQZ|~f`HAbےZdQbtpvnJ`ےvpf`JXQrAHQXb㉀H~ㅐfJltrXQJ`tbdQZfH~dQbtpvnp˂rJltvpfr˂ptArdf~Hp˂rltbے`JXQtArdXv`fXQJ`ےdrtAJvXn`JXQrlJtAXv`fbHAZHf`˂pZۑpJAH`vXnbAdZ|JJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKK \ No newline at end of file diff --git a/vendor/endroid/qr-code/assets/data/qrv37_1.dat b/vendor/endroid/qr-code/assets/data/qrv37_1.dat deleted file mode 100755 index 233b589ca..000000000 --- a/vendor/endroid/qr-code/assets/data/qrv37_1.dat +++ /dev/null @@ -1,329 +0,0 @@ -~}~}~}~}~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmlklklklkjijijijijijijijighghghghhghghghgfefefefefefefefedcdcdcdcdcdcbabababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPONMMMMMMNNMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:98787878787878765656565656565653333434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#~}~}~}~}~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmlklklklkjijijijijijijijighghghghgggghghgfefefefefefedcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOMNMNMNMNNMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;:9:9:9:9:9:9:9878787878787878765656565656565654343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#~}~}~}~}~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmlklklklkjijijijijijijijighghghghhghgfefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOMNMNMNMNNMNMNMMMLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9878787878787878765656565654343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#~}~}~}~}~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmlklklklkjijijijijijijijighghghghfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOMNMNMNMNMMMNMNMNLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9878787878787878765656565433333344343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#~}~}~}~}~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmlklklklkjijijijijijijijighghghghfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQPOPOPOPOPOPOPOPOMNMNMNMNMNMNMNMNLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABA@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9878787878787878765656565343434344343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#~}~}~}~}~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmlklklklklkjijijijijijijijighggggggfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQPOPOPOPOPOPOPOPOMNMNMNMNMNMNMNMNLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCBABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9878787878787878765656565343434344343433321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#~}~}~}~}~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopopopopoponmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQPOPOPOPOPOPOPOPOMMMMMMNMMNMNMNMNLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9878787878787878765656565343434343334343421212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#~}~}~}~}~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqpopopopoponmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijihghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMMNMNMNMNLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9878787878787878765656565343434343434343421212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#~}~}~}~}~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutststststststsrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmlklklklklklklklkjijijijihghghggghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMMNMNMMMMLKLKLKLKLKLKLKLKJIJIJIJIJIHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9878787878787878765656565343434343434343421212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#~}~}~}~}~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvutststststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmlklklklklklklklkjijijijiggghghghhghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMMMNMNMNMLKLKLKLKLKJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9878787878787878765656565333333433434343421212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#~}~}~}~}~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmlklklklklklklklkjijijijighghghghhghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMNMLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9878787878787878765656565434343433434343421212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#"!"!"!"!~}~}~}~}~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmlklklklklklklklkjijijijighghghghhgggggghfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9878787878787876565656565434343433434333321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!~}~}~}~}~}~}~}~}|{|{|{|{|{|{|{zyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmlklklklklklklklkjijijijighghghghghghghghfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQPOPOPOPOPOPOPOPOMMMMMNMNLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9878787876565656565656565434343433343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!~}~}~}~}~}~}~}|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmlklklklklklklklkjijijijighghghghghghghghfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSRQRQRQRQRQRQPOPOPOPOPOPOPOPOMNMNMNMNLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9878787876565656565656565434343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!~}~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmlklklklklklklklkjijijijighghggggghghghghfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPOMNMNMNMNLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9878787876565656565656565434343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!~}~}~}~}~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmlklklklklklklklkjijijijigghghghgghghghghfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPONMNMMNMNMNMNLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9878787876565656565656565333334344343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!~}~}~}~}~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmlklklklklklklklkjijijijihghghghgghghghghfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPONMNMMMMMMNMNMNMNLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9878787876565656565656565343434344343333321212121212121210/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!~}~}~}~}~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmlklklklklkjijijijijijijihghghghggggggghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[ZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPONMNMNMNMMNMNMNMMLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:98787878765656565656565653434343443434343212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!~}~}~}~}~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmlklklklkjijijijijijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPONMNMNMNMMMMMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:98787878765656565656565653434343421212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!~}~}~}~}~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmlklklklkjijijijijijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:98787878765656565656565653434343421212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!~}~}~}~}~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmnmlklklklkjijijijijijijijihghggggghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababa`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:98787878765656565656565653434343321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!                - - - - - - - - "!"!"!"!"!"!"!"!                - - - - - - - - "!"!"!"!"!"!"!"!                - - - - - - - - "!"!"!"!"!"!"!"!                - - - - - - - - "!"!"!"!"!"!"!"!            - - - - - - - - "!"!"!"!                - - - - - - - - "!"!"!"!                - - - - - - - - "!"!"!"!                - - - - - - - - "!"!"!"!                - - - - - - - - "!"!"!"!                - - - - - - - - "!"!"!"!                - - - - - - - - "!"!"!"!                - - - - - - - - "!"!"!"!                - - - - - - - - "!"!"!"!                - - - - - - - "!"!"!"!                - - - - - "!"!"!"!               - - - - - - - - "!"!"!"!             - - - - - - - - "!"!"!"!                - - - - - - - - "!"!"!"!                - - - - - - - - "!"!"!"!                - - - - - - - - "!"!"!"!                - - - - - - - - PPOONNMMiijjkkllZZ[[\\]],++**))(55667788llkkjjii==>>??@@ddccbbaa EEFFGGHH\\[[ZZYYMMNNOOPPTTSSRRQQUUVVWWXXLLKKJJII uuvvwwxxggffeedd^__``aab;;::9988nnooppqq33221100""##$$%%vvwwxxyy~~}}||++**))((**++,,--~~wwvvuutt##""!! 22334455oonnmmll::;;<<==XXWWVVUU||}}~~hggffeed - - KKLLMMNNVVUUTTSSSSTTUUVVNNMMLLKK - -[[\\]]^^FFEEDDCCccddeeff>>==<<;;kkllmmnn66554433(())**++LLKKJJIIwwxxyyzzyyxxwwvv%%$$##""00112233qqppoonn8899::;;iihhggff@@AABBCCaa``__^^ - -HHIIJJKKYYXXWWVVPPQQRRSS==<<;;:://001122QPONMMLL aabbccdd@@??>>==iijjkkll88776655 qqrrsstt00//..--%%&&''((yyzz{{||||{{zzyy((''&&%%LLKKJJIImmnnoopp~~}}||{{^^__``aa(''&&%%$99::;;<>??@@AATTSSMMLL dccbbaa`OOPPQQRRRRQQPPOOWWXXYYZZJJIIHHGG __``aabbBBAA@@??gghhiijj::998877ooppqqrr221100//,,--..//HHGGFFEE !!""#{{||}}~~uuttssrr!! 44556677mmllkkjj<<==>>??eeddccbbDDEEFFGG]]\\[[ZZ LLMMNNOOUUTTSSRRTTUUVVWW993322113399::;;KKJJIIHHeeffgghh<<;;::99mmnnoopp44332211!!""##$$uuvvwwxx~~}},,++**))))**++,,}}~~xxwwvvuu$$##""!!HHGGFFEE qqrrssttzzyyxxwwbbccddee~~}}||$##""!! ==>>??@@ddccbbaa EEFFGGHH\\[[ZZYYMMNNOOPPTTSSRRQQUUVVWWXXLLKKJJII - - ]]^^__``DDCCBBAA}}~~__^^]]\\ fgghijkl33221100""##$$%%vvwwxxyy~~}}||++**))((**++,,--~~wwvvuutt##""!! 22334455oonnmmll::;;<<==ggffeeddBBCCDDEEKKJJIIHH!!""##$$`__^^]]\SSTTUUVVNNMMLLKK - -[[\\]]^^FFEEDDCCccddeeff>>==<<;;kkllmmnn66554433 !!""ssttuuvv..--,,++00112233DDCCBBAA#$$%%&&'qqppoonn8899::;;iihhggff@@AABBCCaa``__^^ - -HHIIJJKKYYXXWWVVPPQQRRSSQQPPOONNXXYYZZ[[00//..--<<==>>??GGFFEEDDiijjkkll88776655 qqrrsstt00//..--%%&&''((yyzz{{||||{{zzyy((''&&%%--..//00ttssrrqq DDCCBBAA!!""##$$uuvvwwxxvvuuttss ffggmmnn{{zzyyxx AABBCCDD``__^^]] - - IIJJKKLLXXWWVVUUQQRRSSTTPPOONNMMYYZZ[[\\HHGGFFEE aabbccdd@@??>>== !![[ZZYYXXmmnnoopp//..--,,&&''(())zz{{||}}{{zzyyxx''&&%%$$..//0011ssrrqqpp66778899kkjjiihh>>??@@AAccbbaa`` FFGGHHIIGGFFEEDD%%&&''((\[[ZZYYXWWXXYYZZJJIIHHGG __``aabbBBAA@@??gghhiijj::998877ooppqqrr221100//##$$%%&&wwxxyyzz~~}}||{{**))((''99::;;<<@@??>>=='(())**+mmllkkjj<<==>>??eeddccbbDDEEFFGG]]\\[[ZZ LLMMNNOOUUTTSSRRTTUUVVWWMMLLKKJJ - - \\]]^^__,,++**))@@AABBCCCCBBAA@@mmnnoopp44332211!!""##$$uuvvwwxx~~}},,++**))))**++,,}}~~xxwwvvuu$$##""!!11223344ppoonnmm@@??>>==%%&&''((yyzz{{||rrqqppoo - - - -ooppqqrrwwvvuuttEEFFGGHH\\[[ZZYYMMNNOOPPTTSSRRQQUUVVWWXXLLKKJJII - - ]]^^__``DDCCBBAAeeffgghh<<;;::99""##$$%%WWVVUUTTqqrrsstt~~}}||++**))((**++,,--~~wwvvuutt##""!! 22334455oonnmmll::;;<<==ggffeeddBBCCDDEE__^^]]\\ - - JJKKLLMMCCBBAA@@))**++,,XWWVVUUT - -[[\\]]^^FFEEDDCCccddeeff>>==<<;;kkllmmnn66554433 !!""ssttuuvv..--,,++''(())**{{||}}~~zzyyxxww&&%%$$##==>>??@@<<;;::99+,,--../iihhggff@@AABBCCaa``__^^ - -HHIIJJKKYYXXWWVVPPQQRRSSQQPPOONNXXYYZZ[[IIHHGGFF ``aabbcc((''&&%%DDEEFFGG??>>==<< qqrrsstt00//..--%%&&''((yyzz{{||||{{zzyy((''&&%%--..//00ttssrrqq 55667788llkkjjii<<;;::99))**++,,}}~~nnmmggff ssttuuvvssrrqqppIIJJKKLLXXWWVVUUQQRRSSTTPPOONNMMYYZZ[[\\HHGGFFEE aabbccdd@@??>>==iijjkkll88776655&&''(())SSMMLLKKuuvvwwxx{{zzyyxx''&&%%$$..//0011ssrrqqpp66778899kkjjiihh>>??@@AAccbbaa`` FFGGHHII[[ZZYYXXNNOOPPQQ??>>==<<--..//00TSSRQPON __``aabbBBAA@@??gghhiijj::998877ooppqqrr221100//##$$%%&&wwxxyyzz~~}}||{{**))((''++,,--..vvuuttss""!! AABBCCDD33221100/0011223eeddccbbDDEEFFGG]]\\[[ZZ LLMMNNOOUUTTSSRRTTUUVVWWMMLLKKJJ - - \\]]^^__EEDDCCBBddeeffgg$$##""!!HHIIJJKK;;::9987!!""##$$uuvvwwxx~~}},,++**))))**++,,}}~~xxwwvvuu$$##""!!11223344ppoonnmm99::;;<>==<<;;kkllmmnn66554433 !!""ssttuuvv..--,,++''(())**{{||}}~~zzyyxxww&&%%$$##//001122rrqqppooEEFFGGHH//..--,,34567899aa``__^^ - -HHIIJJKKYYXXWWVVPPQQRRSSQQPPOONNXXYYZZ[[IIHHGGFF ``aabbccAA@@??>>hhiijjkk LLMMSSTT65433221%%&&''((yyzz{{||||{{zzyy((''&&%%--..//00ttssrrqq 55667788llkkjjii==>>??@@ddccbbaa 4433221111223344aa``__^^{{||}}~~jihggffe - -QQRRSSTTPPOONNMMYYZZ[[\\HHGGFFEE aabbccdd@@??>>==iijjkkll88776655 qqrrsstt00//..--..//0011FFEEDDCC!""##$$%}}~~ssrrqqpp66778899kkjjiihh>>??@@AAccbbaa`` FFGGHHII[[ZZYYXXNNOOPPQQSSRRQQPPVVWWXXYY221100//::;;<<==IIHHGGFFgghhiijj::998877ooppqqrr221100//##$$%%&&wwxxyyzz~~}}||{{**))((''++,,--..vvuuttss""!! 33445566nnmmllkkIIJJKKLL++**))((::;;<<==]]\\[[ZZ LLMMNNOOUUTTSSRRTTUUVVWWMMLLKKJJ - - \\]]^^__EEDDCCBBddeeffgg==<<;;::llmmnnoo~~}}||UUVVWWXX100//..-))**++,,}}~~xxwwvvuu$$##""!!11223344ppoonnmm99::;;<>??@@AAEEDDCCBBkkllmmnn66554433 !!""ssttuuvv..--,,++''(())**{{||}}~~zzyyxxww&&%%$$##//001122rrqqppoo778899::jjiihhggMMSSTTUU''&&%%$$>>??@@AAYYXXWWVVPPQQRRSSQQPPOONNXXYYZZ[[IIHHGGFF ``aabbccAA@@??>>hhiijjkk99887766ppqqrrss{{zzyyxxYYZZ[[\\-,,++**)--..//00ttssrrqq 55667788llkkjjii==>>??@@ddccbbaa EEFFGGHH\\[[ZZYY~~}},,++**))99::;;<>==iijjkkll88776655 qqrrsstt00//..--%%&&''((yyzz{{||||{{zzyy((''&&%%;;<<==>>>>==<<;;)**++,,-kkjjiihh>>??@@AAccbbaa`` FFGGHHII[[ZZYYXXNNOOPPQQSSRRQQPPVVWWXXYYKKJJIIHH - - ^^__``aa**))((''BBCCDDEEAA@@??>>ooppqqrr221100//##$$%%&&wwxxyyzz~~}}||{{**))((''++,,--..vvuuttss""!! 33445566nnmmllkk;;<<==>>ffeeddccVVWWXXYY##""!! BBCCDDEEUUTTSSRRTTUUVVWWMMLLKKJJ - - \\]]^^__EEDDCCBBddeeffgg==<<;;::llmmnnoo55443322 !!""##ttuuvvwwwwvvuutt ]]^^__``)((''&&%11223344ppoonnmm99::;;<>??@@UUTTSSMM$$%%&&'']\\[[ZZY - - ]]^^__``DDCCBBAAeeffgghh<<;;::99mmnnoopp44332211!!""##$$uuvvwwxx~~}},,++**))))**++,,}}~~xxwwvvuu$$##""!!??@@AABB::993322-..//001ggffeeddBBCCDDEE__^^]]\\ - - JJKKLLMMWWVVUUTTRRSSTTUUOONNMMLL ZZ[[\\]]GGFFEEDDbbccddee&&%%$$##FFGGHHII==<<;;:: !!""ssttuuvv..--,,++''(())**{{||}}~~zzyyxxww&&%%$$##//001122rrqqppoo778899::jjiihhgg??@@AABBbbaa``__ ZZ[[\\]]FFGGHHIIQQPPOONNXXYYZZ[[IIHHGGFF ``aabbccAA@@??>>hhiijjkk99887766ppqqrrss1100//..$$%%&&''xxyyzz{{ssrrqqpp - - aabbccdd~~}}%$$##""!55667788llkkjjii==>>??@@ddccbbaa EEFFGGHH\\[[ZZYYMMNNOOPPTTSSRRQQxxwwvvuu$$##""!!AABBCCDDLLKKJJII(())**++YXXWWVVU aabbccdd@@??>>==iijjkkll88776655 qqrrsstt00//..--%%&&''((yyzz{{||||{{zzyy((''&&%%--..//00ttssrrqq CCDDEEFF1100//..12233456ccbbaa`` FFGGHHII[[ZZYYXXNNOOPPQQSSRRQQPPVVWWXXYYKKJJIIHH - - ^^__``aaCCBBAA@@ffgghhii""!! JJKKLLMM99876543##$$%%&&wwxxyyzz~~}}||{{**))((''++,,--..vvuuttss""!! 33445566nnmmllkk;;<<==>>ffeeddccCCDDEEFF^^]]\\[[ - - ^^__``aa~~}}||{{JJKKLLMMMMLLKKJJ - - \\]]^^__EEDDCCBBddeeffgg==<<;;::llmmnnoo55443322 !!""##ttuuvvww~~--,,++**(())**++||}}~~oonnmmggeeffggmm||{{zzyy! 99::;;<>==<<jjkkllmm~~SSTTUUVV3221100/''(())**{{||}}~~zzyyxxww&&%%$$##//001122rrqqppoo778899::jjiihhgg??@@AABBbbaa``__ GGHHIIJJZZYYXXWWbbccddeezzyyxxwwNOPQRSSTIIHHGGFF ``aabbccAA@@??>>hhiijjkk99887766ppqqrrss1100//..$$%%&&''xxyyzz{{}}||{{zz))((''&&,,--..//ffeeddcc nnooppqqxxwwvvuu==>>??@@ddccbbaa EEFFGGHH\\[[ZZYYMMNNOOPPTTSSRRQQUUVVWWXXLLKKJJII - - ppoonnmmIIJJKKLLDDCCBBAA00112233ONMMLLKKiijjkkll88776655 qqrrsstt00//..--%%&&''((yyzz{{||||{{zzyy((''&&%%--..//00ttssrrqq 55667788llkkjjiiKKLLMMSS))((''&&<<==>>??[[ZZYYXXNNOOPPQQSSRRQQPPVVWWXXYYKKJJIIHH - - ^^__``aaCCBBAA@@ffgghhii;;::9988nnooppqq}}||{{zzWWXXYYZZ/..--,,+++,,--..vvuuttss""!! 33445566nnmmllkk;;<<==>>ffeeddccCCDDEEFF^^]]\\[[ - - KKLLMMNNVVUUTTSSffggmmnnvvuuttss TUUVVWWXEEDDCCBBddeeffgg==<<;;::llmmnnoo55443322 !!""##ttuuvvww~~--,,++**(())**++||}}~~yyxxwwvv%%$$##""00112233bbaa``__ - - rrssttuuttssrrqqAABBCCDD``__^^]] - - IIJJKKLLXXWWVVUUQQRRSSTTPPOONNMMYYZZ[[\\HHGGFFEE llkkjjiiMMNNOOPP@@??>>==99::;;<>==<<jjkkllmm77665544 !!rrssttuuyyxxwwvv[[\\]]^^+**))(('//001122rrqqppoo778899::jjiihhgg??@@AABBbbaa``__ GGHHIIJJZZYYXXWWOOPPQQRRRRQQPPOO - -ooppqqrrrrqqppoo - - XYYZZ[[\AA@@??>>hhiijjkk99887766ppqqrrss1100//..$$%%&&''xxyyzz{{}}||{{zz))((''&&,,--..//uuttssrr!! 44556677^^]]\\[[vvwwxxyyppoonnmmEEFFGGHH\\[[ZZYYMMNNOOPPTTSSRRQQUUVVWWXXLLKKJJII - - ]]^^__``DDCCBBAAhhggffeeQQRRSSTT<<;;::99==>>??@@FFEEDDCC qqrrsstt00//..--%%&&''((yyzz{{||||{{zzyy((''&&%%--..//00ttssrrqq 55667788llkkjjii==>>??@@ddccbbaa XXYYZZ[[!! DDEEFFGGSSRRQQPPVVWWXXYYKKJJIIHH - - ^^__``aaCCBBAA@@ffgghhii;;::9988nnooppqq33221100""##$$%%vvwwxxyyuuttssrr - -__``aabb'&&%%$$#33445566nnmmllkk;;<<==>>ffeeddccCCDDEEFF^^]]\\[[ - - KKLLMMNNVVUUTTSSSSTTUUVVNNMMLLKK ssttuuvvnnmmggff\]]^^__`==<<;;::llmmnnoo55443322 !!""##ttuuvvww~~--,,++**(())**++||}}~~yyxxwwvv%%$$##""00112233qqppoonn8899::;;ZZYYXXWWzz{{||}}lkjihggf IIJJKKLLXXWWVVUUQQRRSSTTPPOONNMMYYZZ[[\\HHGGFFEE aabbccdd@@??>>==ddccbbaa UUVVWWXX33221100AABBCCDDBBAA@@??!!""##$$uuvvwwxx~~}},,++**))))**++,,}}~~xxwwvvuu$$##""!!11223344ppoonnmm99::;;<>==<<jjkkllmm77665544 !!rrssttuu//..--,,&&''(())zz{{||}}qqppoonn ccddeeff~~}}||{{#""!! 778899::jjiihhgg??@@AABBbbaa``__ GGHHIIJJZZYYXXWWOOPPQQRRRRQQPPOOWWXXYYZZJJIIHHGGwwxxyyzzeeddccbb`aabbccd99887766ppqqrrss1100//..$$%%&&''xxyyzz{{}}||{{zz))((''&&,,--..//uuttssrr!! 44556677mmllkkjj<<==>>??VVUUTTSS~~feeddccb - - MMNNOOPPTTSSRRQQUUVVWWXXLLKKJJII - - ]]^^__``DDCCBBAAeeffgghh<<;;::99``__^^]] - - YYZZ[[\\//..--,,EEFFGGHH>>==<<;;%%&&''((yyzz{{||||{{zzyy((''&&%%--..//00ttssrrqq 55667788llkkjjii==>>??@@ddccbbaa EEFFGGHH\\[[ZZYY``aabbcc||{{zzyyLLMMNOPQKKJJIIHH - - ^^__``aaCCBBAA@@ffgghhii;;::9988nnooppqq33221100""##$$%%vvwwxxyy~~}}||++**))((**++,,--~~mmggffeeggmmnnoozzyyxxww;;<<==>>ffeeddccCCDDEEFF^^]]\\[[ - - KKLLMMNNVVUUTTSSSSTTUUVVNNMMLLKK - -[[\\]]^^FFEEDDCC{{||}}~~aa``__^^ - - deeffggh55443322 !!""##ttuuvvww~~--,,++**(())**++||}}~~yyxxwwvv%%$$##""00112233qqppoonn8899::;;iihhggff@@AABBCCMMLLKKJJ !!""baa``__^QQRRSSTTPPOONNMMYYZZ[[\\HHGGFFEE aabbccdd@@??>>==iijjkkll88776655 --..//00\\[[ZZYY - - ]]^^__``++**))((IIJJKKLL::998765))**++,,}}~~xxwwvvuu$$##""!!11223344ppoonnmm99::;;<>==<<jjkkllmm77665544 !!rrssttuu//..--,,&&''(())zz{{||}}{{zzyyxx''&&%%$$..//0011ddccbbaa - - ppqqrrssvvuuttss??@@AABBbbaa``__ GGHHIIJJZZYYXXWWOOPPQQRRRRQQPPOOWWXXYYZZJJIIHHGG __``aabbBBAA@@??]]\\[[ZZ ijklmmnn1100//..$$%%&&''xxyyzz{{}}||{{zz))((''&&,,--..//uuttssrr!! 44556677mmllkkjj<<==>>??eeddccbbDDEEFFGGIIHHGGFF##$$%%&&^]]\\[[ZUUVVWWXXLLKKJJII - - ]]^^__``DDCCBBAAeeffgghh<<;;::99mmnnoopp44332211!!""##$$11223344XXWWVVUU aabbccdd''&&%%$$MMSSTTUU43322110--..//00ttssrrqq 55667788llkkjjii==>>??@@ddccbbaa EEFFGGHH\\[[ZZYYMMNNOOPPTTSSRRQQmmnnooppttssrrqq - - VWWXXYYZCCBBAA@@ffgghhii;;::9988nnooppqq33221100""##$$%%vvwwxxyy~~}}||++**))((**++,,--~~wwvvuutt##""!! 22334455``__^^]] ttuuvvwwrrqqppooCCDDEEFF^^]]\\[[ - - KKLLMMNNVVUUTTSSSSTTUUVVNNMMLLKK - -[[\\]]^^FFEEDDCCccddeeff>>==<<;; !!""##YYXXWWVVooppqqrr~~--,,++**(())**++||}}~~yyxxwwvv%%$$##""00112233qqppoonn8899::;;iihhggff@@AABBCCaa``__^^ - -HHIIJJKKEEDDCCBB''(())**ZYYXXWWVYYZZ[[\\HHGGFFEE aabbccdd@@??>>==iijjkkll88776655 qqrrsstt00//..--%%&&''((55667788TTSSRRQQeeffgghh##""!! VVWWXXYY0//..--,11223344ppoonnmm99::;;<>==<<jjkkllmm77665544 !!rrssttuu//..--,,&&''(())zz{{||}}{{zzyyxx''&&%%$$..//0011ssrrqqpp66778899\\[[ZZYYxxyyzz{{nnmmlkji GGHHIIJJZZYYXXWWOOPPQQRRRRQQPPOOWWXXYYZZJJIIHHGG __``aabbBBAA@@??gghhiijj::998877$$%%&&''UUTTSSMMssttuuvv}}||{{zz))((''&&,,--..//uuttssrr!! 44556677mmllkkjj<<==>>??eeddccbbDDEEFFGG]]\\[[ZZ LLMMNNOOAA@@??>>++,,--..VUUTTSSR - - ]]^^__``DDCCBBAAeeffgghh<<;;::99mmnnoopp44332211!!""##$$uuvvwwxx~~}},,++**))))**++,,99::;;<<==>>??@@ddccbbaa XXYYZZ[[!! DDEEFFGGSSRRQQPPVVWWXXYYKKJJIIHH - - ^^__``aaCCBBAA@@ffgghhii;;::9988nnooppqqzzyyxxwwbbccddeessrrqqppFFGGHHIIAABBCCDD``__^^]] - - \\]]^^__~~}}HHIIJJKKOONNMMLL ZZ[[\\]]GGFFEEDDbbccddee??>>==<<jjkkllmm77665544 !!rrssttuuvvuuttss ffggmmnnoonnmmllJJKKLLMMEEFFGGHH\\[[ZZYY``aabbcc||{{zzyyLLMMNOPQKKJJIIHH - - ^^__``aaCCBBAA@@ffgghhii;;::9988nnooppqq33221100""##$$%%vvwwxxyyrrqqppoo - - - -ooppqqrrkkjjiihhNNOOPPQQIIJJKKLLXXWWVVUUddeeffggxxwwvvuu RSSTTUUVGGFFEEDDbbccddee??>>==<<jjkkllmm77665544 !!rrssttuu//..--,,&&''(())zz{{||}}nnmmggff ssttuuvvggffeeddRRSSTTUUMMNNOOPPTTSSRRQQmmnnooppttssrrqq - - VWWXXYYZCCBBAA@@ffgghhii;;::9988nnooppqq33221100""##$$%%vvwwxxyy~~}}||++**))((**++,,--~~eeddccbbwwxxyyzzccbbaa`` VVWWXXYYQQRRSSTTPPOONNMM - - qqrrssttppoonnmmZ[[\\]]^??>>==<<jjkkllmm77665544 !!rrssttuu//..--,,&&''(())zz{{||}}{{zzyyxx''&&%%$$..//0011aa``__^^{{||}}~~__^^]]\\ - - ZZ[[\\]]UUVVWWXXLLKKJJII uuvvwwxxggffeedd^__``aab;;::9988nnooppqq33221100""##$$%%vvwwxxyy~~}}||++**))((**++,,--~~wwvvuutt##""!! 22334455]]\\[[ZZ[[ZZYYXX - - ^^__``aaYYZZ[[\\HHGGFFEEyyzz{{||ccbbaa`` - -bccddeef77665544 !!rrssttuu//..--,,&&''(())zz{{||}}{{zzyyxx''&&%%$$..//0011ssrrqqpp66778899YYXXWWVV !!""##WWVVUUTTbbccddee]]^^__``DDCCBBAA}}~~__^^]]\\ fgghijkl33221100""##$$%%vvwwxxyy~~}}||++**))((**++,,--~~wwvvuutt##""!! 22334455oonnmmll::;;<<==UUTTSSMM$$%%&&''SSRRQQPPffgghhiiaabbccdd@@??>>== !![[ZZYYXXmmnnoopp//..--,,&&''(())zz{{||}}{{zzyyxx''&&%%$$..//0011ssrrqqpp66778899kkjjiihh>>??@@AALLKKJJII(())**++OONNMMLLjjkkllmmeeffgghh<<;;::99""##$$%%WWVVUUTTqqrrsstt~~}}||++**))((**++,,--~~wwvvuutt##""!! 22334455oonnmmll::;;<<==ggffeeddBBCCDDEEHHGGFFEE,,--..//KKJJIIHHnnooppqqiijjkkll88776655&&''(())SSMMLLKKuuvvwwxx{{zzyyxx''&&%%$$..//0011ssrrqqpp66778899kkjjiihh>>??@@AAccbbaa`` FFGGHHIIDDCCBBAA00112233GGFFEEDD !!rrssttuummnnoopp44332211**++,,--JJIIHHGG !yyzz{{||wwvvuutt##""!! 22334455oonnmmll::;;<<==ggffeeddBBCCDDEE__^^]]\\ - - JJKKLLMM@@??>>==99::;;<>??@@AAccbbaa`` FFGGHHII[[ZZYYXXNNOOPPQQ<<;;::99==>>??@@??>>==<<&&''(())zz{{||}}uuvvwwxx~~}},,++**))223399::BBAA@@??%&&''(()oonnmmll::;;<<==ggffeeddBBCCDDEE__^^]]\\ - - JJKKLLMMWWVVUUTTRRSSTTUU33221100AABBCCDD;;::9988**++,,--~~yyzz{{||||{{zzyy((''&&%%;;<<==>>>>==<<;;)**++,,-kkjjiihh>>??@@AAccbbaa`` FFGGHHII[[ZZYYXXNNOOPPQQSSRRQQPPVVWWXXYY//..--,,EEFFGGHH77665544..//0011}}~~xxwwvvuu$$##""!!??@@AABB::993322-..//001ggffeeddBBCCDDEE__^^]]\\ - - JJKKLLMMWWVVUUTTRRSSTTUUOONNMMLL ZZ[[\\]]++**))((IIJJKKLL3322110022334455ttssrrqq CCDDEEFF1100//..12233456ccbbaa`` FFGGHHII[[ZZYYXXNNOOPPQQSSRRQQPPVVWWXXYYKKJJIIHH - - ^^__``aa''&&%%$$MMSSTTUU//..--,,66778899ppoonnmmGGHHIIJJ--,,++**7899::;;__^^]]\\ - - JJKKLLMMWWVVUUTTRRSSTTUUOONNMMLL ZZ[[\\]]GGFFEEDDbbccddee##""!! VVWWXXYY~~}}||++**))((::;;<<==llkkjjiiKKLLMMSS))((''&&<<==>>??[[ZZYYXXNNOOPPQQSSRRQQPPVVWWXXYYKKJJIIHH - - ^^__``aaCCBBAA@@ffgghhiiZZ[[\\]]{{zzyyxx''&&%%$$>>??@@AAhhggffeeTTUUVVWW%%$$##""@@AABBCCWWVVUUTTRRSSTTUUOONNMMLL ZZ[[\\]]GGFFEEDDbbccddee??>>==<<jjkkllmm~~}}||{{^^__``aawwvvuutt##""!! BBCCDDEEZHAbZHAb|ZdQb|ZdQbp`fnXbHAZprtAJldrtAH~fH~fr˂pr˂ptlJtlJfpvfpvp˂rp˂rdrtAdtAJH~fH~fr˂pbtltlJfpvfpvXQJ`ےp˂rdrtAJnvpvXnۀ˂pZ˂pZlJtAlJtApvnpvn˂rXQ˂rXQdrtAJdrtAJ~f`~f`˂pZ˂pZlJtAlJtApvnpvn˂rXQ˂rXQJltf`vXfH~ZHAbr˂plJtArlJtArvnXnrXQrXQJrtAJlrtAJlf`vf`v˂pZHA˂pZHAlJtArlJtArvnXvnXrXQJrXQJrtAJlrtAJlfH~nvpے`JXQtJArddQbt璀nXvnXvrXQJ`rXQJ`tAJltAJlf`vXf`vXpZHAbpZHAbJtArdJtArdnXvnXvrXQJ`rXQJ`tAJlJltf`vXfZHAbXQr˂dQbtd|Zf~HfXQJ`ےXQJ`ےJltJlt`vXn`vXnZHAbZHAbtArdtArdnXv`nXv`XQJ`ےXQJ`ےJltJltے`JXQے`JXQtlJtlJ~Hfpv`f˂rXQbQZ|Jlt`vXn`vXnZHAbZHAbtArdtArdnXv`nXv`XQJ`ےXQJ`ےJltltb`vXnZHAbZHAbJtAdtArdnXv`nXv`bHAZXQJ`ےltbff`vvpfHHAbےHAbےrd|rd|Xv`fXv`fJ`ےJ`ےltbltbvXnvXnHAbےHAbےrd|rd|Xv`fXv`fJ`ےJ`ےbdQtAJnff`pf`JXQZA`Jd|Zdfv`fJ`ے`ےbtbdQtbdQXnvXnvbے`bے`d|Zd|Zv`fv`f`ےb`ےbtbdQtbdQf`vXfH~r˂p|ZdlJtAr`f~`f~ےbHAےbHAtbdQZtbdQZnvpnvpے`Jے`J|ZdQ|ZdQ`f~`fHےbHAےbHAtbdQZbnvnvp˂pp`JXQl|ZdQdQtArdpvnbHAZbHAZbdQZ|bdQZ|vpfvpfے`JXQے`JXQ|ZdQb|ZdQbf~Hf~HbHAZbHAZbdQZ|bdQZ|r˂pr˂ptArdtArdvnX~HfpJ`ےdrtAJbdQZ|vpfvpfے`JXQے`JXQ|ZdQb|ZdQbf~HfHfbHAZbHAZbdQZ|nvpvpfے`JXQے`JXQ|ZdQb|ZdQbf~Hf~Hp˂rbHAZdQZ|Xnv~fvn`JXQr`JXQrZdQbtZdQbt~Hf~HfbHAZpbHAZpdQZ|dQZ|vpfHvpfH`JXQr`JXQrZdQbtZdQbt~Hf~HfbHAZpbHAZpltb`vXnH~fr˂pXQrbtdQbt~Hfp~HfpHAZp˂HAZp˂Z|dZ|dpfH~pfH~JXQrJXQrdQbtdQbt~Hfp~HfpHAZp˂HAZp˂Z|dZ|dnvpf`vXZHAbQbtld|ZQHfpvHfpvZp˂Zp˂|dr|drfH~fH~XQr˂XQr˂btlbtlHfpvfpvZp˂Zdr|drpfHfH~ZHAbr˂pbtlf~Xv`fp˂rp˂rdrtAdrtAH~fH~fr˂pr˂ptlJtlJfpvfpvp˂rp˂rdrtAdrtAZHAbZHAb|ZdQb|ZdQbv`fvnXbHAXQJltbdrAJH~fH~fr˂pr˂ptlJtlJfpvpvnp˂rdrtAdrtAfHfH~fr˂pr˂ptlJtlJfpvfpvXQHAZpp`ےdrtAJpfH~vpf˂pZ˂pZlJtAlJtApvnpvn˂rXQ˂rXQdrtAJdrtAJ~f`~f`˂pZ˂pZlJtAlJtApvnpvn˂rXQ˂rXQdQZ|vpf`vXnZHAblJtAlJtArvnXvnXrXQJrXQJrtAJlrtAJlf`vf`v˂pZHA˂pZHAlJtArlJtArvnXvnXrXQJrXQJrtAJlrtAJl`vXnH~fے`JXQJtArdblJtnXvnXvrXQJ`rXQJ`tAJltAJlf`vXf`vXpZHAbpZHAJtArdJtArdnXvnrXQJrXQJ`tAJltAJlf`vXf`vXے`JXQZHAbJtArdHfvnX~HfXQJ`ےXQJ`ےJltJlt`vXn`vXnZHAbZHAbtArdtArdnXv`nXv`XQJ`ےXQJ`ےJltJltے`JXQے`JXQtlJtlJ~Hfpv`p˂`ےbdQZ|tbdQZ`vXn`vXnZHAbZHAےtArdtArdnXv`rXQJ`XQJ`ےJltJlt`vXn`vXnZHAbZHAbtArdtArdnXv`nXv`˂rXQbHAZpltbf`vH~fHAbےHAbےrd|rd|Xv`fXv`fJ`ےJ`ےltbltbvXnvXnHAbےHAbےrd|rd|Xv`fXv`fJ`ےJ`ےdrtAJH~fvpf`JXQd|Zd|Zv`fv`f`ےb`ےbtbdQtbdQXnvXnvbے`bے`d|Zd|Zv`fv`f`ےb`ےbtbdQtbdQvpfZHAbr˂p|ZdArd|`f~`f~ےbHAےbHAtbdQZtbdQZnvpnvpے`Jے`JXQ|ZdQf~`f~`ےHAےbHAtbdQZtbdQZnvpnvpr˂pے`JXQ|ZdQv`fpvnbHAZbHAZbdQZ|bdQZ|vpfvpfے`JXQے`JXQ|ZdQb|ZdQbf~Hf~HbHAZbHAZbdQZ|bdQZ|r˂pr˂ptArdtArdv~rXQJHAZp˂drtAJ|drvpfvpfے`JXQ`JXQr|ZdQbf~Hf~HےHAZbHAZbdQZ|bdQZ|vpfvpfے`JXQے`JXQ|ZdQb|ZdQbf~Hf~HJ`ے˂rXQdQtAJlXnv`vXn`JXQr`JXQrZdQbtZdQbt~Hf~HfbHAZpbHAZpdQZ|dQZ|vpfHvpfH`JXQr`JXQrZdQbtZdQbt~HfHfpbHAZpbHAZltb`vXnH~frZAbdQbtdQbt~Hfp~HfpHAZp˂HAZp˂Z|dZ|dpfH~pfH~JXQrJXQrdQbtdQbt~Hfp~HfpHAZp˂HAZp˂Z|dZ|dH~f˂pZ`JXQrQbtlZdQbtHfpvHfpvZp˂Zp˂|dr|dtAfH~fH~XQr˂rbtbtlHfpvHfpvZp˂Zp˂|dr|drfH~fH~ZHAbr˂pbtl~HfpXv`fp˂rp˂rdrtAdrtAH~fH~fr˂pr˂ptlJtlJfpvfpvp˂rp˂rdrtAdrtAZHAbZHAb|ZdQb|ZdQbHfpv`ےbrXQJltbQtAJlH~fH~fr˂pbtltlJfpvfpvp˂rp˂rdrtAdrtAH~fH~fr˂pr˂ptlJtlJfpvfpvbHAZpJ`ےtbdQf~f`vpf˂pZ˂pZlJtAlJtApvnpvn˂rXQ˂rXQdrtAJdrtAJ~f`~f`˂pZ˂pZlJtAlJtApvnvnr˂rXQdrtAdQdQZ|lvp``vXHے`JlJtArlJtArvnXvnXrXQJrXQJrtAJlrtAJlf`vf`v˂pZHA˂pZHAlJtArlJtArvnXvnXrXQJrXQJrtAJlrtAJl`vXnHAbے˂pZJAr|lJtnXvnXvrXQJ`rXQJ`tAJlJltf`vXfZHAbpZHAblJtAdJtArdnXvnXvrXQJ`rXQJ`tAJltAJlf`vXf`vXے`pZZHAXQrJtAdQbvnX~fpvXQJ`ےXQJ`ےJltJlt`vXn`vXnZHAbZHAbtArdtArdnXv`nXv`XQJ`ےXQJ`ےJltJltے`JXQے`JXQtlJtlJnXvHAZp˂`ےbZdrttbdQZ`vXnZHAbZHAbJtAdtArdnXv`nXv`XQJ`ےXQJ`ےJltJlt`vXn`vXnZHAbZHAbtArdtArdnXv`nXv`˂rXQbHAZpZ|dvXnH~fHAbےHAbےrd|rd|Xv`fXv`fJ`ےJ`ےltbltbvXnvXnHAbےHAے`rd|rdfXv`fXQJ`ےJ`ےZ|dtbdQvXn~fZXQr˂d|Zd|Zv`fv`f`ےb`ےbtbdQtbdQXnvXnvbے`bے`d|Zd|Zv`fv`f`ےb`ےbtbdQtbdQvpf`JXQrHAbےZdQbtArd|`f~`fHےbHAےbHAtbdQZbnvnvpے`Jے`J|ZdQ|ZdQ`f~`f~ےbHAےbHAtbdQZtbdQZnvpnvpHAbے˂pZtlJv`fnXv`bHAZbHAZbdQZ|bdQZ|vpfvpfے`JXQے`JXQ|ZdQb|ZdQbf~Hf~HbHAZbHAZbdQZ|bdQZ|r˂pr˂ptArdtArd`f~rXQHAHAZp`AJlt|dnvpfے`JXQے`JXQ|ZdQb|ZdQbf~Hf~HbHAZbHAZbdQZ|bdQZ|vpfvpfے`JXQے`JXQ|ZdQb|ZdQbf~Hf~HJ`p˂˂brtAJlvpfH`vnvp`JXQr`JXQrZdQbtZdQbt~Hf~HfbHAZpbHAZpdQZ|dQZ|vpfHvpfH`JXQrJXQrbZdQbt~Hf~HfHAZpbHAZprtAJlZ|dvpfHHAbpZHAbdQbtdQbt~Hfp~HfpHAZp˂HAZp˂Z|dZ|dpfH~pfH~JXQrJXQrdQbtdQbt~Hfp~HfpHAZp˂HAZp˂Z|dZ|dHXn˂pZ`JXQrlJtAZdQbHfpvfpvZp˂Zdr|drpfHfH~XQr˂XQr˂btlbtlHfpvHfpvZp˂Zp˂|dr|drfH~fH~`JXQrHAbےtArd~Hfpf~Hp˂rp˂rdrtAdrtAH~fH~fr˂pr˂ptlJtlJfpvfpvp˂rp˂rdrtAdtAJZHAbZHAb|ZdQb|ZdQbHfpvZp˂ےbHAbdQZ|vffH~fr˂pr˂ptlJtlJfpvfpvp˂rp˂rdrtAdrtAH~fH~fr˂pr˂ptlJtlJfpvfpvrXQJHAZdtbdQ~f`fH~˂pZ˂pZlJtAlJtApvnpvn˂rXQ˂rXQdrtAJdtAJl~f`~fZ˂pZtlJlJtApvnpvn˂rXQ˂rXQtbdQrtAJl~f`JQr˂pے`JlJtArlJtArvnXvnXrXQJrXQJrtAJlrtAJlf`vf`v˂pZHA˂pZHAlJtArlJtArvnXvnXrXQJrXQJrtAJlrtAJlvpfHHAbے˂pZrd|JtArdnXvnrXQJrXQJ`tAJltAJlf`vXf`vXpZHAbpZHAbJtArdJtArdnXvnXvrXQJ`rXQJ`tAJltAJlf`vXf`vX˂pZ`JXQr|ZdQbvnv`fpvXQJ`ےXQJ`ےJltJlt`vXn`vXnZHAbZHAbtArdtArdnXv`nXv`XQJ`ےXQJ`ےJltltbے`JXQے`JXQtlJtlJnXHrXQJ`Zp˂drt`vXn`vXnZHAbZHAbtArdtArdnXv`nXv`XQJ`ےXQJ`ےJltJlt`vXn`vXnZHAbZHAbtArdtArdnXv`nXv``ےbrtAdQZZ|l璍vXnf`vXHAbےHAbےrd|rd|Xv`fXv`fJ`ےJ`ےltbtbnvXnHAbےHAbےtAd|rd|Xv`fXv`fJ`ےJ`ےZ|dtbdQvXnZHAbXQr˂d|Zd|Zv`fv`f`ےb`ےbtbdQtbdQXnvXnvbے`bے`d|Zd|Zv`fv`f`ےb`ےbtbdQtbdQ~f``pZHAHAXQrZdQbtf~`f~`ےHAےbHAtbdQZtbdQZnvpnvpے`Jے`J|ZdQ|ZdQ`f~`f~ےbHAےbHAtbdQZtbdQZnvpnvpHAbے˂p`tlJf~HnXv`bHAZbHAZbdQZ|bdQZ|vpfvpfے`JXQے`JXQ|ZdQb|ZdQbf~HfHfbHAZbHAZbdQZ|nvpr˂pr˂ptArdtArdfpvےbHArXQJ`AJltvpfvpfے`JXQے`JXQ|ZdQb|ZdQbf~Hf~HbHAZbHAZbdQZ|bdQZ|vpfvpfے`JXQے`JXQ|ZdQb|ZdQbf~Hf~HHAZp˂|drtbdQZvpf~nvp`JXQr`JXQrZdQbtZdQbt~HfHfpbHAZpbHAZdQZ|vpfvpfH`JXQr`JXQrZdQbtZdQbt~Hf~HfbHAZpbHAZprtAJlZ|dvpfHے`JXpZAb`dQbtdQbt~Hfp~HfpHAZp˂HAZp˂Z|dZ|dpfH~pfH~JXQrJXQrdQbtdQbt~Hfp~HfpHAZp˂HAZp˂Z|dZ|dvXnbے`˂pZHAlJtAHfpvHfpvZp˂Zp˂|dr|drfH~fH~XQr˂XQr˂btlbtlHfpvHfpvZp˂Zp˂|dr|drfH~fH~`JXQHAJXQrbtArdtfpvf~fp˂rp˂rdrtAdrtAH~fH~fr˂pr˂ptlJtlJfpvpvnp˂rdrtAdrtAfHfZHAbZHAb|ZdQb|ZdQbnXv`Zp˂ےbHAbdQZH~fH~fr˂pr˂ptlJtlJfpvfpvp˂rp˂rdrtAdrtAH~fH~fr˂pr˂ptlJtlJfpvfpvrXQJtAJl|drf`vXfH~˂pZ˂pZlJtAlJtApvnvnr˂rXQdrtAJdrtAJHf`~f`˂pZ˂pZlJtAlJtApvnpvn˂rXQ˂rXQ|drtbdQZXnvQr˂pJXQrlJtArlJtArvnXvnXrXQJrXQJrtAJlrtAJlf`vf`v˂pZHA˂pZHAlJtArlJtArvnXvnXrXQJrXQJrtAJltAJlvpfHJXQrbے`rZdQnXvnXvrXQJ`rXQJ`tAJltAJlf`vXf`vXpZHAbpZHAbJtArdJtArdnXvnXvrXQJ`rXQJ`tAJltAJlf`vXf`vXbے`tl|lJtAnXv`vnXXQJ`ےXQJ`ےJltJlt`vXn`vXnZHAbZHAےtArdtArdnXv`rXQJ`XQJ`ےJltJlt`vXnے`JXQے`JXQtlJtlJf~HrXQJ`Zp˂rtAJl`vXn`vXnZHAbZHAbtArdtArdnXv`nXv`XQJ`ےXQJ`ےJltJlt`vXn`vXnZHAbZHAbtArdtArdnXv`nXv``ےtbdQZtAJlnvpf`vXHAbےHAے`rd|rdfXv`fXQJ`ےJ`ےltbltbvXnvXnHAbےHAbےrd|rd|Xv`fXv`fJ`ےJ`ےtAJl|drpfH~ZHAb˂pZHd|Zd|Zv`fv`f`ےb`ےbtbdQtbdQXnvXnvbے`bے`d|Zd|Zv`fv`f`ےb`ےbtbdQtbn~v˂pZHAJXQrbtl`f~`f~ےbHAےbHAtbdQZtbdQZnvpnvpے`Jے`J|ZdQ|ZdQ`f~`f~ےbHAےbHAtbdQZtbdQZnvpnvpJXQrZdQbtrd|f~Hv`fbHAZbHAZbdQZ|bdQZ|vpfvpfے`JXQ`JXQr|ZdQbf~Hf~HےHAZbHAZbdQZ|bdQZ|vpfr˂pr˂ptArdtArdfpvp˂rbHAZtbdQvpfvpfے`JXQے`JXQ|ZdQb|ZdQbf~Hf~HbHAZbHAZbdQZ|bdQZ|vpfvpfے`JXQے`JXQ|ZdQb|ZdQbf~Hf~HrXQJ`|drtbdQZfH~nvfH`JXQrJXQrbZdQbt~Hf~HfHAZpbHAZpdQZ|dQZ|vpfHvpfH`JXQr`JXQrZdQbtZdQbt~Hf~HfbHAZpbHAZptbdQZtAJl璐f`vے`JQrAbے`dQbtdQbt~Hfp~HfpHAZp˂HAZp˂Z|dZ|dpfH~pfH~JXQrJXQrdQbtdQbt~HfpHfpvHAZp˂HAZdZ|dvp`vpfH~bے`˂p`JJtArdHfpvHfpvZp˂Zp˂|dr|drfH~fH~XQr˂XQr˂btlbtlHfpvHfpvZp˂Zp˂|dr|drfH~fH~˂pZHAlJtAZdQbtfpv~Hfpp˂rp˂rdrtAdtAJH~fH~fr˂pbtltlJfpvfpvp˂rp˂rdrtAdrtAH~fZHAbZHAb|ZdQbf~HnXv`XQJ`ےdrtAZ|dH~fH~fr˂pr˂ptlJtlJfpvfpvp˂rp˂rdrtAdrtAH~fH~fr˂pr˂ptlJtlJfpvfpvےbHAtAJl||dtf`vX~fZ˂pZtlJlJtApvnpvn˂rXQ˂rXQdrtAJdrtAJ~f`~f`˂pZ˂pZlJtAlJtApvnpvn˂rXQ˂rXQ|drtbdQZXnvpZHAJXQrlJtArlJtArvnXvnXrXQJrXQJrtAJlrtAJlf`vf`v˂pZHA˂pZHAlJtArlJtArvnXnrXQrXQJrtAJlrtAJlXnvf`vJXQHAbXQrbt|ZdQnXvnXvrXQJ`rXQJ`tAJltAJlf`vXf`vXpZHAbpZHAbJtArdJtArdnXvnXvrXQJ`rXQJ`tAJltAJlf`vXf`vXbے`rd|lJtAnvfvnXXQJ`ےXQJ`ےJltltb`vXnZHAbZHAbJtAdtArdnXv`nXv`XQJ`ےXQJ`ےJltJlt`vXnے`JXQے`JXQtlJXv`fpvnbHAZJbdQrtAJl`vXn`vXnZHAbZHAbtArdtArdnXv`nXv`XQJ`ےXQJ`ےJltJlt`vXn`vXnZHAbZHAbtArdtArdnXv`nXv`Zp˂drtAbdQZ|nvpHAbےHAbےtAd|rd|Xv`fXv`fJ`ےJ`ےltbltbvXnvXnHAbےHAbےrd|rd|Xv`fXv`fJ`ےJ`ےtAJl|ltpfH~bے`˂pZHd|Zd|Zv`fv`f`ےb`ےbtbdQtbdQXnvXnvbے`ے`Jd|Zdfv`fJ`ے`ےbtbdQtbdQpfH~Xnvے`JlJAbtl`f~`f~ےbHAےbHAtbdQZtbdQZnvpnvpے`Jے`J|ZdQ|ZdQ`f~`f~ےbHAےbHAtbdQZtbdQZnvpnvpJXQrZdQbtrd|~Hfpv`ffbHAZbHAZbdQZ|nvpvpfے`JXQے`JXQ|ZdQb|ZdQbf~Hf~HbHAZbHAZbdQZ|bdQZ|vpfr˂pr˂ptArd~HfXv`fp˂rZ|dtbdQvpfvpfے`JXQے`JXQ|ZdQb|ZdQbf~Hf~HbHAZbHAZbdQZ|bdQZ|vpfvpfے`JXQے`JXQ|ZdQb|ZdQbf~HfHfrXQJ`JltdrtAfH~f`JXQr`JXQrZdQbtZdQbt~Hf~HfbHAZpbHAZpdQZ|dQZ|vpfHvpfH`JXQr`JXQrZdQbtZdQbt~Hf~HfbHAZpbHAZptdrtAbnvvpJXQrAbJXQdQbtdQbt~Hfp~HfpHAZp˂HAZp˂Z|dZ|dpfH~pfH~JXQrXQrbtdQbt~Hfp~HfpHAZp˂HAZp˂Z|dZ|df`vpfH~XQr˂|ZdQbJtArdHfpvHfpvZp˂Zp˂|dr|drfH~fH~XQr˂XQr˂btlbtlHfpvHfpvZp˂Zp˂|dr|drfH~fH~ے`Jd|ZlJtArvnXpvnp˂rdrtAdrtAfHfH~fr˂pr˂ptlJtlJfpvfpvp˂rp˂rdrtAdrtAH~f`vXnZHAb|ZdQb|ZdQbpvn~HfXQJ`ےrtAJlZ|rAH~fH~fr˂pr˂ptlJtlJfpvfpvp˂rp˂rdrtAdrtAH~fH~fr˂pr˂ptlJtlJfpvpvnےbHAbdQZ|JltvXnۀ˂pZ˂pZlJtAlJtApvnpvn˂rXQ˂rXQdrtAJdrtAJ~f`~f`˂pZ˂pZlJtAlJtApvnpvn˂rXQ˂rXQJltp`vXfH~˂pZHAr˂plJtArlJtArvnXvnXrXQJrXQJrtAJltAJl璐f`vfZHA˂pZHAlJtAlJtArvnXvnXrXQJrXQJrtAJlrtAJlXnf`ppZHAbtlJZQbt璀nXvnXvrXQJ`rXQJ`tAJltAJlf`vXf`vXpZHAbpZHAbJtArdJtArdnXvnXvrXQJ`rXQJ`tAJltAJlf`vXf`vXXQr˂dQbtd|Zv`frXQJ`XQJ`ےJltJlt`vXn`vXnZHAbZHAbtArdtArdnXv`nXv`XQJ`ےXQJ`ےJltJlt`vXnvpfے`JXQtlJtlJXv`fpvnrXQtbdQJlt`vXn`vXnZHAbZHAbtArdtArdnXv`nXv`XQJ`ےXQJ`ےJltJlt`vXn`vXnZHAbZHAےtArdtArdnXv`rXQJ`XQJ`ےdrtAbdQZ|vpfHHAbےHAbےrd|rd|Xv`fXv`fJ`ےJ`ےltbltbvXnvXnHAbےHAbےrd|rd|Xv`fXv`fJ`ےJ`ےbdQZ|nvpf`vXbے`ZHAbd|Zd|Zv`fv`f`ےb`ےbtbdQtbnXnvbے`bے`d|Zd|Zv`fv`f`ےb`ےbtbdQtbdQf`vXfH~ے`JtArdlJtAr`f~`f~ےbHAےbHAtbdQZtbdQZnvpnvpے`Jے`J|ZdQ|ZdQ`f~`f~ےbHAےbHAtbdQZtbdQZnvpnvppZHAblJtArdQbt~HfpےHAZbHAZbdQZ|bdQZ|vpfvpfے`JXQے`JXQ|ZdQb|ZdQbf~Hf~HbHAZbHAZbdQZ|bdQZ|vpfH~fr˂ptArdtArd~HfXv`fJ`ےZ|dbdQZ|vpfvpfے`JXQے`JXQ|ZdQb|ZdQbf~Hf~HbHAZbHAZbdQZ|bdQZ|vpfvpfے`JXQ`JXQr|ZdQbf~Hf~Hp˂rbHAZJltltb~f``JXQr`JXQrZdQbtZdQbt~Hf~HfbHAZpbHAZpdQZ|dQZ|vpfHvpfH`JXQr`JXQrZdQbtZdQbt~Hf~HfbHAZpbHAZpdrtAfH~nvpJXQrے`JXQdQbtdQbt~HfpHfpvHAZp˂HAZdZ|dvpfHpfH~JXQrJXQrdQbtdQbt~Hfp~HfpHAZp˂HAZp˂Z|dZ|dnvpf`vXXQr|ZdQbd|ZHfpvHfpvZp˂Zp˂|dr|drfH~fH~XQr˂XQr˂btlbtlHfpvHfpvZp˂Zp˂|dr|dtAfH~fH~ے`Jd|ZlJtArvnXvp˂rp˂rdrtAdrtAH~fH~fr˂pr˂ptlJtlJfpvfpvp˂rp˂rdrtAdrtAH~f`vXnvpfvpfے`JXQے`JXQJtArdHfp``fZp˂bHAZdQZ|vpfvpfH`JXQr`JXQrZdQbtZdQbt~Hf~HfbHAZpbHAZpdQZ|dQZ|vpfHvpfHJXQrbے`ۑpJAHH~ㅐfەH~ㅐfۂdrQtH~fH~fr˂pr˂p|ZdQf~HnXv`rXQJ`drtAJdrtAJHf`~f`˂pZ˂pZlJtAlJtApvnpvn˂rXQ˂rXQdrtAJdrtAJ~f`~f`˂pZHAJXQrr󙐉۝`vXn`vXnJlt`vXn`vXnZHAbZHAےbtlfpvf~HےbAZltbltbvXnvXnHAbےHAbےrd|rd|Xv`fXv`fJ`ےJ`ےltbltbvXnvXnbے`˂p`ZpJAHrvˍpfvˍpfbAdZ|vpfvpfے`JXQ`JXQrJtArdnXv`fpvrXQdQZ|dQZ|vpfHvpfH`JXQr`JXQrZdQbtZdQbt~Hf~HfbHAZpbHAZpdQZ|dQZ|vpfHvpfHJXQHAbQXb㉀ۙˁ`ZH~ㅐfەH~ㅐfۂdrQtH~fH~fr˂pbtltlJf~HnXv`J`ےdrtAJdrtAJ~f`~f`˂pZ˂pZlJtAlJtApvnpvn˂rXQ˂rXQdrtAJdrtAJ~f`~f`ے`JpJAHrQXb㉀۝`vXn`vXnJlt`vXnZHAbZHAb|ZdQbtArdfpvpvnbHAZpltbltbvXnvXnHAbےHAbےrd|rd|Xv`fXv`fJ`ےJ`ےltbltbvXnvXnXQr˂ˁ`ZpJAHrvˍpfvˍp|bAdZ|vpfے`JXQے`JXQtlJ|ZdQb~HfrXQJ`rXQdQZ|dQZ|vpfHvpfH`JXQr`JXQrZdQbtZdQbt~Hf~HfbHAZpbHAZpdQZ|dQZ|vpfHvpfHpZHAbQXb㉀ˁ`pH~ㅐfۂdrQtdrQtH~fr˂pr˂ptArdtlJpvnAZp˂J`ےdrtAJdrtAJ~f`~f`˂pZ˂pZlJtAlJtApvnpvn˂rXQ˂rXQdrtAJdrtAJ~f`~f`ے`Jˁ`ZQXJAHr󙐝`vXnJltJlt`vXnZHAbZHAb|ZdQbtArdXv`frXQJbHAZrltbltbvXnvXnHAbےHAbےrd|rd|Xv`fXv`fJ`ےJ`ےltbltbvXnvXnXQrb㉀ۑpˁ`ZQXvˍpfbAdZ|bAdZ|vpfے`JXQے`JXQtd||lJtA~Hf`ےbXQJ`ےdQZ|dQZ|vpfHvpfH`JXQr`JXQrZdQbtZdQbt~Hf~HfbHAZpbHAZpdQZ|dQZ|vpfHvpfHے`JXQJAHrb㉀ۑpH~ㅐfۂdrQtdrQtH~fr˂pr˂pZdQbtrd|pvnHAZp˂bHAZdrtAJdrtAJ~f`~f`˂pZ˂pZlJtAlJtApvnpvn˂rXQ˂rXQdrtAJdrtAJ~f`~f`r˂pˁ`ZQXJAHr󙐝`vXnJltJlt`vXnZHAbZHAblJtAZdQbtXHfprXQJp˂rltbltbvXnvXnHAbےHAbےrd|rd|Xv`fXv`fJ`ےJ`ےltbltbvXnvXnZHAbb㉀ۑpˁ`pfvˍpfbAdZ|bAdZ|vpfے`JXQے`JXQrd|lJtAvnXbHAZpXQJ`ےdQZ|dQZ|vpfHvpfH`JXQr`JXQrZdQbtZdQbt~Hf~HfbHAZpbHAZpdQZ|dQZ|vpfHvpfHے`JXQ`ZQXbH~ㅐfەH~ㅐfۂdrQtdrQtH~fr˂pr˂pZdQbtrd|v`f˂rXbHAZdrtAJdrtAJ~f`~f`˂pZ˂pZlJtAlJtApvnpvn˂rXQ˂rXQdrtAJdtAJl~f`~frr˂pۑpJ`vXn`vXnJltJlt`vXnZHAbZHAbl|ZZdQtAr~HfpQJ`ےprQJ`ltbltbvXnvXnHAbےHAbےrd|rd|Xv`fXv`fJ`ےJ`ےltbtbnvXn˂pZ`JXQrAHr󙐂˕vˍpfvˍpfbAdZ|bAdZ|vpfے`JXQے`JXQdQbtdfvnXbHAZpےbHdQZ|dQZ|vpfHvpfH`JXQr`JXQrZdQbtZdQbt~HfHfpbHAZpbHAZdQZ|vpfvpfHHAbے˂pZ`ZQXbH~ㅐfەH~ㅐfۂdrQtdrQtH~fr˂pr˂plJtAr~HXvv`pv˂rXAZp˂drtAJdrtAJ~f`~f`˂pZ˂pZlJtAlJtApvnvnr˂rXQdrtAJdrtAJHf`~f``JXQrHAbےۑpJ`vXn`vXnJltJlt`vXnZHAbZHAbd|Z`f~nXvQJ`brXQJ`ltbltbvXnvXnHAbےHAے`rd|rdfXv`fXQJ`ےJ`ےltbltbvXnvXn˂pZ`JXQrAHQXb㉀vˍpfvˍpfbAdZ|bAdZ|vpfے`JXQے`JXQdQbtHfpv`f~AZp˂ےbHdQZ|dQZ|vpfHvpfH`JXQrJXQrbZdQbt~Hf~HfHAZpbHAZpdQZ|dQZ|vpfHvpfHHAbے˂pZۑpJAHH~ㅐfەH~ㅐfۂdrQtdrQtH~fr˂pr˂plJtAdQnXvHfpvrXQJ`AZp˂drtAJdtAJl~f`~fZ˂pZtlJlJtApvnpvn˂rXQ˂rXQdrtAJdrtAJ~f`~f``pZHAHAXQrr󙐂ˁ``vXn`vXnJltJlt`vXnZHAbZHAbbtl`f~nXvےbHArQJltbtbnvXnHAbےHAbےtAd|rd|Xv`fXv`fJ`ےJ`ےltbltbvXnvXnbے`˂pZHAZQXb㉀vˍpfvˍpfbAdZ|bAdZ| \ No newline at end of file diff --git a/vendor/endroid/qr-code/assets/data/qrv37_2.dat b/vendor/endroid/qr-code/assets/data/qrv37_2.dat deleted file mode 100755 index 6b2cc4ec5..000000000 --- a/vendor/endroid/qr-code/assets/data/qrv37_2.dat +++ /dev/null @@ -1,329 +0,0 @@ -|{|{|{|{zyzyzyzyvuvuvuvurqrqrqrq|{|{|{|{zyzyzyzyvuvuvuvurqrqrqrq|{|{|{|{zyzyzyzyvuvuvuvurqrqrqrq|{|{|{|{zyzyzyzyvuvuvuvurqrqrqrq|{|{|{|{zyzyzyzyvuvuvuvurqrqrqrq|{|{|{|{zyzyzyzyvuvuvuvurqrqrqrq|{|{|{|{zyzyzyzyvuvuvuvurqrqrqrq|{|{|{|{zyzyzyzyvuvuvuvurqrqrqrq|{|{|{|{zyzyzyzyvuvuvuvurqrqrqrq|{|{|{|{zyzyzyzyvuvuvuvurqrqrqrq|{|{|{|{zyzyzyzyvuvuvuvurqrqrqrq|{|{|{|{zyzyzyxwvuvuvuvurqrqrqrq|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrq|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrq|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrq|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrq|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrq|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrq|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrq|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrq|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrq|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrq|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrq|{|{|{|{xwxwxwxwvuvuvutsrqrqrqrq|{|{|{|{xwxwxwxwtstststsrqrqrqrqpopopopo|{|{|{|{xwxwxwxwtstststsrqrqrqrqpopopopo|{|{|{|{xwxwxwxwtstststsrqrqrqrqpopopopo|{|{|{|{xwxwxwxwtstststsrqrqrqrqpopopopo~}|{|{|{|{xwxwxwxwtstststsrqrqrqrqpopopopo~}~}~}~}|{|{|{|{xwxwxwxwtstststsrqrqrqrqpopopopo~}~}~}~}|{|{|{|{xwxwxwxwtstststsrqrqrqrqpopoponm~}~}~}~}|{|{|{|{xwxwxwxwtstststsrqrqrqrqnmnmnmnm~}~}~}~}|{|{|{|{xwxwxwxwtstststsrqrqrqrqnmnmnmnm~}~}~}~}|{|{|{|{xwxwxwxwtstststsrqrqrqrqnmnmnmnm~}~}~}~}|{|{|{|{xwxwxwxwtstststsrqrqrqrqnmnmnmnm~}~}~}~}|{|{|{|{xwxwxwxwtstststsrqrqrqponmnmnmnm~}~}~}~}|{|{|{|{xwxwxwxwtstststspopopoponmnmnmnm~}~}~}~}|{|{|{|{xwxwxwxwtstststspopopoponmnmnmnm~}~}~}~}|{|{|{|{xwxwxwxwtstststspopopoponmnmnmnm~}~}~}~}|{|{|{|{xwxwxwxwtstststspopopoponmnmnmnm~}~}~}~}|{|{|{zyxwxwxwxwtstststspopopoponmnmnmnm~}~}~}~}zyzyzyzyxwxwxwxwtstststspopopoponmnmnmnm~}~}~}~}zyzyzyzyxwxwxwxwtstststspopopoponmnmnmnm~}~}~}~}zyzyzyzyxwxwxwxwtstststspopopoponmnmnmnm~}~}~}~}zyzyzyzyxwxwxwxwtstststspopopoponmnmnmnm~}~}~}~}zyzyzyzyxwxwxwxwtstststspopopoponmnmnmnm~}~}~}~}zyzyzyzyxwxwxwxwtstststspopopoponmnmnmnm~}~}~}~}zyzyzyzyxwxwxwxwtstststspopopoponmnmnmnm~}~}~}~}zyzyzyzyxwxwxwxwtstststspopopoponmnmnmnm~}~}~}~}zyzyzyzyxwxwxwxwtstststspopopoponmnmnmnm~}~}~}~}zyzyzyzyxwxwxwxwtstststspopopoponmnmnmnm~}~}~}~}zyzyzyzyxwxwxwxwtstststspopopoponmnmnmnm~}~}~}~}zyzyzyzyxwxwxwvutstststspopopoponmnmnmnm~}~}~}~}zyzyzyzyvuvuvuvutstststspopopoponmnmnmnm~}~}~}~}zyzyzyzyvuvuvuvutstststspopopoponmnmnmnm~}~}~}~}zyzyzyzyvuvuvuvutstststspopopoponmnmnmnm~}~}~}~}zyzyzyzyvuvuvuvutstststspopopoponmnmnmnm~}~}~}~}zyzyzyzyvuvuvuvutstststspopopoponmnmnmnm~}~}~}~}zyzyzyzyvuvuvuvutstststspopopoponmnmnmnm~}~}~}~}zyzyzyzyvuvuvuvutstststspopopoponmnmnmnm~}~}~}~}zyzyzyzyvuvuvuvutstststspopopoponmnmnmnm~}~}~}~}zyzyzyzyvuvuvuvutstststspopopoponmnmnmnm~}~}~}~}zyzyzyzyvuvuvuvutstststspopopoponmnmnmnm~}~}~}~}zyzyzyzyvuvuvuvutstststspopopoponmnmnmnm~}~}~}~}zyzyzyzyvuvuvuvutststsrqpopopoponmnmnmnm~}~}~}~}zyzyzyzyvuvuvuvurqrqrqrqpopopoponmnmnmnm~}~}~}~}zyzyzyzyvuvuvuvurqrqrqrqpopopoponmnmnmnm~}~}~}~}zyzyzyzyvuvuvuvurqrqrqrqpopopoponmnmnmnm~}~}~}~}zyzyzyzyvuvuvuvurqrqrqrqpopopoponmnmnmnm~}~}~}|{zyzyzyzyvuvuvuvurqrqrqrqpopopoponmnmnmnmnmnmnmnmghghghghfefefefebabababa^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSPOPOPOPOLKLKLKLKHGHGHGHGFEFEFEFEBABABABA>=>=>=>=<;<;<;<;87878787343433330/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%"!"!"!"! - - - - nmnmnmlkghghghghfefefefebabababa^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSPOPOPOPOLKLKLKLKHGHGHGHGFEFEFEFEBABABABA>=>=>=>=<;<;<;<;87878787334343430/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%"!"!"!"! - - - - lklklklkghghghghfefefefebabababa^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSPOPOPOPOLKLKLKLKHGHGHGHGFEFEFEFEBABABABA>=>=>=>=<;<;<;<;87878787434343430/0/0/0/,+,+,+,+('('('('&%&%&%&%"!"!"!"! - - - - lklklklkghghggggfefefefebabababa^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSPOPOPOPOLKLKLKLKHGHGHGHGFEFEFEFEBABABABA>=>=>=>=<;<;<;<;87878787434343430/0/0/0/,+,+,+,+('('('('&%&%&%&%"!"!"!"! - - - - lklklklkgghghghgfefedcdcbabababa^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSPOPOPOPOLKLKLKLKHGHGHGHGFEFEFEFEBABABABA>=>=>=>=<;:9:9:987878787434343430/0/0/0/,+,+,+,+('('('('&%&%&%&%"!"!"!"! - - - - lklklklkhghghghgdcdcdcdcbabababa^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSPOPOPOPOLKLKLKLKHGHGHGHGFEFEFEFEBABABABA>=>=>=>=:9:9:9:987878787434333330/0/0/0/,+,+,+,+('('('('&%&%&%&%"!"!"!"! - - - - lklklklkhghghghgdcdcdcdcbabababa^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSPOPOPOPOLKLKLKLKHGHGHGHGFEFEFEFEBABABABA>=>=>=>=:9:9:9:987878787434343430/0/0/0/,+,+,+,+('('('('&%&%&%&%"!"!"!"! - - - lklklklkhghghghgdcdcdcdcbabababa^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSPOPOPOPOLKLKLKLKHGHGHGHGFEFEFEFEBABABABA>=>=>=>=:9:9:9:987878765212121210/0/0/0/,+,+,+,+('('('('&%&%&%&%"!"!"!"! lklklklkhghghghgdcdcdcdcbabababa^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSPOPOPOPOLKLKLKLKHGHGHGHGFEFEFEFEBABABABA>=>=>=>=:9:9:9:965656565212121210/0/0/0/,+,+,+,+('('('('&%&%&%&%"!"!"!"! lklklklkhghgggggdcdcdcdcbabababa^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSPOPOPOPOLKLKLKLKHGHGHGHGFEDCDCDCBABABABA>=>=>=>=:9:9:9:965656565212121210/0/0/0/,+,+,+,+('('('('&%&%&%&%"!"!"!"! lklklklkghghghghdcdcdcdcbabababa^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSPOPOPOPOLKLKLKLKHGHGHGHGDCDCDCDCBABABABA>=>=>=>=:9:9:9:965656565212121210/0/0/0/,+,+,+,+('('('('&%&%&%&%"!"!"!"! lklklklkghghghghdcdcdcdcbabababa^]^]^]^]ZYZYZYZYXWXWVUVUTSTSTSTSPOPOPOPOLKLKLKLKHGHGHGHGDCDCDCDCBABABABA>=>=>=>=:9:9:9:965656565212121210/0/0/0/,+,+,+,+('('('('&%&%&%&%"!"!"!"! lklklklkghghghghdcdcdcdcbabababa^]^]^]^]ZYZYZYZYVUVUVUVUTSTSTSTSPOPOPOPOLKLKLKLKHGHGHGHGDCDCDCDCBABABABA>=>=>=>=:9:9:9:965656565212121210/0/0/0/,+,+,+,+('('('('&%&%&%&%"!"!"!"! lklklklkghghghghdcdcdcdcbabababa^]^]^]^]ZYZYZYZYVUVUVUVUTSTSTSTSPOPOPOPOLKLKLKLKHGHGHGHGDCDCDCDCBABABABA>=>=>=>=:9:9:9:965656565212121210/0/0/0/,+,+,+,+('('('('&%&%&%&%"!"!"!"! lklklklkghghghghdcdcdcdcbabababa^]^]^]^]ZYZYZYZYVUVUVUVUTSTSTSTSPOPOPOPOLKLKLKLKHGHGHGHGDCDCDCDCBABABABA>=>=>=>=:9:9:9:965656565212121210/0/0/0/,+,+,+,+('('('('$#$#$#$#"!"!"!"! lklklklkghggggggdcdcdcdcbabababa^]^]^]^]ZYZYZYZYVUVUVUVUTSTSTSTSPOPOPOPOLKLKLKLKHGHGHGHGDCDCDCDCBABABABA>=>=>=>=:9:9:9:965656565212121210/0/0/0/,+,+,+,+('('('('$#$#$#$#"!"!"!"! lklklklkhghghghgdcdcdcdcbaba`_`_^]^]^]^]ZYZYZYZYVUVUVUVUTSTSTSTSPOPOPOPOLKLKLKLKHGHGHGHGDCDCDCDCBABABABA>=>=>=>=:9:9:9:965656565212121210/0/0/0/,+,+,+,+('('('('$#$#$#$#"!"!"!"! lklklklkhghghghgdcdcdcdc`_`_`_`_^]^]^]^]ZYZYZYZYVUVUVUVUTSTSTSTSPOPOPOPOLKLKLKLKHGHGHGHGDCDCDCDCBABABABA>=>=>=>=:9:9:9:965656565212121210/0/0/0/,+,+,+,+('('('('$#$#$#$#"!"!"!"! lklklklkhghghghgdcdcdcdc`_`_`_`_^]^]^]^]ZYZYZYZYVUVUVUVUTSTSTSTSPOPONMNMLKLKLKLKHGHGHGHGDCDCDCDCBABABABA>=>=>=>=:9:9:9:965656565212121210/0/0/0/,+,+,+,+('('('('$#$#$#$#"!"!"!"! lklklklkhghghghgdcdcdcdc`_`_`_`_^]^]^]^]ZYZYZYZYVUVUVUVUTSTSTSTSNMNMMMMMLKLKLKLKHGHGHGHGDCDCDCDCBABABABA>=>=>=>=:9:9:9:96565656521212121.-.-.-.-,+,+,+,+('('('('$#$#$#$#"!"!"!"! lklklklkhghghghgdcdcdcdc`_`_`_`_^]^]^]^]ZYZYZYZYVUVUVUVUTSTSTSTSNMNMNMNMLKLKLKLKHGHGHGHGDCDCDCDCBABABABA>=>=>=>=:9:9:9:96565656521212121.-.-.-.-,+,+,+,+('('('('$#$#$#$#"!"!"!"! lklklklkhgggggghdcdcdcdc`_`_`_`_^]^]^]^]ZYZYZYZYVUVUVUVUTSTSTSTSNMNMNMNMLKLKLKLKHGHGHGHGDCDCDCDCBA@?@?@?>=>=>=>=:9:9:9:96565656521212121.-.-.-.-,+,+,+,+('('('('$#$#$#$#"!"!"!"! lklklklkghghghghdcdcdcdc`_`_`_`_^]^]^]^]ZYZYZYZYVUVUVUVUTSTSTSTSNMNMNMNMLKLKLKLKHGHGHGHGDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:96565656521212121.-.-.-.-,+,+,+,+('('('('$#$#$#$#"!"!"!"! lklklklkghghghghdcdcdcdc`_`_`_`_^]^]^]^]ZYZYZYZYVUVUVUVUTSTSRQRQNMNMNMNMLKLKLKLKHGHGHGHGDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:96565656521212121.-.-.-.-,+,+,+,+('('('('$#$#$#$#"!"!"!"! lklklklkghghghghdcdcdcdc`_`_`_`_^]^]^]^]ZYZYZYZYVUVUVUVURQRQRQRQNMMMMMMNLKLKLKLKHGHGHGHGDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:96565656521212121.-.-.-.-,+,+,+,+('('('('$#$#$#$#"!"!"!"!    lklklklkghghghghdcdcdcdc`_`_`_`_^]^]^]^]ZYZYZYZYVUVUVUVURQRQRQRQMNMNMNMNLKLKLKLKHGHGHGHGDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:96565656521212121.-.-.-.-,+,+,+,+('('('('$#$#$#$#"!"!"!"!    lklklklkghghghghdcdcdcdc`_`_`_`_^]^]^]^]ZYZYZYZYVUVUVUVURQRQRQRQMNMNMNMNLKJIJIJIHGHGHGHGDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:96565656521212121.-.-.-.-,+,+,+,+('('('('$#$#$#$#        lklklklkgggggghgdcdcdcdc`_`_`_`_^]^]^]^]ZYZYZYZYVUVUVUVURQRQRQRQMNMNMNMNJIJIJIJIHGHGHGHGDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:96565656521212121.-.-.-.-,+,+,+,+('('('('$#$#$#$#        lklklklkhghghghgdcdcdcdc`_`_`_`_^]^]\[\[ZYZYZYZYVUVUVUVURQRQRQRQMNMNMNMNJIJIJIJIHGHGHGHGDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:96565656521212121.-.-.-.-,+,+,+,+('('('('$#$#$#$#        lklklklkhghghghgdcdcdcdc`_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVURQRQRQRQMNMNMNMNJIJIJIJIHGHGHGHGDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:96565656521212121.-.-.-.-,+,+,+,+('('('('$#$#$#$#        lklklklkhghghghgdcdcdcdc`_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVURQRQRQRQMMMMMMNMJIJIJIJIHGHGHGHGDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:96565656521212121.-.-.-.-,+,+,+,+('('('('$#$#$#$#        lklklklkhghghghgdcdcdcdc`_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:96565656521212121.-.-.-.-*)*)*)*)('('('('$#$#$#$#        lklklklkgggghghgdcdcdcdc`_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:96565656521212121.-.-.-.-*)*)*)*)('('('('$#$#$#$#        lklklklkhghgfefedcdcdcdc`_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDC@?@?@?@?>=<;<;<;:9:9:9:96565656521212121.-.-.-.-*)*)*)*)('('('('$#$#$#$#        lkjijijifefefefedcdcdcdc`_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDC@?@?@?@?<;<;<;<;:9:9:9:96565656521212121.-.-.-.-*)*)*)*)('('('('$#$#$#$#        jijijijifefefefedcdcdcdc`_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDC@?@?@?@?<;<;<;<;:9:9:9:96565656521212121.-.-.-.-*)*)*)*)('('('('$#$#$#$#        - jijijijifefefefedcdcdcdc`_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVURQRQRQRQMMMMMNMNJIJIJIJIHGHGHGHGDCDCDCDC@?@?@?@?<;<;<;<;:9:9:9:96565656521212121.-.-.-.-*)*)*)*)('('('('$#$#$#$#        - - - - jijijijifefefefedcdcdcdc`_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVURQRQRQRQMNMNMNMNJIJIJIJIHGHGHGHGDCDCDCDC@?@?@?@?<;<;<;<;:9:9:9:96565656521212121.-.-.-.-*)*)*)*)('('('('$#$#$#$#        - - - - jijijijifefefefedcdcdcdc`_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVURQRQRQRQMNMNMNMNJIJIJIJIHGFEFEFEDCDCDCDC@?@?@?@?<;<;<;<;:9:9:9:96565656521212121.-.-.-.-*)*)*)*)('('('('$#$#$#$#        - - - - jijijijifefefefedcdcdcdc`_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVURQRQRQRQMNMNMNMNJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?<;<;<;<;:9:9:9:96565656521212121.-.-.-.-*)*)*)*)('('('('$#$#$#$#        - - - - jijijijifefefefedcdcdcdc`_`_`_`_\[\[\[\[ZYZYXWXWVUVUVUVURQRQRQRQMNMNMNMNJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?<;<;<;<;:9:9:9:96543434321212121.-.-.-.-*)*)*)*)('('('('$#$#$#$#        - - - - jijijijifefefefedcdcdcdc`_`_`_`_\[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQMNMNMNMMJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?<;<;<;<;:9:9:9:94333333421212121.-.-.-.-*)*)*)*)('('('('$#$#$#$#        - - - - jijijijifefefefedcdcdcdc`_`_`_`_\[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQMMMMNMNMJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?<;<;<;<;:9:9:9:93434343421212121.-.-.-.-*)*)*)*)('('('('$#$#$#$#        - - - - jijijijifefefefedcdcdcdc`_`_`_`_\[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?<;<;<;<;:9:9:9:93434343421212121.-.-.-.-*)*)*)*)&%&%&%&%$#$#$#$#        - - - - jijijijifefefefedcdcdcdc`_`_`_`_\[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?<;<;<;<;:9:9:9:93434343421212121.-.-.-.-*)*)*)*)&%&%&%&%$#$#$#$#        - - - - jijijijifefefefedcdcbaba`_`_`_`_\[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?<;<;<;<;:98787873434343421212121.-.-.-.-*)*)*)*)&%&%&%&%$#$#$#$#        - - - - jijijijifefefefebabababa`_`_`_`_\[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?<;<;<;<;878787873434343421212121.-.-.-.-*)*)*)*)&%&%&%&%$#$#$#$#        - - - - jijijijifefefefebabababa`_`_`_`_\[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQNMNMNMMMJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?<;<;<;<;878787873333334321212121.-.-.-.-*)*)*)*)&%&%&%&%$#$#$#$#        - - - - jijijijifefefefebabababa`_`_`_`_\[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQMMMNMNMNJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?<;<;<;<;87878787434343430/0/0/0/.-.-.-.-*)*)*)*)&%&%&%&%$#$#$#$#        - - - - jijijijifefefefebabababa`_`_`_`_\[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQMNMNMNMNJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?<;<;<;<;87878787434343430/0/0/0/.-.-.-.-*)*)*)*)&%&%&%&%$#$#$#$#        - - - - jijijijifefefefebabababa`_`_`_`_\[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQMNMNMNMNJIJIJIJIFEFEFEFEDCBABABA@?@?@?@?<;<;<;<;87878787434343430/0/0/0/.-.-.-.-*)*)*)*)&%&%&%&%$#$#$#$#        - - - - jijijijifefefefebabababa`_`_`_`_\[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQMNMNMNMNJIJIJIJIFEFEFEFEBABABABA@?@?@?@?<;<;<;<;87878787434343430/0/0/0/.-.-.-.-*)*)*)*)&%&%&%&%$#$#$#$#        - - - - jijijijifefefefebabababa`_`_`_`_\[\[\[\[XWXWXWXWVUVUTSTSRQRQRQRQMNMNMNMNJIJIJIJIFEFEFEFEBABABABA@?@?@?@?<;<;<;<;87878787434343430/0/0/0/.-.-.-.-*)*)*)*)&%&%&%&%$#$#$#$#        - - - - jijijijifefefefebabababa`_`_`_`_\[\[\[\[XWXWXWXWTSTSTSTSRQRQRQRQMNMNMMMMJIJIJIJIFEFEFEFEBABABABA@?@?@?@?<;<;<;<;87878787333334340/0/0/0/.-.-.-.-*)*)*)*)&%&%&%&%$#$#$#$#        - - - - jijijijifefefefebabababa`_`_`_`_\[\[\[\[XWXWXWXWTSTSTSTSRQRQRQRQMMNMNMNMJIJIJIJIFEFEFEFEBABABABA@?@?@?@?<;<;<;<;87878787343434340/0/0/0/.-.-.-.-*)*)*)*)&%&%&%&%$#$#$#$#        - - - - jijijijifefefefebabababa`_`_`_`_\[\[\[\[XWXWXWXWTSTSTSTSRQRQRQRQNMLKLKLKJIJIJIJIFEFEFEFEBABABABA@?@?@?@?<;<;<;<;87878787343434340/0/0/0/.-.-.-.-*)*)*)*)&%&%&%&%"!"!"!"!        - - - - jijijijifefefefebabababa`_`_`_`_\[\[\[\[XWXWXWXWTSTSTSTSPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEBABABABA@?@?@?@?<;<;<;<;87878787343434340/0/0/0/.-.-.-.-*)*)*)*)&%&%&%&%"!"!"!"!        - - - - jijijijifefefefebabababa`_`_^]^]\[\[\[\[XWXWXWXWTSTSTSTSPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEBABABABA@?@?@?@?<;<;<;<;87878787343434340/0/0/0/.-.-.-.-*)*)*)*)&%&%&%&%"!"!"!"!        - - - - jijijijifefefefebabababa^]^]^]^]\[\[\[\[XWXWXWXWTSTSTSTSPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEBABABABA@?@?@?@?<;<;<;<;87878787343434330/0/0/0/.-.-.-.-*)*)*)*)&%&%&%&%"!"!"!"!        - - - - jijijijifefefefebabababa^]^]^]^]\[\[\[\[XWXWXWXWTSTSTSTSPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEBABABABA@?@?@?@?<;<;<;<;87878787333343430/0/0/0/.-.-.-.-*)*)*)*)&%&%&%&%"!"!"!"!        - - - - jijijijifefefefebabababa^]^]^]^]\[\[\[\[XWXWXWXWTSTSTSTSPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEBABABABA@?@?@?@?<;<;<;<;87878787434343430/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%"!"!"!"!        - - - - jijijijifefefefebabababa^]^]^]^]\[\[\[\[XWXWXWXWTSTSTSTSPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEBABABABA@?@?@?@?<;<;<;<;87878787434343430/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%"!"!"!"!        - - - - jijijijifefefefebabababa^]^]^]^]\[\[\[\[XWXWXWXWTSTSTSTSPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEBABABABA@?>=>=>=<;<;<;<;87878787434343430/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%"!"!"!"!        - - - - jijijijifefefefebabababa^]^]^]^]\[\[\[\[XWXWXWXWTSTSTSTSPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEBABABABA>=>=>=>=<;<;<;<;87878787434343430/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%"!"!"!"!        - - - - jijijijifefefefebabababa^]^]^]^]\[\[\[\[XWXWXWXWTSTSTSTSPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEBABABABA>=>=>=>=<;<;<;<;87878787434343330/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%"!"!"!"!       - - - - jijijijifefefefebabababa^]^]^]^]\[\[\[\[XWXWXWXWTSTSTSTSPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEBABABABA>=>=>=>=<;<;<;<;87878787333434340/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%"!"!"!"!     - - - - jijijihgfefefefebabababa^]^]^]^]\[\[\[\[XWXWXWXWTSTSTSTSPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEBABABABA>=>=>=>=<;<;<;<;87878787343434340/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%"!"!"!"!     - - - - hghghgggfefefefebabababa^]^]^]^]\[\[\[\[XWXWXWXWTSTSTSTSPOPOPOPOLKLKLKLKJIHGHGHGFEFEFEFEBABABABA>=>=>=>=<;<;<;<;87878787343434340/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%"!"!"!"! - - - - ggghghghfefefefebabababa^]^]^]^]\[\[\[\[XWXWXWXWTSTSTSTSPOPOPOPOLKLKLKLKHGHGHGHGFEFEFEFEBABABABA>=>=>=>=<;<;<;<;87878787343434340/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%"!"!"!"! - - - - ghghghghfefefefebabababa^]^]^]^]\[\[ZYZYXWXWXWXWTSTSTSTSPOPOPOPOLKLKLKLKHGHGHGHGFEFEFEFEBABABABA>=>=>=>=<;<;<;<;87878787343434340/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%"!"!"!"! - - - - YYZZ[[\\))**++,,88776655hhggffeeggffeeddssrrqqppvvwwxxyyFFGGHHII]]^^__``--..//0044332211ddccbbaaccbbaa``oonnmmllzz{{||}}JJKKLLMMaabbccdd1122334400//..--``__^^]]__^^]]\\kkjjiihh~~NNOOPPQQ !!eeffgghh55667788,,++**))\\[[ZZYY[[ZZYYXXggffeeddRRSSTTUU""##$$%%iijjkkll99::;;<< - - ((''&&%%XXWWVVUUWWVVUUTTccbbaa``VVWWXXYY&&''(())mmnnoopp==>>??@@ $$##""!!TTSSRRQQSSMMLLKK__^^]]\\ZZ[[\\]]**++,,--qqrrssttAABBCCDD PPOONNMMJJIIHHGG[[ZZYYXX^^__``aa..//0011uuvvwwxxEEFFGGHHLLKKJJIIFFEEDDCCWWVVUUTTbbccddee22334455yyzz{{||IIJJKKLLHHGGFFEEBBAA@@??SSRRQQPPffgghhii66778899~~}}~~}}||}}~~MMNNOOPP DDCCBBAA>>==<<;;OONNMMLL~~}}||jjkkllmm::;;<<==||{{zzyy{{zzyyxxQQRRSSTT!!""##$$ @@??>>==::993322KKJJIIHH{{zzyyxxnnooppqq>>??@@AAxxwwvvuuwwvvuuttUUVVWWXX%%&&''(( - - <<;;::991100//..GGFFEEDDwwvvuuttrrssttuuBBCCDDEEttssrrqqssrrqqppYYZZ[[\\))**++,,88776655--,,++**CCBBAA@@ssrrqqppvvwwxxyyFFGGHHIIppoonnmmoonnmmlk]]^^__``--..//0044332211))((''&&??>>==<>??@@ $$##""!!//..--,,__^^]]\\ZZ[[\\]]\\[[ZZYYrrqqppooYXXWWVVUxxwwvvuuqqrrssttAABBCCDD  ++**))(([[ZZYYXX^^__``aaXXWWVVUUnnmmggffUTTSSRQPttssrrqquuvvwwxxEEFFGGHH - - ''&&%%$$WWVVUUTTbbccddeeTTSSRRQQeeddccbbONMMLLKKppoonnmmyyzz{{||IIJJKKLL##""!! SSRRQQPPffgghhiiPPOONNMMaa``__^^JJIIHHGGllkkjjii}}~~MMNNOOPP OONNMMLL~~}}||jjkkllmmLLKKJJII]]\\[[ZZFFEEDDCChhggffeeQQRRSSTT!!""##$$  - -KKJJIIHH{{zzyyxxnnooppqqHHGGFFEEYYXXWWVVBBAA@@??ddccbbaaUUVVWWXX%%&&''(( - - GGFFEEDDwwvvuuttrrssttuuDDCCBBAAUUTTSSMM>>==<<;;``__^^]]YYZZ[[\\))**++,,CCBBAA@@ssrrqqppvvwwxxyy@@??>>==LLKKJJII::998765\\[[ZZYY]]^^__``--..//00 ??>>==<>==,++**))(PPOONNMM~~}}iijjkkll99::;;<< !""##$$%33221100ccbbaa`` - - 00//..--<<;;::99(''&&%%$LLKKJJII||{{zzyymmnnoopp==>>??@@%&&''(()//..--,,__^^]]\\,,++**))33221100$##""!! HHGGFFEExxwwvvuuqqrrssttAABBCCDD)**++,,- ++**))(([[ZZYYXX((''&&%%//..--,, DDCCBBAAttssrrqquuvvwwxxEEFFGGHH !!-..//001 - - ''&&%%$$WWVVUUTT$$##""!!++**))((@@??>>==ppoonnmmyyzz{{||IIJJKKLL""##$$%%12233456##""!! SSRRQQPP ''&&%%$$<<;;::99llkkjjii}}~~MMNNOOPP&&''(())7899::;;OONNMMLL~~}}|| - - ##""!! 88776655hhggffeeQQRRSSTT**++,,--<<==>>??KKJJIIHH{{zzyyxx - -44332211ddccbbaaUUVVWWXX..//0011@@AABBCCGGFFEEDDwwvvuutt 00//..--``__^^]]YYZZ[[\\223399::DDEEFFGG !!CCBBAA@@ssrrqqpp ,,++**))\\[[ZZYY]]^^__``;;<<==>>HHIIJJKK""##$$%% ??>>==<>==ppoonnmmyyzz{{||\\]]^^__fgghijkl>>??@@AA##""!! SSRRQQPP66778899!!""##$$$$%%&&''%%&&''(( - - <<;;::99llkkjjii}}~~``aabbccmmnnooppBBCCDDEEOONNMMLL~~}}||::;;<<==%%&&''(((())**++))**++,,88776655hhggffeeddeeffggqqrrssttFFGGHHIIKKJJIIHH{{zzyyxx>>??@@AA))**++,,,,--..//--..//0044332211ddccbbaammnnooppuuvvwwxxJJKKLLMMGGFFEEDDwwvvuuttBBCCDDEE--..//00001122331122334400//..--``__^^]]qqrrssttyyzz{{||NNOOPPQQ !!CCBBAA@@ssrrqqppFFGGHHII1122334499::;;<<55667788,,++**))\\[[ZZYYuuvvwwxx}}~~RRSSTTUU""##$$%% ??>>==<>??@@99::;;<< - - ((''&&%%XXWWVVUUyyzz{{||VVWWXXYY&&''(()) - - ;;::9988kkjjiihhNNOOPPQQ99::;;<>??@@ $$##""!!TTSSRRQQ}}~~ZZ[[\\]]**++,,--77665544ggffeeddRRSSTTUU==>>??@@EEFFGGHHAABBCCDD PPOONNMM~~}}^^__``aa..//001133221100ccbbaa``VVWWXXYYAABBCCDDIIJJKKLLEEFFGGHHLLKKJJII||{{zzyybbccddee22334455//..--,,__^^]]\\ZZ[[\\]]EEFFGGHHMMSSTTUUIIJJKKLLHHGGFFEExxwwvvuuffgghhii66778899 ++**))(([[ZZYYXX^^__``aaIIJJKKLLVVWWXXYYMMNNOOPP DDCCBBAAttssrrqqjjkkllmm::;;<<== - - ''&&%%$$WWVVUUTTbbccddeeMMNNOOPPZZ[[\\]]QQRRSSTT!!""##$$ @@??>>==ppoonnmmnnooppqq>>??@@AA##""!! SSRRQQPPffgghhiiQQRRSSTT^^__``aaUUVVWWXX%%&&''(( - - <<;;::99llkkjjiirrssttuuBBCCDDEEOONNMMLLjjkkllmmUUVVWWXXbbccddeeYYZZ[[\\))**++,,88776655hhggffeevvwwxxyyFFGGHHIIKKJJIIHHnnooppqqYYZZ[[\\ffggmmnn]]^^__``--..//0044332211ddccbbaazz{{||}}JJKKLLMMGGFFEEDDrrssttuu]]^^__``ooppqqrraabbccdd1122334400//..--``__^^]]~~NNOOPPQQ !!CCBBAA@@vvwwxxyyaabbccddssttuuvveeffgghh55667788,,++**))\\[[ZZYYRRSSTTUU""##$$%% ??>>==<>??@@ $$##""!!TTSSRRQQZZ[[\\]]**++,,--77665544mmnnooppqqrrssttAABBCCDD PPOONNMM~~}}^^__``aa..//001133221100qqrrssttuuvvwwxxEEFFGGHHLLKKJJII||{{zzyy~~}}bbccddee22334455//..--,,uuvvwwxxyyzz{{||IIJJKKLLHHGGFFEExxwwvvuu||{{zzyyffgghhii66778899 ++**))((yyzz{{||}}~~MMNNOOPP DDCCBBAAttssrrqqxxwwvvuu~~}}||jjkkllmm::;;<<== - - ''&&%%$$}}~~QQRRSSTT!!""##$$ @@??>>==ppoonnmmttssrrqq{{zzyyxxnnooppqq>>??@@AA##""!! UUVVWWXX%%&&''(( - - <<;;::99llkkjjiippoonnmmwwvvuuttrrssttuuBBCCDDEEccddeeff33445566..--,,++^^]]\\[[]]\\[[ZZiihhggffPPQQRRSS !!""##((''&&%%! LLKKJJII||{{zzyymmnnoopp==>>??@@%&&''(()//..--,,__^^]]\\gghhiijj778899:: - -**))((''ZZYYXXWWYYXXWWVVeeddccbbTTUUVVWW$$%%&&'' - -$$##""!!HHGGFFEExxwwvvuuqqrrssttAABBCCDD)**++,,- ++**))(([[ZZYYXXkkllmmnn;;<<==>> &&%%$$##VVUUTTSSUUTTSSMMaa``__^^XXYYZZ[[(())**++  DDCCBBAAttssrrqquuvvwwxxEEFFGGHH !!-..//001 - - ''&&%%$$WWVVUUTTooppqqrr??@@AABB""!! RRQQPPOOLLKKJJII]]\\[[ZZ\\]]^^__,,--..//@@??>>==ppoonnmmyyzz{{||IIJJKKLL""##$$%%12233456##""!! SSRRQQPPssttuuvvCCDDEEFFNNMMLLKKHHGGFFEEYYXXWWVV``aabbcc00112233 <<;;::99llkkjjii}}~~MMNNOOPP&&''(())7899::;;OONNMMLL~~}}||~~}}||~~}}||{{wwxxyyzzGGHHIIJJJJIIHHGGDDCCBBAAUUTTSSRRddeeffgg44556677 - - 88776655hhggffeeQQRRSSTT**++,,--<<==>>??KKJJIIHH{{zzyyxx{{zzyyxxzzyyxxww{{||}}~~KKLLMMNNFFEEDDCC@@??>>==QQPPOONN~~hhiijjkk8899::;; - - - - 44332211ddccbbaaUUVVWWXX..//0011@@AABBCCGGFFEEDDwwvvuuttwwvvuuttvvuuttssOOPPQQRR !!""BBAA@@??<<;;::99MMLLKKJJ}}||{{zzllmmnnoo<<==>>?? 00//..--``__^^]]YYZZ[[\\223399::DDEEFFGG !!CCBBAA@@ssrrqqppssrrqqpp~~rrqqppooSSTTUUVV##$$%%&& >>==<<;;33221100IIHHGGFFyyxxwwvvppqqrrss@@AABBCC ,,++**))\\[[ZZYY]]^^__``;;<<==>>HHIIJJKK""##$$%% ??>>==<>qqppoonnxxyyzz{{HHIIJJKK $$##""!!TTSSRRQQeeffgghhCCDDEEFFRSSTTUUV**++,,--77665544ggffeeddggffeedduuttssrrdccbbaa`__``aabb//001122221100//''&&%%$$==<<;;::mmllkkjj||}}~~LLMMNNOO PPOONNMM~~}}iijjkkllGGHHIIJJVWWXXYYZ..//001133221100ccbbaa``ccbbaa``qqppoonn`__^^]]\ccddeeff33445566..--,,++##""!! 99887766iihhggffPPQQRRSS !!""##LLKKJJII||{{zzyymmnnooppKKLLMMSSZ[[\\]]^22334455//..--,,__^^]]\\__^^]]\\mmggffee\[[ZZYYXgghhiijj778899:: - -**))((''55443322eeddccbbTTUUVVWW$$%%&&'' !!""HHGGFFEExxwwvvuuqqrrssttTTUUVVWW^__``aab66778899 ++**))(([[ZZYYXX~~}}||{{[[ZZYYXXddccbbaaXWWVVUUT~~}}||{{kkllmmnn;;<<==>> &&%%$$##1100//..aa``__^^XXYYZZ[[(())**++##$$%%&& DDCCBBAAttssrrqquuvvwwxxXXYYZZ[[bccddeef::;;<<== - - ''&&%%$$WWVVUUTTzzyyxxwwWWVVUUTT``__^^]]TSSRQPONzzyyxxwwooppqqrr??@@AABB""!! --,,++**]]\\[[ZZ\\]]^^__,,--..//''(())**!!""##$$ @@??>>==ppoonnmmyyzz{{||\\]]^^__fgghijkl>>??@@AA##""!! SSRRQQPPvvuuttssSSRRQQPP\\[[ZZYYMMLLKKJJvvuuttssssttuuvvCCDDEEFF ))((''&&YYXXWWVV``aabbcc00112233++,,--..%%&&''(( - - <<;;::99llkkjjii}}~~``aabbccmmnnooppBBCCDDEEOONNMMLLrrqqppooOONNMMLLXXWWVVUUIIHHGGFFrrqqppoowwxxyyzzGGHHIIJJ - - %%$$##""UUTTSSRRddeeffgg44556677//001122))**++,,88776655hhggffeeddeeffggqqrrssttFFGGHHIIKKJJIIHHnnmmggffKKJJIIHHTTSSMMLLEEDDCCBBnnmmllkk{{||}}~~KKLLMMNN!! QQPPOONN~~hhiijjkk8899::;;3399::;;--..//0044332211ddccbbaammnnooppuuvvwwxxJJKKLLMMGGFFEEDDeeddccbbGGFFEEDDKKJJIIHHAA@@??>>jjiihhggOOPPQQRR !!""MMLLKKJJ}}||{{zzllmmnnoo<<==>>??<<==>>??1122334400//..--``__^^]]qqrrssttyyzz{{||NNOOPPQQ !!CCBBAA@@aa``__^^CCBBAA@@GGFFEEDD==<<;;::ffeeddccSSTTUUVV##$$%%&& - - IIHHGGFFyyxxwwvvppqqrrss@@AABBCC@@AABBCC55667788,,++**))\\[[ZZYYuuvvwwxx}}~~RRSSTTUU""##$$%% ??>>==<<]]\\[[ZZ??>>==<>==<<3221100/^^]]\\[[[[\\]]^^++,,--..AA@@??>>qqppoonnxxyyzz{{HHIIJJKKHHIIJJKK==>>??@@ $$##""!!TTSSRRQQ}}~~ZZ[[\\]]**++,,--77665544UUTTSSMM77665544;;::9933/..--,,+ZZYYXXWW__``aabb//001122 - -==<<;;::mmllkkjj||}}~~LLMMNNOOLLMMSSTTAABBCCDD PPOONNMM~~}}^^__``aa..//001133221100LLKKJJII33221100221100//+**))(('VVUUTTSSccddeeff33445566 - - 99887766iihhggffPPQQRRSSUUVVWWXXEEFFGGHHLLKKJJII||{{zzyybbccddee22334455//..--,,HHGGFFEE//..--,,..--,,++'&&%%$$#RRQQPPOOgghhiijj778899::  !!""#55443322eeddccbbTTUUVVWWYYZZ[[\\IIJJKKLLHHGGFFEExxwwvvuuffgghhii66778899 ++**))((DDCCBBAA++**))((**))((''#""!! NNMMLLKK~~}}||{{kkllmmnn;;<<==>>#$$%%&&'1100//..aa``__^^XXYYZZ[[]]^^__``MMNNOOPP DDCCBBAAttssrrqqjjkkllmm::;;<<== - - ''&&%%$$@@??>>==''&&%%$$&&%%$$##JJIIHHGGzzyyxxwwooppqqrr??@@AABB'(())**+--,,++**]]\\[[ZZ\\]]^^__aabbccddQQRRSSTT!!""##$$ @@??>>==ppoonnmmnnooppqq>>??@@AA##""!! <<;;::99##""!! ""!! FFEEDDCCvvuuttssssttuuvvCCDDEEFF+,,--../ - - ))((''&&YYXXWWVV``aabbcceeffggmmUUVVWWXX%%&&''(( - - <<;;::99llkkjjiirrssttuuBBCCDDEE33221100BBAA@@??rrqqppoowwxxyyzzGGHHIIJJ !!""##/0011223 %%$$##""UUTTSSRRddeeffggnnooppqqYYZZ[[\\))**++,,88776655hhggffeevvwwxxyyFFGGHHII//..--,, >>==<<;;nnmmllkk{{||}}~~KKLLMMNN$$%%&&''34567899!! QQPPOONN~~hhiijjkkrrssttuu]]^^__``--..//0044332211ddccbbaazz{{||}}JJKKLLMM++**))(( - - ::998877jjiihhggOOPPQQRR(())**++::;;<<==MMLLKKJJ}}||{{zzllmmnnoovvwwxxyyaabbccdd1122334400//..--``__^^]]~~NNOOPPQQ !!''&&%%$$ - -66554433ffeeddccSSTTUUVV,,--..//>>??@@AAIIHHGGFFyyxxwwvvppqqrrsszz{{||}}eeffgghh55667788,,++**))\\[[ZZYYRRSSTTUU""##$$%% ##""!!  221100//bbaa``__WWXXYYZZ00112233BBCCDDEEEEDDCCBBuuttssrrttuuvvww~~iijjkkll99::;;<< - - ((''&&%%XXWWVVUUVVWWXXYY&&''(()) - -  - - ..--,,++^^]]\\[[[[\\]]^^99::;;<>qqppoonnxxyyzz{{mmnnoopp==>>??@@ $$##""!!TTSSRRQQZZ[[\\]]**++,,-- - -  - -  - -**))((''ZZYYXXWW__``aabb==>>??@@JJKKLLMM$$%%&&'' - -==<<;;::mmllkkjj||}}~~qqrrssttAABBCCDD PPOONNMM~~}}^^__``aa..//0011  &&%%$$##VVUUTTSSccddeeffAABBCCDDNOPQRSST(())**++ 99887766iihhggffuuvvwwxxEEFFGGHHLLKKJJII||{{zzyy~~}}bbccddee22334455 ""!! RRQQPPOOgghhiijjEEFFGGHHTUUVVWWX,,--..//55443322eeddccbbyyzz{{||IIJJKKLLHHGGFFEExxwwvvuu||{{zzyyffgghhii66778899 - - - -NNMMLLKK~~}}||{{kkllmmnnIIJJKKLLXYYZZ[[\001122331100//..aa``__^^}}~~MMNNOOPP DDCCBBAAttssrrqqxxwwvvuu~~}}||jjkkllmm::;;<<== - -  JJIIHHGGzzyyxxwwooppqqrrMMSSTTUU\]]^^__`44556677--,,++**]]\\[[ZZQQRRSSTT!!""##$$ @@??>>==ppoonnmmttssrrqq{{zzyyxxnnooppqq>>??@@AA !!!!""##$$FFEEDDCCvvuuttssssttuuvvVVWWXXYY`aabbccd8899::;; - - ))((''&&YYXXWWVVUUVVWWXX%%&&''(( - - <<;;::99llkkjjiippoonnmmwwvvuuttrrssttuuBBCCDDEE""##$$%%%%&&''(( !!""BBAA@@??rrqqppoowwxxyyzzZZ[[\\]]deeffggh<<==>>?? %%$$##""UUTTSSRRYYZZ[[\\))**++,,88776655hhggffeeggffeeddssrrqqppvvwwxxyyFFGGHHII&&''(())))**++,,##$$%%&& >>==<<;;nnmmllkk{{||}}~~^^__``aaijklmmnn@@AABBCC!! QQPPOONN~~]]^^__``--..//0044332211ddccbbaaccbbaa``oonnmmllzz{{||}}JJKKLLMM !!""##**++,,----..//00''(())** - - ::998877jjiihhggbbccddeeooppqqrrDDEEFFGGMMLLKKJJ}}||{{zzaabbccdd1122334400//..--``__^^]]__^^]]\\kkjjiihh~~NNOOPPQQ !!$$%%&&''..//001111223399++,,--..66554433ffeeddccffggmmnnssttuuvvHHIIJJKKIIHHGGFFyyxxwwvveeffgghh55667788,,++**))\\[[ZZYY[[ZZYYXXggffeeddRRSSTTUU""##$$%%(())**++22334455::;;<<==//001122221100//bbaa``__ooppqqrrwwxxyyzzLLMMNNOOEEDDCCBBuuttssrriijjkkll99::;;<< - - ((''&&%%XXWWVVUUWWVVUUTTccbbaa``VVWWXXYY&&''(()),,--..//66778899>>??@@AA33445566..--,,++^^]]\\[[ssttuuvv{{||}}~~PPQQRRSS !!""##AA@@??>>qqppoonnmmnnoopp==>>??@@ $$##""!!TTSSRRQQSSMMLLKK__^^]]\\ZZ[[\\]]**++,,--00112233::;;<<==BBCCDDEE778899:: - -**))((''ZZYYXXWWwwxxyyzzTTUUVVWW$$%%&&'' - -==<<;;::mmllkkjjqqrrssttAABBCCDD PPOONNMMJJIIHHGG[[ZZYYXX^^__``aa..//001199::;;<<>>??@@AAFFGGHHII;;<<==>> &&%%$$##VVUUTTSS{{||}}~~XXYYZZ[[(())**++ 99887766iihhggff~~}}uuvvwwxxEEFFGGHHLLKKJJIIFFEEDDCCWWVVUUTTbbccddee22334455==>>??@@BBCCDDEEJJKKLLMM??@@AABB""!! RRQQPPOO\\]]^^__,,--..//55443322eeddccbb||{{zzyyyyzz{{||IIJJKKLLHHGGFFEEBBAA@@??SSRRQQPPffgghhii66778899AABBCCDDFFGGHHIISSTTUUVVCCDDEEFFNNMMLLKK~~}}||{{``aabbcc001122331100//..aa``__^^xxwwvvuu}}~~MMNNOOPP DDCCBBAA>>==<<;;OONNMMLL~~}}||jjkkllmm::;;<<==EEFFGGHHJJKKLLMMWWXXYYZZGGHHIIJJJJIIHHGGzzyyxxwwddeeffgg44556677--,,++**]]\\[[ZZttssrrqqQQRRSSTT!!""##$$ @@??>>==::993322KKJJIIHH{{zzyyxxnnooppqq>>??@@AAIIJJKKLLNNOOPPQQ[[\\]]^^KKLLMMNNFFEEDDCCvvuuttsshhiijjkk8899::;; - - ))((''&&YYXXWWVV~~}}||ppoonnmmUUVVWWXX%%&&''(( - - <<;;::991100//..GGFFEEDDwwvvuuttrrssttuuBBCCDDEEMMSSTTUURRSSTTUU__``aabbOOPPQQRR !!""BBAA@@??rrqqppoollmmnnoo<<==>>?? %%$$##""UUTTSSRR{{zzyyxxlkjihggfYYZZ[[\\))**++,,88776655--,,++**CCBBAA@@ssrrqqppvvwwxxyyFFGGHHIIVVWWXXYYVVWWXXYYccddeeffSSTTUUVV##$$%%&& >>==<<;;nnmmllkkppqqrrss@@AABBCC!! QQPPOONNwwvvuuttfeeddccb]]^^__``--..//0044332211))((''&&??>>==<>bbaa``__VUUTTSSR||{{zzyymmnnoopp==>>??@@ $$##""!!//..--,,__^^]]\\ZZ[[\\]]ooppqqrrjjkkllmm||}}~~gghhiijj778899:: - -**))((''ZZYYXXWWTTUUVVWW$$%%&&'' - -==<<;;::^^]]\\[[QPONMMLLxxwwvvuuqqrrssttAABBCCDD  ++**))(([[ZZYYXX^^__``aassttuuvvnnooppqqkkllmmnn;;<<==>> &&%%$$##VVUUTTSSXXYYZZ[[(())**++ 99887766ZZYYXXWWKKJJIIHHttssrrqquuvvwwxxEEFFGGHH - - ''&&%%$$WWVVUUTTbbccddeewwxxyyzzrrssttuuooppqqrr??@@AABB""!! RRQQPPOO\\]]^^__,,--..//55443322VVUUTTSSGGFFEEDDppoonnmmyyzz{{||IIJJKKLL##""!! SSRRQQPPffgghhii{{||}}~~vvwwxxyyssttuuvvCCDDEEFFNNMMLLKK~~}}||{{``aabbcc001122331100//..MMLLKKJJCCBBAA@@llkkjjii}}~~MMNNOOPP OONNMMLL~~}}||jjkkllmmzz{{||}}wwxxyyzzGGHHIIJJJJIIHHGGzzyyxxww~~}}||{{ddeeffgg44556677--,,++**IIHHGGFF??>>==<>?? %%$$##""AA@@??>>65433221``__^^]]YYZZ[[\\))**++,,CCBBAA@@ssrrqqppvvwwxxyySSTTUUVV##$$%%&& >>==<<;;nnmmllkkrrqqppooyyxxwwvvppqqrrss@@AABBCC!! ==<<;;::100//..-\\[[ZZYY]]^^__``--..//00 ??>>==<=>=>=>=<;<;<;<;878787873333334321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#        \[\[\[\[ZYZYXWXWVUVUVUVUTSTSTSTSPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=<;<;<;<;878787874343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#        \[\[\[\[XWXWXWXWVUVUVUVUTSTSTSTSPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=<;<;<;<;878787874343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#        - \[\[\[\[XWXWXWXWVUVUVUVUTSTSTSTSPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=<;<;<;<;878787874343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#        - - - - \[\[\[\[XWXWXWXWVUVUVUVUTSTSTSTSPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=<;<;<;<;878787874343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!        - - - - \[\[\[\[XWXWXWXWVUVUVUVUTSTSTSTSPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=<;:9:9:9878787874343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!        - - - - \[\[\[\[XWXWXWXWVUVUVUVUTSTSRQRQPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:9878787873333343421212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!        - - - - \[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:9878787873434343421212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!        - - - - \[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:9878787873434343421212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!        - - - - \[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:9878787873434343421212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!        - - - - \[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:9878787873434343421212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!        - - - - \[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:9878787873434343321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!        - - - - \[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQPOPONMNMLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:987878787333343430/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!        - - - - \[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQNMNMMMMMLKLKLKLKJIHGHGHGFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:987878787434343430/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!        - - - - \[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQNMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:987878787434343430/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!        - - - - \[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQNMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:987878787434343430/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!        - - - - \[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQNMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:987878787434343430/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!        - - - - \[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQNMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:987878787434343330/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%"!"!"!"!        - - - - \[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQNMMMMMMNLKLKLKLKHGHGHGHGFEFEFEFEDCBABABA@?@?@?@?>=>=>=>=:9:9:9:987878787333434340/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%"!"!"!"!        - - - - \[\[ZYZYXWXWXWXWVUVUVUVURQRQRQRQMNMNMNMNLKLKLKLKHGHGHGHGFEFEFEFEBABABABA@?@?@?@?>=>=>=>=:9:9:9:987878765343434340/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%"!"!"!"!        - - - - ZYZYZYZYXWXWXWXWVUVUVUVURQRQRQRQMNMNMNMNLKLKLKLKHGHGHGHGFEFEFEFEBABABABA@?@?@?@?>=>=>=>=:9:9:9:965656565343434340/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%"!"!"!"!       - - - - ZYZYZYZYXWXWXWXWVUVUVUVURQRQRQRQMNMNMNMNLKLKLKLKHGHGHGHGFEFEFEFEBABABABA@?@?@?@?>=>=>=>=:9:9:9:965656565343434340/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%"!"!"!"!     - - - - ZYZYZYZYXWXWXWXWVUVUVUVURQRQRQRQMNMNMNMNLKLKLKLKHGHGHGHGFEFEFEFEBABABABA@?@?@?@?>=>=>=>=:9:9:9:965656565343434340/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"!     - - - - ZYZYZYZYXWXWXWXWVUVUVUVURQRQRQRQMNMNMNMNLKLKLKLKHGHGHGHGFEFEFEFEBABABABA@?@?@?@?>=<;<;<;:9:9:9:965656565343433330/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"!     - - - - ZYZYZYZYXWXWXWXWVUVUTSTSRQRQRQRQMMMMMMNMLKLKLKLKHGHGHGHGFEFEFEFEBABABABA@?@?@?@?<;<;<;<;:9:9:9:965656565334343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"!     - - - - ZYZYZYZYXWXWXWXWTSTSTSTSRQRQRQRQNMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEBABABABA@?@?@?@?<;<;<;<;:9:9:9:965656565434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"!     - - - - ZYZYZYZYXWXWXWXWTSTSTSTSRQRQRQRQNMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEBABABABA@?@?@?@?<;<;<;<;:9:9:9:965656565434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"!     - - - - ZYZYZYZYXWXWXWXWTSTSTSTSRQRQRQRQNMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEBABABABA@?@?@?@?<;<;<;<;:9:9:9:965656565434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"! - - - - ZYZYZYZYXWXWXWXWTSTSTSTSRQRQRQRQNMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEBABABABA@?@?@?@?<;<;<;<;:9:9:9:965656565434333330/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"! - - - - ZYZYZYZYXWXWXWXWTSTSTSTSRQRQRQRQNMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEBABABABA@?@?@?@?<;<;<;<;:9:9:9:965656565434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"! - - - - ZYZYZYZYXWXWXWXWTSTSTSTSRQRQRQRQMMMMMNMNLKLKLKLKHGHGHGHGFEFEFEFEBABABABA@?@?@?@?<;<;<;<;:9:9:9:965656565212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"! - - - - ZYZYZYZYXWXWXWXWTSTSTSTSRQRQRQRQMNMNMNMNLKJIJIJIHGHGHGHGFEFEFEFEBABABABA@?@?@?@?<;<;<;<;:9:9:9:965656565212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"! - - - - ZYZYZYZYXWXWXWXWTSTSTSTSRQRQRQRQMNMNMNMNJIJIJIJIHGHGHGHGFEFEFEFEBABABABA@?@?@?@?<;<;<;<;:9:9:9:965656565212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"! - - - - ZYZYZYZYXWXWXWXWTSTSTSTSRQRQRQRQMNMNMNMNJIJIJIJIHGHGHGHGFEFEFEFEBABABABA@?@?@?@?<;<;<;<;:9:9:9:965656565212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"! - - - - ZYZYZYZYXWXWXWXWTSTSTSTSRQRQRQRQMNMNMNMNJIJIJIJIHGHGHGHGFEFEFEFEBABABABA@?@?@?@?<;<;<;<;:9:9:9:965656565212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"! - - - - ZYZYZYZYXWXWXWXWTSTSTSTSRQRQRQRQMNMNMNMMJIJIJIJIHGHGHGHGFEFEFEFEBABABABA@?@?@?@?<;<;<;<;:9:9:9:965656565212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"! - - - - ZYZYZYZYXWXWXWXWTSTSTSTSRQRQRQRQMMMMNMNMJIJIJIJIHGHGHGHGFEDCDCDCBABABABA@?@?@?@?<;<;<;<;:9:9:9:965656565212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"! - - - - ZYZYZYZYXWXWXWXWTSTSTSTSRQRQRQRQNMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDCBABABABA@?@?@?@?<;<;<;<;:9:9:9:965656565212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"! - - - - ZYZYZYZYXWXWXWXWTSTSTSTSRQRQRQRQNMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDCBABABABA@?@?@?@?<;<;<;<;:9:9:9:965656565212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"! - - - - ZYZYZYZYXWXWXWXWTSTSTSTSPOPOPOPONMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDCBABABABA@?@?@?@?<;<;<;<;:9:9:9:965656565212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!    - - - - ZYZYZYZYXWXWXWXWTSTSTSTSPOPOPOPONMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDCBABABABA@?@?@?@?<;<;<;<;:9:9:9:965656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"!    - - - - ZYZYZYZYXWXWXWXWTSTSTSTSPOPOPOPONMNMNMMMJIJIJIJIHGHGHGHGDCDCDCDCBABABABA@?>=>=>=<;<;<;<;:9:9:9:965656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"!    - - - - ZYZYZYZYXWXWVUVUTSTSTSTSPOPOPOPOMMMNMNMNJIJIJIJIHGHGHGHGDCDCDCDCBABABABA>=>=>=>=<;<;<;<;:9:9:9:965656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"!    - - - - ZYZYZYZYVUVUVUVUTSTSTSTSPOPOPOPOMNMNMNMNJIJIJIJIHGHGHGHGDCDCDCDCBABABABA>=>=>=>=<;<;<;<;:9:9:9:965656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"!    - - - ZYZYZYZYVUVUVUVUTSTSTSTSPOPOPOPOMNMNMNMNJIJIJIJIHGHGHGHGDCDCDCDCBABABABA>=>=>=>=<;<;<;<;:9:9:9:965656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"!    ZYZYZYZYVUVUVUVUTSTSTSTSPOPOPOPOMNMNMNMNJIJIJIJIHGHGHGHGDCDCDCDCBABABABA>=>=>=>=<;<;<;<;:9:9:9:965656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#        ZYZYZYZYVUVUVUVUTSTSTSTSPOPOPOPOMNMNMNMNJIJIJIJIHGHGHGHGDCDCDCDCBABABABA>=>=>=>=<;<;<;<;:987878765656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#        ZYZYZYZYVUVUVUVUTSTSTSTSPOPOPOPOMNMNMMMMJIJIJIJIHGHGHGHGDCDCDCDCBABABABA>=>=>=>=<;<;<;<;8787878765656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#        ZYZYZYZYVUVUVUVUTSTSTSTSPOPOPOPOMMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDCBABABABA>=>=>=>=<;<;<;<;8787878765656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#        ZYZYZYZYVUVUVUVUTSTSTSTSPOPOPOPONMLKLKLKJIJIJIJIHGHGHGHGDCDCDCDCBABABABA>=>=>=>=<;<;<;<;8787878765656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#        ZYZYZYZYVUVUVUVUTSTSTSTSPOPOPOPOLKLKLKLKJIJIJIJIHGHGHGHGDCDCDCDCBABABABA>=>=>=>=<;<;<;<;8787878765656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#        ZYZYZYZYVUVUVUVUTSTSTSTSPOPOPOPOLKLKLKLKJIJIJIJIHGHGHGHGDCDCDCDCBABABABA>=>=>=>=<;<;<;<;8787878765656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#        ZYZYZYZYVUVUVUVUTSTSTSTSPOPOPOPOLKLKLKLKJIJIJIJIHGHGHGHGDCDCDCDCBABABABA>=>=>=>=<;<;<;<;8787878765434343212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#        ZYZYZYZYVUVUVUVUTSTSTSTSPOPOPOPOLKLKLKLKJIJIJIJIHGHGHGHGDCDCDCDCBABABABA>=>=>=>=<;<;<;<;878787874333333421212121.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#        ZYZYZYZYVUVUVUVUTSTSTSTSPOPOPOPOLKLKLKLKJIJIJIJIHGFEFEFEDCDCDCDCBABABABA>=>=>=>=<;<;<;<;878787873434343421212121.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#        ZYZYZYZYVUVUVUVUTSTSTSTSPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDCBABABABA>=>=>=>=<;<;<;<;878787873434343421212121.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#        ZYZYZYZYVUVUVUVUTSTSTSTSPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDCBABABABA>=>=>=>=<;<;<;<;878787873434343421212121.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#        ZYZYZYZYVUVUVUVUTSTSTSTSPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDCBABABABA>=>=>=>=<;<;<;<;878787873434343421212121.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#        ZYZYZYZYVUVUVUVUTSTSTSTSPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDCBABABABA>=>=>=>=<;<;<;<;878787873434343421212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#        YYZZ[[\\00112233XXWWVVUU99::;;<<$$##""!!~~}}mmnnoopp - - SSRRQQPP>>??@@AA{{zzyyxxrrssttuu..--,,++XWWVVUUTCCDDEEFF]]^^__``99::;;<< - - TTSSRRQQ==>>??@@ ||{{zzyyqqrrsstt !!OONNMMLLBBCCDDEEwwvvuuttvvwwxxyy**))((''TSSRQPONGGHHIIJJaabbccdd==>>??@@ PPOONNMMAABBCCDDxxwwvvuuuuvvwwxx""##$$%%KKJJIIHHFFGGHHIIssrrqqppzz{{||}} !!&&%%$$##MMLLKKJJKKLLMMNNeeffgghhAABBCCDDLLKKJJIIEEFFGGHHttssrrqqyyzz{{||&&''(()) - -GGFFEEDDJJKKLLMMoonnmmll~~""##$$%%""!! IIHHGGFFOOPPQQRR iijjkkllEEFFGGHHHHGGFFEEIIJJKKLLppoonnmm}}~~**++,,-- CCBBAA@@NNOOPPQQ kkjjiihh&&''(())EEDDCCBBSSTTUUVV - - mmnnooppIIJJKKLLDDCCBBAAMMNNOOPP llkkjjii..//0011??>>==<>WWXXYYZZqqrrssttMMSSTTUU @@??>>==QQRRSSTT - - hhggffee223399::;;::9988VVWWXXYYccbbaa``..//0011==<<;;::[[\\]]^^uuvvwwxxVVWWXXYY!!""##$$<<;;::99UUVVWWXXddccbbaa;;<<==>>77665544ZZ[[\\]]__^^]]\\22334455 - -99876543__``aabbyyzz{{||ZZ[[\\]]%%&&''((88776655YYZZ[[\\``__^^]]??@@AABB !33221100^^__``aa[[ZZYYXX66778899 3221100/ccddeeff - -~~}}}}~~^^__``aa))**++,,44332211]]^^__``\\[[ZZYYCCDDEEFF!""##$$%//..--,,bbccddee WWVVUUTT::;;<<==/..--,,+gghhiijj ||{{zzyybbccddee--..//0000//..--aabbccddXXWWVVUUGGHHIIJJ%&&''(()++**))((ffgghhii - - SSRRQQPP>>??@@AA - - +**))(('kkllmmnnxxwwvvuuffggmmnn11223344,,++**))eeffgghh - - TTSSRRQQKKLLMMSS)**++,,-''&&%%$$jjkkllmmOONNMMLLBBCCDDEE '&&%%$$#~~}}||{{ooppqqrrttssrrqqooppqqrr55667788((''&&%%iijjkkll PPOONNMMTTUUVVWW-..//001##""!! ~~}}||nnooppqqKKJJIIHHFFGGHHII#""!! zzyyxxwwssttuuvvppoonnmmssttuuvv99::;;<<$$##""!!~~}}mmnnooppLLKKJJIIXXYYZZ[[12233456{{zzyyxxrrssttuuGGFFEEDDJJKKLLMMvvuuttsswwxxyyzzllkkjjiiwwxxyyzz==>>??@@ ||{{zzyyqqrrssttHHGGFFEE\\]]^^__7899::;;wwvvuuttvvwwxxyyCCBBAA@@NNOOPPQQ rrqqppoo{{||}}~~ !!""hhggffee{{||}}~~AABBCCDDxxwwvvuuuuvvwwxxDDCCBBAA``aabbcc<<==>>??ssrrqqppzz{{||}} !!??>>==<>==ddeeffgg@@AABBCCoonnmmll~~""##$$%%;;::9988VVWWXXYY%%&&''(( jjiihhgg''(())**``__^^]]IIJJKKLLppoonnmm}}~~!!""##$$<<;;::99mmnnooppDDEEFFGG kkjjiihh&&''(())77665544ZZ[[\\]]))**++,, - - ffeeddcc++,,--..\\[[ZZYYMMNNOOPP llkkjjii%%&&''((88776655qqrrssttHHIIJJKK - - ggffeedd**++,,--33221100^^__``aa--..//00bbaa``__//001122XXWWVVUUQQRRSSTT - - hhggffee))**++,,44332211uuvvwwxxLLMMNOPQccbbaa``..//0011//..--,,bbccddee11223399^^]]\\[[33445566TTSSRRQQUUVVWWXXddccbbaa--..//0000//..--yyzz{{||RSSTTUUV__^^]]\\22334455++**))((ffgghhii::;;<<==ZZYYXXWW778899::PPOONNMMYYZZ[[\\``__^^]]11223344,,++**))}}~~VWWXXYYZ[[ZZYYXX66778899''&&%%$$jjkkllmm>>??@@AA - -VVUUTTSS;;<<==>>LLKKJJII]]^^__``\\[[ZZYY55667788((''&&%%Z[[\\]]^ WWVVUUTT::;;<<==##""!! ~~}}||nnooppqqBBCCDDEE RRQQPPOO??@@AABBHHGGFFEEaabbccddXXWWVVUU99::;;<<$$##""!!~~}}^__``aab - - SSRRQQPP>>??@@AA{{zzyyxxrrssttuuFFGGHHIINNMMLLKKCCDDEEFFDDCCBBAAeeffgghh - - TTSSRRQQ==>>??@@ ||{{zzyybccddeefOONNMMLLBBCCDDEEwwvvuuttvvwwxxyyJJKKLLMMJJIIHHGGGGHHIIJJ@@??>>==iijjkkll PPOONNMMAABBCCDDxxwwvvuufgghijklKKJJIIHHFFGGHHIIssrrqqppzz{{||}}SSTTUUVVFFEEDDCCKKLLMMNN<<;;::99~~}}||{{mmnnooppLLKKJJIIEEFFGGHHttssrrqqmmnnooppGGFFEEDDJJKKLLMMoonnmmll~~WWXXYYZZBBAA@@??OOPPQQRR88776655zzyyxxwwqqrrssttHHGGFFEEIIJJKKLLppoonnmmqqrrssttCCBBAA@@NNOOPPQQ kkjjiihh[[\\]]^^ !!"">>==<<;;SSTTUUVV44332211vvuuttssuuvvwwxxDDCCBBAAMMNNOOPP llkkjjiiuuvvwwxx !!??>>==<>==QQRRSSTT - - hhggffeeyyzz{{||""##$$%%;;::9988VVWWXXYYccbbaa``ccddeeff''(())**66554433[[\\]]^^,,++**))nnmmggff}}~~!!""##$$<<;;::99UUVVWWXXddccbbaa}}~~&&''(())77665544ZZ[[\\]]__^^]]\\ggmmnnoo++,,--..221100//__``aabb((''&&%%eeddccbb~~}}||%%&&''((88776655YYZZ[[\\``__^^]]**++,,--33221100^^__``aa[[ZZYYXXppqqrrss//001122..--,,++ccddeeff$$##""!!aa``__^^{{zzyyxx))**++,,44332211]]^^__``\\[[ZZYY..//0011//..--,,bbccddee WWVVUUTTttuuvvww33445566**))((''gghhiijj ]]\\[[ZZwwvvuutt--..//0000//..--aabbccddXXWWVVUU22334455++**))((ffgghhii - - SSRRQQPPxxyyzz{{778899::&&%%$$##kkllmmnnYYXXWWVVssrrqqpp11223344,,++**))eeffgghh - - TTSSRRQQ66778899''&&%%$$jjkkllmmOONNMMLL||}}~~;;<<==>>""!! ~~}}||{{ooppqqrrUUTTSSMMoonnmmlk55667788((''&&%%iijjkkll PPOONNMM~~}}::;;<<==##""!! ~~}}||nnooppqqKKJJIIHH??@@AABBzzyyxxwwssttuuvvLLKKJJIIjihggffe99::;;<<$$##""!!~~}}mmnnooppLLKKJJII||{{zzyy>>??@@AA{{zzyyxxrrssttuuGGFFEEDDCCDDEEFFvvuuttsswwxxyyzz HHGGFFEEeddccbba==>>??@@ ||{{zzyyqqrrssttHHGGFFEExxwwvvuuBBCCDDEEwwvvuuttvvwwxxyyCCBBAA@@GGHHIIJJrrqqppoo{{||}}~~ - - DDCCBBAAa``__^^]AABBCCDDxxwwvvuuuuvvwwxxDDCCBBAAttssrrqqFFGGHHIIssrrqqppzz{{||}} !!??>>==<>==]\\[[ZZYEEFFGGHHttssrrqqyyzz{{|| @@??>>==ppoonnmmJJKKLLMMoonnmmll~~""##$$%%;;::9988OOPPQQRR jjiihhgg <<;;::99YXXWWVVUIIJJKKLLppoonnmm}}~~!!""##$$<<;;::99ggffeeddNNOOPPQQ kkjjiihh&&''(())77665544SSTTUUVV - - ffeeddcc33221100UTTSSRQPMMNNOOPP llkkjjii%%&&''((88776655ccbbaa``RRSSTTUU - - ggffeedd**++,,--33221100WWXXYYZZbbaa``__//..--,,ONMMLLKKQQRRSSTT - - hhggffee))**++,,44332211__^^]]\\VVWWXXYYccbbaa``..//0011//..--,,~~[[\\]]^^^^]]\\[[++**))((JJIIHHGGUUVVWWXXddccbbaa--..//0000//..--[[ZZYYXXZZ[[\\]]__^^]]\\22334455++**))((}}||{{zz__``aabbZZYYXXWW ''&&%%$$FFEEDDCCYYZZ[[\\``__^^]]11223344,,++**))WWVVUUTT^^__``aa[[ZZYYXX66778899''&&%%$$yyxxwwvvccddeeff - -VVUUTTSS!!""##$$##""!! BBAA@@??]]^^__``\\[[ZZYY55667788((''&&%%SSMMLLKKbbccddee WWVVUUTT::;;<<==##""!! uuttssrrgghhiijj RRQQPPOO%%&&''((>>==<<;;aabbccddXXWWVVUU99::;;<<$$##""!!JJIIHHGGffgghhii - - SSRRQQPP>>??@@AAqqppoonnkkllmmnnNNMMLLKK))**++,,::998765eeffgghh - - TTSSRRQQ==>>??@@ FFEEDDCCjjkkllmmOONNMMLLBBCCDDEEmmggffeeooppqqrrJJIIHHGG--..//0043322110iijjkkll PPOONNMMAABBCCDDBBAA@@??~~}}||nnooppqqKKJJIIHHFFGGHHIIddccbbaassttuuvvFFEEDDCC11223344 0//..--,~~}}mmnnooppLLKKJJIIEEFFGGHH>>==<<;;{{zzyyxxrrssttuuGGFFEEDDJJKKLLMM``__^^]]wwxxyyzzBBAA@@??vvuuttss55667788 - - - -,++**))(||{{zzyyqqrrssttHHGGFFEEIIJJKKLL::993322wwvvuuttvvwwxxyyCCBBAA@@NNOOPPQQ \\[[ZZYY~~}}||{{{{||}}~~ !!"">>==<<;;rrqqppoo99::;;<< (''&&%%$xxwwvvuuuuvvwwxxDDCCBBAAMMNNOOPP 1100//..ssrrqqppzz{{||}} !!??>>==<>??@@$##""!! ttssrrqqyyzz{{|| @@??>>==QQRRSSTT - - --,,++**oonnmmll~~""##$$%%;;::9988VVWWXXYYTTSSMMLLvvuuttss''(())**66554433jjiihhggAABBCCDD ppoonnmm}}~~!!""##$$<<;;::99UUVVWWXX))((''&&kkjjiihh&&''(())77665544ZZ[[\\]]KKJJIIHHrrqqppoo++,,--..221100//ffeeddccEEFFGGHHllkkjjii%%&&''((88776655YYZZ[[\\%%$$##""ggffeedd**++,,--33221100^^__``aaGGFFEEDDnnmmlkji//001122..--,,++bbaa``__IIJJKKLL !!""##hhggffee))**++,,44332211]]^^__``!! ccbbaa``..//0011//..--,,bbccddee CCBBAA@@hggffeed33445566**))((''^^]]\\[[MMNNOOPP$$%%&&''ddccbbaa--..//0000//..--aabbccdd - - __^^]]\\22334455++**))((ffgghhii - - ??>>==<>""!! ~~}}||{{VVUUTTSSUUVVWWXX,,--..// \\[[ZZYY55667788((''&&%%iijjkkll WWVVUUTT::;;<<==##""!! ~~}}||nnooppqq221100//\[[ZZYYX??@@AABBzzyyxxwwRRQQPPOONNMMLLKKCCDDEEFF@@??>>==}}||{{zzppqqrrssIIHHGGFFHHIIJJKKbbaa``__uuvvwwxxDDCCBBAAMMNNOOPP llkkjjiiuuvvwwxx !!??>>==<>==QQRRSSTT - - hhggffeeyyzz{{||""##$$%%;;::9988VVWWXXYYLLKKJJII__^^]]\\FFEEDDCCKKLLMMNN33221100uuttssrrxxyyzz{{AA@@??>>PPQQRRSS - -ZZYYXXWW||{{zzyy}}~~!!""##$$<<;;::99UUVVWWXXddccbbaa}}~~&&''(())77665544ZZ[[\\]]HHGGFFEE[[ZZYYXXBBAA@@??OOPPQQRR //..--,,qqppoonn||}}~~ !!""##==<<;;::TTUUVVWW VVUUTTSSxxwwvvuu%%&&''((88776655YYZZ[[\\``__^^]]**++,,--33221100^^__``aaDDCCBBAAWWVVUUTT>>==<<;;SSTTUUVV - - ++**))((mmllkkjj$$%%&&''99887766XXYYZZ[[MMLLKKJJttssrrqq))**++,,44332211]]^^__``\\[[ZZYY..//0011//..--,,bbccddee @@??>>==SSRRQQPP::998877WWXXYYZZ''&&%%$$iihhggff(())**++55443322\\]]^^__IIHHGGFFppoonnmm--..//0000//..--aabbccddXXWWVVUU22334455++**))((ffgghhii - - <<;;::99OONNMMLL66554433[[\\]]^^##""!! eeddccbb,,--..//1100//..``aabbccEEDDCCBBlkjihggf11223344,,++**))eeffgghh - - TTSSRRQQ66778899''&&%%$$jjkkllmm33221100KKJJIIHH221100//__``aabb - -aa``__^^00112233--,,++**ddeeffgg - - AA@@??>>feeddccb55667788((''&&%%iijjkkll PPOONNMM~~}}::;;<<==##""!! ~~}}||nnooppqq//..--,,GGFFEEDD..--,,++ccddeeff ]]\\[[ZZ44556677))((''&&hhiijjkk ==<<;;::baa``__^99::;;<<$$##""!!~~}}mmnnooppLLKKJJII||{{zzyy>>??@@AA{{zzyyxxrrssttuu++**))((CCBBAA@@**))((''gghhiijjYYXXWWVV8899::;;%%$$##""~~llmmnnoo99332211^]]\\[[Z==>>??@@ ||{{zzyyqqrrssttHHGGFFEExxwwvvuuBBCCDDEEwwvvuuttvvwwxxyy''&&%%$$??>>==<<&&%%$$##kkllmmnn UUTTSSRR<<==>>??!! }}||{{zzppqqrrss00//..--ZYYXXWWVAABBCCDDxxwwvvuuuuvvwwxxDDCCBBAAttssrrqqFFGGHHIIssrrqqppzz{{||}} !!##""!! ;;::9988""!! ~~}}||{{ooppqqrr - - QQPPOONN@@AABBCCyyxxwwvvttuuvvww,,++**))VUUTTSSREEFFGGHHttssrrqqyyzz{{|| @@??>>==ppoonnmmJJKKLLMMoonnmmll~~""##$$%%77665544zzyyxxwwssttuuvv !!""##MMLLKKJJDDEEFFGGuuttssrrxxyyzz{{((''&&%%QPONMMLLIIJJKKLLppoonnmm}}~~!!""##$$<<;;::99ggffeeddNNOOPPQQ kkjjiihh&&''(())33221100vvuuttsswwxxyyzz$$%%&&''IIHHGGFFHHIIJJKKqqppoonn||}}~~ !!""##$$##""!!KKJJIIHHMMNNOOPP llkkjjii%%&&''((88776655ccbbaa``RRSSTTUU - - ggffeedd**++,,--//..--,,rrqqppoo{{||}}~~(())**++ - - EEDDCCBBLLMMNNOOmmllkkjj$$%%&&'' GGFFEEDDQQRRSSTT - - hhggffee))**++,,44332211__^^]]\\VVWWXXYYccbbaa``..//0011 ++**))((nnmmllkk,,--..// AA@@??>>PPQQRRSS - -iihhggff(())**++CCBBAA@@UUVVWWXXddccbbaa--..//0000//..--[[ZZYYXXZZ[[\\]]__^^]]\\22334455 - - - -''&&%%$$ jjiihhgg00112233==<<;;::TTUUVVWW eeddccbb,,--..//??>>==<>??@@55443322\\]]^^__]]\\[[ZZ44556677 - - 65433221aabbccddXXWWVVUU99::;;<<$$##""!!JJIIHHGGffgghhii - - SSRRQQPP>>??@@AA^^]]\\[[AABBCCDD !!""#1100//..``aabbccYYXXWWVV8899::;;100//..-eeffgghh - - TTSSRRQQ==>>??@@ FFEEDDCCjjkkllmmOONNMMLLBBCCDDEEZZYYXXWWEEFFGGHH#$$%%&&'--,,++**ddeeffgg - - UUTTSSRR<<==>>?? -,,++**)iijjkkll PPOONNMMAABBCCDDBBAA@@??~~}}||nnooppqqKKJJIIHHFFGGHHII !!""## - -VVUUTTSSIIJJKKLL'(())**+))((''&&hhiijjkk QQPPOONN@@AABBCC - - )((''&&%~~}}mmnnooppLLKKJJIIEEFFGGHH>>==<<;;{{zzyyxxrrssttuuGGFFEEDDJJKKLLMM$$%%&&'' RRQQPPOOMMSSTTUU+,,--../%%$$##""~~llmmnnooMMLLKKJJDDEEFFGG%$$##""!||{{zzyyqqrrssttHHGGFFEEIIJJKKLL::993322wwvvuuttvvwwxxyyCCBBAA@@NNOOPPQQ(())**++ - - NNMMLLKKVVWWXXYY/0011223!! }}||{{zzppqqrrssIIHHGGFFHHIIJJKK! xxwwvvuuuuvvwwxxDDCCBBAAMMNNOOPP 1100//..ssrrqqppzz{{||}} !!??>>==<>==QQRRSSTT - - --,,++**oonnmmll~~""##$$%%;;::9988VVWWXXYY00112233FFEEDDCC^^__``aa::;;<<==uuttssrrxxyyzz{{AA@@??>>PPQQRRSS !!""ppoonnmm}}~~!!""##$$<<;;::99UUVVWWXX))((''&&kkjjiihh&&''(())77665544ZZ[[\\]]99::;;<<BBAA@@??bbccddee>>??@@AAqqppoonn||}}~~ !!""##==<<;;::TTUUVVWW##$$%%&&llkkjjii%%&&''((88776655YYZZ[[\\%%$$##""ggffeedd**++,,--33221100^^__``aa==>>??@@ !!"">>==<<;;ffggmmnnBBCCDDEEmmllkkjj$$%%&&''99887766XXYYZZ[[''(())** hhggffee))**++,,44332211]]^^__``!! ccbbaa``..//0011//..--,,bbccddeeAABBCCDD##$$%%&&::998877ooppqqrrFFGGHHII - -iihhggff(())**++55443322\\]]^^__++,,--.. - - ddccbbaa--..//0000//..--aabbccdd - - __^^]]\\22334455++**))((ffgghhiiEEFFGGHH !!''(())**66554433ssttuuvvJJKKLLMM eeddccbb,,--..//1100//..``aabbcc//001122``__^^]]11223344,,++**))eeffgghh [[ZZYYXX66778899''&&%%$$jjkkllmmIIJJKKLL""##$$%%++,,--..221100//wwxxyyzzNOPQRSSTaa``__^^00112233--,,++**ddeeffgg3399::;;\\[[ZZYY55667788((''&&%%iijjkkll WWVVUUTT::;;<<==##""!! ~~}}||nnooppqqMMSSTTUU&&''(())//001122..--,,++{{||}}~~TUUVVWWX]]\\[[ZZ44556677))((''&&hhiijjkk<<==>>??XXWWVVUU99::;;<<$$##""!!~~}}mmnnoopp - - SSRRQQPP>>??@@AA{{zzyyxxrrssttuuVVWWXXYY**++,,--33445566**))((''XYYZZ[[\YYXXWWVV8899::;;%%$$##""~~llmmnnoo@@AABBCC - - TTSSRRQQ==>>??@@ ||{{zzyyqqrrsstt !!OONNMMLLBBCCDDEEwwvvuuttvvwwxxyyZZ[[\\]]..//0011778899::&&%%$$##\]]^^__` - - UUTTSSRR<<==>>??!! }}||{{zzppqqrrssDDEEFFGG PPOONNMMAABBCCDDxxwwvvuuuuvvwwxx""##$$%%KKJJIIHHFFGGHHIIssrrqqppzz{{||}}^^__``aa22334455;;<<==>>""!! ~~}}||{{`aabbccd QQPPOONN@@AABBCCyyxxwwvvttuuvvwwHHIIJJKKLLKKJJIIEEFFGGHHttssrrqqyyzz{{||&&''(()) - -GGFFEEDDJJKKLLMMoonnmmll~~bbccddee66778899??@@AABBzzyyxxwwdeeffgghMMLLKKJJDDEEFFGGuuttssrrxxyyzz{{LLMMSSTTHHGGFFEEIIJJKKLLppoonnmm}}~~**++,,-- CCBBAA@@NNOOPPQQ kkjjiihhffggmmnn::;;<<==CCDDEEFFvvuuttssijklmmnnIIHHGGFFHHIIJJKKqqppoonn||}}~~UUVVWWXXDDCCBBAAMMNNOOPP llkkjjii..//0011??>>==<>??@@AAGGHHIIJJrrqqppooooppqqrrEEDDCCBBLLMMNNOOmmllkkjjYYZZ[[\\ @@??>>==QQRRSSTT - - hhggffee223399::;;::9988VVWWXXYYccbbaa``ssttuuvvBBCCDDEEKKLLMMNNnnmmllkkssttuuvvAA@@??>>PPQQRRSS - -iihhggff]]^^__``!!""##$$<<;;::99UUVVWWXXddccbbaa;;<<==>>77665544ZZ[[\\]]__^^]]\\wwxxyyzzFFGGHHIIOOPPQQRR jjiihhggwwxxyyzz !!""##==<<;;::TTUUVVWW eeddccbbaabbccdd%%&&''((88776655YYZZ[[\\``__^^]]??@@AABB !33221100^^__``aa[[ZZYYXX{{||}}~~JJKKLLMMSSTTUUVV - - ffeeddcc{{||}}~~$$%%&&''99887766XXYYZZ[[aa``__^^eeffggmm))**++,,44332211]]^^__``\\[[ZZYYCCDDEEFF!""##$$%//..--,,bbccddee WWVVUUTTNNOOPPQQWWXXYYZZbbaa``__(())**++55443322\\]]^^__]]\\[[ZZnnooppqq--..//0000//..--aabbccddXXWWVVUUGGHHIIJJ%&&''(()++**))((ffgghhii - - SSRRQQPPRRSSTTUU[[\\]]^^^^]]\\[[,,--..//1100//..``aabbccYYXXWWVVrrssttuu11223344,,++**))eeffgghh - - TTSSRRQQKKLLMMSS)**++,,-''&&%%$$jjkkllmmOONNMMLLVVWWXXYY__``aabbZZYYXXWW00112233--,,++**ddeeffgg - - UUTTSSRRvvwwxxyy55667788((''&&%%iijjkkll PPOONNMMTTUUVVWW-..//001##""!! ~~}}||nnooppqqKKJJIIHHZZ[[\\]]ccddeeff - -VVUUTTSS44556677))((''&&hhiijjkk QQPPOONNzz{{||}}99::;;<<$$##""!!~~}}mmnnooppLLKKJJIIXXYYZZ[[12233456{{zzyyxxrrssttuuGGFFEEDD^^__``aagghhiijj RRQQPPOO8899::;;%%$$##""~~llmmnnooMMLLKKJJ~~==>>??@@ ||{{zzyyqqrrssttHHGGFFEE\\]]^^__7899::;;wwvvuuttvvwwxxyyCCBBAA@@bbccddeekkllmmnnNNMMLLKK~~}}||{{<<==>>??!! }}||{{zzppqqrrssIIHHGGFFAABBCCDDxxwwvvuuuuvvwwxxDDCCBBAA``aabbcc<<==>>??ssrrqqppzz{{||}} !!??>>==<>==ddeeffgg@@AABBCCoonnmmll~~""##$$%%;;::9988jjkkllmmssttuuvvFFEEDDCCvvuuttssDDEEFFGGuuttssrrxxyyzz{{AA@@??>>IIJJKKLLppoonnmm}}~~!!""##$$<<;;::99mmnnooppDDEEFFGG kkjjiihh&&''(())77665544nnooppqqwwxxyyzzBBAA@@??rrqqppooHHIIJJKKqqppoonn||}}~~ !!""##==<<;;::MMNNOOPP llkkjjii%%&&''((88776655qqrrssttHHIIJJKK - - ggffeedd**++,,--33221100rrssttuu{{||}}~~ !!"">>==<<;;nnmmggffLLMMNNOOmmllkkjj$$%%&&''99887766QQRRSSTT - - hhggffee))**++,,44332211uuvvwwxxLLMMNOPQccbbaa``..//0011//..--,,~~}}||{{vvwwxxyy##$$%%&&::998877eeddccbbPPQQRRSS - -iihhggff(())**++55443322UUVVWWXXddccbbaa--..//0000//..--yyzz{{||RSSTTUUV__^^]]\\22334455++**))((zzyyxxwwzz{{||}}''(())**66554433aa``__^^TTUUVVWW eeddccbb,,--..//1100//..YYZZ[[\\``__^^]]11223344,,++**))}}~~VWWXXYYZ[[ZZYYXX66778899''&&%%$$vvuuttss~~}}||~~++,,--..221100//]]\\[[ZZXXYYZZ[[aa``__^^00112233--,,++**~~}}||]]^^__``\\[[ZZYY55667788((''&&%%Z[[\\]]^ WWVVUUTT::;;<<==##""!! rrqqppoo{{zzyyxx//001122..--,,++YYXXWWVV\\]]^^__]]\\[[ZZ44556677))((''&&{{zzyyxxaabbccddXXWWVVUU99::;;<<$$##""!!~~}}^__``aab - - SSRRQQPP>>??@@AAnnmmggffwwvvuutt33445566**))((''UUTTSSMM``aabbccYYXXWWVV8899::;;%%$$##""wwvvuutteeffgghh - - TTSSRRQQ==>>??@@ ||{{zzyybccddeefOONNMMLLBBCCDDEEeeddccbbssrrqqpp778899::&&%%$$##LLKKJJIIddeeffgg - - UUTTSSRR<<==>>??!! ssrrqqppiijjkkll PPOONNMMAABBCCDDxxwwvvuufgghijklKKJJIIHHFFGGHHIIaa``__^^oonnmmll;;<<==>>""!! HHGGFFEEhhiijjkk QQPPOONN@@AABBCCoonnmmggmmnnooppLLKKJJIIEEFFGGHHttssrrqqmmnnooppGGFFEEDDJJKKLLMM]]\\[[ZZkkjjiihh??@@AABBDDCCBBAA~~llmmnnooMMLLKKJJDDEEFFGGffeeddccqqrrssttHHGGFFEEIIJJKKLLppoonnmmqqrrssttCCBBAA@@NNOOPPQQ YYXXWWVVggffeeddZHAbtArdrXQJ`vffے`JXQtArdp˂rbdQZ|ZHAbtlJp˂rbdQZ|˂pZZdQbtJ`ےdrtAJ`JXQrrd|˂rXQZ|d`JXQlJtArHAZp˂tbdQے`JXQ|ZdQbp˂r`vXnr˂p|ZdQbXQJ`ےdrtAے`JXQtArdXQHAZpltbHAbےlJtAbHAZpltb˂pZZdQbtJ`ےrtAJlrZAbdfrXQJZ|dr˂ptlJXQJ`ےvpfZHAbtlJbHAZJltr˂p|ZdQb˂rXQnvp`JXQrrdf˂rXQdQZ|HAbےlJtAbHAZptbdQے`J~Hfp`ےbrtAJlZHAbtArdbHAZH~fے`JXQtArdp˂rbdQZ|ZHAbtlJJ`ےff`v˂pZ~HfJ`ےdrtAJ`JXQrrd|˂rXQZ|dXQr˂vnXHAZp˂tbdQے`JXQ|ZdQbp˂r`vXnr˂pf~HXQJ`ےdrtAے`JXQtArdbHAZpXnvHAbےpvnbHAZpltb˂pZZdQbtJ`ےtbdQZpZHAbv`frXQJZ|dr˂ptlJXQJ`ےvpfZHAbfpvbHAZJltr˂p|ZdQb˂rXQpfH~`JXQrXv`f˂rXQdQZ|HAbےlJtAbHAZp|drے`J~Hfp`ےbtAJlZHAbtArdrXQH~fے`JXQnXv`p˂rbdQZ|ZHAbtlJJ`p˂f`v˂pZ~HfJ`ےdtAJl`JXQrrd|˂rXQtAJlXQr˂vnXHAZp˂tbnے`JXQ|ZdQbJ`ے`vXnr˂pf~HXQJ`ےdtAJے`JXQtArdrXQJXnvHAbےpvnbHAZptbn˂pZZdQbtJ`ےtbdQZpZAb`v`frXQJvpfHr˂ptlJbHAZpvpfZHAbfpvbHAZltbr˂p|ZdQb`ےbf~f``JXQrXv`f˂rXQvpfHAbےlJtAbHAZp|ltJXQr~Hfp`ےbf`vZHAbtArd˂rXQH~fے`JXQnXv`p˂rnvpZHAbtlJHAZp˂vXn˂pZ~HfJ`ےHf``JXQrrd|˂rXQbnv˂pZHvnXHAZp˂Xnvے`JXQ|ZdQbJ`ے`vXnr˂pf~HXQJ`ےfHfے`JXQtArdrXQJvpfHHAbےpvnbHAZpvXn˂pZZdQbtJ`ےp`vXAbے`v`frXQJpfH~r˂ptlJbHAXQJvpfZHAbfpvbHAZ`vXnr˂p|ZdQb`ے~f``JXQrXv`f˂rXQvpfHHAbےlJtAbHAZpnvpJXQr~Hfp`ےbf`vZHAbtArd`ےbH~fے`JXQnXv`p˂rvpfZHAbtlJrXQJ`vXn˂pZ~HfJ`ے~f``JXQrrdf˂rXQfH~˂pZHvnXHAZp˂Xnvے`JXQ|ZdQbHAZp˂`vXnr˂pf~HXQJ`ےH~fے`JXQtArdےbHAvpf~HAbےpvnbHAZpvXn˂pZ~HfJ`ےf`vXAbJXQv`frXQJpfH~r˂ptlJrXQJvpfZHAbfpvbHAZ`vXnr˂pf~HZp˂f`vX`JXQrXv`f˂rXQvpfHHAbےpvnbHAZpnfr˂p~Hfp`ےbf`vZHAbtArd`ےbH~fے`JXQnXv`p˂rvpfZHAbfpvrXQJ`nvp˂pZ~HfJ`ے~f``JXQrXv`f˂rXQ`vXnZHAbvnXHAZp˂Xnvے`JXQ|ZdQbHAZp``vXnr˂pf~HXQJ`ےH~fے`JXQnXv`ےbHAfH~HAbےpvnbHAZpvXn˂pZ~HfJ`ےvpfے`JXQv`frXQJpfH~r˂ptlJےbHAvpfZHAbfpvbHAZ`vXnr˂pf~HXQJ`ےf`vX`JXQrXv`f˂rXQvpfHHAbےpvnbHAZpH~fr˂p~Hfp`ےbf`vZHAbtArdZp˂H~fے`JXQnXv`p˂rvpfZHAbfpvbHAZnvp˂pZ~HfJ`ے~f``JXQrXv`f˂rXQ`vXnZA`JvnXHAZp˂Xnvے`JXQf~HrXQJ``vXnr˂pf~HXQJ`ےH~fے`JXQnXv`p˂rfH~fHAے`pvnbHAZpvXn˂pZ~HfJ`ےvp`XQrbtv`frXQJpfH~r˂pXv`fےbHAvpfZHAےfpvbHAZ`vXnr˂pf~HXQJ`ےvXnJXQrbXv`f˂rXQvpfHHAbےpvnbHAZpvXnlJtA~Hfp`ےbf`vZHAb~HfZp˂H~f`JXQrnXv`p˂rvpfZHAbfpvbHAZvpfHtlJ~HfJ`ے~f``JXQrXv`f˂rXQvpfHd|ZvnXHAZp˂Xnvے`JXQpvnbHAZ`vXnbtlf~HXQJ`ےH~fے`JXQnXv`p`ے~f`tAd|pvnbHAZpvXn˂pZ~HfJ`ے~f`dQbtv`frXQJpfH~r˂pXv`fdrtAvpfJtAdfpvbHAZ`vXnr˂pf~HbHAZpvXnZdQbtXv`f˂rXQvpfHHAbےpvnbHAZpvXnlJtAr~Hfp`ےbf`vZHAb~HfJbdQH~f|ZdQbnXv`p˂rvpfZHAbfpv˂rXQvpfHlJtA~HfJ`ے~f``JXQrXv`f˂rXQvpfHd|ZvnXHAZdXnvے`JXQp`fZ|d`vXntlJf~HXQJ`ےH~fے`JXQnXv`J`ے~fvnrd|pvnbHAZvXn˂pZ~HfJ`ےXnvdQbtv`frtAJlpfH~r˂p~HfprtAJl瀅vpftArdfpvbHAZ`vXnr˂pf~HbHAZpvpfZdQbtXv`fdrtAJvpfHHAbےpvnbHAZppfH~lJtAr~HfptbdQf`vZHAbvnXtbdQH~f|ZdQbnXv`drtAvpfZHAbfpv˂bH~flJtA~Hfltb~f``JXQrXv`f˂rXQf`vd|ZvnXZ|dXnvے`JXQv`fZ|d`vXntlJf~HJltH~fے`JXQnXv`HAZd`vXnrd|pvndQZ|vXn˂pZ~HfJ`ےXnvdQbtv`frtAJlpfH~r˂p~HfprtAJlvpftArdfpvbdQZ|`vXnr˂pf~HrtAdQZvpfZdQbtXv`fdrtAJvpfHHAے`pvnbHAZppfH~lJtAr~HfptbdQf`vZHAbv~bQZ|H~f|ZdQbnXv`drtAvpfZHAےfpv|drH~flJtA~Hfltb~f`JXQrbXv`f˂rXQvpd|ZvnXZ|dXnvے`JXQHfpvdrtAJ`vXntlJf~HJltH~f`JXQrnXv`tAJl`vnvprd|pvndQZ|vXntlJ~HfJ`ےfH~dQbtv`frtAJlpfH~r˂pnXvltbvpftArdfpvbdQZ|`vXnbtlf~HtbdQZfH~ZdQbtXv`fdrtAJvpfHtAd|pvnbHAZpf`vXlJtAr~HfptbdQf`vZHAb`f~dQZ|H~f|ZdQbnXv`drtAvpfJtAdfpv|drf`vXlJtA~Hfltb~f`ZdQbtXv`f˂rXQnvpd|ZvnXZ|dXnvے`JXQHfpvdrtAJ`vXntlJf~HJltH~f|ZdQbnXv`tAJl|nvprd|pvndQZ|vXnlJtA~HfJ`ےfH~dQbtv`frtAJlpfH~r˂pnXHltbQvpftArdfpvbdQZ|`vXntlJf~HdrtAfH~ZdQbtXv`fdrtAJvpfHrd|pvnbHAZf`pflJtAr~HfptbdQf`vZHAbfpvZdrtH~f|ZdQbnXv`drtAvpftArdfpvJltf`vXlJtA~Hfltb~f`ZdQbtXv`fdrtAdQH~fd|ZvnXZ|dXnvے`JXQnXv`AJlt`vXntlJf~HJltH~f|ZdQbnXv`bdQZ|nvfHrd|pvndQZ|vXnlJtA~HfZ|d`vXndQbtv`frtAJlpfH~r˂pf~HbdQZ|vpftArdfpvbdQZ|`vXntlJf~HdrtA~fZZdQbtXv`fdrtAJvpfHrd|pvnrtAJlvpflJtAr~HfptbdQf`v|ZdQbfpvdrtH~f|ZdQbnXv`drtAvpftArdfpvJltHAbےlJtA~Hfltb~f`ZdQbtXv`ftbdQH~fd|ZvnXZ|dXnvtlJnXv`AJltZHAbtlJf~HJltH~f|ZdQbnXv`drtAJ`JXQrrd|pvndQZ|vXnlJtA~HfZ|d`vXHdQbtv`frtAJlpfH~tArdpvnbdQZے`JXQtArdfpvbdQZ|`vXntlJf~Hltb˂pZZdQbtXv`fdrtAJvpfHrd|pvnrtAJl~fZlJtArHfpvtbdQf`v|ZdQbXv`frtAJlr˂p|ZdQbnXv`drtAvpftArdfpvdQZ|HAbےlJtAHfpltb~f`ZdQbtXv`f|drHAbd|ZnrXQZ|dXnvtlJ~HftbdQZHAbtlJfHfJltH~f|ZdQbnXv`drtAJ`JXQrrd|vnrdQZ|vXnlJtA~HftAJlJQr˂pdQbtJ`ےrtAJlpfH~tArdpvnZ|dے`JXQtArdpvnbdQZ|`vXntlJf~Hltb˂pZZdQbtXQJ`ےdrtAJvpfHrd|pvntbdQZZHAblJtArHAZp˂tbdQf`v|ZdQbXv`frtAJlr˂p|ZdQbrXQJ`drtAvpftArdfpvdQtAJlHAbےlJtAHAZpltb~f`ZdQbtXv`f|drے`JXd|ZrXQJZ|dXnvtlJnXtbdQZHAbtlJےHAZJltH~f|ZdQbnXv`tbdQ`JXQrrd|˂rXQdQZ|vXnlJtA~HftAJlQr˂pdQbt`ےbrtAJlpfH~tArdv`fZ|rAے`JXQtArdp˂rbdQZ|`vXntlJf~HZ|d˂pZZdQbtJ`ےdrtAJvpfHrd|pvntdrtAZHAblJtArHAZp˂tbdQfZHA|ZdQb~HfpJltr˂p|ZdQbXQJ`ےdrtAvpftArdfpvrtAJlHAbےlJtAbHAZpltb~fZZdQbtXv`fJltے`JQrd|ZrXQJZ|dbے`tlJvnXbdQZ|ZHAbtlJbHAZJltH~f|ZdQbnXv`tbdQ`JXQrrd|˂rXQdQZ|HAbےlJtA~HfbdQZ|pZHAdQbt`ےbrtAJlJXQr˂pZHAtArdv`p˂drtAے`JXQtArdp˂rbdQZ|ZHAbtlJf~HZ|l璀˂pZZdQbtJ`ےdrtAJ`JXQrrd|pvndrtAbے`lJtArHAZp˂tbdQ˂pZHAbے`|ZdQbrXQJJltr˂p|ZdQbXQJ`ےdrtAے`JXQtArdfpvtbdQZHAbےlJtAbHAZpltb˂pZZdQbtXv`fJltJXQrd|ZrXQJZ|dbے`JXQrtlJ`ےbbdQZ|ZHAbtlJbHAZJltr˂p|ZdQbnXv`|dr`JXQrrd|˂rXQdQZ|HAbےlJtAHfpbdQtAJ˂pZHAdQbt`ےbrtAJlJXQr˂pZHAtArdHAZp˂drAJے`JXQtArdp˂rbdQZ|ZHAbtlJfHftAJl璀˂pZZdQbtJ`ےdrtAJ`JXQrrd|vnrltbbے`lJtArHAZp˂tbdQ˂pZHAbے`|ZdQbrXQHAtbdQZr˂p|ZdQbXQJ`ےdrtAے`JXQtArdpvntbdQZHAbےlJtAbHAZpltb˂pZZdQbtXQJ`ےdQZ|JXQrd|ZrXQJZ|dbے`JXQrtlJZp˂|drZHAbtlJbHAZJltr˂p|ZdQbrXQJ`|dt`JXQrrd|˂rXQdQZ|HAbےlJtAHAZpdrtAJZHAbdQbt`ےbrtAJlJXQr˂pZHAtArdrXQJ`tAJlے`JXQtArdp˂rbdQZ|ZHAbtlJp˂rbdQZ|˂pZZdQbtJ`ےdrtAJ`JXQrrd|˂rXQltb`JXQlJtArHAZp˂tbdQ˂pZHAbے`|ZdQbےbHAtbdQZr˂p|ZdQbXQJ`ےdrtAے`JXQtArdXQJ`ےdrtAHAbےlJtAbHAZpltb˂pZZdQbtJ`ےdQZ|lr˂pd|ZrXQJZ|dbے`JXQrtlJZp˂|dnZHAbtlJbHAZJltr˂p|ZdQbbHAZJlt`JXQrrd|˂rXQdQZ|HAbےlJtAbHAZptbdQZHAbdQbt`ےbrtAJlJXQr˂pZHAbے`lJtArHAZp˂tbdQے`JXQHfpvےbHAf`vXXQr˂f~rXQJ`|drJXQrvnv`p˂rvpfZHAbfpvbHAZJltr˂pdfp˂r~f``JXQrXv`f˂rXQdQZ|XQr`vXnJXQrdfrXQJZ|dr˂pnXvZp˂nvppZHAbHfpvےbHAtAJl˂pZHAf~HXQJ`ےH~fے`JXQnXv`p˂rbdQZ|ZHAb~HXvXQJ`ےvXn˂pZ~HfJ`ےdtAJlے`JXQvˍpf˂pZHA~Hfp`ےbrtAJl`JXQr`f~rXQJ`fH~ے`JnXvZp˂tbdQZbے`fpvbHAZ`vXnr˂pf~HXQJ`ےdtAJے`JXQ`f~bHAZvpfHHAbےpvnbHAZptbnr˂pH~ㅐfbے`vnXHAZp˂tbdQ˂pZHfpvےbHAf`vXXQr˂`f~rXQJ`|dtAJXQrnXv`p˂rvpfZHAbfpvbHAZltbr˂pHfpvprQJ`~f``JXQrXv`f˂rXQvpfZHAb`vXnJXQrv`frXQJZ|dHAbےnXvZp˂nvppZHAbHfpvےbHAJltے`Jf~HXQJ`ےH~fے`JXQnXv`p˂rnvpZHAbnXvےbHvXn˂pZ~HfJ`ےHf`ے`JXQvˍpf˂pZHA~Hfp`ےbtAJl`JXQr`f~rXQJ`fH~ے`JnXvZp˂bnvXQr˂fpvbHAZ`vXnr˂pf~HXQJ`ےfHfے`JXQ`f~AZp˂vpfHHAbےpvnbHAZpvXnr˂pH~ㅐfbے`vnXHAZp˂tbn˂pZHfpvےbHAf`vXXQr˂`f~rXQJ`pfHpZHAbnvfp˂rvpfZHAbfpvbHAZ`vXnr˂pHfp`rXQJ`~f``JXQrXv`f˂rXQvpfH`JXQr`vXnJXQrv`frXQJvp`vHAXQrnXvZp˂nvppZHAbHfpvےbHAf`vXے`J~HfpXQJ`ےH~fے`JXQnXv`p˂rvpfZHAbf~HےbHvXn˂pZ~HfJ`ے~f`˂pZvˍpf˂pZHA~Hfp`ےbXnv˂pZHA`f~rXQJ`fH~ے`JnXvZp˂nvpXQr˂vnXbHAZ`vXnr˂pf~HXQJ`ےH~fے`JXQfpvAZp˂vpfHHAbےpvnbHAZpvXnHAbےH~ㅐfbے`vnXHAZp˂pfH~bے`HfpvےbHAf`vXXQr˂`f~rXQJ`fH~p`JXQv`fp˂rvpfZHAbfpvbHAZ`vXnr˂pnXv`rQJ~f``JXQrXv`f˂rXQvpfH`JXQr`vXnJXQrv`frXQJf`vJXQrnXvZp˂nvppZHAbHfpvےbHAf`vXr˂p~HfpXQJ`ےH~fے`JXQnXv`p˂rvpfZHAbf~HbHAZvXn˂pZ~HfJ`ے~f`˂pZvˍpf˂pZHA~Hfp`ےbXn˂p`J`f~rXQJ`fH~ے`JnXvZp˂nvpZHAbvnXvbHAZ`vXnr˂pf~HXQJ`ےH~fے`JXQfpvdrtAJvpfHHAbےpvnbHAZpvXnHAXQrH~ㅐfbے`vnXHAZp˂f`vXXQrbtHfpvےbHAf`vXXQr˂`f~rXQJ`fH~ے`JXQf~HfdrtAvpfZHAbfpvbHAZ`vXnr˂p~Hfltb~f``JXQrXv`f˂rXQvpfH˂pZHA`vXnJXQrv`frXQJnvplJAnXvZdrnvppZHAbHfpvےbHAf`vXr˂ppvnJltH~fے`JXQnXv`p˂rvpfZHAbpvndQZ|vXn˂pZ~HfJ`ے~f`bے`vˍpf˂pZHA~Hfp`ےbfH~|ZdQb`f~tAJlfH~ے`JnXvZp˂nvpZHAXQrXv`fbdQZ|`vXnr˂pf~HXQJ`ےH~fے`JXQXv`fdrtAJvpfHHAے`pvnbHAZpvXnJXQrH~ㅐfbے`vnXHAZp˂f`vXtlJHfpvtbdQZf`vXXQr˂`f~rXQJ`fH~˂pZ~HfdrtAvpfZHAےfpvbHAZ`vXnr˂p~Hfltb~f`JXQrbXv`f˂rXQvpfH˂p`Z`vXnJXQrv`frXQJnvptArdnXv|drnvppZHAHfpvےbHAf`vXHAbےpvnJltH~f`JXQrnXv`p˂rvpfZHAbpvndQZ|vXntlJ~HfJ`ے~f`QXb㉀ەvˍpf˂pZHA~Hfp`ےb`vXn|ZdQb`f~tAJlfH~ے`JXQnXvZp˂nvp`JXQrXv`fbdQZ|`vXnbtlf~HXQJ`ےH~fے`JXQXHfpdrtAJvpfHtAd|pvnbHAZpvXnpJAHrH~ㅐfېے`JvnXHAZp˂vpftJArdHfpvtbdQZf`vXrbt`f~rXQJ`fH~˂p`~fpvdrtAvpfJtAdfpvbHAZ`vXnr˂pvnXltb~f`ZdQbtXv`f˂rXQvpfHˁ`Z`vXnXQrbtv`frXQJH~f|ZdnXv|drnvplJtAdHfpvےbHAf`vXJXQrbnXv`JltH~f|ZdQbnXv`p˂rvpfZHAbv`fdQZ|vXnlJtA~HfJ`ے~f`QXb㉀vˍpflJtA~Hfp`ےb`vXnQbtl`f~tAJlfH~|ZdQnXvZp˂nvptl|f~HbdQZ|`vXntlJf~HXQJ`ےH~fے`JXQ~HfpdrtAJvpfHrd|pvnbHAZvXnˁ`ZQXH~ㅐfd|ZvnXHAZp˂vpfJtArdHfpvtbdQZf`vXbtl`f~rXQJ`fH~ZdQbtfpvdrtAvpftArdfpvbHAZ`vXnr˂pvnXltb~f`ZdQbtXv`fdrtAJvpfHb㉀ۑp`vXndQbtv`frXQJHXn|ZdnXv|drnvpJtArdHfpvےbHAf`vXlJtAnXv`JltH~f|ZdQbnXv`drtAvpfZHAbv`pvdQZ|vXnlJtA~Hfltb~f`JAHr󙐕vˍp|lJtAr~Hfp`ےbvpfHQbtl`f~tAJlfH~|ZdQnXvZdrnvprd|f~fbdQZ|`vXntlJf~HJltH~fے`JXQnXvdrtAJvpfHrd|pvndQZ|vXnˁ`ZQXdrQtd|ZvnXHAZd~f`JAr|HfpvtbdQZf`vXbtl`f~tAJlfH~ZdQbtvnXdrtAvpftArdfpvbdQZ|`vXnr˂p`f~ltb~f`ZdQbtXv`fdrtAJvpfHb㉀ۑpJltdQbtv`frtAJlvXnZdQbtnXv|drnvpJtArdHfpvtbdQZf`vXd|Zv`fJltH~f|ZdQbnXv`drtAvpfZHAےHfpvdQZ|vXnlJtA~Hfltb~f``ZQXbbAdZ|lJtAr~HfptbdQvpfHlJtA`f~tAJlfH~|ZdQnXv|drnvpdQbt~HfpbdQZ|`vXntlJf~HJltH~f`JXQrnXvdrtAJvpfHrd|pvndQZ|vXnۑpJdrQtd|ZvnXZ|d~vrd|HfpvtbdQZf`vXbtl`f~tAJlfH~lJtArvnXdrtAvpftArdfpvbdQZ|`vXnbtl`fltb~f`ZdQbtXv`fdrtAJvpfHAHr󙐂JltdQbtv`frtAJlpfH~ZdQbtnXv|drnvpJtArdHfpvtbdQZf`vXd|Zv`ffJltH~f|ZdQbnXv`drtAvpf|ZdQbnXv`dQZ|vXnlJtA~Hfltb~f``ZQXbbAdZ|lJtAr~HfptbdQf`vlJtA`fHtAJlfH~|ZdQnXv|drnvpdQbtpvnbdQZ|`vXntlJf~HJltH~ftlJf~HdrtAJvpfHrd|pvndQZ|vXnۑpJdrQtd|ZvnXZ|dXnvrZdQfpvtbdQZf`vXbtl`f~tAJlfH~l|ZdQrXQJ`drtAvpftArdfpvbdQZ|`vXntArdfpvltb~f`ZdQbtXv`fdrtAJvpfHAHQXb㉀JltdQbtv`frtAJlpfH~btlnrXQJ|drnvpJtArdHfpvtbdQZf`vXbtlےHAZJltH~f|ZdQbnXv`drtAvpf|ZdQbnXv`dQZ|vXnlJtA~Hfltb~f`ۑpJAHbAdZ|lJtAr~HfptbdQf`pJtArd`ےHAtAJlfH~|ZdQnXv|drnvpJtArdp˂rbdQZ|`vXntlJf~HJltH~ftd|pvndrtAJvpfHrd|pvndQZ|vXnr󙐂ˁ`drQtd|ZvnXZ|dfH~|ZdQZp˂tbdQZf`vXbtl`f~tAJlfH~|ZdQXQJ`ےdrtAvpftArdfpvbdQZ|`vXnZdQbtrXQJ`ltb~fZZdQbtXv`fdrtAJvpfHZQXb㉀JltdQbtv`frtAJlf`vXbtlrXQJ`|drnvpJtArdHfpvtbdQZf`vXbtlbHAZJltH~f|ZdQbnXv`drtAvpflJtAAZp˂dQZ|HAbےlJtA~Hfltb~f`ۑpJAHbAdZ|lJtAr~HfptbdQnvpJtArdےbHAtAJlfH~|ZdQnXv|drnvpJtAdQbp˂rbdQZ|ZHAbtlJf~HJltH~frd|rXQJdrtAJ`JXQrrd|pvndQZ|vXnr󙐉ۂdrQtd|ZvnXZ|dfH~ZQbtZp˂tbdQZfZHAbbtl`f~tAJlfH~tlJXQJ`ےdrtAے`JXQtArdfpvbdQZ|`vXnZdQbt`ےbltb˂pZZdQbtXv`fdrtAJvpfHpJAHrJltdQbtv`frtAJlf`vXlJtArrXQJ`|drے`JJtArdHfpvtbdQZf`vXtArdbHAZJltr˂p|ZdQbnXv`drtAvpfl|ZHAZp˂dQZ|HAbےlJtAHfpltb~f`ˁ`ZbAdZ|lJtAr~HfptbdQH~fd|ZےbHAtAJlXQr˂|ZdQnXv|drnvp|ZdQbp˂rbdQZ|ZHAbtlJfHfJltH~fdQbt璀rXQJdrtAJ`JXQrrd|vnrdQZ|vXnQXb㉀ۂdrQtd|ZvnXZ|dZHAbdQbtZp˂tbdQZpZHAbbtl`fHtAJlfH~tlJXQJ`ےdrtAے`JXQtArdpvnbdQZ|`vXnlJtArbHAZpltb˂pZZdQbtXQJ`ےdrtAJvpfHpJAHrJltdQbtv`frtAJl˂pZlJtArrXQJ`|drے`JJtArdfpvtbdQZf`vXtArdtbHAZJltr˂p|ZdQbrXQJ`drtAvpfd|Z˂rXdQZ|HAbےlJtAHAZpltb~f`ˁ`pbAdZ|lJtArHfpvtbdQHAbےd|ZQےbHAtAJlXQr˂|ZdQnrXQJ|drnvplJtAp˂rbdQZ|ZHAbtlJےHAZJltH~fdQbtQJ`ےdrtAJ`JXQrrd|˂rXQdQZ|vXnJAHr󙐂drQtd|ZnrXQZ|d`JXQrblJtZp˂tbdQZpZHAbbtl`ےHAtAJlfH~rd|XQJ`ےdrtAے`JXQtArdp˂rbdQZ|`vXnlJtAdQbHAZpltb˂pZZdQbtJ`ےdrtAJvpfHˁ`ZQXJltdQbtJ`ےrtAJl˂pZArd|rXQJ`|drے`JJtArdZp˂tbdQZf`vXZdQbtbHAZJltr˂p|ZdQbXQJ`ےdrtAvpfbtl˂rXdQZ|HAbےlJtAbHAZpltb~frb㉀ۑpbAdZ|lJtArHAZp˂tbdQHAbےZdQbtےbHAtAJlXQr˂|ZdQrXQJ`|drnvplJtAp˂rbdQZ|ZHAbtlJbHAZJltH~fJtArdQJ`bdrtAJ`JXQrrd|˂rXQdQZ|˂pZJAHr󙐂drQtd|ZrXQJZ|d`pZHAlJtZp˂tbdQZpZHAbbtlےbHAtAJlfH~rd|XQJ`ےdrtAے`JXQtArdp˂rbdQZ|ZHAb|ZdQAZp˂ltb˂pZZdQbtJ`ےdrtAJHAbےˁ`pfJltdQbt`ےbrtAJlbے`Ard|rXQJ`|drے`JJtArdZp˂tbdQZfZHAblJtArbHAZJltr˂p|ZdQbXQJ`ےdrtAے`JXQbtlrXQJ`dQZ|HAbےlJtAbHAZpltb`JXQrH~ㅐfbAdZ|lJtArHAZp˂tbdQJXQrZdQbےbHAtAJlXQr˂|ZdQrXQJ`|dr˂pd|Zp˂rbdQZ|ZHAbtlJbHAZJltr˂pJtArdےbHAdrtAJ`JXQrrd|˂rXQdQZ|˂pZ`vXndrQtd|ZrXQJZ|d˂pZHAJtArdZp˂tbdQZpZHAbbtlےbHAtAJlZHAbdQbtXQJ`ےdrtAے`JXQtArdp˂rbdQZ|ZHAbtlJZp˂ltb˂pZZdQbtJ`ےdrtAJHAbےvˍpfJltdQbt`ےbrtAJlbے`f~rXQJ`|drے`JJtArdZp˂tbdQZے`JXQlJtArbHAZJltr˂p|ZdQbXQJ`ےdrtAے`JXQtArdrXQJ`dQZ|HAbےlJtAbHAZpltb`pZHAH~ㅐfbAdZ|lJtArHAZp˂tbdQJXQHAbHfpvےbHAtAJlXQr˂|ZdQrXQJ`|drr˂pd|Zp˂rbdQZ|ZHAbtlJbHAZJltr˂p|ZdQbےbAZdtAJl`JXQrrd|˂rXQdQZ|bے``vXndrQtd|ZrXQJZ|dے`JnXvZp˂tbdQZpZHAbbtlےbHAtAJlZHAbdQtArdXQJ`ےdtAJے`JXQtArdp˂rbdQZ|ZHAbtlJrXQtbn˂pZZdQbtJ`ےdrtAJJXQrvˍpfJltdQbt`ےbrtAJlXQr˂`f~rXQJ`|dtAے`JJtArdZp˂tbdQZے`pZf~bHAZltbr˂p|ZdQbXQJ`ےdrtAے`JXQtArdJ`ے々vpfHAbےlJtAbHAZpltb˂pZHAH~ㅐfbAdZ|lJtArHAZp˂tbdQpZHAbHfpvےbHAJltXQr˂|ZdQrXQJ`|drHAbےHfvnXp˂rnvpZHAbtlJbHAZJltr˂p|lJtAbHAZpHf``JXQrrd|˂rXQdQZ|bے``vXndrQtd|ZrXQJZ|dے`JnXvZp˂bnvpZHAbbtlےbHAtAJl`JXQrv`fXQJ`ےfHfے`JXQtArdp˂rbdQZ|ZHAbrd|rXQvXn˂pZZdQbtJ`ےdrtAJJXQHAbvˍpfJltdQbt`ےbrtAJlXQr`f~rXQJ`pfHے`JJtArdZp˂tbdQZ˂pZ~HfpbHAZ`vXnr˂p|ZdQbXQJ`ےdrtAے`JXQZdQbtJ`ےvpfHHAbےlJtAbHAZpltbے`JH~ㅐfbAdZ|lJtArHAZp˂tbdQے`JXQHfpvےbHAf`vXXQr˂|ZdQrXQJ`|drHAbےvnXp˂rvpfZHAbtlJbHAZJltr˂plJtAbHAZr~f``JXQrrdf˂rXQdQZ|XQr˂`vXndrQtd|ZrXQJZ|dr˂pnXvZp˂nvppZHAbbtlےbHAtAJl`JXQHAv`fXQJ`ےH~fے`JXQtArdp˂rbdQZ|ZHAbrd|XQJ`ےvXn˂pZ~HfJ`ےdrtAJpZHAbvˍpfJltdQbt`ےbrtAJlZHAb`f~rXQJ`fH~ے`JJtArdZp˂tbdQZbے`~HfpbHAZ`vXnr˂pf~HXQJ`ےdrtAے`JXQZdQtArbHAZvpfHHAbےpvnbHAZpltbے`JH~ㅐfbAdZ|66666666666666666666666666666666666666666666666667777777777 \ No newline at end of file diff --git a/vendor/endroid/qr-code/assets/data/qrv38_0.dat b/vendor/endroid/qr-code/assets/data/qrv38_0.dat deleted file mode 100755 index 02972f21e..000000000 --- a/vendor/endroid/qr-code/assets/data/qrv38_0.dat +++ /dev/null @@ -1,337 +0,0 @@ -~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqponmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbaba`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDC~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststspopopoponmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdc`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDC~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststspopopoponmnmnmnmlkkkkkkljijijijihghghghgfefefefedcdcdcdc`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDC~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutststsrqpopopoponmnmnmnmklklklkljijijijihghghghgfefefefedcdcbaba`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDC~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvurqrqrqrqpopopoponmnmnmnmklklklkljijijijihghghghgfefefefebabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDC~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvurqrqrqrqpopopoponmnmnmnmklklklkljijijijihghghghgfefefefebabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDC~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvutsrqrqrqrqpopopoponmnmnmnmklklklkljijijijihghghghgfefedcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDC~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwtstststsrqrqrqrqpopopoponmnmnmnmklklklkljijijijihghghghgdcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDC~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwtstststsrqrqrqrqpopopoponmnmnmnmkkkkkklkjijijijihghghghgdcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVURQRQQQQQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDC~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijihghgfefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVURQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDC~}~}~}~}|{|{|{|{zyzyzyzyvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijifefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVURQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDC~}~}~}~}|{|{|{|{zyzyzyzyvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijijijifefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVURQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDC~}~}~}~}|{|{|{|{zyzyzyxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijihghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVURQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDC~}~}~}~}|{|{|{|{xwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkhghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVURQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA~}~}~}~}|{|{|{|{xwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmkkkklklkhghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVURQQQQQQRPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA~}~}~}~}|{|{|{zyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklkjijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUQRQRQRQRPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA~}~}~}~}zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUQRQRQRQRPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA~}~}~}~}zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUQRQRQRQRPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA~}~}~}|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUQRQRQRQRPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWTSTSTSTSQRQRQRQRPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWTSTSTSTSQQQQQQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmlkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopopolklklkkkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopopokkklklkljijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCBABABABABABABA~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopopoklklklkljijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEBABABABABABABABA~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopopoklklklkljijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWTSTSTSTSQQQQQRQRPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEBABABABABABABABA~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopopoklklklkljijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWTSTSTSTSQRQRQRQRPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEDCDCDCBABABABABABABABA~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopopoklklklkljijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWTSTSTSTSQRQRQRQRPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGDCDCDCDCBABABABABABABABA~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopopoklklkkkkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWTSTSTSTSQRQRQRQRPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGDCDCDCDCBABABABABABABABA~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopopokklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWVUVUTSTSTSTSQRQRQRQRPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGFEFEFEDCDCDCDCBABABABABABABABA~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopopolklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTSQRQRQRQQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDCBABABABABABABABA~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopopolklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTSQQQQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDCBABABABABABABABA~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopopolklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIHGHGHGFEFEFEFEDCDCDCDCBABABABABABABABA~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqponmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEDCDCDCDCBABABABABA@?@?@?~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqnmnmnmnmlklkkkkkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqnmnmnmnmklklklkljijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[ZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqnmnmnmnmklklklkljijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQQQPOPOPOPONMNMNMNMJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqnmnmnmnmklklklkljijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSQQQRQRQRPOPOPOPONMNMNMNMJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqnmnmnmnmklklklkljijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSQRQRQRQRPOPOPOPONMLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqnmnmnmnmklklklkljijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSQRQRQRQRPOPOPOPOLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqnmnmnmnmklkkkkkkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSQRQRQRQRPOPOPOPOLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqnmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSQRQRQRQRPONMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqnmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSQRQRQQQQNMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqnmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSQQRQRQRQNMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABA@?@?@?@?@?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:96565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!    - @?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:96565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!      - - - - @?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:96565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#        - - - - @?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:96565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#       - - - - @?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:96565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#     - - - - @?@?@?@?>=>=>=>=<;<;<;<;:98787876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#     - - - - @?@?@?@?>=>=>=>=<;<;<;<;877777786565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#     - - - - @?@?@?@?>=>=>=>=<;<;<;<;787878786565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#        - - - - @?@?@?@?>=>=>=>=<;<;<;<;787878786565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#        - - - - @?@?@?@?>=>=>=>=<;<;<;<;787878786565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#        - - - - @?@?@?@?>=>=>=>=<;<;<;<;787878786565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#        - - - - @?@?@?@?>=>=>=>=<;<;<;<;787878786565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#        - - - - @?@?@?@?>=>=>=>=<;<;<;<;777777876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#        - - - - @?@?@?@?>=>=>=>=<;<;<;<;878787876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%"!"!"!"!        - - - - @?@?@?@?>=>=>=>=<;<;<;<;878787876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%"!"!"!"!        - - - - @?@?@?@?>=>=>=>=<;<;<;<;878787876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%"!"!"!"!        - - - - @?@?@?@?>=>=>=>=<;<;<;:9878787876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!        - - - - @?@?@?@?>=>=>=>=:9:9:9:9878787876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!        - - - - @?@?@?@?>=>=>=>=:9:9:9:9777778786565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!        - - - - @?@?@?@?>=>=>=>=:9:9:9:9787878786565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"!        - - - - @?@?@?@?>=>=>=>=:9:9:9:9787878786565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"!        - - - - @?@?@?@?>=>=>=>=:9:9:9:9787878786565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"!        - - - - @?@?@?@?>=>=>=>=:9:9:9:9787878786565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - @?@?@?@?>=>=>=>=:9:9:9:9787878776565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - @?@?@?@?>=>=>=>=:9:9:9:9777787876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - @?@?@?@?>=>=>=>=:9:9:9:9878787876565656543434343212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - @?@?@?@?>=>=>=>=:9:9:9:9878787876565656543434343212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - @?@?@?@?>=>=>=>=:9:9:9:9878787876565656543434343212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - @?@?@?@?>=<;<;<;:9:9:9:9878787876565656543434343212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - @?@?@?@?<;<;<;<;:9:9:9:9878787776565656543434343212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - @?@?@?@?<;<;<;<;:9:9:9:9777878786565656543434343212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - @?>=>=>=<;<;<;<;:9:9:9:978787878656565654343434321212121.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - >=>=>=>=<;<;<;<;:9:9:9:978787878656565654343434321212121.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - >=>=>=>=<;<;<;<;:9:9:9:978787878656565654343434321212121.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - >=>=>=>=<;<;<;<;:9:9:9:97878787865656565434343430/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - >=>=>=>=<;<;<;<;:9:9:9:97878777765656565434343430/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!    - - - - >=>=>=>=<;<;<;<;:9:9:9:97787878765656565434343430/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!    - - - - >=>=>=>=<;<;<;<;:9:9:9:98787878765656565212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!    - - - - >=>=>=>=<;<;<;<;:9:9:9:98787878765656565212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!    - - - - >=>=>=>=<;<;<;<;:9:9:9:98787878765656565212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!    - - - - >=>=>=>=<;<;<;<;:9:9:9:98787878743434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!    - - - - >=>=>=>=<;<;<;<;:9:9:9:98787777743434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!    - - - - >=>=>=>=<;<;<;<;:9:9:9:98787878743434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!    - - - >=>=>=>=<;<;<;<;:9:9:9:96565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!    >=>=>=>=<;<;<;<;:9:9:9:96565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!     vvuuttsswwxxyyzz - ---..//00ppoonnmmEEFFGGHHXXWWVVUU]]^^__``@@??>>== !"##$$%oonnmmllFFGGHHIIWWVVUUTT^^__``aa??>>==<>??aa``__^^!!""##$$rrqqkkjj{{||}}~~ 11223344llkkjjiiIIJJKKLLTTSSRRQQaabbccdd<<;;::99%&&''(()kkjjiihhJJKKLLMMSSRRQQPPbbccddee;;::9988zz{{||}}##""!! - - >>??@@AAAA@@??>>{{||}}~~""!!  - - ''(())**vvuuttssMMNNOOPP##(())**++uuttssrr@@AABBCC]]\\[[ZZ%%&&''((iihhggff ~~}}55667788hhggffeeMMNNOOPPPPOONNMMeeffgghh88776655)**++,,-ggffeeddNNOOPPQQOONNMMLLffgghhii77665544~~BBCCDDEE==<;:987++,,--..rrqqppooQQWWXXYY,,--..//qqppoonnDDEEFFGGYYXXWWVV))**++,,eeddccbb - - !!""##$$||{{zzyy99::;;<>??@@``__^^]]UUVVWWXXHHGGFFEEmmnnoopp00//..--12233445__^^]]\\VVWWXXYYGGFFEEDDnnooppqq//..--,,JJKKLLMM3221100/33445566jjiihhgg^^__``aa~~44556677iihhggffLLMMNNOOQQPPOONN11223344]]\\[[ZZ))**++,,ttssrrqqAABBCCDD\\[[ZZYYYYZZ[[\\DDCCBBAAqqrrsstt,,++**))5667789:[[ZZYYXXZZ[[\\]]CCBBAA@@rrssttuu++**))(( NNOOPPQQ/..--,,+ - - !!""~~}}||{{778899::ffeeddccbbccddee !!""##}}||{{zz8899::;;eeddccbbPPQQRRSSMMLLKKJJ55667788YYXXWWQQ--..//00ppoonnmmEEFFGGHHXXWWVVUU]]^^__``@@??>>==uuvvwwxx((''&&%%;<==>>??WWVVUUTT^^__``aa??>>==<>bbaa``__ffgghhii - - $$%%&&''yyxxwwvv<<==>>??aa``__^^TTUUVVWWIIHHGGFF99::;;<>??@@LLKKJJII ~~}}55667788hhggffeeMMNNOOPPPPOONNMMeeffgghh88776655}}~~ DDEEFFGGOONNMMLLffgghhii77665544~~~~__``aabb#"! ++,,--..rrqqppooCCDDEEFFZZYYXXWWssttuuvv,,--..//qqppoonnDDEEFFGGYYXXWWVV\\]]^^__AA@@??>>AABBCCDDHHGGFFEE!!""##$$||{{zzyy99::;;<>??@@``__^^]]UUVVWWXXHHGGFFEEmmnnoopp00//..--LLMMNNOOGGFFEEDDnnooppqq//..--,,yyxxwwvvgghhiijj33445566jjiihhggKKLLMMNNRRQQPPOO{{||}}~~ ~~44556677iihhggffLLMMNNOOQQPPOONNddeeffgg99887766||{{zzyyIIJJKKLL@@??>>==))**++,,ttssrrqqAABBCCDD\\[[ZZYYYYZZ[[\\DDCCBBAAqqrrsstt,,++**))PPQQRSTUCCBBAA@@rrssttuu++**))((  !!uuttssrrkkqqrrss - - !!""~~}}||{{778899::ffeeddccOOPPQQRRNNMMLLKK}}||{{zz8899::;;eeddccbbPPQQRRSSMMLLKKJJhhiijjkk55443322xxwwvvuuMMNNOOPP77665544--..//00ppoonnmmEEFFGGHHXXWWVVUU]]^^__``@@??>>==uuvvwwxx((''&&%% ~~}}VWWXXYYZ??>>==<>bbaa``__SSTTUUVVJJIIHHGGyyxxwwvv<<==>>??aa``__^^TTUUVVWWIIHHGGFFllmmnnoo1100//..ttssrrqqQQRRSSTT3322110011223344llkkjjiiIIJJKKLLTTSSRRQQaabbccdd<<;;::99yyzz{{||$$##""!! - - ||{{zzyyZ[[\\]]^;;::9988zz{{||}}##""!! - - &&''(())hhggffeexxyyzz{{ - - ''(())**vvuuttss??@@AABB^^]]\\[[WWXXYYZZFFEEDDCCuuttssrr@@AABBCC]]\\[[ZZXXYYZZ[[EEDDCCBBppqqrrss--,,++**TTUUVVWWppoonnmmUUVVWWXX//..--,,55667788hhggffeeMMNNOOPPPPOONNMMeeffgghh88776655}}~~ xxwwvvuu^__``aab77665544~~**++,,--ddccbbaa||}}~~++,,--..rrqqppooCCDDEEFFZZYYXXWW[[\\]]^^BBAA@@?? !"#qqppoonnDDEEFFGGYYXXWWVV\\]]^^__AA@@??>>ttuuvvww))((''&&XXYYZZ[[llkkjjiiYYZZ[[\\++**))((99::;;<>==<<;;#$$%%&&'mmllkkjjHHIIJJKKUUTTSSRR``aabbcc==<<;;::xxyyzz{{%%$$##""\\]]^^__hhggffee]]^^__``''&&%%$$==>>??@@``__^^]]UUVVWWXXHHGGFFEEmmnnoopp00//..--kkjjiihhfgghhiij//..--,,22334455\\[[ZZYY33445566jjiihhggKKLLMMNNRRQQPPOOccddeeff::998877'(())**+iihhggffLLMMNNOOQQPPOONNddeeffgg99887766||}}~~!! ``aabbccddccbbaaaabbccdd##AABBCCDD\\[[ZZYYYYZZ[[\\DDCCBBAAqqrrsstt,,++**)) - - ggffeeddjkklmnop++**))((  !!~~}}||66778899XXWWQQPP - - !!""~~}}||{{778899::ffeeddccOOPPQQRRNNMMLLKKgghhiijj66554433+,,--../eeddccbbPPQQRRSSMMLLKKJJhhiijjkk55443322ddeeffgg``__^^]]eeffgghhEEFFGGHHXXWWVVUU]]^^__``@@??>>==uuvvwwxx((''&&%% ccbbaa``qqrrsstt''&&%%$$ - - ""##$$%%{{zzyyxx::;;<<==OONNMMLL ##$$%%&&zzyyxxww;;<<==>>bbaa``__SSTTUUVVJJIIHHGGkkllmmnn221100///0011223aa``__^^TTUUVVWWIIHHGGFFllmmnnoo1100//..hhiijjkk\\[[ZZYYiijjkkll~~}}||IIJJKKLLTTSSRRQQaabbccdd<<;;::99yyzz{{||$$##""!! - - __^^]]\\uuvvwwxx##""!! - - &&''(())wwvvuutt>>??@@AAKKJJIIHH''(())**vvuuttss??@@AABB^^]]\\[[WWXXYYZZFFEEDDCCooppqqrr..--,,++34455667]]\\[[ZZXXYYZZ[[EEDDCCBBppqqrrss--,,++**llmmnnooXXWWVVUUmmnnoopp{{zzyyxxMMNNOOPPPPOONNMMeeffgghh88776655}}~~ [[ZZYYXXyyzz{{||**++,,--ssrrqqppBBCCDDEEGGFFEEDD++,,--..rrqqppooCCDDEEFFZZYYXXWW[[\\]]^^BBAA@@??ssttuuvv**))((''789:;<==YYXXWWVV\\]]^^__AA@@??>>ttuuvvww))((''&&ppqqrrssTTSSRRQQqqrrsstt wwvvuuttQQRRSSTTLLKKJJIIiijjkkll44332211WWQQPPOO}}~~..//0011oonnmmllFFGGHHIICCBBAA@@//001122nnmmllkkGGHHIIJJVVUUTTSS__``aabb>>==<<;;wwxxyyzz&&%%$$##>>??@@AAUUTTSSRR``aabbcc==<<;;::xxyyzz{{%%$$##"" - -ttuuvvwwPPOONNMMuuvvwwxx - - - -ssrrqqpoUUVVWWXXHHGGFFEEmmnnoopp00//..--##$$%%NNMMLLKK22334455kkjjiihhJJKKLLMM??>>==7733445566jjiihhggKKLLMMNNRRQQPPOOccddeeff::998877{{||}}~~""!! BBCCDDEEQQPPOONNddeeffgg99887766||}}~~!!  xxyyzz{{LLKKJJIIyyzz{{|| nmlkkjjiYYZZ[[\\DDCCBBAAqqrrsstt,,++**))&&''(())JJIIHHGG  !!~~}}||66778899ggffeeddNNOOPPQQ66554433 !!""~~}}||{{778899::ffeeddccOOPPQQRRNNMMLLKKgghhiijj66554433FFGGHHIIMMLLKKJJhhiijjkk55443322||}}~~HHGGFFEE}}~~ihhggffe]]^^__``@@??>>==uuvvwwxx((''&&%% - - **++,,--FFEEDDCC - - ""##$$%%{{zzyyxx::;;<<==ccbbaa``RRSSTTUU221100//##$$%%&&zzyyxxww;;<<==>>bbaa``__SSTTUUVVJJIIHHGGkkllmmnn221100//JJKKLLMMIIHHGGFFllmmnnoo1100//..DDCCBBAAeddccbbaaabbccdd<<;;::99yyzz{{||$$##""!! - - ..//0011BBAA@@?? - - &&''(())wwvvuutt>>??@@AA__^^]]\\VVWWXXYY..--,,++''(())**vvuuttss??@@AABB^^]]\\[[WWXXYYZZFFEEDDCCooppqqrr..--,,++NNOOPPQQEEDDCCBBppqqrrss--,,++**@@??>>==a``__^^]eeffgghh88776655}}~~ 22334455>>==7766**++,,--ssrrqqppBBCCDDEE[[ZZYYXXZZ[[\\]]**))((''++,,--..rrqqppooCCDDEEFFZZYYXXWW[[\\]]^^BBAA@@??ssttuuvv**))((''RSTUVWWXAA@@??>>ttuuvvww))((''&& - - <<;;::99##]\\[[ZZYiijjkkll443322116677==>>55443322..//0011oonnmmllFFGGHHIIWWVVUUTT^^__``aa&&%%$$##//001122nnmmllkkGGHHIIJJVVUUTTSS__``aabb>>==<<;;wwxxyyzz&&%%$$## ~~}}||{{XYYZZ[[\==<<;;::xxyyzz{{%%$$##"" - - 88776655$$%%&&''YXXWWVUTmmnnoopp00//..--??@@AABB1100//..22334455kkjjiihhJJKKLLMMSSRRQQPPbbccddee33445566jjiihhggKKLLMMNNRRQQPPOOccddeeff::998877{{||}}~~""!!  - - zzyyxxww\]]^^__`99887766||}}~~!!  44332211(())**++SRQQPPOOqqrrsstt,,++**)) ~~}}CCDDEEFF--,,++**  !!~~}}||66778899ggffeeddNNOOPPQQOONNMMLLffgghhii778899::ffeeddccOOPPQQRRNNMMLLKKgghhiijj66554433vvuuttss`aabbccd5544332200//..--,,--..//NNMMLLKKuuvvwwxx((''&&%% - - !!""##$$||{{zzyyGGHHIIJJ))((''&& - - ""##$$%%{{zzyyxx::;;<<==ccbbaa``RRSSTTUUKKJJIIHHjjkkllmm;;<<==>>bbaa``__SSTTUUVVJJIIHHGGkkllmmnn221100//rrqqkkjjdeeffggh1100//..,,++**))00112233JJIIHHGGyyzz{{||$$##""!! - - %%&&''((xxwwvvuuKKLLMMNN%%$$##&&''(())wwvvuutt>>??@@AA__^^]]\\VVWWXXYYGGFFEEDDnnooppqq??@@AABB^^]]\\[[WWXXYYZZFFEEDDCCooppqqrr..--,,++ - -iihhggffhiijjkkl--,,++**((''&&%%44556677FFEEDDCC}}~~ ))**++,,ttssrrqqOOPPQQWW**++,,--ssrrqqppBBCCDDEE[[ZZYYXXZZ[[\\]]CCBBAA@@rrssttuu - -~~}}||{{CCDDEEFFZZYYXXWW[[\\]]^^BBAA@@??ssttuuvv**))(('' eeddccbbmnopqqrr))((''&& - - !!""##$$##""!!==>>??@@BBAA@@??--..//00ppoonnmmXXYYZZ[[..//0011oonnmmllFFGGHHIIWWVVUUTT^^__``aa??>>==<>==<<;;wwxxyyzz&&%%$$## aa``__^^ssttuuvv%%$$##"" - - $$%%&&'' AABBCCDD>>==<;:911223344llkkjjii\\]]^^__22334455kkjjiihhJJKKLLMMSSRRQQPPbbccddee;;::9988zz{{||}}vvuuttssKKLLMMNNRRQQPPOOccddeeff::998877{{||}}~~""!!  - - ]]\\[[ZZwwxxyyzz!!  (())**++EEFFGGHH87766554 ~~}}55667788hhggffee``aabbcc  !!~~}}||66778899ggffeeddNNOOPPQQOONNMMLLffgghhii77665544~~ - - rrqqponmOOPPQQRRNNMMLLKKgghhiijj66554433YYXXWWQQ{{||}}~~,,--..//IIJJKKLL43322110 - - !!""##$$||{{zzyy99::;;<>??@@``__^^]]hhiijjkk&&''(())wwvvuutt>>??@@AA__^^]]\\VVWWXXYYGGFFEEDDnnooppqq//..--,,hggffeedWWXXYYZZFFEEDDCCooppqqrr..--,,++$$%%&&''LLKKJJII~~44556677 QQWWXXYY,++**))())**++,,ttssrrqqAABBCCDD\\[[ZZYYqqrrsstt**++,,--ssrrqqppBBCCDDEE[[ZZYYXXZZ[[\\]]CCBBAA@@rrssttuu++**))((dccbbaa`[[\\]]^^BBAA@@??ssttuuvv**))(('' - -(())**++HHGGFFEE - - !!""##}}||{{zz8899::;; - - ZZ[[\\]](''&&%%$--..//00ppoonnmmEEFFGGHHXXWWVVUUuuvvwwxx - -..//0011oonnmmllFFGGHHIIWWVVUUTT^^__``aa??>>==<>==<<;;wwxxyyzz&&%%$$## ,,--..//DDCCBBAA - - $$%%&&''yyxxwwvv<<==>>?? - - ^^__``aa$##"! 11223344llkkjjiiIIJJKKLLTTSSRRQQyyzz{{|| 22334455kkjjiihhJJKKLLMMSSRRQQPPbbccddee;;::9988zz{{||}}##""!! ##$$\[[ZZYYXccddeeff::998877{{||}}~~""!!  - - 00112233@@??>>== (())**++uuttssrr@@AABBCC bbccddee ~~}}55667788hhggffeeMMNNOOPPPPOONNMM}}~~~~}}||66778899ggffeeddNNOOPPQQOONNMMLLffgghhii77665544~~%%&&''((XWWVUTSRgghhiijj665544334455667777665544,,--..//qqppoonnDDEEFFGGffgghhii - - !!""##$$||{{zzyy99::;;<>??@@3322110000112233mmllkkjjHHIIJJKK~~}}||{{jjkkqqrr %%&&''((xxwwvvuu==>>??@@``__^^]]UUVVWWXXHHGGFFEEwwvvuutt>>??@@AA__^^]]\\VVWWXXYYGGFFEEDDnnooppqq//..--,,--..//00MMLLKKJJooppqqrr..--,,++AABBCCDD//..--,,~~44556677iihhggffLLMMNNOOzzyyxxwwssttuuvv))**++,,ttssrrqqAABBCCDD\\[[ZZYYYYZZ[[\\DDCCBBAAssrrqqppBBCCDDEE[[ZZYYXXZZ[[\\]]CCBBAA@@rrssttuu++**))((11223344IIHHGGFFssttuuvv**))(('' - - !!""~~}}||{{EEFFGGHH++**))(( - - !!""##}}||{{zz8899::;;eeddccbbPPQQRRSS~~}}||{{zz8899::;;QQPPOONN - - !!""##$$||{{zzyy99::;;<>??MMLLKKJJ %%&&''((xxwwvvuu==>>??@@``__^^]]UUVVWWXXHHGGFFEEmmnnoopp00//..--12233445__^^]]\\VVWWXXYYGGFFEEDDnnooppqq//..--,,ZZ[[\\]]##""!! uuttssrr@@AABBCCIIHHGGFF))**++,,ttssrrqqAABBCCDD\\[[ZZYYYYZZ[[\\DDCCBBAAqqrrsstt,,++**))5667789:[[ZZYYXXZZ[[\\]]CCBBAA@@rrssttuu++**))(( ^^__``aaqqppoonnDDEEFFGGEEDDCCBB--..//00ppoonnmmEEFFGGHHXXWWVVUU]]^^__``@@??>>==uuvvwwxx((''&&%%;<==>>??WWVVUUTT^^__``aa??>>==<>11223344llkkjjiiIIJJKKLLTTSSRRQQaabbccdd<<;;::99yyzz{{||$$##""!!@@AABBCCSSRRQQPPbbccddee;;::9988zz{{||}}##""!! - - ffgghhiiiihhggffLLMMNNOO==776655 ~~}}55667788hhggffeeMMNNOOPPPPOONNMMeeffgghh88776655}}~~ DDEEFFGGOONNMMLLffgghhii77665544~~~~}}||{{jjkkqqrreeddccbbPPQQRRSS44332211!!""##$$||{{zzyy99::;;<>??@@``__^^]]UUVVWWXXHHGGFFEEmmnnoopp00//..--LLMMNNOOGGFFEEDDnnooppqq//..--,,vvuuttsswwxxyyzz - - ]]\\[[ZZXXYYZZ[[,,++**))))**++,,ttssrrqqAABBCCDD\\[[ZZYYYYZZ[[\\DDCCBBAAqqrrsstt,,++**))PPQQRSTUCCBBAA@@rrssttuu++**))((  !!rrqqkkjj{{||}}~~ - - YYXXWWVV\\]]^^__((''&&%%--..//00ppoonnmmEEFFGGHHXXWWVVUU]]^^__``@@??>>==uuvvwwxx((''&&%% ~~}}VWWXXYYZ??>>==<>??@@``__^^]]UUVVWWXXHHGGFFEEmmnnoopp00//..--kkjjiihhfgghhiij//..--,,22334455YYXXWWQQ !!EEDDCCBBppqqrrss ~~}}AABBCCDD\\[[ZZYYYYZZ[[\\DDCCBBAAqqrrsstt,,++**)) - - ggffeeddjkklmnop++**))((  !!~~}}||66778899PPOONNMM""##$$%%AA@@??>>ttuuvvww - - ||{{zzyyEEFFGGHHXXWWVVUU]]^^__``@@??>>==uuvvwwxx((''&&%% ccbbaa``qqrrsstt''&&%%$$ - - ""##$$%%{{zzyyxx::;;<<==LLKKJJII&&''(())==<<;;::xxyyzz{{xxwwvvuuIIJJKKLLTTSSRRQQaabbccdd<<;;::99yyzz{{||$$##""!! - - __^^]]\\uuvvwwxx##""!! - - &&''(())wwvvuutt>>??@@AAHHGGFFEE**++,,--99887766||}}~~ ttssrrqqMMNNOOPPPPOONNMMeeffgghh88776655}}~~ [[ZZYYXXyyzz{{||**++,,--ssrrqqppBBCCDDEEDDCCBBAA..//001155443322 - - ponmlkkjQQRRSSTTLLKKJJIIiijjkkll44332211WWQQPPOO}}~~..//0011oonnmmllFFGGHHII@@??>>==223344551100//..jiihhggfUUVVWWXXHHGGFFEEmmnnoopp00//..--##$$%%NNMMLLKK22334455kkjjiihhJJKKLLMM7766554466778899--,,++**feeddccbYYZZ[[\\DDCCBBAAqqrrsstt,,++**))&&''(())JJIIHHGG  !!~~}}||66778899ggffeeddNNOOPPQQ33221100::;;<<==))((''&&baa``__^]]^^__``@@??>>==uuvvwwxx((''&&%% - - **++,,--FFEEDDCC - - ""##$$%%{{zzyyxx::;;<<==ccbbaa``RRSSTTUU//..--,,>>??@@AA%%$$##""^]]\\[[Zaabbccdd<<;;::99yyzz{{||$$##""!! - - ..//0011BBAA@@?? - - &&''(())wwvvuutt>>??@@AA__^^]]\\VVWWXXYY++**))((BBCCDDEE!! ##$$%%&&ZYYXXWWVeeffgghh88776655}}~~ 22334455>>==7766**++,,--ssrrqqppBBCCDDEE[[ZZYYXXZZ[[\\]]''&&%%$$~~}}||FFGGHHII''(())**UTSRQQPPiijjkkll443322116677==>>55443322..//0011oonnmmllFFGGHHIIWWVVUUTT^^__``aa##{{zzyyxxJJKKLLMM++,,--..OONNMMLLmmnnoopp00//..--??@@AABB1100//..22334455kkjjiihhJJKKLLMMSSRRQQPPbbccddeewwvvuuttNNOOPPQQ//001122KKJJIIHHqqrrsstt,,++**)) ~~}}CCDDEEFF--,,++**  !!~~}}||66778899ggffeeddNNOOPPQQOONNMMLLffgghhiissrrqqppRRSSTTUU33445566GGFFEEDDuuvvwwxx((''&&%% - - !!""##$$||{{zzyyGGHHIIJJ))((''&& - - ""##$$%%{{zzyyxx::;;<<==ccbbaa``RRSSTTUUKKJJIIHHjjkkllmmoonnmmllVVWWXXYY - -77==>>??CCBBAA@@yyzz{{||$$##""!! - - %%&&''((xxwwvvuuKKLLMMNN%%$$##&&''(())wwvvuutt>>??@@AA__^^]]\\VVWWXXYYGGFFEEDDnnooppqq kkjjiihhZZ[[\\]] @@AABBCC??>>==<;}}~~ ))**++,,ttssrrqqOOPPQQWW**++,,--ssrrqqppBBCCDDEE[[ZZYYXXZZ[[\\]]CCBBAA@@rrssttuu - - - -ggffeedd^^__``aaDDEEFFGG:9877665--..//00ppoonnmmXXYYZZ[[..//0011oonnmmllFFGGHHIIWWVVUUTT^^__``aa??>>==<>??@@``__^^]]hhiijjkk&&''(())wwvvuutt>>??@@AA__^^]]\\VVWWXXYYGGFFEEDDnnooppqq//..--,,##SSRRQQPPrrssttuu]]^^__``%$$##"! ))**++,,ttssrrqqAABBCCDD\\[[ZZYYqqrrsstt**++,,--ssrrqqppBBCCDDEE[[ZZYYXXZZ[[\\]]CCBBAA@@rrssttuu++**))(($$%%&&''OONNMMLLvvwwxxyy~~}}||aabbccdd--..//00ppoonnmmEEFFGGHHXXWWVVUUuuvvwwxx - -..//0011oonnmmllFFGGHHIIWWVVUUTT^^__``aa??>>==<>==<<$$%%&&''jjiihhggvvwwxxyy %%&&''((xxwwvvuu==>>??@@``__^^]]UUVVWWXXHHGGFFEEwwvvuutt>>??@@AA__^^]]\\VVWWXXYYGGFFEEDDnnooppqq//..--,,==>>??@@;;::9988(())**++ffeeddcczz{{||}} - - ))**++,,ttssrrqqAABBCCDD\\[[ZZYYYYZZ[[\\DDCCBBAAssrrqqppBBCCDDEE[[ZZYYXXZZ[[\\]]CCBBAA@@rrssttuu++**))((AABBCCDD77665544,,--..//bbaa``__~~--..//00ppoonnmmEEFFGGHHXXWWVVUU]]^^__``@@??>>== !"##$$%oonnmmllFFGGHHIIWWVVUUTT^^__``aa??>>==<=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:978787878878787776565656565656565434343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#~}~}~}~}~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopoponmnmnmnmnmnmnmnmklkkkkkkjijijijijijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSRQRQQRQRQRQRPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABA@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:978787878777878786565656565656565434343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#~}~}~}~}~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopoponmnmnmnmnmnmnmnmlklklklkjijijijijijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSRQRQQQQQQRQRQRQRPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:978787878787878786565656565656565434343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#~}~}~}~}~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqpopopopoponmnmnmnmnmnmnmnmlklklklkjijijijijijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSRQRQRQRQQRQRQRQQPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCBABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:978787878787878786565656565656565434343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#~}~}~}~}~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqpopopopopopopoponmnmnmnmnmnmnmlklklklklkjijijijijijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[ZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSRQRQRQRQQQQQRQRQPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:978787878787878786565656565656565434343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#~}~}~}~}~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutststststststsrqrqrqrqrqpopopopopopopoponmnmnmnmlklklkkklklklklkjijijijijijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:977777787787878786565656565656565434343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#~}~}~}~}~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmkkklklkllklklklkjijijijijijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:987878787787877776565656565656565434343434343434321212121212121210/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#~}~}~}~}~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvutststststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmklklklkllkkkkkkljijijijijijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:987878787778787876565656565656565434343434343434321212121212121210/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#~}~}~}~}~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmklklklklklklklkljijijijijijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSRQQQQQQRRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;:9:9:9:9:9878787878787878765656565656565654343434343434343212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#~}~}~}~}~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmklklklklklklklkljijijijijijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSQRQRQRQRRQRQRQQQPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;:9:9:9:9:9:9:9:9878787878787878765656565656565654343434343434343212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#~}~}~}~}~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmklklklklklklklkljijijijijijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababa`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSQRQRQRQRQQQRQRQRPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;:9:9:9:9:9:9:9:9878787878787878765656565656565654343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#~}~}~}~}~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmklklkkkkklklklkljijijijijijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSQRQRQRQRQRQRQRQRPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKLKJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;:9:9:9:9:9:9:9:9777778788787878765656565656565654343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#~}~}~}~}~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmkklklklkklklklkljijijijijijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcbabababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUTSTSTSTSTSTSTSTSQRQRQRQRQRQRQRQRPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;:9:9:9:9:9:9:9:9787878788787777765656565434343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#~}~}~}~}~}~}~}~}|{|{|{|{|{|{|{zyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmlklklklkkkkkkklkjijijijijijijijihghghghghghghghgfefefefefefefefedcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUTSTSTSTSTSTSTSTSQRQRQRQRQRQRQRQRPOPOPOPOPOPOPOPONMNMNMNMNMLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;:9:9:9:9:9:9:9:9787878788787878765656565434343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#~}~}~}~}~}~}~}~}|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmlklklklklklklklkjijijijijijijijihghghghghghghghgfefefefefefedcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUTSTSTSTSTSTSTSTSQQQQQQRQQRQRQRQRPOPOPOPOPOPOPOPONMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;:9:9:9:9:9:9:9:9787878786565656565656565434343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#~}~}~}~}~}~}~}|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopopoponmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghghghghghgfefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQQRQRQQQQPOPOPOPOPONMNMNMNMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;:9:9:9:9:9:9:9:9787878786565656565656565434343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopoponmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghghghgfefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQQQRQRQRQPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;:9:9:9:9:9:9:9:9787878776565656565656565434343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#~}~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopoponmnmnmnmnmnmnmnmlklkkkkklklklklkjijijijijijijijihghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQPOPOPOPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;:9:9:9:9:9:9:9:9777787876565656565656565434343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#~}~}~}~}~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopoponmnmnmnmnmnmnmnmklklklkllklklklkjijijijijijihghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;:9:9:9:9:9:9:9:9878787876565656565656565434343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%$#$#$#$#$#$#$#$#$#$#$#$#~}~}~}~}~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopoponmnmnmnmnmnmnmnmklklklklkkkklklkjijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=<;<;<;<;<;<;<;:9:9:9:9:9:9:9:9878787876565656565656565434343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%$#$#$#$#$#$#$#$#$#$#$#$#~}~}~}~}~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopoponmnmnmnmnmnmnmnmklklklkllklkjijijijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUTSTSTSTSTSTSTSTSQQQQQRQRPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9878787878787876565656565656565434343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!~}~}~}~}~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopoponmnmnmnmnmnmnmnmklklklkljijijijijijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUTSTSTSTSTSTSTSTSQRQRQRQRPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:987777778878787876565656565656565434343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!"!"!"!"!         - - - - - - - - "!"!"!"!"!"!"!"!            - - - - - - - - "!"!"!"!"!"!"!"!            - - - - - - - - "!"!"!"!"!"!"!"!            - - - - - - - - "!"!"!"!"!"!"!"!            - - - - - - - - "!"!"!"!"!"!"!"!            - - - - - - - - "!"!"!"!"!"!"!"!            - - - - - - - - "!"!"!"!"!"!"!"!            - - - - - - - - "!"!"!"!"!"!"!"!            - - - - - - - - "!"!"!"!"!"!              - - - - - - - - "!"!"!"!                - - - - - - - - "!"!"!"!                - - - - - - - - "!"!"!"!                - - - - - - - - "!"!"!"!                - - - - - - - - "!"!"!"!                - - - - - - - - "!"!"!"!                - - - - - - - - "!"!"!"!                - - - - - - - "!"!"!"!                - - - - "!"!"!"!                - - - - - "!"!"!"!                - - - - - - - - "!"!"!"!               - - - - - - - - "!"!"!"!        - - - - - - - - PPOONNMMqqrrsstt~~}}||{{ffgghhii~~}}||EEFFGGHH\\[[ZZYYUUVVWWXXLLKKJJII eeffgghh<<;;::99 uuvvwwxx,,++**))--..//00ttssrrqqKKLLMMNN))((''&&@@AABBCCWWVVUUTTZZ[[\\]]GGFFEEDDjjkkllmm77665544""##$$%%zz{{||}}~~}}||''&&%%$$22334455oonnmmllBBCCDDEEKKJJIIHH%%&&''((\[[ZZYYX - -__``aabbBBAA@@??ooppqqrr221100//''(())**zzyyxxww""!! 778899::jjiihhggGGHHIIJJZZYYXXWWjjkkqqrrvvuuttss - - \]]^^__`==<<;;::ttuuvvww--,,++**,,--..//uuttssrr<<==>>??eeddccbb - -LLMMNNOOUUTTSSRR\\]]^^__,,++**))DDEEFFGG??>>==<;!!""##$$yyzz{{||~~}}((''&&%%11223344ppoonnmmAABBCCDD``__^^]]QQRRSSTTPPOONNMM - - aabbccddLLKKJJII uuvvwwxxzzyyxxww jjkkqqrr{{zzyyxxIIJJKKLLXXWWVVUUYYZZ[[\\HHGGFFEEiijjkkll88776655!!""##$$yyzz{{||~~}}((''&&%%11223344ppoonnmmOOPPQQWW%%$$##DDEEFFGGSSRRQQPP ^^__``aaCCBBAA@@nnooppqq33221100&&''(())~~{{zzyyxx##""!! 66778899kkjjiihhFFGGHHIIGGFFEEDD))**++,,XWWVUTSR ccddeeff>>==<<;;ssttuuvv..--,,++++,,--..vvuuttss;;<<==>>ffeeddcc KKLLMMNNVVUUTTSS - -ssttuuvvrrqqkkjj`aabbccd99887766 !!""##xxyyzz{{~~))((''&&00112233qqppoonn@@AABBCCaa``__^^ PPQQRRSSQQPPOONN - - ``aabbcc((''&&%%HHIIJJKK:9877665%%&&''((}}~~||{{zzyy$$##""!!55667788llkkjjiiEEFFGGHH\\[[ZZYYUUVVWWXXLLKKJJII eeffgghhHHGGFFEE!!""##$$yyzz{{||vvuuttss - - - -ssttuuvvwwvvuuttMMNNOOPPTTSSRRQQ]]^^__``DDCCBBAAmmnnoopp44332211%%&&''((}}~~||{{zzyy$$##""!!55667788llkkjjiiXXYYZZ[[HHIIJJKKOONNMMLL - - bbccddee??>>==<<rrssttuu//..--,,**++,,--wwvvuutt::;;<<==ggffeedd JJKKLLMMCCBBAA@@--..//00QQPPOONNgghhiijj::998877 !!""wwxxyyzz**))((''//001122rrqqppoo??@@AABBbbaa``__ - - OOPPQQRRRRQQPPOO wwxxyyzziihhggffdeeffggh55443322$$%%&&''||}}~~}}||{{zz%%$$##""44556677mmllkkjjDDEEFFGG]]\\[[ZZTTUUVVWWMMLLKKJJ ddeeffgg$$##LLMMNNOO54433221))**++,,xxwwvvuu 99::;;<>==qqrrsstt00//..--))**++,,xxwwvvuu 99::;;<>??@@AAccbbaa`` - - NNOOPPQQ??>>==7711223344MMLLKKJJkkllmmnn66554433##$$%%&&{{||}}~~~~}}||{{&&%%$$##33445566nnmmllkkCCDDEEFF^^]]\\[[SSTTUUVVNNMMLLKK{{||}}~~eeddccbb - - hiijjkkl1100//..(())**++yyxxwwvv!! 8899::;;iihhggffHHIIJJKKYYXXWWVVXXYYZZ[[IIHHGGFFhhiijjkkPPQQWWXX100//..---..//00ttssrrqq==>>??@@ddccbbaa - - MMNNOOPPTTSSRRQQ]]^^__``DDCCBBAAmmnnoopp@@??>>==))**++,,iihhggff{{||}}~~nmlkkjji - -UUVVWWXXLLKKJJII eeffgghh<<;;::99 uuvvwwxx,,++**))--..//00ttssrrqq==>>??@@ddccbbaa - - ``aabbcc~~}}PPQQRSTUGGFFEEDDjjkkllmm77665544""##$$%%zz{{||}}~~}}||''&&%%$$22334455oonnmmllBBCCDDEE__^^]]\\RRSSTTUU66554433556677==IIHHGGFFooppqqrr221100//''(())**zzyyxxww""!! 778899::jjiihhggGGHHIIJJZZYYXXWWWWXXYYZZJJIIHHGGaa``__^^ mnopqqrr--,,++**,,--..//uuttssrr<<==>>??eeddccbb - -LLMMNNOOUUTTSSRR\\]]^^__EEDDCCBBllmmnnooYYZZ[[\\-,,++**)11223344ppoonnmmAABBCCDD``__^^]]QQRRSSTTPPOONNMM - - aabbccdd@@??>>==qqrrsstt@@??>>==<<;;::99--..//00eeddccbbihhggffe YYZZ[[\\HHGGFFEEiijjkkll88776655!!""##$$yyzz{{||~~}}((''&&%%11223344ppoonnmmAABBCCDD``__^^]]ddeeffgg||{{zzyy VWWXXYYZCCBBAA@@nnooppqq33221100&&''(())~~{{zzyyxx##""!! 66778899kkjjiihhFFGGHHII[[ZZYYXXVVWWXXYY221100//>>??@@AAEEDDCCBBssttuuvv..--,,++++,,--..vvuuttss;;<<==>>ffeeddcc KKLLMMNNVVUUTTSS[[\\]]^^FFEEDDCC]]\\[[ZZssttuuvv~~))((''&&00112233qqppoonn@@AABBCCaa``__^^ PPQQRRSSQQPPOONN - - ``aabbccAA@@??>>ppqqrrss~~}}||]]^^__``)((''&&%55667788llkkjjiiEEFFGGHH\\[[ZZYYUUVVWWXXLLKKJJII eeffgghh<<;;::99 uuvvwwxx<<;;::998877665511223344aa``__^^eddccbba]]^^__``DDCCBBAAmmnnoopp44332211%%&&''((}}~~||{{zzyy$$##""!!55667788llkkjjiiEEFFGGHH\\[[ZZYYhhiijjkkxxwwvvuu - - Z[[\\]]^??>>==<<rrssttuu//..--,,**++,,--wwvvuutt::;;<<==ggffeedd JJKKLLMMWWVVUUTTZZ[[\\]]..--,,++BBCCDDEEAA@@??>> !!""wwxxyyzz**))((''//001122rrqqppoo??@@AABBbbaa``__ - - OOPPQQRRRRQQPPOO - -__``aabbBBAA@@??##YYXXWWQQwwxxyyzz}}||{{zz%%$$##""44556677mmllkkjjDDEEFFGG]]\\[[ZZTTUUVVWWMMLLKKJJ ddeeffgg==<<;;::ttuuvvww{{zzyyxx aabbccdd%$$##"! 99::;;<>==qqrrsstt00//..--))**++,,xxwwvvuu 99::;;<>??@@AAccbbaa`` - - NNOOPPQQSSRRQQPP ^^__``aa**))((''FFGGHHII==<;:987##$$%%&&{{||}}~~~~}}||{{&&%%$$##33445566nnmmllkkCCDDEEFF^^]]\\[[SSTTUUVVNNMMLLKK ccddeeff>>==<<;;$$%%&&''PPOONNMM{{||}}~~yyxxwwvv!! 8899::;;iihhggffHHIIJJKKYYXXWWVVXXYYZZ[[IIHHGGFFhhiijjkk99887766 !!""##xxyyzz{{wwvvuutt - - eeffgghh~~}}==>>??@@ddccbbaa - - MMNNOOPPTTSSRRQQ]]^^__``DDCCBBAAmmnnoopp44332211%%&&''((}}~~||{{zzyy4433221100//..--99::;;<>??@@ddccbbaa - - MMNNOOPPTTSSRRQQ - - uuvvwwxxkkjjiihhbccddeef77665544""##$$%%zz{{||}}~~}}||''&&%%$$22334455oonnmmllBBCCDDEE__^^]]\\RRSSTTUUOONNMMLL - - bbccddee&&%%$$##JJKKLLMM76655443''(())**zzyyxxww""!! 778899::jjiihhggGGHHIIJJZZYYXXWWWWXXYYZZJJIIHHGGgghhiijj::998877(())**++LLKKJJII !"#uuttssrr<<==>>??eeddccbb - -LLMMNNOOUUTTSSRR\\]]^^__EEDDCCBBllmmnnoo55443322$$%%&&''||}}~~ssrrqqkkiijjkkqq||{{zzyyAABBCCDD``__^^]]QQRRSSTTPPOONNMM - - aabbccdd@@??>>==qqrrsstt00//..--))**++,,xxwwvvuu00//..--,,++**))==>>??@@PPOONNMM(())**++YXXWWVUTiijjkkll88776655!!""##$$yyzz{{||~~}}((''&&%%11223344ppoonnmmAABBCCDD``__^^]]QQRRSSTTPPOONNMM yyzz{{||ggffeedd - -fgghhiij33221100&&''(())~~{{zzyyxx##""!! 66778899kkjjiihhFFGGHHII[[ZZYYXXVVWWXXYYKKJJIIHHffgghhiiNNOOPPQQ3221100/++,,--..vvuuttss;;<<==>>ffeeddcc KKLLMMNNVVUUTTSS[[\\]]^^FFEEDDCCkkllmmnn66554433,,--..//HHGGFFEE#$$%%&&'qqppoonn@@AABBCCaa``__^^ PPQQRRSSQQPPOONN - - ``aabbccAA@@??>>ppqqrrss1100//..(())**++jjiihhgg rrssttuuxxwwvvuuEEFFGGHH\\[[ZZYYUUVVWWXXLLKKJJII eeffgghh<<;;::99 uuvvwwxx,,++**))--..//00ttssrrqq,,++**))~~}}((''&&%%AABBCCDDLLKKJJII,,--..//SRQQPPOOmmnnoopp44332211%%&&''((}}~~||{{zzyy$$##""!!55667788llkkjjiiEEFFGGHH\\[[ZZYYUUVVWWXXLLKKJJII}}~~ccbbaa`` jkklmnop//..--,,**++,,--wwvvuutt::;;<<==ggffeedd JJKKLLMMWWVVUUTTZZ[[\\]]GGFFEEDDjjkkllmmWWXXYYZZ/..--,,+//001122rrqqppoo??@@AABBbbaa``__ - - OOPPQQRRRRQQPPOO - -__``aabbBBAA@@??ooppqqrr221100//00112233DDCCBBAA'(())**+mmllkkjjDDEEFFGG]]\\[[ZZTTUUVVWWMMLLKKJJ ddeeffgg==<<;;::ttuuvvww--,,++**,,--..//ffeeddcc - - vvwwxxyyttssrrqqIIJJKKLLXXWWVVUUYYZZ[[\\HHGGFFEEiijjkkll88776655!!""##$$yyzz{{||~~}}((''&&%%11223344ppoonnmm((''&&%%||{{zzyy$$##""!!EEFFGGHHHHGGFFEE00112233NNMMLLKKqqrrsstt00//..--))**++,,xxwwvvuu 99::;;<>??@@AAccbbaa`` - - NNOOPPQQSSRRQQPP ^^__``aaCCBBAA@@nnooppqq~~[[\\]]^^+**))(('33445566nnmmllkkCCDDEEFF^^]]\\[[SSTTUUVVNNMMLLKK ccddeeff>>==<<;;ssttuuvv..--,,++44556677@@??>>==+,,--../iihhggffHHIIJJKKYYXXWWVVXXYYZZ[[IIHHGGFFhhiijjkk99887766 !!""##xxyyzz{{~~))((''&&00112233bbaa``__zz{{||}}ponmlkkj MMNNOOPPTTSSRRQQ]]^^__``DDCCBBAAmmnnoopp44332211%%&&''((}}~~||{{zzyy$$##""!!55667788llkkjjii$$##""!!xxwwvvuu IIJJKKLLDDCCBBAA44556677JJIIHHGG uuvvwwxx,,++**))--..//00ttssrrqq==>>??@@ddccbbaa - - MMNNOOPPTTSSRRQQ]]^^__``DDCCBBAA[[ZZYYXXuuvvwwxx~~}}||''&&%%$$22334455oonnmmllBBCCDDEE__^^]]\\RRSSTTUUOONNMMLL - - bbccddee??>>==<<rrssttuu}}||{{zz__``aabb'&&%%$$#778899::jjiihhggGGHHIIJJZZYYXXWWWWXXYYZZJJIIHHGGgghhiijj::998877 !!""wwxxyyzz**))((''==>>??@@77665544/0011223eeddccbb - -LLMMNNOOUUTTSSRR\\]]^^__EEDDCCBBllmmnnoo55443322$$%%&&''||}}~~}}||{{zz%%$$##""44556677^^]]\\[[~~jiihhggf - - QQRRSSTTPPOONNMM - - aabbccdd@@??>>==qqrrsstt00//..--))**++,,xxwwvvuu 99::;;<>====>>??@@FFEEDDCC!!""##$$yyzz{{||~~}}((''&&%%11223344ppoonnmmAABBCCDD``__^^]]QQRRSSTTPPOONNMM - - aabbccdd@@??>>==##$$%%WWQQPPOOyyzz{{||{{zzyyxx##""!! 66778899kkjjiihhFFGGHHII[[ZZYYXXVVWWXXYYKKJJIIHHffgghhii;;::9988 !!vvwwxxyyyyxxwwvv - -ccddeeff#"! ;;<<==>>ffeeddcc KKLLMMNNVVUUTTSS[[\\]]^^FFEEDDCCkkllmmnn66554433##$$%%&&{{||}}~~~~}}||{{&&%%$$##AABBCCDD3322110034455667aa``__^^ PPQQRRSSQQPPOONN - - ``aabbccAA@@??>>ppqqrrss1100//..(())**++yyxxwwvv!! 8899::;;ZZYYXXWWfeeddccbUUVVWWXXLLKKJJII eeffgghh<<;;::99 uuvvwwxx,,++**))--..//00ttssrrqq==>>??@@ddccbbaappoonnmmQQRRSSTT77665544AABBCCDDBBAA@@??%%&&''((}}~~||{{zzyy$$##""!!55667788llkkjjiiEEFFGGHH\\[[ZZYYUUVVWWXXLLKKJJII eeffgghh<<;;::99&&''(())NNMMLLKK}}~~wwvvuutt::;;<<==ggffeedd JJKKLLMMWWVVUUTTZZ[[\\]]GGFFEEDDjjkkllmm77665544""##$$%%zz{{||}}uuttssrr gghhiijj~~}}||{{??@@AABBbbaa``__ - - OOPPQQRRRRQQPPOO - -__``aabbBBAA@@??ooppqqrr221100//''(())**zzyyxxww""!! EEFFGGHH//..--,,789:;<==]]\\[[ZZTTUUVVWWMMLLKKJJ ddeeffgg==<<;;::ttuuvvww--,,++**,,--..//uuttssrr<<==>>??QQPPOONNbaa``__^YYZZ[[\\HHGGFFEEiijjkkll88776655!!""##$$yyzz{{||~~}}((''&&%%11223344ppoonnmmAABBCCDD``__^^]]llkkjjiiUUVVWWXX33221100EEFFGGHH>>==<;:9))**++,,xxwwvvuu 99::;;<>??@@AAccbbaa`` - - NNOOPPQQSSRRQQPP ^^__``aaCCBBAA@@nnooppqq33221100&&''(())~~qqkkjjiikkqqrrsszzyyxxwwCCDDEEFF^^]]\\[[SSTTUUVVNNMMLLKK ccddeeff>>==<<;;ssttuuvv..--,,++++,,--..vvuuttssIIJJKKLL++**))((>>??@@AAYYXXWWVVXXYYZZ[[IIHHGGFFhhiijjkk99887766 !!""##xxyyzz{{~~))((''&&00112233qqppoonn@@AABBCCMMLLKKJJ##$$%%&&^]]\\[[Z]]^^__``DDCCBBAAmmnnoopp44332211%%&&''((}}~~||{{zzyy$$##""!!55667788llkkjjiiEEFFGGHH\\[[ZZYYhhggffee YYZZ[[\\//..--,,IIJJKKLL87766554--..//00ttssrrqq==>>??@@ddccbbaa - - MMNNOOPPTTSSRRQQ]]^^__``DDCCBBAAmmnnoopp44332211..//0011FFEEDDCC%&&''(()oonnmmllBBCCDDEE__^^]]\\RRSSTTUUOONNMMLL - - bbccddee??>>==<<rrssttuu//..--,,**++,,--hhggffee - - ttuuvvwwvvuuttssGGHHIIJJZZYYXXWWWWXXYYZZJJIIHHGGgghhiijj::998877 !!""wwxxyyzz**))((''//001122rrqqppooMMNNOOPP''&&%%$$BBCCDDEEUUTTSSRR\\]]^^__EEDDCCBBllmmnnoo55443322$$%%&&''||}}~~}}||{{zz%%$$##""44556677mmllkkjjDDEEFFGGIIHHGGFF''(())**ZYYXXWWV - - aabbccdd@@??>>==qqrrsstt00//..--))**++,,xxwwvvuu 99::;;<>==qqrrsstt00//..--22334455BBAA@@??)**++,,-kkjjiihhFFGGHHII[[ZZYYXXVVWWXXYYKKJJIIHHffgghhii;;::9988 !!vvwwxxyy++**))((..//0011ddccbbaa xxyyzz{{rrqqponm KKLLMMNNVVUUTTSS[[\\]]^^FFEEDDCCkkllmmnn66554433##$$%%&&{{||}}~~~~}}||{{&&%%$$##33445566nnmmllkkQQWWXXYY##FFGGHHIIQQPPOONN - - ``aabbccAA@@??>>ppqqrrss1100//..(())**++yyxxwwvv!! 8899::;;iihhggffHHIIJJKKEEDDCCBB++,,--..UTSRQQPP eeffgghh<<;;::99 uuvvwwxx,,++**))--..//00ttssrrqq==>>??@@ddccbbaa - - MMNNOOPPTTSSRRQQ - - ``__^^]] - - aabbccdd''&&%%$$QQWWXXYY0//..--,55667788llkkjjiiEEFFGGHH\\[[ZZYYUUVVWWXXLLKKJJII eeffgghh<<;;::99 uuvvwwxx,,++**))6677==>>>>==7766-..//001ggffeedd JJKKLLMMWWVVUUTTZZ[[\\]]GGFFEEDDjjkkllmm77665544""##$$%%zz{{||}}~~}}||''&&%%$$22334455``__^^]]||}}~~lkkjjiih - - OOPPQQRRRRQQPPOO - -__``aabbBBAA@@??ooppqqrr221100//''(())**zzyyxxww""!! 778899::jjiihhggZZ[[\\]]JJKKLLMMMMLLKKJJ ddeeffgg==<<;;::ttuuvvww--,,++**,,--..//uuttssrr<<==>>??eeddccbb - -LLMMNNOOAA@@??>>//001122OONNMMLLiijjkkll88776655!!""##$$yyzz{{||~~}}((''&&%%11223344ppoonnmmAABBCCDD``__^^]]QQRRSSTTPPOONNMM\\[[ZZYY eeffgghh##ZZ[[\\]],++**))(99::;;<>==<<;;ssttuuvv..--,,++++,,--..vvuuttss;;<<==>>ffeeddcc ^^__``aaNNOOPPQQIIHHGGFFhhiijjkk99887766 !!""##xxyyzz{{~~))((''&&00112233qqppoonn@@AABBCCaa``__^^ PPQQRRSS==77665533445566KKJJIIHHmmnnoopp44332211%%&&''((}}~~||{{zzyy$$##""!!55667788llkkjjiiEEFFGGHH\\[[ZZYYUUVVWWXXLLKKJJIIXXWWVVUUiijjkkll^^__``aa(''&&%%$==>>??@@ddccbbaa - - MMNNOOPPTTSSRRQQ]]^^__``DDCCBBAAmmnnoopp44332211%%&&''((}}~~||{{zzyy$$##""!!CCDDEEFF1100//..5667789:__^^]]\\RRSSTTUUOONNMMLL - - bbccddee??>>==<<rrssttuu//..--,,**++,,--wwvvuutt::;;<<==XXWWQQPPdccbbaa`WWXXYYZZJJIIHHGGgghhiijj::998877 !!""wwxxyyzz**))((''//001122rrqqppoo??@@AABBbbaa``__ - - bbccddee~~}}||{{RSTUVWWXEEDDCCBBllmmnnoo55443322$$%%&&''||}}~~}}||{{zz%%$$##""44556677mmllkkjjDDEEFFGG]]\\[[ZZTTUUVVWW4433221177==>>??GGFFEEDDqqrrsstt00//..--))**++,,xxwwvvuu 99::;;<>==qqrrsstt00//..--))**++,,xxwwvvuu GGHHIIJJ--,,++**;<==>>??[[ZZYYXXVVWWXXYYKKJJIIHHffgghhii;;::9988 !!vvwwxxyy++**))((..//0011ssrrqqpp>>??@@AAOONNMMLL##$$`__^^]]\[[\\]]^^FFEEDDCCkkllmmnn66554433##$$%%&&{{||}}~~~~}}||{{&&%%$$##33445566nnmmllkkCCDDEEFF^^]]\\[[ffgghhiizzyyxxww XYYZZ[[\AA@@??>>ppqqrrss1100//..(())**++yyxxwwvv!! 8899::;;iihhggffHHIIJJKKYYXXWWVVXXYYZZ[[00//..--@@AABBCCCCBBAA@@ uuvvwwxx,,++**))--..//00ttssrrqq==>>??@@ddccbbaa - - MMNNOOPPTTSSRRQQ]]^^__``DDCCBBAA - - yyzz{{||ggffeedd - -fgghhiij33221100&&''(())~~{{zzyyxx##""!! 66778899kkjjiihhFFGGHHII[[ZZYYXXVVWWXXYYKKJJIIHHffgghhii^^__``aa{{zzyyxx##""!! FFGGHHII}}~~ccbbaa`` jkklmnop//..--,,**++,,--wwvvuutt::;;<<==ggffeedd JJKKLLMMWWVVUUTTZZ[[\\]]GGFFEEDDjjkkllmmbbccddeewwvvuuttJJKKLLMM__^^]]\\qqrrsstt++**))((..//0011ssrrqqpp>>??@@AAccbbaa`` - - NNOOPPQQSSRRQQPP ^^__``aaCCBBAA@@nnooppqq~~}}||{{ffgghhiissrrqqppNNOOPPQQ[[ZZYYXXuuvvwwxx~~}}||''&&%%$$22334455oonnmmllBBCCDDEE__^^]]\\RRSSTTUUOONNMMLL - - bbccddee??>>==<<rrssttuuzzyyxxww jjkkqqrroonnmmllRRSSTTUU##$$%%WWQQPPOOyyzz{{||{{zzyyxx##""!! 66778899kkjjiihhFFGGHHII[[ZZYYXXVVWWXXYYKKJJIIHHffgghhii;;::9988 !!vvwwxxyyvvuuttss - - - -ssttuuvvkkjjiihhVVWWXXYY&&''(())NNMMLLKK}}~~wwvvuutt::;;<<==ggffeedd JJKKLLMMWWVVUUTTZZ[[\\]]GGFFEEDDjjkkllmm77665544""##$$%%zz{{||}}rrqqkkjj wwxxyyzzggffeedd ZZ[[\\]]**++,,--JJIIHHGG !"##$$%ssrrqqpp>>??@@AAccbbaa`` - - NNOOPPQQSSRRQQPP ^^__``aaCCBBAA@@nnooppqq33221100&&''(())~~iihhggff{{||}}~~ccbbaa`` - - ^^__``aa..//0011FFEEDDCC%&&''(()oonnmmllBBCCDDEE__^^]]\\RRSSTTUUOONNMMLL - - bbccddee??>>==<<rrssttuu//..--,,**++,,--eeddccbb__^^]]\\ - - bbccddee22334455BBAA@@??)**++,,-kkjjiihhFFGGHHII[[ZZYYXXVVWWXXYYKKJJIIHHffgghhii;;::9988 !!vvwwxxyy++**))((..//0011aa``__^^[[ZZYYXXffgghhii6677==>>>>==7766-..//001ggffeedd JJKKLLMMWWVVUUTTZZ[[\\]]GGFFEEDDjjkkllmm77665544""##$$%%zz{{||}}~~}}||''&&%%$$22334455]]\\[[ZZ##WWVVUUTTjjkkllmm??@@AABB5544332212233445ccbbaa`` - - NNOOPPQQSSRRQQPP ^^__``aaCCBBAA@@nnooppqq33221100&&''(())~~{{zzyyxx##""!! 66778899YYXXWWQQ$$%%&&''SSRRQQPPnnooppqqCCDDEEFF1100//..5667789:__^^]]\\RRSSTTUUOONNMMLL - - bbccddee??>>==<<rrssttuu//..--,,**++,,--wwvvuutt::;;<<==PPOONNMM(())**++OONNMMLLrrssttuuGGHHIIJJ--,,++**;<==>>??[[ZZYYXXVVWWXXYYKKJJIIHHffgghhii;;::9988 !!vvwwxxyy++**))((..//0011ssrrqqpp>>??@@AALLKKJJII,,--..//KKJJIIHH !!vvwwxxyyKKLLMMNN))((''&&@@AABBCCWWVVUUTTZZ[[\\]]GGFFEEDDjjkkllmm77665544""##$$%%zz{{||}}~~}}||''&&%%$$22334455oonnmmllBBCCDDEEHHGGFFEE00112233GGFFEEDD""##$$%%zz{{||}}OOPPQQWW%%$$##DDEEFFGGSSRRQQPP ^^__``aaCCBBAA@@nnooppqq33221100&&''(())~~{{zzyyxx##""!! 66778899kkjjiihhFFGGHHIIDDCCBBAA44556677CCBBAA@@&&''(())~~XXYYZZ[[HHIIJJKKOONNMMLL - - bbccddee??>>==<<rrssttuu//..--,,**++,,--wwvvuutt::;;<<==ggffeedd JJKKLLMM@@??>>====>>??@@??>>==<<**++,,--\\]]^^__LLMMNNOOKKJJIIHHffgghhii;;::9988 !!vvwwxxyy++**))((..//0011ssrrqqpp>>??@@AAccbbaa`` - - NNOOPPQQ77665544AABBCCDD;;::9988..//0011``aabbcc~~}}PPQQRSTUGGFFEEDDjjkkllmm77665544""##$$%%zz{{||}}~~}}||''&&%%$$22334455oonnmmllBBCCDDEE__^^]]\\RRSSTTUU33221100EEFFGGHH7766554422334455ddeeffgg||{{zzyy VWWXXYYZCCBBAA@@nnooppqq33221100&&''(())~~{{zzyyxx##""!! 66778899kkjjiihhFFGGHHII[[ZZYYXXVVWWXXYY//..--,,IIJJKKLL3322110066778899hhiijjkkxxwwvvuu - - Z[[\\]]^??>>==<<rrssttuu//..--,,**++,,--wwvvuutt::;;<<==ggffeedd JJKKLLMMWWVVUUTTZZ[[\\]]++**))((MMNNOOPP//..--,,::;;<<==qqrrssttttssrrqq^__``aab;;::9988 !!vvwwxxyy++**))((..//0011ssrrqqpp>>??@@AAccbbaa`` - - NNOOPPQQSSRRQQPP ^^__``aa''&&%%$$QQWWXXYY++**))((>>??@@AAuuvvwwxxkkjjiihhbccddeef77665544""##$$%%zz{{||}}~~}}||''&&%%$$22334455oonnmmllBBCCDDEE__^^]]\\RRSSTTUUOONNMMLL - - bbccddee##ZZ[[\\]]~~}}||''&&%%$$BBCCDDEEbdQZ|drtAvpfH~fbے`bے`rd|~HfHfpvp˂rXQJ`ےdrtAltbvpfZHAbے`JXQtlJtArdfpvnXv`bHAZp˂rbdQZ|drtA`vXnvpfZHAbے`JXQlJtArHfpvHfpvےbHAbAZpltbvpf~f``JXQr˂pZrd|ZdQbtXv`f~Hf˂rXQJ`ےdrtAJltbvpfH~f``JXQr˂pZrd|ZdQbtpvnXQJ`ےXQJ`ےdrtAf`vXnv˂pZHAbے`dQbtlJtAr~HfpvnX`ےbHAZp˂tbdQZ|df`vXnv˂pZHAbے`dQbtlJtAr~HfpnrXQ˂bZ|dZ|lf`vX㐙ے`JXQr˂JtArd|ZdQnXv`f~Zp˂rXQJ`|drtAJlnvpfH~ے`JXQr˂JtArd|ZdQnXv`ےHAZp˂drtAdrtAf`vXJXQr`JXQr|ZdQbtlJf~HfpvXQJ`ےbHAZJltbdQZ|H~f`vXnr˂pZHAے|ZdQbnXv`f~Hp˂rXQJ`ےdrtAdrtAJltH~f`vXnJXQrJXQrZdQtArpvnnXvXQJ`ےbHAZJltnvpH~fے`JXQr˂ptArd|ZdQbnXv`f~Hp˂rXQJ`ےdrtAJltvpfH~fے`JXQr˂pd|lnXvnXHZp˂˂rbdQZ|Hf`vXn˂pZHAbےZdQbtlJtA~HfpvnJ`ےbHAZpltbdQZ|~f`vXn˂pZHAbےZdQbtlJtAXv`fbHAZbHAZJlbQZXnvpfH~bے`JXQrlJtArd|ZvnXv`fHAZp˂rXQJZ|drtAJlXnvpfH~bے`JXQrlJtArd|ZvnXJ`p˂HAZp˂rtAdQZtbnnvpXQr˂pZHAb|ZdQbtl`f~HfpvrXQJ`ےbHAtAJltbdQZfH~f`vXXQr˂pZHA|ZdQbnXv`f~Zp˂rXQJ`JltJltnvp˂pZHZHAbtlJtArdfpvnXv`bHAZp˂rbdQZ|drtA`vXnvpfZHAb`JXQrtlJf~HfpvXQJ`ےbHAZJltJltbdQZ|`vXnvpf˂pZHA˂p|Zd|ZXv`f`f~bHAZp˂rbdQZ|fHf`vXnr˂pZHAb|ZdQbtlJf~HfpvXQJ`ےbHAZJltbdQZ|H~f`vXnr˂pZHAbJtArd`ffpvrXQJ`dQZ|drtAJvXnvpfHHAbے`JXQrlJtArd|pvnXv`fbHAZp˂rXQdQZ|drtAJvXnvpfHHAbے`JXQrlJtArd|~Hfp˂rp˂r|drpfH~f`vJXQr˂pZHAd|ZdQbtv`f~HfprXQJ`ےbrtAJltbdQpfH~f`vJXQr˂pZHAd|ZdQbnXv`frXQJrXQJ|drvpfffH~pZHAbے`JbtlJtArdHfpvnXvےbHAZp˂tbdQZ|drf`vXnvppZHAbے`JXQbtl`f~HfpvrXQJ`ےbHAbdQZ|bdQtAJfH~Abے`ے`JXtArd|ZdQbnXv`f~Hp˂rXQJ`ےdrtAJltvpfH~fے`JXQbtltArdfpvnXv`bHAZp˂rbdQZ|bdQZ|drtAvpfH~fb˂dQbtdQbt璐~HfHfpvp˂rbdQZ|drtA`vXnvpfZHAbے`JXQtlJtArdfpvnXv`bHAZp˂rbdQZ|drtA`vXnvpfZHAbے`JXQ|ZdQnXv`nXv`ےbHAdrtAJltbvpfH~f``JXQr˂pZrd|ZdQbtXv`f~Hf˂rXQJ`ےdrtAJltbvpfH~f``JXQr˂pZrd|ZdQbnpvXQJ`ےXQJ`ptAJl璐f`vXnv˂pZHAbے`dQbtlJtAr~HfpvnX`ےbHAZp˂tbdQZ|df`vXnv˂pZHAے`JdQbtv`f~Hfp`ےb`ےbtAJl`vXnf`vXnے`JXQr˂JtArd|ZdQnXv`f~Zp˂rXQJ`|drtAJlnvpfH~ے`JrbtJtArdHfpvnXvےbHAZp˂dtbltbf`pfJXQrQr˂p|ZdQbtlJf~HfpvXQJ`ےbHAZJltbdQZ|H~f`vXnr˂pJtAd|ZdQbnXv`f~Hp˂rXQJ`ےdrtAdrtAJltH~f`vXnpZHAblJtArlJtArvnXv`nXvXQJ`ےdrtAJltvpfH~fے`JXQr˂ptArd|ZdQbnXv`f~Hp˂rXQJ`ےdrtAJltvpfH~fے`JXQr˂pbtlf~Hf~HZprQltbdQZ|~f`vXn˂pZHAbےZdQbtlJtA~HfpvnJ`ےbHAZpltbdQZ|~f`vXn˂pZHAے`ZdQbtXv`p~HfpbHAXQ˂rbtbdQZXnvpfH~bے`JXQrlJtArd|ZvnXv`fHAZp˂rXQJZ|drtAJlXnvpfH~bے`XQrbtlJtAr~HfpvnXHAZp˂HAZp˂tbdQZvpfvfH~XQr˂pZHAb|ZdQbtl`f~HfpvrXQJ`ےbHAtAJltbdQZfH~f`vXXQr˂lJtAd|ZdQnXv`f~Zp˂rXQJ`dQZ|dQZ|H~f˂pZHZHAbtlJtArdfpvnXv`bHAZp˂rbdQZ|dtAJ`vXnr˂pZHAb|ZdQbtlJf~HfpvXQJ`ےbHAZJltJltJltbdQZ|`vXnvpfے`Jd|Zd|Zf~H`frQbHAZJltbdQZ|H~f`vXnr˂pZHAb|ZdQbtlJf~HfpvXQJ`ےbHAZJltbdQZ|H~f`vXnr˂pZHAےJtArdfpvfpvJ`ےdQZ|drtAJvXnvpfHHAbے`JXQrlJtArd|pvnXv`fbHAZp˂rXQdQZ|drtAJvXnvpfHHAbےJXQrblJtAvnXvnXJ`ےdQZ||drpfH~f`vJXQr˂pZHAd|ZdQbtv`f~HfprXQJ`ےbrtAJltbdQpfH~f`vJXQrlJtAd|ZvnXv`frXQJrXQHA|drH~ff`vpZHAbے`JbtlJtArdHfpvnXvےbHAZp˂tbdQZ|dtAf`vXnr˂pZHAb|ZdQbtl`f~HfpvrXQJ`ےbHAdrtAJdrtAJ`vXnAbJXQے`JXtArd|ZdQbnXv`f~Hp˂rXQJ`ےdrtAltbvpfZHAbے`JXQtlJtArdfpvnXv`bHAZp˂rbdQZ|bdQZ|bdQZ|drtAvpfH~fXQr˂dQbtdQbtdfpvJHAZp˂rbdQZ|drtA`vXnvpfZHAbے`JXQtlJtArdfpvnXv`bHAZp˂rbdQZ|drtA`vXnvpfZHAb`JXQr|ZdQnXv`nXv`bHAZpdrtAJltbvpfH~f``JXQr˂pZrd|ZdQbtXv`f~Hf˂rXQJ`ےdrtAJltbvpfH~f``JXQrtlJrd|v`fv`fbHAZprAJlttAJl璐f`vXnv˂pZHAbے`dQbtlJtAr~HfpvnX`ےbHAZp˂tbdQZ|df`vXnr˂pZHAd|ZdQbtv`f~Hfp`ےZp˂tAJl|`vXnXnvے`JXQr˂JtArd|ZdQnXv`f~Zp˂rXQJ`|drJltnvppZHAbے`JbtlJtArdHfpvnXvےbHAZp˂ltbltbvpfr˂pQrZ|ZdQbtlJf~HfpvXQJ`ےbHAZJltnvpH~fے`JXQr˂ptArd|ZdQbnXv`f~Hp˂rXQJ`ےdrtAdrtAdrtAJltH~f`vXnpZHAblJtAdQ|ZdQnXv`p˂rXQJ`ےdrtAJltvpfH~fے`JXQr˂ptArd|ZdQbnXv`f~Hp˂rXQJ`ےdrtAJltvpfH~fے`JXQbtltArdf~HpvnrXQltbdQZ|~f`vXn˂pZHAbےZdQbtlJtA~HfpvnJ`ےbHAZpltbdQZ|~f`vXnr˂pZtAd|ZdQbt~Hfp~Hfp˂rXQbdQZ|tbQZdXnvpfH~bے`JXQrlJtArd|ZvnXv`fHAZp˂rXQJZ|dtAJlXnv˂pZHAbے`dQbtlJtAr~HfpvnXrXQJ`rXQJ`drtAvpfpfH~XQr˂pZHAb|ZdQbtl`f~HfpvrXQJ`ےbHAtAJlbnvfH~ے`JXQr˂JtArd|ZdQnXv`f~Zp˂rXQJ`dQZ|dQZ|lH~fZHAbAbے`tlJtArdfpvnXv`bHAZp˂rbdQZ|fHf`vXnr˂pZHAb|ZdQbtlJf~HfpvXQJ`ےbHAZJltJltJltbdQZ|`vXnvpfے`pbtlbtlf~HXQJ`ےbHAZJltbdQZ|H~f`vXnr˂pZHAb|ZdQbtlJf~HfpvXQJ`ےbHAZJltbdQZ|H~f`vXnr˂p|ZdQb|ZdQbXv`frXQJ`J`ےdQZ|drtAJvXnvpfHHAbے`JXQrlJtArd|pvnXv`fbHAZp˂rXQdQZ|dtAJlvXn˂pZHAbےZdQbtlJtAvnXvnXJ`ےdrtrtAJlpfH~f`vJXQr˂pZHAd|ZdQbtv`f~HfprXQJ`ےbrtAJltbnpfH~bے`JXQrlJtArd|ZvnXv`fےbHAےbHAJltH~fvXf`vpZHAbے`JbtlJtArdHfpvnXvےbHAZp˂tbdQZpfHf`vXXQr˂pZHAb|ZdQbtl`f~HfpvrXQJ`ےbHAdrtAdQtbn`vXHے`JXQJXQrtArd|ZdQbnXv`fHfp˂rbdQZ|drtA`vXnvpfZHAbے`JXQtlJtArdfpvnXv`bHAZp˂rbdQZ|bdQZ|bdQZ|drtAvpfH~fZHAbJtArdJtArdfpvnbHAZp˂rbdQZ|drtA`vXnvpfZHAbے`JXQtlJtArdfpvnXv`bHAZp˂rbdQZ|dtAJ`vXnr˂pZHAbtlJtlJ~HfAZp˂bHAZpdrtAJltbvpfH~f``JXQr˂pZrd|ZdQbtXv`f~Hf˂rXQJ`ےdrtAJtbnvpfHHAbے`JXQrlJtArd|v`fHfpvbHAZpAJlttbdf`vXnv˂pZHAbے`dQbtlJtAr~HfpvnX`ےbHAZp˂tbdQvpfHf`vJXQr˂pZHAd|ZdQbtv`f~HfpZp˂Zp˂bdQZ|nvpXnvے`JXQr˂JtArd|ZdQnXv`fHZp˂rbdQZ|drf`vXnvppZHAbے`JbtlJtArdHfpvnXvےbHAZp˂Z|dvp`~f`r˂p˂pZHA|ZdQbtlJf~HpvnXQJ`ےdrtAJltvpfH~fے`JXQr˂ptArd|ZdQbnXv`f~Hp˂rXQJ`ےdrtAdrtAdrtAJltH~f`vXnے`JXQ|ZdQ|ZdQv`fp˂rXQJ`ےdrtAJltvpfH~fے`JXQr˂ptArd|ZdQbnXv`f~Hp˂rXQJ`ےdrtAltbvpfZHAbے`JXQtArdtArdpvnrXQJrQJltbdQZ|~f`vXn˂pZHAbےZdQbtlJtA~HfpvnJ`ےbHAZpltbvpf~f``JXQr˂pZrd|ZdQbtnXvnXv`ےbbdQZ|QZ|dXnvpfH~bے`JXQrlJtArd|ZvnXv`fHAZp˂rbdQZ|df`vXnv˂pZHAbے`dQbtlJtAr~HfpvnXrXQJ`rXQJ`drtAfH~f~f`XQr˂pZHAb|ZdQbtl`f~fpvrXQJ`|drtAJlnvpfH~ے`JXQr˂JtArd|ZdQnXv`f~Zp˂rXQJ`rtAJlvXnvXnZHAbbے`tlJtArdfpvrXQJ`bHAZJltbdQZ|H~f`vXnr˂pZHAb|ZdQbtlJf~HfpvXQJ`ےbHAZJltJltJltbdQZ|`vXnvpfr˂pbtlbtl~HfpXQJ`ےbHAZJltbdQZ|H~f`vXnr˂pZHAb|ZdQbtlJf~HfpvXQJ`ےbHAZJltnvpH~fے`JXQr˂p|ZdQb|ZdQbXv`f`ےbbHAZdQZ|drtAJvXnvpfHHAbے`JXQrlJtArd|pvnXv`fbHAZp˂rbdQZ|Hf`vXn˂pZHAbےZdQbtlJtA`f~`f~HAZp˂drAJrtAJlpfH~f`vJXQr˂pZHAd|ZdQbtv`fHfpvrXQJZ|drtAJlXnvpfH~bے`JXQrlJtArd|ZvnXv`fےbHAp˂rJltf`vXvXnpZHAbے`JbtlJtArdHfpvnrXQJےbHAtAJltbdQZfH~f`vXXQr˂pZHAb|ZdQbtl`f~HfpvrXQJ`ےbHAtbdQvpfHvpfHJQrJXQrtArd|ZdQbnXv`ےHAZp˂rbdQZ|drtA`vXnvpfZHAbے`JXQtlJtArdfpvnXv`bHAZp˂rbdQZ|bdQZ|bdQZ|drtAvpfH~fZHAbJtArd|ZdQbvnXbHAZp˂rbdQZ|drtA`vXnvpfZHAbے`JXQtlJtArdfpvnXv`bHAZp˂rbdQZ|fHf`vXnr˂pZHAbtlJtd|~HfHAZp˂p˂rdrtAJltbvpfH~f``JXQr˂pZrd|ZdQbtXv`fHfp˂rXQdQZ|drtAJvXnvpfHHAbے`JXQrlJtArd|HfpvHfpvrXQJtbdQtbdf`vXnv˂pZHAbے`dQbtlJtAr~HfpnrXQ`ےbrtAJltbdQpfH~f`vJXQr˂pZHAd|ZdQbtv`f~HfpXQJ`ےbdQZ|drtAJnvpvpfHے`JXQr˂JtArd|ZdQnXv`ےHAZp˂tbdQZ|drf`vXnvppZHAbے`JbtlJtArdHfpvnXvےbHAZp˂Z|d~f`~f`pZHA˂pZA|ZdQbnXv`f~Hp˂rXQJ`ےdrtAJltvpfH~fے`JXQr˂ptArd|ZdQbnXv`f~Hp˂rXQJ`ےdrtAdrtAdrtAJltH~f`vXnے`JXQtlJnXv`v`fp˂rXQJ`ےdrtAJltvpfH~fے`JXQr˂ptArd|ZdQbnXv`fHfp˂rbdQZ|drtA`vXnvpfZHAbے`JXQtAdQbtZdQbtp`frXQJXQJ`ےltbdQZ|~f`vXn˂pZHAbےZdQbtlJtA~HfvnrJ`ےdrtAJltbvpfH~f``JXQr˂pZrd|ZdQbtnXvnXv`ےbZ|dQZrtAXnvpfH~bے`JXQrlJtArd|ZvnXJ`ےHAZp˂tbdQZ|df`vXnv˂pZHAbے`dQbtlJtAr~HfpvnXbHAZltbltbfH~~f`XQr˂pZHA|ZdQbnXv`f~Zp˂rXQJ`|drtAJlnvpfH~ے`JXQr˂JtArd|ZdQnXv`f~Zp˂rXQJ`rtAJlvXnvXnbے``JXQrtlJf~HfpvXQJ`ےbHAZJltbdQZ|H~f`vXnr˂pZHAb|ZdQbtlJf~HfpvXQJ`ےbHAZJltJltJltbdQZ|`vXnr˂pHAbےtArdf~fp~HfpXQJ`ےbHAZJltbdQZ|H~f`vXnr˂pZHAb|ZdQbtlJf~HpvnXQJ`ےdrtAJltvpfH~fے`JXQr˂plJtAlJtA~Hfp`ےbAbHAZdQZ|drtAJvXnvpfHHAbے`JXQrlJtArd|pvnXQJ`ےbHAZpltbdQZ|~f`vXn˂pZHAbےZdQbtlJtA`f~`pvHAZp˂rtAJlJltpfH~f`vJXQr˂pZHAd|ZdQbnXv`fHAZp˂rXQJZ|drtAJlXnvpfH~bے`JXQrlJtArd|ZvnXv`fp˂rdQZ|dQZ|fvnvXnpZHAbے`JXQbtl`f~HfpvrXQJ`ےbHAtAJltbdQZfH~f`vXXQr˂pZHAb|ZdQbtl`f~HfpvrXQJ`ےbHA|drvpfHf`vJXQrbtltArdfpvnXv`bHAZp˂rbdQZ|drtA`vXnvpfZHAbے`JXQtlJtArdfpvnXv`bHAZp˂rbdQZ|bdQZ|bdQZ|drtAvpf`JXQr`JXQr|ZdQbvnXvnvbHAZp˂rbdQZ|drtA`vXnvpfZHAbے`JXQtlJtArdfpvrXQJ`bHAZJltbdQZ|H~f`vXnr˂pZHAbrd|rd|vnXZrXp˂rdrtAJltbvpfH~f``JXQr˂pZrd|ZdQbnXv`fHAZp˂rXQdQZ|drtAJvXnvpfHHAbے`JXQrlJtArd|HXv`nrXQJbHAtbdQbdQZ|f`vXnv˂pZHAے`JdQbtv`f~HfprXQJ`ےbrtAJltbdQpfH~f`vJXQr˂pZHAd|ZdQbtv`f~HfpXQJ`ےdrtAJdrtAJvpfHvpf~ے`JrbtJtArdHfpvnXvےbHAZp˂tbdQZ|drf`vXnvppZHAbے`JbtlJtArdHfpvnXvےbHAZp˂tAJlXnvXnvpZHAJtAd|ZdQbnXv`f~Hp˂rXQJ`ےdrtAJltvpfH~fے`JXQr˂ptArd|ZdQbnXv`f~Hp˂rXQJ`ےdrtAdrtAdrtAJltH~f˂pZ˂pZtlJv`ff~Hp˂rXQJ`ےdrtAJltvpfH~fے`JXQr˂ptArd|ZdQbnXv`ےHAZp˂rbdQZ|drtA`vXnvpfZHAbے`JXQZdQbtZdQbtv`fQJ`ےXQJbHltbdQZ|~f`vXn˂pZHAے`ZdQbtXv`f~Hf˂rXQJ`ےdrtAJltbvpfH~f``JXQr˂pZrd|ZdQbtf~H`p˂Zp˂Z|ddrtAXnvpfH~bے`XQrbtlJtAr~HfpvnX`ےbHAZp˂tbdQZ|df`vXnv˂pZHAbے`dQbtlJtAr~HfpvnXbHAZltbltb~f`f`vXXQr˂lJtAd|ZdQnXv`f~Zp˂rXQJ`|drtAJlnvpfH~ے`JXQr˂JtArd|ZdQnXv`f~Zp˂rXQJ`tbdQZpfH~pfH~bے`J|ZdQbtlJf~HfpvXQJ`ےbHAZJltbdQZ|H~f`vXnr˂pZHAb|ZdQbtlJf~HfpvXQJ`ےbHAZJltJltJltbdQZ|`vXnHAbےHAbےtArd~HfpfpvXQJ`ےbHAZJltbdQZ|H~f`vXnr˂pZHAے|ZdQbnXv`f~Hp˂rXQJ`ےdrtAJltvpfH~fے`JXQr˂plJtAl|Z~HfpbHAZpAZp˂dQZ|drtAJvXnvpfHHAbےJXQrblJtA~HfpvnJ`ےbHAZpltbdQZ|~f`vXn˂pZHAbےZdQbtlJtAfpvrXQJ`rXQJ`rtAJJltpfH~f`vJXQrlJtAd|ZvnXv`fHAZp˂rXQJZ|drtAJlXnvpfH~bے`JXQrlJtArd|ZvnXv`fp`ےdQZ|dQtAJlvXnnr˂pZHAb|ZdQbtl`f~HfpvrXQJ`ےbHAtAJltbdQZfH~f`vXXQr˂pZHAb|ZdQbtl`f~HfpvrXQJ`ےbHA|drf`vf`vQrpZtlJtArdfpvnXv`bHAZp˂rbdQZ|drtA`vXnvpfZHAbے`JXQtlJtArdfpvnXv`bHAZp˂rbdQZ|bdQZ|bdQZ|`vXnvpf`JXQr`JXQr|lJtAvnXnXv`ːbHAZp˂rbdQZ|drtA`vXnvpfZHAb`JXQrtlJf~HfpvXQJ`ےbHAZJltbdQZ|H~f`vXnr˂pZHAbrdtdQbnXv~˂rXrXQJ`drtAJltbvpfH~f``JXQrtlJrd|pvnXv`fbHAZp˂rXQdQZ|drtAJvXnvpfHHAbے`JXQrlJtArd|nXv`ےbHAےbHAbdQZ|bdQZ|f`vXnr˂pZHAd|ZdQbtv`f~HfprXQJ`ےbrtAJltbdQpfH~f`vJXQr˂pZHAd|ZdQbtv`f~HfpbHAZpdtbdQtbdQvpfHpZHAbے`JbtlJtArdHfpvnXvےbHAZp˂tbdQZ|drf`vXnvppZHAbے`JbtlJtArdHfpvnXvےbHAZp˂tAJlXnvXnvHAbےtArd|ZdQbnXv`f~Hp˂rXQJ`ےdrtAJltvpfH~fے`JXQr˂ptArd|ZdQbnXv`fHfp˂rbdQZ|drtAdtAJdrtAvpfH~f˂pZے`rd|v`f~f~Hp˂rXQJ`ےdrtAJltvpfH~fے`JXQbtltArdfpvnXv`bHAZp˂rbdQZ|drtA`vXnvpfZHAbے`JXQlJtArv`pvHfpvQJ`ےےbHltbdQZ|~f`vXnr˂pZtAd|ZdQbtXv`f~Hf˂rXQJ`ےdrtAJltbvpfH~f``JXQr˂pZrd|ZdQbtf~HZp˂Zp˂drtAAJlXnv˂pZHAbے`dQbtlJtAr~HfpvnX`ےbHAZp˂tbdQZ|df`vXnv˂pZHAbے`dQbtlJtAr~HfpvnX˂rXQZ|dZ|d~f`ے`JXQr˂JtArd|ZdQnXv`f~Zp˂rXQJ`|drtAJlnvpfH~ے`JXQr˂JtArd|ZdQnXv`fHZp˂rbdQZtdrtApfH~p`vX`JXQr|ZdQbtlJf~HfpvXQJ`ےbHAZJltbdQZ|H~f`vXnr˂pZHAb|ZdQbtlJf~HpvnXQJ`ےdrtAJltltbJltH~f`vXnHAXQrJXQrZdQbtfvnfpvXQJ`ےbHAZJltbdQZ|H~f`vXnr˂pJtAd|ZdQbnXv`f~Hp˂rXQJ`ےdrtAJltvpfH~fے`JXQr˂pd|ZnXvnXvbHAZAZp˂dQZ|dtAJlvXn˂pZHAbےZdQbtlJtA~HfpvnJ`ےbHAZpltbdQZ|~f`vXn˂pZHAbےZdQbtlJtAfp`frXQJ`rXQHAZJlttbnpfH~bے`JXQrlJtArd|ZvnXv`fHAZp˂rXQJZ|drtAJlXnvpfH~bے`JXQrlJtArd|ZvnXv`fJ`ےrtAJlrtAJlvnvpXQr˂pZHAb|ZdQbtl`f~HfpvrXQJ`ےbHAtAJltbdQZfH~f`vXXQr˂pZHAb|ZdQbtl`f~fpvrXQJ`|ltJltvpnr˂˂pZtlJtArdfpvnXv`bHAZp˂rbdQZ|drtA`vXnvpfZHAbے`JXQtlJtArdfpvrXQJ`bHAZJltbdQZ|nvpbdQZ|`vXnvpf˂pZHA˂pZHAlJtAXv`fnXvf~bHAZp˂rbdQZ|dtAJ`vXnr˂pZHAb|ZdQbtlJf~HfpvXQJ`ےbHAZJltbdQZ|H~f`vXnr˂pZHAbdQbt`f~`f~rXQJ`rXQJ`drtAJtbnvpfHHAbے`JXQrlJtArd|pvnXv`fbHAZp˂rXQdQZ|drtAJvXnvpfHHAbے`JXQrlJtArd|~Hfےrp˂rbdQZ|vpfHf`vJXQr˂pZHAd|ZdQbtv`f~HfprXQJ`ےbrtAJltbdQpfH~f`vJXQr˂pZHAd|ZdQbtv`fHfpvbHAZptbdQtbdQfH~pZHAbے`JbtlJtArdHfpvnXvےbHAZp˂tbdQZ|drf`vXnvppZHAbے`JbtlJtArdHfpvnrXQJےbHAbdQZ|bdQZ|fH~pZAb`HAbےtArd|ZdQbnXv`f~Hp˂rXQJ`ےdrtAJltvpfH~fے`JXQr˂ptArd|ZdQbnXv`ےHAZp˂rbdQZ|drtA`vXnvpfvpfHAbےJA|Zrd|琕~HfpvnJ`ےbHAZpltbdQZ|~f`vXn˂pZHAbےZdQbtlJtA~HfvnrJ`ےdrtAJltbvpfH~f`HAXQrJXQrZQXb㉀`vXnvˍpfdrQtH~fH~f`JXQrdQbtZdQbJpvnXv`fbHAZp˂rXQdQZ|drtAJvXnvpfHHAbے`JXQrlJtArd|pvnXQJ`ےbHAZpltbdQZ|~f`vXn˂pZHA˂pZHAۑpJAHvˍpfH~ㅐfJlt`vXn`vXn˂pZlJtArtArdXv`f~Hf˂rXQJ`ےdrtAJltbvpfH~f``JXQr˂pZrd|ZdQbnXv`fHAZp˂rXQdQZ|drtAJvXnvpfHbے`bے`r󙐂ˁ`H~ㅐf۝`vXnbAdZ|vpff`HAbےd|Z|ZdQb~HfpvnJ`ےbHAZpltbdQZ|~f`vXn˂pZHAے`ZdQbtXv`f~Hf˂rXQJ`ےdrtAJltbvpfH~f`JXQrJXQrZQXAHr`vXnvˍpfdrQtHXnvXn`pZHAdQbttlJpvnXv`fbHAZp˂rXQdQZ|drtAJvXnvpfHHAbےJXQrblJtA~HfpvnJ`ےbHAZpltbdQZ|~f`vXn˂pZHA˂p`Zˁ`ZvˍpfH~ㅐfJltvpfHvpfHbے`lJtArtArdXv`f~Hf˂rXQJ`ےdrtAJltbvpfH~f``JXQrtlJrd|pvnXv`fbHAZp˂rXQdQZ|drtAJvXnvpfHb˂QXb㉀QXb㉀ەH~ㅐf۝`vXnbAdZ|~f`~f`JXQrZdQbt|ZdQb~HfpvnJ`ےbHAZpltbdQZ|~f`vXnr˂pZtAd|ZdQbtXv`f~Hf˂rXQJ`ےdrtAJltbvpfH~f`pZHAbpJAHrpJAHr`vXnvˍp|drQtvXnvXn˂pZHAlJttJArdpvnXv`fbHAZp˂rXQdQZ|dtAJlvXn˂pZHAbےZdQbtlJtA~HfpvnJ`ےbHAZpltbdQZ|~f`vXnے`Jˁ`Zˁ`ZvˍpfdrQtJltvpfHvp`vbے`Ard||ZdXv`f~Hf˂rXQJ`ےdrtAJtbnvpfHHAbے`JXQrlJtArd|pvnXv`fbHAZp˂rXQdQZ|drtAJvXnvpfHXQr˂QXb㉀QXb㉀H~ㅐfJltbAdZ|~vXnrJXQHAbZdQbtQbtl~HfpvnJ`ےbHAZpltbvpf~f``JXQr˂pZrd|ZdQbtXv`f~Hf˂rXQJ`ےdrtAJltbvpfH~f`pZHAbpJAHQXˁ`ZQX`vXnbAdZ|drQtpfH~˂p`Jے`JlJtJtArdpvnXv`fbHAZp˂rbdQZ|Hf`vXn˂pZHAbےZdQbtlJtA~HfpvnJ`ےbHAZpltbdQZ|~f`vXnے`pb㉀ۑpb㉀ۑpvˍpfdrQtJltf`vXQr˂XQr˂ArdZ|ZdXv`fHfp˂rXQdQZ|drtAJvXnvpfHHAbے`JXQrlJtArd|pvnXv`fbHAZp˂rXQdQZ|drtAJvXnvpfHZHAbJAHrJAHr󙐕H~ㅐfJltbAdZ|XnvpZHAbpZHAbQbtlQbtl~HfvnrJ`ےdrtAJltbvpfH~f``JXQr˂pZrd|ZdQbtXv`f~Hf˂rXQJ`ےdrtAJltbvpfH~f`ے`JXQˁ`ZQXˁ`ZQX`vXnbAdZ|drQtpfH~ے`Jے`JJtArdJAr|pvnXQJ`ےbHAZpltbdQZ|~f`vXn˂pZHAbےZdQbtlJtA~HfpvnJ`ےbHAZpltbdQZ|~f`vXnr˂pb㉀ۑpb㉀XnvˍpfdrQtJltf`pXQr˂XQr|ZdQZdQbnXv`fHAZp˂rXQdQZ|drtAJvXnvpfHHAbے`JXQrlJtArd|pvnXv`fbHAZp˂rXQdQZ|drtAJvXnvpfHZHAbJAHr󙐕vˍpfH~ㅐfJltbAdZ|fH~pZHAXQے`JXQbtlXv`f~Hf˂rXQJ`ےdrtAJltbvpfH~f``JXQr˂pZrd|ZdQbtXv`f~Hf˂rXQJ`ےdrtAJltbvpfH~f`ے`JXQۑpJH~ㅐf۝`vXnbAdZ|drQtf`vXr˂pr˂pJtArd~HfpvnJ`ےbHAZpltbdQZ|~f`vXn˂pZHAbےZdQbtlJtA~HfpvnJ`ےbHAZpltbdQZ|~f`vXnےHAbےAHr󙐂˝`vXnvˍpfdrQtJltnvpZHAbZHAb|ZQbpvnXv`fbHAZp˂rXQdQZ|drtAJvXnvpfHHAbے`JXQrlJtArd|pvnXv`fbHAZp˂rXQdQZ|dtAJlvXn`JXQr`JXQr`ZQXb㕀vˍpfH~ㅐfJltbAdZ|fH~ے`JXQے`JXQlJtAXv`f~Hf˂rXQJ`ےdrtAJltbvpfH~f``JXQr˂pZrd|ZdQbtXv`f~Hf˂rXQJ`ےdrtAJtbnvpfH˂pZ˂pZۑpJH~ㅐf۝`vXnbAdZ|drQtf`vXr˂pr˂prd|琕~HfpvnJ`ےbHAZpltbdQZ|~f`vXn˂pZHAbےZdQbtlJtA~HfpvnJ`ےbHAZpltbvpf~f`HAbےHAbےAHr󙐂˝`vXnvˍpfdrQtJltH~fZHAb`JXQrZdQbtpvnXv`fbHAZp˂rXQdQZ|drtAJvXnvpfHHAbے`JXQrlJtArd|pvnXv`fbHAZp˂rbdQZ|Hf`vXn`JXQr`JXQr`pJAHvˍpfH~ㅐfJltbAdZ|`vXn˂pZbtllJtAXv`f~Hf˂rXQJ`ےdrtAJltbvpfH~f``JXQr˂pZrd|ZdQbtXv`fHfp˂rXQdQZ|drtAJvXnvpfH˂pZے`r󙐂ˁ`H~ㅐf۝`vXnbAdZ|drQt \ No newline at end of file diff --git a/vendor/endroid/qr-code/assets/data/qrv38_2.dat b/vendor/endroid/qr-code/assets/data/qrv38_2.dat deleted file mode 100755 index 8839d79ca..000000000 --- a/vendor/endroid/qr-code/assets/data/qrv38_2.dat +++ /dev/null @@ -1,337 +0,0 @@ -|{|{|{|{xwxwxwxwvuvuvuvu|{|{|{|{xwxwxwxwvuvuvuvu|{|{|{|{xwxwxwxwvuvuvuvu|{|{|{|{xwxwxwxwvuvuvuvu|{|{|{|{xwxwxwxwvuvuvuvu|{|{|{|{xwxwxwxwvuvuvuts|{|{|{|{xwxwxwxwtstststs|{|{|{|{xwxwxwxwtstststs|{|{|{|{xwxwxwxwtstststs|{|{|{|{xwxwxwxwtstststs|{|{|{|{xwxwxwxwtstststs|{|{|{|{xwxwxwxwtstststs|{|{|{|{xwxwxwxwtstststs|{|{|{|{xwxwxwxwtstststs|{|{|{|{xwxwxwxwtstststs|{|{|{|{xwxwxwxwtstststs|{|{|{|{xwxwxwxwtstststs~}|{|{|{|{xwxwxwxwtstststs~}~}~}~}|{|{|{|{xwxwxwxwtstststs~}~}~}~}|{|{|{|{xwxwxwxwtstststs~}~}~}~}|{|{|{|{xwxwxwxwtstststs~}~}~}~}|{|{|{|{xwxwxwxwtstststs~}~}~}~}|{|{|{|{xwxwxwxwtstststs~}~}~}~}|{|{|{|{xwxwxwxwtstststs~}~}~}~}|{|{|{|{xwxwxwxwtstststs~}~}~}~}|{|{|{|{xwxwxwxwtstststs~}~}~}~}|{|{|{|{xwxwxwxwtstststs~}~}~}~}|{|{|{zyxwxwxwxwtstststs~}~}~}~}zyzyzyzyxwxwxwxwtstststs~}~}~}~}zyzyzyzyxwxwxwxwtstststs~}~}~}~}zyzyzyzyxwxwxwxwtstststs~}~}~}~}zyzyzyzyxwxwxwxwtstststs~}~}~}~}zyzyzyzyxwxwxwxwtstststs~}~}~}~}zyzyzyzyxwxwxwxwtstststs~}~}~}~}zyzyzyzyxwxwxwxwtstststs~}~}~}~}zyzyzyzyxwxwxwxwtstststs~}~}~}~}zyzyzyzyxwxwxwxwtstststs~}~}~}~}zyzyzyzyxwxwxwvutstststs~}~}~}~}zyzyzyzyvuvuvuvutstststs~}~}~}~}zyzyzyzyvuvuvuvutstststs~}~}~}~}zyzyzyzyvuvuvuvutstststs~}~}~}~}zyzyzyzyvuvuvuvutstststs~}~}~}~}zyzyzyzyvuvuvuvutstststsrqrqrqrq~}~}~}~}zyzyzyzyvuvuvuvutstststsrqrqrqrq~}~}~}~}zyzyzyzyvuvuvuvutstststsrqrqrqrq~}~}~}~}zyzyzyzyvuvuvuvutstststsrqrqrqrq~}~}~}~}zyzyzyzyvuvuvuvutstststsrqrqrqrq~}~}~}~}zyzyzyzyvuvuvuvutststsrqrqrqrqrq~}~}~}~}zyzyzyzyvuvuvuvurqrqrqrqrqrqrqrq~}~}~}~}zyzyzyzyvuvuvuvurqrqrqrqrqrqrqrq~}~}~}~}zyzyzyzyvuvuvuvurqrqrqrqrqrqrqrq~}~}~}~}zyzyzyzyvuvuvuvurqrqrqrqrqrqrqrq~}~}~}~}zyzyzyzyvuvuvuvurqrqrqrqrqrqrqrq~}~}~}~}zyzyzyzyvuvuvuvurqrqrqrqrqrqrqrq~}~}~}~}zyzyzyzyvuvuvuvurqrqrqrqrqrqrqrq~}~}~}~}zyzyzyzyvuvuvuvurqrqrqrqrqrqrqrq~}~}~}~}zyzyzyzyvuvuvuvurqrqrqrqrqrqrqrq~}~}~}~}zyzyzyzyvuvuvuvurqrqrqrqrqrqrqpo~}~}~}~}zyzyzyzyvuvuvuvurqrqrqrqpopopopo~}~}~}|{zyzyzyzyvuvuvuvurqrqrqrqpopopopo|{|{|{|{zyzyzyzyvuvuvuvurqrqrqrqpopopopo|{|{|{|{zyzyzyzyvuvuvuvurqrqrqrqpopopopo|{|{|{|{zyzyzyzyvuvuvuvurqrqrqrqpopopopo|{|{|{|{zyzyzyzyvuvuvuvurqrqrqrqpopopopo|{|{|{|{zyzyzyzyvuvuvuvurqrqrqrqpopopopo|{|{|{|{zyzyzyzyvuvuvuvurqrqrqrqpopopopo|{|{|{|{zyzyzyzyvuvuvuvurqrqrqrqpopopopo|{|{|{|{zyzyzyzyvuvuvuvurqrqrqrqpopopopo|{|{|{|{zyzyzyzyvuvuvuvurqrqrqrqpopopopo|{|{|{|{zyzyzyxwvuvuvuvurqrqrqrqpopopopo|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqpopopopo|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqpopopopo|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqpopopopo|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqpopopopopopopopolklklklkhghghghgdcdcdcdcbabababa^]^]^]^]ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDC@?@?@?@?<;<;<;<;878787874343434321212121.-.-.-.-*)*)*)*)&%&%&%&%$#$#$#$#   - - - - popopopolkkkkkklhghghghgdcdcdcdcbabababa^]^]^]^]ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDC@?@?@?@?<;<;<;<;878787874343434321212121.-.-.-.-*)*)*)*)&%&%&%&%$#$#$#$# - - - - popopopoklklklklhghghghgdcdcdcdcbaba`_`_^]^]^]^]ZYZYZYZYVUVUVUVUQQQQQRQRNMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDC@?@?@?@?<;<;<;<;878787874343434321212121.-.-.-.-*)*)*)*)&%&%&%&%$#$#$#$# - - - - popopopoklklklklhghghghgdcdcdcdc`_`_`_`_^]^]^]^]ZYZYZYZYVUVUVUVUQRQRQRQRNMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDC@?@?@?@?<;<;<;<;777778784343434321212121.-.-.-.-*)*)*)*)&%&%&%&%$#$#$#$# - - - - popopopoklklklklhghghghgdcdcdcdc`_`_`_`_^]^]^]^]ZYZYZYZYVUVUVUVUQRQRQRQRNMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDC@?@?@?@?<;<;<;<;787878784343434321212121.-.-.-.-*)*)*)*)&%&%&%&%"!"!"!"! - - - - popopopoklklklklhghghghgdcdcdcdc`_`_`_`_^]^]^]^]ZYZYZYZYVUVUVUVUQRQRQRQRNMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDC@?@?@?@?<;<;<;<;787878784343434321212121.-.-.-.-*)*)*)*)&%&%&%&%"!"!"!"! - - - - popopopoklklklklhghghghgdcdcdcdc`_`_`_`_^]^]^]^]ZYZYZYZYVUVUVUVUQRQRQRQRNMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDC@?@?@?@?<;<;<;<;78787878434343430/0/0/0/.-.-.-.-*)*)*)*)&%&%&%&%"!"!"!"! - - - - popopopokkkkkklkhghghghgdcdcdcdc`_`_`_`_^]^]^]^]ZYZYZYZYVUVUVUVUQRQRQRQQNMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDC@?@?@?@?<;<;<;<;78787878434343430/0/0/0/.-.-.-.-*)*)*)*)&%&%&%&%"!"!"!"! - - - - popopopolklklklkhghghghgdcdcdcdc`_`_`_`_^]^]^]^]ZYZYZYZYVUVUVUVUQQQQRQRQNMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDC@?@?@?@?<;<;<;<;78787877434343430/0/0/0/.-.-.-.-*)*)*)*)&%&%&%&%"!"!"!"! - - - - popopopolklklklkhghghghgdcdcdcdc`_`_`_`_^]^]^]^]ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIHGFEFEFEDCDCDCDC@?@?@?@?<;<;<;<;77778787434343430/0/0/0/.-.-.-.-*)*)*)*)&%&%&%&%"!"!"!"! - - - - popopopolklklklkhghghghgdcdcdcdc`_`_`_`_^]^]^]^]ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?<;<;<;<;87878787434343430/0/0/0/.-.-.-.-*)*)*)*)&%&%&%&%"!"!"!"! - - - popopopolklklklkhghghghgdcdcdcdc`_`_`_`_^]^]^]^]ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?<;<;<;<;87878787434343430/0/0/0/.-.-.-.-*)*)*)*)&%&%&%&%"!"!"!"! popopopolklklklkhghghghgdcdcdcdc`_`_`_`_^]^]\[\[ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?<;<;<;<;87878787434343430/0/0/0/.-.-.-.-*)*)*)*)&%&%&%&%"!"!"!"! popopopokkkklklkhghghghgdcdcdcdc`_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVURQRQRQQQNMNMNMNMJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?<;<;<;<;87878787434343430/0/0/0/.-.-.-.-*)*)*)*)&%&%&%&%"!"!"!"! popopopolklkjijihghghghgdcdcdcdc`_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVUQQQRQRQRNMNMNMNMJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?<;<;<;<;87878777434343430/0/0/0/.-.-.-.-*)*)*)*)&%&%&%&%"!"!"!"! popopopojijijijihghghghgdcdcdcdc`_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVUQRQRQRQRNMNMNMNMJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?<;<;<;<;77787878434343430/0/0/0/.-.-.-.-*)*)*)*)&%&%&%&%"!"!"!"! popopopojijijijihghghghgdcdcdcdc`_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVUQRQRQRQRNMNMNMNMJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?<;<;<;<;78787878434343430/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%"!"!"!"! ponmnmnmjijijijihghghghgdcdcdcdc`_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVUQRQRQRQRNMNMNMNMJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?<;<;<;<;78787878434343430/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%"!"!"!"! nmnmnmnmjijijijihghghghgdcdcdcdc`_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVUQRQRQRQRNMNMNMNMJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?<;<;<;<;78787878434343430/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%"!"!"!"! nmnmnmnmjijijijihghghghgdcdcdcdc`_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVUQRQRQQQQNMNMNMNMJIJIJIJIFEFEFEFEDCBABABA@?@?@?@?<;<;<;<;78787878434343430/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%"!"!"!"! nmnmnmnmjijijijihghghghgdcdcdcdc`_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVUQQRQRQRQNMNMNMNMJIJIJIJIFEFEFEFEBABABABA@?@?@?@?<;<;<;<;78787777434343430/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%"!"!"!"! nmnmnmnmjijijijihghghghgdcdcdcdc`_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVURQPOPOPONMNMNMNMJIJIJIJIFEFEFEFEBABABABA@?@?@?@?<;<;<;<;77878787434343430/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%"!"!"!"! nmnmnmnmjijijijihghghghgdcdcdcdc`_`_`_`_\[\[\[\[ZYZYXWXWVUVUVUVUPOPOPOPONMNMNMNMJIJIJIJIFEFEFEFEBABABABA@?@?@?@?<;<;<;<;87878787434343430/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%"!"!"!"! nmnmnmnmjijijijihghghghgdcdcdcdc`_`_`_`_\[\[\[\[XWXWXWXWVUVUVUVUPOPOPOPONMNMNMNMJIJIJIJIFEFEFEFEBABABABA@?@?@?@?<;<;<;<;87878787434343430/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%"!"!"!"! nmnmnmnmjijijijihghgfefedcdcdcdc`_`_`_`_\[\[\[\[XWXWXWXWTSTSTSTSPOPOPOPONMNMNMNMJIJIJIJIFEFEFEFEBABABABA@?@?@?@?<;<;<;<;87878787434343430/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%"!"!"!"! nmnmnmnmjijijijifefefefedcdcdcdc`_`_`_`_\[\[\[\[XWXWXWXWTSTSTSTSPOPOPOPONMNMNMNMJIJIJIJIFEFEFEFEBABABABA@?@?@?@?<;<;<;<;87878787434343430/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%"!"!"!"! nmnmnmnmjijijijifefefefedcdcdcdc`_`_`_`_\[\[\[\[XWXWXWXWTSTSTSTSPOPOPOPONMNMNMNMJIJIJIJIFEFEFEFEBABABABA@?@?@?@?<;<;<;<;87877777434343430/0/0/0/,+,+,+,+('('('('&%&%&%&%"!"!"!"! nmnmnmnmjijijijifefefefedcdcdcdc`_`_`_`_\[\[\[\[XWXWXWXWTSTSTSTSPOPOPOPONMNMNMNMJIJIJIJIFEFEFEFEBABABABA@?@?@?@?<;<;<;<;87878787434343430/0/0/0/,+,+,+,+('('('('&%&%&%&%"!"!"!"! nmnmnmnmjijijijifefefefedcdcdcdc`_`_`_`_\[\[\[\[XWXWXWXWTSTSTSTSPOPOPOPONMNMNMNMJIJIJIJIFEFEFEFEBABABABA@?@?@?@?<;<;<;<;65656565434343430/0/0/0/,+,+,+,+('('('('&%&%&%&%"!"!"!"! nmnmnmnmjijijijifefefefedcdcdcdc`_`_`_`_\[\[\[\[XWXWXWXWTSTSTSTSPOPOPOPONMNMNMNMJIJIJIJIFEFEFEFEBABABABA@?>=>=>=<;<;<;<;65656565434343430/0/0/0/,+,+,+,+('('('('&%&%&%&%"!"!"!"! nmnmnmnmjijijijifefefefedcdcdcdc`_`_`_`_\[\[\[\[XWXWXWXWTSTSTSTSPOPOPOPONMNMNMNMJIJIJIJIFEFEFEFEBABABABA>=>=>=>=<;<;<;:965656565434343430/0/0/0/,+,+,+,+('('('('&%&%&%&%"!"!"!"! nmnmnmnmjijijijifefefefedcdcdcdc`_`_`_`_\[\[\[\[XWXWXWXWTSTSTSTSPOPOPOPONMLKLKLKJIJIJIJIFEFEFEFEBABABABA>=>=>=>=:9:9:9:965656565434343430/0/0/0/,+,+,+,+('('('('&%&%&%&%"!"!"!"! nmnmnmnmjijijijifefefefedcdcdcdc`_`_`_`_\[\[\[\[XWXWXWXWTSTSTSTSPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEBABABABA>=>=>=>=:9:9:9:965656565434343430/0/0/0/,+,+,+,+('('('('&%&%&%&%"!"!"!"! nmnmnmnmjijijijifefefefedcdcdcdc`_`_`_`_\[\[\[\[XWXWXWXWTSTSTSTSPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEBABABABA>=>=>=>=:9:9:9:965656565434343430/0/0/0/,+,+,+,+('('('('&%&%&%&%"!"!"!"!    nmnmnmnmjijijijifefefefedcdcbaba`_`_`_`_\[\[\[\[XWXWXWXWTSTSTSTSPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEBABABABA>=>=>=>=:9:9:9:965656565434343430/0/0/0/,+,+,+,+('('('('&%&%&%&%"!"!"!"!    nmnmnmnmjijijijifefefefebabababa`_`_`_`_\[\[\[\[XWXWXWXWTSTSTSTSPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEBABABABA>=>=>=>=:9:9:9:965656565434343430/0/0/0/,+,+,+,+('('('('&%&%&%&%"!"!"!"!    nmnmnmnmjijijijifefefefebabababa`_`_`_`_\[\[\[\[XWXWXWXWTSTSTSTSPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEBABABABA>=>=>=>=:9:9:9:965656565434343430/0/0/0/,+,+,+,+('('('('$#$#$#$#"!"!"!"!    nmnmnmnmjijijijifefefefebabababa`_`_`_`_\[\[\[\[XWXWXWXWTSTSTSTSPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEBABABABA>=>=>=>=:9:9:9:965656565434343430/0/0/0/,+,+,+,+('('('('$#$#$#$#"!"!      nmnmnmnmjijijijifefefefebabababa`_`_`_`_\[\[\[\[XWXWXWXWTSTSTSTSPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEBABABABA>=>=>=>=:9:9:9:965656565212121210/0/0/0/,+,+,+,+('('('('$#$#$#$#        nmnmnmnmjijijijifefefefebabababa`_`_`_`_\[\[\[\[XWXWXWXWTSTSTSTSPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEBABABABA>=>=>=>=:9:9:9:965656565212121210/0/0/0/,+,+,+,+('('('('$#$#$#$#        nmnmnmnmjijijijifefefefebabababa`_`_`_`_\[\[\[\[XWXWXWXWTSTSTSTSPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEBABABABA>=>=>=>=:9:9:9:965656565212121210/0/0/0/,+,+,+,+('('('('$#$#$#$#        nmnmnmnmjijijijifefefefebabababa`_`_`_`_\[\[\[\[XWXWXWXWTSTSTSTSPOPOPOPOLKLKLKLKJIHGHGHGFEFEFEFEBABABABA>=>=>=>=:9:9:9:965656565212121210/0/0/0/,+,+,+,+('('('('$#$#$#$#        nmnmnmnmjijijijifefefefebabababa`_`_`_`_\[\[\[\[XWXWXWXWTSTSTSTSPOPOPOPOLKLKLKLKHGHGHGHGFEFEFEFEBABABABA>=>=>=>=:9:9:9:965656565212121210/0/0/0/,+,+,+,+('('('('$#$#$#$#        - nmnmnmnmjijijijifefefefebabababa`_`_`_`_\[\[\[\[XWXWXWXWTSTSTSTSPOPOPOPOLKLKLKLKHGHGHGHGFEFEFEFEBABABABA>=>=>=>=:9:9:9:965656565212121210/0/0/0/,+,+,+,+('('('('$#$#$#$#        - - - - nmnmnmnmjijijijifefefefebabababa`_`_^]^]\[\[\[\[XWXWXWXWTSTSTSTSPOPOPOPOLKLKLKLKHGHGHGHGFEFEFEFEBABABABA>=>=>=>=:9:9:9:965656565212121210/0/0/0/,+,+,+,+('('('('$#$#$#$#        - - - - nmnmnmnmjijijijifefefefebabababa^]^]^]^]\[\[\[\[XWXWXWXWTSTSTSTSPOPOPOPOLKLKLKLKHGHGHGHGFEFEFEFEBABABABA>=>=>=>=:9:9:9:965656565212121210/0/0/0/,+,+,+,+('('('('$#$#$#$#        - - - - nmnmnmnmjijijijifefefefebabababa^]^]^]^]\[\[\[\[XWXWXWXWTSTSTSTSPOPOPOPOLKLKLKLKHGHGHGHGFEFEFEFEBABABABA>=>=>=>=:9:9:9:965656565212121210/0/0/0/,+,+,+,+('('('('$#$#$#$#        - - - - nmnmnmnmjijijijifefefefebabababa^]^]^]^]\[\[\[\[XWXWXWXWTSTSTSTSPOPOPOPOLKLKLKLKHGHGHGHGFEFEFEFEBABABABA>=>=>=>=:9:9:9:965656565212121210/0/0/0/,+,+,+,+('('('('$#$#$#$#        - - - - nmnmnmnmjijijijifefefefebabababa^]^]^]^]\[\[\[\[XWXWXWXWTSTSTSTSPOPOPOPOLKLKLKLKHGHGHGHGFEFEFEFEBABABABA>=>=>=>=:9:9:9:96565656521212121.-.-.-.-,+,+,+,+('('('('$#$#$#$#        - - - - nmnmnmnmjijijijifefefefebabababa^]^]^]^]\[\[\[\[XWXWXWXWTSTSTSTSPOPOPOPOLKLKLKLKHGHGHGHGFEFEFEFEBABABABA>=>=>=>=:9:9:9:96565656521212121.-.-.-.-,+,+,+,+('('('('$#$#$#$#        - - - - nmnmnmlkjijijijifefefefebabababa^]^]^]^]\[\[\[\[XWXWXWXWTSTSTSTSPOPOPOPOLKLKLKLKHGHGHGHGFEFEFEFEBABABABA>=>=>=>=:9:9:9:96565656521212121.-.-.-.-,+,+,+,+('('('('$#$#$#$#        - - - - lklklkkkjijijijifefefefebabababa^]^]^]^]\[\[\[\[XWXWXWXWTSTSTSTSPOPOPOPOLKLKLKLKHGHGHGHGFEDCDCDCBABABABA>=>=>=>=:9:9:9:96565656521212121.-.-.-.-,+,+,+,+('('('('$#$#$#$#        - - - - kkklklkljijijijifefefefebabababa^]^]^]^]\[\[\[\[XWXWXWXWTSTSTSTSPOPOPOPOLKLKLKLKHGHGHGHGDCDCDCDCBABABABA>=>=>=>=:9:9:9:96565656521212121.-.-.-.-,+,+,+,+('('('('$#$#$#$#        - - - - klklklkljijijijifefefefebabababa^]^]^]^]\[\[\[\[XWXWXWXWTSTSTSTSPOPOPOPOLKLKLKLKHGHGHGHGDCDCDCDCBABABABA>=>=>=>=:9:9:9:96565656521212121.-.-.-.-,+,+,+,+('('('('$#$#$#$#        - - - - klklklkljijijijifefefefebabababa^]^]^]^]\[\[ZYZYXWXWXWXWTSTSTSTSPOPOPOPOLKLKLKLKHGHGHGHGDCDCDCDCBABABABA>=>=>=>=:9:9:9:96565656521212121.-.-.-.-,+,+,+,+('('('('$#$#$#$#        - - - - klklklkljijijijifefefefebabababa^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSPOPOPOPOLKLKLKLKHGHGHGHGDCDCDCDCBABABABA>=>=>=>=:9:9:9:96565656521212121.-.-.-.-,+,+,+,+('('('('$#$#$#$#        - - - - klklklkljijihghgfefefefebabababa^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSPOPOPOPOLKLKLKLKHGHGHGHGDCDCDCDCBABABABA>=>=>=>=:9:9:9:96565656521212121.-.-.-.-,+,+,+,+('('('('$#$#$#$#        - - - - klklkkkkhghghghgfefefefebabababa^]^]^]^]ZYZYZYZYXWXWXWXWTSTSRQRQPOPOPOPOLKLKLKLKHGHGHGHGDCDCDCDCBABABABA>=>=>=>=:9:9:9:96565656521212121.-.-.-.-,+,+,+,+('('('('$#$#$#$#        - - - - kklklklkhghghghgfefefefebabababa^]^]^]^]ZYZYZYZYXWXWXWXWRQRQQQQQPOPOPOPOLKLKLKLKHGHGHGHGDCDCDCDCBABABABA>=>=>=>=:9:9:9:96565656521212121.-.-.-.-*)*)*)*)('('('('$#$#$#$#        - - - - lklklklkhghghghgfefefefebabababa^]^]^]^]ZYZYZYZYXWXWXWXWRQRQRQRQPOPOPOPOLKLKLKLKHGHGHGHGDCDCDCDCBABABABA>=>=>=>=:9:9:9:96565656521212121.-.-.-.-*)*)*)*)('('('('$#$#$#$#        - - - - lklklklkhghghghgfefefefebabababa^]^]^]^]ZYZYZYZYXWXWXWXWRQRQRQRQPOPOPOPOLKLKLKLKHGHGHGHGDCDCDCDCBABABABA>=>=>=>=:9:9:9:96565656521212121.-.-.-.-*)*)*)*)('('('('$#$#$#$#        - - - - lklklklkhghghghgfefefefebabababa^]^]^]^]ZYZYZYZYXWXWXWXWRQRQRQRQPOPOPOPOLKLKLKLKHGHGHGHGDCDCDCDCBA@?@?@?>=>=>=>=:9:9:9:96565656521212121.-.-.-.-*)*)*)*)('('('('$#$#$#$#        - - - - lklklklkhghghghgfefefefebabababa^]^]^]^]ZYZYZYZYXWXWXWXWRQRQRQRQPOPOPOPOLKLKLKLKHGHGHGHGDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:96565656521212121.-.-.-.-*)*)*)*)('('('('$#$#$#$#        - - - - lklkkkkkhghghghgfefefefebabababa^]^]^]^]ZYZYZYZYXWXWXWXWRQRQRQRQPONMNMNMLKLKLKLKHGHGHGHGDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:96565656521212121.-.-.-.-*)*)*)*)('('('('$#$#$#$#        - - - - klklklklhghghghgfefefefebabababa^]^]^]^]ZYZYZYZYXWXWVUVURQQQQQQRNMNMNMNMLKLKLKLKHGHGHGHGDCDCDCDC@?@?@?@?>=>=>=>=:98787876565656521212121.-.-.-.-*)*)*)*)('('('('$#$#$#$#        - - - - klklklklhghghghgfefefefebabababa^]^]^]^]ZYZYZYZYVUVUVUVUQRQRQRQRNMNMNMNMLKLKLKLKHGHGHGHGDCDCDCDC@?@?@?@?>=>=>=>=877777786565656521212121.-.-.-.-*)*)*)*)('('('('$#$#$#$#        - - - - klklklklhghghghgfefedcdcbabababa^]^]^]^]ZYZYZYZYVUVUVUVUQRQRQRQRNMNMNMNMLKLKLKLKHGHGHGHGDCDCDCDC@?@?@?@?>=>=>=>=787878786565656521212121.-.-.-.-*)*)*)*)('('('('$#$#$#$#        - - - - klklklklhghghghgdcdcdcdcbabababa^]^]^]^]ZYZYZYZYVUVUVUVUQRQRQRQRNMNMNMNMLKLKLKLKHGHGHGHGDCDCDCDC@?@?@?@?>=>=>=>=787878786565656521212121.-.-.-.-*)*)*)*)('('('('$#$#$#$#        - - - - klklklklhghghghgdcdcdcdcbabababa^]^]^]^]ZYZYZYZYVUVUVUVUQRQRQRQRNMNMNMNMLKLKLKLKHGHGHGHGDCDCDCDC@?@?@?@?>=>=>=>=787878786565656521212121.-.-.-.-*)*)*)*)&%&%&%&%$#$#$#$#        - - - - klkkkkkkhghghghgdcdcdcdcbabababa^]^]^]^]ZYZYZYZYVUVUVUVUQRQRQRQRNMNMNMNMLKLKLKLKHGHGHGHGDCDCDCDC@?@?@?@?>=>=>=>=787878786565656521212121.-.-.-.-*)*)*)*)&%&%&%&%$#$#$#$#        - - - - lklklklkhghghghgdcdcdcdcbabababa^]^]^]^]ZYZYZYZYVUVUVUVUQQQQQQRQNMNMNMNMLKLKLKLKHGHGHGHGDCDCDCDC@?@?@?@?>=>=>=>=787878784343434321212121.-.-.-.-*)*)*)*)&%&%&%&%$#$#$#$#        - - - - lklklklkhghghghgdcdcdcdcbabababa^]^]^]^]ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMLKLKLKLKHGHGHGHGDCDCDCDC@?@?@?@?>=<;<;<;777777874343434321212121.-.-.-.-*)*)*)*)&%&%&%&%$#$#$#$#    - - - - lklklklkhghghghgdcdcdcdcbabababa^]^]^]^]ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMLKLKLKLKHGHGHGHGDCDCDCDC@?@?@?@?<;<;<;<;878787874343434321212121.-.-.-.-*)*)*)*)&%&%&%&%$#$#$#$#    - - - - lklklklkhghghghgdcdcdcdcbabababa^]^]^]^]ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMLKJIJIJIHGHGHGHGDCDCDCDC@?@?@?@?<;<;<;<;878787874343434321212121.-.-.-.-*)*)*)*)&%&%&%&%$#$#$#$#    - - - - }}~~UUVVWWXX--..//00$$##""!! - - GGFFEEDDoonnmmllYYZZ[[\\11223344 - - CCBBAA@@kkjjiihh]]^^__``55667788 ??>>==<>??@@  77665544__^^]]\\iijjkkllAABBCCDD  - - 33221100[[ZZYYXX~~}}||mmnnooppEEFFGGHH - - //..--,,WWVVUUTT~~}}||{{zzyyxxqqrrssttIIJJKKLL!!""##$$++**))((SSRRQQPP{{zzyyxxwwvvuuttuuvvwwxxMMNNOOPP%%&&''((''&&%%$$OONNMMLLwwvvuuttssrrqqpoyyzz{{||QQRRSSTT))**++,, !"##$$% ##""!! KKJJIIHHssrrqqpp~~}}nmlkkjji}}~~UUVVWWXX--..//00 - - %&&''(() - - GGFFEEDDoonnmmll||{{zzyyihhggffe~~}}YYZZ[[\\11223344 )**++,,-CCBBAA@@kkjjiihhxxwwvvuueddccbba||{{zzyy]]^^__``55667788-..//001??>>==<>??@@5667789: 77665544__^^]]\\llkkjjiizzyyxxwwYXXWWVUTppoonnmmiijjkkllAABBCCDD##$$%%;<==>>?? !! - - 33221100[[ZZYYXXhhggffeevvuuttssSRQQPPOOllkkjjiimmnnooppEEFFGGHH&&''(())@@AABBCC""##$$%%//..--,,WWVVUUTT~~}}||ddccbbaarrqqkkjjNNMMLLKKhhggffeeqqrrssttIIJJKKLL**++,,--DDEEFFGG&&''(())++**))((SSRRQQPP{{zzyyxx``__^^]]iihhggffJJIIHHGGddccbbaauuvvwwxxMMNNOOPP..//0011HHIIJJKK**++,,--''&&%%$$OONNMMLLwwvvuutt\\[[ZZYYeeddccbbFFEEDDCC``__^^]]yyzz{{||QQRRSSTT22334455LLMMNNOO..//0011 ##""!! KKJJIIHHssrrqqppXXWWVVUUaa``__^^BBAA@@??\\[[ZZYY}}~~UUVVWWXX6677==>>PPQQRSTU22334455 - - GGFFEEDDoonnmmllTTSSRRQQ]]\\[[ZZ>>==<;:9XXWWVVUU~~}}YYZZ[[\\??@@AABBVWWXXYYZ66778899CCBBAA@@kkjjiihhPPOONNMMYYXXWWQQ87766554TTSSRRQQ||{{zzyy]]^^__``CCDDEEFFZ[[\\]]^::;;<<==??>>==<>??@@AA;;::9988ccbbaa``HHGGFFEELLKKJJII0//..--,LLKKJJIIttssrrqqeeffgghhKKLLMMNNbccddeefBBCCDDEE 77665544__^^]]\\DDCCBBAAHHGGFFEE,++**))(HHGGFFEEppoonnmmiijjkkllOOPPQQWWfgghhiijFFGGHHII !! - - 33221100[[ZZYYXX@@??>>==DDCCBBAA(''&&%%$DDCCBBAAllkkjjiimmnnooppXXYYZZ[[jkklmnopJJKKLLMM""##$$%%//..--,,WWVVUUTT<<;;::99@@??>>==$##"! @@??>>==hhggffeeqqrrsstt\\]]^^__qqrrssttNNOOPPQQ&&''(())++**))((SSRRQQPP8877665577665544<<;;::99ddccbbaauuvvwwxx``aabbccuuvvwwxxRRSSTTUU**++,,--''&&%%$$OONNMMLL443322113322110088776655``__^^]]yyzz{{||ddeeffggyyzz{{||VVWWXXYY..//0011 ##""!! KKJJIIHH00//..--//..--,,44332211\\[[ZZYY}}~~hhiijjkk}}~~ZZ[[\\]]22334455 - - GGFFEEDD,,++**))++**))((00//..--XXWWVVUU~~}}qqrrsstt^^__``aa66778899CCBBAA@@((''&&%%''&&%%$$ - -,,++**))TTSSRRQQ||{{zzyyuuvvwwxxbbccddee::;;<<==??>>==<<$$##""!!## ((''&&%%PPOONNMMxxwwvvuuyyzz{{||ffgghhii>>??@@AA;;::9988 $$##""!!LLKKJJIIttssrrqq}}~~jjkkllmmBBCCDDEE 77665544 - - HHGGFFEEppoonnmmnnooppqqFFGGHHII !! - - 33221100 DDCCBBAAllkkjjiirrssttuuJJKKLLMM""##$$%%//..--,, @@??>>==hhggffeevvwwxxyyNNOOPPQQ&&''(())++**))(( - - - -<<;;::99ddccbbaazz{{||}}RRSSTTUU**++,,--''&&%%$$ - -  88776655``__^^]]~~VVWWXXYY..//0011 ##""!! - -  - - 44332211\\[[ZZYYZZ[[\\]]22334455 - -  !!""##$$00//..--XXWWVVUU~~}}^^__``aa66778899%%&&''((,,++**))TTSSRRQQ||{{zzyybbccddee::;;<<==jjkkllmm##))**++,,((''&&%%PPOONNMMxxwwvvuuffgghhii>>??@@AAnnooppqq$$%%&&''--..//00$$##""!!LLKKJJIIttssrrqqjjkkllmmBBCCDDEE rrssttuu (())**++11223344 - - HHGGFFEEppoonnmmnnooppqqFFGGHHII !! - - vvwwxxyy!!""##$$,,--..//55667788 DDCCBBAAllkkjjiirrssttuuJJKKLLMM""##$$%%zz{{||}}%%&&''((0011223399::;;<<@@??>>==hhggffeevvwwxxyyNNOOPPQQ&&''(())~~))**++,,44556677==>>??@@<<;;::99ddccbbaazz{{||}}RRSSTTUU**++,,----..//00==>>??@@AABBCCDD 88776655``__^^]]~~VVWWXXYY..//0011 11223344AABBCCDDEEFFGGHH - - 44332211\\[[ZZYY~~}}~~}}||ZZ[[\\]]22334455 - - 55667788EEFFGGHHIIJJKKLL!!""##$$00//..--XXWWVVUU~~}}||{{zzyy{{zzyyxx^^__``aa6677889999::;;<>??@@MMNNOOPPQQRRSSTT))**++,,((''&&%%PPOONNMMxxwwvvuuttssrrqqssrrqqppffgghhii>>??@@AAAABBCCDDQQWWXXYYUUVVWWXX--..//00$$##""!!LLKKJJIIttssrrqqkkjjiihhoonnmmlljjkkllmmBBCCDDEEEEFFGGHHZZ[[\\]]YYZZ[[\\11223344 - - HHGGFFEEppoonnmmggffeeddkkjjiihhnnooppqqFFGGHHII !!IIJJKKLL^^__``aa]]^^__``55667788 DDCCBBAAllkkjjiiccbbaa``ggffeeddrrssttuuJJKKLLMM""##$$%%MMNNOOPPbbccddeeaabbccdd99::;;<<@@??>>==hhggffee__^^]]\\ccbbaa``vvwwxxyyNNOOPPQQ&&''(())QQRRSSTTffgghhiieeffgghh==>>??@@<<;;::99ddccbbaa[[ZZYYXX__^^]]\\zz{{||}}RRSSTTUU**++,,--UUVVWWXXjjkkqqrriijjkkllAABBCCDD 88776655``__^^]]WWQQPPOO[[ZZYYXX~~VVWWXXYY..//0011YYZZ[[\\ssttuuvvmmnnooppEEFFGGHH - - 44332211\\[[ZZYYNNMMLLKKWWVVUUTT~~}}||ZZ[[\\]]22334455]]^^__``wwxxyyzzqqrrssttIIJJKKLL!!""##$$00//..--XXWWVVUUJJIIHHGGSSRRQQPP{{zzyyxx^^__``aa66778899aabbccdd{{||}}~~uuvvwwxxMMNNOOPP%%&&''((,,++**))TTSSRRQQFFEEDDCCOONNMMLLwwvvuuttbbccddee::;;<<==eeffgghhyyzz{{||QQRRSSTT))**++,,((''&&%%PPOONNMMBBAA@@??KKJJIIHHssrrqqppffgghhii>>??@@AAiijjkkll}}~~UUVVWWXX--..//00$$##""!!LLKKJJII>>==7766GGFFEEDDoonnmmlljjkkllmmBBCCDDEEmmnnooppYYZZ[[\\11223344 - - HHGGFFEE55443322CCBBAA@@kkjjiihhnnooppqqFFGGHHII~~qqrrsstt]]^^__``55667788 DDCCBBAA1100//..??>>==<>==--,,++**;;::9988ccbbaa``vvwwxxyyNNOOPPQQyyxxwwvvyyzz{{||eeffgghh==>>??@@<<;;::99))((''&&77665544__^^]]\\zz{{||}}RRSSTTUUuuttssrr}}~~iijjkkllAABBCCDD 88776655%%$$##33221100[[ZZYYXX~~VVWWXXYYqqkkjjiimmnnooppEEFFGGHH - - 44332211//..--,,WWVVUUTT~~}}||ZZ[[\\]]hhggffeeqqrrssttIIJJKKLL!!""##$$00//..--++**))((SSRRQQPP{{zzyyxx^^__``aaddccbbaauuvvwwxxMMNNOOPP%%&&''((,,++**))''&&%%$$OONNMMLLwwvvuuttbbccddee``__^^]]yyzz{{||QQRRSSTT))**++,,((''&&%% ##""!! KKJJIIHHssrrqqppffgghhii\\[[ZZYYXXWWQQPPAA@@??>>bbaa``__wwxxyyzzOOPPQQRR00112233JJKKLLMM,,--..//%%$$##""MMLLKKJJuuttssrr||{{zzyyiijjkkllAABBCCDD  - - 33221100[[ZZYYXX~~OONNMMLL==<;:987^^]]\\[[{{||}}~~SSTTUUVV44556677NNOOPPQQ00112233 - - !! IIHHGGFFqqppoonnxxwwvvuummnnooppEEFFGGHH - - //..--,,WWVVUUTT~~}}||KKJJIIHH76655443ZZYYXXWWWWXXYYZZ==>>??@@RSTUVWWX44556677 EEDDCCBBmmllkkjjttssrrqqqqrrssttIIJJKKLL!!""##$$++**))((SSRRQQPP{{zzyyxxGGFFEEDD3221100/VVUUTTSS~~}}||{{[[\\]]^^AABBCCDDXYYZZ[[\8899::;;AA@@??>>iihhggffponmlkkjuuvvwwxxMMNNOOPP%%&&''((''&&%%$$OONNMMLLwwvvuuttCCBBAA@@/..--,,+RRQQPPOOzzyyxxww__``aabbEEFFGGHH\]]^^__`<<==>>??==<<;;::eeddccbbjiihhggfyyzz{{||QQRRSSTT))**++,, !"##$$% ##""!! KKJJIIHHssrrqqpp??>>==77+**))(('NNMMLLKKvvuuttssccddeeffIIJJKKLL`aabbccd@@AABBCC99887766aa``__^^~~}}||feeddccb}}~~UUVVWWXX--..//00 - - %&&''(() - - GGFFEEDDoonnmmll66554433'&&%%$$#JJIIHHGGrrqqppoogghhiijjMMNNOOPPdeeffgghDDEEFFGG - -55443322]]\\[[ZZ{{zzyyxxbaa``__^~~}}YYZZ[[\\11223344 )**++,,-CCBBAA@@kkjjiihh221100//#"! FFEEDDCCnnmmllkkkkllmmnnQQWWXXYYhiijjkklHHIIJJKK !!""## 1100//..YYXXWWVVwwvvuutt^]]\\[[Z||{{zzyy]]^^__``55667788-..//001??>>==<>==<<;;ffeeddccssttuuvv^^__``aassttuuvvPPQQRRSS(())**++))((''&&QQPPOONNjjiihhggUTSRQQPPttssrrqqeeffgghh==>>??@@5667789: 77665544__^^]]\\wwvvuutt&&%%$$##::998877bbaa``__wwxxyyzzbbccddeewwxxyyzzTTUUVVWW,,--..//%%$$##""MMLLKKJJffeeddccOONNMMLLppoonnmmiijjkkllAABBCCDD##$$%%;<==>>?? !! - - 33221100[[ZZYYXXssrrqqpp 66554433^^]]\\[[{{||}}~~ffgghhii{{||}}~~XXYYZZ[[00112233 - - !! IIHHGGFFbbaa``__KKJJIIHHllkkjjiimmnnooppEEFFGGHH&&''(())@@AABBCC""##$$%%//..--,,WWVVUUTT~~}}||oonnmmll - - 221100//ZZYYXXWWjjkkqqrr\\]]^^__44556677 EEDDCCBB^^]]\\[[GGFFEEDDhhggffeeqqrrssttIIJJKKLL**++,,--DDEEFFGG&&''(())++**))((SSRRQQPP{{zzyyxxkkjjiihh..--,,++VVUUTTSS~~}}||{{ssttuuvv``aabbcc8899::;;AA@@??>>ZZYYXXWWCCBBAA@@ddccbbaauuvvwwxxMMNNOOPP..//0011HHIIJJKK**++,,--''&&%%$$OONNMMLLwwvvuuttggffeedd**))((''RRQQPPOOzzyyxxwwwwxxyyzzddeeffgg<<==>>??==<<;;::QQPPOONN??>>==<;``__^^]]yyzz{{||QQRRSSTT22334455LLMMNNOO..//0011 ##""!! KKJJIIHHssrrqqppccbbaa`` - -&&%%$$##NNMMLLKKvvuuttss{{||}}~~hhiijjkk@@AABBCC99887766MMLLKKJJ:9877665\\[[ZZYY}}~~UUVVWWXX6677==>>PPQQRSTU22334455 - - GGFFEEDDoonnmmll__^^]]\\  - -""!! JJIIHHGGrrqqppoollmmnnooDDEEFFGG - -55443322IIHHGGFF54433221XXWWVVUU~~}}YYZZ[[\\??@@AABBVWWXXYYZ66778899CCBBAA@@kkjjiihh[[ZZYYXX FFEEDDCCnnmmllkkppqqrrssHHIIJJKK !!""## 1100//..EEDDCCBB100//..-TTSSRRQQ||{{zzyy]]^^__``CCDDEEFFZ[[\\]]^::;;<<==??>>==<>-,,++**)PPOONNMMxxwwvvuuaabbccddGGHHIIJJ^__``aab>>??@@AA;;::9988ccbbaa``~~}}||{{SSRRQQPP >>==<<;;ffeeddccxxyyzz{{PPQQRRSS(())**++))((''&&==776655)((''&&%LLKKJJIIttssrrqqeeffgghhKKLLMMNNbccddeefBBCCDDEE 77665544__^^]]\\zzyyxxwwOONNMMLL::998877bbaa``__||}}~~TTUUVVWW,,--..//%%$$##""44332211%$$##"! HHGGFFEEppoonnmmiijjkkllOOPPQQWWfgghhiijFFGGHHII !! - - 33221100[[ZZYYXXvvuuttssKKJJIIHH 66554433^^]]\\[[XXYYZZ[[00112233 - - !! 00//..--DDCCBBAAllkkjjiimmnnooppXXYYZZ[[jkklmnopJJKKLLMM""##$$%%//..--,,WWVVUUTTrrqqkkjjGGFFEEDD !!"" - - 221100//ZZYYXXWW\\]]^^__44556677 ,,++**))@@??>>==hhggffeeqqrrsstt\\]]^^__qqrrssttNNOOPPQQ&&''(())++**))((SSRRQQPPiihhggffCCBBAA@@##$$##$$%%&&..--,,++VVUUTTSS~~}}||{{``aabbcc8899::;;((''&&%%<<;;::99ddccbbaauuvvwwxx``aabbccuuvvwwxxRRSSTTUU**++,,--''&&%%$$OONNMMLLeeddccbb??>>==<<%%&&''((''(())****))((''RRQQPPOOzzyyxxwwddeeffgg<<==>>??$$##88776655``__^^]]yyzz{{||ddeeffggyyzz{{||VVWWXXYY..//0011 ##""!! KKJJIIHHaa``__^^;;::9988))**++,,++,,--..&&%%$$##NNMMLLKKvvuuttsshhiijjkk@@AABBCC 44332211\\[[ZZYY}}~~hhiijjkk}}~~ZZ[[\\]]22334455 - - GGFFEEDD]]\\[[ZZ77665544--..//00//001122 - -""!! JJIIHHGGrrqqppoollmmnnooDDEEFFGG - - - - 00//..--XXWWVVUU~~}}qqrrsstt^^__``aa66778899CCBBAA@@YYXXWWQQ332211001122334433445566 FFEEDDCCnnmmllkkppqqrrssHHIIJJKK !!""## ,,++**))TTSSRRQQ||{{zzyyuuvvwwxxbbccddee::;;<<==??>>==<>??@@AA;;::9988LLKKJJII++**))((>>??@@AA;;<<==>>>>==<<;;ffeeddccxxyyzz{{PPQQRRSS(())**++ - - $$##""!!LLKKJJIIttssrrqq}}~~jjkkllmmBBCCDDEE 77665544HHGGFFEE''&&%%$$BBCCDDEE??@@AABB::998877bbaa``__||}}~~TTUUVVWW,,--..// - - HHGGFFEEppoonnmmnnooppqqFFGGHHII !! - - 33221100DDCCBBAA##""!! FFGGHHIICCDDEEFF 66554433^^]]\\[[~~XXYYZZ[[00112233 - -  DDCCBBAAllkkjjiirrssttuuJJKKLLMM""##$$%%//..--,,@@??>>==JJKKLLMMGGHHIIJJ !!"" - - 221100//ZZYYXXWW~~}}||{{}}||{{zz\\]]^^__44556677  - - @@??>>==hhggffeevvwwxxyyNNOOPPQQ&&''(())++**))((77665544NNOOPPQQKKLLMMNN##$$%%&&..--,,++VVUUTTSS~~}}||{{zzyyxxwwyyxxwwvv``aabbcc8899::;;<<;;::99ddccbbaazz{{||}}RRSSTTUU**++,,--''&&%%$$33221100WWXXYYZZOOPPQQRR''(())****))((''RRQQPPOOzzyyxxwwvvuuttssuuttssrrddeeffgg<<==>>?? 88776655``__^^]]~~VVWWXXYY..//0011 ##""!! //..--,,[[\\]]^^SSTTUUVV++,,--..&&%%$$##NNMMLLKKvvuuttssrrqqkkjjqqppoonnhhiijjkk@@AABBCC - - 44332211\\[[ZZYYZZ[[\\]]22334455 - - ++**))(( __``aabbWWXXYYZZ//001122 - -""!! JJIIHHGGrrqqppooiihhggffmmllkkjjllmmnnooDDEEFFGG!!""##$$00//..--XXWWVVUU~~}}^^__``aa66778899''&&%%$$ - - ccddeeff[[\\]]^^33445566 FFEEDDCCnnmmllkkeeddccbbiihhggffppqqrrssHHIIJJKK !!""####$$%%&&%%&&''((,,++**))TTSSRRQQ||{{zzyybbccddee::;;<<==## - - gghhiijj__``aabb778899::BBAA@@??jjiihhggaa``__^^eeddccbbttuuvvwwLLMMNNOO$$%%&&''''(())**))**++,,((''&&%%PPOONNMMxxwwvvuuffgghhii>>??@@AAkkqqrrssccddeeff;;<<==>>>>==<<;;ffeeddcc]]\\[[ZZaa``__^^xxyyzz{{PPQQRRSS(())**++++,,--..--..//00$$##""!!LLKKJJIIttssrrqqjjkkllmmBBCCDDEE ttuuvvwwgghhiijj??@@AABB::998877bbaa``__YYXXWWQQ]]\\[[ZZ||}}~~TTUUVVWW,,--..////00112211223344 - - HHGGFFEEppoonnmmnnooppqqFFGGHHII !! - - xxyyzz{{kkllmmnnCCDDEEFF 66554433^^]]\\[[PPOONNMMYYXXWWVV~~XXYYZZ[[001122333344556655667788 DDCCBBAAllkkjjiirrssttuuJJKKLLMM""##$$%% ||}}~~ooppqqrrGGHHIIJJ !!"" - - 221100//ZZYYXXWWLLKKJJIIUUTTSSRR}}||{{zz\\]]^^__4455667777==>>??99::;;<<@@??>>==hhggffeevvwwxxyyNNOOPPQQ&&''(()) - - - - !!ssttuuvvKKLLMMNN##$$%%&&..--,,++VVUUTTSSHHGGFFEEQQPPOONNyyxxwwvv``aabbcc8899::;;@@AABBCC==>>??@@<<;;::99ddccbbaazz{{||}}RRSSTTUU**++,,-- ""##$$%%wwxxyyzzOOPPQQRR''(())****))((''RRQQPPOODDCCBBAAMMLLKKJJuuttssrrddeeffgg<<==>>??DDEEFFGGAABBCCDD 88776655``__^^]]~~VVWWXXYY..//0011 &&''(()){{||}}~~SSTTUUVV++,,--..&&%%$$##NNMMLLKK@@??>>==IIHHGGFFqqppoonnhhiijjkk@@AABBCCHHIIJJKKEEFFGGHH - - 44332211\\[[ZZYY~~}}~~}}||ZZ[[\\]]22334455 - - **++,,--WWXXYYZZ//001122 - -""!! JJIIHHGG77665544EEDDCCBBmmllkkjjllmmnnooDDEEFFGGLLMMNNOOIIJJKKLL!!""##$$00//..--XXWWVVUU~~}}||{{zzyy{{zzyyxx^^__``aa66778899..//0011[[\\]]^^33445566 FFEEDDCC33221100AA@@??>>iihhggffppqqrrssHHIIJJKKPPQQWWXXMMNNOOPP%%&&''((,,++**))TTSSRRQQ||{{zzyyxxwwvvuuwwvvuuttbbccddee::;;<<==##22334455__``aabb778899::BBAA@@??//..--,,==<<;;::eeddccbbttuuvvwwLLMMNNOOYYZZ[[\\QQRRSSTT))**++,,((''&&%%PPOONNMMxxwwvvuuttssrrqqssrrqqppffgghhii>>??@@AA$$%%&&''66778899ccddeeff;;<<==>>>>==<<;;++**))((99887766aa``__^^xxyyzz{{PPQQRRSS]]^^__``UUVVWWXX--..//00$$##""!!LLKKJJIIttssrrqqkkjjiihhoonnmmlljjkkllmmBBCCDDEE(())**++::;;<<==gghhiijj??@@AABB::998877''&&%%$$55443322]]\\[[ZZ||}}~~TTUUVVWWaabbccddYYZZ[[\\11223344 - - HHGGFFEEppoonnmmggffeeddkkjjiihhnnooppqqFFGGHHII !!,,--..//>>??@@AAkkllmmnnCCDDEEFF 66554433##1100//..YYXXWWVV~~XXYYZZ[[eeffgghh]]^^__``55667788 DDCCBBAAllkkjjiiccbbaa``ggffeeddrrssttuuJJKKLLMM""##$$%%00112233BBCCDDEEooppqqrrGGHHIIJJ !!"" - - 221100//--,,++**UUTTSSRR}}||{{zz\\]]^^__iijjkkqqaabbccdd99::;;<<@@??>>==hhggffee__^^]]\\ccbbaa``vvwwxxyyNNOOPPQQ&&''(())44556677FFGGHHIIssttuuvvKKLLMMNN##$$%%&&..--,,++))((''&&QQPPOONNyyxxwwvv``aabbccrrssttuueeffgghh==>>??@@<<;;::99ddccbbaa[[ZZYYXX__^^]]\\zz{{||}}RRSSTTUU**++,,--==>>??@@JJKKLLMMwwxxyyzzOOPPQQRR''(())****))((''%%$$##""MMLLKKJJuuttssrrddeeffggvvwwxxyyiijjkkllAABBCCDD 88776655``__^^]]WWQQPPOO[[ZZYYXX~~VVWWXXYY..//0011AABBCCDDNNOOPPQQ{{||}}~~SSTTUUVV++,,--..&&%%$$## !! IIHHGGFFqqppoonnhhiijjkkzz{{||}}mmnnooppEEFFGGHH - - 44332211\\[[ZZYYNNMMLLKKWWVVUUTT~~}}||ZZ[[\\]]22334455EEFFGGHHRRSSTTUUWWXXYYZZ//001122 - -""!!  - - EEDDCCBBmmllkkjjllmmnnoo~~qqrrssttIIJJKKLL!!""##$$00//..--XXWWVVUUJJIIHHGGSSRRQQPP{{zzyyxx^^__``aa66778899IIJJKKLLVVWWXXYY[[\\]]^^33445566 AA@@??>>iihhggffppqqrrssuuvvwwxxMMNNOOPP%%&&''((,,++**))TTSSRRQQFFEEDDCCOONNMMLLwwvvuuttbbccddee::;;<<==MMNNOOPPZZ[[\\]]__``aabb778899::==<<;;::eeddccbbttuuvvwwyyzz{{||QQRRSSTT))**++,,((''&&%%PPOONNMMBBAA@@??KKJJIIHHssrrqqppffgghhii>>??@@AAQQWWXXYY^^__``aaccddeeff;;<<==>> - - 99887766aa``__^^xxyyzz{{}}~~UUVVWWXX--..//00$$##""!!LLKKJJII>>==7766GGFFEEDDoonnmmlljjkkllmmBBCCDDEEZZ[[\\]]bbccddee~~}}||{{gghhiijj??@@AABB  - -55443322]]\\[[ZZ||}}~~YYZZ[[\\11223344 - - HHGGFFEE55443322CCBBAA@@kkjjiihhnnooppqqFFGGHHII^^__``aaffgghhiizzyyxxwwkkllmmnnCCDDEEFF  1100//..YYXXWWVV~~]]^^__``55667788 DDCCBBAA1100//..??>>==<>==--,,++**;;::9988ccbbaa``vvwwxxyyNNOOPPQQffgghhiinnooppqqrrqqponmssttuuvvKKLLMMNN##$$%%&&))((''&&QQPPOONNyyxxwwvveeffgghh==>>??@@<<;;::99))((''&&77665544__^^]]\\zz{{||}}RRSSTTUUjjkkqqrrrrssttuulkkjjiihwwxxyyzzOOPPQQRR''(())** !"#%%$$##""MMLLKKJJuuttssrriijjkkllAABBCCDD 88776655%%$$##33221100[[ZZYYXX~~VVWWXXYYssttuuvvvvwwxxyyhggffeed{{||}}~~SSTTUUVV++,,--.. - -#$$%%&&' - - !! IIHHGGFFqqppoonnmmnnooppEEFFGGHH - - 44332211//..--,,WWVVUUTT~~}}||ZZ[[\\]]wwxxyyzzzz{{||}}dccbbaa`WWXXYYZZ//001122 '(())**+ EEDDCCBBmmllkkjjqqrrssttIIJJKKLL!!""##$$00//..--++**))((SSRRQQPP{{zzyyxx^^__``aa{{||}}~~~~`__^^]]\~~}}||{{[[\\]]^^33445566+,,--../AA@@??>>iihhggffuuvvwwxxMMNNOOPP%%&&''((,,++**))''&&%%$$OONNMMLLwwvvuuttbbccddee\[[ZZYYXzzyyxxww__``aabb778899::/0011223==<<;;::eeddccbbyyzz{{||QQRRSSTT))**++,,((''&&%% ##""!! KKJJIIHHssrrqqppffgghhiiXWWVUTSRvvuuttssccddeeff;;<<==>>3445566799887766aa``__^^}}~~UUVVWWXX--..//00$$##""!! - - GGFFEEDDoonnmmlljjkkllmmQQPPOONNrrqqppoogghhiijj??@@AABB##789:;<== - -55443322]]\\[[ZZYYZZ[[\\11223344 - - CCBBAA@@kkjjiihhnnooppqqMMLLKKJJnnmmllkkkkllmmnnCCDDEEFF$$%%&&''>>??@@AA !!""## 1100//..YYXXWWVV~~]]^^__``55667788 ??>>==<>??@@  77665544__^^]]\\zz{{||}}bdQZ|vpfv`fp˂rH~ftlJp˂rfHfr˂pnXv`drtAJ˂pZpvndrtAJvpfHdrtAH~f~HfpbdQZ|`vXntArdXQJ`ے`vXnZHAbpvnltbHAbےXv`fltb~f`Jlt`vXnvnXdrtAvpf|ZdQbbHAZvpfے`JXQrXQJ`dQZ|`JXQr~HfdQZ|vXnbdQZ|vpfv`f~JltH~ftlJp˂rH~fr˂pAZp˂drtAJ˂pZpvndrtAJvpfHdrtAH~ffvnbdQZ|`vXntArdXQJ`ے`vXnZHAbrXQJltbHAbےXv`fltb~f`Jlt`vXnXv`fdrtAvpf|ZdQbbHAZvpfے`JXQ`ےbdQZ|`JXQr~HfdQZ|vXnrbdQZ|r˂p~HfJltH~ftlJp˂rH~fr˂pHAZp˂dtAJl˂pZpvndrtAJ˂pZdrtA`JXQrpvnbdQZ|`vXntArdXQJ`ے`vXnZHAےrXQJtbnHAbےXv`fltbHAbےJlt˂pZXv`fdrtAvpf|ZdQbbHAZvpf`JXQr`ےbAvpf`JXQr~HfdQZ|`JXQrbdQZ|HAbے~HfJltH~ftlJp˂rH~fbtlZrXHf`˂pZpvndrtAJ˂pZdrtA`JXQrvnXv`bdQZ|`vXntArdXQJ`ے`vXn|ZdQbQJ`ےvXnHAbےXv`fltbHAbےJlt˂pZf~HdrtAr˂p|ZdQbbHAZvpftlJbHAZpvpfH`JXQr~HfdQZ|`JXQrbdQZ|HAXQrfpvJltZHAbtlJp˂rH~ftArd˂rX~f`˂pZpvndrtAJ˂pZdrtA˂pZHAnXv`bdQZ|ے`JXQtArdXQJ`ے`vXn|ZdQbQJ`ےvXnHAbےXv`fltbHAbےJltbے`f~HdrtAr˂p|ZdQbbHAZvpftlJbHAZvpfH`JXQr~HfdQZ|`JXQrbdQZ|JXQrfpvnJltZHAbtlJp˂rH~ftAdQbtrXQJ`~f`˂pZpvndrtAJ˂pZdrtA˂pZHAv`fbdQZ|ے`JXQtArdXQJ`ے`vXnlJtAےbHAvXnHAے`Xv`fltbHAbےJltb˂~HfpdrtAr˂p|ZdQbbHAZvpfrd|Zp˂vpfHJXQrb~HfdQZ|`JXQrbdQZ|pZHAbvnXJltZHAbtlJp˂rH~fZdQbtrXQJ`~f`tlJpvndrtAJ˂pZdrtAے`Jv`fbdQZ|ے`JXQtArdXQJ`ے`vXnlJtAےbHAvXntAd|Xv`fltbHAbےJltXQr˂~HfpdrtAr˂p|ZdQbbHAZvpfrdtZprQvpfHZdQbt~HfdQZ|`JXQrbdQZ|pZHAbvnvJltZHAbnXv`p˂rH~flJtArJ`ے~f`lJtApvndrtAJ˂pZdrtAے`pf~HbdQZ|ے`JXQf~HXQJ`ے`vXnd|ZbHAZpvXnrd|Xv`fltbHAbےJltZHAbfpvdrtAr˂pfpvbHAZvpfdQbt璂rXQvpfHZdQbt~HfdQZ|`JXQrbdQZ|ے`JXQnXv`JltZHAbnXv`p˂rH~flJtArJ`ے~f`lJtApvndrtAJ˂pZdrtAr˂pf~HbdQZ|ے`JXQf~HXQJ`ے`vXnd|lbHAZpvXnrd|Xv`fltbHAbےJltZHAbfpvdrtAr˂pfpvbHAZvpfJtArdrQJvpfHZdQbtHfpdQZ|`JXQrbdQZ|ے`JXQnXvf~JltZHAbnXv`p˂rH~f|ZdQbHAZ~f`lJtAvnrdrtAJ˂pZdrtAHAbےHfpvbdQZ|ے`JXQf~HXQJ`ے`vXnbtlp˂rvXnrd|XQJ`ےltbHAbےJlt`JXQrnXvdrtAr˂pfpvbHAZvpfJtArdXQJ`ےvpfHZdQbtHAZpdQZ|`JXQrbdQZ|˂pZ`f~JltZHAbnXv`p˂rH~f|ZdQbHAZ~f`lJtA˂rXQdrtAJ˂pZdrtAHAbےHfpvbdQZ|ے`JXQf~HbdQZ|`vXntArdp˂rvXnrd|J`ےltbHAbےJlt`JXQrnXvdrtAr˂pfpvdrtAvpf|ZdQbXQJbHvpfHZdQbtbHAZpdQZ|`JXQrbdQZ|ے``frQJltZHAbnXv`JltH~ftlJAZp˂~f`lJtA˂rXQdrtAJ˂pZdrtAJXQrJHAZbdQZ|ے`JXQf~HbdQZ|`vXntArdrXQJ`vXnrd|J`ےltbHAbےJlt˂pZHAp˂rdrtAr˂pfpvdrtAvpf|ZdQbےbHvpfHZdQbtbHAZpdQZ|`JXQrbdQZ|bے`XQJ`ےJltZHAbnXv`JltH~ftd|AZp˂~f`lJtA˂rXQdtAJl˂pZdrtAJXQrbHAZbdQZ|ے`JXQf~HbdQZ|`vXnZdQbtrXQJ`vXnrd|J`ےtbnHAbےJlt˂p|Zp˂rdrtAr˂pfpvdrtAvpflJtAbAZpvpfHZdQbtbHAZpvpf`JXQrbdQZ|dQbtXQJ`ےJltZHAbnXv`JltH~frd|˂rb~f`lJtA˂rXQHf`˂pZ`vXnlJtArbHAZbdQZ|ے`JXQf~HbdQZ|`vXnZdQbtdQZ|vXnrd|J`ےvXnHAbےvpfd|Zp˂rdtAJr˂pfpvdrtAr˂pl|ZdrtAJvpfHZdQbtbHAZpvpfH`JXQrH~fdQbtXQJ`ےltbZHAbnXv`JltZHAbdQbnXltb~f`lJtA˂rXQ~f`˂pZZdQbt`vXnlJtAdQbHAZnvpے`JXQf~HbdQZ|ے`JXQv`pvdQZ|vXnrd|J`ےvXnHAbےlJtAvpfbtlp˂rfHfr˂pfpvdrtAr˂pnXvdrtAJvpfHZdQbtbHAZpvpfH`JXQrrd|H~fJtArdXQJ`ے`vXnZHAbnXv`JltZHAb`f~ltb~f`lJtA˂rXQ~f`˂pZZdQbt`vXn|ZdQbHAZvpfے`JXQf~HbdQZ|ے`JXQHfpvdQZ|vXnrd|J`ےvXnHAے`lJtAvpfbtlp˂rH~fr˂pfpvdrtAr˂pnXvdrtAJvpfHZdQbtbHAZpvpfHJXQrbrd|H~fJtArdXQJ`ے`vXnZHAbnXv`JltZHAb`fltb~f`lJtA˂rXQ~f`tlJZdQbt`vXntlJbHAZvpfے`JXQf~HbdQZ|ے`JXQnXv`dQZ|vXnrrd|J`ےvXntAd|lJtAvpftArdp˂rH~fr˂pfpvdrtAr˂pf~HdrtAJ˂pZZdQbtbHAZpvpfHZdQbtrd|H~f|ZdQbXQJ`ے`vXnZHAےnXv`JltZHAbfpvltbHAbےlJtA˂rXQ~f`lJtAZdQbt`vXntlJbHAZvpf`JXQrf~HbdQZ|ے`JXQnXv`dQZ|`JXQrrd|J`ےvXnrd|lJtAvpftArdp˂rH~fbtlfpvdrtAr˂pf~HdrtAJ˂pZZdQbtbHAZpvpfHZdQbtrd|H~f|lJtAXQJ`ے`vXnJtAdnXv`JltZHAbXv`fltbHAbےlJtA˂rXQ~f`lJtAZdQbt`vXnrd|bHAZvpf|ZdQbf~HbdQZ|ے`JXQ~HfdQZ|`JXQrrd|J`ےvXnrd|lJtAvpfZdQbtp˂rH~ftlJfpvdrtAr˂ppvndrtAJ˂pZZdQbtbHAZpvpfHZdQbtrd|H~flJtAXQJ`ے`vXntArdnXv`JltZHAbXv`fltbHAbےlJtA˂rXQ~f`lJtAZdQbn`vXnrd|bHAZvpf|ZdQbf~HbdQZ|ے`JXQ~HfdQZ|`JXQrrd|J`ےvXnrd|Xv`pvpfZdQtArp˂rH~ftlJfpvdrtAr˂pp`fdrtAJ˂pZZdQbnbHAZpvpfHZdQbtvnXH~fd|ZXQJ`ے`vXntArdnXv`JltZHAb~HfpltbHAbےXv`f˂rXQ~f`lJtAv`f`vXndQbt璐bHAZvpf|ZdQbfHfbdQZ|ے`JXQvnXdQZ|`JXQr~HfJ`ےvXnrd|~HfpvpflJtArp˂rH~ftlJpvndrtAr˂pv`fdrtAJ˂pZpvnbHAZpvpfHZdQbtvnXH~fd|ZXQJ`ے`vXntArdrXQJ`JltZHAb~HfpltbHAbےXv`f˂rXQ~f`lJtAv`f`vXndQbtdbHAZvpf|ZdQbےHAZbdQZ|ے`JXQv~dQZ|`JXQr~HfJ`ےvXnrd|nXvvpf|ZdQp˂rH~ftlJp˂rdrtAr˂pHfpvdrtAJ˂pZpvnbHAZpvpfHZdQbt`f~H~fbtlXQJ`ے`vXntArdXQJ`ےJltZHAbnXvltbHAbےXv`f˂rXQ~f`lJtAHfpv`vXnJtArdbHAZvpf|ZdQbbHAZbdQZ|ے`JXQ`f~dQZ|`JXQr~HfJ`ےvXnrd|nXvvpf|ZdQp˂rH~ftlJp˂rdrtAr˂pHfpvdrtAJ˂pZpvnbHAZpvpfHZdQbt`f~H~fbtlXQJ`ے`vXntArdXQJ`ےJltZHAbnXHltbHAbےXv`f˂rb~f`lJtAHXv``vXn|ZdQbbHAZvpf|ZdQbbHAZbdQZ|ے`JXQfpvdQZ|`JXQr~HfdQZ|vXnrd|f~HvpfnXv`p˂rH~ftlJp˂rdtAJr˂pnXv`drtAJ˂pZpvndrtAJvpfHZdQbtfpvH~ff~fpXQJ`ے`vXntArdXQJ`ےltbZHAbf~HltbHAbےXv`fltb~f`lJtAnXv``vXnvnXbHAZvpf|ZdQbbHAZnvpے`JXQfpvdQZ|`JXQr~HfdQZ|vXnrd|f~Hfp`ftAJlJXQr~Hfp`ےbXnvd|ZrXQJ`vpfH|ZdQ`ےHAtbdQZے`J`f~drtAے`JXQf~HXQJ`ے`vXntArdXQJ`ےJltlJtArXv`fltbHAbےXv`f˂rb~f`vˍpf~HftbQZd˂pZHAvnXHAZp˂pfH~dQbtےbHA~f`btlZp˂|drXQr˂HfpvJltr˂pfpvbHAZvpf|ZdQbbHAZbdQZ|d|ZHfpdQZ|`JXQr~HfdQZ|vXnH~ㅐfpvnrtAJlbے`v`frbdQf`vlJtArXQJ`ےvnvpJtArdrXQJ`tAJlpZHAbnXvbdQZ|ZHAbnXv`p˂rH~ftlJp˂rdtAJdQbtvnrdrtAJ˂pZpvndrtAJvpfH`vXnXv`ftbdJXQr~HfpZ|dXnvd|ZbHAZfH~|ZdQےbHAtbdQZے`J`f~dtbJQrf~HXQJ`ے`vXntArdXQJ`ےltblJtArXQJ`ےltbHAbےXv`fltb~f`vˍpf~HfQZ|d˂pZHAvnXrtAJlpfH~dQbtp˂rf`vXbtlZp˂|drXQr˂HfpvdQZ|pZHAfpvbHAZvpf|ZdQbbHAZnvpZdQbtHAZpdQZ|`JXQr~HfdQZ|vXnH~ㅐfpvrtAJlbے`v`ftbdQf`vlJtArXQJ`ےnvpJtArdrXQJ`tAJlpZHAbnXvdrtAJbے`nXv`p˂rH~ftlJp˂r`vXnlJt˂rXQdrtAJ˂pZpvndrtAJvpfH`vXn~HfptbdJXQr~HfpZ|dXnvd|ZbHAZfH~|ZdQےbHAtbdQZے`J`f~ltbJXQrf~HbdQZ|`vXntArdXQJ`ےvpfArd|J`ےltbHAbےXv`fltb~f`vˍpfvnXQZrtA˂pZHAvnXrtAJlpfH~dQbtp`ےf`vXnbtlZp˂|dtAXQr˂HfpvdQZ|pZHAfpvdrtAvpf|ZdQbbHAZH~fZdQbtbHAZpdQZ|`JXQr~HfdQZ|vXnH~ㅐfv`fJltbے`v`ftbdQf`vlJtArbHAZpvfH~JtArdrXQJ`JltpZHAbnXvdrtAdQbے`JnXv`JltH~ftlJp˂r`vXnlJt˂rXQdrtAJ˂pZpvndrtAJvpfH`vXn~HfpbdQZ|JXQr~HfpZ|dXnvd|Z˂rXQf`v|ZdQےbHAbnvے`J`f~Z|dQrpZf~HbdQZ|`vXntArdXQJ`ےvpfArdZJ`ےltbHAbےXv`fltb~f`vˍpfvnXdrtA˂pZHAvnXrtAJlpfH~dQbtJ`ےXnvbtlZp˂pfHXQr˂HfpvrtAJlHAbےfpvdrtAvpf|ZdQbbHAZHXnQbtlbHAZpdQZ|`JXQr~HfdQZ|vXnےH~ㅐfHfpvJltbے`v`ftbdQf`vlJtArbHAZppfH~JtArdrXQJ`f`vXpZHAbnXvtbdQ`JXQrnXv`JltH~ftlJp˂rvpfHJtArd˂rXQdtAJl˂pZpvndrtAJ`JXQr`vXnnXvbdQZ|JXQr~HfpZ|dXnrd|Z˂bf`v|ZdQےbHAnvpے`J`f~Z|d˂pZf~HbdQZ|`vXntArdXQJ`ے~f`|ZdQJ`ےtbnHAbےXv`fltb˂pZvˍpf`f~AJl˂pZHAvnXrtAJl˂pZHAdQbtHAZp˂XnvbtlZp˂fH~XQr˂HfpvrtAJlHAbےfpvdrtAvpf|ZdQbbHAZvXnbtlbHAZpvpf`JXQr~HfdQZ|HAbےH~ㅐfHfpvtbnbے`v`ftbdQbے`lJtArrXQJf~f`JtArdrXQJ`f`vXpZHAbnXv|dr`JXQrnXv`JltH~ftlJp˂rvpfHJtArd˂rXQHf`˂pZpvndrtAJ`JXQr`vXnnXvvpfHJXQr~HfpZ|dJXQrd|Z`ےbvXn|ZdQےbHAnvpے`J`f~tAJl璂ZHAbf~HbdQZ|`vXntArdXQJ`ے~v|ZQbJ`ےvXnHAbےXv`fltb˂pZvˍpf`pvf`v˂pZHAvnXrtAJl˂pZHAdQbtHAZp˂vpfHbtlZp˂fH~XQr˂HfpvtbdQZے`JXfpvdrtAr˂p|ZdQbbHAZpfH~lJtAbHAZpvpfH`JXQr~HfdQZ|HAXQrH~ㅐfnrXQJXnvbے`v`ftbdQbے`lJtArrXQHA~f`JtArdrXQJ`f`vXpZHAnXv|drQr˂pnXv`JltZHAbtlJp˂rf`vrd|˂rXQ~f`˂pZpvndrtAJ˂pZHA`vXn`p˂pfH~JXQr~HfpZ|dJXQrd|ZZp˂vXn|ZdQےbHAnvpے`JXQ`f~tAJl璑ZHAbf~HbdQZ|ے`JXQtArdXQJ`ےXnvZdQbtJ`ےvXnHAbےXv`fltbbے`vˍpfrXQJ`f`v˂pZHAvnXrtAJl˂pZHAdQbtrXQJ`vpf~btlZp˂fH~rbtHfpvtdrtAے`JXfpvdrtAr˂p|ZdQbbHAZpfH~lJtAbHAZpvpfH`JXQr~HfdQZ|JXQrH~ㅐfےbHAXnvbے`v`ftbdQbے`lJtArےbHAf`vXJtArdrXQJ`f`vXlJtAdnXvJltQrZnXv`JltZHAbtlJp˂rf`prd|˂rXQ~f`˂pZpvndrtAJ˂pZHA`vXnZp˂pfH~JXQr~HfpZ|dJXQrd|ZZp˂nr˂|ZdQےbHAnvp|ZdQ`f~bdQZ|Abے`f~HbdQZ|ے`JXQtArdXQJ`ےfH~ZdQbJJ`ےvXnHAے`Xv`fltbb˂vˍpfrXQJ`f`v˂pZHAvnXrtAJl˂pZHAdQbnXrXQJ`pZHAbbtlZp˂fH~btlHfpvdrtAJXQrfpvdrtAr˂p|ZdQbbHAZf`vXtArdbHAZpvpfHJXQrb~HfdQZ|pZHAbH~ㅐfےrXnvے`Jv`ftbdQbے`v`fp˂rے`JJtArdrXQJ`f`vXJtArdnXvJlt˂pZHAnXv`JltZHAbtlJp˂rnvp|ZdQb˂rXQ~f`tlJpvndrtAJے`J`vXnXQJ`ےpfH~XQrbt~HfpZ|dJXQr~HfpbdQZ|XQr˂|ZdQےbHAnvp|ZdQ`f~bdQtAJbے`f~HbdQZ|ے`JXQtArdXQJ`ےfH~tlJJ`ےvXntAd|Xv`fltbXQr˂vˍpfbHAZf`vlJtAvnXrtAJl˂pZHAvnXltbpZHAbbtlZp˂fH~btlHfpvltbJXQrfpvdrtAr˂p|ZdQbbHAZf`vXtArdbHAZpvpfHZdQbt~HfdQZ|pZHAbH~ㅐfp˂rXnvd|Zv`ftbdQbے`v`fdQZ|ے`JJtArdrXQJ`f`vXJtArdnXvdQZ|˂pZAnXv`JltZHAbnXv`p˂rH~f|ZdQb˂rXQ~f`lJtApvndrtAJے`p`vXnXQJ`ےpfH~dQbt~HfpZ|dJXQr~HfpdrtAJXQr˂|ZdQےbHAnvp|ZdQ`fHdrtAJ`JXQrf~HbdQZ|ے`JXQf~HXQJ`ے`vXntJArdJ`ےvXnrd|Xv`fltbZHAbvˍpfbHAXQf`vlJtArvnXrtAJl˂pZHAvnXltbpZHAbbtlZp˂fH~btlfpvltbbtlfpvdrtAr˂pfpvbHAZvpf|ZdbHAZpvpfHZdQbt~HfdQZ|ے`JXQH~ㅐfJ`ےXnvd|Zv`ftbdQbے`v`fdQZ|ے`JJtArdrXQJ`f`vXJtArdnrXQJdQZ|lJtAdnXv`JltZHAbnXv`p˂rH~fQbtl˂rXQ~f`lJtApvndrtAJr˂p`vXnbHAZppfH~dQbt~HfpZ|dJXQr~HfpdtbdQXQr˂|ZdQےbHAnvp|ZdQ`ےHAtbn|ZdQbf~HbdQZ|ے`JXQf~HXQJ`ے`vXnJtArdJ`ےvXnrd|Xv`fltbZHAbvˍpf˂rXQf`vlJtArvnXrtAJl˂pZHAvnXZ|dpZHAbbnXvZp˂fH~btlZp˂vp`tlJfpvdrtAr˂pfpvbHAZf`|ZdbHAZpvpfHZdQbtHfpdQZ|ے`JXQH~ㅐfJ`ےXnvd|Zv`ftbdQbے`v`frtAJlے`J`f~rXQJ`f`vXJtArdrXQJ`vXntArdnXv`JltZHAbnXv`p˂rvXnQbtl˂rXQ~f`lJtAvnrdrtAJHAbے`vXnbHAZppfH~dQbtHfpvZ|dJXQr~HfptbdQXQr˂HfpvےbHAnvp|ZdQےbHAvpfH|ZdQbf~HbdQZ|ے`JXQf~HXQJ`ےvpfHJAr|J`ےvXnrd|XQJ`ےltb`JXQrvˍpf`ےbf`vlJtArnrXQrtAJl˂pZHAvnXZ|dpZHAbnXvZp˂fH~btlZp˂~f`tlJfpvdrtAr˂pfpvbHAZ~f`ZdQbnbHAZpvpfHZdQbtHAZpdQZ|˂pZH~ㅐfHAZp˂Xnvd|ZJ`ےtbdQbے`v`frtAdQZے`J`f~rXQJ`f`vXJtArdrXQJ`vXntArdnXv`JltZHAbnXv`p˂rvXnXv`f˂rXQ~f`lJtA˂rXQdrtAJHAbے`vXnrXQJpfH~dQbtHAZp˂Z|dJXQr~Hfp|drXQr˂HfpvےbHAnvp|ZdQےbHAvpfH|ZdQbfHfbdQZ|ے`JXQf~HbdQZ|vp`v~HfJ`ےvXnrd|J`ےltb`JXQrvˍp|`ےbf`vlJtArrXQJrtAJl˂pZHAvnXtAJlpZHAbnXvZp˂fH~btlZp˂XnvtlJpvndrtAr˂pfpvdrtAXnrpvnbHAZpvpfHZdQbtbHAZpdQZ|ے`drQtHAZp˂Xnvd|Z`ےbtbdQbے`v`ftbdQZے`J`f~rXQJ`f`vXJtArdrXQJ`pfH~tArdrXQJ`JltZHAbnXv`Jlt˂p`JXv`f˂rXQ~f`lJtA˂rXQdrtAJJXQrJltbHApfH~dQbtHAZp˂Z|dJXQr~Hfp|drXQr˂HfpvےbHAnvp|ZdQےbHAf`v|ZdQbےHAZbdQZ|ے`JXQf~HbdQZ|XQr˂~HfJ`ےvXnrd|J`ےltb˂pZHAbAdZ|Zp˂f`vlJtArrXQJrtAJl˂pZHAvnXtAJl|pZHAbnXvZp˂fH~btlZp˂XnvtlJp˂rdrtAr˂pfpvdrtApZHAbpvnbHAZpvpfHZdQbtbHAZpdQZ|bے`drQtrXQJ`Xnvd|Z`ےbtbdQbے`v`fdrtAے`J`f~rbdQZf`vXJtArdrXQJ`pfH~tArdXQJ`ےJltZHAbnXv`Jltے`JXv`f˂rXQ~f`lJtA˂rXQdtAJlJXQrJltےbHApfH~dQbtHAZp˂Z|dJXQr~HfpJltXQr˂Hfpv|drnvp|ZdQےbHAvp|ZdQbbHAZbdQZ|ے`JXQf~HbdQZ|XQr˂~HfJ`ےvXnrd|J`ےtbn˂p`ZbAdZ|Zp˂f`vlJtArrXQJtAJl˂pZHAvnXbdQZ|pZHAbnXvtAJlfH~btlZp˂fH~tlJp˂rdrtAr˂pfpvdrtApZHAXQpvnbHAZpvpfHZdQbtbHAZpvpfQXb㉀ۂdrQtrXQHAZXnvd|Z`ےbtbnbے`v`fdrtAے`J`f~tbdQZf`vXJtArdrXQJ`f`vXtArdXQJ`ےJltZHAbnXv`Jltr˂pXv`f˂rb~f`lJtA˂rXQHf`pJAHrJltp˂rpfH~dQbtHAZp˂vpfHJXQr~HfpJltXQr˂Hfpv|drnvp|ZdQےbHAnvp|ZdQbbHAZbdQZ|ے`JXQf~HbdQZ|ZHAb~HfdQZ|vXnrd|J`ےvXnˁ`ZbAdZ|XQJ`ےf`vlJtArrXQJf`v˂pZHAvnXdrtAJpZHAbnXvtAJlfH~btlZp˂fH~tlJp˂rdtAJr˂pfpvdrtAے`JXQpvndrtAJvpfHZdQbtbHAZpvpfHQXb㉀ۂdrQtbHAZXnvd|Z`ےbXnvbے`v`fltbے`J`f~tbdQZf`vXJtArdrXQJ`f`pftArdXQJ`ےltbZHAbnXv`Jltr˂pXv`fltb~f`lJtA˂rXQ~f`pJAHQXJltp˂rpfH~dQbtHAZp˂pfH~JXQr~HfpdQZ|XQr˂Hfpv|drnvp|ZdQےbHAH~f|ZdQbbHAZnvpے`JXQf~HbdQZ|ZHAb~HfdQZ|vXnrd|J`ےvXnb㉀ۑpbAdZ|XQJ`pf`vlJtArrXQJf`v˂pZHAvnXdrtAJpZHAbnXvtAJlfH~btlZp˂`vXntlJp˂rfHfr˂pfpvdrtA˂pZpvndrtAJvpfHZdQbtbHAZpvpfHJAHr󙐂drQt˂rbXnvd|Z`ےbXnvbے`v`fltbے`J`f~tbdQZf`vXJtArdrXQJ`vpftArdXQJ`ے`vXnZHAbnXv`JltHAbےXv`fltb~f`lJtA˂rXQ~f`ˁ`ZQXJltdQZ|pfH~dQbtHAZp˂pfH~JXQr~HfpdQtAJlXQr˂Hfpv|drnr˂|ZdQےbHAH~f|ZdQbbHAZvpfے`JXQf~HbdQZ|`JXQr~HfdQZ|vXnrd|J`ےvXnb㉀ۑpbAdZ|rAJltf`vlJtArrXQJf`v˂pZHAvnXtbdQpZHAbnXvtAJlpZHAbbtlZp˂`vXHtlJp˂rH~fr˂pfpvdrtA˂pZpvndrtAJvpfHZdQbtbHAZpvpfHJAHr󙐂drQtbdQZ|Xnvd|Z`ےbXnvے`Jv`fZ|dے`J`f~tbdQZے`JJtArdrXQJ`~f`tArdXQJ`ے`vXnZHAbnXv`JltHAbےXv`fltb~f`lJtA˂rXQ~f`ۑpJJltdrtpfH~dQbtHAZp˂pfH~XQrbt~HfprtAJlXQr˂Hfpv|drXQr˂|ZdQےbHAvXn|ZdQbbHAZvpfے`JXQf~HbdQZ|`pZHA~HfdQZ|vXnrrd|J`ےvXnAHr󙐂bAdZ|AJltf`vlJtArrXQJf`vlJtAvnXtbdQpZHAbnXvtAJlpZHAbbtlZp˂vpfHtlJp˂rH~fr˂pfpvdrtAbے`pvndrtAJ˂pZZdQbtbHAZpvpfH`ZQXbdrQtbdQZ|Xnrd|Z`ےbXnvd|Zv`fZ|l璐ے`J`f~tbdQZے`JJtArdrXQJ`~f`tArdXQJ`ے`vXnZHAےnXv`JltJXQrXv`fltbHAbےlJtA˂rXQ~f`ۑpJJltdrAJ˂pZHAdQbtHAZp˂pfH~dQbt~HfptbnXQr˂Hfpv|drXQr˂|ZdQےbHAvXn|ZdQbbHAZvpf`JXQrf~HbdQZ|˂pZHA~HfdQZ|`JXQrrd|J`ےvXnAHr󙐂bAdZ|tbdQbے`lJtArrXQJf`vlJtArvnXvpffpZHAbnXvtAJlpZHAbbtlZp˂f`vtlJp˂rH~fbtlfpvdrtAbے`pvndrtAJ˂pZZdQbtbHAZpvpfH`pJAHdrQtZ|dJXQrd|Z`ےbXnvd|Zv`f`vXnے`J`f~tbdQZے`JJtArdrXQJ`XnvtArdXQJ`ے`vXnJtAdnXv`JltJXQHAbXv`fltbHAbےlJtA˂rXQ~f`r󙐂ˁ`JltrtAJl˂pZHAdQbtHAZp˂pfH~dQbt~HfpvpfXQr˂Hfpv|drXQr˂|ZdQےbHApfH~|ZdQbbHAZvpf|ZdQbf~HbdQZ|ے`J~HfdQZ|`JXQrrd|J`ےvXnZQXb㉀bAdZ|tbdQbے`lJtArrXQJf`vlJtArvnXH~fpZHAnXvtAJlpZHAbbnXvZp˂f`vtlJp˂rH~ftlJfpvdrtAXQr˂pvndrtAJ˂pZZdQbtbHAZpvpfHۑpJAHdrQtZ|dJXQrd|Z`ےbXnvd|Zv`f`vXnے`JXQ`f~tbdQZے`J`f~rXQJ`XnvtArdXQJ`ے`vXntArdnXv`JltpZHAbXv`fltbHAbےlJtA˂rXQ~f`r󙐂ˁ`JltrtAJ˂pZHAdQbtHAZp˂pfH~dQbtHfpvvpfrbtHfpv|drXQr˂HfpvےbHAp`vX|ZdQbbHAZvpf|ZdQbf~HbdQZ|ے`J~HfdQZ|`JXQrrd|J`ےvXnZQXAHrbAdZ|bdQZ|bے`lJtArrXQJf`vlJtArnrXQH~fvXlJtAdnXvtAJlpZHAbnXvZp˂nr˂tlJp˂rH~ftlJfpvdrtAXQrpvndrtAJ˂pZZdQbnbHAZpvpfHˁ`ZdrQtdrtAJXQrd|Z`ےbXnvd|ZJ`p˂nvp|ZdQ`f~tbdQZے`J`f~rXQJ`pZAb`tArdXQJ`ے`vXntArdnXv`Jltے`JXQXv`fltbHAbےXv`f˂rXQ~f`QXb㉀JltJlt˂pZHAdQbnXHAZp˂pfH~dQbt璀rXQJfH~btlHfpv|drXQr˂HfpvےbHAJXQr|ZdQbbHAZvpf|ZdQbfHfbdQZ|r˂p~HfdQZ|`JXQr~HfJ`ےvXnpJAHrbAdZ|bdQZ|bے`v`frXQJf`vlJtAr`ےbf`vXJtArdnXvtAJlpZHAbnXvZp˂˂pZHtlJp˂rH~ftlJpvndrtAZHAbpvndrtAJ˂pZpvnbHAZpvpfHˁ`ZdrQtdrtAJXQr~Hfp`ےbXnvd|ZHAZp˂nvp|ZdQ`f~tbdQZے`J`f~rXQJ`Abے`tArdXQJ`ے`vXntArdrXQJ`Jltے`JXQXv`fltbHAbےXv`f˂rXQ~f`QXb㉀JltJlbQZ˂pZHAvnXHAZp˂pfH~dQbt璀rXQJfH~btlHfpv|drXQr˂HfpvےbHAJXQr|ZdQbbHAZvpf|ZdQbےHAZbdQZ|r˂p~HfdQZ|`JXQr~HfJ`ےvXnˁ`ZQXbAdZ||drbے`v`frXQJf`vlJtAr`ےfvnJtArdnXvtAJlpZHAbnXvZp˂˂pZHnXv`p˂rH~ftlJp˂rdrtA`JXQrpvndrtAJ˂pZpvnbHAZpvpfHb㉀ۑpdrQttAJlJXQr~Hfp`ےbXnvd|ZrXQJ`vpfH|ZdQ`fHtbdQZے`J`f~rbdQZAbJXQf~HXQJ`ے`vXntArdXQJ`ےJltbtlXv`fltbHAbےXv`f˂rXQ~f`JAHrJlttbdQZ˂pZHAvnXHAZp˂pfH~dQbtےbHA~f`btlfpv|drXQr˂Hfpv|ltr˂pfpvbHAZvpf|ZdQbbHAZbdQZ|JA|Z~HfdQZ|`JXQr~HfJ`ےvXnˁ`ZQXbAdZ||drbے`v`frXQJf`vlJtArZp˂vXnJtArdnrXQJtAJlpZHAbnXvbdQZ|ZHAbnXv`p˂rH~ftlJp˂rdrtAdQbtpvndrtAJ˂pZpvnbHAZpvpfHb㉀XndrQt------------------------------------------................................ \ No newline at end of file diff --git a/vendor/endroid/qr-code/assets/data/qrv38_3.dat b/vendor/endroid/qr-code/assets/data/qrv38_3.dat deleted file mode 100755 index 48fce797b..000000000 --- a/vendor/endroid/qr-code/assets/data/qrv38_3.dat +++ /dev/null @@ -1,337 +0,0 @@ -~}~}~}~}zyzyzyzyxwxwxwxwtstststsrqrqrqrqnmnmnmnmjijijijihghghghgdcdcdcdcbabababa~}~}~}~}zyzyzyzyxwxwxwxwtstststsrqrqrqrqnmnmnmnmjijijijihghghghgdcdcdcdcbabababa~}~}~}~}zyzyzyzyxwxwxwxwtstststsrqrqrqrqnmnmnmnmjijijijihghghghgdcdcdcdcbabababa~}~}~}~}zyzyzyzyxwxwxwxwtstststsrqrqrqrqnmnmnmnmjijijijihghghghgdcdcdcdcbabababa~}~}~}~}zyzyzyzyxwxwxwxwtstststsrqrqrqrqnmnmnmnmjijijijihghghghgdcdcdcdcbabababa~}~}~}|{zyzyzyzyxwxwxwxwtstststsrqrqrqrqnmnmnmnmjijijijihghghghgdcdcdcdcbabababa|{|{|{|{zyzyzyzyxwxwxwxwtstststsrqrqrqrqnmnmnmnmjijijijihghghghgdcdcdcdcbabababa|{|{|{|{zyzyzyzyxwxwxwvutstststsrqrqrqrqnmnmnmnmjijijijihghghghgdcdcdcdcbabababa|{|{|{|{zyzyzyzyvuvuvuvutstststsrqrqrqrqnmnmnmnmjijijijihghghghgdcdcdcdcbabababa|{|{|{|{zyzyzyzyvuvuvuvutstststsrqrqrqponmnmnmnmjijijijihghghghgdcdcdcdcbabababa|{|{|{|{zyzyzyzyvuvuvuvutstststspopopoponmnmnmnmjijijijihghghghgdcdcdcdcbabababa|{|{|{|{zyzyzyzyvuvuvuvutstststspopopoponmnmnmnmjijijijihghghghgdcdcdcdcbabababa|{|{|{|{zyzyzyzyvuvuvuvutstststspopopoponmnmnmnmjijijijihghgfefedcdcdcdcbabababa|{|{|{|{zyzyzyzyvuvuvuvutstststspopopoponmnmnmnmjijijijifefefefedcdcdcdcbabababa|{|{|{|{zyzyzyzyvuvuvuvutstststspopopoponmnmnmlkjijijijifefefefedcdcdcdcbaba`_`_|{|{|{|{zyzyzyzyvuvuvuvutstststspopopopolklklkkkjijijijifefefefedcdcdcdc`_`_`_`_|{|{|{|{zyzyzyzyvuvuvuvutstststspopopopokkklklkljijijijifefefefedcdcdcdc`_`_`_`_|{|{|{|{zyzyzyzyvuvuvuvutstststspopopopoklklklkljijijijifefefefedcdcdcdc`_`_`_`_|{|{|{|{zyzyzyzyvuvuvuvutstststspopopopoklklklkljijijijifefefefedcdcdcdc`_`_`_`_|{|{|{|{zyzyzyzyvuvuvuvutstststspopopopoklklklkljijijijifefefefedcdcdcdc`_`_`_`_|{|{|{|{zyzyzyzyvuvuvuvutstststspopopopoklklklkljijijijifefefefedcdcdcdc`_`_`_`_|{|{|{|{zyzyzyzyvuvuvuvutstststspopopopoklklkkkkjijijijifefefefedcdcdcdc`_`_`_`_|{|{|{|{zyzyzyzyvuvuvuvutstststspopopopokklklklkjijijijifefefefedcdcdcdc`_`_`_`_|{|{|{|{zyzyzyzyvuvuvuvutstststspopopopolklklklkjijijijifefefefedcdcdcdc`_`_`_`_|{|{|{|{zyzyzyzyvuvuvuvutstststspopopopolklklklkjijijijifefefefedcdcdcdc`_`_`_`_~}|{|{|{|{zyzyzyzyvuvuvuvutstststspopopopolklklklkjijijijifefefefedcdcdcdc`_`_`_`_~}~}~}~}|{|{|{|{zyzyzyzyvuvuvuvutstststspopopopolklklklkjijijijifefefefedcdcdcdc`_`_`_`_~}~}~}~}|{|{|{|{zyzyzyxwvuvuvuvutstststspopopopolklkkkkkjijijijifefefefedcdcdcdc`_`_`_`_~}~}~}~}|{|{|{|{xwxwxwxwvuvuvuvutstststspopopopoklklklkljijijijifefefefedcdcdcdc`_`_`_`_~}~}~}~}|{|{|{|{xwxwxwxwvuvuvuvutststsrqpopopopoklklklkljijijijifefefefedcdcdcdc`_`_`_`_~}~}~}~}|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqpopopopoklklklkljijijijifefefefedcdcdcdc`_`_`_`_~}~}~}~}|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqpopopopoklklklkljijijijifefefefedcdcdcdc`_`_`_`_~}~}~}~}|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqpopopopoklklklkljijihghgfefefefedcdcdcdc`_`_`_`_~}~}~}~}|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqpopopopoklkkkkkkhghghghgfefefefedcdcdcdc`_`_`_`_~}~}~}~}|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqpopopopolklklklkhghghghgfefefefedcdcbaba`_`_`_`_~}~}~}~}|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqpopopopolklklklkhghghghgfefefefebabababa`_`_`_`_~}~}~}~}|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqpopopopolklklklkhghghghgfefefefebabababa`_`_`_`_~}~}~}~}|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqpopopopolklklklkhghghghgfefefefebabababa`_`_`_`_~}~}~}~}|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqpopopopolklklklkhghghghgfefefefebabababa`_`_`_`_~}~}~}~}|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqpopopopolkkkkkklhghghghgfefefefebabababa`_`_`_`_~}~}~}~}|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqpopopopoklklklklhghghghgfefefefebabababa`_`_`_`_~}~}~}~}|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqpopopopoklklklklhghghghgfefefefebabababa`_`_`_`_~}~}~}~}|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqpopopopoklklklklhghghghgfefefefebabababa`_`_`_`_~}~}~}~}|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqponmnmnmklklklklhghghghgfefefefebabababa`_`_`_`_~}~}~}~}|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqnmnmnmnmklklklklhghghghgfefefefebabababa`_`_`_`_~}~}~}~}|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqnmnmnmnmkkkkkklkhghghghgfefefefebabababa`_`_`_`_~}~}~}~}|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqnmnmnmnmlklklklkhghghghgfefefefebabababa`_`_`_`_~}~}~}~}|{|{|{zyxwxwxwxwvuvuvuvurqrqrqrqnmnmnmnmlklklklkhghghghgfefefefebabababa`_`_`_`_~}~}~}~}zyzyzyzyxwxwxwxwvuvuvuvurqrqrqrqnmnmnmnmlklklklkhghghghgfefefefebabababa`_`_`_`_^]^]^]^]~}~}~}~}zyzyzyzyxwxwxwxwvuvuvutsrqrqrqrqnmnmnmnmlklklklkhghghghgfefefefebabababa`_`_`_`_^]^]^]^]~}~}~}~}zyzyzyzyxwxwxwxwtstststsrqrqrqrqnmnmnmnmlklklklkhghghghgfefefefebabababa`_`_`_`_^]^]^]^]~}~}~}~}zyzyzyzyxwxwxwxwtstststsrqrqrqrqnmnmnmnmkkkklklkhghghghgfefefefebabababa`_`_`_`_^]^]^]^]~}~}~}~}zyzyzyzyxwxwxwxwtstststsrqrqrqrqnmnmnmnmlklkjijihghghghgfefefefebabababa`_`_`_`_^]^]^]^]~}~}~}~}zyzyzyzyxwxwxwxwtstststsrqrqrqrqnmnmnmnmjijijijihghghghgfefefefebabababa`_`_`_`_^]^]^]^]~}~}~}~}zyzyzyzyxwxwxwxwtstststsrqrqrqrqnmnmnmnmjijijijihghghghgfefedcdcbabababa`_`_`_`_^]^]^]^]~}~}~}~}zyzyzyzyxwxwxwxwtstststsrqrqrqrqnmnmnmnmjijijijihghghghgdcdcdcdcbabababa`_`_`_`_^]^]^]^]~}~}~}~}zyzyzyzyxwxwxwxwtstststsrqrqrqrqnmnmnmnmjijijijihghghghgdcdcdcdcbabababa`_`_^]^]^]^]^]^]~}~}~}~}zyzyzyzyxwxwxwxwtstststsrqrqrqrqnmnmnmnmjijijijihghghghgdcdcdcdcbabababa^]^]^]^]^]^]^]^]~}~}~}~}zyzyzyzyxwxwxwxwtstststsrqrqrqrqnmnmnmnmjijijijihghghghgdcdcdcdcbabababa^]^]^]^]^]^]^]^]~}~}~}~}zyzyzyzyxwxwxwxwtstststsrqrqrqrqnmnmnmnmjijijijihghghghgdcdcdcdcbabababa^]^]^]^]^]^]^]^]~}~}~}~}zyzyzyzyxwxwxwxwtstststsrqrqrqrqnmnmnmnmjijijijihghghghgdcdcdcdcbabababa^]^]^]^]^]^]^]^]~}~}~}~}zyzyzyzyxwxwxwxwtstststsrqrqrqrqnmnmnmnmjijijijihghghghgdcdcdcdcbabababa^]^]^]^]^]^]^]^]^]^]^]^]\[\[\[\[XWXWXWXWTSTSTSTSQRQRQRQRNMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEBABABABA@?@?@?@?<;<;<;<;7878787865656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#        ^]^]^]^]\[\[\[\[XWXWXWXWTSTSTSTSQRQRQRQRNMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEBABABABA@?@?@?@?<;<;<;<;7878787865656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#        ^]^]^]^]\[\[ZYZYXWXWXWXWTSTSTSTSQRQRQRQRNMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEBABABABA@?@?@?@?<;<;<;<;7878787865656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#        ^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSQRQRQQQQNMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEBABABABA@?@?@?@?<;<;<;<;7777778765656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#        ^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSQQRQRQRQNMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEBABABABA@?@?@?@?<;<;<;<;8787878765656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#        ^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSRQPOPOPONMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEBABABABA@?@?@?@?<;<;<;<;8787878765656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#        ^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSPOPOPOPONMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEBABABABA@?@?@?@?<;<;<;<;8787878765656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#        - ^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSPOPOPOPONMNMNMNMLKJIJIJIHGHGHGHGFEFEFEFEBABABABA@?@?@?@?<;<;<;<;8787878765656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#        - - - - ^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSPOPOPOPONMNMNMNMJIJIJIJIHGHGHGHGFEFEFEFEBABABABA@?@?@?@?<;<;<;<;8787878765656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#        - - - - ^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSPOPOPOPONMNMNMNMJIJIJIJIHGHGHGHGFEDCDCDCBABABABA@?@?@?@?<;<;<;<;7777787865656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#        - - - - ^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSPOPOPOPONMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDCBABABABA@?@?@?@?<;<;<;<;7878787865656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#        - - - - ^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSPOPOPOPONMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDCBABABABA@?>=>=>=<;<;<;<;7878787865656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#        - - - - ^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSPOPOPOPONMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDCBABABABA>=>=>=>=<;<;<;<;7878787865656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#        - - - - ^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSPOPOPOPONMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDCBABABABA>=>=>=>=<;<;<;<;7878787865656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#        - - - - ^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSPOPOPOPONMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDCBABABABA>=>=>=>=<;<;<;<;7878787743434343212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#        - - - - ^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSPOPOPOPONMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDCBABABABA>=>=>=>=<;<;<;<;7777878743434343212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#        - - - - ^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSPOPOPOPONMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDCBABABABA>=>=>=>=<;<;<;<;878787874343434321212121.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#        - - - - ^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSPOPOPOPONMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDCBABABABA>=>=>=>=<;<;<;<;878787874343434321212121.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#        - - - - ^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSPOPOPOPONMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDCBABABABA>=>=>=>=<;<;<;<;878787874343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#        - - - - ^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSPOPOPOPONMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDCBABABABA>=>=>=>=<;<;<;<;878787874343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#        - - - - ^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSPOPOPOPONMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDCBABABABA>=>=>=>=<;<;<;<;878787774343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!        - - - - ^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSPOPOPOPONMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDCBABABABA>=>=>=>=<;<;<;<;777878784343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!        - - - - ^]^]\[\[ZYZYZYZYXWXWXWXWTSTSTSTSPOPOPOPONMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDCBABABABA>=>=>=>=<;<;<;<;787878784343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!        - - - - \[\[\[\[ZYZYZYZYXWXWXWXWTSTSTSTSPOPOPOPONMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDCBABABABA>=>=>=>=<;<;<;<;787878784343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!        - - - - \[\[\[\[ZYZYZYZYXWXWVUVUTSTSTSTSPOPOPOPONMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDCBABABABA>=>=>=>=<;<;<;:9787878784343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!        - - - - \[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTSPOPOPOPONMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDCBABABABA>=>=>=>=:9:9:9:9787878784343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!    - - - - \[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTSPOPOPOPONMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDCBABABABA>=>=>=>=:9:9:9:9787877774343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!   - - - - \[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTSPOPOPOPONMLKLKLKJIJIJIJIHGHGHGHGDCDCDCDCBABABABA>=>=>=>=:9:9:9:9778787874343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"! - - - - \[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTSPOPOPOPOLKLKLKLKJIJIJIJIHGHGHGHGDCDCDCDCBABABABA>=>=>=>=:9:9:9:9878787874343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"! - - - - \[\[\[\[ZYZYZYZYVUVUVUVUTSTSRQRQPOPOPOPOLKLKLKLKJIJIJIJIHGFEFEFEDCDCDCDCBABABABA>=>=>=>=:9:9:9:9878787874343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"! - - - - \[\[\[\[ZYZYZYZYVUVUVUVURQRQQQQQPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDCBABABABA>=>=>=>=:9:9:9:9878787874343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"! - - - - \[\[\[\[ZYZYZYZYVUVUVUVURQRQRQRQPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDCBA@?@?@?>=>=>=>=:9:9:9:9878787874343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"! - - - - \[\[\[\[ZYZYZYZYVUVUVUVURQRQRQRQPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:9878777774343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"! - - - - \[\[\[\[ZYZYZYZYVUVUVUVURQRQRQRQPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:9878787874343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"! - - - - \[\[\[\[ZYZYZYZYVUVUVUVURQRQRQRQPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:9656565654343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"! - - - - \[\[\[\[ZYZYZYZYVUVUVUVURQRQRQRQPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:9656565654343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"! - - - - \[\[\[\[ZYZYZYZYVUVUVUVURQQQQQQRPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:965656565434343430/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"! - - - - \[\[\[\[ZYZYZYZYVUVUVUVUQRQRQRQRPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:965656565434343430/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"! - - - - \[\[\[\[ZYZYZYZYVUVUVUVUQRQRQRQRPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:965656565434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%"!"!"!"! - - - - \[\[\[\[ZYZYZYZYVUVUVUVUQRQRQRQRPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:965656565434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%"!"!"!"! - - - - \[\[\[\[ZYZYZYZYVUVUVUVUQRQRQRQRPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:965656565434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"! - - - - \[\[\[\[ZYZYZYZYVUVUVUVUQRQRQRQRPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:965656565434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"! - - - - \[\[\[\[ZYZYZYZYVUVUVUVUQQQQQQRQPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:965656565434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"! - - - - \[\[\[\[ZYZYZYZYVUVUVUVURQRQRQRQPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:965656565434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"! - - - - \[\[\[\[ZYZYXWXWVUVUVUVURQRQRQRQPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:965656565434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"! - - - - \[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:965656565434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"! - - - - \[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:965656565434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"! - - - - \[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQPONMNMNMLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:965656565434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"!    - - - - \[\[\[\[XWXWXWXWVUVUVUVUQQQQQRQRNMNMNMNMLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:965656565434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"!    - - - \[\[\[\[XWXWXWXWVUVUVUVUQRQRQRQRNMNMNMNMLKLKLKLKJIHGHGHGFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:965656565434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"!    \[\[\[\[XWXWXWXWVUVUVUVUQRQRQRQRNMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:965656565434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"!    \[\[\[\[XWXWXWXWVUVUVUVUQRQRQRQRNMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEDCBABABA@?@?@?@?>=>=>=>=:9:9:9:965656565434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"!    \[\[\[\[XWXWXWXWVUVUVUVUQRQRQRQRNMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEBABABABA@?@?@?@?>=>=>=>=:9:9:9:965656565434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"!    \[\[\[\[XWXWXWXWVUVUVUVUQRQRQRQQNMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEBABABABA@?@?@?@?>=<;<;<;:9:9:9:965656565434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!      \[\[\[\[XWXWXWXWVUVUVUVUQQQQRQRQNMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEBABABABA@?@?@?@?<;<;<;<;:9:9:9:965656565434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#        \[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQNMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEBABABABA@?@?@?@?<;<;<;<;:9:9:9:965656565434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#        \[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQNMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEBABABABA@?@?@?@?<;<;<;<;:9:9:9:965656565212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#        \[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQNMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEBABABABA@?@?@?@?<;<;<;<;:9:9:9:965656565212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#        \[\[\[\[XWXWXWXWTSTSTSTSRQRQRQRQNMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEBABABABA@?@?@?@?<;<;<;<;:987878765656565212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('$#$#$#$#        \[\[\[\[XWXWXWXWTSTSTSTSRQRQRQQQNMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEBABABABA@?@?@?@?<;<;<;<;8777777865656565212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('$#$#$#$#        \[\[\[\[XWXWXWXWTSTSTSTSQQQRQRQRNMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEBABABABA@?@?@?@?<;<;<;<;7878787865656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#        \[\[\[\[XWXWXWXWTSTSTSTSQRQRQRQRNMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEBABABABA@?@?@?@?<;<;<;<;7878787865656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#        aabbccddAABBCCDDDDCCBBAA]]^^__``TTSSRRQQ``aabbcc@@AABBCC ggffeedd::;;<<==wwvvuutt__``aabb''(())**221100//ooppqqrreeffgghhEEFFGGHH@@??>>==aabbccdd - - PPOONNMMddeeffggDDEEFFGG - - ccbbaa``>>??@@AAssrrqqppccddeeff++,,--....--,,++ssttuuvviijjkkllIIJJKKLL <<;;::99eeffgghh LLKKJJIIhhiijjkkHHIIJJKK__^^]]\\BBCCDDEEoonnmmllgghhiijj//001122**))((''wwxxyyzzmmnnooppMMNNOOPP!!""##$$88776655iijjkkllHHGGFFEEqqrrssttLLMMNNOO[[ZZYYXXFFGGHHIIkkjjiihhkkqqrrss33445566&&%%$$##~~}}||{{{{||}}~~qqrrssttQQWWXXYY%%&&''((44332211mmnnooppDDCCBBAAuuvvwwxxPPQQRSTUWWVVUUTTJJKKLLMM ggffeeddttuuvvww778899::""!! zzyyxxwwuuvvwwxxZZ[[\\]]))**++,,00//..--qqrrsstt@@??>>==yyzz{{||VWWXXYYZ SSRRQQPPNNOOPPQQ - - ccbbaa``xxyyzz{{;;<<==>>vvuuttssyyzz{{||^^__``aa--..//00,,++**))uuvvwwxx <<;;::99}}~~Z[[\\]]^ - - OONNMMLLRRSSTTUU__^^]]\\||}}~~??@@AABBrrqqppoo}}~~bbccddee11223344((''&&%%~~}}yyzz{{||!!""##$$88776655^__``aabKKJJIIHHVVWWXXYY[[ZZYYXXCCDDEEFFnnmmllkkffgghhii55667788$$##""!!||{{zzyy}}~~%%&&''((44332211bccddeefGGFFEEDDZZ[[\\]]WWVVUUTTGGHHIIJJjjiihhggjjkkqqrr99::;;<< xxwwvvuu))**++,,00//..--fgghhiijCCBBAA@@^^__``aa SSRRQQPPKKLLMMNN ffeeddcc~~}}ssttuuvv==>>??@@ttssrrqq--..//00,,++**))jkklmnop??>>==<>??@@ttssrrqq}}~~**++,,--//..--,,rrssttuu??>>==<<__``aabb - -RRQQPPOOllkkjjiiQQRRSSTT``__^^]]AABBCCDDppoonnmm..//0011++**))((vvwwxxyy !!;;::9988ccddeeff NNMMLLKKhhggffeeUUVVWWXX\\[[ZZYYEEFFGGHHllkkjjii22334455''&&%%$$~~}}||zz{{||}}""##$$%%77665544gghhiijjJJIIHHGGddccbbaaYYZZ[[\\XXWWVVUUIIJJKKLL hhggffee66778899##""!! {{zzyyxx~~&&''(())33221100~~kkllmmnnFFEEDDCC``__^^]]]]^^__``TTSSRRQQMMNNOOPP - - ddccbbaa::;;<<==wwvvuutt**++,,--//..--,,}}||{{zzooppqqrrBBAA@@??\\[[ZZYYaabbccdd - - PPOONNMMQQRRSSTT``__^^]]>>??@@AAssrrqqpp..//0011++**))((yyxxwwvvssttuuvv>>==<<;;XXWWVVUUeeffgghh LLKKJJIIUUVVWWXX\\[[ZZYYBBCCDDEEoonnmmll22334455''&&%%$$uuttssrrwwxxyyzz !!""::998877TTSSRRQQiijjkkllHHGGFFEEYYZZ[[\\XXWWVVUUFFGGHHIIkkjjiihh66778899##""!! qqkkjjii{{||}}~~##$$%%&&66554433PPOONNMMmmnnooppDDCCBBAA]]^^__``TTSSRRQQ~~}}JJKKLLMM ggffeedd::;;<<==hhggffee''(())**221100//LLKKJJIIqqrrsstt@@??>>==aabbccdd - - PPOONNMM||{{zzyyNNOOPPQQ - - ccbbaa``>>??@@AAddccbbaa++,,--....--,,++HHGGFFEEuuvvwwxx <<;;::99eeffgghh LLKKJJIIxxwwvvuuRRSSTTUU__^^]]\\BBCCDDEE``__^^]]~~}}||{{//001122**))((''DDCCBBAAyyzz{{||!!""##$$88776655iijjkkllHHGGFFEEttssrrqqVVWWXXYY[[ZZYYXXFFGGHHII\\[[ZZYYzzyyxxww33445566&&%%$$##~~}}||{{@@??>>==~~}}||{{}}~~%%&&''((44332211mmnnooppDDCCBBAAkkjjiihhZZ[[\\]]WWVVUUTTJJKKLLMM XXWWQQPPvvuuttss778899::""!! zzyyxxww<<;;::99zzyyxxww))**++,,00//..--qqrrsstt@@??>>==ggffeedd^^__``aa SSRRQQPPNNOOPPQQ - - OONNMMLLrrqqponm;;<<==>>vvuuttss88776655vvuuttss--..//00,,++**))uuvvwwxx <<;;::99ccbbaa``bbccddee - - OONNMMLLRRSSTTUUKKJJIIHHlkkjjiih??@@AABBrrqqppoo44332211rrqqkkjj11223344((''&&%%~~}}yyzz{{||!!""##$$88776655__^^]]\\ffgghhiiKKJJIIHHVVWWXXYYGGFFEEDDhggffeedCCDDEEFFnnmmllkk00//..--iihhggff~~}}||55667788$$##""!!||{{zzyy}}~~%%&&''((44332211[[ZZYYXXjjkkllmmGGFFEEDDZZ[[\\]]CCBBAA@@dccbbaa`GGHHIIJJjjiihhgg,,++**))eeddccbb{{zzyyxx99::;;<< xxwwvvuu))**++,,00//..--WWQQPPOOnnooppqqCCBBAA@@^^__``aa ??>>==77`__^^]]\KKLLMMNN ffeeddcc((''&&%%aa``__^^wwvvuutt==>>??@@ttssrrqq--..//00,,++**))NNMMLLKKrrssttuu??>>==<>??@@>>==7766wwvvuutt**++,,--//..--,,rrssttuu&&%%$$##IIHHGGFF__``aabb - -RRQQPPOOHHGGFFEEa``__^^]QQRRSSTT``__^^]]AABBCCDD55443322ssrrqqpp..//0011++**))((vvwwxxyy !!EEDDCCBBccddeeff NNMMLLKK DDCCBBAA]\\[[ZZYUUVVWWXX\\[[ZZYYEEFFGGHH1100//..oonnmmll22334455''&&%%$$~~}}||zz{{||}}""##$$%%AA@@??>>gghhiijjJJIIHHGG - - @@??>>==YXXWWVUTYYZZ[[\\XXWWVVUUIIJJKKLL --,,++**kkjjiihh66778899##""!! {{zzyyxx~~&&''(())==<;:987kkllmmnnFFEEDDCC - - 77665544SRQQPPOO]]^^__``TTSSRRQQMMNNOOPP - - ))((''&&ggffeedd::;;<<==wwvvuutt**++,,--76655443ooppqqrrBBAA@@?? 33221100NNMMLLKKaabbccdd - - PPOONNMMQQRRSSTT%%$$##ccbbaa``>>??@@AAssrrqqpp..//0011 - -3221100/ssttuuvv>>==<<;;//..--,,JJIIHHGGeeffgghh LLKKJJIIUUVVWWXX__^^]]\\BBCCDDEEoonnmmll22334455 /..--,,+wwxxyyzz !!""::998877++**))((FFEEDDCCiijjkkllHHGGFFEEYYZZ[[\\[[ZZYYXXFFGGHHIIkkjjiihh66778899+**))(('~~}}||{{{{||}}~~##$$%%&&66554433''&&%%$$BBAA@@??mmnnooppDDCCBBAA]]^^__`` - - WWVVUUTTJJKKLLMM ggffeedd::;;<<== - - '&&%%$$#zzyyxxww''(())**221100// ##>>==<;:9qqrrsstt@@??>>==aabbccdd  SSRRQQPPNNOOPPQQ - - ccbbaa``>>??@@AA #"! vvuuttss++,,--....--,,++!!""##$$87766554uuvvwwxx <<;;::99eeffgghh - - OONNMMLLRRSSTTUU__^^]]\\BBCCDDEErrqqppoo//001122**))((''%%&&''((43322110~~}}yyzz{{||!!""##$$88776655iijjkkllKKJJIIHHVVWWXXYY[[ZZYYXXFFGGHHIInnmmllkk33445566&&%%$$##))**++,,0//..--,||{{zzyy}}~~%%&&''((44332211mmnnooppGGFFEEDDZZ[[\\]]WWVVUUTTJJKKLLMMjjiihhgg778899::""!! --..//00 ,++**))(xxwwvvuu))**++,,00//..--qqrrsstt##$$%% - -CCBBAA@@^^__``aa SSRRQQPPNNOOPPQQ##$$ ffeeddcc;;<<==>>11223344 - - - -(''&&%%$ttssrrqq--..//00,,++**))uuvvwwxx&&''(()) ??>>==<>??@@hhggffee99::;;<< xxwwvvuu2233445533221100nnooppqqCCBBAA@@^^__``aa11223344VVUUTTSSKKLLMMNN ++,,--..AABBCCDDddccbbaa==>>??@@ttssrrqq6677==>>//..--,,rrssttuu??>>==<>??@@AA NNMMLLKKSSTTUUVV33445566IIJJKKLL$$%%&&'' - -\\[[ZZYYEEFFGGHHllkkjjiiCCDDEEFF%&&''(()''&&%%$$~~}}||zz{{||}}""##$$%%77665544jjkkllmmBBCCDDEEJJIIHHGGWWXXYYZZ778899::MMNNOOPP(())**++ XXWWVVUUIIJJKKLL hhggffeeGGHHIIJJ)**++,,-##""!! {{zzyyxx~~&&''(())33221100nnooppqqFFGGHHIIFFEEDDCC[[\\]]^^;;<<==>>QQRRSSTT,,--..//TTSSRRQQMMNNOOPP - - ddccbbaaKKLLMMNN-..//001wwvvuutt**++,,--//..--,,rrssttuuJJKKLLMMBBAA@@??__``aabb - -??@@AABBUUVVWWXX00112233 - - PPOONNMMQQRRSSTT``__^^]]OOPPQQWW12233445ssrrqqpp..//0011++**))((vvwwxxyyNNOOPPQQ>>==<<;;ccddeeff CCDDEEFFYYZZ[[\\44556677 LLKKJJIIUUVVWWXX\\[[ZZYYXXYYZZ[[5667789:oonnmmll22334455''&&%%$$~~}}||zz{{||}}WWXXYYZZ !!""::998877gghhiijjGGHHIIJJ]]^^__``==>>??@@HHGGFFEEYYZZ[[\\XXWWVVUU\\]]^^__;<==>>??kkjjiihh66778899##""!! {{zzyyxx~~[[\\]]^^##$$%%&&66554433kkllmmnnKKLLMMNNOOPPQQRR - - bbaa``__<<==>>??uuttssrr,,--..//--,,++**{{zzyyxxqqrrsstt@@??>>==aabbccdd - - PPOONNMM||{{zzyyNNOOPPQQ - - ccbbaa``>>??@@AAaa``__^^kkjjiihhSSTTUUVV^^]]\\[[@@AABBCCqqppoonn00112233))((''&&wwvvuuttuuvvwwxx <<;;::99eeffgghh LLKKJJIIxxwwvvuuRRSSTTUU__^^]]\\BBCCDDEE]]\\[[ZZggffeeddWWXXYYZZZZYYXXWWDDEEFFGGmmllkkjj44556677%%$$##""ssrrqqkkyyzz{{||!!""##$$88776655iijjkkllHHGGFFEEttssrrqqVVWWXXYY[[ZZYYXXFFGGHHIIYYXXWWQQccbbaa``[[\\]]^^VVUUTTSSHHIIJJKKiihhggff8899::;;!! jjiihhgg}}~~%%&&''((44332211mmnnooppDDCCBBAAkkjjiihhZZ[[\\]]WWVVUUTTJJKKLLMM PPOONNMM__^^]]\\__``aabb - -RRQQPPOO~~}}||{{LLMMNNOO - -eeddccbb<<==>>??ffeeddcc))**++,,00//..--qqrrsstt@@??>>==ggffeedd^^__``aa SSRRQQPPNNOOPPQQ - - LLKKJJII[[ZZYYXXccddeeff NNMMLLKKzzyyxxwwPPQQRRSS aa``__^^@@AABBCCbbaa``__~~}}--..//00,,++**))uuvvwwxx <<;;::99ccbbaa``bbccddee - - OONNMMLLRRSSTTUUHHGGFFEEWWVVUUTTgghhiijjJJIIHHGGvvuuttssTTUUVVWW]]\\[[ZZDDEEFFGG^^]]\\[[||{{zzyy11223344((''&&%%~~}}yyzz{{||!!""##$$88776655__^^]]\\ffgghhiiKKJJIIHHVVWWXXYYDDCCBBAASSRRQQPPkkllmmnnFFEEDDCCrrqqkkjjXXYYZZ[[YYXXWWVVHHIIJJKKZZYYXXWWxxwwvvuu55667788$$##""!!||{{zzyy}}~~%%&&''((44332211[[ZZYYXXjjkkllmmGGFFEEDDZZ[[\\]]@@??>>==OONNMMLLooppqqrrBBAA@@??iihhggff\\]]^^__UUTTSSRRLLMMNNOO - -QQPPOONNttssrrqq99::;;<< xxwwvvuu))**++,,00//..--WWQQPPOOnnooppqqCCBBAA@@^^__``aa 77665544KKJJIIHHssttuuvv>>==<<;;eeddccbb``aabbcc - - QQPPOONNPPQQRRSS MMLLKKJJponmlkkj==>>??@@ttssrrqq--..//00,,++**))NNMMLLKKrrssttuu??>>==<>==<<''(())**221100//YYXXWWQQllmmnnooEEDDCCBB\\]]^^__AA@@??>>baa``__^IIJJKKLL hhggffee99::;;<< BBAA@@??{{zzyyxx~~&&''(())33221100nnooppqq''&&%%$$;;::9988++,,--....--,,++PPOONNMMppqqrrssAA@@??>>``aabbcc - - ==776655^]]\\[[ZMMNNOOPP - - ddccbbaa==>>??@@>>==7766wwvvuutt**++,,--//..--,,rrssttuu##77665544//001122**))((''LLKKJJIIttuuvvww==<<;;::ddeeffgg 44332211ZYYXXWWVQQRRSSTT``__^^]]AABBCCDD55443322ssrrqqpp..//0011++**))((vvwwxxyy !!3322110033445566&&%%$$##HHGGFFEE~~xxyyzz{{ !!""##99887766hhiijjkk00//..--UTSRQQPPUUVVWWXX\\[[ZZYYEEFFGGHH1100//..oonnmmll22334455''&&%%$$~~}}||zz{{||}}""##$$%%//..--,,778899::""!! DDCCBBAA}}||{{zz||}}~~$$%%&&''55443322llmmnnoo,,++**))OONNMMLLYYZZ[[\\XXWWVVUUIIJJKKLL --,,++**kkjjiihh66778899##""!! {{zzyyxx~~&&''(())++**))((;;<<==>>@@??>>==yyxxwwvv(())**++1100//..ppqqrrss((''&&%%KKJJIIHH]]^^__``TTSSRRQQMMNNOOPP - - ))((''&&ggffeedd::;;<<==wwvvuutt**++,,-- ''&&%%$$??@@AABB77665544uuttssrr,,--..//--,,++**ttuuvvww$$##GGFFEEDDaabbccdd - - PPOONNMMQQRRSSTT%%$$##ccbbaa``>>??@@AAssrrqqpp..//0011 - - - -##""!! CCDDEEFF33221100qqppoonn00112233))((''&&~~xxyyzz{{ !!""##CCBBAA@@eeffgghh LLKKJJIIUUVVWWXX__^^]]\\BBCCDDEEoonnmmll22334455 GGHHIIJJ//..--,,mmllkkjj44556677%%$$##""}}||{{zz||}}~~$$%%&&''??>>==<;iijjkkllHHGGFFEEYYZZ[[\\[[ZZYYXXFFGGHHIIkkjjiihh66778899KKLLMMNN ++**))((iihhggff8899::;;!! yyxxwwvv(())**++:9877665mmnnooppDDCCBBAA]]^^__`` - - WWVVUUTTJJKKLLMM ggffeedd::;;<<==OOPPQQRR - - ''&&%%$$eeddccbb<<==>>??uuttssrr,,--..// 54433221qqrrsstt@@??>>==aabbccdd  SSRRQQPPNNOOPPQQ - - ccbbaa``>>??@@AASSTTUUVV##aa``__^^@@AABBCCqqppoonn00112233 - - 100//..-uuvvwwxx <<;;::99eeffgghh - - OONNMMLLRRSSTTUU__^^]]\\BBCCDDEE## WWXXYYZZ]]\\[[ZZDDEEFFGGmmllkkjj44556677-,,++**)~~}}yyzz{{||!!""##$$88776655iijjkkllKKJJIIHHVVWWXXYY[[ZZYYXXFFGGHHII$$%%&&'' - - [[\\]]^^ - -YYXXWWVVHHIIJJKKiihhggff8899::;; )((''&&%||{{zzyy}}~~%%&&''((44332211mmnnooppGGFFEEDDZZ[[\\]]WWVVUUTTJJKKLLMM(())**++ - - __``aabb UUTTSSRRLLMMNNOO - -eeddccbb<<==>>?? - - %$$##"! xxwwvvuu))**++,,00//..--qqrrsstt##$$%% - -CCBBAA@@^^__``aa SSRRQQPPNNOOPPQQ,,--..//ccddeeff QQPPOONNPPQQRRSS aa``__^^@@AABBCCttssrrqq--..//00,,++**))uuvvwwxx&&''(()) ??>>==<>??@@ooppqqrr##EEDDCCBB\\]]^^__UUTTSSRRLLMMNNOOhhggffee99::;;<< xxwwvvuu2233445533221100nnooppqqCCBBAA@@^^__``aaAABBCCDD !!ssttuuvv$$%%&&'' - - AA@@??>>``aabbcc - - QQPPOONNPPQQRRSS##$$%%&& ddccbbaa==>>??@@ttssrrqq6677==>>//..--,,rrssttuu??>>==<>``aabbcc33445566TTSSRRQQMMNNOOPP - - ddccbbaaKKLLMMNN-..//001wwvvuutt**++,,--//..--,,rrssttuuZZ[[\\]]22334455rrqqppoo==>>??@@ !"#--,,++**ttuuvvww==<<;;::ddeeffgg77==>>?? - - PPOONNMMQQRRSSTT``__^^]]OOPPQQWW12233445ssrrqqpp..//0011++**))((vvwwxxyy^^__``aa66778899nnmmllkkAABBCCDD#$$%%&&'))((''&&~~xxyyzz{{ !!""##99887766hhiijjkk@@AABBCC LLKKJJIIUUVVWWXX\\[[ZZYYXXYYZZ[[5667789:oonnmmll22334455''&&%%$$~~}}||zz{{||}}bbccddee::;;<<==jjiihhggEEFFGGHH'(())**+%%$$##""}}||{{zz||}}~~$$%%&&''55443322llmmnnooDDEEFFGGHHGGFFEEYYZZ[[\\XXWWVVUU\\]]^^__;<==>>??kkjjiihh66778899##""!! {{zzyyxx~~ffgghhii>>??@@AAffeeddccIIJJKKLL+,,--../!! yyxxwwvv(())**++1100//..ppqqrrssHHIIJJKKDDCCBBAA]]^^__``TTSSRRQQ``aabbcc@@AABBCC ggffeedd::;;<<==wwvvuuttjjkkqqrrBBCCDDEEbbaa``__MMNNOOPP/0011223uuttssrr,,--..//--,,++**ttuuvvwwLLMMNNOO@@??>>==aabbccdd - - PPOONNMMddeeffggDDEEFFGG - - ccbbaa``>>??@@AAssrrqqppssttuuvvFFGGHHII^^]]\\[[QQWWXXYY34455667qqppoonn00112233))((''&&~~xxyyzz{{PPQQWWXX <<;;::99eeffgghh LLKKJJIIhhiijjkkHHIIJJKK__^^]]\\BBCCDDEEoonnmmllwwxxyyzzJJKKLLMMZZYYXXWWZZ[[\\]]789:;<==mmllkkjj44556677%%$$##""}}||{{zz||}}~~YYZZ[[\\!!""##$$88776655iijjkkllHHGGFFEEqqrrssttLLMMNNOO[[ZZYYXXFFGGHHIIkkjjiihh{{||}}~~NNOOPPQQVVUUTTSS^^__``aa>>??@@AAiihhggff8899::;;!! yyxxwwvv]]^^__``%%&&''((44332211mmnnooppDDCCBBAAuuvvwwxxPPQQRSTUWWVVUUTTJJKKLLMM ggffeeddRRSSTTUURRQQPPOObbccddeeBBCCDDEE - -eeddccbb<<==>>??uuttssrraabbccdd))**++,,00//..--qqrrsstt@@??>>==yyzz{{||VWWXXYYZ SSRRQQPPNNOOPPQQ - - ccbbaa``VVWWXXYYNNMMLLKKffgghhiiFFGGHHII aa``__^^@@AABBCCqqppoonneeffgghh--..//00,,++**))uuvvwwxx <<;;::99}}~~Z[[\\]]^ - - OONNMMLLRRSSTTUU__^^]]\\ZZ[[\\]]JJIIHHGGjjkkqqrrJJKKLLMM]]\\[[ZZDDEEFFGGmmllkkjjiijjkkqq11223344((''&&%%~~}}yyzz{{||!!""##$$88776655^__``aabKKJJIIHHVVWWXXYY[[ZZYYXX^^__``aaFFEEDDCCssttuuvvNNOOPPQQYYXXWWVVHHIIJJKKiihhggffrrssttuu55667788$$##""!!||{{zzyy}}~~%%&&''((44332211bccddeefGGFFEEDDZZ[[\\]]WWVVUUTTbbccddeeBBAA@@??wwxxyyzzRSTUVWWXUUTTSSRRLLMMNNOO - -eeddccbbvvwwxxyy99::;;<< xxwwvvuu))**++,,00//..--fgghhiijCCBBAA@@^^__``aa SSRRQQPPffgghhii>>==<<;;{{||}}~~XYYZZ[[\ - - QQPPOONNPPQQRRSS aa``__^^zz{{||}}==>>??@@ttssrrqq--..//00,,++**))jkklmnop??>>==<>``aabbcc - - QQPPOONNMMNNOOPP - - ddccbbaa==>>??@@ttssrrqq}}~~**++,,--//..--,,rrssttuu??>>==<>]]^^__``TTSSRRQQMMNNOOPP - - ddccbbaa::;;<<==wwvvuutt**++,,--//..--,,zzyyxxww~~}}||rrqqppoo,,--..//--,,++**ttuuvvww==<<;;::aabbccdd - - PPOONNMMQQRRSSTT``__^^]]>>??@@AAssrrqqpp..//0011++**))((vvuuttss{{zzyyxxnnmmllkk00112233))((''&&~~xxyyzz{{ !!""##99887766eeffgghh LLKKJJIIUUVVWWXX\\[[ZZYYBBCCDDEEoonnmmll22334455''&&%%$$rrqqkkjjwwvvuuttjjiihhgg44556677%%$$##""}}||{{zz||}}~~$$%%&&''55443322iijjkkllHHGGFFEEYYZZ[[\\XXWWVVUUFFGGHHIIkkjjiihh66778899##""!! iihhggffssrrqqpp ffeeddcc8899::;;!! yyxxwwvv(())**++1100//..~~}}||mmnnooppDDCCBBAA]]^^__``TTSSRRQQ~~}}JJKKLLMM ggffeedd::;;<<==eeddccbboonnmmllbdQZ|vpftArdp˂rdrtAr˂p|ZdQbےHAZbdQZ|`vXnbtlےbHAltbHAbےlJtA˂rXQdrtAJ˂pZZdQbtrXQJpfH~JXQr~Hfp`ےbdrtAH~f|ZdQbXQJ`ےJltZHAbtlJp˂rdrtAr˂pJtArdZp˂dQZ|`JXQrrd|J`ےltbHAbےlJtA`ےbf`v˂pZHAvnXHAZp˂Jlt`vXntlJbHAZbdQZ|ے`JXQtArdXQJ`ےJltZHAb|ZdQrXQJ`dtAJl˂pZZdQbtbHAZpdQZ|`JXQrrd|HAZp˂Xnvbے`v`frXQJbdQZ|vpftArdp˂rdrtAr˂p|ZdQbbHAZbdQZ|ے`JXQtArdےbHAtbnHAbےlJtA˂rXQdrtAJ˂pZZdQbtbHApfH~JXQr~Hfp`ےbdrtAH~f|lJtAXQJ`ےJltZHAbtlJp˂rdrtAr˂p|ZdQbZprQvpf`JXQrrd|J`ےltbHAbےlJtAZp˂f`v˂pZHAvnXHAZp˂Jlt`vXnrd|bHAZbdQZ|ے`JXQtArdXQJ`ےJltZHAbtlJJ`ےHf`˂pZZdQbnbHAZpdQZ|`JXQrrd|rXQJ`Xnvbے`v`frXQJbdQZ|vpfZdQbtp˂rdrtAr˂p|ZdQbbHAZbdQZ|ے`JXQtArdbHAZpvXnHAbےXv`f˂rXQdtAJl˂pZZdQbtےbHApfH~JXQr~Hfp`ےbdrtAH~flJtAXQJ`ےJltZHAbtlJp˂rdrtAr˂p|ZdQbrXQvpfH`JXQr~HfJ`ےtbnHAbےlJtAZp˂f`v˂pZHAvnXHAZp˂Jlt`vXnrd|bHAZbdQZ|ے`JXQtArdXQJ`ےJltZHAbtd|J`ے~f`˂pZpvnbHAZpvpf`JXQrrd|rXQHAZXnvbے`v`frXQJbdQZ|vpfZdQtArp˂rdrtAr˂p|ZdQbbHAZbdQZ|ے`JXQZdQbtbHAZpvXnHAbےXv`f˂rXQHf`˂pZZdQbnp˂rpfH~JXQr~Hfp`ےbdrtAH~fd|ZXQJ`ےJltZHAbtlJp˂rdrtAr˂plJtArQJvpfH`JXQr~HfJ`ےvXnHAbےXv`pXQJ`ےf`v˂pZHAvnXHAZp˂Jlt`vXndQbt璐bHAZbdQZ|ے`JXQtArdXQJ`ےJltZHAbrd|bHAZ~f`˂pZpvnbHAZpvpfH`JXQrvnXbHAZXnvے`Jv`frXQJbdQZ|vpflJtArp˂rdrtAr˂p|ZdQbbHAZbdQZ|ے`JXQZdQbtp˂rvXnHAbےXv`f˂rXQ~f`˂pZv`fp˂rpfH~XQrbt~Hfp`ےbdrtAH~fd|ZXQJ`ےJltZHAbtlJp˂rdrtAr˂pl|ZXQJ`ےvpfH`JXQr~HfJ`ےvXnHAbے~HfpXQJ`pf`vlJtAvnXHAZp˂Jlt`vXndQbtdbHAZbdQZ|ے`JXQtArdXQJ`ےJltZHAbdQbnXbHAZ~f`˂pZpvnbHAZpvpfH`JXQrvnX˂rbXnvd|Zv`frbdQbdQZ|vpf|ZdQp˂rdtAJr˂p|ZdQbbHAZbdQZ|ے`JXQv`pvp˂rvXnHAbےXv`f˂rXQ~f`˂pZv`fdQZ|pfH~dQbt~HfpZ|ddrtAH~fbtlXQJ`ےltbZHAbtlJp˂rdrtAr˂pnXvXQJbHvpfH`JXQr~HfJ`ےvXnHAbےnXvrAJltf`vlJtArvnXrtAJlJlt`vXnJtArdbHAZnvpے`JXQtArdXQJ`ےJltZHAb`f~AZp˂~f`˂pZpvnbHAZpvpfH`JXQr`f~bdQZ|Xnvd|Zv`ftbdQbdQZ|r˂p|ZdQp˂rfHfr˂p|ZdQbbHAZbdQZ|ے`JXQHfpvrXQJ`vXnHAbےXv`f˂rXQ~f`˂pZHfpvdrtpfH~dQbt~HfpZ|ddrtA`JXQrbtlXQJ`ے`vXnZHAbnXv`p˂rdtAJr˂pnXvےbHvpfH`JXQr~HfJ`ےvXnHAbےnXvAJltf`vlJtArvnXrtAJlJlt˂pZ|ZdQbbHAZvpfے`JXQf~HXQJ`ےltbZHAb`fAZp˂~f`˂pZpvnbHAZpvpfH`JXQr`f~bdQZ|Xnvd|Zv`ftbdQbdQZ|HAbےnXv`p˂rH~fr˂pfpvbHAZnvpے`JXQnXv`rXQJ`vXnHAbےXv`f˂rXQ~f`˂pZHXv`drAJpfH~dQbt~HfpZ|ddrtA`JXQrf~fpXQJ`ے`vXnZHAbnXv`p˂rfHfr˂pf~HbAZpvpfH`JXQr~HfJ`ےvXnHAbےf~HtbdQf`vlJtArvnXrtAJlJlt˂pZvnXbHAZvpfے`JXQf~HXQJ`ے`vXnZHAbfpv˂rb~f`˂pZpvnbHAZpvpfH`JXQrfpvZ|dXnvd|Zv`ftbdQbdQZ|HAXQrv`fp˂rH~fr˂pfpvbHAZvpfے`JXQnXv`dQZ|vXnHAے`Xv`f˂rXQ~f`˂pZnXv`rtAJlpfH~dQbt~HfpZ|ddrtA˂pZHA~HfpXQJ`ے`vXnZHAbnXv`p˂rH~fr˂pf~HdrtAJvpfHJXQrb~HfJ`ےvXnHAbےf~HtbdQf`vlJtArvnXrtAJlJltbے`vnXbHAZvpfے`JXQf~HXQJ`ے`vXnZHAbXv`fltb~f`tlJpvnbHAZpvpfH`JXQrfp`fZ|dXnvd|Zv`ftbdQbdQZ|JXQrv`f~p˂rH~fr˂pfpvbHAZvpfے`JXQ~HfdQZ|vXntAd|Xv`f˂rb~f`˂pZ~HfrtAJpfH~dQbt~HfpZ|ddrtA˂pZHAfvnXQJ`ے`vXnZHAbnXv`p˂rH~fr˂ppvndrtAJvpfHZdQbt~HfdQZ|vXnHAے`pvnbdQZ|f`vlJtArvnXrtAJlJltb˂Xv`fbHAZvpfے`JXQf~HXQJ`ے`vXnZHAbXv`fltb~f`lJtApvndrtAJvpfHJXQrbXv`fdrtAXnvd|Zv`ftbdQbdQZ|pZHAb~Hfp˂rH~fr˂pfpvbHAZvpfے`JXQ~HfdQZ|vXnrd|Xv`fltb~f`tlJ~HfJltpfH~dQbt~HfpZ|ddrtAے`JpvnXQJ`ے`vXnZHAbnXv`p˂rH~fr˂pp`fdrtAJvpfHZdQbt~HfdQZ|vXntAd|pvbdQZ|f`vlJtArvnXrtAJlJltXQr˂Xv`fbHAZvpfے`JXQf~HXQJ`ے`vXnZHAb~Hfpltb~f`lJtApvndrtAJvpfHZdQbt~HfpdrtAXnrd|Zv`ftbdQbdQZ|pZHAb~Hfp˂rH~fr˂pfpvbHAZvpfے`JXQvnXdQZ|vXnrd|Xv`fltb~f`lJtAvnXJlbQZ˂pZHAdQbtHfpvZ|ddrtAے`pvnXv`XQJ`ے`vXnZHAbnXv`p˂rH~fr˂pv`fdrtAJvpfHZdQbt~HfdQZ|vXnrd|v`f|drbے`lJtArnrXQrtAJlJltZHAbf~HbHAZvpfے`JXQf~HXQJ`ے`vXnZHAb~Hfpltb~f`lJtApvndrtAJvpfHZdQbt~HfptAJlJXQrd|ZJ`ےtbdQbdQZ|ے`JXQfpvp˂rH~fr˂pfpvbHAZvpfے`JXQv~dQZ|vXnrd|Xv`fltb~f`lJtAvnXtbdQZ˂pZHAdQbtHAZp˂Z|ddrtAr˂pnXv`bdQZ|`vXnZHAےnXv`p˂rH~fr˂pHfpvdrtAJvpfHZdQbt~HfdQZ|vXnrd|Hfpv|drbے`lJtArrXQJrtAJlJltZHAbf~HdrtAvpf`JXQrf~HXQJ`ے`vXnZHAbnXvltb~f`lJtApvndrtAJvpfHZdQbtnXvtAJlJXQrd|Z`ےbtbdQbdQZ|ے`JXQfpvnJltH~fbtlfpvbHAZvpfے`JXQ`f~dQZ|vXnrd|Xv`fltb~f`lJtA`f~tbQZd˂pZHAdQbtHAZp˂Z|d`vXnHAbےv`fbdQZ|`vXnJtAdnXv`p˂rH~fr˂pHfpvdrtAJvpfHZdQbt~HfdQZ|vXnrd|HfpvrtAJlbے`lJtArrXQJrtAJlvpf`JXQr~HfpdrtAvpf|ZdQbf~HbdQZ|`vXnZHAےnXHltb~f`lJtApvndrtAJvpfHZdQbtnXvtbdJXQrd|Z`ےbtbdQH~f˂pZvnXJltH~ftlJfpvdrtAvpf`JXQrfpvdQZ|vXnrd|Xv`fltb~f`lJtA`pvQZ|d˂pZHAdQbtHAZp˂Z|d`vXnHAbےv`fbdQZ|`vXntArdnXv`JltH~fbtlnXv`drtAJvpfHZdQbt~HfdQZ|vXnrd|nrXQJrtAJlbے`lJtArrXQJrtAJlvpf`JXQr~HfpdrtAvpf|ZdQbf~HbdQZ|`vXn|ZdQbf~Hltb~f`lJtApvndrtAJvpfHZdQbt`p˂tbdJXQrd|Z`ےbtbdQH~fے`vnvJltH~ftlJfpvdrtAvpftlJfpvdQZ|vXnrrd|Xv`fltb~f`lJtArXQJ`QZrtA˂pZHAdQbtHAZp˂Z|d`vXnJXQrf~HbdQZ|`vXntArdnXv`JltH~ftArdnXv`drtAJ˂pZZdQbtHfpdQZ|vXnrd|ےbHAJltbے`lJtArrXQJrtAJlvpf˂pZHAfpvdrtAvpf|ZdQbf~HbdQZ|`vXn|ZdQbpvnltbHAbےlJtAvnrdrtAJvpfHZdQbtZp˂bdQZ|JXQrd|Z`ےbtbdQH~fbے`nXv`JltH~ftlJfpvdrtAvpftlJrXQJ`dQZ|`JXQrrd|XQJ`ےltb~f`lJtArXQJ`drtA˂pZHAdQbtHAZp˂Z|dXnv`vXnJXQrf~HbdQZ|`vXntArdnXv`JltH~ftAdQbtAZp˂drtAJ˂pZZdQbtHAZpdQZ|vXnrrd|ےrJltbے`lJtArrXQJrtAJlpfH~vpf˂p|ZfpvdrtAvpf|ZdQbf~HbdQZ|`vXnlJtArXQJltbHAbےlJtA˂rXQdrtAJ˂pZZdQbtXQJ`ےbdQZ|JXQrd|Z`ےbtbdQf`vH~fdQbtnXvf~JltH~ftlJfpvdrtAvpfrd|`ےbdQZ|`JXQrrd|J`ےltbHAbےlJtAbHAZAJl˂pZHAdQbtHAZp˂Z|dXnv`vXnlJtArHfpvbdQZ|`vXntArdnXv`JltH~fZdQbtHAZp˂drtAJ˂pZZdQbtbHAZpdQZ|`JXQrrd|p˂rtbnbے`lJtArrXQJrtAJlpfH~vpfd|ZnXvdrtAvpf|ZdQbf~HbdQZ|`vXnlJtArXQJltbHAbےlJtA˂rXQdrtAJ˂pZZdQbtXQJ`ےvpfHJXQrd|Z`ےbtbdQf`vH~fdQbt`f~JltH~ftlJfpvdrtAvpfrdt`ےbAdQZ|`JXQrrd|J`ےltbHAbےlJtAbHAXQf`v˂pZHAdQbnXHAZp˂Z|dXnv`vXnlJtAdQHfpvbdQZ|`vXntArdnXv`JltH~flJtArZrXdrtAJ˂pZZdQbtbHAZpdQZ|`JXQrrd|J`ےXnvbے`v`frXQJtAJlpfH~vpfbtlnXvdrtAvpf|ZdQbf~HbdQZ|`vXnd|ZQJ`ےltbHAbےlJtA˂rXQdrtAJ˂pZZdQbtbHAZppfH~JXQr~Hfp`ےbtbnf`vH~fJtArd`frQJltH~ftlJfpvdrtAvpfdQbt璙bHAZpdQZ|`JXQrrd|J`ےltbHAbےlJtA˂rXQf`v˂pZHAvnXHAZp˂vpfHXnv`vXn|ZdQJHAZbdQZ|`vXntArdnXv`JltH~flJtAr˂rXdrtAJ˂pZZdQbtbHAZpdQZ|`JXQrrd|J`ےXnvbے`v`frXQJf`vpfH~vpfbtlp˂rdrtAr˂p|ZdQbfHfbdQZ|`vXnd|lQJ`ےltbHAbےlJtA˂rXQdrtAJ˂pZZdQbtbHAZppfH~JXQr~Hfp`ےbXnvf`vH~fJtArdXQJ`ےJltZHAbtlJpvndrtAvpfJtArdbHAZdQZ|`JXQrrd|J`ےltbHAbےlJtA`ےbf`v˂pZHAvnXHAZp˂pfH~Xnv`vXntlJbHAZbdQZ|ے`JXQtArdrXQJ`JltH~f|ZdQrXQJ`drtAJ˂pZZdQbtbHAZpdQZ|`JXQrrd|HAZp˂Xnvbے`v`frXQJf`vpfH~f`v˂pZHAvnXltbvpfHbtlHfpv|drnvp|ZdQ`f~ltbAbے`tArdXQJ`ےJltZHAbtlJp˂rdrtAے`JXQZdQbnbHAZpdQZ|`JXQrrd|J`ےltbXQr˂vˍpfXnvے`Jv`fdQZ|~f`JtArdnXvtAJlfH~btlHfpvdQZ|JXQr|ZdQbbHAZbdQZ|ے`JXQtArdXQJ`ےJltr˂pXv`f˂rXQdtAJl˂pZZdQbtbHAZpdQZ|pZHAbH~ㅐfpfH~XQrbt~HfpdtbdQvXn|ZdQ`f~tbdQZf`vXJtArdnXvdrtAdQ˂pZHtlJp˂rdrtAr˂p|ZdQbbHAZbdQZ|ZHAb~HfJ`ےtbnHAbےlJtA˂rXQdrtAJے`p`vXnf`vlJtAvnXZ|dvpf~btlHfpv|drnvp|ZdQ`f~Z|dAbJXQtArdXQJ`ےJltZHAbtlJp˂rdrtA˂pZpvnbHAZpvpf`JXQrrd|J`ےltbZHAbvˍpfXnvd|Zv`frtAJlf`vXJtArdnXvtAJlfH~btlHfpvrtAJlr˂p|ZdQbbHAZbdQZ|ے`JXQtArdXQJ`ےJltHAbےXv`f˂rXQHf`˂pZZdQbnbHAZpdQZ|ے`JXQH~ㅐfpfH~dQbt~HfptbdQnr˂|ZdQ`fHtbdQZf`vXJtArdnXvtbdQZHAbtlJp˂rdrtAr˂p|ZdQbbHAZbdQZ|`JXQr~HfJ`ےvXnHAbےXv`f˂rXQdtAJlr˂p`vXnf`vlJtArvnXZ|dpZHAbbtlfpv|drnvp|ZdQ`f~Z|dے`JXQtArdXQJ`ےJltZHAbtlJp˂rdrtA˂pZpvnbHAZpvpfH`JXQr~HfJ`ےtbnZHAbvˍpfXnvd|Zv`frtAdQZے`JJtArdnrXQJtAJlfH~btlHfpvrtAJlr˂p|ZdQbbHAZbdQZ|ے`JXQtArdXQJ`ےJltHAbےXv`f˂rXQ~f`˂pZpvnbHAZpvpfے`JXQH~ㅐfpfH~dQbt~Hfp|drXQr˂|ZdQ`ےHAtbdQZf`vXJtArdnXv|drZHAbtlJp˂rdrtAr˂p|ZdQbbHAZbdQZ|`pZHA~HfJ`ےvXnHAbےXv`f˂rXQHf`HAbے`vXnf`vlJtArvnXtAJlpZHAbbtlZp˂|drnr˂|ZdQ`fHtAJl璒JQrtArdXQJ`ےJltZHAbtlJp˂rdrtAbے`pvnbHAZpvpfH`JXQr~HfJ`ےvXn`JXQrvˍpfXnvd|Zv`ftbdQZے`JJtArdrXQJ`tAJlpZHAbbtlfpvtbdQZpZHA|ZdQbbHAZbdQZ|ے`JXQtArdXQJ`ےJltJXQrXv`f˂rXQ~f`˂pZpvnbHAZpvpfH˂pZH~ㅐfpfH~dQbt~Hfp|drXQr˂|ZdQےbHAtbdQZے`JJtArdnrXQJ|drbے`tlJp˂rdrtAr˂p|ZdQbbHAZbdQZ|˂pZHA~HfJ`ےvXnHAbےXv`f˂rXQ~f`HAbے`vXnf`vlJtArvnXtAJl|pZHAbbtlZp˂|drXQr˂|ZdQ`ےHAtAJlJXQrtArdXQJ`ےJltZHAbtlJp˂rdrtAbے`pvnbHAZpvpfH`JXQr~HfJ`ےvXn`JXQrvˍpfXnvd|Zv`fdrtAے`JJtArdrXQJ`tAJlpZHAbbtlZp˂tdrtApZHA|ZdQbbHAZbdQZ|ے`JXQtArdXQJ`ےJltJXQHAbXv`f˂rXQ~f`˂pZpvnbHAZpvpfHے`H~ㅐfpfH~dQbt~HfpJltXQr˂|ZdQےbHAtbdQZے`JJtArdrXQJ`Jltbے`JnXv`p˂rdtAJr˂p|ZdQbbHAZbdQZ|ے`J~HfJ`ےvXnHAbےXv`f˂rXQ~f`JXQr`vXnf`vlJtArvnXbdQZ|pZHAbbtlZp˂|drXQr˂|ZdQےbHAbdQZ|QrpZf~HXQJ`ےltbZHAbtlJp˂rdrtAXQr˂pvnbHAZpvpfH`JXQr~HfJ`ےvXn˂pZHAvˍpfXnvd|Zv`fdrtAے`JJtArdrXQJ`tAJlpZHAbbtlZp˂drtAHAbےfpvbHAZnvpے`JXQtArdXQJ`ےJltpZHAbXv`f˂rXQ~f`˂pZpvnbHAZpvpfHbے`H~ㅐfpfH~dQbt~HfpJltXQr˂|ZdQےbHAtbdQZے`JJtArdrXQJ`Jlt`JXQrnXv`p˂rfHfr˂p|ZdQbbHAZbdQZ|ے`J~HfJ`ےvXnHAbےXv`f˂rXQ~f`JXQr`vXnf`vlJtArvnXdrtAJpZHAbbtlZp˂|drXQr˂|ZdQےbHAbdQtAJ˂pZf~HXQJ`ے`vXnZHAbnXv`p˂rdtAJXQrpvnbHAZpvpfH`JXQr~HfJ`ےvXn˂p`ZvˍpfXnvd|Zv`fltbے`JJtArdrXQJ`tAJlpZHAbbtlZp˂ltbHAbےfpvbHAZvpfے`JXQf~HXQJ`ےltbے`JXQXv`f˂rXQ~f`˂pZpvnbHAZpvpfHQXb㉀ەH~ㅐfpfH~dQbt~HfpdQZ|XQr˂|ZdQےbHAtbdQZے`JJtArdrXQJ`dQZ|`JXQrnXv`p˂rH~fr˂pfpvbHAZnvpr˂p~HfJ`ےvXnHAbےXv`f˂rXQ~f`pJAHr`vXnf`vlJtArvnXdrtAJpZHAbbtlZp˂|drXQr˂|ZdQےbHAdrtAJZHAbf~HXQJ`ے`vXnZHAbnXv`p˂r`vXnZHAbpvnbHAZpvpfH`JXQr~HfJ`ےvXnˁ`ZvˍpfXnrd|Zv`fltbے`JJtArdrXQJ`tAJlpZHAbbtlZp˂ltbے`JXfpvbHAZvpfے`JXQf~HXQJ`ےvpfے`JXQXv`f˂rb~f`˂pZpvnbHAZpvpfHQXb㉀ەH~ㅐf˂pZHAdQbtHfpvdQtAJlXQr˂|ZdQےbHAtbdQZے`JJtArdrXQJ`dQZ|lQr˂pnXv`p˂rH~fr˂pfpvbHAZH~fr˂p~HfdQZ|vXnHAے`Xv`f˂rXQ~f`pJAHQX`vXnbے`lJtArnrXQtbdQpZHAbbtlZp˂|drXQr˂|ZdQےbHAtbnZHAbf~HXQJ`ے`vXnZHAbnXv`p˂r`vXn`JXQrpvndrtAJvpfHJXQrb~HfJ`ےvXnb㉀ۑpvˍp|JXQrd|ZJ`p˂Z|dے`JJtArdrXQJ`tAJlpZHAbbtlZp˂vp`ے`JXfpvbHAZvpfے`JXQf~HXQJ`ےvpfbtlXv`fltb~f`tlJpvnbHAZpvpfHJAHr󙐂drQt˂pZHAdQbt璀rXQJrtAJlXQr˂|ZdQےbHAtbdQZے`JJtArdrXQJ`vXnQrZnXv`p˂rH~fr˂pfpvbHAZHXnJA|Z~HfdQZ|vXntAd|Xv`f˂rb~f`ˁ`ZQXJltbے`lJtAr`ےbtbdQpZHAbbnXvZp˂|dtAXQr˂|ZdQےbHAvpfHAbے`f~HXQJ`ے`vXnZHAbnXv`p˂rvpfHdQbtpvndrtAJvpfHZdQbt~HfdQZ|vXnb㉀ۑpbAdZ|JXQrd|ZHAZp˂Z|l璐ے`J`f~rXQJ`JltpZHAbbtlZp˂~f`JXQrfpvbHAZvpfے`JXQf~HXQJ`ے~f`lJtArXv`fltb~f`lJtApvndrtAJvpfHJAHr󙐂drQt˂pZHAdQbt璀rXQJtbnXQr˂HfpvےbHAbnvے`JJtArdrXQJ`vXn˂pZHAnXv`p˂rH~fr˂pfpvbHAZvXnd|Z~HfdQZ|vXnrd|Xv`fltb~f`ۑpJJltbے`lJtAr`ےvpffpZHAbnXvZp˂pfHXQr˂|ZdQےbHAvpfHbے`f~HXQJ`ے`vXnZHAbnXv`p˂rvpfHdQbtpvndrtAJvpfHZdQbt~HfdQZ|vXnAHr󙐂bAdZ|JXQrd|ZrXQJ``vXnے`J`f~rXQJ`f`vXpZHAbbnXvZp˂XnvJXQrfpvbHAZvpfے`JXQf~HXQJ`ے~vlJtArXv`fltb~f`lJtApvndrtAJvpfH`ZQXbdrQt˂pZHAdQbtےbHAvpfXQr˂HfpvےbHAnvpے`J`f~rXQJ`pfH~˂pZAnXv`p˂rH~fr˂pfpvbHAZpfH~ZdQbt~HfdQZ|vXnrd|Xv`fltb~f`ۑpJJltbے`lJtArZp˂H~fpZHAbnXvZp˂fH~XQr˂HfpvےbHAf`v`JXQrf~HXQJ`ے`vXnZHAbnXv`p˂rf`vlJtpvndrtAJvpfHZdQbt~HfdQZ|vXnAHr󙐂bAdZ|JXQrd|ZrXQJ``vXnے`J`f~rXQJ`f`vXpZHAbnXvZp˂XnvbtlfpvbHAZvpfے`JXQf~HXQJ`ےXnvArd|Xv`fltb~f`lJtApvndrtAJvpfH`pJAHdrQt˂pZHAdQbtےbHAvpfXQr˂HfpvےbHAnvpے`J`f~rXQJ`pfH~JtAdnXv`p˂rH~fr˂pfpvbHAZpfH~ZdQbt~HfdQZ|vXnrd|Xv`fltb~f`r󙐂ˁ`Jltbے`lJtArXQJ`ےH~fvXpZHAbnXvZp˂fH~XQr˂HfpvےbHAvp|ZdQbf~HbdQZ|`vXnZHAےnXv`p˂rf`plJtpvndrtAJvpfHZdQbt~HfdQZ|vXnZQXb㉀bAdZ|JXQrd|ZbHAZnvpے`J`f~rXQJ`f`vXpZHAbnXvZp˂fH~tlJfpvdrtAvpf`JXQrf~HXQJ`ےfH~ArdZXv`fltb~f`lJtApvndrtAJvpfHۑpJAHdrQt˂pZHAdQbtp˂rfH~XQr˂HfpvےbHAnvpے`J`f~rXQJ`f`vXtArdnXv`JltH~fbtlfpvbHAZf`vXQbtl~HfdQZ|vXnrd|Xv`fltb~f`r󙐂ˁ`Jltbے`lJtArXQJ`ےf`vXpZHAbnXvZp˂fH~XQr˂HfpvےbHAnvp|ZdQbf~HbdQZ|`vXnJtAdnXv`p˂rnvpJtArdpvndrtAJvpfHZdQbt~HfdQZ|vXnZQXAHrbAdZ|JXQrd|ZbHAZnvpے`J`f~rXQJ`f`vXpZHAbnXvZp˂fH~tlJfpvdrtAvpf|ZdQbf~HbdQZ|fH~|ZdQXv`fltb~f`lJtApvndrtAJvpfHˁ`ZdrQt˂pZHAdQbtp`ےfH~XQr˂HfpvےbHAnvpے`J`f~rXQJ`f`pftArdnXv`JltH~ftlJfpvdrtAf`vXbtlHfpdQZ|vXnrd|Xv`fltb~f`QXb㉀Jltbے`lJtArbHAZpfvnpZHAbnXvZp˂fH~XQr˂HfpvےbHAH~f|ZdQbf~HbdQZ|`vXntArdnXv`JltH~fJtArdvnrdrtAJvpfHZdQbt~HfdQZ|vXnpJAHrbAdZ|JXQrd|Z˂rXQvpfHے`J`f~rXQJ`f`vXpZHAbnXvZp˂`vXntlJfpvdrtAvpf|ZdQbf~HbdQZ|`vXn|ZQbXQJ`ےltb~f`lJtApvndrtAJvpfHˁ`ZdrQt˂pZHAdQbnXJ`ے~f`XQr˂HfpvےbHAnvpے`J`f~rXQJ`vpftArdnXv`JltH~ftlJfpvdrtAvpflJtAHAZpdQZ|vXnrrd|Xv`fltb~f`QXb㉀Jltbے`v`fbHAZpvXnpZHAnXvZp˂fH~XQr˂HfpvےbHAH~f|ZdQbf~HbdQZ|`vXntArdnXv`JltH~frd|˂rXQdrtAJ˂pZZdQbtHfpdQZ|vXnˁ`ZQXbAdZ|JXQr~Hfp˂bvpfHے`JXQ`f~rXQJ`f`vXpZHAbnXvZp˂`vXHtlJfpvdrtAvpf|ZdQbf~HbdQZ|`vXnZdQbtJ`ےltbHAbےlJtAvnrdrtAJvpfHb㉀ۑpdrQt˂pZHAvnXHAZp˂~f`rbtHfpvےbHAnvpے`J`f~rXQJ`~f`tArdnXv`JltH~ftlJfpvdrtAf`lJtAbHAZpdQZ|`JXQrrd|XQJ`ےltb~f`JAHrJltbے`v`frXQJvnvplJtAdnXvZp˂fH~XQr˂HfpvےbHAvXn|ZdQbf~HbdQZ|`vXntArdnXv`JltvXnrd|˂rXQdrtAJ˂pZZdQbtHAZpdQZ|vXnےˁ`ZQXbAdZ|JXQr~Hfp`ےbfH~|ZdQ`f~rbdQZf`vXpZHAnXvZp˂vpfHtlJfpvdrtAvpf|ZdQbf~HbdQZ|vpfHZdQbJJ`ےltbHAbےlJtA˂rXQdrtAJ`JXQrb㉀XndrQt˂pZHAvnXHAZp˂f`vXbtlHfpv|drnvpے`JXQ`f~rXQJ`~f`tArdnXv`JltH~ftlJfpvdrtA~f`tArdbHAZpdQZ|`JXQrrd|J`ےltb˂pZvˍpfJltbے`v`frXQHAnvpJtArdnXvtAJlfH~rbtHfpvےbHAvXn|ZdQbf~HbdQZ|`vXntArdnXv`JltvXn|ZdQb˂rXQdrtAJ˂pZZdQbtbHAZpdQZ|HAbےH~ㅐfbAdZ|JXQr~HfpZp˂fH~|ZdQ`f~tbdQZf`vXlJtAdnXvZp˂f`vtlJfpvdrtAvpf|ZdQbf~HbdQZ|vp`vtlJJ`ےltbHAbےlJtA˂rXQdrtAJ`JXQr`vXndrQt˂pZHAvnXrXQJ`f`vXnbtlHfpv|drnvp|ZdQ`f~rbdQZXnvtArdnXv`JltH~ftlJfpvdrtAXnrtArdbHAZpdQZ|`JXQrrd|J`ےltb˂pZvˍpfJltbے`v`fےbHAvfH~JtArdnXvtAJlfH~btlHfpv|ltpfH~|ZdQbfHfbdQZ|`vXntArdnXv`Jlt˂p`J|ZdQb˂rXQdrtAJ˂pZZdQbtbHAZpdQZ|HAXQrH~ㅐfbAdZ|JXQr~HfpZp˂f`v|ZdQ`f~tbdQZf`vXJtArdnXvbdQZ|f`vtlJpvndrtAvpf|ZdQbf~HbdQZ|XQr˂tJArdJ`ےltbHAbےlJtA˂rXQdrtAJ˂pZHA`vXndrQt˂pZHAvnXrXQJ`XnvbtlHfpv|drnvp|ZdQ`f~drtAXnvtArdrXQJ`JltH~ftlJfpvdrtApZHAb|ZdbHAZpdQZ|`JXQrrd|J`ےltbbے`vˍpfJltbے`v`fp˂rpfH~JtArdnXvtAJlfH~btlHfpvJltp`vX|ZdQbےHAZbdQZ|`vXntArdnXv`Jltے`JQbtl˂rXQdrtAJ˂pZZdQbtbHAZpdQZ|JXQrH~ㅐfbAdZ|JXQr~HfpbdQZ|f`v|ZdQ`f~tbdQZf`vXJtArdnXvbdQZ|nr˂tlJp˂rdrtAr˂p|ZdQbfHfbdQZ|XQr˂JtArdJ`ےltbHAbےlJtA˂rXQdrtAJ˂pZHA`vXndrQt˂pZHAvnXltbXnvbtlHfpv|drnvp|ZdQ`f~dtbpZAb`tArdXQJ`ےJltZHAbtlJpvndrtApZHAXQ|ZdbHAZpdQZ|`JXQrrd|J`ےltbb˂vˍpfJltbے`v`fdQZ|f~f`JtArdnXvtAJlfH~btlHfpvdQZ|JXQr|ZdQbbHAZbdQZ|ے`JXQtArdrXQJ`Jltr˂pQbtl˂rXQdrtAJ˂pZZdQbtbHAZpdQZ|pZHAbH~ㅐfbAdZ|JXQr~HfpdrtAJvXn|ZdQ`f~tbdQZf`vXJtArdnXvdrtAJ˂pZHtlJp˂rdrtAr˂p|ZdQbےHAZbdQZ|ZHAbJAr|J`ےltbHAbےlJtA˂rXQdrtAJے`J`vXndrQt66666666666666666666666666666666666666666666666677777777777777 \ No newline at end of file diff --git a/vendor/endroid/qr-code/assets/data/qrv39_0.dat b/vendor/endroid/qr-code/assets/data/qrv39_0.dat deleted file mode 100755 index c7955f1fe..000000000 --- a/vendor/endroid/qr-code/assets/data/qrv39_0.dat +++ /dev/null @@ -1,345 +0,0 @@ -~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopopokkkkkklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQOOPOPOPOLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDC~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopopolklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPONMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDC~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopopolklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQNMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDC~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopopolklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQNMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDC~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopopolklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQNMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDC~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqponmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQNMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDC~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqnmnmnmnmlklkkkkkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQNMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDC~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqnmnmnmnmklklklkljijijijihghghghgfefefefedcdcdcdcbabababa`_`_^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQNMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDC~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqnmnmnmnmklklklkljijijijihghghghgfefefefedcdcdcdcbabababa^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQNMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDC~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqnmnmnmnmklklklkljijijijihghghghgfefefefedcdcdcdcbabababa^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDC~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqnmnmnmnmklklklkljijijijihghghghgfefefefedcdcdcdcbabababa^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSPOPOOOOONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDC~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqnmnmnmnmklklklkljijijijihghghghgfefefefedcdcdcdcbaba`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSOPOPOPOPNMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDC~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqnmnmnmnmklklklkkjijijijihghghghgfefefefedcdcdcdc`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSOPOPOPOPNMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDC~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqnmnmnmnmkkkklklkjijijijihghghghgfefefefedcdcdcdc`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSOPOPOPOPNMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDC~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqnmnmnmnmlklklklkjijijijihghghghgfefefefedcdcdcdc`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSOPOPOPOPNMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDC~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqnmnmnmnmlklklklkjijijijihghghghgfefefefedcdcbaba`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSOPOPOPOPNMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDC~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqnmnmnmnmlklklklkjijijijihghghghgfefefefebabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSOPOPOPOONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDC~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqponmnmnmnmlklklklkjijijijihghghghgfefefefebabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSOOOOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDC~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststspopopoponmnmnmnmlklklklkjijijijihghghghgfefefefebabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDC~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststspopopoponmnmnmnmlkkkkkkljijijijihghghghgfefedcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDC~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststspopopoponmnmnmnmklklklkljijijijihghghghgdcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDC~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutststsrqpopopoponmnmnmnmklklklkljijijijihghghghgdcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVUTSTSTSTSPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDC~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvurqrqrqrqpopopoponmnmnmnmklklklkljijijijihghghghgdcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVURQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDC~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvurqrqrqrqpopopoponmnmnmnmklklklkljijijijihghgfefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVURQRQRQRQPOOOOOOPNMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDC~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvurqrqrqrqpopopoponmnmnmnmklklklkljijijijifefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVURQRQRQRQOPOPOPOPNMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCBABABA~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvutsrqrqrqrqpopopoponmnmnmnmklklkkkkjijijijifefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVURQRQRQRQOPOPOPOPNMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEBABABABA~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwtstststsrqrqrqrqpopopoponmnmnmnmkklklklkjijijijifefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVURQRQRQRQOPOPOPOPNMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEBABABABA~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwtstststsrqrqrqrqpopopoponmnmnmnmlklklklkjijihghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVURQRQRQRQOPOPOPOPNMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEBABABABA~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwtstststsrqrqrqrqpopopoponmnmnmnmlklklklkhghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVURQRQRQRQOPOPOPOPNMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGFEDCDCDCBABABABA~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwvutstststsrqrqrqrqpopopoponmnmnmnmlklklklkhghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVURQRQRQRQOPOPOOOONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGDCDCDCDCBABABABA~}~}~}~}|{|{|{|{zyzyzyzyvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmkkkklklkhghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVURQRQRQRQOOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGDCDCDCDCBABABABA~}~}~}~}|{|{|{|{zyzyzyzyvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmlklkjijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVURQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGHGHGHGDCDCDCDCBABABABA~}~}~}~}|{|{|{|{zyzyzyzyvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVURQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIHGFEFEFEDCDCDCDCBABABABA~}~}~}~}|{|{|{|{zyzyzyxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUVUVURQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDCBABABABA~}~}~}~}|{|{|{|{xwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWVUVUTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDCBABABABA~}~}~}~}|{|{|{|{xwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDCBABABABA~}~}~}~}|{|{|{|{xwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWTSTSTSTSRQRQRQRQOOOOOPOPNMNMNMNMLKLKLKLKJIHGHGHGFEFEFEFEDCDCDCDCBABABABA~}~}~}~}|{|{|{zyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWXWXWTSTSTSTSRQRQRQRQOPOPOPOPNMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEDCDCDCDCBABABABA~}~}~}~}zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmnmjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYXWXWVUVUTSTSTSTSRQRQRQRQOPOPOPOPNMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEDCDCDCDCBABABABA~}~}~}~}zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopoponmnmnmlkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTSRQRQRQRQOPOPOPOPNMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEDCDCDCDCBABABABA~}~}~}~}zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopopolklklkkkjijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTSRQRQRQRQOPOPOPOPNMNMNMNMLKJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABABABABABA~}~}~}|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopopokkklklkljijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTSRQRQRQRQOPOPOPOPNMNMNMNMJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABABABABABA|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopopoklklklkljijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[ZYZYXWXWVUVUVUVUTSTSTSTSRQRQRQRQOPOOOOOONMNMNMNMJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABABABABABA|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopopoklklklkljijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMNMNMNMJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABABABABABA|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopopoklklklkljijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPONMLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABABABABABA~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopopoklklklkljijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOPOLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABABABABABA~}~}~}~}|{|{|{|{zyzyzyzyxwxwxwxwvuvuvuvutstststsrqrqrqrqpopopopoklklklkljijijijihghghghgfefefefedcdcdcdcbabababa`_`_`_`_^]^]^]^]\[\[ZYZYXWXWXWXWVUVUVUVUTSTSTSTSRQRQRQRQPOPOPOOOLKLKLKLKJIJIJIJIHGHGHGHGFEFEFEFEDCDCDCDCBABABABABABABABABABABABA@?@?@?@?>=>=>=>=<;<;<;<;878787876565656534343434212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        BABABABA@?@?@?@?>=>=>=>=<;:9:9:9878787876565656534343434212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        BABABABA@?@?@?@?>=>=>=>=:9:9:9:9878787876565656534343434212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        BABABABA@?@?@?@?>=>=>=>=:9:9:9:987878787656565653434343421212121.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - BABABABA@?@?@?@?>=>=>=>=:9:9:9:987878787656565653434343421212121.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - BABABABA@?@?@?@?>=<;<;<;:9:9:9:987878787656565653333334321212121.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - BABABABA@?@?@?@?<;<;<;<;:9:9:9:987878787656565654343434321212121.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - BABABABA@?@?@?@?<;<;<;<;:9:9:9:98787878765656565434343430/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!       - - - - BABABABA@?@?@?@?<;<;<;<;:9:9:9:98787878765656565434343430/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!     - - - - BABABABA@?>=>=>=<;<;<;<;:9:9:9:98787878765656565434333330/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!     - - - - BABABABA>=>=>=>=<;<;<;<;:9:9:9:98787878765656565434343430/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!     - - - - BABABABA>=>=>=>=<;<;<;<;:9:9:9:98787878765656565212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!     - - - - BABABABA>=>=>=>=<;<;<;<;:9:9:9:98787878765656565212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - BA@?@?@?>=>=>=>=<;<;<;<;:9:9:9:98787878765656565212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - @?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:98787878765656565212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - @?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:98787878765656565212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - @?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:98787878765656565212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - @?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:98787878765656565212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - @?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:98787878765656565212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!    - - - - @?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:98787878765434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!    - - - - @?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:98787878743333334212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!    - - - - @?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:98787878734343434212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!    - - - - @?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:98787878734343434212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#        - - - - @?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:98787878734343434212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#        - - - - @?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:98787878734343434212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#        - - - - @?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:98787878734343434212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#        - - - - @?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:98787878734343333212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%"!"!"!"!        - - - - @?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:98787878733434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%"!"!"!"!        - - - - @?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:98787878743434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%"!"!"!"!        - - - - @?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:98787878743434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%"!"!"!"!        - - - - @?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:98787878743434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!        - - - - @?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:98787876543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!        - - - - @?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:96565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!        - - - - @?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:96565656533333434212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!        - - - - @?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:96565656534343434212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"!        - - - - @?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:96565656534343434212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"!        - - - - @?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:96565656534343434212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"!        - - - - @?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:96565656534343434212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"!        - - - - @?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:96565656534343434212121210/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - @?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:96565656534333333212121210/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - @?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:96565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - @?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:96565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - @?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:96565656543434343212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - @?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:96565656543434343212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - @?@?@?@?>=>=>=>=<;<;<;<;:98787876565656543434343212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - @?@?@?@?>=>=>=>=<;<;<;<;878787876565656543434333212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - @?@?@?@?>=>=>=>=<;<;<;<;878787876565656533343434212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - !!""##$$rrqqkkjj - - ))**++,,ttssrrqqIIJJKKLLTTSSRRQQiijjkkll44332211==>>??@@BBAA@@?? &&''(())wwvvuuttFFGGHHIIWWVVUUTTffgghhii??@@AABB^^]]\\[[__``aabb>>==<<;;##$$%%&&kkjjiihh}}~~~~<<==>>??aa``__^^%%&&''((iihhggff --..//00ppoonnmmMMNNOOPPPPOONNMMmmnnoopp00//..-- AABBCCDD>>==<<;; - - **++,,--ssrrqqppJJKKLLMMSSRRQQPPjjkkllmmCCDDEEFFZZYYXXWWccddeeff::998877 - -''(())**ggffeedd !!""##}}||{{zz@@AABBCC]]\\[[ZZ))**++,,eeddccbb11223344llkkjjiiQQRRSSTTLLKKJJIIqqrrsstt,,++**)) - - EEFFGGHH::998765..//0011oonnmmllNNOOPPQQOONNMMLLnnooppqqGGHHIIJJVVUUTTSSgghhiijj66554433 ++,,--..ccbbaa``$$%%&&''yyxxwwvvDDEEFFGGYYXXWWVV--..//00aa``__^^55667788hhggffeeUUVVWWXXHHGGFFEEuuvvwwxx((''&&%%IIJJKKLL43322110 22334455kkjjiihhRRSSTTUUKKJJIIHHrrssttuu - -~~}}||{{KKLLMMNNRRQQPPOOkkllmmnn221100////001122__^^]]\\ - - (())**++uuttssrrHHIIJJKKUUTTSSRR11223344]]\\[[ZZ99::;;<>??@@``__^^]]]]^^__``@@??>>==}}~~ VVWWXXYY,++**))(::;;<<==ccbbaa``ZZ[[\\]]CCBBAA@@zz{{||}}vvuuttssSSTTUUVVJJIIHHGGssttuuvv**))(('' - - 778899::WWVVUUOO00112233mmllkkjjPPQQRRSSMMLLKKJJ99::;;<>??@@AA__^^]]\\^^__``aa??>>==<<~~ - - rrqqponmWWXXYYZZFFEEDDCCwwxxyyzz&&%%$$##;;<<==>>NNMMLLKK44556677iihhggffTTUUVVWWIIHHGGFF==>>??@@LLKKJJII%%&&''((xxwwvvuuEEFFGGHHXXWWVVUUeeffgghh88776655 - - ^^__``aa$##""!! ""##$$%%{{zzyyxxBBCCDDEE[[ZZYYXXbbccddee;;::9988 lkkjjiih[[\\]]^^BBAA@@??{{||}}~~""!!  !!""~~}}||{{??@@AABBJJIIHHGG8899::;;eeddccbbXXYYZZ[[EEDDCCBBAABBCCDDHHGGFFEE))**++,,ttssrrqqIIJJKKLLTTSSRRQQiijjkkll44332211 bbccddee  &&''(())wwvvuuttFFGGHHIIWWVVUUTTffgghhii77665544hggffeed__``aabb>>==<<;;##$$%%&&zzyyxxwwCCDDEEFFFFEEDDCC~~<<==>>??aa``__^^\\]]^^__AA@@??>>EEFFGGHHDDCCBBAA--..//00ppoonnmmMMNNOOPPPPOONNMMmmnnoopp00//..-- ffgghhii - - **++,,--ssrrqqppJJKKLLMMSSRRQQPPjjkkllmm33221100dccbbaa`ccddeeff::998877 - -''(())**vvuuttssGGHHIIJJBBAA@@?? !!""##}}||{{zz@@AABBCC]]\\[[ZZ``aabbcc==<<;;::IIJJKKLL@@??>>==11223344llkkjjiiQQRRSSTTLLKKJJIIqqrrsstt,,++**)) - - ~~}}||{{jjkkqqrr..//0011oonnmmllNNOOPPQQOONNMMLLnnooppqq//..--,, `__^^]]\gghhiijj66554433 ++,,--..rrqqppooKKLLMMNN>>==<<;;$$%%&&''yyxxwwvvDDEEFFGGYYXXWWVVddeeffgg99887766~~}}MMNNOOPP<<;;::9955667788hhggffeeUUVVWWXXHHGGFFEEuuvvwwxx((''&&%%zzyyxxwwssttuuvv22334455kkjjiihhRRSSTTUUKKJJIIHHrrssttuu++**))((!!""##$$\[[ZZYYXkkllmmnn221100////001122nnmmllkkOOPPQQRR::993322(())**++uuttssrrHHIIJJKKUUTTSSRRhhiijjkk55443322||{{zzyyQQRRSSTT3322110099::;;<>??@@``__^^]]]]^^__``@@??>>==}}~~ !!""##$$rrqqkkjj{{||}}~~ ::;;<<==ccbbaa``ZZ[[\\]]CCBBAA@@zz{{||}}##""!! ))**++,,SRQPOONNssttuuvv**))(('' - - 778899::ffeeddccWWXXYYZZ--,,++**00112233mmllkkjjPPQQRRSSMMLLKKJJppqqrrss--,,++**ttssrrqqYYZZ[[\\++**))((AABBCCDD\\[[ZZYYaabbccdd<<;;::99%%&&''((iihhggff !!~~}}||>>??@@AA__^^]]\\^^__``aa??>>==<<~~--..//00MMLLKKJJwwxxyyzz&&%%$$##;;<<==>>bbaa``__[[\\]]^^))((''&&44556677iihhggffTTUUVVWWIIHHGGFFttuuvvww))((''&&ppoonnmm]]^^__``''&&%%$$EEFFGGHHXXWWVVUUeeffgghh88776655 - - ))**++,,eeddccbb""##$$%%{{zzyyxxBBCCDDEE[[ZZYYXXbbccddee;;::998811223399IIHHGGFF{{||}}~~""!!  !!""~~}}||{{??@@AABB^^]]\\[[__``aabb%%$$##""8899::;;eeddccbbXXYYZZ[[EEDDCCBBxxyyzz{{%%$$##""llkkjjiiaabbccdd##""!! IIJJKKLLTTSSRRQQiijjkkll44332211 --..//00aa``__^^ &&''(())wwvvuuttFFGGHHIIWWVVUUTTffgghhii77665544::;;<<==EEDDCCBB##$$%%&&zzyyxxwwCCDDEEFFZZYYXXWWccddeeff!! <<==>>??aa``__^^\\]]^^__AA@@??>>||}}~~!! hhggffeeeeffgghhMMNNOOPPPPOONNMMmmnnoopp00//..-- 11223344]]\\[[ZZ - - **++,,--ssrrqqppJJKKLLMMSSRRQQPPjjkkllmm33221100>>??@@AAAA@@??>> - -''(())**vvuuttssGGHHIIJJVVUUTTSSgghhiijj@@AABBCC]]\\[[ZZ``aabbcc==<<;;::ddccbbaaiijjkkll~~}}||QQRRSSTTLLKKJJIIqqrrsstt,,++**)) - - 55667788YYXXWWVV..//0011oonnmmllNNOOPPQQOONNMMLLnnooppqq//..--,, BBCCDDEE==<<;;:: ++,,--..rrqqppooKKLLMMNNRRQQPPOOkkllmmnnDDEEFFGGYYXXWWVVddeeffgg99887766``__^^]]mmnnoopp{{zzyyxxUUVVWWXXHHGGFFEEuuvvwwxx((''&&%%99::;;<>??@@LLKKJJII66778899ggffeeddVVWWXXYYGGFFEEDDvvwwxxyy''&&%%$$JJKKLLMM3221100/ 33445566jjiihhggSSTTUUVVJJIIHHGGssttuuvv - - }}||{{zzLLMMNNOOQQPPOONNllmmnnoo1100//..XXWWVVUUuuvvwwxx - - - -ssrrqqpo]]^^__``@@??>>==}}~~ !!""##$$||{{zzyyAABBCCDDHHGGFFEE::;;<<==ccbbaa``ZZ[[\\]]CCBBAA@@zz{{||}}##""!! NNOOUUVV/..--,,+ - - 778899::ffeeddccWWXXYYZZFFEEDDCCwwxxyyzzyyxxwwvvPPQQRRSSMMLLKKJJppqqrrss--,,++** - -TTSSRRQQyyzz{{|| nmlkkjjiaabbccdd<<;;::99%%&&''((xxwwvvuuEEFFGGHHDDCCBBAA !!~~}}||>>??@@AA__^^]]\\^^__``aa??>>==<<~~WWXXYYZZ+**))((';;<<==>>bbaa``__[[\\]]^^BBAA@@??{{||}}~~uuttssrrTTUUVVWWIIHHGGFFttuuvvww))((''&& PPOONNMM}}~~ihhggffeeeffgghh88776655 - - ))**++,,ttssrrqqIIJJKKLL@@??>>==""##$$%%{{zzyyxxBBCCDDEE[[ZZYYXXbbccddee;;::9988 [[\\]]^^'&&%%$$# !!""~~}}||{{??@@AABB^^]]\\[[__``aabb>>==<<;; - - qqponmlkXXYYZZ[[EEDDCCBBxxyyzz{{%%$$##""LLKKJJIIeddccbbaiijjkkll44332211 --..//00ppoonnmmMMNNOOPP<<;;::99&&''(())wwvvuuttFFGGHHIIWWVVUUTTffgghhii77665544 - - __``aabb#""!! ##$$%%&&zzyyxxwwCCDDEEFFZZYYXXWWccddeeff::998877 kjjiihhg\\]]^^__AA@@??>>||}}~~!! HHGGFFEEa``__^^]mmnnoopp00//..-- 11223344llkkjjiiQQRRSSTT33221100**++,,--ssrrqqppJJKKLLMMSSRRQQPPjjkkllmm33221100ccddeeff - -''(())**vvuuttssGGHHIIJJVVUUTTSSgghhiijj66554433gffeeddc``aabbcc==<<;;::DDCCBBAA !!""##]\\[[ZZYqqrrsstt,,++**)) - - 55667788hhggffeeUUVVWWXX//..--,,..//0011oonnmmllNNOOPPQQOONNMMLLnnooppqq//..--,, ~~gghhiijj ++,,--..rrqqppooKKLLMMNNRRQQPPOOkkllmmnn221100//cbbaa``_ddeeffgg99887766 - - @@??>>==$$%%&&''YXXWWVVUuuvvwwxx((''&&%%99::;;<>??@@``__^^]]]]^^__``''&&%%$$66778899ggffeeddVVWWXXYYGGFFEEDDvvwwxxyy''&&%%$$yyxxwwvvttuuvvww 33445566jjiihhggSSTTUUVVJJIIHHGGssttuuvv**))((''""##$$%%[ZZYYXXWllmmnnoo1100//..88776655,,--..//NNMMLLKK}}~~ !!""##$$||{{zzyyAABBCCDD\\[[ZZYYaabbccdd##""!! ::;;<<==ccbbaa``ZZ[[\\]]CCBBAA@@zz{{||}}##""!!  !!uuttssrrxxyyzz{{ - - 778899::ffeeddccWWXXYYZZFFEEDDCCwwxxyyzz&&%%$$##&&''(())WVVUUTSRppqqrrss--,,++** - -4433221100112233JJIIHHGG%%&&''((xxwwvvuuEEFFGGHHXXWWVVUUeeffgghh>>??@@AA__^^]]\\^^__``aa??>>==<<~~""##$$%%qqkkjjii||}}~~;;<<==>>bbaa``__[[\\]]^^BBAA@@??{{||}}~~""!! **++,,--QPOONNMMttuuvvww))((''&& 00//..--99::;;<>==<<;;..//0011LLKKJJIIxxyyzz{{%%$$##"",,++**))==>>??@@BBAA@@?? --..//00ppoonnmmMMNNOOPPPPOONNMMmmnnooppFFGGHHIIWWVVUUTTffgghhii77665544 - - **++,,--ddccbbaa##$$%%&&zzyyxxwwCCDDEEFFZZYYXXWWccddeeff::998877223399::HHGGFFEE||}}~~!!  !!""##((''&&%%AABBCCDD>>==<<;; 11223344llkkjjiiQQRRSSTTLLKKJJIIqqrrsstt ~~}}||JJKKLLMMSSRRQQPPjjkkllmm33221100..//0011``__^^]] - -''(())**vvuuttssGGHHIIJJVVUUTTSSgghhiijj66554433;;<<==>>DDCCBBAA$$%%&&''$$##""!!EEFFGGHH::998765 - - 55667788hhggffeeUUVVWWXXHHGGFFEEuuvvwwxx - - {{zzyyxxNNOOPPQQOONNMMLLnnooppqq//..--,, 22334455\\[[ZZYY ++,,--..rrqqppooKKLLMMNNRRQQPPOOkkllmmnn221100//??@@AABB@@??>>== - - (())**++ IIJJKKLL4332211099::;;<>??@@``__^^]]]]^^__``@@??>>==}}~~ - -ssrrqqpoVVWWXXYYGGFFEEDDvvwwxxyy''&&%%$$::;;<<==OONNMMLL33445566jjiihhggSSTTUUVVJJIIHHGGssttuuvv**))(('' - - GGHHIIJJ8765433200112233VVWWXXYY,++**))(!!""##$$||{{zzyyAABBCCDD\\[[ZZYYaabbccdd<<;;::99 nmlkkjjiZZ[[\\]]CCBBAA@@zz{{||}}##""!!  !!~~}}||>>??@@AAKKJJIIHH778899::ffeeddccWWXXYYZZFFEEDDCCwwxxyyzz&&%%$$##KKLLMMNN21100//. - -44556677ZZ[[\\]](''&&%%$%%&&''((xxwwvvuuEEFFGGHHXXWWVVUUeeffgghh88776655ihhggffe^^__``aa??>>==<<~~""##$$%%{{zzyyxxBBCCDDEEGGFFEEDD;;<<==>>bbaa``__[[\\]]^^BBAA@@??{{||}}~~""!! OOUUVVWW.--,,++* 8899::;; ^^__``aa$##""!! - - ))**++,,ttssrrqqIIJJKKLLTTSSRRQQiijjkkll44332211eddccbbabbccddee;;::9988 &&''(())wwvvuuttFFGGHHIICCBBAA@@ !!""~~}}||{{??@@AABB^^]]\\[[__``aabb>>==<<;;XXYYZZ[[*))((''&~~<<==>>?? - - bbccddee  --..//00ppoonnmmMMNNOOPPPPOONNMMmmnnoopp00//..--a``__^^]ffgghhii77665544 - - **++,,--ssrrqqppJJKKLLMM??>>==<<##$$%%&&zzyyxxwwCCDDEEFFZZYYXXWWccddeeff::998877 - -\\]]^^__&%%$$##" !!""##}}||{{zz@@AABBCC\\]]^^__ - - ffgghhii11223344llkkjjiiQQRRSSTTLLKKJJIIqqrrsstt,,++**)) !!""##]\\[[ZZYjjkkllmm33221100..//0011oonnmmllNNOOPPQQ;;::9933''(())**vvuuttssGGHHIIJJVVUUTTSSgghhiijj66554433 ``aabbcc"!! $$%%&&''yyxxwwvvDDEEFFGG``aabbcc jjkkqqrr55667788hhggffeeUUVVWWXXHHGGFFEEuuvvwwxx((''&&%%$$%%&&''YXXWWVVUnnooppqq//..--,, 22334455kkjjiihhRRSSTTUU221100//++,,--..rrqqppooKKLLMMNNRRQQPPOOkkllmmnn221100//ddeeffgg - - (())**++uuttssrrHHIIJJKKddeeffggssttuuvv99::;;<>??@@``__^^]]]]^^__``@@??>>==}}~~ ,,--..//NNMMLLKKvvwwxxyy''&&%%$$::;;<<==ccbbaa``ZZ[[\\]]**))((''33445566jjiihhggSSTTUUVVJJIIHHGGssttuuvv**))(('' - - ||{{zzyyqqrrsstt00112233mmllkkjjPPQQRRSSllmmnnoozzyyxxww{{||}}~~ !!""##$$||{{zzyyAABBCCDD\\[[ZZYYaabbccdd<<;;::9900112233JJIIHHGGzz{{||}}##""!!  !!~~}}||>>??@@AA__^^]]\\^^__``aa&&%%$$##778899::ffeeddccWWXXYYZZFFEEDDCCwwxxyyzz&&%%$$##xxwwvvuuuuvvwwxx 44556677iihhggffTTUUVVWWppqqrrss vvuuttss%%&&''((xxwwvvuuEEFFGGHHXXWWVVUUeeffgghh8877665599::;;<>bbaa``__[[\\]]^^BBAA@@??{{||}}~~""!!  !!""ttssrrqqyyzz{{|| - - 8899::;;eeddccbbXXYYZZ[[ttuuvvwwxxyyzz{{%%$$##""LLMMNNOO100//..- - - 55667788hhggffeeUUVVWWXXHHGGFFEEuuvvwwxx - - {{zzyyxxNNOOPPQQOONNMMLLnnooppqq//..--,, MMNNOOUU++**))((||}}~~!! UUVVWWXX-,,++**)99::;;<>??@@``__^^]]]]^^__``@@??>>==}}~~ - -ssrrqqpoVVWWXXYYGGFFEEDDvvwwxxyy''&&%%$$ZZ[[\\]]##""!!  - - ]]^^__``%$$##""!!!""##$$||{{zzyyAABBCCDD\\[[ZZYYaabbccdd<<;;::99 nmlkkjjiZZ[[\\]]CCBBAA@@zz{{||}}##""!! ^^__``aa aabbccdd! %%&&''((xxwwvvuuEEFFGGHHXXWWVVUUeeffgghh88776655ihhggffe^^__``aa??>>==<<~~bbccddeeeeffgghh - - ))**++,,ttssrrqqIIJJKKLLTTSSRRQQiijjkkll44332211eddccbbabbccddee;;::9988 ffgghhii - -~~}}||iijjkkqq --..//00ppoonnmmMMNNOOPPPPOONNMMmmnnoopp00//..--a``__^^]ffgghhii77665544 - - jjkkqqrr {{zzyyxxrrssttuu11223344llkkjjiiQQRRSSTTLLKKJJIIqqrrsstt,,++**)) !!""##]\\[[ZZYjjkkllmm33221100ssttuuvv wwvvuuttvvwwxxyy 55667788hhggffeeUUVVWWXXHHGGFFEEuuvvwwxx((''&&%%$$%%&&''YXXWWVVUnnooppqq//..--,, ~~}}||{{wwxxyyzz - -  !!""##ssrrqqkkzz{{||}} - - 99::;;<>??@@``__^^]]]]^^__``@@??>>==}}~~ ,,--..//NNMMLLKKvvwwxxyy''&&%%$$vvuuttss - - (())**++ffeeddcc!!""##$$||{{zzyyAABBCCDD\\[[ZZYYaabbccdd<<;;::9900112233JJIIHHGGzz{{||}}##""!!  !!rrqqkkjj ,,--..//bbaa``__%%&&''((xxwwvvuuEEFFGGHHXXWWVVUUeeffgghh8877665599::;;<>??@@BBAA@@?? &&''(())eeddccbb44556677ZZYYXXWW --..//00ppoonnmmMMNNOOPPPPOONNMMmmnnoopp00//..-- AABBCCDD>>==<<;; - - **++,,--aa``__^^ !!8899::;;VVUUOONN11223344llkkjjiiQQRRSSTTLLKKJJIIqqrrsstt,,++**)) - - EEFFGGHH::998765..//0011]]\\[[ZZ""##$$%%~~<<==>>??MMLLKKJJ55667788hhggffeeUUVVWWXXHHGGFFEEuuvvwwxx((''&&%%IIJJKKLL43322110 22334455YYXXWWVV&&''(()) !!""##}}||{{zz@@AABBCCIIHHGGFF99::;;<>??@@``__^^]]]]^^__``@@??>>==}}~~ VVWWXXYY,++**))(::;;<<==LLKKJJII..//0011(())**++uuttssrrHHIIJJKKAA@@??>>!!""##$$||{{zzyyAABBCCDD\\[[ZZYYaabbccdd<<;;::99ZZ[[\\]](''&&%%$ !!~~}}||>>??@@AAHHGGFFEE22334455,,--..//qqppoonnLLMMNNOO==<<;;::%%&&''((xxwwvvuuEEFFGGHHXXWWVVUUeeffgghh88776655 - - ^^__``aa$##""!! ""##$$%%{{zzyyxxBBCCDDEEDDCCBBAA6677889900112233mmllkkjjPPQQRRSS99332211))**++,,ttssrrqqIIJJKKLLTTSSRRQQiijjkkll44332211 bbccddee  &&''(())wwvvuuttFFGGHHII@@??>>==::;;<<==44556677iihhggffTTUUVVWW00//..----..//00ppoonnmmMMNNOOPPPPOONNMMmmnnoopp00//..-- ffgghhii - - **++,,--ssrrqqppJJKKLLMM<<;;::99>>??@@AA8899::;;eeddccbbXXYYZZ[[,,++**))11223344llkkjjiiQQRRSSTTLLKKJJIIqqrrsstt,,++**)) - - ~~}}||{{jjkkqqrr..//0011oonnmmllNNOOPPQQ33221100BBCCDDEE~~<<==>>??aa``__^^\\]]^^__((''&&%%55667788hhggffeeUUVVWWXXHHGGFFEEuuvvwwxx((''&&%%zzyyxxwwssttuuvv22334455kkjjiihhRRSSTTUU//..--,,FFGGHHII}}||{{zz@@AABBCC]]\\[[ZZ``aabbcc$$##""!!99::;;<>??@@``__^^]]]]^^__``@@??>>==}}~~ !!""##$$rrqqkkjj{{||}}~~ ::;;<<==ccbbaa``ZZ[[\\]]''&&%%$$~~}}||NNOOPPQQuuttssrrHHIIJJKKUUTTSSRRhhiijjkkAABBCCDD\\[[ZZYYaabbccdd<<;;::99%%&&''((iihhggff !!~~}}||>>??@@AA__^^]]\\^^__``aa##""!! {{zzyyxxRRSSTTUUqqppoonnLLMMNNOOQQPPOONNllmmnnooEEFFGGHHXXWWVVUUeeffgghh88776655 - - ))**++,,eeddccbb""##$$%%{{zzyyxxBBCCDDEE[[ZZYYXXbbccddeewwvvuuttVVWWXXYYmmllkkjjPPQQRRSSMMLLKKJJppqqrrss ~~}}IIJJKKLLTTSSRRQQiijjkkll44332211 --..//00aa``__^^ &&''(())wwvvuuttFFGGHHIIWWVVUUTTffgghhiissrrqqppZZ[[\\]]iihhggffTTUUVVWWIIHHGGFFttuuvvww - - ||{{zzyyMMNNOOPPPPOONNMMmmnnoopp00//..-- 11223344]]\\[[ZZ - - **++,,--ssrrqqppJJKKLLMMSSRRQQPPjjkkllmmoonnmmll^^__``aaeeddccbbXXYYZZ[[EEDDCCBBxxyyzz{{xxwwvvuuQQRRSSTTLLKKJJIIqqrrsstt,,++**)) - - 55667788YYXXWWVV..//0011oonnmmllNNOOPPQQOONNMMLLnnooppqq kkjjiihhbbccddeeaa``__^^\\]]^^__AA@@??>>||}}~~ ttssrrqqUUVVWWXXHHGGFFEEuuvvwwxx((''&&%%99::;;<>??@@LLKKJJII66778899ggffeeddVVWWXXYYGGFFEEDDvvwwxxyy ccbbaa``jjkkllmmYYXXWWVVddeeffgg99887766jiihhggf]]^^__``@@??>>==}}~~ !!""##$$||{{zzyyAABBCCDDHHGGFFEE::;;<<==ccbbaa``ZZ[[\\]]CCBBAA@@zz{{||}}__^^]]\\nnooppqqUUTTSSRRhhiijjkk55443322feeddccbaabbccdd<<;;::99%%&&''((xxwwvvuuEEFFGGHHDDCCBBAA !!~~}}||>>??@@AA__^^]]\\^^__``aa??>>==<<~~[[ZZYYXXrrssttuuQQPPOONNllmmnnoo1100//..baa``__^eeffgghh88776655 - - ))**++,,ttssrrqqIIJJKKLL@@??>>==""##$$%%{{zzyyxxBBCCDDEE[[ZZYYXXbbccddee;;::9988WWVVUUTTvvwwxxyyMMLLKKJJppqqrrss--,,++** !!""^]]\\[[Ziijjkkll44332211 --..//00ppoonnmmMMNNOOPP<<;;::99&&''(())wwvvuuttFFGGHHIIWWVVUUTTffgghhii77665544 !!""##SSRRQQPPzz{{||}}IIHHGGFFttuuvvww))((''&&##$$%%&&ZYYXXWWVmmnnoopp00//..-- 11223344llkkjjiiQQRRSSTT33221100**++,,--ssrrqqppJJKKLLMMSSRRQQPPjjkkllmm33221100$$%%&&''OONNMMLL~~EEDDCCBBxxyyzz{{%%$$##""''(())**VUUTSRQPqqrrsstt,,++**)) - - 55667788hhggffeeUUVVWWXX//..--,,..//0011oonnmmllNNOOPPQQOONNMMLLnnooppqq//..--,,(())**++KKJJIIHHAA@@??>>||}}~~!! ++,,--..OONNMMLLuuvvwwxx((''&&%%99::;;<>??@@``__^^]]]]^^__``''&&%%$$66778899ggffeeddVVWWXXYYGGFFEEDDvvwwxxyy''&&%%$$00112233CCBBAA@@998877663399::;;GGFFEEDD}}~~ !!""##$$||{{zzyyAABBCCDD\\[[ZZYYaabbccdd##""!! ::;;<<==ccbbaa``ZZ[[\\]]CCBBAA@@zz{{||}}##""!! 99::;;<>==<<55443322<<==>>??CCBBAA@@%%&&''((xxwwvvuuEEFFGGHHXXWWVVUUeeffgghh>>??@@AA__^^]]\\^^__``aa??>>==<<~~==>>??@@;;::99881100//..@@AABBCC??>>==<< - - ))**++,,ttssrrqqIIJJKKLLTTSSRRQQiijjkkllBBCCDDEE[[ZZYYXXbbccddee;;::9988AABBCCDD77665544--,,++** - -DDEEFFGG;;::9987 --..//00ppoonnmmMMNNOOPPPPOONNMMmmnnooppFFGGHHIIWWVVUUTTffgghhii77665544EEFFGGHH33221100))((''&& HHIIJJKK65433221 11223344llkkjjiiQQRRSSTTLLKKJJIIqqrrsstt ~~}}||JJKKLLMMSSRRQQPPjjkkllmm33221100IIJJKKLL//..--,,fpvp˂rrtAdQZXnv|ZdQbfpvbHAZdrtAvpfr˂p|ZdQbfpvbHAZdrtAvpftlJ~Hfp˂rXQltb~f`tAd|~HfJ`ےdQZ|vXn`JXQrrd|~HXvrAJlpfH~˂pZHAdQbtvnXHAZp˂rtAJlpfH~lJtAv`frXQJdQZ|H~f`JXQHfpvےbHA|drnvpXQr˂nXv`XQJ`ے|drp`vXtlJnXv`p˂rJltH~fZHAbtlJnXv`p˂rJltے`JXQtArdvnXJ`ےdQZ|vXnZdQbtpvnbHAZpdrtAJvpfH˂pZZdQbt`f~tbdQf`vbے`lJtArv`frXQJtbdQf`vd|Z~Hfp`ےbdrtAJ`vXnrbt璀nXvZp˂tAJlfH~pZHAbf~HbHAZtAJlnvptArdf~HXQJ`ےbdQZ|`vXnے`JXQtArdf~HXQJ`ےbdQZ|HAbے|ZdQbv`f~bHAZpdrtAJvpfےlJtAXv`f˂rXQltb~f`HAbےlJtAHfpvZ|dXnvJXQrd|Z~Hfp`ےbZ|dXnvdQbtvnXHAZp˂ltbvp`lJtAd`f~rXQJ`tbdQZf`vXے`Jfpvp˂rtbdQZfH~|ZdQbfpvbHAZdrtAvpfr˂p|ZdQbfpvbHAZdtAJ`JXQrtlJfpv˂rXQltb`JXQrrd|~HfJ`ےdQZ|vXn`JXQrrd|nXvrtAJlpfH~˂pZHAdQbtvnXHAZp˂rtAJlpfے`lJtArv`frXQJdQZ|vXn|ZdQHfpvےbHA|drnvpXQr˂nXv`XQJ`ے|drf`vXtlJnXv`p˂rJltH~fZHAbtlJnXv`p˂rltb˂pZtArdtnXv`J`ےdQZ|˂pZZdQbtpvnbHAZpdrtAJvpfH˂pZZdQbt`pvtbdQf`vbے`lJtArv`frXQJtbdQJXQrd|Z~Hfp`ےbdrtAJvpfHbtlnXvZp˂tAJlfH~pZHAbf~HbHAZtAJlnvptArdf~HXQJ`ےbdQZ|`vXnے`JXQtArdf~HXQJ`ےnvpHAbےlJtAf~HbHAZpdtAJlHAbےlJtAXv`f˂rXQltb~f`HAbےlJtAnrXQJZ|dXnvJXQrd|Z~Hfp`ےbZ|d˂pZHAdQbtvnXHAZp˂ltd~f`JtArd`f~rXQJ`tbdQZf`vXے`Jfpvp˂rtdrtAfH~|ZdQbfpvbHAZdrtAvpfr˂p|ZdQbfpvbHAZfHf`JXQrrd|fpv˂rXQtbn`JXQrrd|~HfJ`ےdQZ|vXn`JXQrrd|`p˂rtAJpfH~˂pZHAdQbtvnXHAZp˂tAJlbے`lJtArv`frXQJrtAJlvXn|ZdQHfpvےbHA|drnvpXQr˂nXv`XQJ`ےJltvpftlJnXv`p˂rJltH~fZHAbtlJnXv`p˂r`vXn˂p`ZdQbtnXv`J`ےvpf˂pZZdQbtpvnbHAZpdrtAJvpfH˂pZZdQbtrXQJ`bdQZ|f`vbے`lJtArv`frXQJtbnJXQrd|Z~Hfp`ےbtbdQvpfHbtlnXvZp˂tAJlfH~pZHAbf~HbHAZbdQZ|ے`JXQtArdf~HXQJ`ےbdQZ|`vXnے`JXQtArdf~HXQJ`ےvpfJXQrlJtAf~HfbHAZpHf`HAbےlJtAXv`f˂rXQltb~f`HAbےlJtAےbHAdrtAXnvJXQrd|Z~Hfp`ےbvpfH˂pZHAdQbtvnXHAZp˂Z|d~vJtArd`f~rXQJ`tbdQZf`vXے`Jfpvp˂rdrtArZHA|ZdQbfpvbHAZdrtAvpfr˂p|ZdQbfpvJltH~f˂pZHArd|vnXv˂rXQvXn`JXQrrd|~HfJ`ےdQZ|vXn`JXQrrd|Zp˂JltpfH~˂pZHAdQbtvnXHAZp˂f`vbے`lJtArv`frXQJrtAJlpfے`|ZdQHfpvےbHA|drnvpXQr˂nXv`XQJ`ےJltbے`tlJnXv`p˂rJltH~fZHAbtlJnXv`bdQZ|`vXnbے`ZdQtAr`f~J`ےJvpfH˂pZZdQbtpvnbHAZpdrtAJvpfH˂pZZdQbtbHAZbdQZ|f`vbے`lJtArv`frXQJXnvJXQrd|Z~Hfp`ےbtbdQJXQrbtlnXvZp˂tAJlfH~pZHAbf~HbHAZbdQZ|JXQrtArdf~HXQJ`ےbdQZ|`vXnے`JXQtArdfHfdrtAvpfJXQrd|ZHfpvltb~f`HAbےlJtAXv`f˂rXQltb~f`HAbےlJtAp˂rdrtAXnvJXQrd|Z~Hfp`ےJlpfH~˂pZHAdQbtvnXHAZp˂Z|lZHAbJtArd`f~rXQJ`tbdQZf`vXے`Jfpvp˂rltbpZHA|ZdQbfpvbHAZdrtAvpfr˂p|ZdQbpvnJltH~f˂pZHAdQbt璀nXvdQZ|vXn`JXQrrd|~HfJ`ےdQZ|vXn`JXQrrd|XQJ`ےJltbpfH~˂pZHAdQbtvnXtbdQf`vbے`lJtArv`frXQJtbdQZ`JXQ|ZdQHfpvےbHA|drnvpXQr˂nXv`XQJ`ےdQZ|bے`tlJnXv`p˂rJltH~fZHAbtlJrXQJ`bdQZ|`vXnb˂lJtAr`ffpdrtAJvpfH˂pZZdQbtpvnbHAZpdrtAJvpfH˂pZZdQbtbHAZQZdrf`vbے`lJtArv`fZ|dXnvJXQrd|Z~Hfp`ےb|drr˂pbtlnXvZp˂tAJlfH~pZHAbf~HbHAZdrtAJJXQrtArdf~HXQJ`ےbdQZ|`vXnے`JXQtArdےHAZdrtAvpfpZHAbd|Zvnrltb~f`HAbےlJtAXv`f˂rXQltb~f`HAbےlJtAp˂rtAJlXnvJXQrd|ZHfpvrtAJlpfH~˂pZHAdQbtvnXHAZp˂tAJlZHAbJtArd`f~rXQJ`tbdQZf`vXے`Jfpvp˂rltbpZAb|ZdQbfpvbHAZdrtAvpfr˂p|ZdQbp˂rJltH~fے`JdQbtXQJ`ےdQZ|vXn`JXQrrd|~HfJ`ےdQZ|vXn`JXQrrd|XQJ`ptbdQZpfH~˂pZHAdQbt璀nrXQtbdQf`vbے`lJtArv`frXQJtbdQZ`JXQ|ZdQHfpvےbHA|drnvpXQr˂nXv`XQJ`ےdQZ|`JXQrtlJnXv`p˂rJltH~fZHAbtlJXQJ`ےbdQZ|`vXnXQr˂l|ZdQHAZpdrtAJvpfH˂pZZdQbtpvnbHAZpdrtAJvpfH˂pZZdQbt˂rXQ|drf`vbے`lJtArJ`ےZ|dXnvJXQrd|Z~Hfp`ےb|drr˂pZbtlnXvZp˂tAJlfH~pZHAbf~HbHAZdrtAdQ˂pZtArdf~HXQJ`ےbdQZ|`vXnے`JXQfpvbHAZdrtAvpfpZHAbbtl˂rXQltb~f`HAbےlJtAXv`f˂rXQltb~f`HAbےlJfJ`ےtAJlXnvJXQrd|ZHAZp˂rtAJlpfH~˂pZHAdQbtvnXHAZp˂tAdQZ|Ab`JJtArd`f~rXQJ`tbdQZf`vXے`Jfpvp˂rZ|dHAbے|ZdQbfpvbHAZdrtAvpfr˂pnXv`p˂rJltH~fے`JJtArdJ`ےdQZ|vXn`JXQrrd|~HfJ`ےdQZ|vXn`JXQrpvbHAZptbdQZpfH~˂pZHAdQbt璀rXQJtbdQf`vbے`lJtArv`frXQJdrtAXQr˂|ZdQHfpvےbHA|drnvpXQr˂nXv`XQJ`ےrtAJl`JXQrtlJnXv`p˂rJltH~fZHAےf~HXQJ`ےbdQZ|`vXnXQHAb|ZdQbHAZpdrtAJvpfH˂pZZdQbtpvnbHAZpdrtAJvpfH˂pZ~Hfp˂rXQ|rAJlf`vbے`lJfp`ےbZ|dXnvJXQrd|Z~Hfp`ےbJltpZHAbbtlnXvZp˂tAJlfH~pZHAbf~HbHAZtbdQ˂pZtArdf~HXQJ`ےbdQZ|`vXn`JXQrfpvbHAZdrtAvpfے`JXQbtl˂rXQltb~f`HAbےlJtAXv`f˂rXQltb~f`HAے`vnXJ`ےtbdXnvJXQrvnXHAZp˂rtAJlpfH~˂pZHAdQbtvnXHAZp˂bdQZ|ے`JJtArd`f~rXQJ`tbdQZf`vXے`Jfpvp˂rZ|`vHAb|ZdQbfpvbHAZdrtAvpfbtlnXv`p˂rJltH~fr˂pJtArdJ`ےdQZ|vXn`JXQrrd|~HfJ`ےdQZ|vXnJXQrbv`fbHAXQJQZ|dpfH~˂pZHAv`frXQJtbdQf`vbے`lJtArv`frXQJltbXQr˂|ZdQHfpvےbHA|drnvpXQr˂nXv`XQJ`ےXnvJQr˂ptlJnXv`p˂rJltH~fJtAdf~HXQJ`ےbdQZ|`vXnZHAbtlJbHAZpdrtAJvpfH˂pZZdQbtpvnbHAZpdrtAJvpfHtlJ~Hfp`ےbrtAJlf`vے`J~Hfp`ےbZ|dXnvJXQrd|Z~Hfp`ےbnvppZHAbbtlnXvZp˂tAJlfH~pZHAf~HbHAZpfH~ZHAbtArdf~HXQJ`ےbdQZ|`vXn|ZdQbfpvbHAZdrtAvpfے`JXQfpv˂rXQltb~f`HAbےlJtAXv`f˂rXQltb~f`tAd|vnXHAZp˂tbdXnvXQrbtvnXHAZp˂rtAJlpfH~˂pZHAdQbtvnXHAZp˂`vXnJQrJtArd`f~rXQJ`tbdQZf`vXے`JXQfpvp˂rf`vے`JX|ZdQbfpvbHAZdrtAvpftlJnXv`p˂rJltH~fr˂pnvfJ`ےdQZ|vXn`JXQrrd|~HfJ`ےdQZ|vXnZdQbtv`pvrXQJQZ|dpfH~lJtAv`frXQJtbdQf`vbے`lJtArv`frXQJvpf˂pZH|ZdQHfpvےbHA|drnvprbtnXv`XQJ`ےXH~Qr˂ptlJnXv`p˂rJltے`JXQtArdf~HXQJ`ےbdQZ|`vXn`JXQr~HfpbHAZpdrtAJvpfH˂pZZdQbtpvnbHAZpdrtAJvpfےlJtAnXv`ےbrtAJf`vd|Z~Hfp`ےbZ|dXnvJXQrd|Z~Hfp`ےbH~fAbے`btlnXvZp˂tAJlfH~lJtAdf~HbHAZf`vXZHAbtArdf~HXQJ`ےbdQZ|r˂p|ZdQbfpvbHAZdrtAvpf˂pZvnX˂rXQltb~f`HAbےlJtAXv`f˂rXQltb`JXQrrd|`f~HAZp˂bdQZ|XnvdQbtvnXHAZp˂rtAJlpfH~˂pZHAdQbtvnXHAZp˂`vXHJXQrJtArd`f~rXQJ`tbdQZf`vX|ZdQfpvp˂rnvpے`JX|ZdQbfpvbHAZdtAJZHAbtlJnXv`p˂rJltH~fHAbےv`fJ`ےdQZ|vXn`JXQrrd|~HfJ`ےdQZ|˂pZZdQbtHfpvbHAdrtApfے`lJtArv`frXQJtbdQf`vbے`lJtArv`frXQJ~f`˂pZH|ZdQHfpvےbHA|drnvpbtlnXv`XQJ`ےfH~QrZHAtlJnXv`p˂rltbے`JXQtArdf~HXQJ`ےbdQZ|`vXn`JXQr~HfpbHAZpdrtAJvpfH˂pZZdQbtpvnbHAZpdtAJlHAbےlJtAnXvZp˂JltJXQrd|Z~Hfp`ےbZ|dXnvJXQrd|Z~Hfp`ےbvXnAbے`btlnXvZp˂tAJlfے`JJtArdf~HbHAZf`vXbے`tArdf~HXQJ`ےnvpr˂p|ZdQbfpvbHAZdrtAvpf˂pZvnX˂rXQltb~f`HAbےlJtAXv`f˂rXQtbn`JXQrrd|`f~rXQJ`bdQZ|˂pZHAdQbtvnXHAZp˂rtAJlpfH~˂pZHAdQbtvnXHAZp˂vpfHJXQrJtArd`f~rXQJ`tbdQZXQr˂|ZdQfpvp˂rnvpJXQr|ZdQbfpvbHAZfHfZHAbtlJnXv`p˂rJltH~fHAbv`f~fJ`ےdQZ|vXn`JXQrrd|~HfJ`ےvpf˂pZZdQbtHXv`ےbHAAJlbے`lJtArv`frXQJtbdQf`vbے`lJtArv`frXQJ~f`ZHAb|ZdQHfpvےbHA|dtApZHAbbtlnXv`XQJ`ے`vXn˂pZHAtlJnXv`p˂r`vXnے`JXQtArdf~HXQJ`ےbdQZ|`vXn˂pZHApvnbHAZpdrtAJvpfH˂pZZdQbtpvnbHAZpHf`HAbےlJtAf~HZp˂tbnJXQrd|Z~Hfp`ےbZ|dXnvJXQrd|Z~Hfp`ےbvXnے`JXQbtlnXvZp˂Jltے`JJtArdf~HbHAZvpfbے`tArdf~HXQJ`ےvpfr˂p|ZdQbfpvbHAZdrtAvpfbے`Xv`f˂rXQltb~f`HAbےlJtAXv`f˂rXQvXn`JXQrrd|fpvrXQJ`vpfH˂pZHAdQbtvnXHAZp˂rtAJlpfH~˂pZHAdQbtvnXHAZp˂vp`vr˂pJtArd`f~rXQJ`bnvXQr˂|ZdQfpvp˂rH~fJXQr|ZdQbfpvJltH~fZHAbtlJnXv`p˂rJltH~fJXQr~HfJ`ےdQZ|vXn`JXQrrd|~HfJ`ےJvpfH˂pZZdQbtnXv`p˂rf`vbے`lJtArv`frXQJtbdQf`vbے`lJtArv`frXQJXnvZHAb|ZdQHfpvےbHApfHpZHAbbtlnXv`XQJ`ے`vXn˂pZAbtlJnXv`bdQZ|`vXnے`JXQtArdf~HXQJ`ےbdQZ|`vXn˂p`JpvnbHAZpdrtAJvpfH˂pZZdQbtpvnltb~f`HAbےlJtAf~HXQJ`ےXnvJXQrd|Z~Hfp`ےbZ|dXnvJXQrd|Z~Hfp`ےJlpfH~ے`JXQbtlnXvZp˂f`vXے`JJtArdf~HJltvpf`JXQtArdfHfdrtAvpfr˂p|ZdQbfpvbHAZdrtAvpfXQrbtXv`f˂rXQltb~f`HAbےlJtAXv`fdQZ|vXn`JXQrrd|fpvbHAZpfH~˂pZHAdQbtvnXHAZp˂rtAJlpfH~˂pZHAdQbtvnXtdrf`vr˂pJtArd`f~rXQJ`nvpXQr˂|ZdQfpvdrtAJH~r˂p|ZdQbpvnJltH~fZHAbtlJnXv`p˂rJltH~fl|Z~HfJ`ےdQZ|vXn`JXQrrd|HfpdrtAJvpfH˂pZZdQbt~Hfp˂rf`vbے`lJtArv`frXQJtbdQf`vbے`lJtArv`ftAJlXnvZAb`|ZdQHfpvےJlfH~pZHAbbtlnXv`ltbvpfHZHAbtlJrXQJ`bdQZ|`vXnے`JXQtArdf~HXQJ`ےbdQZ|`vXndQbtvnXv`bHAZpdrtAJvpfH˂pZZdQbtvnrltb~f`HAbےlJtApvnXQJ`ےXnvJXQrd|Z~Hfp`ےbZ|dXnvJXQrd|ZHfpvtbdQZpfH~JXQrbtlnXvtbdQZf`vXے`JJtArdf~HdQZ|~f``JXQtArdےHAZdrtAvpfr˂p|ZdQbfpvbHAZdrtAvpflJtArf~H˂rXQltb~f`HAbےlJtAXQJ`ےdQZ|vXn`JXQrrd|Xv`fbHAXQpfH~˂pZHAdQbtvnXHAZp˂rtAJlpfH~˂pZHAdQbt璀nrXQ|drvppZHAJtArd`fH|drnvpXQr˂|ZdQfpvdrtAJvXnr˂p|ZdQbp˂rJltH~fZHAbtlJnXv`p˂rJltH~fd|ZfpvJ`ےdQZ|vXn`JXQrrd|HAZpdrtAJvpfH˂pZZdQbt~HfJ`ےJf`vbے`lJtArv`frXQJtbdQf`vbے`lJtArJ`ےtAJlfH~bے`|ZdQfpvtAJlfH~pZHAbbtlnXv`ltbvpfHZHAbtlJXQJ`ےbdQZ|`vXnے`JXQtArdf~HXQJ`ےbdQZ|`vXndQtArdnXv`bHAZpdrtAJvpfH˂pZZdQbt˂rXQltb~f`HAbےlJtApvnltbQXnvJXQrd|Z~Hfp`ےbZ|dXnvJXQrd|ZHAZp˂tbdQZf`vXJXQrbtlnrXQJtbdQZf`vXے`JJtArd|ZdQp˂rdQZ|l~f`JQr˂fpvbHAZdrtAvpfr˂p|ZdQbfpvbHAZdrtAvpf|ZdQf~H˂rXQltb~f`HAbےlJfJ`ےdQZ|vXn`JXQrrd|Xv`pZdrtpfH~˂pZHAdQbtvnXHAZp˂rtAJlpfH~˂pZHAdQbt璀rXQJ|ltnvppZHAJtArd`ےHA|drnvpXQr˂|ZdQbtlXQJ`ےtbdQvXH~pZHAbnXv`p˂rJltH~fZHAbtlJnXv`p˂rJltH~fbtlfpvJ`ےdQZ|vXn`JXQrpvnbHAZpdrtAJvpfH˂pZZdQbtvnXAJltf`vbے`lJtArv`frXQJtbdQf`vbے`lJfp`ےbbdQZ|fH~bJQr|ZdQZp˂tAJlfH~pZHAbbtlJtArdbHAZZ|df`vے`Jf~HXQJ`ےbdQZ|`vXnے`JXQtArdf~HXQJ`ےbdQZ|`vXnJtArdnvfbHAZpdrtAJvpfH˂pZXv`f˂rXQltb~f`HAbےlJtAv`fbdQZ|XnvJXQrd|Z~Hfp`ےbZ|dXnvJXQrvnXHAZp˂drtAf`vX˂pZbtlrXQJ`tbdQZf`vXے`JJtArd|ZdQp˂rrtAJlXnvXQr˂fpvbHAZdrtAvpfr˂p|ZdQbfpvbHAZdrtAvpf|ZdQ~Hfp˂rXQltb~f`HAے`~HfJ`ےdQZ|vXn`JXQrrd|~HfpdrtpfH~˂pZHAdQbtvnXHAZp˂rtAJlpfH~˂pZHAv`frXQJJltH~fHAbےJfpvےbHA|drnvpXQr˂|ZdQbtlXQJ`ےtbdQpfH~pZHAbnXv`p˂rJltH~fZHAbtlJnXv`p˂rJltH~fbtlvnXJ`ےdQZ|vXnJXQrbpvnbHAZpdrtAJvpfH˂pZZdQbtvnXAJltf`vbے`lJtArv`frXQJtbdQf`vے`J~Hfp`ےbbdQZ|`vXn`JXQrnXvZp˂tAJlfH~pZHAbbtlJtArdbHAZZ|df`vJAdf~HXQJ`ےbdQZ|`vXnے`JXQtArdf~HXQJ`ےbdQZ|`vXn|ZdQbv`fbHAZpdrtAJvpfHtlJXv`f˂rXQltb~f`HAbےlJtAv`fbdQZ|XnvJXQrd|Z~Hfp`ےbZ|dXnvXQrbtvnXHAZp˂drtAvpf˂pZA`f~rXQJ`tbdQZf`vXے`JJtArd|ZdQbtlnXvZp˂Jltr˂pJtArdnXv`XQJ`ےbdQZ|r˂p|ZdQbfpvbHAZdrtAvpfr˂p|ZdQbv`pvltb~f`HAbےlJtAXv`f˂rXQltbHAbےAHr󙐉H~ㅐfJtArd`f~rXQJ`bnvZHAbtlJf~HbHAZdtAJZHAbtlJnXv`p˂rJltH~fZHAbtlJnrXQdQZ|vXn`JXQrrd|~HfJ`ےdQZ|`JXQrۑpJAH`vXn|ZdQHfpvےbHApfHے`JXQtArdfpvp˂rltbے`JXQtArdf~HXQJ`ےbdQZ|`vXnے`JXQtArdJ`p˂drtAJvpfH˂pZZdQbtpvnbHAZpdtAJl˂pZr󙐂ˁ`vˍpfbtlnXvZp˂f`vXr˂p|ZdQbnXv`XQJ`ےnvpr˂p|ZdQbfpvbHAZdrtAvpfr˂p|ZdQbrXQJbdQZ|~f`HAbےlJtAXv`f˂rXQtbnHAbےZQXb㉀H~ㅐfJtArd`f~rXQJ`nvp`JXQrtlJf~HbHAZfHfZHAbtlJnXv`p˂rJltH~fZHAbtlJ`ےbdrtvXn`JXQrrd|~HfJ`ےvpf`JXQrۑpJAH`vXn|ZdQHfpvےJlfH~˂pZtArdfvnXp˂r`vXnے`JXQtArdf~HXQJ`ےbdQZ|`vXnے`JXQtArdHAZp˂AJltvpfH˂pZZdQbtpvnbHAZpHf`˂p`r󙐂ˁ`vˍpfbtlnXvtbdQZf`vXHAbے|ZdQtAv`fXQJ`ےvpfr˂p|ZdQbfpvbHAZdrtAvpfr˂p|ZdQbbHAbdQZ|~f`HAbےlJtAXv`f˂rXQvXnJXQrZQXAHrH~ㅐfJtArd`fH|drnvp`JXQrrd|~HfpJltH~fZHAbtlJnXv`p˂rJltH~fZHAbtlJZp˂drtvXn`JXQrrd|~HfJ`ےJvpfH˂pZHAˁ`Z`vXn|ZdQfpvtAJlfH~˂pZZdQbtvnXbdQZ|`vXnے`JXQtArdf~HXQJ`ےbdQZ|`vXnے`JXQtArdrXQJ`AJltvpfH˂pZZdQbtpvnltb~f`bے`QXb㉀ەvˍp|btlnrXQJtbdQZf`vXHAblJtAv`ffdrtAvpfr˂p|ZdQbfpvbHAZdrtAvpfr˂p|ZdQbےbHAbQZd~f`HAbےlJtAXv`fdQZ|vXnJXQrpJAHrdrQtJtArd`ےHA|drnvp˂pZHArd|pvnJltH~fZHAbtlJnXv`p˂rJltH~fZHAbtlJZp˂rtAJlvXn`JXQrrd|HfpdrtAJvpfH˂pZHAˁ`ZJlt|ZdQZp˂tAJlfH~bے`ZdQbtrXQJ`bdQZ|`vXnے`JXQtArdf~HXQJ`ےbdQZ|`vXnے`JXQtArdrXQJ`tbdQvpfH˂pZZdQbtvnrltb~f`b˂QXb㉀bAdZ|btlrXQJ`tbdQZf`vXJXQrl|ZےHAZdrtAvpfr˂p|ZdQbfpvbHAZdrtAvpfr˂p|ZdQbp˂rZ|d~f`HAbےlJtAXQJ`ےdQZ|vXnpZHAbp`ZQXdrQtJfpvےbHA|drnvp˂pZHAdQbtp˂rJltH~fZHAbtlJnXv`p˂rJltH~fZHAbtlJXQJ`ےrtAJlvXn`JXQrrd|HAZpdrtAJvpfHے`Jb㉀ۑpJltnXvZp˂tAJlfH~bے`lJtArXQJ`ےbdQZ|`vXnے`JXQtArdf~HXQJ`ےbdQZ|`vXnے`JXQfpvbHAZtbdQvpfH˂pZZdQbt˂rXQltb~f`XQr˂JAHrbAdZ|`f~rXQJ`tbdQZf`vXJXQHAbd|ZbHAZdrtAvpfr˂p|ZdQbfpvbHAZdrtAvpfr˂p~Hfp˂rZ|rA~f`HAbےlJfJ`ےdQZ|vXnpZHAbˁ`ZQXdrQtHfpvےbHA|drnvpے`JdQbtp˂rJltH~fZHAbtlJnXv`p˂rJltH~fZHAےpvnXQJ`ےJltvXn`JXQrpvnbHAZpdrtAJvpfHے`Jb㉀ۑpJltnXvZp˂tAJlfH~XQr˂lJtArXQJ`ےbdQZ|`vXnے`JXQtArdf~HXQJ`ےbdQZ|`vXn`JXQrXv`fbHAXQbdQZ|vpfH˂pZXv`f˂rXQltb~f`XQHAbJAHfbAdZ|`f~rXQJ`tbdQZf`vXpZHAbdtlbHAZdrtAvpfr˂p|ZdQbfpvbHAZdrtAvpfbtl~HfJ`ےdrtA~f`HAے`~HfJ`ےdQZ|vXnے`JXQ`vXndrQtHfpvےbHA|drnvpے`JJfpvp˂rJltH~fZHAbtlJnXv`p˂rJltH~fJtAdpvnbHAZpJltvXnJXQrbpvnbHAZpdrtAJvpfHr˂pvˍpfJltnXvZp˂tAJlfH~XQr˂nvfXQJ`ےbdQZ|`vXnے`JXQtArdf~HXQJ`ےbdQZ|`vXn|ZdQbXv`p˂rXQbdQZ|vpfHtlJXv`f˂rXQltb~f`ZHAbH~ㅐfbAdZ|`f~rXQJ`tbdQZf`vXp`JXQ~HfpbHAZdrtAvpfr˂p|ZdQbfpvbHAZdrtAvpftlJvnXJ`ےdrtAJ~f`tAd|~HfJ`ےdQZ|vXnے`JXQ`vXndrQtHfpvےbHA|drnvpr˂pvnXp˂rJltH~fZHAbtlJnXv`p˂rJltے`JXQtArdv`fbHAZpbdQZvXnZdQbtpvnbHAZpdrtAJvpfHr˂pvˍpfJltnXvZp˂tAJlfH~ZHAbv`fXQJ`ےbdQZ|`vXnے`JXQtArdf~HXQJ`ےbdQZ|r˂p|ZdQb~Hfp˂b|drvpfےlJtAXv`f˂rXQltb~f``JXQrH~ㅐfbAdZ|`f~rXQJ`tbdQZf`vXے`JXQ~HfpbHAZdrtAvpfr˂p|ZdQbfpvbHAZdtAJZHAbtlJvnXHAZp˂tAJl`JXQrrd|~HfJ`ےdQZ|vXn˂pZ`vXndrQtHfpvےbHA|drnvpr˂pvnXp˂rJltH~fZHAbtlJnXv`p˂rltbے`JXQtArdv`frXQJtbdQZ˂pZZdQbtpvnbHAZpdrtAJvpfHHAbےvˍpfJltnXvZp˂tAJlfH~ZHAbv`f~XQJ`ےbdQZ|`vXnے`JXQtArdf~HXQJ`ےnvpr˂p|ZdQb~HXv`ےb|AJlHAbےlJtAXv`f˂rXQltb~f``JXQrH~ㅐfbAdZ|`f~rXQJ`tbdQZf`vX˂pZfpvbHAZdrtAvpfr˂p|ZdQbfpvbHAZfHfZHAbtlJ`f~HAZp˂tbn`JXQrrd|~HfJ`ےdQZ|vXn˂pZ`vXndrQtHfpvےbHA|drnvpHAbےnXv`p˂rJltH~fZHAbtlJnXv`p˂r`vXnے`JXQtArdHfpvrXQJvpf˂pZZdQbtpvnbHAZpdrtAJvpfHHAbvˍpfJltnXvZp˂tAJlfH~`JXQrf~HXQJ`ےbdQZ|`vXnے`JXQtArdf~HXQJ`ےvpfr˂p|ZdQbnXv`p˂Hf`HAbےlJtAXv`f˂rXQltb~f`˂pZHAH~ㅐfbAdZ|`f~rXQJ`tbdQZf`vX˂p`fpvbHAZdrtAvpfr˂p|ZdQbfpvJltH~fZHAbtlJ`f~rXQJ`vXn`JXQrrd|~HfJ`ےdQZ|vXnbے``vXndrQtHfpvےbHA|drnvpJXQrbnXv`p˂rJltH~fZHAbtlJnXv`bdQZ|`vXnے`JXQtArdHfpvےbHAvpfH˂pZZdQbtpvnbHAZpdrtAJvpfHJXQrvˍpfJltnXvZp˂tAJlfH~tl|f~HXQJ`ےbdQZ|`vXnے`JXQtArdfHfdrtAvpfr˂p|ZdQb~HZp˂~f`HAbےlJtAXv`f˂rXQltb~f`˂p`ZH~ㅐfbAdZ|`f~rXQJ`tbdQZf`vXZdQbtfvnXbHAZdrtAvpfr˂p|ZdQbpvnJltH~fZHAbtlJfpvrXQJ`vXn`JXQrrd|~HfJ`ےdQZ|vXnQXb㉀۝`vXndrQtHfpvےbHA|drnvplJtAv`fp˂rJltH~fZHAbtlJrXQJ`bdQZ|`vXnے`JXQtArdnXv`ےbHAvpfH˂pZZdQbtpvnbHAZpdrtAJvpfHpJAHrvˍpfJltnXvZp˂tAJlfH~rd|~HfpXQJ`ےbdQZ|`vXnے`JXQtArdےHAZdrtAvpfr˂p|ZdQbf~HXQJ`ے~f`HAbےlJtAXv`f˂rXQltb~f`ˁ`ZH~ㅐfbAdZ|`f~rXQJ`tbdQZf`vXZdQtArvnXbHAZdrtAvpfr˂p|ZdQbp˂rJltH~fZHAbtlJfpvJltvXn`JXQrrd|~HfJ`ےdQZ|vXnQXAHr󙐝`vXndrQtHfpvےbHA|drnvpd|Zv`fp˂rJltH~fZHAbtlJXQJ`ےbdQZ|`vXnے`JXQtArdnXv`bQZdvpfH˂pZZdQbtpvnbHAZpdrtAJvpfHˁ`ZQXvˍpfJltnXvZp˂tAJlfH~dQbt~HfpXQJ`ےbdQZ|`vXnے`JXQfpvbHAZdrtAvpfr˂p|ZdQbpvnrtAJl~f`HAbےlJtAXv`f˂rXQltb~f`b㉀ۑpH~ㅐfbAdZ|`f~rXQJ`tbdQZf`vXlJtArvnvfbHAZdrtAvpfr˂pnXv`p˂rJltH~fZHAbtlJXv`ftbdQvXn`JXQrrd|~HfJ`ےdQZ|vXnJAHr󙐝`vXndrQtHfpvےbHA|drnvpd|Z~Hfp˂rJltH~fZHAےf~HXQJ`ےbdQZ|`vXnے`JXQtArd~HfZ|dvpfH˂pZZdQbtpvnbHAZpdrtAJvpfHˁ`ZQXvˍpfJltnXvZp˂tAJlfH~dQbtpvnXQJ`ےbdQZ|`vXn`JXQrfpvbHAZdrtAvpfr˂p|ZdQbpvnrtAJl~f`HAbےlJtAXv`f˂rXQltb~f`b㉀ۑpH~ㅐfbAdZ|`f~rXQJ`tbdQZf`vXl|ZdQXv`fbHAZdrtAvpfbtlnXv`p˂rJltH~fZHAbtlJXv`ftbdQvXn`JXQrrd|~HfJ`ےdQZ|vXn`ZQXb`vXndrQtHfpvےbHA|drnvpbtl~Hfp˂rJltH~fJtAdf~HXQJ`ےbdQZ|`vXnے`JXQtArd~HXZ|rAJvpfH˂pZZdQbtpvnbHAZpdrtAJvpfHۑpJvˍpfJltnXvZp˂tAJlfے`JJtArdpvnXQJ`ےbdQZ|`vXn|ZdQbfpvbHAZdrtAvpfr˂p|ZdQbv`fltb~f`HAbےlJtAXv`f˂rXQltb~f`AHr󙐂˕H~ㅐfbAdZ|`f~rXQJ`tbdQZXQHAb|ZdQXv`fbHAZdrtAvpftlJnXv`p˂rJltH~fZHAbtlJ~HfpdQZ|vXn`JXQrrd|~HfJ`ےdQZ|vXn`ZQXb`vXndrQtHfpvےbHA|dtAے`JXQbtl~fpvp˂rJltے`JXQtArdf~HXQJ`ےbdQZ|`vXnے`JXQtArdvnXdrtAJvpfH˂pZZdQbtpvnbHAZpdrtAJvpfZۑpJvˍpfJltKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLL \ No newline at end of file diff --git a/vendor/endroid/qr-code/assets/data/qrv39_1.dat b/vendor/endroid/qr-code/assets/data/qrv39_1.dat deleted file mode 100755 index 3e9029bb8..000000000 --- a/vendor/endroid/qr-code/assets/data/qrv39_1.dat +++ /dev/null @@ -1,345 +0,0 @@ -~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmlklklklklklklklkjijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQOPOPOPOOOPOPOPOPNMNMNMNMNMNMNMNMLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:98787878765656565343434344343433321212121212121210/0/0/0/0/0/0/0/.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvutststststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmlklklklklklklklkjijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQOOOOPOPOOPOPOPOPNMNMNMNMNMNMNMNMLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:98787878787878765656565343434343334343421212121212121210/0/0/0/0/0/0/0/.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%~}~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopopoponmnmnmnmnmnmnmlklkkkkkkkkklklkjijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababa`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQPOPOPOPOOPOOOOOONMNMNMNMNMNMNMNMLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCBABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9878787878787878765656565343434343434343421212121212121210/0/0/0/0/0/0/0/.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%~}~}~}~}~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopoponmnmnmnmnmnmnmnmklklklkllklkjijijijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMNMLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9878787878787878765656565343434343434343421212121212121210/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%~}~}~}~}~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopoponmnmnmnmnmnmnmnmklklklkljijijijijijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9878787878787878765656565343434343434343421212121212121210/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%~}~}~}~}~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopoponmnmnmnmnmnmnmnmklklklkljijijijijijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9878787878787878765656565343433333434343421212121212121210/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%~}~}~}~}~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopoponmnmnmnmnmnmnmnmklklklkljijijijijijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQPOPOPOPOPOPOPOOONMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;:9:9:9:9:9:9:9878787878787878765656565334343433434343421212121212121210/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%~}~}~}~}~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopoponmnmnmnmnmnmnmnmklklklkljijijijijijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcbabababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSRQRQRQRQRQRQRQRQPOOOOOOPOOPOPOPONMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;:9:9:9:9:9:9:9:9878787878787878765656565434343433333334321212121212121210/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('&%&%&%&%&%&%&%&%~}~}~}~}~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopoponmnmnmnmnmnmnmnmklklklkkjijijijijijijijihghghghghghghghgfefefefefefefefedcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSRQRQRQRQRQRQRQRQOPOPOPOPPONMNMNMNMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;:9:9:9:9:9:9:9:98787878787878787656565654343434343434343212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('&%&%&%&%&%&%&%&%~}~}~}~}~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopoponmnmnmnmnmnmnmnmkkkklklkjijijijijijijijihghghghghghghghgfefefefefefefefedcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSRQRQRQRQRQRQRQRQOPOPOPOPNMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;:9:9:9:9:9:9:9:98787878787878787656565654343434343434343212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('&%&%&%&%&%&%&%&%~}~}~}~}~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopoponmnmnmnmnmnmnmnmlklklklkjijijijijijijijihghghghghghghghgfefefefefefefefedcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSRQRQRQRQRQRQRQRQOPOPOPOPNMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;:9:9:9:9:9:9:9:98787878787878787656565654343434343434343212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('&%&%&%&%&%&%&%&%~}~}~}~}~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopoponmnmnmnmnmnmnmnmlklklklkjijijijijijijijihghghghghghghghgfefefefefefefefedcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[ZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSRQRQRQRQRQRQRQRQOPOPOPOPNMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=<;<;<;<;<;<;<;:9:9:9:9:9:9:9:98787878787878765656565654343434343433333212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('&%&%&%&%&%&%&%&%~}~}~}~}~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopoponmnmnmnmnmnmnmlklklklklkjijijijijijijijihghghghghghghghgfefefefefefedcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSRQRQRQRQRQRQRQRQOPOPOPOPNMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:98787878765656565656565653333343443434343212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%~}~}~}~}~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopoponmnmnmnmlklklkkklklklklkjijijijijijijijihghghghghghghghgfefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSRQRQRQRQRQRQRQRQOPOPOOOONMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:98787878765656565656565653434343421212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%~}~}~}~}~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqrqpopopoponmnmnmnmkkklklkllklklklkjijijijijijijijihghghghghghghghgfefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSRQRQRQRQRQRQRQRQOOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:98787878765656565656565653434343421212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%~}~}~}~}~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqrqrqrqpopopopoponmnmnmnmklklklkllkkkkkkljijijijijijijijihghghghghghghghgfefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:98787878765656565656565653434343421212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%~}~}~}~}~}~}~}~}|{|{|{|{|{|{|{zyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqpopopopopopopoponmnmnmnmklklklklklklklkljijijijijijijijihghghghghghghghgfefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:98787878765656565656565653434343421212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%~}~}~}~}~}~}~}~}|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqpopopopopopopoponmnmnmnmklklklklklklklkljijijijijijijijihghghghghghgfefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSRQRQRQRQRQRQPOPOPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:98787878765656565656565653434343421212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%~}~}~}~}~}~}~}~}|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqpopopopopopopoponmnmnmnmklklklklklklklkljijijijijijijijihghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSRQRQRQRQPOPOOOOOPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:98787878765656565656565653433333321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%~}~}~}~}~}~}~}~}|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqpopopopopopopoponmnmnmnmklklklklklklklkljijijijijijijijihghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSRQRQRQRQOPOPOPOPPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:98787878765656565656565654343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%~}~}~}~}~}~}~}~}|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutststststststsrqrqrqrqrqpopopopopopopoponmnmnmnmkkkkkklkklklklkljijijijijijijijihghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUVUVUTSTSTSTSTSTSRQRQRQRQOPOPOPOPOOOOOPOPNMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:98787878765656565656565654343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%&%&%&%&%~}~}~}~}~}~}~}|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmlklklklkklklkkkkjijijijijijijijihghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQOPOPOPOPOPOPOPOPNMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABA@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:98787878765656565656565654343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%&%&%&%&%~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmlklklklkkklklklkjijijijijijihghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQOPOPOPOPOPOPOPOPNMNMNMNMNMNMNMNMLKLKLKLKLKJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:98787878765656565654343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststsrqrqrqrqrqrqrqrqpopopopopopopoponmnmnmnmlklklklklklklklkjijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQOPOPOPOPOPOPOPOPNMNMNMNMNMNMNMNMLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9:9:9:9:98787878765656565433333344343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!                - - - - - - - - $#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!                - - - - - - - - $#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!                - - - - - - - $#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!                - - - - $#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!                - - - - $#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!                - - - - $#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!                - - - - $#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!            - - - - - $#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!            - - - - - - - - $#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!            - - - - - - - - $#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!            - - - - - - - - $#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!            - - - - - - - - $#$#$#$#$#$#$#$#"!"!"!"!               - - - - - - - - $#$#$#$#$#$#$#$#"!"!"!"!            - - - - - - - - $#$#$#$#$#$#$#$#"!"!"!"!            - - - - - - - - $#$#$#$#$#$#$#$#"!"!"!"!            - - - - - - - - $#$#$#$#$#$#$#$#"!"!"!"!            - - - - - - - - $#$#$#$#"!"!"!"!"!"!"!"!             - - - - - - - - $#$#$#$#"!"!"!"!"!"!"!"!                - - - - - - - - $#$#$#$#"!"!"!"!"!"!"!"!                - - - - - - - - $#$#$#$#"!"!"!"!"!"!"!"!                - - - - - - - - $#$#$#$#"!"!"!"!"!"!"!"!                - - - - - - - - $#$#$#$#"!"!"!"!"!"!"!"!                - - - - - - - - $#$#$#$#"!"!"!"!"!"!"!"!                - - - - - - - - LLKKJJII%%&&''((eeddccbb !!""##YXXWWVVUyyzz{{||~~}} AABBCCDDXXWWVVUU - - iijjkkll00//..--11223344hhggffeeYYZZ[[\\@@??>>==!!""##$$iihhggffeddccbba ffgghhii33221100..//0011kkjjiihh - - VVWWXXYYCCBBAA@@ !!~~{{zzyyxxFFGGHHIISSRRQQPPnnooppqq~~ - -kkqqrrsszzyyxxww SSTTUUVVFFEEDDCC{{||}}~~~~}}||{{CCDDEEFFVVUUTTSS kkllmmnn..--,,++33445566ffeeddcc[[\\]]^^%%$$##""XXYYZZ[[&%%$$##"@@AABBCCYYXXWWVV - - hhiijjkk1100//..00112233iihhggff XXYYZZ[[AA@@??>> !!""##yyxxwwvvHHIIJJKK==<<;;::@@AABBCC;;::9987--..//00llkkjjii - - UUVVWWXXDDCCBBAA }}~~||{{zzyyEEFFGGHHHHGGFFEE))**++,,aa``__^^$$%%&&''UTSRQPOO }}~~||{{zzyyEEFFGGHHTTSSRRQQ mmnnoopp,,++**))55667788ddccbbaa]]^^__``<<;;::99%%&&''((eeddccbba``__^^] - - jjkkllmm//..--,,22334455ggffeeddZZ[[\\]]??>>==<<""##$$%%wwvvuuttJJKKLLMMOONNMMLLrrssttuu}}||{{zz ttuuvvwwvvuuttss - - WWXXYYZZBBAA@@?? !!""zzyyxxwwGGHHIIJJRRQQPPOOooppqqrr**))((''778899::bbaa``____``aabb!! \\]]^^__"!! DDEEFFGGUUTTSSRR llmmnnoo--,,++**44556677eeddccbb\\]]^^__==<<;;::$$%%&&''uuttssrrLLMMNNOO99332211DDEEFFGG6543322111223344hhggffeeYYZZ[[\\@@??>>==!!""##$$xxwwvvuuIIJJKKLLDDCCBBAA--..//00]]\\[[ZZ(())**++NNMMLLKK!!""##$$xxwwvvuuIIJJKKLLPPOONNMMqqrrsstt((''&&%%99::;;<<``__^^]]aabbccdd88776655))**++,,aa``__^^]\\[[ZZYnnooppqq++**))((66778899ccbbaa``^^__``aa;;::9988&&''(())ssrrqqppNNOOPPQQKKJJIIHHvvwwxxyyyyxxwwvvxxyyzz{{rrqqponm[[\\]]^^>>==<<;;##$$%%&&vvuuttssKKLLMMNNNNMMLLKKssttuuvv&&%%$$##;;<<==>>^^]]\\[[ccddeeff``aabbccHHIIJJKKQQPPOONNppqqrrss))((''&&8899::;;aa``__^^``aabbcc99887766(())**++qqppoonnPPQQRRSS00//..--HHIIJJKK100//..-55667788ddccbbaa]]^^__``<<;;::99%%&&''((ttssrrqqMMNNOOPP@@??>>==11223344YYXXWWVV,,--..//JJIIHHGG%%&&''((ttssrrqqMMNNOOPPLLKKJJIIuuvvwwxx$$##""!!==>>??@@\\[[ZZYYeeffgghh44332211--..//00]]\\[[ZZ !!""##YXXWWVVUrrssttuu''&&%%$$::;;<<==__^^]]\\bbccddee77665544**++,,--oonnmmll RRSSTTUUGGFFEEDDzz{{||}}uuttssrr - - ||}}~~lkkjjiih__``aabb::998877''(())**rrqqppooOOPPQQRRJJIIHHGGwwxxyyzz""!! ??@@AABBZZYYXXWW - -gghhiijjddeeffgg~~LLMMNNOOMMLLKKJJttuuvvww%%$$##""<<==>>??]]\\[[ZZddeeffgg55443322,,--..//mmllkkjj - -TTUUVVWW,,++**))LLMMNNOO-,,++**)99::;;<<``__^^]]aabbccdd88776655))**++,,ppoonnmm QQRRSSTT<<;;::9955667788UUOONNMM00112233FFEEDDCC))**++,,ppoonnmm QQRRSSTTHHGGFFEEyyzz{{||~~}} AABBCCDDXXWWVVUU - - iijjkkll00//..--11223344YYXXWWVV$$%%&&''UTSRQPOOvvwwxxyy##""!! >>??@@AA[[ZZYYXX ffgghhii33221100..//0011kkjjiihh - - VVWWXXYYCCBBAA@@ !!~~qqkkjjii hggffeedccddeeff66554433++,,--..nnmmllkk SSTTUUVVFFEEDDCC{{||}}~~~~}}||{{CCDDEEFFVVUUTTSS kkllmmnn hhiijjkk}}||{{zzPPQQRRSSIIHHGGFFxxyyzz{{~~!! @@AABBCCYYXXWWVV - - hhiijjkk1100//..00112233iihhggff XXYYZZ[[((''&&%%UUVVWWXX)((''&&%==>>??@@\\[[ZZYYeeffgghh44332211--..//00llkkjjii - - UUVVWWXX8877665599::;;<>==<<""##$$%%hhggffeedccbbaa` - -gghhiijj221100////001122jjiihhgg - - WWXXYYZZBBAA@@?? !!""zzyyxxwwGGHHIIJJRRQQPPOOooppqqrr~~}} - - qqrrssttyyxxwwvv TTUUVVWWEEDDCCBB||}}~~}}||{{zzDDEEFFGGUUTTSSRR llmmnnoo--,,++**44556677eeddccbb\\]]^^__$$##""!!YYZZ[[\\%$$##""!AABBCCDDXXWWVVUU - - iijjkkll00//..--11223344hhggffeeYYZZ[[\\44332211==>>??@@HHGGFFEE==>>??@@>>==<<;;11223344hhggffeeYYZZ[[\\@@??>>==!!""##$$xxwwvvuuIIJJKKLLPPOONNMMqqrrsstt((''&&%%99::;;<>==<<;;##$$%%&&vvuuttssKKLLMMNNNNMMLLKKssttuuvv||{{zzyyuuvvwwxxuuttssrr - - XXYYZZ[[AA@@??>> !!""##yyxxwwvvHHIIJJKKQQPPOONNppqqrrss))((''&&8899::;;aa``__^^``aabbcc ]]^^__``! EEFFGGHHTTSSRRQQ mmnnoopp,,++**))55667788ddccbbaa]]^^__``00//..--AABBCCDDDDCCBBAAAABBCCDD::99876555667788ddccbbaa]]^^__``<<;;::99%%&&''((ttssrrqqMMNNOOPPLLKKJJIIuuvvwwxx$$##""!!==>>??@@HHGGFFEE00112233FFEEDDCC""##$$%%wwvvuuttJJKKLLMMOONNMMLLrrssttuu''&&%%$$::;;<<==__^^]]\\bbccddee77665544**++,,--``__^^]] \[[ZZYYXooppqqrr**))((''778899::bbaa``____``aabb::998877''(())**rrqqppooOOPPQQRRJJIIHHGGwwxxyyzzxxwwvvuuyyzz{{||qqponmlk\\]]^^__==<<;;::$$%%&&''uuttssrrLLMMNNOOMMLLKKJJttuuvvww%%$$##""<<==>>??]]\\[[ZZddeeffggaabbccddIIJJKKLLPPOONNMMqqrrsstt((''&&%%99::;;<<``__^^]]aabbccdd,,++**))EEFFGGHH@@??>>==EEFFGGHH4332211099::;;<<``__^^]]aabbccdd88776655))**++,,ppoonnmm QQRRSSTTHHGGFFEEyyzz{{||~~}} AABBCCDDDDCCBBAA99::;;<>??@@AA[[ZZYYXX ffgghhii33221100..//0011\\[[ZZYY!!""##$$XWWVVUUTssttuuvv&&%%$$##;;<<==>>^^]]\\[[ccddeeff66554433++,,--..nnmmllkk SSTTUUVVFFEEDDCC{{||}}~~ttssrrqq - - }}~~kjjiihhg``aabbcc99887766(())**++qqppoonnPPQQRRSSIIHHGGFFxxyyzz{{~~!! @@AABBCCYYXXWWVV - - hhiijjkkeeffgghh~~}}MMNNOOPPLLKKJJIIuuvvwwxx$$##""!!==>>??@@\\[[ZZYYeeffgghh((''&&%%IIJJKKLL<<;;::99IIJJKKLL0//..--,==>>??@@\\[[ZZYYeeffgghh44332211--..//00llkkjjii - - UUVVWWXXDDCCBBAA }}~~||{{zzyyEEFFGGHH@@??>>====>>??@@>>==<<;;**++,,--oonnmmll RRSSTTUUGGFFEEDDzz{{||}}~~}}||BBCCDDEEWWVVUUTT - - jjkkllmm//..--,,22334455XXWWVVUU%%&&''((SRQPOONNwwxxyyzz""!! ??@@AABBZZYYXXWW - -gghhiijj221100////001122jjiihhgg - - WWXXYYZZBBAA@@?? !!""kkjjiihh gffeeddcddeeffgg55443322,,--..//mmllkkjj - -TTUUVVWWEEDDCCBB||}}~~}}||{{zzDDEEFFGGUUTTSSRR llmmnnoo iijjkkqq||{{zzyyQQRRSSTTHHGGFFEEyyzz{{||~~}} AABBCCDDXXWWVVUU - - iijjkkll$$##""!!MMNNOOPP33221100MMNNOOUU,++**))(AABBCCDDXXWWVVUU - - iijjkkll00//..--11223344hhggffeeYYZZ[[\\@@??>>==!!""##$$xxwwvvuuIIJJKKLL<<;;::99AABBCCDD::998765..//0011kkjjiihh - - VVWWXXYYCCBBAA@@ !!~~{{zzyyxxFFGGHHIISSRRQQPPnnooppqq++**))((66778899OONNMMLL))**++,,MMLLKKJJ{{||}}~~~~}}||{{CCDDEEFFVVUUTTSS kkllmmnn..--,,++33445566ffeeddcc[[\\]]^^>>==<<;;##$$%%&&ggffeeddcbbaa``_ - - hhiijjkk1100//..00112233iihhggff XXYYZZ[[AA@@??>> !!""##yyxxwwvvHHIIJJKKQQPPOONNppqqrrss~~}}|| - - rrssttuuxxwwvvuu UUVVWWXXDDCCBBAA }}~~||{{zzyyEEFFGGHHTTSSRRQQ mmnnoopp~~}} QQRRSSTT//..--,,VVWWXXYY(''&&%%$EEFFGGHHTTSSRRQQ mmnnoopp,,++**))55667788ddccbbaa]]^^__``<<;;::99%%&&''((ttssrrqqMMNNOOPP33221100EEFFGGHH4332211022334455ggffeeddZZ[[\\]]??>>==<<""##$$%%wwvvuuttJJKKLLMMOONNMMLLrrssttuu''&&%%$$::;;<<==KKJJIIHH--..//00IIHHGGFF !!""zzyyxxwwGGHHIIJJRRQQPPOOooppqqrr**))((''778899::bbaa``____``aabb::998877''(())**ccbbaa``_^^]]\\[ llmmnnoo--,,++**44556677eeddccbb\\]]^^__==<<;;::$$%%&&''uuttssrrLLMMNNOOMMLLKKJJttuuvvww{{zzyyxxvvwwxxyyttssrrqq - - YYZZ[[\\@@??>>==!!""##$$xxwwvvuuIIJJKKLLPPOONNMMqqrrsstt||{{zzyyUUVVWWXX++**))((ZZ[[\\]]$##""!! IIJJKKLLPPOONNMMqqrrsstt((''&&%%99::;;<<``__^^]]aabbccdd88776655))**++,,ppoonnmm QQRRSSTT//..--,,IIJJKKLL0//..--,66778899ccbbaa``^^__``aa;;::9988&&''(())ssrrqqppNNOOPPQQKKJJIIHHvvwwxxyy##""!! >>??@@AAGGFFEEDD11223399EEDDCCBB##$$%%&&vvuuttssKKLLMMNNNNMMLLKKssttuuvv&&%%$$##;;<<==>>^^]]\\[[ccddeeff66554433++,,--..__^^]]\\ !![ZZYYXXWppqqrrss))((''&&8899::;;aa``__^^``aabbcc99887766(())**++qqppoonnPPQQRRSSIIHHGGFFxxyyzz{{wwvvuutt zz{{||}}ponmlkkj]]^^__``<<;;::99%%&&''((ttssrrqqMMNNOOPPLLKKJJIIuuvvwwxxxxwwvvuuYYZZ[[\\''&&%%$$^^__``aa MMNNOOPPLLKKJJIIuuvvwwxx$$##""!!==>>??@@\\[[ZZYYeeffgghh44332211--..//00llkkjjii - - UUVVWWXX++**))((MMNNOOUU,++**))(::;;<<==__^^]]\\bbccddee77665544**++,,--oonnmmll RRSSTTUUGGFFEEDDzz{{||}}~~}}||BBCCDDEECCBBAA@@::;;<<==AA@@??>>''(())**rrqqppooOOPPQQRRJJIIHHGGwwxxyyzz""!! ??@@AABBZZYYXXWW - -gghhiijj221100////001122[[ZZYYXX""##$$%%WVVUUTSRttuuvvww%%$$##""<<==>>??]]\\[[ZZddeeffgg55443322,,--..//mmllkkjj - -TTUUVVWWEEDDCCBB||}}~~ssrrqqkk - - ~~jiihhggfaabbccdd88776655))**++,,ppoonnmm QQRRSSTTHHGGFFEEyyzz{{||ttssrrqq]]^^__``##""!! bbccddeeQQRRSSTTHHGGFFEEyyzz{{||~~}} AABBCCDDXXWWVVUU - - iijjkkll00//..--11223344hhggffeeYYZZ[[\\''&&%%$$VVWWXXYY(''&&%%$>>??@@AA[[ZZYYXX ffgghhii33221100..//0011kkjjiihh - - VVWWXXYYCCBBAA@@ !!~~{{zzyyxxFFGGHHII??>>==<<>>??@@AA==<<;;::++,,--..nnmmllkk SSTTUUVVFFEEDDCC{{||}}~~~~}}||{{CCDDEEFFVVUUTTSS kkllmmnn..--,,++33445566WWVVUUOO&&''(())QPOONNMMxxyyzz{{~~!! @@AABBCCYYXXWWVV - - hhiijjkk1100//..00112233iihhggff XXYYZZ[[AA@@??>> !!""##jjiihhggfeeddccbeeffgghh44332211--..//00llkkjjii - - UUVVWWXXDDCCBBAA }}~~ppoonnmm aabbccddffgghhii~~}}||UUVVWWXXDDCCBBAA }}~~||{{zzyyEEFFGGHHTTSSRRQQ mmnnoopp,,++**))55667788ddccbbaa]]^^__``##""!! ZZ[[\\]]$##""!! BBCCDDEEWWVVUUTT - - jjkkllmm//..--,,22334455ggffeeddZZ[[\\]]??>>==<<""##$$%%wwvvuuttJJKKLLMM;;::9933BBCCDDEE99876543//001122jjiihhgg - - WWXXYYZZBBAA@@?? !!""zzyyxxwwGGHHIIJJRRQQPPOOooppqqrr**))((''778899::NNMMLLKK**++,,--LLKKJJII||}}~~}}||{{zzDDEEFFGGUUTTSSRR llmmnnoo--,,++**44556677eeddccbb\\]]^^__==<<;;::$$%%&&''ffeeddccbaa``__^ - - iijjkkll00//..--11223344hhggffeeYYZZ[[\\@@??>>==!!""##$$llkkjjii - - eeffgghhjjkkqqrr{{zzyyxxYYZZ[[\\@@??>>==!!""##$$xxwwvvuuIIJJKKLLPPOONNMMqqrrsstt((''&&%%99::;;<<``__^^]]aabbccdd^^__``aa FFGGHHIISSRRQQPPnnooppqq++**))((66778899ccbbaa``^^__``aa;;::9988&&''(())ssrrqqppNNOOPPQQ221100//FFGGHHII3221100/33445566ffeeddcc[[\\]]^^>>==<<;;##$$%%&&vvuuttssKKLLMMNNNNMMLLKKssttuuvv&&%%$$##;;<<==>>JJIIHHGG..//0011HHGGFFEE !!""##yyxxwwvvHHIIJJKKQQPPOONNppqqrrss))((''&&8899::;;aa``__^^``aabbcc99887766(())**++bbaa``__^]]\\[[Z mmnnoopp,,++**))55667788ddccbbaa]]^^__``<<;;::99%%&&''((hhggffee - - iijjkkllssttuuvvwwvvuutt - -]]^^__``<<;;::99%%&&''((ttssrrqqMMNNOOPPLLKKJJIIuuvvwwxx$$##""!!==>>??@@\\[[ZZYYeeffgghhbbccddeeJJKKLLMMOONNMMLLrrssttuu''&&%%$$::;;<<==__^^]]\\bbccddee77665544**++,,--oonnmmll RRSSTTUU..--,,++JJKKLLMM/..--,,+778899::bbaa``____``aabb::998877''(())**rrqqppooOOPPQQRRJJIIHHGGwwxxyyzz""!! ??@@AABBFFEEDDCC223399::DDCCBBAA$$%%&&''uuttssrrLLMMNNOOMMLLKKJJttuuvvww%%$$##""<<==>>??]]\\[[ZZddeeffgg55443322,,--..//^^]]\\[[ !!""ZYYXXWWVqqrrsstt((''&&%%99::;;<<``__^^]]aabbccdd88776655))**++,,ddccbbaa mmnnoopp wwxxyyzzssrrqqpo aabbccdd88776655))**++,,ppoonnmm QQRRSSTTHHGGFFEEyyzz{{||~~}} AABBCCDDXXWWVVUU - - iijjkkllffgghhii~~}}||NNOOPPQQKKJJIIHHvvwwxxyy##""!! >>??@@AA[[ZZYYXX ffgghhii33221100..//0011kkjjiihh - - VVWWXXYY**))((''NNOOUUVV+**))((';;<<==>>^^]]\\[[ccddeeff66554433++,,--..nnmmllkk SSTTUUVVFFEEDDCC{{||}}~~~~}}||{{CCDDEEFFBBAA@@??;;<<==>>@@??>>==(())**++qqppoonnPPQQRRSSIIHHGGFFxxyyzz{{~~!! @@AABBCCYYXXWWVV - - hhiijjkk1100//..00112233ZZYYXXWW##$$%%&&VUUTSRQPuuvvwwxx$$##""!!==>>??@@\\[[ZZYYeeffgghh44332211--..//00``__^^]]qqrrsstt~~}}||{{ - - - -{{||}}~~nmlkkjjieeffgghh44332211--..//00llkkjjii - - UUVVWWXXDDCCBBAA }}~~||{{zzyyEEFFGGHHTTSSRRQQ mmnnoopp jjkkqqrr{{zzyyxxRRSSTTUUGGFFEEDDzz{{||}}~~}}||BBCCDDEEWWVVUUTT - - jjkkllmm//..--,,22334455ggffeeddZZ[[\\]]&&%%$$##WWXXYYZZ'&&%%$$#??@@AABBZZYYXXWW - -gghhiijj221100////001122jjiihhgg - - WWXXYYZZBBAA@@?? !!""zzyyxxwwGGHHIIJJ>>==<<;;??@@AABB<<;;::99,,--..//mmllkkjj - -TTUUVVWWEEDDCCBB||}}~~}}||{{zzDDEEFFGGUUTTSSRR llmmnnoo--,,++**44556677VVUUOONN''(())**OONNMMLLyyzz{{||~~}} AABBCCDDXXWWVVUU - - iijjkkll00//..--11223344\\[[ZZYYuuvvwwxxzzyyxxww ihhggffe - - iijjkkll00//..--11223344hhggffeeYYZZ[[\\@@??>>==!!""##$$xxwwvvuuIIJJKKLLPPOONNMMqqrrsstt~~}}||{{ - - ssttuuvvwwvvuutt - -VVWWXXYYCCBBAA@@ !!~~{{zzyyxxFFGGHHIISSRRQQPPnnooppqq++**))((66778899ccbbaa``^^__``aa""!! [[\\]]^^#""!! CCDDEEFFVVUUTTSS kkllmmnn..--,,++33445566ffeeddcc[[\\]]^^>>==<<;;##$$%%&&vvuuttssKKLLMMNN::993322CCDDEEFF8765433200112233iihhggff XXYYZZ[[AA@@??>> !!""##yyxxwwvvHHIIJJKKQQPPOONNppqqrrss))((''&&8899::;;MMLLKKJJ++,,--..KKJJIIHH }}~~||{{zzyyEEFFGGHHTTSSRRQQ mmnnoopp,,++**))55667788XXWWVVUUyyzz{{||vvuuttsseddccbba mmnnoopp,,++**))55667788ddccbbaa]]^^__``<<;;::99%%&&''((ttssrrqqMMNNOOPPLLKKJJIIuuvvwwxxzzyyxxwwwwxxyyzzssrrqqpo ZZ[[\\]]??>>==<<""##$$%%wwvvuuttJJKKLLMMOONNMMLLrrssttuu''&&%%$$::;;<<==__^^]]\\bbccddee__``aabbGGHHIIJJRRQQPPOOooppqqrr**))((''778899::bbaa``____``aabb::998877''(())**rrqqppooOOPPQQRR1100//..GGHHIIJJ21100//.44556677eeddccbb\\]]^^__==<<;;::$$%%&&''uuttssrrLLMMNNOOMMLLKKJJttuuvvww%%$$##""<<==>>??IIHHGGFF//001122GGFFEEDD!!""##$$xxwwvvuuIIJJKKLLPPOONNMMqqrrsstt((''&&%%99::;;<>??@@AA[[ZZYYXX ffgghhiiccddeeffKKLLMMNNNNMMLLKKssttuuvv&&%%$$##;;<<==>>^^]]\\[[ccddeeff66554433++,,--..nnmmllkk SSTTUUVV--,,++**KKLLMMNN.--,,++*8899::;;aa``__^^``aabbcc99887766(())**++qqppoonnPPQQRRSSIIHHGGFFxxyyzz{{~~!! @@AABBCCEEDDCCBB3399::;;CCBBAA@@%%&&''((ttssrrqqMMNNOOPPLLKKJJIIuuvvwwxx$$##""!!==>>??@@PPOONNMM!!""##$$iihhggff]\\[[ZZYuuvvwwxx$$##""!!==>>??@@\\[[ZZYYeeffgghh44332211--..//00llkkjjii - - UUVVWWXXDDCCBBAA }}~~rrqqkkjj ihhggffebbccddee77665544**++,,--oonnmmll RRSSTTUUGGFFEEDDzz{{||}}~~}}||BBCCDDEEWWVVUUTT - - jjkkllmmgghhiijj~~}}||{{OOPPQQRRJJIIHHGGwwxxyyzz""!! ??@@AABBZZYYXXWW - -gghhiijj221100////001122jjiihhgg - - WWXXYYZZ))((''&&OOUUVVWW*))((''&<<==>>??]]\\[[ZZddeeffgg55443322,,--..//mmllkkjj - -TTUUVVWWEEDDCCBB||}}~~}}||{{zzDDEEFFGGAA@@??>><<==>>????>>==<<))**++,,ppoonnmm QQRRSSTTHHGGFFEEyyzz{{||~~}} AABBCCDDDDCCBBAA }}~~||{{zzyyEEFFGGHH@@??>>====>>??@@>>==<<;;**++,,--oonnmmll RRSSTTUUGGFFEEDDzz{{||}}~~}}||BBCCDDEE@@??>>==EEFFGGHH//..--,,BBCCDDEE@@??>>==!!""##$$xxwwvvuuIIJJKKLL<<;;::99AABBCCDD::998765..//0011kkjjiihh - - VVWWXXYYCCBBAA@@ !!~~{{zzyyxxFFGGHHII<<;;::99IIJJKKLL++**))((FFGGHHII<<;;::99%%&&''((ttssrrqqMMNNOOPP33221100EEFFGGHH4332211022334455ggffeeddZZ[[\\]]??>>==<<""##$$%%wwvvuuttJJKKLLMM33221100MMNNOOUU''&&%%$$JJKKLLMM88776655))**++,,ppoonnmm QQRRSSTT//..--,,IIJJKKLL0//..--,66778899ccbbaa``^^__``aa;;::9988&&''(())ssrrqqppNNOOPPQQ//..--,,VVWWXXYY##""!! NNOOPPQQ44332211--..//00llkkjjii - - UUVVWWXX++**))((MMNNOOUU,++**))(::;;<<==__^^]]\\bbccddee77665544**++,,--oonnmmll RRSSTTUU++**))((ZZ[[\\]]~~}}||RRSSTTUU00//..--11223344hhggffeeYYZZ[[\\''&&%%$$VVWWXXYY(''&&%%$>>??@@AA[[ZZYYXX ffgghhii33221100..//0011kkjjiihh - - VVWWXXYY''&&%%$$^^__``aa{{zzyyxxVVWWXXYY,,++**))55667788ddccbbaa]]^^__``##""!! ZZ[[\\]]$##""!! BBCCDDEEWWVVUUTT - - jjkkllmm//..--,,22334455ggffeeddZZ[[\\]]##""!! bbccddeewwvvuuttZZ[[\\]]((''&&%%99::;;<<``__^^]]aabbccdd^^__``aa FFGGHHIISSRRQQPPnnooppqq++**))((66778899ccbbaa``^^__``aaffgghhiissrrqqpp^^__``aa$$##""!!==>>??@@\\[[ZZYYeeffgghhbbccddeeJJKKLLMMOONNMMLLrrssttuu''&&%%$$::;;<<==__^^]]\\bbccddeejjkkqqrroonnmmll bbccddee~~}} AABBCCDDXXWWVVUU - - iijjkkllffgghhii~~}}||NNOOPPQQKKJJIIHHvvwwxxyy##""!! >>??@@AA[[ZZYYXX ffgghhiissttuuvvkkjjiihh - - ffgghhii||{{zzyyEEFFGGHHTTSSRRQQ mmnnoopp jjkkqqrr{{zzyyxxRRSSTTUUGGFFEEDDzz{{||}}~~}}||BBCCDDEEWWVVUUTT - - jjkkllmm wwxxyyzzggffeedd - - jjkkllmmxxwwvvuuIIJJKKLLPPOONNMMqqrrsstt~~}}||{{ - - ssttuuvvwwvvuutt - -VVWWXXYYCCBBAA@@ !!~~{{zzyyxxFFGGHHIISSRRQQPPnnooppqq~~}}||{{ - - - -{{||}}~~ccbbaa``nnooppqqttssrrqqMMNNOOPPLLKKJJIIuuvvwwxxzzyyxxwwwwxxyyzzssrrqqpo ZZ[[\\]]??>>==<<""##$$%%wwvvuuttJJKKLLMMOONNMMLLrrssttuuzzyyxxww __^^]]\\rrssttuuppoonnmm QQRRSSTTHHGGFFEEyyzz{{||vvuuttss - -{{||}}~~nmlkkjji^^__``aa;;::9988&&''(())ssrrqqppNNOOPPQQKKJJIIHHvvwwxxyyvvuuttss[[ZZYYXXvvwwxxyyllkkjjii - - UUVVWWXXDDCCBBAA }}~~rrqqkkjj ihhggffebbccddee77665544**++,,--oonnmmll RRSSTTUUGGFFEEDDzz{{||}}rrqqkkjjWWVVUUTTzz{{||}}hhggffeeYYZZ[[\\@@??>>==!!""##$$iihhggffeddccbba ffgghhii33221100..//0011kkjjiihh - - VVWWXXYYCCBBAA@@ !!~~iihhggffSSRRQQPP !!~~ddccbbaa]]^^__``<<;;::99%%&&''((eeddccbba``__^^] - - jjkkllmm//..--,,22334455ggffeeddZZ[[\\]]??>>==<<""##$$%%eeddccbb !!""##OONNMMLL""##$$%%``__^^]]aabbccdd88776655))**++,,aa``__^^]\\[[ZZYnnooppqq++**))((66778899ccbbaa``^^__``aa;;::9988&&''(())aa``__^^$$%%&&''KKJJIIHH&&''(())\\[[ZZYYeeffgghh44332211--..//00]]\\[[ZZ !!""##YXXWWVVUrrssttuu''&&%%$$::;;<<==__^^]]\\bbccddee77665544**++,,--]]\\[[ZZ(())**++GGFFEEDD**++,,--XXWWVVUU - - iijjkkll00//..--11223344YYXXWWVV$$%%&&''UTSRQPOOvvwwxxyy##""!! >>??@@AA[[ZZYYXX ffgghhii33221100..//0011YYXXWWVV,,--..//CCBBAA@@..//0011TTSSRRQQ mmnnoopp,,++**))55667788UUOONNMM(())**++NNMMLLKKzz{{||}}~~}}||BBCCDDEEWWVVUUTT - - jjkkllmm//..--,,22334455UUOONNMM00112233??>>==<<22334455PPOONNMMqqrrsstt((''&&%%99::;;<>??@@HHGGFFEE00112233FFEEDDCC""##$$%%wwvvuuttJJKKLLMMOONNMMLLrrssttuu''&&%%$$::;;<<==HHGGFFEE==>>??@@77665544::;;<<==HHGGFFEEyyzz{{||~~}} AABBCCDDDDCCBBAA99::;;<>??@@AADDCCBBAAAABBCCDD33221100>>??@@AAfpvfpvXQJ`ےXQJ`ےtAJlf`vXfH~ے`JXtlJtlJf~Hf~HbHAZbHAZJlt`vXn`vXnr˂pr˂ptlJtlJf~HfHfbHAZJltJlt`vXn`vXnpZHAblJtArdQbt璅fpvHAZpbHAZpltbltbvXnvXn˂pZ˂pZlJtA~Hf~HfbHAZpbHAZpltbltbvXnvXn˂pZlJtAlJtA`f~nXvbHAtbdQJltXnv˂pZHA˂pZHAlJtArlJtAr~Hfp~HfpHAZp˂HAZp˂tbdQXnvXnv˂pZHA˂pZHAlJtArlJtAr~HfpHfpvHAZp˂|drtbdQZfH~r˂pZJXQrJtArdJtArdHfpvZp˂Zp˂tbdQZtbdQZnvpnvppZHAbpZHAJtArdHfpvHfpvZp˂Zp˂tbdQZtbdQZnvpnvpXQr˂JtArd~HfpXv`fp˂rp˂rbdQZ|bdQZ|vpfZHAbZHAbtArdtArdfpvfpvp˂rnXv`nXv`bHAZbHAZtbdQZnvpf`vXQrZHAtArdtArdfpvfpvp˂rp˂rbdQZ|vpfvpfZHAbZHAbtArdtArdfpvpvnp˂rbdQZ|bdQZ|vpfvpfے`Jd|Zl|ZdQnXv`˂rXQ˂rXQdQZ|dQZ|vpfHvpfHHAbےHAے`rd|pvnpvn˂rXQ˂rXQdQZ|dQZ|vpfHvpfےHAbےrd|rd|Hfpv`pvZp˂Z|dbdQZ|pfH~bے`bے`d|Zd|ZvnXvnXrXQJrXQJZ|dpfH~pfH~bے`bے`d|Zd|ZvnXnrXQrXQJtAJl|drf`vXAb`JpZHA|ZdQ|ZdQnXvrXQJ`rXQJ`|dr|drfH~fH~ے`Jے`JXQ|ZdQnXvnXvrXQJ`rXQJ`|dr|drfH~fے`Jp`JXQ|ZdQvnX~fpvXQJ`ےXQJ`ےdrtAdtAJH~fے`JXQے`JXQ|ZdQb|ZdQbnXv`nXv`XQJ`ےf~Hf~Hp˂rp˂r|drfH~nvpbے`|ZdQb|ZdQbnXv`nXv`XQJ`ےXQJ`ےdrtAH~fH~fے`JXQے`JXQ|ZdQb|ZdQbnXv`rXQJ`XQJ`ےdrtAdrtAH~fH~fXQr˂dQtArdbtlf~HJ`ےJ`ےdrtAJdrtAJ~f`~f``JXQrJXQrbZdQbtXv`fXv`fJ`ےJ`ےdrtAJdrtAJ~f``JXQr`JXQrZdQbtZdQbtnXvnrXQJrXQJ`rtAJAJl璐f`vJXQrJXQrdQbtdQbtv`fv`f`ےb`ےJlrtAJlf`vf`vJXQrJXQrdQbtdQbtv`fJ`ے`ےbtbdQZtAdQZ|nvpXQr˂bJQrbtlbtl`f~ےbHAےbHAtAJltAJlf`vXf`vXXQr˂rbtbtl`f~`f~ےbHAےbHAtAJltAJlf`vXXQHAbr˂pbtlv`fnXv`bHAZbHAZJltltb`vXnr˂pr˂ptlJtlJf~Hf~HbHAZfpvfpvXQJ`ےXQJ`ےtAJlf`vXfH~JXQrtlJtlJf~Hf~HbHAZJltJlt`vXn`vXnr˂pr˂ptlJtlJf~HےHAZbHAZJltJlt`vXn`vXnpZHAb|ZdQJtArdfpvbHAZpbHAZpltbltbvXnvXn˂pZtlJlJtA~Hf~HfbHAZpbHAZpltbltbvXn˂pZ˂pZlJtAlJtA`f~`p˂ےbHAbdQZ|tbnXnv˂pZHA˂pZHAlJtArlJtAr~Hfp~HfpHAZp˂tbdQtbdQXnvXnv˂pZHA˂pZHAlJtArlJtAr~HfpHAZp˂HAZp˂|ltdrtAfH~pZHAb˂pZJtArdJfpvHfpvZp˂Zp˂tbdQZtbdQZnvpnvppZHAblJtAdJtArdHfpvHfpvZp˂Zp˂tbdQZtbdQZnvpے`JXQZHAbJtArd~Hfpf~Hp˂rp˂rbdQZ|nvpvpfZHAbZHAbtArdtArdfpvfpvp˂rnXv`nXv`bHAZbHAZtdrtAnvpvpf˂pZHAtArdtArdfpvfpvp˂rbdQZ|bdQZ|vpfvpfZHAbZHAbtArdtArdfpvp˂rp˂rbdQZ|bdQZ|vpfvpfے`Jbtl|ZdQnvf˂rXQ˂rXQdQZ|dQZ|vpfHvpfHHAbےtAd|rd|pvnpvn˂rXQ˂rXQdQZ|dQZ|vpfHHAbےHAbےrd|rd|HXv`rXQJ`Zp˂drtAvpfHpfH~bے`bے`d|Zd|ZvnXvnXrXQJZ|dZ|dpfH~pfH~bے`bے`d|Zd|ZvnXrXQJrXQJbdQZ|Jltf`vXے`JHAbے|ZdQnXvnXvrXQJ`rXQJ`|dr|drfH~fH~ے`J|ZdQ|ZdQnXvnXvrXQJ`rXQJ`|dr|dtAfH~r˂pے`JXQtlJvnXfpvXQJ`ےXQJ`ےdrtAfHfH~fے`JXQے`JXQ|ZdQb|ZdQbnXv`nXv`XQJ`ےf~Hf~Hp˂rp˂rJlt`vXnے`JXQbے`|ZdQb|ZdQbnXv`nXv`XQJ`ےdrtAdrtAH~fH~fے`JXQے`JXQ|ZdQb|ZdQbnXv`XQJ`ےXQJ`ےdrtAdrtAH~fH~fXQHAbJtArdbtl~HfpJ`ےJ`ےdrtAJdrtAJ~f`~f``JXQrZdQbtZdQbtXv`fXv`fJ`ےJ`ےdrtAJdtAJl~f``JXQr`JXQrZdQbtZdQbtf~HےbHArXQJ`Jltf`vf`vJXQrJXQrdQbtdQbtv`fv`f`ےbrtAJlrtAJlf`vf`vJXQrJXQrdQbtdQbtv`f`ےb`ےbdrtAbdQZ|H~fXQr˂`JXQrbtl`f~`f~ےbHAےbHAtAJltAJlf`vXf`vXXQr˂btlbtl`f~`f~ےbHAےbHAtAJlJltf`vXZHAbr˂ptArdv`f~nXv`bHAZbHAZJlt`vXn`vXnr˂pr˂ptlJtlJf~HfHfbHAZfpvfpvXQJ`ےXQJ`ےbdQZ|vpfrZHAJXQrtlJtlJf~HfHfbHAZJltJlt`vXn`vXnr˂pr˂ptlJtlJf~HbHAZbHAZJltJlt`vXn`vXnے`JXQ|ZdQJtArdvnXbHAZpbHAZpltbltbvXnvXn˂pZlJtAlJtA~Hf~HfbHAZpbHAZpltbtbnvXn˂pZ˂pZlJtAlJtAfpvZp˂p˂rbdQZ|XnvXnv˂pZHA˂pZHAlJtArlJtAr~HfpHfpvHAZp˂tbdQtbdQXnvXnv˂pZHA˂pZHAlJtArlJfp~HfpHAZp˂HAZp˂Jltltb`vXnpZHAb˂pZAJtArdHfpvHfpvZp˂Zp˂tbdQZtbdQZnvpnvppZHAbJtArdJtArdHfpvHfpvZp˂Zp˂tbdQZbnvnvpے`JXQZHAb|ZdQbfpvf~Hp˂rp˂rbdQZ|vpfvpfZHAbZHAbtArdtArdfpvpvnp˂rnXv`nXv`bHAZbHAZdrtAH~fbے`˂pZAbtArdtArdfpvpvnp˂rbdQZ|bdQZ|vpfvpfZHAbZHAbtArdfpvfpvp˂rp˂rbdQZ|bdQZ|vpfvpfr˂pbtltlJv`f˂rXQ˂rXQdQZ|dQZ|vpfHvpfےHAbےrd|rd|pvnpvn˂rXQ˂rXQdQZ|vpfvpfHHAbےHAbےrd|rd|nXv`bHAZXQJ`ےdrtApfH~pfH~bے`bے`d|Zd|ZvnXnrXQrXQJZ|dZ|dpfH~pfH~bے`bے`d|ZvnXvnXrXQJrXQJbdQZ|nvpvpfJQr`JXQ|ZdQnXvnXvrXQJ`rXQJ`|dr|drfH~fے`Jے`J|ZdQ|ZdQnXvnXvrXQJ`rXQJ`|drpfHfH~r˂p˂pZtlJnXv`fvnXXQJ`ےXQJ`ےdrtAH~fH~fے`JXQے`JXQ|ZdQb|ZdQbnXv`rXQJ`XQJ`ےf~Hf~Hp˂rp˂rJlt`vXnJXQr˒`JXQ|ZdQb|ZdQbnXv`rXQJ`XQJ`ےdrtAdrtAH~fH~fے`JXQے`JXQ|ZdQbnXv`nXv`XQJ`ےXQJ`ےdrtAdrtAH~fH~fZHAb|ZdQbfpv~HfpJ`ےJ`ےdrtAJdrtAJ~f``JXQr`JXQrZdQbtZdQbtXv`fXv`fJ`ےJ`ےdrtAJHf`~f``JXQr`JXQrZdQbtZdQbtf~Hp˂rbHAZJltbf`vf`vJXQrJXQrdQbtdQbtv`fJ`ے`ےbrtAJlrtAJlf`vf`vJXQrJXQrdQbtv`fv`f`ےb`ےbdrtA`vXnH~f˂pZHrbtbtl`f~`f~ےbHAےbHAtAJltAJlf`vXXQr˂XQr˂btlbtl`f~`f~ےbHAےbHAtAJlf`vXf`vX`JXQrHAbےtArdf~Hv`fbHAZJltJlt`vXn`vXnr˂pr˂ptlJtlJf~HےHAZbHAZfpvfpvXQJ`ےXQJ`ےbdQZ|vpfpZHAr˂ptlJtlJf~HےHAZbHAZJltJlt`vXn`vXnr˂pr˂ptlJf~Hf~HbHAZbHAZJltJlt`vXn`vXnے`JXQtlJnvfvnXbHAZpbHAZpltbltbvXn˂pZ˂pZlJtAlJtA~Hf~HfbHAZpbHAZpltbvXnvXn˂pZ˂pZlJtAlJtAfpvXQJ`ےp˂rQZdrXnvXnv˂pZHA˂pZHAlJtArlJtAr~HfpHAZp˂HAZp˂tbdQtbdQXnvXnv˂pZHA˂pZHAlJtAr~Hfp~HfpHAZp˂HAZp˂dQZ|vpf`vXnAbے`lJtAdJtArdHfpvHfpvZp˂Zp˂tbdQZtbdQZnvppZHAbpZHAbJtArdJtArdHfpvHfpvZp˂Zp˂tbdQZnvpnvp˂pZ`JXQr|ZdQtAfpv~Hfpp˂rbdQZ|bdQZ|vpfvpfZHAbZHAbtArdtArdfpvp˂rp˂rnXv`nXv`bHAZJltltbH~bے`ZHAbtArdtArdfpvp˂rp˂rbdQZ|bdQZ|vpfvpfZHAbZHAےtArdfpvfpvp˂rp˂rbdQZ|bdQZ|vpfvpfr˂ptArd~Hfpv`f~˂rXQ˂rXQdQZ|dQZ|vpfHHAbےHAbےrd|rd|pvnpvn˂rXQ˂rXQdQZ|vpfHvpfHHAbےHAbےrd|rd|~HfbHAZXQJ`ےtAJlpfH~pfH~bے`bے`d|Zd|ZvnXrXQJrXQJZ|dZ|dpfH~pfH~bے`ے`Jd|ZvnXvnXrXQJrXQJdrtAJH~fvp`JXQr|ZdQ|ZdQnXvnXvrXQJ`rXQJ`|dr|dtAfH~ے`Jے`J|ZdQ|ZdQnXvnXvrXQJ`rXQJ`|drfH~fH~HAbے˂p`rd|nXv`vnXXQJ`ےdrtAdrtAH~fH~fے`JXQے`JXQ|ZdQb|ZdQbnXv`XQJ`ےXQJ`ےf~Hf~Hp˂rdrtAJdQZ|vpfHJXQr˒`JXQ|ZdQb|ZdQbnXv`XQJ`ےXQJ`ےdrtAdrtAH~fH~fے`JXQ`JXQr|ZdQbnXv`nXv`XQJ`ےXQJ`ےdrtAdrtAH~fے`JXQ`JXQr|ZdQbvnXfpvJ`ےJ`ےdrtAJdtAJl~f``JXQr`JXQrZdQbtZdQbtXv`fXv`fJ`ےJ`ےJdrtAJ~f`~f``JXQr`JXQrZdQbtZdQbtpvnp˂rbHAXQtbdQZf`vf`vJXQrJXQrdQbtdQbtv`f`ےb`ےbrtAJlrtAJlf`vf`vJXQrXQrbtdQbtv`fv`f`ےb`ےbltb`vXHvXn˂pZHbtlbtl`f~`f~ےbHAےbHAtAJlJltf`vXXQr˂XQr˂btlbtl`f~`f~ےbHAےJltAJlf`vXf`vX`JXQrJXQrbZdQbtf~Hv`ffbHAZJltJlt`vXn`vXnr˂pr˂ptlJtlJf~HbHAZbHAZfpvfpvXQJ`ےltbdrtAJ~f`pZAbr˂ptlJtlJf~HbHAZbHAZJltJlt`vXn`vXnr˂pbtltlJf~Hf~HbHAZbHAZJltJlt`vXnHAbے˂pZtlJv`fnXv`bHAZpbHAZpltbtbnvXn˂pZ˂pZlJtAlJtA~Hf~HfbHAZpltbltbvXnvXn˂pZ˂pZlJtAlJtAXv`fXQJ`pJ`ےJ|drXnvXnv˂pZHA˂pZHAlJtArlJfp~HfpHAZp˂HAZp˂tbdQtbdQXnvXnv˂pZHAlJtAlJtAr~Hfp~HfpHAZp˂HAZp˂dQZ|~f`vpfHAbے`JtArdJtArdHfpvHfpvZp˂Zp˂tbdQZbnvnvppZHAbpZHAbJtArdJtArdHfpvHfpvZp˂tbdQZtbdQZnvpnvp˂pZtl|lJtAfvnXpvnp˂rbdQZ|bdQZ|vpfvpfZHAbZHAbtArdfpvfpvp˂rp˂rnXv`nXv`bHAZdQZ|ltbvXn`JXQrZHAbtArdfpvfpvp˂rp˂rbdQZ|bdQZ|vpfvpfZHAbJtAdtArdfpvfpvp˂rp˂rbdQZ|bdQZ|vpf`JXQrHAbےtArdt~Hfpf~H˂rXQ˂rXQdQZ|vpfvpfHHAbےHAbےrd|rd|pvnpvn˂rXQdQZ|dQZ|vpfHvpfHHAbےHAbےrd|rd|~Hf˂rXQltbQtAJlpfH~pfH~bے`bے`d|ZvnXvnXrXQJrXQJZ|dZ|dpfH~pfH~bے`d|Zd|ZvnXvnXrXQJrXQJdrtAJvXn~f`JXQr|ZdQ|ZdQnXvnXvrXQJ`rXQJ`|drpfHfH~ے`Jے`J|ZdQ|ZdQnXvnXvrXQJ`|dr|drfH~fH~HAbZdQbtrd|v`frXQJ`XQJ`ےdrtAdrtAH~fH~fے`JXQے`JXQ|ZdQbnXv`nXv`XQJ`ےXQJ`ےf~Hf~Hp˂rdrtAJdQZ|vpfH˂pZJQr˂|ZdQbnXv`nXv`XQJ`ےXQJ`ےdrtAdrtAH~fH~fے`JXQ|ZdQb|ZdQbnXv`nXv`XQJ`ےXQJ`ےdrtAdtAJH~f˂pZ`JXQrlJtAvnXfpvJ`ےJ`ےdrtAJHf`~f``JXQr`JXQrZdQbtZdQbtXv`fXv`fJ`ےdrtAJdrtAJ~f`~f``JXQr`JXQrZdQbtZdQbtpvnJ`ےZdrttbdQZf`vf`vJXQrJXQrdQbtv`fv`f`ےb`ےbrtAJlrtAJlf`vf`vJXQrdQbtdQbtv`fv`f`ےb`ےbltdvpfHvXnZHAbbtlbtl`f~`f~ےbHAےbHAtAJlf`vXf`vXXQr˂XQr˂btlbtl`f~`fHےbHAtAJltAJlf`vXf`vX˂pZHAlJtAZdQbt~HfpےHAZbHAZJltJlt`vXn`vXnr˂pr˂ptlJf~Hf~HbHAZbHAZfpvfpvXQJ`ےltbdrtAdQ~f`HAbےpZHAbtlJf~Hf~HbHAZbHAZJltJlt`vXn`vXnr˂ptlJtlJf~Hf~HbHAZbHAZJltltb`vXnHAbے˂pZrd|v`f~fnXv`bHAZpbHAZpltbvXnvXn˂pZ˂pZlJtAlJtA~HfHfpbHAZpltbltbvXnvXn˂pZ˂pZlJtAlJfXv`pbHAZpAJlt|rAJlXnvXnv˂pZHA˂pZHAlJtAr~Hfp~HfpHAZp˂HAZp˂tbdQtbdQXnvXnv˂pZHAlJtArlJtAr~Hfp~HfpHAZp˂HAZp˂rtAJl~f`vpfHے`JXQJtArdJtArdHfpvHfpvZp˂Zp˂tbdQZnvpnvppZHAbpZHAbJtArdJtArdHfpvfpvZp˂tbdQZtbdQZnvpnvpbے`rd|l|ZvnXp˂rp˂rbdQZ|bdQZ|vpfvpfZHAbZHAےtArdfpvfpvp˂rp˂rnXv`nXv`bHAZdQZ|lZ|dvXH~`JXQrے`JtArdfpvfpvp˂rp˂rbdQZ|bdQZ|vpfvpfZHAbtArdtArdfpvfpvp˂rp˂rbdQZ|nvpvpf`JXQrHAbZdQbtpvnf~Hf˂rXQ˂rXQdQZ|vpfHvpfHHAbےHAbےrd|rd|pvnvnr˂rXQdQZ|dQZ|vpfHvpfHHAbےHAbےrd|pvvnX˂rXQbdQZ|tbdpfH~pfH~bے`ے`Jd|ZvnXvnXrXQJrXQJZ|dZ|dpfH~pfے`bے`d|Zd|ZvnXvnXrXQJrXQJtbdQvXn~vr˂p|ZdQ|ZdQnXvnXvrXQJ`rXQJ`|drfH~fH~ے`Jے`J|ZdQ|ZdQnXvnrXQJrXQJ`|dr|drfH~fH~JXQrZdQtArdQbtv`fXQJ`ےXQJ`ےdrtAdrtAH~fH~fے`JXQ`JXQr|ZdQbnXv`nXv`XQJ`ےXQJ`ےf~Hp˂rp˂rtbdQrtAJlf`v˂pZXQr˂|ZdQbnXv`nXv`XQJ`ےXQJ`ےdrtAdrtAH~fے`JXQے`JXQ|ZdQb|ZdQbnXv`nXv`XQJ`ےXQJ`ےdrtAfHfH~f˂p`˂pZHAlJtAXv`fvnXvJ`ےJ`ےJdrtAJ~f`~f``JXQr`JXQrZdQbtZdQbtXv`fXQJ`ےJ`ےdrtAJdrtAJ~f`~f``JXQr`JXQrZdQbt~Hfpv`fJ`ےdrtQZ|df`vf`vJXQrXQrbtdQbtv`fv`f`ےb`ےbrtAJlrtAJlf`vJXQrJXQrdQbtdQbtv`fv`f`ےb`ےbZ|dvp`vpfے`ZHAbbtlbtl`f~`f~ےbHAےJltAJlf`vXf`vXXQr˂XQr˂btlbtl`f~`ےHAےbHAtAJltAJlf`vXf`vX˂pZHAd|ZlJtAr~HfpېbHAZbHAZJltJlt`vXn`vXnr˂pbtltlJf~Hf~HbHAZbHAZfpvXQJ`ےXQJ`ےZ|dtbdQXnvHAbpZHAbtlJf~Hf~HbHAZbHAZJltJlt`vXnr˂pr˂ptlJtlJf~Hf~HbHAZbHAZJlt`vXn`vXnJXQrbے`rd|~Hf`f~bHAZpltbltbvXnvXn˂pZ˂pZlJtAlJtA~HfHAZpbHAZpltbltbvXnvXn˂pZ˂pZlJtAvnX~HfpbHAXQJAJltrtAJlXnvXnv˂pZHAlJtAlJtAr~Hfp~HfpHAZp˂HAZp˂tbdQtbdQXnv˂pZHA˂pZHAlJtArlJtAr~Hfp~HfpHAZp˂HAZp˂rtAJlXnvJXQrے`JXQJtArdJtArdHfpvHfpvZp˂tbdQZtbdQZnvpnvppZHAbpZHAbJtArdJtArdHfpvZp˂Zp˂tbdQZtbdQZnvpnvpbے`dQbtd|Zvnvfp˂rp˂rbdQZ|bdQZ|vpfvpfZHAbJtAdtArdfpvfpvp˂rp˂rnXv`bHAZbHAZrtAJlZ|`vpfH~JQr˂pJAdtArdfpvfpvp˂rp˂rbdQZ|bdQZ|vpfZHAbZHAbtArdtArdfpvfpvp˂rp˂rbdQZ|vpfvpf˂pZHAJXQrZdQtArpvnHfpv˂rXQdQZ|dQZ|vpfHvpfHHAbےHAbےrd|rd|pvn˂rXQ˂rXQdQZ|dQZ|vpfHvpfHHAbےHAے`rd|v`fvnX`ےbbdQZ|tbdpfH~pfH~bے`d|Zd|ZvnXvnXrXQJrXQJZ|dZ|dpfH~bے`bے`d|Zd|ZvnXvnXrXQJrXQJtbdQpfH~ZHAbr˂p|ZdQ|ZdQnXvnXvrXQJ`|dr|drfH~fH~ے`Jے`J|ZdQ|ZdQnXvrXQJ`rXQJ`|dr|drfH~fH~JXQHAblJtArdQbt璐~HfXQJ`ےXQJ`ےdrtAdrtAH~fH~fے`JXQ|ZdQb|ZdQbnXv`nXv`XQJ`ےXQJ`ےf~Hp˂rp˂rtbdQXnvf`vZHAb|ZdQb|ZdQbnXv`nXv`XQJ`ےXQJ`ےdrtAdtAJH~fے`JXQے`JXQ|ZdQb|ZdQbnXv`nXv`XQJ`ےXQJ`ےdrtAH~fH~fbے`˂p`Jd|ZXv`fnXvJ`ےdrtAJdrtAJ~f`~f``JXQr`JXQrZdQbtZdQbtXv`fJ`ےJ`ےdrtAJdrtAJ~f`~f``JXQrJXQrbZdQbt~Hfpv`fHAZp˂rAJlQZ|df`vf`vJXQrdQbtdQbtv`fv`f`ےb`ےbrtAJltAJl璐f`vJXQrJXQrdQbtdQbtv`fv`f`ےb`ےJlZ|l璐f`v`JXQZAb`btlbtl`f~`fHےbHAtAJltAJlf`vXf`vXXQr˂XQr˂btlbtl`f~ےbHAےbHAtAJltAJlf`vXf`vXے`Jd|ZlJtArpvnbHAZbHAZJltJlt`vXn`vXnr˂ptlJtlJf~Hf~HbHAZbHAZp˂rfpvXQJ`ےXQJ`ےZ|dpfH~Xnvے`JXtlJtlJf~Hf~HbHAZbHAZJltltb`vXnr˂pr˂ptlJtlJf~Hf~HbHAZJltJlt`vXn`vXnJXQrXQrbtdQbt璐~Hf`ffpbHAZpltbltbvXnvXn˂pZ˂pZlJtAlJf~HfbHAZpbHAZpltbltbvXnvXn˂pZtlJlJtAvnX~HXvrXQJtbdQrtAJXnvXnv˂pZHAlJtArlJtAr~Hfp~HfpHAZp˂HAZp˂tbdQtbnXnv˂pZHA˂pZHAlJtArlJtAr~Hfp~HfpHAZp˂tdrtbdQZXnvr˂pJXQrJtArdJtArdHfpvfpvZp˂tbdQZtbdQZnvpnvppZHAbpZHAbJtArdJfpvHfpvZp˂Zp˂tbdQZtbdQZnvpnvpXQr˂dQbtdtlXv`fp˂rp˂rbdQZ|bdQZ|vpfvpfZHAbtArdtArdfpvfpvp˂rp˂rXQJ`ےnXv`bHAZbHAZrtAdQZf`vp`vXQr˂ptArdtArdfpvfpvp˂rp˂rbdQZ|nvpvpfZHAbZHAbtArdtArdfpvfpvp˂rbdQZ|bdQZ|vpfvpf˂pZHAl|ZlJtArvnXv`vnr˂rXQdQZ|dQZ|vpfHvpfHHAbےHAbےrd|pvnpvn˂rXQ˂rXQdQZ|dQZ|vpfHvpfHHAbےtAd|rd|v`pv`f~`ےbZ|dbdQZ|pfH~pfے`bے`d|Zd|ZvnXvnXrXQJrXQJZ|dvpfHpfH~bے`bے`d|Zd|ZvnXvnXrXQJtAJl|drpfH~ZHAbۂpZHA|ZdQ|ZdQnXvnrXQJrXQJ`|dr|drfH~fH~ے`Jے`J|ZdQnXvnXvrXQJ`rXQJ`|dr|drfH~fH~pZHAbl|ZdQJfpv~HfXQJ`ےXQJ`ےdrtAdrtAH~fے`JXQے`JXQ|ZdQb|ZdQbnXv`nXv`XQJ`ےXQJ`ےJltf~Hp˂rp˂r|drXH~nvpZHAb|ZdQb|ZdQbnXv`nXv`XQJ`ےXQJ`ےdrtAfHfH~fے`JXQے`JXQ|ZdQb|ZdQbnXv`nXv`XQJ`ےdrtAdrtAH~fH~fb˂dQbtd|Zf~HXQJ`ےJ`ےdrtAJdrtAJ~f`~f``JXQr`JXQrZdQbtXv`fXv`fJ`ےJ`ےdrtAJdrtAJ~f`~f``JXQrZdQbtZdQbtnXvHfpvHAZp˂rtAJldrtAf`vJXQrJXQrdQbtdQbtv`fv`f`ےb`ےbrtAJlf`vf`vJXQrJXQrdQbtdQbtv`fv`f`ےbtbdQZtAJl璐vp`JXQbے`btlbtl`f~`ےHAےbHAtAJltAJlf`vXf`vXXQr˂XQr˂btl`f~`f~ےbHAےbHAtAJltAJlf`vXf`vXے`JbtlnvfpvnbHAZbHAZJltJlt`vXnr˂pr˂ptlJtlJf~Hf~HbHAZbHAZbdQZ|drtAdrtAH~fH~fے`JXQے`JXQ|ZdQb|ZdQbfpvXQJ`ےbQZdtbdQ~f`~f``JXQr`JXQrZdQbtXv`fXv`fJ`ےJ`ےdrtAJdrtAJ~f`~f`ے`JXQ`ZQXb㕀vˍpfvˍpfbAdZ|JltJlt`vXn`vXnr˂pr˂ptlJtlJnXv`bHAZrtAJlZ|rAvXnvXn˂pZ˂pZlJtA~Hf~HfbHAZpbHAZpltbltbvXnvXnr˂pۑpJH~ㅐfەH~ㅐfۂdrQtbdQZ|bdQZ|vpfvpfZHAbZHAbtArdfpvpvnp˂rtbdQJltvpfHvpfHHAbےHAے`rd|pvnpvn˂rXQ˂rXQdQZ|dQZ|vpfHvpfZ`JXQrAHr󙐉`vXn`vXnJltdrtAdrtAH~fH~fے`JXQے`JXQ|ZdQb~HfXv`fXQJ`ےZ|dbdQZ|~f`~f``JXQrJXQrbZdQbtXv`fXv`fJ`ےJ`ےdrtAJdrtAJ~f`HAbے˂pZۑpJAHvˍpfvˍpfbAdZ|JltJlt`vXn`vXnr˂pr˂ptlJpvn~HfbHAXQrtAJldrtAvXnvXn˂pZtlJlJtA~Hf~HfbHAZpbHAZpltbltbvXn`JXQrHAbےr󙐂ˁ`H~ㅐfەH~ㅐfۂdrQtbdQZ|bdQZ|vpfvpfZHAbZHAےtArdXv`fpvnJ`ےtbdQJltvpfHvpfHHAbےtAd|rd|pvnpvn˂rXQ˂rXQdQZ|dQZ|vpfH˂pZ`JXQrZQXb㉀`vXn`vXnJltdrtAdrtAH~fH~fے`JXQ`JXQr|ZdQb~HfXv`fbHAZpZ|rAJbdQZ|~f`~f``JXQrZdQbtZdQbtXv`fXv`fJ`ےJ`ےdrtAJdtAJl~f`HAbے˂pZۑpJAHvˍpfvˍpfbAdZ|JltJlt`vXn`vXnr˂pbtltlJpvn~HX˂rXQltbdrtAJvXnvXn˂pZlJtAlJtA~Hf~HfbHAZpbHAZpltbtbnvXn`JXQrHAbr󙐂ˁ`H~ㅐfەH~ㅐfۂdrQtbdQZ|bdQZ|vpfvpfZHAbJtAdtArdXv`pv`fJ`ےdQZ|bdQZvpfHvpfےHAbےrd|rd|pvnpvn˂rXQ˂rXQdQZ|vpfvpfH˂p`˂pZHAZQXAHr`vXn`vXnJltdrtAdrtAH~fH~fے`JXQ|ZdQb|ZdQbvnX~HfpbHAZpdrtAJ|dr~f``JXQr`JXQrZdQbtZdQbtXv`fXv`fJ`ےJ`ےdrtAJHf`~f`JXQrbے`ˁ`Zvˍpfvˍp|bAdZ|JltJlt`vXn`vXnr˂ptlJtlJv`fvnX˂bltbtAJlvXn˂pZ˂pZlJtAlJtA~Hf~HfbHAZpbHAZpltbvXnvXn˂pZHAJXQrQXb㉀ەH~ㅐfۂdrQtdrQtbdQZ|bdQZ|vpfvpfZHAbtArdtArd~Hfpv`pvHAZp˂dQZ|tbdQZvpfHHAbےHAbےrd|rd|pvnpvn˂rXQ˂rXQdQZ|vpfHvpfHbے`˂p`ZpJAHr`vXnJltJltdrtAdrtAH~fے`JXQے`JXQ|ZdQb|ZdQbvnXnrXQrXQJdrtAJ|AJl~f``JXQr`JXQrZdQbtZdQbtXv`fXv`fJ`ےJ`ےJdrtAJ~f`~f`JXQrQXb㉀ۙˁ`ZvˍpfbAdZ|bAdZ|JltJlt`vXnr˂pr˂ptlJtlJv`fJ`p˂`ےbbdQZ|tbnvXn˂pZ˂pZlJtAlJtA~Hf~HfbHAZpltbltbvXnvXn˂pZHApJAHrQXb㉀ەH~ㅐfۂdrQtdrQtbdQZ|bdQZ|vpfZHAbZHAbtArdtArd~HXvrXQJHAZp˂drtvpfvpfHHAbےHAbےrd|rd|pvnpvn˂rXQdQZ|dQZ|vpfHvpfHb˂ˁ`Zp`ZQX`vXnJltJltdrtAdtAJH~fے`JXQے`JXQ|ZdQb|ZdQb`f~`ےbrXQJAJltHf`~f``JXQr`JXQrZdQbtZdQbtXv`fXv`fJ`ےdrtAJdrtAJ~f`~f`pZHAbQXAHrb㉀ۑpvˍpfbAdZ|bAdZ|Jltltb`vXnr˂pr˂ptlJtlJHfpvHAZp˂`p˂bdQZ|vXnvXn˂pZ˂pZlJtAlJtA~HfHfpbHAZpltbltbvXnvXnے`Jˁ`ZQXJAHr󙐕H~ㅐfۂdrQtdrQtbdQZ|nvpvpfZHAbZHAbtArdtArdnXvbHArXQJ`drtvpfHvpfHHAbےHAbےrd|rd|pvnvnr˂rXQdQZ|dQZ|vpfHvpfHXQr˂b㉀ۑpˁ`ZQX`vXnJltJltdrtAfHfH~fے`JXQے`JXQ|ZdQb|ZdQb`f~Zp˂ےbHAAJlt~f`~f``JXQr`JXQrZdQbtZdQbtXv`fXQJ`ےJ`ےdrtAJdrtAJ~f`~f`pZHAbJAHrb㉀ۑpvˍpfbAdZ|bAdZ|Jlt`vXn`vXnr˂pr˂ptlJtlJHfpvrXQJ`Zp˂bQZdvXnvXn˂pZ˂pZlJtAlJtA~HfHAZpbHAZpltbltbvXnvXnے`Jˁ`ZQXJAHfەH~ㅐfۂdrQtdrQtbdQZ|vpfvpfZHAbZHAbtArdtArd~HےbHArXQJ`rtAJlvpfHvpfHHAbےHAbےrd|rd|pvn˂rXQ˂rXQdQZ|dQZ|vpfHvpfHXQHAbb㉀ۑp`vXn`vXnJltJltdrtAH~fH~fے`JXQے`JXQ|ZdQb|ZdQbfpvZp˂ےbHAtbdQ~f`~f``JXQr`JXQrZdQbtZdQbtXv`fJ`ےJ`ےdrtAJdrtAJ~f`~f`ے`JXQ`ZQXb㕀vˍpfvˍpfbAdZ|bAdZ|Jlt`vXn`vXnr˂pr˂ptlJtlJnXv`rXQJ`XQJ`ےZ|dvXnvXn˂pZ˂pZlJtAlJf~HfbHAZpbHAZpltbltbvXnvXnr˂pۑpJH~ㅐfەH~ㅐfۂdrQtdrQtbdQZ|vpfvpfZHAbZHAbtArdtArdf~Hp˂rJltrtAJlvpfHvpfHHAbےHAbےrd|pvnpvn˂rXQ˂rXQdQZ|dQZ|vpfHvpfHZHAbAHr󙐂˝`vXn`vXnJltJlt \ No newline at end of file diff --git a/vendor/endroid/qr-code/assets/data/qrv39_2.dat b/vendor/endroid/qr-code/assets/data/qrv39_2.dat deleted file mode 100755 index 8637f146e..000000000 --- a/vendor/endroid/qr-code/assets/data/qrv39_2.dat +++ /dev/null @@ -1,345 +0,0 @@ -|{|{|{|{xwxwxwxw|{|{|{|{xwxwxwxw|{|{|{|{xwxwxwxw|{|{|{|{xwxwxwxw|{|{|{|{xwxwxwxw|{|{|{|{xwxwxwxw|{|{|{|{xwxwxwxw|{|{|{|{xwxwxwxw|{|{|{|{xwxwxwxw|{|{|{|{xwxwxwxw|{|{|{|{xwxwxwxwtstststs|{|{|{|{xwxwxwxwtstststs|{|{|{|{xwxwxwxwtstststs|{|{|{|{xwxwxwxwtstststs~}|{|{|{|{xwxwxwxwtstststs~}~}~}~}|{|{|{|{xwxwxwxwtstststs~}~}~}~}|{|{|{|{xwxwxwxwtstststs~}~}~}~}|{|{|{|{xwxwxwxwtstststs~}~}~}~}|{|{|{|{xwxwxwxwtstststs~}~}~}~}|{|{|{|{xwxwxwxwtstststs~}~}~}~}|{|{|{|{xwxwxwxwtstststs~}~}~}~}|{|{|{|{xwxwxwxwtstststs~}~}~}~}|{|{|{|{xwxwxwxwtstststs~}~}~}~}|{|{|{zyxwxwxwxwtstststs~}~}~}~}zyzyzyzyxwxwxwxwtstststs~}~}~}~}zyzyzyzyxwxwxwxwtstststs~}~}~}~}zyzyzyzyxwxwxwxwtstststs~}~}~}~}zyzyzyzyxwxwxwxwtstststs~}~}~}~}zyzyzyzyxwxwxwxwtstststs~}~}~}~}zyzyzyzyxwxwxwxwtstststs~}~}~}~}zyzyzyzyxwxwxwxwtstststs~}~}~}~}zyzyzyzyxwxwxwxwtstststs~}~}~}~}zyzyzyzyxwxwxwvutstststs~}~}~}~}zyzyzyzyvuvuvuvutstststs~}~}~}~}zyzyzyzyvuvuvuvutstststs~}~}~}~}zyzyzyzyvuvuvuvutstststs~}~}~}~}zyzyzyzyvuvuvuvutstststs~}~}~}~}zyzyzyzyvuvuvuvutstststs~}~}~}~}zyzyzyzyvuvuvuvutstststs~}~}~}~}zyzyzyzyvuvuvuvutstststs~}~}~}~}zyzyzyzyvuvuvuvutstststs~}~}~}~}zyzyzyzyvuvuvuvutstststs~}~}~}~}zyzyzyzyvuvuvuvutstststs~}~}~}~}zyzyzyzyvuvuvuvutstststs~}~}~}~}zyzyzyzyvuvuvuvutstststs~}~}~}~}zyzyzyzyvuvuvuvutstststs~}~}~}~}zyzyzyzyvuvuvuvutstststs~}~}~}~}zyzyzyzyvuvuvuvutstststs~}~}~}~}zyzyzyzyvuvuvuvutstststs~}~}~}~}zyzyzyzyvuvuvuvutstststs~}~}~}~}zyzyzyzyvuvuvuvutstststs~}~}~}~}zyzyzyzyvuvuvuvutststsrq~}~}~}~}zyzyzyzyvuvuvuvurqrqrqrq~}~}~}~}zyzyzyzyvuvuvuvurqrqrqrq~}~}~}~}zyzyzyzyvuvuvuvurqrqrqrq~}~}~}~}zyzyzyzyvuvuvuvurqrqrqrq~}~}~}~}zyzyzyzyvuvuvuvurqrqrqrq~}~}~}|{zyzyzyzyvuvuvuvurqrqrqrq|{|{|{|{zyzyzyzyvuvuvuvurqrqrqrq|{|{|{|{zyzyzyzyvuvuvuvurqrqrqrq|{|{|{|{zyzyzyzyvuvuvuvurqrqrqrq|{|{|{|{zyzyzyzyvuvuvuvurqrqrqrq|{|{|{|{zyzyzyzyvuvuvuvurqrqrqrq|{|{|{|{zyzyzyzyvuvuvuvurqrqrqrq|{|{|{|{zyzyzyzyvuvuvuvurqrqrqrq|{|{|{|{zyzyzyzyvuvuvuvurqrqrqrq|{|{|{|{zyzyzyxwvuvuvuvurqrqrqrq|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrq|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrq|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrq|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrq|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrq|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrq|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrq|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrq|{|{|{|{xwxwxwxwvuvuvutsrqrqrqrq|{|{|{|{xwxwxwxwtstststsrqrqrqrqrqrqrqrqnmnmnmnmjijijijifefefefebabababa^]^]^]^]\[\[\[\[XWXWXWXWTSTSTSTSPOPOPOPOLKLKLKLKHGHGHGHGDCDCDCDCBABABABA>=>=>=>=:9:9:9:96565656521212121.-.-.-.-*)*)*)*)('('('('$#$#$#$#        - - - - rqrqrqrqnmnmnmnmjijijijifefefefebabababa^]^]^]^]\[\[\[\[XWXWXWXWTSTSTSTSOOOOOPOPLKLKLKLKHGHGHGHGDCDCDCDCBABABABA>=>=>=>=:9:9:9:96565656521212121.-.-.-.-*)*)*)*)('('('('$#$#$#$#        - - - - rqrqrqrqnmnmnmnmjijijijifefefefebabababa^]^]^]^]\[\[\[\[XWXWXWXWTSTSTSTSOPOPOPOPLKLKLKLKHGHGHGHGDCDCDCDCBABABABA>=>=>=>=:9:9:9:96565656521212121.-.-.-.-*)*)*)*)('('('('$#$#$#$#        - - - - rqrqrqrqnmnmnmnmjijijijifefefefebabababa^]^]^]^]\[\[\[\[XWXWXWXWTSTSTSTSOPOPOPOPLKLKLKLKHGHGHGHGDCDCDCDCBABABABA>=>=>=>=:9:9:9:96565656521212121.-.-.-.-*)*)*)*)('('('('$#$#$#$#       - - - - rqrqrqrqnmnmnmnmjijijijifefefefebabababa^]^]^]^]\[\[\[\[XWXWXWXWTSTSTSTSOPOPOPOPLKLKLKLKHGHGHGHGDCDCDCDCBABABABA>=>=>=>=:9:9:9:96565656521212121.-.-.-.-*)*)*)*)('('('('$#$#$#$#     - - - - rqrqrqrqnmnmnmnmjijijijifefefefebabababa^]^]^]^]\[\[\[\[XWXWXWXWTSTSTSTSOPOPOPOPLKLKLKLKHGHGHGHGDCDCDCDCBABABABA>=>=>=>=:9:9:9:96565656521212121.-.-.-.-*)*)*)*)&%&%&%&%$#$#$#$#     - - - - rqrqrqrqnmnmnmnmjijijijifefefefebabababa^]^]^]^]\[\[\[\[XWXWXWXWTSTSTSTSOPOPOPOPLKLKLKLKHGHGHGHGDCDCDCDCBA@?@?@?>=>=>=>=:9:9:9:96565656521212121.-.-.-.-*)*)*)*)&%&%&%&%$#$#$#$#     - - - - rqrqrqrqnmnmnmnmjijijijifefefefebabababa^]^]^]^]\[\[ZYZYXWXWXWXWTSTSTSTSOPOOOOOOLKLKLKLKHGHGHGHGDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:96565656521212121.-.-.-.-*)*)*)*)&%&%&%&%$#$#$#$#     - - - - rqrqrqrqnmnmnmnmjijijijifefefefebabababa^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSPOPOPOPOLKLKLKLKHGHGHGHGDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:96565656521212121.-.-.-.-*)*)*)*)&%&%&%&%$#$#$#$#     - - - - rqrqrqrqnmnmnmlkjijijijifefefefebabababa^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSPOPOPOPOLKLKLKLKHGHGHGHGDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:96565656521212121.-.-.-.-*)*)*)*)&%&%&%&%$#$#$#$#     - - - - rqrqrqrqlklklkkkjijijijifefefefebabababa^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSPOPOPOPOLKLKLKLKHGHGHGHGDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:96565656521212121.-.-.-.-*)*)*)*)&%&%&%&%$#$#$#$#     - - - - rqrqrqrqkkklklkljijijijifefefefebabababa^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSPOPOPOOOLKLKLKLKHGHGHGHGDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:96565656521212121.-.-.-.-*)*)*)*)&%&%&%&%$#$#$#$#     - - - - rqrqrqrqklklklkljijijijifefefefebabababa^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSOOPOPOPOLKLKLKLKHGHGHGHGDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:96565656521212121.-.-.-.-*)*)*)*)&%&%&%&%$#$#$#$#     - - - rqrqrqrqklklklkljijijijifefefefebabababa^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSPONMNMNMLKLKLKLKHGHGHGHGDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:96565656521212121.-.-.-.-*)*)*)*)&%&%&%&%$#$#$#$#     rqrqrqrqklklklkljijihghgfefefefebabababa^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSNMNMNMNMLKLKLKLKHGHGHGHGDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:96565656521212121.-.-.-.-*)*)*)*)&%&%&%&%"!"!"!"!     rqrqrqrqklklklklhghghghgfefefefebabababa^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSNMNMNMNMLKLKLKLKHGHGHGHGDCDCDCDC@?@?@?@?>=<;<;<;:9:9:9:96565656521212121.-.-.-.-*)*)*)*)&%&%&%&%"!"!"!"!     rqrqrqrqklklklklhghghghgfefefefebabababa^]^]^]^]ZYZYZYZYXWXWVUVUTSTSTSTSNMNMNMNMLKLKLKLKHGHGHGHGDCDCDCDC@?@?@?@?<;<;<;<;:9:9:9:96543434321212121.-.-.-.-*)*)*)*)&%&%&%&%"!"!"!"!     rqrqrqpokkkkkklkhghghghgfefefefebabababa^]^]^]^]ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMLKLKLKLKHGHGHGHGDCDCDCDC@?@?@?@?<;<;<;<;:9:9:9:94333333421212121.-.-.-.-*)*)*)*)&%&%&%&%"!"!"!"!     popopopolklklklkhghghghgfefefefebabababa^]^]^]^]ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMLKLKLKLKHGHGHGHGDCDCDCDC@?@?@?@?<;<;<;<;:9:9:9:93434343421212121.-.-.-.-*)*)*)*)&%&%&%&%"!"!"!"!     popopopolklklklkhghghghgfefefefebabababa^]^]^]^]ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMLKLKLKLKHGHGHGHGDCDCDCDC@?@?@?@?<;<;<;<;:9:9:9:93434343421212121.-.-.-.-*)*)*)*)&%&%&%&%"!"!"!"!     popopopolklklklkhghghghgfefefefebabababa^]^]^]^]ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMLKLKLKLKHGHGHGHGDCDCDCDC@?@?@?@?<;<;<;<;:9:9:9:93434343421212121.-.-.-.-*)*)*)*)&%&%&%&%"!"!"!"!     popopopolklklklkhghghghgfefefefebabababa^]^]^]^]ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMLKLKLKLKHGHGHGHGDCDCDCDC@?@?@?@?<;<;<;<;:9:9:9:9343434340/0/0/0/.-.-.-.-*)*)*)*)&%&%&%&%"!"!"!"!     popopopolklklklkhghghghgfefefefebabababa^]^]^]^]ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMLKJIJIJIHGHGHGHGDCDCDCDC@?@?@?@?<;<;<;<;:9:9:9:9343434340/0/0/0/.-.-.-.-*)*)*)*)&%&%&%&%"!"!"!"!     popopopolklkkkkkhghghghgfefedcdcbabababa^]^]^]^]ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDC@?@?@?@?<;<;<;<;:9:9:9:9343433330/0/0/0/.-.-.-.-*)*)*)*)&%&%&%&%"!"!"!"! popopopoklklklklhghghghgdcdcdcdcbabababa^]^]^]^]ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDC@?@?@?@?<;<;<;<;:9878787334343430/0/0/0/.-.-.-.-*)*)*)*)&%&%&%&%"!"!"!"! popopopoklklklklhghghghgdcdcdcdcbabababa^]^]^]^]ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDC@?@?@?@?<;<;<;<;87878787434343430/0/0/0/.-.-.-.-*)*)*)*)&%&%&%&%"!"!"!"! popopopoklklklklhghghghgdcdcdcdcbabababa^]^]^]^]ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDC@?@?@?@?<;<;<;<;87878787434343430/0/0/0/.-.-.-.-*)*)*)*)&%&%&%&%"!"!"!"! popopopoklklklklhghghghgdcdcdcdcbabababa^]^]^]^]ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDC@?@?@?@?<;<;<;<;87878787434343430/0/0/0/.-.-.-.-*)*)*)*)&%&%&%&%"!"!"!"! popopopoklklklklhghghghgdcdcdcdcbabababa^]^]^]^]ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDC@?@?@?@?<;<;<;<;87878787434343430/0/0/0/.-.-.-.-*)*)*)*)&%&%&%&%"!"!"!"! popopopoklklklkkhghghghgdcdcdcdcbabababa^]^]^]^]ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDC@?@?@?@?<;<;<;<;87878787434343430/0/0/0/.-.-.-.-*)*)*)*)&%&%&%&%"!"!"!"! popopopokkkklklkhghghghgdcdcdcdcbabababa^]^]^]^]ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDC@?@?@?@?<;<;<;<;87878787333334340/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%"!"!"!"! popopopolklklklkhghghghgdcdcdcdcbabababa^]^]^]^]ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIHGFEFEFEDCDCDCDC@?@?@?@?<;<;<;<;87878787343434340/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%"!"!"!"! popopopolklklklkhghghghgdcdcdcdcbaba`_`_^]^]^]^]ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?<;<;<;<;87878787343434340/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%"!"!"!"! popopopolklklklkhghghghgdcdcdcdc`_`_`_`_^]^]^]^]ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?<;<;<;<;87878787343434340/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%"!"!"!"! popopopolklklklkhghghghgdcdcdcdc`_`_`_`_^]^]^]^]ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?<;<;<;<;87878787343434340/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%"!"!"!"! popopopolklklklkhghghghgdcdcdcdc`_`_`_`_^]^]^]^]ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?<;<;<;<;87878787343434340/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%"!"!"!"! popopopolkkkkkklhghghghgdcdcdcdc`_`_`_`_^]^]^]^]ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?<;<;<;<;87878787343333330/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%"!"!"!"! popopopoklklklklhghghghgdcdcdcdc`_`_`_`_^]^]^]^]ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?<;<;<;<;87878787434343430/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%"!"!"!"! popopopoklklklklhghghghgdcdcdcdc`_`_`_`_^]^]^]^]ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?<;<;<;<;87878787434343430/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%"!"!"!"!    popopopoklklklklhghghghgdcdcdcdc`_`_`_`_^]^]^]^]ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?<;<;<;<;87878787434343430/0/0/0/,+,+,+,+('('('('&%&%&%&%"!"!"!"!    popopopoklklklklhghghghgdcdcdcdc`_`_`_`_^]^]^]^]ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIFEFEFEFEDCBABABA@?@?@?@?<;<;<;<;87878787434343430/0/0/0/,+,+,+,+('('('('&%&%&%&%"!"!"!"!    popopopoklklklklhghghghgdcdcdcdc`_`_`_`_^]^]\[\[ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIFEFEFEFEBABABABA@?@?@?@?<;<;<;<;87878787434343430/0/0/0/,+,+,+,+('('('('&%&%&%&%"!"!"!"!    popopopoklklkkkkhghghghgdcdcdcdc`_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIFEFEFEFEBABABABA@?@?@?@?<;<;<;<;87878787434343330/0/0/0/,+,+,+,+('('('('&%&%&%&%"!"!"!"!    popopopokklklklkhghghghgdcdcdcdc`_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIFEFEFEFEBABABABA@?@?@?@?<;<;<;<;87878787333434340/0/0/0/,+,+,+,+('('('('&%&%&%&%"!"!"!"!    popopopolklklklkhghghghgdcdcdcdc`_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIFEFEFEFEBABABABA@?@?@?@?<;<;<;<;87878787343434340/0/0/0/,+,+,+,+('('('('&%&%&%&%"!"!"!"!    popopopolklklklkhghghghgdcdcdcdc`_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIFEFEFEFEBABABABA@?@?@?@?<;<;<;<;87878787343434340/0/0/0/,+,+,+,+('('('('&%&%&%&%"!"!"!"!    popopopolklklklkhghghghgdcdcdcdc`_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIFEFEFEFEBABABABA@?@?@?@?<;<;<;<;87878787343434340/0/0/0/,+,+,+,+('('('('&%&%&%&%"!"!"!"!    - popopopokkkklklkhghghghgdcdcdcdc`_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIFEFEFEFEBABABABA@?@?@?@?<;<;<;<;87878787343434340/0/0/0/,+,+,+,+('('('('&%&%&%&%"!"!"!"!    - - - - popopopolklkjijihghghghgdcdcdcdc`_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIFEFEFEFEBABABABA@?@?@?@?<;<;<;<;87878787343434340/0/0/0/,+,+,+,+('('('('$#$#$#$#"!"!"!"!    - - - - popopopojijijijihghghghgdcdcdcdc`_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIFEFEFEFEBABABABA@?>=>=>=<;<;<;<;87878787333333430/0/0/0/,+,+,+,+('('('('$#$#$#$#"!"!"!"!    - - - - popopopojijijijihghghghgdcdcdcdc`_`_`_`_\[\[\[\[ZYZYXWXWVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIFEFEFEFEBABABABA>=>=>=>=<;<;<;<;87878787434343430/0/0/0/,+,+,+,+('('('('$#$#$#$#"!"!"!"!    - - - - popopopojijijijihghghghgdcdcdcdc`_`_`_`_\[\[\[\[XWXWXWXWVUVUVUVURQRQPOPONMNMNMNMJIJIJIJIFEFEFEFEBABABABA>=>=>=>=<;<;<;<;87878787434343430/0/0/0/,+,+,+,+('('('('$#$#$#$#"!"!"!"!    - - - - ponmnmnmjijijijihghghghgdcdcdcdc`_`_`_`_\[\[\[\[XWXWXWXWVUVUVUVUPOPOOOOONMNMNMNMJIJIJIJIFEFEFEFEBABABABA>=>=>=>=<;<;<;<;87878787434343430/0/0/0/,+,+,+,+('('('('$#$#$#$#"!"!"!"!    - - - - nmnmnmnmjijijijihghghghgdcdcdcdc`_`_`_`_\[\[\[\[XWXWXWXWVUVUVUVUOPOPOPOPNMNMNMNMJIJIJIJIFEFEFEFEBABABABA>=>=>=>=<;<;<;<;87878787434333330/0/0/0/,+,+,+,+('('('('$#$#$#$#"!"!"!"!    - - - - nmnmnmnmjijijijihghghghgdcdcdcdc`_`_`_`_\[\[\[\[XWXWXWXWVUVUVUVUOPOPOPOPNMNMNMNMJIJIJIJIFEFEFEFEBABABABA>=>=>=>=<;<;<;<;87878787434343430/0/0/0/,+,+,+,+('('('('$#$#$#$#"!"!"!"!    - - - - nmnmnmnmjijijijihghghghgdcdcdcdc`_`_`_`_\[\[\[\[XWXWXWXWVUVUVUVUOPOPOPOPNMNMNMNMJIJIJIJIFEFEFEFEBABABABA>=>=>=>=<;<;<;<;87878787212121210/0/0/0/,+,+,+,+('('('('$#$#$#$#"!"!"!"!    - - - - nmnmnmnmjijijijihghghghgdcdcdcdc`_`_`_`_\[\[\[\[XWXWXWXWVUVUVUVUOPOPOPOPNMLKLKLKJIJIJIJIFEFEFEFEBABABABA>=>=>=>=<;<;<;<;87878787212121210/0/0/0/,+,+,+,+('('('('$#$#$#$#"!"!"!"!    - - - - nmnmnmnmjijijijihghgfefedcdcdcdc`_`_`_`_\[\[\[\[XWXWXWXWVUVUVUVUOPOPOPOPLKLKLKLKJIJIJIJIFEFEFEFEBABABABA>=>=>=>=<;<;<;<;87878787212121210/0/0/0/,+,+,+,+('('('('$#$#$#$#        - - - - nmnmnmnmjijijijifefefefedcdcdcdc`_`_`_`_\[\[\[\[XWXWXWXWVUVUVUVUOPOPOPOOLKLKLKLKJIJIJIJIFEFEFEFEBABABABA>=>=>=>=<;:9:9:987878765212121210/0/0/0/,+,+,+,+('('('('$#$#$#$#        - - - - nmnmnmnmjijijijifefefefedcdcdcdc`_`_`_`_\[\[\[\[XWXWXWXWVUVUTSTSOOOOPOPOLKLKLKLKJIJIJIJIFEFEFEFEBABABABA>=>=>=>=:9:9:9:965656565212121210/0/0/0/,+,+,+,+('('('('$#$#$#$#        - - - - nmnmnmnmjijijijifefefefedcdcdcdc`_`_`_`_\[\[\[\[XWXWXWXWTSTSTSTSPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEBABABABA>=>=>=>=:9:9:9:965656565212121210/0/0/0/,+,+,+,+('('('('$#$#$#$#        - - - - nmnmnmnmjijijijifefefefedcdcdcdc`_`_`_`_\[\[\[\[XWXWXWXWTSTSTSTSPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEBABABABA>=>=>=>=:9:9:9:965656565212121210/0/0/0/,+,+,+,+('('('('$#$#$#$#        - - - - nmnmnmnmjijijijifefefefedcdcdcdc`_`_`_`_\[\[\[\[XWXWXWXWTSTSTSTSPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEBABABABA>=>=>=>=:9:9:9:965656565212121210/0/0/0/,+,+,+,+('('('('$#$#$#$#        - - - - nmnmnmnmjijijijifefefefedcdcdcdc`_`_`_`_\[\[\[\[XWXWXWXWTSTSTSTSPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEBABABABA>=>=>=>=:9:9:9:965656565212121210/0/0/0/,+,+,+,+('('('('$#$#$#$#        - - - - nmnmnmnmjijijijifefefefedcdcdcdc`_`_`_`_\[\[\[\[XWXWXWXWTSTSTSTSPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEBABABABA>=>=>=>=:9:9:9:96565656521212121.-.-.-.-,+,+,+,+('('('('$#$#$#$#        - - - - nmnmnmnmjijijijifefefefedcdcdcdc`_`_`_`_\[\[\[\[XWXWXWXWTSTSTSTSPOOOOOOPLKLKLKLKJIHGHGHGFEFEFEFEBABABABA>=>=>=>=:9:9:9:96565656521212121.-.-.-.-,+,+,+,+('('('('$#$#$#$#        - - - - nmnmnmnmjijijijifefefefedcdcbaba`_`_`_`_\[\[\[\[XWXWXWXWTSTSTSTSOPOPOPOPLKLKLKLKHGHGHGHGFEFEFEFEBABABABA>=>=>=>=:9:9:9:96565656521212121.-.-.-.-,+,+,+,+('('('('$#$#$#$#        - - - - nmnmnmnmjijijijifefefefebabababa`_`_`_`_\[\[\[\[XWXWXWXWTSTSTSTSOPOPOPOPLKLKLKLKHGHGHGHGFEFEFEFEBABABABA>=>=>=>=:9:9:9:96565656521212121.-.-.-.-,+,+,+,+('('('('$#$#$#$#        - - - - nmnmnmnmjijijijifefefefebabababa`_`_`_`_\[\[\[\[XWXWXWXWTSTSTSTSOPOPOPOPLKLKLKLKHGHGHGHGFEFEFEFEBABABABA>=>=>=>=:9:9:9:96565656521212121.-.-.-.-,+,+,+,+('('('('$#$#$#$#        - - - - nmnmnmnmjijijijifefefefebabababa`_`_`_`_\[\[\[\[XWXWXWXWTSTSTSTSOPOPOPOPLKLKLKLKHGHGHGHGFEFEFEFEBABABABA>=>=>=>=:9:9:9:96565656521212121.-.-.-.-,+,+,+,+('('('('$#$#$#$#        - - - - nmnmnmnmjijijijifefefefebabababa`_`_`_`_\[\[\[\[XWXWXWXWTSTSTSTSOPOPOPOPLKLKLKLKHGHGHGHGFEFEFEFEBABABABA>=>=>=>=:9:9:9:96565656521212121.-.-.-.-,+,+,+,+('('('('$#$#$#$#        - - - - nmnmnmnmjijijijifefefefebabababa`_`_`_`_\[\[\[\[XWXWXWXWTSTSTSTSOPOPOOOOLKLKLKLKHGHGHGHGFEFEFEFEBABABABA>=>=>=>=:9:9:9:96565656521212121.-.-.-.-,+,+,+,+('('('('$#$#$#$#        - - - - nmnmnmnmjijijijifefefefebabababa`_`_`_`_\[\[\[\[XWXWXWXWTSTSTSTSOOPOPOPOLKLKLKLKHGHGHGHGFEFEFEFEBABABABA>=>=>=>=:9:9:9:96565656521212121.-.-.-.-,+,+,+,+('('('('$#$#$#$#        - - - - nmnmnmnmjijijijifefefefebabababa`_`_`_`_\[\[\[\[XWXWXWXWTSTSTSTSPOPOPOPOLKLKLKLKHGHGHGHGFEFEFEFEBABABABA>=>=>=>=:9:9:9:96565656521212121.-.-.-.-*)*)*)*)('('('('$#$#$#$#        - - - - nmnmnmnmjijijijifefefefebabababa`_`_`_`_\[\[\[\[XWXWXWXWTSTSTSTSPOPOPOPOLKLKLKLKHGHGHGHGFEDCDCDCBABABABA>=>=>=>=:9:9:9:96565656521212121.-.-.-.-*)*)*)*)('('('('$#$#$#$#        - - - - nmnmnmnmjijijijifefefefebabababa`_`_^]^]\[\[\[\[XWXWXWXWTSTSTSTSPOPOPOPOLKLKLKLKHGHGHGHGDCDCDCDCBABABABA>=>=>=>=:9:9:9:96565656521212121.-.-.-.-*)*)*)*)('('('('$#$#$#$#        - - - - nmnmnmnmjijijijifefefefebabababa^]^]^]^]\[\[\[\[XWXWXWXWTSTSTSTSPOPOPOPOLKLKLKLKHGHGHGHGDCDCDCDCBABABABA>=>=>=>=:9:9:9:96565656521212121.-.-.-.-*)*)*)*)('('('('$#$#$#$#        - - - - mmnnooppIIJJKKLL%%&&''((;;::9988__^^]]\\qqrrssttMMNNOOPP))**++,, - -77665544[[ZZYYXX~~}}||uuvvwwxxQQRRSSTT--..//00 - -  33221100WWVVUUTT{{zzyyxxyyzz{{||UUVVWWXX11223344  - - //..--,,SSRRQQPPwwvvuutt}}~~YYZZ[[\\55667788 !!++**))((OONNMMLLssrrqqpp~~}}||]]^^__``99::;;<<""##$$%%''&&%%$$KKJJIIHHoonnmmll{{zzyyxxaabbccdd==>>??@@ !!""##&&''(())##""!! GGFFEEDDkkjjiihhwwvvuutteeffgghhAABBCCDD $$%%&&''**++,,-- CCBBAA@@ggffeeddssrrqqpoiijjkkllEEFFGGHH!!""##$$(())**++..//0011 - - ??>>==<>??@@>>??@@AA - - //..--,,SSRRQQPPxxwwvvuu]\\[[ZZYppoonnmm}}~~YYZZ[[\\55667788AABBCCDDBBCCDDEE !!++**))((OONNMMLLttssrrqq~~}}||{{YXXWWVVUllkkjjii]]^^__``99::;;<>??@@IIJJKKLLJJKKLLMM&&''(())##""!! GGFFEEDDllkkjjiivvuuttssNNMMLLKKddccbbaaeeffgghhAABBCCDDMMNNOOUUNNOOPPQQ**++,,-- CCBBAA@@hhggffeerrqqkkjjJJIIHHGG``__^^]]iijjkkllEEFFGGHHVVWWXXYYRRSSTTUU..//0011 - - ??>>==<>==<<;;TTSSRRQQxxwwvvuuuuvvwwxxQQRRSSTTbbccddee^^__``aa::;;<<== 33221100~~}}||XXWWVVUU]]\\[[ZZ::998765PPOONNMMttssrrqqyyzz{{||UUVVWWXXffgghhiibbccddee>>??@@AA - - //..--,,{{zzyyxxTTSSRRQQYYXXWWVV43322110LLKKJJIIppoonnmm}}~~YYZZ[[\\jjkkqqrrffgghhiiBBCCDDEE !!++**))((wwvvuuttPPOONNMMUUOONNMM0//..--,HHGGFFEEllkkjjii]]^^__``ssttuuvvjjkkllmmFFGGHHII""##$$%%''&&%%$$ssrrqqppLLKKJJIILLKKJJII,++**))(DDCCBBAAhhggffeeaabbccddwwxxyyzznnooppqqJJKKLLMM&&''(())##""!! oonnmmllHHGGFFEEHHGGFFEE(''&&%%$@@??>>==ddccbbaaeeffgghh{{||}}~~rrssttuuNNOOPPQQ**++,,-- kkjjiihhDDCCBBAADDCCBBAA$##""!! <<;;::99``__^^]]iijjkkllvvwwxxyyRRSSTTUU..//0011 - - ggffeedd@@??>>==@@??>>== 88776655\\[[ZZYY~~}}mmnnooppzz{{||}}VVWWXXYY22334455ccbbaa``<<;;::99<<;;::9944332211XXWWVVUU||{{zzyyqqrrsstt~~ZZ[[\\]]66778899__^^]]\\887766553322110000//..--TTSSRRQQxxwwvvuuuuvvwwxx^^__``aa::;;<<== [[ZZYYXX44332211//..--,,,,++**))PPOONNMMttssrrqqyyzz{{||bbccddee>>??@@AA - - WWVVUUTT00//..--++**))(( - -((''&&%%LLKKJJIIppoonnmm}}~~ffgghhiiBBCCDDEE !!SSRRQQPP,,++**))''&&%%$$ $$##""!!HHGGFFEEllkkjjiijjkkllmmFFGGHHII""##$$%%OONNMMLL((''&&%%##""!!  DDCCBBAAhhggffeennooppqqJJKKLLMM&&''(())KKJJIIHH$$##""!! - - @@??>>==ddccbbaarrssttuuNNOOPPQQ**++,,-- GGFFEEDD  <<;;::99``__^^]]vvwwxxyyRRSSTTUU..//0011 - - CCBBAA@@88776655\\[[ZZYY~~}}zz{{||}}VVWWXXYY22334455??>>==<<  44332211XXWWVVUU||{{zzyy~~ZZ[[\\]]66778899;;::9988 - - - - - - 00//..--TTSSRRQQxxwwvvuu^^__``aa::;;<<==77665544  ,,++**))PPOONNMMttssrrqqbbccddee>>??@@AA33221100 - - !!""##$$((''&&%%LLKKJJIIppoonnmmffgghhiiBBCCDDEE !!//..--,, - - %%&&''(($$##""!!HHGGFFEEllkkjjiijjkkllmmFFGGHHII""##$$%%++**))(( ))**++,, DDCCBBAAhhggffeennooppqqJJKKLLMM&&''(())''&&%%$$ !!""##--..//00 - - @@??>>==ddccbbaarrssttuuNNOOPPQQ**++,,--##""!! $$%%&&''11223344 <<;;::99``__^^]]vvwwxxyyRRSSTTUU..//0011(())**++5566778888776655\\[[ZZYY~~}}~~}}||zz{{||}}VVWWXXYY22334455 ,,--..//99::;;<< 44332211XXWWVVUU||{{zzyy{{zzyyxx~~ZZ[[\\]]66778899!!""##$$00112233==>>??@@ - - 00//..--TTSSRRQQxxwwvvuuwwvvuutt^^__``aa::;;<<==%%&&''((99::;;<>??@@AA ))**++,,==>>??@@EEFFGGHH!!""##$$((''&&%%LLKKJJIIppoonnmmnmlkkjjiffgghhiiBBCCDDEE - - --..//00AABBCCDDIIJJKKLL%%&&''(($$##""!!HHGGFFEEllkkjjiiihhggffejjkkllmmFFGGHHII11223344EEFFGGHHMMNNOOPP))**++,, DDCCBBAAhhggffeeeddccbba~~}}||nnooppqqJJKKLLMM55667788IIJJKKLLQQRRSSTT--..//00 - - @@??>>==ddccbbaa~~}}||{{a``__^^]{{zzyyxxrrssttuuNNOOPPQQ99::;;<>??@@VVWWXXYYYYZZ[[\\5566778888776655\\[[ZZYYvvuuttssYXXWWVVUssrrqqppzz{{||}}VVWWXXYY - - AABBCCDDZZ[[\\]]]]^^__``99::;;<< 44332211XXWWVVUUrrqqkkjjUTSRQPOOoonnmmll~~ZZ[[\\]]EEFFGGHH^^__``aaaabbccdd==>>??@@ - - 00//..--TTSSRRQQiihhggffNNMMLLKKkkjjiihh^^__``aaIIJJKKLLbbccddeeeeffgghhAABBCCDD ,,++**))PPOONNMMeeddccbbJJIIHHGGggffeeddbbccddeeMMNNOOPPffgghhiiiijjkkllEEFFGGHH!!""##$$((''&&%%LLKKJJIIaa``__^^FFEEDDCCccbbaa``ffgghhiiQQRRSSTTjjkkqqrrmmnnooppIIJJKKLL%%&&''(($$##""!!HHGGFFEE]]\\[[ZZBBAA@@??__^^]]\\jjkkllmm !!UUVVWWXXssttuuvvqqrrssttMMNNOOPP))**++,, DDCCBBAAYYXXWWVV>>==<<;;[[ZZYYXX~~}}||nnooppqq""##$$%%YYZZ[[\\wwxxyyzzuuvvwwxxQQRRSSTT--..//00 - - @@??>>==UUOONNMM::998765WWVVUUTT{{zzyyxxrrssttuu&&''(())]]^^__``{{||}}~~yyzz{{||UUVVWWXX11223344 <<;;::99LLKKJJII43322110SSRRQQPPwwvvuuttvvwwxxyy**++,,--aabbccdd}}~~YYZZ[[\\5566778888776655HHGGFFEE0//..--,OONNMMLLssrrqqppzz{{||}}..//0011eeffgghh]]^^__``99::;;<< 44332211DDCCBBAA,++**))(KKJJIIHHoonnmmll~~22334455iijjkkllaabbccdd==>>??@@ - - 00//..--@@??>>==(''&&%%$GGFFEEDDkkjjiihh66778899mmnnooppeeffgghhAABBCCDD ,,++**))<<;;::99$##""!! CCBBAA@@ggffeedd::;;<<==qqrrssttiijjkkllEEFFGGHH!!""##$$((''&&%%33221100 ??>>==<>??@@AAuuvvwwxxmmnnooppIIJJKKLL%%&&''(($$##""!!//..--,,;;::9988__^^]]\\BBCCDDEEyyzz{{||qqrrssttMMNNOOPP))**++,, ++**))((77665544[[ZZYYXX~~}}||FFGGHHII}}~~uuvvwwxxQQRRSSTT--..//00 - - ''&&%%$$33221100WWVVUUTT{{zzyyxxJJKKLLMMyyzz{{||UUVVWWXX11223344 ##""!! - -//..--,,SSRRQQPPwwvvuuttNNOOPPQQ}}~~YYZZ[[\\55667788 ++**))((OONNMMLLssrrqqppRRSSTTUU]]^^__``99::;;<< ''&&%%$$KKJJIIHHoonnmmllVVWWXXYYaabbccdd==>>??@@ - - ##""!! GGFFEEDDkkjjiihhZZ[[\\]]eeffgghhAABBCCDD   CCBBAA@@ggffeedd^^__``aaiijjkkllEEFFGGHH!!""##$$ - -  - - ??>>==<>==<<;;NNMMLLKK87654332UUTTSSRRyyxxwwvvttuuvvwwPPQQRRSSaabbccdd]]^^__``99::;;<< 44332211XXWWVVUUrrqqkkjjUTSRQPOOoonnmmll~~nnooppqq{{||}}~~WWXXYYZZ33445566::998877JJIIHHGG21100//.QQPPOONNuuttssrrxxyyzz{{TTUUVVWWeeffgghhaabbccdd==>>??@@ - - 00//..--TTSSRRQQiihhggffNNMMLLKKkkjjiihhrrssttuu[[\\]]^^778899::66554433FFEEDDCC.--,,++*MMLLKKJJqqppoonn||}}~~XXYYZZ[[iijjkkqqeeffgghhAABBCCDD ,,++**))PPOONNMMeeddccbbJJIIHHGGggffeeddvvwwxxyy__``aabb;;<<==>> 221100//BBAA@@??*))((''&IIHHGGFFmmllkkjj\\]]^^__rrssttuuiijjkkllEEFFGGHH!!""##$$((''&&%%LLKKJJIIaa``__^^FFEEDDCCccbbaa``zz{{||}}ccddeeff??@@AABB - - ..--,,++>>==<<;;&%%$$##"EEDDCCBBiihhggff``aabbccvvwwxxyymmnnooppIIJJKKLL%%&&''(($$##""!!HHGGFFEE]]\\[[ZZBBAA@@??__^^]]\\~~gghhiijjCCDDEEFF !!""**))((''::993322"!! AA@@??>>eeddccbbddeeffggzz{{||}}qqrrssttMMNNOOPP))**++,, DDCCBBAAYYXXWWVV>>==<<;;[[ZZYYXX~~}}||kkllmmnnGGHHIIJJ##$$%%&&&&%%$$##1100//..==<<;;::aa``__^^hhiijjkk~~uuvvwwxxQQRRSSTT--..//00 - - @@??>>==UUOONNMM::998765WWVVUUTT{{zzyyxxooppqqrrKKLLMMNN''(())**""!! --,,++**99887766]]\\[[ZZ~~llmmnnooyyzz{{||UUVVWWXX11223344 <<;;::99LLKKJJII43322110SSRRQQPPwwvvuuttssttuuvvOOPPQQRR++,,--.. - -))((''&&55443322YYXXWWVV}}||{{zzppqqrrss}}~~YYZZ[[\\5566778888776655HHGGFFEE0//..--,OONNMMLLssrrqqpp~~}}||wwxxyyzzSSTTUUVV//001122 %%$$##"" 1100//..UUTTSSRRyyxxwwvvttuuvvww]]^^__``99::;;<< 44332211DDCCBBAA,++**))(KKJJIIHHoonnmmll{{zzyyxx{{||}}~~WWXXYYZZ33445566!!  - - --,,++**QQPPOONNuuttssrrxxyyzz{{aabbccdd==>>??@@ - - 00//..--@@??>>==(''&&%%$GGFFEEDDkkjjiihhwwvvuutt[[\\]]^^778899::))((''&&MMLLKKJJqqppoonn||}}~~eeffgghhAABBCCDD ,,++**))<<;;::99$##""!! CCBBAA@@ggffeeddssrrqqpp__``aabb;;<<==>> %%$$##""IIHHGGFFmmllkkjjiijjkkllEEFFGGHH!!""##$$((''&&%%33221100 ??>>==<>eeddccbbqqrrssttMMNNOOPP))**++,, ++**))((77665544[[ZZYYXX~~}}||ggffeeddkkllmmnnGGHHIIJJ##$$%%&& ==<<;;::aa``__^^uuvvwwxxQQRRSSTT--..//00 - - ''&&%%$$33221100WWVVUUTT{{zzyyxxccbbaa``ooppqqrrKKLLMMNN''(())**99887766]]\\[[ZZ~~yyzz{{||UUVVWWXX11223344 ##""!! - -//..--,,SSRRQQPPwwvvuutt__^^]]\\ssttuuvvOOPPQQRR++,,--.. - - - - 55443322YYXXWWVV}}||{{zz}}~~YYZZ[[\\55667788 ++**))((OONNMMLLssrrqqpp[[ZZYYXXwwxxyyzzSSTTUUVV//001122   - -1100//..UUTTSSRRyyxxwwvv]]^^__``99::;;<< ''&&%%$$KKJJIIHHoonnmmllWWVVUUTT~~}}||{{{{||}}~~WWXXYYZZ33445566 --,,++**QQPPOONNuuttssrraabbccdd==>>??@@ - - ##""!! GGFFEEDDkkjjiihhSSRRQQPPzzyyxxww[[\\]]^^778899:: !!""##))((''&&MMLLKKJJqqppoonneeffgghhAABBCCDD   CCBBAA@@ggffeedd~~}}||{{OONNMMLLvvuuttss__``aabb;;<<==>> !!$$%%&&''%%$$##""IIHHGGFFmmllkkjjiijjkkllEEFFGGHH!!""##$$ - -  - - ??>>==<>eeddccbbqqrrssttMMNNOOPP))**++,, - -77665544[[ZZYYXXrrqqkkjjCCBBAA@@hggffeedkkllmmnnGGHHIIJJ##$$%%&&**++,,--00112233 ==<<;;::aa``__^^uuvvwwxxQQRRSSTT--..//00 - -  33221100WWVVUUTTiihhggff??>>==<<~~dccbbaa`~~}}||{{ooppqqrrKKLLMMNN''(())**..//00114455667799887766]]\\[[ZZ~~~~}}yyzz{{||UUVVWWXX11223344  - - //..--,,SSRRQQPPeeddccbb;;::9988}}||{{zz`__^^]]\zzyyxxwwssttuuvvOOPPQQRR++,,--..223399::8899::;;55443322YYXXWWVV}}||{{zz||{{zzyy}}~~YYZZ[[\\55667788 !!++**))((OONNMMLLaa``__^^77665544yyxxwwvv\[[ZZYYXvvuuttsswwxxyyzzSSTTUUVV//001122;;<<==>><<==>>?? - -1100//..UUTTSSRRyyxxwwvvxxwwvvuu]]^^__``99::;;<<""##$$%%''&&%%$$KKJJIIHH]]\\[[ZZ33221100uuttssrrXWWVVUUTrrqqppoo{{||}}~~WWXXYYZZ33445566??@@AABB@@AABBCC --,,++**QQPPOONNuuttssrrttssrrqqaabbccdd==>>??@@ !!""##&&''(())##""!! GGFFEEDDYYXXWWVV//..--,,qqkkjjiiSRQPOONNnnmmllkk[[\\]]^^778899::CCDDEEFFDDEEFFGG !!""##))((''&&MMLLKKJJqqppoonnponmlkkjeeffgghhAABBCCDD $$%%&&''**++,,-- CCBBAA@@UUOONNMM++**))((hhggffeeMMLLKKJJjjiihhgg__``aabb;;<<==>>GGHHIIJJHHIIJJKK$$%%&&''%%$$##""IIHHGGFFmmllkkjjjiihhggfiijjkkllEEFFGGHH!!""##$$(())**++..//0011 - - ??>>==<>eeddccbb~~}}||baa``__^||{{zzyyqqrrssttMMNNOOPP))**++,,001122336677889977665544DDCCBBAA\\[[ZZYYAA@@??>>^^]]\\[[kkllmmnnGGHHIIJJXXYYZZ[[TTUUVVWW00112233 ==<<;;::aa``__^^{{zzyyxx^]]\\[[ZxxwwvvuuuuvvwwxxQQRRSSTT--..//0099::;;<<::;;<<== 33221100@@??>>==XXWWVVUU==<<;;::ZZYYXXWW~~}}||{{ooppqqrrKKLLMMNN\\]]^^__XXYYZZ[[4455667799887766]]\\[[ZZwwvvuuttZYYXXWWVttssrrqqyyzz{{||UUVVWWXX11223344==>>??@@>>??@@AA - - //..--,,<<;;::99OONNMMLL99876543VVUUTTSSzzyyxxwwssttuuvvOOPPQQRR``aabbcc\\]]^^__8899::;;55443322YYXXWWVVssrrqqkkVUUTSRQPppoonnmm}}~~YYZZ[[\\55667788AABBCCDDBBCCDDEE !!++**))((33221100KKJJIIHH3221100/RRQQPPOOvvuuttsswwxxyyzzSSTTUUVVddeeffgg``aabbcc<<==>>?? - -1100//..UUTTSSRRjjiihhggOONNMMLLllkkjjii]]^^__``99::;;<>??@@IIJJKKLLJJKKLLMM&&''(())##""!! ++**))(( - - CCBBAA@@+**))(('JJIIHHGGnnmmllkk[[\\]]^^qqrrsstthhiijjkkDDEEFFGG !!""##))((''&&MMLLKKJJbbaa``__GGFFEEDDddccbbaaeeffgghhAABBCCDDMMNNOOUUNNOOPPQQ**++,,-- ''&&%%$$ - - ??>>==<<'&&%%$$#FFEEDDCCjjiihhgg__``aabbuuvvwwxxllmmnnooHHIIJJKK$$%%&&''%%$$##""IIHHGGFF^^]]\\[[CCBBAA@@``__^^]]iijjkkllEEFFGGHHVVWWXXYYRRSSTTUU..//0011 - - ##""!! ;;::9933#""!! BBAA@@??ffeeddccccddeeffyyzz{{||ppqqrrssLLMMNNOO(())**++!! EEDDCCBBZZYYXXWW??>>==<<\\[[ZZYY~~}}mmnnooppIIJJKKLLZZ[[\\]]VVWWXXYY22334455221100//>>==<<;;bbaa``__gghhiijj}}~~ttuuvvwwPPQQRRSS,,--..// - - AA@@??>>VVUUOONN;;::9987XXWWVVUU||{{zzyyqqrrssttMMNNOOPP^^__``aaZZ[[\\]]66778899..--,,++::998877^^]]\\[[kkllmmnnxxyyzz{{TTUUVVWW00112233 ==<<;;::MMLLKKJJ65433221TTSSRRQQxxwwvvuuuuvvwwxxQQRRSSTTbbccddee^^__``aa::;;<<== **))((''66554433ZZYYXXWW~~}}||{{ooppqqrr||}}~~XXYYZZ[[4455667799887766IIHHGGFF100//..-PPOONNMMttssrrqqyyzz{{||UUVVWWXXffgghhiibbccddee>>??@@AA - -   !!&&%%$$## 221100//VVUUTTSSzzyyxxwwssttuuvv\\]]^^__8899::;;55443322EEDDCCBB-,,++**)LLKKJJIIppoonnmm}}~~YYZZ[[\\jjkkqqrrffgghhiiBBCCDDEE !! - - - -""##$$%%""!!  - - ..--,,++RRQQPPOOvvuuttsswwxxyyzz``aabbcc<<==>>?? - -1100//..AA@@??>>)((''&&%HHGGFFEEllkkjjii]]^^__``ssttuuvvjjkkllmmFFGGHHII""##$$%% &&''(())**))((''NNMMLLKKrrqqppoo{{||}}~~ddeeffgg@@AABBCC --,,++**==<<;;::%$$##""!DDCCBBAAhhggffeeaabbccddwwxxyyzznnooppqqJJKKLLMM&&''(())**++,,--&&%%$$##JJIIHHGGnnmmllkkhhiijjkkDDEEFFGG !!""##))((''&&99332211! @@??>>==ddccbbaaeeffgghh{{||}}~~rrssttuuNNOOPPQQ**++,,-- ..//0011""!! FFEEDDCCjjiihhggllmmnnooHHIIJJKK$$%%&&''%%$$##""00//..--<<;;::99``__^^]]iijjkkllvvwwxxyyRRSSTTUU..//0011 - - 22334455 - - - -BBAA@@??ffeeddccppqqrrssLLMMNNOO(())**++!! ,,++**))88776655\\[[ZZYY~~}}mmnnooppzz{{||}}VVWWXXYY22334455 !!""##66778899  >>==<<;;bbaa``__ttuuvvwwPPQQRRSS,,--..// - - ((''&&%%44332211XXWWVVUU||{{zzyyqqrrsstt~~ZZ[[\\]]66778899$$%%&&''::;;<<==::998877^^]]\\[[xxyyzz{{TTUUVVWW00112233 $$##""!! 00//..--TTSSRRQQxxwwvvuuuuvvwwxx^^__``aa::;;<<==(())**++>>??@@AA - - 66554433ZZYYXXWW~~}}||{{||}}~~XXYYZZ[[44556677  - - ,,++**))PPOONNMMttssrrqqyyzz{{||bbccddee>>??@@AA,,--..//BBCCDDEE  221100//VVUUTTSSzzyyxxww\\]]^^__8899::;;((''&&%%LLKKJJIIppoonnmm}}~~ffgghhiiBBCCDDEE !!00112233FFGGHHII - - ..--,,++RRQQPPOOvvuuttss``aabbcc<<==>>?? - -$$##""!!HHGGFFEEllkkjjiijjkkllmmFFGGHHII""##$$%%99::;;<>??@@NNOOPPQQ ##$$%%&&&&%%$$##JJIIHHGGnnmmllkkhhiijjkkDDEEFFGG !!""## - -  - - @@??>>==ddccbbaarrssttuuNNOOPPQQ**++,,--AABBCCDDRRSSTTUU!!""##$$''(())**""!! FFEEDDCCjjiihhggllmmnnooHHIIJJKK$$%%&&'' <<;;::99``__^^]]vvwwxxyyRRSSTTUU..//0011EEFFGGHHVVWWXXYY%%&&''((++,,--.. - -BBAA@@??ffeeddccppqqrrssLLMMNNOO(())**++ 88776655\\[[ZZYY~~}}zz{{||}}VVWWXXYY22334455IIJJKKLLZZ[[\\]]))**++,,//001122 >>==<<;;bbaa``__ttuuvvwwPPQQRRSS,,--..// - - - -  44332211XXWWVVUU||{{zzyy~~ZZ[[\\]]66778899MMNNOOUU^^__``aa--..//0033445566::998877^^]]\\[[~~xxyyzz{{TTUUVVWW00112233  - - 00//..--TTSSRRQQxxwwvvuu^^__``aa::;;<<==VVWWXXYYbbccddee11223399778899::66554433ZZYYXXWW~~}}||{{}}||{{zz||}}~~XXYYZZ[[44556677 ,,++**))PPOONNMMttssrrqqbbccddee>>??@@AAZZ[[\\]]ffgghhii::;;<<==;;<<==>> 221100//VVUUTTSSzzyyxxwwyyxxwwvv\\]]^^__8899::;;!!""##$$((''&&%%LLKKJJIIppoonnmmffgghhiiBBCCDDEE^^__``aajjkkllmm>>??@@AA??@@AABB - - ..--,,++RRQQPPOOvvuuttssuuttssrr``aabbcc<<==>>?? !!""%%&&''(($$##""!!HHGGFFEEllkkjjiijjkkllmmFFGGHHIIbbccddeennooppqqBBCCDDEECCDDEEFF !!""**))((''NNMMLLKKrrqqppooqqponmlkddeeffgg@@AABBCC##$$%%&&))**++,, DDCCBBAAhhggffeennooppqqJJKKLLMMffgghhiirrssttuuFFGGHHIIGGHHIIJJ##$$%%&&&&%%$$##JJIIHHGGnnmmllkkkjjiihhghhiijjkkDDEEFFGG !!""##''(())**--..//00 - - @@??>>==ddccbbaarrssttuuNNOOPPQQjjkkqqrrvvwwxxyyJJKKLLMMKKLLMMNN''(())**""!! FFEEDDCCjjiihhgggffeeddc~~llmmnnooHHIIJJKK$$%%&&''++,,--..11223344 <<;;::99``__^^]]vvwwxxyyRRSSTTUUssttuuvvzz{{||}}NNOOUUVVOOPPQQRR++,,--.. - -BBAA@@??ffeeddcc~~}}cbbaa``_}}||{{zzppqqrrssLLMMNNOO(())**++//0011225566778888776655\\[[ZZYY~~}}~~}}||zz{{||}}VVWWXXYYwwxxyyzz~~WWXXYYZZSSTTUUVV//001122 >>==<<;;bbaa``__||{{zzyy_^^]]\\[yyxxwwvvttuuvvwwPPQQRRSS,,--..//3399::;;99::;;<< 44332211XXWWVVUU||{{zzyy{{zzyyxx~~ZZ[[\\]]{{||}}~~[[\\]]^^WWXXYYZZ33445566::998877^^]]\\[[xxwwvvuu[ZZYYXXWuuttssrrxxyyzz{{TTUUVVWW00112233<<==>>??==>>??@@ - - 00//..--TTSSRRQQxxwwvvuuwwvvuutt^^__``aa__``aabb[[\\]]^^778899::66554433ZZYYXXWWttssrrqqWVVUUTSRqqppoonn||}}~~XXYYZZ[[44556677@@AABBCCAABBCCDD ,,++**))PPOONNMMttssrrqqssrrqqpobbccddeeccddeeff__``aabb;;<<==>> 221100//VVUUTTSSkkjjiihhQPOONNMMmmllkkjj\\]]^^__8899::;;DDEEFFGGEEFFGGHH!!""##$$((''&&%%LLKKJJIIppoonnmmnmlkkjjiffgghhiigghhiijjccddeeff??@@AABB - - ..--,,++RRQQPPOOggffeeddLLKKJJIIiihhggff``aabbcc<<==>>??HHIIJJKKIIJJKKLL%%&&''(($$##""!!HHGGFFEEllkkjjiiihhggffejjkkllmmkkqqrrssgghhiijjCCDDEEFF !!""**))((''NNMMLLKKccbbaa``HHGGFFEEeeddccbbddeeffgg@@AABBCCLLMMNNOOMMNNOOPP))**++,, DDCCBBAAhhggffeeeddccbba~~}}||nnooppqqttuuvvwwkkllmmnnGGHHIIJJ##$$%%&&&&%%$$##JJIIHHGG__^^]]\\DDCCBBAAaa``__^^hhiijjkkDDEEFFGGUUVVWWXXQQRRSSTT--..//00 - - @@??>>==ddccbbaa~~}}||{{a``__^^]{{zzyyxxrrssttuuxxyyzz{{ooppqqrrKKLLMMNN''(())**""!! FFEEDDCC[[ZZYYXX@@??>>==]]\\[[ZZ~~llmmnnooHHIIJJKKYYZZ[[\\UUVVWWXX11223344 <<;;::99``__^^]]zzyyxxww]\\[[ZZYwwvvuuttvvwwxxyyfpvp˂rbے`f~HXQJ`ےvpftlJXQJ`ےnvpXQrbtJ`ےdQZ|˂pZXv`fdQZ|nXv`XQJ`ےJXQrfpvbHAZH~ftArdbHAZfHfl|ZbHAZpdrtAJHAbے~HfdrtAJf~HbHAZpZAbnXv`p˂r`vXn|ZdQbp˂r`vXndQbt˂rXQltb`JXQrpvnltbfpvp˂r`JXQrf~HXQJ`ےvpftlJXQJ`ےvpflJtArJ`ےdQZ|˂pZXv`fdQZ|nXv`XQJ`ے˂pZfpvbHAZH~ftArdbHAZH~fd|ZbHAZpdtAJlHAbے~HfdrtAJf~HJltHAbےnXv`p˂r`vXn|ZdQbp˂r`vXndQtArd˂rXQtbn`JXQrpvnltbfpvdrtAJ`JXQrf~HXQJ`ےvpftlJXQJ`ےvpf|ZdQJ`ےvpf˂pZXv`fdQZ|nXv`ltb˂pZfpvJltH~ftArdbHAZH~fbtlbHAZpHf`HAbے~HfdrtAJf~HdQZ|HAbnXv`bdQZ|`vXn|ZdQbp˂r`vXnJtArd˂rXQvXn`JXQrpvnltbfpvdrtAJJQr˂pf~HdrtAvpftlJXQJ`ےvpf|ZdQJ`ےvpfH˂pZXv`fdQZ|nXv`ltbZHAbfpvJltH~ftArdbHAZH~fbtlbHAZp~f`HAbے~HfdrtAJ˂pZf~HdQZ|lے`JXnXv`bdQZ|`vXn|ZdQbp˂r`vXn|ZdQb˂rXQvXn`JXQrpvnltbHAbےfpvtbdQQr˂pf~HdrtAvpftlJXQJ`ےvpftlJJ`ےvpfH˂pZXv`fdQZ|`JXQrnXv`Z|dZHAbfpvJltH~ftArdbHAZH~ftArdbHAZp~f`HAے`~HfdrtAJ˂pZf~HrtAJlے`JXnXv`bdQZ|`vXn|ZdQbp˂r`vXn|ZdQb˂rXQvXnJXQrbpvnltbHAbےfpvtbdQQrZHAf~HdrtAvpftlJXQJ`ےvpftlJJ`ےvpfHtlJXv`fdQZ|`JXQrnXv`Z|dbے`fpvJltے`JXQtArdbHAZH~ftArdtbHAZp~f`tAd|~HfdrtAJ˂pZf~HrtAdQZJXQrnXv`bdQZ|r˂p|ZdQbp˂r`vXnlJtA˂rXQvXnZdQbtpvnltbHAbےfpv|dr˂pZHAf~HdrtAZHAbtlJXQJ`ےvpfrd|J`ےvpfHlJtAXv`fdQZ|`JXQrnXv`tAJlbے`fpvJltے`JXQtArdbHAZH~fZdQbtbHAZp~f`rd|~HfdrtAJ˂pZf~HtbdQZJXQrnXv`bdQZ|r˂p|ZdQbp˂r`vXnlJtA˂rXQvXnZdQbtpvnltbHAbےfpv|dr˂pZAbf~HdrtAZHAbtlJXQJ`ےvpfrd|J`ےvpfHlJtAXv`fdQZ|`JXQrnXv`tAJl璒`JXQfpvJltے`JXQtArdbHAZH~fZdQtArbHAZp~f`rd|HfpdrtAJ˂pZf~HtdrtAr˂pnXv`bdQZ|r˂p|ZdQbp˂r`vXnd|Z˂rXQvXnZdQbtvnrltbHAbےfpvJltZHAbf~HdrtAZHAbtlJXQJ`ےvpfdQbtJ`ےvpfHlJtAXQJ`ےdQZ|`JXQrnXv`bdQZ|`JXQfpvJltے`JXQfpvbHAZH~flJtArbHAZp~f`rd|HAZpdrtAJ˂pZf~HdrtAr˂pnXv`bdQZ|r˂pnXv`p˂r`vXnd|Z˂rXQvXnZdQbt˂rXQltbHAbےfpvJltZHAbf~HdrtAZHAbf~HXQJ`ےvpfdQbtJ`ےvpfHlJtAJ`ےdQZ|`JXQrnXv`bdQZ|JQr˂fpvJltے`JXQfpvbHAZH~fl|ZdQbHAZp~f`rd|bHAZpdrtAJ˂pZf~HltbpZHAbnXv`bdQZ|r˂pnXv`p˂r`vXnbtl˂rXQvXnZdQbt˂rXQltbHAbےfpvdQZ|ے`Jf~HdrtAZHAbf~HXQJ`ےvpfJtArdJ`ےvpfHlJtAJ`ےdQZ|`JXQrnXv`drtAJXQr˂fpvJltے`JXQfpvbHAZH~f|ZdQbHAZp~f`rd|bHAZpdtAJl˂pZf~HltbpZHAbnXv`bdQZ|r˂pnXv`p˂r`vXnbtl˂rXQvXnZdQbt˂rXQtbnHAbےfpvdQZ|JAdf~HdrtAZHAbf~HXQJ`ےvpfJtArdJ`ےvpfHlJtAJ`ےvpf`JXQrnXv`drtAdQ|ZdQbfpvJltے`JXQfpvJltH~ftlJbHAZp~f`rd|bHAZpHf`˂pZf~HZ|dtlJnXv`bdQZ|r˂pnXv`bdQZ|`vXnfpv˂rXQvXnZdQbt˂rXQvXnHAbےfpvrtAJltArdf~HdrtAZHAbf~HdrtAvpfnvfJ`ےvpfHlJtAJ`ےvpfH`JXQrnXv`tbdQ|ZdQbfpvJltے`JXQfpvJltH~f~HfpbHAZp~f`rd|bHAZp~f`˂pZf~HZ|`vtlJnXv`bdQZ|r˂pnXv`bdQZ|`vXnvnX˂rXQvXnZdQbt˂rXQvXnHAbےfpvXnvtArdfHfdrtAZHAbf~HdrtAvpfv`fJ`ےJvpfHlJtAJ`ےvpfH`JXQrnXv`pfH~|ZdQbpvnJltے`JXQfpvJltH~f~Hfpltb~f`rd|bHAZp~f`˂pZp˂rf`vtlJrXQJ`bdQZ|r˂pnXv`bdQZ|`vXnvnXdQZ|vXnZdQbt˂rXQvXnHAbےXQJ`ےXH~tArdےHAZdrtAZHAbf~HdrtAvpfv`f~fdrtAJvpfHlJtAJ`ےvpfH`JXQrbHAZf`vX|ZdQbp˂rJltے`JXQfpvJltے`JXQpvnltb~f`rd|bHAZp~f`˂pZp˂rnvptlJXQJ`ےbdQZ|r˂pnXv`bdQZ|HAbےXv`fdQZ|vXnZdQbt˂rXQvXnHAbےXQJ`ےfH~tArdbHAZdrtAZHAbf~HdrtA`JXQr~HfdrtAJvpfHlJtAJ`ےvpfH`JXQrbHAZf`vX|ZdQbp˂rJltے`JXQfpvJlt˂pZpvnltb~f`rd|bHAZp~f`˂pZp˂rnvptlJXQJ`ےbdQZ|r˂pnXv`bdQZ|HAbےXv`fdQZ|vXnZdQbt˂rXQvXnHAbےXQJ`ے`vXntArdbHAZdtAJZHAbf~HdrtA`JXQr~HfdrtAJvpfےlJtAJ`ےvpfH`JXQrbHAZvpf|ZdQbp˂rltbے`JXQfpvJlt˂p`vnXv`ltb`JXQrrd|bHAZp~f`˂pZp˂rH~ftlJXQJ`ےnvpr˂pnXv`bdQZ|JXQrf~HdQZ|˂pZZdQbt˂rXQvXnHAے`XQJ`ے`vXntArdbHAZfHfZHAbf~HdrtA˂pZHAfpvdrtAJHAbےlJtAJ`ےvpfHJXQrbbHAZvpf|ZdQbp˂r`vXnے`JXQfpvJltbے`nXv`ltb`JXQrrd|bHAZp~f`tlJp˂rH~tlJXQJ`ےvpfr˂pnXv`bdQZ|JXQrf~HdQZ|˂pZZdQbt˂rXQvXntAd|XQJ`ےvpfHtArdbHAZH~fZHAbf~HdrtA˂pZHAfpvdrtAJHAbےlJtAJ`ےvpfHZdQbtbHAZ~f`|ZdQbp˂r`vXnے`JXQfpvJltb˂nvfltb`JXQrrd|bHAZp~f`lJtAp˂rvXntlJXQJ`ےvpfr˂pnXv`bdQZ|pZHAb~HfpdQZ|˂pZZdQbt˂rXQvXnrd|XQJ`ےvpfHtArdbHAZH~fZHAےf~HdrtAے`JvnXdrtAJHAbےlJfJ`ےvpfHZdQbtbHAZ~f`|ZdQbp˂r`vXn`JXQrfpvJltXQr˂v`fltb`JXQrpvnbHAZp~f`lJtAp˂rvXH~tlJXQJ`ےvpfbtlnXv`bdQZ|pZHAb~HfpdQZ|˂pZXv`f˂rXQvXnrd|XQJ`ےf`vtArdbHAZH~fJtAdf~HdrtAے`JvnXdrtAJHAbے~HfJ`ےvpfHZdQbtbHAZXnv|ZdQbp˂r`vXn|ZdQbfpvJltXQHAbv`f~ltb`JXQrpvnbHAZp~f`lJtAp˂rpfH~tlJXQJ`ےvpftlJnXv`bdQZ|ے`JXQfpvdQZ|˂pZXv`f˂rXQvXnrd|XQJ`ےf`vtArdbHAZH~ftArdf~HdrtAr˂pnXv`drtAJHAbے~HfJ`ےvpfHZdQbtbHAZXnv|ZdQbp˂r`vXn|ZdQbfpvJltZHAbf~Hltb`JXQrpvnbHAZp~f`lJtAp˂rp`vXtlJXQJ`ےvpftlJnXv`bdQZ|ے`JXQfpvdQZ|˂pZXv`f˂rXQvXnrd|XQJ`ےnvptArdbHAZH~ftArdfHfdrtAr˂pnXv`drtAJHAbے~HfJ`ےJvpfHZdQbtbHAZfH~|ZdQbp˂r`vXn|ZdQbpvnJlt`JXQrf~Hfltb`JXQrpvnltb~f`lJtAp˂rf`vXtlJXQJ`ےvpftlJrXQJ`bdQZ|˂pZvnXvdQZ|˂pZXv`fdQZ|vXnrd|XQJ`ےnvptArdbHAZH~ftArdےHAZdrtAHAbے`f~drtAJHAbے~HfdrtAJvpfHZdQbtbHAZfH~|ZdQbp˂r`vXn|ZdQbp˂rJlt`JXQrHfpvltb`JXQrpvnltb~f`lJtAp˂rvpftlJXQJ`ےvpftlJXQJ`ےbdQZ|˂pZnXvdQZ|˂pZXv`fdQZ|vXnrd|XQJ`ےے`JXQtArdbHAZH~ftArdbHAZdrtAHAb`ffpdrtAJHAbے~HfdrtAJvpfHZdQbtbHAZrZHA|ZdQbp˂r`vXn|ZdQbp˂rJlt˂pZHAvnrltb`JXQrpvnltb~f`lJtAp˂rbے`tlJXQJ`ےvpftlJXQJ`ےbdQZ|bے`XQJ`ےdQZ|˂pZXv`fdQZ|vXnrd|XQJ`ےJXQrfpvbHAZH~ftArdbHAZdtAJJXQrHAZpdrtAJHAbے~HfdrtAJvpfےZdQbtbHAZpZHAnXv`p˂r`vXn|ZdQbp˂rltb˂p`J˂rXQltb`JXQrpvnltb`JXQrlJtArd|ےbHAf`vd|ZHAZp˂f`vbے`~Hfpltdr˂pHfpvtAJl璐ے`JJtArdےbHAfH~|ZdQbbHAZH~ftArdf~HdrtAZHAbv`fAJltHAbے~HfJ`ےvpfHJAHfZdQbtZp˂XnvdQbt璀rXQJXnvJXQrvnXrtAJlZAb`nXvtbdQZXQr˂|ZdQZp˂f`vXtlJp˂r`vXn|ZdQbfpvJltے`JXQ~HXvbQZd`JXQrpvnbHAZp~f``vXnlJtArXQJ`pfH~lJtAr`ےbpfH~˂pZHAv`ftbdQJXQr`f~|drpZHAbbtlrXQJ`nvptArdXQJ`ےvpftlJnXv`bdQZ|r˂p`f~rtAJl˂pZXv`f˂rXQvXnvˍpfrd|p˂rf`vd|ZHAZp˂f`vbے`~HfpZ|dpZHAHfpvtAJl璐ے`JJtArdےbHAfH~|ZdQtAbHAZH~ftArdfHfdrtAZHAbHfpvtbdQHAbے~HfJ`ےJvpfHH~ㅐfZdQbtXQJ`ےXnvdQbt璀rXQJXnvJXQrvnXrtAJlbے`nXvtbdQZXQr˂|ZdQZp˂f`vXrd|p˂r`vXn|ZdQbpvnJltے`JXQnXvZ|d`JXQrpvnltb~f``vXnlJtAbHAZpfH~lJtAr`ےbpfH~˂pZHAv`ftbdQJXQr`f~|drpZHAbbtlrXQJ`nvpZdQbtXQJ`ےvpftlJrXQJ`bdQZ|r˂p`f~rtAJl˂pZXv`fdQZ|vXnvˍpfrd|p˂rf`vd|ZHAZp˂f`vے`J~HfpZ|l璂pZHAHfpvtAJl璐ے`JJfpvےbHAfH~lJtAbHAZH~ftArdےHAZdrtAZHAbHfpvtbdQHAbے~HfdrtAJvpfHH~ㅐfZdQbtXQJ`ےXnvdQbt璀rXQJXnvXQrbtvnXtbdQZbJQrnXvtbdQZXQr˂nXvZp˂f`vXrd|p˂r`vXn|ZdQbp˂rJltے`JXQ~HZ|rA`JXQrpvnltb~f``vXnlJtAbHAXQpfH~lJtAr`ےbpfH~lJtAv`f|dr˂pZ`f~|drpZHAb`f~rXQJ`nvpZdQbtXQJ`ےvpftlJXQJ`ےbdQZ|r˂pfpvJlt˂pZXv`fdQZ|vXnvˍpfrd|J`ےJf`vd|ZHAZp˂f`vd|Z~HfptAJlHAbےHfpvtAJl璐ے`JHfpvےbHAfH~l|ZbHAZH~ftArdbHAZdrtAZHAbnXv`bdQZ|HAbے~HfdrtAJvpfHH~ㅐfZdQbtltbQXnvdQbt璀rXQJXnvdQbtvnXtbdQZ`JXQrnXvtbdQZXQr˂nXvZp˂f`vXdQbtp˂r`vXn|ZdQbp˂rJltے`JXQf~HdrtA`JXQrpvnltb~f``vXnlJtAZdrtpfH~lJtAr`ےbpfH~lJtArv`f|dr˂pZA`f~|drpZHAb`f~rXQJ`nvplJtArXQJ`ےvpftlJXQJ`ےbdQZ|r˂pfpvJlt˂pZXv`fdQZ|vXnvˍpfrd|AJltf`vd|ZHAZp˂f`vd|Z~HfptAdQZ|`JXQHfpvtAJl璐ے`JHfpvےbHAfH~d|ZbHAZH~ftArdbHAZdtAJZHAbnXv`bdQZ|HAbے~HfdrtAJvpfZH~ㅐfZdQbtbdQZ|XnvdQbt璀rXQJXnvdQbtvnXdrtArbt璀nXvtbdQZXQr˂nXvZp˂f`vXdQbtp˂r`vXn|ZdQbp˂rltbے`JXQpvndrtAJ`JXQrpvnltbHAbے`vXnlJtAdrtpfے`lJtAr`ےbpfH~lJtArv`fJltlJtAd`f~|drpZHAb`f~rXQJ`nvplJtArXQJ`ےvpftlJXQJ`ےnvpr˂pXv`fbdQZ˂pZXv`fdQZ|`JXQrvˍpfrd|AJltJXQrd|ZHAZp˂f`vd|ZHfpvbdQZ||ZdQHfpvtAJl璐ے`JHfpvےJlfH~dtlbHAZH~ftArdbHAZfHfZHAb~Hf|drHAbے~HfdrtAJ˂pZH~ㅐfZdQbtbdQZ|˂pZHAdQbt璀rXQJXnvdQbt璀nrXQltbbtlnXvtbdQZXQr˂nXvtbdQZf`vXJfpvp˂r`vXn|ZdQbp˂r`vXnے`JXQpvntAJl`JXQrpvnltbHAbے`vXnlJfrAJlbے`lJtAr`ےbpfH~lJtArJ`ےnvpJtArd`f~|drpZHAb`f~|drnvpnvfXQJ`ےvpftlJXQJ`ےvpfr˂pXv`ftbdQZ˂pZXv`fdQZ|`JXQrvˍpfpvtbdQJXQrd|ZHAZp˂f`vd|ZHAZp˂`vXn|ZdQHfpvtAJl璐ے`JHfpvtAJlfH~~HfpbHAZH~ftArdbHAZH~fZHAb~HX|AJlHAbے~HfdrtAJ˂p`H~ㅐf~HfpZ|d˂pZHAdQbt璀rXQJXnvdQbt璀rXQJvpfbtlnXvtbdQZXQr˂nXvtbdQZf`vXvnXp˂r`vXn|ZdQbp˂r`vXnے`JXQv`ftbn`JXQrpvnltbJXQr`vXnvnXrtAJlbے`lJtAr`ےbpfH~lJtAr`ےbH~fJtArd`fH|drpZHAb`f~|drnvpv`fXQJ`ےvpftlJXQJ`ےvpfr˂p~Hfpvpf˂pZXv`fdQZ|˂pZHAvˍpfv`ftbdQJXQrd|ZHAZp˂f`vd|ZHAZp˂`vXH|ZdQfpvtAJl璐ے`JHfpvtAJlfH~~HfpJltH~ftArdbHAZH~fZHAےvnXHf`HAbے~HfdrtAJbے`H~ㅐf~HfpZ|d˂pZHAdQbt璀rXQJXnvdQbt璀rXQJ~f`btlnrXQJtbdQZXQr˂nXvtbdQZf`vXvnXbdQZ|`vXn|ZdQbp˂r`vXn`JXQrv`pvvXn`JXQrpvnltbJXQr`vXnvnXrtAJbے`lJfp`ےbpfH~lJtAr`ےbvXnJtArd`ےHA|drpZHAb`f~|drnvpv`f~drtAvpftlJXQJ`ےvpfbtlnrXQvpfH˂pZXv`fdQZ|˂pZHAvˍpfv`pvbdQZ|JXQrvnXHAZp˂f`vd|ZHAZp˂vpfH|ZdQZp˂tAJl璐ے`JHfpvtAJlfے`JfpvJltH~ftArdbHAZH~fJtAdJ`p˂~f`HAbے~HfdrtAJb˂H~ㅐfۀnXvdrtA˂pZHAv`frXQJXnvdQbt璀rXQJ~f`btlrXQJ`tbdQZXQr˂nXvtbdQZXQHAbnXv`bdQZ|`vXn|ZdQbp˂r`vXn|ZdQbrXQJvXn`JXQrpvnltbpZHAb`vXn`f~Jltbے`~Hfp`ےbpfH~lJtAr`ےbvXnJtArdےbHA|drpZHAb`f~|drے`JXQf~HdrtAvpftlJXQJ`ےvpftlJ`ےbvpfH˂pZXv`fdQZ|ے`JvˍpfHfpvbdQZ|JXQrvnXHAZp˂f`vd|ZHAZp˂vp`v|ZdQZp˂tAJl璐ے`JHfpvtAJlr˂pfpvJltH~ftArdbHAZH~ftArdHAZp˂~f`HAے`~HfdrtAJXQr˂H~ㅐfۀnXvdrtA˂pZHAv`frXQJXnvdQbt璀rXQJXnvbtlrXQJ`tbdQZXQr˂nXvtbdQZZHAbnXv`bdQZ|`vXn|ZdQbp˂r`vXn|ZdQbbHAvXnJXQrbpvnltbpZHAb`vXn`f~Jltbbے`~Hfp`ےbpfH~lJtAr`ےbpfH~JtArdےbHA|dtApZHAb`f~|drے`JXQf~HdrtAvpftlJXQJ`ےvpftlJZp˂vpfHtlJXv`fdQZ|ے`JvˍpfHXv`QZdrJXQrvnXHAZp˂f`vd|ZHAZp˂f`v|ZdQZp˂Jltے`JHfpvtAJlr˂pfvnXJltے`JXQtArdbHAZH~ftArdrXQJ`~f`tAd|~HfdrtAJXQHAbH~ㅐff~HtAJl˂pZHAv`frXQJXnvdQbt璀rXQJXnvbtlrXQJ`bnvXQr˂nXvtbdQZ`JXQrv`fbdQZ|r˂p|ZdQbp˂r`vXn|ZdQbےbHAvXnZdQbtpvnltbے`JXQ`vXnfpvtbdQZbے`~Hfp`ےJlpfH~lJtAr`ےbpfH~JtArdےbHApfHpZHAb`f~|dr˂pZ~HfpdrtAZHAbtlJXQJ`ےvpftlJZp˂vpfHlJtAXv`fdQZ|r˂pvˍpfnXv`|drJXQrvnXtbdQf`vd|ZHAZp˂vp|ZdQZp˂f`vXے`JHfpvtAJlHAbےvnXJltے`JXQtArdbHAZH~ftArdrXQJ`~f`rd|~HfdrtAJZHAbH~ㅐff~HtAJl˂pZHAv`fZ|dXnvdQbt璀rXQJfH~btlrXQJ`nvpXQr˂nXvtbdQZ`JXQrv`fbdQZ|r˂p|ZdQbp˂r`vXn|ZdQbp˂rvXnZdQbtpvnltbے`JXQ`vXnfpvtbdQZbے`~HfprtAJlpfH~lJtAr`ےbf`vXJtArdےbHAfH~pZHAb`f~|dr˂pZ~HfpdrtAZHAbtlJXQJ`ےvpftlJXQJ`ےvpfHlJtAXv`fdQZ|r˂pvˍpf~Hf|rAJlJXQrvnXtbdQf`vd|ZHAZp˂nvp|ZdQZp˂f`vXے`JHfpvtAJlHAbvnvfJltے`JXQtArdbHAZH~ftArdbHAZ~f`rd|HfpdrtAJ`JXQrH~ㅐfpvntbd˂pZHAv`fZ|dXnvdQbt璀rXQJfH~btlrXQJ`nvpXQr˂nXvtbdQZ˂pZHA~HfbdQZ|r˂p|ZdQbp˂r`vXn|ZdQbp˂rvXnZdQbtvnrltb˂pZ`vXnXv`fQZ|dbے`~HfprtAJlpfH~lJtAr`ےbf`vXJtArdےbHAfH~pZHA`f~|drbے`pvndrtAZHAbtlJXQJ`ےvpftlJXQJ`ےvpfHlJtAXQJ`ےdQZ|HAbےvˍp|~HfrtAJlJXQrvnXtbdQf`vd|ZHAZp˂H~f|ZdQZp˂f`vXے`JXQHfpvtAJlJXQrXv`fJltے`JXQfpvbHAZH~ftArdbHAXQ~f`rd|HAZpdrtAJ`JXQrdrQtpvntbd˂pZHAv`fZ|dXnvdQbt璀rXQJ`vXnbtlrXQJ`nvprbt璀nXvtbdQZ˂pZHA~HfbdQZ|r˂pnXv`p˂r`vXn|ZdQbJ`ےvXnZdQbt˂rXQltb˂pZJltXv`pQZ|dbے`~HfprtAJlpfے`lJtAr`ےbvpfJtArdےbHAfH~lJtAd`f~|drbے`pvndrtAZHAbf~HXQJ`ےvpftlJbHAZpvpfHlJtAJ`ےdQZ|HAbbAdZ|vnXrtAJJXQrvnXtbdQJXQrd|ZHAZp˂H~f|ZdQZp˂f`vX|ZdQHfpvtAJlJXQHAbXv`fJltے`JXQfpvbHAZH~ftArd˂rXQ~f`rd|bHAZpdrtAJ˂pZHAdrQtv`fbdQZ|˂pZHAv`fZ|d˂pZHAdQbt璀rXQJ`vXnbtlrXQJ`nvpbtlnXvtbdQZے`J~fpvbdQZ|r˂pnXv`p˂r`vXn|ZdQbJ`ےvXnZdQbt˂rXQltbbے`Jlt~HfpdrtAbے`~HfprtAJlbے`lJtAr`ےbvp`JtArdےbHAfH~JtArd`f~|drXQr˂nXv`drtAZHAbf~HXQJ`ےvpftlJbHAZpvpfHlJtAJ`ےdQZ|JXQrbAdZ|vnXJltJXQrvnXtbdQJXQrd|ZHAZp˂vXn|ZdQZp˂f`vX|ZdQHfpvtAJlpZHAbf~HJltے`JXQfpvbHAZH~ftArd˂b~f`rd|bHAZpdtAJl˂p`ZdrQtv`fbdQZ|˂pZHAv`fZ|d˂pZHAdQbt璀rXQJvpfHbtlrXQJ`nvpbtlnXvtbdQZے`JfpvbdQZ|r˂pnXv`p˂r`vXn|ZdQbHAZp˂vXnZdQbt˂rXQtbnQXb㉀Jlt~HXvAJlbے`~HfprtAJlbے`lJtAr`ےb~f`JtArdےbHAfH~JtArd`fH|drXQr˂nXv`drtAZHAbf~HXQJ`ےvpftlJrXQJvpfHlJtAJ`ےvpfpJAHrbAdZ|`f~tbnJXQrvnXtbdQJXQrd|ZHAZp˂vXn|ZdQZp˂f`vX|ZdQfpvtAJlp`JXQf~HJltے`JXQfpvJltH~ftArd`ےb~f`rd|bHAZpHf`ˁ`ZdrQtHfpvvpfH˂pZHAv`fZ|d˂pZHAdQbt璀rXQJvpfHbtlrXQJ`nvpbtlnrXQJtbdQZr˂pfvnXbdQZ|r˂pnXv`bdQZ|`vXn|ZdQbHAZp˂vXnZdQbt˂rXQvXnQXAHrJltnXvf`vbے`~HfprtAJlbے`lJfp`ےb~vJtArdےbHAfH~JtArd`ےHA|drZHAbv`fdrtAZHAbf~HdrtAvpftlJrXQJvpfHlJtAJ`ےvpfHˁ`ZQXbAdZ|`pvXnvJXQrvnXtbdQJXQrvnXHAZp˂pfے`|ZdQZp˂f`vX|ZdQZp˂tAJlے`JXQ~HfpJltے`JXQfpvJltH~ftArd`p˂~f`rd|bHAZp~f`b㉀ۑpdrQtnrXQJpfH~˂pZHAv`fZ|d˂pZHAv`frXQJJXQrbtlrXQJ`nvpbtlrXQJ`tbdQZr˂pvnXbdQZ|r˂pnXv`bdQZ|`vXn|ZdQbrXQJ`vXnZdQbt˂rXQvXnJAHrJlt`p˂f`vbے`~HfprtAJlbے`~Hfp`ےbZHAbJtArdےbHAfH~JtArdےbHA|drZHAbv`ffdrtAZHAbf~HdrtAvpftlJےbHAvpfHlJtAJ`ےvpfHˁ`ZQXbAdZ|rXQJ`XnvJXQrvnXtbdQJXQrvnXHAZp˂`JXQ|ZdQZp˂f`vX|ZdQZp˂tAJl璀˂pZpvnJltے`JXQfpvJltH~ftArdZp˂~f`rd|bHAZp~f`b㉀ۑpdrQtےbHApfH~˂pZHAv`fZ|d˂pZHAv`frXQJr˂pbtlrXQJ`nvpbtlrXQJ`tbdQZHAbےrXQJ`bdQZ|r˂pnXv`bdQZ|`vXn|ZdQbrXQJ`vXnZdQbt˂rXQvXn`ZQXbJltZp˂f`vے`J~HfprtAJlbے`~Hfp`ےbZHAbJfpvےbHAfH~JtArdےbHA|dtA`JXQrےHAZdrtAZHAbf~HdrtAvpftlJےbHAvpfHlJtAJ`ےvpfHۑpJbAdZ|bHAZXnvXQrbtvnXtbdQJXQrvnXHAZp˂`JXQnXvZp˂f`vX|ZdQZp˂Jlt˂p`p˂rJltے`JXQfpvJltے`JXQtArdXQJ`ے~f`rd|bHAZp~f`AHr󙐂˂drQtp˂rpfH~lJtAv`fZ|d˂pZHAv`frXQJr˂pZ`f~rXQJ`nvpbtlrXQJ`bnvJXQrbXQJ`ےbdQZ|r˂pnXv`bdQZ|r˂p|ZdQbJltvXnZdQbt˂rXQvXn`ZQXbJltXQJ`ےf`vd|Z~HfprtAJlbے`~Hfp`ےJlAb`JHfpvےbHAfH~JtArdےbHApfHtl|bHAZdrtAZHAbf~HdrtAZHAbtlJbQZdvpfHlJtAJ`ےvpfHۑpJbAdZ|bHAZXnvdQbtvnXtbdQJXQrvnXtdrXQr˂nXvZp˂f`vX|ZdQZp˂f`vXZdQbtp˂rJltے`JXQfpvJltے`JXQtArdrtAJl~f`rd|bHAZp~f`AHr󙐉drQtp˂rpfH~lJtArv`fZ|d˂pZHAv`ftAJlpZHAb`f~rXQJ`nvpbtlrXQJ`nvplJtAXQJ`ےbdQZ|r˂pnXv`bdQZ|r˂p|ZdQbtbdQvXnZdQbt˂rXQvXnۑpJAHJltXQJ`pf`vd|Z~HfprtAJlbے`~HfptbdQZے`JHfpvےbHAfH~JtArdےbHAfH~rd|bHAZdtAJZHAbf~HdrtAZHAbtlJZ|dvpfےlJtAJ`ےvpfHr󙐂ˁ`bAdZ|˂rXQXnvdQbtvnXtbdQJXQrvnX|drXQr˂nXvZp˂f`vX|ZdQZp˂f`vXZdQtArp˂rltbے`JXQfpvJltے`JXQtArdrtAJl`JXQrrd|bHAZp~f`ZQXb㉀drQtJ`ےpfH~lJtArv`fZ|d˂pZHAv`ftAJlpZHAb`f~rXQJ`nvpbtlrXQJ`nvpd|ZXQJ`ےnvpr˂pnXv`bdQZ|r˂p|ZdQbtbdQ瀉˂pZZdQbt˂rXQvXnۑpJAHJltbHAZpf`vd|ZHfpvrtAJlbے`~HfptbdQZJQrHfpvےJlfH~JtArdےbHAfH~dQbt璐bHAZfHfZHAbf~HdrtAZHAbtlJZ|rAJHAbےlJtAJ`ےvpfHr󙐂ˁ`bAdZ|˂rXQXnvdQbt璀nrXQtbdQJXQrvnX|lt˂pZHnXvtbdQZf`vX|ZdQZp˂f`vXlJtArp˂r`vXnے`JXQfpvJltے`JXQfpvltb`JXQrrd|bHAZp~f`ZQXAHrdrQtJ`ےpfH~lJtArJ`ےZ|d˂pZHAv`fbdQZ|Abے``f~|drnvpbtlrXQJ`nvpd|ZXQJ`ےvpfr˂pnXv`bdQZ|r˂p~HfdQZ|˂pZZdQbt˂rXQvXnˁ`ZJltbHAXQJf`vd|ZHAZp˂rtAJlbے`~HfpdrtAJXQrHfpvtAJlfH~JtArdےbHAfH~dQbt璐bHAZH~fZHAbf~HdrtAZHAbpvndrtAJHAbےlJtAJ`ےvpfHQXb㉀bAdZ|`ےbXnvdQbt璀rXQJtbdQJXQrvnXJlt˂pZHnXvtbdQZf`vX|ZdQZp˂f`vXl|ZdQp˂r`vXnے`JXQfpvJltے`JXQXv`fltb`JXQrrd|bHAZp~f`pJAHrdrQtHAZp˂pfH~lJtAr`ےbZ|d˂pZHAv`fbdQZ|Abے``f~|drnvpbtlrXQJ`nvpbtlXQJ`ےvpfr˂pnXv`bdQZ|r˂p~HfdQZ|˂pZZdQbt˂rXQvXnˁ`ZJltrXQJf`vd|ZHAZp˂rtAJlbے`~HfpdrtAJXQrHfpvtAJlfH~JtArdےbHAfH~JtArdbHAZH~fZHAےf~HdrtAZHAbpvndrtAJHAbےlJfJ`ےvpfHQXb㉀bAdZ|`ےbXnvdQbt璀rXQJtbdQJXQrvnXdQZ|ZHAbnXvtbdQZf`vX|ZdQZp˂f`vX|ZdQp˂r`vXn`JXQrfpvJltے`JXQXv`pbdQZ|`JXQrpvnbHAZp~f`p`ZQXdrQtHAZp˂pfH~lJtAr`ےbZ|d˂pZHAv`fdrtAJے`JXQ`f~|drnvpbtlrXQJ`nvpbtlXQJ`ےvpfbtlnXv`bdQZ|r˂pvnXdrt˂pZXv`f˂rXQvXnb㉀ۑpJltbHAf`vd|ZHAZp˂tAJlbے`~Hfpltbr˂pHfpvtAJlfے`JJtArdےbHAfH~JtArdbHAZH~fJtAdf~HdrtAZHAbv`fAJltHAbے~HfJ`ےvpfHJAHrbAdZ|Zp˂XnvdQbt璀rXQJtbnJXQrvnXdQZ|ZHAbnXvtbdQZXQr˂|ZdQZp˂f`vXtlJp˂r`vXn|ZdQbfpvJltے`JXQ~HfpbdQZ|`JXQrpvnbHAZp~f`ˁ`ZQXdrQtrXQJ`pfH~lJtAr`ےbvpfH˂pZHAv`fdrtAJے`JXQ`f~|drpZHAbbtlrXQJ`nvptArdXQJ`ےvpftlJnXv`bdQZ|r˂pvnXdrt˂pZXv`f˂rXQvXnb㉀ۑpJlt----------................................................................... \ No newline at end of file diff --git a/vendor/endroid/qr-code/assets/data/qrv39_3.dat b/vendor/endroid/qr-code/assets/data/qrv39_3.dat deleted file mode 100755 index 792dee0be..000000000 --- a/vendor/endroid/qr-code/assets/data/qrv39_3.dat +++ /dev/null @@ -1,345 +0,0 @@ -~}~}~}~}zyzyzyzyxwxwxwxwtstststsrqrqrqrqnmnmnmnmjijijijihghghghgdcdcdcdc~}~}~}~}zyzyzyzyxwxwxwxwtstststsrqrqrqrqnmnmnmnmjijijijihghghghgdcdcdcdc~}~}~}~}zyzyzyzyxwxwxwxwtstststsrqrqrqrqnmnmnmnmjijijijihghghghgdcdcdcdc~}~}~}~}zyzyzyzyxwxwxwxwtstststsrqrqrqrqnmnmnmnmjijijijihghgfefedcdcdcdc~}~}~}~}zyzyzyzyxwxwxwxwtstststsrqrqrqponmnmnmnmjijijijifefefefedcdcdcdc~}~}~}~}zyzyzyzyxwxwxwvutstststspopopoponmnmnmnmjijijijifefefefedcdcdcdc~}~}~}|{zyzyzyzyvuvuvuvutstststspopopoponmnmnmnmjijijijifefefefedcdcdcdc|{|{|{|{zyzyzyzyvuvuvuvutstststspopopoponmnmnmnmjijijijifefefefedcdcdcdc|{|{|{|{zyzyzyzyvuvuvuvutstststspopopoponmnmnmlkjijijijifefefefedcdcdcdc|{|{|{|{zyzyzyzyvuvuvuvutstststspopopopolklklkkkjijijijifefefefedcdcdcdc|{|{|{|{zyzyzyzyvuvuvuvutstststspopopopokkklklkljijijijifefefefedcdcdcdc|{|{|{|{zyzyzyzyvuvuvuvutstststspopopopoklklklkljijijijifefefefedcdcdcdc|{|{|{|{zyzyzyzyvuvuvuvutstststspopopopoklklklkljijijijifefefefedcdcdcdc|{|{|{|{zyzyzyzyvuvuvuvutstststspopopopoklklklkljijijijifefefefedcdcdcdc|{|{|{|{zyzyzyzyvuvuvuvutstststspopopopoklklklkljijijijifefefefedcdcdcdc|{|{|{|{zyzyzyzyvuvuvuvutstststspopopopoklklklkljijijijifefefefedcdcdcdc|{|{|{|{zyzyzyzyvuvuvuvutstststspopopopokkkkkklkjijijijifefefefedcdcdcdc|{|{|{|{zyzyzyzyvuvuvuvutstststspopopopolklklklkjijijijifefefefedcdcdcdc|{|{|{|{zyzyzyzyvuvuvuvutstststspopopopolklklklkjijijijifefefefedcdcdcdc|{|{|{|{zyzyzyzyvuvuvuvutstststspopopopolklklklkjijijijifefefefedcdcdcdc|{|{|{|{zyzyzyzyvuvuvuvutstststspopopopolklklklkjijijijifefefefedcdcdcdc|{|{|{|{zyzyzyzyvuvuvuvutstststspopopopolklklklkjijijijifefefefedcdcdcdc|{|{|{|{zyzyzyzyvuvuvuvutstststspopopopolklkkkkkjijijijifefefefedcdcdcdc|{|{|{|{zyzyzyzyvuvuvuvutstststspopopopoklklklkljijijijifefefefedcdcdcdc|{|{|{|{zyzyzyzyvuvuvuvutstststspopopopoklklklkljijijijifefefefedcdcbaba|{|{|{|{zyzyzyzyvuvuvuvutstststspopopopoklklklkljijihghgfefefefebabababa|{|{|{|{zyzyzyzyvuvuvuvutststsrqpopopopoklklklklhghghghgfefefefebabababa|{|{|{|{zyzyzyxwvuvuvuvurqrqrqrqpopopopoklklklklhghghghgfefefefebabababa~}|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqpopopopoklklklkkhghghghgfefefefebabababa~}~}~}~}|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqpopopopokkkklklkhghghghgfefefefebabababa~}~}~}~}|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqpopopopolklklklkhghghghgfefefefebabababa~}~}~}~}|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqpopopopolklklklkhghghghgfefefefebabababa~}~}~}~}|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqpopopopolklklklkhghghghgfefefefebabababa~}~}~}~}|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqpopopopolklklklkhghghghgfefefefebabababa~}~}~}~}|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqpopopopolklklklkhghghghgfefefefebabababa~}~}~}~}|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqpopopopolkkkkkklhghghghgfefefefebabababa~}~}~}~}|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqpopopopoklklklklhghghghgfefefefebabababa~}~}~}~}|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqpopopopoklklklklhghghghgfefefefebabababa~}~}~}~}|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqpopopopoklklklklhghghghgfefefefebabababa~}~}~}~}|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqponmnmnmklklklklhghghghgfefefefebabababa~}~}~}~}|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqnmnmnmnmklklklklhghghghgfefefefebabababa~}~}~}~}|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqnmnmnmnmklklkkkkhghghghgfefefefebabababa~}~}~}~}|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqnmnmnmnmkklklklkhghghghgfefefefebabababa~}~}~}~}|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqnmnmnmnmlklklklkhghghghgfefefefebabababababababa~}~}~}~}|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqnmnmnmnmlklklklkhghghghgfefefefebabababababababa~}~}~}~}|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqnmnmnmnmlklklklkhghghghgfefefefebabababababa`_`_~}~}~}~}|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqnmnmnmnmkkkklklkhghghghgfefedcdcbabababa`_`_`_`_~}~}~}~}|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqnmnmnmnmlklkjijihghghghgdcdcdcdcbabababa`_`_`_`_~}~}~}~}|{|{|{|{xwxwxwxwvuvuvutsrqrqrqrqnmnmnmnmjijijijihghghghgdcdcdcdcbabababa`_`_`_`_~}~}~}~}|{|{|{zyxwxwxwxwtstststsrqrqrqrqnmnmnmnmjijijijihghghghgdcdcdcdcbabababa`_`_`_`_~}~}~}~}zyzyzyzyxwxwxwxwtstststsrqrqrqrqnmnmnmnmjijijijihghghghgdcdcdcdcbabababa`_`_`_`_~}~}~}~}zyzyzyzyxwxwxwxwtstststsrqrqrqrqnmnmnmnmjijijijihghghghgdcdcdcdcbabababa`_`_`_`_~}~}~}~}zyzyzyzyxwxwxwxwtstststsrqrqrqrqnmnmnmnmjijijijihghghghgdcdcdcdcbabababa`_`_`_`_~}~}~}~}zyzyzyzyxwxwxwxwtstststsrqrqrqrqnmnmnmnmjijijijihghghghgdcdcdcdcbabababa`_`_`_`_~}~}~}~}zyzyzyzyxwxwxwxwtstststsrqrqrqrqnmnmnmnmjijijijihghghghgdcdcdcdcbabababa`_`_`_`_~}~}~}~}zyzyzyzyxwxwxwxwtstststsrqrqrqrqnmnmnmnmjijijijihghghghgdcdcdcdcbabababa`_`_`_`_~}~}~}~}zyzyzyzyxwxwxwxwtstststsrqrqrqrqnmnmnmnmjijijijihghghghgdcdcdcdcbabababa`_`_`_`_~}~}~}~}zyzyzyzyxwxwxwxwtstststsrqrqrqrqnmnmnmnmjijijijihghghghgdcdcdcdcbabababa`_`_`_`_~}~}~}~}zyzyzyzyxwxwxwxwtstststsrqrqrqrqnmnmnmnmjijijijihghghghgdcdcdcdcbabababa`_`_`_`_~}~}~}~}zyzyzyzyxwxwxwxwtstststsrqrqrqrqnmnmnmnmjijijijihghghghgdcdcdcdcbabababa`_`_`_`_~}~}~}~}zyzyzyzyxwxwxwxwtstststsrqrqrqrqnmnmnmnmjijijijihghghghgdcdcdcdcbabababa`_`_`_`_~}~}~}~}zyzyzyzyxwxwxwxwtstststsrqrqrqrqnmnmnmnmjijijijihghghghgdcdcdcdcbabababa`_`_`_`_~}~}~}~}zyzyzyzyxwxwxwxwtstststsrqrqrqrqnmnmnmnmjijijijihghghghgdcdcdcdcbabababa`_`_`_`_~}~}~}~}zyzyzyzyxwxwxwxwtstststsrqrqrqrqnmnmnmnmjijijijihghghghgdcdcdcdcbabababa`_`_`_`_~}~}~}~}zyzyzyzyxwxwxwxwtstststsrqrqrqrqnmnmnmnmjijijijihghghghgdcdcdcdcbabababa`_`_`_`_`_`_`_`_^]^]^]^]ZYZYZYZYXWXWVUVUTSTSTSTSOPOPOPOPLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:987878787434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"!    `_`_`_`_^]^]\[\[ZYZYZYZYVUVUVUVUTSTSTSTSOPOPOPOPLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:987878787434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"!    `_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTSOPOPOOOOLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:987878787434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"!    `_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTSOOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:987878787434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"!    `_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTSPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:987878787434343330/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"!    `_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTSPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:987878787333434340/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"!    `_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTSPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:987878787343434340/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"!    `_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTSPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:987878787343434340/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"!    `_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTSPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:987878765343434340/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"!    `_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTSOOOOOPOPLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:965656565343434340/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"!    `_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTSOPOPOPOPLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:965656565343434340/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"!    - `_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTSOPOPOPOPLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:965656565333333430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"!    - - - - `_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVUTSTSTSTSOPOPOPOPLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:965656565434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"!    - - - - `_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVURQRQRQRQOPOPOPOPLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:965656565434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"!    - - - - `_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVURQRQRQRQOPOPOPOPLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:965656565434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#        - - - - `_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVURQRQRQRQOPOOOOOOLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:965656565434333330/0/0/0/.-.-.-.-*)*)*)*)&%&%&%&%$#$#$#$#        - - - - `_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVURQRQRQRQPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:965656565434343430/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#        - - - - `_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVURQRQRQRQPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:965656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#        - - - - `_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVURQRQRQRQPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?>=<;<;<;:9:9:9:965656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#        - - - - `_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVURQRQRQRQPOPOPOOOLKLKLKLKJIJIJIJIFEFEFEFEDCBABABA@?@?@?@?<;<;<;<;:9:9:9:965656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#        - - - - `_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVURQRQRQRQOOPOPOPOLKLKLKLKJIHGHGHGFEFEFEFEBABABABA@?@?@?@?<;<;<;<;:9:9:9:965656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#        - - - - `_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVURQRQRQRQPONMNMNMLKLKLKLKHGHGHGHGFEFEFEFEBABABABA@?@?@?@?<;<;<;<;:9:9:9:965656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#        - - - - `_`_`_`_\[\[\[\[ZYZYXWXWVUVUVUVURQRQRQRQNMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEBABABABA@?@?@?@?<;<;<;<;:9:9:9:965656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#        - - - - `_`_^]^]\[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQNMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEBABABABA@?@?@?@?<;<;<;<;:9:9:9:965656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#        - - - - ^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQNMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEBABABABA@?@?@?@?<;<;<;<;:9:9:9:965656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#        - - - - ^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQNMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEBABABABA@?@?@?@?<;<;<;<;:9:9:9:965656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#        - - - - ^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQNMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEBABABABA@?@?@?@?<;<;<;<;:9:9:9:965656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#        - - - - ^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQNMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEBABABABA@?@?@?@?<;<;<;<;:9:9:9:965656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#        - - - - ^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQNMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEBABABABA@?@?@?@?<;<;<;<;:9:9:9:965656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#        - - - - ^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQNMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEBABABABA@?@?@?@?<;<;<;<;:9:9:9:965656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#        - - - - ^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQNMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEBABABABA@?@?@?@?<;<;<;<;:9:9:9:965656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#        - - - - ^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQNMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEBABABABA@?@?@?@?<;<;<;<;:9:9:9:965656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#        - - - - ^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQNMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEBABABABA@?@?@?@?<;<;<;<;:9:9:9:965656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#       - - - - ^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQNMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEBABABABA@?@?@?@?<;<;<;<;:9:9:9:965656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#     - - - - ^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQNMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEBABABABA@?@?@?@?<;<;<;<;:9:9:9:965656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#     - - - - ^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQNMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEBABABABA@?@?@?@?<;<;<;<;:9:9:9:965656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#     - - - - ^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQNMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEBABABABA@?@?@?@?<;<;<;<;:9:9:9:965656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%"!"!"!"!     - - - - ^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQNMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEBABABABA@?@?@?@?<;<;<;<;:9:9:9:965656565212121210/0/0/0/,+,+,+,+('('('('&%&%&%&%"!"!"!"!     - - - - ^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQNMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEBABABABA@?@?@?@?<;<;<;<;:9:9:9:96565656521212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!     - - - - ^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQNMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEBABABABA@?@?@?@?<;<;<;<;:98787876565656521212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!     - - - - ^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQNMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEBABABABA@?>=>=>=<;<;<;<;878787876565656521212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!     - - - - ^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQNMNMNMNMLKLKLKLKHGHGHGHGFEDCDCDCBABABABA>=>=>=>=<;<;<;<;878787876565656521212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!     - - - - ^]^]^]^]\[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQNMNMNMNMLKJIJIJIHGHGHGHGDCDCDCDCBABABABA>=>=>=>=<;<;<;<;878787876565656521212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!     - - - - ^]^]^]^]\[\[\[\[XWXWXWXWVUVUTSTSRQRQRQRQNMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDCBABABABA>=>=>=>=<;<;<;<;878787876543434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!     - - - - ^]^]^]^]\[\[ZYZYXWXWXWXWTSTSTSTSRQRQRQRQNMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDCBABABABA>=>=>=>=<;<;<;<;878787874333333421212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!     - - - - ^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSRQRQRQRQNMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDCBABABABA>=>=>=>=<;<;<;<;878787873434343421212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!     - - - - ^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSRQRQRQRQNMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDCBABABABA>=>=>=>=<;<;<;<;878787873434343421212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!     - - - - ^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSRQRQPOPONMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDCBABABABA>=>=>=>=<;<;<;<;878787873434343421212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!     - - - - ^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSPOPOOOOONMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDCBABABABA>=>=>=>=<;<;<;<;878787873434343421212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!     - - - - ^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSOPOPOPOPNMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDCBABABABA>=>=>=>=<;<;<;<;878787873434343421212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!     - - - - ^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSOPOPOPOPNMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDCBABABABA>=>=>=>=<;<;<;<;878787873434333321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!     - - - - ^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSOPOPOPOPNMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDCBABABABA>=>=>=>=<;<;<;<;878787873343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!     - - - - ^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSOPOPOPOPNMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDCBABABABA>=>=>=>=<;<;<;<;878787874343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!     - - - - ^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSOPOPOPOPNMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDCBABABABA>=>=>=>=<;<;<;<;878787874343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!     - - - ^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSOPOPOPOONMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDCBABABABA>=>=>=>=<;<;<;<;878787874343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!     ^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSOOOOPOPONMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDCBABABABA>=>=>=>=<;<;<;<;878787874343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!        ^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSPOPOPOPONMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDCBABABABA>=>=>=>=<;<;<;<;878787874343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!        ^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSPOPOPOPONMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDCBABABABA>=>=>=>=<;<;<;<;878787873333343421212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!    ^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSPOPOPOPONMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDCBABABABA>=>=>=>=<;<;<;<;878787873434343421212121.-.-.-.-,+,+,+,+('('('('$#$#$#$#"!"!"!"!    ^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSPOPOPOPONMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDCBABABABA>=>=>=>=<;<;<;<;878787873434343421212121.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"!    ^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSPOPOPOPONMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDCBABABABA>=>=>=>=<;<;<;<;87878787343434340/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"!    ^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSPOOOOOOPNMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDCBABABABA>=>=>=>=<;:9:9:987878787343434340/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"!    ^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSOPOPOPOPNMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDCBA@?@?@?>=>=>=>=:9:9:9:987878787343434340/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"!    ^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSOPOPOPOPNMNMNMNMJIJIJIJIHGFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:987878787343333330/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"!    ^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSOPOPOPOPNMLKLKLKJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:987878787434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"!    iijjkkllMMNNOOUU%%&&''((00//..----..//00((''&&%%||{{zzyyjjkkqqrr66778899ssrrqqpp>>??@@AAkkjjiihhGGHHIIJJ bbaa``__mmnnooppVVWWXXYY))**++,,,,++**))~~}}11223344$$##""!!xxwwvvuussttuuvv::;;<<==oonnmmllBBCCDDEEggffeeddKKLLMMNN - - ^^]]\\[[qqrrssttZZ[[\\]]--..//00((''&&%%||{{zzyy55667788 ttssrrqqwwxxyyzz>>??@@AAkkjjiihhFFGGHHII ccbbaa``OOPPQQRRZZYYXXWWuuvvwwxx^^__``aa11223344$$##""!!xxwwvvuu99::;;<<ppoonnmm{{||}}~~BBCCDDEEggffeeddJJKKLLMM - - __^^]]\\SSTTUUVVVVUUTTSSyyzz{{||bbccddee55667788 ttssrrqq==>>??@@llkkjjiiFFGGHHII ccbbaa``NNOOPPQQ[[ZZYYXXWWXXYYZZRRQQPPOO}}~~ffgghhii99::;;<<ppoonnmmAABBCCDDhhggffeeJJKKLLMM - - __^^]]\\RRSSTTUUWWVVUUTT[[\\]]^^ - -NNMMLLKKjjkkqqrr==>>??@@llkkjjiiEEFFGGHH ddccbbaaNNOOPPQQ[[ZZYYXXVVWWXXYYSSRRQQPP__``aabb JJIIHHGGssttuuvvAABBCCDDhhggffeeIIJJKKLL - - ``__^^]]RRSSTTUUWWVVUUTTZZ[[\\]] OONNMMLLccddeeffFFEEDDCCwwxxyyzzEEFFGGHH ddccbbaaMMNNOOPP\\[[ZZYYVVWWXXYYSSRRQQPP^^__``aa - - KKJJIIHHgghhiijjBBAA@@??{{||}}~~IIJJKKLL - - ``__^^]]QQRRSSTTXXWWVVUUZZ[[\\]] OONNMMLLbbccddeeGGFFEEDDkkllmmnn>>==<<;;MMNNOOPP\\[[ZZYYUUVVWWXXTTSSRRQQ^^__``aa - - KKJJIIHHffgghhiiCCBBAA@@ooppqqrr::998877~~}}QQRRSSTTXXWWVVUUYYZZ[[\\PPOONNMMbbccddeeGGFFEEDDjjkkllmm??>>==<>==<>==rrssttuu !!77665544zz{{||}}&&''(())//..--,,yyxxwwvv//001122&&%%$$##llkkjjiieeffgghhDDCCBBAAmmnnoopp<<;;::99vvwwxxyy""##$$%%33221100~~**++,,--++**))((uuttssrr33445566""!! hhggffeeiijjkkll@@??>>==qqrrsstt 88776655zz{{||}}&&''(())//..--,,..//0011''&&%%$$qqkkjjii778899::ddccbbaammnnoopp<<;;::99uuvvwwxx!!""##$$44332211~~}}||{{~~**++,,--++**))((~~}}||22334455##""!! hhggffee;;<<==>>``__^^]]qqrrsstt 88776655yyzz{{||%%&&''((00//..--zzyyxxww..//0011''&&%%$${{zzyyxx66778899ddccbbaa~~}}||{{??@@AABB\\[[ZZYYuuvvwwxx!!""##$$44332211}}~~))**++,,,,++**))vvuuttss22334455##""!! wwvvuutt::;;<<==``__^^]]zzyyxxwwCCDDEEFFXXWWVVUUyyzz{{||%%&&''((00//..----..//00((''&&%%rrqqkkjj66778899ssrrqqpp>>??@@AA\\[[ZZYYvvuuttssGGHHIIJJ TTSSRRQQ}}~~))**++,,,,++**))~~}}11223344$$##""!!iihhggff::;;<<==oonnmmllBBCCDDEEXXWWVVUUrrqqponmKKLLMMNN - - PPOONNMM--..//00((''&&%%||{{zzyy55667788 eeddccbb~~}}||>>??@@AAkkjjiihhFFGGHHII OONNMMLLlkkjjiihOOPPQQRRLLKKJJII11223344$$##""!!xxwwvvuu99::;;<<aa``__^^{{zzyyxxBBCCDDEEggffeeddJJKKLLMM - - KKJJIIHHhggffeedSSTTUUVVHHGGFFEE55667788 ttssrrqq==>>??@@]]\\[[ZZwwvvuuttFFGGHHII ccbbaa``NNOOPPQQGGFFEEDDdccbbaa`WWXXYYZZDDCCBBAA~~}}||{{99::;;<<ppoonnmmAABBCCDDYYXXWWVVssrrqqpoJJKKLLMM - - __^^]]\\RRSSTTUUCCBBAA@@`__^^]]\[[\\]]^^ - -@@??>>==zzyyxxww==>>??@@llkkjjiiEEFFGGHH UUOONNMMnmlkkjjiNNOOPPQQ[[ZZYYXXVVWWXXYY??>>==<<\[[ZZYYX__``aabb <<;;::99vvuuttssAABBCCDDhhggffeeIIJJKKLL - - LLKKJJIIihhggffeRRSSTTUUWWVVUUTTZZ[[\\]] ;;::9933XWWVVUUTccddeeff88776655rrqqkkjj~~}}||EEFFGGHH ddccbbaaMMNNOOPPHHGGFFEEeddccbbaVVWWXXYYSSRRQQPP^^__``aa - - 221100//SRQPOONNgghhiijj44332211iihhggff{{zzyyxxIIJJKKLL - - ``__^^]]QQRRSSTTDDCCBBAAa``__^^]ZZ[[\\]] OONNMMLLbbccddee..--,,++MMLLKKJJkkllmmnn00//..--eeddccbbwwvvuuttMMNNOOPP\\[[ZZYYUUVVWWXX@@??>>==]\\[[ZZY^^__``aa - - KKJJIIHHffgghhii**))((''IIHHGGFFooppqqrr,,++**))aa``__^^ssrrqqpoQQRRSSTTXXWWVVUUYYZZ[[\\<<;;::99YXXWWVVUbbccddeeGGFFEEDDjjkkllmm&&%%$$##EEDDCCBBssttuuvv !!""((''&&%%]]\\[[ZZnmlkkjjiUUVVWWXXTTSSRRQQ]]^^__`` - - 33221100UTSRQPOOffgghhiiCCBBAA@@nnooppqq""!! AA@@??>>wwxxyyzz##$$%%&&$$##""!!YYXXWWVVihhggffeYYZZ[[\\PPOONNMMaabbccdd //..--,,NNMMLLKKjjkkllmm??>>==<>==qqrrsstt >>==<<;;zz{{||}}&&''(())//..--,,..//0011 +**))(('zzyyxxww778899:: @@??>>==UTSRQPOOmmnnoopp<<;;::99uuvvwwxx!!""##$$::998765~~**++,,--++**))((~~}}||22334455'&&%%$$#vvuuttss;;<<==>> - - <<;;::99NNMMLLKKqqrrsstt 88776655yyzz{{||%%&&''((43322110..//0011''&&%%$${{zzyyxx66778899 - - #""!! rrqqppoo??@@AABB - - 33221100JJIIHHGGuuvvwwxx!!""##$$44332211}}~~))**++,, 0//..--,~~}}||22334455##""!! wwvvuutt::;;<<== nnmmllkkCCDDEEFF //..--,,FFEEDDCCyyzz{{||%%&&''((00//..----..//00 - - ,++**))({{zzyyxx66778899ssrrqqpp>>??@@AAjjiihhggGGHHIIJJ++**))((BBAA@@??}}~~))**++,,,,++**))~~}}11223344(''&&%%$wwvvuutt::;;<<==oonnmmllBBCCDDEEffeeddccKKLLMMNN''&&%%$$>>==<<;;--..//00((''&&%%||{{zzyy55667788 - -$##""!! ssrrqqpp>>??@@AAkkjjiihhFFGGHHII  bbaa``__OOPPQQRR##""!! ::998765~~}}11223344$$##""!!xxwwvvuu99::;;<<  oonnmmllBBCCDDEEggffeeddJJKKLLMM!!""##$$ - - ^^]]\\[[SSTTUUVV 43322110||{{zzyy55667788 ttssrrqq==>>??@@kkjjiihhFFGGHHII ccbbaa``NNOOPPQQ%%&&''((ZZYYXXWWWWXXYYZZ!!""##$$0//..--,xxwwvvuu99::;;<<ppoonnmmAABBCCDDggffeeddJJKKLLMM - - __^^]]\\RRSSTTUU))**++,,VVUUTTSS[[\\]]^^%%&&''((,++**))(ttssrrqq==>>??@@llkkjjiiEEFFGGHHccbbaa``NNOOPPQQ[[ZZYYXXVVWWXXYY--..//00RRQQPPOO__``aabb))**++,, (''&&%%$ppoonnmmAABBCCDDhhggffeeIIJJKKLL !!""## - -__^^]]\\RRSSTTUUWWVVUUTTZZ[[\\]]11223399 - -NNMMLLKKccddeeff--..//00 - - - -$##""!! llkkjjiiEEFFGGHH ddccbbaaMMNNOOPP$$%%&&'' [[ZZYYXXVVWWXXYYSSRRQQPP^^__``aa::;;<<== JJIIHHGGgghhiijj11223344  hhggffeeIIJJKKLL - - ``__^^]]QQRRSSTT(())**++WWVVUUTTZZ[[\\]] OONNMMLLbbccddee>>??@@AAFFEEDDCCkkllmmnn55667788ddccbbaaMMNNOOPP\\[[ZZYYUUVVWWXX,,--..//SSRRQQPP^^__``aa - - KKJJIIHHffgghhiiBBCCDDEEBBAA@@??ooppqqrr99::;;<<``__^^]]QQRRSSTTXXWWVVUUYYZZ[[\\00112233 OONNMMLLbbccddeeGGFFEEDDjjkkllmmFFGGHHII>>==<<;;ssttuuvv==>>??@@\\[[ZZYYUUVVWWXXTTSSRRQQ]]^^__``99::;;<< - - KKJJIIHHffgghhiiCCBBAA@@nnooppqqJJKKLLMM::998877wwxxyyzzAABBCCDD !!""## - -XXWWVVUUYYZZ[[\\PPOONNMMaabbccdd==>>??@@GGFFEEDDjjkkllmm??>>==<>==<>==qqrrssttMMNNOOUU !!77665544zz{{||}}&&''(())//..--,,ccddeeff//001122&&%%$$##zzyyxxwwvvuuttssUUVVWWXX99::;;<<DDCCBBAAmmnnoopp<<;;::99uuvvwwxxVVWWXXYY""##$$%%33221100~~**++,,--++**))((~~}}||gghhiijj33445566""!! vvuuttssrrqqppooYYZZ[[\\==>>??@@@@??>>==qqrrsstt 88776655yyzz{{||ZZ[[\\]]&&''(())//..--,,..//0011''&&%%$${{zzyyxxkkqqrrss778899::rrqqppoonnmmllkk]]^^__``AABBCCDD<<;;::99uuvvwwxx!!""##$$44332211}}~~^^__``aa**++,,--++**))((~~}}||22334455##""!! wwvvuuttttuuvvww;;<<==>>nnmmllkkjjiihhggaabbccddEEFFGGHH 88776655yyzz{{||%%&&''((00//..--bbccddee..//0011''&&%%$${{zzyyxx66778899ssrrqqppxxyyzz{{??@@AABBjjiihhggffeeddcceeffgghhIIJJKKLL!!""##$$44332211}}~~))**++,,,,++**))~~}}ffgghhii22334455##""!! wwvvuutt::;;<<==oonnmmll||}}~~CCDDEEFFffeeddccbbaa``__^^]]\\[[SSTTUUVVBBAA@@??_^^]]\\[\\]]^^__ - - MMLLKKJJddeeffgg,,++**))KKJJIIHHmmnnoopp<<;;::99uuvvwwxx!!""##$$::998765~~**++,,--++**))((rrqqkkjjssrrqqppZZYYXXWWWWXXYYZZ>>==<<;;[ZZYYXXW``aabbcc IIHHGGFFhhiijjkk((''&&%%GGFFEEDDqqrrsstt 88776655yyzz{{||%%&&''((43322110..//0011''&&%%$$iihhggffoonnmmllVVUUTTSS[[\\]]^^ - -::993322WVVUUTSRddeeffggEEDDCCBBllmmnnoo$$##""!!CCBBAA@@uuvvwwxx!!""##$$44332211}}~~))**++,, 0//..--,~~}}||22334455##""!! eeddccbbkkjjiihhRRQQPPOO__``aabb 1100//..QPOONNMMhhiijjkkAA@@??>>ppqqrrss ??>>==<>??@@AAYYXXWWVV__^^]]\\FFEEDDCCkkllmmnn%%$$##""DDCCBBAAttuuvvww !!""##55443322||}}~~(())**++ 100//..-~~}}11223344$$##""!!xxwwvvuu99::;;<<  oonnmmllBBCCDDEEUUOONNMM[[ZZYYXXBBAA@@??ooppqqrr!! @@??>>==xxyyzz{{$$%%&&''1100//..,,--..// - - -,,++**)||{{zzyy55667788 ttssrrqq==>>??@@kkjjiihhFFGGHHII LLKKJJIIWWVVUUTT>>==<<;;ssttuuvv !!""<<;;::99||}}~~(())**++--,,++**~~00112233)((''&&%xxwwvvuu99::;;<<ppoonnmmAABBCCDDggffeeddJJKKLLMM - - HHGGFFEESSRRQQPP::998877wwxxyyzz##$$%%&&87654332,,--..//))((''&&}}||{{zz44556677 %$$##""!ttssrrqq==>>??@@llkkjjiiEEFFGGHHccbbaa``NNOOPPQQDDCCBBAAOONNMMLL66554433{{||}}~~''(())** 21100//.~~00112233%%$$##""yyxxwwvv8899::;; - - ! ppoonnmmAABBCCDDhhggffeeIIJJKKLL !!""## - -__^^]]\\RRSSTTUU@@??>>==KKJJIIHH221100//++,,--.. - - .--,,++*}}||{{zz44556677!! uuttssrr<<==>>??llkkjjiiEEFFGGHH ddccbbaaMMNNOOPP$$%%&&'' [[ZZYYXXVVWWXXYY<<;;::99GGFFEEDD..--,,++//001122*))((''&yyxxwwvv8899::;;qqppoonn@@AABBCChhggffeeIIJJKKLL - - ``__^^]]QQRRSSTT(())**++WWVVUUTTZZ[[\\]] 33221100CCBBAA@@**))((''~~}}||{{33445566&%%$$##"uuttssrr<<==>>??mmllkkjjDDEEFFGGddccbbaaMMNNOOPP\\[[ZZYYUUVVWWXX,,--..//SSRRQQPP^^__``aa - - //..--,,??>>==<<&&%%$$##zzyyxxww778899:: - - "!! qqppoonn@@AABBCCiihhggffHHIIJJKK !!"" ``__^^]]QQRRSSTTXXWWVVUUYYZZ[[\\00112233 OONNMMLLbbccddee++**))((;;::9988""!! vvuuttss;;<<==>> mmllkkjjDDEEFFGGeeddccbbLLMMNNOO##$$%%&& - - \\[[ZZYYUUVVWWXXTTSSRRQQ]]^^__``99::;;<< - - KKJJIIHHffgghhii''&&%%$$77665544rrqqppoo??@@AABBiihhggffHHIIJJKK - -aa``__^^PPQQRRSS''(())**XXWWVVUUYYZZ[[\\PPOONNMMaabbccdd==>>??@@GGFFEEDDjjkkllmm##""!! 33221100nnmmllkkCCDDEEFFeeddccbbLLMMNNOO ]]\\[[ZZTTUUVVWW++,,--..TTSSRRQQ]]^^__`` - - LLKKJJIIeeffgghhAABBCCDDCCBBAA@@nnooppqq//..--,,jjiihhggGGHHIIJJ !! aa``__^^PPQQRRSSYYXXWWVVXXYYZZ[[//001122PPOONNMMaabbccdd HHGGFFEEiijjkkllEEFFGGHH??>>==<>?? HHGGFFEEiijjkkll@@??>>==qqrrssttMMNNOOUU !!77665544zz{{||}}&&''(()) ##""!! - - ^^]]\\[[SSTTUUVV**++,,--UUTTSSRR\\]]^^__ - - MMLLKKJJddeeffgg@@AABBCCDDCCBBAAmmnnoopp<<;;::99uuvvwwxxVVWWXXYY""##$$%%33221100~~**++,,-- - - - -ZZYYXXWWWWXXYYZZ..//0011QQPPOONN``aabbcc IIHHGGFFhhiijjkkDDEEFFGG@@??>>==qqrrsstt 88776655yyzz{{||ZZ[[\\]]&&''(())//..--,,..//0011 VVUUTTSS[[\\]]^^223399:: - - MMLLKKJJddeeffggEEDDCCBBllmmnnooHHIIJJKK<<;;::99uuvvwwxx!!""##$$44332211}}~~^^__``aa**++,,--++**))((~~}}||22334455RRQQPPOO__``aabb;;<<==>> IIHHGGFFhhiijjkkAA@@??>>ppqqrrssLLMMNNOO 88776655yyzz{{||%%&&''((00//..--bbccddee..//0011''&&%%$${{zzyyxx66778899 - -NNMMLLKKccddeeff??@@AABBEEDDCCBBllmmnnoo==<<;;::ttuuvvwwUUVVWWXX!!""##$$44332211}}~~))**++,,,,++**))~~}}ffgghhii22334455##""!! wwvvuutt::;;<<== JJIIHHGGgghhiijjCCDDEEFFAA@@??>>ppqqrrss99887766xxyyzz{{YYZZ[[\\%%&&''((00//..----..//00((''&&%%||{{zzyyjjkkqqrr66778899ssrrqqpp>>??@@AA !!""## - - FFEEDDCCkkllmmnnGGHHIIJJ==<<;;::ttuuvvww !!""##55443322||}}~~]]^^__``))**++,,,,++**))~~}}11223344$$##""!!xxwwvvuussttuuvv::;;<<==oonnmmllBBCCDDEE$$%%&&'' - - BBAA@@??ooppqqrrKKLLMMNN99887766xxyyzz{{$$%%&&''1100//..aabbccdd--..//00((''&&%%||{{zzyy55667788 ttssrrqqwwxxyyzz>>??@@AAkkjjiihhFFGGHHII(())**++>>==<<;;ssttuuvvOOUUVVWW !!""##55443322||}}~~(())**++--,,++**~~eeffgghh11223344$$##""!!xxwwvvuu99::;;<<ppoonnmm{{||}}~~BBCCDDEEggffeeddJJKKLLMM,,--..//::998877wwxxyyzzXXYYZZ[[$$%%&&''1100//..,,--..//))((''&&}}||{{zziijjkkqq55667788 ttssrrqq==>>??@@llkkjjiiFFGGHHII ccbbaa``NNOOPPQQ00112233 !!""66554433{{||}}~~\\]]^^__(())**++--,,++**~~00112233%%$$##""yyxxwwvvrrssttuu99::;;<<ppoonnmmAABBCCDDhhggffeeJJKKLLMM - - __^^]]\\RRSSTTUU99::;;<<##$$%%&&221100//``aabbcc,,--..//))((''&&}}||{{zz44556677!! uuttssrrvvwwxxyy==>>??@@llkkjjiiEEFFGGHH ddccbbaaNNOOPPQQ[[ZZYYXXVVWWXXYY==>>??@@ !!''(())**..--,,++ddeeffgg00112233%%$$##""yyxxwwvv8899::;;qqppoonnzz{{||}}AABBCCDDhhggffeeIIJJKKLL - - ``__^^]]RRSSTTUUWWVVUUTTZZ[[\\]]AABBCCDD""##$$%%++,,--..**))((''~~}}||{{hhiijjkk44556677!! uuttssrr<<==>>??mmllkkjj~~EEFFGGHH ddccbbaaMMNNOOPP\\[[ZZYYVVWWXXYYSSRRQQPP^^__``aaEEFFGGHH&&''(())//001122&&%%$$##zzyyxxwwqqrrsstt8899::;;qqppoonn@@AABBCCiihhggffIIJJKKLL - - ``__^^]]QQRRSSTTXXWWVVUUZZ[[\\]] OONNMMLLbbccddeeIIJJKKLL**++,,--33445566""!! vvuuttssuuvvwwxx<<==>>??mmllkkjjDDEEFFGGeeddccbbMMNNOOPP\\[[ZZYYUUVVWWXXTTSSRRQQ^^__``aa - - KKJJIIHHffgghhiiMMNNOOUU..//0011778899::rrqqppooyyzz{{||@@AABBCCiihhggffHHIIJJKK - -aa``__^^QQRRSSTTXXWWVVUUYYZZ[[\\PPOONNMMbbccddeeGGFFEEDDjjkkllmmVVWWXXYY22334455;;<<==>>nnmmllkk}}~~DDEEFFGGeeddccbbLLMMNNOO ]]\\[[ZZUUVVWWXXTTSSRRQQ]]^^__`` - - LLKKJJIIffgghhiiCCBBAA@@nnooppqqZZ[[\\]]66778899??@@AABBjjiihhggHHIIJJKK - -aa``__^^PPQQRRSSYYXXWWVVYYZZ[[\\PPOONNMMaabbccdd HHGGFFEEjjkkllmm??>>==<>??@@AAGGHHIIJJ bbaa``__PPQQRRSSYYXXWWVVXXYYZZ[[QQPPOONNaabbccdd HHGGFFEEiijjkkll@@??>>==rrssttuu !!77665544zz{{||}}ffgghhiiBBCCDDEEKKLLMMNN - - ^^]]\\[[TTUUVVWWUUTTSSRR\\]]^^__ - - MMLLKKJJeeffgghhDDCCBBAAmmnnoopp<<;;::99vvwwxxyy""##$$%%33221100~~jjkkqqrrFFGGHHIIOOPPQQRRZZYYXXWWXXYYZZ[[QQPPOONN``aabbcc IIHHGGFFiijjkkll@@??>>==qqrrsstt 88776655zz{{||}}&&''(())//..--,,ssttuuvvJJKKLLMMSSTTUUVVVVUUTTSS\\]]^^__ - - MMLLKKJJddeeffggEEDDCCBBmmnnoopp<<;;::99uuvvwwxx!!""##$$44332211~~}}||{{~~**++,,--++**))((~~}}||wwxxyyzzNNOOPPQQWWXXYYZZRRQQPPOO``aabbcc IIHHGGFFhhiijjkkAA@@??>>qqrrsstt 88776655yyzz{{||%%&&''((00//..--zzyyxxww..//0011''&&%%$${{zzyyxx{{||}}~~RRSSTTUU[[\\]]^^ - -NNMMLLKKddeeffggEEDDCCBBllmmnnoo==<<;;::uuvvwwxx!!""##$$44332211}}~~))**++,,,,++**))vvuuttss22334455##""!! wwvvuuttVVWWXXYY__``aabb JJIIHHGGhhiijjkkAA@@??>>ppqqrrss99887766yyzz{{||%%&&''((00//..----..//00((''&&%%rrqqkkjj66778899ssrrqqppZZ[[\\]]ccddeeffFFEEDDCCllmmnnoo==<<;;::ttuuvvww !!""##55443322~~}}||}}~~))**++,,,,++**))~~}}11223344$$##""!!iihhggff::;;<<==oonnmmll^^__``aagghhiijjBBAA@@??ppqqrrss99887766xxyyzz{{$$%%&&''1100//..{{zzyyxx--..//00((''&&%%||{{zzyy55667788 eeddccbb~~}}||>>??@@AAkkjjiihhbbccddeekkllmmnn>>==<<;;ttuuvvww !!""##55443322||}}~~(())**++--,,++**wwvvuutt11223344$$##""!!xxwwvvuu99::;;<<aa``__^^{{zzyyxxBBCCDDEEggffeeddffgghhiiooppqqrr::998877xxyyzz{{$$%%&&''1100//..,,--..//))((''&&ssrrqqkk55667788 ttssrrqq==>>??@@]]\\[[ZZwwvvuuttFFGGHHII ccbbaa``jjkkllmmssttuuvv !!""66554433~~}}||}}~~(())**++--,,++**~~00112233%%$$##""jjiihhgg99::;;<<ppoonnmmAABBCCDDYYXXWWVVssrrqqpoJJKKLLMM - - __^^]]\\nnooppqqwwxxyyzz##$$%%&&221100//||{{zzyy,,--..//))((''&&}}||{{zz44556677!! ffeeddcc~~}}==>>??@@llkkjjiiEEFFGGHH UUOONNMMnmlkkjjiNNOOPPQQ[[ZZYYXXrrssttuu{{||}}~~''(())**..--,,++xxwwvvuu00112233%%$$##""yyxxwwvv8899::;;bbaa``__||{{zzyyAABBCCDDhhggffeeIIJJKKLL - - LLKKJJIIihhggffeRRSSTTUUWWVVUUTTvvwwxxyy++,,--..**))((''ttssrrqq44556677!! uuttssrr<<==>>??^^]]\\[[xxwwvvuuEEFFGGHH ddccbbaaMMNNOOPPHHGGFFEEeddccbbaVVWWXXYYSSRRQQPPzz{{||}}//001122&&%%$$##kkjjiihh8899::;;qqppoonn@@AABBCCZZYYXXWWttssrrqqIIJJKKLL - - ``__^^]]QQRRSSTTDDCCBBAAa``__^^]ZZ[[\\]] OONNMMLL~~33445566""!! ggffeedd~~<<==>>??mmllkkjjDDEEFFGGVVUUOONNponmlkkjMMNNOOPP\\[[ZZYYUUVVWWXX@@??>>==]\\[[ZZY^^__``aa - - KKJJIIHH778899::ccbbaa``}}||{{zz@@AABBCCiihhggffHHIIJJKK - -MMLLKKJJjiihhggfQQRRSSTTXXWWVVUUYYZZ[[\\<<;;::99YXXWWVVUbbccddeeGGFFEEDD;;<<==>>__^^]]\\yyxxwwvvDDEEFFGGeeddccbbLLMMNNOO IIHHGGFFfeeddccbUUVVWWXXTTSSRRQQ]]^^__`` - - 33221100UTSRQPOOffgghhiiCCBBAA@@??@@AABB[[ZZYYXXuuttssrrHHIIJJKK - -aa``__^^PPQQRRSSEEDDCCBBbaa``__^YYZZ[[\\PPOONNMMaabbccdd //..--,,NNMMLLKKjjkkllmm??>>==<>^]]\\[[Z]]^^__`` - - LLKKJJIIeeffgghh++**))((JJIIHHGGnnooppqq;;::9988GGHHIIJJ NNMMLLKKkjjiihhgPPQQRRSSYYXXWWVVXXYYZZ[[==<<;;::ZYYXXWWVaabbccdd HHGGFFEEiijjkkll''&&%%$$FFEEDDCCrrssttuu !!77665544~~}}||{{~~}}||KKLLMMNN - - JJIIHHGGgffeeddcTTUUVVWWUUTTSSRR\\]]^^__ - - 99332211VUUTSRQPeeffgghhDDCCBBAAmmnnoopp##""!! BBAA@@??vvwwxxyy""##$$%%33221100zzyyxxww{{zzyyxxOOPPQQRRFFEEDDCCcbbaa``_XXYYZZ[[QQPPOONN``aabbcc 00//..--OONNMMLLiijjkkll@@??>>==qqrrsstt >>==<<;;zz{{||}}&&''(())//..--,,vvuuttsswwvvuuttfpvp˂rH~tlJnXv`bdQZ|`vXn|ZdQbfpvJltH~fZdQtArbHAZpdrtAJHAbےlJtAJ`ےdQZ|˂pZZdQbtZp˂XnvJXQrvnXnXv`XQJ`ےvpfHtArdf~HdrtAvpftlJnXv`bdQZ|`vXnd|Z˂rXQltb`JXQrrd|bHAZpdrtAJHAbےlJtArXQJ`pfH~˂pZHAv`ff~HbHAZ~f`|ZdQbfpvJltH~ftArdf~HdrtAvpfdQbtJ`ےdQZ|˂pZZdQbt˂rXQltb`JXQrrd|p˂rf`vے`J~Hfpfpvp˂rvXntlJnXv`bdQZ|`vXn|ZdQbfpvJltH~flJtArbHAZpdrtAJHAbےlJtAJ`ےdQZ|˂pZZdQbtXQJ`ےXnvXQrbtvnXnXv`XQJ`ےvpfHtArdf~HdrtAvpftlJnXv`bdQZ|`vXnd|Z˂rXQltb`JXQrrd|bHAZpdtAJlHAbےlJfbHAZpfH~lJtAv`ff~HbHAZ~f`|ZdQbfpvJltH~ftArdf~HdrtAvpfdQbtJ`ےdQZ|˂pZZdQbt˂rXQtbn`JXQrpvp˂rf`vd|Z~Hfpfpvp˂rvXH~tlJnXv`bdQZ|`vXn|ZdQbfpvJltH~fl|ZdQbHAZpdtAJlHAbےlJfJ`ےvpf˂pZ~HfpXQJ`ےXnvdQbtvnXnXv`XQJ`ےf`vtArdf~HdrtAvpftlJnXv`bdQZ|`vXnbtl˂rXQtbn`JXQrpvnbHAZpHf`HAbےvnXbHAXQpfH~lJtArv`ff~HbHAZXnv|ZdQbfpvJltH~ftArdfHfdrtAvpfJtArdJ`ےvpf˂pZXv`f˂rXQvXn`JXQrv`fJ`ےJf`vd|Z~Hfpfpvp˂rpfH~tlJnXv`bdQZ|`vXn|ZdQbpvnJltے`JXQ|ZdQbHAZpHf`HAbے~HfJ`ےvpfH˂pZ~HfpltbQXnvdQbtvnXnXv`XQJ`ےf`vtArdfHfdrtAvpftlJrXQJ`bdQZ|HAbےbtl˂rXQvXn`JXQrpvnbHAZp~f`HAbےvnXZdrtpfH~lJtArv`ff~HbHAZXnv|ZdQbpvnJltے`JXQtArdےHAZdrtA`JXQrJtArdJ`ےvpfH˂pZXv`f˂rXQvXn`JXQrv`pvAJltf`vd|Z~Hfpfpvp˂rp`vXtlJrXQJ`bdQZ|r˂p|ZdQbp˂rJlt˂pZtlJbHAZp~f`HAbے~HfJ`ےvpfH˂pZnXvbdQZ|XnvdQbtvnXnXv`XQJ`ےnvptArdےHAZdrtAZHAbtlJXQJ`ےbdQZ|HAbےfpv˂rXQvXn`JXQrpvnbHAZp~f`HAbے`f~drtpfH~lJtArv`ff~HbHAZfH~|ZdQbp˂rJltے`JXQtArdbHAZdrtA`JXQrnvfJ`ےvpfH˂pZXv`f˂rXQvXn`JXQrHfpvAJltf`vd|Z~Hfpfpvp˂rf`vXtlJXQJ`ےbdQZ|r˂p|ZdQbp˂rJlt˂p`~HfpbHAZp~f`HAbے~HfJ`ےvpfH˂pZnXvbdQZ|XnvdQbtvnXnXv`XQJ`ےnvptArdbHAZdrtAZHAbtlJXQJ`ےbdQZ|JXQrvnX˂rXQvXn`JXQrpvnbHAZp~f`HAbے`f~rAJlpfH~lJtArv`ff~HJltfH~|ZdQbp˂rJltے`JXQtArdbHAZdrtA˂pZHAv`fJ`ےvpfH˂pZXv`f˂rXQvXn`JXQrHXv`tbdQf`vd|Z~HfpfpvdrtAJvpftlJXQJ`ےbdQZ|r˂p|ZdQbp˂rJltbے`~HfpbHAZp~f`HAbے~HfJ`ےvpfH˂pZf~HZ|dXnvdQbtvnXnXv`ltbے`JXQtArdbHAZdrtAZHAbtlJXQJ`ےbdQZ|JXQrvnX˂rXQvXn`JXQrpvnbHAZp~f`HAbےfpvrtAJlpfH~lJtArv`ff~HdQZ|rZHA|ZdQbp˂rJltے`JXQtArdbHAZdrtA˂pZHAv`f~fJ`ےvpfH˂pZXv`f˂rXQvXn`JXQrnXv`tbdQf`vd|Z~HfpfpvdrtAJbے`tlJXQJ`ےbdQZ|r˂p|ZdQbp˂rJltb˂pvnbHAZp~f`HAbے~HfJ`ےvpfH˂pZf~HZ|dXnvdQbtvnXnXv`ltbJXQrtArdbHAZdrtAZHAbtlJXQJ`ےbdQZ|pZHAbXv`f˂rXQvXn`JXQrpvnbHAZp~f`HAbےfpvrtAJpfH~lJtArv`ff~HdQZ|lpZHA|ZdQbp˂rJltے`JXQtArdbHAZdrtAے`J~HfJ`ےvpfH˂pZXv`f˂rXQvXn`JXQr~HfbdQZ|f`vd|ZHfpvfpvtbdQbے`tlJXQJ`ےbdQZ|r˂p|ZdQbp˂rJltXQr˂pvnbHAZp~f`HAbے~HfJ`ےvpfH˂pZpvndrtAXnvdQbt璀nrXQnXv`Z|dJXQrtArdbHAZdrtAZHAbtlJXQJ`ےbdQZ|pZHAbXv`f˂rXQvXn`JXQrpvnbHAZp~f`HAے`Xv`fJltpfے`lJtArJ`ےf~HrtAJlpZAb|ZdQbp˂rJltے`JXQtArdbHAZdrtAے`J~HfJ`ےvpfH˂pZXv`f˂rXQvXnJXQrb~HfbdQZ|JXQrd|ZHAZp˂fpvtbdQ`JXQrtlJXQJ`ےbdQZ|r˂p|ZdQbp˂rJltXQHAbvnXv`bHAZp~f`HAے`~HfJ`ےJvpfHtlJpvndrtA˂pZHAdQbt璀rXQJnXv`Z|d˂pZtArdbHAZdrtAZHAbtlJXQJ`ےbdQZ|ے`JXQf~H˂rXQvXnJXQrbpvnltb~f`tAd|Xv`pJltbbے`lJtAr`ےbf~HrtAdQZHAbے|ZdQbp˂rJltے`JXQtArdbHAZdtAJr˂pfpvJ`ےJvpfHtlJXv`fdQZ|vXnZdQbtvnXQZdrJXQrd|ZHAZp˂fpv|dr`JXQrtlJXQJ`ےbdQZ|r˂p|ZdQbp˂rltbZHAbnXv`ltb~f`tAd|~HfdrtAJvpfHlJtAv`ftAJl˂pZHAdQbt璀rXQJnXv`tAJl璀˂pZtArdbHAZdtAJZHAbtlJXQJ`ےnvpے`JXQf~HdQZ|vXnZdQbtpvnltb~f`rd|~HfptbdQZbے`lJtAr`ےbf~HtbdQZHAb|ZdQbp˂rltbے`JXQfpvbHAZfHfr˂pfpvdrtAJvpfHlJtAXv`fdQZ|vXnZdQbtvnX|drJXQrd|ZHAZp˂fpv|drJQr˂ptlJXQJ`ےnvpr˂pnXv`p˂r`vXn`JXQrnvfltb~f`rd|~HfdrtAJvpfHlJtAv`ftAJl˂pZHAdQbt璀rXQJnXv`tAJl璑ZHAbfpvbHAZfHfZHAbf~HXQJ`ےvpf˂pZ~HfpdQZ|vXnZdQbtpvnltb~f`rd|~HXvtbdQZbے`lJtAr`ےbf~HtdrtAے`JXnXv`p˂r`vXnے`JXQfpvbHAZH~fHAbےvnXdrtAJvpfHlJtAXv`fdQZ|vXnZdQbt`f~|rAJlJXQrd|ZHAZp˂fpvJltQr˂pf~HXQJ`ےvpfr˂pnXv`p˂r`vXn`JXQrv`fltb~f`rd|~HfdrtAJvpfHlJtAHfpvtbd˂pZHAdQbt璀rXQJnXv`bdQZ|ZHAbfpvbHAZH~fZHAbf~HXQJ`ےvpf˂pZ~HfpdQZ|vXnZdQbtpvnltb~f`rd|nXvQZ|dbے`lJtAr`ےbf~HdrtAے`JXnXv`p˂r`vXnے`JXQfpvbHAZH~fHAbvnXdrtAJvpfHlJtAXv`fdQZ|vXnZdQbt`pvrtAJlJXQrd|ZHAZp˂fpvJltQrZHAf~HXQJ`ےvpfr˂pnXv`p˂r`vXn˂pZHAv`f~ltb~f`rd|~HfdrtAJvpfHlJtAnrXQJtbd˂pZHAdQbt璀rXQJnXv`bdQZ|bے`fpvbHAZH~fZHAbf~HXQJ`ےvpfbے`fpvdQZ|vXnZdQbtpvnltb~f`rd|`p˂QZ|dbے`lJtAr`ےbp˂rltbJXQrnXv`p˂r`vXnے`JXQfpvbHAZH~fJXQrnXv`drtAJvpfHlJtAXv`fdQZ|vXnZdQbtrXQJ`rtAJJXQrd|ZHAZp˂XQJ`ےdQZ|˂pZHAf~HXQJ`ےvpfr˂pnXv`p˂r`vXn˂p`Jf~Hltb~f`rd|~HfdrtAJvpfHlJtAےbHAbdQZ|˂pZHAdQbt璀rXQJbHAZdrtAJbے`fpvbHAZH~fZHAbf~HXQJ`ےvpfXQrbtfpvdQZ|vXnZdQbtpvnltb~f`rd|Zp˂drtAbے`lJtAr`ےbHAZp˂p˂rltbJXQrnXv`p˂r`vXnے`JXQfpvbHAZH~fl|ZnXv`drtAJvpfHlJtAXv`fdQZ|vXnZdQbtbHAZJltJXQrd|ZHAZp˂rXQJXQJ`ےdQZ|˂pZAbf~HXQJ`ےvpfr˂pnXv`p˂r`vXndQbtf~Hfltb~f`rd|~HfdrtAJvpfHlJtAp˂rbdQZ|˂pZHAdQbt璀rXQJ`ےJlbHAZdrtAdQ`JXQfpvbHAZH~fZHAbf~HXQJ`ےvpflJtArvnXvdQZ|vXnZdQbtpvnltb~f`rd|XQJ`ےAJlbے`lJfp`ےbtbdQp˂rZ|dr˂pnXv`p˂r`vXnے`JXQfpvbHAZH~fd|Z`f~drtAJvpfHlJtAXv`fdQZ|vXnZdQbtbHAZtbnJXQrvnXHAZp˂Z|dXQJ`ےrtAJlZHAbf~HXQJ`ےvpfr˂pnXv`p˂r`vXndQtArdHfpvltb~f`rd|HfpdrtAJvpfےlJtAp˂rvpfH˂pZHAv`frXQJrtAJlbHAZtbdQ`JXQfpvbHAZH~fZHAbf~HXQJ`ےvpf|ZdQnXvdQZ|vXnZdQbtvnrltb`JXQrrd|XQJ`pf`vbے`~Hfp`ےbtbdQp˂rZ|`vr˂pnXv`p˂r`vXnے`JXQfpvbHAZH~fbtl`ffpdrtAJvpfےlJtAXQJ`ےdQZ|˂pZZdQbt˂rXQXnvJXQrvnXHAZp˂Z|dXQJ`ےXnvZHAbf~HXQJ`ےvpfr˂pnXv`p˂r`vXnJtArdvnrltb`JXQrrd|HAZpdrtAJHAbےlJtAJ`ےpfH~˂pZHAv`frXQJrtAJlbHAZpfH~JQr˂fpvbHAZH~fZHAےf~HXQJ`ےvpf|ZdQXQJ`ےdQZ|˂pZZdQbt˂rXQltb`JXQrrd|bHAZpf`vbے`~Hfp`ےbtbdQp˂rf`vpZHAbnXv`p˂r`vXn`JXQrfpvJltH~fbtlHAZpdrtAJHAbےlJtAJ`ےdQZ|˂pZZdQbt˂rXQXnvJXQrvnXHAZp˂Z|dXQJ`ےXH~ے`Jf~HXQJ`ےvpfbtlnXv`bdQZ|`vXn|ZdQb˂rXQltb`JXQrrd|bHAZpdrtAJHAbےlJtAJ`ےpfH~˂pZHAv`frXQJrtAJlbHAZf`vXXQr˂fpvJltH~fJtAdf~HdrtAvpftlJJ`ےdQZ|˂pZZdQbt˂rXQltb`JXQrrd|bHAXQJf`vbے`~Hfp`ےbtbdQp˂rnvppZHAbnXv`bdQZ|`vXn|ZdQbfpvJltH~ftArdbHAZpdrtAJHAbےlJtAJ`ےdQZ|˂pZZdQbt`ےbXnvJXQrvnXHAZp˂Z|dXQJ`ےfH~JAdf~HdrtAvpftlJnXv`bdQZ|`vXn|ZdQb˂rXQltb`JXQrrd|bHAZpdrtAJHAbےlJtAHAZp˂pfH~˂pZHAv`frXQJrtAJlbHAZf`vX|ZdQbfpvJltH~ftArdf~HdrtAvpftlJJ`ےdQZ|˂pZZdQbt˂rXQltb`JXQrrd|rXQJf`vbے`~Hfp`ےbtbdQp˂rnvptlJnXv`bdQZ|`vXn|ZdQbfpvJltH~ftArdtbHAZpdrtAJHAbےlJtAJ`ےdQZ|˂pZZdQbt`ےbXnvJXQrvnXHAZp˂Z|dXQJ`ے`vXntArdf~HdrtAvpftlJnXv`bdQZ|`vXnlJtA˂rXQltb`JXQrrd|bHAZpdrtAJHAbےlJtAHAZp˂pfH~˂pZHAv`frXQJrtAJlbHAZvpf|ZdQbfpvJltH~ftArdf~HdrtAvpfrd|J`ےdQZ|˂pZZdQbt˂rXQltb`JXQrrd|bHAf`vbے`~Hfp`ےbtbdQp˂rH~ftlJnXv`bdQZ|`vXn|ZdQbfpvJltH~fZdQbtbHAZpdrtAJHAbےlJtAJ`ےdQZ|˂pZZdQbtZp˂XnvJXQrvnXHAZp˂Z|dXQJ`ے`vXntArdf~HdrtAvpftlJnXv`bdQZ|`vXnlJtA˂rXQltb`JXQrrd|bHAZpdrtAJHAbےlJtArXQJ`pfH~˂pZHAv`frXQJrtAJlbHAZvpf|ZdQbfpvJltH~ftArdf~HdrtAvpfrd|J`ےdQZ|˂pZZdQbt˂rXQltb`JXQrrd|ےbHAf`vbے`~Hfp`ےbtbdQZ|dXnvdQbt璀nrXQrtAJl˂pZHnXvZp˂f`vXے`JHfpvےbHAfH~ZHAbpvndrtAvpftlJnXv`bdQZ|`vXn|ZdQbv`fZ|rA`JXQrrd|bHAZpdrtAJb˂H~ㅐfrtAJlpfے`lJtArJ`ےtbdQAbے``f~rXQJ`nvpXQr˂nXvZp˂f`vXے`JXQXv`fJltH~ftArdf~HdrtAvpftlJ~HfpJlt˂pZZdQbt˂rXQltbpZHAb`vXntbdQJXQrd|ZHAZp˂Z|l璁JXQrHfpvےbHAfH~pZHAb`f~rXQJ`nvpr˂p~HfbdQZ|`vXn|ZdQbfpvJltH~ftArdvnXbdQZ|HAbےlJtAJ`ےdQZ|ے`JvˍpfZ|d˂pZHAdQbt璀rXQJtbdQZZHAbnXvZp˂f`vXے`JHfpvےbHAfH~ZHAbpvndrtAvpftlJnXv`bdQZ|`vXn|ZdQbv`pvdrtA`JXQrrd|bHAZpdrtAJXQr˂H~ㅐfrtAJlbے`lJtAr`ےb|drے`JXQ`f~rXQJ`nvpXQr˂nXvZp˂f`vX˂pZXv`fJltH~ftArdf~HdrtAvpftlJnrXQJlt˂pZZdQbt˂rXQltbpZHAb`vXntbdQJXQrd|ZHAZp˂tAJlr˂pHfpvےbHAfH~pZHAb`f~rXQJ`nvpHAbے~fpvbdQZ|`vXn|ZdQbfpvJltH~ftArdJ`p˂bdQZ|HAbےlJtAJ`ےdQZ|ے`JvˍpfZ|d˂pZHAdQbt璀rXQJtbdQZZHAbnXvZp˂f`vXے`JHfpvےbHAfH~`JXQrnXv`drtAvpftlJnXv`bdQZ|`vXn|ZdQbrXQJdrtAJ`JXQrrd|bHAZpdrtAJXQHAbH~ㅐfrtAJlbے`lJtAr`ےb|drے`JXQ`f~rXQJ`nvpXQr˂nXvZp˂f`vX˂p`f~HJltH~ftArdf~HdrtAvpftlJ`ےbbdQZ˂pZZdQbt˂rXQltbے`JXQ`vXntbdQJXQrd|ZHAZp˂tAdQZ|r˂pHfpvےbHAfH~pZHAb`f~rXQJ`nvpJXQrbfpvbdQZ|`vXn|ZdQbfpvJltH~ftArdHAZp˂|drHAbےlJtAJ`ےdQZ|r˂pvˍpfZ|d˂pZHAdQbt璀rXQJdrtAZAb`nXvZp˂f`vXے`JHfpvےbHAfH~tl|nXv`drtAvpftlJnXv`bdQZ|`vXn|ZdQbbHAtAJl`JXQrrd|bHAZpdtAJlZHAbH~ㅐfrtAJlbے`lJtAr`ےbJltJXQr`f~rXQJ`nvpXQr˂nXvZp˂f`vXZdQbtf~HJltH~ftArdf~HdrtAvpftlJZp˂tbdQZ˂pZZdQbt˂rXQtbnے`JXQ`vXntbdQJXQrd|ZHAZp˂bdQZ|pZHAHfpvےbHAfH~pZHAb`f~rXQJ`nvplJtAfvnXbdQZ|`vXn|ZdQbfpvJltH~ftArdrXQJ`|AJlHAbےlJfJ`ےvpfr˂pvˍpfZ|d˂pZHAdQbt璀rXQJltbbے`nXvZp˂f`vXے`JHfpvےbHAfH~rd|v`fdrtAvpftlJnXv`bdQZ|`vXn|ZdQbےbHAtbn`JXQrpvnbHAZpHf``JXQrH~ㅐfrtAJlbے`lJtAr`ےbnvpJXQr`f~rXQJ`nvpXQr˂nXvZp˂f`vXZdQtAr~HfpJltH~ftArdfHfdrtAvpftlJZp˂vpf˂pZXv`f˂rXQvXn˂pZ`vXntbdQJXQrd|ZHAZp˂`vXnpZHAHfpvےbHAfH~pZHAb`f~rXQJ`nvpd|ZvnXbdQZ|`vXn|ZdQbpvnJltے`JXQtArdrXQJ`Hf`HAbے~HfJ`ےvpfHHAbےvˍpfZ|d˂pZHAdQbt璀rXQJvpfbJQrnXvZp˂f`vXے`JHfpvےbHAfH~dQbtv`ffdrtAvpftlJrXQJ`bdQZ|r˂p|ZdQbp˂rvXn`JXQrpvnbHAZp~f``JXQrH~ㅐfrtAJlbے`lJtAr`ےbH~f˂pZ`f~rXQJ`nvpXQr˂nXvZp˂f`vXlJtArpvnJltے`JXQtArdےHAZdrtAZHAbtlJXQJ`ےvpfH˂pZXv`f˂rXQvXn˂pZ`vXntbdQJXQrd|ZHAZp˂`vXHHAbےHfpvےbHAfH~pZHA`f~rXQJ`nvpd|ZrXQJ`bdQZ|r˂p|ZdQbp˂rJltے`JXQtArdbHAZ~f`HAbے~HfJ`ےvpfHHAbvˍpfZ|d˂pZHAdQbt璀rXQJ~f``JXQrnXvZp˂f`vXے`JXQHfpvےJlfH~dQbtےHAZdrtAZHAbtlJXQJ`ےbdQZ|r˂p|ZdQbp˂rvXn`JXQrpvnbHAZp~f`˂pZHAH~ㅐfrtAJlbے`lJtAr`ےbvXn˂pZA`f~rXQJ`nvprbt璀nXvtbdQZf`vXl|ZdQp˂rJltے`JXQtArdbHAZdrtAZHAbtlJXQJ`ےvpfH˂pZXv`f˂rXQvXnbے``vXntbdQJXQrd|ZHAZp˂vpfH`JXQHfpvےJlfH~lJtAd`f~|drnvpbtlXQJ`ےbdQZ|r˂p|ZdQbp˂rJltے`JXQtArdbHAXQ~f`HAbے~HfJ`ےvpfHJXQrvˍpfZ|d˂pZHAdQbt璀rXQJ~f`rbt璀nXvtbdQZf`vX|ZdQHfpvtAJlfH~JtArdbHAZdrtAZHAbtlJXQJ`ےbdQZ|r˂p|ZdQbJ`ےvXn`JXQrpvnbHAZp~f`˂p`ZH~ㅐftAJlbے`lJfp`ےbvXnlJtAd`f~|drnvpbtlnXvtbdQZf`vX|ZdQp˂rJltے`JXQtArdbHAZdrtAZHAbtlJbHAZpvpfH˂pZXv`f˂rXQvXnQXb㉀۝`vXntbnJXQrvnXHAZp˂vp`v|ZdQHfpvtAJlfH~JtArd`f~|drnvpbtlXQJ`ےbdQZ|r˂p|ZdQbp˂rJltے`JXQtArd˂rXQ~f`HAbے~HfJ`ےvpfHpJAHrvˍpfvpfH˂pZHAv`frXQJXnvbtlnXvtbdQZf`vX|ZdQHfpvtAJlfH~JtArdbHAZdrtAZHAbtlJXQJ`ےbdQZ|r˂p|ZdQbJ`ےvXn`JXQrpvnbHAZp~f`ˁ`ZH~ㅐfېf`vbے`~Hfp`ےbpfH~JtArd`f~|drnvpbtlnXvtbdQZf`vXtlJp˂rJltے`JXQtArdbHAZdrtAZHAbtlJbHAZpvpfH˂pZXv`f˂rXQvXnQXAHr󙐝`vXnXnvJXQrvnXHAZp˂f`v|ZdQHfpvtAJlfH~JtArd`f~|drnvptArdXQJ`ےbdQZ|r˂p|ZdQbp˂rJltے`JXQtArd˂b~f`HAbے~HfJ`ےvpfHˁ`ZQXvˍp|pfH~˂pZHAv`frXQJXnvbtlnXvtbdQZf`vX|ZdQHfpvtAJlfH~|ZdQbbHAZdrtAZHAbtlJXQJ`ےbdQZ|r˂p|ZdQbHAZp˂vXn`JXQrpvnbHAZp~f`b㉀ۑpdrQtf`vbے`~Hfp`ےbpfH~JtArd`f~|drnvpbtlnXvtbdQZf`vXtlJp˂rJltے`JXQtArdbHAZdrtAZHAbtlJrXQJvpfH˂pZXv`f˂rXQvXnJAHrJltXnvJXQrvnXHAZp˂vp|ZdQHfpvtAJlfH~JtArd`f~|drnvptArdXQJ`ےbdQZ|r˂p|ZdQbp˂rJltے`JXQtArd`ےb~f`HAbے~HfJ`ےvpfHˁ`ZQXbAdZ|pfH~˂pZHAv`frXQJfH~btlnXvtbdQZf`vX|ZdQHfpvtAJlfH~|ZdQtAbHAZdrtAZHAbtlJXQJ`ےbdQZ|r˂p|ZdQbHAZp˂vXn`JXQrpvnbHAZp~f`b㉀ۑpdrQtf`vbے`~Hfp`ےbf`vXJtArd`f~|drnvpbtlnXvtbdQZf`vXrd|p˂rJltے`JXQtArdbHAZdrtAZHAbtlJrXQJvpfH˂pZXv`f˂rXQvXn`ZQXbJltXnvJXQrvnXHAZp˂nvp|ZdQHfpvtAJlfH~JtArd`f~|drnvpZdQbtXQJ`ےbdQZ|r˂p|ZdQbp˂rJltے`JXQtArd`p˂~f`HAے`~HfJ`ےJvpfHۑpJbAdZ|pfH~˂pZHAv`frXQJfH~btlnXvtbdQZf`vX|ZdQHfpvtAJlfH~lJtAbHAZdrtAZHAbtlJXQJ`ےbdQZ|r˂p|ZdQbrXQJ`vXnJXQrbpvnltb~f`AHr󙐂˂drQtf`vbے`~Hfp`ےbf`vXJtArd`f~|drnvpbtlnXvtbdQZf`vXrd|p˂rJltے`JXQtArdbHAZdtAJZHAbtlJےbHAvpfHtlJXv`fdQZ|vXn`ZQXbJltXnvJXQrvnXHAZp˂H~f|ZdQHfpvtAJlfH~JtArd`f~|drnvpZdQbtXQJ`ےbdQZ|r˂p|ZdQbp˂rltbے`JXQfpvZp˂~f`tAd|~HfdrtAJvpfHۑpJbAdZ|pfH~˂pZHAv`frXQJ`vXnbtlnXvtbdQZf`vX|ZdQHfpvtAJlfH~l|ZbHAZdtAJZHAbtlJXQJ`ےnvpr˂p~HfrXQJ`vXnZdQbtpvnltb~f`AHr󙐉drQtf`vbے`~Hfp`ےbvpfJtArd`f~|drnvpbtlnXvtbdQZf`vXdQbtp˂rltbے`JXQfpvbHAZfHfZHAbpvnےbHAvpfHlJtAXv`fdQZ|vXnۑpJAHJltXnvJXQrvnXHAZp˂H~f|ZdQHfpvtAJlfH~JtArd`fH|drnvplJtArXQJ`ےnvpr˂pnXv`p˂r`vXnے`JXQXv`fXQJ`ے~f`rd|~HfdrtAJvpfHr󙐂ˁ`bAdZ|pfH~˂pZHAv`frXQJ`vXnbtlnXvtbdQZf`vX|ZdQfpvtAJlfے`Jd|ZbHAZfHfZHAbf~HXQJ`ےvpfr˂p~HfJltvXnZdQbtpvnltb~f`ZQXb㉀drQtf`vbے`~Hfp`ےbvp`JtArd`fH|drnvpbtlnrXQJtbdQZXQHAbdQbtp˂r`vXnے`JXQfpvbHAZH~fZHAbpvnbQZdvpfHlJtAXv`fdQZ|vXnۑpJAHJltXnvJXQrvnXHAZp˂vXn|ZdQfpvtAJlfے`JJtArd`ےHA|drے`JXQlJtArXQJ`ےvpfr˂pnXv`p˂r`vXnے`JXQXv`prtAJl~f`rd|~HfdrtAJvpfHr󙐂ˁ`bAdZ|pfH~˂pZHAv`frXQJvpfHbtlnrXQJtbdQZXQr˂|ZdQZp˂tAJlr˂pdtlbHAZH~fZHAbf~HXQJ`ےvpfr˂pvnXtbdQvXnZdQbtpvnltb~f`ZQXAHrdrQtf`vے`J~Hfp`ےJl~f`JtArd`ےHA|drpZHAbbtlrXQJ`tbdQZZHAbJfpvp˂r`vXnے`JXQfpvbHAZH~fZHAbv`fZ|dvpfHlJtAXv`fdQZ|vXnˁ`ZJltXnvXQrbtvnXtdrvXn|ZdQZp˂tAJl璐ے`JJtArdےbHA|drے`JXQnvfXQJ`ےvpfr˂pnXv`p˂r`vXnے`JXQ~HfprtAJl~f`rd|~HfdrtAJvpfHQXb㉀bAdZ|pfH~lJtAv`ftAJlvpfHbtlrXQJ`tbdQZXQr˂|ZdQZp˂tAJlr˂p~HfpbHAZH~fZHAbf~HXQJ`ےvpfr˂pvnXtbdQvXnZdQbtpvnltb~f`pJAHrdrQtf`vd|Z~HfptbdQZ~vJtArdےbHA|drpZHAbbtlrXQJ`tbdQZ`JXQrvnXp˂r`vXnے`JXQfpvbHAZH~fZHAbv`fZ|rAJvpfHlJtAXv`fdQZ|vXnˁ`ZJltXnvdQbtvnX|drpfے`|ZdQZp˂tAJl璐ے`JJtArdےbHA|dr˂pZv`fXQJ`ےvpfr˂pnXv`p˂r`vXnے`JXQ~HXvltb~f`rd|~HfdrtAJvpfHQXb㉀bAdZ|pfH~lJtArv`ftAJlJXQrbtlrXQJ`tbdQZXQr˂|ZdQZp˂tAJlHAbے~HfpbHAZH~fZHAbf~HXQJ`ےvpfr˂p`f~dQZ|vXnZdQbtpvnltb~f`p`ZQXdrQtf`vd|Z~HfptbdQZZHAbJtArdےbHA|drpZHAbbtlrXQJ`tbdQZ`JXQrvnXp˂r`vXnے`JXQfpvbHAZH~fZHAbHfpvdrtAJvpfHlJtAXv`fdQZ|vXnb㉀ۑpJltXnvdQbtvnX|lt`JXQ|ZdQZp˂tAJl璐ے`JJtArdےbHA|dr˂pZv`f~XQJ`ےvpfr˂pnXv`p˂r`vXnے`JXQnXvltb~f`rd|~HfdrtAJvpfHJAHrbAdZ|pfH~lJtArv`fbdQZ|r˂pbtlrXQJ`tbdQZXQr˂|ZdQZp˂tAJlHAbfpvbHAZH~fZHAbf~HXQJ`ےvpfr˂p`f~dQZ|vXnZdQbtpvnltb~f`ˁ`ZQXdrQtf`vd|Z~HfpdrtAZHAbJtArdےbHA|drpZHAbbtlrXQJ`tbdQZ˂pZHAnXv`p˂r`vXnے`JXQfpvbHAZH~fZHAbHfpvdrtAJvpfHlJtAXv`fdQZ|vXnb㉀ۑpJltXnvdQbtvnXJlt`JXQ|ZdQZp˂tAJl璐ے`JJtArdےbHA|drbے`f~HXQJ`ےvpfr˂pnXv`p˂r`vXnے`JXQ~HbdQZ|~f`rd|HfpdrtAJvpfZJAHfbAdZ|pfH~lJtArv`fbdQZ|r˂pZbtlrXQJ`tbdQZXQr˂|ZdQZp˂tAJlJXQrfpvbHAZH~fZHAbf~HXQJ`ےvpfr˂pfpvdrtvXnZdQbtvnrltbHAbے`vXndrQtf`vd|Z~HfpdrtAAb`JJtArdےbHA|drpZHAbbtlrXQJ`tbdQZ˂pZHAnXv`p˂r`vXnے`JXQfpvbHAZH~fZHAےnXv`AJltvpfےlJtAXQJ`ےdQZ|`JXQrvˍpfJltXnvdQbtvnXdQZ|XQr˂|ZdQZp˂tAJl璐ے`JJtArdےbHA|drbے`f~HXQJ`ےvpfr˂pnXv`p˂r`vXn`JXQrf~HbdQZ|`JXQrrd|HAZpdrtAJ˂pZH~ㅐfbAdZ|pfH~lJtArv`fdrtAJpZHAbbtlrXQJ`tbdQZXQr˂|ZdQZp˂tAJlJXQHAbfvnXbHAZH~fZHAےf~HXQJ`ےvpfbtlfpvdrt˂pZZdQbt˂rXQltbHAbے`vXndrQtf`vd|Z~Hfpltbے`JJtArdےbHA|drpZHAbbtlrXQJ`tbdQZے`Jv`fp˂r`vXn`JXQrfpvJltH~fJtAdnXv`AJltHAbےlJtAJ`ےdQZ|`JXQrvˍpfJltXnvdQbtvnXdQZ|XQr˂|ZdQZp˂tAJl璐ے`JJtArdےbHA|dtAXQr˂~HfpXQJ`ےvpfbtlnXv`bdQZ|`vXn|ZdQbpvnbQZd`JXQrrd|bHAZpdrtAJ˂p`H~ㅐfbAdZ|pfH~lJtArv`fdrtAJpZHAbbtlrXQJ`tbdQZXQr˂|ZdQZp˂JltpZHAbvnXJltH~fJtAdf~HdrtAvpftlJXv`frtAJl˂pZZdQbt˂rXQltbJXQr`vXndrQtf`vd|Z~HfpltdJQrJtArdےbHA|dtApZHAbbtlrXQJ`bnvے`Jv`fbdQZ|`vXn|ZdQbfpvJltH~ftArd~HftbdQHAbےlJtAJ`ےdQZ|˂pZHAvˍpfJltXnvdQbtvnXrtAJl˂pZH|ZdQZp˂Jltے`JJfpvےbHApfHXQr˂~HfpdrtAvpftlJnXv`bdQZ|`vXn|ZdQbpvnZ|d`JXQrrd|bHAZpdrtAJbے`H~ㅐfbAdZ|pfH~lJtArv`ftbdQAbے`btlrXQJ`bnvXQr˂nXvZp˂f`vXp`JXQvnvfJltH~ftArdf~HdrtAvpftlJXv`frtAJl˂pZZdQbt˂rXQltbJXQr`vXndrQtf`vd|ZHfpvZ|dJXQrJfpvےbHApfHpZHAb`f~rXQJ`nvpr˂p~HfbdQZ|`vXn|ZdQbfpvJltH~ftArd~HXtbdQHAbےlJtAJ`ےdQZ|˂pZHAvˍpfJlt66666666666666666666666666666666666666666667777777777777777777777 \ No newline at end of file diff --git a/vendor/endroid/qr-code/assets/data/qrv3_0.dat b/vendor/endroid/qr-code/assets/data/qrv3_0.dat deleted file mode 100755 index 07a0af58d402be46fbc3218c3f2acefd93daf4f2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1733 zcmdUvyNat&6ow~mLmYF_#CXrk*c`;pPOL=4Dg+U+3PA-6i+~Ci7I`8c!P3Gqg@t9t zkQ0y`Co@TR)>p{-(CuFTMmPNCS8(j_VCZL1nH3^Rs@0njj`k6|_&p6580Wf+>KD3V;S31YQcE^!>g7K{0OHk(dS^s_4zola-7 z`Fyd!FdSblSF7%9*Ca_%G|ez9%W*uv>FT!LE2}&{%g_}0%{CBZG8vCy7yt+wjXt^> zjUWgB7#@!&69jp6n?H^HzrOF)V|?{~U|Ofr^}=eWWQ4073p37|gBU(~D=7jmYHURY zlIE9boL9Oi5bC3ErEOBDPGsa~+Y#>FMK|PH-TT^+aFwjud12{VCt!+UbBMEhSEiZ| zBt^EPAW=o3(&PND8rzGCz)FbD_w7Y@qB`9st>g$s-UfTWRt>pt&-Rdi9Phiauf88f zKY*d}e~RTEL>mkTboKq%`ccJMVGalQufOIrl%KDugskXQG?f~AFJ3Jc4O zAtxX?PG(|v)>p{-(CuFTMz`GdSFp_Qps81o#49%V9sE|0=Jj>G8paYE2D%u=d^U{f z=P-~-KV!Hb0QEEa=x4j-IF@A?nx-g{B#6xh$JguCYPrNP6kROl^Vw`V{cLMGoz3R+ z#R5e!Y`I*m*6a3cHv~bF6h+ev!?GN=ZR@_?JF7fDOH(BA%{CBZG8vCy7yt+wjXv5M zjUWgB7#@!&69jp8n?H^HzrOF?V|@31V3_B^af5O%r?{h@awAIXqYylMGtPZCtSwmr zqUse%l$DympaS0t(j zL|L*zKUM_3)S~R6YRe6C-;D9rckNZP!z$UujcD_F*7ygnQgo?nFIJy_9`C!cZ@wEw zH-NtJe~RT1MC11dbo1TVx=}@GZuAHEufOHgm!GF9xFl<3=q5#MihviaI*a_=z*FH^ z29Z&mRR;v}zD`{yKbi5tuR`6rO14;eyQIl%?ZWFygWQWCDVky1zXiuK?Z^JtBG{iV D|JG$; diff --git a/vendor/endroid/qr-code/assets/data/qrv3_2.dat b/vendor/endroid/qr-code/assets/data/qrv3_2.dat deleted file mode 100755 index 6e60276aaf1434617ebf2faa7ed1183a4051019f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1734 zcmb`HzmBp%6vb6Eih_d3Kc(9zu_JVL#EK9?WsD(&YO_HT3JMb-p`h3&;t?n*EVrPb zbV2Uys{65DvvU###^Idby%UsH(m%BnA0_aQ;@C$mm<4ki_065=d86l)NB8fi-%@TF zciwk7kb=^F%+#z!Yvl&IPEXVP@AfSD-*>p;h1Th{@CImr} z^Etza;<6f|DDWIh!G_UrI2iQ%Sf|_V^)Re22t3bmEK9)#9B&+Gx^`GBYLC@Qk{Sw% zYAA5Lp`hvdx0(SkDZm_Iy2&&o!EiVlAzKn`S+JELe$mDUIDhrtSI(2~k9BA> z4Q&?TIE4Sz`B(2f<>1J-Z5{fGnTPkxalO8^6G-=jVvDZdYo?efa zt+Bc4_WHxRJvZqJ24$sCZeEoudlifY!BD0OI0q=d)Ef{~{`F)eHQuf&{f2hFZ$xTp z&8o?uK4@EJqw2XYTSXF_QZswk9L!VqucwP|Sl12k*@*j&uRe}1?%N^d`yvXGx?PAb zK-_RVHQ%j)i2HVES3R#<7{uRvGU9&f=h2O_@StF8CYIlFFEESPb<*=8w3W+o7nO;v cf2@sdIcf&W@q)OlzUbAm{?mZf5%==)3Eg~UXaE2J diff --git a/vendor/endroid/qr-code/assets/data/qrv3_3.dat b/vendor/endroid/qr-code/assets/data/qrv3_3.dat deleted file mode 100755 index cb5289eda2b1cce7a9494d280674fb3aa31dde4e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1734 zcmbW1zmBRv6vkCFf}(=_SGxNoc7)E3SP?>~j4^~zZ8ktcL1BU<6cqbJJOU+!b;nIcfN!fCUf|H=bNa!l>e%Q^e9ny6wf`1Wmx7m>cySt`AbnV&@;uO`}f-` ziW|e7_Z>$o1@dp3C)1ZA$1Ng8FNF_5{lSB<9;nl8^u*Ol)5Zb&tu%-O<}Vt=0W;7b zs*Wr#my3lYvDK~5=QK@{Sn@y*a2}zDd<1tB2Ci6MN zNYbJjk|YW|N5KJnI2;W6eXP^%_IeoBC!m0?3s{z`N|sAmmPJ9}d5&X6SWxf*0t#p- zs6Fa}hLWNhN`h!8Y5MlDsuyU3f;Moh*XwpWolbu+7!GlqfVOC8OM>=ARQFT<|Ey!t z`KMg|*#BuC|5}IohVx(fwC%%nVAlSlaJ?|M;`IEkgyl|48CO4OYfRPsBH17Fz>CiI zMcp1xi4!%?tHHQhTJF5?{2r%XSh$#~t?ei{Cc0lQ&l_bGXGNkLPIOAP$BTd3nCq+I ztUhfsy995|u8M(Oj(iah@{P07P*%(a@tE1C?W``Uxjt>)eEm?k`wz@g!una+`IT>J zRL-^+<-z{QG&J^AbyoMj4&s6KOK2b2*Y8SLz1d(4F=&9Zhj=bV1A^kY24+^{ZL4T* zXovfta!YS^Ee7SJZ=>=>=>=<;<;<;<;:98787876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"!        - - - - BABABABA@?@?@?@?>=>=>=>=<;<;<;<;877777786565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"!        - - - BABABABA@?@?@?@?>=>=>=>=<;<;<;<;787878786565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"!        BABABABA@?@?@?@?>=>=>=>=<;<;<;<;787878786565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"!        BABABABA@?@?@?@?>=>=>=>=<;<;<;<;787878786565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#"!"!"!"!        BABABABA@?@?@?@?>=>=>=>=<;<;<;<;787878786565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#"!"!"!"!        BABABABA@?@?@?@?>=>=>=>=<;<;<;<;787878786565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - BABABABA@?@?@?@?>=>=>=>=<;<;<;<;787877776565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - BABABABA@?@?@?@?>=>=>=>=<;<;<;<;778787876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - BABABABA@?@?@?@?>=>=>=>=<;<;<;<;878787876565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - BABABABA@?@?@?@?>=>=>=>=<;<;<;<;878787876565656543434343212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - BABABABA@?@?@?@?>=>=>=>=<;<;<;<;878787876565656543434343212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!       - - - - BABABABA@?@?@?@?>=>=>=>=<;<;<;<;878787876565656543434343212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!     - - - - BABABABA@?@?@?@?>=>=>=>=<;<;<;:9878787876565656543434343212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!     - - - - BABABABA@?@?@?@?>=>=>=>=:9:9:9:9777778786565656543434343212121210/0/0/0/.-.-.-.-*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!     - - - - BABABABA@?@?@?@?>=>=>=>=:9:9:9:9787878786565656543434343212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!     - - - - BABABABA@?@?@?@?>=>=>=>=:9:9:9:9787878786565656543434343212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!     - - - - BABABABA@?@?@?@?>=>=>=>=:9:9:9:9787878786565656543434343212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - BABABABA@?@?@?@?>=>=>=>=:9:9:9:9787878786565656543434343212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - BABABABA@?@?@?@?>=>=>=>=:9:9:9:9787878786565656543434343212121210/0/0/0/,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!        - - - - BABABABA@?@?@?@?>=>=>=>=:9:9:9:978777777656565654343434321212121.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!      - - - - BABABABA@?@?@?@?>=>=>=>=:9:9:9:987878787656565654343434321212121.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!    - - - - BABABABA@?@?@?@?>=>=>=>=:9:9:9:987878787656565654343434321212121.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!    - - - - BABABABA@?@?@?@?>=>=>=>=:9:9:9:987878787656565654343434321212121.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!    - - - - BABABABA@?@?@?@?>=>=>=>=:9:9:9:987878787656565654343434321212121.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!    - - - - BABABABA@?@?@?@?>=>=>=>=:9:9:9:98787878765656565434343430/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!    - - - - BABABABA@?@?@?@?>=>=>=>=:9:9:9:98787877765656565434343430/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!    - - - - BABABABA@?@?@?@?>=<;<;<;:9:9:9:97778787865656565434343430/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!    - - - - BABABABA@?@?@?@?<;<;<;<;:9:9:9:97878787865656565434343430/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!    - - - - BABABABA@?@?@?@?<;<;<;<;:9:9:9:97878787865656565434343430/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!    - - - - BABABABA@?@?@?@?<;<;<;<;:9:9:9:97878787865656565212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!    - - - - BABABABA@?@?@?@?<;<;<;<;:9:9:9:97878787865656565212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!    - - - - BABABABA@?>=>=>=<;<;<;<;:9:9:9:97878787865656565212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!    - - - - BABABABA>=>=>=>=<;<;<;<;:9:9:9:97777778765656565212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#"!"!"!"!    - - - - BABABABA>=>=>=>=<;<;<;<;:9:9:9:98787878765656565212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#        - - - - BABABABA>=>=>=>=<;<;<;<;:9:9:9:98787878743434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#        - - - - BABABABA>=>=>=>=<;<;<;<;:9:9:9:98787878743434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#        - - - - BA@?@?@?>=>=>=>=<;<;<;<;:9:9:9:98787878743434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#        - - - - @?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:98787777743434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%$#$#$#$#        - - - - @?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:98787878743434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%"!"!"!"!        - - - - @?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:96565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%"!"!"!"!        - - - - @?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:96565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%"!"!"!"!        - - - - @?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:96565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%"!"!"!"!        - - - - @?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:96565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('&%&%&%&%"!"!"!"!        - - - - @?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:96565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!        - - - - @?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:96565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!        - - - - @?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:96565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!        - - - - @?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:96565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!        - - - - @?@?@?@?>=>=>=>=<;<;<;<;:9:9:9:96565656543434343212121210/0/0/0/.-.-.-.-,+,+,+,+*)*)*)*)('('('('$#$#$#$#"!"!"!"!        - - - - %%&&''((iihhggff==>>??@@``__^^]]eeffgghh88776655 zzyyxxww{{||}}~~ ""##$$%%{{zzyyxxJJKKLLMMSSRRQQPPrrssttuu++**))(([[\\]]^^'&&%%$$# - -//001122nnmmllkkWWXXYYZZFFEEDDCC6677==>>DDCCBBAA<<==>>??))**++,,eeddccbbAABBCCDD\\[[ZZYYiijjkkll44332211 - -  vvuuoonn&&''(())wwvvuuttNNOOPPQQOONNMMLLvvwwxxyy''&&%%$$__``aabb#""!!  33445566jjiihhgg[[\\]]^^BBAA@@????@@AABB@@??>>==@@AABBCC--..//00aa``__^^ ~~}}EEFFGGHHXXWWVVUUmmnnoopp00//..--!!""##$$mmllkkjj**++,,--ssrrqqppRRSSTTUUKKJJIIHHzz{{||}}##""!!  ccddeeff778899::ffeeddcc__``aabb>>==<<;;CCDDEEFF<;:98776 - -~~DDEEFFGG11223344]]\\[[ZZ!!""##$$||{{zzyyIIJJKKLLTTSSRRQQqqrrsstt,,++**))%%&&''((iihhggff ..//0011oonnmmllVVWWXXYYGGFFEEDD~~ - - gghhiijj;;<<==>>bbaa``__ccddeeff::998877GGHHIIJJ65544332  !!""##}}||{{zzHHIIJJKK55667788YYSSRRQQ%%&&''((xxwwvvuuMMNNOOPPPPOONNMMuuvvwwxx((''&&%%))**++,,eeddccbb - - 22334455kkjjiihhZZ[[\\]]CCBBAA@@kkllmmnn??@@AABB^^]]\\[[gghhiijj66554433 KKLLMMNN21100//.$$%%&&''yyxxwwvvLLMMNNOO99::;;<>==<<~~oouuvvww CCDDEEFFZZYYXXWWkkllmmnn221100// - - OOPPQQRR.--,,++*(())**++uuttssrrPPQQRRSS==>>??@@LLKKJJII--..//00ppoonnmmUUVVWWXXHHGGFFEE}}~~  - - 11223344]]\\[[ZZ::;;<<==ccbbaa``bbccddee;;::9988}}||{{zzxxyyzz{{ - -  !!""~~}}||{{GGHHIIJJVVUUTTSSooppqqrr..--,,++SSYYZZ[[*))((''&,,--..//qqppoonnTTUUVVWWAABBCCDDHHGGFFEE11223344llkkjjiiYYZZ[[\\DDCCBBAA 55667788YYSSRRQQ>>??@@AA__^^]]\\ffgghhii77665544 yyxxwwvv||}}~~##$$%%&&zzyyxxwwKKLLMMNNRRQQPPOOssttuuvv**))((''\\]]^^__&%%$$##" - - 00112233mmllkkjjXXYYZZ[[EEFFGGHHDDCCBBAA55667788hhggffee]]^^__``@@??>>==99::;;<>==99::;;<>??@@LLKKJJII !!~~}}||FFGGHHIIWWVVUUTTnnooppqq//..--,,""##$$%%llkkjjii++,,--..rrqqppooSSTTUUVVJJIIHHGG{{||}}~~""!!  - -ddeeffgg8899::;;eeddccbb``aabbccMMNNOOPP77665544==>>??@@``__^^]]eeffgghh88776655 AABBCCDDHHGGFFEE""##$$%%{{zzyyxxJJKKLLMMSSRRQQPPrrssttuu++**))((&&''(())hhggffee - -//001122nnmmllkkWWXXYYZZFFEEDDCC hhiijjkk<<==>>??aa``__^^ddeeffggQQRRSSTT33221100AABBCCDD\\[[ZZYYiijjkkll44332211 - -  ~~}}EEFFGGHHDDCCBBAA&&''(())wwvvuuttNNOOPPQQOONNMMLLvvwwxxyy''&&%%$$**++,,--ddccbbaa 33445566jjiihhgg[[\\]]^^BBAA@@??llmmnnoo@@AABBCC]]\\[[ZZhhiijjkk~~}}UUVVWWXX//..--,,EEFFGGHHXXWWVVUUmmnnoopp00//..--!!""##$$||{{zzyyIIJJKKLL@@??>>==**++,,--ssrrqqppRRSSTTUUKKJJIIHHzz{{||}}##""!!  ..//0011``__^^]]778899::ffeeddcc__``aabb>>==<<;;~~}}uuvvwwxx ~~DDEEFFGGYYXXWWVVllmmnnoo||{{zzyyYYZZ[[\\++**))((IIJJKKLLTTSSRRQQqqrrsstt,,++**))%%&&''((xxwwvvuuMMNNOOPP77665544..//0011oonnmmllVVWWXXYYGGFFEEDD~~ - - 22334455\\[[ZZYY;;<<==>>bbaa``__ccddeeff::998877||{{zzyyyyzz{{|| - -  !!""##}}||{{zzHHIIJJKKUUTTSSRRppqqrrssxxwwvvuu]]^^__``''&&%%$$MMNNOOPPPPOONNMMuuvvwwxx((''&&%%))**++,,ttssrrqqQQRRSSTT3322110022334455kkjjiihhZZ[[\\]]CCBBAA@@66778899SSRRQQPP??@@AABB^^]]\\[[gghhiijj66554433 xxwwvvuu}}~~$$%%&&''yyxxwwvvLLMMNNOOQQPPOONNttuuvvwwttssrrqqaabbccdd##""!!QQRRSSTTLLKKJJIIyyzz{{||$$##""!!--..//00ppoonnmmUUVVWWXX//..--,,66778899ggffeedd^^__``aa??>>==<<::;;<<==OONNMMLLCCDDEEFFZZYYXXWWkkllmmnn221100// - -  !!""oonnmmll(())**++uuttssrrPPQQRRSSMMLLKKJJxxyyzz{{ppoonnmmeeffgghhUUVVWWXXHHGGFFEE}}~~  - - 11223344llkkjjiiYYZZ[[\\++**))((::;;<<==ccbbaa``bbccddee;;::9988>>??@@AAKKJJIIHH !!""~~}}||{{GGHHIIJJVVUUTTSSooppqqrr..--,,++##$$%%&&kkjjiihh,,--..//qqppoonnTTUUVVWWIIHHGGFF||}}~~llkkjjiiiijjkkll~~}}||YYZZ[[\\DDCCBBAA 55667788hhggffee]]^^__``''&&%%$$>>??@@AA__^^]]\\ffgghhii77665544 BBCCDDEEGGFFEEDD##$$%%&&zzyyxxwwKKLLMMNNRRQQPPOOssttuuvv**))((''''(())**ggffeedd - - 00112233mmllkkjjXXYYZZ[[EEDDCCBBhhggffeemmnnoopp{{zzyyxx]]^^__``@@??>>==99::;;<>aa``__^^ddccbbaaqqrrsstt wwvvuutsaabbccdd<<;;::99==>>??@@``__^^]]eeffgghhFFGGHHIIWWVVUUTTnnooppqq//..--,,""##$$%%{{zzyyxxJJKKLLMM??>>==77++,,--..rrqqppooSSTTUUVVJJIIHHGG{{||}}~~""!!  - -//001122__^^]]\\8899::;;eeddccbb``aabbcc==<<;;::]]\\[[ZZ``__^^]]uuvvwwxx - - - -rqpoonnmeeffgghh88776655 AABBCCDD\\[[ZZYYiijjkkllJJKKLLMMSSRRQQPPrrssttuu++**))((&&''(())wwvvuuttNNOOPPQQ66554433//001122nnmmllkkWWXXYYZZFFEEDDCC 33445566[[ZZYYSS<<==>>??aa``__^^ddeeffgg99887766YYXXWWVV\\[[ZZYYyyzz{{|| mllkkjjiiijjkkll44332211 - -  ~~}}EEFFGGHHXXWWVVUUmmnnooppNNOOPPQQOONNMMLLvvwwxxyy''&&%%$$**++,,--ssrrqqppRRSSTTUU221100//33445566jjiihhgg[[\\]]^^BBAA@@??778899::RRQQPPOO@@AABBCC]]\\[[ZZhhiijjkk55443322UUTTSSRRXXWWVVUU}}~~ihhggffemmnnoopp00//..--!!""##$$||{{zzyyIIJJKKLLTTSSRRQQqqrrsstt ~~}}||RRSSTTUUKKJJIIHHzz{{||}}##""!!  ..//0011oonnmmllVVWWXXYY..--,,++778899::ffeeddcc__``aabb>>==<<;;;;<<==>>NNMMLLKK~~DDEEFFGGYYXXWWVVllmmnnoo1100//..QQPPOONNTTSSRRQQeddccbbaqqrrsstt,,++**))%%&&''((xxwwvvuuMMNNOOPPPPOONNMMuuvvwwxx - - {{zzyyxxVVWWXXYYGGFFEEDD~~ - - 22334455kkjjiihhZZ[[\\]]**))(('';;<<==>>bbaa``__ccddeeff::998877??@@AABBJJIIHHGG !!""##}}||{{zzHHIIJJKKUUTTSSRRppqqrrss--,,++**MMLLKKJJPPOONNMMa``__^^]uuvvwwxx((''&&%%))**++,,ttssrrqqQQRRSSTTLLKKJJIIyyzz{{||wwvvuutsZZ[[\\]]CCBBAA@@66778899ggffeedd^^__``aa&&%%$$##??@@AABB^^]]\\[[gghhiijj66554433 CCDDEEFFFFEEDDCC$$%%&&''yyxxwwvvLLMMNNOOQQPPOONNttuuvvww))((''&&IIHHGGFFLLKKJJII!!""##]\\[[ZZYyyzz{{||$$##""!!--..//00ppoonnmmUUVVWWXXHHGGFFEE}}~~ - -rqpoonnm^^__``aa??>>==<<::;;<<==ccbbaa``bbccddee""!!CCDDEEFFZZYYXXWWkkllmmnn221100// - -  !!""~~}}||{{GGHHIIJJBBAA@@??(())**++uuttssrrPPQQRRSSMMLLKKJJxxyyzz{{%%$$##""EEDDCCBBHHGGFFEE$$%%&&''YXWVUTSS}}~~  - - 11223344llkkjjiiYYZZ[[\\DDCCBBAA mllkkjjibbccddee;;::9988>>??@@AA__^^]]\\ffgghhiiGGHHIIJJVVUUTTSSooppqqrr..--,,++##$$%%&&zzyyxxwwKKLLMMNN>>==7766,,--..//qqppoonnTTUUVVWWIIHHGGFF||}}~~!! AA@@??>>DDCCBBAA(())**++RRQQPPOO 55667788hhggffee]]^^__``@@??>>==ihhggffeffgghhii77665544 BBCCDDEE[[ZZYYXXjjkkllmmKKLLMMNNRRQQPPOOssttuuvv**))((''''(())**vvuuttssOOPPQQRR5544332200112233mmllkkjjXXYYZZ[[EEDDCCBB==<<;;::@@??>>==,,--..//NNMMLLKK99::;;<>99887766<<;;::9900112233JJIIHHGG==>>??@@``__^^]]eeffgghh88776655a``__^^]nnooppqq//..--,,""##$$%%{{zzyyxxJJKKLLMMSSRRQQPPrrssttuu - -~~}}||{{SSTTUUVVJJIIHHGG{{||}}~~""!!  - -//001122nnmmllkkWWXXYYZZ--,,++**8899::;;eeddccbb``aabbcc==<<;;::554433228877665544556677FFEEDDCC AABBCCDD\\[[ZZYYiijjkkll44332211!!""##]\\[[ZZYrrssttuu++**))((&&''(())wwvvuuttNNOOPPQQOONNMMLLvvwwxxyy zzyyxxwwWWXXYYZZFFEEDDCC 33445566jjiihhgg[[\\]]^^))((''&&<<==>>??aa``__^^ddeeffgg998877661100//..44332211==>>??@@BBAA@@?? - -  ~~}}EEFFGGHHXXWWVVUUmmnnoopp00//..--$$%%&&''YXWVUTSSvvwwxxyy''&&%%$$**++,,--ssrrqqppRRSSTTUUKKJJIIHHzz{{||}}vvuutsrq[[\\]]^^BBAA@@??778899::ffeeddcc__``aabb%%$$##""@@AABBCC]]\\[[ZZhhiijjkk55443322 - ---,,++**00//..--AABBCCDD>>==<;:9!!""##$$||{{zzyyIIJJKKLLTTSSRRQQqqrrsstt,,++**))(())**++RRQQPPOOzz{{||}}##""!!  ..//0011oonnmmllVVWWXXYYGGFFEEDD~~ - - poonnmml__``aabb>>==<<;;;;<<==>>bbaa``__ccddeeff!!DDEEFFGGYYXXWWVVllmmnnoo1100//.. ))((''&&,,++**))EEFFGGHH87766554%%&&''((xxwwvvuuMMNNOOPPPPOONNMMuuvvwwxx((''&&%%,,--..//NNMMLLKK~~ - - 22334455kkjjiihhZZ[[\\]]CCBBAA@@ lkkjjiihccddeeff::998877??@@AABB^^]]\\[[gghhiijjHHIIJJKKUUTTSSRRppqqrrss--,,++**%%$$##""((''&&%%IIJJKKLL43322110))**++,,ttssrrqqQQRRSSTTLLKKJJIIyyzz{{||$$##""!!00112233JJIIHHGG66778899ggffeedd^^__``aa??>>==<<hggffeedgghhiijj66554433 CCDDEEFFZZYYXXWWkkllmmnnLLMMNNOOQQPPOONNttuuvvww))((''&&!! $$##""!!MMNNOOPP0//..--,--..//00ppoonnmmUUVVWWXXHHGGFFEE}}~~ 44556677FFEEDDCC::;;<<==ccbbaa``bbccddee;;::9988dccbbaa`kkllmmnn221100// - -  !!""~~}}||{{GGHHIIJJVVUUTTSSooppqqrr ~~PPQQRRSSMMLLKKJJxxyyzz{{%%$$##"" QQRRSSYY,++**))( - - 11223344llkkjjiiYYZZ[[\\DDCCBBAA==>>??@@BBAA@@??>>??@@AA__^^]]\\ffgghhii77665544`__^^]]\ooppqqrr..--,,++##$$%%&&zzyyxxwwKKLLMMNNRRQQPPOOssttuuvv - - }}||{{zzTTUUVVWWIIHHGGFF||}}~~!!  - - ZZ[[\\]](''&&%%$ 55667788hhggffee]]^^__``@@??>>==AABBCCDD>>==<;:9 BBCCDDEE[[ZZYYXXjjkkllmm33221100!!""##$$\[[ZZYYXssttuuvv**))((''''(())**vvuuttssOOPPQQRRNNMMLLKKwwxxyyzzyyxxwwvvXXYYZZ[[EEDDCCBB ^^__``aa$##""!! 99::;;<>bbccddee==>>??@@``__^^]]eeffgghh88776655 IIJJKKLL43322110""##$$%%{{zzyyxxJJKKLLMMSSRRQQPPrrssttuu++**))(())**++,,QQPPOONN{{||}}~~""!!  - -//001122nnmmllkkWWXXYYZZFFEEDDCC - - onnmmllk``aabbcc==<<;;:: - - ffgghhiiAABBCCDD\\[[ZZYYiijjkkll44332211 - - MMNNOOPP0//..--,&&''(())wwvvuuttNNOOPPQQOONNMMLLvvwwxxyy''&&%%$$--..//00MMLLKKJJ 33445566jjiihhgg[[\\]]^^BBAA@@?? kjjiihhgddeeffgg99887766  - - jjkkllmm ~~}}EEFFGGHHXXWWVVUUmmnnoopp00//..--QQRRSSYY,++**))(**++,,--ssrrqqppRRSSTTUUKKJJIIHHzz{{||}}##""!! 11223344IIHHGGFF778899::ffeeddcc__``aabb>>==<<;;gffeeddchhiijjkk55443322 - -~~ - - nnoouuvv!!""##$$||{{zzyyIIJJKKLLTTSSRRQQqqrrsstt,,++**))ZZ[[\\]](''&&%%$ ..//0011oonnmmllVVWWXXYYGGFFEEDD~~556677==EEDDCCBB;;<<==>>bbaa``__ccddeeff::998877cbbaa``_llmmnnoo1100//..  !!""##}}||{{zz wwxxyyzz - -%%&&''((xxwwvvuuMMNNOOPPPPOONNMMuuvvwwxx((''&&%%^^__``aa$##""!! - - 22334455kkjjiihhZZ[[\\]]CCBBAA@@>>??@@AAAA@@??>>??@@AABB^^]]\\[[gghhiijj66554433!!_^^]]\\[ppqqrrss--,,++**$$%%&&''yyxxwwvv{{||}}~~ ))**++,,ttssrrqqQQRRSSTTLLKKJJIIyyzz{{||$$##""!!bbccddee66778899ggffeedd^^__``aa??>>==<<BBCCDDEE==<;:987 CCDDEEFFZZYYXXWWkkllmmnn221100//""##$$%%[ZZYYXWVttuuvvww))((''&&(())**++uuttssrr - - ~~}}||{{--..//00ppoonnmmUUVVWWXXHHGGFFEE}}~~  - - ffgghhii::;;<<==ccbbaa``bbccddee;;::9988FFGGHHII76655443 - -  !!""~~}}||{{GGHHIIJJVVUUTTSSooppqqrr..--,,++&&''(())UTSSRRQQxxyyzz{{%%$$##"",,--..//qqppoonn zzyyxxww - - 11223344llkkjjiiYYZZ[[\\DDCCBBAA jjkkllmm>>??@@AA__^^]]\\ffgghhii77665544 JJKKLLMM3221100/##$$%%&&zzyyxxwwKKLLMMNNRRQQPPOOssttuuvv**))((''**++,,--PPOONNMM||}}~~!!  - - 00112233mmllkkjj vvuuoonn 55667788hhggffee]]^^__``@@??>>==nnoouuvvBBCCDDEE[[ZZYYXXjjkkllmm33221100 - - NNOOPPQQ/..--,,+''(())**vvuuttssOOPPQQRRNNMMLLKKwwxxyyzz&&%%$$##..//0011LLKKJJII 44556677iihhggff!!""##$$mmllkkjj99::;;<>))**++,,ttssrrqqQQRRSSTTLLKKJJIIyyzz{{||$$##""!!--..//00aa``__^^66778899ggffeedd^^__``aa??>>==<<MMNNOOPP++**))(($$%%&&''yyxxwwvvLLMMNNOO==776655--..//00ppoonnmmUUVVWWXXHHGGFFEE}}~~  - - 11223344]]\\[[ZZ::;;<<==ccbbaa``bbccddee;;::9988QQRRSSYY''&&%%$$(())**++uuttssrrPPQQRRSS4433221111223344llkkjjiiYYZZ[[\\DDCCBBAA 55667788YYSSRRQQ>>??@@AA__^^]]\\ffgghhii77665544 ZZ[[\\]]##""!! ,,--..//qqppoonnTTUUVVWW00//..--55667788hhggffee]]^^__``@@??>>==99::;;<>??@@LLKKJJII !!~~}}||FFGGHHIIWWVVUUTTnnooppqq//..--,,bbccddee44556677iihhggff\\]]^^__((''&&%%==>>??@@``__^^]]eeffgghh88776655 AABBCCDDHHGGFFEE""##$$%%{{zzyyxxJJKKLLMMSSRRQQPPrrssttuu++**))((ffgghhii8899::;;eeddccbb``aabbcc$$##""!!AABBCCDD\\[[ZZYYiijjkkll44332211 - -  ~~}}EEFFGGHHDDCCBBAA&&''(())wwvvuuttNNOOPPQQOONNMMLLvvwwxxyy''&&%%$$jjkkllmm<<==>>??aa``__^^ddeeffggEEFFGGHHXXWWVVUUmmnnoopp00//..--!!""##$$||{{zzyyIIJJKKLL@@??>>==**++,,--ssrrqqppRRSSTTUUKKJJIIHHzz{{||}}##""!!  nnoouuvv @@AABBCC]]\\[[ZZhhiijjkkIIJJKKLLTTSSRRQQqqrrsstt,,++**))%%&&''((xxwwvvuuMMNNOOPP77665544..//0011oonnmmllVVWWXXYYGGFFEEDD~~ - - wwxxyyzz - - DDEEFFGGYYXXWWVVllmmnnooMMNNOOPPPPOONNMMuuvvwwxx((''&&%%))**++,,ttssrrqqQQRRSSTT3322110022334455kkjjiihhZZ[[\\]]CCBBAA@@{{||}}~~ - - HHIIJJKKUUTTSSRRppqqrrss ~~}}QQRRSSTTLLKKJJIIyyzz{{||$$##""!!--..//00ppoonnmmUUVVWWXX//..--,,66778899ggffeedd^^__``aa??>>==<<~~}}||{{LLMMNNOOQQPPOONNttuuvvww - - ||{{zzyyUUVVWWXXHHGGFFEE}}~~  - - 11223344llkkjjiiYYZZ[[\\++**))((::;;<<==ccbbaa``bbccddee;;::9988zzyyxxwwPPQQRRSSMMLLKKJJxxyyzz{{xxwwvvuuYYZZ[[\\DDCCBBAA 55667788hhggffee]]^^__``''&&%%$$>>??@@AA__^^]]\\ffgghhii77665544 vvuuoonnTTUUVVWWIIHHGGFF||}}~~ tsrqpoon]]^^__``@@??>>==99::;;<>??@@``__^^]]eeffgghhFFGGHHIIWWVVUUTTnnooppqq//..--,,""##$$%%iihhggff !!\\]]^^__AA@@??>>jiihhggfeeffgghh88776655 AABBCCDD\\[[ZZYYiijjkkllJJKKLLMMSSRRQQPPrrssttuu++**))((&&''(())eeddccbb""##$$%%``aabbcc==<<;;::feeddccbiijjkkll44332211 - -  ~~}}EEFFGGHHXXWWVVUUmmnnooppNNOOPPQQOONNMMLLvvwwxxyy''&&%%$$**++,,--aa``__^^&&''(())ddeeffgg99887766baa``__^mmnnoopp00//..--!!""##$$||{{zzyyIIJJKKLLTTSSRRQQqqrrsstt ~~}}||RRSSTTUUKKJJIIHHzz{{||}}##""!!  ..//0011]]\\[[ZZ**++,,--hhiijjkk55443322!!""^]]\\[[Zqqrrsstt,,++**))%%&&''((xxwwvvuuMMNNOOPPPPOONNMMuuvvwwxx - - {{zzyyxxVVWWXXYYGGFFEEDD~~ - - 22334455YYSSRRQQ..//0011llmmnnoo1100//..##$$%%&&ZYYXWVUTuuvvwwxx((''&&%%))**++,,ttssrrqqQQRRSSTTLLKKJJIIyyzz{{||wwvvuutsZZ[[\\]]CCBBAA@@66778899PPOONNMM22334455ppqqrrss--,,++**''(())**SSRRQQPPyyzz{{||$$##""!!--..//00ppoonnmmUUVVWWXXHHGGFFEE}}~~ - -rqpoonnm^^__``aa??>>==<<::;;<<==LLKKJJII66778899ttuuvvww))((''&&++,,--..OONNMMLL}}~~  - - 11223344llkkjjiiYYZZ[[\\DDCCBBAA mllkkjjibbccddee;;::9988>>??@@AAHHGGFFEE::;;<<==xxyyzz{{%%$$##""//001122KKJJIIHH 55667788hhggffee]]^^__``@@??>>==ihhggffeffgghhii77665544 BBCCDDEEDDCCBBAA>>??@@AA||}}~~!! 33445566GGFFEEDD99::;;<>==BBCCDDEE77==>>??CCBBAA@@==>>??@@``__^^]]eeffgghh88776655a``__^^]nnooppqq//..--,,""##$$%%{{zzyyxxJJKKLLMM77665544FFGGHHII@@AABBCC??>>==<; AABBCCDD\\[[ZZYYiijjkkll44332211!!""##]\\[[ZZYrrssttuu++**))((&&''(())wwvvuuttNNOOPPQQ33221100JJKKLLMMDDEEFFGG:9877665 - -  ~~}}EEFFGGHHXXWWVVUUmmnnoopp00//..--$$%%&&''YXWVUTSSvvwwxxyy''&&%%$$**++,,--ssrrqqppRRSSTTUU//..--,,NNOOPPQQHHIIJJKK54433221!!""##$$||{{zzyyIIJJKKLLTTSSRRQQqqrrsstt,,++**))(())**++RRQQPPOOzz{{||}}##""!!  ..//0011oonnmmllVVWWXXYY++**))((RRSSTTUU - -LLMMNNOO100//..-%%&&''((xxwwvvuuMMNNOOPPPPOONNMMuuvvwwxx((''&&%%,,--..//NNMMLLKK~~ - - 22334455kkjjiihhZZ[[\\]]''&&%%$$~~}}||VVWWXXYY PPQQRRSS-,,++**)))**++,,ttssrrqqQQRRSSTTLLKKJJIIyyzz{{||$$##""!!00112233JJIIHHGG66778899ggffeedd^^__``aa##""!!{{zzyyxxZZ[[\\]]YYZZ[[\\)((''&&%--..//00ppoonnmmUUVVWWXXHHGGFFEE}}~~ 44556677FFEEDDCC::;;<<==ccbbaa``bbccddeewwvvuutt^^__``aa]]^^__``%$$##""! - - 11223344llkkjjiiYYZZ[[\\DDCCBBAA==>>??@@BBAA@@??>>??@@AA__^^]]\\ffgghhiissrrqqppbbccddeeaabbccdd!  55667788hhggffee]]^^__``@@??>>==AABBCCDD>>==<;:9 BBCCDDEE[[ZZYYXXjjkkllmmoonnmmllffgghhii - - eeffgghh99::;;<>??@@``__^^]]eeffgghh88776655 IIJJKKLL43322110""##$$%%{{zzyyxxJJKKLLMMSSRRQQPPrrssttuu - - - -ggffeeddnnooppqqmmnnoouuAABBCCDD\\[[ZZYYiijjkkll44332211 - - MMNNOOPP0//..--,&&''(())wwvvuuttNNOOPPQQOONNMMLLvvwwxxyy ccbbaa``rrssttuu~~}}||vvwwxxyy  ~~}}EEFFGGHHXXWWVVUUmmnnoopp00//..--QQRRSSYY,++**))(**++,,--ssrrqqppRRSSTTUUKKJJIIHHzz{{||}}__^^]]\\vvwwxxyy{{zzyyxxzz{{||}} - - !!""##$$||{{zzyyIIJJKKLLTTSSRRQQqqrrsstt,,++**))ZZ[[\\]](''&&%%$ ..//0011oonnmmllVVWWXXYYGGFFEEDD~~[[ZZYYXXzz{{||}}wwvvuuoo~~%%&&''((xxwwvvuuMMNNOOPPPPOONNMMuuvvwwxx((''&&%%^^__``aa$##""!! - - 22334455kkjjiihhZZ[[\\]]CCBBAA@@WWVVUUTT~~ !!""##nnmmllkk))**++,,ttssrrqqQQRRSSTTLLKKJJIIyyzz{{||$$##""!!bbccddee66778899ggffeedd^^__``aa??>>==<<!!""##SSRRQQPP$$%%&&''jjiihhgg--..//00ppoonnmmUUVVWWXXHHGGFFEE}}~~  - - ffgghhii::;;<<==ccbbaa``bbccddee;;::9988$$%%&&''OONNMMLL(())**++ffeeddcc - - 11223344llkkjjiiYYZZ[[\\DDCCBBAA jjkkllmm>>??@@AA__^^]]\\ffgghhii77665544(())**++KKJJIIHH,,--..//bbaa``__ 55667788hhggffee]]^^__``@@??>>==nnoouuvvBBCCDDEE[[ZZYYXXjjkkllmm33221100,,--..//GGFFEEDD00112233^^]]\\[[99::;;<>??@@``__^^]]eeffgghh88776655 zzyyxxww{{||}}~~ ""##$$%%{{zzyyxxJJKKLLMMSSRRQQPPrrssttuu++**))((44556677??>>==<<8899::;;QQPPOONNAABBCCDD\\[[ZZYYiijjkkll44332211 - -  vvuuoonn&&''(())wwvvuuttNNOOPPQQOONNMMLLvvwwxxyy''&&%%$$==>>??@@;;::9988<<==>>??MMLLKKJJ ~~}}EEFFGGHHXXWWVVUUmmnnoopp00//..--!!""##$$mmllkkjj**++,,--ssrrqqppRRSSTTUUKKJJIIHHzz{{||}}##""!! AABBCCDD77665544@@AABBCCIIHHGGFF!!""##$$||{{zzyyIIJJKKLLTTSSRRQQqqrrsstt,,++**))%%&&''((iihhggff ..//0011oonnmmllVVWWXXYYGGFFEEDD~~EEFFGGHH33221100ZHAbtlJ`f~ےbHA`vXnے`JXQtlJnXv`bHAZdrtA`vXnے`JXQfpvXQJ`ےtbdQpfH~pZA`~Hf˂rXQltbvpfH˂pZrd|~Hf˂rXQtbn˂pZHAd|ZvnXHAZp˂f`vbے`dQbtvnX`ےbZ|df`vbے`dQbtbHAXQJdrtAfH~pZHAbf~Zp˂tAJlnvpے`JXQtArdHfpvZp˂vpfr˂ptArdf~Hp˂rJltvpfr˂pnXv`bHAZZ|l璐f`vJXQrbpvnJ`ےdQZ|~f`HAbےZdQbtpvnJ`ےvpfbے`dQbt璕v`f~rXQJXnvJXQrlJtArv`fHAZp˂rtAJlXnvJXQrlJtAr`ےbJltf`vXے`JHfpvrXQJ`tbdQZfH~r˂p|ZdQbnXvrXQJ`H~fZHAb|ZdQbfpvXQJ`ےbdQZ|H~fZHAےf~Hp˂rtbdQZXnvtlJXv`fbHAZpdrtAJvXn`JXQrlJtAXv`fbHAZpHf`JXQHAblJtArfpv`ےbpfH~˂pZHAd|Z~HfprXQJtbdQpfH~˂pZHAdfHAZp˂bQZdnvpXQr˂nXvےbHA|drf`vXZHAbtlJ`f~ےbHA`vXnے`JXQtlJnXv`bHAZdrtA`vXn`JXQrfpvXQJ`ے|drpfH~tAd|~Hf˂rXQltbvpfH˂pZrd|~Hf˂rXQvXnے`Jd|ZnXv`HAZdf`vbے`dQbtvnX`ےbZ|df`vbے`~HXvrXQJrtAJlfH~pZHA`f~Zp˂tAJlnvpے`JXQtArdHXv`Zp˂vpfr˂ptArdf~Hp˂rJltvpfbtlnXv`bHAZtAJl璐vpZdQbtpvnJ`ےdQZ|~f`HAbےZdQbtpvnJ`ےvpfHXQr˂dQbtf~HrtAJlXnvJXQrlJtArv`fHAZp˂rtAJlXnvJXQr`f~`ےbtbdQf`vXے`JXQHfpvrXQJ`tbdQZfH~r˂p|ZdQbf~HbHAZH~fZHAb|ZdQbfpvXQJ`ےbdQZ|H~fJtAdf~Hp˂rtbdQZfH~lJtAXv`fbHAZpdrtAJvXn`JXQrlJtAXv`fbHAZ~f`pZHAbl|ZdQfpvtbdQpfH~˂pZHAd|Z~HfprXQJtbdQpfH~˂pZHAHfpvHAZp˂Z|dnvprbt璀nXvےbHA|drf`vXZHAbtlJfpvdrtA`vXnے`JXQtlJnXv`bHAZdrtA`vXn|ZdQbfpvXQJ`ے|drf`vXrd|~Hf˂rXQltbvpfH˂pZrd|~HfdrtAJvXnے`JbtlnXv`Z|df`vbے`dQbtvnX`ےbZ|df`vے`JnXvbHArtAJlfH~lJtAd`f~Zp˂tAJlnvpے`JXQtArdnXv`JbdQ瀅vpfr˂ptArdf~Hp˂rJltvpftlJnXv`bHAZtAdQZ|nvpZdQbtpvnJ`ےdQZ|~f`HAbےZdQbtpvnltbvpfHXQr˂JtArdffpvrtAJlXnvJXQrlJtArv`fHAZp˂rtAJlXnvXQrbt`f~Zp˂tbdQf`vX|ZdQHfpvrXQJ`tbdQZfH~r˂p|ZdQbf~HZ|dH~fZHAb|ZdQbfpvXQJ`ےbdQZ|H~ftArdf~Hp˂rdrtAfH~lJtAXv`fbHAZpdrtAJvXn`JXQrlJtAXv`fdQZ|~f`p`JXQ|ZdQnrXQtbdQpfH~˂pZHAd|Z~HfprXQJtbdQpfH~lJtAHfpvrXQJ`Z|rAJnvpbtlnXvےbHA|drf`vXZHAbtlJfpvrtAJl`vXnے`JXQtlJnXv`bHAZdrtAZHAb|ZdQbfpvXQJ`ےJltf`vXrd|~Hf˂rXQltbvpfH˂pZrd|HfpdrtAJvXnr˂pbtlJ`ےZ|df`vbے`dQbtvnX`ےbZ|df`vd|Z~HےbHAltbfH~JtArd`f~Zp˂tAJlnvpے`JXQtArd~HftbdQ瀅vpfr˂ptArdf~Hp˂rJltے`JXQtlJnXv`bHAZbdQZ|H~fZdQbtpvnJ`ےdQZ|~f`HAbےZdQbtvnrltbvpfHZHAbJtArdHAZp˂rtAJlXnvJXQrlJtArv`fHAZp˂rtAJlXnvdQbtfpvZp˂dQZ|fZHAb|ZdQHfpvrXQJ`tbdQZfH~r˂p|ZdQbpvnZ|dH~fZHAb|ZdQbfpvXQJ`ےbdQZ|r˂ptArdf~Hp˂rdrtAZHAblJtAXv`fbHAZpdrtAJvXn`JXQrlJtAXQJ`ےdQZ|~f`ے`JXQtlJrXQJtbdQpfH~˂pZHAd|Z~HfprXQJtbdQpfH~lJtArnXv`rXQJ`drtAJے`JbtlnXvےbHA|drf`vXZHAbtlJXv`frtAJl`vXnے`JXQtlJnXv`bHAZdtAJZHAb|ZdQbfpvXQJ`ےJltJQrrd|~Hf˂rXQltbvpfH˂pZrd|HAZpdrtAJvXnr˂ptArd`ےbZ|df`vbے`dQbtvnX`ےbZ|dfZHAd|Zf~Hp˂rltbXQr˂JtArd`f~Zp˂tAJlnvpے`JXQtArd~HftbQZvpfr˂ptArdf~Hp˂rltbے`JXQtlJnXv`bHAZdrtAJpZHAZdQbtpvnJ`ےdQZ|~f`HAbےZdQbt˂rXQltbvpfHZHAb|ZdQbHAZp˂rtAJlXnvJXQrlJtArv`fHAZp˂rtAJlbے`dQbtfpvXQJ`ےdQZ|pZHAb|ZdQHfpvrXQJ`tbdQZfH~r˂p|ZdQbpvndrtAJH~fZHAb|ZdQbfpvXQJ`ےnvpr˂ptArdf~Hp˂rltbbے`lJtAXv`fbHAZpdrtAJvXn`JXQrlJtAJ`ےdQZ|~f`˂pZtlJrXQJtbdQpfH~˂pZHAd|Z~HfprXQJtbdQJXQrlJtArnXv`bHAZAJltے`JbtlnXvےbHA|drf`vXZHAbtlJXv`pltb`vXnے`JXQtlJnXv`bHAZfHfZHAb|ZdQbfpvXQJ`ےdQZ|JXQrrd|~Hf˂rXQltbvpfH˂pZrdfbHAZpdrtAJvXnHAbےtArd`ےbZ|df`vbے`dQbtvnX`ےbZ|d˂pZHAd|Zpvnp˂rbnvXQr˂JtArd`f~Zp˂tAJlnvpے`JXQtArdvnXdQZ|vpfr˂ptArdf~Hp˂r`vXnے`JXQtlJnXv`bHAZdrtAJpZHAZdQbtpvnJ`ےdQZ|~f`HAbے~Hf˂rXQltbvpfH`JXQr|ZdQtAHAZp˂rtAJlXnvJXQrlJtArv`fHAZp˂tAJlbے`dQbtXv`fXQJ`ےpfHpZHAb|ZdQHfpvrXQJ`tbdQZfH~r˂p|ZdQbv`fdrtAJH~fZHAb|ZdQbfpvXQJ`ےvpfr˂ptArdf~Hp˂rltbbے`lJtAXv`fbHAZpdrtAJvXn`JXQrpvnJ`ےdQZ|~f`˂pZrdfrXQJtbdQpfH~˂pZHAd|Z~HfprXQJtbnJXQrlJtAr~HfbHAXQf`vXے`JbtlnXvےbHA|drf`vXZHAbtlJ~Hfpltb`vXnے`JXQtlJnXv`bHAZH~fZHAb|ZdQbfpvXQJ`ےdQZ|lJXQrZrd|~Hf˂rXQltbvpfH˂pZXv`fbHAZpdrtAJvXnHAbے~Hf`ےbZ|df`vbے`dQbtvnX`ےbvpfH˂pZHAd|ZpvnJ`ےnvpXQr˂JtArd`f~Zp˂tAJlnvpXQr˂ے`JXQtArdvnXdQZ|vpfr˂ptArdf~HdrtA`vXnے`JXQtlJnXv`bHAZtbdQHAbےZdQbtpvnJ`ےdQZ|~f`HAے`~Hf˂rXQltbvpfH`JXQHAvnXv`HAZp˂rtAJlXnvJXQrlJtArv`fHAZp˂f`vbے`dQbtXv`fbHAZpfH~pZHAb|ZdQHfpvrXQJ`tbdQZfH~pZHAbr˂p|ZdQbv`p˂rAJltH~fZHAb|ZdQbfpvJltvpfr˂ptArdf~Hp˂rZ|d`JXQrlJtAXv`fbHAZpdrtAJvXnJXQrbpvnJ`ےdQZ|~f`bے`f~HrXQJtbdQpfH~˂pZHAd|Z~HfprXQJXnvJXQrlJtAr~HX˂rXQf`vXے`JbtlnXvےbHA|drf`vXے`JZHAbtlJrXQJbdQZ|`vXnے`JXQtlJnXv`bdQZ|H~fZHAb|ZdQbfpvXQJ`ےrtAJl˂pZrd|~Hf˂rXQltbvpfHtlJXv`fbHAZpdrtAJvXnJXQrfpv`ےbZ|df`vbے`dQbtvnX`ےbpfH~˂pZHAd|Zv`fJ`ےnvpXQr˂JtArd`f~Zp˂tAJlnvpXQr˂ے`JXQtArd`ےbdrtvpfr˂ptArdfHfdrtA`vXnے`JXQtlJnXv`bHAZtbdQHAbےZdQbtpvnJ`ےdQZ|~f`tAd|~Hf˂rXQltbvpfH˂pZHAnXv`HAZp˂rtAJlXnvJXQrlJtArv`fHAZdf`vbے`dQbt~HfpbHAZpfH~pZHAb|ZdQHfpvrXQJ`tbdQZfH~pZHAbr˂p|ZdQbHAZp˂AJltH~fZHAb|ZdQbpvnJltvpfr˂ptArdf~Hp˂rZ|l`JXQrlJtAXv`fbHAZpdrtAJvXnZdQbtpvnJ`ےdQZ|~f`bے`f~HrXQJtbdQpfH~˂pZHAd|Z~HfprtAJlXnvJXQrlJtArvnX˂bf`vXے`JbtlnXvےbHA|drf`vXے`JZHAbtlJrXQJbdQZ|`vXnے`JXQtlJrXQJ`bdQZ|H~fZHAb|ZdQbfpvXQJ`ےtbn˂pZArd|~Hf˂rXQltbvpfHlJtAXv`fbHAZpdrtAJvXnJXQrfpv`ےbZ|df`vbے`dQbtvnXtbdQpfH~˂pZHAd|Zv`fHAZdnvpXQr˂JtArd`f~Zp˂tAJlnvpXQr˂ے`JXQtArd`p˂drtvpfr˂ptArdےHAZdrtA`vXnے`JXQtlJnXv`bHAZvp`vb`JXZdQbtpvnJ`ےdQZ|~fZrd|~Hf˂rXQltbvpfH˂p`JnvfHAZp˂rtAJlXnvJXQrlJtArv`fZ|df`vbے`dQbt~HfprtAJfH~pZHAb|ZdQHfpvrXQJ`tbdQZfH~pZHAbr˂p|ZdQbrXQJ`AJbdQH~fZHAb|ZdQbp˂rJltvpfr˂ptArdf~Hp˂rXnvQr˂plJtAXv`fbHAZpdrtAJHAbےZdQbtpvnJ`ےdQZ|~f`XQr˂~HfprXQJtbdQpfH~˂pZHAd|ZHfpvrtAJlXnvJXQrlJtArv~bdQZ|f`vXے`JbtlnXvےbHA|drf`vXے`JZHAbtlJےbHAZ|d`vXnے`JXQtlJXQJ`ےbdQZ|H~fZHAb|ZdQbfpvXQJ`ےpfH~ZHAbrd|~Hf˂rXQltb`JXQrlJtAXv`fbHAZpdrtAJvXnpZHAbvnX`ےbZ|df`vbے`dQbt璀nrXQtbdQpfH~˂pZHAd|ZHfpvdrtAnvpXQr˂JtArd`f~Zp˂tAJlnvpXQr˂ے`JXQtArdZp˂rtAJlvpfr˂ptArdbHAZdrtA`vXnے`JXQtlJnXv`bHAZf`vے`JXZdQbtpvnJ`ےdQZ|˂pZrd|~Hf˂rXQltbvpfHے`Jv`fHAZp˂rtAJlXnvJXQrlJtArJ`ےZ|df`vbے`dQbt璀nXvJltfH~pZHAb|ZdQHfpvrXQJ`tbdQZfH~pZHAbr˂p|ZdQbrXQJ`tbdQH~fZHAbf~Hp˂rJltvpfr˂ptArdf~Hp˂rXnvQr˂plJtAXv`fbHAZpdtAJlHAbےZdQbtpvnJ`ےdQZ|~f`XQr˂~HfprXQJtbdQpfH~˂pZHAd|ZHAZp˂rtAJlXnvJXQrlJtAr`f~bdQZ|f`vXے`JbtlnXvےbHA|drfZHAbے`JZHAbtlJےbHAZ|d`vXnے`JXQfpvXQJ`ےbdQZ|H~fZHAb|ZdQbfpvXQJ`ےp`vXZHAbrd|~Hf˂rXQtbn`JXQrlJtAXv`fbHAZpdrtAJvXnp`JXQvnX`ےbZ|df`vbے`dQbt璀rXQJtbdQpfH~˂pZHAd|ZHfpvdrtAnvpXQr˂JtArd`f~Zp˂tAJl璐ے`JXQr˂ے`JXQtArdXQJ`ےrtAJlvpfr˂pnXv`bHAZdrtA`vXnے`JXQtlJnXv`bHAZnvpJQrZdQbtpvnJ`ےvpf˂pZrd|~Hf˂rXQltbvpfHrbtv`f~HAZp˂rtAJlXnvJXQrlJtAr`ےbZ|df`vbے`dQbt璀nXvJltbfH~pZHAb|ZdQHfpvrXQJ`tbdQZXQr˂pZHAbr˂p|ZdQbbHAZtbQZH~fZHAےf~Hp˂rJltvpfr˂ptArdf~Hp˂rfH~˂pZHAlJtAXv`fbHAZpHf`HAbےZdQbtpvnJ`ےdQZ|~f`l|ZdQfpv〉rXQJtbdQpfH~˂pZHAdfHAZp˂rtAJlXnvJXQrlJtAr`pvQZdrf`vXے`JbtlnXvےbHA|dtApZHAbے`JZHAbtlJp˂rdrtA`vXn`JXQrfpvXQJ`ےbdQZ|H~fZHAb|ZdQbfpvXQJ`ےf`vXbے`rd|~Hf˂rXQvXn`JXQrlJtAXv`fbHAZpdrtAJvXnbtlnXv``ےbZ|df`vbے`~HfprXQJtbdQpfH~˂pZHAd|ZnXv`tAJlnvpXQr˂JtArd`f~Zp˂Jltے`JXQr˂ے`JXQtArdXQJ`ےJltvpfbtlnXv`bHAZdrtA`vXnے`JXQtlJnXv`bHAZnvpJXQrZdQbtpvnJ`ےvpfH˂pZrd|~Hf˂rXQltbvpfHJtArdf~HHAZp˂rtAJlXnvJXQrvnX`ےbZ|df`vbے`dQbtf~HtbdQZfH~pZHAb|ZdQHfpvrXQJ`bnvXQr˂pZHAbr˂pf~HbHAZbdQZ|H~fJtAdf~Hp˂rJltvpfr˂ptArdf~Hp˂rfH~˂pZHAlJtAXv`fbHAZ~f`HAbےZdQbtpvnJ`ےdQZ|~f`|ZdQfpv〉rXQJtbdQpfH~˂pZHAv`fHAZp˂rtAJlXnvJXQrlJtArfpv|drf`vXے`JbtlnXvےbHApfHpZHAbے`JZHAbXv`fp˂drtA`vXn|ZdQbfpvXQJ`ےbdQZ|H~fZHAb|ZdQbfpvXQJ`ےvpfbے`rd|~HfdrtAJvXn`JXQrlJtAXv`fbHAZpdrtAJvXnbtlnXv``ےbZ|df`vے`J~HfprXQJtbdQpfH~˂pZHAd|ZnXv`tAJlnvpXQr˂JtArd`f~Zp˂f`vXے`JXQr˂ے`JXQ~HfbHAZpJltvpftlJnXv`bHAZdrtA`vXnے`JXQtlJnXv`bHAZH~fJXQrZdQbtpvnltbvpfH˂pZrd|~Hf˂rXQltbvpfH|ZdQbf~HfHAZp˂rtAJlXnvXQrbtvnX`ےbZ|df`vbے`dQbtpvntbdQZfH~pZHAb|ZdQHfpvrXQJ`nvpXQr˂pZHAbr˂ppvn˂rXQbdQZ|H~ftArdf~Hp˂rJltvpfr˂ptArdf~HdrtA`vXnZHAblJtAXv`fdQZ|~f`HAbےZdQbtpvnJ`ےdQZ|~f`tlJvnXvrXQJtbdQpfH~lJtAv`fHAZp˂rtAJlXnvJXQrlJtArrXQJ`|rAJlf`vXے`JbtlnXvےbHAfH~pZHAbے`JZHAbXv`fJ`ےrAJlZHAb|ZdQbfpvXQJ`ےbdQZ|H~fZHAb|ZdQbfpvdQZ|vpf`JXQrd|HfpdrtAJvXn`JXQrlJtAXv`fbHAZpdrtAJvXntArd`f~`ےbZ|df`vd|Z~HfprXQJtbdQpfH~˂pZHAd|Zp˂rtbdnvpXQr˂JtArd`f~Zdrf`vXے`JXQr˂ے`JXQ~HfbHAZptbdQZے`JXQtlJnXv`bHAZdrtA`vXnے`JXQtlJnXv`drtAJH~fr˂pZdQbtvnrltbvpfH˂pZrd|~Hf˂rXQltbvpfH|ZdQbHfpvHAZp˂rtAJlXnvdQbtvnX`ےbZ|df`vbے`dQbtXQJ`ےQZ|dfH~pZHAb|ZdQHfpvtAJlnvpXQr˂pZHAr˂ppv˂rXQ|drr˂ptArdf~Hp˂rJltvpfr˂ptArdfHfltb`vXHZHAblJtAXQJ`ےdQZ|~f`HAbےZdQbtpvnJ`ےdQZ|~f`tlJnXvrXQJtbdQpfH~lJtArv`fHAZp˂rtAJlXnvJXQrlJtArbHAZrtAJlf`vXے`JbtlnXvtbdQZfH~pZHAbے`JXQ|ZdQb~HfpJ`p˂tAJlZHAb|ZdQbfpvXQJ`ےbdQZ|H~fZHAb|ZdQbpvndQZ|~f``JXQrd|HAZpdrtAJvXn`JXQrlJtAXv`fbHAZpdrtAJvXntArdt`f~`ےbZ|dfZHAd|Z~HfprXQJtbdQpfH~˂pZHAd|Zp˂rtbdnvpXQr˂JtArd`fH|drf`vXے`JrbttlJvnXrXQJtbdQZے`JXQtlJnXv`bHAZdrtA`vXnے`JXQtlJrXQJ`drtAJvXnr˂pZZdQbt˂rXQltbvpfH˂pZrd|~Hf˂rXQltbvpfHlJtAHfpvHAZp˂rtAJlbے`dQbtvnX`ےbZ|df`vbے`dQbtXQJ`pQZ|dfH~pZHAb|ZdQfpvtAJlnvpXQr˂lJtAdtArdv`f`ےb|dnr˂ptArdf~Hp˂rJltvpfr˂ptArdےHAZltdvpfHAb`JlJtAJ`ےdQZ|~f`HAbےZdQbtpvnJ`ےdQZ|~fZrd|nvfrXQJtbdQJXQrlJtArv`fHAZp˂rtAJlXnvJXQrlJtAr˂rXQrtAJf`vXے`JbtlnrXQJtbdQZfH~pZHAb|ZdQ|ZdQb~HfpHAZp˂vffZHAb|ZdQbfpvXQJ`ےbdQZ|H~fZHAb|ZdQbp˂rrtAJl~f`XQr˂rdfbHAZpdrtAJvXn`JXQrlJtAXv`fbHAZpdrtAJHAbZdQbt~Hfp`ےbZ|d˂pZHAd|Z~HfprXQJtbdQpfH~˂pZHAd|ZJ`ےbdQZ|nvpXQr˂JtArd`ےHA|drf`vXے`JbtltlJvnXrXQJ`vXnے`JXQtlJnXv`bHAZdrtA`vXnے`JXQtlJXQJ`ےtbdQvXnpZHAb~Hf˂rXQltbvpfH˂pZrd|~Hf˂rXQltb˂pZHAlJtAvnXHAZp˂tAJlbے`dQbtvnX`ےbZ|df`vbے`dQbtbHAZpdrtAfH~pZHAb|ZdQZp˂tAJlnvpXQr˂JtArdtArdv`pv`ےbvpfr˂ptArdf~Hp˂rJltvpfr˂ptArdbHAZZ|dvp`vے`JpvnJ`ےdQZ|~f`HAbےZdQbtpvnJ`ےdQZ|bے`rd|v`frXQJtbnJXQrlJtArv`fHAZp˂rtAJlXnvJXQrlJtAr˂rXQJltf`vXے`JbtlrXQJ`tbdQZfH~pZHAb|ZdQ|ZdQbnXvHAXQJ`H~fZHAb|ZdQbfpvXQJ`ےbdQZ|H~fZHAbf~Hp˂rrtAJlXnvXQr˂Xv`fbHAZpdrtAJvXn`JXQrlJtAXv`fbHAZpdtAJlJXQrZdQtAr~Hfp`ےbvpfH˂pZHAd|Z~HfprXQJtbdQpfH~˂pZHAd|ZJ`ےbdQZ|nvpXQr˂JtArdےbHA|drf`vXے`JbtlJtArd`f~Zp˂|drfZHAbtlJnXv`bHAZdrtA`vXnے`JXQtlJrXQJ`bdQZ|H~fے`Jdtl˂rXQltbvpfH˂pZrd|~Hf˂rXQltbvpfHۑpJvˍpf|ZdQHfpvrXQJ`tAJl璐JQrtArdf~Hp˂rJltvpfr˂ptArdےHAZdrtA`vXnXQr˂JtArdJ`ےdQZ|~f`HAbےZdQbtpvnJ`ےdQZ|~frAHr󙐂˕H~ㅐfbtlnXvےbHAtdrtA˂pZH|ZdQbfpvXQJ`ےbdQZ|H~fZHAb|ZdQbp˂rJltvpfpZHAb|ZdQbHAZpdrtAJvXn`JXQrlJtAXv`fbHAZpdrtAJ˂pZ`ZQXAH`vXnJtArd`f~Zp˂JltAbے`tlJnXv`bHAZdrtA`vXnے`JXQtlJXQJ`ےbdQZ|H~f˂pbtl˂rXQltbvpfH˂pZrd|~Hf˂rXQltbHAbےr󙐂ˁ`vˍpf|ZdQHfpvrXQJ`bdQZ|JXQrtArdf~Hp˂rJltvpfr˂ptArdbHAZdrtA`vXnZHAbJtArdJ`ےdQZ|~f`HAbےZdQbtpvnJ`ےdQZ|`JXQrZQXb㉀H~ㅐfbtlnXvےbHAdrtA˂pZH|ZdQbfpvXQJ`ےbdQZ|H~fZHAbf~Hp˂rJltvpfے`JXQ|ZdQbHAZpdrtAJvXn`JXQrlJtAXv`fbHAZpdtAJl˂pZۑpJAH`vXnJtArd`f~Zp˂JltAbے`tlJnXv`bHAZdrtA`vXnے`JXQfpvXQJ`ےbdQZ|H~fr˂ptArd˂rXQltbvpfH˂pZrd|~Hf˂rXQtbnHAbےr󙐂ˁ`vˍpf|ZdQHfpvrXQJ`bdQZ|JXQrtArdf~Hp˂rJltvpfr˂pnXv`bHAZdrtA`vXnZHAbf~HJ`ےdQZ|~f`HAbےZdQbtpvnJ`ےvpf`JXQHAZQXb㉀H~ㅐfbtlnXvےbHAltbZHAb|ZdQbfpvXQJ`ےbdQZ|H~fZHAےf~Hp˂rJltvpfے`JXQfvnXbHAZpdrtAJvXn`JXQrlJtAXv`fbHAZpHf`bے`ۑp`Z`vXnJtArd`f~Zp˂dQZ|ے`JXQtlJnXv`bHAZdrtA`vXn`JXQrfpvXQJ`ےbdQZ|H~fHAbےv`f˂rXQltbvpfH˂pZrd|~Hf˂rXQvXnJXQrQXb㉀ەvˍp||ZdQHfpvrXQJ`drtAJr˂ptArdf~Hp˂rJltvpfbtlnXv`bHAZdrtA`vXn`JXQr~HfpJ`ےdQZ|~f`HAbےZdQbtpvnJ`ےvpfH˂pZHApJAHrdrQtbtlnXvےbHAltbZHAb|ZdQbfpvXQJ`ےbdQZ|H~fJtAdf~Hp˂rJltvpf˂pZvnXbHAZpdrtAJvXn`JXQrlJtAXv`fbHAZ~f`bے`ˁ`ZJltJtArd`f~Zp˂dQZ|lے`JXQtlJnXv`bHAZdrtA`vXn|ZdQbfpvXQJ`ےbdQZ|H~fHAbےv`f˂rXQltbvpfH˂pZrd|~HfdrtAJvXnJXQrQXb㉀bAdZ||ZdQHfpvrXQJ`tbnr˂ptArdf~Hp˂rJltvpftlJnXv`bHAZdrtA`vXn`JXQr~HfpJ`ےdQZ|~f`HAbےZdQbtpvnltbvpfH˂p`JpJAHrdrQtbtlnXvےbHAvp`ZAb`|ZdQbfpvXQJ`ےbdQZ|H~ftArdf~Hp˂rJltvpf˂p`vnvfbHAZpdrtAJvXn`JXQrlJtAXv`fdQZ|~f`XQr˂ۑpJltJtArd`f~Zp˂vXnJXQrtlJnXv`bHAZdrtAZHAb|ZdQbfpvXQJ`ےbdQZ|H~fJXQr~Hf˂rXQltbvpfH˂pZrd|HfpdrtAJvXnpZHAbJAHrbAdZ||ZdQHfpvrXQJ`vpfHpZHAtArdf~Hp˂rJltے`JXQtlJnXv`bHAZdrtA`vXn˂pZHApvnJ`ےdQZ|~f`HAbےZdQbtvnrltbvpfHے`Jˁ`ZQXdrQtbtlnXvےbHA~f`bے`|ZdQbfpvXQJ`ےbdQZ|r˂ptArdf~Hp˂rJltvpfbے`Xv`fbHAZpdrtAJvXn`JXQrlJtAXQJ`ےdQZ|~f`XQr˂b㉀ۑpJltJtArd`f~Zp˂vXnJXQrtlJnXv`bHAZdtAJZHAb|ZdQbfpvXQJ`ےbdQZ|H~fJXQr~Hf˂rXQltbvpfH˂pZrd|HAZpdrtAJvXnpZHAbJAHrbAdZ||ZdQHfpvrXQJ`vp`vpZHAtArdf~Hp˂rltbے`JXQtlJnXv`bHAZdrtA`vXn˂p`JpvnJ`ےdQZ|~f`HAbےZdQbt˂rXQltbvpfH˂pˁ`pfdrQtbtlnXvےbHAXnvbJQr|ZdQbfpvXQJ`ےnvpr˂ptArdf~Hp˂rJltvpfXQrbtXv`fbHAZpdrtAJvXn`JXQrlJtAJ`ےdQZ|~f`ZHAbH~ㅐfJltJtArd`f~Zp˂pfH~˂pZtlJnXv`bHAZfHfZHAb|ZdQbfpvXQJ`ےbdQZ|H~fl|Z~fpv˂rXQltbvpfH˂pZrdfbHAZpdrtAJvXnے`JXQ`vXnbAdZ||ZdQHfpvrXQJ`f`vHAbےtArdf~Hp˂r`vXnے`JXQtlJnXv`bHAZdrtA`vXndQbt璅nXv`J`ےdQZ|~f`HAbے~Hf˂rXQltbvpfHr˂pvˍpfdrQtbtlnXvےbHAXnv`JXQr|ZdQbfpvXQJ`ےvpfr˂ptArdf~Hp˂rJltvpflJtArf~HbHAZpdrtAJvXn`JXQrpvnJ`ےdQZ|~f`ZHAbH~ㅐfJltJtArd`f~Zp˂pfH~˂pZtlJnXv`bHAZH~fZHAb|ZdQbfpvXQJ`ےbdQZ|H~fd|Zfpv˂rXQltbvpfH˂pZXv`fbHAZpdrtAJvXnے`JXQ`vXnbAdZ||ZdQHfpvrXQJ`vpHAbےtArdf~HdrtA`vXnے`JXQtlJnXv`bHAZdrtA`vXndQbt璅nXv`J`ےdQZ|~f`HAے`~Hf˂rXQltbvpfHHAbےvˍpfdrQtbtlnXvےbHAfH~`JXQr|ZdQbfpvJltvpfr˂ptArdf~Hp˂rJltvpfl|ZdQf~HbHAZpdrtAJvXnJXQrbpvnJ`ےdQZ|~f``JXQrH~ㅐfJltJtArd`f~Zdrf`vXZHAbtlJnXv`bdQZ|H~fZHAb|ZdQbfpvXQJ`ےbdQZ|H~fbtlfvnX˂rXQltbvpfHtlJXv`fbHAZpdrtAJvXn˂pZ`vXnbAdZ||ZdQHfpvtAdQZ|nvpے`JXtArdfHfdrtA`vXnے`JXQtlJnXv`bHAZdrtA`vXnJtArdv`fJ`ےdQZ|~f`tAd|~Hf˂rXQltbvpfHHAbےvˍpfdrQtbtlnXvdrtAfH~Qr˂p|ZdQbpvnJltvpfr˂ptArdf~Hp˂rJltvpf|ZdQ~HfpbHAZpdrtAJvXnZdQbtpvnJ`ےdQZ|~f``JXQrH~ㅐfJltJtArd`fHJltf`vXZHAbtlJrXQJ`bdQZ|H~fZHAb|ZdQbfpvXQJ`ےbdQZ|H~fbtlvnX˂rXQltbvpfHlJtAXv`fbHAZpdrtAJvXn˂p``vXnbAdZ||ZdQfpvbdQZ|H~fے`JXtArdےHAZdrtA`vXnے`JXQtlJnXv`bHAZdrtA`vXnJtArdv`fJ`ےdQZ|~fZrd|~Hf˂rXQltbvpfHJXQrvˍpfdrQtbtlnrXQJdrtA`vXnQr˂p|ZdQbp˂rJltvpfr˂ptArdf~Hp˂rJltvpftlJ~HfpbHAZpdrtAJHAbےZdQbtpvnJ`ےdQZ|~f`˂pZHAH~ㅐfJltJtArd`ےHAJltvpfZAb`tlJXQJ`ےbdQZ|H~fZHAb|ZdQbfpvXQJ`ےbdQZ|H~ftArdvnv˂rXQltb`JXQrlJtAXv`fbHAZpdrtAJvXnbے``vXnbAdZ||ZdQZp˂drtAJH~fJXQrtArdbHAZdrtA`vXnے`JXQtlJnXv`bHAZdrtAZHAb|ZdQbf~HJ`ےdQZ|˂pZrd|~Hf˂rXQltbvpfHJXQrvˍpfdrQtbtlrXQJ`ltb`vXn˂pZHAf~Hp˂rJltvpfr˂ptArdf~Hp˂rJlt˂pZtlJfpvbHAZpdtAJlHAbےZdQbtpvnJ`ےdQZ|~f`˂p`ZH~ㅐfJltJtArdےbHAdQZ|vp`bے`fpvXQJ`ےbdQZ|H~fZHAb|ZdQbfpvXQJ`ےbdQZ|HAbےtArdnXv`˂rXQtbn`JXQrlJtAXv`fbHAZpdrtAJvXnQXb㉀۝`vXnbAdZ|f~Zp˂drtAJvXnJXQrnXv`bHAZdrtA`vXnے`JXQtlJnXv`bHAZdtAJ`JXQr|ZdQtAf~HJ`ےvpf˂pZrd|~Hf˂rXQltbvpfHpJAHrvˍpfdrQtHfpvrXQJ`ltbvpfH˂pZAf~Hp˂rJltvpfr˂ptArdf~Hp˂rltb˂pZrd|fpvbHAZpHf`HAbےZdQbtpvnJ`ےdQZ|~f`ˁ`ZH~ㅐfJltnXvےbHAdQZ|l~f``JXQrfpvXQJ`ےbdQZ|H~fZHAb|ZdQbfpvXQJ`ےnvpHAbےZdQbtnXv`f˂rXQvXn`JXQrlJtAXv`fbHAZpdrtAJvXnQXb㉀۝`vXnbAdZ|`f~Zp˂tbdQvXnbtlnXv`bHAZdrtA`vXnے`JXQtlJnXv`bHAZfHf`JXQHAlJtA~fpvJ`ےvpfH˂pZrd|~Hf˂rXQltbvpfHp`ZQXvˍpfdrQtHfpvrXQJ`Z|dvpfHJtAdf~Hp˂rJltvpfr˂ptArdf~Hp˂r`vXnbے`rd|nXvbHAZ~f`HAbےZdQbtpvnJ`ےdQZ|~f`b㉀ۑpH~ㅐfJltnXvےbHArtAJl~v|ZdQbfpvXQJ`ےbdQZ|H~fZHAb|ZdQbfpvXQJ`ےvpfJXQrZdQbt`f~drtAJvXn`JXQrlJtAXv`fbHAZpdrtAJvXnJAHr󙐝`vXnbAdZ|`f~Zp˂tbdQpfH~tlJnXv`bHAZdrtA`vXnے`JXQtlJnXv`bHAZH~f˂pZHAl|ZHfpvltbvpfH˂pZrd|~Hf˂rXQltbvpfHˁ`ZQXvˍpfdrQtHfpvrXQJ`Z|df`vtArdf~Hp˂rJltvpfr˂ptArdf~HdrtA`vXnbے`dQbt璀nXvdQZ|~f`HAbےZdQbtpvnJ`ےdQZ|~f`b㉀ۑpH~ㅐfJltnXvےbHArtAdQZXnv|ZdQbfpvXQJ`ےbdQZ|H~fZHAb|ZdQbfpvJltvpfJXQrlJtAr`ffpdrtAJvXn`JXQrlJtAXv`fbHAZpdrtAJvXnJAHr󙐝`vXnbAdZ|`f~Zp˂|drpfH~tlJnXv`bHAZdrtA`vXnے`JXQtlJnXv`bdQZ|H~f˂p`Jd|ZvnrltbvpfH˂pZrd|~Hf˂rXQltbvpfHۑpJvˍpfdrQtHfpvrXQJ`tAJl璐f`vtArdf~Hp˂rJltvpfr˂ptArdfHfdrtA`vXnXQr˂dQbtXQJ`ےdQZ|~f`HAbےZdQbtpvnJ`ےdQZ|~f`AHr󙐂˕H~ㅐfJltnXvےbHAtbdQZXH~|ZdQbfpvXQJ`ےbdQZ|H~fZHAb|ZdQbpvnJltvpfpZHAblJtArHAZpdrtAJvXn`JXQrlJtAXv`fbHAZpdrtAJvXn`ZQXb`vXnbAdZ|KKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL \ No newline at end of file diff --git a/vendor/endroid/qr-code/assets/data/qrv40_1.dat b/vendor/endroid/qr-code/assets/data/qrv40_1.dat deleted file mode 100755 index 4edce7de0..000000000 --- a/vendor/endroid/qr-code/assets/data/qrv40_1.dat +++ /dev/null @@ -1,353 +0,0 @@ -~}~}~}~}~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwvuvuvuvuvutstststststststsrqrqrqrqpopopopopopopoponmnmnmnmlklklklklklklklkjijijijijijijijihghghghghghghghgfefefefefefedcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWVUVUVUVUVUVUVUVUSTSTSTSTTSRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;:9:9:9:9:9:9:9:9787777776565656565656565434343434343434321212121212121210/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('&%&%&%&%~}~}~}~}~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqpopopopopopopoponmnmnmnmlklklklklklklklkjijijijijijijijihghghghghghghghgfefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWVUVUVUVUVUVUVUVUSTSTSTSTRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKLKJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;:9:9:9:9:9:9:9:9878787876565656565656565434343434343434321212121212121210/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('&%&%&%&%~}~}~}~}~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqpopopopopopopoponmnmnmnmlklklklklklklklkjijijijijijijijihghghghghghghghgfefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWVUVUVUVUVUVUVUVUSTSTSTSTRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCBABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;:9:9:9:9:9:9:9:98787878765656565656565654343434343434343212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('&%&%&%&%~}~}~}~}~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqpopopopopopopoponmnmnmnmlklklklklklklklkjijijijijijijijihghghghghghghghgfefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWVUVUVUVUVUVUVUVUSTSTSTSTRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;:9:9:9:9:9:9:9:98787878765656565656565654343434343434343212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)('('('('('('('('&%&%&%&%~}~}~}~}~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwvuvuvuvuvuvuvuvutstststststststsrqrqrqrqpopooooooooopoponmnmnmnmlklklklklklklklkjijijijijijijijihghghghghghghghgfefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWVUVUVUVUVUVUVUVUSTSTSTSTRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;:9:9:9:9:9:9:9:98787878765656565656565654343434343434343212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)('('('('('('('('&%&%&%&%~}~}~}~}~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwvuvuvuvuvuvuvuvutststststsrqrqrqrqrqrqrqopopopoppoponmnmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghghghghghgfefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWVUVUVUVUVUVUVUVUSTSTSSSSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;:9:9:9:9:98787878787878765656565656565654343434343434343212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)('('('('('('('('&%&%&%&%~}~}~}~}~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyxwxwxwxwxwvuvuvuvuvuvuvuvutstststsrqrqrqrqrqrqrqrqopopopopnmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghghghgfefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWVUVUVUVUVUVUVUVUSSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;:9:9:9:9877777788787877765656565656565654343434343434343212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)('('('('('('('('&%&%&%&%~}~}~}~}~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststsrqrqrqrqrqrqrqrqopopopopnmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_`_`_^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMNMLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;:9:9:9:9787878787778787865656565656565654343434343434343212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)('('('('('('('('&%&%&%&%~}~}~}~}~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststsrqrqrqrqrqrqrqrqopopopopnmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;:9:9:9:9787878787878787865656565656565654343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)('('('('('('('('&%&%&%&%~}~}~}~}~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststsrqrqrqrqrqrqrqrqopopopopnmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWVUVUVUVUVUVUVUVUTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=<;<;<;<;<;<;<;:9:9:9:9787878787878787865656565656565654343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%~}~}~}~}~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststsrqrqrqrqrqrqrqrqopopopoonmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWVUVUVUVUVUVUTSTSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9787878787878787865656565656565654343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%~}~}~}~}~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststsrqrqrqrqrqrqrqrqoooopoponmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijijijihghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWVUVUVUVUTSTSSSSSTSTSTSTSRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9787878787878787865656565656565654343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%~}~}~}~}~}~}~}~}|{|{|{|{|{|{|{zyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststsrqrqrqrqrqrqrqrqpopopoponmnmnmnmnmnmnmnmlklklklklklklklkjijijijijijihghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababababa`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWVUVUVUVUSTSTSTSTSSSSSTSTRQRQRQRQRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9787877777878787865656565656565654343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%~}~}~}~}~}~}~}~}|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststsrqrqrqrqrqrqrqrqpopopoponmnmnmnmnmnmnmnmlklklklklklklklkjijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababababa`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWVUVUVUVUSTSTSTSTSTSTSTSTRQRQRQRQRQRQRQRQPOPOPOPOPONMNMNMNMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9778787877777778765656565656565654343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%~}~}~}~}~}~}~}~}|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststsrqrqrqrqrqrqrqrqpopopoponmnmnmnmnmnmnmnmlklklklklklklklkjijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYZYZYXWXWXWXWXWXWVUVUVUVUSTSTSTSTSTSTSTSTRQRQRQRQRQRQRQRQPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGHGFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?@?@?@?>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9878787878787878765656565434343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%~}~}~}~}~}~}~}~}|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststsrqrqrqrqrqrqrqpopopopoponmnmnmnmnmnmnmnmlklklklklklklklkjijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUSTSTSTSTSTSTSTSTRQRQRQRQRQRQRQRQPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?@?>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9878787878787878765656565434343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%~}~}~}~}~}~}~}~}|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststsrqrqrqrqpopopooopopopoponmnmnmnmnmnmnmnmlklklklklklklklkjijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUSTSTSTSTSTSTSTSTRQRQRQRQRQRQRQRQPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9878787878787878765656565434343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%~}~}~}~}~}~}~}~}|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststsrqrqrqrqooopopoppoooooopnmnmnmnmnmnmnmnmlklklklklklklklkjijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUSTSTSTSSSTSTSTSTRQRQRQRQRQRQRQRQPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9878787878787878765656565434343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%~}~}~}~}~}~}~}|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvuvutstststsrqrqrqrqopopopopopopopopnmnmnmnmnmnmnmnmlklklklklklkjijijijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcdcdcbabababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUSSSSTSTSSTSSSSSSRQRQRQRQRQRQRQRQPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;<;:9:9:9:9878787878787777765656565434343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvuvuvuvutststststsrqrqrqrqopopopopopopopopnmnmnmnmnmnmnmnmlklklklkjijijijijijijijihghghghghghghghgfefefefefefefefedcdcdcdcdcdcbabababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[\[\[ZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQRQPOPOPOPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIJIJIJIHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;<;<;<;:9:9:9:9:9777778788787878765656565434343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvutstststststststsrqrqrqrqopopopopopopopopnmnmnmnmnmnmnmnmlklklklkjijijijijijijijihghghghghghghghgfefefefefefefefedcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[\[\[ZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIJIHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABABABABA@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;:9:9:9:9:9:9:9:9787878786565656565656565434343434343434321212121212121210/0/0/0/0/0/0/0/.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvutstststststststsrqrqrqrqopopopopopopopopnmnmnmnmnmnmnmnmlklklklkjijijijijijijijihghghghghghghghgfefefefefefefefedcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABABA@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;:9:9:9:9:9:9:9:9787878786565656565656565434343434343434321212121212121210/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('('('('('&%&%&%&%&%&%&%&%~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvutstststststststsrqrqrqrqopopopopopopopopnmnmnmnmnmnmnmnmlklklklkjijijijijijijijihghghghghghghghgfefefefefefefefedcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUTSTSTSTSTSTSTSTSRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;:9:9:9:9:9:9:9:9787878786565656565656565434343434343434321212121212121210/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('&%&%&%&%&%&%&%&%&%&%&%&%~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvutstststststststsrqrqrqrqoooooopoopopoooonmnmnmnmnmnmnmnmlklklklkjijijijijijijijihghghghghghghghgfefefefefefefefedcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUTSTSTSTSTSTSTSSSRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;:9:9:9:9:9:9:9:9787878786565656565656565434343434343434321212121212121210/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('&%&%&%&%&%&%&%&%&%&%&%&%~}~}~}~}~}|{|{|{|{|{|{|{|{zyzyzyzyzyzyzyzyxwxwxwxwxwxwxwxwvuvuvuvutstststststststsrqrqrqrqpopopopooopopoponmnmnmnmnmnmlklklklklklkjijijijijijijijihghghghghghghghgfefefefefefefefedcdcdcdcbabababababababa`_`_`_`_`_`_`_`_^]^]^]^]^]^]^]^]\[\[\[\[ZYZYZYZYZYZYZYZYXWXWXWXWXWXWXWXWVUVUVUVUTSSSSSSTSSTSTSTSRQRQRQRQPOPOPOPOPOPOPOPONMNMNMNMNMNMNMNMLKLKLKLKLKLKLKLKJIJIJIJIHGHGHGHGHGHGHGHGFEFEFEFEFEFEFEFEDCDCDCDCDCDCDCDCBABABABA@?@?@?@?@?@?@?@?>=>=>=>=>=>=>=>=<;<;<;<;:9:9:9:9:9:9:9:9787878786565656565656565434343434343434321212121212121210/0/0/0/.-.-.-.-.-.-.-.-,+,+,+,+,+,+,+,+*)*)*)*)*)*)*)*)('('('('&%&%&%&%&%&%&%&%&%&%&%&%&%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!                - - - - - - - - &%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!                - - - - - - - - &%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!                - - - - - - - - &%&%&%&%$#$#$#$#$#$#$#$#"!"!"!"!                - - - - - - - - &%&%&%&%$#$#$#$#"!"!"!"!"!"!"!"!                - - - - - - - &%&%&%&%$#$#$#$#"!"!"!"!"!"!"!"!                - - - - &%&%&%&%$#$#$#$#"!"!"!"!"!"!"!"!                - - - - &%&%&%&%$#$#$#$#"!"!"!"!"!"!"!"!                - - - - &%&%&%&%$#$#$#$#"!"!"!"!"!"!"!"!              - - - - &%&%&%&%$#$#$#$#"!"!"!"!"!"!"!"!            - - - - $#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!            - - - - - $#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!            - - - - - - - - $#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!            - - - - - - - - $#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!            - - - - - - - - $#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!            - - - - - - - - $#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!            - - - - - - - - $#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!           - - - - - - - - $#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!        - - - - - - - - $#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!        - - - - - - - - $#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!        - - - - - - - - $#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!        - - - - - - - - $#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!        - - - - - - - - $#$#$#$#$#$#$#$#"!"!"!"!"!"!"!"!         - - - - - - - - $#$#$#$#$#$#$#$#"!"!"!"!                - - - - - - - - $#$#$#$#$#$#$#$#"!"!"!"!                - - - - - - - - LLKKJJII))**++,,aa``__^^(())**++NNMMLLKK%%&&''((ttssrrqq UUVVWWXXDDCCBBAA!!""##$$xxwwvvuuQQRRSSTTHHGGFFEE ||{{zzyyMMNNOOPP33221100IIJJKKLL0//..--,::;;<<==__^^]]\\ jjkkllmm//..--,,66778899ccbbaa``ffgghhii3322110022334455ggffeeddbbccddeeccddeeffOOPPQQRRJJIIHHGG~~}}||{{KKLLMMNNNNMMLLKK{{||}}~~GGHHIIJJRRQQPPOOwwxxyyzz||{{zzyy}}~~onnmmllkddeeffgg5544332200112233iihhggff``aabbcc99887766,,--..//mmllkkjj \\]]^^__==<<;;::(())**++bbaa``__!!""ZYYXWVUTyyzz{{|| EEFFGGHHTTSSRRQQuuvvwwxx$$##""!!AABBCCDDXXWWVVUU HHGGFFEE--..//00]]\\[[ZZ,,--..//JJIIHHGG))**++,,ppoonnmm - - YYZZ[[\\@@??>>==%%&&''((ttssrrqq UUVVWWXXDDCCBBAA!!""##$$xxwwvvuuQQRRSSTT//..--,,MMNNOOPP,++**))(>>??@@AA[[ZZYYXX - - nnooppqq++**))((::;;<<==__^^]]\\ jjkkllmm//..--,,66778899ccbbaa``ffgghhiigghhiijjSSTTUUVVFFEEDDCC !!""zzyyxxwwOOPPQQRRJJIIHHGG~~}}||{{KKLLMMNNNNMMLLKK{{||}}~~xxwwvvuu - - kjjiihhghhiijjkk1100//..44556677eeddccbbddeeffgg5544332200112233iihhggff``aabbcc99887766,,--..//^^]]\\[[##$$%%&&SSRRQQPP}}~~~~}}IIJJKKLLPPOONNMMyyzz{{|| EEFFGGHHTTSSRRQQDDCCBBAA11223344YYSSRRQQ00112233FFEEDDCC--..//00llkkjjii]]^^__``<<;;::99))**++,,ppoonnmm - - YYZZ[[\\@@??>>==%%&&''((ttssrrqq UUVVWWXX++**))((QQRRSSYY(''&&%%$BBCCDDEEWWVVUUTTrrssttuu''&&%%$$>>??@@AA[[ZZYYXX - - nnooppqq++**))((::;;<<==__^^]]\\ jjkkllmmkkllmmnn~~}}||{{ WWXXYYZZBBAA@@??##$$%%&&vvuuttssSSTTUUVVFFEEDDCC !!""zzyyxxwwOOPPQQRRJJIIHHGGoonnmmll gffeeddc - - llmmnnoo--,,++**8899::;;aa``__^^hhiijjkk1100//..44556677eeddccbbddeeffgg5544332200112233ZZYYSSRR''(())**OONNMMLL ||{{zzyyMMNNOOPPLLKKJJII}}~~~~}}IIJJKKLLPPOONNMM@@??>>==55667788PPOONNMM44556677BBAA@@??11223344hhggffeeaabbccdd88776655--..//00llkkjjii]]^^__``<<;;::99))**++,,ppoonnmm - - YYZZ[[\\''&&%%$$ZZ[[\\]]$##""!! FFGGHHIISSRRQQPPvvwwxxyy##""!! BBCCDDEEWWVVUUTTrrssttuu''&&%%$$>>??@@AA[[ZZYYXX - - nnooppqq - -oouuvvwwzzyyxxww - - [[\\]]^^>>==<<;;''(())**rrqqppoo WWXXYYZZBBAA@@??##$$%%&&vvuuttssSSTTUUVVFFEEDDCC !!""kkjjiihhcbbaa``_ ppqqrrss))((''&&<<==>>??]]\\[[ZZ - - llmmnnoo--,,++**8899::;;aa``__^^hhiijjkk1100//..44556677QQPPOONN++,,--..KKJJIIHH!!""##$$xxwwvvuuQQRRSSTTHHGGFFEE ||{{zzyyMMNNOOPPLLKKJJII<<;;::9999::;;<>??@@>>==<;:955667788ddccbbaaeeffgghh4433221111223344hhggffeeaabbccdd88776655--..//00llkkjjii]]^^__``##""!!^^__``aaJJKKLLMMOONNMMLLzz{{||}}FFGGHHIISSRRQQPPvvwwxxyy##""!! BBCCDDEEWWVVUUTTrrssttuu~~ xxyyzz{{vvuutsrq__``aabb::998877++,,--..nnmmllkk - - [[\\]]^^>>==<<;;''(())**rrqqppoo WWXXYYZZBBAA@@??##$$%%&&ggffeedd_^^]]\\[ttuuvvww%%$$##""@@AABBCCYYXXWWVV ppqqrrss))((''&&<<==>>??]]\\[[ZZ - - llmmnnoo--,,++**8899::;;MMLLKKJJ//001122GGFFEEDD%%&&''((ttssrrqq UUVVWWXXDDCCBBAA!!""##$$xxwwvvuuQQRRSSTTHHGGFFEE 88776655==>>??@@HHGGFFEEAABBCCDD8776655499::;;<<``__^^]]iijjkkll00//..--55667788ddccbbaaeeffgghh4433221111223344hhggffeeaabbccddbbccddeeNNOOPPQQKKJJIIHH~~~~}}||JJKKLLMMOONNMMLLzz{{||}}FFGGHHIISSRRQQPPvvwwxxyy}}||{{zz||}}~~poonnmmlccddeeff66554433//001122jjiihhgg__``aabb::998877++,,--..nnmmllkk - - [[\\]]^^>>==<<;;''(())**ccbbaa``!![ZZYYXWVxxyyzz{{!! DDEEFFGGUUTTSSRRttuuvvww%%$$##""@@AABBCCYYXXWWVV ppqqrrss))((''&&<<==>>??IIHHGGFF33445566CCBBAA@@))**++,,ppoonnmm - - YYZZ[[\\@@??>>==%%&&''((ttssrrqq UUVVWWXXDDCCBBAA!!""##$$44332211AABBCCDDDDCCBBAAEEFFGGHH43322110==>>??@@\\[[ZZYY - - mmnnoopp,,++**))99::;;<<``__^^]]iijjkkll00//..--55667788ddccbbaaeeffgghhffgghhiiRRSSTTUUGGFFEEDD !!{{zzyyxxNNOOPPQQKKJJIIHH~~~~}}||JJKKLLMMOONNMMLLzz{{||}}yyxxwwvv - - lkkjjiihgghhiijj221100//33445566ffeeddccccddeeff66554433//001122jjiihhgg__``aabb::998877++,,--..__^^]]\\""##$$%%UTSSRRQQ||}}~~~~HHIIJJKKQQPPOONNxxyyzz{{!! DDEEFFGGUUTTSSRRttuuvvww%%$$##""@@AABBCCEEDDCCBB77==>>????>>==<;--..//00llkkjjii]]^^__``<<;;::99))**++,,ppoonnmm - - YYZZ[[\\@@??>>==%%&&''((00//..--EEFFGGHH@@??>>==IIJJKKLL0//..--,AABBCCDDXXWWVVUU qqrrsstt((''&&%%==>>??@@\\[[ZZYY - - mmnnoopp,,++**))99::;;<<``__^^]]iijjkklljjkkllmm~~}}||VVWWXXYYCCBBAA@@""##$$%%wwvvuuttRRSSTTUUGGFFEEDD !!{{zzyyxxNNOOPPQQKKJJIIHH~~uuoonnmm hggffeed - -kkllmmnn..--,,++778899::bbaa``__gghhiijj221100//33445566ffeeddccccddeeff66554433//001122[[ZZYYSS&&''(())PPOONNMM}}||{{zzLLMMNNOOMMLLKKJJ||}}~~~~HHIIJJKKQQPPOONNxxyyzz{{!! DDEEFFGGAA@@??>>@@AABBCC:987766511223344hhggffeeaabbccdd88776655--..//00llkkjjii]]^^__``<<;;::99))**++,,,,++**))IIJJKKLL77665544MMNNOOPP,++**))(EEFFGGHHTTSSRRQQuuvvwwxx$$##""!!AABBCCDDXXWWVVUU qqrrsstt((''&&%%==>>??@@\\[[ZZYY - - mmnnoopp nnoouuvv{{zzyyxx - -ZZ[[\\]]??>>==<<&&''(())ssrrqqpp VVWWXXYYCCBBAA@@""##$$%%wwvvuuttRRSSTTUUGGFFEEDD !!llkkjjiidccbbaa` ooppqqrr**))(('';;<<==>>^^]]\\[[ - -kkllmmnn..--,,++778899::bbaa``__gghhiijj221100//33445566RRQQPPOO**++,,--LLKKJJII !!""##yyxxwwvvPPQQRRSSIIHHGGFF}}||{{zzLLMMNNOOMMLLKKJJ||}}~~~~HHIIJJKK==776655DDEEFFGG5443322155667788ddccbbaaeeffgghh4433221111223344hhggffeeaabbccdd88776655--..//00((''&&%%MMNNOOPP33221100QQRRSSYY(''&&%%$IIJJKKLLPPOONNMMyyzz{{|| EEFFGGHHTTSSRRQQuuvvwwxx$$##""!!AABBCCDDXXWWVVUU qqrrsstt - - wwxxyyzzwwvvuuts ^^__``aa;;::9988**++,,--oonnmmll - - ZZ[[\\]]??>>==<<&&''(())ssrrqqpp VVWWXXYYCCBBAA@@""##$$%%hhggffee`__^^]]\ssttuuvv&&%%$$##??@@AABBZZYYXXWW ooppqqrr**))(('';;<<==>>^^]]\\[[ - -kkllmmnn..--,,++778899::NNMMLLKK..//0011HHGGFFEE$$%%&&''uuttssrrTTUUVVWWEEDDCCBB !!""##yyxxwwvvPPQQRRSSIIHHGGFF}}||{{zzLLMMNNOO44332211HHIIJJKK100//..-99::;;<<``__^^]]iijjkkll00//..--55667788ddccbbaaeeffgghh4433221111223344$$##""!!QQRRSSTT//..--,,ZZ[[\\]]$##""!! MMNNOOPPLLKKJJII}}~~~~}}IIJJKKLLPPOONNMMyyzz{{|| EEFFGGHHTTSSRRQQuuvvwwxx~~}}||{{{{||}}~~rqpoonnmbbccddee77665544..//0011kkjjiihh^^__``aa;;::9988**++,,--oonnmmll - - ZZ[[\\]]??>>==<<&&''(())ddccbbaa\[[ZZYYXwwxxyyzz""!! CCDDEEFFVVUUTTSSssttuuvv&&%%$$##??@@AABBZZYYXXWW ooppqqrr**))(('';;<<==>>JJIIHHGG22334455DDCCBBAA(())**++qqppoonn - -XXYYZZ[[AA@@??>>$$%%&&''uuttssrrTTUUVVWWEEDDCCBB !!""##yyxxwwvvPPQQRRSS00//..--LLMMNNOO-,,++**)==>>??@@\\[[ZZYY - - mmnnoopp,,++**))99::;;<<``__^^]]iijjkkll00//..--55667788 UUVVWWXX++**))((^^__``aaQQRRSSTTHHGGFFEE ||{{zzyyMMNNOOPPLLKKJJII}}~~~~}}IIJJKKLLPPOONNMMyyzz{{||zzyyxxww - -mllkkjjiffgghhii3322110022334455ggffeeddbbccddee77665544..//0011kkjjiihh^^__``aa;;::9988**++,,--``__^^]]!!""##$$WVUTSSRR{{||}}~~GGHHIIJJRRQQPPOOwwxxyyzz""!! CCDDEEFFVVUUTTSSssttuuvv&&%%$$##??@@AABBFFEEDDCC6677==>>@@??>>==,,--..//mmllkkjj \\]]^^__==<<;;::(())**++qqppoonn - -XXYYZZ[[AA@@??>>$$%%&&''uuttssrrTTUUVVWW,,++**))PPQQRRSS)((''&&%AABBCCDDXXWWVVUU qqrrsstt((''&&%%==>>??@@\\[[ZZYY - - mmnnoopp,,++**))99::;;<<~~}}YYZZ[[\\''&&%%$$bbccddeeUUVVWWXXDDCCBBAA!!""##$$xxwwvvuuQQRRSSTTHHGGFFEE ||{{zzyyMMNNOOPPLLKKJJII}}~~vvuuoonn ihhggffe jjkkllmm//..--,,66778899ccbbaa``ffgghhii3322110022334455ggffeeddbbccddee77665544..//0011\\[[ZZYY%%&&''((QQPPOONN~~}}||{{KKLLMMNNNNMMLLKK{{||}}~~GGHHIIJJRRQQPPOOwwxxyyzz""!! CCDDEEFFBBAA@@????@@AABB<;:9877600112233iihhggff``aabbcc99887766,,--..//mmllkkjj \\]]^^__==<<;;::(())**++qqppoonn - -XXYYZZ[[((''&&%%YYZZ[[\\%$$##""!EEFFGGHHTTSSRRQQuuvvwwxx$$##""!!AABBCCDDXXWWVVUU qqrrsstt((''&&%%==>>??@@||{{zzyy]]^^__``##""!!ffgghhiiYYZZ[[\\@@??>>==%%&&''((ttssrrqq UUVVWWXXDDCCBBAA!!""##$$xxwwvvuuQQRRSSTTHHGGFFEE mmllkkjjeddccbba - - nnooppqq++**))((::;;<<==__^^]]\\ jjkkllmm//..--,,66778899ccbbaa``ffgghhii3322110022334455SSRRQQPP))**++,,MMLLKKJJ !!""zzyyxxwwOOPPQQRRJJIIHHGG~~}}||{{KKLLMMNNNNMMLLKK{{||}}~~GGHHIIJJ>>==7766CCDDEEFF6554433244556677eeddccbbddeeffgg5544332200112233iihhggff``aabbcc99887766,,--..//mmllkkjj \\]]^^__$$##""!!]]^^__``! IIJJKKLLPPOONNMMyyzz{{|| EEFFGGHHTTSSRRQQuuvvwwxx$$##""!!AABBCCDDxxwwvvuuaabbccddjjkkllmm~~}}||]]^^__``<<;;::99))**++,,ppoonnmm - - YYZZ[[\\@@??>>==%%&&''((ttssrrqq UUVVWWXXDDCCBBAA!!""##$$iihhggffa``__^^]rrssttuu''&&%%$$>>??@@AA[[ZZYYXX - - nnooppqq++**))((::;;<<==__^^]]\\ jjkkllmm//..--,,66778899OONNMMLL--..//00IIHHGGFF##$$%%&&vvuuttssSSTTUUVVFFEEDDCC !!""zzyyxxwwOOPPQQRRJJIIHHGG~~}}||{{KKLLMMNN55443322GGHHIIJJ21100//.8899::;;aa``__^^hhiijjkk1100//..44556677eeddccbbddeeffgg5544332200112233iihhggff``aabbccaabbccddMMNNOOPPLLKKJJII}}~~~~}}IIJJKKLLPPOONNMMyyzz{{|| EEFFGGHHttssrrqq eeffgghhnnoouuvv{{zzyyxx - -aabbccdd88776655--..//00llkkjjii]]^^__``<<;;::99))**++,,ppoonnmm - - YYZZ[[\\@@??>>==%%&&''((eeddccbb]\\[[ZZYvvwwxxyy##""!! BBCCDDEEWWVVUUTTrrssttuu''&&%%$$>>??@@AA[[ZZYYXX - - nnooppqq++**))((::;;<<==KKJJIIHH11223344EEDDCCBB''(())**rrqqppoo WWXXYYZZBBAA@@??##$$%%&&vvuuttssSSTTUUVVFFEEDDCC !!""zzyyxxwwOOPPQQRR1100//..KKLLMMNN.--,,++*<<==>>??]]\\[[ZZ - - llmmnnoo--,,++**8899::;;aa``__^^hhiijjkk1100//..44556677eeddccbbddeeffggeeffgghhQQRRSSTTHHGGFFEE ||{{zzyyMMNNOOPPLLKKJJII}}~~~~}}IIJJKKLLppoonnmm - - iijjkkllwwxxyyzzwwvvuuts eeffgghh4433221111223344hhggffeeaabbccdd88776655--..//00llkkjjii]]^^__``<<;;::99))**++,,aa``__^^!!""##YXWVUTSSzz{{||}}FFGGHHIISSRRQQPPvvwwxxyy##""!! BBCCDDEEWWVVUUTTrrssttuu''&&%%$$>>??@@AAGGFFEEDD556677==AA@@??>>++,,--..nnmmllkk - - [[\\]]^^>>==<<;;''(())**rrqqppoo WWXXYYZZBBAA@@??##$$%%&&vvuuttssSSTTUUVV--,,++**OOPPQQRR*))((''&@@AABBCCYYXXWWVV ppqqrrss))((''&&<<==>>??]]\\[[ZZ - - llmmnnoo--,,++**8899::;;aa``__^^hhiijjkkiijjkkll~~}}UUVVWWXXDDCCBBAA!!""##$$xxwwvvuuQQRRSSTTHHGGFFEE ||{{zzyyMMNNOOPPllkkjjii - - mmnnoopp {{||}}~~rqpoonnmiijjkkll00//..--55667788ddccbbaaeeffgghh4433221111223344hhggffeeaabbccdd88776655--..//00]]\\[[ZZ$$%%&&''RRQQPPOO~~~~}}||JJKKLLMMOONNMMLLzz{{||}}FFGGHHIISSRRQQPPvvwwxxyy##""!! BBCCDDEECCBBAA@@>>??@@AA==<;:987//001122jjiihhgg__``aabb::998877++,,--..nnmmllkk - - [[\\]]^^>>==<<;;''(())**rrqqppoo WWXXYYZZ))((''&&SSYYZZ[[&%%$$##"DDEEFFGGUUTTSSRRttuuvvww%%$$##""@@AABBCCYYXXWWVV ppqqrrss))((''&&<<==>>??]]\\[[ZZ - - llmmnnoo mmnnoouu||{{zzyy YYZZ[[\\@@??>>==%%&&''((ttssrrqq UUVVWWXXDDCCBBAA!!""##$$xxwwvvuuQQRRSSTThhggffee qqrrsstt - - - -mllkkjji - - mmnnoopp,,++**))99::;;<<``__^^]]iijjkkll00//..--55667788ddccbbaaeeffgghh4433221111223344YYSSRRQQ(())**++NNMMLLKK !!{{zzyyxxNNOOPPQQKKJJIIHH~~~~}}||JJKKLLMMOONNMMLLzz{{||}}FFGGHHII??>>==77BBCCDDEE7665544333445566ffeeddccccddeeff66554433//001122jjiihhgg__``aabb::998877++,,--..nnmmllkk - - [[\\]]^^%%$$##""\\]]^^__"!! HHIIJJKKQQPPOONNxxyyzz{{!! DDEEFFGGUUTTSSRRttuuvvww%%$$##""@@AABBCCYYXXWWVV ppqqrrss - - vvwwxxyyxxwwvvuu - - ]]^^__``<<;;::99))**++,,ppoonnmm - - YYZZ[[\\@@??>>==%%&&''((ttssrrqq UUVVWWXXddccbbaauuvvwwxx~~}}||{{ ihhggffe qqrrsstt((''&&%%==>>??@@\\[[ZZYY - - mmnnoopp,,++**))99::;;<<``__^^]]iijjkkll00//..--55667788PPOONNMM,,--..//JJIIHHGG""##$$%%wwvvuuttRRSSTTUUGGFFEEDD !!{{zzyyxxNNOOPPQQKKJJIIHH~~~~}}||JJKKLLMM66554433FFGGHHII3221100/778899::bbaa``__gghhiijj221100//33445566ffeeddccccddeeff66554433//001122jjiihhgg__``aabb!!``aabbccLLMMNNOOMMLLKKJJ||}}~~~~HHIIJJKKQQPPOONNxxyyzz{{!! DDEEFFGGUUTTSSRRttuuvvww~~}}||zz{{||}}tsrqpoonaabbccdd88776655--..//00llkkjjii]]^^__``<<;;::99))**++,,ppoonnmm - - YYZZ[[\\qqrrsstt``__^^]]yyzz{{||zzyyxxwweddccbbauuvvwwxx$$##""!!AABBCCDDXXWWVVUU qqrrsstt((''&&%%==>>??@@\\[[ZZYY - - mmnnoopp,,++**))99::;;<>^^]]\\[[ - -kkllmmnn..--,,++778899::bbaa``__gghhiijj221100//33445566ffeeddccccddeeffddeeffggPPQQRRSSIIHHGGFF}}||{{zzLLMMNNOOMMLLKKJJ||}}~~~~HHIIJJKKQQPPOONNxxyyzz{{{{zzyyxx ~~nmmllkkjeeffgghh4433221111223344hhggffeeaabbccdd88776655--..//00llkkjjii]]^^__``uuvvwwxx\\[[ZZYY}}~~vvuuoonna``__^^]yyzz{{|| EEFFGGHHTTSSRRQQuuvvwwxx$$##""!!AABBCCDDXXWWVVUU qqrrsstt((''&&%%==>>??@@HHGGFFEE44556677BBAA@@??**++,,--oonnmmll - - ZZ[[\\]]??>>==<<&&''(())ssrrqqpp VVWWXXYYCCBBAA@@""##$$%%wwvvuuttRRSSTTUU..--,,++NNOOPPQQ+**))(('??@@AABBZZYYXXWW ooppqqrr**))(('';;<<==>>^^]]\\[[ - -kkllmmnn..--,,++778899::bbaa``__gghhiijjhhiijjkk~~TTUUVVWWEEDDCCBB !!""##yyxxwwvvPPQQRRSSIIHHGGFF}}||{{zzLLMMNNOOMMLLKKJJ||}}~~wwvvuuoo - - jiihhggfiijjkkll00//..--55667788ddccbbaaeeffgghh4433221111223344hhggffeeaabbccddyyzz{{||XXWWVVUU mmllkkjj]\\[[ZZY}}~~~~}}IIJJKKLLPPOONNMMyyzz{{|| EEFFGGHHTTSSRRQQuuvvwwxx$$##""!!AABBCCDDDDCCBBAA==>>??@@>>==<;:9..//0011kkjjiihh^^__``aa;;::9988**++,,--oonnmmll - - ZZ[[\\]]??>>==<<&&''(())ssrrqqpp VVWWXXYY**))((''RRSSYYZZ'&&%%$$#CCDDEEFFVVUUTTSSssttuuvv&&%%$$##??@@AABBZZYYXXWW ooppqqrr**))(('';;<<==>>^^]]\\[[ - -kkllmmnn llmmnnoo}}||{{zz XXYYZZ[[AA@@??>>$$%%&&''uuttssrrTTUUVVWWEEDDCCBB !!""##yyxxwwvvPPQQRRSSIIHHGGFFnnmmllkkfeeddccb - - mmnnoopp,,++**))99::;;<<``__^^]]iijjkkll00//..--55667788ddccbbaaeeffgghh}}~~TTSSRRQQ!!""##$$iihhggff!!""##YXWVUTSS ||{{zzyyMMNNOOPPLLKKJJII}}~~~~}}IIJJKKLLPPOONNMMyyzz{{|| EEFFGGHH@@??>>==AABBCCDD8776655422334455ggffeeddbbccddee77665544..//0011kkjjiihh^^__``aa;;::9988**++,,--oonnmmll - - ZZ[[\\]]&&%%$$##[[\\]]^^#""!! GGHHIIJJRRQQPPOOwwxxyyzz""!! CCDDEEFFVVUUTTSSssttuuvv&&%%$$##??@@AABBZZYYXXWW ooppqqrr - - uuvvwwxxyyxxwwvv - - \\]]^^__==<<;;::(())**++qqppoonn - -XXYYZZ[[AA@@??>>$$%%&&''uuttssrrTTUUVVWWEEDDCCBB !!""##jjiihhggbaa``__^ qqrrsstt((''&&%%==>>??@@\\[[ZZYY - - mmnnoopp,,++**))99::;;<<``__^^]]iijjkkllPPOONNMM%%&&''((eeddccbb$$%%&&''RRQQPPOO!!""##$$xxwwvvuuQQRRSSTTHHGGFFEE ||{{zzyyMMNNOOPPLLKKJJII}}~~~~}}IIJJKKLL77665544EEFFGGHH4332211066778899ccbbaa``ffgghhii3322110022334455ggffeeddbbccddee77665544..//0011kkjjiihh^^__``aa""!!__``aabbKKLLMMNNNNMMLLKK{{||}}~~GGHHIIJJRRQQPPOOwwxxyyzz""!! CCDDEEFFVVUUTTSSssttuuvv~~}}yyzz{{||uutsrqpo``aabbcc99887766,,--..//mmllkkjj \\]]^^__==<<;;::(())**++qqppoonn - -XXYYZZ[[AA@@??>>$$%%&&''ffeeddcc^]]\\[[Zuuvvwwxx$$##""!!AABBCCDDXXWWVVUU qqrrsstt((''&&%%==>>??@@\\[[ZZYY - - mmnnooppttssrrqq UUVVWWXX++**))((QQRRSSYY(''&&%%$BBCCDDEEWWVVUUTTrrssttuu''&&%%$$>>??@@AA[[ZZYYXX - - nnooppqq++**))((::;;<<==HHGGFFEEAABBCCDD33221100BBCCDDEEppoonnmm - - YYZZ[[\\''&&%%$$ZZ[[\\]]$##""!! FFGGHHIISSRRQQPPvvwwxxyy##""!! BBCCDDEEWWVVUUTTrrssttuu''&&%%$$>>??@@AADDCCBBAAEEFFGGHH//..--,,FFGGHHIIllkkjjii]]^^__``##""!!^^__``aaJJKKLLMMOONNMMLLzz{{||}}FFGGHHIISSRRQQPPvvwwxxyy##""!! BBCCDDEE@@??>>==IIJJKKLL++**))((JJKKLLMMhhggffeeaabbccddbbccddeeNNOOPPQQKKJJIIHH~~~~}}||JJKKLLMMOONNMMLLzz{{||}}FFGGHHII77665544MMNNOOPP''&&%%$$NNOOPPQQddccbbaaeeffgghhffgghhiiRRSSTTUUGGFFEEDD !!{{zzyyxxNNOOPPQQKKJJIIHH~~~~}}||JJKKLLMM33221100QQRRSSYY##""!! RRSSTTUU``__^^]]iijjkklljjkkllmm~~}}||VVWWXXYYCCBBAA@@""##$$%%wwvvuuttRRSSTTUUGGFFEEDD !!{{zzyyxxNNOOPPQQ//..--,,ZZ[[\\]]VVWWXXYY\\[[ZZYY - - mmnnoopp nnoouuvv{{zzyyxx - -ZZ[[\\]]??>>==<<&&''(())ssrrqqpp VVWWXXYYCCBBAA@@""##$$%%wwvvuuttRRSSTTUU++**))((^^__``aa~~}}||ZZ[[\\]]XXWWVVUU qqrrsstt - - wwxxyyzzwwvvuuts ^^__``aa;;::9988**++,,--oonnmmll - - ZZ[[\\]]??>>==<<&&''(())ssrrqqpp VVWWXXYY''&&%%$$bbccddee{{zzyyxx^^__``aaTTSSRRQQuuvvwwxx~~}}||{{{{||}}~~rqpoonnmbbccddee77665544..//0011kkjjiihh^^__``aa;;::9988**++,,--oonnmmll - - ZZ[[\\]]##""!!ffgghhiiwwvvuuttbbccddeePPOONNMMyyzz{{||zzyyxxww - -mllkkjjiffgghhii3322110022334455ggffeeddbbccddee77665544..//0011kkjjiihh^^__``aajjkkllmmssrrqqpp ffgghhiiLLKKJJII}}~~vvuuoonn ihhggffe jjkkllmm//..--,,66778899ccbbaa``ffgghhii3322110022334455ggffeeddbbccddeennoouuvvoonnmmll - - jjkkllmmHHGGFFEE mmllkkjjeddccbba - - nnooppqq++**))((::;;<<==__^^]]\\ jjkkllmm//..--,,66778899ccbbaa``ffgghhiiwwxxyyzzkkjjiihh - - nnooppqqDDCCBBAA!!""##$$iihhggffa``__^^]rrssttuu''&&%%$$>>??@@AA[[ZZYYXX - - nnooppqq++**))((::;;<<==__^^]]\\ jjkkllmm {{||}}~~ggffeeddrrssttuu@@??>>==%%&&''((eeddccbb]\\[[ZZYvvwwxxyy##""!! BBCCDDEEWWVVUUTTrrssttuu''&&%%$$>>??@@AA[[ZZYYXX - - nnooppqq - - - -ccbbaa``vvwwxxyy<<;;::99))**++,,aa``__^^!!""##YXWVUTSSzz{{||}}FFGGHHIISSRRQQPPvvwwxxyy##""!! BBCCDDEEWWVVUUTTrrssttuu~~}}||{{ __^^]]\\zz{{||}}88776655--..//00]]\\[[ZZ$$%%&&''RRQQPPOO~~~~}}||JJKKLLMMOONNMMLLzz{{||}}FFGGHHIISSRRQQPPvvwwxxyyzzyyxxww[[ZZYYXX~~4433221111223344YYSSRRQQ(())**++NNMMLLKK !!{{zzyyxxNNOOPPQQKKJJIIHH~~~~}}||JJKKLLMMOONNMMLLzz{{||}}vvuuoonnWWVVUUTT !!00//..--55667788PPOONNMM,,--..//JJIIHHGG""##$$%%wwvvuuttRRSSTTUUGGFFEEDD !!{{zzyyxxNNOOPPQQKKJJIIHH~~mmllkkjjSSRRQQPP""##$$%%,,++**))99::;;<>??@@HHGGFFEE44556677BBAA@@??**++,,--oonnmmll - - ZZ[[\\]]??>>==<<&&''(())ssrrqqpp VVWWXXYYCCBBAA@@""##$$%%eeddccbb$$%%&&''KKJJIIHH**++,,--$$##""!!AABBCCDDDDCCBBAA==>>??@@>>==<;:9..//0011kkjjiihh^^__``aa;;::9988**++,,--oonnmmll - - ZZ[[\\]]??>>==<<&&''(())aa``__^^(())**++GGFFEEDD..//0011 EEFFGGHH@@??>>==AABBCCDD8776655422334455ggffeeddbbccddee77665544..//0011kkjjiihh^^__``aa;;::9988**++,,--]]\\[[ZZ,,--..//CCBBAA@@22334455~~}}IIJJKKLL77665544EEFFGGHH4332211066778899ccbbaa``ffgghhii3322110022334455ggffeeddbbccddee77665544..//0011YYSSRRQQ00112233??>>==<<66778899||{{zzyyMMNNOOPP33221100IIJJKKLL0//..--,::;;<<==__^^]]\\ jjkkllmm//..--,,66778899ccbbaa``ffgghhii3322110022334455PPOONNMM44556677;;::9988::;;<<==xxwwvvuuQQRRSSTT//..--,,MMNNOOPP,++**))(>>??@@AA[[ZZYYXX - - nnooppqq++**))((::;;<<==__^^]]\\ jjkkllmm//..--,,66778899LLKKJJII==>>??@@77665544>>??@@AAZHAbے`JXQtArd|ZdQbnXvےbHAےbHArtAJlvpfH~fZHAbے`JXQtlJnXv`f~Hp˂rXQJ`ےbdQZ|drtA`vXnے`JXQr˂ptArd|ZdQbfpvnXv`bHAZdrtAltbvpfJXQrr˂pZdQbtlJtAXv`fHAZp˂rXQltbdQZ|~f`vXn`JXQrtlJrd|~HfpvnJ`ےbHAZpdrtAJtbnvpfHbے`XQr˂lJtArvnXnXv`HAZp˂rtAJltbdQpfH~f`vbے`JXQrlJtArdf~HfprXQJ`ےbZ|drtAJlXnvpfH~˂pZHAd|ZdQbtfpvrXQJ`bHAZtbdbnvfH~pZHAbے`JbtlJtArd`f~fpvrXQJ`tbdQZ|drf`vXnvpXQr˂pZHA|ZdQHfpvnXvےbHAZp˂tbdQvp`vf`vbJQr|ZdQbtlJnXv`f~Hp˂rXQJ`ےbdQZ|H~f`vXnے`JXQr˂ptArd|ZdQbfpvXQJ`ےے`JXQr˂p|ZdQbtlJ`f~Zp˂Zp˂tbdQH~f`vXnے`JXQr˂ptArdf~HfpvXQJ`ےbHAZdrtAJltvpfr˂pZHAb|ZdQbtlJnXv`f~Hp˂rdQZ|dQZ|H~fpZHAZHAblJtArd|~Hf˂rXQJ`ےdQZ|drtAJvXnvpfH˂pZtAd|ZdQbtpvnXv`fbHAZp˂rXQltbvpf~f`JXQHAbpZHAbd|Zv`ff~HrXQJtbdQZ|df`vXnvJXQr˂pZHAd|Z~HfpvnX`ےbHAZp˂rtAJltbdQpfH~fZHAbے`dQbtlJtArnXv`p˂rp˂rQZ|dpfHf`vXے`JXQr˂JtArd|ZdQHfpvnrXQJےbHA|drtAJlnvpfH~pZHAbے`JXQbtlnXv`f~Zp˂rXQJ`Z|dXnvXnv˂pZtlJtArdf~HfpvXQJ`ےbHAZdrtA`vXnvpfr˂pZHAb|ZdQbtlJnXv`bHAZr˂pZHAbtlJtArdHXv`rXQJ`bHAZZ|d`vXnvpfr˂pZHAے|ZdQbfpvnXv`bHAZp˂rJltbdQZ|H~fZHAbے`JXQtlJtArdf~HfpvXQJ`ےdrtAJdrtAJ`vXHbے``JXQrd|ZdQbtpvnJ`ےbHAZpdrtAJltbvpfH~f`HAbےZdQbtlJtAXv`f~Hf˂rXQJ`ےdQZ|Hf`vXnے`Jے`JdQbt~Hfpfpv`ےbZ|drtAJlXnvpfH~˂pZHAbے`dQbtvnXv`fHAZp˂rXQJtbdQZ|df`vbے`JXQrlJtArd|ZpvnXQJ`ےXQJ`ےrtAJlf`vXnvpXQr˂pZHAb|ZdQbtlnXv`ےHAZp˂tAJltbdQZfH~f`vXے`JrbtJtArd`f~HfpvrXQJ`ےbHArtAdQZpfH~pfH~HAbےtArd|ZdQbfpvnXv`bHAZdrtAJltvpfH~fZHAbے`JXQtlJtArdf~Hp˂rZHAbے`JXQtArd|ZdQbf~HےbHAdrtArtAJlvpfH~fZHAb`JXQrtlJnXv`f~Hp˂rXQJ`ےbdQZ|dtAJ`vXnے`JXQr˂ptArd|ZdQbfpvnXv`bHAZltbltb~f`JXQrZr˂pZZdQbtlJtAXv`fbHAZp˂rXQltbdQZ|~f`vXn`JXQrlJtArd|~HfpvnJ`ےbHAZpdrtAJvXnvpfHXQr˂XQr˂l|ZdQvnXnXv`HAZp˂rtAJltbdQpfH~f`vbے`JXQrlJtArv`f~HfprXQJ`ےbZ|drtAJlXnvJXQr˂pZHAd|ZdQbtXv`fbHAZbHAXQtbdnvpfH~pZHAbے`JbtlJtArd`f~Zp˂rXQJ`tbdQZ|drf`vXnvpXQr˂lJtAd|ZdQHfpvnXvےbHAZp˂|drf`vf`v`JXQr|ZdQbtlJnXv`f~Hp˂rJltbdQZ|H~f`vXnے`JXQr˂ptArdf~HfpvXQJ`ےے`JXQr˂p|ZdQbtlJfpvXQJ`ےJbdQtbQZH~f`vXnے`JXQbtltArdf~HfpvXQJ`ےbHAZdrtAltbvpfr˂pZHAb|ZdQbtlJnXv`fHfp˂rdQZ|dQZ|lvXnHAbےAb`JlJtArdf~Hf˂rXQJ`ےdQZ|drtAJvXnvpfH˂pZrd|ZdQbtpvnXv`fbHAZp˂rXQltbvpfH~f`pZHAbp`JXQbtlv`f~ffpvrXQJtbdQZ|df`vXnvJXQr˂pZHAd|Z~HfpvnX`ےbHAZp˂rtAJltbdQpfH~˂pZHAbے`dQbtlJtAr~Hfp˂rJ`ےQZ|dfH~f`vXے`JXQr˂JtArd|ZdQHfpvrXQJ`ےbHA|drtAJlnvpfH~pZHAb|ZdQbtlnXv`f~Zp˂rXQJ`tAJlXnvXH~˂pZtlJtArdf~HfpvXQJ`ےbdQZ|drtA`vXnvpfr˂pZHAb|ZdQbfpvnXv`bHAZr˂pZHAbtlJtArdnXv`bHAZZ|ddrtA`vXnvpfr˂pJtAd|ZdQbfpvnXv`bHAZp˂rJltnvpH~fZHAbے`JXQtlJtArdf~HpvnXQJ`ےdrtAJtbdQvpfH`JXQrXQr˂rd|~HfpvnJ`ےbHAZpdrtAJltbvpfH~fZHAbےZdQbtlJtAXv`f~Hf˂rXQJ`ےdQZ|~f`vXnے`JrbtJtArdfpv々nrXQ`ےbZ|drtAJlXnvpfH~˂pZHAے`JdQbtvnXv`fHAZp˂rXQJtbdQZ|df`vbے`JXQrlJtArd|ZpvnXQJ`pbHAZprtAJf`vXnvpXQr˂pZHAb|ZdQbtlnXvےbHAZp˂tAJltbdQZfH~f`vXے`JbtlJtArd`f~HfpvrXQJ`ےbHAtbdQZpfH~fZHAbHAbےtArd|ZdQbfpvnXv`bHAZdrtAJltvpfH~fZHAbے`JXQtlJnXv`f~Hp˂rZHAbے`JXQtArd|ZdQbf~Hp˂rrtAJlJltvpfH~fZHAb|ZdQbtlJnXv`f~Hp˂rXQJ`ےbdQZ|fHf`vXnے`JXQr˂ptArd|ZdQbfpvrXQJ`bHAZltdZ|d~f`˂pZpZHAbZdQbtpvnXv`fbHAZp˂rXQltbdQZ|~f`HAbے`JXQrlJtArd|~HfpvnJ`ےbHAZdrtAJvXnvpfHXQr˂l|ZdQ|ZdQnXv`J`ےHAZp˂rtAJltbdQpfH~f`vbے`XQrbtlJtArv`f~HfprXQJ`ےbZ|dtAJlXnvJXQr˂pZHAd|ZdQbtXv`f˂rXQ˂rXQbdQZ|nvpfH~pZHAbے`JbtlJtArd`f~Zp˂rXQJ`tbdQZ|drf`vXnvpXQr˂JtArd|ZdQHfpvnXvےbHAZp˂|drvpJQr`JXQr|ZdQbtlJnXv`fHfp˂rJltbdQZ|H~f`vXnے`JXQr˂ptArdf~HfpvXQJ`ےے`JXQr˂p|ZdQbtlJfpvXQJ`ےtbdQbdQZ|H~f`vXnے`JXQtlJtArdf~HfpvXQJ`ےbHAZdrtA`vXnvpfr˂pZHAb|ZdQbtlJnXv`ےHAZp˂rrtAJlrtAJlvXnHAbےے`JlJtAXv`f~Hf˂rXQJ`ےdQZ|drtAJvXn`JXQr˂pZrd|ZdQbtpvnXv`fbHAZpdrtAJltbvpfH~f`p`JXQbtlbtlf~HHAZp˂rXQJtbdQZ|df`vXnvJXQrlJtAd|Z~HfpvnX`ےbHAZp˂rtAJltbnpfH~˂pZHAbے`dQbtlJtAr~HXJ`ےJ`ےdrtAfH~f`vXے`JXQr˂JtArdf~HfpvrXQJ`ےbHA|drtAJlnvpfH~pZHAb|ZdQbtlnXv`f~Zp˂rXQJ`tAJlfH~˂pZHZHAbtlJtArdf~HpvnXQJ`ےbdQZ|drtA`vXnvpfr˂pZHAے|ZdQbfpvnXv`bHAZr˂pZHAbtlJtArd~HfbHAZZ|ddrtA`vXnvpfr˂ptArd|ZdQbfpvnXv`bHAZp˂rJltvpfH~fZHAbے`JXQtlJtArdf~Hp˂rXQJ`ےtbdQtbdQvp`v`JXQrXQr˂rd|~HfpvnJ`ےbHAZpdrtAJltbvpfH˂pZHAbےZdQbtlJtAXv`f~Hf˂rXQltbdQZ|~f`vXnr˂pJtArdJtArdfpv〉rXQJ`ےbZ|drtAJlXnvpfH~˂pZHAd|ZdQbtvnXv`fHAZp˂rXQJtbdQvpfHf`vbے`JXQrlJtArd|Zv`fbHAZpbHAZpJltf`vXnvpXQr˂pZHAb|ZdQHfpvnXvےbHAZp˂tAJltbdQZfH~fZHAbے`JbtlJtArd`f~HfpvrXQJ`ےbHAtdrtAf`vXAbے`ے`JXtArd|ZdQbfpvrXQJ`bHAZdrtAJltvpfH~fZHAb`JXQrtlJnXv`f~Hp˂rZHAbے`JXQtArdf~Hpvnp˂rtAJlJltvpfH~fZHAb|ZdQbtlJnXv`f~Hp˂rXQJ`ےbdQZ|H~f`vXnے`JXQr˂ptArd|ZdQbfpvXQJ`ےbHAZZ|dZ|lXnv˂pZApZA`ZdQbtpvnXv`fbHAZp˂rXQltbdQZ|~f`HAbے`JXQrlJtArd|~HfpvnJ`ےdQZ|drtAJvXnvpfHZHAb|ZdQtlJnXv``ےbHAZp˂rtAJltbdQpfH~f`vbے`dQbtlJtArv`f~HfprXQJ`ےbZ|df`vXnvJXQr˂pZHAd|ZdQbt~Hfp˂rXQ˂bbdQZ|nvpfH~pZHAbے`JbtlnXv`f~Zp˂rXQJ`tbdQZ|drf`vXے`JXQr˂JtArd|ZdQHfpvnXvےbHAZdrJltnvpJXQrQr˂p|ZdQbtlJnXv`ےHAZp˂rJltbdQZ|H~f`vXnے`JXQbtltArdf~HfpvXQJ`ےے`JXQr˂p|ZdQbXv`fXv`fbHAZptbQZbdQZ|H~fZHAbے`JXQtlJtArdf~HfpvXQJ`ےbHAZdrtA`vXnvpfr˂pZHAb|ZdQbtlJnXv`bHAZp˂rrtAJltbnpfH~b`JXJXQrblJtAXv`f~Hf˂rXQJ`ےdQZ|dtAJlvXn`JXQr˂pZrd|ZdQbtpvnXv`fbHAZpdrtAJltbvpfH~f`ے`JXQbtltArdf~HfHAZp˂rXQJtbdQZ|df`vXnvJXQrlJtArd|Z~HfpvnX`ےbHAZp˂rtAJlXnvpfH~˂pZHAbے`dQbtlJtArvnXJ`ےHAZddrtAfH~f`vXے`JXQr˂JtArd`f~HfpvrXQJ`ےbHA|drtAJlnvpXQr˂pZHAb|ZdQbtlnXv`f~Zp˂tAdQZ|bdQZ|fH~˂pZHZHAbtlJtArdf~Hp˂rXQJ`ےbdQZ|drtA`vXnvpfr˂pJtAd|ZdQbfpvnXv`bHAZr˂pZHAbtlJ~Hf~Hf˂rXQdrtAJrAJl`vXnے`JXQr˂ptArd|ZdQbfpvnXv`bHAZdrtAJltvpfH~fZHAbے`JXQtlJtArdf~Hp˂rXQJ`ےtbdQvp`vf`vQr˂ptlJrd|~HfpvnJ`ےbHAZpdrtAJtbnvpfH˂pZHAbےZdQbtlJtAXv`fHfp˂rXQltbdQZ|~f`vXnr˂p|ZdQb|ZdQbvnXvrXQJ`ےbZ|drtAJlXnvpfH~˂pZHAd|ZdQbtvnXv`fHAZp˂rXQJtbdQpfH~f`vbے`JXQrlJtArd|Zv`fbHAXQJrtAJJltf`vXnvpXQr˂pZHA|ZdQHfpvnXvےbHAZp˂tAJltbdQZfH~pZHAbے`JbtlJtArd`f~HfpvrXQJ`drtAdrtAf`vXAbے`ے`JXtArd|ZdQbfpvXQJ`ےbHAZdrtAJltvpfH~fZHAb|ZdQbtlJnXv`f~Hp˂rZHAbے`JXQtArdpvnpvnJ`ےltbtbdQZvpfr˂pZHAb|ZdQbtlJnXv`f~Hp˂rJltbdQZ|H~f`vXnے`JXQr˂ptArdf~HfpvXQJ`ےbHAZZ|lXnvXnvZHAbtAd|ZdQbtpvnXv`fbHAZp˂rXQltbvpf~f`HAbے`JXQrlJtArd|~HfvnrJ`ےdQZ|drtAJvXnvpfHZHAbtlJtlJ`f~`ےbHAZp˂rtAJltbdQpfH~fZHAbے`dQbtlJtArv`f~HfprXQJ`ےbZ|df`vXnvJXQr˂pZHAd|ZdQbt~Hfp`ےbbdQZ|bQZdnvpfH~pZHAbے`JXQbtlnXv`f~Zp˂rXQJ`tbdQZ|dtAf`vXے`JXQr˂JtArd|ZdQHfpvnXvےbHAJltJltH~fJXQrQr˂p|ZdQbtlJnXv`bHAZp˂rJltbdQZ|H~f`vXnے`JXQtlJtArdf~HfpvXQJ`ےے`JXQr˂p|ZdQbXv`fXv`pbHAZpdQZ||drH~fZHAbے`JXQtlJtArdf~HfpvXQJ`ےbdQZ|drtA`vXnvpfr˂pZHAb|ZdQbfpvnXv`bHAZp˂rtbdQZpfH~pfH~ے`JXZdQbtlJtAXv`f~Hf˂rXQJ`ےdQZ|Hf`vXn`JXQr˂pZrd|ZdQbtpvnXQJ`ےbHAZpdrtAJltbvpfH~f`˂pZtArdtArdHfpvHAZp˂rXQJtbdQZ|df`vbے`JXQrlJtArd|Z~HfpvnX`ےbHAZdrtAJlXnvpfH~˂pZHAbے`dQbtlJtArv~HAZp˂drtArtAJlfH~f`vXے`JrbtJtArd`f~HfpvrXQJ`ےbHA|drJltnvpXQr˂pZHAb|ZdQbtlnXv`fHZp˂bdQZ|bdQZ|`vXnZHAbZAb`tlJtArdf~Hp˂rXQJ`ےbdQZ|drtA`vXnvpfr˂ptArd|ZdQbfpvnXv`bHAZr˂pZHAbtlJ~HfvnX˂rXQdrtAJtAJl`vXnے`JXQr˂ptArd|ZdQbfpvnXv`bHAZdrtAJltvpfH~fZHAbے`JXQtlJnXv`f~Hp˂rXQJ`ے|drf`vvpQr˂plJtArd|~HfpvnJ`ےbHAZpdrtAJvXnvpfH˂pZHAbےZdQbtlJtAXv`fHAZp˂rXQltbdQZ|~f`vXnHAbے|ZdQb|ZdQtAnXvrXQJ`ےbZ|drtAJlXnvJXQr˂pZHAd|ZdQbtvnXv`fHAZp˂rtAJltbdQpfH~f`vbے`JXQrlJtArdfHfpvrXQJJlttbdQf`vXnvpXQr˂lJtAd|ZdQHfpvnXvےbHAZp˂tAJlbnvfH~pZHAbے`JbtlJtArd`f~fpvrXQJ`drtAltbvpfے`JXQJXQrtArdf~HfpvXQJ`ےbHAZdrtAJltvpfH~fZHAb|ZdQbtlJnXv`f~Hp˂rZHAbے`JXQtArdpvv`fJ`p˂ltbtbdQZvpfr˂pZHAb|ZdQbtlJnXv`fHfp˂rJltbdQZ|H~f`vXnے`JXQr˂ptArdf~HfpvXQJ`ےbHAZtAJlXnvfH~ZHAbrd|ZdQbtpvnXv`fbHAZp˂rXQltbvpfH~f`HAbے`JXQrlJtArd|~Hf˂rXQJ`ےdQZ|drtAJvXnvpfH`JXQrtlJrdf`f~`ےbHAZp˂rtAJltbdQpfH~˂pZHAbے`dQbtlJtArv`f~HfprXQJtbdQZ|df`vXnvJXQr˂pZHAd|Z~HXvnXv`ےbbdQZ|Z|dnvpfH~pZHAb|ZdQbtlnXv`f~Zp˂rXQJ`tbdQZpfHf`vXے`JXQr˂JtArd|ZdQHfpvnrXQJےbHAJltdQZ|H~fr˂p˂pZHA|ZdQbfpvnXv`bHAZp˂rJltbdQZ|H~fZHAbے`JXQtlJtArdf~HfpvXQJ`ےے`JXQr˂p|ZdQb~Hfp~HfprXQJdQZ||dnH~fZHAbے`JXQtlJtArdf~HpvnXQJ`ےbdQZ|drtA`vXnvpfr˂pZHAے|ZdQbfpvnXv`bHAZp˂rtbdQZp`vXf`vXJQrZdQbtlJtAXv`f~Hf˂rXQJ`ےdQZ|~f`vXn`JXQr˂pZrd|ZdQbtpvnJ`ےbHAZpdrtAJltbvpfH~f`˂pZtArdt~HfHfpvHAZp˂rXQJtbdQZ|df`vbے`JXQrlJtArd|Z~HfpvnX`ےbZ|drtAJlXnvpfH~˂pZHAbے`dQbt`f~`f~HAZp˂drtArtAJlfH~f`vXے`JbtlJtArd`f~HfpvrXQJ`ےbHA|drf`vXnvpXQr˂pZHAb|ZdQbtlnXv`ےHAZp˂drtAJdrtAJ`vXnZHAbbے`tlJnXv`f~Hp˂rXQJ`ےbdQZ|drtA`vXnے`JXQr˂ptArd|ZdQbfpvnXv`bHAZr˂p|ZdQbtlJvnXvnX`ےbrAJltvff`vXnے`JXQr˂ptArd|ZdQbfpvrXQJ`bHAZdrtAJltvpfH~fZHAb`JXQrtlJnXv`f~Hp˂rXQJ`ے|drnvpnvp˂pZHAlJtArd|~HfpvnJ`ےbHAZdrtAJvXnvpfH˂pZHAbےZdQbtlJtAXv`fbHAZp˂rXQltbdQZ|~f`vXnHAbےlJtAvnXv`nvfrXQJ`ےbZ|dtAJlXnvJXQr˂pZHAd|ZdQbtvnXv`fHAZp˂rtAJltbdQpfH~f`vbے`JXQrlJtArHfpvHfpvbHAJltbtbdQf`vXnvpXQr˂JtArd|ZdQHfpvnXvےbHAZp˂tAJlnvpfH~pZHAbے`JbtlJtArd`f~Zp˂rXQJ`ltbltbvp`ے`JXQJXQrtArdf~HfpvXQJ`ےbHAZdrtAJltvpfr˂pZHAb|ZdQbtlJnXv`f~Hp˂rZHAbtlJtArdv`fv`p˂HAZp˂bdQZ|`vXnvpfr˂pZHAb|ZdQbtlJnXv`ےHAZp˂rJltbdQZ|H~f`vXnے`JXQbtltArdf~HfpvXQJ`ےbHAZtAdQZ|fH~fH~bے`rd|ZdQbtpvnXv`fbHAZpdrtAJltbvpfH~f`HAbے`JXQrlJtArdf~Hf˂rXQJ`ےdQZ|drtAJvXnvpfH`JXQHArd|f~H~Hfp`ےbHAZp˂rtAJltbnpfH~˂pZHAbے`dQbtlJtArv`fHfpvrXQJtbdQZ|df`vXnvJXQr˂pZHAd|ZnXvnXvZp˂QZdrZ|rAJnvpfH~pZHAb|ZdQbtlnXv`f~Zp˂rXQJ`tbdQZfH~f`vXے`JXQr˂JtArd|ZdQHfpvrXQJ`ےbHAdQZ|dQZ|lvXnr˂p˂pZA|ZdQbfpvnXv`bHAZp˂rJltbdQZ|H~fZHAbے`JXQtlJtArdf~HfpvXQJ`ےے`JXQtArd|ZdQb~HfprXQJrXQJdrtvpfH~fZHAbے`JXQtlJtArdf~Hp˂rXQJ`ےbdQZ|drtA`vXnvpfr˂pJtAd|ZdQbfpvnXv`bHAZp˂rdrtAf`vXf`vXJXQrZdQbtlJtAXv`f~Hf˂rXQltbdQZ|~f`vXn`JXQr˂pZrd|~HfpvnJ`ےbHAZpdrtAJltbvpfH~fZbے`ZdQbtfpvvnXHAZp˂rXQJtbdQvpfHf`vbے`JXQrlJtArd|Z~HfpnrXQ`ےbZ|drtAJlXnvpfH~˂pZHAے`JdQbt`f~`pvrXQJ`tAJlltbfH~fZHAbے`JbtlJtArd`f~HfpvrXQJ`ےbHA|drf`vXnvpXQr˂pZHAb|ZdQbtlnXvےbHAZp˂drtAJtbnvpfHZAb``JXQrtlJnXv`f~Hp˂rXQJ`ےbdQZ|dtAJ`vXnے`JXQr˂ptArd|ZdQbfpvnXv`bHAZbHAZr˂p|ZdQbtlJvnX`ےb`ےbAJltH~f`vXnے`JXQr˂ptArd|ZdQbfpvXQJ`ےbHAZdrtAJltvpfH~fZHAb|ZdQbtlJnXv`f~Hp˂rXQJ`ےJltnvpH~f˂pZHAlJtArd|~HfpvnJ`ےdQZ|drtAJvXnvpfH˂pZHAbےZdQbtpvnXv`fbHAZp˂rXQltbdQZ|~f`HAbJXQrlJtAnXv`v`frXQJ`ےbZ|df`vXnvJXQr˂pZHAd|ZdQbtvnXJ`ےHAZp˂rtAJltbdQpfH~f`vbے`XQrbtlJtArHfpvnXv`ےbHAtbdQZdQZ|f`vXے`JXQr˂JtArd|ZdQHfpvnXvےbHAZdrtAJlnvpfH~pZHAbے`JbtlJtArd`f~Zp˂rXQJ`ltbvp`~f`JXQrbtltArdf~HfpvXQJ`ےbHAZdrtAltbvpfr˂pZHAb|ZdQbtlJnXv`fHfp˂rp˂rZHAbtlJtArdv`pvHAZp˂HAXQJ`bdQZ|`vXnvpfr˂pZHAb|ZdQbtlJnXv`bHAZp˂rJltbdQZ|H~f`vXnے`JXQtlJtArdf~HfpvXQJ`ےbHAZbdQZ|fH~ZHAbbے`rd|ZdQbtpvnXv`fbHAZpdrtAJltbvpfH~f`HAbے`JXQrlJtAXv`f~Hf˂rXQJ`ےdQZ|drtAJvXn˂pZHA˂pZHArd|f~H~Hfp`ےbHAZp˂rtAJlXnvpfH~˂pZHAbے`dQbtlJtArv`fHAZp˂rXQJtbdQZ|df`vXnvJXQrlJtAd|Z~Hf~HZp˂|drdrtAJnvpXQr˂pZHAb|ZdQbtlnXv`f~Zp˂tAJltbdQZfH~f`vXے`JXQr˂JtArdf~HfpvrXQJ`ےbHAdQZ|lvXnvXnpZHAJtAd|ZdQbfpvnXv`bHAZp˂rJltnvpH~fZHAbے`JXQtlJtArdf~HpvnXQJ`ےXQJ`ےے`JXQtArd|ZdQbnXvrXQJےbHAdrtvpfH~fZHAbے`JXQtlJtArdf~Hp˂rXQJ`ےbdQZ|drtA`vXnvpfr˂ptArd|ZdQbfpvnXv`bHAZp˂rdrtAvpfJQrJXQrZdQbtlJtAXv`fHfp˂rXQltbdQZ|~f`vXn`JXQr˂pZrd|~HfpvnJ`ےbHAZpdrtAJltbvpfHbے`bے`ZdQtArfpvvnXHAZp˂rXQJtbdQpfH~f`vbے`JXQrlJtArd|Z~HfprXQJ`ےbZ|drtAJlXnvpfH~˂pZHAd|ZdQbtfpvfpvrXQJ`tAJlltbfH~pZHAbے`JbtlJtArd`f~HfpvrXQJ`tbdQZ|drf`vXnvpXQr˂pZHAb|ZdQHfpvnXvےbHAZp˂tbdQvpfHvpfHbے`|ZdQbtlJnXv`f~Hp˂rXQJ`ےbdQZ|fHf`vXnے`JXQr˂ptArd|ZdQbfpvrXQJ`bHAZbHAZr˂p|ZdQbtlJ`f~`p˂Zp˂AJbdQH~f`vXnے`JXQr˂ptArdf~HfpvXQJ`ےbHAZdrtAJltvpfH~fZHAb|ZdQbtlJnXv`f~Hp˂rXQJ`ےJltH~fpZHAZHAblJtArd|~HfvnrJ`ےdQZ|drtAJvXnvpfH˂pZHAے`ZdQbtpvnXv`fbHAZp˂rXQltbdQZ|~f`JXQrJXQrd|Znvfv`f~rXQJ`ےbZ|df`vXnvJXQr˂pZHAd|ZdQbtvnX`ےbHAZp˂rtAJltbdQpfH~f`vbے`dQbtlJtArnXv`nXv`p˂rtbdQZdQZ|f`vXے`JXQr˂JtArd|ZdQHfpvnXvےbHA|drtAJlnvpfH~pZHAbے`JbtlnXv`f~Zp˂rXQJ`Z|d~f`~vJXQrtlJtArdf~HfpvXQJ`ےbHAZdrtA`vXnvpfr˂pZHAb|ZdQbtlJnXv`ےHAZp˂rp˂rZHAbtlJtArdHfpvrXQJ`rXQJ`Z|d`vXnvpfr˂pZHAb|ZdQbfpvnXv`bHAZp˂rJltbdQZ|H~fZHAbے`JXQtlJtArdf~HfpvXQJ`ےbHAZdrtAJ`vXnbے``JXQrd|ZdQbtpvnXQJ`ےbHAZpdrtAJltbvpfH~f`HAbےJXQrblJtAXv`f~Hf˂rXQJ`ےdQZ|dtAJlvXn˂pZHA˂p`JdQbt~Hfpfpv`ےbHAZdrtAJlXnvpfH~˂pZHAbے`dQbtlJtArv`fHAZp˂rXQJtbdQZ|df`vXnvJXQrlJtArd|Zf~HpvnXQJ`ے|rAJlAJltnvpXQr˂pZHAb|ZdQbtlnXv`fHZp˂tAJltbdQZfH~f`vXے`JXQr˂JtArd`f~HfpvrXQJ`ےbHArtAJlvXnpfH~pZHAtArd|ZdQbfpvnXv`bHAZp˂rJltvpfH~fZHAbے`JXQtlJtArdf~Hp˂rXQJ`ےXQJ`ےbHAZdrtAJltvpfHAbےHAbے|ZdQtA~HfpfpvbHAZp˂rXQltbvpfH~f`HAbے`JXQrlJtArd|~Hf˂rXQJ`ےdQZ|drtAJvXnvpfHr˂pAHr󙐂˕H~ㅐf۝`vXnbAdZ|p˂rJltbdQZ|H~f`JXQr`JXQrrd|vnvfnXv`f˂rXQJ`ےdQZ|~f`vXn`JXQr˂pZrd|ZdQbtpvnJ`ےbHAZpdrtAJltbvpfH~f`ZHAb`ZQXb`vXnvˍpfdrQtXQJ`ےbdQZ|dtAJ`vXn˂pZ˂p`ZdQbt~Hf~fpvJ`ےbHAZdrtAJvXnvpfH˂pZHAbےZdQbtlJtAXv`fbHAZp˂rXQltbdQZ|~f`vXnے`JXQۑpJvˍpfH~ㅐfJltbHAZdrtAltbvpfHAbےJXQrlJtApvnnXvbHAZpdrtAJltbvpfH~f`HAbے`JXQrlJtArdf~Hf˂rXQJ`ےdQZ|drtAJvXnvpfHHAbےAHr󙐂˕H~ㅐf۝`vXnbAdZ|p˂rJltnvpH~f`JXQHA˂pZHArd|Xv`f`f~˂rXQltbdQZ|~f`vXn`JXQr˂pZrd|~HfpvnJ`ےbHAZpdrtAJltbvpfH~fr`JXQr`ZQXAH`vXnvˍpfdrQtXQJ`ےbdQZ|fHf`vXnbے`bے`ZdQbt~HfHfpvJ`ےdQZ|drtAJvXnvpfH˂pZHAbےZdQbtpvnXv`fbHAZp˂rXQltbdQZ|~f`˂pZ˂pZr󙐂ˁ`vˍpfH~ㅐfJltbHAZdrtA`vXnvpfJXQrJXQrl|ZpvnnXvbHAZpdrtAJltbvpfH~f`HAbے`JXQrlJtAXv`f~Hf˂rXQJ`ےdQZ|drtAJvXnHAbےHAbےZQXb㉀H~ㅐf۝`vXnbAdZ|p˂rJltvpfH~f˂pZHA˂p`JdQbtXv`f`ffp˂rXQltbdQZ|~f`vXn`JXQr˂pZrd|~HfpvnJ`ےbHAZpdrtAJltbvpfH`JXQr`JXQrۑpJAH`vXnvˍpfdrQtXQJ`ےbdQZ|H~f`vXnbے`XQrbtlJtAr~fpvvnrJ`ےdQZ|drtAJvXnvpfH˂pZHAے`ZdQbtpvnXv`fbHAZp˂rXQltbdQZ|~f`˂pZ˂p`r󙐂ˁ`vˍpfH~ㅐfJltbHAZdrtA`vXnvpfJXQrl|Zd|ZnXv`XQJ`ےbHAZpdrtAJltbvpfH~f`HAbےJXQrblJtAXv`f~Hf˂rXQJ`ےdQZ|dtAJlvXnHAbےJXQrZQXb㉀H~ㅐf۝`vXnbAdZ|drtAJltvpfH~f˂p`JdQbtdQbt璍f~HHAZp˂rXQltbdQZ|~f`vXn`JXQrtlJrd|~HfpvnJ`ےbHAZpdrtAJtbnvpfH`JXQHA˂pZHAۑp`Z`vXnvˍp|drQtJltbdQZ|H~f`vXnXQr˂lJtArlJtArfpv˂rXQJ`ےdQZ|drtAJvXnvpfH˂pZtAd|ZdQbtpvnXv`fbHAZp˂rXQltbvpf~f`bے`bے`QXb㉀ەvˍpfdrQtJltbdQZ|drtA`vXnvpfpZHAbd|ZdtlnXv`J`ےbHAZpdrtAJltbvpfH~f`HAbےZdQbtlJtAXv`f~Hf˂rXQJ`ےdQZ|Hf`vXnJXQrJXQrpJAHrH~ㅐfJltbAdZ|drtAJltvpfH~fے`JdQbtJtArdf~HbHAZp˂rXQltbdQZ|~f`vXn`JXQrlJtArd|~HfpvnJ`ےbHAZpdrtAJvXnvpfH˂pZHA˂p`Zˁ`Z`vXnbAdZ|drQtJltbdQZ|H~f`vXnXQr˂l|ZdQ|ZdQfvnX˂rXQJ`ےdQZ|drtAJvXnvpfH˂pZrd|ZdQbtpvnXv`fbHAZp˂rXQltbvpfH~f`bے`QXb㉀QXb㉀ەvˍpfdrQtJltbdQZ|drtA`vXnvpfpZHAbbtlbtlv`fJ`ےbHAZpdrtAJltbvpfH~fZHAbےZdQbtlJtAXv`f~Hf˂rXQJ`ےdQZ|~f`vXnJXQrpJAHrpJAHrH~ㅐfJltbAdZ|drtAJltvpfH~f˂pJtArdJtArd~HfpbHAZp˂rXQltbdQZ|~f`HAbے`JXQrlJtArd|~HfpvnJ`ےbHAZdrtAJvXnvpfH˂p`Jˁ`Zۑp`vXnbAdZ|drQtJltbdQZ|H~f`vXnZHAb|ZdQ|ZdQvnX˂rXQJ`ےdQZ|drtAJvXn`JXQr˂pZrd|ZdQbtpvnXv`fbHAZpdrtAJltbvpfH~f`XQr˂QXb㉀JAHr󙐕vˍpfdrQtJltbdQZ|drtA`vXnvpfے`JXQbtltArdv`fJ`ےbHAZpdrtAJltbvpfH˂pZHAbےZdQbtlJtAXv`f~Hf˂rXQltbdQZ|~f`vXnpZHAbp`ZQXˁ`ZQXH~ㅐfJltbAdZ|drtAJltvpfH~fr˂pJtArdf~H~HfpbHAZp˂rXQltbdQZ|~f`HAbے`JXQrlJtArd|~HfpvnJ`ےdQZ|drtAJvXnvpfHے`Jb㉀ۑpb㉀ۑp`vXnbAdZ|drQtJltbdQZ|H~f`vXnZHAbtlJfvnXvnv˂rXQJ`ےdQZ|dtAJlvXn`JXQr˂pZrd|ZdQbtpvnXv`fbHAZpdrtAJltbvpfH~f`XQr˂JAHrJAHr󙐕vˍpfdrQtJltbdQZ|drtA`vXnvpfے`JXQtArdv`ff~HJ`ےbHAZpdrtAJtbnvpfH˂pZHAbےZdQbtlJtAXv`fHfp˂rXQltbdQZ|~f`vXnpZHAbˁ`ZQXˁ`pfH~ㅐfJltbAdZ|drtAJltvpfH~fHAbے|ZdQb~HfpfpvbHAZp˂rXQltbvpf~f`HAbے`JXQrlJtArd|~HfvnrJ`ےdQZ|drtAJvXnvpfH˂pb㉀ۑpH~ㅐf۝`vXnbAdZ|drQtJltbdQZ|H~fZHAb`JXQrtlJvnXnXv`˂rXQJ`ےdQZ|Hf`vXn`JXQr˂pZrd|ZdQbtpvnXQJ`ےbHAZpdrtAJltbvpfH~f`ZHAbJAHr󙐝`vXnvˍpfdrQtJltbdQZ|drtA`vXn˂pZ˂pZtArdv`ff~HJ`ےbHAZpdrtAJvXnvpfH˂pZHAbےZdQbtlJtAXv`fHAZp˂rXQltbdQZ|~f`vXnے`JXQۑpJvˍpfH~ㅐfJltbAdZ| \ No newline at end of file diff --git a/vendor/endroid/qr-code/assets/data/qrv40_2.dat b/vendor/endroid/qr-code/assets/data/qrv40_2.dat deleted file mode 100755 index 5a0e72381..000000000 --- a/vendor/endroid/qr-code/assets/data/qrv40_2.dat +++ /dev/null @@ -1,353 +0,0 @@ -~}~}~}~}|{|{|{|{~}~}~}~}|{|{|{|{~}~}~}~}|{|{|{|{~}~}~}~}|{|{|{zy~}~}~}~}zyzyzyzy~}~}~}~}zyzyzyzy~}~}~}~}zyzyzyzy~}~}~}~}zyzyzyzy~}~}~}~}zyzyzyzy~}~}~}~}zyzyzyzy~}~}~}~}zyzyzyzy~}~}~}~}zyzyzyzy~}~}~}~}zyzyzyzy~}~}~}~}zyzyzyzy~}~}~}~}zyzyzyzy~}~}~}~}zyzyzyzy~}~}~}~}zyzyzyzy~}~}~}~}zyzyzyzy~}~}~}~}zyzyzyzy~}~}~}~}zyzyzyzy~}~}~}~}zyzyzyzyxwxwxwxw~}~}~}~}zyzyzyzyxwxwxwxw~}~}~}~}zyzyzyzyxwxwxwxw~}~}~}~}zyzyzyzyxwxwxwxw~}~}~}~}zyzyzyzyxwxwxwxw~}~}~}~}zyzyzyzyxwxwxwxw~}~}~}~}zyzyzyzyxwxwxwxw~}~}~}~}zyzyzyzyxwxwxwxw~}~}~}~}zyzyzyzyxwxwxwxw~}~}~}~}zyzyzyzyxwxwxwxw~}~}~}~}zyzyzyzyxwxwxwvu~}~}~}~}zyzyzyzyvuvuvuvu~}~}~}~}zyzyzyzyvuvuvuvu~}~}~}~}zyzyzyzyvuvuvuvu~}~}~}~}zyzyzyzyvuvuvuvu~}~}~}~}zyzyzyzyvuvuvuvu~}~}~}~}zyzyzyzyvuvuvuvu~}~}~}~}zyzyzyzyvuvuvuvu~}~}~}~}zyzyzyzyvuvuvuvu~}~}~}~}zyzyzyzyvuvuvuvu~}~}~}|{zyzyzyzyvuvuvuvu|{|{|{|{zyzyzyzyvuvuvuvu|{|{|{|{zyzyzyzyvuvuvuvu|{|{|{|{zyzyzyzyvuvuvuvu|{|{|{|{zyzyzyzyvuvuvuvu|{|{|{|{zyzyzyzyvuvuvuvu|{|{|{|{zyzyzyzyvuvuvuvu|{|{|{|{zyzyzyxwvuvuvuvu|{|{|{|{xwxwxwxwvuvuvuvu|{|{|{|{xwxwxwxwvuvuvuvu|{|{|{|{xwxwxwxwvuvuvuvu|{|{|{|{xwxwxwxwvuvuvuvu|{|{|{|{xwxwxwxwvuvuvuvu|{|{|{|{xwxwxwxwvuvuvuvu|{|{|{|{xwxwxwxwvuvuvuvu|{|{|{|{xwxwxwxwvuvuvuvu|{|{|{|{xwxwxwxwvuvuvuvu|{|{|{|{xwxwxwxwvuvuvuvu|{|{|{|{xwxwxwxwvuvuvuvu|{|{|{|{xwxwxwxwvuvuvuvu|{|{|{|{xwxwxwxwvuvuvuvu|{|{|{|{xwxwxwxwvuvuvuvu|{|{|{|{xwxwxwxwvuvuvuvu|{|{|{|{xwxwxwxwvuvuvuvu|{|{|{|{xwxwxwxwvuvuvuvu|{|{|{|{xwxwxwxwvuvuvuvu|{|{|{|{xwxwxwxwvuvuvuvu|{|{|{|{xwxwxwxwvuvuvuvu|{|{|{|{xwxwxwxwvuvuvuvu|{|{|{|{xwxwxwxwvuvuvuvu|{|{|{|{xwxwxwxwvuvuvuvu|{|{|{|{xwxwxwxwvuvuvuvu|{|{|{|{xwxwxwxwvuvuvuvu|{|{|{|{xwxwxwxwvuvuvuvu|{|{|{|{xwxwxwxwvuvuvuts|{|{|{|{xwxwxwxwtstststs|{|{|{|{xwxwxwxwtstststs~}|{|{|{|{xwxwxwxwtstststs~}~}~}~}|{|{|{|{xwxwxwxwtstststs~}~}~}~}|{|{|{|{xwxwxwxwtstststs~}~}~}~}|{|{|{|{xwxwxwxwtstststststststsopopopoplklklklkhghghghgfefedcdcbabababa^]^]^]^]ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIFEFEFEFEBABABABA@?@?@?@?<;<;<;<;65656565434343430/0/0/0/,+,+,+,+('('('('$#$#$#$#        - - - - tstststsopopopoplklklklkhghghghgdcdcdcdcbabababa^]^]^]^]ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIFEFEFEFEBABABABA@?@?@?@?<;<;<;<;65656565434343430/0/0/0/,+,+,+,+('('('('$#$#$#$#        - - - - tstststsopopopoplklklklkhghghghgdcdcdcdcbabababa^]^]^]^]ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIFEFEFEFEBABABABA@?@?@?@?<;<;<;<;65656565434343430/0/0/0/,+,+,+,+('('('('$#$#$#$#        - - - - tstststsopopopoolklklklkhghghghgdcdcdcdcbabababa^]^]^]^]ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIFEFEFEFEBABABABA@?@?@?@?<;<;<;:965656565434343430/0/0/0/,+,+,+,+('('('('$#$#$#$#        - - - - tstststsoooopopolklklklkhghghghgdcdcdcdcbabababa^]^]^]^]ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIFEFEFEFEBABABABA@?@?@?@?:9:9:9:965656565434343430/0/0/0/,+,+,+,+('('('('$#$#$#$#        - - - - tstststspopopopolklklklkhghghghgdcdcdcdcbabababa^]^]^]^]ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIFEFEFEFEBABABABA@?>=>=>=:9:9:9:965656565212121210/0/0/0/,+,+,+,+('('('('$#$#$#$#        - - - - tstststspopopopolklklklkhghghghgdcdcdcdcbabababa^]^]^]^]ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIFEFEFEFEBABABABA>=>=>=>=:9:9:9:965656565212121210/0/0/0/,+,+,+,+('('('('$#$#$#$#        - - - - tstststspopopopolklklklkhghghghgdcdcdcdcbaba`_`_^]^]^]^]ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIFEFEFEFEBABABABA>=>=>=>=:9:9:9:965656565212121210/0/0/0/,+,+,+,+('('('('$#$#$#$#        - - - - tstststspopopopolklklklkhghghghgdcdcdcdc`_`_`_`_^]^]^]^]ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIFEFEFEFEBABABABA>=>=>=>=:9:9:9:965656565212121210/0/0/0/,+,+,+,+('('('('$#$#$#$#        - - - - tstststspopopopolklklklkhghghghgdcdcdcdc`_`_`_`_^]^]^]^]ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIFEFEFEFEBABABABA>=>=>=>=:9:9:9:965656565212121210/0/0/0/,+,+,+,+('('('('$#$#$#$#       - - - - tstststspooooooplklklklkhghghghgdcdcdcdc`_`_`_`_^]^]^]^]ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIFEFEFEFEBABABABA>=>=>=>=:9:9:9:965656565212121210/0/0/0/,+,+,+,+('('('('$#$#$#$#     - - - - tstststsopopopoplklklklkhghghghgdcdcdcdc`_`_`_`_^]^]^]^]ZYZYZYZYVUVUTSTSRQRQRQRQNMNMNMNMJIJIJIJIFEFEFEFEBABABABA>=>=>=>=:9:9:9:965656565212121210/0/0/0/,+,+,+,+('('('('$#$#$#$#     - - - - tstststsopopopoplklklklkhghghghgdcdcdcdc`_`_`_`_^]^]^]^]ZYZYZYZYTSTSSSSSRQRQRQRQNMNMNMNMJIJIJIJIFEFEFEFEBABABABA>=>=>=>=:9:9:9:96565656521212121.-.-.-.-,+,+,+,+('('('('$#$#$#$#     - - - - tstststsopopopoplklklklkhghghghgdcdcdcdc`_`_`_`_^]^]^]^]ZYZYZYZYSTSTSTSTRQRQRQRQNMNMNMNMJIJIJIJIFEFEFEFEBABABABA>=>=>=>=:9:9:9:96565656521212121.-.-.-.-,+,+,+,+('('('('$#$#$#$#     - - - - tstststsopopopoplklklklkhghghghgdcdcdcdc`_`_`_`_^]^]\[\[ZYZYZYZYSTSTSTSTRQPOPOPONMNMNMNMJIJIJIJIFEFEFEFEBABABABA>=>=>=>=:9:9:9:96565656521212121.-.-.-.-,+,+,+,+('('('('$#$#$#$#     - - - - tstststsopopopoplklklklkhghghghgdcdcdcdc`_`_`_`_\[\[\[\[ZYZYZYZYSTSTSTSTPOPOPOPONMNMNMNMJIJIJIJIFEFEFEFEBABABABA>=>=>=>=:9:9:9:96565656521212121.-.-.-.-,+,+,+,+('('('('$#$#$#$#     - - - - tstststsopopoooolklklklkhghghghgdcdcdcdc`_`_`_`_\[\[\[\[ZYZYZYZYSTSTSTSTPOPOPOPONMNMNMNMJIJIJIJIFEFEFEFEBABABABA>=>=>=>=:9:9:9:96565656521212121.-.-.-.-,+,+,+,+('('('('$#$#$#$#     - - - tstststsoopopopolklklklkhghghghgdcdcdcdc`_`_`_`_\[\[\[\[ZYZYZYZYSTSTSTSTPOPOPOPONMNMNMNMJIJIJIJIFEFEFEFEBABABABA>=>=>=>=:9:9:9:96565656521212121.-.-.-.-,+,+,+,+('('('('$#$#$#$#     tstststspopopopolklklklkhghghghgdcdcdcdc`_`_`_`_\[\[\[\[ZYZYZYZYSTSTSTSSPOPOPOPONMNMNMNMJIJIJIJIFEFEFEFEBABABABA>=>=>=>=:9:9:9:96565656521212121.-.-.-.-,+,+,+,+('('('('$#$#$#$#     tstststspopopopolklklklkhghghghgdcdcdcdc`_`_`_`_\[\[\[\[ZYZYZYZYSSSSTSTSPOPOPOPONMNMNMNMJIJIJIJIFEFEFEFEBABABABA>=>=>=>=:9:9:9:96565656521212121.-.-.-.-*)*)*)*)('('('('$#$#$#$#     tstststspopopopolklklklkhghghghgdcdcdcdc`_`_`_`_\[\[\[\[ZYZYZYZYTSTSTSTSPOPOPOPONMNMNMNMJIJIJIJIFEFEFEFEBABABABA>=>=>=>=:9:9:9:96565656521212121.-.-.-.-*)*)*)*)('('('('$#$#$#$#     tstststspopopopolklklklkhghghghgdcdcdcdc`_`_`_`_\[\[\[\[ZYZYXWXWTSTSTSTSPOPOPOPONMLKLKLKJIJIJIJIFEFEFEFEBABABABA>=>=>=>=:9:9:9:96565656521212121.-.-.-.-*)*)*)*)('('('('$#$#$#$#     tstststsoooopopolklklklkhghghghgdcdcdcdc`_`_`_`_\[\[\[\[XWXWXWXWTSTSTSTSPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEBABABABA>=>=>=>=:9:9:9:96565656521212121.-.-.-.-*)*)*)*)('('('('$#$#$#$#     tstststspoponmnmlklklklkhghghghgdcdcdcdc`_`_`_`_\[\[\[\[XWXWXWXWTSTSTSTSPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEBABABABA>=>=>=>=:9:9:9:96565656521212121.-.-.-.-*)*)*)*)('('('('$#$#$#$#     tstststsnmnmnmnmlklklklkhghghghgdcdcdcdc`_`_`_`_\[\[\[\[XWXWXWXWTSTSTSTSPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEBABABABA>=>=>=>=:9:9:9:96565656521212121.-.-.-.-*)*)*)*)('('('('$#$#$#$#     tstststsnmnmnmnmlklklklkhghghghgdcdcdcdc`_`_`_`_\[\[\[\[XWXWXWXWTSSSSSSTPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEBABABABA>=>=>=>=:9:9:9:96565656521212121.-.-.-.-*)*)*)*)('('('('$#$#$#$#     tstststsnmnmnmnmlklklklkhghghghgdcdcdcdc`_`_`_`_\[\[\[\[XWXWXWXWSTSTSTSTPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEBABABABA>=>=>=>=:9:9:9:96565656521212121.-.-.-.-*)*)*)*)&%&%&%&%$#$#$#$#     tstststsnmnmnmnmlklklklkhghghghgdcdcdcdc`_`_`_`_\[\[\[\[XWXWXWXWSTSTSTSTPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEBABABABA>=>=>=>=:9:9:9:96565656521212121.-.-.-.-*)*)*)*)&%&%&%&%$#$#$#$#     tstststsnmnmnmnmlklklklkhghghghgdcdcdcdc`_`_`_`_\[\[\[\[XWXWXWXWSTSTSTSTPOPOPOPOLKLKLKLKJIHGHGHGFEFEFEFEBABABABA>=>=>=>=:9:9:9:96565656521212121.-.-.-.-*)*)*)*)&%&%&%&%$#$#$#$#     tsrqrqrqnmnmnmnmlklklklkhghghghgdcdcdcdc`_`_`_`_\[\[\[\[XWXWXWXWSTSTSTSTPOPOPOPOLKLKLKLKHGHGHGHGFEFEFEFEBABABABA>=>=>=>=:9:9:9:96565656521212121.-.-.-.-*)*)*)*)&%&%&%&%$#$#$#$#     rqrqrqrqnmnmnmnmlklkjijihghghghgdcdcdcdc`_`_`_`_\[\[\[\[XWXWXWXWSTSTSTSTPOPOPOPOLKLKLKLKHGHGHGHGFEFEFEFEBABABABA>=>=>=>=:9:9:9:96565656521212121.-.-.-.-*)*)*)*)&%&%&%&%$#$#$#$#     rqrqrqrqnmnmnmnmjijijijihghghghgdcdcdcdc`_`_`_`_\[\[\[\[XWXWXWXWSTSTSSSSPOPOPOPOLKLKLKLKHGHGHGHGFEFEFEFEBABABABA>=>=>=>=:9:9:9:96565656521212121.-.-.-.-*)*)*)*)&%&%&%&%$#$#$#$#   rqrqrqrqnmnmnmnmjijijijihghghghgdcdcdcdc`_`_`_`_\[\[\[\[XWXWXWXWSSTSTSTSPOPOPOPOLKLKLKLKHGHGHGHGFEFEFEFEBABABABA>=>=>=>=:9:9:9:96565656521212121.-.-.-.-*)*)*)*)&%&%&%&%$#$#$#$# rqrqrqrqnmnmnmnmjijijijihghghghgdcdcdcdc`_`_`_`_\[\[\[\[XWXWXWXWTSTSTSTSPOPOPOPOLKLKLKLKHGHGHGHGFEFEFEFEBABABABA>=>=>=>=:9:9:9:96565656521212121.-.-.-.-*)*)*)*)&%&%&%&%"!"!"!"! rqrqrqrqnmnmnmnmjijijijihghghghgdcdcdcdc`_`_`_`_\[\[\[\[XWXWXWXWTSTSTSTSPOPOPOPOLKLKLKLKHGHGHGHGFEFEFEFEBABABABA>=>=>=>=:9:9:9:96565656521212121.-.-.-.-*)*)*)*)&%&%&%&%"!"!"!"! rqrqrqrqnmnmnmnmjijijijihghghghgdcdcdcdc`_`_`_`_\[\[\[\[XWXWXWXWTSTSTSTSPOPOPOPOLKLKLKLKHGHGHGHGFEDCDCDCBABABABA>=>=>=>=:9:9:9:96565656521212121.-.-.-.-*)*)*)*)&%&%&%&%"!"!"!"! rqrqrqrqnmnmnmnmjijijijihghghghgdcdcdcdc`_`_`_`_\[\[\[\[XWXWXWXWTSTSTSTSPOPOPOPOLKLKLKLKHGHGHGHGDCDCDCDCBABABABA>=>=>=>=:9:9:9:96565656521212121.-.-.-.-*)*)*)*)&%&%&%&%"!"!"!"! rqrqrqrqnmnmnmnmjijijijihghgfefedcdcdcdc`_`_`_`_\[\[\[\[XWXWXWXWTSTSTSTSPOPOPOPOLKLKLKLKHGHGHGHGDCDCDCDCBABABABA>=>=>=>=:9:9:9:96565656521212121.-.-.-.-*)*)*)*)&%&%&%&%"!"!"!"! rqrqrqrqnmnmnmnmjijijijifefefefedcdcdcdc`_`_`_`_\[\[\[\[XWXWXWXWSSSSSTSTPOPOPOPOLKLKLKLKHGHGHGHGDCDCDCDCBABABABA>=>=>=>=:9:9:9:96565656521212121.-.-.-.-*)*)*)*)&%&%&%&%"!"!"!"! rqrqrqrqnmnmnmnmjijijijifefefefedcdcdcdc`_`_`_`_\[\[\[\[XWXWXWXWSTSTSTSTPOPOPOPOLKLKLKLKHGHGHGHGDCDCDCDCBABABABA>=>=>=>=:98787876565656521212121.-.-.-.-*)*)*)*)&%&%&%&%"!"!"!"! rqrqrqrqnmnmnmnmjijijijifefefefedcdcdcdc`_`_`_`_\[\[\[\[XWXWXWXWSTSTSTSTPOPOPOPOLKLKLKLKHGHGHGHGDCDCDCDCBABABABA>=>=>=>=877777786565656521212121.-.-.-.-*)*)*)*)&%&%&%&%"!"!"!"! rqrqrqrqnmnmnmnmjijijijifefefefedcdcdcdc`_`_`_`_\[\[\[\[XWXWXWXWSTSTSTSTPOPOPOPOLKLKLKLKHGHGHGHGDCDCDCDCBABABABA>=>=>=>=787878786565656521212121.-.-.-.-*)*)*)*)&%&%&%&%"!"!"!"! rqrqrqrqnmnmnmnmjijijijifefefefedcdcdcdc`_`_`_`_\[\[\[\[XWXWXWXWSTSTSTSTPOPOPOPOLKLKLKLKHGHGHGHGDCDCDCDCBA@?@?@?>=>=>=>=787878784343434321212121.-.-.-.-*)*)*)*)&%&%&%&%"!"!"!"! rqrqrqrqnmnmnmnmjijijijifefefefedcdcdcdc`_`_`_`_\[\[\[\[XWXWXWXWSTSTSTSTPOPOPOPOLKLKLKLKHGHGHGHGDCDCDCDC@?@?@?@?>=>=>=>=787878784343434321212121.-.-.-.-*)*)*)*)&%&%&%&%"!"!"!"! rqrqrqrqnmnmnmnmjijijijifefefefedcdcbaba`_`_`_`_\[\[\[\[XWXWXWXWSTSSSSSSPOPOPOPOLKLKLKLKHGHGHGHGDCDCDCDC@?@?@?@?>=>=>=>=787878784343434321212121.-.-.-.-*)*)*)*)&%&%&%&%"!"!"!"! rqrqrqrqnmnmnmnmjijijijifefefefebabababa`_`_`_`_\[\[\[\[XWXWXWXWTSTSTSTSPOPOPOPOLKLKLKLKHGHGHGHGDCDCDCDC@?@?@?@?>=>=>=>=787878784343434321212121.-.-.-.-*)*)*)*)&%&%&%&%"!"!"!"! rqrqrqrqnmnmnmnmjijijijifefefefebabababa`_`_`_`_\[\[\[\[XWXWXWXWTSTSTSTSPOPOPOPOLKLKLKLKHGHGHGHGDCDCDCDC@?@?@?@?>=>=>=>=787877774343434321212121.-.-.-.-*)*)*)*)&%&%&%&%"!"!"!"! rqrqrqrqnmnmnmnmjijijijifefefefebabababa`_`_`_`_\[\[\[\[XWXWXWXWTSTSTSTSPOPOPOPOLKLKLKLKHGHGHGHGDCDCDCDC@?@?@?@?>=>=>=>=778787874343434321212121.-.-.-.-*)*)*)*)&%&%&%&%"!"!"!"!    rqrqrqrqnmnmnmnmjijijijifefefefebabababa`_`_`_`_\[\[\[\[XWXWXWXWTSTSTSTSPOPOPOPOLKLKLKLKHGHGHGHGDCDCDCDC@?@?@?@?>=>=>=>=878787874343434321212121.-.-.-.-*)*)*)*)&%&%&%&%"!"!"!"!    rqrqrqrqnmnmnmnmjijijijifefefefebabababa`_`_`_`_\[\[\[\[XWXWXWXWTSTSTSSSPOPOPOPOLKLKLKLKHGHGHGHGDCDCDCDC@?@?@?@?>=<;<;<;87878787434343430/0/0/0/.-.-.-.-*)*)*)*)&%&%&%&%"!"!"!"!    rqrqrqrqnmnmnmnmjijijijifefefefebabababa`_`_`_`_\[\[\[\[XWXWXWXWSSTSTSTSPOPOPOPOLKLKLKLKHGHGHGHGDCDCDCDC@?@?@?@?<;<;<;<;87878787434343430/0/0/0/.-.-.-.-*)*)*)*)&%&%&%&%"!"!"!"!    rqrqrqrqnmnmnmnmjijijijifefefefebabababa`_`_^]^]\[\[\[\[XWXWXWXWTSRQRQRQPOPOPOPOLKLKLKLKHGHGHGHGDCDCDCDC@?@?@?@?<;<;<;<;87878787434343430/0/0/0/.-.-.-.-*)*)*)*)&%&%&%&%"!"!"!"!    rqrqrqrqnmnmnmnmjijijijifefefefebabababa^]^]^]^]\[\[\[\[XWXWXWXWRQRQRQRQPOPOPOPOLKLKLKLKHGHGHGHGDCDCDCDC@?@?@?@?<;<;<;<;87878787434343430/0/0/0/.-.-.-.-*)*)*)*)&%&%&%&%"!"!"!"!    rqrqrqrqnmnmnmnmjijijijifefefefebabababa^]^]^]^]\[\[\[\[XWXWXWXWRQRQRQRQPOPOPOPOLKLKLKLKHGHGHGHGDCDCDCDC@?@?@?@?<;<;<;<;77777878434343430/0/0/0/.-.-.-.-*)*)*)*)&%&%&%&%"!"!"!"!    - rqrqrqrqnmnmnmnmjijijijifefefefebabababa^]^]^]^]\[\[\[\[XWXWXWXWRQRQRQRQPOPOPOPOLKLKLKLKHGHGHGHGDCDCDCDC@?@?@?@?<;<;<;<;78787878434343430/0/0/0/.-.-.-.-*)*)*)*)&%&%&%&%"!"!"!"!    - - - - rqrqrqrqnmnmnmnmjijijijifefefefebabababa^]^]^]^]\[\[\[\[XWXWXWXWRQRQRQRQPOPOPOPOLKLKLKLKHGHGHGHGDCDCDCDC@?@?@?@?<;<;<;<;78787878434343430/0/0/0/.-.-.-.-*)*)*)*)&%&%&%&%"!"!"!"!    - - - - rqrqrqrqnmnmnmnmjijijijifefefefebabababa^]^]^]^]\[\[\[\[XWXWXWXWRQRQRQRQPOPOPOPOLKLKLKLKHGHGHGHGDCDCDCDC@?@?@?@?<;<;<;<;78787878434343430/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%"!"!"!"!    - - - - rqrqrqrqnmnmnmnmjijijijifefefefebabababa^]^]^]^]\[\[\[\[VUVUVUVURQRQRQRQPOPOPOPOLKLKLKLKHGHGHGHGDCDCDCDC@?@?@?@?<;<;<;<;78787878434343430/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%"!"!"!"!    - - - - rqrqrqrqnmnmnmnmjijijijifefefefebabababa^]^]^]^]\[\[ZYZYVUVUVUVURQRQRQRQPONMNMNMLKLKLKLKHGHGHGHGDCDCDCDC@?@?@?@?<;<;<;<;78787878434343430/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%"!"!"!"!    - - - - rqrqrqrqnmnmnmnmjijijijifefefefebabababa^]^]^]^]ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMLKLKLKLKHGHGHGHGDCDCDCDC@?@?@?@?<;<;<;<;78777777434343430/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%"!"!"!"!    - - - - rqrqrqrqnmnmnmnmjijijijifefefefebabababa^]^]^]^]ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMLKLKLKLKHGHGHGHGDCDCDCDC@?@?@?@?<;<;<;<;87878787434343430/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%"!"!"!"!    - - - - rqrqrqrqnmnmnmnmjijijijifefefefebabababa^]^]^]^]ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMLKLKLKLKHGHGHGHGDCDCDCDC@?@?@?@?<;<;<;<;87878787434343430/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%"!"!"!"!    - - - - rqrqrqrqnmnmnmnmjijijijifefefefebabababa^]^]^]^]ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMLKLKLKLKHGHGHGHGDCDCDCDC@?@?@?@?<;<;<;<;87878787434343430/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%"!"!"!"!    - - - - rqrqrqrqnmnmnmnmjijijijifefefefebabababa^]^]^]^]ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMLKLKLKLKHGHGHGHGDCDCDCDC@?@?@?@?<;<;<;<;87878787434343430/0/0/0/,+,+,+,+('('('('&%&%&%&%"!"!"!"!    - - - - rqrqrqponmnmnmnmjijijijifefefefebabababa^]^]^]^]ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMLKLKLKLKHGHGHGHGDCDCDCDC@?@?@?@?<;<;<;<;87878787434343430/0/0/0/,+,+,+,+('('('('&%&%&%&%"!"!"!"!    - - - - popopooonmnmnmnmjijijijifefefefebabababa^]^]^]^]ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMLKJIJIJIHGHGHGHGDCDCDCDC@?@?@?@?<;<;<;<;87878777434343430/0/0/0/,+,+,+,+('('('('&%&%&%&%"!"!"!"!    - - - - ooopopopnmnmnmnmjijijijifefefefebabababa^]^]^]^]ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDC@?@?@?@?<;<;<;<;77787878434343430/0/0/0/,+,+,+,+('('('('&%&%&%&%"!"!"!"!    - - - - opopopopnmnmlklkjijijijifefefefebabababa^]^]^]^]ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDC@?@?@?@?<;<;<;<;78787878434343430/0/0/0/,+,+,+,+('('('('&%&%&%&%"!"!"!"!    - - - - opopopoplklklklkjijijijifefefefebabababa^]^]^]^]ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDC@?@?@?@?<;<;<;<;78787878434343430/0/0/0/,+,+,+,+('('('('&%&%&%&%"!"!"!"!    - - - - opopopoplklklklkjijijijifefefefebabababa^]^]^]^]ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDC@?@?@?@?<;<;<;<;78787878434343430/0/0/0/,+,+,+,+('('('('&%&%&%&%"!"!"!"!    - - - - opopopoplklklklkjijijijifefefefebabababa^]^]^]^]ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDC@?@?@?@?<;<;<;<;78787878434343430/0/0/0/,+,+,+,+('('('('$#$#$#$#"!"!"!"!    - - - - opopopoplklklklkjijijijifefefefebabababa^]^]^]^]ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDC@?@?@?@?<;<;<;<;78787878434343430/0/0/0/,+,+,+,+('('('('$#$#$#$#"!"!"!"!    - - - - oooooopolklklklkjijijijifefefefebabababa^]^]^]^]ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIHGFEFEFEDCDCDCDC@?@?@?@?<;<;<;<;77777787434343430/0/0/0/,+,+,+,+('('('('$#$#$#$#"!"!"!"!    - - - - popopopolklklklkjijijijifefefefebabababa^]^]^]^]ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?<;<;<;<;87878787434343430/0/0/0/,+,+,+,+('('('('$#$#$#$#"!"!"!"!    - - - - popopopolklklklkjijihghgfefefefebabababa^]^]^]^]ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?<;<;<;<;87878787434343430/0/0/0/,+,+,+,+('('('('$#$#$#$#"!"!"!"!    - - - - popopopolklklklkhghghghgfefefefebabababa^]^]^]^]ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?<;<;<;<;87878787434343430/0/0/0/,+,+,+,+('('('('$#$#$#$#"!"!"!"!    - - - - popopopolklklklkhghghghgfefefefebabababa^]^]^]^]ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?<;<;<;<;87878787434343430/0/0/0/,+,+,+,+('('('('$#$#$#$#"!"!"!"!    - - - - popopopolklklklkhghghghgfefefefebabababa^]^]^]^]ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?<;<;<;<;87877777434343430/0/0/0/,+,+,+,+('('('('$#$#$#$#        - - - - popooooolklklklkhghghghgfefefefebabababa^]^]^]^]ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?<;<;<;<;87878787434343430/0/0/0/,+,+,+,+('('('('$#$#$#$#        - - - - opopopoplklklklkhghghghgfefefefebabababa^]^]^]^]ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIFEFEFEFEDCBABABA@?@?@?@?<;<;<;<;65656565434343430/0/0/0/,+,+,+,+('('('('$#$#$#$#        - - - - opopopoplklklklkhghghghgfefefefebabababa^]^]^]^]ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMJIJIJIJIFEFEFEFEBABABABA@?@?@?@?<;<;<;<;65656565434343430/0/0/0/,+,+,+,+('('('('$#$#$#$#        - - - - }}~~aabbccddEEFFGGHH^^__``aabbccddeeFFGGHHII**++,,-- eeffgghhIIJJKKLLbbccddeeffgghhiiJJKKLLMM..//0011 - - ~~}}||iijjkkllMMNNOOPPffgghhiijjkkllmmNNOOPPQQ22334455{{zzyyxxmmnnooppQQRRSSTTjjkkllmmnnooppqqRRSSTTUU66778899wwvvuuts~~}}qqrrssttUUVVWWXXnnoouuvvrrssttuuVVWWXXYY::;;<<== !!rqpoonnm||{{zzyyuuvvwwxxYYZZ[[\\wwxxyyzzvvwwxxyyZZ[[\\]]>>??@@AA""##$$%% mllkkjjixxwwvvuuyyzz{{||]]^^__``{{||}}~~zz{{||}}^^__``aaBBCCDDEE&&''(()) - - ihhggffettssrrqq}}~~aabbccdd~~bbccddeeFFGGHHII**++,,--eddccbbappoonnmmeeffgghhffgghhiiJJKKLLMM..//0011a``__^^]llkkjjiiiijjkklljjkkllmmNNOOPPQQ22334455]\\[[ZZYhhggffeemmnnooppnnooppqqRRSSTTUU66778899YXWVUTSSddccbbaa~~}}qqrrssttrrssttuuVVWWXXYY::;;<<== !!~~}}RRQQPPOO``__^^]]||{{zzyyuuvvwwxxvvwwxxyyZZ[[\\]]>>??@@AA""##$$%%||{{zzyy~~}}||{{NNMMLLKK\\[[ZZYYxxwwvvuuyyzz{{||zz{{||}}^^__``aaBBCCDDEE&&''(())xxwwvvuuzzyyxxwwJJIIHHGGXXWWVVUUttssrrqq}}~~~~bbccddeeFFGGHHII**++,,--ttssrrqqvvuuoonnFFEEDDCCTTSSRRQQppoonnmmffgghhiiJJKKLLMM..//0011ppoonnmmmmllkkjjBBAA@@??PPOONNMMllkkjjiijjkkllmmNNOOPPQQ22334455llkkjjiiiihhggff>>==<;:9LLKKJJIIhhggffeennooppqqRRSSTTUU66778899hhggffeeeeddccbb87766554HHGGFFEEddccbbaa~~}}rrssttuuVVWWXXYY::;;<<==ddccbbaaaa``__^^43322110DDCCBBAA``__^^]]||{{zzyyvvwwxxyyZZ[[\\]]>>??@@AA``__^^]]]]\\[[ZZ0//..--,@@??>>==\\[[ZZYYxxwwvvuuzz{{||}}^^__``aaBBCCDDEE++**))((\\[[ZZYYYYSSRRQQ,++**))(<<;;::99XXWWVVUUttssrrqq~~bbccddeeFFGGHHII''&&%%$$XXWWVVUUPPOONNMM(''&&%%$88776655TTSSRRQQppoonnmmffgghhiiJJKKLLMM##""!! TTSSRRQQLLKKJJII$##""!! 44332211PPOONNMMllkkjjiijjkkllmmNNOOPPQQPPOONNMMHHGGFFEE00//..--LLKKJJIIhhggffeennooppqqRRSSTTUULLKKJJIIDDCCBBAA,,++**))HHGGFFEEddccbbaa~~}}rrssttuuVVWWXXYYHHGGFFEE@@??>>==((''&&%%DDCCBBAA``__^^]]||{{zzyyvvwwxxyyZZ[[\\]]DDCCBBAA77665544$$##""!!@@??>>==\\[[ZZYYxxwwvvuuzz{{||}}^^__``aa @@??>>==33221100 - - <<;;::99XXWWVVUUttssrrqq~~}}||~~bbccddee - - <<;;::99//..--,, 88776655TTSSRRQQppoonnmm{{zzyyxxffgghhii88776655++**))((44332211PPOONNMMllkkjjiiwwvvuutsjjkkllmm44332211''&&%%$$ - - 00//..--LLKKJJIIhhggffeerqpoonnmnnooppqq00//..--##""!!  ,,++**))HHGGFFEEddccbbaa~~}}mllkkjji~~}}||rrssttuu ,,++**)) - - ((''&&%%DDCCBBAA``__^^]]||{{zzyyihhggffe{{zzyyxxvvwwxxyy - - ((''&&%%$$##""!!@@??>>==\\[[ZZYYxxwwvvuueddccbbawwvvuuttzz{{||}}$$##""!! <<;;::99XXWWVVUUttssrrqqa``__^^]ssrrqqpp~~   88776655TTSSRRQQppoonnmm]\\[[ZZYoonnmmll - - - -!!""##$$44332211PPOONNMMllkkjjii~~}}||{{YXWVUTSSkkjjiihh %%&&''(( - - 00//..--LLKKJJIIhhggffeezzyyxxwwRRQQPPOOggffeedd !!))**++,,  ,,++**))HHGGFFEEddccbbaavvuuoonnNNMMLLKKccbbaa``~~}}||""##$$%% --..//00 - - ((''&&%%DDCCBBAA``__^^]]mmllkkjjJJIIHHGG__^^]]\\{{zzyyxx&&''(()) - - 11223344$$##""!!@@??>>==\\[[ZZYYiihhggffFFEEDDCC[[ZZYYXXwwvvuutt**++,,-- - - !!""##55667788 <<;;::99XXWWVVUUeeddccbbBBAA@@??WWVVUUTTssrrqqpp..//0011 $$%%&&''99::;;<< 88776655TTSSRRQQaa``__^^>>==<;:9SSRRQQPPoonnmmll22334455(())**++==>>??@@!!""##$$44332211PPOONNMM]]\\[[ZZ87766554OONNMMLLkkjjiihh66778899,,--..//AABBCCDD%%&&''(( - - 00//..--LLKKJJIIYYSSRRQQ43322110KKJJIIHHggffeedd::;;<<==00112233EEFFGGHH))**++,,  ,,++**))HHGGFFEEPPOONNMM0//..--,GGFFEEDDccbbaa``~~}}||>>??@@AA 44556677IIJJKKLL--..//00 - - ((''&&%%DDCCBBAALLKKJJII,++**))(CCBBAA@@__^^]]\\{{zzyyxxBBCCDDEE!!""##$$==>>??@@MMNNOOPP11223344$$##""!!@@??>>==HHGGFFEE(''&&%%$??>>==<<[[ZZYYXXwwvvuuttFFGGHHII%%&&''((AABBCCDDQQRRSSTT55667788 <<;;::99DDCCBBAA$##""!! ;;::9988WWVVUUTTssrrqqppJJKKLLMM))**++,,EEFFGGHHUUVVWWXX99::;;<< 88776655@@??>>==77665544SSRRQQPPoonnmmllNNOOPPQQ--..//00IIJJKKLLYYZZ[[\\==>>??@@!!""##$$443322117766554433221100OONNMMLLkkjjiihhRRSSTTUU11223344MMNNOOPP]]^^__``AABBCCDD%%&&''(( - - 00//..--33221100//..--,,KKJJIIHHggffeeddVVWWXXYY55667788QQRRSSYYaabbccddEEFFGGHH))**++,,  ,,++**))//..--,,++**))((GGFFEEDDccbbaa``~~}}||ZZ[[\\]]99::;;<>??@@^^__``aaiijjkkllMMNNOOPP11223344$$##""!!''&&%%$$ ##""!! ??>>==<<[[ZZYYXXwwvvuuttbbccddeeAABBCCDDbbccddeemmnnooppQQRRSSTT55667788 ##""!!;;::9988WWVVUUTTssrrqqppffgghhiiEEFFGGHHffgghhiiqqrrssttUUVVWWXX99::;;<< 77665544SSRRQQPPoonnmmlljjkkllmmIIJJKKLLjjkkllmmuuvvwwxxYYZZ[[\\==>>??@@!!""##$$ 33221100OONNMMLLkkjjiihhnnooppqqMMNNOOPPnnoouuvvyyzz{{||]]^^__``AABBCCDD%%&&''(( - -  - - //..--,,KKJJIIHHggffeeddrrssttuuQQRRSSTTwwxxyyzz}}~~aabbccddEEFFGGHH))**++,,    ++**))((GGFFEEDDccbbaa``~~}}||vvwwxxyyUUVVWWXX{{||}}~~eeffgghhIIJJKKLL--..//00 - - - -  - - ''&&%%$$CCBBAA@@__^^]]\\{{zzyyxxzz{{||}}YYZZ[[\\iijjkkllMMNNOOPP11223344##""!! ??>>==<<[[ZZYYXXwwvvuutt~~]]^^__``mmnnooppQQRRSSTT55667788 - -;;::9988WWVVUUTTssrrqqppaabbccddqqrrssttUUVVWWXX99::;;<<   !!77665544SSRRQQPPoonnmmlleeffgghhuuvvwwxxYYZZ[[\\==>>??@@!!""##$$""##$$%% 33221100OONNMMLLkkjjiihhiijjkkllyyzz{{||]]^^__``AABBCCDD%%&&''(( - - &&''(()) - - //..--,,KKJJIIHHggffeeddmmnnoopp}}~~aabbccddEEFFGGHH))**++,, **++,,-- ++**))((GGFFEEDDccbbaa``qqrrsstteeffgghhIIJJKKLL--..//00!!""##..//0011 - - ''&&%%$$CCBBAA@@__^^]]\\uuvvwwxxiijjkkllMMNNOOPP11223344$$%%&&''22334455##""!! ??>>==<<[[ZZYYXXyyzz{{||mmnnooppQQRRSSTT55667788(())**++66778899;;::9988WWVVUUTT}}~~qqrrssttUUVVWWXX99::;;<< ,,--..//::;;<<== !!77665544SSRRQQPPuuvvwwxxYYZZ[[\\==>>??@@!!""##$$00112233>>??@@AA""##$$%% 33221100OONNMMLLyyzz{{||]]^^__``AABBCCDD%%&&''((44556677BBCCDDEE&&''(()) - - //..--,,KKJJIIHH}}~~aabbccddEEFFGGHH))**++,,==>>??@@FFGGHHII**++,,-- ++**))((GGFFEEDDeeffgghhIIJJKKLL--..//00AABBCCDDJJKKLLMM..//0011 - - ''&&%%$$CCBBAA@@iijjkkllMMNNOOPP11223344EEFFGGHHNNOOPPQQ22334455##""!! ??>>==<>??@@QQRRSSYYZZ[[\\]]>>??@@AA""##$$%% 33221100yyzz{{||]]^^__``AABBCCDDZZ[[\\]]^^__``aaBBCCDDEE&&''(()) - - //..--,,hggffeedzzyyxxwwwwxxyyzz[[\\]]^^yyzz{{||xxyyzz{{\\]]^^__@@AABBCC$$%%&&'' - -  - - 00//..--LLKKJJIIhhggffeerqpoonnmnnooppqqdccbbaa`vvuuttss{{||}}~~__``aabb}}~~||}}~~``aabbccDDEEFFGG(())**++   ,,++**))HHGGFFEEddccbbaa~~}}mllkkjji~~}}||rrssttuu`__^^]]\rrqqppooccddeeffddeeffggHHIIJJKK,,--..// - - - -  - - ((''&&%%DDCCBBAA``__^^]]||{{zzyyihhggffe{{zzyyxxvvwwxxyy~~\[[ZZYYXnnmmllkkgghhiijjhhiijjkkLLMMNNOO00112233 $$##""!!@@??>>==\\[[ZZYYxxwwvvuueddccbbawwvvuuttzz{{||}}}}||{{zzWVUTSSRRjjiihhggkkllmmnnllmmnnooPPQQRRSS44556677  <<;;::99XXWWVVUUttssrrqqa``__^^]ssrrqqpp~~yyxxwwvvQQPPOONNffeeddccooppqqrrppqqrrssTTUUVVWW8899::;; - -  88776655TTSSRRQQppoonnmm]\\[[ZZYoonnmmlluuoonnmmMMLLKKJJbbaa``__~~}}||{{ssttuuvvttuuvvwwXXYYZZ[[<<==>>?? !!""##!!""##$$44332211PPOONNMMllkkjjii~~}}||{{YXWVUTSSkkjjiihhllkkjjiiIIHHGGFF^^]]\\[[zzyyxxwwwwxxyyzzxxyyzz{{\\]]^^__@@AABBCC$$%%&&'' - - %%&&''(( - - 00//..--LLKKJJIIhhggffeezzyyxxwwRRQQPPOOggffeeddhhggffeeEEDDCCBBZZYYXXWWvvuuttss{{||}}~~||}}~~``aabbccDDEEFFGG(())**++ ))**++,,  ,,++**))HHGGFFEEddccbbaavvuuoonnNNMMLLKKccbbaa``~~}}||ddccbbaaAA@@??>>VVUUTTSSrrqqppooddeeffggHHIIJJKK,,--..//!!""--..//00 - - ((''&&%%DDCCBBAA``__^^]]mmllkkjjJJIIHHGG__^^]]\\{{zzyyxx``__^^]]==<;:987RRQQPPOOnnmmllkkhhiijjkkLLMMNNOO00112233##$$%%&&11223344$$##""!!@@??>>==\\[[ZZYYiihhggffFFEEDDCC[[ZZYYXXwwvvuutt\\[[ZZYY76655443NNMMLLKKjjiihhggllmmnnooPPQQRRSS44556677''(())**55667788 <<;;::99XXWWVVUUeeddccbbBBAA@@??WWVVUUTTssrrqqppSSRRQQPP3221100/JJIIHHGGffeeddccppqqrrssTTUUVVWW8899::;;++,,--..99::;;<< 88776655TTSSRRQQaa``__^^>>==<;:9SSRRQQPPoonnmmll~~}}||OONNMMLL/..--,,+FFEEDDCCbbaa``__~~}}||{{ttuuvvwwXXYYZZ[[<<==>>?? !!""##//001122==>>??@@!!""##$$44332211PPOONNMM]]\\[[ZZ87766554OONNMMLLkkjjiihh{{zzyyxxKKJJIIHH+**))(('BBAA@@??^^]]\\[[zzyyxxwwxxyyzz{{\\]]^^__@@AABBCC$$%%&&''33445566AABBCCDD%%&&''(( - - 00//..--LLKKJJIIYYSSRRQQ43322110KKJJIIHHggffeeddwwvvuuttGGFFEEDD'&&%%$$#>>==<<;;ZZYYXXWWvvuuttss||}}~~``aabbccDDEEFFGG(())**++77==>>??EEFFGGHH))**++,,  ,,++**))HHGGFFEEPPOONNMM0//..--,GGFFEEDDccbbaa``~~}}||ssrrqqppCCBBAA@@#""!! ::998877VVUUTTSSrrqqppooddeeffggHHIIJJKK,,--..//@@AABBCCIIJJKKLL--..//00 - - ((''&&%%DDCCBBAALLKKJJII,++**))(CCBBAA@@__^^]]\\{{zzyyxxoonnmmll??>>==7766554433RRQQPPOOnnmmllkkhhiijjkkLLMMNNOO00112233DDEEFFGGMMNNOOPP11223344$$##""!!@@??>>==HHGGFFEE(''&&%%$??>>==<<[[ZZYYXXwwvvuuttkkjjiihh66554433221100//NNMMLLKKjjiihhggllmmnnooPPQQRRSS44556677HHIIJJKKQQRRSSTT55667788 <<;;::99DDCCBBAA$##""!! ;;::9988WWVVUUTTssrrqqppggffeedd221100//..--,,++JJIIHHGGffeeddccppqqrrssTTUUVVWW8899::;;LLMMNNOOUUVVWWXX99::;;<< 88776655@@??>>==77665544SSRRQQPPoonnmmllccbbaa``..--,,++ **))((''FFEEDDCCbbaa``__~~}}||{{ttuuvvwwXXYYZZ[[<<==>>??PPQQRRSSYYZZ[[\\==>>??@@!!""##$$443322117766554433221100OONNMMLLkkjjiihh__^^]]\\**))(('' - - &&%%$$##BBAA@@??^^]]\\[[zzyyxxwwxxyyzz{{\\]]^^__@@AABBCCYYZZ[[\\]]^^__``AABBCCDD%%&&''(( - - 00//..--33221100//..--,,KKJJIIHHggffeedd[[ZZYYXX&&%%$$##""!! >>==<<;;ZZYYXXWWvvuuttss~~||}}~~``aabbccDDEEFFGG]]^^__``aabbccddEEFFGGHH))**++,,  ,,++**))//..--,,++**))((GGFFEEDDccbbaa``~~}}||WWVVUUTT""!!::998877VVUUTTSSrrqqppoo}}||{{zzddeeffggHHIIJJKKaabbccddeeffgghhIIJJKKLL--..//00 - - ((''&&%%++**))(( - -''&&%%$$CCBBAA@@__^^]]\\{{zzyyxxSSRRQQPP66554433RRQQPPOOnnmmllkkyyxxwwvvhhiijjkkLLMMNNOOeeffgghhiijjkkllMMNNOOPP11223344$$##""!!''&&%%$$ ##""!! ??>>==<<[[ZZYYXXwwvvuuttOONNMMLL - -221100//NNMMLLKKjjiihhgguutsrqpollmmnnooPPQQRRSSiijjkkllmmnnooppQQRRSSTT55667788 ##""!!;;::9988WWVVUUTTssrrqqppKKJJIIHH ..--,,++JJIIHHGGffeeddcconnmmllk~~ppqqrrssTTUUVVWWmmnnoouuqqrrssttUUVVWWXX99::;;<< 77665544SSRRQQPPoonnmmll~~}}||{{GGFFEEDD - - **))((''FFEEDDCCbbaa``__~~}}||{{kjjiihhg}}||{{zzttuuvvwwXXYYZZ[[vvwwxxyyuuvvwwxxYYZZ[[\\==>>??@@!!""##$$ 33221100OONNMMLLkkjjiihhzzyyxxwwCCBBAA@@  - - &&%%$$##BBAA@@??^^]]\\[[zzyyxxwwgffeeddcyyxxwwvvxxyyzz{{\\]]^^__zz{{||}}yyzz{{||]]^^__``AABBCCDD%%&&''(( - -  - - //..--,,KKJJIIHHggffeeddvvuuoonn??>>==<<""!! >>==<<;;ZZYYXXWWvvuuttsscbbaa``_uuttssrr||}}~~``aabbcc~~}}~~aabbccddEEFFGGHH))**++,,    ++**))((GGFFEEDDccbbaa``mmllkkjj;;::9988 - - ::998877VVUUTTSSrrqqppoo_^^]]\\[qqppoonnddeeffggeeffgghhIIJJKKLL--..//00 - - - -  - - ''&&%%$$CCBBAA@@__^^]]\\iihhggff77665544  !!""66554433RRQQPPOOnnmmllkk~~}}[ZZYYXWVmmllkkjjhhiijjkkiijjkkllMMNNOOPP11223344##""!! ??>>==<<[[ZZYYXXeeddccbb33221100##$$%%&& - -221100//NNMMLLKKjjiihhgg||{{zzyyUTSSRRQQiihhggffllmmnnoommnnooppQQRRSSTT55667788 - -;;::9988WWVVUUTTaa``__^^//..--,,''(())** ..--,,++JJIIHHGGffeeddccxxwwvvuuPPOONNMMeeddccbb~~ppqqrrssqqrrssttUUVVWWXX99::;;<<   !!77665544SSRRQQPP]]\\[[ZZ++**))((++,,--.. **))((''FFEEDDCCbbaa``__oonnmmllLLKKJJIIaa``__^^}}||{{zzttuuvvwwuuvvwwxxYYZZ[[\\==>>??@@!!""##$$""##$$%% 33221100OONNMMLLYYSSRRQQ''&&%%$$!!""##$$//001122 - - &&%%$$##BBAA@@??^^]]\\[[kkjjiihhHHGGFFEE]]\\[[ZZyyxxwwvvxxyyzz{{yyzz{{||]]^^__``AABBCCDD%%&&''(( - - &&''(()) - - //..--,,KKJJIIHHPPOONNMM##""!! %%&&''((33445566""!! >>==<<;;ZZYYXXWWggffeeddDDCCBBAAYYXXWWVVuuttssrr||}}~~}}~~aabbccddEEFFGGHH))**++,, **++,,-- ++**))((GGFFEEDDLLKKJJII))**++,,778899::::998877VVUUTTSSccbbaa``@@??>>==UUTTSSRRqqppoonneeffgghhIIJJKKLL--..//00!!""##..//0011 - - ''&&%%$$CCBBAA@@HHGGFFEE--..//00;;<<==>> !!""66554433RRQQPPOO__^^]]\\<;:98776QQPPOONNmmllkkjjiijjkkllMMNNOOPP11223344$$%%&&''22334455##""!! ??>>==<>==556677==CCDDEEFF''(())** ..--,,++JJIIHHGGRRQQPPOO21100//.IIHHGGFFeeddccbb~~qqrrssttUUVVWWXX99::;;<< ,,--..//::;;<<== !!7766554477665544 >>??@@AAGGHHIIJJ++,,--.. **))((''FFEEDDCCNNMMLLKK.--,,++*EEDDCCBBaa``__^^}}||{{zzuuvvwwxxYYZZ[[\\==>>??@@!!""##$$00112233>>??@@AA""##$$%% 3322110033221100 - - BBCCDDEEKKLLMMNN//001122 - - &&%%$$##BBAA@@??JJIIHHGG*))((''&AA@@??>>]]\\[[ZZyyxxwwvvyyzz{{||]]^^__``AABBCCDD%%&&''((44556677BBCCDDEE&&''(()) - - //..--,,//..--,, - - FFGGHHIIOOPPQQRR33445566""!! >>==<<;;FFEEDDCC&%%$$##"==<<;;::YYXXWWVVuuttssrr}}~~aabbccddEEFFGGHH))**++,,==>>??@@FFGGHHII**++,,-- ++**))((++**))((JJKKLLMMSSTTUUVV778899::::998877BBAA@@??"!! 99887766UUTTSSRRqqppoonneeffgghhIIJJKKLL--..//00AABBCCDDJJKKLLMM..//0011 - - ''&&%%$$''&&%%$$NNOOPPQQWWXXYYZZ;;<<==>> !!""66554433>>==776655443322QQPPOONNmmllkkjjiijjkkllMMNNOOPP11223344EEFFGGHHNNOOPPQQ22334455##""!! ##""!!RRSSYYZZ[[\\]]^^??@@AABB##$$%%&& - -221100//554433221100//..MMLLKKJJiihhggffmmnnooppQQRRSSTT55667788IIJJKKLLRRSSTTUU66778899[[\\]]^^__``aabbCCDDEEFF''(())** ..--,,++1100//..--,,++**IIHHGGFFeeddccbb~~qqrrssttUUVVWWXX99::;;<>??@@QQRRSSYYZZ[[\\]]>>??@@AA""##$$%% ""##$$%%ccddeeffgghhiijjKKLLMMNN//001122 - - &&%%$$##))((''&& - - %%$$##""AA@@??>>]]\\[[ZZyyxxwwvvyyzz{{||]]^^__``AABBCCDDZZ[[\\]]^^__``aaBBCCDDEE&&''(()) - -  &&''(())gghhiijjkkllmmnnOOPPQQRR33445566""!! %%$$##""!! ==<<;;::YYXXWWVVuuttssrr~~}}}}~~aabbccddEEFFGGHH^^__``aabbccddeeFFGGHHII**++,,-- - - - -**++,,--kkllmmnnooppqqrrSSTTUUVV778899::!!99887766UUTTSSRRqqppoonn||{{zzyyeeffgghhIIJJKKLLbbccddeeffgghhiiJJKKLLMM..//0011 - -  ..//0011oouuvvwwssttuuvvWWXXYYZZ;;<<==>> !!""55443322QQPPOONNmmllkkjjxxwwvvuuiijjkkllMMNNOOPPffgghhiijjkkllmmNNOOPPQQ2233445522334455xxyyzz{{wwxxyyzz[[\\]]^^??@@AABB##$$%%&& - - - - 1100//..MMLLKKJJiihhggfftsrqpoonmmnnooppQQRRSSTTjjkkllmmnnooppqqRRSSTTUU6677889966778899||}}~~{{||}}~~__``aabbCCDDEEFF''(())**  --,,++**IIHHGGFFeeddccbb~~nmmllkkj~~}}qqrrssttUUVVWWXXnnoouuvvrrssttuuVVWWXXYY::;;<<== !!::;;<<==ccddeeffGGHHIIJJ++,,--.. - -  - -))((''&&EEDDCCBBaa``__^^}}||{{zzjiihhggf||{{zzyyuuvvwwxxYYZZ[[\\wwxxyyzzvvwwxxyyZZ[[\\]]>>??@@AA""##$$%% !!""##>>??@@AAgghhiijjKKLLMMNN//001122 - -  %%$$##""AA@@??>>]]\\[[ZZyyxxwwvvfeeddccbxxwwvvuuyyzz{{||]]^^__``{{||}}~~zz{{||}}^^__``aaBBCCDDEE&&''(()) - - $$%%&&''BBCCDDEEkkllmmnnOOPPQQRR33445566!! ==<<;;::YYXXWWVVuuttssrrbaa``__^ttssrrqq}}~~aabbccdd~~bbccddeeFFGGHHII**++,,--(())**++FFGGHHIIooppqqrrSSTTUUVV778899:: - - 99887766UUTTSSRRqqppoonn^]]\\[[ZppoonnmmeeffgghhffgghhiiJJKKLLMM..//0011,,--..//JJKKLLMMssttuuvvWWXXYYZZ;;<<==>> !!""  !!""##55443322QQPPOONNmmllkkjj~~}}||ZYYXWVUTllkkjjiiiijjkklljjkkllmmNNOOPPQQ2233445500112233NNOOPPQQwwxxyyzz[[\\]]^^??@@AABB##$$%%&& - -$$%%&&'' - - 1100//..MMLLKKJJiihhggff{{zzyyxxSSRRQQPPhhggffeemmnnooppnnooppqqRRSSTTUU6677889944556677RRSSTTUU{{||}}~~__``aabbCCDDEEFF''(())** (())**++ --,,++**IIHHGGFFeeddccbbwwvvuuooOONNMMLLddccbbaa~~}}qqrrssttrrssttuuVVWWXXYY::;;<<== !!==>>??@@VVWWXXYYccddeeffGGHHIIJJ++,,--..!!,,--..// - -))((''&&EEDDCCBBaa``__^^nnmmllkkKKJJIIHH``__^^]]||{{zzyyuuvvwwxxvvwwxxyyZZ[[\\]]>>??@@AA""##$$%%AABBCCDDZZ[[\\]]gghhiijjKKLLMMNN//001122""##$$%%00112233 %%$$##""AA@@??>>]]\\[[ZZjjiihhggGGFFEEDD\\[[ZZYYxxwwvvuuyyzz{{||zz{{||}}^^__``aaBBCCDDEE&&''(())EEFFGGHH^^__``aakkllmmnnOOPPQQRR33445566&&''(())44556677!! ==<<;;::YYXXWWVVffeeddccCCBBAA@@XXWWVVUUttssrrqq}}~~~~bbccddeeFFGGHHII**++,,--IIJJKKLLbbccddeeooppqqrrSSTTUUVV778899::**++,,--8899::;;99887766UUTTSSRRbbaa``__??>>==<;TTSSRRQQppoonnmmffgghhiiJJKKLLMM..//0011MMNNOOPPffgghhiissttuuvvWWXXYYZZ;;<<==>> !!""..//0011<<==>>?? !!""##55443322QQPPOONN^^]]\\[[:9877665PPOONNMMllkkjjiijjkkllmmNNOOPPQQ22334455QQRRSSYYjjkkllmmwwxxyyzz[[\\]]^^??@@AABB##$$%%&&22334455@@AABBCC$$%%&&'' - - 1100//..MMLLKKJJZZYYSSRR54433221LLKKJJIIhhggffeennooppqqRRSSTTUU66778899ZZ[[\\]]nnooppqq{{||}}~~__``aabbCCDDEEFF''(())**6677==>>DDEEFFGG(())**++ --,,++**IIHHGGFFQQPPOONN100//..-HHGGFFEEddccbbaa~~}}rrssttuuVVWWXXYY::;;<<==^^__``aarrssttuuccddeeffGGHHIIJJ++,,--..??@@AABBHHIIJJKK,,--..// - -))((''&&EEDDCCBBMMLLKKJJ-,,++**)DDCCBBAA``__^^]]||{{zzyyvvwwxxyyZZ[[\\]]>>??@@AAbbccddeevvwwxxyygghhiijjKKLLMMNN//001122CCDDEEFFLLMMNNOO00112233 %%$$##""AA@@??>>IIHHGGFF)((''&&%@@??>>==\\[[ZZYYxxwwvvuuzz{{||}}^^__``aaBBCCDDEEffgghhiizz{{||}}kkllmmnnOOPPQQRR33445566GGHHIIJJPPQQRRSS44556677!! ==<<;;::EEDDCCBB%$$##""!<<;;::99XXWWVVUUttssrrqq~~bbccddeeFFGGHHIIjjkkllmm~~ooppqqrrSSTTUUVV778899::KKLLMMNNTTUUVVWW8899::;;99887766AA@@??>>! 88776655TTSSRRQQppoonnmmffgghhiiJJKKLLMMnnoouuvvssttuuvvWWXXYYZZ;;<<==>>OOPPQQRRXXYYZZ[[<<==>>?? !!""##55443322==77665544332211PPOONNMMllkkjjiijjkkllmmNNOOPPQQwwxxyyzzwwxxyyzz[[\\]]^^??@@AABBSSYYZZ[[\\]]^^__@@AABBCC$$%%&&'' - - 1100//..4433221100//..--LLKKJJIIhhggffeennooppqqRRSSTTUU{{||}}~~{{||}}~~__``aabbCCDDEEFF\\]]^^__``aabbccDDEEFFGG(())**++ --,,++**00//..--,,++**))HHGGFFEEddccbbaa~~}}rrssttuuVVWWXXYY~~}}||{{ccddeeffGGHHIIJJ``aabbccddeeffggHHIIJJKK,,--..// - -))((''&&,,++**)) ((''&&%%DDCCBBAA``__^^]]||{{zzyyvvwwxxyyZZ[[\\]]zzyyxxwwgghhiijjKKLLMMNNddeeffgghhiijjkkLLMMNNOO00112233 %%$$##""((''&&%% - - $$##""!!@@??>>==\\[[ZZYYxxwwvvuuzz{{||}}^^__``aavvuutsrqkkllmmnnOOPPQQRRhhiijjkkllmmnnooPPQQRRSS44556677!! $$##""!! <<;;::99XXWWVVUUttssrrqq~~}}||~~bbccddeepoonnmmlooppqqrrSSTTUUVVllmmnnooppqqrrssTTUUVVWW8899::;;88776655TTSSRRQQppoonnmm{{zzyyxxffgghhiilkkjjiih~~}}||{{ssttuuvvWWXXYYZZuuvvwwxxttuuvvwwXXYYZZ[[<<==>>?? !!""##44332211PPOONNMMllkkjjiiwwvvuutsjjkkllmmZHAb|ZdQbltbr˂pfpvp˂rH~ftlJp˂rvXnlJtA˂rXQ~f`lJtApvnے`JXQtlJdQZ|ZHAbnXv`XQJ`ے`vXntArdXQJ`ےvpfHrd|J`ےvXnrd|Xv`fr˂ptArddrtAJے`JXQf~HbHAZvpf|ZdQbbHAZ~f`ZdQbtbHAZpvpfHZdQbtHfpZHAbf~Hltbr˂pfpvp˂rH~ftlJp˂rvXnlJtA˂rXQ~f`lJtAvnrے`JXQXv`fdQZ|ZHAbnXv`XQJ`ے`vXntArdXQJ`ےvp`vrd|J`ےvXnrd|XQJ`ےr˂p~HfrAJltے`JXQf~HbHAZvpf|ZdQbbHAZXnvZdQbtbHAZpvpfHZdQbtHAZpZHAbpvnbdQZ|r˂pfpvdrtAH~ftlJp˂rpfH~lJtA˂rXQ~f`lJtA˂rXQے`JXQXv`fdrtZHAbnXv`Jlt`vXntArdXQJ`ےf`vrd|J`ےvXnrd|J`ےr˂p~HfAJltے`JXQf~HbdQZ|vpf|ZdQbbHAZXnvZdQbtbHAZpvpfHZdQbtbHAZpZHAbpvbdQZ|r˂pfpvdrtAH~ftlJp˂rpfH~lJtA˂rXQ~f`lJtA˂rXQے`JXQ~HfpdrtZHAbnXv`Jlt`vXntArdXQJ`ےvprd|J`ےvXnrd|J`ےr˂pvnXAJbdQے`JXQf~HbdQZ|vpf|ZdQbbHAZfH~ZdQbtbHAZpvpfHZdQbtbHAZpZHAbv`fZ|dr˂pfpvdrtAH~ftlJp˂rf`vXlJtA˂rXQ~f`lJtA˂rXQے`JXQ~HfprtAJlZHAbnXv`JltZHAbtArdXQJ`ےnvprd|J`ےvXnrd|J`ےr˂pvnXtbdQے`JXQf~HbdQZ|ے`JXQ|ZdQbbHAZfH~ZdQbtbHAZpvpfHZdQbtbHAZpZHAbv`pvZ|dr˂pfpvdrtAr˂ptlJp˂rf`vXlJtA˂rXQ~f`lJtA˂rXQے`JXQnXvrtAJlZHAbnXv`JltZHAbtArdXQJ`ےH~frd|J`ےvXnrd|J`ےr˂p`f~tbQZے`JXQf~HbdQZ|ے`JXQ|ZdQbbHAZZHAbZdQbtbHAZpvpfHZdQbtbHAZpZHAbHfpvdrtAr˂pfpvdrtAr˂ptlJp˂rJQrlJtA˂rXQ~f`lJtA˂rXQے`JXQnXvJltZHAbnXv`JltZHAbtArdXQJ`ےpZHArdfJ`ےvXnrd|J`ےr˂p`f~bdQZ|ے`JXQf~HbdQZ|ے`JXQf~HbHAZbے`~HfbHAZpvpfHZdQbtbHAZpdrtAJZHAbHXv`drtAr˂pfpvdrtAr˂pfpvp˂rJXQrpvn˂rXQ~f`lJtA˂rXQltbے`JXQf~HJltZHAbnXv`JltZHAbnXv`XQJ`ےpZHAXv`fJ`ےvXnrd|J`ےdQZ|r˂pfpvbdQZ|ے`JXQf~HbdQZ|ے`JXQf~HbHAZbے`~HfbHAZpvpfHZdQbtbHAZpdrtAJZHAbnXv`rAJlr˂pfpvdrtAr˂pfpvp˂rJXQrZpvn˂rXQ~f`lJtA˂rXQltbے`JXQf~HtbdQZZHAbnXv`JltZHAbnXv`XQJ`ےHAbےXv`fJ`ےvXnrd|J`ےdQZ|r˂pfpv|drے`JXQf~HbdQZ|ے`JXQf~HbHAZ`JXQr~HfbHAZvpfHZdQbtbHAZpdrtAJZHAb~HftAJlr˂pfpvdrtAr˂pfpvdrtA˂pZpvndrtAJ~f`lJtA˂rXQltbے`JXQpvntbdQZZHAbnXv`JltZHAbnXv`dQZ|HAbےXv`fltbvXnrd|J`ےdQZ|r˂pXv`f|dnے`JXQf~HbdQZ|ے`JXQf~HdrtAJ`JXQr~HfdQZ|vpfHZdQbtbHAZpdtAJlZHAb~Hfvffr˂pfpvdrtAr˂pfpvltb˂pZApvndrtAJ~f`lJtA˂rXQtbnے`JXQpvn`vXnZHAbnXv`JltZHAbnXv`dQZ|b`JXXv`fltbvXnrd|J`ےvpfr˂pXv`pvpfے`JXQf~HbdQZ|ے`JXQf~HdrtAJQr˂p~HfdQZ|vpfHZdQbtbHAZpHf`ZHAbvnXH~fr˂pfpvdrtAr˂pfpvltdZHAbpvndrtAJ~fZlJtA˂rXQvXnے`JXQv`f`vXnZHAےnXv`JltZHAbnXv`rtAJlے`JXXv`fltbHAbےrd|J`ےvpfHr˂p~Hfpvpf`JXQrf~HbdQZ|ے`JXQf~HtbdQQr˂p~HfdQZ|`JXQrZdQbtbHAZp~f`ZHAbvnXH~fbtlfpvdrtAr˂pfpvZ|dZHAbpvndrtAJ˂pZlJtA˂rXQvXnے`JXQv`p˂`vXnJtAdnXv`JltZHAbnXv`rtAJlJQrXv`fltbHAbےrd|J`ےvpfHr˂prXQJvpf|ZdQbf~HbdQZ|ے`JXQf~HtbdQ˂pZHA~HfdQZ|`JXQrZdQbtbHAZp~f`ZHAb`ےbH~ftlJfpvdrtAr˂pfpvZ|lbے`pvndrtAJ˂pZlJtA˂rXQvXnے`JXQHAZp˂`vXntArdnXv`JltZHAbnXv`tbdQZJXQrXv`fltbHAbےrdfJ`ےvpfHr˂prXQJvpf|ZdQbfHfbdQZ|ے`JXQf~H|dr˂pZHA~HfdQZ|`JXQr~HfbHAZp~f`|ZdQb`p˂H~ftlJpvndrtAr˂pfpvtAJlbے`pvndrtAJ˂pZpvn˂rXQvXntlJrXQJ``vXntArdrXQJ`JltZHAbnXv`tbdQZJXQrXv`fltbHAbےXv`fJ`ےvpfHtArdےbHAvpf|ZdQbےHAZbdQZ|ے`JXQf~H|drZHAbې~HfdQZ|`JXQr~HfbHAZp~f`|ZdQbZp˂H~ftlJp˂rdrtAr˂pfpvtAdQZ|`JXQpvndrtAJ˂pZpvn˂rXQvXntlJrXQJ``vXntArdXQJ`ےJltZHAbnXv`drtAr˂pXv`fltbHAbےXv`fJ`ےvpfHtArdےbHAvpf|ZdQbbHAZbdQZ|ے`JXQf~HJltZHAbې~HfdQZ|`JXQr~HfbHAZ~f`|ZdQbXQJ`ےH~ftlJp˂rdtAJr˂pfpvbdQZ|`JXQpvndrtAJ˂pZpvndrtAJvXntlJbHAZ`vXntArdXQJ`ےltbZHAbnXv`drtAr˂pZXv`fltbHAbےXv`fltbvpfHtArdp˂rvpf|ZdQbbHAZnvpے`JXQf~HJltAb`J~HfdQZ|`JXQr~HfdQZ|~f`|ZdQbXQJ`ےH~ftlJp˂rfHfr˂pfpvdrtAJXQr˂pvndrtAJ˂pZpvndrtAJvXntlJbHAZ`vXntArdXQJ`ے`vXnZHAbnXv`ltbpZHAbXv`fltbHAbےXv`fltbvpfHtArdp˂vpf|ZdQbbHAZvpfے`JXQf~HdQZ|ے`J~HfdQZ|`JXQr~HfdQZ|~f`|ZdQbbHAZpH~ftlJp˂rH~fr˂pfpvdrtAJXQr˂pvndrtAJ˂pZpvndrtAJvXntlJ˂rXQ`vXntArdXQJ`ے`vXnZHAےnXv`ltbpZA`Xv`fltbHAbےXv`fltbvpfHtArdJ`ےvpf|ZdQbbHAZvpf`JXQrf~HdQZ|lJXQrb~HfdQZ|`JXQr~HfdQZ|~f`|ZdQbbHAZpH~ftlJp˂rH~fbtlfpvtbdQtlJpvndrtAJ˂pZpvndrtAJvXntlJ˂rXQ`vXntArdXQJ`ے`vXnJtAdnXv`Z|dtAd|Xv`fltbHAbےXv`fltbvpfHtArdJ`p˂vpf|ZdQbbHAZvpf|ZdQbf~HrtAJlZdQbt~HfdQZ|`JXQr~HfdQZ|~f`|ZdQbrXQJH~ftlJp˂rH~ftlJfpvtbdQlJtApvndrtAJ˂pZpvndrtAJvXntlJ`ےb`vXntArdXQJ`ے`vXntArdnXv`Z|lrd|Xv`fltbHAbےXv`fltbvpfHtArdHAZp˂vpf|ZdQbbHAZvpf|ZdQbfHftbnZdQbtHfpdQZ|`JXQr~HfdQZ|~f`|ZdQbrXQJH~ftlJp˂rH~ftlJpvnvp`vlJtAvnrdrtAJ˂pZpvndrtAJvXntlJ`ےb`vXntArdXQJ`ے`vXntArdrXQJ`Xnvrd|XQJ`ےltbHAbےXv`fltbvpfHtArdHAXQJ`vpf|ZdQbbHAZvpf|ZdQbےHAZpfH~ZdQbtHAZpdQZ|`JXQr~HfdQZ|~f`|ZdQbےbHAH~ftlJp˂rH~ftlJp˂rf`vlJtA˂rXQdrtAJ˂pZpvndrtAJvXntlJZp˂`vXntArdXQJ`ے`vXntArdXQJ`ےXnvrd|J`ےltbHAbےXv`fltbvpfHtArdrXQJ`vpf|ZdQbbHAZvpf|ZdQbbHAZp`vXZdQbtbHAZpdQZ|`JXQr~HfdQZ|~f`|ZdQbےbHAH~ftlJp˂rH~ftlJp˂rnvplJtA˂rXQdtAJl˂pZpvndrtAJvXntlJZp˂`vXntArdXQJ`ے`vXntArdXQJ`ےfH~rd|J`ےtbnHAbےXv`fltbvpfHtArdbHAZvpf|ZdQbbHAZvpf|ZdQbbHAZf`vXZdQbtbHAZpvpf`JXQr~HfdQZ|~f`|ZdQbdrtAH~ftlJp˂rH~ftlJp˂rnvplJtA˂rXQHf`˂pZpvndrtAJvXntlJJbdQZHAbtArdXQJ`ے`vXntArdXQJ`ےfH~rd|J`ےvXnHAbےXv`fltbvpfHtArdZ|dے`JXQ|ZdQbbHAZvpf|ZdQbbHAZvpfZdQbtbHAZpvpfH`JXQr~HfdQZ|~fZ|ZdQbrtAJlr˂ptlJp˂rH~ftlJp˂rH~flJtA˂rXQ~f`˂pZpvndrtAJHAbtlJtbdQZHAbtArdXQJ`ے`vXntArdXQJ`ے`vXnrd|J`ےvXnHAے`Xv`fltb˂pZHAtArdZ|dے`JXQ|ZdQbbHAZvpf|ZdQbbHAZvpfZdQbtbHAZpvpfHJXQrb~HfdQZ|bے`|ZdQbrtAJlr˂ptlJp˂rH~ftlJp˂rH~flJtA˂rXQ~f`tlJpvndrtAJJXQrtlJtbQZZHAbtArdXQJ`ے`vXntArdXQJ`ے`vXHrd|J`ےvXntAd|Xv`fltb˂pZHAtArddrtAJے`JXQf~HbHAZvpf|ZdQbbHAZ~f`ZdQbtbHAZpvpfHZdQbt~HfdQZ|bے`JXQHAbf~HtbdQbے`df`ےbXnvd|ZXQJ`ےnvp|ZdQےbHAnvp|ZdQ`f~drtAJ|ZdQbf~HbdQZ|ے`JXQf~HbdQZ|˂pZ~fpvdQZ|`JXQrZdQbtbHAZpvpfHb㉀ۑpے`JfpvZ|dJXQr~HfpHAZp˂pfH~dQbt璐bHAZfH~btlZp˂fH~btlHfpvltbtlJfpvdrtAr˂pfpvdrtAHAbےnXv`drtAJ˂pZlJtA˂rXQ~f`JAHrXQr˂nXv`rtAJl˂pZHAvnXrXQJf`vlJtArp˂rf`vXJtArdrXQJ`f`vXJtArdnXvdQZ|ltArdnXv`JltZHAbnXv`Jlt`JXQHAf~HltbHAbےrdfJ`ےvXnˁ`pfpZHAbf~HftbdQbے`v`f`ےbXnvd|ZXQJ`ےnvp|ZdQےbHAnvp|ZdQ`fHtbn|ZdQbfHfbdQZ|ے`JXQf~HbdQZ|bے`fpvdQZ|`JXQr~HfbHAZpvpfHH~ㅐfېے`JvnXvZ|dJXQr~HfpHAZp˂pfH~dQbt璐bHAXQfH~btlZp˂fH~btlfpvvp`tlJpvndrtAr˂pfpvdrtAJXQrnXv`drtAJ˂pZpvn˂rXQ~f``vXnXQr˂`f~rtAJl˂pZHAvnXrXQJf`vlJtArJ`ےf`vXJtArdrXQJ`f`vXJtArdnrXQJvXntArdrXQJ`JltZHAbnXv`Jlt˂pZHAf~HltbHAbےXv`fJ`ےvXnvˍpfp`JXQHfpvtbdQbے`v`f`ےbXnvd|ZbHAZpnvp|ZdQےbHAnvp|ZdQ`ےHAvpfH|ZdQbےHAZbdQZ|ے`JXQf~HbdQZ|bے`fvnXdQZ|`JXQr~HfbHAZpvpfHH~ㅐfr˂pnXvZ|dJXQr~HfpHAZdpfH~dQbt˂rXQfH~btlZp˂fH~btlZp˂~f`tlJp˂rdrtAr˂pfpvdrtAJXQrv`fdrtAJ˂pZpvn˂rXQ~f``vXnZHAb`f~rtAJl˂pZHAvnXrtAJlf`vlJtArJ`ےf`vXJtArdrXQJ`f`vXJtArdrXQJ`vXntArdXQJ`ےJltZHAbnXv`Jlt˂p`J~HfpltbHAbےXv`fJ`ےvXnvˍpfے`JXQHfpvtbdQbے`v`ftbdQXnvd|ZbHAZpnvp|ZdQےbHAnvp|ZdQےbHAvp`v|ZdQbbHAZbdQZ|ے`JXQf~HbdQZ|XQr˂vnXdQZ|`JXQr~HfbHAZvpfHH~ㅐfr˂pnvfZ|dJXQr~HfpZ|dpfH~dQbt˂bfH~btlZp˂fH~btlZp˂XnvtlJp˂rdtAJr˂pfpvdrtApZHAbv`fdrtAJ˂pZpvndrtAJ~f``vXnZHAb~HfprtAJl˂pZHAvnXrtAJlf`vlJtArHAZdf`vXJtArdrXQJ`f`vXJtArdrXQJ`pfH~tArdXQJ`ےltbZHAbnXv`Jltے`J~HfpltbHAbےXv`fltbvXnvˍpf˂pZvnXtbdQbے`v`ftbdQXnvd|ZrtAJnvp|ZdQےbHAnvp|ZdQےbHAf`v|ZdQbbHAZnvpے`JXQf~HbdQZ|XQr˂vnvdQZ|`JXQr~HfdQZ|vpfHH~ㅐfHAbےv`fZ|dJXQr~HfpZ|dpfH~dQbtbdQZ|fH~btlZp˂fH~btlZp˂XnvtlJp˂rfHfr˂pfpvdrtApZHAbf~HdrtAJ˂pZpvndrtAJ~f``vXn`JXQr~HfprtAJl˂pZHAvnXrtAJlfZHAlJtArdrtAfZHAbJtArdrXQJ`f`vXJtArdrXQJ`pfH~tArdXQJ`ے`vXnZHAbnXv`Jlt˂pfpvltbHAbےXv`fltbvXnvˍpf˂pZvnXtbdQbے`v`ftbdQbے`d|ZJltے`J|ZdQےbHAnvp|ZdQےbHAvp|ZdQbbHAZvpfے`JXQf~HbdQZ|ZHAbnXv`dQZ|`JXQr~HfdQZ|vpfHH~ㅐfHAbےv`f~Z|dJXQr~HfpZ|dJXQrdQbtbdQZ|XQr˂btlZp˂fH~btlZp˂fH~tlJp˂rH~fr˂pfpvdrtAے`JXQf~HdrtAJ˂pZpvndrtAJ~fr`vXn`JXQHAfpvrtAJl˂pZHAvnXrtAJl˂pZHAlJtArdrtApZHAbJtArdrXQJ`f`vXJtArdrXQJ`f`vXtArdXQJ`ے`vXnZHAےnXv`Jltr˂pfpvltbHAbےXv`fltb˂pZvˍpfbے`nXv`tbdQbے`v`ftbdQbے`d|ZJltbے`J|ZdQےbHAnvp|ZdQےbHAnvp|ZdQbbHAZvpf`JXQrf~HbdQZ|ZHAbnXv`fdQZ|`JXQr~HfdQZ|HAbےH~ㅐfJXQrf~HZ|dJXQr~HfpZ|dJXQrdQbtQZdrXQr˂btlZp˂fH~btlZp˂fH~tlJp˂rH~fbtlfpvdrtAے`JXQ~fpvdrtAJ˂pZpvndrtAJ`JXQr`vXn˂pZHAfpvrtAJl˂pZHAvnXrtAJl˂pZHAlJtArtAJlpZHAbJtArdrXQJ`f`vXJtArdrXQJ`f`vXtArdXQJ`ے`vXnJtAdnXv`JltHAbےnXvltbHAbےXv`fltb˂pZvˍpfbے`nXv`tbdQbے`v`ftbdQbے`dftbdQZے`Jf~ےbHAnvp|ZdQےbHAH~f|ZdQbbHAZvpf|ZdQbf~HbdQZ|`JXQr`f~dQZ|`JXQr~HfdQZ|HAbےH~ㅐfJXQrffpvZ|dJXQr~HfpZ|dJXQr~HXv|drXQr˂HfpvZp˂fH~btlZp˂`vXntlJp˂rH~ftlJfpvdrtA˂pZHfpvdrtAJ˂pZpvndrtAJ`JXQHA`vXn˂p`JnrXQrtAJl˂pZHAvnXrtAJl˂pZHA`f~tAJlpZHAbnXvrXQJ`f`vXJtArdrXQJ`vpftArdXQJ`ے`vXntArdnXv`JltHAbےnXvltbHAbےXv`fltbbے`vˍpfXQr˂J`ےtbdQbے`v`ftbdQbے`HfpvtbdQZے`J`f~ےbHAnvp|ZdQےbHAH~f|ZdQbbHAZvpf|ZdQbfHfbdQZ|`JXQr`ffpdQZ|`JXQr~HfdQZ|JXQrH~ㅐfpZHAbHAZp˂Z|dJXQr~HfpZ|dJXQrnXv|rAJlXQr˂HfpvZp˂fH~btlZp˂`vXntlJp˂rH~ftlJpvndrtA˂p`vnrdrtAJ˂pZpvndrtAJ˂pZHA`vXnے`JrXQJrtAJl˂pZHAvnXrtAJl˂pZHA`f~tbdpZHAbnXvrXQJ`f`vXJtArdrXQJ`vp`tArdXQJ`ے`vXntArdrXQJ`JltJXQrXQJ`ےltbHAbےXv`fltbbے`vˍpfXQr˂`ےbtbdQbے`v`ftbdQbے`HfpvQZ|dے`J`f~ےbHAnvp|ZdQےbHAvXn|ZdQbbHAZvpf|ZdQbےHAZbdQZ|˂pZHAHAZpdQZ|`JXQr~HfdQZ|JXQrH~ㅐfp`JXQHAZp˂Z|dJXQr~HfpZ|dJXQr~HrtAJlXQr˂HfpvZdrfH~btlZp˂vpfHtlJp˂rH~ftlJp˂rdrtAbے`˂rXQdrtAJ˂pZpvndrtAJ˂p`J`vXnrbt璀rXQJtAJl˂pZHAvnXrtAJl˂pZHAfpvtbdpZHAbnXvtAJlf`vXJtArdrXQJ`~f`tArdXQJ`ے`vXntArdXQJ`ےJltJXQrJ`ےltbHAbےXv`fltbXQr˂vˍpfl|ZdQ`ےbtbnbے`v`ftbdQbے`nXv`QZ|dے`J`f~tbdQZnvp|ZdQےbHAvXn|ZdQbbHAZvpf|ZdQbbHAZbdQZ|˂p`JbHAZpdQZ|`JXQr~HfdQZ|pZHAbH~ㅐfbtlHAZp˂vpfHJXQr~HfpZ|dJXQrf~HrtAJXQr˂Hfpv|drfH~btlZp˂vpfHtlJp˂rH~ftlJp˂rdtAJXQrbt˂rXQdtAJl˂pZpvndrtAJے`J`vXnJtArdrXQJf`v˂pZHAvnXrtAJl˂pZHAfpvbdQZ|pZHAbnXvtAJlf`vXJtArdrXQJ`~vtArdXQJ`ے`vXntArdXQJ`ےltbl|ZJ`ےtbnHAbےXv`fltbXQr˂vˍpf|ZdQ`ےbXnvbے`v`ftbdQbے`nXv`drtAے`J`f~tbdQZnvp|ZdQےbHApfH~|ZdQbbHAZvpf|ZdQbbHAZnvpdQbtbHAZpvpf`JXQr~HfdQZ|pZHAbH~ㅐfbtlHAZp˂pfH~JXQr~HfpZ|dJXQrpvnJltXQr˂Hfpv|drfH~btlZp˂f`vtlJp˂rH~ftlJp˂rfHflJtAr˂rXQHf`˂pZpvndrtAJ˂p`vXn|ZdQbrXQJf`v˂pZHAvnXrtAJl˂pZHAXv`fbdQZ|pZHAbnXvtAJlfZHAbJtArdrXQJ`XnvtArdXQJ`ے`vXntArdXQJ`ے`vXnd|ZJ`ےvXnHAbےXv`fltbZHAbvˍpftlJ`ےbXnvے`Jv`ftbdQbے`~HfdrtAے`J`f~tbdQZے`J|ZdQےbHApfH~|ZdQbbHAZvpf|ZdQbbHAZvpfdQbtbHAZpvpfH`JXQr~HfdQZ|ے`JXQH~ㅐftArdHAZp˂pfH~XQrbt~HfpZ|dJXQrpvnJltXQr˂Hfpv|drXQr˂btlZp˂f`vtlJp˂rH~ftlJp˂rH~fl|ZdQ˂rXQ~f`˂pZpvndrtAJr˂p`vXn|ZdQbrXQJf`vlJtAvnXrtAJl˂pZHAXv`fbQZdpZHAbnXvtAJlpZHAbJtArdrXQJ`XH~tArdXQJ`ے`vXntArdXQJ`ے`vXnbtlJ`ےvXnHAے`Xv`fltbZHAbvˍpftlJ`ےbXnvd|Zv`ftbdQbے`~HXrtAJl琙ے`J`f~tbdQZے`J|ZdQےbHAfZHAb|ZdQbbHAZvpf|ZdQbbHAZvpfJtArdbHAZpvpfHJXQrb~HfdQZ|ے`JXQH~ㅐftArdtHAZp˂pfH~dQbt~HfpZ|dJXQrv`ftbdQXQr˂Hfpv|drXQr˂btlZp˂JQrtlJp˂rH~ftlJp˂rH~f|ZdQ˂rXQ~f`tlJpvndrtAJHAbے`vXnlJtArXQJf`vlJtArvnXrtAJl˂pZHA~HfpZ|dpZHAbnXvtAJlpZHAbJtArdrXQJ`˂pZHtArdXQJ`ے`vXntArdXQJ`ے`vXnbtlJ`ےvXntAd|Xv`fltb`JXQrvˍp|rd|`ےbXnvd|Zv`ftbdQbے`vnXrtAJl琙ے`J`f~tbdQZے`Jf~ےbHAAbے`f~HbHAZvpf|ZdQbbHAZvpfJtArdbHAZpvpfHZdQbt~HfdQZ|˂pZdrQtZdQbtHAZp˂pfH~dQbtHfpvZ|dJXQrv`ftbdQXQr˂Hfpv|drXQr˂HfpvZp˂JXQrfpvp˂rH~ftlJp˂rH~ftlJ˂rXQ~f`lJtApvndrtAJHAbےJltlJtArXQJf`vlJtArnrXQrtAJl˂pZHA~HfpZ|rAJpZHAbnXvtAJlpZHAbnXvrXQJ`˂pZHnXv`XQJ`ے`vXntArdXQJ`ے`vXntArdJ`ےvXnrd|Xv`fltb`JXQrbAdZ|rd|`ےbXnvd|ZJ`ےtbdQbے`v~ltbے`J`f~tbdQZے`J`f~ےbHAAbے`f~HbHAZvpf|ZdQbbHAZvpf|ZdQbbHAZpvpfHZdQbtHfpdQZ|˂p`drQtZdQtArHAZp˂pfH~dQbtHAZp˂Z|dJXQrHfpvdQZ|XQr˂Hfpv|drXQr˂HfpvZp˂JXQrfpvp˂rH~ftlJp˂rH~ftlJ˂rXQ~f`lJtAvnrdrtAJJXQrJltd|ZrXQJf`vlJtArrXQJrtAJl˂pZHAnXvdrtAJpZHAbnXvtAJlpZHAbnXvrXQJ`ZHAbnXv`XQJ`ے`vXntArdXQJ`ے`vXntArdJ`ےvXnrd|XQJ`ےltb˂pZHAbAdZ|dQbt`ےbXnvd|Z`ےbtbdQbے``f~ltbے`J`f~tbdQZے`J`f~ےbHAے`JXQf~HbHAZvpf|ZdQbbHAZvpf|ZdQtAbHAZpvpfHZdQbtHAZpdQZ|bے`drQtlJtArHAZp˂pfH~dQbtHAZp˂Z|dJXQrHfpvdQZ|XQr˂Hfpv|drXQr˂HfpvZdrr˂pfpvdrtAH~ftlJp˂rH~frd|˂rXQ~f`lJtA˂rXQdrtAJJXQrJltd|ZrXQJf`vlJtArrXQJtAJl˂pZHAnXvAJltpZHAbnXvtAJlpZHAbnXvtAdQZ|ZHAbnXv`Jlt`vXntArdXQJ`ے`vXnZdQbtJ`ےvXnrd|J`ےltb˂p`ZbAdZ|dQbt`ےbXnvd|Z`ےbtbnbے``pvbnvے`J`f~tbdQZے`J`f~drtAے`JXQf~HbdQZ|vpf|ZdQbbHAZvpflJtAbHAZpvpfHZdQbtbHAZpdQZ|QXb㉀ۂdrQtl|ZdQHAZp˂pfH~dQbtHAZp˂vpfHJXQrnXv`pfHXQr˂Hfpv|drXQr˂HfpvJltr˂pfpvdrtAH~ftlJp˂rH~frd|˂rXQ~f`lJtA˂rXQdtAJlpJAHrJltbtlrXQJf`vlJtArrXQJf`v˂pZHAf~Hf`vXpZHAbnXvtAJlpZHAbnXvbdQZ|ZAb`nXv`Jlt`vXntArdXQJ`ے`vXnZdQbtJ`ےvXnrd|J`ےtbnˁ`ZbAdZ|JtArd`ےbXnvd|Z`ےbXnvbے`fpvnvpے`J`f~tbdQZے`J`f~drtAJXQrf~HbdQZ|vpf|ZdQbbHAZvpfl|ZbHAZpvpfHZdQbtbHAZpvpfQXb㉀ۂdrQt|ZdQHAZp˂pfH~dQbtHAZp˂pfH~JXQrnXv`fH~XQr˂Hfpv|drXQr˂HfpvJltpZHAfpvdrtAH~ftlJp˂rH~fdQbt˂rXQ~f`lJtA˂rXQHf`p`ZQXJltbtlrXQJf`vlJtArrXQJf`v˂pZHApvnf`vXpZHAnXvtAJlpZHAbnXvdrtAJbے`nXv`JltZHAbtArdXQJ`ے`vXnlJtArJ`ےvXnrd|J`ےvXnb㉀ۑpbAdZ|JtArd`ےbXnvd|Z`ےbXnvے`JrXQJ`nvpے`JXQ`f~tbdQZے`J`f~ltbJXQrf~HbdQZ|ے`JXQ|ZdQbbHAZvpfd|ZbHAZpvpfHZdQbtbHAZpvpfHJAHr󙐂drQttlJHAZp˂pfH~dQbtHAZp˂pfH~XQrbtp˂rfH~rbtHfpv|drXQr˂HfpvdQZ|pZHAfpvdrtAr˂ptlJp˂rH~fdQbt˂rXQ~f`lJtA˂rXQ~f`ˁ`ZQXJlttArdrXQJf`vlJtArrXQJf`vlJtAXQJ`ےf`vXlJtAdnXvtAJlpZHAbnXvdrtAJbJQrnXv`JltZHAbtArdXQJ`ے`vXnlJtArJ`ےvXnrd|J`ےvXnb㉀ۑpbAdZ||ZdQb`ےbXnvd|Z`ےbXnvd|ZbHAZnvp|ZdQ`f~tbdQZے`J`f~ltb˂pZf~HbdQZ|ے`JXQ|ZdQbbHAZvpfdtlbHAZpvpfHZdQbtbHAZpvpfHJAHr󙐂drQttlJHAZp˂pfH~dQbtHAZp˂pfH~dQbtp˂rfH~btlHfpv|drXQr˂HfpvdQZ|lHAbےfpvdrtAr˂ptlJp˂rH~fJtArd˂rXQ~f`lJtA˂rXQ~f`ۑpJJlttArdrXQJf`vlJtArrXQJf`vlJtArXQJ`pf`vXJtArdnXvtAJlpZHAbnXvtbdQ`JXQrnXv`JltZHAbtArdXQJ`ے`vXn|ZdQJ`ےvXnrd|J`ےvXnAHr󙐂bAdZ||ZdQtA`ےbXnvd|Z`ےbXnvd|Z˂rXQnvp|ZdQ`fHtbdQZے`J`f~Z|d˂pZf~HbdQZ|ے`JXQf~HbHAZvpfbtlbHAZpvpfHZdQbtbHAZpvpfH`ZQXbdrQtrdfHAZp˂pfH~dQbtHAZp˂pfH~dQbtJ`ےfH~btlfpv|drXQr˂HfpvrtAJlHAbےfpvdrtAr˂pfpvp˂rH~fJtArd˂rXQ~f`lJtA˂rXQ~f`ۑpJJlt~HfrXQJf`vlJtArrXQJf`vlJtArbHAZpf`vXJtArdnrXQJtAJlpZHAbnXvtbdQ`JXQrnXv`JltZHAbnXv`XQJ`ے`vXn|ZdQJ`ےvXnrd|J`ےvXnAHr󙐂bAdZ|vnXv``ےbXnvd|Z`ےbXnvd|Z˂rXQnvp|ZdQ`ےHAtbdQZے`J`f~Z|dZHAbf~HbdQZ|ے`JXQf~HbHAZvpftArdbHAZpvpfHZdQbtbHAZpvpfH`ZQXAHdrQtf~HHAZdpfH~dQbtHAZp˂pfH~dQbtJ`ےfH~btlZp˂|drXQr˂HfpvrtAdQZے`JXfpvdrtAr˂pfpvp˂rH~ff~H˂rXQ~f`lJtA˂rXQ~f`r󙐂ˁ`JltfpvrtAJlf`vlJtArrXQJf`vlJtArbHAXQJf`vXJtArdrXQJ`tAJlpZHAbnXv|drQr˂pnXv`JltZHAbnXv`XQJ`ے`vXnfvnXJ`ےvXnrd|J`ےvXnZQXb㉀bAdZ|nXv`tbdQXnvd|Z`ےbXnvd|Z`ےbnvp|ZdQےbHAtbdQZے`J`f~tAJl璑ZHAbf~HbdQZ|ے`JXQf~HbHAZvpfv`fbHAZvpfHZdQbtbHAZpvpfHۑpJAHdrQtf~HZ|dpfH~dQbtHAZp˂pfH~dQbtHAZp˂fH~btlZp˂|dtAXQr˂HfpvtbdQZے`JXfpvdrtAr˂pfpvdrtAH~f~HfpdrtAJ~f`lJtA˂rXQ~f`r󙐂ˁ`JltfpvrtAJlf`vlJtArrXQJf`vlJtArrXQJf`vXJtArdrXQJ`JltpZHAbnXv|drQr˂pnXv`JltZHAbnXv`Jlt`vXnvnXltbvXnrd|J`ےvXnZQXb㉀bAdZ|nvftbdQXnvd|Z`ےbXnvd|Z`ےbnvp|ZdQےbHAbnvے`J`f~tAJl璑ZAb`f~HbdQZ|ے`JXQf~HbdQZ|vpfv`fdQZ|vpfHZdQbtbHAZpvpfHۑp`ZdrQt~HfpZ|dpfH~dQbtHAZp˂pfH~dQbtHAZp˂fH~btlZp˂pfHXQr˂HfpvtdrtAJXQrfpvdrtAr˂pfpvdrtAH~f~HfpdrtAJ~f`lJtA˂rXQ~f`QXb㉀JltvnXrtAJlfZHAlJtArrXQJf`vlJtArbHAf`vXJtArdrXQJ`f`vXpZHAbnXvJlt˂pZHAnXv`JltZHAbnXv`Jlt`vXnvnvfltbvXnrd|J`ےvXnpJAHrbAdZ|v`ftbdQbے`d|Z`ےbXnvd|ZZp˂nvp|ZdQےbHAnvpے`J`f~bdQZ|bے`f~HbdQZ|ے`JXQf~HbdQZ|vpf~HfdQZ|vpfHZdQbtbHAZpvpfHˁ`ZdrQt~HfpZ|dJXQrdQbtHAZp˂pfH~dQbtrXQJ`fH~btlZp˂fH~XQr˂HfpvdrtAJXQrfpvdrtAr˂pfpvdrtAH~fpvndrtAJ~fZlJtA˂rXQ~f`QXb㉀JltvnXrtAJl˂pZHAlJtArrXQJf`vlJtArےbHAf`vXJtArdrXQJ`f`vXpZHAnXvJlt˂pZAnXv`JltZHAbnXv`JltZHAbXv`fltbHAbےrd|J`ےvXnpJAHrbAdZ|v`f~tbdQbے`d|Z`ےbXnvd|ZZp˂nvp|ZdQےbHAnvpے`JXQ`f~bdQZ|`JXQrf~HbdQZ|ے`JXQf~HbdQZ|˂pZ~HfdQZ|`JXQrZdQbtbHAZpvpfHۑpdrQtfpvZ|dJXQrdQbtHAZp˂pfH~dQbtrXQJ`fH~btlZp˂fH~rbtHfpvltbbtlfpvdrtAr˂pfpvdrtAHAbےpvndrtAJ˂pZlJtA˂rXQ~f`JAHrJltnXv`rtAJl˂pZHAlJtArrXQJf`vlJtArp˂rf`vXJtArdrXQJ`f`vXlJtAdnXvdQZ|JtAdnXv`JltZHAbnXv`Jlt`JXQrXv`fltbHAbےrd|J`ےvXnˁ`ZQXbAdZ|--------------------............................................................. \ No newline at end of file diff --git a/vendor/endroid/qr-code/assets/data/qrv40_3.dat b/vendor/endroid/qr-code/assets/data/qrv40_3.dat deleted file mode 100755 index 03defc8cd..000000000 --- a/vendor/endroid/qr-code/assets/data/qrv40_3.dat +++ /dev/null @@ -1,353 +0,0 @@ -~}~}~}~}zyzyzyzyxwxwxwxwtstststsopopopoolklklklkjijijijifefefefe~}~}~}~}zyzyzyzyxwxwxwvutstststsoooopopolklklklkjijijijifefefefe~}~}~}~}zyzyzyzyvuvuvuvutstststspopopopolklklklkjijijijifefefefe~}~}~}~}zyzyzyzyvuvuvuvutstststspopopopolklklklkjijijijifefefefe~}~}~}~}zyzyzyzyvuvuvuvutstststspopopopolklklklkjijijijifefefefe~}~}~}|{zyzyzyzyvuvuvuvutstststspopopopolklklklkjijijijifefefefe|{|{|{|{zyzyzyzyvuvuvuvutstststspopopopolklklklkjijijijifefefefe|{|{|{|{zyzyzyzyvuvuvuvutstststspooooooplklklklkjijijijifefefefe|{|{|{|{zyzyzyzyvuvuvuvutstststsopopopoplklklklkjijijijifefefefe|{|{|{|{zyzyzyzyvuvuvuvutstststsopopopoplklklklkjijijijifefefefe|{|{|{|{zyzyzyzyvuvuvuvutstststsopopopoplklklklkjijijijifefefefe|{|{|{|{zyzyzyzyvuvuvuvutstststsopopopoplklklklkjijijijifefefefe|{|{|{|{zyzyzyzyvuvuvuvutstststsopopopoplklklklkjijijijifefefefe|{|{|{|{zyzyzyzyvuvuvuvutsrqrqrqopopoooolklklklkjijijijifefefefe|{|{|{|{zyzyzyzyvuvuvuvurqrqrqrqoopopopolklklklkjijijijifefefefe|{|{|{|{zyzyzyzyvuvuvuvurqrqrqrqpopopopolklklklkjijijijifefefefe|{|{|{|{zyzyzyzyvuvuvuvurqrqrqrqpopopopolklklklkjijihghgfefefefe|{|{|{|{zyzyzyzyvuvuvuvurqrqrqrqpopopopolklklklkhghghghgfefefefe|{|{|{|{zyzyzyzyvuvuvuvurqrqrqrqpopopopolklklklkhghghghgfefefefe|{|{|{|{zyzyzyzyvuvuvuvurqrqrqrqoooopopolklklklkhghghghgfefefefe|{|{|{|{zyzyzyzyvuvuvuvurqrqrqrqpoponmnmlklklklkhghghghgfefefefe|{|{|{|{zyzyzyzyvuvuvuvurqrqrqrqnmnmnmnmlklklklkhghghghgfefefefe|{|{|{|{zyzyzyzyvuvuvuvurqrqrqrqnmnmnmnmlklklklkhghghghgfefefefe|{|{|{|{zyzyzyzyvuvuvuvurqrqrqrqnmnmnmnmlklklklkhghghghgfefefefe|{|{|{|{zyzyzyzyvuvuvuvurqrqrqrqnmnmnmnmlklklklkhghghghgfefefefe|{|{|{|{zyzyzyxwvuvuvuvurqrqrqrqnmnmnmnmlklklklkhghghghgfefefefe|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqnmnmnmnmlklklklkhghghghgfefefefe|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqnmnmnmnmlklklklkhghghghgfefefefe|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqnmnmnmnmlklklklkhghghghgfefefefe~}|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqnmnmnmnmlklklklkhghghghgfefefefe~}~}~}~}|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqnmnmnmnmlklklklkhghghghgfefefefe~}~}~}~}|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqnmnmnmnmlklklklkhghghghgfefefefe~}~}~}~}|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqnmnmnmnmlklklklkhghghghgfefefefe~}~}~}~}|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqnmnmnmnmlklklklkhghghghgfefefefe~}~}~}~}|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqnmnmnmnmlklklklkhghghghgfefefefedcdcdcdc~}~}~}~}|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqnmnmnmnmlklklklkhghghghgfefefefedcdcdcdc~}~}~}~}|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqnmnmnmnmlklklklkhghghghgfefedcdcdcdcdcdc~}~}~}~}|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqnmnmnmnmlklklklkhghghghgdcdcdcdcdcdcdcdc~}~}~}~}|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqnmnmnmnmlklklklkhghghghgdcdcdcdcdcdcdcdc~}~}~}~}|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqnmnmnmnmlklklklkhghghghgdcdcdcdcdcdcdcdc~}~}~}~}|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqnmnmnmnmlklkjijihghghghgdcdcdcdcdcdcdcdc~}~}~}~}|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqnmnmnmnmjijijijihghghghgdcdcdcdcdcdcdcdc~}~}~}~}|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqnmnmnmnmjijijijihghghghgdcdcdcdcdcdcdcdc~}~}~}~}|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqnmnmnmnmjijijijihghghghgdcdcdcdcdcdcdcdc~}~}~}~}|{|{|{|{xwxwxwxwvuvuvuvurqrqrqrqnmnmnmnmjijijijihghghghgdcdcdcdcdcdcdcdc~}~}~}~}|{|{|{|{xwxwxwxwvuvuvutsrqrqrqrqnmnmnmnmjijijijihghghghgdcdcdcdcdcdcdcdc~}~}~}~}|{|{|{|{xwxwxwxwtstststsrqrqrqrqnmnmnmnmjijijijihghghghgdcdcdcdcdcdcbaba~}~}~}~}|{|{|{|{xwxwxwxwtstststsrqrqrqrqnmnmnmnmjijijijihghghghgdcdcdcdcbabababa~}~}~}~}|{|{|{|{xwxwxwxwtstststsrqrqrqponmnmnmnmjijijijihghghghgdcdcdcdcbabababa~}~}~}~}|{|{|{zyxwxwxwxwtstststspopopooonmnmnmnmjijijijihghghghgdcdcdcdcbabababa~}~}~}~}zyzyzyzyxwxwxwxwtstststsooopopopnmnmnmnmjijijijihghghghgdcdcdcdcbabababa~}~}~}~}zyzyzyzyxwxwxwxwtstststsopopopopnmnmnmnmjijijijihghghghgdcdcdcdcbabababa~}~}~}~}zyzyzyzyxwxwxwxwtstststsopopopopnmnmnmnmjijijijihghghghgdcdcdcdcbabababa~}~}~}~}zyzyzyzyxwxwxwxwtstststsopopopopnmnmnmnmjijijijihghghghgdcdcdcdcbabababa~}~}~}~}zyzyzyzyxwxwxwxwtstststsopopopopnmnmnmnmjijijijihghghghgdcdcdcdcbabababa~}~}~}~}zyzyzyzyxwxwxwxwtstststsopopopopnmnmnmnmjijijijihghghghgdcdcdcdcbabababa~}~}~}~}zyzyzyzyxwxwxwxwtstststsooooooponmnmnmnmjijijijihghghghgdcdcdcdcbabababa~}~}~}~}zyzyzyzyxwxwxwxwtstststspopopoponmnmnmnmjijijijihghghghgdcdcdcdcbabababa~}~}~}~}zyzyzyzyxwxwxwxwtstststspopopoponmnmnmnmjijijijihghghghgdcdcdcdcbabababa~}~}~}~}zyzyzyzyxwxwxwxwtstststspopopoponmnmnmnmjijijijihghghghgdcdcdcdcbabababa~}~}~}~}zyzyzyzyxwxwxwxwtstststspopopoponmnmnmnmjijijijihghgfefedcdcdcdcbabababa~}~}~}~}zyzyzyzyxwxwxwxwtstststspopopoponmnmnmnmjijijijifefefefedcdcdcdcbabababa~}~}~}~}zyzyzyzyxwxwxwxwtstststspopooooonmnmnmnmjijijijifefefefedcdcdcdcbabababa~}~}~}~}zyzyzyzyxwxwxwxwtstststsopopopopnmnmnmnmjijijijifefefefedcdcdcdcbabababa~}~}~}~}zyzyzyzyxwxwxwxwtstststsopopopopnmnmlklkjijijijifefefefedcdcdcdcbabababa~}~}~}~}zyzyzyzyxwxwxwxwtstststsopopopoplklklklkjijijijifefefefedcdcdcdcbabababa~}~}~}~}zyzyzyzyxwxwxwxwtstststsopopopoplklklklkjijijijifefefefedcdcdcdcbabababa~}~}~}~}zyzyzyzyxwxwxwxwtstststsopopopoplklklklkjijijijifefefefedcdcdcdcbabababababababa^]^]^]^]\[\[\[\[XWXWXWXWSTSTSTSTRQRQRQRQNMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEBABABABA@?@?@?@?<;<;<;<;787777774343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!    babababa^]^]^]^]\[\[\[\[XWXWXWXWSTSTSTSTRQRQRQRQNMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEBABABABA@?>=>=>=<;<;<;<;878787874343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!    babababa^]^]^]^]\[\[\[\[XWXWXWXWSTSTSTSTRQRQRQRQNMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEBABABABA>=>=>=>=<;<;<;<;878787874343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!    babababa^]^]^]^]\[\[\[\[XWXWXWXWSTSTSTSTRQRQRQRQNMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEBABABABA>=>=>=>=<;<;<;<;878787874343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!    babababa^]^]^]^]\[\[\[\[XWXWXWXWSTSTSTSSRQRQRQRQNMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEBABABABA>=>=>=>=<;<;<;<;878787874343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!    babababa^]^]^]^]\[\[\[\[XWXWXWXWSSSSTSTSRQRQRQRQNMNMNMNMLKLKLKLKHGHGHGHGFEDCDCDCBABABABA>=>=>=>=<;<;<;<;878787874343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!    babababa^]^]^]^]\[\[\[\[XWXWXWXWTSTSTSTSRQRQRQRQNMNMNMNMLKLKLKLKHGHGHGHGDCDCDCDCBABABABA>=>=>=>=<;<;<;<;878787774343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!    babababa^]^]^]^]\[\[\[\[XWXWXWXWTSTSTSTSRQRQRQRQNMNMNMNMLKLKLKLKHGHGHGHGDCDCDCDCBABABABA>=>=>=>=<;<;<;<;777878784343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!    babababa^]^]^]^]\[\[\[\[XWXWXWXWTSTSTSTSRQRQRQRQNMNMNMNMLKLKLKLKHGHGHGHGDCDCDCDCBABABABA>=>=>=>=<;<;<;<;787878784343434321212121.-.-.-.-,+,+,+,+('('('('$#$#$#$#"!"!"!"!    babababa^]^]^]^]\[\[\[\[XWXWXWXWTSTSTSTSRQRQRQRQNMNMNMNMLKJIJIJIHGHGHGHGDCDCDCDCBABABABA>=>=>=>=<;<;<;<;787878784343434321212121.-.-.-.-,+,+,+,+('('('('$#$#$#$#"!"!"!"!    babababa^]^]^]^]\[\[\[\[XWXWXWXWTSTSTSTSRQRQRQRQNMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDCBABABABA>=>=>=>=<;<;<;<;787878784343434321212121.-.-.-.-,+,+,+,+('('('('$#$#$#$#"!"!"!"!    babababa^]^]^]^]\[\[\[\[XWXWXWXWTSSSSSSTRQRQRQRQNMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDCBABABABA>=>=>=>=<;<;<;<;787878784343434321212121.-.-.-.-,+,+,+,+('('('('$#$#$#$#"!"!"!"!    babababa^]^]^]^]\[\[\[\[XWXWXWXWSTSTSTSTRQRQRQRQNMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDCBABABABA>=>=>=>=<;<;<;:9787878784343434321212121.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"!    babababa^]^]^]^]\[\[\[\[XWXWXWXWSTSTSTSTRQPOPOPONMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDCBABABABA>=>=>=>=:9:9:9:9777777874343434321212121.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"!    babababa^]^]^]^]\[\[\[\[XWXWXWXWSTSTSTSTPOPOPOPONMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDCBABABABA>=>=>=>=:9:9:9:9878787874343434321212121.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"!    - babababa^]^]^]^]\[\[\[\[XWXWXWXWSTSTSTSTPOPOPOPONMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDCBABABABA>=>=>=>=:9:9:9:9878787874343434321212121.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"!    - - - - babababa^]^]^]^]\[\[\[\[XWXWXWXWSTSTSTSTPOPOPOPONMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDCBABABABA>=>=>=>=:9:9:9:987878787434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"!    - - - - babababa^]^]^]^]\[\[\[\[XWXWXWXWSTSTSSSSPOPOPOPONMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDCBABABABA>=>=>=>=:9:9:9:987878787434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"!    - - - - babababa^]^]^]^]\[\[ZYZYXWXWXWXWSSTSTSTSPOPOPOPONMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDCBABABABA>=>=>=>=:9:9:9:987877777434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"!    - - - - babababa^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSPOPOPOPONMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDCBABABABA>=>=>=>=:9:9:9:987878787434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"!    - - - - babababa^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSPOPOPOPONMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDCBABABABA>=>=>=>=:9:9:9:965656565434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"!    - - - - babababa^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSPOPOPOPONMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDCBABABABA>=>=>=>=:9:9:9:965656565434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"!    - - - - baba`_`_^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSPOPOPOPONMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDCBABABABA>=>=>=>=:9:9:9:965656565434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"!    - - - - `_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWTSTSTSTSPOPOPOPONMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDCBABABABA>=>=>=>=:9:9:9:965656565434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"!    - - - - `_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWSSSSSTSTPOPOPOPONMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDCBABABABA>=>=>=>=:9:9:9:965656565434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"!    - - - - `_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWSTSTSTSTPOPOPOPONMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDCBA@?@?@?>=>=>=>=:9:9:9:965656565434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"!    - - - - `_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWSTSTSTSTPOPOPOPONMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:965656565434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"!    - - - - `_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWSTSTSTSTPOPOPOPONMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:965656565434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#"!"!"!"!    - - - - `_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWSTSTSTSTPOPOPOPONMNMNMNMJIJIJIJIHGHGHGHGDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:965656565434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#        - - - - `_`_`_`_^]^]^]^]ZYZYZYZYXWXWXWXWSTSTSTSTPOPOPOPONMNMNMNMJIJIJIJIHGFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:965656565434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#        - - - - `_`_`_`_^]^]^]^]ZYZYZYZYVUVUVUVUSTSSSSSSPOPOPOPONMNMNMNMJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:965656565434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#        - - - - `_`_`_`_^]^]^]^]ZYZYZYZYVUVUVUVUTSTSTSTSPOPOPOPONMNMNMNMJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:965656565434343430/0/0/0/.-.-.-.-*)*)*)*)('('('('$#$#$#$#        - - - - `_`_`_`_^]^]^]^]ZYZYZYZYVUVUVUVUTSTSTSTSPOPOPOPONMNMNMNMJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:965656565434343430/0/0/0/.-.-.-.-*)*)*)*)&%&%&%&%$#$#$#$#        - - - - `_`_`_`_^]^]^]^]ZYZYZYZYVUVUVUVUTSTSTSTSPOPOPOPONMLKLKLKJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:965656565434343430/0/0/0/.-.-.-.-*)*)*)*)&%&%&%&%$#$#$#$#        - - - - `_`_`_`_^]^]^]^]ZYZYZYZYVUVUVUVUTSTSTSTSPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:965656565434343430/0/0/0/.-.-.-.-*)*)*)*)&%&%&%&%$#$#$#$#        - - - - `_`_`_`_^]^]^]^]ZYZYZYZYVUVUVUVUTSTSTSSSPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:965656565434343430/0/0/0/.-.-.-.-*)*)*)*)&%&%&%&%$#$#$#$#        - - - - `_`_`_`_^]^]^]^]ZYZYZYZYVUVUVUVUSSTSTSTSPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:965656565434343430/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#        - - - - `_`_`_`_^]^]^]^]ZYZYZYZYVUVUVUVUTSRQRQRQPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:965656565434343430/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#        - - - - `_`_`_`_^]^]^]^]ZYZYZYZYVUVUVUVURQRQRQRQPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:965656565434343430/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#       - - - - `_`_`_`_^]^]^]^]ZYZYZYZYVUVUVUVURQRQRQRQPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:965656565434343430/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#     - - - - `_`_`_`_^]^]^]^]ZYZYZYZYVUVUVUVURQRQRQRQPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:965656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#     - - - - `_`_`_`_^]^]^]^]ZYZYZYZYVUVUVUVURQRQRQRQPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:965656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#     - - - - `_`_`_`_^]^]\[\[ZYZYZYZYVUVUVUVURQRQRQRQPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:965656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#     - - - - `_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVURQRQRQRQPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:965656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#     - - - - `_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVURQRQRQRQPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?>=>=>=>=:9:9:9:965656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#     - - - - `_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVURQRQRQRQPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?>=<;<;<;:9:9:9:965656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#     - - - - `_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVURQRQRQRQPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?<;<;<;<;:9:9:9:965656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#     - - - - `_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVURQRQRQRQPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?<;<;<;<;:9:9:9:965656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#     - - - - `_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVURQRQRQRQPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEDCDCDCDC@?@?@?@?<;<;<;<;:987878765656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#     - - - - `_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVURQRQRQRQPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEDCBABABA@?@?@?@?<;<;<;<;8777777865656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#     - - - - `_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVURQRQRQRQPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEBABABABA@?@?@?@?<;<;<;<;7878787865656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#     - - - - `_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVURQRQRQRQPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEBABABABA@?@?@?@?<;<;<;<;7878787865656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%$#$#$#$#     - - - - `_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVURQRQRQRQPOPOPOPOLKLKLKLKJIJIJIJIFEFEFEFEBABABABA@?@?@?@?<;<;<;<;7878787865656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%"!"!"!"!     - - - - `_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVURQRQRQRQPOPOPOPOLKLKLKLKJIHGHGHGFEFEFEFEBABABABA@?@?@?@?<;<;<;<;7878787865656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%"!"!"!"!     - - - - `_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVURQRQRQRQPOPOPOPOLKLKLKLKHGHGHGHGFEFEFEFEBABABABA@?@?@?@?<;<;<;<;7878787865656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%"!"!"!"!     - - - - `_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVURQRQRQRQPOPOPOPOLKLKLKLKHGHGHGHGFEFEFEFEBABABABA@?@?@?@?<;<;<;<;7878777765656565212121210/0/0/0/,+,+,+,+*)*)*)*)&%&%&%&%"!"!"!"!     - - - - `_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVURQRQRQRQPOPOPOPOLKLKLKLKHGHGHGHGFEFEFEFEBABABABA@?@?@?@?<;<;<;<;7787878765656565212121210/0/0/0/,+,+,+,+('('('('&%&%&%&%"!"!"!"!     - - - - `_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVURQRQRQRQPONMNMNMLKLKLKLKHGHGHGHGFEFEFEFEBABABABA@?@?@?@?<;<;<;<;8787878765656565212121210/0/0/0/,+,+,+,+('('('('&%&%&%&%"!"!"!"!     - - - - `_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEBABABABA@?@?@?@?<;<;<;<;8787878765656565212121210/0/0/0/,+,+,+,+('('('('&%&%&%&%"!"!"!"!     - - - `_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEBABABABA@?@?@?@?<;<;<;<;8787878765656565212121210/0/0/0/,+,+,+,+('('('('&%&%&%&%"!"!"!"!     `_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEBABABABA@?@?@?@?<;<;<;<;878787876565656521212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!     `_`_`_`_\[\[\[\[ZYZYZYZYVUVUVUVURQRQRQRQNMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEBABABABA@?@?@?@?<;<;<;<;878787876565656521212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!     `_`_`_`_\[\[\[\[ZYZYXWXWVUVUVUVURQRQRQRQNMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEBABABABA@?@?@?@?<;<;<;<;777778786565656521212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!     `_`_`_`_\[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQNMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEBABABABA@?@?@?@?<;<;<;<;787878786565656521212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!      `_`_`_`_\[\[\[\[XWXWXWXWVUVUVUVURQRQRQRQNMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEBABABABA@?@?@?@?<;<;<;<;787878784343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!    `_`_`_`_\[\[\[\[XWXWXWXWVUVUTSTSRQRQRQRQNMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEBABABABA@?@?@?@?<;<;<;<;787878784343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!    `_`_^]^]\[\[\[\[XWXWXWXWTSTSSSSSRQRQRQRQNMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEBABABABA@?@?@?@?<;<;<;<;787878784343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!    ^]^]^]^]\[\[\[\[XWXWXWXWSTSTSTSTRQRQRQRQNMNMNMNMLKLKLKLKHGHGHGHGFEFEFEFEBABABABA@?@?@?@?<;<;<;<;787878784343434321212121.-.-.-.-,+,+,+,+('('('('&%&%&%&%"!"!"!"!    qqrrsstt^^__``aa55667788llkkjjiiUUVVWWXXLLKKJJIIzz{{||}}**++,,--''&&%%$$wwvvuuttJJKKLLMMCCBBAA@@\[[ZZYYXooppqqrr !!""uuvvwwxxbbccddee99::;;<<hhggffeeYYZZ[[\\ - - HHGGFFEE~~..//0011##""!! ssrrqqppNNOOPPQQ??>>==77WVUTSSRRssttuuvv##$$%%&&yyzz{{||ffgghhii==>>??@@ddccbbaa]]^^__`` DDCCBBAA22334455oonnmmllRRSSTTUU66554433QQPPOONNwwxxyyzz''(())**}}~~jjkkllmmAABBCCDD ``__^^]]aabbccdd@@??>>==66778899kkjjiihhVVWWXXYY 221100//MMLLKKJJ{{||}}~~++,,--..nnoouuvvEEFFGGHH - - \\[[ZZYYeeffgghh<<;;::99::;;<<==ggffeeddZZ[[\\]] - - ..--,,++IIHHGGFF//001122wwxxyyzzIIJJKKLLXXWWVVUUiijjkkll88776655~~}}||{{>>??@@AAccbbaa``^^__``aa**))((''EEDDCCBB33445566{{||}}~~MMNNOOPPTTSSRRQQmmnnoopp 44332211zzyyxxwwBBCCDDEE __^^]]\\bbccddee&&%%$$##AA@@??>>778899::QQRRSSTTPPOONNMMqqrrsstt!!""##$$00//..--vvuuoonnFFGGHHII - - [[ZZYYXXffgghhii""!!==<;:987;;<<==>>UUVVWWXXLLKKJJIIuuvvwwxx%%&&''((,,++**))mmllkkjjJJKKLLMMWWVVUUTTjjkkllmm76655443??@@AABBYYZZ[[\\ - - HHGGFFEEyyzz{{||))**++,,((''&&%%iihhggff~~}}||NNOOPPQQSSRRQQPPnnooppqq !!3221100/~~}}||{{CCDDEEFF]]^^__`` DDCCBBAA}}~~--..//00$$##""!!eeddccbb{{zzyyxxRRSSTTUUOONNMMLLrrssttuu""##$$%%/..--,,+zzyyxxwwGGHHIIJJaabbccdd@@??>>==11223344 aa``__^^wwvvuutsVVWWXXYY KKJJIIHHvvwwxxyy&&''(()) - -+**))(('vvuuttssKKLLMMNN~~}}eeffgghh<<;;::9955667788]]\\[[ZZrqpoonnmZZ[[\\]] - - GGFFEEDDzz{{||}}**++,,-- '&&%%$$#rrqqppooOOPPQQRR||{{zzyyiijjkkll8877665599::;;<<YYSSRRQQmllkkjji^^__``aaCCBBAA@@~~..//0011#""!! nnmmllkkSSTTUUVVxxwwvvuummnnoopp 44332211==>>??@@PPOONNMMihhggffebbccddee??>>==<<22334455 - - jjiihhggWWXXYYZZttssrrqqqqrrsstt!!""##$$00//..--~~}}AABBCCDD LLKKJJIIeddccbbaffgghhii;;::998866778899 ffeeddcc[[\\]]^^ppoonnmmuuvvwwxx%%&&''((,,++**))||{{zzyyEEFFGGHH - - HHGGFFEEa``__^^]jjkkllmm77665544::;;<<==bbaa``____``aabbllkkjjiiyyzz{{||))**++,,((''&&%%xxwwvvuuIIJJKKLLDDCCBBAA]\\[[ZZYnnooppqq !!33221100>>??@@AA ^^]]\\[[ccddeeffhhggffee}}~~--..//00$$##""!!ttssrrqqMMNNOOPP@@??>>==YXWVUTSSrrssttuu""##$$%%//..--,,~~}}||BBCCDDEE - - ZZYYXXWWgghhiijjddccbbaa11223344 ppoonnmmQQRRSSTT77665544RRQQPPOOvvwwxxyy&&''(())++**))(({{zzyyxxFFGGHHII!!""##$$VVUUTTSSkkllmmnn``__^^]]55667788llkkjjiiUUVVWWXX33221100NNMMLLKKzz{{||}}**++,,--''&&%%$$wwvvuuttJJKKLLMM%%&&''((RRQQPPOOooppqqrr\\[[ZZYY99::;;<<hhggffeeYYZZ[[\\ - - //..--,,JJIIHHGG~~..//0011##""!! ssrrqqppNNOOPPQQ))**++,,NNMMLLKKssttuuvvXXWWVVUU==>>??@@ddccbbaa]]^^__`` ++**))((FFEEDDCC22334455oonnmmllRRSSTTUU--..//00 - -JJIIHHGGwwxxyyzzTTSSRRQQAABBCCDD ``__^^]]aabbccdd''&&%%$$BBAA@@??66778899kkjjiihhVVWWXXYY11223344 FFEEDDCC{{||}}~~PPOONNMMEEFFGGHH - - \\[[ZZYYeeffgghh##""!!>>==<;:9::;;<<==ggffeeddZZ[[\\]]556677==BBAA@@??LLKKJJIIIIJJKKLLXXWWVVUUiijjkkll87766554>>??@@AAccbbaa``^^__``aa>>??@@AA>>==<<;;HHGGFFEE~~}}||{{MMNNOOPPTTSSRRQQmmnnoopp 43322110~~}}||BBCCDDEE __^^]]\\bbccddeeBBCCDDEE::998877DDCCBBAAzzyyxxwwQQRRSSTTPPOONNMMqqrrsstt!!""##$$0//..--,{{zzyyxxFFGGHHII - - [[ZZYYXXffgghhiiFFGGHHII66554433@@??>>==vvuuoonn~~}}||UUVVWWXXLLKKJJIIuuvvwwxx%%&&''(( ,++**))(wwvvuuttJJKKLLMMWWVVUUTTjjkkllmmJJKKLLMM !!""221100//<<;;::99mmllkkjj{{zzyyxxYYZZ[[\\ - - HHGGFFEEyyzz{{||))**++,, - - (''&&%%$ssrrqqppNNOOPPQQSSRRQQPPnnooppqqNNOOPPQQ##$$%%&&..--,,++~~}}||{{88776655iihhggffwwvvuuts]]^^__`` DDCCBBAA}}~~--..//00$##""!! oonnmmllRRSSTTUUOONNMMLLrrssttuuRRSSYYZZ''(())****))((''zzyyxxww44332211eeddccbbrqpoonnmaabbccdd@@??>>==11223344 - -kkjjiihhVVWWXXYY KKJJIIHHvvwwxxyy[[\\]]^^++,,--..&&%%$$##vvuuttss00//..--aa``__^^mllkkjjieeffgghh<<;;::9955667788 ggffeeddZZ[[\\]] - - GGFFEEDDzz{{||}}__``aabb//001122""!! rrqqppoo,,++**))]]\\[[ZZihhggffeiijjkkll8877665599::;;<<ccbbaa``^^__``aaCCBBAA@@~~ccddeeff33445566nnmmllkk((''&&%%YYSSRRQQeddccbbammnnoopp 44332211==>>??@@__^^]]\\bbccddee??>>==<>ffeeddcc..--,,++ LLKKJJII]\\[[ZZYuuvvwwxx%%&&''((,,++**))||{{zzyyEEFFGGHH!!""## WWVVUUTTjjkkllmm77665544oouuvvww??@@AABBbbaa``__**))((''HHGGFFEEYXWVUTSSyyzz{{||))**++,,((''&&%%xxwwvvuuIIJJKKLL$$%%&&''SSRRQQPPnnooppqq !!33221100xxyyzz{{CCDDEEFF ^^]]\\[[&&%%$$##DDCCBBAARRQQPPOO}}~~--..//00$$##""!!ttssrrqqMMNNOOPP(())**++OONNMMLLrrssttuu""##$$%%//..--,,~~}}||||}}~~GGHHIIJJ - - ZZYYXXWW""!! @@??>>==NNMMLLKK11223344 ppoonnmmQQRRSSTT,,--..// KKJJIIHHvvwwxxyy&&''(())++**))(({{zzyyxxKKLLMMNNVVUUTTSS 77665544JJIIHHGG55667788llkkjjiiUUVVWWXX00112233 - - GGFFEEDDzz{{||}}**++,,--''&&%%$$wwvvuuttOOPPQQRRRRQQPPOO - - 33221100FFEEDDCC99::;;<<hhggffeeYYZZ[[\\44556677CCBBAA@@~~..//0011##""!! ssrrqqppSSTTUUVVNNMMLLKK - - //..--,,BBAA@@??==>>??@@ddccbbaa]]^^__``==>>??@@??>>==<<22334455oonnmmllWWXXYYZZ - -JJIIHHGG ++**))((>>==<;:9~~}}AABBCCDD ``__^^]]aabbccddAABBCCDD;;::998866778899kkjjiihh[[\\]]^^ FFEEDDCC ''&&%%$$87766554||{{zzyyEEFFGGHH - - \\[[ZZYYeeffgghhEEFFGGHH77665544::;;<<==ggffeedd__``aabbBBAA@@?? - - ##""!!43322110xxwwvvuuIIJJKKLLXXWWVVUUiijjkkllIIJJKKLL !!33221100>>??@@AAccbbaa``ccddeeff>>==<<;;0//..--,ttssrrqqMMNNOOPPTTSSRRQQmmnnooppMMNNOOPP""##$$%%//..--,,~~}}||BBCCDDEE __^^]]\\gghhiijj::998877 ,++**))(ppoonnmmQQRRSSTTPPOONNMMqqrrssttQQRRSSYY&&''(())++**))(({{zzyyxxFFGGHHII - - [[ZZYYXXkkllmmnn66554433!!""##$$(''&&%%$llkkjjiiUUVVWWXXLLKKJJIIuuvvwwxxZZ[[\\]]**++,,--''&&%%$$wwvvuuttJJKKLLMMWWVVUUTTooppqqrr !!""221100// - -%%&&''(( $##""!! hhggffeeYYZZ[[\\ - - HHGGFFEEyyzz{{||^^__``aa..//0011##""!! ssrrqqppNNOOPPQQSSRRQQPPssttuuvv##$$%%&&..--,,++~~}}||{{ ))**++,, - - - -ddccbbaa]]^^__`` DDCCBBAA}}~~bbccddee22334455oonnmmllRRSSTTUUOONNMMLLwwxxyyzz''(())****))((''zzyyxxww--..//00 ``__^^]]aabbccdd@@??>>==ffgghhii66778899kkjjiihhVVWWXXYY KKJJIIHH{{||}}~~++,,--..&&%%$$##vvuuttss11223344\\[[ZZYYeeffgghh<<;;::99jjkkllmm::;;<<==ggffeeddZZ[[\\]] - - GGFFEEDD//001122""!! rrqqppoo55667788XXWWVVUUiijjkkll88776655nnoouuvv>>??@@AAccbbaa``^^__``aaCCBBAA@@33445566nnmmllkk99::;;<< - -TTSSRRQQmmnnoopp 44332211wwxxyyzzBBCCDDEE __^^]]\\bbccddee??>>==<<778899::jjiihhgg !!""==>>??@@!!""## PPOONNMMqqrrsstt!!""##$$00//..--~~}}{{||}}~~FFGGHHII - - [[ZZYYXXffgghhii;;::9988~~;;<<==>>ffeeddcc##$$%%&&AABBCCDD$$%%&&''LLKKJJIIuuvvwwxx%%&&''((,,++**))||{{zzyyJJKKLLMMWWVVUUTTjjkkllmm77665544}}||{{zz??@@AABBbbaa``__''(())**EEFFGGHH(())**++ - - HHGGFFEEyyzz{{||))**++,,((''&&%%xxwwvvuuNNOOPPQQSSRRQQPPnnooppqq !!33221100yyxxwwvvCCDDEEFF ^^]]\\[[++,,--..IIJJKKLL,,--..// DDCCBBAA}}~~--..//00$$##""!!ttssrrqqRRSSTTUUOONNMMLLrrssttuu""##$$%%//..--,,uuoonnmmGGHHIIJJ - - ZZYYXXWW//001122MMNNOOPP00112233@@??>>==11223344 ppoonnmmVVWWXXYY KKJJIIHHvvwwxxyy&&''(())++**))((llkkjjiiKKLLMMNNVVUUTTSS33445566QQRRSSTT44556677<<;;::9955667788llkkjjiiZZ[[\\]] - - GGFFEEDDzz{{||}}**++,,--''&&%%$$hhggffee~~}}||{{OOPPQQRRRRQQPPOO778899::UUVVWWXX==>>??@@8877665599::;;<<hhggffee^^__``aaCCBBAA@@~~..//0011##""!! ddccbbaazzyyxxwwSSTTUUVVNNMMLLKK;;<<==>>YYZZ[[\\AABBCCDD 44332211==>>??@@ddccbbaabbccddee??>>==<<22334455``__^^]]vvuutsrqWWXXYYZZ - -JJIIHHGG??@@AABB]]^^__``EEFFGGHH!!""##$$00//..--~~}}AABBCCDD ``__^^]]ffgghhii;;::998866778899\\[[ZZYYpoonnmml[[\\]]^^ FFEEDDCCCCDDEEFFaabbccddIIJJKKLL%%&&''((,,++**))||{{zzyyEEFFGGHH - - \\[[ZZYYjjkkllmm77665544::;;<<==SSRRQQPPlkkjjiih__``aabbBBAA@@??GGHHIIJJeeffgghhMMNNOOPP))**++,,((''&&%%xxwwvvuuIIJJKKLLXXWWVVUUnnooppqq !!33221100>>??@@AAOONNMMLLhggffeedccddeeff>>==<<;;KKLLMMNNiijjkkllQQRRSSYY--..//00$$##""!!ttssrrqqMMNNOOPPTTSSRRQQrrssttuu""##$$%%//..--,,~~}}||BBCCDDEE KKJJIIHHdccbbaa`gghhiijj::998877OOPPQQRRmmnnooppZZ[[\\]]11223344 ppoonnmmQQRRSSTTPPOONNMMvvwwxxyy&&''(())++**))(({{zzyyxxFFGGHHII - - GGFFEEDD`__^^]]\kkllmmnn66554433SSTTUUVVWWXXYYZZ - -JJIIHHGG||}}~~,,--..//%%$$##""uuttssrrLLMMNNOOAA@@??>>ZYYXWVUTqqrrsstt!!""##$$00//..--~~}}AABBCCDD - -[[ZZYYXXffgghhii;;::9988~~}}||{{{{zzyyxx[[\\]]^^ FFEEDDCC00112233!! qqppoonnPPQQRRSS==776655SSRRQQPPuuvvwwxx%%&&''((,,++**))||{{zzyyEEFFGGHH!!""## WWVVUUTTjjkkllmm77665544zzyyxxwwwwvvuutt__``aabbBBAA@@??44556677mmllkkjjTTUUVVWW44332211OONNMMLLyyzz{{||))**++,,((''&&%%xxwwvvuuIIJJKKLL$$%%&&''SSRRQQPPnnooppqq !!33221100vvuuoonnssrrqqppccddeeff>>==<<;;8899::;;iihhggffXXYYZZ[[ - - 00//..--KKJJIIHH}}~~--..//00$$##""!!ttssrrqqMMNNOOPP(())**++OONNMMLLrrssttuu""##$$%%//..--,,mmllkkjjoonnmmllgghhiijj::998877~~}}<<==>>??eeddccbb\\]]^^__ ,,++**))GGFFEEDD11223344 ppoonnmmQQRRSSTT,,--..// KKJJIIHHvvwwxxyy&&''(())++**))((iihhggffkkjjiihhkkllmmnn66554433||{{zzyy@@AABBCCaa``__^^``aabbcc((''&&%%CCBBAA@@55667788llkkjjiiUUVVWWXX00112233 - - GGFFEEDDzz{{||}}**++,,--''&&%%$$eeddccbbggffeeddooppqqrr !!""221100//xxwwvvuuDDEEFFGG - -]]\\[[ZZddeeffgg$$##""!!??>>==<;99::;;<<hhggffeeYYZZ[[\\44556677CCBBAA@@~~..//0011##""!! aa``__^^ccbbaa``ssttuuvv##$$%%&&..--,,++oonnmmllHHIIJJKK YYXXWWVVhhiijjkk:9877665==>>??@@ddccbbaa]]^^__``==>>??@@??>>==<<22334455]]\\[[ZZ__^^]]\\wwxxyyzz''(())****))((''kkjjiihh~~LLMMNNOOUUTTSSRRllmmnnoo54433221~~}}AABBCCDD ``__^^]]aabbccddAABBCCDD;;::998866778899YYSSRRQQ[[ZZYYXX{{||}}~~++,,--..&&%%$$##ggffeedd}}||{{zzPPQQRRSSQQPPOONNppqqrrss !!""##100//..-||{{zzyyEEFFGGHH - - \\[[ZZYYeeffgghhEEFFGGHH77665544::;;<<==PPOONNMMWWVVUUTT//001122""!! ccbbaa``yyxxwwvvTTUUVVWWMMLLKKJJttuuvvww$$%%&&'' -,,++**)xxwwvvuuIIJJKKLLXXWWVVUUiijjkkllIIJJKKLL !!33221100>>??@@AALLKKJJIISSRRQQPP33445566__^^]]\\uutsrqpoXXYYZZ[[ - - IIHHGGFFxxyyzz{{(())**++ - - )((''&&%ttssrrqqMMNNOOPPTTSSRRQQmmnnooppMMNNOOPP""##$$%%//..--,,~~}}||BBCCDDEE HHGGFFEEOONNMMLL778899::[[ZZYYSSonnmmllk\\]]^^__ EEDDCCBB||}}~~,,--..//%$$##""!ppoonnmmQQRRSSTTPPOONNMMqqrrssttQQRRSSYY&&''(())++**))(({{zzyyxxFFGGHHII - - DDCCBBAAKKJJIIHH;;<<==>>RRQQPPOOkjjiihhg``aabbccAA@@??>>00112233 ! llkkjjiiUUVVWWXXLLKKJJIIuuvvwwxxZZ[[\\]]**++,,--''&&%%$$wwvvuuttJJKKLLMM@@??>>==GGFFEEDD??@@AABBNNMMLLKKgffeeddcddeeffgg==<<;;::44556677 - - hhggffeeYYZZ[[\\ - - HHGGFFEEyyzz{{||^^__``aa..//0011##""!! ssrrqqppNNOOPPQQ77665544CCBBAA@@CCDDEEFF JJIIHHGGcbbaa``_hhiijjkk998877668899::;;ddccbbaa]]^^__`` DDCCBBAA}}~~bbccddee22334455oonnmmllRRSSTTUU33221100??>>==<>??``__^^]]aabbccdd@@??>>==ffgghhii66778899kkjjiihhVVWWXXYY //..--,,;;::9988KKLLMMNNBBAA@@??[ZZYYXWVppqqrrss !!""##1100//..~~@@AABBCC \\[[ZZYYeeffgghh<<;;::99jjkkllmm::;;<<==ggffeeddZZ[[\\]] - - ++**))((77665544OOPPQQRR>>==7766UTSSRRQQttuuvvww$$%%&&''--,,++**}}||{{zzDDEEFFGG!!"" - - XXWWVVUUiijjkkll88776655nnoouuvv>>??@@AAccbbaa``^^__``aa''&&%%$$33221100SSTTUUVV55443322PPOONNMMxxyyzz{{(())**++))((''&&yyxxwwvvHHIIJJKK##$$%%&&TTSSRRQQmmnnoopp 44332211wwxxyyzzBBCCDDEE __^^]]\\bbccddee##""!!//..--,,WWXXYYZZ - -1100//..LLKKJJII||}}~~,,--..//%%$$##""uuttssrrLLMMNNOO''(())**PPOONNMMqqrrsstt!!""##$$00//..--~~}}{{||}}~~FFGGHHII - - [[ZZYYXXffgghhii++**))(([[\\]]^^ --,,++**HHGGFFEE00112233!! qqppoonnPPQQRRSS++,,--..LLKKJJIIuuvvwwxx%%&&''((,,++**))||{{zzyyJJKKLLMMWWVVUUTTjjkkllmm''&&%%$$__``aabb))((''&&DDCCBBAA44556677mmllkkjjTTUUVVWW//001122 - - HHGGFFEEyyzz{{||))**++,,((''&&%%xxwwvvuuNNOOPPQQSSRRQQPPnnooppqq !!##""!! ccddeeff%%$$##""@@??>>==8899::;;iihhggffXXYYZZ[[33445566 DDCCBBAA}}~~--..//00$$##""!!ttssrrqqRRSSTTUUOONNMMLLrrssttuu""##$$%% gghhiijj!!<;:98776<<==>>??eeddccbb\\]]^^__77==>>??@@??>>==11223344 ppoonnmmVVWWXXYY KKJJIIHHvvwwxxyy&&''(()) - - - -kkllmmnn65544332~~@@AABBCCaa``__^^``aabbcc@@AABBCC<<;;::9955667788llkkjjiiZZ[[\\]] - - GGFFEEDDzz{{||}}**++,,-- ooppqqrr !!""21100//.}}||{{zzDDEEFFGG - -]]\\[[ZZddeeffggDDEEFFGG8877665599::;;<<hhggffee^^__``aaCCBBAA@@~~..//0011ssttuuvv##$$%%&& .--,,++*yyxxwwvvHHIIJJKK YYXXWWVVhhiijjkkHHIIJJKK 44332211==>>??@@ddccbbaabbccddee??>>==<<22334455 wwxxyyzz''(())** - - *))((''&uuttssrrLLMMNNOOUUTTSSRRllmmnnooLLMMNNOO!!""##$$00//..--~~}}AABBCCDD ``__^^]]ffgghhii;;::998866778899 - - {{||}}~~++,,--..&%%$$##"qqppoonnPPQQRRSSQQPPOONNppqqrrssPPQQRRSS%%&&''((,,++**))||{{zzyyEEFFGGHH - - \\[[ZZYYjjkkllmm77665544::;;<<==!!""## - - //001122"!! mmllkkjjTTUUVVWWMMLLKKJJttuuvvwwYYZZ[[\\))**++,,((''&&%%xxwwvvuuIIJJKKLLXXWWVVUUnnooppqq !!33221100>>??@@AA$$%%&&''33445566 - - iihhggffXXYYZZ[[ - - IIHHGGFFxxyyzz{{]]^^__``--..//00$$##""!!ttssrrqqMMNNOOPPTTSSRRQQrrssttuu""##$$%%//..--,,~~}}||BBCCDDEE(())**++778899:: eeddccbb\\]]^^__ EEDDCCBB||}}~~aabbccdd11223344 ppoonnmmQQRRSSTTPPOONNMMvvwwxxyy&&''(())++**))(({{zzyyxxFFGGHHII,,--..//;;<<==>>aa``__^^``aabbccAA@@??>>eeffgghh55667788llkkjjiiUUVVWWXXLLKKJJIIzz{{||}}**++,,--''&&%%$$wwvvuuttJJKKLLMM00112233??@@AABB ]]\\[[ZZddeeffgg==<<;;::iijjkkll99::;;<<hhggffeeYYZZ[[\\ - - HHGGFFEE~~..//0011##""!! ssrrqqppNNOOPPQQ44556677 !!~~}}||{{CCDDEEFF!! - - YYXXWWVVhhiijjkk99887766mmnnoouu==>>??@@ddccbbaa]]^^__`` DDCCBBAA22334455oonnmmllRRSSTTUU==>>??@@""##$$%%zzyyxxwwGGHHIIJJ""##$$%%UUTTSSRRllmmnnoo55443322vvwwxxyyAABBCCDD ``__^^]]aabbccdd@@??>>==66778899kkjjiihhVVWWXXYYAABBCCDD&&''(())vvuuttssKKLLMMNN&&''(())QQPPOONNppqqrrss !!""##1100//..~~zz{{||}}EEFFGGHH - - \\[[ZZYYeeffgghh<<;;::99::;;<<==ggffeeddZZ[[\\]]EEFFGGHH**++,,--rrqqppooOOPPQQRR**++,,--MMLLKKJJttuuvvww$$%%&&''--,,++**}}||{{zz~~IIJJKKLLXXWWVVUUiijjkkll88776655~~}}||{{>>??@@AAccbbaa``^^__``aaIIJJKKLL..//0011nnmmllkkSSTTUUVV..//0011 - - IIHHGGFFxxyyzz{{(())**++))((''&&yyxxwwvvMMNNOOPPTTSSRRQQmmnnoopp 44332211zzyyxxwwBBCCDDEE __^^]]\\bbccddeeMMNNOOPP22334455jjiihhggWWXXYYZZ22334455 EEDDCCBB||}}~~,,--..//%%$$##""uuttssrrQQRRSSTTPPOONNMMqqrrsstt!!""##$$00//..--vvuuoonnFFGGHHII - - [[ZZYYXXffgghhiiQQRRSSYY66778899ffeeddcc[[\\]]^^6677==>>AA@@??>>00112233!! qqppoonnUUVVWWXXLLKKJJIIuuvvwwxx%%&&''((,,++**))mmllkkjjJJKKLLMMWWVVUUTTjjkkllmmZZ[[\\]]::;;<<==bbaa``____``aabb??@@AABB==<<;;::44556677mmllkkjjYYZZ[[\\ - - HHGGFFEEyyzz{{||))**++,,((''&&%%iihhggff~~}}||NNOOPPQQSSRRQQPPnnooppqq^^__``aa>>??@@AA^^]]\\[[ccddeeffCCDDEEFF998877668899::;;iihhggff]]^^__`` DDCCBBAA}}~~--..//00$$##""!!eeddccbb{{zzyyxxRRSSTTUUOONNMMLLrrssttuubbccddeeBBCCDDEEZZYYXXWWgghhiijjGGHHIIJJ55443322<<==>>??eeddccbbaabbccdd@@??>>==11223344 aa``__^^wwvvuutsVVWWXXYY KKJJIIHHvvwwxxyyffgghhiiFFGGHHIIVVUUTTSSkkllmmnnKKLLMMNN !!""##1100//..~~@@AABBCCaa``__^^eeffgghh<<;;::9955667788]]\\[[ZZrqpoonnmZZ[[\\]] - - GGFFEEDDzz{{||}}jjkkllmmJJKKLLMMRRQQPPOOooppqqrrOOPPQQRR$$%%&&''--,,++**}}||{{zzDDEEFFGG - -]]\\[[ZZiijjkkll8877665599::;;<<YYSSRRQQmllkkjji^^__``aaCCBBAA@@~~nnoouuvvNNOOPPQQNNMMLLKKssttuuvvSSYYZZ[[(())**++))((''&&yyxxwwvvHHIIJJKK YYXXWWVVmmnnoopp 44332211==>>??@@PPOONNMMihhggffebbccddee??>>==<>==<<;;hhiijjkk8899::;;iihhggffXXYYZZ[[ - - IIHHGGFF}}~~--..//00$$##""!!ttssrrqqMMNNOOPP@@??>>==YXWVUTSSrrssttuu""##$$%%//..--,,~~}}||bbccddee::998877llmmnnoo<<==>>??eeddccbb\\]]^^__ EEDDCCBB11223344 ppoonnmmQQRRSSTT77665544RRQQPPOOvvwwxxyy&&''(())++**))(({{zzyyxxffgghhii66554433uuvvwwxx@@AABBCCaa``__^^``aabbccAA@@??>>55667788llkkjjiiUUVVWWXX33221100NNMMLLKKzz{{||}}**++,,--''&&%%$$wwvvuuttjjkkllmm221100//yyzz{{||DDEEFFGG - -]]\\[[ZZddeeffgg==<<;;::99::;;<<hhggffeeYYZZ[[\\ - - //..--,,JJIIHHGG~~..//0011##""!! ssrrqqppnnooppqq..--,,++~~}}||{{}}~~HHIIJJKK YYXXWWVVhhiijjkk99887766~~}}||==>>??@@ddccbbaa]]^^__`` ++**))((FFEEDDCC22334455oonnmmllrrssttuu**))((''zzyyxxwwLLMMNNOOUUTTSSRRllmmnnoo55443322{{zzyyxxAABBCCDD ``__^^]]aabbccdd''&&%%$$BBAA@@??66778899kkjjiihhvvwwxxyy&&%%$$##vvuuttssPPQQRRSSQQPPOONNppqqrrss !!""##1100//..wwvvuuooEEFFGGHH - - \\[[ZZYYeeffgghh##""!!>>==<;:9::;;<<==ggffeeddzz{{||}}""!! rrqqppooTTUUVVWWMMLLKKJJttuuvvww$$%%&&''--,,++**nnmmllkkIIJJKKLLXXWWVVUUiijjkkll87766554>>??@@AAccbbaa``~~nnmmllkkXXYYZZ[[ - - IIHHGGFFxxyyzz{{(())**++))((''&&jjiihhgg~~}}MMNNOOPPTTSSRRQQmmnnoopp 43322110~~}}||BBCCDDEE __^^]]\\jjiihhgg\\]]^^__ EEDDCCBB||}}~~,,--..//%%$$##""ffeeddcc||{{zzyyQQRRSSTTPPOONNMMqqrrsstt!!""##$$0//..--,{{zzyyxxFFGGHHII - - [[ZZYYXXffeeddcc``aabbccAA@@??>>00112233!! bbaa``__xxwwvvuuUUVVWWXXLLKKJJIIuuvvwwxx%%&&''(( ,++**))(wwvvuuttJJKKLLMMWWVVUUTTbbaa``__ddeeffgg==<<;;::44556677^^]]\\[[tsrqpoonYYZZ[[\\ - - HHGGFFEEyyzz{{||))**++,, - - (''&&%%$ssrrqqppNNOOPPQQSSRRQQPP ^^]]\\[[hhiijjkk998877668899::;;ZZYYSSRRnmmllkkj]]^^__`` DDCCBBAA}}~~--..//00$##""!! oonnmmllRRSSTTUUOONNMMLL - - ZZYYXXWWllmmnnoo55443322<<==>>??QQPPOONNjiihhggfaabbccdd@@??>>==11223344 - -kkjjiihhVVWWXXYY KKJJIIHHVVUUTTSSppqqrrss !!""##1100//..~~@@AABBCCMMLLKKJJfeeddccbeeffgghh<<;;::9955667788 ggffeeddZZ[[\\]] - - GGFFEEDDRRQQPPOOttuuvvww$$%%&&''--,,++**}}||{{zzDDEEFFGG - -IIHHGGFFbaa``__^iijjkkll8877665599::;;<<ccbbaa``^^__``aaCCBBAA@@NNMMLLKKxxyyzz{{(())**++))((''&&yyxxwwvvHHIIJJKK EEDDCCBB^]]\\[[Zmmnnoopp 44332211==>>??@@__^^]]\\bbccddee??>>==<<~~}}||ZHAbtArd˂rXQH~fے`JXQnXv`p˂rvpfJtAdfpvdrtAJpZHAlJtAbHAZpltb˂pZZdQbtJ`ےdtAJlHAbےf~HfrtAJlpfH~d|Zے`JXQ|ZdQbJ`ے`vXnr˂pf~HXQJ`ےH~f|ZdQbnXv`ltdbے`rd|˂rXQdQZ|HAbےlJtAbHAZptbn`JXQHAvnXvtbdQf`vdQbtr˂ptlJbHAZpvpfZHAbfpvbHAZ`vXntlJf~HrtAJlJXQrZdQbtJ`ےdrtAJ`JXQrrd|˂rXQvpfbے``f~Z|dXnvlJtArZHAbtArd˂rXQH~fے`JXQnXv`drtAvpftArdfpvtbdQpZHAlJtAbHAZpltb˂pZZdQbtJ`ےHf`JXQrHfpvrtAJlpfH~d|Zے`JXQ|ZdQbJ`p˂`vXnr˂pf~HJltH~f|ZdQbnXv`Z|dbے`rd|˂rXQdQZ|HAbےlJtAbHAZpvXn˂pZHAnXvtbdQf`vdQbtr˂ptlJrXQJvpfZHAےfpvbdQZ|`vXntlJf~HrtAJlJXQrZZdQbtJ`ےdrtAJ`JXQrrdf˂rXQvpfHbے``f~Z|dXnvlJtArZHAbtArd`ےbH~f`JXQrnXv`drtAvpftArdfpvtbdQHAbےlJtAbHAZpltb˂pZ~HfJ`ے~f`JXQrHfpvrtAJlpfH~d|Zے`JXQ|ZdQbHAZp˂`vXnbtlf~HJltH~f|ZdQbnXv`Z|l`JXQrrd|˂rXQdQZ|HAbےpvnbHAZpvXn˂p`JnvftbdQf`vdQbtr˂ptlJrXQJvpfJtAdfpvbdQZ|`vXntlJf~HtbdQZ˂pZZdQbtJ`ےdtAJl`JXQrXv`f˂rXQvpfHXQr˂~HfpZ|dXnvlJtArZHAbtArd`ےbH~f|ZdQbnXv`drtAvpftArdfpv|drHAbےlJtAbHAZptbn˂pZ~HfJ`ے~f`pZHAbvnXrtAJlpfH~d|Zے`JXQ|ZdQbHAXQJ``vXntlJf~HJltH~f|ZdQbnXv`tAJl`JXQrrd|˂rXQvpfHAbےpvnbHAZpvXnے`Jv`ftbdQf`vdQbtr˂ptlJےbHAvpftArdfpvbdQZ|`vXntlJf~HtbdQZ˂pZAZdQbtJ`ےHf``JXQrXv`f˂rXQvpfHXQr˂~HfpZ|dXnvlJtArZHAbtArdZp˂H~f|ZdQbnXv`drtAvpftArdfpv|drb`JXlJtAbHAZpvXn˂pZ~HfJ`ے~f`p`JXQvnXrtAJlpfH~d|Zے`JXQ|ZdQbrXQJ``vXntlJf~HJltH~f|ZdQbnXv`tAdQZ|Qr˂prdf˂rXQvpfHHAbےpvnbHAZpvXnrbt璕v`f~tbdQf`vdQbtr˂ptlJےbHAvpftArdfpvbdQZ|`vXntlJf~HdrtAZHAb~HfJ`ے~f``JXQrXv`f˂rXQvpfHl|ZdQfpvZ|dXnvlJtArZHAbtArdZp˂H~f|ZdQbnXv`drtAvpftArdfpvJltے`JXpvnbHAZpvXn˂pZ~HfJ`ے~f`btlnXv`rtAJlpfH~d|Zے`JXQf~HbHAZ`vXntlJf~HJltH~f|ZdQbnXv`bdQZ|Qr˂pXv`f˂rXQvpfHHAbےpvnbHAZpvXnJtArdf~HtbdQfZHAdQbtr˂pXv`fdrtAvpftArdfpvbdQZ|`vXntlJfHfdrtAZHAb~HfJ`ے~f``JXQrXv`f˂rXQvpfH|ZdQfpvZ|dbے`lJtArZHAb~HfJbdQH~f|ZdQbnXv`drtAvpftArdpvnJltJQrpvnbHAZpvXn˂pZ~HfJ`ے~f`btlnXv`rtAJlJXQrd|Zے`JXQpvnZ|d`vXntlJf~HJltH~f|ZdQbrXQJ`drtAJ˂pZHAXv`f˂rXQvpfHHAbےpvnbHAZpvXn|ZdQbffpvtbdQ˂pZHAdQbtr˂pXv`frtAJl瀅vpftArdfpvbdQZ|`vXntlJےHAZltbbے`~HfJ`ے~f``JXQrXv`f˂rXQvpfHtlJnrXQZ|dbے`lJtArZHAb~HftbdQH~f|ZdQbnXv`drtAvpftArdp˂rdQZ|JXQrpvnbHAZpvXn˂pZ~HfJ`ے~f`tArdJ`ےrtAJlJXQrd|Zے`JXQpvZ|d`vXntlJf~HJltH~f|ZdQbXQJ`ےdrtAJ˂pZHAXv`f˂rXQvpfHHAbےpvnbHAZpvXn|ZdQbHAZp˂tbdQ˂pZHAdQbtr˂p~HfprtAJl瀅vpftArdfpvbdQZ|ZHAbtlJbHAZltbbے`~HfJ`ے~f``JXQrXv`f˂rXQvpfHtlJrXQJZ|dbے`lJtArZHAbvnXtbQZH~f|ZdQbnXv`drtAے`JXQtArdp˂rdQZ|lJXQrpvnbHAZpvXn˂pZ~HfJ`ے~f`tArdt`ےbrtAJlJXQrd|Zے`JXQv`fdrtAJ`vXntlJfHfJltr˂p|ZdQbXQJ`ےtbdQZHAbXv`f˂rXQvpfHHAbےpvnbHAZvXnlJtAHAZp˂tbdQ˂pZHAdQbtr˂p~HfpltbvpftArdpvnbdQZ|ZHAbtlJbHAZZ|d`JXQ~HfJ`ے~f``JXQrXv`fdrtAJvpfHrd|rXQJZ|dbے`lJtArZHAbvnXdQZ|H~f|ZdQbrXQJ`drtAے`JXQtArdp˂rrtAJlr˂ppvnbHAZpvXn˂pZ~Hfltb~f`ZdQbt`ےbrtAJlJXQrd|Zے`JXQv`pvdrtAJ`vXntlJےHAZJltr˂p|ZdQbXQJ`ےtbdQZHAbXv`f˂rXQvpfHHAے`pvndQZ|vXnlJtAHAZp˂tbdQ˂pZHAdQbtr˂pnXvltbvpftArdp˂rbdQZ|ZHAbtlJbHAZZ|l璒`JXQ~HfJ`ے~f`JXQrbXv`fdrtAJvpfHrd|rXQJZ|dbے`lJtArZHAb`f~dQZ|H~f|ZdQbXQJ`ےdrtAے`JXQtArdp˂rtbnr˂pZpvnbHAZpvXntlJ~Hfltb~f`ZdQtAr`ےbrtAJlJXQrd|Zے`JXQHfpvrAJltZHAbtlJbHAZJltr˂p|ZdQbXQJ`ےvp`vAb`JXv`f˂rXQvpfHtAd|pvndQZ|vXnd|ZHAZp˂tbdQ˂pZHAdQbtr˂pnXvbdQZ|ے`JXQtArdp˂rbdQZ|ZHAbtlJbHAZXnvXQr˂~HfJ`ے~f`ZdQbtXv`fdrtAJvpfHdQbt璀rXQJZ|dbے`lJtArZHAb`f~drtr˂p|ZdQbXQJ`ےdrtAے`JXQtArdp˂rpfH~pZHAbpvnbHAZvXnlJtA~Hfltb~f`lJtAr`ےbrtAJlJXQrd|Zے`JXQHXv`AJltZHAbtlJbHAZJltr˂p|ZdQbXQJ`ےf`vے`JXv`fdrtAJvpfHrd|pvndQZ|vXnd|ZHAZp˂tbdQ˂pZHAdQbtvnXr˂pf~HbdQZ|ے`JXQtArdp˂rbdQZ|ZHAbtlJbHAZXnvXQr˂~Hfltb~f`ZdQbtXv`fdrtAJvpfHdQbt璀rXQJZ|dbے`lJtArv`fZHAbfpvdrtr˂p|ZdQbXQJ`ےdrtAے`JXQtArdp˂rp`vXpZA`pvndQZ|vXnlJtA~Hfltb~f`l|ZdQ`ےbrtAJlJXQrdf~Hfpے`JXQnXv`AJbdQZHAbtlJbHAZJltr˂p|ZdQbXQJ`ےnvpJXQrbXv`fdrtAJvpfHrd|pvndQZ|vXnbtlHAZp˂tbdQ˂pZHA~HfpvnXr˂pf~HZ|dے`JXQtArdp˂rbdQZ|ZHAbtlJbHAZfH~tlJ~Hfltb~f`ZdQbtXv`fdrtAJvpfHJtArdrXQJZ|dbے`vnXv`fZHAbfpvrtAJlr˂p|ZdQbXQJ`ےdrtAے`JXQtArdp˂rf`vXtAd|pvndQZ|vXnlJtA~Hfltb~f`|ZdQ`ےbtAJlJXQrv`f~Hfpے`JXQ~HftbdQZHAbtlJbHAZJltr˂p|ZdQbXQJ`ےnvpZdQbtXv`fdrtAJvpfHrd|pvndQZ|vXnbtlHAZp˂tbn˂pZHA~HfpvnXr˂ppvnZ|dے`JXQtArdp˂rbdQZ|ZHAbtlJbHAZfH~lJtA~Hfltb~f`ZdQbtXv`fdrtAJvpfHJtArdrXQJvpfHbے`vnXv`f|ZdQbXv`frtAJlr˂p|ZdQbXQJ`ےdrtAے`JXQtArdp˂rvpfrd|pvndQZ|vXnlJtA~Hfltb~f`tlJ`ےbf`vJXQrv`f~HfptlJ~HftbQZZHAbtlJbHAZJltr˂pf~HXQJ`ےH~fZdQbtXv`fdrtAJvpfHrd|pvndQZ|vXntArdHAZp˂Xnv˂pZHA~HfpvnXtArdpvndrtAے`JXQtArdp˂rbdQZ|ZHAbfpvbHAZ`vXnlJtA~Hfltb~f`ZdQbtXv`fdrtAJvpfH|ZdQbrXQJpfH~bے`vnXv`f|ZdQbXv`pJltr˂p|ZdQbXQJ`ےdtAJے`JXQnXv`p˂rvpfrd|pvndQZ|vXnlJtA~Hfltb~fZtlJ`ےbf`vJXQrv`fHfpvtlJvnXbdQZ|ZHAbtlJbHAZltbr˂pf~HXQJ`ےH~fZdQbtXv`fdrtAJvpfHrd|pvndQZ|HAbtArdHAZp˂Xnv˂pZHA~HfpnrXQtArdv`fdrtAے`JXQtArdp˂rnvpZHAbfpvbHAZ`vXHlJtA~Hfltb~f`ZdQbtXv`fdrtAJ˂pZHA|ZdQtArXQJpfH~bے`vnXJ`ے|ZdQb~HfpJltr˂p|ZdQbXQJ`ےfHfے`JXQnXv`p˂r~f`rd|pvndQZ|vXnlJtAHfpltbbے`rdf`ےbf`vJXQrv`fHAZp˂tlJvnXbdQZ|ZHAbtlJbHAZ`vXnr˂pf~HXQJ`ےvXnZdQbtXv`fdrtAJvpfHrd|vnrdQZ|JXQr~HfHAZp˂Xnv˂pZHA~HfprXQJtArdv`p˂rAJlے`JXQtArdp˂rvpfZHAbfpvbHAZvpfHlJtA~Hfltb~f`ZdQbtXQJ`ےdrtAJ˂pZHAvnXv`rXQJpfH~bے`vnX`ےb|ZdQbrXQJtbdQZr˂pf~HXQJ`ےH~fے`JXQnXv`p˂r~f`rd|pvndQZ|vXnlJtAHAZpltbbے`f~H`ےbf`vJXQrv`fHAZp˂tlJ`ےb|drZHAbfpvbHAZ`vXnr˂pf~HXQJ`ےvXnZdQbtXv`fdrtAJvpfHrd|˂rXQdQZ|JXQHAbfpvHAZp˂Xnv˂pZHA~HfprXQJtArdHAZp˂tAJlے`JXQnXv`p˂rvpfZHAbfpvbHAZvp`vlJtA~Hfltb~fZZdQbtJ`ےdrtAJے`JnXv`rXQJpfH~bے`vnX`ےb|ZdQbrXQJtbdQZr˂pf~HXQJ`ےH~fے`JXQnXv`p˂rXnvrd|pvndQZ|HAbےlJtAbHAZpltbXQr˂f~H`ےbf`vJXQrv`fHAZp˂tlJ`p˂|dnZHAbfpvbHAZ`vXnr˂pf~HXQJ`ےpfH~ZdQbtXv`fdrtAJ`JXQrrd|˂rXQdQZ|pZHAbfpvHAZp˂Xnv˂pZHA~HfprXQJtArdrXQJ`vffے`JXQnXv`p˂rvpfZHAbfpvbHAZf`vlJtAHfpltb˂pZZdQbtJ`ےdrtAJے`JnvfrXQJpfH~bے`vnX`ےb|ZdQbےbHA`vXnr˂pf~HXQJ`ےH~fے`JXQnXv`p˂rXnvrd|vnrdQZ|HAbےlJtAbHAZpltbXQr˂~Hfp`ےbf`vJXQrv`fHAZp˂tlJZp˂vpfZHAbfpvbHAZ`vXnr˂pf~HXQJ`ےpfH~ZdQbtXQJ`ےdrtAJ`JXQrrd|˂rXQdQZ|p`JXQvnXHAZp˂Xnv˂pZHA~HfprXQJtArdrXQJ`H~fے`JXQnXv`p˂rvpfZHAbfpvbHAZvplJtAHAZpltb˂pZZdQbtJ`ےdrtAJr˂pv`frXQJpfH~ے`JvnX`ےb|ZdQbےbHA`vXnr˂pf~HXQJ`ےH~fے`JXQnXv`p˂rfH~rd|˂rXQdQZ|HAbےlJtAbHAZpltbZHAb~Hfp`ےbf`vXQrbtv`fHAZp˂tlJXQJ`ےvpfZHAbfpvbHAZ`vXnr˂pf~HXQJ`ےf`vXZdQbtJ`ےdrtAJ`JXQrrd|˂rXQdQZ|ے`JXQvnXHAZp˂XnvlJtA~HfprXQJtArdbHAZH~fے`JXQnXv`p˂rvpfZHAbfpvbHAZnvplJtAbHAZpltb˂pZZdQbtJ`ےdrtAJr˂pv`f~rXQJpfH~d|ZvnX`ےb|ZdQbp˂r`vXnr˂pf~HXQJ`ےH~fے`JXQnXv`drtAfH~rd|˂rXQdQZ|HAbےlJtAbHAZpltbZHAbfpv`ےbf`vdQbtv`fHAZp˂tlJXQJ`ےvpfZHAbfpvbHAZ`vXnr˂pf~HdQZ|f`vXZdQbtJ`ےdrtAJ`JXQrrd|˂rXQdQZ|˂pZnXv`HAZdXnvlJtAr~HfprXQJtArdbHAZH~fے`JXQnXv`p˂rvpfZHAےfpvdrtAJH~flJtAbHAZpltb˂pZZdQbtJ`ےdrtAJHAbےf~HrtAJlpfH~d|ZvnX`ےb|ZdQbp˂`vXnr˂pf~HXQJ`ےH~f`JXQrnXv`ltbZHAbrd|˂rXQdQZ|HAbےlJtAbHAZpltb`JXQrfpvtbdQf`vdQbtv`fHAZp˂tlJbHAZpvpfZHAbfpvbHAZ`vXnbtlf~HdQZ|JQrZdQbtJ`ےdrtAJ`JXQrrd|˂rXQdQZ|˂pZnXv`Z|dXnvlJtAr~HfprXQJ`ےbf`vJXQrHfpvdrtAfH~|ZdQnXv|drnvpJtArdfpvtAJlbJQrfpvbHAZ`vXnr˂pf~HXQJ`ےH~fdQbt璀nXvdrtAJ`JXQrrd|˂rXQdQZ|bے``vXnHAZp˂Xnv˂pZHA~HJltf`vXbtl`f~tAJlfH~|ZdQnrXQJtdrtA˂pZnXv`p˂rvpfZHAbfpvbHAZ`vXnl|ZdQ`ffpltb˂pZZdQbtJ`ےdrtAJJXQrvˍpfrXQJpfH~bے`fpvbdQZ|nvpJtArdHfpvtbdQZf`vXbtl`ےHAJltHAbےf~HXQJ`ےH~fے`JXQnXv`p˂rvpfbtlvnrdQZ|HAbےlJtAbHAZpltb˂p`JH~ㅐf`ےbf`vJXQrnXv`drtAfH~|ZdQnXv|drnvpJtArdZp˂bdQZ|`JXQrfpvbHAZ`vXnr˂pf~HXQJ`ےH~fJtArdXQJ`ےdrtAJ`JXQrrd|˂rXQdQZ|XQr˂`vXnHAZp˂Xnv˂pZHAf~HJltbf`vXbtl`f~tAJlfH~|ZdQrXQJ`drtA˂pZnXv`p˂rvpfZHAbfpvbHAZ`vXn|ZdQHAZpltb˂pZZdQbtJ`ےdrtAJpZHAbvˍpfrXQJpfH~bے`fpvQZdrnvpJtArdHfpvtbdQZfZHAbbtlےbHAJltHAbےf~HXQJ`ےH~fے`JXQnXv`p˂rvpfbtl˂rXQdQZ|HAbےlJtAbHAZpltbے`JH~ㅐf`ےbf`vJXQrnXv`tAJlfH~|ZdQnXv|drے`JJtArdZp˂bdQZ|`JXQrfpvbHAZ`vXnr˂pf~HXQJ`ےH~fJtArdJ`ےdrtAJ`JXQrrd|˂rXQdQZ|XQr˂`vXnHAZp˂Xnv˂pZHApvntbdQZf`vXbtl`fHtAJlXQr˂|ZdQrXQJ`ltbZHAbnXv`p˂rvpfZHAbfpvbHAZ`vXntlJbHAZpltb˂pZZdQbtJ`ےdrtAJpZHAbvˍpfrXQJpfH~bے`Xv`f|drnvpJtArdfpvtbdQZpZHAbbtlےbHAdQZ|ے`JXf~HXQJ`ےH~fے`JXQnXv`drtAvpftArd˂rXQdQZ|HAbےlJtAbHAZpltb˂pH~ㅐf`ےbf`vJXQr~HftAJlfH~|ZdQnrXQJ|drے`JJtArdZp˂drtAJQr˂pfpvbHAZ`vXnr˂pf~HJltH~f|ZdQbJ`ےdrtAJ`JXQrrd|˂rXQdQZ|ZHAb`vXnHAZp˂Xnv˂pZHApvntbdQZf`vXbtl`ےHAtAJlXQr˂|ZdQrXQJ`ltbZHAbnXv`p˂rvpfZHAےfpvbdQZ|`vXntlJbHAZpltb˂pZZdQbtJ`ےdrtAJے`JXQvˍpfrXQJpfH~bے`Xv`f|rAJlnvpJtArdZp˂tbdQZpZHAbbtlےbHAdQZ|lے`JXf~HXQJ`ےH~f`JXQrnXv`drtAvpftArd˂rXQdQZ|HAbےlJtAbHAZpltbr˂pH~ㅐf`ےbf`vJXQr~HXtbdfH~|ZdQrXQJ`|drے`JJtArdZp˂tbnQr˂pfpvbHAZ`vXnbtlf~HJltH~f|ZdQtAJ`ےdrtAJ`JXQrrd|˂rXQdQZ|ZHAb`vXnHAZp˂Xnv˂pZHAv`fQZ|dfZHAbbtlےbHAtAJlXQr˂|ZdQrXQJ`vp`ZAb`nXv`p˂rvpfJtAdfpvbdQZ|`vXnrd|bHAZpltb˂pZZdQbtJ`ےdtAJlے`JXQvˍpfrXQJpfH~bے`~HfprtAJlے`JJtArdZp˂tbdQZpZHAbbtlےbHAvXnJXQrf~HXQJ`ےH~f|ZdQbnXv`drtAvpfZdQbt˂rXQdQZ|HAbےlJtAbHAZptbnHAbےH~ㅐf`ےbf`vJXQrvnXtbdXQr˂|ZdQrXQJ`|drے`JJtArdZp˂vpfH˂pZHAfpvbHAZ`vXntlJf~HJltH~flJtAJ`ےdrtAJ`JXQrrd|˂rXQvpf`JXQr`vXnHAZp˂Xnv˂pZHAv`fQZ|dpZHAbbtlےbHAtAJlXQr˂|ZdQrXQJ`~f`bے`nXv`drtAvpftArdfpvbdQZ|`vXnrd|bHAZpltb˂pZZdQbtJ`ےHf`˂pZvˍpfrXQJpfH~ے`J~HfprtAJے`JJtArdZp˂tbdQZpZHAbbtlےbHAvXnJXQrf~HJltH~f|ZdQbnXv`drtAvpfZdQbt˂rXQdQZ|HAbےlJtAbHAZpvXnHAbےH~ㅐf`ےbf`vXQrbtv~bdQZ|XQr˂|ZdQrXQJ`|drے`JJtArdZp˂vp`v˂pZAfpvbdQZ|`vXntlJf~HJltH~fl|ZJ`ےdrtAJ`JXQrrdf˂rXQvpfH`JXQr`vXnHAZp˂XnvlJtAHfpvdrtApZHAbbtlےbHAtAJlXQr˂|ZdQrXQJ`Xnv`JXQrnXv`drtAvpftArdfpvbdQZ|`vXndQbtbHAZpltb˂pZ~HfJ`ے~f`˂p`vˍpfrXQJpfH~d|ZnXvJltے`JJtArdZp˂tbdQZpZHAbbtlےbHApfH~btlf~HJltH~f|ZdQbnXv`drtAvpflJtAr˂rXQdQZ|HAbےpvnbHAZpvXnJXQrH~ㅐf`ےbf`vdQbt`f~bdQZ|XQr˂|ZdQrXQJ`|drے`JJtArdZp˂f`vJtAdfpvbdQZ|`vXntlJf~HJltH~fd|ZJ`ےdtAJl`JXQrXv`f˂rXQvpfH˂pZHA`vXnHAZdXnvlJtArHfpvdrtApZHAbbtlےbHAtAJlXQr˂|ZdQrXQJ`Xnv|ZdQbnXv`drtAvpftArdfpvbdQZ|`vXndQbtbHAZptbn˂pZ~HfJ`ے~f`bے`vˍpfrtAJlpfH~d|ZnXvJltے`JJtArdZp˂tbdQZpZHAbbtlےbHApfH~tlJf~HJltH~f|ZdQbnXv`drtAvpflJtAr˂rXQvpfHAbےpvnbHAZpvXnJXQrH~ㅐftbdQf`vdQbt`pvbQZdXQr˂|ZdQrXQJ`|drے`JJtArdZp˂vptArdfpvbdQZ|`vXntlJf~HJltH~fdtlJ`ےHf``JXQrXv`f˂rXQvpfH˂p`Z`vXnZ|dXnvlJtArnXv`rtAJlpZHAbbtlےbHAtAJlXQr˂f~rXQJ`fH~|ZdQbnXv`drtAvpftArdfpvbdQZ|`vXnJtArdbHAZpvXn˂pZ~HfJ`ے~f`QXb㉀ەvˍpfrtAJlpfH~d|Zf~HtbdQ琙ے`JJtArdZp˂tbdQZpZHAbHfpvےbHAf`vXtlJf~HJltH~f|ZdQbnXv`drtAvpf|ZdQ˂rXQvpfHHAbےpvnbHAZpvXnpJAHrH~ㅐftbdQf`vdQbtfpvZ|dXQr˂|ZdQrXQJ`|dtAے`JnXvZp˂nvptArdfpvbdQZ|`vXntlJf~HJltH~fbtlJ`ے~f``JXQrXv`f˂rXQvpfHˁ`Z`vXnZ|dXnvlJtArnXv`rtAJlpZHAbbtlےbHAJltXQr˂`f~rXQJ`fH~|ZdQbnXv`drtAvpftArdfpvbdQZ|ZHAbJtArdbHAZpvXn˂pZ~HfJ`ے~f`QXb㉀ەvˍp|rtAJlpfH~d|ZpvntbdQ琙ے`JJtArdZp˂bnvpZHAbHfpvےbHAf`vXtlJf~HJltH~f|ZdQbnXv`drtA˂pZ|ZdQ˂rXQvpfHHAbےpvnbHAZpvXnp`ZQXdrQttbdQf`vdQbtrXQJ`Z|rAJXQr˂|ZdQrXQJ`pfHے`JnXvZp˂H~ftArdfpvbdQZ|`vXntlJfHfJltHAbےtArdJ`ے~f``JXQrXv`f˂rXQvpfHb㉀ۑpJltZ|dXnvlJtArp˂rltbpZHAbbtlےbHAf`vXXQr˂`f~rXQJ``vXn|ZdQbnXv`drtAvpftArdpvnbdQZ|`JXQrf~HbHAZpvXn˂pZ~HfJ`ے~f`JAHrbAdZ|rtAJlpfH~d|ZXQJ`ےdQZ|ے`JJtArdZp˂nvppZHAbHfpvےbHAvpftlJf~HJltH~f|ZdQbrXQJ`drtA˂pZfvnX˂rXQvpfHHAbےpvnbHAZpvXnˁ`ZQXdrQttbdQf`vdQbt璐bHAZdrtAJXQr˂f~rXQJ`fH~ے`JnXvZp˂H~ftArdfpvbdQZ|`vXntlJےHAZJltHAbےv`fJ`ے~f``JXQrXv`f˂rXQvpfHb㉀ۑpJltZ|dXnvlJtArp˂rltbpZHAbHfpvےbHAf`vXXQr˂`f~rXQJ``vXn|ZdQbnXv`drtAvpftArdp˂rbdQZ|`JXQHA~HfpbHAZpvXn˂pZ~HfJ`ے~f`JAHrbAdZ|rtAJlpfH~d|ZXQJ`pdQZ|ے`JnXvZp˂nvppZHAbHfpvےbHAvp`tlJf~HJltH~f|ZdQbXQJ`ےdrtAbے`vnX˂rXQvpfHHAbےpvnbHAZpvXnۑpJdrQttbdQf`vdQbt˂rXQAJltXQr˂`f~rXQJ`fH~ے`JnXvZp˂vXntArdfpvbdQZ|ZHAbtlJbHAZJltJXQrv`fJ`ے~f``JXQrXv`f˂rXQvpfHAHr󙐂JltZ|dXnvlJtArJ`ےbnvpZHAbHfpvےbHAf`vXXQr˂`f~rXQJ`vpfH|ZdQbnXv`drtAے`JXQtArdp˂rbdQZ|˂pZHA~HfpbHAZpvXn˂pZ~HfJ`ے~f``ZQXbbAdZ|rtAJlpfH~d|ZbHAZppfHے`JnXvZp˂nvppZHAbHfpvےbHA~f`tlJfHfJltr˂p|ZdQbXQJ`ےdrtAbے`vnvf˂rXQvpfHHAbےpvnbHAZvXnۑpJdrQttbdQf`vdQbt˂rXQf`vXXQr˂`f~rXQJ`fH~ے`JnXvZp˂vXntArdpvnbdQZ|ZHAbtlJbHAZJltJXQr~HfJ`ے~f``JXQrXv`fdrtAJvpfHAHr󙐂JltZ|dXnvlJtArJ`ےnvppZHAbHfpvےbHAf`vXXQr˂`f~rXQJ`vpfH|ZdQbrXQJ`drtAے`JXQtArdp˂rbdQZ|˂p`JpvnbHAZpvXn˂pZ~Hfltb~f``ZQXAHbAdZ|rtAJlpfH~d|ZbHAXQJfH~ے`JnXvZp˂nvppZHAbHfpvےbHA~vtlJےHAZJltr˂p|ZdQbXQJ`ےdrtAXQr˂Xv`f˂rXQvpfHHAے`pvndQZ|vXnr󙐂ˁ`drQttbdQfZHAdQbt`ےbf`vXXQr˂`f~rXQJ`fH~ے`JnXvZp˂pfH~tArdp˂rbdQZ|ZHAbtlJbHAZJltpZHAb~HfJ`ے~f`JXQrbXv`fdrtAJvpfHZQXb㉀JltZ|dbے`lJtArHAZp˂nvppZHAbHfpvےbHAf`vXXQr˂`f~rXQJ`f`v|ZdQbXQJ`ےdrtAے`JXQtArdp˂rbdQZ|ے`JpvnbHAZpvXntlJ~Hfltb~f`ۑpJAHbAdZ|rtAJlJXQrd|ZrXQJfH~ے`JnXvZp˂nvppZHAbHfpvےbHAXnvtlJbHAZJltr˂p|ZdQbXQJ`ےdrtAXQr˂Xv`f˂rXQvpfHtAd|pvndQZ|vXnr󙐂ˁ`drQttbdQ˂pZHAdQbt`ےbf`vXXQr˂`f~rXQJ`fH~ے`JnXvZdrpfH~tArdp˂rbdQZ|ZHAbtlJbHAZJltpZHAb~fpvJ`ے~f`ZdQbtXv`fdrtAJvpfHZQXb㉀JltZ|dbے`lJtArHAZp˂nvppZHAbHfpvےbHAf`vXXQr˂`f~tAdQZ|f`v|ZdQbXQJ`ےdrtAے`JXQtArdp˂rbdQZ|˂pnXv`bHAZvXnlJtA~Hfltb~f`ۑp`ZbAdZ|rtAJlJXQrd|ZbHAfH~ے`JnXvZp˂nvppZHAHfpvdrtAXH~tlJbHAZJltr˂p|ZdQbXQJ`ےdrtAZHAbf~HdrtAJvpfHrd|pvndQZ|vXnQXb㉀ۂdrQttbdQ˂pZHAdQbtZp˂f`vXXQr˂`f~rXQJ`fH~ے`JXQnXvJltfZHAbtArdp˂rbdQZ|ZHAbtlJbHAZJltے`JXQfpvltb~f`ZdQbtXv`fdrtAJvpfHpJAHrJltZ|dbے`lJtArrXQJ`nvppZHAbHfpvےbHAf`vXrbt`f~bdQZ|JQr|ZdQbXQJ`ےdrtAے`JXQtArdp˂rbdQZ|r˂pnXv`dQZ|vXnlJtA~Hfltb~f`ˁ`ZbAdZ|rtAJlJXQrd|ZےbHAfH~ے`JnXvZp˂nvplJtAdHfpvdrtA˂pZHtlJbHAZJltr˂p|ZdQbXQJ`ےdtAJZHAbf~HdrtAJvpfHrd|pvndQZ|vXnQXb㉀ۂdrQttbdQ˂pZHAdQbtZp˂f`vXXQr˂`f~rXQJ`fH~|ZdQnXvJltAbے`tArdp˂rbdQZ|ZHAbtlJbHAZltbے`JXQfvnXltb~f`ZdQbtXv`fdrtAJvpfHpJAHrJltZ|dbے`lJtArrXQJ`nvppZHAbHfpvےbHAf`vXbtl`f~drtAJJXQr|ZdQbXQJ`ےdrtAے`JXQtArdp˂rnvpHAbےv`fdQZ|vXnlJtA~Hfltb~f`ۑpbAdZ|rtAJlJXQrd|Zp˂rfH~ے`JnXvZdrnvpJtArdHfpvltb˂pZHtlJbHAZJltr˂p|ZdQbXQJ`ےfHf`JXQr~HfpdrtAJvpfHrd|pvndQZ|vXnJAHr󙐂drQttbdQ˂pZHAdQbtXQJ`ےf`vXXQr˂`f~tAJlfH~|ZdQnXvdQZ|Abے`tArdp˂rbdQZ|ZHAbtlJbHAZ`vXn˂pZvnXltb~f`ZdQbtXv`fdrtAJvpfHˁ`ZQXJltZ|dbے`lJtArbHAZnvppZHAHfpvtbdQZf`vXbtl`f~drtAJJXQr|ZdQbXQJ`ےdrtAے`JXQtArdp˂rvpfHAbےv`fdQZ|vXnlJtA~Hfltb~f`b㉀ۑpbAdZ|rtAJlJXQrd|Zp˂rfH~ے`JXQnXv|drnvpJtArdHfpvltbZHAbtlJbHAZJltr˂pf~HXQJ`ےH~f`JXQr~HfpdrtAJvpfHrd|pvndQZ|vXnJAHr󙐂drQttbdQ˂pZHAdQbtXQJ`ےf`vXrbt`f~tAJlfH~|ZdQnXvdQZ|lے`JXQtArdp˂rbdQZ|ZHAbfpvbHAZ`vXn˂p`vnvltb~f`ZdQbtXv`fdrtAJvpfHˁ`pfJltZ|dbے`lJtArbHAXQnvplJtAdHfpvtbdQZf`vXbtl`f~tbdQr˂p|ZdQbXQJ`ےdtAJے`JXQnXv`p˂rvpfJXQrf~HdQZ|vXnlJtA~Hfltb~frH~ㅐfbAdZ|rtAJlJXQrd|ZJ`ےfH~|ZdQnXv|drnvpJtArdHfpvZ|dZHAbtlJbHAZltbr˂pf~HXQJ`ےH~f˂pZHAfpvdrtAJvpfHrd|pvndQZ|˂pZ`vXndrQttbdQ˂pZHAdQbtbHAZpf`vXbtl`f~tAJlfH~|ZdQnXvrtAJlے`JXQtArdp˂rnvpZHAbfpvbHAZ`vXnbے`nXv`ltb~f`ZdQbtXv`fdrtAJHAbےvˍpfJltZ|dbے`lJtAr˂rXQnvpJtArdHfpvtbdQZf`vXbtl`f~tbdQr˂p|ZdQbXQJ`ےfHfے`JXQnXv`p˂rvpfJXQrf~HdQZ|vXnlJtAHfpltb`JXQrH~ㅐfbAdZ|rtAJlJXQrdfJ`ےfH~|ZdQnXv|drnvpJtArdHfpvZ|dZAb`tlJbHAZ`vXnr˂pf~HXQJ`ےH~f˂p`JfpvdrtAJvpfHrd|vnrdQZ|˂pZ`vXndrQttbdQ˂pZHA~HXvbHAZpf`vXbtl`f~tAJlfH~|ZdQnXvrtAdQZJXQrtArdp˂rvpfZHAbfpvbHAZ`vXnXQrbtnXv`fltb~f`ZdQbtXQJ`ےdrtAJHAbےvˍpfJltZ|dbے``f~˂bnvpJtArdHfpvtbdQZf`vXbtl`f~|drpZHAf~HXQJ`ےH~fے`JXQnXv`p˂rvpfl|Z~fpvdQZ|vXnlJtAHAZpltb`JXQHAH~ㅐfbAdZ|tAJlJXQrHfpvHAZdfH~|ZdQnXv|drnvpJtArdHfpvtAJlbے`fpvbHAZ`vXnr˂pf~HXQJ`ےH~fdQbt璀nXvdrtAJvpfHrd|˂rXQdQZ|bے``vXndrQttbn˂pZHAnXvrtAJf`vXbtl`f~tAJlfH~|ZdQnXvtbdQZJXQrnXv`p˂rvpfZHAbfpvbHAZ`vXnlJtAr`f~ltb~fZZdQbtJ`ےdrtAJJXQrvˍpfJltvpfHbے``f~bdQZ|nvpJtArdHfpvtbdQZf`vXbtl`fH|drpZHAf~HXQJ`ےH~fے`JXQnXv`p˂rvpfd|ZHfpvdQZ|HAbےlJtAbHAZpltb˂pZHAH~ㅐfbAdZ|66666666666666666666666666666666667777777777777777777777777777777777 \ No newline at end of file diff --git a/vendor/endroid/qr-code/assets/data/qrv4_0.dat b/vendor/endroid/qr-code/assets/data/qrv4_0.dat deleted file mode 100755 index 041616cbe1b9f76c0a696333f595a476a04f4946..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2454 zcmchZzmBRv7{ygIqJn~eih}YC`v!J~&dyjFVyKKEhFF=6npjY50wfj``$RkfC55F0 zg{60ZkIn9^S8i_Z-Z=?>24?1W&No4ok@8SO`LU$IBlSgGy>73YwD{t?I>K}D+;g?r z=VDsV)ucg>-7BNV?uRn&9`_yJC*Hq%PI_{DcXE95IlkLDzM0H-&Y5aFSH1RJWc8~m z<*y=2UsWuCaIPE+zx4(zNbqtS3E%RRKKI~_q_m{zOVr0H6%UT-ug zie=kvj^lYz?Dq!)Ny^^mxOSUm8K%*w*K4RXo2?eZuxzK(?aJ~HH5qNGzR1IiRQe)G zluE^7p-?DSD%C1U)@T?g!~=Uh5e*%U6h)B+gMMEWdp|v1f`xckhyqX=zytt`J;h*Y zN<5#YL{Vul-9AUJlT&&m^x2u)F5V1>P#1^5wLSm1w`?!et{Zc#I<9qGdhz8=TTUx)ycHQot*^2Tjv=WxA0MXzx`2N)6H1%SsTaM9+jn&TL22UsSC>+8mQ zu-%_Rz$MlxsGs((BZN8`b8{o}i|3H}#dCmZvgy~c-)J+NhFUV66CZELbmmuGrH)Y- zNCB}<6H=SwWnmbQk!;`H?=l#}4`^Qu-hn0KtV0|N{bZvb9eB%0}JhOe1 z%seCOPprw-SJ{AH}|QjUB}D$&4GI|ZDM~Q$wTzDME^F>j{x+N H?U$Ede*g^y diff --git a/vendor/endroid/qr-code/assets/data/qrv4_1.dat b/vendor/endroid/qr-code/assets/data/qrv4_1.dat deleted file mode 100755 index 59889fb4eb048a666274ccf6be8c15e769872715..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2453 zcmeH{J*%o<9KcUm`QzagF<^;Ey-!5y{x5hU?5aO@pWP`?uNk z`(8MPA}@X>2o47Qey;}r-EODzQBJ4R?E*lr*Y6JoAo#a`YAahqqce7yc7pzWSG&w5lXFgWEFh4O4A3}zBu2z7e zekF$Kq=&m#{n$3$T;n-_6|E%jqEupNNVxlIRoHTL(R7;i16Pu{OgLJVD%icB1-g5! zd7XaP^k6!Pp?(1h<9K1Lh-b*)!@A8+P5xPqCSQ+Q57w0HRmSh(o&~*m#(BKEp7s&8 zZtKDS^i7>_NAf8BIG4Jumu~9(>|9=5OG^|Wj+au`3=&^u0h-bB$g|_hAM(&N;*=ljwVw>4&)U#Eq(yEkcF(q2X z9Iuq)?c{j*9B(Vf%jS3+z*_^}3h*+8BCY?OA964ZT^|ky1Db^=_n0g0QT`eAyqeFu?=e^0zx*@olQ^-=$T^&^$LWr-$0N_YuV&|D ze{m0|_|x*oCviRfT85YXHaMIkXFogNSDu-Kx1$$4oXEefm*0$QAwFJhgUfyyZg#iH zZ1iv_{^F+icr_kbrZ`DR6MIfOEVi_RAAcTB7k8S+d%^8E4-=cJVO++Z?ykqfQ-mEJ z17|k6O*Xs4wfrakOI(jn(PE3f5Rbl=-`Dllj~0=WDp`hzCz6OOdyaVY1-h`^^%+vU zdVnl!i*Yf~J|3Y^N|ajuYi`gVZSSTNaWrFC_Qecwz?(!I(BMCdLJ0B;qGC z8P(Gu^1jL&#w7x80KD#Ie+y=-#|YK}^@+A;rt5*@^^kV~gC?V)!NS0i7jw?f3H@!4 z*Klbwrg*YGBmdxf_H8#mCTG+~{*EpwU8|q5A}`6o@<|HMMNJnC@<-lR^F@EwDn1|f qm)-Syx@P?G!gKECY?6eKLyaD#uWExK`L!kgEs-B-__W3=-M@yi!Z*bBRm$*Jyx3q z-KSTF_vr@;PLFfP_X+!V=Ag>t1*t&(JohC(4O?Da%cIvlF1D);-6B#OPfdKm`tFpz>5(J-+96UR*P#HmZ3 zPhC<}>XN2Ymx7SI9AyG=@DK+@R;!gtxr|~gmP!OshInX*M}T+~h*SP){crvMr+Peh ze4YOI{I_}h>w0`0@O8_34%>&DYNOCNdeLg@_&DkMXTd#zvy>RQvIb3cJ(R19-0Y(IP0pM{7T(r9B_9({MWW2bK zj2HKj^7^Lr8mza6a2fMPtI0Stv=KM8-1vA!&>643NQqGwa-lB}VM2`Ye)zz7KlwO% z2-X0wEMAD!&h8=Z4?u{USOPd;M=0t9cnrb2U<5^ zC@9@Oa&aBR#cgJGIf;>r;5ol@&5Y0!{-`b=F0K=yD?wb%Xji*G{BUG(D zr3w`xviy{Y(gQuB8cy@~^lzwMn1-;t;TuUciYHu;q#DH&u18XR#4|WA6rWN)7a=_R zlrrgnlBrN(iGX79uYw$r?xTFe^+@+Y-*A5CKIj|H1MaU`1fkdKc6q*qe$|Zz!&E91 zRW6fcKA+2Fvp8NT6pN)2K~$@?TD?xwEZc5(IvnTUSFhJ<)oP_uDiw=`LO!3(=5qOb zp-?VURHag_HX6+)&v((m^IWIR(r^O-H)PW3R4SRoV)1w)fniA;9zena8216K7Kj{Fubvo@f%eMaY=Wt+@2BQQ7#vvdH0T~GBGI9fYEzq>r0zr5!;JDWUNqQ|X%moJO z4r-&JHUetPV2MOL9*f12sZ=_h$>2~U2{kfMBMP4qz@lhwsxvtQ0vwm#S$hmuGs6K`s*VSWaCPQbQ1H$)U-42Hq(9PFwPLxQ=j zNaAt0-W?zYWkCQmM^j5h5nSsIvVI99LLhG{8!&hM+cT6Pm@CN9=Nsf0*aniw+@?$jA{0EKHa}hw8Muw#mvF@ zZFyRa^mE@Beu^W-*?e~|H+y~ChwoSPbNGI#tu#BDYd^=vkWY(O%h_FXc;^}KVA~yz S@1nnUy{`LD0ZcRW%gZl1R?dY0 diff --git a/vendor/endroid/qr-code/assets/data/qrv5_1.dat b/vendor/endroid/qr-code/assets/data/qrv5_1.dat deleted file mode 100755 index 0a7ccf76d4026d15bd07365b8783950fb17529c9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3269 zcmeH}JCCAJ7=}mD$aq)0qTKx>bcBwMP!U3?j3I1MyDAm=I0<$F1S1-1AVB=J3P>={tx8RoMKv-i3Vo_oU6VwjAJVKgj; z0aOhAUNLk##n5gQL$gr~_19tmYx$^F@&T0dQF_V8VnI7wp#6Wr_=5Bdi_2G4F<#EXfz&A zCetYlr+0UbASjAqI8G2GNl}ZmF6$M!%I(}Zh9WtS0fMz!wOXkFK)GBhy`)ttmCFE7 zsZ^`A8VLUDF`sSg|NVUZ+WnON6nzbgp6@KlTr8~3#FBSMO{Wuf>BYY8Jo4fjWbi?> z+S&(0-2)0^pEhm~Dv$h0+d848dZG!iJa-*I0z*fVyF2(F{o0HLnLA6m6Z=aqVRibb z$-Bh*=&z$_#RrffzA3@RR@D8$*xFYWDsFJvFgEZPpS35A=KxkT55Bu&Xh=}K(Aqj# z8%cTmqxOB(?raFz2Ipz-y*M5<`d$F-Hkt%f}Q2h~uTm z+4=`hWdWMePCM5MZ@qHZiw0oxt5dKw!Z%fc0%jB0?ydLMR_w^ynbX8mQmyWb7 aB)1;C6oO(nL8gBL6iK8X>pvERfBgodfzF2j diff --git a/vendor/endroid/qr-code/assets/data/qrv5_2.dat b/vendor/endroid/qr-code/assets/data/qrv5_2.dat deleted file mode 100755 index 3b3cbd9f65b75db3f97553f3beda0b27840d6027..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3272 zcmchaJ&!qU6o)ay+jt#=@%}PjL?=3(s6=F{jfjY9vq7RzY=T6g*iYmmC>6>r6iUzB z?(>^G_q{uR#q;76lUe-Eb*}qZyJpiAs!=jpTf)IoOC5xf544bwCdbR zc3<;~R-HS^t~)Qh(v|G`6xpvsNQPyvbpK-;WWNp}8J4}${f}*cU+}^!U1=LY?J><} zv(c#6GZ{@wr&Fm|EFMoJlF4$pQmIyJwOlTn)%8p!5{X7tH5Mxrip6@p(a6&ip}QOHFp`ST z=kPfxPQ7IRW+@a5Lsg^ENF*HA^=vkm%jYo%@20A}o369jYSl`aFjSA%>+>m! zpKx@-F$uSnr@_KBkU<0SuK7Ig8V>WWhCw)a!U_2UfnYEc3KNz=dTV&yOK)6T=@sw4 zl;iY)59H!JU!Dhvc{Tq(&4EAa4`_T+!^X2O%({^NOgq&52C`@i;v{evgB&lR4B zM>pRz$749^UieHUyj@#8~c{?oTr_YJ?zPfHk(?=IM&qK72 zNLr5p-cR~9c9c)?B_)k!k4{(Z2iEwkoqhKeXZLYUN+jH{c%}uty$-~eB0lT z$Z?q$Yoghn+4>EfgQP{o{^4BR_63}7=LjF*TG#TT)O%_gQsq|*}-5tE2Y42CD6iNWxEA|Jun!T1avjNV>7 zr+M#1yy5K`ZmxTBfBz1RW}`_}U8Sp5b*rM#RVvdZ7wO6u=#p}D(WuP^japY9;Sxw1 zwZx#xMH)3O71iD_OU?s&X_elNQG1UIJhF)YOfTy;;^OKdf^t?b>>0PE zoS1!F>CD4QC7FsR=!yw+@zIAB2}1=#ZUs2Ee15lBRxBHq2kaR(@dV8#Ca`Rf2duy* z82XeC?TWW!+%!U^K-DFkiUG z%O7(`pKxCOm%dl`Fz4Pppl>)w$nV{`{#XAH2YrAsxbqA7y*uxi`>T8K9DR7^7x26e zhTU_2Zd_Kw!|!C;TCPvC@eilB*Y;w&KkCcPaW&qF{d0fVy$+_Ev-!1~8|VJ0w-;yH z_fg;O+iOlA?~beG#-8-LTt_ob<`%BIbiQ_HbGo^X;9|H|Lp*FiJndVY_4d}N-LeMT z!^tFgm(H|B&@Bhl!Lt_*;?HTeTw5a>@ebCY-4gp_#6ww*5F!JwT_PUp#shoeD%A|G z)9c!k-^uWBS1##H*8*$NZ zb9=byM88od`t71FY|Ih9*$3B{4_5J z7(|>u%;nvAKpf<;G*7#6htp3#+KgNGM$^G>YuLZ+FfSO(>+K6jz7UWX@<5;7oe#tT k9xdbndF?PS@G0UxN~Ky;>&_e9`M2P_T;bD5hP?d$0Ji$he*gdg diff --git a/vendor/endroid/qr-code/assets/data/qrv6_0.dat b/vendor/endroid/qr-code/assets/data/qrv6_0.dat deleted file mode 100755 index f184ac928e8aab7b667e0b3c5bb9fc092ae05c44..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4184 zcmc(iyN@w#7{)QgX)w$$<)nB#Mwk+HzyKi z6AaxPMP}m<7{^FeE*Ytc1tV2H_mxURGE$|VI2Gr?o>Ori>^T+Z!QM#a5BwR|C)JrL zt-g$TU8MyMwqB(L4z^yU1rD~dw0@uKlSu!G@m%GE+!#-S=Y&1uiSV4TXFLkeiR~pH z8;|$qh;BAc*UfR*X{)MNqUtTB zQn_6I?)&ojTrQikP!k?{GvUXMo<0|8l9lwk0DSk)7< zLvh&cHk;KdkS!jvB}umBzxzI%T$1#Y`~CXKGns5Qm&@lVj))$I(@8NzwT!htCS->s zSS)6<$z&p1{A5dpYyPd!_YpqdyZ-1tvFFI;IdktiKi7Zl2R`rod2sJKeXfLV z?|nNQO?NMil{{?y=q)yr(d^J~)P-7Wyj>n^&x`$XFzc*8`h&``wjK7~g>H3vc$=?A z)9rBC8Vj{X{m>uHHj~~$t_>=k^>Ok#-Zwk-Q+qJmFP|638kgBD=j&=kZr+nSwLA5F z^L2bwrRJ+mxAj9FHdebAO;S6+_E);#*>vZt!&`LM)1BHHk0ygR2T!wF znXff9BhP@@rpZ*NDkZaTPWD}RCY`lr<1^!_a-Ms-;DMpwfiQS<`#x>cLh8>Z3-x_> zZIy^pJ5fG^%18g48`a<y7qq z2HnGIG~B39vDe9d*6E+>kIo%^hA#Xk-7a+DKl$L$Uzuz!Unr{I8r1);)h|7C)gk?( GzWxOStfra( diff --git a/vendor/endroid/qr-code/assets/data/qrv6_1.dat b/vendor/endroid/qr-code/assets/data/qrv6_1.dat deleted file mode 100755 index 930399dd1a78868462b9cf0bc00dd6d04d82eeee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4182 zcmeH~J&&SL6oyqa;x`H^Dms3l{0%!oXEQNYh8Qbj3?WvNiJDkgn4pP;#rz_Ff+dCJ z6c&{31uiVZ&NX)?Q|uYC!#qK&R>c!n z!Be?}C$@;ELLN^Hji+1|PgDj^=@g!l34|WgA#@+p(cw{aptvyO78__LtZy*6s9|!! zVRBK%lM4!yi!_Q0L_8kD6B+$nk?`jtLZ2%b@X5&wGmkhT4-%0_ z1d#{f&%<{u2;FX{!}E3Ut5>U4t1MeA77F=1MP)MSbSf2##p8)YGMUZhax~2_rBbAQ(QLL_?Y6VNQYn{9C6=Y>TrQiXs6-+jkAWkd&SWSmn=KTIMV2jQaBv|57bfk6BoPV)gMmOG9En7uBpFM=jq-4#s<~0U-T+&5yMiFJTdiiZ(Ww95 z&no58)Np^Y>Z76$Jtadj7?QCX;YO-*;M88HdWQC z)l9%7#F2wIG7!fk8I49F;V{5D7zzLt9+oiKymfe`{6hcllj|avD};|+VS=(ZuHsUNH0b^CqCbw*URlq(N4N7_UPfD zPe`NH<>15(X}Z52)UEw_m&d1fMeP~VxPKkKtVX-bV*W-<#0|X|9QE09b9>c}%gtp$ zNQ1tzUGER0m3ev_ialM{P8VglJ+J3`+KwuBN$rhK#`RasMu>y?4bM zCt%uVXh(;3+_+^@pWP1H$+R(tHZ*8&0PQ((L$(b#_U>zF%!ym3@3Ic8X~*+q1T0xb zcV45vMpC^~M(Sq0vX7o{f)i>JYc3dvbyZK&~uB++6IK8Z|+p%)*gE{?D w{ZX9xp6}-6d%l~O^L$l)?~R9sn-{z$?W56bwfPQs`vCs}!AmBLlDX&SUtss9oB#j- diff --git a/vendor/endroid/qr-code/assets/data/qrv6_2.dat b/vendor/endroid/qr-code/assets/data/qrv6_2.dat deleted file mode 100755 index 2162d807e707a5a6c5e86ea2fb6fddab0276659e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4184 zcmd6qJ&!R_6vr{d+hE3w_woLkJfA`*I-RIQL?s&$QEfIz6pBrdC=~mNd<3OJxrIXM zxns_m-8p!6c^Xb}_ujp^|MNTlb8jdWONJ=qjgiY5Ba=2pGG&Z-;%X={5=PZh(WqL; z8&z}J@2aY#Q8k&Os#Fi>_vwDAo;8!~W8}S{MIACmf2;eYsQpFsE;x~!=qZutKO-C> z5eQxlSt23&uZG|w;qhJ#-c7>kx*85Ugwk~?jaY9;GW6+lYi7VoD(jY`i67D zB~agRPPlmL8_tmreZvv?&^I!cO2uNKkk5z1p-?aw2soWCm)p(rkw`Qeizy2JUy}TO zQ4|EP*XI)iQA{L~$$Y+0P-3xYG!hB(Znw+jbULgyo89hkI0M08C=?Dy*p_0kR4UPZ zxm-4z$)wY=tex!fXeYd7hgjwTZExT5%cUa!Z)^M1c1$#NiYK8)oI>Bav+Tq7g!a>|b$A!JPVZwo z98GsG^_4VizV{ZJ$!K=y*K1t0Io>Xh)$U@y9L(D5&;Fo%tZs+B53W<09^U4w(R4dp zHpg7GUOV(hv(2Qpkg9`ndwra|j`xjr?bI5~_RH?#Sfw%>)Z29CtHWDmihA?)u2m^Z z4b;=rPc2n%(_#5B^(_-cy+)-xU#km7y#c{eWhzsa1?pi!sE6FB*RJgwujA&sG_0?7 zFQcgn*`G}oOmEj>ia>n=zCro3f98fV>M~H=1L`3+>LItLcbuRe)*1D%&R9{@LvARe zE~6VbU#sP$a%k(R1;Wfyt-!_v)XF~O@ACh2CFCA0w~JntD_8o5^?b7FNUO@*ZaVJ_ zs{3(wd0dlrokP3oT$A=%ZQHJHBovl%-P=cx>LM5F1J@Y2wja$QH?6-6TA$^1Xb+Vte z`==UQcfCK63w>l)?@V@naMT9?`jgi2-h1(=F4h&fus?yTgIw63;G;wPq%+xEzQDd! Qv0v}(OB<{@lt1kA7t3CzrT_o{ diff --git a/vendor/endroid/qr-code/assets/data/qrv6_3.dat b/vendor/endroid/qr-code/assets/data/qrv6_3.dat deleted file mode 100755 index fecc622c77d42165969c965fba53ff25e2aa4269..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4184 zcmcJSJ8LRY5XaS3eCz7^e#WwGnZm-- zd)A%5xjQP{+<142$($T_e)FF>C#GB~>#SJNTRx|^Y({VCC%q+8H!Tro7LDDsNSI7d zRW9kNiUmDYKKCb;ilnDXKXEF~gP2o+2mX6pUsPwNw0QJ-U8w~Q=C9NO5B%S9eGzFt zF`g@(pc~^!aGel?hx=gYrUevcKL1UVz0BO6o91#dvpa5@%}Qpr=u9$^8H}2t4o=Ux z5p#OZjhNGOZp54(-0+|WH$3CNQXjm`U#SmX=C9NTFY{OGgPZ(CeQ=W}^$kX@J7UHi z;JPDb+%nf4G2?b|-4TNyy2FDXx-(xcmrBKAp%96L!=X?xXtz5YPN&NijmBc}cp`z{ zD~jLm^U1Qu-BitZkNmNSCl{?7(6EvHBmVM zo7HNun9UNE<)*TdRCfNm`;b|dwah-BmN}EjW^=iGp5%yVa@g%8LsZpR{bNAo$dbuq zG#U&BD$7S@WvJ|@@9s;Gz%FV;kQ$)&NYzB^ZXlp_*X`E2n@mDTD#v9o8ciliGE-SW zDy#6X`yM?P4|?B4U#9=n`lILPr|;u^K%efdKYGr7`aX6KT<(c`>yMttpS}a5UY$G*-&6_1;@-CZpM*->6Hq)_A)-)}9ypZkT#wqHIkjy0ZUvz)K16{UGE z-3dIK?tFE4t4_f)U+>!L2f?G!o!TnTrYrab-Bv(>r&+Dc*Xn|vXTZu<(^RK|l9fNF z@=xtfecyZ?AHjoyz=IEhN88?dSB8z%?qxJpMe5Hc3&FE%3nEhOMEVRWpZ&9L)P_qM zYR-Y$aY+ZB2?+rn=ms9>M)(u(ppW1|AJH-JKsRc`B@G6I+Hpw-9vgsf3HQ?+$AF@$>Sy7WJrO|9ojA3CFn~J!kjw zf*bjXdkpUFM{6ie8!v|V+bKsW&UzC&{H}iB$oFbc-GU3GfJ>wl)`O6>+s_GEx_)XT4(~o$QFVA1)?Zg?^zQX$>&fst5O|s;?WBfV4 z$(LvHX0DarX4J2Y!! zSb)ijr&g<0E0uCNnM@=uFXQp!ADxJ<`O2tB6jn1{MMOT z!{rKv!r{}?NFGVGCS6bNcw7{RhFDWjr&5M~$`iGLs#PKpQRUzu7!;+^174s9yZ~n05jV40=7B!ZAL?O* zK#3wL@%ecFyZ(J87eF2ki{kVP8H6V$tt>K#CqxyG2Wf!P$R51l`;wDr6q$nuqDnSP zpO7JFN<9!qXnJ^f;Bsr8|Lxyrb796T&AFssKn+h!T1m-ZAmH`Nq{#F#&B%o$l5@=5 zT6GdN@_Ct#Tu!DVs(4ExIX}C+VclHLnip#y`ar*A*C~}`zG5-v$%gcqeA!F2)`vmpW+l~6BGhaV1 zZ^v5mrnT*lW>1se;$i&KzH7a82D6vt&&6wVzS{n3Otr2)y#3uE`}sg?>-n`KnRZ+vq!*ZTmMZt$8~Z1nBv50gNxp!R)PrUh~yx3LNNX((3mX z?fP1MAghn~5|bcNE1G?YqWv&_ohZ`mYvs%SR&7PiL7jZ5v5l|N+URZJ3mwpSFcZb8 zGL=TZ<+$0JO%{f;;^|w5ed#Z~pugk`t>FQEpw8m9-Zo5Dq?P4{1oW4_Tlvy=D_{Cf zf7uVN!(sNN??@MVira%3GX}SjI5W07lT2Pr7WvY5@@3AMH2Tn}OUewBRc{rpPOCju z%HL0ik6j~Q#DJW?pB?lf4*E;J(19A84jVaVqRE$eGh?P^MHJ^uVZz`N$Cs09Pu2&W z%~`@MGuzOgxu(x5amJ+CCmZ^2`}BR$YijjIf4ge@+Dzx&=f~TjHodvucK+1w+OLZT z`oaCgHtFkq9MolpL-rY&_RT$W&m73^rMKzFdOjO1pBFviSdE5HY6E+iyv*+UZ><6M z0~-#dF8s0YIKanLFpX~=`a&GkiMuQ2V0_!wMV+XN9rWG z-1eyl{o=lB^{Zh^s7$Kt@{M}yrn7-Elc%xT(7QVQA`bfHlOta!mdX|NFM(>Mto}=2 KUiC%(QOCcen?Gm( diff --git a/vendor/endroid/qr-code/assets/data/qrv7_1.dat b/vendor/endroid/qr-code/assets/data/qrv7_1.dat deleted file mode 100755 index f4cae7afdc335df48aff9aa5fc9f4d9e03634260..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4737 zcmd5;yJ|996poG(HEJ~D{eHi{gq_&giIs?0g&-nUA*f(s5m3RxB2VNaSXx-7u&~V8 z->li0(ckf(a02Jd3Y&46z4!VqYbBL(MOT!Hx1*5Pj$Bqd(s(jTs9vRHDyc6Las3gC z>W@fRe}sbiBjCRsKCgCoM32aR)S>zyvd1GnxqlL_N4?>6{3PrTm+?2Z-FBJst(M!g zoW^~nI8Ab%>SI!R^tesG(-Lw0PK!nLJ1r8{@3c_xmeaIdM&C$YBTJFrBzLK;hj;y6 z)9W+(J^fz0^x5A&+pIqc%l)-5oBj;Jcs&ev*W-Gf`fIyZ7jl1AW;R`~4B6|oAzP`G z%cWAWn8~EmsZ=rT#t{~Yqi>J*z0ybJw+n4vsf&Z%H>L>kk4gtwX}&{ zO}DySbgRX3e{Zp<_v7whFciYw$z&>pyKxpU6bkt~FeDQ3I4}ePe!sd7oMtfGvBzNe zKb#B3!4((>S5BwHAqYkzY6Rwo2fH1diDEEFY$uc83|z}{C1kk*#J1CEwZa>MU@#bs zf?zVyDGmot@p!!6P$(RR2B{SLvz*ChNrg%!pU>s8*-VD(=lA=3Ua!YPRoU(L_hz%{ z7tV!7xCt7;DbNTvas21FJsxO{ilH?s=Ds1fCKBXUQ3QAJDma5z!5MavOVVlXPuU(Z z*u(Ghs_@+zjDpFm><3#uAF&mS5nH(&=bzY0r^)T%FtMf7L2Mb>0~O5w`MJ~;u~;y8 z-q+{_)X4i=?T_!iVm&I$6#-{Bf!Ma$$gOvGW;1mZO$oP~ri9{Kni9n#O`AgDT)#lz zvhRQE+~4uB(iiG^qMl29u4(m;Rv-Rb+~+(h{!@Ic^Z`6T{c_2-)vBeN*s4|coyF!j z7|*xU{&Kf!PlS52ahV^^53A?pss1`Sw7QM2&anD9=x$C^p5OKs>*HH(Myt@nyU^=@ zh@hwm8Dv*lhbsu-uBw> z;;8>2^lG!?TXVgC8P9g3%RDfkc3?p5zyM5_d1P7jbJPwjz$9S-CWi4cuf_q4yU}>I ze`!isIX>i(Jr0@;U{d29&yf}CmwBKBMj7@>0>2v083k

          Hssa0y9p>3MQ}upDdRs z%QYbMLcPCiRW~fjb&=JYlUfY1q~fr8p5HR12pQL}xrTD;Jn0E6&~iH^WTaw$N!i8b zJb#*UJX}{TfAPGQzb^CV^(ne2d{d>Q#&~|3QU#K!*efHs(`Zdp^}WnSAHA8Dzts6# z{^GvldT_p_p1I;Lb^eyWxbH}X-H7w8;MMjWu%nkG2AK2Vy)QH!BZIoB|AC%DkI`D2 z!F})^`e!w%H{>y~n@^Y0D|Od)N_a6371_V^a@OMM Gbp8Q9a6f7Q diff --git a/vendor/endroid/qr-code/assets/data/qrv7_2.dat b/vendor/endroid/qr-code/assets/data/qrv7_2.dat deleted file mode 100755 index 57d216c436124e5e050d785ae92ada42239c6df4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4740 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 oqOTTx(1)A68( zaeBBoK)urSl?W6jn;+m7LaXLQd=ET23n-lheA2%4tPZE3I%yq(!9Y;D61Nm6l%-d5N5G z{eR%KWoB56Pa-Yz`oD17^%#6**vmM{efGC_j65gv*)BJe(7$~;_sQezR30Z@c^n_f z|@_2R*+~VqG9`x%B}^1cQ8sa-?Tdj;b1oP>$(zCZnUcxxS9a;Rp7Os%Epf+|yG&zx`6T zD7%xWv;XKBR8e{ct!3(o1n;gWPUpda!(q37_j<9uVm`>*kQ?Ky@_DR-57rseZduT!R<@wVH)ay`un`FzCu;5v9bJS{>Yn~f(QPuq(N zp0>&4XL)|rdh{vkjXKkOqS1u@j68GU-vF;!BMtNQRJ$N5B=5L*D;l1=cSx>v8qPBS%&lb(v zAEj5Bty-H-f3z63C$&L)qEw58M){-O9j&MD!{38-wNY-)UbJTWb*Z&xz1p8eb3E&m zOM~gWSWv3%$zs?aZ90{*qa@plG%S1VS4Xp`?e5vvmOa{&_FL7*^X0TQaFi-#(z2dD zPu@%2LSqgEtVc0+-@Ftx2MOx+wN)!I)=SkPcYV}R zR#X)FzzO`wyV#33!O`Sl)CPN!7VHO3a2fm!PT&VWffHN?9qjVj09^$=$a`yYy|t`e zWjY)jc5@)+GVPQT{7L$W74^hhr!gnblSZQr^d4r#&a3LEH}FHhf}d4qUjsMHi%GlWC=@#zQf=yN zD$rS451yy*^X~q{<%;j=H2gN+djl|MQ7828zX8~Rs5|;~J|?o0HuG#Mv*OE28#kBG zS$``us_&EEJUu{}dxQLdIbw3=PB!0ERzH9zbYik_AA_R9VOL73y)yKA>6MleB eaCY;t{o^L5|E{e6$E*IQu5s6W`Sa(mU;hAq!eV6r diff --git a/vendor/endroid/qr-code/assets/data/qrv8_1.dat b/vendor/endroid/qr-code/assets/data/qrv8_1.dat deleted file mode 100755 index abeb98fc9c8233309534a090f91e5e5baf9d9d2f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5841 zcmdT|Icq9y6pk6ieI56G-?zVDCw6vXB_dWqL`1j{f(jNE0TrgO$S?9ISXx-7u&~Vc z9?#63@l70^kMFy1=fEVMF)!yi&tj5lrTS2nOOI8tAYb{Md}ZLuN{V`!&7>|@I`vp3 z6Ur(cQ&!Q4vI>WkRWP8e{66{edhVCo^}Xm8zQf5XD~DZK*{sUSVpdirqfn2zpjvs% z1?7^Q3*;OiNMGUrXi+b-na9+R?^5P~WI~w(;xT0oh(?q-ARJQWfM7u00r>Qu3qap+ ziB9uzti&@aWvabfcveId9l}7z@G0$?Pdb(Bja44JGpuaUY z^nadQqyBf3Bcf`xQYn{9r7ZD$I-N>Iqmf8B913~89*>(y(q^+-Ef%v`uQwQsMw7{I zcQ{zq>Gb*h{y-oYjK$*dL?W5YHAozxsUO%4)UQfGgZe zB!XMXWbW~!QazDNrK0)f*Bjy2n?bg!)j}bk&*idNk#E1>=kt15*5R<*Z8oFPV9@Jz zy60y+S)G$KqG(z zvdWMyIhY(Y2a^jrMmHss=%!#0w_&xy8ISP8%Qeo+)lcsew>~Ir_~Dl|Lx~r=fn4$k>lrg4rsJG3Ev*C&mXvm zltf-8o68qS!eDw9i}ZPzp3>aHgi)z5VK7b2W=vC;3)3_d!Zb~#Firpb`TviPrTK83 zySI3fpW}9Z2!8vo_D}OF^~)_E!zazHIqvcP)$KKp?bq44@v=T{#>?}(xBVQAYjnT! z&Q4m~VNhS3-d5bMKV9r6!w;rU_fMngayK8Y@y@n8v*DU;*K16p)r4og=2v&TJZ^g1 z^Za%8vWEMy-D~3gtJ~+^7X9JJe$sj0^;g_!G2kxWLTkD>3|8Ez*_ds%)8%Q@YBG&_ zjcpItyLo4}->kNWF5SOiBbWdiU;=Cxtbke4=erw3RbK#BzzA3YBVYyWbRV!v@g2IW z?S9jl(S7VPjpK%3Zj5W!dpNeS`#GZfEWZdu-{MYh^#wx~ME9|~pD+#BxVR78O1*~L z>dXXQdDiDIYibW7MT2(mmbp%&zw!)dgr> z;2X36*wGa)>%#z%Uc^qm<>@9myvBP^_fkK|>7MojxCHpWr+cX%z}HfIa(;jm0IWRQ zzxP1vUf2)xVJC?GyYA^eWCUpaItMy4Oo{0dyaCTJ?L_{idw^$<1N{Xj$+-zPSWJd| z9JI*8H;yF3J>82szyyHo18nlT7yWQg_o5##0U#5BdwJcrnt~t191s!`6O-PL@IHJO zd=8*OguKK&nDU*Hz{XO>AuZ`pEWpmz+=f`Dl^wk`9KWn}AdHpK*S(sPEfeA18RDNC&hsYl) yT&i=JbUkb^wfg9U_w5SMe4kguLC;I$(BXCYWv@(rmnQ#^BY&duU7h#WuYUl2^kQcK diff --git a/vendor/endroid/qr-code/assets/data/qrv8_2.dat b/vendor/endroid/qr-code/assets/data/qrv8_2.dat deleted file mode 100755 index 57f789b6936abcbf8750674f270372c1851cabbf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5845 zcmc&&Jx?-S5EYPs0wVGupMrw&De@QS2pt`vB7{&GLI|NU21vG`FaeS+DEvkI1WF3Z zr=Xzpy|c4Nx%d*F_t8A>4&lh&-8(a9&dh>^hk|7Jd)abXwoIBWNk=M~5--i}Ze>fv zWxKhSP4-rJkiF&aKl#%g{hL48Qz9;Vy19-;W6?wY;0O4g-@CtC?Lc*%K z7cSY(owA)dWV733J3W!jYGE@Uvzd%+h9kBg%g0NH&nsu+am(3Uxa4fkopLs34mlgU zP0r@@5S^Lp9?AOPxXd82&pFjci+g}V>qJz zkte}bM4klU(C#EaK3Xo^GMd!>meTfXgSr3? zjK=--TrQiDoXb7^G_{_Fym&px6zDBXJlE`|IM1L-I~+LVHrgbZ;mW4kK^Q!e)!buCH%y zgrn>0SS%X7vRIA`M$@sGuBAwbBZ{3kqS%c_lj-=_{ApbaR%~LobHtoQEXGkJ5|qWs z$?0h#aeI4rmrUw(1uYhsqj46S~)Cv)effL=lV8Ifvuy4EzSD ztwaVmACGe+#1Y*EJ`Sy;zEor4p7wS+&(ArVR7y~%r9|gQOW>KSO;zCY;!9nMGu3zY$ zIvR5teh$rL^flH|U+5q6RUd~@p5mz#_%fS$Leb17F2B1DztH{1XP%(&gShtRKIR41 zQD5|j#=hBN)yHid{DCi?rVa-^6KFzycO8DAdwkya^VVoq*0rZ0u%v9BC+eaFtPeX= zcdb-x&bOnd;p4QWJ}a%x>r%Y>17+1N72UPYbTI<{>h_A;^5c}>*E8Cy{^ITfx1;7< zyGBP^tE#IuaMhU1m$UkCTkaKqb(?d|NmX@=SHJ$UXbr}jZna`66KXNfdSgO*U$qAc z?KM!A+Mb*4U`(;B#Wg@$>%5v;w6+*^rlxYWqFpDlTi2Qu&B;XFOw?|rJe!)-(HpO4kJIOpViJ7z!5K~fou>ml za&~T!5qsk7-Wp0<{lp{jNgVC+xyvJQ2Ab!zaV5!JgJWjcSt2S3oP^zU0K7rs9 z2tI+}75?#=xFZkn!|IsmDw(LJGAVa4VztzTa=CucnJ$wKcmiTyAan<$eMu2O?jE5G zt&6rJ=mLoTnNLQGVSU?Fo#p17JD8_I{RN14%cf$fyO~eaL4Wbm zX}KG}ip|<~`h+?`cR-#NRTYT(qfeke^b1dgO}9Se9r^uD^r60^hO0K_5bwL`GCS1@ z<6DEfU)-nZd)4NB2MXhIhIpwuHFu?|mY!G2q_rHa$Ib3rr3bx1XTW{EF^i-#_C$K7 zzw0l3wXO6&>5RL7EBcOigudQU^dxa~NN1?~ht4rlMkJ-B6|80;ujKa juW5%nXJ2Q~o0Sjk%XMD-<`n-x7C(XYv({ir9O?8w!kl7h diff --git a/vendor/endroid/qr-code/assets/data/qrv8_3.dat b/vendor/endroid/qr-code/assets/data/qrv8_3.dat deleted file mode 100755 index 545a500d63f3881dbfb4e3dc127401b16d2dd84f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5845 zcmc&&Jx?lI6ct7S3W&&udZ7$BK~!URaBpzs&*6DTPt zEhs2`XV0Fc9DU|qufF?clUX{$oU``YYj4ovO;L)%wH)~zM>fNeq9dJ3i2k@u){HjjiWZ36F<3k$l>hvpK@C^|90Dnp+@B)T{as*B} z{5}o?{9cb7CvG{8U2+^b<#5>LI6RQUX63N#b0}sG(;mlf^Yzi;_sML%9+~ZlTV{Lg zlGz?PWws8x%=Yl$t9+p=5c)FyEw(o6@9GPlK)|v|eb{36BBH^&bvcIn=X7g9? z=kvK-Hk--No+l@6w~cjS(dgM(EOvEynM@`U7k2yM;lY8; zM(+&8tm}7mw7H*o5|^jA`v~I1+(wtb*MhkDs4kTnHlP z=ka(fc4oEinas+*h2Bd{Nn^^5G^X6lW<}ZGw|x1&o~+o!;oyu}g?OAk9E?RJNQRRGI)oUS>YM@Oh%klI!# zfa{3_GbN4bDd_p9_u)VCAl07scDas^S&ejBlt!0?u94SKM|K-knXij4ooVWU3!|Xy zF01uV@56_?_1~=%`V2Z6vZREgbO!J@XXAELZHeJ`?_*!|H>(y1U?2Dc^*|kQ9r~uy znQTr>0O)JA@&w>%;`8w|`Tl+Ei~i@S<@I78_y=`DeQ_Q0ji*Vmht1<3kJjK&#_JuF;`}=)f8qMnZ_I?N~tDA?3wrBzC!_L%mTP`){+tK~-Zraiw)K=$d zDPH}7x@wn8p4-lJF#O(#&6<&9J3*3&HbA1g1 z>DijLY6J27w$dv-cbjvaL{0OESHJ$aXbr}jZmp_R2=$z1y)hx3SM7mHYYo(;zUHPo z7%P=pm5|Oajo!FfrSp15xN6rl%4IFq0MfIaC#6NtEJmFvo+oug7FC_ZMB7ZXZnZL; z&FjPEY%*UpNMp(k$g7l9T8p%%wMb{+dUiLZ9Qpj*I8hN6EmUbi3w+MH+?9p zil|o~^#P(zK-32aoq?ziaAPctdZ9i*R>vb0VJ583OG9mIAL>N)B8_+JwOc3B96AHB zE|A?=(_VQQbwj;?U~A6wKtXZ@NTx9 z_n;^Gia68H@C|f*YN-#J=yd2?E^&ubk5X>{q4PvzW3C$PNTAXEVlMCm;b~NV1j3IM zrBv>2<`ZquUp#hNp2l;jdApt7Lub?veFA@>UwEo)y7eJDiq9{iPYp-uxN2k0@w%HX zXJ4x_zBG6`i05?wuG+lrKxJIc;8#-j)>Ex%<%g9zX)Q{kBMnxH5S9Ny?O5kuG+HCQ%!s>7{0=M zHOATG%?Dhup79Ct(Fg3X$^0`Pu+z#aPbT;P{ZOqD)7cU}V4U8=5A+#DJ;t9>gE9O? zdAC%pWqdr<-~*uSgWecE0Lnh7RZ%yf?1O;{J*FLY?t34=4>msZFSiBpH>LOovG^0% MxN7sK#gWPU16o;PWdHyG diff --git a/vendor/endroid/qr-code/assets/data/qrv9_0.dat b/vendor/endroid/qr-code/assets/data/qrv9_0.dat deleted file mode 100755 index e88c008d12688916058aed4d3b2140c71b056e2a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7044 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 AOaK4? diff --git a/vendor/endroid/qr-code/assets/data/qrv9_3.dat b/vendor/endroid/qr-code/assets/data/qrv9_3.dat deleted file mode 100755 index 539445e5ad2a94e8dc9a70c7382042a584344e32..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7047 zcmcgxJ5MTI7Zyi?Tm?ov-tfXjKtMtG19XIrj!+pwsEi@RP#FUx78EA|5()}`5kG;F zg3^M5(s!>}^T^C7z6Z|xeX~z8gv_k{+}7HhbF!JNZr!DMrEYoMBzeW@O2iZ5kFu^~ zyrL2Px(f3O1@$X%sb3f8y!5+gGb{I3H%`Q3%Jnz8@uV3WB|M zZ|(lzjr$kd#ms*k@2U$$EQ{Az_$wD5*dH`f8m2}xNnAU*&Unchu)<-`d0OKr*3jYcB;t;Hgy<>ArM@iEm*rEYJjrrW(IF0ONXn@XkA zcX!9fM@JNHdgkUPnWSf2E~k@f27{qcFc=72US3?t^8UWhcW|I?b7iq?nYN`JGd&Xy zUx|xQ27_kv&Wlc*aTp0b_R3E%YT2eMCbChND2W5ji0xs?r zw|m{ZgYT;RKws(&VoJS4ndX#6qreGV+%*ozy17T4RXIYxX!#Ka>M_bXcS$TpnINQ` zUZ<1On@n>5oSvFYoJ{WOa2RvNV&RTuc78ukfkXm)I0Zf*ry!Al{&*kzfj3W~t1Ie3 z+L3UOSKQ@ZFQ?n%;dH0d?DFBE+02fB59SWD+}h%4czLHev6sU)6-@HUp_5TDdZnK zH`Nt-A#d;n`=L*07E?c9KB!|mD$XMDyIGR{EJy3>YCH$v3-&|*;QZvd;rFX!J@ltJ z+EiCeL!1-v1-Zp}i}MxV8ztO=WqM--*nZUFEm5= zSAf-uc_7v5ZQmPepKpjQZ4^Fe`$0({c=7xZFR?; zdS5PAM~lvLdse1*sD|9U|4lVo-Fc%_lnVTIwfNq6$}I{Hebgxpr;n}INmDA6it|RR zJAEt->0RKc_s1QoQ7z8O&+SF0HyqdQf6L8EZ!{U)x21fp(jD{*xoYvF^3J$s1UQr=fE2{2s_oNjtF_RNR{U=y`c(s4Bij@Md2y;-uUD# zP!My{jyQlfaD3qnLaP4Y4gK*Rvo8%5(S`ot4II#)QTIkh{aO9l0Q!TsQGf6T4&Z0E z>Td$>pj{|7z#BL|^;dZt^`{I`4d_2rc>@P{zz6UL9{9&8quf~Upw5qawmx)thGxyco&S17Y0s*2Op zqf~KL=1O?Kr*0o)%jA0dzAV4pH>KCoovJB zYd;JYqbKOdQ%Y{4zu*V@Q_puYK+d7tdxIcxFYz1XTM&Ma{0!5 zn17kR_G**Ld#+ku^q=7`Pw)8)>Qd$_#d4eaSL-k8fj9C3oS*)VIC(~Yxu3e;i2toJ}^_v¯FV0#ǯv|M0"(#<&qMveUOd *vOMBh;쉙C%~+2M%&`5'tkxПFCkQpn -`DPFxL03 C[W ]$ "{? U5PΡ@&:5P/fxeDj(eT2vsۦMe -a/JڧQpį)Vdmw>Б[EJLjN_&ӯ94.om#0q̾x;>)CTQtXK! yS`:' l`_OӁfA2O|.Bmc">)oH@,:'Hvn}dWVDI~!4սmkoj_i51F6􍇃_LtjUE+n ^ʈP?1 Iʨ!d)jZNwJ -g1Qsy0 —^ -P@` ˩S7qs.TCRc{?)' k%`G|q?ǁ*6[`wԜLRV&ϕ' Crh"\/$,6}-ͻ<ڱgFoyASۮ`"I CabS1v|{Rݴɘ#,G2+yp-/u& BYW@ȲbdtNi:7lGE(# ]-SLZ& -_s!Ynۂ68d$cDf;U"a\D|\g3bڅٽRqm̕O.CΫ6=}usdQAXitN,Bm*O? {Ȯ4=*r$۳8BIP3 I߈%h"g e.Mp9R] jK2bGl+hK\3r4фryƷfB8-$V6rHz GA@<] B|(a~bA7?5g hMBR*{gQ- u -$Դ[@Z+ݛb7K)N4iӴ'c=`@y9mRժ1(3<"5KbSե G}Ҕ(g]JOn8Y{7dW?Mc\:҉\n!*:Y,A0]6DْxUDf_4OB9c3!9$Vu=lpH]4v.9[(vDU8)|!WrאK9ofĩsgzQ H2 C<["3ԁ4c|B<ߡ7\цy@KlzG=XܛrY$ =Ȣ>7K˥byUc =XZ/k/AT~F -2AEs{i.4h{z1TiJo% 9H{p=$Sf;Œ xTI>JDsʱ+EWpI\rK.?',:p>a[c*?殅.8d=?K jXLĎVLltZw6iŖfqhOQ9&6:a-͵UsvڣsW̄{}5,&QEI pZHl88SE! @ux`P 3TΗXJ SVZz5FetHu%5/wJqj^u,V%}ͧ+=ɔ#Լ:ĿnYRY <0(,]h(uNjwz )fU3krڤSIb;mE˔ \ No newline at end of file diff --git a/vendor/endroid/qr-code/assets/data/rsc13.dat b/vendor/endroid/qr-code/assets/data/rsc13.dat deleted file mode 100755 index 138135033..000000000 --- a/vendor/endroid/qr-code/assets/data/rsc13.dat +++ /dev/null @@ -1,14 +0,0 @@ -I4 .+SxI4 .+Sx""h\V833\r}9DD4Q*pHUOU9pff.? w0w#Ѥu>;Ǩ9[f=I!Ib&.XXL [ViOk^k>pzz[D݅>ڸ4>xLKA]M𶆯ŲmZv -cq>!HRU=bS5 9tNV}_GA1ν My  "G88_XKv )m)tG3^]^gFgyOO*?>~A|"|vMErh7mmBçzBsL\EGgC$5=Ϙ J|B/¶1Ҟּ֣|A3[2 ǗR - &QTEr)1|mshxD`]a|55w/M$$zt SSyY/ϕAB3BMTK홚qqCye4`L`%NRO^C쟝I= -, 057|B2ԬSHl zGc1jr#3FX[jj^-{{pyU#HyH<ݕYY,ol1^i7Yƿu:O>ÄfϖǷ ו#/)"38ʦ`PVk- hJo:)~A8Bu#'#( -<&22{zX@`4j]tNgkngg>=Uvhv3цd-EE$ke@dVTT)@6vIƫbQ0+mwocFfUx >/u#źlW%8EVxaބq[S2aX_G-L.AshhΞ$)n:'yy+ðJJwrT<&a[x[CY^Jo,H,&+p==Sش7zWTVWࢦaP}1RHlJIԓT(ʼ7h]ڷә8$rKWLqǵFeRӴʪֆB!Fޙa[DjܲvBGX4QǸ!Ol {gNi }X;IU:nrrs7-@dmcc~4.PjPik{q}AAdEP ^66GNֽ'Z'5JB i]׷[`Df%]P+ԾlZh0]EXtC$Fe؋>D%z:0 (5 -/ijw":Μu56-č8FoBc̾ n{nÌJH`и]]޹N[LL괟]6q{;4;fU HC2+**R{ b;~K ]:'vwS0(+ ˀ⻘Yy?Ʈ!\TcܴWN M ճ8N겤@`de6BXdLTһJ3#,Ħ\\6EM\M7V}~~`-Mo#o¾K~"5 Niڙ@ zG8 o:l:&5|&5++/& #s)ZŽ̒Xzc")$6sK%mv8FxͧƥC*+I7XWT~;q^k&Ք!o> ΜiIrQ qLIϭU^K )XHPuu ޙ%ww3k8𽬠/*!iAE<~1&z<.L4; -Jy;aNW+canp`魭m(neht6.>N~(TΧ#.X߯uKc!۠ǎu}}~^P0JR ı^S -"AyyO5sG^Ϥm>F1ճD 3V$ !>қ8bN_tYexo{{َ VqR -tLW¯Qw__}. !=66Ȝ)㮍v 4sW g`cBkHh8z 4H]Blֆ44`{()@1]]!900Q^}WYYJuCZѵO*h,&f_F0>ȖorxG\јhvY2e3r"|ݥ/cv96Շ헗FSg}-V,, -gEEMF*GG_5mcZ..Pym A`%/ICw87a?Y.G Dr7\MII+cDSj ~l4Y:-"y#oU&|0Ӂ ieM;fby{KK@fH -H q""~F*R@B|OO+pĬ-Fs6&&2]ދ՜>C 9LwSI?;س5$=>+$$%{&RN!MM/[n&Ci)\4;jҤcq;GBz}llvvܙ& Aqx(҆ZIb*ٮ}vǵs,Rq||51俣`; b-(dJ]~~6>QfD#W^ G򬬨#~@5[ᇳr%.O(=4Oو 7Ul 33Ae?{cGZZ"EaAZ.XX '\ -^11={[$8'fKrś ݗT󃎎8jSk>$ c)ƴg\\x{Ƶe-55+vX+ƫ77ظHdʈ^^6IO5{piRYÎ=\|%Ms??ክyVVT`? °;U@g_tT0m_S1܌D}x[1+ 2QBOTT$ߕC@E==I5K'#PPO;" wm)99xˬ"d8*d$7ZB7 =sޟbu d| e]JytjXnʢFP^Œ:;;pn~C-1JRReWd\:5U,@@7eQ#(U%f))zq2nl` v}cԼb; ,./s E3Q_9XÊDDT Tu ---kҾ.oVkbDtv$wK-EZl:LLdC+X5/&0%%D < %a''y|sJ« NN1":;Yri,攙K"ӗۦ~C,vE*tȆVi_{Aj##H6qj^1L`JJÓxkz|VHHU(J- \!!ެK7LK3B^=yĈyHչZ \ No newline at end of file diff --git a/vendor/endroid/qr-code/assets/data/rsc16.dat b/vendor/endroid/qr-code/assets/data/rsc16.dat deleted file mode 100755 index e44c7a933..000000000 --- a/vendor/endroid/qr-code/assets/data/rsc16.dat +++ /dev/null @@ -1,17 +0,0 @@ -; hDA)b2$;; hDA)b2$;vg<[RdHvMn"{2VlM4 cx Ȑ9sIf(XVך.mD0dQؚ# Z8N߁3hg@q2U{7=e<^Hs|UryP*u[֨X.IQ)\O`+ȢE)QSthdj-w_F -(pf!_dKb˪x?d4dnzݦp@A% 5^x.!c2vߘQ{s9T}E{@l}#<'@ M\? 6 uw]6R.W VYGRi#j0h;ci$y1ԭZ$D9/k+P#4u%O[>B׾|gkrۮpȖ7I~ &󛬊ZW݌ j3>h?I3,z`<EQY J&jE~9Q! 2zX~߉C"r^7cV>NJ5@uv0)ʇlPkjLJi( *C;mMlV^&]HX_<;&ka3jrmWkPw%t3sP4߶)퓁"8K.3.byX$= yFXc)UIMݓy$cb7ܖ9$ FtC9W8VE-|F5 -5Cdk4\ن"qlBn 6TPg N\V_CVSQ8 Dχ/Vm;|L bd m Yy:K425l` 21UOтDkTi,D䷪Y3,+}Zޟ --'mΗO~ޓ4"߮1\mf7 |S+6[mFc9?[`ZͼX"[ `- z[- H=EdY'i*M)>z7'% ܴ;C90N LeqhU=H`L -qvfQn{zsllGӔa/_Ŕ(\rB*ΔfHbݛz rIOBМ K8HIXw=0 -_h?UrR쌞=,L?s\ip6~{Ba9Y'ĉio]|`yM"ORKd~qb -`oGؠ$I,ԡ(Jjq:AD|̷(e]oPYwTvښe^PQ^:G)%i>:Բ!H މL G9wxvLw `k1>^[Rw/ef ])s" 4?KA5Jf 栛8S'%›hqRx1yhSd]Si#)3!U1%-ׂTۖb:w"߻*e{UcS"z'.+ZPav>&s12S+>p#CI6b!7=yY#x=t&‹ƭ(\Kc?ѬUlS=XG0KpnWA}-z:upMRUTpY @:kW2u͏Zꏘ@4kCeTE{ܝ}tɜaÎ X}jY$^Fo 0G/ )%5N">f/(]i -gj\T/b? !GbY2?10YS5B.*Al[LҢpݍCn:N`ӭḰ߈|u ts[F^fuN-uL{ oBN:ac.87İk{=l -8\|;{Dp\gq[a1s{g*f\CAÃ*k] ̤Hz3i%o[EHV;Q(:]R;#AH _/v%+ -h*97n1,r&H@-5ultga"5x޾¹NÌ̄IxCBP/3){CkMj \ No newline at end of file diff --git a/vendor/endroid/qr-code/assets/data/rsc17.dat b/vendor/endroid/qr-code/assets/data/rsc17.dat deleted file mode 100755 index f44d14e22..000000000 --- a/vendor/endroid/qr-code/assets/data/rsc17.dat +++ /dev/null @@ -1,18 +0,0 @@ -wBSxwS)U5}cOwBSxwS)U5}cO,Rjƞ:R{_QX3Qä"I!WN:n/ /t,3WXӤuXbaߊn4*矰fU D?Bh覣b|ǀ\ qqtU85Wo4W.mH^?^UX -fa&c)}b)؅T[,UU wq hN$> #TY#}Y+9w~T -Tk -҃lB#Q[y[G=є(UA.%pj凌[V3:[',% Ů h\ɐ);{{u=Jt~4̫ͪLAslĹn{i9Ei!Ez5>P{euق\JG9zǔQ)(öVкeheI}(KʧދxMM+bD:k'@麕zG.MqӫɿGn!Wx pJmeJQ-'.=/O=(O<0aI7/I$,WӍ!G*ޜR 'sF{Mcc }ͨV&s;r;o%",LK -LyK;eOGC@!:DlUN3ito9#Myky`6***UKebߛbŀCc N#E@MX(M$(o6f8t :{:{ D܎fde)%ԞԋvyMRJXgیYq7l^vthd%dO#A'}|u}ؕoO.c#.!ɉ+~rqBcj|?KI0  Jjm(<,<-,1imKK; 8xݶ[s؂s~AHALhj{wO]0606ՑC"2>n qEnqD~b\ -N"=-"6W!i׵׫}>ʄR'k=ۯ^03_0$mtOzGq'G2xDP6ǣ޷$*$?wibrwשw -A\=&Ӣ|rד5͆dچjK&rSVuRPu0q嬽iSh&*hF&ɲcP/-?WߑPzp$am $?mSXS)>܀ip - K9V5Ĉ|U|]dVٳιQtN6oqo/ڢ C-Ui7Uia\S&}":O"1:QE2Kǻcώ_B ̙we8ʔ8*ZqMN \kk[{vz^:zPMxY`$q B ʹQ鱒n^qHXg{x(Xm54B4>#K2T%pwgpT g -P)j((6mNG_搆_ ;: eeML0b6v ?6*SKv0v80J$D=aXcc ]h;򯖥vGʗg]lj\_L²(a aBt92a2p! Y -YfASrF.H.Ynfl .E94՟lTrءr롼OT&Tk%ʜ\^|SBL*rď+ėKFuSI~%:* *i6!]IV]OVJc㤚P1HPlpG*Ii'ECދYt4tS1>a@Y.vE@u$M[['{RJy7,R,1RE[7x!< CcD) F&Ϋ&nؼQ}Q'W:ݒʟJ Ȟu ۭFoN^^xT+h 7ޞ<8񐙩TQ {[ _\ F\BeݏVo~p~ЃLR Zc  ~] ΦZAZ [~+h]W`W.7P "j 8Xo3CxXxZX6b7 gLr K]\bduv 0˝3-7` ^MNbC2@mC5@p9qw+A4p4#nYD -H杭<"(  |X.'m`eB{]B)y/l`lA? -Dd|WƯz܅%}5ĸZq s`wL2Dz2ZDgwlBҝEE^pʛ? wK_|Q"jOj;ನu)%,miNzCFF]vȃO `f`Hg8豞U$J^Jg736Nd׈4l[6r5.d&aYssHCTH~1;Wa`OO<,}z88*b(a5LY ;j!ZksYF ԖLfNfSNhbV>Y>2`+EgIImQRLTЌLy (=8,`vPn@8U^w׋&9髠.1^Z2~0/dk'Q1gS-Mg --?4~5k~,ݗH@H~ -* x_?8?hω&)-F|R|]Ie/DX/!&`9̪n[)LM0;(7 ]/DtDwbt-SC#d3E'3a'z41v^+kkƃA01M%c/Q%EPv9v2x -5p5pYT⚜sB#BV#};dϩk-yֶ0&oO/8ueÑi!t!H♃r erc=F}87uy"$mzmԌ>W,xGH9ܼ9#CAk=j~yjF<$!!+P2ڻV̎V̩kjhh|F -d_Jy(;yJ;o_Q< ΓRԗsݝj=;/PUPlڛ$g)'ș'zݞ0f=@M=v{ot7ɓniVn2.Z T@4Eg`d",:Gl~lAT2??hg+`p`Hz°i33ma-/Ӡ%{Э8vqu]u"3->1(-C1W쎉3+!Z|bPZbf&VBúԗyPĠALs2sr CJӑ4 iGp❅d=dOBI37+D7fx-*|ϲI%̹͡V_5 K}\5?\e5# +fG+swfZ^c] \ No newline at end of file diff --git a/vendor/endroid/qr-code/assets/data/rsc18.dat b/vendor/endroid/qr-code/assets/data/rsc18.dat deleted file mode 100755 index 1da90b223..000000000 --- a/vendor/endroid/qr-code/assets/data/rsc18.dat +++ /dev/null @@ -1,19 +0,0 @@ -qIRK CْqIRK Cْs7CG@9,ēTd y`vn;{W9U1Crt0Q)p#zRX ;YŨɧK"Jjo.d5+ѯvӮrb"pfI!#r;)=a_v`MRE. F])<~"ש\}O@7vM4KS3Ŗ_'8Z%"psD>\[ݵjP{9 e=V C"AI:Dչ20+&KG̡aBFvERz¾z{θ8?Zg~Yˤ׊\UR";^ ]ʔN!5+*xD9OcН iHQof(ڐ$ }ny3h'f1{ٝ]И3߱%NkNp JGD0g8QceM{GK5|wC ?Dfd ܇4 % 2r={z[LYt@gJDzcWDkՒt"C(^T%od`VL'G6C4fdHMT7݅_9NJa&2.m9S| 'ڸW6m7qp~c2A̛.71`y\n)U ,8iShfXtHjI}Dv˼ E5Ba), jv)mU|* oVTӈr_{m!p|O?&>߽'Ґ P=H0FcG?REa~f)1QN3bkg xn9'%-fAJ[ VP}jݺ-. Ea:u7`p-m OբHA%+=I1*[)M> F:xbі j.w_mCq3S>mؘ/ -#xsl}~4K@h 3+-J]@d:z$\^T3v$I/fQw0ΔyYfM/ 0Cc߳:_E,97 Dsq`;'P4&k|NǵP+%OJi< dÇ`l2 1Nlh1UkO>+MH_ޓ S*M?+(8[b<7Ulqnrœ U/—\6&klLd\ErW7NõmB-uqe㈕F<*/U}Xw6+\IEnb5.|5 -'0mN'yR {mXSp -IU#ŝ" -4 -<衐Me?7F/v`!.# 쟋e,@ij%RXg(z#w)rFKiRowT޹[ vn2`8׻ ! kBWB3N*h( -GWCS~L|{lnuWY,LgN$=6YOz0LU,H}Q(o9I`=Ǝ~,+6? wbTyo}/:Rb flcMG+ƿV*uΏ@>K4*a[ x]@orCNJigZ[% -?宰/<$0 ԧiZ\^5=WhN|QS±t8%$n5 -JIr=YS9ZYJV!O1pcLbYzK[b)TR%Fy`.!z|"tǻgA0 kujVrKi,as1\چfwPʭAy:ϰ-|i6k-^FIG(!G ]$ 2h፿W&4cK|BAQ-+%(-fVZ8dAjFBȔ{tH{A| -P%O(gWQ[(fHe^̸" /&^q-y`2#5;{4O,~k̚^@:`φ_ƣ{t#a1L?Zk[7,X"A 3۱2srne&SԢ A: %YQtIvNhLW'ߦHUgKMw/VeJ'_M ˔h$wu3mHxț؃ d=hg\[t-ν?@E-b 8N(@HG{אb83o_֞9|V;Ä?Io.Ѱx:T~V8=P)Mp%f5uq2vpjնxn)ثIbQv*2{u0;S.a/* -s;^33qi@]lLU<6 -CFËN -LwGȸQ$nwOAc#<1W ӄsZw< 7uxk +(E5]uvF8>|#Hn )þ?E43,}:o$xw5T^;]Ԥ>gi|lV>ĝjm\fUpV0J.7ja/N`o*@݄T32w$ -*&NI$ڰQɵEՃ1*lﲹs奁F! -e'4DSmh -^67@}&W}x_=矵9#R~ ` -;70~ngO^B \yF#;0DCpYF # X J,>z_G҄'.PaFR6!hԶgDuZҤ޻I$oyr1q|~M6UU0(>d'A206quDdlpEMkaB?ֻ&- tb>(fT QP\UtNl_/뎫>!{uOHByvz25E#!d(eꮲ{XߘCAWǞouʋߠ -rc][ΜHozl#_0]=`5+9իByQ%X9OPrYwX͖8G&1KzWXU Vl~/S@4'> s6먭^c+TC|hDXpL;#EVuT@ }o xuy#'&|L3δ;85Jq 1;DYpv'~A}I $E^xHBxmX<4`E]Sҏ -$ 4Ƚ.b:AgБjQzwМ:S$^TB}pJHj S@v_,iP?Z}z!ϲ] _ryo,K@$!s;=WB2OرeP9G_}KbƘ:1 .:'6D¡~q虲9ߖ>?Rq[]"26qJ=a \iBL4Zj[^"b-)?0Dk΂`hwm“O"8#DԬs6YX/ZQ n}cb4a Q"-nuXq7GWt }[ZAOr&-5/1ZlGZ(юPReCk"a?t;B[(kiԹtzx KHd1csLhƧRk/*!lTS"Z8 ;d!&p!=Ȃ *2Px.5)yBi]5i6kڒ,ZOJttX}ƦHQqe\F] spEЁ$fw -<ɵfUTp_R{ܑSYx1}"bSQ)A<>5R.L65I($߂l7XXVX 4):!!>-Df∪*7n'eQNi?7~(eW߀&5]pHXV :dؐzPմ1V'am |XY+$rm%푑TQ]> `>!\{Nh|ccB -ߙHx~Yziӯ; -hhˏw?7W#;I9S6lvO>rsC%#?/$*U&N L*թ㖔2Γ~~TM%C/bSE,DI*Ǐ5i RAY15աx]"|j_a4V}Bjy.;\l%jPH  T>3`N)F=uu#߽]Yn2+fMz[Gϝ%Ɏ@}Q>hRIt?BB| Wgm)_e;;CyZE*;ёK II.ḪmCZr]=00 TnNIi -[٢g oW-OqZw~n&m5P<L__jǞГEk &&"a@tŏݭ="cMgL:P~,ԘZ͠]ubìxs7Uy2siNat˃qymITTvxvX $--6Vg=ڤ{`nss9r;Z_xl - - 0{á1Dv3 B]_V 74k3T[q ^Ṽ%y6?ӕ#Q 8 7!1b0)(`xxP] S/ :f !ՅBX tFz%-; sbjvM)N(9d.!nnW؊ !*h2#jLeeF F”򼐨I㫕ϛ=>[mlD )?RlZN(׼}±'2=cVVd{A!Jxdهu//#LG+B"3:(r-K2{RݖbV8F?e4g ԌMW%9(qC0Jos3/b]]N`[5 ٭$$8;cb/n͹%ڒ@uji : .9)S\KKrՎowM啿াE!22{agyz&Z'@@u c~1C499.Lxn8K rcWkH6hy -'GsIOb$HA\aCoKx˞PggOK M -apPC8_$,+v2pllH=8[Y\U9ֶ퓍,XSUឞ|7U]q'No ZA $[ӶdiVyG|L9c/kވhvqq^e43heHL`pYe|+u!5V}*Hlt}0'#VGH'&KJg??*ЪIɔLoFF?=Yى|mi44k 6;9L{MMv|B9ۜAƄ*t0I.'W4>! 2/g>("") 0–G@PP`#aJFUW~Qy^HTۈO)6-']^lwwZu=L@TO15d;lEٞre 4J^ğXQYDv[z3Sg{T9j-ҡ<6+QVaX*||bj_CD'<;Bgv ,`TlOhǬ ETmϽ&`(?jjL-\Uv-J9@fsט]Nt-aa3|f=REzGKXy ^q隡Fg[2+>&d}}VE4Q$&08k̚'JU - ujꗰRcbn3}|.Ф~k[DŽp^FSh]i1}$e.ڃRvvKwk8DZ  -( Tv?\jDknY$4KmIˆ G5wz``@GԹpS_M峨Sۥ҉Y%kk0ep{Zwi%<2ʹ -^9yÉ)rK13ܷLj'xA[:wE,/ܶб\M^q!;@0*w LL6*ѸT0Fa 55&i";D=}EGGz˦+ ,ia>>[DMƩΘt -/X6-6xDOG9̈]sEIQQnwuaK ((02da ǜw/2 བྷDT) xg݃ځ&٨;E:tOўB$6:M+HZZlhU優GJ&]ώ## G:zU O!4BU|u%{GꏁrMv o`Hkp"*ךRl5o*?P%!ri\Bc%JBc8︄? ;CBTՉ..46J] KpmWW~md?ۏ*Fӱʌ -Z:,B|ų)@5I&AYe=M88K5i0j* ?1s+TAA~7=+z2|!I/<33"s.}4 c_JJ&R~!>Pieuɂ$˻8hMskg \ No newline at end of file diff --git a/vendor/endroid/qr-code/assets/data/rsc22.dat b/vendor/endroid/qr-code/assets/data/rsc22.dat deleted file mode 100755 index 5cf0985e9..000000000 --- a/vendor/endroid/qr-code/assets/data/rsc22.dat +++ /dev/null @@ -1,23 +0,0 @@ -YE({CVYE({CV{}q&gP8:笩4?Ș5x$'s7.y6L ptEOh~ EJT_sLliR.Yrˍ-jHN4n\A>7%yTS|ɿaИ_ tKò xwŒ7@hnqRK 5M a-fULny՛ٺmrlh2iE -2rHHiۈBg˶P.3I Ay+Dw}F>]2|Y9-1@S<+5NovVM1IyɖyA*W .8ϦMgQ8$n0˙;}f#*hԧ\~!:j¿Z4Go$m+0DB,[Er_ůidU,4u#Y]eLcJHowbř2dxqS7ջݓMU=Wt +[CI6֟ !#=Yq:j4,o]Tn^,L6Y(R [#&ݑX#2?[9s$"{5 .Dt_ߜ5~4 -۽^;='_.VDޢ1h=T>,%hz2J+k$`ٝ/_nw.6Բb(Ĩa2#M(hmx!/`4" ~ҥy2xZVvӷV,:.L*G˴|S $?γhī0?OtNLr^"~q\f>k)]V-|(Aʁ_w{4&ȫ-qdUv1o ;sV}$lvu:FTеS>G2BtzUDWY(&X:$)0chHI-sV`cdĊ@ 3 -'{iǕ_Xſ>8= (Gi1{Ō]bCҩ.խX hF(a*}3>0fS27ƔOC/d1 wr4q5=5n6ka;fpF7_r0+(|;nz@6',eV A Kl#k748iMJ?:{]H#4M,BFzt%hFw^._=9OEX޺ckK%&xUNZ] -5x`:!e˿zj,8 Bػ pg6Ʈd@ui(s脉 ƚ`HC%Ro[rU!ۘЋ@}̵BUb'עs }_ґ#13I%SۋFV"[KwS %DD֗Vc Q&ﴱɆqv1|ܼXyz'e~a!+c Nl m&P@,>Fy!;ML5C0[bF+W6?$: Fd/~rH3;H)nx͔ wDjI\ 20U%ٿL(F9% >@/sdE?HJ2Wj])uY ?ht/)5Di=^g)*.:vQzceGN \>3y ~Ŕ_:/1,Yk-bz|X>؜.E0",r1fnJ٩adV8HG`O-I:} -ŀRQZ'6^([\Il㷵y }P~HatJ쥕ME}d FePBst)n!$ϖ&O -jD#hX[zЬʀ+ms dL펔m<C }WbTVpX{^A4<;IKZ\+g^&/Mυ~SC^i4yqm={_%G0`\) YO{TBsU" :RNq{~-r2N3 `jΛ!/Ԋ0zN:gf ^W|˪bwNv*,?Rp="!mv9Hg -]{mݠ&%$ڹ1S twm|dZ3G4j.?[(ψӲMP"L#'Bur͆;P+ftStH#R`/uZW-<{0T =538# 9fN>ғ7xa%W$ Oc|pq azP3T cp9XmI¶Cƿ2bEo IvwVҳUF`kg|1O\Gg+IoɌ6P; -=g"Tj,4T!f $s6|`]omqבLŭnu*9Oyidn-5=3^.Ȧߐ4+ <\D=M4b}:h'&9/j?keSUdopʍzQjolsSv)[I+xKodBq?A?n$:`VP%ovfc:7Kةu)ÀlNXʬq937حN0]@p)-F:nhpҚ~"tAG/UMm{͗? JF$hXC7PrJ|O^*Ȋ~@<ľ ]TCPldadԫR;~(K b_*Nc@( 62ӥ^oRjz \[c`*zvlZIeRT6\t"ʎ;o@a䀨ɩ>}۱6mFZM|I)Gf<,5t^O%ʙ]#rGKXnϺEbG X;_ZĽMыw_G^UrE:|%\}`2;DXbGY68'P}Ix>M<>O.5p Ce' Y[\HA3N %Zit*ݤ\p(z/1N ijKq;3ANla{Psw?ͤb!(kU -K距E.][ǡW$QXUi!T7k )ʠ2Sn) +/S֍0R]dgOR BHǃ1LGxɻRV^ϱ` -,Ξ*QЈ.$o'luE[.S8W=s'\5_VCYW/QŤq9WUHEeK(<BkYkr@TbE#-xeqWm9,7]w1DP' nG_.~UW0=;6[-BP֪ \ No newline at end of file diff --git a/vendor/endroid/qr-code/assets/data/rsc24.dat b/vendor/endroid/qr-code/assets/data/rsc24.dat deleted file mode 100755 index e480c8369..000000000 --- a/vendor/endroid/qr-code/assets/data/rsc24.dat +++ /dev/null @@ -1,25 +0,0 @@ -zvFfsIH=+ِuzvFfsIH=+ِuOyǭ1גzV=ꎚ*u2ۛG}O*vŞGb92=Czɏ7C@~Vpuɇ~ )щTI7Sd+TG#{_x92/DŁP`5V! -;{rdzE>;߆LKVqR;2n _d{n#Y} -!)ey 2*cI8q ^YR ɒnKVG! >ŎFx$IE0-< EA3rod^O{ojY8͟Fn#3Bv.c|vˣER]HJʡ =d"gTƒOYyp"ü l:3'PwaD[,4$"UcM9QBM |~XW_h.?NH,o":`Zxӂ8gIM7VE g$aȼ 3>c]۝{ET]V3~H3, 0ep=#5(c{F/ tkf(\7Ս ["-nq:"6!|$gsˤ+ &Ge_y"+xubwS-t#ƏTZ-1EUB$patճkdç=:)%ŸOUHd~X}f&Dΰ%9U0sp7$@ب'Ut; P ":׌KyL(`v d:T- -eok;g):}C!]5|G*z >ckCT|rWA1+dҮ4;'DΨ9۲,Dey@BazY-l>5 tfN "X.hHDwnd=6 E@j/nU<,r1E0@3r#ozw4xI9J1wpU]CУ\~2]? v05C3DyEX9 Dtw8YJ^B?TG!Pn@ D )(9#A(ɝcy Ztw_(%gDlBHeVPql/oC72^ UiVC=@ L5DVWd"ۻ[3Ƿ24T ;|ƗL`4͚uP_#v@ŰֆŨm䮂bV -A,c/M -7>fIW -?u`YhvNM?r!yݯX+?eS>h)1aYeܵ -b9O&M郋.ZO4|jaF+ؘ@0[/K_K]D q\+I`A b$Q 0Z~]'TIނ$+J50awF!(hrMbs90wsN<OfZclo}Aa;[? -d{ %~ß;WX:weWs@}` -jɡf}C)ka4#EgS\=rux^+hk2K4P Yl0uiM9`%?j՘OoiVj8Y}:Gu#dk8o].wSv9)E 4lӣLh1lJi#`^ 4mlgz9a*FbsnFc- bȽܬXGN{oR'l_4Bip_KNw z*߬GZºq1a|uΘ/[frm5|ur`k].&suO\\MiE@OKp =vt̰4l*/!)86u!G< -i[qkv CQ*ƫ5p ydL@9w.B&_fNd݋& -Wxdnx[ Qf7yW(7$m9Tf?pzSo^8lNw/TM{NlcXZj0xH|[pO%>)ՄS}k:'#0c[_ !.~0BoQwݻi_˅*+m?s$ǀqz LJ: zQkm?ie,RP4crFP'Ej}Ǫ{Ѩ+YV>@OPJ<؄ˁD6k闎("ʬ)$%^eYnd;Ro.:B{bX.,N< ҬzjaFd`A^}H#J7A -ןD&k+f)Osd7xkP2}`QY/xו ?Qz+8X?OMu^<"q(0+=;#Yl3KA$gHGMseUl;8h C\IҙBv %/DO!u *@nZ'8&xߗf:&.,63,~|'L][Ss6rNƍ+:r&3tҷ_Cvr)jL9=O -kq9ʛ2iW :׻I2ܐ@GI\]@~}Ay8 lT:(7m -Ng>󽷴~1qc{H Z:՟cm*-0㮈{ -1-?{* JZW}N%jUsk4b{n1yHB#QlL }_PpQܡ&0M(; fv׿P˨[D3sѪ01c/xθv ס/5FK=KG8.D*obJHt@&F/i|h@v,&ģ\@5e4Cϩh3h)F> {IiHjӈ[|NjrtZU2ãMAӍoXHǸQ>?W $Э>zk-]^ noq| c~+M( 6N^Q/ ~BKC VEڵy ɺҌbih7<~ʦ|O3Rb²ʥwMJ -V'~֙* 'RT6rLKW{y \hLcGs82& sZ!=YV-`_a]ݶY^W>S>90޻e\v.K4G͖6%0/}6V= N1dL]nV,zy'ɳJ)(ËH6`N0x+\5P]2K S , NbF~w[վHN@eHȧ.5nuboA%bIJOYǏ'a҆m3-B6 I?R ծ 6*RZ?Գ$L-aԥp|ɕHVj`•9c5:{xy;.WKexFՌBKPЯ;95&rݯ,6 FJqٱ,YV!`y;朙xo"̴ O7[G?>w&zBIivgm~siJZb6XɄgl#2Qv0/G$t%ʮqYD0ChUm[CRU'59:-(Ti"kUw܌ZsQ^ka"~a1%$%čg-KiE'K5N_$!6& o(8ߦn/sh?ྖYSXSa7og/T -yE:aiSyebAU]{#")B㔒R.%݁-I ^(-m}T3jqa4*tjQ_։\mLꞃ1pJ<,@l-Pi(D,ҊAcz}Ch V38hXs*b+Q"h !sR\ٲaS*NF×`5eӾB\`M:WP8%S 6 -(wA~"ޢ Ok,o -Ԡ \JeR!JIL) \ No newline at end of file diff --git a/vendor/endroid/qr-code/assets/data/rsc26.dat b/vendor/endroid/qr-code/assets/data/rsc26.dat deleted file mode 100755 index efafc0fef..000000000 --- a/vendor/endroid/qr-code/assets/data/rsc26.dat +++ /dev/null @@ -1,27 +0,0 @@ -3bǘM8(u*DFM+^3bǘM8(u*DFM+^fs ē-p0?PT=9VU THO(xn&~ʭ};Z)`~cɃ& zr)e QdxjICd;QwPA#L5GK"3oPH Vֲч 47vR>]ƏML -REf$U,mug^Ldvn(9ȭ ye_v,"qR%=3YO8(I70.M{=!Fj{z4v6t3qSI6/D8#fMWy<[un,پ#=M@hnu|庑64դ-$D +韲t@v߰pReG*qHeX>.΋>5B{Lȸs3K X~sk$YPr/Gcʵ29&T -2#\9}W5 ս*X?D7ͤJM zfpP#\]Z,5bUL*" Z[8n`\YzB]W-.1CΡd;]YBEφSjXhQ l -m&fǦ<l?Ǫlt!2 u9 @Ԭ!^pF̡ߚ]=gG4E#{Cc&1m?tήf%o0GUug]ђHx68xK2E Xa+᫗FzE5 L|j.?Zڈfī.cUS'i?l)-h(U ]ԄXrk6?FAs,ng%"QZHV#y9}>ʎ_{Uz_yQJWZtT⅐I|G\ e-|j2B+9(1)_8፺!kW14Ǎmfw% SAOo2P n؈H^+4wdar"SLžltJ(N6dJg/ sGdFc0r>jyOvaMƉυLQ1'gT~.nهU@G'y!.ATvOcVļK5;acF')Xj%;TD2{ܱ&ҲӳԊBp9)2ӮZ\<b񃆆 -k0Jp2z؁_ȵvk ԰?[k:wl=}*&˒|!&d:Т'LsQ9x/yƍ*E],U[01肕~IدBds#r&OٵE)By_'Fp\ SeջR _+)zΎhAF6Le瘳tb_~pfb~A9Y;J`κ˿9 # taR`gm[-tlpdqɥ. CVK3j)C\rk!6+|XufAw\$*~ ÿzE4Ca- -U葔qi8P!l;+QPm/ IȶV( uoM^@'Ꮃ(Ȍm`A|'4(IG<~j@]JcFjEš˽3,4aAbNh[AJSYKp%IsΨ} \ܯ5)NB\]yiʐa ; bu8%Ƭ.#ej:ѝv{ƋtlqdZY;MG2_鋠Nmi6RuV0O֕`eY[{/d09eM'a(ZA/to(fCwiy - "7Q}~ַt-3;$*0z(TLe9%K)B=CL뇁J=]E!cL\yʖtYN$(+懅6;r ^ù, VF4`uT7X8o`b(*7gp"z`d6Hn]z#9;C̈́4FL,wR -%˹Uwn59Ŵ1 ]N['knV}KxS{H> -c'S\;eV[Ri l[Vٍuyj)|kh*ai-{"ľQoM($<0р&/y{@\zĩ rvIɁicr=2KɗB?nbcN/?5ϏF! * ZkA8$ѹ9Q_'7]M&ȥ@1 W4}\f R.|BzD,tp$ gD )<[ϓB lV8̓ߵ񴆜W$x7Z^ީ',-+ oHTuOc x74 mWLԤ:.%mSiJ^&q`d<ʥPB. y '|5i -mD3ktbg2j!FDCb5,rU6g: qjVMYitw*}`. `YG.M-1N&-"pY:I ;X8)n!&d\`ԫaNr|o,?u=@S`E;\:aV7D_쟐VJ[3^xl}y/&2;7JrhĶt)Tlk` -I~a2l,3~[bu+nr򞡠]rLw:1STj?83 -w JvO:)0{@E~:Wcja -tADPn#8.jyqߧӉ)Cbhw^f%Q8 =Ix^Tl6 f -^IN`M>H{2*Z;N+b^s`׿XH^lnKvziYjE!_LR6:c%[]~O's2%é;Vhc& _tW|hQJ!˚]FGծNUT(7lDjB,_9 #w̏U7 VF=ơAՉ%Rq-A:=򺷋e?Ո Q-3˥E?1Q:=k(ΜQmOeHr|ي]1h{:62-Jp BPZ?5 pB%؍v#5V4i%| -xCXq8x3EFdNSkAHU!Ŋ)g?.-fXYh‡gĜrK|*-BtU*й(O+}ٲwQ3UgM/l~MC&IjRW݈>Bh=i>!="v:8CiĽ"ԉZCNo 4d ]co@uF n_KR S.]Fv=lx}7ZM `p7+c<@$EpʿН.bp֊g+x#^s0YpQXnt8=02O $7\=zGWØb˗[okwN y%fZ&.瀎eK YHx~J+YtK-eI:Yڹ3W'F*kum6"+#RcޮYCSai)|,$/67ky;=|5y`ڱ+_T4efSz:>4K"(7g5^`rʚG3HX/'0tO$uN?ͣ 1Pg^79 -yOP%}u;E˩_zB \?L>a*46DnwqsR1fj -%3lXA+Z" fqvH+%T94B kcGfb[:N*H60Qf -`P騘 rJ'Rzߍ7|2.0j۾'9>0zBuƘ"Gs:1qODZIm5+OogH3GPVO-ClvY@G_c: -hWbFm -oX 8ehy,k7:g}e.PI?w sinI/SqpPT2n s k#7Y)#;Y}Dl!4Cm Frj{-'ܹ AĘ+*m,v9G>hь՘X!:C aECX@ 6X?JOojru)b4#K j2'~_$„W>g$2 -Dq~Zܬ_ߐ| gN[Qh%8T!}(v4 -.a"?-L4*lgDAosG,S R֋ЍT,iq𫏈5aݱzӍ?WRaBωҷZD͕aۚw݅PH5eٝn|s]bLҸx`4L^a1U#QiSCH ڰD q(HO>y5_{ zc|R{ЀA"-rw[TQd)3݄5~ mwƜ^6~,[!C31M'$m3j$,B͙UT:qւڀ=M !h.V&ܛp)HoWreNn[LW>mǛ*xѼ}3v˧D=`݋b@h,/E[1 -[<"JA_;`pkdoue_\os/XH@7ΈOlK@TB ;\FRmxն;Oج})[h@ڮ9Ut\J*ڦI ѯؗ߀v SL7i>xEW1&Äai\ G Ā$AmX"^b$wU@A&SNG6x"OX -xDv=ȑޥ )ʾ! \ No newline at end of file diff --git a/vendor/endroid/qr-code/assets/data/rsc28.dat b/vendor/endroid/qr-code/assets/data/rsc28.dat deleted file mode 100755 index c0e7d4ea9..000000000 --- a/vendor/endroid/qr-code/assets/data/rsc28.dat +++ /dev/null @@ -1,29 +0,0 @@ -  Жgd) 8uwdyJ:  Жgd) 8uwdyJ:8$1ARSpw;}t$6m{H&¬NR$p4Hgb0v53+-l9Z0,< ؼj[J26H.l SOE(#/LE M?T#~ -(m!R$VX`,!r7aHhUQ`ݏjfOAepRxc|ltcY VZr`sXxeq!הSc.t=^dD$4dl\@P=F^>/_%UeQʻy05P\3)qAo ~FPBHMWXBnQ}wKP7t&DuǾ&2ށk{= >2˧#6ԇ̇/QYj="ĥ$2% `MK(3[UۚE}_܋Qr,0 -Gl\unL (ꯓacL'di[E F( r(^U=z7|dIYSFl[# -4hϡx`|ks1$x3)@/^% -x#쨣Ti!g&LrՋ2J?Nk]!׉2xUpχ͑by˄ &ÚHXxrs 6d3Y%i DY!8T = tP;=I^EuGc}`wt{j|[fe5W ڕ&gvl­זPf]O=)A'} Y/m:q 1\Xq-Ac}W%XY` -E؟-'=^)acg<h}1]7͘ PC;ƓN_><璻c;6L+&7[t +5P@_ 8P"ŋ&MZu"4iTܢGQ4`NzSg,>n8' ضF8+3w& sOjf\+y1\R=hk}ǃ_6?bH1fRawpS3EOw?å#;,lfScEwJ@i=(Bi6>G^J{?D:b9p!*z1oB?YKu(H9nYq?1mA+܀01=lūrKWMUDGU~VxܰV}G?جj:4o!@]* Jop /Kڝ"g]Xa0Aҽd5q -oa-e)ac6x+]\Iz)#k(U2#_HqH J? G֜"FMG&1Q,:ZRU˜Xo`s ǟ"xDXi}g9Ŭ߭;*9\r5vfxOcz-=fT dPz0@`jXQ -R-FC^|) -1̺*qIzKR N*saW^5pZ0NXvj|k1ON -\t#b"MZ*e !kq -nOp8ɚ Y>Ǯ;J(#ZmWE38\HFG_Сi`Na$z]oRC*Qcox,з.}) ^_'. `?ϟb#n-$v;-|83o1A)I WpI6E*xQ9kvKSlVoLn քu h_%s1jVkq j$*[oOpՠeDI 䲥[yCĩ&W:`hLO[Dh2YՎh9A]ad͍ J>_'.< SYX|p9yNQqpVf6L.磬J#BimrD9/vѳ#̸k*V!b]Kz8H{DbBZN0|(l~.bۤh( xrיփ|xN5όf;*n5]+OЊ1틃vQ+jN]Q$OLFeӲwl(.Mw߄HZw(b:E" -_oλ~A8)<տ>{6}tyP:KUbS߿[{:/2"Z6-zsȎl^[5O@%i{g*?)T+,09oS~ hKW22X%삃Vz -$aVTo')d{SIӿ~ێ&~:xmgڨ-ߴ|*nQr0Ip'avC@x.T,dgu_ CzP/پS 4䅰S@ *+R=7}&3l#ѯI'cJ5ڲ.LHFER30s'|;e.f8 ͊;~WFJ[/=_L"^M~>?_}m7,vX3̦yƊ6+ yzOP%{J#-irgܠl|3籔[~WO󥱈tmr.7an^*eIս~2c ݎHBTM$b,]x<9eOy*K:(꓉Z/rX4ރe<0>K}^ ֿ3[{_;.@w"{2 &!Z )'^rEtǩܟm/WMr׃?XYkz"Eh܂pz-jk5N@;5sw|3.ӄ~O.)Pېit8aꦝJ#wDŽBJPk4rYܣE~bڂV`0b4zgP2u%hw⢗K乖_Oa 8wGkBU4ΡvR΅Q5}.Y~$#EԡthB0TYtuUIW/Z}֝k0 -@oe8-',w;^5>O'y.Düf̞軇C7 K8RC|Md~<",esxVeؓ= 05,ltJ@)DK#/$%~݀kNx#qa -A-'g0 f3jp^;[S5LjK1@+uCF[>oi2Ag79S v8Hw=(itM_BЧirXv -\O *n O_A ̃\m+=ag+*tX-۵1GZq|`gȤ1֧ѣnbH - je4Z<9 Rk>Oly;ps5'P\u]V%E -o!9" -CR;sA$"1n!- Nx'ng>u(y<'+wFiPCdUFM4t.L"(Υ!hbݪ"R0 c~6S:% D"Lٙbl n -oz3e58/:XMtE˥ϙ-kGx^3D@fOt[hڈ)>u2?G(`WP_td4{eqQ!|ZBg;)AygNզKV 4nAT8=5XAQ| ' :_uS%}ʵB!%(mV#D /krۗE㉣GvTM`D/9~:Vnr%?jmQZz̨ -Ƞ{(ĺB91U$2%ϨљAXe`?װ{5 Z17i2/&`j%m۸`#<̆R{b]i!TT®,yNi05ag\0QfCyj_ധ`e!bӸ +vMr0"fV?+mjc7/" 3:F4mD}TӞ>-!Rq oȚ|ysf'SJʅ:B&gܞ41Up)67W@ALu=i DuK|Av8SÔ}yPC(S .GFڷqC7dA'<7p f.py同 wͽ_:MRk7y1$H"#eTXs\`E$:¨q!hs 9f,yRI9A6uN\c(~_2^Urh#r{p#FiWZH04]/?vZ%ap*T 0>a8;d@>\Ѳĵf1ba!Rc,s<l8py3 YKu &"Tr֑-ޘqCYk?1QۭZE-+,*ICU2c .JYbM8~{bG_Z{WVX0koH -]aTޞs4]눒3bsB/94XAݟ9x8 yW KO2LEt8G)pKsf@auACEL}DO)uɈйdM>WY3r%Fҥ &`h"^~J]'ȇ|N\x.3T;9`g|3pIv+|5yw \ No newline at end of file diff --git a/vendor/endroid/qr-code/assets/data/rsc30.dat b/vendor/endroid/qr-code/assets/data/rsc30.dat deleted file mode 100755 index 26235e76d..000000000 --- a/vendor/endroid/qr-code/assets/data/rsc30.dat +++ /dev/null @@ -1,31 +0,0 @@ -MIKbFgي3H.J jMIKbFgي3H.J j񚒛 -, fw2$\Ք1aX]ݦʩ:vU+6r1uXw)9+'1XC=dH5G+,2b dpzCON[ u}ZS'߰QOtVlb:a+Ssz3(0b5,O~ʆ2s1 RrVNb7( -ᰆ$zȐmsjVXwd:;)U-LxP_t2тC VSR["ў)-1#N}䅩'/BEc{K}iS<6I/G_}tVM69Iz 0,f6P`j?/XמdbO%437ҳ%i|ۤ䬜nP>}H=ȕ-o\ URYnk$*-/oJt*>v7RZQAq*d3@7:Ѥs?_ޗGgB], -tPS2$݇D!%RZq$ubQF[bD{AWؐ3ҁgLD1xaO&c?Nq^ SYQ>u#Z(]K$َ#C`?3߁aP/8ҦYx!>͗l^8E虬Qλ9;}XFN\qW9.ǚlaO0rA8e)w@*"aM`N?!M{wԈǜ?VnŤ`'7X߯l~^dz!",315ܮi]q m18!F6E=Jhfn{w86#SeJ9tJjc  rk -}UْUE%ܠ(|".#zѵE}7K]޾n]h5چv*ZG޸֍HTZe5^!kxHzmT{-,Lkw`T|nI-]aTc2fEnQtU<1+k촸xz ?ʝZ=]~23"΋XQMGdS76_yTSHcW^06L$qHk"cBJHĢߌ%JЫd\}>WFT.keĹ5a/=f ͕ΘwK!3bO|K6*Mʌp7 OWܶK8rT.8L~'g |8 ۑAca >,TARiYF P,>H{F" ~f gE`ؓKr(%2ΰj$4`@6^p1Qʔ3WIruy/dC&?tWrMƿCY&g9 -5k]̍߶uUm%Qk ̤S#KJ7]P[D=\FKOwnI|Xoa[=I0%סaW6$4:1g<jK_BL}lRQ2 L/%=q!Tm0IUy/jBC*5 BbMRLޥBsb@E:Cٷڝ&EZX:,=5TU0ۖFkqjA96˔ͨUuZYهd"ܢc^p O2^v (WRb47^KnlkӨ;-.s Ʈ`lHP'~nϊ;@PhJoS& DƄUuKِɕY&Jq6fC5xlfKۻAMmWaKe|-aɌ7\ʃو~.moJ#ۨh}p~WT\o'j ^AGzg7o>-B fAj#1< v -ܚm lT͉n@եq;phU`h̷_H7U{zf> s\!p%Ne$QsyKY*ɋp?؅hXڞ 2 -1RK΃Sl)Ƴ8/|Xoy}]&Ҳmt(LZ*pқt`o(0{u[i1KX|CD/@[>]z8Q 4 ?*jI1Cz 6ny5}"6;ǖP?Jd}5Hha(gl}>UFW4'2"# boyxfre nχ^Yh+ >I'AJȊ 4 eT4J?ɤ;VTh(2-6).'"_s[H}K%?m^A;'؎;b]5>wtp=':~L(yg_ c? -NJ淬qSG&<(SW[:A+ħs)rƝ`[ExhrQS!Zߊ28t=s'ML񣊴-KtXz |q=v1|?eCj{`1# E{$ r%l5AK,Seg;Ϥal9o,_݇M헥9i2MD: YISf[ؤ@OjapfRD2w><86;dP>OxJ:LUw~zJߺ6|Ds]Į/R c:2Nux+$DM5&PHDrEM~vEC^< h=u)CǤcurF -{YЬ6?޶;hoiF¾̈*Ү}YX)PX0l9ƜgX5@J_0 - _%wh^2.L_k|u#*hnh>teF8irn[ǎ9*QaֻMvZ\, uչхsn|!&6iu)M_B&aGڶiNB-?JH0T $ K~ #tO{^b(ð#/f"{!@adGb{2ROyopCEVr!*eQ~9o{ -p^.4MULy2E[I!:~k{ PTKtm\KQ3Pu;aŴ DlGv1ՠ~:j8PU @^'%sVd #xt^[N4 Y|ѝh %NdEDoFyYm\JMpeăY&Gܙ  +@r\0+L 8@֋$,yVC6|ے -cN, % h4ۃT:#ı97Gy"hg~U($"9vIikK? ;ԇk9#hVqo[Gk4cFPo3dyZlR \NSөDm583)"s%&?=D}%]Zr>"w>Ր; - Jca >~ڑKmv_PpʼmR6ÃKZ@>+$N vsj|zg/N]tG9fmc0¬<49Ξ-Vu -P qCg~_(7=wA2޹CP7 *=l݂I0e*sEx˒0ӌXRheqF%OT5"<'ƛv)zijG /B+2[U< :M /R'p -iLM.%8Cݲ XhMwr"`W٠w@:.a( -y xwZne ?txJE#Pǥk}G fi2DŽqf:ͩmd/1Y]PX矙3t\8q+9jyB?\YhJRy 4[+vWfI'y%X̴ɚSbE!NHm[O'uiob"e:.+‰!Q" $-#VR|x!>D=-9z3Rאq"\Ҝ*XɶXg{R0 '+iD\ -v!noҬ̱ -. &v.GiNv{x ,n}.X;LB7]\ iVfeO,]fZMT1Aެa'_$ظ]xqaʞHT+q)>M -<{s"(S谄q3IBȶYa.VtO5h!^S.I4q8xvAkYQ&Ϩ`px\CovTH \A~FSŎZ<_v-@covlhO(~F6 -Ac*Su{jzy|c; XS=`bסd~ (8e^@)_dI- pu3s`aVpSgO+{cjZ{Q4+jsǻ#xR~"ks-9xP֛W  Hq[9.屛&j kmB*t^]bmnI;jg@WvFjޓL[_C"0 &[MTשΆ\g@P\b>lGU!Z.2:_ݳp&z2-׷LR;A@9oR8\HA&~rvre"-p4L^ݯ Ew*FYgC-Us DZU8hm=N@<)jw?HpyXNPϘ<( !:/1k7I|YB`5J=ֲ>bM,01I\dt0 +8 uI{ཀྵLdZsi[+ɎI:YB4w/QvG$.?_#G --Yԡ; @,&!Oe.@+3köeOSD$ `@sL*yO \ No newline at end of file diff --git a/vendor/endroid/qr-code/assets/data/rsc32.dat b/vendor/endroid/qr-code/assets/data/rsc32.dat deleted file mode 100755 index d18d77832..000000000 --- a/vendor/endroid/qr-code/assets/data/rsc32.dat +++ /dev/null @@ -1,33 +0,0 @@ -t@46~¢!! ;7䔹7Xt@46~¢!! ;7䔹7XhAl YBB'}vn5o{o0 (nE\Z0[ccR>MY1(Hlc:׀^yf[`ťsԡ$ z44YlF@BخFoX+ WWx\Ί-\LJUvv&$4etBuw9w觡J'mu2qˑUP)yhľ6hy>gY5CLгiO\N *ƴƸN/ߢn'H_|?71t/*0hDd rϩr̉ jotg2G**%̶Wk__Hk]Wg4Sq ~P  W̬`!L–I`s+O=%hh[i9300Au 9WY;1- IIq7qaiV]@k5{Q߁ Z -)(MQ⏏:@EK88E46} -LHh _rS_% $B_mȻ+6Ң`~WW٢1q|N+d??&RЕa]l  )$o i-qGGE-ŷK|βj{}}[=2$7@Tume7 ^İ歹p\\Ӵʤ((uYS -29ܙN." =~.n->jl\ƟK%=6b^}T`С@>OO w@œVFhMpw0wx&d{:eTTJq3w'ֺ$Rʸ*[uu3@+5P?+h%mE1Bј1a( ->77NO~h+h̆'VzJKyҭrf``Gr*H`js3E٦_Euv:bZ#! (nww5B J칒+Wݶo֝+GZs}#;AAj* mm -5ՒGҪ"``K&KUPPÉKdA%;KWB{(Zy|t "It|UOdrkk/=a\D@@zG\? RaEJJn}1Zk^bvSkZ&|+))ظC%2#//Jo2zl.fH>܉Ih}),u%R{4ͼ_? | cjb (''d(;1"2&I`*2?{"x;NHH2m+\IĹt﨨'fAaaN=i AH8f7dM +]vL[zhVL}vۤMm -TSf=?/Vj~4VA!/ 3 '[tD.E3+OfUkQJ4],,$Ab-./b9"em$' GQ6-niP9 |nnݱV&#N OO`,vx9%iix+<Ѭ!qG -:* -$Ay_V4BXK(yyݪ!#wT /f_ՊQ%W7`>m޲?#SStĴ$99FBwO8{P ٙ&8rBy۸{t$ħo$g\j8"}{{auo9V>eqq>'V*.FZZ$caJƈåa"_FEivTY[>$>u4(Zj+Tp;y,d!'χ' !29*IDLx=nQ_Q|=)xyY- jOhO6x)Y. 1g d*֨9 ''b-& -YaYp|Oz$^9\ DDS(k;nL+dj"TeeEPߐ66X9؃[(d-=4a*՟Qa,SoMƶx&f& ۜ03nɱ= -@*ПB݆#X- DC s1y{.II;{xa3wcǎoA#AsC.oa޿ t22wKMXOyqkOРXu _QQDsUH.X.CJU/]^׎i\-pp -ܒ6D[60j%ONޘUgn8ig0lLe{^mC(Wrnؚ ffq'Ǿ'qn6OL#CY1)C~ퟟdU}_8 A.}￶8.Whxxb03 231xaBYY dцI=g}5IJiOo;.::6]S nn9S3]; >_*jR!SW^%z¸ ,ǀ 8~ 0@CFfvl9t9o񚶏@ߤs*b]9;tqcHA nVVfML"G6qrff<&FsFLYjQz-Dv92dڃV?玣9$$Y>~}3))|P~BʘMM56.N̂c«œz@+#4Kall8BU{{εN?(\fV0Ks&saKC0_ZODjm -ʕ붾&h׺XXH. 'cZc\^rD'k:Xxyy4oc"29D9f5=HN]6I# ! lW#ZEIQ}{XA;;:D~!tN~p Ҡrw(%{!:֊y:>׮n|[ڡy~Fg +,,Q) KgM?.%Ax΃PjIPg ŦukHrr4p<</LpxeSSAGR4ٜR;G'PIiU00mH#SSHMθ IE06 -)m镵)b$0p5D귗r|AS|Nu!%X_ZrvI^[[k-)T}e\ݣ H›( WOD]Ijx'?fpk44fC蝾o錊:,|H|hP,/G.88nITV"ţ`T|V﹨vuc[[X25b*](LJH r,ǒi*8Z2eS{]s5^`4}tvt{`ݩA9Ul!]RC \:bݹ{T.MX^#Bp--~%d -dcDھvMr+NN!Z,LW²KU0{booYͧw q SMTHr񈈭PUvOVU7S_S0;b<V(?!L -eEޚɑqq} %6LL%Y14 3PP5 %"e! "O`fY܏zT#iAFeZ,@FR%ؖ0\/DD^:qԐ #3b;6\:vM[i:I^$ԮM7 ++n3 YŨ*! fO&&ƓEsy'ׂFy\ޯ^a?lP_[#ĤC;; ¡c -oddk۰=֏]wW-l9wrqKf[-p@KLEUU"5[eej[_Gv훟|66TC!Aͤ BxAcg1,li>-)0 - -Zw>wDτ=:Ohq~rʑ=|R0lXE/pͿ ;*G*g# -#)QlKK.Hv"y"/vjH@ ~c[/jjWϕidʛ7TAI5 eQ&XMMk&u((pՔlQl@Dnc 1IN]~]+Fl1Ë4DpcV7䗡RoӨ,/!8?v ю_{22"nm_;1\ݵhxzh*c1A^^Vu$9nIYBQLAe/0:;:0e]zaLq7b*+0*>o Fkq==ww)6,o,ys3LRVV8ыFmu8 &xwG\ȣ~b5tٖ6g^-y^YyLWP:MΌ*DDuXz)#W͊/O-jjpE=NfW 9鲤pbbUpv 0v ,S#-r'Mk#ӈPUFGbb~mz ewz:`$EaUV CCpMjG\}bjM87ϻ'ap4:sBlBhs\x:XSѵ85 ypH B V_R3~#,xT>--XtyT}kMt" CciL@i`cV,*C_\ zdX?$Tw7>>+]%)%]țK~,]]ԀG8G${!s ~Hn||:Vam&JRJ 0+f -g;^RT˟Ș9㨻|DQf+8FX5|Z.Z15KlK ]uxL/M 挘/},= ED@ҩ5U58Z{ - -r%d'C/S=k=ȩ~Cm9߱n&k)N++htDŽ؄#taCq2[rHH;|Q-fRR-(71gKiiw:pj* \ No newline at end of file diff --git a/vendor/endroid/qr-code/assets/data/rsc34.dat b/vendor/endroid/qr-code/assets/data/rsc34.dat deleted file mode 100755 index 7864d34d7..000000000 --- a/vendor/endroid/qr-code/assets/data/rsc34.dat +++ /dev/null @@ -1,36 +0,0 @@ -o~C -o~C -x) 꽴4>2fs,V |ޕ..OD -m.!+ΑUĎ:}BQ99Rguh|d*̹Xie7\&_\(Ȩ/rc}OQN4;KRK"{;#\;BV?Wktلr5r0ЯT?oE4_nL"P>6P\fn0a`ZM1+~6|3 p/&(9&o.xt [x^)* pjPC~ӟ,S rUR Jܝ[7}*ABPO#mE>An\kC*df&kVyw -\x"~6vS%b\fY+wAcQV?'~ ^BZ"C4nm -ٌhP@]5HE(V5i!^cF&@wؓ9DN0 Dv8qRma?H_x/Au4^ܒD1W85K}!BE+H -Gu LĐ԰fӪgM.c oa{-]60s}ɟԁ"X2QaWyd;Sd5X:Hs_ճ0>cIʙraI,mY{utUMC#_x_c]gmjk u)b.޺.zq2tB[4UVCf[ѽ%N;Q"rǼbba|b X?X 󝠘v\gl@QuuGV'clу= fy^LPr,Lj䌈fuvp1aZ'<[.o[\@C3RgwTԠ>IG#>%Ɓ5fJŁ\ 1Tv8)7)/Xu }&' >nAiT=1ccbr2̐w({3B.~\;4ŠF*|9ֆTyȵ̣JepN5a -kr0j2}L'#'D_յl:(4JpLVV t'l=1dn(J! ܎ĭ3V:/~N-U7m)imI3KpƯ*⽒S"&DhՓI y_Рр[]ԀSݜwL^}sR'Xү˺[jP -jB 7ƌLt[,5ޏy!Ya~;r`>p{~ ^!h!=B$iS q 1F6m+b69 C7b&c,p -ojm)A! SBSkŽ6x±?OC\pyA0wNDXD$A QmVQ{C<ו=}y}} Z7L -%/UqjxK:=jI >[\_;WZ #`yY`o6q95@NGl`惷<$#:DdG‡ -I8S% @ eo89yst搤KȅYvjt {c`|\iM]*\UduhC??^-0-Jt_Ӓc* 6,h(X(̶gJvgDKe.<M0>xM%?Gl`(&F8SZ}ZMΖ*(B);s[- Rc8#cփ rX6u@25g;Sl_tFtܑ\RsR~2Kyg|EI_`#zoi#a5xb]:O;E -&$5~G@']-S -+Y$]_J>:PuVNؿz -84ݼX2@˜iQ(GS:xcy8gi,e /i< b´Nx)\&YQ5#̴҃[cIJFl"pء,̀q Kef$]#|kF|Ja"zR2i/L!k (k@.ّj̔ysb<mpRnR^ n΍n`UladRSE9ETQ$IU$/L5WN|q8 wz b~mpU<U6*V1>`jZsf7 /97h1)٣Yd=P'f\GvY{UݐW슔F ~;ګ3{X$;ܽnaoRMڒfCTg9" (!DdgW*i#܄9Mدb4euLХ穷;(C -]Ys9XI ϼV-A%hW2od<y5%q]פN>C0{!r?r)8nV\=sŮi= EԹ'ge no.>:G,;|pVIxUQr @h M61 6XjiB$û0G0S&G7ͫ:G0mTz-'{E'Yv %0| U6=aBeBoC~|#jf|hѕKl <`Ոe%6A`g䩴=k7& H@O ڬ=(8,-x+7zw ?:ـ"1SiDr5i@n@GJ$^.& =tz+1d41lyMoT8R&Î7!k"'|";)׸$g}Y8 pAZ9)Xa%GnDW]jHKY3;yJ7ʻpr =聍=Ush5NvhfS!/̉**_6QW}=@<aSs&897bKFiJ.X{O3xo}Xeo(h.[3S7^JU0-҅MhjE֔wΤl'fdT^ՙ9TWyh'Icg)Ϋ(Z% +#%1G]3YjgMh- B= D/b?ͯo"wǞgܤbGq!֦AJ챒aGF=F)jq́{t&vL p7g70ä6P2)ѧIZ W* Hj}}NZmVYEty6pN/%:FIJ4Au,zX^x -2ęuRq qLЉT-LDgrH(iftfF0òwj0FuC _D'_XQ}AǧpAYċ r~H:gdsHRC_m@[UMHw"F9֌ch2A{H6^W*)GR'D_o/ٓ>7d^BP-ր tut0]zMrZX`\?>ԅ53>m4Mx6 'ӤOUo)Orb~L MC$ ܓ>8SK+<]Ȥc9u 4Ar댭KLwao*v@=V^}H,H^+j4p@M2@ijS99G 7+Nc.v}WʷW઻xlTb|Դ̳,n^rn2z۽ ADu QXŸnByl1MybR[K㑕:ղzN7 kmn.#d6~ͻeyK J u즳 *sks= 5vKf2xc2-(&1#^O3t+u % %*3BO32W &6"M[ABa_UB \7Q׈Z0R"|s4=yiTh٫Ѷ{і 3$ -`Ş1leh/a9#"ZK_߅z5 %p'v(X~Gκ*=o1hHK -OE7X7DleN!Rͬ$[ۀHzd:yBH y]}u[DEK`\Ö-P aזs^Т5^\OýcnR1XfkSI%vIUV~q1[~ns\#%Tp,p[iqv45BYkJ -gR6wg -ERE,͜7`"čX5$W4';43CI^X|fdKgV.çZ~1${5,ɗ,D֘͆t <\9q#o;(;V7ppE2L?[ƫ%vS׋s bZ/V_M: yO~xƒ{M'w|;Hevgs=Ј"d馄,]a7!ITt6▨mIܩޤ91?&rDQPB[Fīt&} \; L+/VQȿK4 Kɳ$YT}/FrC)Oo:AW:xj=ʨ9m-H,0CćEh* &"߽WOsvP9$agK3c:qi3#|8NbE9^I?YՏ$2$)=r=eZJǯd)7'L` L|#ф%  -᮴ -=w:xQjSJ3-eѳU}|o`6o w$ Pw*၉h~ Ztx#xBQ~Rp$;%ǸAzA8~˕dGR_(ݪ-VIVqz](oN@4? --:\<|ßt<?|g2p z)MsU+Dܪ+S{XWv>WQ'1G/iG&p0d&N>okUBϜ WZ #lb:@lq_.yH&k`+`ϹdZ hP<5eT$wbwL -n1Kt-C`+ڨZENeNhDWn2Z~ESBd*:YqKTYJ`ݯO/,lz>3e2ʄ"OkLC:k.|FRVzQ -mFw.п7)@,3x[OW;kʣf@։a;T!V%qc)xRTQ`4$N=2T!$O"0.Krv!^I!Ջ.Dp-)>*4J4PX˙Pʒ-WL`uT=i$CVݞ(bQ[Q.`ؾd  #)+=[҈{ -j]3 Gk[{* JQ+ӜjК<`Ҁ2Wu-4(H*I\L zٵ1VAH4"7-?}! P_wOU2*\b>hb8=e -ApL"nUBa82'@xs!Nˈ-H \ No newline at end of file diff --git a/vendor/endroid/qr-code/assets/data/rsc36.dat b/vendor/endroid/qr-code/assets/data/rsc36.dat deleted file mode 100755 index cf64fb26f..000000000 --- a/vendor/endroid/qr-code/assets/data/rsc36.dat +++ /dev/null @@ -1,73 +0,0 @@ -CL{I|~I h-+JY;v`;CL{I|~I h-+JY;v`;8o>6Z_V4vǭ>v$Qԍ]Lۄ!-w}ށ.pME*u!Mp7-'99|l,5yhKG|lRa0gppcw'ՙ rח~cH BZ:m\)TB]Tf|zWig]A1@`F;_B2]=n"ZN6rrXguaEjЖ<;'ap; ;SXn MV8G ӵ`? -+N/>!@=3{#0?rzwC UE8^戺 -KÇY3wi-@K* 2Kt_>)"R Ʉ )p;uV -L~AҢ$E̵ٺb -9v_-odz_4aPib!`dL(dDl _Šԣ1x3vN\ͭ򶻦cܠEԛx.I,0vkOvӛ@]Kwߑp`n ?1?̀v< -"AY\t̃ڭUw~Vݑs^|&Bz{fF`{/i{;8(ڗs -=ϡ@@~&+OO#pu2 -i"믛 -M;W)[?k -6l^3hs6=fZTdu詟Ͼ| mRDM@iR!v%g{G( -nRw|iڠW - i'vOk+Cy*Y $KH"+$:(MM4X]`C>Wg4HMwAK i+crZaiQA45v|H+73vXu[h O=A}=W/qB5c1GUeWP4iԲ` -[t=tH4٬\U+PHT󧥈u%; {G}ə [gb3f8 3a9G!\v8"$}y0-[G"GqkQ_!]SE+\EMVxh#j`9gtkI~v}w<~גX*`$+Q<}')?EVQ &٥%।0ZTPgaܟ@6~.&b~G'xD$;O\_Ͷ7R'7L -^;}!Yh9zU0衒G˪/$k(?%L߄6׌?[c_!f) .YgD/E:T 3^,mvp5*P536Kz_!;{co6|x+.|8^1Jks7LV,IC [Fed߿41DC+&+8N:xm-7\3%ˠ=d![B\F!i=#v . }R~lؼf}l~XFE/Eb4WTtnb#Wzy8101*O#[aSU$*ҤfCy{Xx1x5'+O#w5sBJY$7P24۟y҇]{^(  -7,3J Ty#av r -Nɞ?E4-V/ToH# DVkOH^`-A95SAIꚺDf6sI/s2[t?,=P6њh"ͺy݆>|h>.8D7wJRh -f#1wc@Co8C2(V: ' -a*Kaӭ׼7Mm -9a -)@{AXZ=LU͸Zh1j}/ї: eV>n.f 5F+OJΆ;!Ļզ$,2XoCU, 6Й]zƝb-2ʮhMV'3=3E%AtxU#qSҵy.Mz>hE<8/V%g[q:bMH?xs-zGvL,hSW -J,av@/wfp%fONЊb -Aw9=ɚ]t(܌E]k‹r].%B -%pDHqo w>&#l\L:N(HvOߞym6O}O M!cQbltV豀tSqnN8n) vB9r`)_9_I(~|'OF'6}9 XiY?I^H'>SPES~#Je혣:sl~kO -3܇Q;a8AHLjci. ^an ʶƾKBQR@\?7G^t@fڌŋ7aSLj_Wi}]e)p_˼XsjTjOflS4C:k Bvx?1Y#tU#Tm܋e&L͚&)OlYV\ 2q+(اe9e=#Q] Q5cZT.ۭN&G"o.7^ġ(m'hAaF:wK_ۺ# "ZX!7 1۵qpou:bM`bTɇF,U -H)TU6 f+1a+KҌk0u}n܀KngѰbqjNMV -#Fjy#У@K29* cu&1HflLJ0 -suŔHn[dh[(# UoOA($ -e7Kߩs 6W7DP*wnXfWcF} -ϠQf "׀$g ) -4 ŏ!C~hZ3^2y01=F֞XJYi$Y -ԑvuMc뫸KP%, !]yZrj')i%-^0b|kˍd~Xz)gl)}Diӧ{|/A=|xoƗ`m`f,׬ GlcG\>0pۑϻnCK6 -% - Fb -@s<[jvo=PCRL? 1b51).+1p>d7PtNuT_5g39Ϣq@Ϧ<8պ\1LߦeGen&rR!+ǂg :urWYb^3tۿ=#|.k\S@}j.EݓJOu5kif*!ڎ -aVI1-v'-> -=BkQHwXd X}HNdwYd%Uo4@.GRc5uc@ql/!xAo7|'IZdA]Մ=}Aey^d_6~^$q;,J̺jY0T{::$V.›Nn(z$*;Q ij -7Yrz)>imP׊ Hhs,tY0pa}$֙ 亳\JJGmŃې @OG ]Hsh}jXvAp6/X4 |L.xsy[SOnPuVjy<V07ʑf@; Ǯmڢ.:fwmF8qc+&ٱYv?aiQ m Z{(HWXHº1[J0K2Rd&A^ -2~U BG8 ӊړ柳,`7Peck+bG9=õگZ/sD]D6)Ej8ƌ8ͱO9H? *3j>=qq 0I#L!b&`Ҫ>?4ޛ% -;dl0jȠ&kBA㞘\o8CMP{r^}+SB֬Y霮:b<[ ֧[g1$<ɷR=p;&`4 Td`C^O ,-Zq&\-_#%UgCKLLDHbS,| EOPY/0CuM]"3TﷁsrNL "c~%p)ELBN433ȯs,<>Y/{B%d+m -aUpR-*(CGeyrIRr.Fݡ[)M&Bl/I4=MtIӾPNNl.;r[xml|~z+dl#ǰC{,\6~b*.F誡F:> 4L$[):1L4u2 %`Xtmwj%QwR˞زxe ^*5xl֍}Ƥg -&NkD>g 'ShE1lDFQGMj:]\nFd6y:6Y|ڕpZ+Y̛s-E#BD9B$q [ho - hD< 8G / -AS _SBPpLм/2zZw?om`Tla";ה ݏoL}D\ n _PNзAMͥ•"APJ3@u@D[{e_zHBztc]3iF{DIװ7Bn@bow7h 꿉ҴrM$36k  #tĚĨ!q6XOQIR :o=To%yIӸU?XԷlCiVbV.` -9{ѨmduÅKGFa!xy2}w?8Ϛ&!'FKF -EBj9>DĴ Ŝ4nYx=}_,"}[drToo)Lb8ؓ0 `*20ڜ&`&"$O1r j >R 5y]жPWKFso&ޞiPHo Sv5dP!ɮOL@.ԱXgTVZO(T- -_m$,$na]O%gl)2/n -1͐mRmqzV-A"DCq"e$T4܏5,;gM8,ՃydgweK3 l`􌆊WmQ3鵸]5*D߳H -q+Ra'7=hAc$ -T4ϷT -zC:Px8ξа -u(%SB д E"fMd`=bz$ -E!=4xIEiuiZ9K DZBAH{?<ٚKm{JK tCo*6dWMJpxdpXBe"Q9NR -xؚ+|J9ZDROP/P&U:;2CZ&`"_M֭xRF{jsSp||Cn8Ѥ`cm3[%Ν?RKq ]RcR'S"^zԏ2>sm -8-כJ[fU -326ڟXIE]Q.ƎqQ䋉Jቜ0d,: w5r|` -+?k#܆k5lUZ*J@(#vd:"_"ލ]~X%sPf/^Mab/x(z3~bOKij[b-4v/UʍВ(dYƲ;YR\V;2b|onE?,(3/o1N@;XXpehIf2cY`Sp“jfrY Qxpib%yQ3v -Z~r%Ns2B\Cl{N9S"k{)(L(BV}@xu-Inu>7Rza0a IuSZN}g )N J[$kljd_9 -Cq=Yo')hz KEˮzqs*\ZΉfea؟_O'rYeW{ Ѵ  -Dـq?g74,DZK#c3e(&ѭCуc]4(H ׀1>#c3e(&GSiƺhP %b|FfuP%Lk nŒnӥ \x -ydSBaeUsxjoc..c6ґiРW=4{:JwOJ?#Rh4`u9$!^ ־*ɗ99-W@.'8o>WCo dԼR 4.#4<&+ޓ"\Q\l? ]0zht?]- k#a\u6r*2e!T]:&\Dj}u g~.yFKKywh < $rEiHB[C7ż aިΥΨj5+%:բ-Ư`%-GT43rrZkm(8G\NpQ|Iц#޵ct"pPtkY.%QZΏB`+Mz BȵeeAhK$\F>S3i,h/xLVA9e¸ \1"6KlgWc )gߡ;Do~g`AK57[ -~!˺5ZsK@==@[SfZ&h)${;<|F.E¯.lTdBUtLq8.*V*@^6;j8,ǕuWdDoBRNŒ0\UНxHҐ?ne0#!#mv2~ʹ]Rozb2wMӁWM)jVJtY9sZCe)]JZQfvnJ7broFOƠ}J84bƨhWfWAkPpࡢ*/AF wP%aTa7l"6V3Ƶ=,"et=QED诿ֲ\JVI3ӷ;e9vv9,=Z~VchNj̾$o4wU4 -GH|;f'X^G— 4OO_}>oNdb&wWٌm*,owɩr݋m]bDl#ϻ8YR(Σ{zZgXXZuV?Bk;'R589u 7m?R_vk?mYm?o,iK͖jn.B<ij.d2A^(Mi_HK7Y|A曖Cz -z:9'eLuO W*R:Hvx9O4cfQMQ5 Y E-P=ѩqY{10\CC\ mըȉM kim p ,I|'Xƍ[L* YSwU<] -\qTTelvpWX7]ޫ`[2`\ 2BҬjQ)vȷ~(tF11gý's4, =~që3`4SH(鴯(BݠGa9b@2V~b8EFB,&[&FdoϺۙWudoYfZ/LUWm$!G< -tf dLG"_RԬ{sr?Rg <گK& Kt1G(4Ҿ1TIߔl('WϢ%=%ܔngތ"]+۔:pUhđM7Ra~Zof3}j lg2 kMЮծu:Ӡm%_YT^9c"@_, P\P ѝI`٥"hj= -G8G-AJ¨nDlfw8>z;( XD_zX GGb'1zj -?{'lMD愑7͈]CcysEKe/ர;nA -. KU%/ -@ -*}-- -p(83<_6In(&UddEQ !Ԣ/Rs4P/dm::Wh, -T]l@&QWm -IbbΛgNhX=oz*"Kfh//> ->t:@K}6x=7@} :PMuCuP]݅8“rĉWd]- 38ct`>n!3۠vfX5G>HXEpXLL -6>iU/ -c;ȫz])]*iS./v^7: Ai07w3[[3u̴^!HBMx C%ȘnB1ϯjv Ƚ|F˯ҙ@?D) k>A>)wE[5yu~ ';i@+5uN(po*13.O/w $xCL))b3eSW2Pmhab5ePNQGᮬGkReMǏȀ-SmBHƁ/MhYJzJť5΋աD! -?V{5tЕ?|{(9@FV%} HרV1'nf,<ؕd*#ŖT$o$]v; IΐWOkᚽA AtO]JǼ<rD3bM2L2iz{[G,JX"9hzA!w"Xw@K 'Q>"WD& zops뛍/@%%/rVTWx׻Y'Ą]Z"M"ܭE>?gp|vP˰{Y\/_3CwhGnS[3h7Nb4KIim,~N KHWLhQ LD~-?cO0`M%-b.cM3? n 뇆&cm5x> *'EdR9&XKk*VnnV|E>k0={EĂ.xζʆ8J!8ٴaY#E9񁹘TcbyNy_gLt{3\+ oPΉ䃶 -"FubE`㽻%;&F`t6y5.@@53Wns F(҃EͧgnR#t[0O[}q?Jy՜"4EZq]ScE8;ۄisWW(~>띑ٰDndm>@I2gb(=v -싅o}6geZKYU);:"QbV=?>)LoIGo)y@Q1f^}pNQ+ Bty7x.?2-S0KOy2/f᳀!!a%>7AC -`b-Hbx<̉#Qd3A]pޙrG]% V66 0")(j[$%#뢿0CODsjݜSɤ/)+x\kS|xi2SS^Xi\ tbG?3XyUC\L%Ǣֿ;t \oV!G;ӣ0Wt'(HeDKDE` Rxˤ:r&uП6S :'x&xz=I$ TuK[C V -$2u}}uh{ɳE#NV`Uz,6ܩ[U.# ¤, q[lcD0Htjjs )-!LpQJܨpb?k7JlTZ@iAq8lyEsh_Daűy_ס'21bvFP׸ =A-Y,,- [+! )Hsϕ)(LCW*C6{w+ch -޼:y鐦 -м;;rFC-K?+ٿ~ 4'5rf_ V ߇F;?e)a=1FtZyrN3HxN;7%19#wFcP%GR1cT ٍ rI3-^4Z܄I>e[t+ ^/a5ĴF2"P!)'aFVb:8(:sꉦ-g!0AU=!m{ppa\.P@6|vQq -̽V{.pʴ9z*R.["5CoTggTz5MQI՘c^0MhPБY)ێY4y0rD V]kcyv/Dk_iu2j^)^WGFl ]` lyi|xد]n$@NjmZN7uIzI7L.<l2ҧ!ܤ<5 -m^mV0xGs*)Z4|ՊEML+AkO{GSyʜ7*+yUMYomSKeʥX2oɝ$.S/ ${M - Nf59? GAB{9گ9O?}?`8q-_$y:*QVIf8c{gi&(}1 ںX[,ƜYr'A Vgw$[PыV(.({S045Eҭd,`v`1 U]w=5\s y6Ȩ"sBm٫|MM:ʭ^wA}v܏\i_*J6^̕)z?-z3Fvq5{ }6b|pv$TZZ!Ppf{xloa1e PL+?1ux~ŢZ3-&}OaT:3N2&q>ȝmc,c [&o@BY^äh^R0.d!iVSOp5;d? :#Gwttw2}c/]X{$L>{I3w񦔈DIeU(EaɆo> #+Μzs$TD+W^K*AA;HwlN~^ C۪ gHjCx^'|Ss|8tWilznU׭WVVR)td@CfK!$cΙf4Qt=Sp;G_/ȺZEfpƃq7o!oq5X;hsJd >#uzi QX :|i Bf]̰maj|< :a0pFxrx΍@7]P;y3,\_ϭk$b, qO8l|Ҫ_K^7AvKs2Ը̂wA|XP4*o6 bw rUYR6"TQҦ\ۻ^anZJcgѐ_[ MC bA8B;DӴJ^Ee&ٻkɭeNw˕K|ϙϏgCJ'3Ss}!ⳒmD5//DG #6|~0} a6BDv=&nY6`iݞ_^nRwiWI^88.(Kf }Ў>;Mfj*n*=JNr֪}L/4|(NLn}S'$<'hҟC#(X@) *:g/Ǿn bZ#f(k# אТoZ~ƞw`J$IZ\ƚfh^I}ȓI F9#HG?{93 @~SiLj y|TNȤrL󰖅TŬ,·NN’+/ܶt6pQ/j1!!]:ܬ -|5`czaq,)4\%q}YY}B!ޥ(n9Dҩ;pBp'Cݯu)q=MFr?o-q]-ˡ9`h`Y@e,a( P1S9˔R[y%t+#]69yF趕`K}~,4%D2h=a,pg8#<9y'&l1 8lel>K`D=RPԶHJFYc`2*՞>ɽ T%EJIwWqIŧ*{6{%"U^+&R -V$֣_uZ5vyivLdaX)n_.lFq낇l!d,ۦ0,O7G6> ~;f]>qG##?94M1q'E(2WJY]c&v_MޅmBe v[`=JqB44B$NkIR,s[aZGYNPOʈO!Y8MUtL!#lt[= 1 'B0cUp _B"gFQ0NLşzH[Q@wUHQ%]!zb!N'y`ƪ)Iͷ-DΌ`̓da{ي*F%cXlO\-;;SL&2,m7E6#@kA6zFUX2U˟I&csƏ׈<`%I>o:Ei҂pоň%{-F3F~r=8hqbY"NÊPdI=Y \ No newline at end of file diff --git a/vendor/endroid/qr-code/assets/data/rsc42.dat b/vendor/endroid/qr-code/assets/data/rsc42.dat deleted file mode 100755 index d00402663..000000000 --- a/vendor/endroid/qr-code/assets/data/rsc42.dat +++ /dev/null @@ -1,43 +0,0 @@ -lE-iEAgk4)&\BN" 5"8ų2lE-iEAgk4)&\BN" 5"8ų2 Z!}:WhRLDjD p{cd -wé'\v{jf_f HRV*v B tCm%$Ԉ83ȓCL(JLXi 䚍1Wk-6Ey~u -c0kOgNՑ6$T 87( S\5?*a>5G4u@o2AU-*J H p,f;(+WX HYWsx_| h/A/1~B.-_9/ -Pѩ)abIZI:l'"); X$ϳ.G>kSkb49M'. `+m?ola,H:=UWE<ņ^X h^jJYؓ}!eTFwE92#pnPj~ T1M|4!o6j^y -xm7s1Sw>'Zuϋ3h$0$d>͂gZTwX?vPa3Nja%Y'Sȃ|8B8iӆ L5UVe64 (^^bS [\cZ:5e맗Cp;g0MF|(|؇7Q\_g#r- <^Wg5-}O ,RAtN -G DROh?sh<$'ń:FA:vHq{\|-֦֍E 7hr"N 9) $u c΅%K$\6(&6V!%ڗws~Xt zMxs+ؖsF8fNQ/<55Bo}NQ.Űc[W8;BSʨS -=ur8} -. -< 1 qÝqS2rgwdF?$+?O0Qm -[kbhBlz 'Malz[ L> rB)#E逢\Kp3i K -"qڡn -k:b{ g|Ni &f{!\l vV )I0cH`* H|"IO54=4+ݰS~"mX c>!3 `{4;k@P<f <" sJ7N,p/p#j+Ue#N \T2ޫnR&R 0+XƯTAl}h8$=yAPa,":aBoP%5q;* -~^6-stj'I&-S3vο`9 P=!nۢOi -:'%TEBF{e&dUFZx0(]jZcoXs9u[9譜׈*l{0)UrG}51|n&P:}~*MxHU N-}g1}ti a}2+Eu9#H/gqD_n_Ʊ3St,}wS/ZQn)KDvw%r6-u DS>'XVWy>3rR4.ma,!HM@CGJ/H_{qS/e] K<kQJ -&,nlP#? 0LlBJ3..=IA 30)S1)%tW>Ⱥ B3č;wWVy21.p^x=jjI!g"m];=UT"3āomiE:sHH/hԝ_E"e\}4ƶeî>5ypGv鄦M_z pN* _&5 #MnP׫ʄx u,Y8Z\$67 xb:3m'dߖ'Y7}{vj%<o/VT~\("[#Ȍ~HV8~]`<#,#sM)/Єص;K{%.9y;:  l`CO^oLlN ,:|䏄RwgFgQYf| M!;ūh](Hͩ9EsEx_Da}% ҋewD(<_wt[QΫuL2 2Gg=2ƻ/;} ͉n{Y٨~/B>{"#Y@GRӒei`u(YAF*?Dul񆘀i1ڧ͗gRNÀT@:_2DuMjhzhV} ]Dn5?â~A26̟?S$JsJhC.(Xڰ>u|B*f6 >)e9&,h,v!րxW8_C"_NQb42za]E JR2<;xDᙔyn?`RS>kjcb664[.)qL_t8P{1bS:{*o1B#CE,UIM#!ϽT8.GǪ6Z b"3* MG3fUQ 3ϵNWq-a72"dVS7rF2I^Gc8+fJrWr3-ƍj`ݾ =)mم -`śX=^6[m37 ,ܽR%ӧi7=[nY㚾57+To -D$q]6]9xfe -,6JlZ<@,Y6 3|?NU(;i;+-*1O/|digz[Uiph f\%*f4䤇h\WǯX4B_ɚ&.<#^1 -s]>w?_IdՏK+l4I%^ʅ%@9x?8 /LX:;?~`58j_ -`R5edCtH1>m F~@`'E> +Of_\G/\}z08)foԣka/(Uԉ{獧~N~tFW= `Rզ_b7,RJծ|'ɉiaUEf1Cvɷ!1Bc?EU-!5#:\p:vhM^Dw׬o P +@3V}ϟKCe+qk 8$WsUbk&m*7T~$9m*-bw -8S3Τ?40Ӯ(ށM(ɍD+Hvf/'Y6ݞg= t6=&d9!ЬS@Q.8hx.6|׆xF;+Q}ؚ^]qiZ -zQj~YdlK#u~3w'kHUOA!І\P't lDCB\Az|c9n}4|T4l|R˝rLXKXCkB]#qt \n|q_ yOoTͿz~zeg̉qpDձĉhd> m!wC&@äd}ULů}u8I#>>HylO.CS/xv,4/5x%lݼ*o#DHZt/j[C4@?E!ky,j[ayxvLud1V㆝xI&nh%&,smrM_UUFl{}?Mc{cm{.FywwrKT O҃6DzOXz.!'yGZ鎌 Ўy.;5rci33 @$)dn+;p`c]px@d7HT?\# I\"6CL@ԌmŽ)'e @R䲄ѱ60J܎vίIu/[&6>q4֠zq$l<"Ǿi']zR쇟H7(eB@7 ߅M[(ȰyĂĒe$Ui"ء7cmi`!t({蜔HMtw \b?/OON˷SzI\ GZG *j!K#cammr2HӅ,rZdʃEM^}0Iu  O (Ԥu_Ꟍ '͋.uPI*o7))Q,c*u`ʂiuϑB`}Ѫp^n2q䇎JPH6{i?05av0)sYx2pDu:n$sݺ7yM_*"ֶ}~AQr<3R2a=£qx 8a 43.JG`Qܨ|~3IO|'llh\R☾]%9cS^ƥA9wcv50_eNN]  0pb$ĦYt2T%biFX((WS>/F( 1QN!] - -cݪvBg;)p\g=I'n0Z^PyOۗqj=Znd DȬ ɦnd=o aapV?Os&o+&=+h 7ͅOC%CY;sA>#7Qe?fZӧa%z%R{WOi4,[e|ʯrk'1e`=\Ow%)Q +zQlfuYnXg1 JWo ޱoqZb"$;P3`֝ObSnzܲ)ajnVHKlrYU@?ZW()zhK ͡n#BY|5xg'E&XlشxX. lQf~sPv}vVZETAb^JM¹K-0IfR!W1TtTX}s[!ҙ/٪0ۙ"W,2o2 -J[5:YTW@mjڷMqm?:NfD QChUиCh =)L?>\xF56b=cx%#ר?Aq-@gɝ2'|~ceȣٷ&5]=Vhxni"һ^Z~iLWKC - 0SmKaJQ#iJ1r~+pY{5g{0&(^2tv~ ykֽ~Vk,TYD Z*=?=ּflwNa |J`}&^ٰs T -$6S4C<#EdflMyUy/g -=ѦXqyEL:6yb"EK!@.[`[ݮ=>7mfk?+*)ahP&#$:OnKwVR̯LOq(JdTh0<ɲPNk<ȜlTNƒrS Ci bEGr<7FhViք/F-?&zEvj_Gu%Laҫ3Lz)]{*:*,jy뷣I Ÿb5mŶXG{'A3|"B_ZG -goTe -ud并-A1n(nw0kQp1-OMd=O4Mu7PL!L>I<φHum؎P 4HD[T̩`Vdl~[޼v>eن9ޝS 0p}ΐ._PjxVsILgڞv^+*,t-D[xmؕ{TIpdҒۖT@I7g-/(oMɩvsk5-by/cܮŵLd;pE'rH'M\nmqfKzݦAׄ'KyV {}RnUe;TaJ޾;G{J^l<8c`"c@o7K]|Аa߶R<]CnEzAiAFNe%@0n -=EKS@BiOP+)7pg*Gk_>hH[)_d7 =Ů#'y SB7o^;CoK^8AgHȡ(5!rDe-SƘ2 -M{GDto(&Q&|JVtrf7Oc+)f&%2@@ *s4†Y#]4+kB#A]=y|b;b5 ݭ}\@>X%0R/GpvXZh*UYtyboh,&EF1Gٱ v0WAIhj3}#jsG:}4`YJ]oEu MBe8Y G 8_Y}lΓZK1*`$)C3iS.=+G@ a v0o{+[*; (8[3 :++o,']~5)tZ/1#Dt9ZUAxMͻM}w~S qY1,A+-p1^ Ra]h6oĎosѻ\9:yzC[HS6N+~Seh|t<&QVo,ʗxLxRBq VӣG[Hy\UkrC|ɠ?yޖWٮ8U/wW)4zCbG{.v:[YVf#YVO;ypH}45zYJEᡢ~f6gLJp-DU0cLTnHr ɭT"Z:pOfU~>%kh`+:ğC]!ŸLƠnV>1F1ذZ.AP4$_P{u2VW]W^Nl !U`UL® -ҢuTumvw>J$L \ No newline at end of file diff --git a/vendor/endroid/qr-code/assets/data/rsc44.dat b/vendor/endroid/qr-code/assets/data/rsc44.dat deleted file mode 100755 index ac3b30de9..000000000 --- a/vendor/endroid/qr-code/assets/data/rsc44.dat +++ /dev/null @@ -1,45 +0,0 @@ -ov/}Ae:M xTf>c2)J.D1ov/}Ae:M xTf>c2)J.D1Ae^]Wʗt&$̓|/(d+Rה\>bLq>RN5/6TB["}/H+I5ރps`jiy6[> $#Jucn!@ӼUu /bp5s@&i[ aQ+ -dwvh,j}u?; Eb93RpyYP_Ol;+98!ZTv.AC}J1uxw?p+ᤆZLV(J0e4߭9*A.":4f 1+top72L_]@"r*h -jj?H-2.=>l4~ V­PZ*+P>_F1˕-!,6JOhoY`4a@aLAmNO$8弡҇ЭB[>i#-f&/<ȯ'\:^fp$ry!vgW軞)M\:_"REߙ<;9V!p2& SWF; bp"!7>A1u U}Hn5daf؉q`<UZ@}Rz\œIhxnM -fcY@)I.Bvbh:S<`,_%п{[NJfg|DkMKc^V:j&! PǔDO e]o5F`3L|YX:2k;=5!l|HQF2kmBewHwh 3os1JZ>KC 9U G,?!O@k^ Sj!0LGҶ<m¢VM jq9 D8Eui䵫#NL<s)"֐lp^c4}>EX*x3P%\|K~v&?rf9Q+!p˩{V&JBR.A$-t@5o 6<m.x~tT3n`· Y2 N]K$kN-\S9}YV84&SGdb$/}Uj6;T.+]5h8t76hb.VkQnd c(DmT/;n2ioU&Bfq}'_5  -~ۯZ5dq\z|;ChU6GTVQKzg`q _οF(jb"Ւhpn}QI|,b7ZaBXle]+;՟ch; -,CZvY(2nzʃ9]FG)<چwOQ˜&>ڜWH-/Ype_GcU| FZ$M }*KHcrSA0L^.x_ۍCN-9t(I<{oHBӮ1XAW'(]M}tځvb {/Nlk!Rt?D/xvrBdAM,L5>KUcNqVGًǰz -O~;*t9v7 #DBn4|,=b?(@j"E9DA N]~YP=J0+i|ԏ[ȇ<o26x&Gk;i YwOfb KĂGP}.=a:퉚 Y.Q2e=ƲR0\ě 8tG#Ax"(Xy'sV~ܱNEh}߆*Xy?@UJ#ͩ=Jc &Aߔ$΃q֚Ƽ=t9_6 -LB= Jyu9ϔt[kN-ש5) 5˞%;j[fAg?td֫Uvz ғ/(?nXW^vT˵aMp~K[jBswq,+&>'d5ɑ"kIs- TEXѵ?jv&謹ݣ>"aW t$xC4[$f=޽b -0|@crXS~UBg+>n,l[~|#/ XRPJS<ּB`qsx,*.kKYc7(ISOixmכ9sW '>L(khJqb+rp$4wKFxIRD=1 )OhŢA/$eQMUlC6 o|3ŽTfۡJCɖ{4L8 ~TvȨCA&u )aڻrVBoOkLՔ\H%YZ]gj7@lEeꍴ@Bj2*ɉ٬Wl0qMCr;}_(xU:y]\I'թfE@ -d[-/ղLEV!-sj*m2=yu:+ipၵ_ 9H֜Y'ZI(r%=phxL1mqZ65^@ݺϡ#3MK8^F5bחVl- $n <\AoB3 si@*k޼(>R5ȥ!:Zh{T؎37mOʢx]#*f'b"2?J"u+-ED5[RCTܞvrP!WiŒgz &KBW}FG؋|LǦAeđH ^(lv\Vj0C09+٭{(rƚX -$ND3<ut.pon:lЅ0\֢͡ȫ-aiP^(vmT, ѹd盱_ʠUnNVuXp7MGom܃d15>ު6L̽,2N-jc=1"KwCbDζ9G{=-eҏ), y%>=C㿴jwKvߪ7l$E&s/]u'KH)6.1eDO8; {fEg⥳\#"Q=c7PkD:?9[<ג*EZMrBe䦶zC…(YpIOɟ'Gvnt7]aX_ck n:5!Vv#Wy*Ɲ3Я㙄2ݗpav/*)3۲udD؃87e#SvXPd:rq 3Rx o'ؙb.z6Um^S(B`KQtCAcڰ-L|%!Z^[27:ʾo&gq<0"rc `?бNC|?vnS yMB/)m~aU8 [^oE#ȂX.j$ |QA)V-x3MR0EDHdZ1;: f6^`!˜w0* }Ey-%[AvT #rhK}cX@Ѝj1nrlw,_v#`ZCn4F݈ - hCskXz~P<_0I=ԫlw4D]jb"oD=' ˊr1sUzO`V4ݵ,qRQx*ɁsY"^\]8rlB%W懍xGdl.LIu -U/m3v89;#Ĉ1~8Fvf  H -o$7Gi@3:8S&ѡ - \9k4z5tb( o#Ę_|@%^Pg4rnB0q)8@\d(zy`9ŕ+pQFDP&GaW6o_؞-*;{SLϰ%ߴ<X8PN49͝T۰љ$~oFOzy8{ഉkә18DݔO غB\㾦bTf|2gq{L%5H )1ϑezErlç0:dMTctVaIOw*f%E})z%r]Y5 g0A.Zѕ>O/jR{w(= -JU׼$Pz 3SMNnZkc]g;j !J,v{i2̂-~cy"}G+Kg.7mSWX?]t6Ose&W@;^P~w<*o 3¿ -Ú%"eM&y)'LD~U*![+X=o9f'w+ ocXV=YL|NC߱j?W:D։{HxC"'K?R}(%ʛ ̺>pj ZQa$uw~M9OLEo[|D®HPf,gQhA:m;Dc1 i'6E=s0hSHzg#`5u1I487VAG-{;7~=eϒ#w[ŚmCEҵg|Xس6FW^2{1c -w5*eq G4\7d|KJ򁹤ȃm!3hpnl 㡱LʔюHx!e74 Q:-oXT\֖/EnP).WBҞ]A<ӹ/ -.J2nbO;`16璦͛8ӳ+r%!)NQ|: PДuVeIɻ'Q.U -NHh+@jn`3K?\[_T$4 Hh %-ђzbeRÊ5"v r۟'&gqUdkH6K8/MeQS^H3ʿ !;14اW0 -lY(h~J|"NA#0ߗW&{>C,lsRfg }w̫_/#]m1+h6p[7ՅG^PI -neQ<_hS3W1\H|YO&:*wM<+ 8YGLe@R"k] CIy c[sT`( j EƘkY&+ E5cUJǴ8Cn؊d6PK}"v ]xpWl -#,UD$@>*u;dTïEQ`x^a|vӾPmyuZ !5VS6_-~9\t<͒NOM̥S&yȻ4%i1Zϛ^^*SfݮFżOKɍ @G6w܉ k{tQoy*S_k,B ZԑTIdz5;tVw:G<76?>lܙKъa,)Jϱ^[(% r%NmPQJzgyE:w W'sbx”iǙ}a7,/;@*GE|ξA8?Ng^3]@1ŏfibAxso(CIB FJ +?It`n'4C,sa ﲑ %ڐY6Fi]rgظ}$."U51Au) -]Nw;7 gqWϲ{r| 9kR@b0ǑD hqrVM,. Sd?ZVz򼣃q~F{Usp˟0uHaY;hed'L kBG8E;ꚗm|Y2"ljqilv1\ -|=Fָ/ow !0n :zmX_ǫFf$apij"3Z@Hqs. -ߨ9I!L{ZrS[=kaHM8ϩ;7:@x*ބfҀT2֡eP|mjW7Bt'+,81ǎ"g[ܭx ۘFiɚbefnO];G9(ߞYaFTQNAKm= yDd~!ϯ UC`9cMS,\'u^"PJ:E[IDV;Z]9jɝդM2$Ѩm y4?%>'^PJťhcsQ6)H!iO[ByҙMY%71@0L  ӝ`LIX'k$4Q 5 70rБ.GN*Ǯ Q -ʍ?@IPأMi`i.2>%]yRdϸ|4~87[6XA&eJG$Ȍ$`rV{bD?#O;3qrWz$KZcRXJ1GދsKbL>O z/(9w7Q!dv _{w|zKcuԍmGInR#lk\b -pv7̊GuS=W{Ѹ,Tʪl&^-h9ىf$ -QUuzؓydrFDg٢z.0an'֓t~srݶYx9T>[+=RHy^Mbz?#8VfL$ٓ42&[S9G-ugQq<c=)P#Nܷ%X$4dKiB'0 xޓk}n° -ƕu t}jBi>g_sFT'fC/՛~:07kvVXgYRi}tmH/d3W# ^sSTRfyȈ pnF:˦ wgp6nAEFj%zB/fl2(;uy<8Kt6ifO"N Bt^d-힔zueq+ȧ [¡T?ْX -./m(\lG7P4.$>Ʃ}sMKx| ӣIQݷG*05̬cL!Y:/Z2OJAB=ydnt{aL*I,xouUY<>yCem~iխ -˔fVpA&`D?U;~+ ,xB _Ec)N:$Quċ~tƁ87as_ M#5k=|!3 -N6Dc)$/[1=RB+3 Z&_QF^z , D2XJI!j?t,ˮ`ok%sdF n{`S(*W,f\d K}7]:a9Vw -|ym/~(Wi% 4׿ @A՚$UuS0&R,zꕱx9h'U^Rڃ& pՊF)\-H1I 1j}zhgϵ_?+TJ'HOauRZ0 f#8 `犈%"bkevtIlB,5#'?E"Ń$]vjp [`{d3b)&У -s%ٟE`Tc_+?#C;Z(J"w! K—y'" \ No newline at end of file diff --git a/vendor/endroid/qr-code/assets/data/rsc46.dat b/vendor/endroid/qr-code/assets/data/rsc46.dat deleted file mode 100755 index f4764fd1c..000000000 --- a/vendor/endroid/qr-code/assets/data/rsc46.dat +++ /dev/null @@ -1,47 +0,0 @@ -qGp|܆ PiL%ٹX 6wp Z&qGp|܆ PiL%ٹX 6wp Z&$@>.ҘOyJ o:l;($L6y>`!9/X2o0vC'Z&<b6hj>>HW"]|\-+@C}4t؃vP sH$uk!FZB cKqa7V@ -Pg%90ijDZ-/!;>!l=3|Br^kѰd `͆. NLMx -l/=6ԠJ~Mi.]exs9p5L#Sl ~XM?||ǮD[#oZ!V{5h۠搟H-]E׻rº=K_ep*3A cMBcG? U]Ɩnͬ)Jr`$QqGZ^ma<˦7Ce}Jف ԎI2Zw]=D՜7SGBv|Bz*fw} \@u8^zlD -V%R;-QCq @) -en]]\w'G}rj7FW"~+cꮀݓmY%oRKP/26wqC[=SA:imF޴Bj _< G6ū]0=#SɱZy2yC/#W9zo]O" qVZI3/T#b|硺kizC , 7! $=0Y+Tu6fͳ} -fDf 8ZTie`$&-gma5 Ë'0ƚu~41g܇E(]R3H 8 n-KQ2_$D})V ;D;@YdhvaTV: 6灰LGb' -Y ɥƥA.W;[J靁<{Oޤk^adl"ⷣ$8$ӹ=yp~Hճ />n[vh!&d톶z; qtڌuE@:"xlK`zF=lHlOhG^Tb9-qB*횸cjh14լdW^F'4rMs&D⣬f^F/;ssL6O"bF -Th';J?EeL6&a_i 2{/􏻆XnB1@Hza`wVl2{,R.RN 3ߤqeJj꽄&`rYo  -̽̇.p> /UH -LZ6: Wj{i N`MvMR<6p/NJZ4 Ii|F) -,I*ih?b/:P5f՝o#w{xYueXMqI8 uAc oR}mfra{q|?zX)Ln]CT pvUO@o2~7g -ܑxU [uCKV%HyQӞ&};@nʯ {k5C>0w;89uXHiV sJt*Q.4.Lmhe\)NzPZ>x^woXJ'+$\(3vm̪JX9H!IQljwT-#'0_XivP44+Ƚ1FhŔtYc`lGPC=}Z+Jț:-90Zwz}8EnWNK Y9=ijNiRomS|Ջp@ZdA;GHRI"G}sQyN|grlmR-SK]ō"vvC!($t/l}oN?QV36ƫONvÖ4>g5{McBpWW:?\Svy'xU1]ּD;s[oHe DW*:z/'<ˊ+[)G.Lȃ}HQpHoz}{.6^U|Y+ '?BLom ƩCtjYbp~׀HI&M`+A71qQv蹓_tDag,3icQzuF`FW! -Ŝ錾6I)d:j71g}ö!sY-S؞б =črZ(T3y})miAbhE9YnY`܈I*>PچD2kp<4[UaȮN8AhNjLi!4Sg[Eu9M^vxPxV璾Ht"b$5^zք-Ů:W,F*O柘lc)(D[4_:kNvI ]~ʧlL.g[g؊7̵]m~NqiD@}{rEһd^k&04܄byM؅d2(X:,:UvkXStYaХy!$\*LPvd;~\3@IOfU?({GSʔmgL 2@ ]%-%Rf5ɇJ( d҄ĴwCRf)@2g ,+\|u^M7;lt@,+CT>[ [Ɛ暅욝ˤEm5)cx[l^.qh!QA<(ؙ$6t2IL[{,|.fєK r+?R*?XT~C^W& tߠiU>j̷'F=4ɯO/#ԾSraӭy2pe gr㐜 p@S IQE*!A~c5a!j _l:~;Y#肏7^36$'ER8s K)Ã쪞mdnο$ Rt6r2Q?`_4n9YO /pi?(-<놖m J!Lv? ܷOv'2}#/UM$`6K(XOQLCCY"j|`vprӟ߬6TY0 ŒwQK^*P:kH߳?ϲ -&W+KGիzJ$\h\}ESЏʸR<9| [G :!}E"Nno5A1EOUА(@F٥IxȼӲ6o5h}$V}xϡO7 W)[~AgB3vl'xUUP}rMog7>eA$[I_!bƷb57s>4?.]Tx_W5II'Kc/weiP E'h蝻**MkTsXaNfL:Ӡ܎G9_1Gr;Kdg8 D^fB]7,ǣ NR5u&5>Lj]H,T!+nɰѮ{"k$U8:شѸg‭uJEKw<~ *Ւ 量Sg\bN*506(/G佪%1W7> *cY?^ZS z0x3V8dVP5SȁѬ˪ŰuT~|"Hs:UPfWI] )DZq9\JaFg " #IV+-ޜ~(y0[m|mZ OQ;gUJ䋮q30&dʟ_ j%ߙ(YflKӜ<31h2$|,jƙOr\r*F{"ҫy#B0) -J'ͱ3i{?#t~AOq5N>!_be.#v/ -/Y1se]^&=[f(`oASp\:>1s5ޱʡ-齮T7t^N#xQ VR\]0 0 L@H`mQu?%Aܐk#;=s\l0"VqŽN~k޻ڍ.Xy<"흟kFzo[؋hjMy^@O> {EԲ$#,LV/OY>n6b1]NpZn[\MFw)Aa8hOǃ#`)YTܲ y=T|ds{xh+-*1>3h"3D-f*0Rzbʎuܾ׋]˝A"e+p)ѓ _B hcίr e7nnewuW@cǸߢ}`gxڹ)(ә_fwuoA9a]u DO H Qj8yZAtXq^qS缰%jG- Xx "NBS_T#-R!Pht+ (Mw5 "S-[ؘ\_P%`Pd?pؠX<Β8&Ao6?,Ïyζέ 8>nC(w&Y,e - 8-OǁOHB0xjs,;kt-T1Hw45kak$so"L`}h=SE&dPGcځ:V5 1fv8?@$ sr0kQmtXt֭ '>½W96BH)Tev{a -+Qc۩'r;K C ua!8UfU%,$w[~P65C*yߡd,@;(ɘb\-W i=_MC7'cFˢ\IJZJj7P ȹqO1u,?G0sӤ Rd+y춼] Gb֔3g=>}w~[TSB&XV4.o'In=(-u<vOA/XV,%aJ&~1fk0 /eƅP{#iܰ;$J&%U,|@xݿhDb)USVl39OtF|W>=щ]n#6$64k/H*Al1dC -!YXM\]W54kVIڷ&M -s 1#*4UPj%C&o~T~(װ9L]Ҫ|ԅsNzhyCɉ^ժotlIhvZ_sŌO~(b|4tMxaFa/(w»G$őYd iʅ@Ϋ=%7KṔSɮMݬhH #[ܪT3PJ ӈ9U;Cl,:d~hIr.sM&^(;2C?)3g%2iB[KbZ n{)E3 <(<+W~I_P$Zxq:1EoS/=YkBW~#뽣ֽlEٱ -gfԠ?Q'G ^" ϰ9EjL#0#sNdF_S^ HA2l5P[s󞷢A7ay0nDYHri(mC"ջ8LaK,WD}ϻ#=El45ͨ`WY@/k'8-7.DE#besq !}'P"Tt/{3~yL0V8.KHt& $0z -̦{UKќ ʄBGn>и-m_x%rW]u@tB2e}5D9O.9jz\#riGxw!D|u%qto1jQbC)S=PqW?e"yMlOjo&&-cyLpe>2s+?IRW duzLo_;m5PK֛0*M{n"|ʂ-Hiow.% -#Bed۳d`&b{y+5kKT/ޣ-5ߒEEhx]Q>c ~3^ɾMgb툆=xI]Matk}:]rf Ͽ&8JǼGT@O)ubf 3{KPBT"v1MW_gP( ~ : B`D=n\kfS}ZNdeB!W7k63jP\y[]/X|Fu5V&xQQqwd7"U$9t ߱&RvGBw_|=ϸ6a BUFש!2; *G(ns%DäNLtNJub -E!m1-cl7~zp𚬗M7#uXoR"T A %?d1 -4yrSpowJop_OFxk,Q:(y2z4{ VU:6ѪA4;x-CaF?^]1>V:`i%г WĦ_Y 2QB]: -\نAr);_!>g'&:'M%дt1N]߸yۖ˿6r?j=8xMVŨdAl93LY`{%^*z UQ1i3 ~!0" w7.3tzr-Rcs'E2!yؕh[6-N+jv:B9Uy7hKȇױ2Y3BõlJ97m4 c:fgL/ #&hk|Z .7%P`DkxD}lNF@3Ss86qGƵ&)':e gڴv a Aif`Lȉ#KϾ J[[b~/,N|ȤALjE(k}z$9 blY;/PE?!%xf+bdH".X)/ݞzz|_SmxʒvۈE3h%*Z_O!䵇sTmCDK F `RNc+/8͡fePFe)Ҍ-V]8'_2 ,A~A֡Fvz<`eI;yDWg4-sk\(#yщiFVeql+ZQxmbz"<"A x6wD'# ֌޶ cAy£1q?x'[Jl>dR& 5=CO1pGo6?|yHFӗ{:=9X)㿷^|OlĂx dK!6%ka^ Fb۶*8 [Rтx\]h׈hZ:z'VAO\KL95q<+T2 \ No newline at end of file diff --git a/vendor/endroid/qr-code/assets/data/rsc48.dat b/vendor/endroid/qr-code/assets/data/rsc48.dat deleted file mode 100755 index f26e34002..000000000 --- a/vendor/endroid/qr-code/assets/data/rsc48.dat +++ /dev/null @@ -1,49 +0,0 @@ -=.5D,o|-EΩbhSU;u Aqkc5N=.5D,o|-EΩbhSU;u Aqkc5Nz\y)ojXK_#ZOSЦ٪v7[= -jGEr˳֌u|_tRwO7;M1%_m RG[ F3 QIn6*,z%gϖ@gI=L7YMS'Xok -{enQmvY#-b?:J;GgWڳ B92'v@aiPx3RNV1ڢJ 4 -m }_1afu>!c7QgCqlsTX2(?JCK>Vi^Q0XWUISsd-\1#ߒ%z>?/n8*ewANMɩ"sK2w џ04CqTWxm~BE6۹OG!vnYb$d?i#s3 >0U_qw4b̓$|BnY9樰d&CP~w3]ٮBpc a  -dl0Av[,%2eUBQ6|0`)&[k _ᒹ3(Z<5Y$扔t (<3Vv@9XC_(F<bF*9J|C~^-cys)p{TQ}OD>?L8}fp_:shu[%@^md.ɱ#`hⓨ?W  lxN)-[D9^ִW3V>),:N]6iUv` "KJc(.ST6BcYūRyV5xAO?+ڙkGWjo(sC;T'i07qxݝ}"x.oؑ"d?=ż,ty]$Nf@ZƥR%_)[;{ꈔTn6Q^Y& C BF.Xn1|~C'p?!1ྦྷtG#/[6Jcw 3x>H1lA}sɰ(:x˕CM^i)PY89z#ft1|\:$cFS;M~[A@3 y/RZwRzxк;_m% 3!p5t0D1fr u9f|A(GRXt$lE&aD qtsгP.|zZVWGo$ cԒЈP$s,(\ߦ[I#lWOK;u7ͬj9S]eXL? )Jo\'ugpa킴tN~V/U֎+0K,PyvMN`n.'?D=#CUaL7vƐgnF,T `PÚtoOV's\#ޭ?.DMQ~0IzEeX']8HCxM_l7xDֿ9 UEWs .dKmpx)ZP-k'{j9">&XU7 Ex'DYf1(Ծ߁JO>uS۱^vȏVH*[@$%,Fn:/oV~4(Ia.JDyj`ؽ,PK0gUB<{;tN @6Z5ߑf NBr/' F6^e ;A s`˶{FwMol薨Ys1w?}!#^&,u ]\[s9=D-' "~K!wy {@C/󛹇,78G刕'N%Z2kmrKŶ_6ÒB^ !gݒÆJz$6Z_E:w4&3QRBAhHzyNꟼ-@oܷ -D !lÉZpOIa`•/v?y"f G]j>øa)> -#w*]; y[p`cX$`czXp7lZaN\jU W#5=PqsuѨE_F+ Wߎ N^bR@SwifCcR$;0(q֔ȉnItOY2Ͽہ] S 0<"fR{oU4L u2e!U'HqcasQGrTB/jݥ*CH2i6J ovLVmݶRbZ9!W:[$FJ4~"blotʲNq4\xavrރ+΢ut 3۶ wyRAD#}(JcϗpAn t~įo'BCIR{V}Ei0۴=F\:vMI;P^+,D$#5Mk4.Z&_|-z+yj4<2B\N̪EŊ?OhJ{䎦 g}aKױ"%땃.SQA ce,jt?`zd(KGqi`OZyդM2,9+3$@kʙ*<[ H vb9DLԡ}ՅJue)Ьn lt>x5|eW MY2JR! 1Ɔw\LH_sFʞzAV#Jov 5Q{ lm2L?>(C}w<儌'\ks;]bK)翯p(Aa{ޱmi՟"hW*>,k-N~BbaSWѽF^lq eƩf9| -b4Y,W-t@`<"&X* -miWqg}Pa* t7>kR,; priAFGe._M67=%l뺌r/qBԄ0kPY1߉{3-= btH#ƌ"vAO4<*fۭ^%q?"&S6dLm-x^=a|BpEb5 6w&ivӾ*J,.9K8f$>BgjsY`ψ/bi(̾'F Ib\2<&r!giZwܰyukn_*\f e@ArEP2ێϤ%i HعIŝL>*$15ב0npDK~A @cS,)C{HXP;/&QMFy3Uv -nׇEԗ>/_!5yf -W1k8HLnliSi[r_FpLO^VA`X -M#߹\SN~zFp+ٙmldߔĦK~c_=y?4ӘnUÑ=܌W{6X[@(y,8iM#Z+j!DACc)-"ן|֞({Op.x 5Vm FSkȿmRå 5G| YFe*Tvܒ*#&`C^ҩ;W[j712atbdc +@/M`,xD̤{i}ho2 -.@Y@eukw*gs14qߴrBtH'h9kF>f:p^)BsSz\Q|LƀЉܡiDǝ y'U-h9[VYc a]@!4jv]$WUH='\u^[| `qnaR"6-fqۤ}!u:'i F-MPOƃ3o@[6tKT|E b􎏟/H^FYδD. 6CN<Ɇ"kђ]}Mm`2uzt8AıNK=l-Zc+sQ -jIhD㓳uDJS*7\/@Ɓ -GX~!#,P7[X_pɄ<ʯ~/Ӛ( D=]W3^13CU(d,*X.7rVf] A-H/T =}[]ژYxr)GT~B bI({& wfdagxͶm r_a=;REZ4^ORh[_1S=ؒ?”pn0-.٢978| -Mqj"u? @U#da B+qc%ZҒDFXfn0 ă9kV՜)HDbUk]2&Oso !8gqMF1}_E#|1.I9SpH-nXb D7.3ߏjMYeyd:~| 0Px,N}vyɐ6]FS9|!jB(폢ʳ ِԖRcCP.&G$ҷ#DeOw=[T+K%|Xtz8j腇ʾ ogr^H4ߥNiZ¦gq5:O0r =2ītds\$;i1l"&jְ`_H%ǼzhV7w}[h)XGOyZ]x"DϟL{T%8Ү7(/ pc"XȨNi`-wh>WU=yà§T n3)e|֤]Xyv҂&$QTu%iw;&+иKp [)1-#%c\lnzJGiQ^턵`֠bf80Z,Czw^씐(}vOӷTy|Q#FG'A/1) O\m# <F'gD QC)qӞhxT$GJUu õg3):8 Eχ%J1S&hxH/ꯖiO63;2I~DL릟liȘZz£!ѡ -4#2)j@l_ȁd~@Y-q5W -Cva%ce]9hbtTEYU?Lg aTX\rp$H|ׄ> ^P& {GDa չpHmNb(Of[UaN ĸdx9LBQ=Gw}>60 ܾT8\Ć'>+b9 TVE-tG(6KUwq.Qaʀɂ䅊dUC}J o '|TH bj?,'LS;k]Uv 4xdt~rYwؼ9g q`G܇()s;{IXRxj0h٣]Џ5zTh7@S"2+}t'N  aZq۠~mA8 \g]62nJbSGu?EA[PӑwrvgKmRqם{r%ùz."t6[;sRT@du3or ~f}Υ$&{L76䱺EFsJ|= ܈J(n8:) $Q`ꖅ- G9#MCy^8&]Ѱۣ v^mL[q<9*?A!f1ܳ3|2^B-^XA/ԩk)`4 У䖧lI؄dzOaJ87]BQkj[̣4.b'p6-ط x54"WXգ{hu,y -8BkbevT?~]MQ"Il/QiB}K-`4z -w85gmxFZk?2r󣊛%R_G)$Еn +-}|4ڛW5;$Yb./>L|07侌)OeT:*>QլK1XOkzG$/ #BgZ"PypIHEIw1_]"ŚF)%o3K FV#Z3k8/!ڷħ=.zT>&Kc@Nlhn޺\C0Vm/ciOȥ5Qɖ qz]:k~ˁh1@΂ Es َp[cn\"e=vV{Q&I-ܪś?zlM Pʮi`){2+hȈ'Il4 -;kOXh8U{NH4:yDfC )\zb+9`m _ )Y9 fV}i=J:pL)*nD%E7k0uK̘a·]߭bޟ{m/dkW&C;b<2VX:?t9K}U -l^TC~hy=*4x{vT MF:W'p -P?va"J\TDV ҀI8 ROA$'13.bCF1*+ŇJkh:ЭiXAtigM^R\Q -Ȭ͜%4ަɟ#Ah.hs:2.˓d6I5okXz0$rfZ^M=4+Upm8Ï , JdT' 0e4xL@ò`yTxHN{gl#w[>5! QKesLHEjzM:=5} -Wtle_׹k\9]r/mj$܄w'} -QiI"#,37ybϒP+pGN$"ס|U>O]8$lj7,YZ1"G=xsq:f6Eһ.9wC5d nBGΰ]>`VKAUIyh6L5j-gzeoBō;%$ -Xr7ڍ-+YoSpnx4WKM8 -{ы%2*]fL͍ɀimqS{`*iVDjc,=y͋Q!-(8~$/, jڻ0h~strKH6lB2=% !LqxI,߳4u!@1;*?g -˦HPtŎ6 $B1_*3p2@0n`zV& -c)|.:us믋N`P"3/5td?g7Q n 9 -FZOuK/DŽc(x*>CȤ7vaSWz+5ԏ"!֕ʅC/$eͱnvH<%uCȱgՖ1^3sa؊\|?X/p!:{4%a&xJ95ꆣ6O1bf­ ~^B&tk>F_yV'AB0(xD:2i何M yhJ=Lrj[lsbke̯љGm}o Le㄁Sr+"5KӐuwa ²ИY?rUrZ YGo Ӊ^qaPTS|U$(nw:G›7,z~ Y2dkBtM5Iɯ35/-VjյDq>Bѕ7c^HS0*-w=&z%nڏFǴ'W/( K+pu(uY%H דbTfdCA,`:"eˬL.}>o0+Rk̮ʤڲ4P &d5 QK=b{!R\atC EwD3 f&^j ~n)$ \ No newline at end of file diff --git a/vendor/endroid/qr-code/assets/data/rsc50.dat b/vendor/endroid/qr-code/assets/data/rsc50.dat deleted file mode 100755 index c3a84e51e..000000000 --- a/vendor/endroid/qr-code/assets/data/rsc50.dat +++ /dev/null @@ -1,51 +0,0 @@ -3:ǟd$f.m3:ǟd$f.mft#Y2%Y}H#'Y\}}xw'>a3^z|3SUbnWNT=+O=l7r7,D!ߤqGB d,sc?;F"dJ F&NS=Lcymc+xe +OQ3³HcYqCYYwt'[JT[!"Qy UP ϔu_ 1f,;HEЄ)"0n-Xq$nQ0&TT$$i{&Fh+hIA%Mf`!jܒD /҄[pz@tUiBhiUO:i:_K1O=<+k=Z_P/"Qw)pBn)y ^ nsnZuXm:{iK>s<kv0ɇgx0n&vh80ޜUI:hFWlQё򈦍5|Ϧz%.V%/KV˞<$@:+PFPjF^ HP *N&<8qf.m&{Ʋ{2&⫆NݨB8DBɸ  3 z]!6W!z)V0ۢoC@@c5Cky@by55qXkv?07w#U,9L"+StY>vot]"ZýMRD`ZKHܢ`Lg>HHoL(yCVs9W4!=<Ƹ,/<*NNSѰ2GD}G4 7WJEB &GԹ9&}&^I*I} סDp])J\=)mcS$C_)C&$ -ހ?В׼T> (w[(Ǟtt[[b)5+zxVz $U95p[np +5@pŒQ^b4iEh=cQ$f^D49R!9]R9ܴit/Җ;/|xU,m{fPh8w蛓lPujڛ!l ljvʸ<}ĸ ,(8,2``Lp`Sˡ%tWM]%( &Zsyo -R(osfM-}-r#MHb'ϡ.? - QjQ --J\#2J^,!Y|j#)[[6x3Еw:[w3C3eέi(C|LxHtgV)5O y)>m@@oTm?$׉u$Lox -{Q]l,NlۦNN恳 p\LK/c =KydL .K.y7y#sq5kMq7p9z5)@ӌȿ?x$":ULS؇X{Kmo>+Q-fY+,o#M[#Bk}lB7Rt2H%=scgCD@)Qt? `Y޳I]jɆaKjj.?~'= `n(]t"bU"K-"hڊWK yL;@LhF - XMG߁r#٘#DV|D[d;̐:{?GE{?:l{ŧj IlA<!mdg*62k}2ٖYGM2|M CPrǮlTKb O_E(u E}_R ⹦\*ϸG*l h%5BkzxmkX^xTk {_}dgh2Hx| eɖ:]5|"zdz]0]"b!Č0pZ@9n) _ LoWr sWLL 4+o*qCT:ݒ@ -߮ÕJv2] |5l9j"\_,R*zR1*,HR/191L˅H~(>9eDl N}ʡ˾!``ցp~ 62C6jD&|IPPI!a1Rj!Vua]LF!U:>=I c͒ZcL{Hrjඍ0WˍVj9;9ˢ/%hǡzƢHq2FB0mŬB3{mr]B{M{ wlPPMhgY_rBr4er4ѥu}^&1v^ѫ\]cGD[WtqD~n0>znV ̇ډ/>\ X?-̠+yp+;y+Bk -mxmKX*0 ?Virʼnh?mIωlhhdPI7WjG^Pp Xd&_#߽_J_I9轮*8A8JPY C.ڞZbe?bkZX mbmF& 8QRT4L$P"k̚Z,Z""WAFK =qN 0_T%e0y;t> 8;4>OyKJ;ԼfX}QBfT \c~&:8Z?O?EFd.;X1.E BoPMBH2M#\Bы Ma٫3  ι4/:FR7 <*lf7Itff1ʳQGP hè%m"֟.=i.c~yx-iFάR]8j]eR|ڀ=]K%~HH.ksH/UD4tyѦװ$mbm?̤$kmPk?B?EJFIsFqBۖ$|V -Z$̲VX0F*$iF.AnE&# -P9ARָ|ALY3sAdwI}m/J}Mzu#a2}2u6u a)R6~@MbkB߃k4bԀŲ^68 l] -K+{6±\}~ Nz7xg>훼}_Rd䫎E,dd`l*,a-<1¥<73-P2DٱĪD2і(ZD(Щ $Ӗ@v3CЁ|/9Xޚ9V <? _LKnfv?k;I@W竚.WF-F..+7<Qyši;u̴]s 6C7 @ߞC;cbu g$kbZV:.^Zgv3=t~ՎsS~WtؗqSKS5@<0'xBKȯ?ңCT'TspEqT_q:E#iFi ?B+T)Ul dWKud1=W-d=8=o- -gEg8+AVPRaU ||׍`/.3ب=NJyP=.@ -KM=K@@qoQ -kTm2TWI/6G"Y!Aj`j!+~ѾSeÀ/$'Jj6/?ְ"ۨc%@%ǣSQc -:'1򛬾Dtr6t~wD/btnwLw\mCv30%HL'W@#d-ʏ1t-jDȏ`M)Dĩ2Bw2,`#WE$=bg-c- -Ng<-2 - -B4GmJԍrA25R '$wޮ殘heVT9t9cwA "/@(%CHH((TCK\5XwLskA=O.;7O.I=d(O*j -rԿD -*s'/e{"?ZUmdN픙UU ,du=OTxń{" iX5Tm -bTXQa^brb&( _:P|_gr{MzthҴ pҝ)>@ 7nȰ{$_a{B8Ald,4lԱLZ=_iFM_Ei*&_,&^7I* K`^}k:L$oS*go+#q<;BoqqbB{E k,V @ضoG@ +ͥ+-m߳b{b=-A8݌6B}w6 }t(e?6  |zeƽ9YoXp.ĝdP.Ysf-Q_QoN;Isq`G4 rv3rY^eJ й_ דYg5*KO;K;;QY‘p4(Fgc][d`ڗEWf+o@=;+ؠs?4"c_On+$^Kh&:_&{F:hE&AEFuFO!lf7.N7u2Ke βUi*WU{hvE?]U?Ib$?{N^7{W߿S\! [~:@ WÌ -Lc@5CwpCWShKx1+fL;gfs;*+7R`۴"(D cvJ/`v|pvh9|eve99"%˄)%̨_y٧mn mԛ#uI8€#_JL3(4Ytp6Y(5~mÞ~66k5;e\vb\ۊy-uva)|a ӷ3 aeW9$1H[ eqC"8 %.dFK ¯KIKfo@ -{ohI^*g8d7 l8d I8I/N1o4~3tnqxTqgn{q&b{G:;:-G`NJӐac\|C''||X"Fw@x ЛM(#JD(Y5#/M\$(zұ'\y eZ !\ҊSFLQ BT=ߠpfxX=+= :́Ep -!4w -ʤzߡ߫MJ{ɐ-( - ;ͽ<7o;4oNo4BT#P6N -[\ևa$x̶ׂ̢b:%dp*b{hBTA7,A7l*A*ҏ#4 -Yٛ4I|SYi~Rk%ZK%:%f >c0V:b†4S}M(M~}YzDeDՕZ\za]a)cQCpNQg2Xps3QsXXԥ_ř17'*^Ő V6^J]U9"a]R!R2zݯmO-11~-,C1D#J)**¼:uI^%j^I3I,N!MN3*w|.ɠ޿Lh"h:"?7ihi=d7+fm.u+º94ᑸ6442(}[5}N٭/&cdp#kXԃXk -^ƃG|^hI-QG&}P߶#!V!j9!᳨@Hõ6(Gw (ӱWwHڏ%;~UHy -ڠ~~>y65i."6`'mx esx_eqמ0lx0k8?iW 5k"6*1HYHy`TH)[qS.\6U$z~L@KL>=2=TMg1mbF} 8-LFr:qk1mqs -u -m4mE & fa&o4ŏ2fHorݑ6[J56 2~ =^ Fddlg<Rs &Ysl,:WUxX\$œXTZx_XZZhE_M" ͦp:>5wģ{&ɳY[M6X'6L[xS{S'@'vxs|ZE@K؝yV_":9i:?l"1:7&.;KK$& je1Ca' W !ܸ%w jȇn|+ec()ycKX>ck>0TXZxbWxns50fqpx5o ؛Ex -x?m_@ -fZ -idI Od1PPOOHA1-+/-_f iq -*Of A*O8*Rt쬟G#кRa!<^G -rMYѡ)2rGxӁ2~2 06ua~bh>sT,QsoM+gsg B&Z_73;brv(C}[K)Ck\[>&CZ\ \VEnx_ vq JG1!1R~j@tjYy/~6|⁇օu(ln9!v]]!!H=:ôt\a΅0"rFkf1NǑfRAY(!GY%}#JC#!r]fz_ 33j9x`NᩖCz9@|wSSЂwt0Sye5n0gva${v~yz.p~[ن(˨N!$.!oUtFcgU~@4T - -QJkTg -kk{BYE?^-s l=7u?& D^uP&JuP P*AOj1#A 3$׹9Venzvףv%U`WO\q?([z \v+n5\zPiT $cCTom0X} ea]vezia\UexdUİܣC'xؙaCDҰUjUOĨ?="U"L- .=P@tRܝ/Hi+tH/%Ĥt tCyO)[؞) =A {u uw 'RU|n!*(}'S4!*M L[ S 6h ]iׇq>n 0'%OH. >sG>>pos,Xh#ص -C՗TLXLCCnTk$o RIrJ26Dn2JɪvSa' ]|VH?|S tH9ަ]TVF]x9v 7UEəXi!^׏| |"R\a|%aRvR ZH`ڴ`v!5%ì qއ׎0eV7WVZO"{ą5zZ%:Ҧ}ϣ%1`%/`>Q%y//sL>d)SS-?psllIP8~l8ǻ94gruÑ- ҡa?·WΝިW&H.L<eڜhY6q\5';5e'\C5eeZU9i +)jeK'×ЧgDŽpԗ.y p5T0U5.)F;=v >WhA E:f ʔ7o;g;?=8EG *dN\%a*H]!`Ѭ/YL]z%jwTev )?5 :5vqv?h>Pqk9#nj \u3|y\'3) F\ƞƭV΢U%կ[9ƺ3wV[i[):zvV]~h]D)ƾ14glFI*AIl˽AA!-ۡʓ195V HLtLtqLꌞB qn\㵋n5d؎QOW38`K.cWQ#. -cOcG+gQNX餜OPfmi޾Zpg qAsgT fpo goTTߥE$&OmN45xŇh{Bb8jϲ8 *k#`a/S>Cdc>L).S>);)pq-$0zmZ0;giS ̜0Zku0 -qXXԙ&2UPdoi}O{gݟSG˺wGHG(w3n1H}Ê|)9%"7%U;UKꈠ>+ $>槊d)Knv$m:$PbRIb::_PlOryCW& Wħ̈́4WgdͶ Qqr Udy7\,E^3޽^[9  ӽ]9ADJӆeqZfcþI;= c.} < 2s -bXnJX'Za 3['a5a9v΂RҎ65]y0J-쁢ۅ`>쨬S6Sw})'9qwڪ|~Ѫ~/Hk~') nemӅcYB*ُ<11t! !(~twD#S[DRYĦOButכu}"ƀjYUMЖQ"m,q7K7+K8OD74O+A+ -(-߲AQ1Uwb%V̘vQ0vTVnxFxmlh mU -ŢD!Xnn{Vp:nhVVPZ?:ߵ"yI")gbX-3^_P^]_Ru^uARz1,7%,6aAk; < iI6^98 ϓ88N%Re2ڻA[E>UGhbu|_auDPisE2 OT}xb{EbBBE2EP]u[F92M^<4r!15wrr}YDJ RJMǺXfNK-|NAf,SNY,jrMݤ(2lj`6Sڵ%ţ%i";+Fc.;8yopyFEI"<Cj}8EDN,βu>I,#5k=s>kߤ!3 #"_$fi:G2Ffun뒛Lo)5Oof|DŏxpX(?O&BO/8te_dJGB,|cU`efO)Jl&N?"*y|+eUYXFjֳz|;֣UBf@)FDžHt*<0c20^›qy7޴j҉Af;P߮P\ɥrV-Ϧ!2C/ -3"wJ};UnUWJn0xع>sFW2sxEnB8mkêZrZWi&ٶ}p; >@{ isN/paW^Q ִ.__tS!'z%s -R!>6%(|#G.D! DFC!K`͉a΍5n -I`!5% -AeA4xܐt^J"crᴄStXvc 43N^N`^@GwuH xwЯkV@^H֘ KKq3+aGRihTZ?<+_ 2GzhlHq閨x>x>rI#y@K}& +I@ ->3&=o P}}W .y玲e  -!5HۂPErA%r^"2AzN̓l*[( -2jz+H1Ap[^S! -EwKw75;HQ&!`̃i4H=>&/ߝqol\lNe/VߋRN5t/iauMoؗiq2i=Pq Xs `’l*DʸvX}`kq#lQ=ԃ҂ffe P%CߩEYשWP]CI|u۽zccxps,:ʩ{UopF{HWYIixzvA$q -W Z_UQBqd_^ ,f D$4v]/ڐtNCI3 3잎Wܝa)=$;`o|!%d?$8apIcmwOma/o4kNl1O4) /mNRcC]䴮EҿL]q9v70|y -_0q^ৣ]:y׮uI슱3=c栬i1ל3H."OLim/I\"8 -o"*BN?J0+ -B|lOJ"PF\aVG0$#[^~ [C՚m9.eGakB-*Be݇j*})?'BU[jG-9J -xTkZL?3whSJXSyL 3̇ n[\=ʂh!=Ѽ;D8Ku<8;+=1h}fr:)>,?k,5c_p"ˉ+O.ꐥC+4oӏ7-"%ڙ -ݙ hY_ -M*Jpj17rN@|rG#04]cb#Mr?]ND(7;M|6E|F -waLcVq*:U -|fLz6.އḾ&ǐ(gs<d,+&,5s#ɬf 3s\,a{9QGk1*'G5{&%1BsjX]v޳6Pu)B&V6 $)8Ɓ^HXJDdwI3ka;TP,dVSkbM -Br3$3?ci o(CzmC -cIBZo|3OxeɔrgnjvLJML(Bˍ(hqz|L^'2 gLU1ZLP>cM{m_Z;lPw`c -@L {.U+啟؝?!^.K Oj ^ҟK1 w,?#7ޭ&,ݓU},>AD'}V͎ڴ,!&3dz C8Omə9yTCm콰.4Fآzg3S -?SBCL*KthK7CX*SshE -˳c̵?c8@=JO>_?ͳO*8۠c_굫gosޑZSlthcSQql^@yg -X mw[tO"QK [qO")C í\y7f$]>" $訚\U ][]H[m.Ew .4X[SHh5 XX꡹Y;l=B^f`l%峺'OJW$^W -=7$휆ђ0f-!= $˫fk -,{!R0Rqܜ$ 6i;}֟'cxV;dw\ӯ+I'ICA5RzHvGޗуB"AJ~Hp #ੱ"+LILn,U1}Qa8} Q?nŽӘCC,q{^h֜b# *h{R^M#Ɔ>FkF+6k3bͺT,8[C󓴉kJ,+>uuAcCrn,`$Ѿ`%kS[#tAeY$p pRX u.F?WBXϲut.-= 6ABG7O 'fz]E& -b,%f\DU&!^u%jztgz$t -FB8 /?i>- FJs8tu+?ycjaDpaQDT6~`(VU&Sg6؞[D&@ddgAƉ~sݜbY3~Egϫ@Uk;k`H;ѷ(+76]FKu')r]g;\u-'U֭nn"$b r>ٷUdk&$d8 6>y"; -, -ZT1 (TR~9N.ԎZr(/5BݵM54jH1 nç^e>W\J3QT11̬ۛU Mut.a$έ=|.b{4*4uMD*Ė,NLx^|8wMU|vN%x*wuj{hn;;as2FE`[kh-/s 2FA[~&P/nv>Ul>0gUAxŢ" -Ƶ7Uш -:0F|l91˜09T.t4/l\0bIrIl3(r3\K?*Ic(~bw)L=P -8x*XeV.o1LuX -j FE)?1w6qs6b[7ۊ(UεC=uT076 pUЅ:)]fA0X_rbT20.N _(joLJb=K2]ϥJ:Ƿȣ q\ҴSр?\7{qRҘJ]Űy{yGlM -R7Lc 3o7AlH -4Rpy sg3H4#ȋ5@^)i YnȦTqH ef%v?qX4ȵ8?{=ݚqeQ4 ШP)l -7b<%-e@)Ib%KڨrsfH %f~-AP7< }5چƒ-f , ʏ5&ڌu.ײQ4CTzv+ZTQ_41ż07홻1kK=Y:P6k7P=[Nd6Ο6V_C^KV I0r);͸rV{;xC?6#˘˪bi|ӚQ ھ7vؠ?Q$\V7#)UGh)75yu;SCF:dUr;f75b)F@qہ'm~%B'E\C@[WU8%@ͼ#b'XW)~Fn8GYE+ePВ\=0s+2eזAm5dxYMLX;[8X km -|*N96muX2*;B9LSߢr٧1+ȚhqG+B1 - TYfȹ@p]ٞ02}$/r#: -/g}\hYw6:fohXghRMj{w?irg|Mv*whǹEXP eYi~T/;Y]nE"T+a9;{sz5~ސu2D`۵D~Tuƾ`} sq2:w~&Ƨp]z[ |y<~{TpA]i9wK<2ʀwTQwk{HLD6棲) -L^x'wPiȲߏ2$?"C3W}'=ƙ'5C2='@+A"U2nޢs; -@h`UI2s-' 88 ID6>=˞A8y9DR>? -Q_VWNjW玡3 -D3KW*FODV9 5^c;8$NmVoQc:mBPdUoZ5hiʮ3(+]s(qXb"E]opw(_@~ܙSE-Cp4?mZ7˼{#4iubp&EC'!X :2%F!T> 0׼3%6U'Fi}/afVM%aۡV-5˕*w1i|7VlAf-Uui%XpmGWi_Ł;uٔXV G|gY^gRwQo萷ǻRMgv3Ʉi o-i6X:4HoaJe6Fi/{ H.юDJNqTo3KpIƎNtTMX؀Ig.kǤ{\~yw"Iy+G\mZzlCǎnIk|Q]}!F&m:4GQP}V,d÷4_kI9NkLWGX{J=!L-s>< BJ9&|-v&](S}E-}6(0S & `MHp2^~K|Z錔pV~3MK,Y;oYT(Dk!e+WD -YEc/$,mˆ‹4%8l5PL4.l!5>]Lm9'_ >9dVLpm1FWߨ9h'"•<*뻂-&4%mqM,&ϗf}7m΃K.MxFRb -9F˚duhݑ -I]u dFݿbl8xvEvsPVnlqe N$qsR&vOZNR+ӭvxs -tăP/Z?vfMt͒PZmLRG DmH :@a|'s LOHep@l|s D vOGٸ赩 [׾@A'6˄s~T')`X -"bK'S&[WP>;Kr'<\Iq5P4K6IӃ^jwjx=! QwFZxPW`j -9Q^ ]+g/ -U˅x5$ߖ7UA/y~ۥ.x%]ߦ*t>M du-xcQ5nOR k}Q-6&$ϥOq>lbmRt Z 3Z?kRYpx$O G'?PY:Z`mNE{܌!{ԨGHO7~zE2rS*7z2I{(,ASa%O85*%<"V:Ⰲk5:&7%#U - Wa 22Lcj -?N1\[T ࢇt?X\ۅT d7Ea7\e1E9_դ2{^z2|ղEn88),ɴ#Yԥ!`U,Yô:\!Up5=:=T|:#h!f}#%:T5z& -&7P -[gVPrҏ`x -7aGVL##WwvL1RyZ]*N\رܣ]vgZʻq%C`F -,uv,rnuҢUy6!/W306F]yuz۩r% W -X))޶nNTEknAEY<+2Ok.RJJ K'>@!p:zvX:kzܦHXpO{O -ɸ{Y&_MNuMYn_aп{3 -ܓ^pe@*@RWh$&"sY&u/]WA<(ldYeEDEO~ Лwj\7oQ 4tj0LJYOrםO^4S^,Lya4)5GN𑺀 9ZY>֨m;G4Ҁ,v(ZO[=[\?oH_]"0\O"h?r*c_DžB0TԷTKTib`BK(|hI .Ԑ[bIS|Ki2f<[ZQQ9` OPǖ{FdM4JՃ LO!MA*Zb+bE/+og[9A\EHAgG9Q+z<\gg]4ܕӉ#2Ҥl93j1OՆ# ѶhT}h(6T1XQpq A]1՜JmT9]mmF{YDow*=;^{-*Ros^Fvv%d.iZ^@.Od -)giL%{ -^$sdjsrd /\ٺ}\7dSRPY*$1||`o9ΪWk6wYD_9s.Wwn -t`?C_1yy̷؆QN1iEgدE* 8hd) ; RK;zpTʬ\bcׅR0~bPyl*"ZMbgyib "MghlG"Yl%'Ķ*n P8wcG z':*`n,l@ઽtRc݌>鰞#xra(yİ+C2VD т`m 3[+YĨd`\@P+ ѵzdBʽ}Z/U) JtH)O;t }]BWsŔ/ts[ -'+gue~!n -(2sׁ-4eW~8^ ljf- |^jqDx 18믝}i[_ؚ]n>@fEn,h?>e[=f}C"iCBOcNՌ"p4Yv~ml7А*> 4rʞA3]L˰rwGZ*Y=F-NjIu-]S)8<anuϭ]~(-0HI'nF l mbH+qXAIBwތb^H}AR iRWnjkvtovnjk!Rs" coSuK OZX -<Krங^?Ϡ9,wzq`W9VQd1jȅqJHhH{tFd9eOact&XNu9-cvJSSvIpT -rlEOGdT"vWr`VVڑ4ԔC)A=SF -= )AQ>&p`uYϣY36Sϝ0K!];bV)5s6V$0- !b)3@su\~\<-~QtԈHǙ0L21op~;b>ooຯ!`dH'^FGMt8^ϸ'Glt4jjYXb%>:  k> $a0Yz4!eQe-ФS%~:$uyTCГo:Š@u!`a?`/{ah -\d653>/׉5 -"]a#a -7lHYVg? 7(%vp:9DWlj}k`F3mS,_4%%ak sĥv¸,["Fvi@c 1C+kǚ%50#7])?k`s_Y`Oku-f Eo1z#罎p۸\晶[`Ԙty*Jӟ`Vfe~r 4RxxسPAL&Q9VdeKؾ9 QM*l[x7C0fVދ;"Z`@!qM8\=ZQ|soƋLW‚Æ$˅%oG:,g Gq!jiTl򣟳}PCxL *҅$əLQirn[__WZ?C%#r΀L+Rw%=$xчm1'oS9kkD y.6"gkb._H&{hrS F^Hc܂3O23Et~:7lD&Uj8}+w#:8)yu{1ei)r&QG8!}@wH_656n/dSC@` Yw2qUJ _thn!LoL8VD=\5_p};pY^(wo!fCVGG5ɝG@v XRqAW0&<M$yl*qɎ\ !2EZ_8IPe:Jb.7tO)5pHgugÖ"C SFN@PW, yy쬄ɤ,ťԭRF N\ϕz>-Vo#9Z„p[Gj$&$( PP|U֧GmɕH8NoeVIQƹ/L8w7z\=Han>b,6 I k ':Rݾ 0ǿ_s)~,Z#C^|^d۴dxh&j5}Vysn0?ZJ>Ddz)(^U\wSl>Kr}BR5>D:(Y=Mti\Å@ñ)`~Ҋؕ.dFrƠΐ.!GAv/HaP)1 #DӖ ;VݞRy_6SWKuZ> ڿ77YV`P҃+ 8o1N\YgjjFa?7׈>ߊz`{grjJ}Mc,=a-KEȪu ѝwC*̹@#Kjn{@6D;7JէɺOд26Z-ɲՊbA!Ց+RMGL("Qf/KsƯwk{< w -? NB2qMM&qlvyäO;@+8NA'Zf5_$͍WÐ  -]_|"i 1f>EڦXshJJՌyX;7є6M9";}1H&i]L_lJ͊[‘ q7ݕWmXDA!]+@bV֓)J,jb(_cTR [o Um-&EŬ+SiHx4`FnR~)Ie]ͅ59["Z1$MYbFgmm~LUA\oU-!:1q~8z­Ƶ6/qC-U4T,# ̳ף6]8hϗ1QVZwFb ]hcb}'ܶg_ӬD6b81n.4 2߆響ʥf](K:Nd~y~J!:~ J FcV 4(JzHmbNަr֭.YO9Jcaz-GAp迳FM }A3o'94P0q>@2\<*lSDi}<!)\L&A=uq䟦6KKI{_LW(:TXWf`6?In t hCWQfe84( edm*ftn؈ LŪpVxdm;Q p7m^z-&g.F1H1 -)F7<,t0:pRWabRL+pBOwkeK[ɾljl;-r#Y{s%TIw0fXK{4]Pީt^Ȧ -%d׫u,ѷ04q8a>E6Bޘ*!5 Bݖ_;B).Nx಼:P-2AC*B) {x;ǔ#i!՞*u2U8u0̣:y{eŜ<ﱯI1>3"Wq,Hv?.> -FYGtZEӪ,П5=K竆LO%_|yGL9%ģ|;(_j{'Kّ/(鰤`ULx ""HtRZ`g>#iN?- zsP#Tnh{teő ]>,T -Bd]3Ӵ0pIU!gt\o=4on6[UuK\l%0[l]"X MWn2͟V3~:*gQRj=I0,OM%[QΓ{1D@$#*X3Wu=Q[mtEfW[`SL}%To:242_EU(X ,髗WGE72|Z FrඎH!LHC- 7Ǟa.1C~:hd2|I-$\&R=PIeY[){A㽠;=%IE3w6Se4ڏ7/p O]2 \r5 y_VO5#M` W+^ ](nm(Aʬ{I%"y&I|'jy| E74tP(z -5Ҹ?2k靛ML hf4c&HG -ٹ󄕱 1uW/;[[.=R ̓7\{ ]=\B87^/  RbY@FM;j|sB<_IF;Wk<ÞpPjDd3J3l1"gv8!k3:1lk[M9!eɖ|"c(nCn]7}>3ݢ*@/7ٲ2* p͓B~+ D뮹%q]2끙V=%2p:7bm(.$!-c/Q?#ڵ±a&.n#]T_"0Vی)§*~n? | Kk)i; Ԕ}Xz86"ZI_IH/G:_JM"@IQ/!'x+?cų -DX@ 'ATŅoeFO} &.C2 d}oŇÚiALWe":N('H{ߟS{jɰHc·gW #Zn_ZmyUў$v.u< Vp?UkϜNỸj)Hg}&'(mI^LWMȭbLB<^?Y.d#~',`c}'Q=;(eA${'DAҭ@bK.|Q&aДcj!ix$mտ4aE!ԌD)0Are,i[;tTT;+!u) vn5lrD+vbALI!{ؔ -pJXq8Y"- ~Ƽ|>e;M -ɮR?4Gn7/gq6?/<.BŹV ;RXó]9yqXκCnӣ9 cFؒlQOzss0 3Py;Mƨ/8(Q:32%CZLE*VKh..5 fNxi؍ |5ЍFإ7[O]mv=u?e>i/×RʧѺayjr!DɴbH$ ڟK0j;BJf_ʺ6ϒ2bN9pPӐmUU -ۥ}͘Â/7ުsZyE*B߃tb#p;GwGőa# ?kjA)qwZhͷX"5kFE{[:l0pU33 TIc+}fA~ -h Jf6Ȗ>u_,^Tۧw=-=Cb_"QqA -NGxvhIi``r$^/Q-6fmWQɀȈ)¨ I$ۻ3rG]b-JYE`1GƏHY) -q&[3FA6;\nYRqs ZA qDrR'Q`-3MXaKГ+O)hKߧTIO^u-@m -yzP#MDFE=0MF]9D5%X̘UdUE_kuك)_mJuYѡ線G?-AB/>/2Y.BU6z~9!)qYvV~ " -J:.Ƃ}` Sf:8H$cU TNSKcF# ' (fxU^QߋMWh(qHbxNUV(o>sh~kݭ^ $rrw+" .8谓Hfbw8/LWلB3M+FFqIN1>m -ޔfqc ;i -},)AΥRFE訆{["~A]{XO1Ma$W4HZ[f9#M}c{  _}9ְk ^۵c$|u+o˓R]-V0 Go.V^N-Y>xrTl|c&wqOaaAiGM(x<&Xlik&r9Ij7mСcE[lpb;a\hd#caW{O;P 鯛tM ze.s[Σ0jLR :re C%0E+3?9@fP)<G\:)-0k'v{=᷃|(Cޟ *n74ijTA:wq@BqVrZ!K]c{!@Qf'<NrWh,I`,gZJ݁OoPnTf߉ڲ -VJUN~< |d2xTئx8BR/a=Lz#Ql[$ژT9G b*C3, ܳ](RoȱNV\:V%=GO8Pto#OS̗le~( U mN泡H&ls|*d,ݥ30e^i`x7: -R4e=gW2!>pChGPKT_o : ߗIV"17_C_e3Ǡ}|T'2?x?%ۯ4:{8MvG> onUڼZ-2L\sYbqb4ݗm%} =h{R˸-h|CEw! -nvR?nxX`t&ĉ.Ϲ՘YVʖ?=Ǐacv+g-w޵#1ϊS4[1W{;jy<3 U]CdOZMF,J`̰$WghiwU&O6%EmEw1YT*)r -SłNV$w<ljGׇQ'J$yȧIӳK5X$sagͽ`hp|l-7-Th\O/&]jd؁1&!v/@QS2?aqM0Bj?/u@21iv -R8Y2\x_%kAV&9f0E9-z3 S9l5Ȕ%\K/p>peE Xma־^xz 7|yetZdT*REv -+ -$}frh[H%ͨ Hq<vֿU}d"T,u5FS>B!Td#]p`M[t{O8(E5"I2%6 LK QI Áv͙GYRx8 !?]W"WҹxC钫b|ofDXo/~\|Վ,[y x`AcQc'}@&43gwP`$rwBb@jѣO,xDhjX - s|?IX6#[]jzOKۑ7JYm0~ Rma<(7JʹaSЧfAwc0*>s>rJ[OvPN˯?o4^P}U2>AK -.{D)DJ_.r9s[~e+Zݔц[0Iz/WY7t褴.g|F6Ҝ~Z6_F,7M+?Eߥ텴QyM:3LeIMX`0 &찜*׹E |X<m,6Ⱥf ua`Sg9]Bs5߸zh=agz5&)9Yz^~ 3( }v8l'oJ3u`Da[Wg )d#fCtTC b@MYnZK^f]MSOmjkX/>ރsJ΢!z=?ے`XJɁ;+b? -QHF%T]cA0fk -/x˨4$1<'+4wjpR?}/\ub9a9[g.7Yz)-"9c)k}W0Jg{ tdh,d_pkBc"#e#В"XT, Hx_CfLVo2Z*P@XK3?wUs4%3mndK_Eou/*qBShO/@3XǦi@dDFMaT\ ӗPEPKZ5nq!]w\ %b t3e]ICd1'8Z(H L zƀbApq VS5ߚ'HLV䒹 @"objK͞ʲӶ,R{g]vz7J]_Kfg#SlI6׃hn=^dي3'i^Ev۔h_#lܕJڠ;[򃴑wYw5da<qj徉uSjFc"gqO9VA:y*P*8y J]%z,ö䘱wz?c^>LNΆSH[W)%PE9JDxY?޼-JCThm=ÙP@~B -B:hZbHSr\V|&Cx,0nvXNhҬ ް T{ }(09}Όqi!bk1DK~ZB 5yt?JFd)̸%AZeѧh3pY °3؀94$TlUSO$j;ackѤvu2*eeĈX&p;ĭq)<bt`ij -4\U.T5F2lΖ;k Qg nXC3OA﬒Ƅ=mth6dJ.lwUzL88KSoԟECP꣖FXlu5  2e I쵖 -ޢ*a9ҧ@A'R\LVv+B] 6r5{̭+rK ˂}znmP -sێq>*z~yqp`7Q;GQx|mL*Q1NUԯ ۊnh yPj)͹m~d'+.+U's$l6m -~i>m2ܗvez/0o7b*^vc !+-%]OrZkR(7Z *3t|ymY+%^C}Av'?v\zo6Gn@?zw pn; =^ϙ]cIJ" |pg9Be-A)w|-e:@y>囜/R;;vKoQMxᾍi v).qx&+;! 9ff p \*NXEHsך.B`pL=?sٶ8wV0O䕉ꦓ^nyUdsT<7 ;,'4iV@AAo:h %#2D̚f\_t -Bht-m_G48WѢ obՁ2JyE]o6d /z;J4dt6n%mP\HByZ^~LA%j=[FQrLb=/&'gC^A$GTuauF 4}we SL,\FSͺu 2"M#*.DU `(C(c@1_8`+zӔWM@{$&+rI҈ Dd1}m5]ORSxގطp 85s!grgD;dVՈukHƢqGԛ5 ڎ#;9belsK*ĹL~(*Utym.J xasEΘN>Kޥwÿ%Tʿ` ÒU"uCi4KX\J:P:ڷ7ujs<'k^s~ tzU)PC-⻮Y N@ -@\s۹nu$8xN72ERCZkA] ۲<"B2V + D~TO Dg$cQ{߭jÔmG1Z6݉oGɵ Hpnd*e0I]ւy,.%x(m*z1?g+^$*(4|%'d sٗ)҂)*,we :TQoۙ,PT6\52-՜|{&YDtPN5 #C9&k1}љΝ/*FߴܾM W[0c=J c9iD"2ht۠t2>W+!&H\x2~փ%'u>Ra/4Ɯ"fM3.:b!NwW4:^|spjQB1L>N{wP8ڒm!i -G>Ęx ~Y\QFNX)WƓ8v.'E,$ M!08& Y[w+jFvruSS \ No newline at end of file diff --git a/vendor/endroid/qr-code/assets/data/rsc56.dat b/vendor/endroid/qr-code/assets/data/rsc56.dat deleted file mode 100755 index a3015fa07..000000000 --- a/vendor/endroid/qr-code/assets/data/rsc56.dat +++ /dev/null @@ -1,57 +0,0 @@ -4;hÁc%8pz@rQעB*b6t"ISco ȃ9pot4;hÁc%8pz@rQעB*b6t"ISco ȃ9pothvз[6JpMOYTlA0,7D3IrQu\MbWX -oH取dJI~Zp(g:fvFEKs?+>l՞Y{K`Xnf9QC06ݢզ?wح]27Wۂ,xNp<ϵ8ݭ^ιmĮ!*ZWސ=1딑QP%tYUW(-ۖ=%hsNA4M{CxIY^3;mHQb5E4$BqMU+Qg~V| q?5ݧ:)!y&*.M7 r?_`l9էY_3k$\׍zň!hgUM*(I/[;_\0l}0ճQc~(*GdSnE =$XoOI)xwpGo߄),Z7y̋!Alg3~khW@tKڞ7m)ڕA}BT0Ǵ=z'b5?9u8J貅KP Z1z#JY@ì4d̈́ -xgZi}C5>W'=͑\ -]>_ -"]8hMI>fvڐ0ąUjh HACV 1db%A|{;tYIcTë)U7b%- /sY/-b,Jx~/Ӭ0`+^Gl ѹ = {ٞV&$z|4uҹa3,jhFt_OuP:͹m3EvGS)܎bKd'&W4ղ"a8sya&j#lz\kց -([Ut?R џ.NJ߷REQt򛈂q:#FhPL,=}ɴ%n`p$G:F(vΒ~9ݲsc!jY6u(ApbnWzERGT^YЉ}586к3KIV)G렢9qam?v{*TRI0e tASFc+`YH_v楰ܮ }]v{K\4 -ÛusU 7 9*Ս:WwB~EΔ?囊B6M/5۝X{ Y owǘ7]qz,(qwsY堨 ҍQ@ d#}!J9ۧ>6ݦ >G͎] Ķqv%# "sZN/a\LC}נQBwq~Q6 -R90/O_o =[*8"Run;r2~sl^屽AR1OB܂ l!3b.ڴ1PVH`MdQp*>1t{$l5ϸEŔ?< OZ`tk*> HAռ0.13]$uˌ5'*Ę̅r^o٩(Ag xQ"Y4gְ`d !p@mvO}ǚߘՠuXMR8%JquE\sA־!B/eKh ;d&>POQyfkda(giJ2)R"9rd;Oz7.#^CI=*RE Z@]|&)ޮ"wPNh/?Rb! -l1("4|?$v3{Y &ƨK+uROAnJZqgm{^%c0^ZH,0aqf:ʜ#>5R. ET1)oLZe1.čXW^,ɏ -Ey`Vo@8z,! -/=0!.W_EO:p퐅1Tb,|rU)c iyՉ3K/ON嬗N ELHhUo;60fGX%'*Cw Y4toa- sp{a;("2U͜Wh޾nfc׊嵦QU -MmRĖNLh.yD0'pGQL]wIF !4Mx7gfV8u;J*+!T8F#ֱM!5Z[Pamoi~ř,%#?\s+YW@e G -g$,['f l2v@s356sQ+ t!F"]>Xz0ُuJ.ܱH(3tcwqGPce.bx ~dgv"ORT6 -U{ ;X 9ry:BԲk6lP#+$ im{jpli rg>N*mSt3{bUqu2I-W:cF.p,S;xf\,WO-h:K+&n$rTtS"5KIy4sv+xm3%#z>)DH6l MO -K*wir &`^x=ejq? -k5cݒ&΀IXTinٯ5` NJn rg|# ]*8k2RgW>. K_[%+Oܣq*)Kz'c-Zxüka6π]m_ HZ[m Ne&3@!tG(;Fo9Oglr @_LRA"D9^~5 Ӥ<đ,Bk4ثb) -PDhÑto;LlId4mF5wxqT ]gb¬ni4K.~Hf"yL9:M+VꤞIܕ62ڿ4'JSy`7mɁ l zA'Rc&d4 MF{ =X=`y>0™t;u%m F|wj]\S-e0bRb\cUrs%S阌ܵb7$J( ~d6BaS ^2l (752X>k<ߛ e4cހKp0"XBZ^z`CB<_>v/F;sn+"[?kBS\),ic(;-s-q\!t=bX" RCf^E316Jm0'QǓoe3f]҆?qhb"-/ŇdƙbE늘Sɪov>&l`/̎JNT3a!*]h©3qMI ˪W6Tȷ|.׋LGʐ{၄2k誌&B*dG-Z/>]?#;vK -5PqDdۭه%_=2sa>=2Fl'NojԆHz:@|{LglR> XN5hR>Ƴ :CwQˇ@*ZڤW1[A\s`יNѢ +Vu=>Riұ̓ a54N#:QB( _wq"(27=!B?A[eMh_n>̬pvoT'GVmByGpCQ 6,r2EGO)8\X?b<&r(ZT2( "*mF>0BjqI U$/X:JcF8~%5[8U`J,.Vv%ƉDژwӄ&#!z%Wr/; RW!VS"[}C( HXu-N̽ dfjlG -潓m;z3& @ZREĊIrdC>V%j ~'ɢ Y _V2B9Eٗl'VfK'L`‰f~8΁BPƾیJ[sklqN@H4o_7H- >troWsI('4hJj)e1c ӎ 6oqMc$HuvY ra3ZeN\@ԔP)݈F}L^* &-aBMdpU9j8,bJQۑy=aFBo8`W,iF%Mn[.\k_!ș]Ϋ4y2`([3\O2JbLf9n/Kmڂ_hD|Qtƽ<\uXv{̸X',f^C.ŏ<5xO -ǟwIڢ($u)7ɼ7Ş1mZt(+VL{I$H0s2A D8 jx:VJx $0^so &y u dYlx催Zƣ:V&xGFhRBPb[;IMo`-'ʄ.&wP!C?/fxV(Y3GcA 4׸z" BOI#8>i,3ɐr*)Jfˋ:KN}#ۛ0y$;ZVOsX\i nW!IBWRNd@~,pXsSLm d=n}5C6GB=.kTOJu:_\]e)va @Nx'%k)I?YF5Ӄ81i7=j ˉ]\`)*/hʰGah]yVL~F+0oPY$:2bz黾5K@x+#S׬K9]H:tJ/+Lp,GR#sHt&ʹoa^prCQῗcEO\V5!x4&U8z&VশbkJH@+-ևt"}>IǝwI" -ig@t,*7rR0D_'u%Tksmxl-{YF"Ys5(j߯1ک2<*e|bgh-{NB06kQ6ieҽ_w|}91ShVq8f*JAO( F|R49s]^h>?aXIKqַ;s<[̗W -D=" I$l:؟( ߣU'TCL!a{9z,~OjwƧ9XJك؞Hwӽڜ&)ZP^cM_wȿNrML(͒ܯC3jU - acɔxM^K˩FDy[T#Cy0w`B53Ixi\{Sh#Z8׉<3.e1<]?~2HV; [h)*Brݤao}y~{, 9'HI~S:OBK1CvපiRݘiԠ[# -CHOW^Tp<핁3+%C؛\b*Yݎ@i mwX٭ -ZL3hbE6F; hhqxUɥW\X*dȎf>&eHBtUF!W2FS}l#p6'[XE5jC$= u>ٳ^&Y Jb6) x,'4);{e#ݓշ7YΣf C!m.Edп IhgcE%M۹׼ -3ĠwiC41rj2c^A1fە˸O·]E6Zr=zs)p2YF`v{Hw#ͳj`RS9mx}LFnԍlyP1%V^HT?2!/ N6ވlP╱5j†[=#&v<2W9;Nj9:t“&Z6a2 #iʁ׵`Ih}o;lD` wO[J \L婌^-c9/hЩ~o>|'FrWM߀`i/D1K? oU @'i2zn8X(6/w}IJtrӊ; -Y@;/pWw2k0]H狛%qE:g[~aS'Tɉ0NDT[)RwN<}j6l( +/ -f$*_D'd}oD -:a-sU \cJge0k[7~PG+C(] +~A68xvңzk,5y/n%1<Jue\ {@cxS^֗bP[9L5vxοa/DyЁGs$l\?!n@떯;Rp[Zsɂ})UL@pG QyCw^D, -&41#JlwF4,X%wlO$̵ЄmN-@uo](/Vǡյdf`'9d0!NKŗa<.[\Wo_ ف܀4ɟ-  ܔ5RFWɖ mn„D҉>14']k!YKB/]4oSj,UY kՓ\fBNm"rtMtbVH_$C:%So&L8W]˭e)cn$P:eY -pS[1Gf%J_$w Dzk:ZAnGXJgPƹ_5Uۢ[p.3!'ܸe9H:dDUr :dG8ӭ3%w"=L-Xj7U`,}%ԽU8p]n\Ե/"qlFth`VA%6#| x֞'JkyUb].FCn@̘keŅȋnui퇘_D.r]%gjwUx?X(hK_įR?Nux.` <|Ti/k1(]c KC&a;t{#9@0ęE"I]hE8 { $N؜Q L?tb *'"*\̇D#y,rt?V1U! 785uldchNe+eug)9SD4 AVM3{~Ɩ-z>*ȱ -nt -*Kn !&7i ?uNѤLyh@SŚ=7+z[ً=TL1bX|UWhz9V nTԀ\b=z |`/مvJ@6:ԺU4 - Z+M`Ĥ>-u/*ĸ ZxzQg_@^5%Mp"+XiL_/Uƪ8Q 柩J-wKG]ijnHE+eP=Ml¦,%d_Pae -QѿWE |.吆D*U}$ok?] u>~u$7n}jAde|( x6'+SE@Ghơ`D45t~Y;vRPnio"ٶpw3&8|?^vf2_x|^Sv6sVDy?~$RX w*gPvZ,9Z kC֩*2q/HKmnR;rI@}D.5 $7G5}ӸBAa !˓z.gM>DI,s1G!%fbl%,ٻm[B۫;\Ε7}|Ƿ$U?Xo<beBJ{ .JX`N:?碓;)K{(f7~[8DZ^>/e;3Ļk$KS v7)n sH9~ x"\K -<=ǦIޡ |L/^}wg -f8,yBT&Ofalѥ>q~HC"QOmTΑXrSg?ٚ"IA+lm}s\ ?cK=dIL7˄TA:ֆOTd^*&1Q,>ܤ4v=_+c\7*j@H.m1njZ'^<0>|*~FvjȫGIJ:Azd_|;zn܋Ԃӳ} P'lN[V&ߑ_:1}hue 2Qd魌KؗNq} &tCeWy,5ؤ|0jФCj Y0:t+$̞sW3FR@ 8ͅgW=͏*3\4T(ZPڏy1:VKu[I -X']{9]n IUn.\?"NksԯCWDz̅Hgm6 qEmM~z$AtH@ -fKdn9C1;OU0:/ zaʿ=xUWo=,/[A"Dbe .`Vz͙/ʛ,CNݔ p !( ;`^anWRXMȭGY/ Nf+tm'\!Y6v'cIbf[?̿ `ruXJq -7Ct$ŗ.4z -ߛcx$ -lÜE9ݏKSMgћv+PNqCG>وGtpq[.j@v6/tخrS?KBJO=TwsR\wshF5SN=ݟ2Ji1&Kn|2` ~m!vȞ`j xڔ[HBS -Ƒf)& [\bN:at蟣?V5H2!E3O/f4pǮz"#TfhrvdAf]ҽ3k-&aL25Is>[ZϷׂ'LhgPqߩY=& {btu׶ -iUNϺr-M/@㪴PV7;!WR[>.nܨAÛ I䊻eĠoE\~yD"[6ϵC]&_l]ښ:G=Z,Ҵ=F)7XMxϩiL|!; gN]IH oH萀M.rbv2`tg^ 7sSczezX ^ߗN^| Q}l+I镤@Um.HJ*G3J~UXm\D*!u@]\ei/=^ щ+X84oӧ5EY aB+P8dzBKgjiwN4th_ OTCe*,_*9 @vܧ,s1GՎ)^.0V NUBlN) ..ݑ驾3 J;ҏ\ OFѿ ů"~t~K8@ě̶~cQC]갔qGn}?H3\ h_.=+.* }H6c59z DwNA80 jGWy{^<@(t1GJgSW{d؛%ο+V 6[Y| 'ǶIDCT'+ELϖ-y=0`vN"8ҹaul1cװ.ADF+gmtk3&+G ={2sYLTԵF)#cMI#T?yՂ̺g7fZ0 -L dj9|Os:;sNG7o\a] -Y@E9²2[APCnCg=#2Mu]Oz:kLE1> q29(Ҫ}icZi^[9IQ}'fO^cDxKϣ -ݧF?ܠY(wY֙s -un EAvB61|\ܣM _+oK kaM] C{_ަXAI^vhYͮlRrgk\9&|9?0͈l-C{m' -%Dol wA L.O=/, )tkzvra"%EZq6uA'J1 ޡ/яG?0D1ܿgXu]"2Kz!Rשn}Os-QyBvɜO*͟yJb.|,1{k~4KO&elQרAR_O#Hecx(ސ=(\1!2CdIμ$nIA:Kq/&1@kڢUw(Oj) -RIV_۫uB'LdiԸ#3%@A2_ Vc7U8qڝ'5\6 &!9OTfeոp˚n)b#h:ZD@>ǀ7`TUf6tgďC}s/T Bꀺ_EG+^zV*p"h%Sj4ݲ24DŽVp$Ꭼ5$rQY>E3KiH|!CحDAhK+%|SCv4Eqg"/ٜ -hоK!ˆ;}.Ɖj>grp`W,mex'P<b<Φȳ>_l(6,Q*IBUݻ؄cu; y T3}| 5oՄŚv(+JG'x S1|3Q)cVŬ]%O6l7WCN.ٓq+KӸRBh -ʔMU5bZη|1*1]5.0_NV['1AZz`W}KDposw?abƳ} 9axK&7@jSX4s?ڙx{.:ap࢟!7(*Q/ -i.QaՌe#CwxŇ8ؼHGQ:t"15j!MTU@m6B@{*e3Na!BTY&. Z񜘏٩nQ&UoV`uLYH n,si_ZjcK,sb+pc}maAţǺ'.E8@s?v*t&fGj>@0O; -ˎN:Q%d#SF BȓVKx"֟fL8Vݎ&@zcdͳ$ kwRFƚ$:OFӫѭ~*Qk9ZJe)#ω0w|< -CEvVHwӢvmr^,ō ionDZ`3-9rGߞ qutv{2-!{Fc( X%wYQPvE1&7Z8Į֯N1KInO­&3aϲ_urydq0'u܆mzyFd+].fo:6 -ZQ+,i&SzWqn^ A&P1 SWy܁]ٺ[ yt,Sb|{dr(PI&%s˴)ҼW{rRb[i؟v(uYF+_Q\A٥ -ed0]h$QAW:wQNḰ垼ƈm͖/[Sy~]MePom{ /Wrz$&жT+sUMk>='n`RJf(>H']]E@#3lAbUkq縥[W +V$ޖ98/‰79C_!K/̙ HP:a^D2x8"SW"dQIǂ(]41&#͡;S/w#z+83)}Hޢ0Ǖ N4M+ҵmFX7$nE Br>FiI]g՟/0bWǑ'쥌gu0 [f%Je퀂Yd@9ƃnpI'NjlLB=5r5 -I}m#F-ES&4Zcn -T@ U?Rr!kc)R=Fa -"ti>-|eSnϨM}4lkUe U3s/^Uj$}=C5`G܍V%dJ67Qaʑ{@e6'ek4p7uA?2 ^7 im'V&e0cT}"DJkh y0dh]H85 Z_B*Q~"2mCScY˰+XDkcpXG]Ej%Hs0$ÕDžU|?f Ґ5BG눂"ЖV&Jm쯎' DIso9i/?ҋӵdp5\8 -ſN8Ujh1*ۊD^%ͽa,!BMvx 6aZ, ^ P&,ץ w*$˄2X.(-g=p6Sm|20 -).EO6s2zZq)c9]a( _ǭP2k*X/={zIygeEW6Rs[ e{`JEO$%I%F^?,r.2=! BV5[~Іq'G:4gꋩO*XϡDzLߋ Z(+VW{K)x7nTDÊ۪arE_TbPEֹ-iZPې#}pOzm,X<ں&L>SGvYufu'$|?S~p^;dO05oeNx25?x߁QA {i W2*ۭIKǻڮqAR dkh¬E_bH/RH "k߾|Ͼo41PlXTAk_Ɨ0v fmj޷)4L -\uS@Ø-?W#FP: `(媷(?{)PGVN9{զ bfRƬE$>Jlqyn"4\>;A[gMI;P_) -DslcWdU52Jr 2S=/Ti'KMV UCmQе5ߚ) j+Ĵ!s bw T&b2új\ɟu8M71H_|4-"j ]L^@0*TX x3R:G^Rb@Ͱ;9_` M -NbK%coޙɭ~đ{r"LcnYl%1>Bʻ?^v竩b6qPQ -Ti)]$P<S{Ϧh3g~/"a<\tY#BnPT^\׵E}k·FS,Unv -/P K;4touWN6)R9Ͻ.G>XD6mw:peѳt D&sb*j#Bɚ럿 ڟisl*Uq.lGF_y oZaYm[C( dpZi7\YA={!yQGTʣf8*m"Bw']L\I%-Oܢ'L5x}/){4!9Y># ,Xkp hv dgo "ޯ*&KW0X;'iҾմ6G_XI_C2ۇķ>RiCqB0ZnQ `ՠ]9ϔlos? oAtՖrVGc_m[%iɉ.N\p#~T? :L̎?ԏ|` eВw="' 5j\β/^ :A%c2垳#v,g -tJȃF@(;xjo-kbW@{k'MK3׹w-]Ro=7F/[Q([ fԥn%^8LoSO9BW:CA.p45Z2{  lD<ǒ-%uxk}ֵ>|vP;+$Q;9l/tqMO F\^*T)%Z{KLrɁ5uB諮y(%Z&lj7|m}T<׽31bB-nGCiy+)2ުxBz[?i]N-I܀24W 8Jq`DuZ 5,`зm<_|{}F8pQcjVXӾF#y e)Uæp4+h`.}lKHq6g[Y6@h 6Kb!WlB޿u f*\>BM; -b;nM{<_V/VGqv LgpxIRLa, Jk=زgQ[|J|̤=_e -Q!A?gRЧԢCuvXxכ,"߿8,Z|CW GcC"H~f^[ƙi2d8.ow'yi_5DOͱ#̘pLy{H-7Mw*  )9HtoKGMTN/ 5ꯔ0nȏ+2%jh~ae F s8~s;rߴRF`+x] Y+X,ZU7trֈ!9M#⪠I} 1bTƝvF`JREO -s2<ށ܅u>(-/30f.Zr俎!@6d%Zg*f~ j|]#&8(yPMip3$7kbZaW2"Vp7QBkPJ(856 -*bKLnpA#C;bgMt!^ʀ5&/ }*R,<)/)s1 }Xɺ Ff؂ĪmW)2@4aVH1rp^s$)ni$a_B&. QxZt~ LzuR#(M0IXUz_bRrWB^-(/6ta$! ٯdip%D+D>O -Eȡ=#wc1?% A3+zmaş4 Edgtf|HCt4 }9WPehb>LF_;vxy3JU6m䘎@xlqx5:2y?6 @+t9<۞%ڭH-B+(9!+Д]ԣ?hCatF ȽGuک^, "=I&Gh -(C}AH8M=~T,m]&u;O3дPUmB>(c ⡭06" D4l-\!>GC$l}ܒ 4RT#C9irsFH7A;~ -'jɮpFBP0 -3v?]X5>(t8ӻ1-nt+8JbЉRW: ޞx/JH_ Z'~)4ΐ'eMX'hR XHuJ7dɛbNf54S?_c#^n^ Z?W-Ĥ V:9kDy]BxwqUPаr 1܏*c;n#0%)Zno ~8<)`&ejz@Hx%׻UlYн|^F>yV%p>fRYQȿˍ~|U$?3/I]hcvj2JrmvRjx}i1 - SU{Rp6!ovZY3.pXJr!zvyŷ[ -,lx'#1q @E;f+D$3X #3s EVlfX\o_>W.v'Vuշc@֗cu }0 hƸasC>׉_#8O -SŒ]~5S+,_r#^FKG65>~*ʗk1!7YP{oU=WcYx~qr2aУbePiS ])ֱ̐[#uAWȇK3EjY7{SI^M;yV(\6 `_zdt.Rm[D79'8߇H^iߠ4ac;~]5%9wF;sY])5JunIH܊߄)|*矯9#$^`ĕ M?NW5UW8 _#!`(ch)TxoO<%$-? S ajYgHQg, SzݶJ<aGErIc :ONm$zj!MjגOse4L]{$Xڨ?\b *}r|ؓQZhZ( |! !FkZ݊<-:?c&L=h), -~=B -1)M@ڛv{=znMtD2X:3h>n$:uwB R>zDǽ#{ e@LPgΙp|b )Dؙhut,f^%g4Hzj7JȔln™?0WlNhn~Xy*Md&p >O"IQ?D3 Eq?<ɓDлdM4n@:aN oLe`1XB "M@}l4MKqX:,SXuas2Y8ȩQy"k } }"khӼ&ˠL -XW,mTH.1 d\P9>͇ZzlǦ-d4-`R\>o H@ԱKNEWmr;\=7_v :"V,Ѝ47!vy Dl02dCR rźUPѾG?xA\ij#`eo%4eh*<tœExM駈 gp5w$^vTi=>9|Ud&'-Tkw^:z,5G΁Y#q -5xa˲%8~Xp {D;r._oef ,1!ݾ#PfJ ޒw \ No newline at end of file diff --git a/vendor/endroid/qr-code/assets/data/rsc60.dat b/vendor/endroid/qr-code/assets/data/rsc60.dat deleted file mode 100755 index a6af3e93a..000000000 --- a/vendor/endroid/qr-code/assets/data/rsc60.dat +++ /dev/null @@ -1,61 +0,0 @@ -h:}HV"V;1@|V"J v`1k2D^ L',h:}HV"V;1@|V"J v`1k2D^ L', t*yDv0b"SiDgѻ5Y3bdaAEYNX -JN?؊^fM(SI3 ӄf7hޡ7%SV>it*T=E#E`D6Eοk5j, -fı e0-:ծAu@x]UhsY'YOo|I,&;<aBm?~ 鼋Pf-̩nС_:n)JU]g -(|'Ykn儿}9H^wRi1I_0= `mc$IgT0&ͨzF .:l Q8NJ cjXcy'ߙ `yZ[t%}62܇K/ؤz$?/< @SP[G'^lQA<5&ـI&w(6?&ImN {!XLvx „ik%:lHp2kpg,1jCpk[TuET /6h^F(teL ~(5%&Ge )Q9'Z0$k*υOܽ_tRQE>[PwNͲ.[`g4P#V:n*:i$|=`wAS5/\i;Ξ -k$Qcrc_3A8*c( ˋb `Yz3!:H'Sb"ká5;5dp<-5Ձi0ѱstjMD0йΨ`LM88  7\t @po ƱԵ(3&N70/42J,fX_M]8_4[Dw_8 b! PEn.35ܑpPWhmlgy?d?^U/H~k^x -@-ߠ붎U(6c]NsW5ث,iv9jr,$|ڵd>@LVy| - !dC5Q"k `u#sx_oj66LL{KiIPl~Lyߜ"y@!OPjJL$$R]rN`HTga<>5Ii(|.+CoxVp1Ʃ 5iE7dTOl(5#CC)ҏ +j) Hy\>϶##/UoS/$mΧhF/St*T9tHAzW.צj^v2!mZ ˮVyqyu;,lAyqD`p><-ip:Hy**ƾ=feSpUTƟP 69a/f0$Bt#&9N7|RNا(V%WtSŐϺqZW['pg=x&D֛_-#-jvj xZmAj7˷>3`4"&cԚ`[oGB3"kw}PfLn`[^hd$uq͔U)fDqD?_t .dGDwvw[_c<$,ʈQ[9MQXgwewpE =h8 -þpY@!BkU@܁$\ 7fj?%aڱ9]-[R~=()5 Rk`٦mi<=\eXځOP'WloZf'׫z4hzɮrlqڳNBַDPOԔטHH,.Yu.!WaxW U|jYP q\V6] %'aIMH Mh(\ M +V#͂htS;Q&?SbOOUjҊ;a5nȨPjFu}R;Vms:ERY8KtH -\$b,H`c`ϲO6r -U_ydIgϸ|qFvqX -9w9| ǏxZٕ_ut J^2̤κA`ܩ5͊ B -LPYl;UyB8Z+(YWT{T#azʦનo#4 l4ry^`H'FO?L=rQn@5?cj*3gZb掚 Aд,ɕ KXV1}Bu-USS=Pg=JO&a=g壟#i+.m5Nىz%+CL6 @ޣkEk,Rf^kEzpշXS\UMҦ7֮)O̒+ZFZ'ԍݻ/ ڂԫns>|fc8hDL*K͵) ?kg,>ׂ-9ʬ`mtmbq9G~cwb@EfD]]xs^x*jX;4_zx ZȪIcZ3 jB(8KÌ.v)- -9О..2[{ .ʹݤ;ۜ[lAG"\;b-&)6$ -h$fNm4Gݡv$h|?w?[.%H'5w\>}a)ia.zpq saಀB֪] HnW~J{]A4hcc776)a 7fF&f)(n%=SrW%ZͶzPRjGcͤQ.ֱQ{xzʰU _'!tBXddwK3CȠh%#k:Kɂ֡+ xέ LbeIC+=e\(:\[Iؑi%AGJєqqGx9DG@W84- cubxۣK4Xs7ۡ!վ+w05qI!ϷF+vDBh_(f^_A~vUvTT -715T'k@Û=kmtF>6SmdnyoOT-E\3C(P$D YS˱w$Ɍ`9m"Ͻt)p ώbą2zkYg{I.w GG9j%GT2e2}r;_=vO o}Z}uRMxhx1[*˅!+7) ?ެ 8 "ScI$Tv2ad-tr-19]-rcO[Jk!Z^To5qUKU{GP{(Yt{PA5V< J)j-TX'NOߓ߁ 6㉴9UC6(7n\(Dsl+DƋr1mi+[2RRؿ׼xy -Qa'}WeJ˸ML(ujAlrI0\>hh/&}MhF$1fF:z9/QxׯsUs%![v[>d4>&l*It>ܥm LZ| ?ĩ =Ѯ:kM$_Euľʗp6MF -0a9N(Hԉ8\\MP|odN1ABόwqLH{ qTiV|-u%9TȊfGlzyħ4~}Aw"⚙ɏdhegL~^ -S]dZHˊVI1I?] Oàpy^]_|J|E,O5뤵MH}dfs _; B#u ;K"]K=`T4kv= "NN]F]y;-VCkq]8.-K2 13< LTDsm牥,%>%֭*Ѻ^+a8)!cәG G"մkFi@Ց!q5t*–lTvufteMYiN|NC؍e7NKIh(A29:թ{ s<ʧ@@[A^]avK"D#-7UqR?0ڣ-]5-6X\6Ui%.=M6\B™9>⸬lJ&S[xPJ`~`nqe?iL:1`~HR |HI<كU \Orʆ -NQ2Aח!#YP 3%:VOF -yv0)OLW~&FW{Q:Ar4:8y06ქDl=tCKR#EĞ?s,s v8j܍M!sԌoS_$v .t0p=KyCkw%%Gx{_&%19gvDGsJ*I!>߳Ӑ9GHDž/XߐQcƽylYA=oȒ*msΛlOCra!%YD(~$V&)Rs&_v%2y_fTmxIQ'ƊQWMo='A2{eo>[k^0s꫱7_|s~+h+K/b*MɅ͉)w)a1E~ rtɳnZ9Δ/DuO EjS|Ⱝg r<'r@Wӹ7k,-sM*Zv G B3׳bVcқeC?ǔydeՅU*U -iO}Uj 룄Á&3-'vpV8^p41ᰥ(ETCgE&b)e7MRfc\&X |Z7qr"EK{]y,Crio52ˀ1i>T>O-OJC|zO-Ԉq;e>)'ZLRlH+H̜ڇh:y_H~]~Å-\J8qeޠE2Uјa*Ȟ -#m2Z &+^> -چw2x|j0DGY}|R \0(+y7IW>m0܅.gO1LL`2D8a\W΁d B:5"ch҉hYnͫnlRq={ň L(R -P/J6 ]z6$KQK8 8Dtc}zܖ58*_Z*A4ca/#k{p:AG&WoiJϴχq U<㠤 -4ƇU\Cשm}O>!]N S7BBѰw$/W)w -DDQaO0b4B$+Y+ f ݍ]>+s%JFsQ;t0_"WV/Q&@\%'ElE}/3}`LzB}3m4oހʕMgRPЌ+fq -j:GAA[eVz0AP:tYu1i ]?J1}o yA -hOhYv`Jt~|ЊZ^pR^Nd6 .낓1{U K5-1sGMrY펀iAOpihZ[,+ hn!HM\ hoo)3Vv/=8D,.}iSEPkWʩQfI M_#K:6BaV!`j}B);usV3=оP%/Y^{frfRz`Ryg]0nXR`E~!&d(gL6!-A坾SWa$OQ4n{b.ŋjNր+czڟAY4: |Ml:UOmtaa$I.f1$0Sѿh0xY9QWH2x\սw0 }=˞:ZfۆPaH!#" ӓH'4Qq<]t5t坥6d^-3ĝ=U4 -=W9C6Irm'!k"(G{rgADge-I!R@g -=ĕd -&eK\/D}zHss11T ޢV~Z<1쳻F=T _Ib -lp*o#@Orÿԩ J,[UOde-kdvsÓz$ -B{izz<}mIsN)m>/^&XwHڊDXFv5c3"b ":TB2" ϵV;n R@~EpeDƣHneiN}}t)t?Ft)rSk0S~.,mRީ(d_wZZbor# GZ[ :aKB6*;3:je - N Z ģ/c@; { M" ܶ)UGmߘI^FoqE+⍪P8sI/>%σ>cjxRZ]c$wð2''O#+ANRSyDv`]hCNѷ;2lur6[S:lPnܸP&-Kk>V㈑ bj.s.INI(>2'!\FIN&$H*PZ+>̴GŒ*dE[Vödc(emU:³(oNʔ+m%5P*{ ,))l -^\<rR -g}gs%É\NJ&״sE5y 0`|W:{^LUOq8GH1bCtr^=C)u<4<ˆco̞xlj{ǕjEoV扊^*;%cJB|h|LK7DS)/$%)GΘ1ۦ6HC␉\S>[nx%0T8dŗ/j{Yu -jDً b~]962 =GQ93Jbj8g-4OX3 柝0ϛvF8);$+<vDi/z48 hY,#z% ( bP -`@GT@^ F*N,@Tppc(?e fh/i\ D_!2vZw%UQ2pG.\*G#K Zǝdic;#bfxtw~>nk`U"-͡,d kį =7AT-;٭i!WXJ|1JG+TiռV¯psREB~e/8FLяXat*Cw1X֎)3l.¶ƍ/auDu ՌҀ>{u?Bqj4T1 بskʚ_ߵ [P#5#:Y'#};va}Jq:~R7-FgJ{y҇ {A$ZnWϤI.~`[Z9eC#FU m ff N9ƁVfLM"6:Wd)!wj{Z==llyJ\'zlA/A,Iroy|]$mE"i,#;_LI7Pn'L::H{ -MJ#l}D:9ӻq?\]H^g)t|eox`Q::2~/tb㐤 uxA[@9qu"=$Dݷܷ@{ޖ*oQ+?s-^vwGtv#*XrF1} 68d/393)=B0)FW7mf,w)0JtE?2Q&`RGY:ξq}l |3a 4{<ڃRY$iUhEt-/8p)/`l'2WzAǖG$.4cV +g;oVr"~eRpTĬ(Meڦ3FQӕ!~!XIopԥBG]"K"U HE@w\ Uy`z1.c6T -U0&=E!o@eN)(hFg3}5`]o&&J0J"L.Jbrg] 2skC!T 4iv":а= nK-ZV`Dƒ迾@8 -^}E͒BO|/C/{=r(m<^=˝Ƒg!(Iaz[9T恓Iu jB-Y/v{qlo{EmCOJS<>p5E"Z+؞;((yBJ oPHyLRqLJdO1!ǨC\Y%p[YZ{ǭ WF4Y[0zj<|u{L7x]1o-G;6e_e=ON>Qgi - eMՇz2!Nm#dYwʫޗ|#3S3W'~@c +u3&a}Ya| {`AnHf|l2?ּ#` &K,ns -o:VٯVM^,TkG6Ra[Wq ^(̔ğpgbkBAƓ;\%S?hu)#I%C|R1(b0 * /#'wC *U8x8l3a4T@Ιl.F:?wMvpv70cshv2dS}ܻXb[쐕Ʈ*$ίqH ] .ny7<*n2~ř5S٢|g{Uܴr5"[^bK]fLڜٵ&{;`LQV%15َd,nrO Ԧ}G82(x'NӀ;uoCnaɧ0k”× DC5mMbhfvo?7XZTCKC@fOk9APswpvh ˻JaJ҄ -u"dIY۸mx14V3uK;Nb`ΕDop7)DŽEDFbuf%`s$.SD 8|X.tĢbCC;8;uR4L;to 2Bog~n,1}EvHg{cWuPd1΄m3&mNѳH0m&ɉSI+ŜG2L 7p9n{RD\D@? Ig@T>ϳ07$3>6~MEhߊ/fJb8Q1ʻ!bXcǓ_.Xp~[΀4LМ>aǪJɴIQQ]\5!âf;F6Ԃ%C8甬 -د.L\ܢ8g-ߋd#Ue =5U>&<[Y@FNctVVXX*X\b ҹ bT'4#ýy[0;@v SAhX7Jޘ-+0W"a t_ W/zR\g__~x UF6>eK s }QmIFS)o!rhTf+Mwś¹+H9r? X)w8*]bVܨmSUD^](7X&XMe$%6"sMf G.$/ \:>Gm -<0X"nK oK}EKo/;G:;Hk,9#U`nVuuwwh SK0O2wޅ' c -?14'_nĹM!V.!5pZ?N!y j 7w@uB81sC$8rrxXBVic&jlȀ~}B IɹR,~z#鰓EWC@sx$㜶!&L !܆_Ds{wF 6,+|+{8{2n2D2k͇򏩕oX jz``mWQqߔMW3fy{ (| v 8ܕocB\uBj"#1~3Bu0y@n">,gpA:bQ \ No newline at end of file diff --git a/vendor/endroid/qr-code/assets/data/rsc62.dat b/vendor/endroid/qr-code/assets/data/rsc62.dat deleted file mode 100755 index eb8c3399f..000000000 --- a/vendor/endroid/qr-code/assets/data/rsc62.dat +++ /dev/null @@ -1,63 +0,0 @@ -pC qJ=ivx}^ e^2yf1Ez)j|@b+%ng4pC qJ=ivx}^ e^2yf1Ez)j|@b+%ng4a>e6Ŕz4O< -d-b%UR8" VJhߐ!-T)F G.戇T">OVS* %{R $3 -L}I,o\|$l;5:h;ex$eZJ 3pD|cRv-w:{гr7;f-B;€L~`oߑ]lUt=B6Z,;Rk)'\ D6|Cٞw IoT@JaHfQXyOM]?AoJE_FxunoZ?&Pr/ƹ{[a iTwW3^("Hv3j ot!vH[(>; IUfw:067E.+5W'a5Añb $ʈAj-,qW|1z6Un9xGƤZtM -({in5vZ"v:?ت<F7PS"< @, oH"(Se'(qd-+6y.4CĻ:z8gZ[z3ClMXv _0RN&Mlg#+2DʷEh+W{Uײ5HaΉ6 i4f OYSNjġ@H #y5iZ5cX1U[b:k/lٕ ŕ֋=O -JLeu[kߋ_k3QHd\6}cўP>j z;펑UŴPg.j셴Dc/:-坡8t[~iIxw&K SyT>RuVAChvI|':1)X~ "e؃nӠDx4uXyސDP]NPgZ"Vlm\hkt?pq2 ?I\DlO:+8K,Ͻuzr;][ᑹfuU -`mc4LC xCB,96M5XTN=PZYr}_! -%:n]Id?wL1] t}YU_=s~o(!V;侒zF+C _*hxcHY,Ķ 12r=M\ٝ%id4_XΦ|`LlE ->CΡ/Ӿw tg=*S'ЎZ;Q0Kt)iwLs5‹ paɥ&uNl&]Bռf?ޖq[,SMHAce\ -Yv4fD.ta&TfxkixpWwz3}Zr\EFQNH 2>W)/2xڍ19_2IRf&'pε]$ NAuD5%nbH4eUO|;+A"Wp7c.^5R ˼=iB j,ʤ V^Lj=GV ̵fg=q<\njH,L9I+; A|ˢ4\! фM}-fQ4YQ6943б4)(L#t7s6O +ce* mz&}O;Um֣ f˸lƿ!=.u|@* -83vC\ 'r^]@9j!usUbR5mҏ/VTB?u)(񹷥\Գu*3ƃ^tKZ'_ pGLcsyq +|t4X)פ;9 $t |V -b:̷v5&܀[!gZhxG,g "*:K|. y+gyGs%NtbRm/DʭoNnۺ+XAuk$CS'5n'GzgxcM1߫/C]Q,hw4;=oQK?SDڸ7~u⣻\XO-ԴBŒ@OqXhߙy(G0~im+:MP݅d<}=8C.~؞tQSCVpX/)]كg GOv?o,Lb~Jc/A4[̮)BMJBdl nw+ ؝0Kq*)}0aU%h)" XrY_l:jI/zBυ51F+9#o&GJ;!h)wтrʌBEf{Ш(%Jtܺ'2o~8b:&:m;z]IPB57va93e ȶ}kV3RCϸ }d8d_* -棰OZ,\^$](Vۉ4=TƐXqbdše Gz_E -S'/a*Jy XIgGm5ͯ柨 ս|U]ؑ Zn9B`E?$Mh[Q6؊|e_^a_S;0z TN2q,yv` lwF7Qܷ} -F@Zԗp*]ά#s<(T$A.`RMEj%R2_j8 Q -W_L-L+e~1y/sXoы]V"ͭ$)9uAyN*}HtW;LڑF2憎M>: h :\.L>C;Ef 上&AOd|7+A ;T춫X$ ׮Ҟ<ϟr\q}xf# -H*R^d%<>kbyrd)?)LqNw2 -H킻ۈjJĔE=t8qx -ãwwk~792Qp;nʎVrA:sKoy7hQ>˪{vV6Dnƕ$(\,jq3@e9z;ۡAfM4f~lʇb%`Kٳ# ZL[?0^hewAu`1 K^:ߠ AlT"GR`I(J-R4GD#䲾)tKے}^M%.]uyaÄO\KƞNҕa5ʳ8PO*Nr!O ɂ"ğpqȋT[}4-6k?XHI(G Q1x=/g)mC=nxbE%MvkU$YO"Jʋ^Ԭ{P$a8hz.=>y7$K+_'*)mCN^T  -IiKcO).Ѕ&/1LC_k,u7-q!'j6rꂫՅu T-$$q{v?#d&1 |At@4IGsbѸ?:5)zz&C`23uBm( - Z 7Udty t#' \|MGӹv OAusm 3LYg%=$; ړ[B|uTi6*f:Bg)p]!loO Ev#R˺\nV>v}qKHAYA!x# "&aE)Fk>%waL"Rv|9x:P?}T/N$@zTA㤟J{x|" -OaR9~URWdi$8%kɫ / ԧ>:s^ -y67&xV[ '0 z! n4 ׭e+պ Bk{T¡5e[zp[nr:d,v"Wtk`&}\{5dMKl朰@WwC!NIĚa_j.ycQ ɖ=n|I!l7Aܑ7HPeXUf: rv4x$E("Ҳ4p}gßla4i_ɢ 86S|Cq>t `f@~Nݮ$'#r`}4pm0)oҜ3 q.5C-IN71gMQqcs (CoYpx#-e;x3E"`:뾅*l3<<8Vm=-9.#쇦h'GW$ڊw$YS>󓛃b8b -/ )xz[ű@^IǺy!5eRw+B7z2lie&:F\ǐP{?kUJ+ēr_I=#w2ߡ,gS>0&6^gޙ_ވn: EB|hG[- YDCG mc*@)+YzyYկa4;>NC,?\ˆlXHvl."n6SٛM֎PcqBDر}=9 Ɵy[iEO"eլ4¥Y]$ھgϊB3Hҩ`xfk@\h%&XڴR\D֡`$B2F.OH(Z5d=œ8Eލ$fgQ 1EK;z0!/>WZJ8Ng 1odzeDYJw]5JxKRkp>ߖ=~7qb<#( Z Yj$iP2c\d}b=-[>ؿ);~Te -h]9J~3!v}a@k&?0{Ơ6j:srj%_#<7-(O9cQr* /F_8^v%;@ 1f7H⃘* Ǐo#MsD*qىq+UG)_B`&SY.J^wdnaq:lz`@gФlVr-7x !_0GR6\ I#Tɕ -EnհAN_{# I-j8gVUdx*0Y)]|5̔RwBZ#b `wlRl% -4A9eF!jn3ShTΜWd[+)fb\zp2[2lsX C-L./U| -kV.|,tΘBPjZ!I ,4NzT ڭ?Ƅɛw(m&1?B%on ^fW]n!%Մ!K26N7FAĉqld >B:,R͒:Ê>+ce1f;j n@I{ʽ-4b< '7Y]k,V¯j7 -N͝T=Aν< }QGReRm46eiJ䵄ɒhz^I&:bUoGlEMM.Uf9/N ߒ5~gUDv DTHGw@1Kre)ils+*!pklQ.Bgd3Hܦ9q{R0 ۭTӋc_:}s5 /FZ ~(1N,{cdϚeJ=:@I;fF[xmw3\ɨ3?6e1u{a0por矋-b&Xхt]1ա7%v^ -1mBImWC0wJyYnu/cPɆ6ZpeFbᝍe`wRH?WĈ"<~6/9PO{_Wk7>_yCH~Җcp`FfQD, \S%A-P+ -8ـ*}Ln{&0V$ EV ?4|wԘhW:rq6u7G1 -) $Pd -: ̧M> 9]=F2m'K|Rw59^?t`d^ԏꡚxm/+1"I~}!i&IFue=y5o\,7Kc龲Uȸ@}3%u6Ԟ87i?l=Nd jWIe^O+!'0`~x%KҬ}ɱ^wQԥPJ&sۣn2> Hϲ)[g♬|N$D,|ʬ/#Aū+>H;YJ}Ky'hF'@(0c]j^( 跏, )o$8kiRȩ1UHvԿYd]AV;^r+ p~n)~Q%>P ɸ<мymWiY8簽t6[YJC1Q GOg D>p'PQŽҨAEƉPOwyvaf8[n<Ȃu/P K݉x<+oNK@U=ӞA7ؼ]p!񻳃*a0BN.tQ2zJu -6sNXB }EX gS'bM5LCw\D֊mǣ}!>*wx 3rC!}[^\J8X6~T;p )]S.fhrtO&c);`t\>[Ҏ <s(LAWF*' x=IRjSAoܶ.a=cobTcݝgVZY °, -mQk]( Lzfud1\Ï˚u=fQ=|0k!-ƈv`2:3lHrGBY;lpQEbp}i~C6T4{!<[ 3\(Z9b'1‘d!F.Og.N^E2Xӛ31.=8Xydބ6,گ&c  >lsPzz 8?`I ,G1v.!i]ݏ׽:r%Z&ľW4AS "ESK"HpM\g?z|}nHV#3NT$aR >(Qچ뙨5+HZ9;cV lǝ{(08u~4@I'v[L͗@{. -1oa2# R\GL7,q5^'QSbsXnZ)0dݓkܛ^I9Iu5QF޶]zj b:LJ4}9B:Nscx_wF0s:.IiG~u&Ǝ#X <) &=3UՏ2s.ƀJM3z>Z\ -|cDRk;0U(xK֦iTS[cr(թrȏD; -pQw3`7FyvLdAX!c':J{T=%۴',!,٧OU1_ޔY`|&ѯm.S"uoqV>Y'ZGP"\>aeV֙ahQ$MT%갫Ųb4Dw2~_+mC/98k?{_7?(\h^}VPOD ] SpḒ=OhyYD Sʪ >M[63o@q׾,MjOLKUw jGM6'2FyT5ե/J Н`rPYW(2Jtruwfݨi~M#>U) ǵ#{cwݼXSۀ^Pk Z{uZTE.aCe_Yd\~,Ҡ:m`uޕ_;/~!`ځZ}K%7Dۙ(WC{rJiQy[Rd$xQ?iK80h#L3]^"_F.ٜ(fuȇUoZa^,H@/Y(Aa-JG-* ۯ}RFz2.?ciP9%pӦFf)Y2~L"b) ,%S*Z՝XVnfjݩToJ̢0>dٸ$h-ɓ Ŀm+~tj R˅6YLdfꄳP? nŝ;ȣ&2KIj PBpns/Ռג\C#o[=5v1heQA$mFN/-o , -fJz!H#vo k +Fέ3йaj"ph$VB`خL{Q;&lT0t[Cqe[m5R}B'سMޞF,iQbx -=C2DQ"|i C]/`4&8Ϣ̈X@HhdL?߱/|,sM}g,߲2{oBFDmLŠR6ӷ(=b_g9 dSW~=]ډ}wI:,ޛT;mq>r o$tя-A~ks^H9UiQxPӭ -犾x`%Čt`9{l1(=HpJ2֏K^@S5|tW7v*~JmԲ)j1PJl*`A\%97RaNZ"Y0]01S{lnL𬡶%8N1#`/IkBKhGVi݄6_w8Hقe&S%,]EFP8F{l s3"A-xkjʟ W/G'ًg(+ -_#"t[YXݗC&EDԫ#q^CN PVqFD荶3ņWL2AͿ ;L?%jY5(%}6 }0.QB)¾\'K-Om KF$ACӁ#(a #6Wqy}Sf[ < sd c1zkY BE2 nk?nmʰto*hw}I#He`b<(؋ܘE_qJp<0bF:0^ք62$4{s,۱lM/PADyhϛ#gqhҾyxo5@8|׏Y4+!Op0 lW&볦1[<p"L˦JXk>p -0AQfDZq,K $э42&|ÒAHN-F O,+ h735q`RK*޹%fQ2s\j݆ZM F5p(!87﷙UFI.UAZJS@|Pz;d4wjn8ns]S#bY3o ?S]! Pދ벟q'>& -FZ2,'-TyRbGcT:$>"YJrn/wm1;8?D!#4` \ No newline at end of file diff --git a/vendor/endroid/qr-code/assets/data/rsc64.dat b/vendor/endroid/qr-code/assets/data/rsc64.dat deleted file mode 100755 index ff93d8593..000000000 --- a/vendor/endroid/qr-code/assets/data/rsc64.dat +++ /dev/null @@ -1,66 +0,0 @@ - -:s[܎x(y0MQU+ã##dd3 Є} -:s[܎x(y0MQU+ã##dd3 Є}ts/;8*U; Pq`բVY [F7)Ff}_}K+^NĕRpzy$? -Ix7P1}0XeeUm]z%1 #(: -^vq3KSWpTv8)YI@+nR*,"g*'SV"$ҺQ*lAۈYT6dSPȯJ'Jo=S<8'7qMǤH ~Mn$ b`Y{?EE:3?J}b}6Ǧ"Dޜa;).Tuk[^؈%*rIpsN!!71@ -7z)vnFPtѿfI0.]cp RsEyVqܤTXaDTN1ϬsZTf̘%M{r6uo~nې&I>&ccYSY{71DHiYT= < lȦ8 *CCAN>UsAz5: N* -D4׋oD:g%Tbd̀BAm8`~`ū$Eӣ$6HBexp%N7n⚓U(9;H] -{}lj~Itf~i&,r΀{ Ȑ(%bG .:Fom6 iоd'lz~y(| [a lQSD͡%vR\ֶ$ JT= IqυkBB/nbwknRY;flkT2~2"pZ $0%?E&&i!4GJ' -Kc(e1QAM`\Ư'y9 -U -ϰˆϜQ&bEMhV ꌝX6Vf (lP oA)0),jj$cQ,\i̅-Jo[ #gl1G>3ۓܫ=7L|Lq<)yn3bҾWu{m4A+8[rcmjhHws׊ -oo9B<9+א鯈oY";z -.8xKyM:Q p&@]T5| 5jQtnoUR :ʄV ~2Cבq% MD^腗,6{I_0s*T'hѥ 3mtJ<ȇp}.KKH#[H&l8!O'E -xo&rbNʱZ`ӏ[m߬i//= x`Jn<); =4)Prv,˫ϋy &O&5SLX pٯ@`o|*3!LVCUq)90,k,xmmJx*1rqU>:9= PJ ώ\tl@iҽaINI[[OP@Io׍*Z;!8TpkjBjm]["m 돍YS; 6_J줸Mɱq_HeGz"c9%ք^(ť"(Ę&?~\7ydQNo"J÷H9RmlϼhR l5yZn$Evֻ3dGu9$dD'E0H5`J~ LL8B -h_N';L1˜iAB,?-S^*aG(( yEGޗ%"]cPʗb9iCݛN0Ur :EWM.} M%L+Wi)MԵS@^ÏtAw~5'"[*z707xx3v83of5>Iug U'Kl=9@2i.3P_ނR`RXHkX<[C]PS|?B3?t -!qqܰ{N`grNxi$: &uMZ޶)FΓد.b6|f;Kzno9gyQ'/xgyRf8w2d rs, >7rc1nj̻bZ,#G6͹a_h!Vp*5 Z4rYYGx>rV=xkQjA"I3YbIf޺WXذJ6K==Lٸ_ulW:C =޹yDv{M,G\2p{4t<@Lj%Ijk_&09 -&/[$'Z, JFg" 22.Yګٷ^FުAY@t_%@d#뱆?wJٚW'W 3Xl . w!$vӠ~Uc L]Г1{KPt)t8޼6~zS2`%6TN( <пW{7f 联Mx:.28\3g Fk3LWc=pá/ ±gd+s~MΛ#cHːpƾT f 0@61B'NK6GQL6Ĝ s9kڣEu&^^z &([4>;x=Ǟт-)Y+zC$V`G::2]ۢ]-$ ݔ%ܥxRvISzh׫RW=Xi(7K ';9L[Lj7 H"k6-.f(Z3!Y7*=ge=avv -Nay. TB>8C}iTfBia! +k)Rr`XX_1#1$TbIڸ0#^Z`+/9&x{PL{tlХtOF"|:tr$z -$s.؀/gϟ綞0q_kFh\}H향?[ ؙdWw. 7KD!)K^} d&5Iw12eTv#9S-BUpyGYԫWWD {U$2G(h. *!RBWu>^33{0^{)TϭvYQ l/Um⾐ʎ45M$D9rJ.[:PUyWcDscѺi-jF-҃Cīhз|885qqG57<*.P-L~i<"nUODQE'9s+$]r]؃ejܭH,jɏy}/@_[ma{71AbW_ՓC%eînsNv-cbS%҂X~ZiT!&:<w юPP""M3JD&e߲/^`N|C`Vgd]“o; -44%ztZ -|9—* -1&Ƒ3CY Sk)r3m?+`t(I(88\/>JY6 V˰q,ŮO<֠0R[9MdI ; \\o?p>K[~Rwo!k'c0j[NDTn`n:fp >fU"j|T-h)?E#`w$A} -oDWM M эS #u])ν @E2$ -N"#}Ezrd\f]4֑8Y(gydȱX%|nߍ.6aobGkEkOM͏XFlnӻ=wL#"Ϋw -kOQ/*mĄ&H^H_?ɝ_9?YD~roAkB&qՑT/=j{?$h䲲|# 2{zȾ9IF2:q< 5: D土CjІ4˂%`&QG`;qmhv֢wԂDfղ E'Ē2ϡiK}l3+zzsum*:u yخt1]MT5j7=i֙`WzJ߄ľ u@œu~)җCJqzoyX(d1h)GxYݘi&M" "266KJ풿20LY`G΁ue.ՄqDe@ICшyRRxdALodV\׽?r -,L^)HN8(X[{"wDId<5d'-\'ũKsOg4fgZ^wr!0[^xUchs"Y~GGWң1r2hb2IU#[*E0J&F{~'ٔ4) eN.fS.[9a\"d8^s(P+-eӤ=%}qhKj - 9Xԍߴm631! -f:&B=HŇ]+Ƶ飘c};{>b Rg ssSp e 2Sl*1;d,[ (!v(oq m+*kITUˉ{'!۪)JlMPxc,n_̩57&t\*2Odp<'׸'f11=qf=z*@.V>ɉ#xs*r' |F9~cB"UU-P7XsEm{n_^2۫!* S-V!eK+Fw=gaas@s6@ `lT"l沕ԏJXVM7%v(Bu BrAԈ&Pb -!Nl (.l%rukq֩[L>2L4ǿ*Ph"hRK }ڍĽä8y:SZt),p1w5rw -y|v<=z!WZ/&RVWٍc qHɬ'Yttd(mY"ZiH|ʼ Xء:*Au -rYW -#c{5 -j5JWC쒦0гK]ջzPn Nv<<$$r! oQ-n}@X$|7W}&G訦7[Hst߲Z0^ lyS@@A(S(&1 QPfBSe kDr`szpҵzOc&PB _>85l믶+l֯v'Ce虱I >tH0]547Hm -_O\^oΙ9%G9##qSq!]`/¾ÛhfU1Ok7+&QuZGGv?'/˟LN֣#sc5,1Wsa~m/_76\n ɈBR& -+GL}mI@'L0$gz,J#\\)ĂҼ|'e,j9>{b6dO>uFr2ZMݎK;iq$@ yQH(*%Jb8$ӾxZ s nH<߿Nqޏ-;X-;Ө]vN4dPЩ7\:eyi.TYB礄)|E9 -S&I8nF8%F[teɛZJG첢4&a5^8)a=hjsH[rSc6\6**eW7tW3ƈBM"GTnLw5{};E)ܔ -l#FC7,NNV<p/3w]l^Sƿi Z< 9ԌZ1 QK]ǽspkpj*!+j.*n ?xT]\Y?ޡQ У (7y_ČPc;lSS0*ښ)vo7ZxDm:Ys%׈5Nr?+=VH"2UʽU,uG? Xae`K^$QEׄ#R1>?z~Úk;$: ?{.W,w^(;a&,)xUMLk3y@oo z@I^q+8p[ο?}v/Oe¥@#ߐW `4*-`PE ZGˋ̚8 tyJ> ,IA.ܧ [1KE,%:jqv lia%$:QeB Ltx/S@,DC D_fA&x]+_`OEӶMrȒvo36*?@ZI 8~-CV Jxvvobo֭%-*z3fLߨ9E~q̹?Kρ7Hih[`ahGMYŖ '"snb\"*12@!AX0?0hyn$!dqi]QC{HGF6̮D*@x2(tdW%RW%GJ觀S"toN*o /lD9HECU[8'fӞ• {=Q;7sCr@շFǣnGg} -0AJ+^2Waǹfyq]yIR=:-I>aʿ]pEuDIC5#KSiϯgbwP4Fh>ɄOí@D|P5f ԙ -_ M{yRT:eY?Ft?4Db+q4U.h<#ȍ4.$J K_\l2ϥ֊֫cu"/2z AFu4m^xFY]Q֞)!M/P~J/smdh{*$WܻkzFDK3aS-^mTڕL;;~c}'r~A*!m\ }Ã]/pt-}U0R! lϗdeSB^Ap:nXX'0M9nu' e^E\brn,lyb 䀴[QVL9ggfq͉X -Vu5 +Áʟ<\Q9>#? g {c!qȂ(q,g~7O*C6lsYj%,Y+ؕF;|˃XPb!!x9axjD(2/(XCRqwupP45Dg,xjNZOyNOCeh3Ѝd[]g;mXMyx*ʅi؝cVUƭgBSI`" DѲwOC[))<2& -[b2 +.dБl3yн-/9U/<gwz4s?ԭ٭MMiߖ9Å~4c1Wd_#FyaT`L"N5hCRAʜA0kk\̦}0\r¸4D;n*5ku0рj=[s%`CBHb_b }g?kiů%pPV&}ZUzJ&]Ж >r%u!l%f!bB zC7Ӑϵ&g_eL쩦p\bB$h/$FXW"?O9tLzŗ'k*IVw4>k[-3i6gv|1]ͤߦ_dTQbvȵF{@r䟾;8؍!ɗȢu*)S1T8,Y=XgqP iBWkP})VT֒2..GNwEB8IR?*R4 WZ0ٵ UPfvG -"i}JJkȧekдGʝ6M%4gAXܾO4>j)nLTdxNmNbbz$̛z-AGT+\@9-Ɛ링BK`w|g5ˌj#m&mH/72Ho휯:F\+>| FmTYN:r,"4{#D٪2Z_nÊ5;6w:|doea3++]Է9&]p;bqsme)d0 K/BTZCB)ʖV= z?Ml - -8gڑVz԰;AљpXal ؟mHb~0Ub0(`-!Dح*y7&[yGnJ 6}]#P''+8 L6 -/x~oަHlhՈ`D|bF(v6wCCMEwmMWh;B%1P_\q@xz;Bc2^Ly&ÐENDziPKiD6'0#90͇=8iPl=˿p(a!mte^6[{Q6kلi;tg,e >mե_tTS$:qYE-Z/6 Fj}( EԦӳa`kqh,F]N4An|3?G(#DDM$@&#U;!SjWU9Q+`{UkA}16,xxHH-q.B@-뵢Z٬Pqƞ6n2Ƽ{C!/8Gd@O[zA[7,,םШ76] '8uǰ$HnsLaMQn2;٣y `u>>P.?PCLx0 w@O$ ;t0(k!R5DgvP,4K׬Mh"/"ABݫ=# -|b@/<#ūykOxܨZ(? %24Mksw. {Ae8:lI)-^^c++Rt@\cGtPN8,KˎǗl e-f?`D+z % gHD>!|ֈuZ׳o\ Wyߒ\B{%EL=ȷIl;Iwɮz$};&K'wg]W Lݠ_@|epj - -CqYVرC*N/%?GUjg>dA/gk&O)lӔ\nnzP߆\EdQ)݊s|`jh(n6ч8G:oށ/rJrFF⣳B^:akSy_YzG0g4#'aǮ7 ->]|QQ""R ORg{kޓ ga+̫biQnVIL͢ꇡU4}4~N^#um,X\U8 8Т54 %w=/M1/ ^ ji[F߽m+=jXbq8,G^n6Al$1? 1LeV0pQn1#ig;ݱFݵ t4Mi|m.O q[}ڒQNk`cHy!0>XF5$YeR$eN#XwoEKʉV N[D|]_Nȵ >2žm\@oggjՒɠM81# 9r_|lȉM|ŌdQIݚyw*wOAAv OH I)LMV- Wj(3;XTT%%Esd˼hZkiPeK7PTJpGH]amyG@5xc0!$11ZvZvMٜ[g=nHf&vS8x.e\1!4#,u`IQfBx h2ߣ -Ont -,[\òw,(q -1Z˞``<ʒWe+'@J">'dԊf^_. CP5IPǖ[\^M~_=ӽ[s PnG Wo>vئ -`)T )ARoOf,.`shQXgHNֵ{tEuuS_WE]`[/w5]n-׹.ڥtI.J!_ Y j~Vz&DidiSSOG6gXGW=~ԑR5i~2\BLwUWpZQ6SJOJ.77|=(C.u2Eʍ01>MHucFb|E -~{, /S/): v.:(H'tGr!B0FeՕ~iv@h'K:3O.Wȼ f ;+w;YϷ O~\XPvLXR6 af -ރ7E􀯽mgkCJfu?7ˢ,5adTYo-^vxQƟ $[ Raj-V( -pඁcO~Ew7c^ݞ}ʙW2GF = hTIZ@ Ǔ:)"X;(s{gV -4rrpҙpH!A. )pxլ=S{%Јz'jf$fVZZa*VPagJV$q1>Ջ- Ҥѧ7OU:m<穿My%h< -װ>?~ * CuaCO8>W0,O ^"rb]̯!ۮn܋2/V~SMp`9}X!#CD?K;C 4BeA d^c3 ExEtՊȩYVe˝ %~Pޝ2jE@3i/v\{(Дru(TrK./f3\ R{0Ez4m,J $'wNkԳ:H̬¡TK0˔]mBσ䦖tJ'?z>1 -[K==J_Hbx}5wh;Go/58#=^!KO a|| ZUSnCcm \ No newline at end of file diff --git a/vendor/endroid/qr-code/assets/data/rsc66.dat b/vendor/endroid/qr-code/assets/data/rsc66.dat deleted file mode 100755 index 85106ac52..000000000 --- a/vendor/endroid/qr-code/assets/data/rsc66.dat +++ /dev/null @@ -1,68 +0,0 @@ - NJOO -B"e9vP&ՁPK _@`/Zt> %}Fv$BBP;L+k*lC㙄1>C {Ct#>wa߻}J(^F=R .ZČ,hB'%/:jbFEQq7-O>Bo]-D_踙wzI[ti⧅{2>!\%ۇ"Vm̍ՊĨ}"cMN0_9xF; -qxkIx qV f^ '9|M6ccWxʨj?Z[Ƨ!셙XN1 !R>h͒ omSc4K9@'lQƮM}~$8SB/$ŜebB:|9 xg (vm]ljSZY<7'@'5tIh'[&-A_r&}4k +^ wg e`XX䪊Ǿn#uװS_Z#bñMH7bBӲr-1{u.UYGr5g@Qt,?i.o qNJ)^ z'>O]Y^ $w/B-3C~3hk*jtŇ]jXs>*j]1,a7 -l u -$<fP3u )K1Mnۧ&֓F@$ֵ,>ik9>K'"(2wyy %ն-6ܳR-;ܺVBcopg(bfITb"Qv166sf2.0Ql%1Q97e Q;ͮqC)VcdWV0!S+tŐ7~] --ꨭp^*4ob,wZ? yp*&wMyƥ1xۃf2SĢCƹ_n5+*$|*R@*P8g:珒>+eK[IU44uL 7 -~ThR羼赕B~#St' Y#p!JlD&9{{Ӓ(\" )\{݅SCײ"ډpjeP:h=Bᡰy0^V4o9A܇YM-1Gz G{,) ɌrD skiYG}"]knVGb`ż V+'i~Z܃ 7T3:DYiOi_۸i$jk4wjd/\5`/}]鈦vv)%DGabc(9b0BE4Fe $pZo\tx`O,99/_tWArȱ{iBCLlnq֗WwUΡũJ1T߲)e$Fd(X$pe$0X-Y|[h˖wySu˟r %6;|n0UQo,ưSg  yPdMO,q8>N)آAguHpq?.^"}H%4t/U{[ r4@٩PnR4w2ůuϡ 6Ju Gu$JE#/@K?T﷝qeSiZHѓ",]9xnOgNNjON8 LZKL=hu&@gV.}[@@㳰!S*:ԬwFˬH?k5¬p4χygpsD8LU+I aCF8}08)F8U ě6n ĄyZby\ @V8;]Yy hUڄGQڟUbDfJLMv|74MY_k..j΀mXA~\{aQcARN|牃;H^oZf5FIgaa[#Mp/"lGHzk?$ -t])V%C@%"YS_fЭ +Tԓ軗#-|TQɺbX:'nec>[Hx5 -svoL~>볔^6eV%3  ?m8%7wEтNZ"XĦӍ9H'pH%M$d2Jq/Z{l*M{Ǥ%Z{kv9i59Ps DbdZXP遬רgk*יkq%(HjGa-x5llủd\G4]`KJb$rn]vA$982,AR Ȯ 1`BϦsV0m##ʛyKf@kF@ͦ 3@Y})SPzGƪJ}TAwL=n**ZEMG"KT"h#x"̤/ϸ j ]Iʁ! -PeeC(ݪQmh>#JUm߇#{LWޒ$X -hÙ0Ԩ4_7I\uަl,C(Ĕl;K pHVt"WE`SLþ iK|jLcu?B׺j*!VX7ٻRATh/ :RV|ēXq-~ToLK* Wb=_KOQI&Q-d)HkDDͻ1# coBNNi -F znp=wV0r9P0QYDR!xSA>R-<c>T TQ.* $ԂB ȡvZoDZ!vZn xV°`z[@^`]0u IIm0'rW2k7ɹ׶̭]s*aC[RovU^AH0o,Y ,n ,IWf7'Q$T.LhKdiE%yo l5I#6| -yDM4xM&rۯv>ZΙkpg"?BowbGٛxP8-݃QxT vCn+y чz1X{u$A쑤rf ؤoCQ\q5L\ O.v$n)sm|^EN$[UFf-\u_FP6~UFh`_WLj'S`7v0җ֟Gi|002tz_}a`}6Wh}r#$%=mZg$b3o5_XG/\V? R쟗LZޟɑ;RleqA<,ĺ' -]R@g2W  oQa D Uܵ:S ;6]$VNY6˥r8cg~N*[a+@A_[2@\LRuHԛa }dnf&tKˈѩҞ0"*Ҿ %mHh -1G^jg^ٺ:/2>^^, -p&S1\0h0@R\0zk.>;>.҄4M(3/"⑱3_YҘ==T!kNtz&m -@N܆OʸrK{<+Pf/* s7O6C]͔byR&#HȇPH{H!`QZ2+QЋ1#o˂+hD/LdFGzv~կ&$GYm~JTOPb-m'4!pſ祤"JlSSvܻ`X}!1*0͑<>)1 -gAmUȝ) #; IÞXpc|/bH|g1Y\սRY??)w#83~QC3\D3Jh^g&h_O4O8'pp=)i\~h!gT#4ܢ_ -Tw{R*ym{sγh=d*aC_l ٗWHcF^~(s':6'CҴ.^#r=Z:<צ,Z0 -Hl}RN3,PjQi;DXQruyܞΜ < -9pq -o a՘z{Lάe',<5QQW֝_}~鞢l~X~H(sI^N4,9R+B}ݑ\ -'{}BTtǙEA2E~jEmh?WSέ5QpV|=<Ϙ^A6D'Eb/9:EUGeܨɂnr$}};¥φp{`+pQRKaup>@+)=l2[/kմWGɸIy 22 -Bzdfs.Dy5CK8vM!]w[H3zcp(vK+Ъ灎#k2uĈ;?퉘Qnh{mMp -:ϩ.8" KEIdK73wGK d)/Yoڭ?W\\՟ԁYڰ?4%¢Ƃ5e4!ivye0"c<"?j!ijKlU3= -&]8=[#=۝Y>uȬ\Y~gğtH A¶F^D ؙM~H6-蕳RcJˆ/lPOduw+뒄W@@ fkjjaYu{,w"<Ӑ& "?i&#ը`vOteXHt%:&{o]$ 1)xv -KPv\ʯlO[<1*|B}8e!ND+2޶+Co*k"Z@) CG̼W~̂>aff{~ p! J5nWÊÅDѰ:Q84rCNͥJG?HFt KKq]b,!ЖE9!k|y,!;9n4. ;<3WgOR,ds^6TWKUJrWEjr9M6YěK${z9.qiG0f9VNxJYNW35'[9ggOWEM/)5I/&T/- -YJoPA -S*];M4ZۜB(( +N7GW]>ߋP,-\>Kü6yw6SɊ֎t;j?ȸhY'HY܉0YsHrpdX<[EA@bEQ4YU5N/ 7s(3?]0p7l*\ -X=>q^_ڠqs;'{`[FF+0 -sɀQf罀aR'􎃑I8-6}i- y[P 6!m# H0b Itrbs0bq\XQU~ev_c9V3zTTi(ݫDe7DFED -k}#U^q mkỒBJZcz3e P`6 򒕼PW Ig W+2K+՛sʆ} PI-Нg| F:4ڝˣFiۡ9HwZwЛ/`g{9w :\Wc׹'_SW%/=eǢ/C扙!CcJMhuu#AnEՏ]iQX1yP)5v@!3DϮ(]7m(::KM;^ t - z^ { 6LAQfߧYZd E a@UMÁҖ &2~Y2i24TGYBnKk$om1?&-\_.=q`I YnxUA>P֐bYд~ߗ6(GB#铡1sM4iE^t9;Zu,ݨޘg)kT?"zL7K6עZRQԎYY3;ANraLB*7|'}L=7>d9e% -US~KW)-kbF4!ބ Mxޙ51Ozvxg`P#ʘwN!eݿǨ'lvzK P~Lz77?:.aϬ>nUv+Ϩ]f`ׂO#Nfr\3dr1*q9pxx }YWBJ|;t(Jw BJXZ( 0dbsZFg-:F#EKL!q{_Ogqjq@wg5;*ޱ3'~Ma׏\[ 0*n^JcLEdp[3 E" _M~ :UX"i.4ף.d/2I-,(VTMJUjʇnLfQͶ|$yCW@xPF5xT <ߟeò 3bh #u Sh {_u(=cU%̰*LxX]L箵Y&L;xNN&?JM/+E:2$:Z,!|.az/`ב˸OoJAx'ofc-s,bS Ȓ$8dtn$yw +kr -G`m4mBgmӂ|Zxs1"3%|e&S;>\TW#t8fD6ahj`$TCfA=@jeL:b堚@+ќ ؜ozN7w)ooH@_{ٴCވ%EBq%Ѭ} -*٧-$` XkajVW@#V$ȻaV\8ܲl8"JS&AjzK`CN:9dօinoqG! &Tq -67ckťgn>7֦tcXmOKc彄 tcMKW\rRa(2`MDU: (s4c`!X_/X+X nNH\ ŭ=J޳A؊*CCw"sm `ʺN\s@5pK52.0mqjﳳIFl S.Q{.Oh6.WLC|'ѭ/1DS~JUy2xz̧YTm 8z5nTeⓁ`6a:!>Ы!3<* --ĎU+9u(pZ -1%>}V}(b -ƇHbbQ[c@̡7}V>) }( ~Wmf{IIBAA4"{&Oe2#HU=;?UUކ?%*(j1 \8HR1`}$>ɨp ˅X\ ^hSfUToFWjMB.de H83Z꾌lŪG6N2}n%`u3#٢iLG*Q -{'n:=spnc 'nCpe\y9(3~ O9``]d追?'e lEСFH .W&Jyz)ڴHf$j2 -r//8Re. 4G^Nz )D.dt=PشnUt5 "&:5 y^>G/~'#3.#(?v#40&5x0Xi;NCZikY{.+)v&-o -Ɠ)y6 on鼶J`~ b]ǝ٘]vwl/ -d@ $Oޢy7ÈiwE3t*&4Evl2HluW6GDLLn1RIZ< -(iq<*KNym;@yX7FpX -=,ipT/'Vϭ gϷd=A5 O=78_+MzjA!d;q-}"N-Vl[;-7<Ns+aXtcyr0= /0qL $M""L󖟋 yO!`DT'a@JKڿ:8 +b&m#ΝOit^|VmmsFw>tyxO2[[C/?2[ԪJDŽk5&Q!]5 Qx+, \)tK}z*p~Ť' pfC86_C .,_uVJr/mP͓[(芊~$x1 :91̷1.,cfz?kyFc;O+K\AÉO[[ǀJ= -uڏ -3 -+g'‚ȓc7j ZR[YǥR)C-zzBY4(g֜:Lݥ2ڑ݉mxV^T@:$n!cu355ݴUG jHGeGpBE T0;납:Q,$:Ĝl5ī6M[LF}ݣB}{GdVy.q? bQ F:$ۋ ,Ȋ4ʴ<r3 r"Zzr 1)inqJ?g=*OS?ւVЈ^!Ȍ=I23ICLHI_";ZڣNch$Bmc=WUD8VVwR@2r̋2_Hc癢WmؑszUWㅥWئkIY?OQ6Bb?{T`,?x|$Rb΂ڷ/]'RFv)!۰>NLrH/f" - ϝ۬YU1 -nߤ{WhqnTsA7Xp9^ĝ88bxݺ .p}m?4eV*nQIMA *|)ߍg~ww/Q}K9 x-v So-Tp$6)'By (zx5%G~~M&UP2O撼iUhKXrVKC?ǫXT C6G;=I9s[(dU}i[uDoEhi&FI@qNQ/w:d =/ڳ ~&3G j-2wI{.RRi0h7+㸸#:<}~om_hJYjUh%Bһ6`=Dxe*D~u""u)*]AZƦAtAlEb2޴yРJ讇-cSO~P:JDB6{S bE{e8M۳X8;15T"WO[LqXiLLĬGõ_#!GY H} [8(EZJJp-jRCe؉E=|^Cc͞V}9 mS/ # e1'68@Oqbln(: -[:&YX:U6~9j\V˴2Z²S;XIDx$=L@8D~ҋLF ,M2Yʰ -7JGtF@}qԿCɭ㎚+bjl3뷂vpaw|i\6cՐRܭ4fnLA))޺H[UQb4RW4$Q4- -9C:؞=}oKxb%T ]lyffI%hci"֣s֭N"H`m(<^}jeaO&컜 pʙB5VdsmšqAV0amTֽDR]e C#9|,Cp*do۪Fu2ںô"w¹4y`R]f# ,#0B@>_j c2%_?u}t7p;hk={W=)~kGGc.<'ybj7=y+WyL2=C ݍ|D}2q ~` '*6YSѺ3o%XB1rBMXB -vrkh\0@vxuUqyf;U/᤬xb@<=\m!oՠ>J#jJ6at%4 a\,[( kX.3[5+ul);u䮹*?s<_]7r$7l {KJ$%Ai?[]`m1+`rjދ@{sOQlX -V+!qq;:H5r(\O/(Ҏ`{r(/2G"uk_fjN _ - >>0l$ʪw|Z),긠-vԾi+ dYkPkgɻ붍rΞu[}]>{^Rjw^L#W{^Z&ǔޠ=":T -vhq䁁! A| )9rex-Aeu\PC;j_2P袻 M(R^vԭ~miN1G5ե`i&K>"xU?0ĊEV<1Bvt jCS.Pٞ ^PPE%^dD5y%A:Ԝ._6h33j4^@nkPf~k`onk'Ta$0g/z|SaE5ռ]vNq8s||`ك2HUI#߉ -RXm]ZaV]0)o3UekV`167gkˏ,gy鏤QN]?5.pMZ+lZk@-# ð\fjѯVeGMRA1vI56Ao;8 T~xS>n.H)ny37SlBڧ"F`@$W#`⸰/2!r21m*]]HEJ~&,C}&uÃ&bVԡ 柞I$a \ No newline at end of file diff --git a/vendor/endroid/qr-code/assets/data/rsc68.dat b/vendor/endroid/qr-code/assets/data/rsc68.dat deleted file mode 100755 index fe53a4491..000000000 --- a/vendor/endroid/qr-code/assets/data/rsc68.dat +++ /dev/null @@ -1,69 +0,0 @@ -s '<^李wUk"mpશk&kG3X?$Pw " c s '<^李wUk"mpશk&kG3X?$Pw " c N$qx'DAS(o?EIqL֎=(C(f!~H'D7@:i6D|7f<֐=ǽj7><;K׬Ci1vǑtTv /^2A@m7p% -Fa277Z@ʒ<*H ͼVrmoukp`= 4:k5S&L힦ߍ\Rh6yl\\OZϨ*Ɇ{'򘑌"` RY`2#j.;P`{vP,P T.ҍ¾8)hOd7MQ9=mQd/ 4fșn;HX 8; -;N3m\22_͏( D73}M)U3Yn]j'(l@#_&ɑ?>]##O&i2&笘l!@8_)E Hf8Q-xޠM/JUOx// MyJJgHY5 ͱ}R tX -ЫoDQ ^x ED'DLAh^|6^dTr}OeoGpMu1NCc bEjapD0q+pd`՗H7eu+w`/"#?l%}KզIHP.m'CtB!]?(LPv dx8ӷ)}[!am>eWńz{XPJy O&:ԶvZa ?#pX +_k9Jx̟PsMx:x~9E$\VFJzuv+9ɀߛ=;UmĈZՋ ыhH³rFM=y>5L%4`#OG@R?5``4GMwGŰ܁_v1=#.SiŃn  S"_D Ie}fSC6.Sd%Qn>1sޞDsg*o/zyDbCoQ4 ,onښlԣ%gO{YIc&E^G{`֙Lݩǔ[{_{4 Ipjc)E3/g9)~;ѫ Y=[l?u{(p}#d\sJ; @,@awm Lźc4'!a}Hm{^UCgB RLQO4-)AZ:_?otZ?i?%rkȉNկqwX꯷^}ol"+H\>l1lk!+g@*+%FIh̍/%v!p,.vvYf:ڸxr5/y_!Ej)yR6k>f2ۯkuZr"oߤ1@B슿sS -b,4F&?SE+1V~W}΃bX-^FCAҎwTZuK> ۨjzɍ[g zzT,vn& \]|)ې3{ωRU( 2a'<ǩ~q7njǝ2@\tsI%a6<o+J5j zSHKȻ"kzP$Хi@-#4!+]KcB)\(!r4>VZ)!/!T4G`4KAj{]бOzJNr 1ޛJX۟`w,؈JPT r J JSf IF .6x2Y,APA1X$+ ()Aw6CQiXca(;[}^W-`UpЙA\6<]\gu 6"k9DEݗjUFb/Q '?f6Wnx>W#ˬF*nxud(У5ːoF|d, dP@M$nfe&R -f*Pē},bpY|C}RpqfpeAOo;Ibg^m.rimܭNP+>F9L?~|FF(ALcodL ".WE-؟KBpϾRp1Պ qEk-BX6O9 --hqXm0XҼsA}EL{Üo2{MZY]-,0O^ASW^^s7盔c ŐI }j-8ѕ0E6p>}KF|G5]M&;4F5$5Q|b9n[vy:J.G]B+諰}K --;IEׁNKϼ+>lȹ 7u -"2; bkع3o7b $I5j}7ht1_%WܙmzxYq͜euVŜQ8E%c.a:Ax %=Hh({"6m7c ->ηOB5>FmfS@WEuPzM1ig!L5%,o_V5z5c)D/9 .-Ec99}s~d]jeDI`(x(] '9١hRz0RRދ%sjXW8Nbaٚh#A/e#WGh;0ʖ>\cdl1>>ஓz3@Ӧr~LRkށ=ʇt\'i$NsTOHCU~LfsUU_Hrtcѵ}hA%;CRX:~l/zU華1$<[).xL9f _I:*D3$P7ܮߑr\ȸ,GdSi:C gʅ癭h B'mdŻ4ST:[?܆c='t`2 ߏ.Mʃ*T'Y0~BJ˾<14i6r|! ԗ_jԑ* |꧗ZJ ^L~F6i f 9&|<`qsV3uYon%VYYC^ EDF~JQ/4G\NDxTܖ&* 2}׺i@232&ӿPu=*^`(ߞ5|-ۍB4UAQ,s~PeAAs -ps0R-<$BW UQ%g|& R+ߺ"Q*sAg @**]+)`grNgd㹁߄-"Ԕs7oaEԝ:mg.e5[ }Am[L[Stqe ɴ~wF}(97ZNO6]O1KO@3E^lPp!? _7[°9+Ver 6M7#trk#2[H#{%;Ѭ C1(_H9 nX{>%Z21gʬޚB(V_FR09A;L]1/O5Y+ïwh_ "Rf0 pO;m̨Q2Oi&Ⰴ!Zk03+X^ןF -S^#rR gt~Q.'~yY~J,")iC*;C)uyixR!evjFQABeeXR<| bؑeBV:TVQJx`E6gYU)25{UϠ;]ۃ.JB)N D BbB:yG#`.^>L[l^?jk<~5@գЍy¢{Y ~S D ҕF3:o5bNAt& LMWbpr#{<g`8k]N6C>?2er[B|;$` Au*^BDՄ`uugON>މ2ZI{Vv_d/IϜ*b32ydTIVA 'g6~ZlrY{BĜX-%r!izk1tf -g*2{;~X/TMRF;ѯE+'̳yzx@EyTyf'e$ Gt>5C.bYFrz\mO%Σ¸W\C*6Ns:_#l>įw2ut/"\1Z*fHD h {˟4߻]c>+4nD,ygP!UK \&=]j>L-u‼OeȖDGݔ(rc -"ur#r=,Eթ7ɟ.ݝ4ahw~4:fu5$~ecf-f|,4N6P"8<ӋfAJ̎Et -{Z ǹ - -]2Z?_Z[ Qmub*tp6q$.z&Se*a{|N)p7maar*N1]3zkHW5ꍕ v8t6*x]4€ -3Q 0܀V\d Ⱦ޸H&]ʿž]]$Mo/!zP)&YY/m^Q6|w$.o66c^ S#~V3QRMqJRMvn }i7IF"ϋi3l2ɜB_Lr7OmoOIyWǿP/Ka0k&yJQ`v85޿DF D`@\|Ѕ^JB=}C,XW\(%tߋmcj[^;Gu-Bw8uI@ZĐ`\qbD-˅4$Pa9#n ̐~Ʋ`]W[~{kR-l&yK :|.i,M-:d:CIDE?Uwby c7c[ն820~ZQ$҉㕼NeQBQ0EV㟑6@gqfSk~h $(h:,XgqhیL~"ǦU//2i*9İZ8%"JM!=+I-8;&'LVIIaX=j;͑c;Pn^U} -Fd -!>K| -MWُS]q_ -}XL:R=4aWf-9Pv7ln56 I~b -WҺBVL6۞ ᬊ$3 23dNx7O$, n'Qd.y{u8 JlYx-&OVjw-A3D_bmk[3#`vkk-UN_>&msJjd&4OE e&Wk#D'EIEHWWҫZFhBAV; a:*M;&BOSx.)KC46B.o.VS-CTC ĝyLFx@E0) -P0#R3MPCB h|SRB^B(= hIUhٖE&GCbi+ٝm 4)G|t=)x)o I|5|, z'1M @4wƃaH8۰#>XQ s@#>w1@ -7@\ld;KeX%IWˠ!y킻lҗ1XT]54:ؖTnT=<oM -Nډǂ+qن(bǰHVP1Rlk 8>)P v838Zͪ1/[lxuI9պ[EtɶN!a,COkn4,`,gzi^ -&R\NAٳ,0굁SlD%(*9{r%%3K#<^@N~Ul(OYy| w jgN -rtI|ג"wNNg5#1A3R7 -H _̗L)I5 =y$j~ګ`V^ևd=VUVm(jhܺ vGW~x|_!TwT;=EX]U2뭱"0Co#?/],ʂu'vμq2\9sӚ)LYEʀ] 3TfLٻU-9VFRԖY !CvEѷh1nyGWi3V|arC~.7i+!3P޹Ș*@DS\Z#ca[ $=`E߉0j)Cp.Rlձq[= c| -0y{djC1 bq s WZ%3lr!ZZ⏿ڝ`?e"(Ugmכ%dC.a~ل1#11&n/2ʤZ!Kj<D Y_<)ZX`ۂ;5#WI!,)5nk+5=yZ/p7`$>lU$xPKcu%V!' -NK"ki!`1!̲ e]@0/a&q6/|K'}Y4jLvshjHjr( -m綍1t}\92A V2cB݄:X@a4v O:n T |) y(N$G\>9wK9K}(gZ vY$e7,  -eV|eoM@n!Dd+#v)N8t詓pւfTqDffjp\qXB-qV~KQى,/TH#֭ofncG3[O}2wHMjinۣGbMJ/M&+)3(%O;2C"UfA=8(%Y+4Pذ.YDGYj/uy,x"8!7`c?a%"$pJ\ t$).JE zЕPwDln[|soj|V0.U[҈Ylt;$i󬤝r%"7H`>[*wjܡ wU)] QUe09I'Cb2w BjJkX޾j -}|f~-'éT`F~C~}{ ҩ Q/6(8֞|wfagYa5 jR^>Er{@u\-%Zrr/w&?#QW3>P -C{P"<*xpnKIYҰ]Z ph (SUcA/0I[OYˁ>['CN*r$_?&3`÷ $9J:4p -“),F[?6^=F9a.d\2ѧjegi4!kRʸ2M*WN~^Mɮ_"vA`1|Eƻb||0A;fQe'֡SziN%52J݇x!|ΉK/GO@ñNU ?+ϗkh)At%~{e)g걪dQUчpV(׫apmp%ɦqjs} 0;{Uxo"CMV#vf"zN-"=d\T4Ѩ[N2>"`%{Njaxbh?l=BK 38 K&b]Ġah=$}Hhhuāl;ǎ_R:W< Ea@Un@4?UTce S3m u?ռ33l>YwAr'L](x]=i -\ӳn>'Ě8ؾ9^Q'xy'4NJ)S KVӑXV٬ݍsf=< K܉J[ɬ*3ÆKK:1s#^gh9=].gD{蠿pM_ec t7{"_h}_W(G.aqYl5B&l&ݥ18LTg9@dyociuҀdfd0LcQSc'IzTP9q!yj >Zq UkoN[1ȗw -2*k@ƪ+wwýS?WNzH-[6؎9z<87hwiX-]8ł4k`qZxHg -JL2. a]5Eмfsalmpw)e\c}v ݨ'?/ -+ [IOViDT6:Γ@YITTVR9$0oZD5}n_ŠX| -sI{>3?Ę*0#`??PKiŦVkO>Ƶ3޽':t\8jkA3*"}S@3]358.,!O+? swku*$ݏo3flWX[h (lX{Xr"m 5T̴sW<0濑<(Prkn+Ml'˫0bofYؠB~ ny߶!B, pL;Fa7*>t[j'{p.ULx}rV0al5n8F])6 FdFJvmE>Gx25ɯŎs_W?nBϖzRw@oWΖq7RjAeR-EӀaCU]L5Bō " fD~5?m0+/kn2`++5 4nxzgn]L; O?qP<>@B*MY&Ӣe@Ɂ̠z*3&@@zvZz+#c)jK;4b7Kr:[VnL'잾گILpL7[us\0 c=/CWXV)h.~'Үd{Z5'B9:>I'V'p코Rf鉱|SƗ)ܕmyPE`rBIqoycd>: tr<늪N>@sՔ>F=_q cW^$6i~lm,Aj *UJXlK*N7a*\Q[{t'm^AZCGdh{-pC!Uԝ+8vJ)wK3W>a`cŚnSQnib?sK6v5%PJ,b 6o'n.HҦTv:e/-[qe_{7q!K`=)r wϥKgK)5)O@۠&!xȏCxMGQV fP=űe A qtR=;-LI=Ci5QOٓVsFK1ksRW36Hor -,4NQÈav 6,,9oQGظQx*fZY BOs_Bʞp!8y_G& #EzGG~E:MEY5 -rB 8yI&C{񷪳XbLmϟ0ّX(mmS+ƒ -c_obtQk_ "wtP8è : Y4ORwHnP6ϔd!LZ6¹U'dŵrY }cUWE~|Ѓe'=$lG=1|[bPu{4yrܰ$|4J4db6EG)sP S `7 Bʺ^._7jbM\_l_/K<uECNdr+h ,}T+>ry 9vS eb/^-SS;j qaVCc'[,9ӵD -63.`uUY2ܦ8+l_ ӾY88|Soy5듳w2M6 Ϣ:d҅mL}BE1`YCfV M=# (J`;goUʹ3c(m;sA֯͞8f7xdo+  #F{xzc0y\B {cqc< -\\;þ錍m54Sk?x*T:S/HvkB^W{[HLUH]֨J=Sq98Kbէ1b -FyеRct-ūѽ -=\#7tՠ(Wtjm,*+Ev$8pF!tu`T1!§`ʢ`rZ|Vtu  XÊz-3 ۄdf=R_p e^S IL0U-YsD ! :/(aOZf+Tp:҂Iyx ,дk֢nSuR|s -a6_͢\>Nu[XGD R%sT}vSb%0w[ZїKgwzwyFn]POk3<Ç2XTVRyau}BK2ԌA9ʰxԥk?`>frhwuܝL6IH!pe]/B啁51b.e6IBSY Mݯ'o29@c4*eO8@ ~ǟ=|xm_@ĭ?tߢ9!׊lβRdjeFU,1&` xG,]vaځjšh1:}]v1;\ {WɔERG(%1{{@۹7_t$iS*;F\|Wؼ~TQt+^ug3(քż:)&ѱMz+rpu #Ļ \ No newline at end of file diff --git a/vendor/endroid/qr-code/assets/data/rsc7.dat b/vendor/endroid/qr-code/assets/data/rsc7.dat deleted file mode 100755 index 5d50131e2..000000000 --- a/vendor/endroid/qr-code/assets/data/rsc7.dat +++ /dev/null @@ -1,8 +0,0 @@ -z Duz Du)Uꁎ̟R, ɞ'I{:#`{[1VIX>S^!Ne^yE>tFAxlGS3߶bEi٣U4܉6pv]|Ǧ"}cB89=|}.m ÈɁU|.~kj؎fB*q#E9g0c$ҫ[9}h$0v,slku`Qetb7Z!DG%;KbLP p%rv.6z'%3c8e\ @~;5 uw+\repyLZАQf7 T&sS'[FXF r`q - HKCp68 éGܶIr ɑyH`'X7eW(d|ݙ2U/֐)Zi;ʃfwnBi^ʿ鿑J%5?vĘO g ` JjbDAz5\l唖W(NJfƋm -gpa,uc{%Y︩" 4vjKa X2+>IT`p5NŰDZn8;s|N<6F P/}/\kOd^0+=MR"Gf8vYB]Rn,#OStDE3͕uLx~9c 8C&-hHM c?r -;Jj~A_ :1-]@1&(;md0R*08ݔUJyk],jw״ӳ51C"P=JKنHǜϑ0Nj 3G{tI/e2>XkHT-kJ}ljmO$/hw7D2iM޾9-h6?LAd>鸌 KV4|)NSwSjsx׺za7 P[Ȼ[.I5F~6O(]M: ۖmZA2)a9Fhg&Չ' qxzdӎYb'Q]=&ܮT\F -{4o_A$*MC^Er:ZxNQ%C -$%Qƻ_ʂΜqn eAgb/XxU^sɍ}.#BTIL -PT1_DC,6xI-_q+ZXSu_pCWw5{pc0lw`9Peunc_$&T*e~?K^02wl1;f zvp9c;5dPHxgOXDp?zQU-A@nHjSB{=Ea%#d8$yJ0H4r78gqi4-<==+85B_wJs?(Z2l zb^N3UMjkN|VtI=Y#o_TItEUnxabdiBao;fh-Z|rDblqA+h2p#Mt^hlR`r;Hw% zVEOmYSV|h^8!~C+eN$z9I5nQ%g6AERM@|}B?O#?)_^|s3k)578rFsU}=f`^qZ}bup zmpFC$*r|P&MvslT5+ z!{^}n3s~nx5`%kt1@MDBlh}n6jG-hPe}a_qO5m}IUc)h;tv`f&d_RH4a5E1rhV{Yv z=K;2K`93m+dza+#*GVbvRWaPNYXWJx&QBr>q-&>13U`_~rM3J<{IZ^88pAieK-{=q z%oCE0=S$>0NfBBnv^K!KN5VV9{T)r-)FLukNOWMd2sY56heV6UmKOG1cA6xI=)h>v zx&f|QcFt(gx=FOSf-$cHe+=(`)8wC!3W*k=1EWQ#fd(Ie7LVijG}=|+6q$CD4vZG9 z8{;!}&S=rPffkI`j3#W|Z2tc`V(n~xhJ(L7G9CrZ+4|X0!ViO!;pzW4GJa+}^^ZsJ zI$IBTp5SQV8e2ZcI@bc%9i+84l4u;?kZ2$$>A|BP@?0ipz@v~6++T-h&oEvU+-Q&& z;Ovp$(HA@huGipxGKu2sElrG$Z0&yh}32N)7Ne0ERLjnH?( za#G0j99y4!6z~ciC$AurcYl{6QVJ=|y4*cxS*&>w4-MS*v~4-)S(eFC0UOu<@r2m5@9_5DR6*;*yJ1YVeJ zke;1QbZjj7Nzk@|6v`vWS=IzRBij?eR|t@*`mmeYqg&lp-M}mRzJexNIa)@U_@^I%-;t$rBkWzRxQsWC-n&>bR zAvM@|cI3_l8s8JN7hsPpWFF6frg>zGY8M&9`~%(%A7Kh?>l9MLUxCe0i*xvRG6}dE zg_a|aB-@0eBul=9tO5;ZE1{3%>BP-=6+AXh-jno2a|DkQL09Ha#LJ+=K)YgmuL8fg zWqZkN-b6IPahVShXpLkF@D?StUF2g){}I@9LZ_iEg8hp}v!HcHOF+v+^Pst~e!{%E z&=EW-xp5SHFU*l-nb2+MaE^IPfe-qZvBu_MID#Eh3$>8Lqr}AImH7rCdm=9tFJa7? zyoYR2%p_5)VV(0K7u9k%>|!a|OGwioLYlQWM&O8{o4ZRq&iI<~8u&|Thb>(NJ3Wrr zWjbP43`ITg-5Z8yHAG2A^c6^KHU06pAF$h;l zg6uD>H5qnkQDDu=ci| zb?jjB54*{ZXM_V7?=a~p%Ojr9k?ALAN{zLRuLkUn@$DU`wp+xZ^c>X*wC?ml0{Q)27AkpIh@RJ062f1YSMF#nibmKqyT7m0HAw2#6J%;f5 ze;kJc?}h(#pV17qeO~amlkrz;ALowqk$0Tm@`*z7{XdR(`ZOVZ@V|}{Ux$2~)<@8a zkQ-k@k4(c6SZBwkDl}-ao2`oOB`IhTtno=C4ZcJ*_ZvxqZchMjR|snmv;0l`23->+ zA4-NXzeDoXzJ@KkqjBJWG#T2{T=$mKf$uF(;QOy=U*miT+P?(oEAC79L+FnvH_*tU_vy|5;`3HWFe80&Lp1{kO#cU*viV!VoOVNOA8=(0OCTjo4i5ZqV1`NjsnEH=~ICC zIu|ZM{3;;+01%U#5I+crSM!hXPw*E2F%fh^iBKsl6V?ka3U5V|=w8taqjyKY7JWAQ z7eGuLW{2J3kRVQVWCkIg0f-*~#82D-@!dg)jjbRa1BeMAZfa?1xk50WI2qrP1ABFz-D^H4E*2Ny2+k8>TSOIWUzC3l zer4_#^9fD<33z$+cV4U%}|0Gpe@ZWH$H zMYPc8r_h%>j-TQDI|{ACJ`}km+8M1F4H=lwhfc-$^w8Nq9ckr1-MRg`l+nT^zMkLA zZ{fG{+xYF|dwvJ`f!|4fpOqRF%~O##Py zXc|qYU1$dFN;7FU+MV{GJ!vnRMZL5)Eue+89d*+(I+zZjchPd{;~%EO=x|y=N6<>h z%P2aUj-g}eIDQYUq7&#udJnyqPNI_$%}k}!=yY05XV95+7XJuWMR(AhbQgVy?&kOM zkJ3lzUiv6)ppS7AxQX;T`aQi$f1uaskKpB>=`ZwG`WyY7yNCWk|Kv7s8@WwfJ-3P@AHrG`}jQmagK15pTbY& zr}5MIYJLVklWWVb;?lTuZa7y#h_~&B;xlG_WN;*3Hv@+MvyB)^7 zk*-|V$o!;^j@Gz`NxI21! z13kSrds2g=2kF74a5?9< zjK5@Hd2UXm)9Fj=jTw>bt8|qEF9%>7+iG+ zHJZAqxj;85Dfd%cKei&$pSRNIH&j;9ZU9wUdR}Rf-#qZ{azE$Jb5xB4GVouP%h@&3 zX}sA71N{AMgi(Ef9AMb#WN27%)JsO;#J_N0dEneZMnxVX-sD7|pQ~hdUJTu_4rX^2 zhVI;aywU~Q77Z$|LyD$gj4KxyUoq0Za1^*}A|s5;;Me^T>2%eZjE>A?z=*yM09`O< zg2OM1^UK*&tsekSvPbIh2PDz`5jgx1i3#G2CP$_V!?1C3UAdLP|7KN%V@3xMou3$B zgtBtKHwPH=jtnwM?!nHHJpLB=aV8aRS z+&hMGl}84K0R#G#Zl$A~i{yRiXut(W9=^D;d*H8M;Z~vj&d4FLcIZo zKf#eZHYeDRo!>SnPIz~p{LpA}c8YQOw}}+dqO$Cyj!OY9kop~rlP2;aaWML*5V+$FjUeEfGH`97bj`;;2MNQd zS1t1@y(+JU({hmq0W~1Qm1FRHRg^rfp;{Vw5KjR{Ts}${9#nZF13ea^hu0T?crXsZ zsRs`&e_BKEnDiGDWwQ_1CAQoe)V!n=_Ghh94NEd{8QN zhA)%6TUE|{$6yDI9vqX;4~~hZdN|!rMf3fN;$n)6JTXOi?wGhV!(g|k-QWmwON>Hj ziIMXyF@*)5m;&50drX66lpid3@H9{Ld=~!{&-cxXi1|K`x;(Li+j=4g+dS66Myeld z@aPBY^#k-=jQ+fy)9YLGoE-LkF!hkZQ^*4H6#0<|20|CwsEi(^YY&zUN=z&|s%U|U zP?g;6r_22ALF})0;84GOnV$?EdUyFjN>}@8SFIx1QAPgLLFIl&l&{D?244(O2W=$V zS6!W$SW!J=W+MB{NUWYAeF^=MPQ&585V?ieNq_9Z*~v`V5!pFhYV{HFiG{3#mwlC8 zy!BVKuaioq zJ~6?61IcXCLg&$|+(fR1JHUO&TlwDn2>507Ai>W<8{ux@IpKyZPxgrHlsrwoPJUW` zLlLRSQH)XiOW9kwQ2DVcLN!=br#h-usx#I1syC`%R$mT_2^$i&BkV&>N6j3~8=9ZA z?X*SOHQE=nU+GM`F1i7_>ADTN$91pi+v(@%4;vJQGQ&n=d*e9cM&sKigDKv$!1SEy zx_N;45%YVN_LeHkqn0Lg&5@%c7e}6q{JE{UZEo9p+dkU%leWJ`DWjsJ=0&ZH+8K2q z>V>EaQJ+L7MrTClNBg2DM&BR3DtZ@~_hd{&Ooy26F~u>%V*&aTdUXSs8Nb8f6G))?!IO^NLtTN*n$c1CP%?B>`Om);fQN_J(r2DmC+ z4ed1T+P3T1u1C9m?S{8I-0oDn_u75c?oYSEZFa}FJG;H^f$ov+>Fyf$M)zL#GwxU2 zZ^m_tD~h{2?%ufj<5tD(iffEJ5_dZ8{kU)9{)$({N5prC?;hVb{;v3{_&M=s+Q+u{ zw9jcjxc#{Hv)eCgzoGrE_D{8cwf)=eKW+bG0!h#$*b|Bqh9^u;n3GVOP@m9{a46wK z!e1SdI`rz$zr)ZDV>`_1u%yH04xc8*Cw5KDPxK{DNSv3rGV#Zb6FScASl4k=$A>!} z>iBZUcRGI2@%JQIk})YNsZ&y~q=KZfq_IgelMZzfI$1lpJ9X)l*XgcK<2%jiRM%-o zrzbl-*XdNJ_d0#u>91sEa+~DDPfhQZJ}rGt`l9r2(tqmGqs!VZd%7I%@=BL?x_r^) z_Y6hGJsEFxm3JNA^;D)QvpBOM^X<%!x^?W9)@?+$*So#l-Oznl_kG=e=;7`$yvMPg zhMpsOKG*YX&wuy4+Ow&bwpUEADZLi{1@>Fj@HznuMBpTs_Q_u16v z;~ZDc$egEg^|?cGD{_zJS@Y8J?$3KL@AbZ}zIXS%r|XXek(ug!1F zKU82Yh%6{Bs3|yH@MB?G;rzm*MarVFMUNL9D|Q#B7uOW8DBe)~Xz`Q%++Wu}x_@$iZ~xN%WBSkRzoh^6{{H?)`+wB`&jHo}Q3JXSm@r`5fWrfR zDH&Qax1?@hyMY}CrVYGn;JkrL2ksttu{6ANN$FpMCJ%b2tYg{kvfs*@1{Vz;HF(b8 zwSylUq8`#~$mk)Pha4F4_FbuWjk@bfdB^fzXzHj=CYDKlVx}tKhNnrXWEYec+7+)&+wX)GzpGVf4Z& z3!h(jYT{*<%cjwp2OoRz(1Rx) ze7)9CJEV4F?T*?%mW)|)W@-G=MN8jVmbh%rvR9UymycWSU;blVQe9o$`np|pjde%r zUaGrT_eI?wE0inRtmwF+*NT!AqgKpVv3$kO6;G`=x#HrAFIW7zQnfO2Wzx#*l|xpJ zS~+>;f|YAmKD_ea%9mHZyYlOm|5+8bDr!~os@|)HteUuL-l~vyZnb4~-0H5Y3s(dmY7tv(8zKeM9($?i+G8)NFWi!?lh5H*VPY>Bg@%sWurmP2Mzj(;xL*y{>**{i6DH z^?T|M)t|2ap#IzX>zg&3qc(TioVB@d^WB@rZ=SPx(dG@Cw{L!O^D~>D-~8t0k6=|f zR&yh$VaIu*Al7FEUd9Q$f{^6YWDiaDBzsaio1I2y2HHu!py}BvZcg)3*^%poRl-+z zdP~a{x?Fl%M-sgjUZvs$L2sZ`!)fFLd>R|aldP;nqlsjOCmT&P)9CRSF(!5K9zM;J zYO`A8uGl!5H^FoM@_pU1yqRe^bc5i!et214wzqEO`Yi?I$E~i3wE+vLnquaR%1dSg2bP{=is~@Fuo;2P^HHk&QBsAz>Cw+j^8XyG!M+#**y`8IYwTpjLkDg}*J)8E&YYGa7OXz1^Y zuo?$w=>Q|u8ns55-OQ_HB-xYYF=ZmQ9X=e(O*9g==HO8R)$TFkJ|H&PGo>bdOHB=2 z0d{z&6{|2yEgk7yG!HK|E5#}QZZ?e+&y_7N6EBo5D-o~Lm>ltYnpnD`l%|v|DWl4! zFKKeNc!94G_b(Dl=>gUj(Xs{fuvpC60&zbr1I=q%mJ1rW2|3|7l0?RN)8mcqD7zqZ zuxMpYLLy{Fm8?^;TPxT0^YQX_x(>QxUsQ+0wwAX2eD)3&AjcxJVa3VPdQF+BY_&#d zt--%0iZ!zJOGpS1$s$)+UForL@#!|3#~2rvp4KHJ-D9=c6>;&#XikxaLl^+X`8m~+)>!*Tlit~Cqt)<9!F0uJ81vrk}GD1JDDEs zy?f&-q;^S9i@WnWbqtIo7S(}K^qFo%1TPg z$_nY(ts7Tw-L!u7L!#L9?glj_{F!^E?xQRTGPi*JpR~|PdxhQ6IZ^y z_UVXPBn6!<)5 zeSDIxvn-j9h~qnSa3q@?szRSbAX$kd91BghXM#{p}~Q%kz!&RW@o*jH(HZDyT6o(dpGZsv>S1l^QsOtBWZ;jf?l#Oq^!>`rRuw zu3Ni@4J-af?6&VXJ^Ryd^v#n`i76O$2)97cA!^f+&fZ8=TvCNrtqN1=4T73#IgLiE zhW=7wk1Fex)SJA?h{sm$w#&@WoAG9MhK%RdCDPSx#G1eM`*-_)5tl~MrHOKjICIL8 z81YyIoha5<(7c!$ca26 zTxBitsT91v$j3(n(w_($! zhQ0ONC)oX}!>;3W`T(6SJ|M0aPl}&lx28M(xy4I>8WA~n7Er56JFfvH#7Y{b5mX8V zRmri_#B>?7caX`U!kjK+T83P%h^HRz>>i~x?VWO3vr;fEo?-2@e>zRXh+|+y-O!#9 zu=)0IsxT9?jtXre4eBDFK|#ZdeQaQ+K5l6Z4D3v&y`UVJ7F5JDy=b*SH&~s5yD5t< z@=xu$`hmM28B_lHwKu=p@t*i1_tP3$b7;%jK{J>47%*+$#X~E^pWYHrBU3;LYP*C; zKoC#*c-uu1vqC|5TdY>zK7qH}?6xAG-L7`KqlvaJI!~-vyZ(vSHat+-IH_#t z_lw`XDpagI6s@!!UVq`TtK+WZ6q-QQYc?;rXKq^F)V>2>W!|`;_?v>4awl%Z+_NY&Cmbx^c7JYusg}qu#=`nWpMkqiUoFtnVEnp8C12Ab|lB^ zYGVv@!U>TZ`8c;GOc&M97pBu$c#FNrXNlmI@JL{egIva7%aojt5LqR2Y#`25yA>SA z@tz>ZxnhYdWQ^soS+<#U0L`D)yWi;V|I%nCUpsZ>Kkr--|DfNm-no9=(0X6V25uU5 z$Dc5-i4Z>)U)_K0jW5I-bnt6WKfbP^aB<%FLsg6)LDNLwQ%+*M1}a1OJQO3(6~k#F zjD{gOfD}+@Lo20GTt(9r{#RAu1nY~VS_SoKg z4;2jl*SsSio;!YHW&dZUKJ@&JhWnPRoI7%JU+;E){C#7FJ(%62ZrIq_jJ6Z8I;J!1 z#7%m8V^PqGv>A#*yhSebMsPrc3vUmNh%pZn%4EdFci|uc^VZ zrVWJDGw7~w-ui+nw~8Or&PVsIeY9|4-h@Nr803=WK&2J)q@cqM5DP+VcAa^EPiMGk zM1snWi6`T{*0#imK<5stGHYII+rs~A=~8B5ILQ{)VlE|gLo7H+tCgu#7ITKNKZ5Ae0K z8Po+nL(sLA1VxHULtYXr0SiS!Zf(d&!5GS+5?jZs&iql!`qs=FP(QN!^KZWJPJHnL zV|yRE8NYU!xw))*M(MaI?v$mYk3Uf`W%T4B(?>YP_k%$#N9MHT$&bno!!yr9nsgBo0j5 z*?Fr)vSA!*4g}81v|)x-?s5<~7ww#>f{Eh3*~~1m{Al^^sv)z&lT2>9Qs4rx(Oz+41W+s1-RiWPW9}*d4Q+ff70a&5a6HM8O5# zII|F?)<;C>)Ph0>e?X}Z*M}GS^m-l9MHKpUCSou2;ko}(xvlh*WO|$qSV#C3g3%(l z5VQwuj>~8aemjFw78e!Pt)TtHKd*^gBMm>i%m3nansV^zXa6NTa^U#l$0O94;>WN2 zo6niHWZtCabHnLFN%(5Wf{Ki>EU-WzuDI z!soQ?XxaMyOwxccSvfEUf1T+=ouERkvdJvd7W!nopeyt-DutZCn~53l9&$(y!sCm} z=y6~SakjWdyobJs+Mv0IG1r%Wo<~tpD)+5eFD{ZD5toRM(P$cbV=A0ZtQqt2e_`G* z=CjDvYAO&VMLtHZD)7O4ah$Bc$MF;rPHzElr_aKGKujVv{;#GBd~)+VuA+GlS1UWR zSxl&J{;JhXDw67LgIIy`O3JIl?wE+V{y`nWm@(u`Vs*h8Xmw*~cnseB?dBlmWIZK4 zg;iLT5gezBR0?gQNMr##FPTPTEbwUrnZ3X#yG6u1S3#Y~j4&|{(NPj7p+M)-H>YuO@twzZg_>@YSTF%2qmC_&x99l`Cq=nex;govt*CUH* zY!VwAd9IQ3H+5*v#T_z_*w0klP~sp!(T-{|p;FNzBy*IDkHhCr_T#DyUD3ExUk z!`?BR$ha^y!waXBsaoUYmg@yTT~r~V1Byxb_O<5kw>CC%o6j^K=1whZeiVdmVgbH9A_9OLWMu}f1TRzfPV1RQ#<17F*cNzJ4nT<++#0S##u8pK5_T3V zRU3IZA`2ZshA+#*vXWrZkTnjN4JUQktSpQGgdQ9bMo_*)G$?gDDWT_;^rG0PQ;Hgy zVcR=R6|y5Y3I)Wr{DD0uuKyC`7M5u-kWOB!3Wk#E^-$zSQy8z%D|xC2ams(q>k3Yc zY2&yIa7)%pO_!C1oiFlHN>0Z;B%J-=aMMXl*e#N}v-rMD^FZs#PW)XoUEos*yuQH4 z-x8UdJ_o8Qp?0AB@V9j|EjuCZ6klOV4|Rw+h?Ym)sBZrG*T4S!<=19J)eno4AtP0& zOk6Hb6?cp8i|0`7*a4Asig+%d1qH@mDo`lR+eQt%1JA^4QG z-fsdH^ze1kya>8&;1^yE9l~oB+K2+5R#2FsJ`k2?y?Qe|x+y@g1;{tS^eFxwE1$nf zhy5vD$@oXid@Zib7VBvt_doG-9{AC~YtHw&wUlxil~ECn=&Cc~F7f=ghxa}4{3l#x z^KRLZH_wZoj%%L6RjyyNX5B*YEQ>@qXyA4Xd(mb%^WkQh;EvNo^EMl_uub4$QChJQ z0ntM0hb0RHmm?JNBFKoBA}Pt5!i{19rQK!|IPsgG#HN))->GWc-*e6SH=YtNeDrMk zGfynt(zSN^S5MN~lOOci8`p7Bb@9m3w1U?je*CqPjm0y@7mpm6Qi_BP1y>PaDDbC1 z*2Y9o7{c>Pq>KdU1c7G;uC-cZnucZBtWIu4qnIM(iz%|0&62%22APS#I7Z_38Vyvf zK)S|cRPurr0|mt;kTDCP*uo@5Qiq7IpciEk;@je1_;;!CwU?fIO?ITI|8?S*E* zH03?}%BiFLQNW9j0F8#MMjLM!%yJmw34zDUQCVy=MAACIod5$eb`R-I0!3OB+us3bP=upJga%(R)L zXF&*PAB=8hqX#E3dt|5fi62_isI9a3`95*p;jcT}BGak-Fg15}n$y2J%wO#Ns^!6* zO&%<3&WUZ$KE=;zTCn}))o<{%j0!MKLOtLJBQCE=kjtR*Q3(*n9ugRU z0CVF%q5dTNo2iHCS7P_$sA-=3jM$y4X`atDamSjU=lV1kv+)_$=3#s#ad`E}Q_B>* z3RZaMpq)U#9;rqpiW8BBw$4!fx&v427QjAuL(U>+?vAi5y z76nlVR8WV>1gHa^DsS_QZaFN-%Sky2r;ycT=9SF`{)MK$_~=?;%huW(6EJQA^4L=_ zt^!c%PiMqS)F~d9Ute|I$yUpfJfC13o|vBn z`tHb|nt{7xoU5VvvtarZPk6-Rv?(+*Ucf;1RH-70c*wz>GutsU^2|;Tro4oyGmgkE zt@;o1-tZoJyx@|ZgnAD5s<3~k#5-nq9VzLkA_%Q9oENkvF>98xvZ1U%Xp^WoMU#~k>85SKK z5n)pD@Y%Sq=)OKK42cMvq8Z^83ghVf1d_(hN41)J44F92J@L#qZ-vG*XuP=yoPr;wM1hz8P!G*4*<(; z#FFQO$8ZZ~@OOBt9g!d>rJAI)cU-(n!8}Tf!qderDcFGC=MH@EEn zobg6u{kF!f_4UF~@k8+!{Cjsm=_>4IELkvi?~0ed{`&N#3-7(nxS<*tUV*p!Yy`2B z9@a<2huh^^KxQB&K*qKNTBWX2I?IBw6WgDRb2*GGX@)SG8+Q$fK-KR9b|rZ-7N?4b z9@)Ko?PLqycF<5W?HFrcWs4Gry#7J=4Vl0XW)(7k9~1DC?R7@U?L?B>D(^l@dA4Uc29gf@Z*wbDP`9gHMgm%zkL74pWeGP zTdNQnmWsO?w{CA-zkS<=$M7iJh)TG^;~JeD<;^Lpk2kEKb>&$wZe^YPX5dNTXsIis1}7F zK_`#F9t^TO7LCTtVgFyoTWxBHf*J-=A^?B;0VGH|R49v0T-Ze9^GN)oFwezQ&GWpX*J$llOuG*OSb?`lT5-(bW6kw(U z$soPSWN)v;h^}r;Oix*gnVMx>huF3;?g({upSJpReR`fx*}bn%9jol1SL&6v4js6@ zz7G2KS$%!&4Yp2weYVITkA53U@skfVG$_?6&&)V;hC8+7!Q<~W zzYOV47~FNh-7mb=oX$MsJz$h^c&DF-Z|w3KS$>&PgHfx<_h~sjWt{P*6tM=Av~ZeG zg(6K6C_@?2&~UhGhxXmNweQeX$fpUJ>0P>Z&B(ymE$c*!G`0r${El9mIV?=8R7SM1 z8S;HLuS!qAeehZ&&C%wzNzAPROhfD05=V5;?bE;D){LShVyR{DT|(0hgLqsqJT!R# zr%}MEfpmetuT!hT!jy7BrWA}Oc&`S7QpqdAth_$pF(iZI*`_tz27HsyN+pj71}+ed zS`@S_v7C-NCFanN&xrHq@7=59QhJW2v&E$56`cHDah%-JbUFjSvcc#{hhT1=V3|-; za8ihbNoMpJZ!#oOAP#+`-tx1M5*Nwyx~xW{3FLRFOfJ5iyRFS?HAM*82x!`v2!mOV z$cga*7$La11tEZ_hCJ;6=eJ^rTbyC{U^~ts{bk%CcTb(QePhGa**n%XER9qqKQWQg z0m_tPvyVN;ovEog^jz}}cKp}7%_oKY`jVl?hKzaPZN@P{ZUwv+lHv^~7RIg?mCdSA z84O@ngF&tTCuY5!S8u|?ICcMS28QS8v{zqaoOrUKvT+-cs{Hd2JoYGl`X9$25>a@C1;+tTt2iOi#hPfWkk(jI^dk(}3L&i&mvlt2yLA^je~}N}3_)?U*uKSCi0?5n|eoA&=Wz(9NEcR{MOzaudeBR*8;|vmaE)8{APho%1u}-s7x{OLbzRRHkkYR zbY6pA0YWK)glco{w&Wf*oR$FZvt=6ElphgB#Z3|E95mBX)%QQp@!w*D$g@BUOO%1H)p~Cy~}xT9NjQ*$cYR1 zNfOM=VmS^ohat*PQ?&+LcX)e&P2~y2zsRy7JoR)jnGqxI7Ap^3Ezv2%X1;Mqti+(R zzQ{?Z{kYCISUinbN$$dEZDDOJs>rBlyG^G>)GjF7m|$*{Om#we2BKhA5)h1pvHgKU z0JarkGBKXYFbAgWf+>aMGv+j9`{?s8itiqnI7O)pOEH}}{7P4gQgFSnU%bH8bieS_ zh~@>zAB+}DiZY)`=Vmsq*gvyfJ@;<_1*qb&My0gISg%ompY5Tj0a78f46_PYECY!_ z6bOfdkuZy^T=b||^E`D@$G^lHy6(7mPJI11m%`b_VRUcvx6SA2aWMzubC7pA#<#Mp z2bRg(>;e)+aLcukN?7%*)SF%d3%FaY4LlPtv>6%Pp`QkrmD)jH9TF4r{_Z-p<%{GfDfL>l3qSmjnkKUSNSemry9iMJlOZ}E%|j(m0Ll4jg6ZY9^ajV4$5 zR&m2BY3la+)eN8lQ^Fp>8c{W7cNUVS%L$;fxeCf4S2$TM70?he< znN$&v_tYp|YnlSx76j`Cx zj4Kfm_%cXAJFk(~hewz+B|hGy#}7J{_~axxkr={XNq!};{Q$=v_9mVAaY((v=&(Ib zn5DQlTAIF~%b2w}(|p;ZlDjPIGH!ML1NlWmxifvbY@XCMu5F|@vwpJE;lK;`*yk5l zAa<{Srz6!eqmUU9nce{Y&`7n+1|C}n0rtDCmKjXwGFzmo3I@W*tdx09j~-c>o;+^< zjZ3oPrG33w`ChE*1oZdE(%w%mZ?sLR<&m|8`z9#)wowr>&aBqrwL7g4rVvp55UMc+ zW889zLR=yh&@y+x&FW@ZV9J6SDKO>FPS{X;_9R`ov}kooO6{cmdmegh)#{(R$X|QY zL55DLHnS``MiU+p-ruK+ zh(L*#q1a~*Co&WW-Cl5VTWL~&i*H#rsBg9libFaw4JfGsLvxKM8hdVAGjBd^5Qp|I z}9+f1N^c57yNFfx06Yy2n#c4P}8O2H5Q#!VGmd9bPBy3^<2bk z)th6?oZhTAYp7MOVU$w_zmLVW(grN2Y~T=)!|lVy2@3uL zYJou#Pz{)wWoxA{OwtfcM>PE7SKYeYmesvBMM zURhSYdzZFJa;M4}-`D4~stkR7DyW^H5+zU{w>$afP!!7~nB`a`UWP0))(Mm>-Evyu z;I)8?c02Pe{?Y|CL*{oLoA=UNpS-YeR=0bbHorzI zUT5tkanD=l#XT=iI6#y3AD|tcIv~F9KOnyMl;AqBZQq`x`z>vM{@}tNJ!W~tqtY|t zp4U%_4R4*NLtlMTy!hk+n&1yU#^gMYw{X*Bry)x*1iQm_d8C?B8}n-&&bDf`DZ+*V z0-ocwrWh>so#C%Qd?eYwX-2`eOxUH&2t0ikN)jdf8{H^%k#e1!C4AV*5mUB3I&JEFi(`t zNom%bVoV(LzL_(bP3C{(Fh+n|I*YA4pgg4D&*j345DK%4m$o|bD#ZU_HtyoRB_oFn zpGXf4?ssk9`K24FtYQ0&OaGJIxa)(wMZK4m%!?Lh(oy0re%@m7)c;~Q+HzeEe^b5z z68HCceL;TXH@qNYSpW`Lzz^fDK_*$;?)2)k(0ZulZevitXycjSwRxlUn@G@U0kLPy z*xKqWcxLh9Bc7DO@493idjj<+v1PFqjVI_(&iaV(io*X@Hyh6}*93i94&Vu{rJJ zRyFUv>MM1YWTlPD&92$<;0E7@1N10YSoPJAk;Pqda^q6Vr!1aYvbpY2%<1GZr8!;5 zzQ*cN-^!b!)$(?3({S@7GgoY;Vdh9PXErO_IAgR*WECVegcqQOhd2X}v{vSj#WdG{ zS6Fk^r8)ki`?k#3Fz@2mGiQ$KLph`r!w1oI(u zi1@@q4a?f7r+isou2wfR(D~x^=iiaS#>a-0?G|5@v)QMKO+qESbUlg39-|C_q%4d# z7*T7(>t(2f3%pJisLTw?7853yQBre;E*_^)IsM)0US%Jg{pcGmNo zP`aj8ZtJqN4>oW&a((U|YD*eX32DuSB{>00!mPF1Yho|CVf!xvAtkdPRu!`!uMBT3 zvEa{;RkX=kxry9~C+gQfzHjrEN1MgFt0oK^HeviQVancTk3IazGe`E!#b@5ES(vc| z7Ght}LO?RZRM=wV6`Wcn|2z8tB%ziBKbs{B9Qb|WzL_*eygZYZi!chI@0>=Q&=b!XcGs&j8FyFgO6%{mZ+Y_%PDX$)64d)Q%@x)c z{yyvbIr@?re1G&+9O4YDE9==9@4Wr&!f zNPAY(t+YhDXj^?-mqkeEK%%gt6%~cI`y2y&aRy^pfzRl=iT)b53#VYZU85Gsft?k(ANS~IMXem)X z%^75IBr*MOddwoVfga)i(1R8cSD;7K?LCr1v*51qw_~_NJ;+3ofgb9^Jl9SdJQR+&X*mZJ#BfN~KvDm@HpgPP*! z`At-Js|X+vVd57-SbZIweO4XDVh*IXv5$@v5(_w_#x~C6i<(W%;uSx4j6c(SoQrC{ z!sXm3qbFubWwpWLN%}VT4CA8t(5R?S1c?VT5W! zIFqV8TlJWQU;Sm2q1J!sL5o^$1bVc&y$8c;V3vu*Bw>}K&YM{60e5qVG*8C>B;wO| zK*H)2@zOj-3G|rNGV*pv7?*Gl-|9h !}#gv~NV!5|5YF|kE)J0y^zWbk4>=%|6F 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 diff --git a/vendor/endroid/qr-code/assets/image/b.png b/vendor/endroid/qr-code/assets/image/b.png deleted file mode 100755 index cee8e4ce54847f8bb315ce269948bf2275bdef49..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 851 zcmeAS@N?(olHy`uVBq!ia0vp^EFjFm3?%32=lL)&Ff#=Bgt!8^4L|@Qff!0PfW#aa z92^)L{xdiLS^q)!|NjFA4*X{TGJqIL{Ras*0OcEi6c7V70F{n{(GVCSA&??F^$XCc ne4Z|jAr*6yA22hqg)lL2Tw!>)@Tuf#x5 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 Q=U=6Yf`)vBoO$qn0R)`LrvLx| diff --git a/vendor/endroid/qr-code/assets/image/qrv1.png b/vendor/endroid/qr-code/assets/image/qrv1.png deleted file mode 100755 index 8996ae10c13468cf629d121b9de55fd9b9ae241c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 137 zcmeAS@N?(olHy`uVBq!ia0vp^vLMXJ3?y@6zxn_vwg8_HS0MfW|No^o=iddg>^xl@ zLn`JZ{{RZ{vza_<{?o|S_Wt|(aD$r8{T)6HN9{VSLL5Zzw`V&i*Rs!MQrXwMBmPk! g#|DWAvF@h~S5~I1n)_gTC(tAYPgg&ebxsLQ0FiPr@Bjb+ diff --git a/vendor/endroid/qr-code/assets/image/qrv10.png b/vendor/endroid/qr-code/assets/image/qrv10.png deleted file mode 100755 index d4218f696d66324d1fe2273007a36f215040fe02..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 227 zcmeAS@N?(olHy`uVBq!ia0vp^jv&m)3?#Q$MzaAawg8_HS0MfW|No^o=iddgW_Y?d zhE&W+{=v`6%kv{r{)yuk$!~0J@4q{)*?wPIV&9SGi1ee0Yqkqqldm-3Uh(ez-~Z)} zuk1S7m>fB*Z|vFsT~X~m`%34{Z|%gydDINcCd{_K!W{Wjp}vNFzmg#60e^NI4@f8QMWQIseCk>eWsMuThd8r^^Y&+ir}eft0Zz4Zw{ z6r{MA9QG=NJ{6e!zWK_+n`QFd+-$ogtZ&G_aR{@#k^j^o>_@$Ulc4ho=?ZgU&2R2< z$9_fdC)e)a|9-rD#(jrO=11`!bDEDRykuCyH_6PQN^s5lg4=cn-Z~U<+leteFSeO@ Tv&YCC=spHdS3j3^P6M~3?#kx&YTaV*aCb)T!Hle|NocXoPQU{n(FD| z7*a7O`3FBUFAvL1`6mZ^%-`_x+<)IZGk(9hK}{#S@%paAGt(EIX?9?JB(Sx-kz>WT z<_ryvmJQBl_Hu81WEY{k>*)85R_PTTo0@C?ER;K;!`^{Ot diff --git a/vendor/endroid/qr-code/assets/image/qrv13.png b/vendor/endroid/qr-code/assets/image/qrv13.png deleted file mode 100755 index b73b80311e7d989ac136b21a66c3394009c704ad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 225 zcmeAS@N?(olHy`uVBq!ia0vp^z97uV3?y$Jul@|A*aCb)T!Hle|NocXoPQU{n&#=^ z7*a7O`3FCaT(n7n_5y!>fix3EJ%=R3 zM)4OszO1&H^HWywm#&;3-~ERRnY~tCFlb(8H{peNOH_o{-~K}_OS4>})V1OjW-v5w WxpbvB^>ic9g$$mqelF{r5}E*7D_FPy diff --git a/vendor/endroid/qr-code/assets/image/qrv14.png b/vendor/endroid/qr-code/assets/image/qrv14.png deleted file mode 100755 index ed4ee15bec0ca0e6388d5555fd67840ec2a35f31..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 232 zcmeAS@N?(olHy`uVBq!ia0vp^fgsGt3?wHw-Y5l9YymzYu0Z<#|Nl#G&c6#}&GmF~ z45^rt{DYsJm*>a^`xDL);Wwlu_T6va@V+iT;fD}^;(t;14d z|LQFx{<2>TFyKgJpUp4Ee!EnDk=$Y4?}a;ZH*{`xzVm;f+zGw*AFr)DWdHroww>W1 z>>g$>amW5uyut6wH7vj5ZJYku%ANdsU+^E(GwvPri7#bT{;_)6>clskaZEe>NwDaj el9|2IMn z0+Yg&ugwSlE`I1R?MHs4%Eu~}-|jY(_U}{v!+pm6LqWq+?g>A{Rla_x`654+_jI|& h&xt4gbRS`3xG*RE#InkYJwTT-c)I$ztaD0e0suFCYEJ+F diff --git a/vendor/endroid/qr-code/assets/image/qrv16.png b/vendor/endroid/qr-code/assets/image/qrv16.png deleted file mode 100755 index 0d2fdc89242614f4f111c666612d66ccab08f84c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 231 zcmeAS@N?(olHy`uVBq!ia0vp^ks!>-3?%c9O1%M6YymzYu0Z<#|Nl#G&c6#}&GB?` z45^rt{G*?Nm&c{Z?u7Hq`Ww;``|h_F_0{Dk{1D=Q8Y6oANzDrOh5H{R*xrBb_(C_} zJp07}4vs|j+sqRgqpRdsv0t|QKGD+ItxfjTeEzQvewJ63-*=qz;eY&VMUGfD*YgUW z`S+%{9p>#n!=Ezq{_nul35On72fbh@Hc-0rV5gu8^ZDiSuO=25oG=kNSDxbi@F^o_ dDu)p}!zu0q&%1NEPXpb_;OXk;vd$@?2>|6hTCM;9 diff --git a/vendor/endroid/qr-code/assets/image/qrv17.png b/vendor/endroid/qr-code/assets/image/qrv17.png deleted file mode 100755 index d00b7ade470e1b46054f8fe2b82381c4f2ed4733..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 228 zcmeAS@N?(olHy`uVBq!ia0vp^u^`OI3?%>V|Iq-X*aCb)T!Hle|NocXoPQU{n(67{ z7*a7O`A0v4y+p^8nhEVj|E)p{YWDL#{j)Rv;0IMXwPL}}&-|wn*%c@7c=%g#{AGUi zQ$dQ0)#0+kse?ud-tV2iCRjbUGfIy*z2Weo2H6vu?X7;66NLZCw_QjL_`+lK|AKd# z$(;`;YI@us{kheDgfZ3EMWV)?OEzF#d%Ls^dvnTzO6eufxi?+Zkg4!&3~HMY@J^wa Z;es~5z_ZW$Hvt{V;OXk;vd$@?2>^CLTAcs@ diff --git a/vendor/endroid/qr-code/assets/image/qrv18.png b/vendor/endroid/qr-code/assets/image/qrv18.png deleted file mode 100755 index eb11a81fa633dd3a44b8141fb855b6dc975501c1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238 zcmeAS@N?(olHy`uVBq!ia0vp^i6G3#3?%=Yhy)a>Vfy!Y?D10Pi7j{Vl|JF}bX>Bj&6>jhQ>$t+s` z=l}oR0=4ok&I=V=AL;Rn7%esI6 z|BD9mh2DSg^?t%6Y2NHrr)r%i{?6&wYZpnoKk=||$Tx*UQh{v^PXwNxZm)W>i9JP4 li$5@J;k5K6Q=2tx7#4=q9Tf;+{RDI_gQu&X%Q~loCIJ0@X1o9Z diff --git a/vendor/endroid/qr-code/assets/image/qrv19.png b/vendor/endroid/qr-code/assets/image/qrv19.png deleted file mode 100755 index 0b665382718b3bafd4f1dc1ac63a6b77d7766bb9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 242 zcmeAS@N?(olHy`uVBq!ia0vp^sUXbA3?%b5?e76nYymzYu0Z<#|Nl#G&c6#}E%$VB z45^rt{G*?x&OqS&Zw3D3|JDHqKm4_uBOZV7gR0y*1A&>}-z&8o|M&lY`>+4?dQM-a z0=4h`_kaIyQ6700=fndGnR4V^_;P;N&al(b+ueUiIKP_0m_%LeB+t*4si7Rs*^pRN3UaglrK$!V$W?VsDL6t>IAao=~mQ;=|l zac2Tou$b?Ag^w3MOqT6kd{F&&sXfww juViu4p6{u5J8&mMYM-;4VS|np(7g4{U8tL{5ep;@clkQ@_q%wmv}hu-$fMe9|-r4 z{QnR2{}2BE8wl3>_x}Iy_5bhw{|D6jK{ON&94bKe!eqhDxDVHh&5`#}xx-$T9T6Jr zKyEoAtjdAh@c)0~|9`FjfA#_2bW&x;@ABY?#6m4Dn#e(wLa;!pj@jECQ4O=}vzGJE|{p8j6pr+&t-iLcow o{CrXKzopr0N#9ZF#rGn diff --git a/vendor/endroid/qr-code/assets/image/qrv23.png b/vendor/endroid/qr-code/assets/image/qrv23.png deleted file mode 100755 index 66562ab21e6e224b7c91c6fc62e439d337b1d376..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 236 zcmeAS@N?(olHy`uVBq!ia0vp^r6A163?#iy+587mYymzYu0Z<#|Nl#G&c6#}E%bD8 z45^rt{G*?#&S1i+{|fy_N>?QOsFOeVS33US2UWR)|Ajk_?dN#7*;&v-ZpnU`u77ve zC;U*5>SA#C?D#9;Q^NN3?$V}WIz&Z0X`wFK>Gjx|4VPqzYApT@pN$v zshE@eqn}Gk;)K8th5jRd58XTP;ji7K1NYza^29%y$a1c0F{ex`#~((i!~g#OcU&M= zxIwbM@z|9A|Let9ux1=%zZk&6k;uNAc_GuA4Zl6o63TzomNW{kYm(JGVt0j^_0+^e zU#vY8{`|lHWG#$EVFnY`_l z{fm!sZ%}jTwVV>gvxI5syx#%+VZu#02L&8f`Wn89HhP^?!pQKy{m0o&n=hyU{lVbr L>gTe~DWM4f!n<*_ diff --git a/vendor/endroid/qr-code/assets/image/qrv25.png b/vendor/endroid/qr-code/assets/image/qrv25.png deleted file mode 100755 index bec76f880d706eab21291d25f6bd8e5af566077a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 262 zcmeAS@N?(olHy`uVBq!ia0vp^wIIyM3?#Su{YwK$(O7!CV|Nc*&x9tSyIgu5Jd@V;Pxg3GvxCdmq3rqc z<(F^n|H1XMa)s!D%(C9})i#9(BTCKR$nh~HL>yo(ux)aanI>s|;Cn}lL)gx{6X))o z`@KT?bJCHtDdFmzt3GbM_#r-D=tYHIER${l>oFFd3)6b~C1=;ZwU;#A8E=|ZG~2{Y z*TIJKgUZj>aZil4W=@N_)-riw=~ENs{9qA>dnYz+4*#}~MPD+xAo`c@hZR6?FnGH9 KxvXOdr$YZ3`@{DReE4g(>BQCdygc!bCc4h+THGzu+O+|wYoVOaUeWd$ z!TKae9OLT&YEko49-gasgpmM<@UHXWtC*__r>F4vSy)c^KE$^KpPk?ZAOELgWP z20WJC`i^a-OQ44$rjF6*2U FngDjSa#H{R diff --git a/vendor/endroid/qr-code/assets/image/qrv27.png b/vendor/endroid/qr-code/assets/image/qrv27.png deleted file mode 100755 index 9cb926f5befe186a2d13aec75048c76e99578ec0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 257 zcmeAS@N?(olHy`uVBq!ia0vp^tsu(j!2|Le;PzCKqv zGUvU+#3F;Q>>20SF9xJAY~fxaxsdJ6q2DK-J@|06mSWTO=?Q;LSF!D%b+JNzW|rII+8Zl>>h|k>x+)jT5;A-7(d*@3ELgXy z20WJC%F7Vce9MnvX7jaaKl*)Hw)!^R%v0R|w^@;iAxS&6c+>W>(?B0Ec)I$ztaD0e F0szHWZ|?vA diff --git a/vendor/endroid/qr-code/assets/image/qrv28.png b/vendor/endroid/qr-code/assets/image/qrv28.png deleted file mode 100755 index fcb54cc149c39ab92b93ebd3cc7a7543029f346f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 252 zcmeAS@N?(olHy`uVBq!ia0vp^ogmD}3?!9ab#?(Mwg8_HS0MfW|No^o=iddgHhQ`^ zhE&W+{?X4TC2>ORmqNeNhqk?q4}aH+EZlrwT4LXk#Tc^Bu2jvUrEVo$6(;J3FwNlcIb?r{;Rg{y7^9(wI;8?Zt~HDrHt%c1}EYu(*$ zgeDqh2mB~hSs~SX{NchZ6S?;GRTnE{o~)`ne_Y_#7J26v@iu8U>W_CQCS-Hi%3X{y zPza4TIO~+n+n94ispZ-L$_rTo(!5j=bq}`PN<;2|vI-J4N)z4*}Q$iB}WE*8- diff --git a/vendor/endroid/qr-code/assets/image/qrv3.png b/vendor/endroid/qr-code/assets/image/qrv3.png deleted file mode 100755 index a3e7e2510184a1e9985d76897a3582f00c738e1b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 154 zcmeAS@N?(olHy`uVBq!ia0vp^svykB3?%;tY;pinYymzYt|0FJ|4VPqzYApfd%8G= zRLn{K!OvnZVQ`ZF(|`UDgPQ&S|JSh|p8n&%c%Wy;5B7@z?OZd~{q|4`IF`mf>Hh!e y&36Uv^A3W*5xFI?x6q=+MyB{C?@Z zs?#}8U0bJfpgNs{zt_!I$zDgvVpsXMB>$IkqL_m+*JWLq|DuyQG2dHbW$vuy)2(^8 Z!oG{<`zCA$Df`z5w3KSYlWc>m* zGCNdjVa$+iczMi1W{R&cTX(gDg@K@hQ_;8R>7BZomQANV)4&l3BhrAheb=+V1&AXi zkCf|$)vjF|SMT@f)jRvPUiWRDVd8z?)1)6dGfVnrGuxwlXW*8Z$(xSH)%&IQiYId* zUf+{B5Krdd@4Xtm2z#uVvxezgocFinPC5rPCl-(9$x@Hz&hlT5(HzU>-G%v?VK04# Vg(q~o-Z}sP002ovPDHLkV1fW*c$@$L diff --git a/vendor/endroid/qr-code/assets/image/qrv32.png b/vendor/endroid/qr-code/assets/image/qrv32.png deleted file mode 100755 index c400d09eac12a24fafb883803da6086988777cb8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 283 zcmeAS@N?(olHy`uVBq!ia0vp^GeMY<8A!5C;`#}q0(?STf%O0X|CipJe;3HQ;OXKR zQZeW4bVI&F20X5tpR%k_p3Y?WO+t3^>;f^iJci_}!V0MwsfvM;yHi&_4x5_5@KDEh z|2!G@e~0@I*SLOPHe;L9t{*QJ2tMLnl@EzS)`nJc@F2vwFpoo^Ym_GfFk zc@b|WpJCBVlXi)nKC_(vO?qSUY2C!PfwR>#il4j8wN&xm?~`U}$*LO2zdSo>+NG;D f{~OJl)a)4dA5*VUo3ADf^c#bxtDnm{r-UW|`p$Fi diff --git a/vendor/endroid/qr-code/assets/image/qrv33.png b/vendor/endroid/qr-code/assets/image/qrv33.png deleted file mode 100755 index 559d973a9875b95d15aa4150f4cf809df2416b41..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 265 zcmeAS@N?(olHy`uVBq!ia0vp^b3vGq8Awif@nR~FVhivIaRt)<|NmclbN*c*YoDi! zV@SoEHi~biG4>FbN<`e;XdK-|Ns174PL!>?U?!W z|Nr{+?ZFPl_8o1D7~8ovSO!#vi#0lTeFbInrUYpg?zwVxr_TAjJ!~_*C%0ODuK4?Y zarMnb+l%9KVsan8yT9||v&Kmm&ZV_a)l<#?v}gakT@`t^@80<t#RoXWy8Lg*yjxfx|I6=u(-)qK#K5?w4>3!Do?-BG L^>bP0l+XkKm^6C- diff --git a/vendor/endroid/qr-code/assets/image/qrv35.png b/vendor/endroid/qr-code/assets/image/qrv35.png deleted file mode 100755 index 3e76bf78c3e670b00522f39d7a8513bc8c6c28e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 261 zcmV+g0s8)lP)?T0v*MP5R2x{ z|3d>32-$M=^z{|TZoV{9S9zb-wPn*L%UFPxEazzHZOiC%deE?FrRtlO9kbNc&Q^be zIvK4_QLOKaiD3%YeoY%-Z=ur!J5HVM8}w5x_x;^}aBcH@a4k^32iMN2--B!C)bHW% zwL@gI9vHnG>E1@RW6d~t4LxJ-u8Cl5;-YvuFq8vLtklJz>{i#$_oHFUSSr+NLE=3RB|u+G-g z4>!d=-?69KTmP-kvTt#px5+MF{PW->mv?9DC!Y$JOYu`G*ZKW5V7d0z{}+~C-oNy2 zsNeSGC`7%Zy@BtHX^n?Z3V-QbV)aC8!k#H?mTOgJy!xUlDyeeJYhTW^*o}V}dp=KN U?OhzU73ehvPgg&ebxsLQ09F8h00000 diff --git a/vendor/endroid/qr-code/assets/image/qrv37.png b/vendor/endroid/qr-code/assets/image/qrv37.png deleted file mode 100755 index 771ab912ddc0d5c9b1ce7cbccda156b986b6c8eb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 286 zcmeAS@N?(olHy`uVBq!ia0vp^YeATi8A$#}%mtDRYymzYu0Z<#|Nl#G&c6#}UG{Ww z45^s&cDgm+Ap-%IyFXd3?Bohx;4sCm?efnYnZ_oer(Dy1NN~0pCvU2X3-3HuIQ3Y^{^UKTYK69e(6Jv%+mdy(fee*H$C6|MdiIl%mVek1Ey!DTg86-cX*1| z|7q7kH1EzsA^tM{Em%}D`DL+szFnu~!ebgsy|PMOxMep~c)JRPMrJIY`fk@3cIgxP X^Z#h9e8@6)Hps`Gu6{1-oD!Ms`HMc>F|0{Mz;x5=N!wst3Khv@Dl8t5#VLfbS<_Gdj+P5N3;OS{?`b6mU*-AF!kzJk%Oz}|$kuc>&40cB`kq(sUuWOD zvi>Cs@&9mq(Z0z)H=li?cq1{o?nFrT?+T XW_>Vxyi~0c=sN~aS3j3^P66jq3SIG)4BA1K-oma~WnSd22Vv!>D<#6SQ z4@G3zL^_(YzMf9p@tbc&@VwMsdgyX>zB?5?z`avX1Na{6%VX8UNTg{~-u>D?vS4Xj zj8oxq%g@!N`{#U`%jf;8dq8su|2wb2{x$0syq9HtpozZ*`YIK^)c>q`h5s*J{3(3P zy!cc2mU;1~@GbM=PvH;bCxi86#QNM7{1dU?IFCbr!o18p%Gaqs%H!!iB^~B{!v6=V c``kzW086ZQZ|GYTF8}}l07*qoM6N<$g3^D4-2eap diff --git a/vendor/endroid/qr-code/assets/image/qrv4.png b/vendor/endroid/qr-code/assets/image/qrv4.png deleted file mode 100755 index a47675050205b88ef56ecb75477049f68d4d4ce3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 161 zcmeAS@N?(olHy`uVBq!ia0vp^njp-`3?wJ5o3s^3u?6^qxB}__|Nk$&IsYz@73S&U z7*a7O`3FA}FHgiu{!jn^Z!kBg+5i9l`|oUR`XB%Q?^+xju#6Z@&lfEM|Z2 zY&+rCzyH;?H?GFNKB&k1vEkhxhJ_AV3$J|tZSeo$7wZ-#hHmk5K`K+*P5^CS@O1Ta JS?83{1OO!HLY)8r diff --git a/vendor/endroid/qr-code/assets/image/qrv40.png b/vendor/endroid/qr-code/assets/image/qrv40.png deleted file mode 100755 index ee281584adff6320a6ea47534f23e967dfa047a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 277 zcmV+w0qXvVP)3K~#90?U=C&!axj$Z@VXuj=q%Q=wo!uy-AChe@YO1Qdki18oWNn6mk#1A*XQN18`~#a2`PvVVaglGxTUhGEIy2 z;MI11HgT9^W_$+hL67p4paI>e$%x>eGrd6zQj!(yM4uadmy%)j`03@ z?7C5_;n{VgR>QOF#$Onh&Hzu#xOY~rvXMmHOu+2It$`YF&%k7CCiJUJ0Jk3s;J&1M byNiJrkYqJ<7~=#U00000NkvXXu0mjfP1Sg* diff --git a/vendor/endroid/qr-code/assets/image/qrv5.png b/vendor/endroid/qr-code/assets/image/qrv5.png deleted file mode 100755 index f593fc009f008ca5d3cb742188b72d290f393989..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 160 zcmeAS@N?(olHy`uVBq!ia0vp^x**KR3?vz@6x;-oYymzYu0Z<#|Nl#G&c6#}g?hR; zhE&W+{=v^=FR>v={>lIU_5lY!{QdX;|95SPeMkQPuNR!#bgEW>m$!69L-zjuq#F&N zZ!}){{{R1JMLVwljAf=1*gr8_xBTK?zVCkfZ`tr24jK$RTHlx4zt_44XaR$#tDnm{ Hr-UW|%l<)P diff --git a/vendor/endroid/qr-code/assets/image/qrv6.png b/vendor/endroid/qr-code/assets/image/qrv6.png deleted file mode 100755 index a1e5a71ecb9a1e7ef6ff0e91e4e7b1fa22fdc87f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 165 zcmeAS@N?(olHy`uVBq!ia0vp^h9Jzy3?w~+F2@5Ywg8_HS0MfW|No^o=iddgqC8z3 zLn`JZ|KMli<=OFq{}WIuF+br)9gyCCUs__{5$4Q7A1Sr}jwU81EwU%){LXmB=lHL^ zO5yL{|Nq~Ao$%pD6#qy44xmPM4c;LB#ryBOx5)4N(0YkM%31T?bbtOYKwB6*UHx3v IIVCg!0KFwbV*mgE diff --git a/vendor/endroid/qr-code/assets/image/qrv7.png b/vendor/endroid/qr-code/assets/image/qrv7.png deleted file mode 100755 index 792934dc06fbe5d5153a46e1fa89867e5cc482be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 204 zcmeAS@N?(olHy`uVBq!ia0vp^rXbA73?y%B7#ag9wg8_HS0MfW|No^o=iddg8a-Vc zLn`JZ|KMk{mngU>|DGwb2+zkw=t#~=KlD(4a3a;Y(4)?a^xh<$(T1O7EMXS+)MNuHtvA-`_8?ui}ur7c+z7T(@b}4_wQEj$!b0^>bP0l+XkKWVBEo diff --git a/vendor/endroid/qr-code/assets/image/qrv8.png b/vendor/endroid/qr-code/assets/image/qrv8.png deleted file mode 100755 index 97b5a017a823cb53070bcbdade7d819a7d596516..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 222 zcmeAS@N?(olHy`uVBq!ia0vp^mLSZ?3?#Q*6Fdf_*aCb)T!Hle|NocXoPQU{n(XP~ z7*a7O`3FBEFHePp{FBBj;@{ZX-hXfGS$tnwV&4&FN&lk@d$tQ4JNUo;=)tUa|Mqi- ze0DSef)?4FbFm$b-y5?6*6!#})O_o5qj6jP3U;GYjqiT)CAIwD|LebY7e@^5+q<8u z?WTNWR{QkP?##FM0pA&%u TuKAaM&SUU&^>bP0l+XkK3CLdI diff --git a/vendor/endroid/qr-code/assets/image/qrv9.png b/vendor/endroid/qr-code/assets/image/qrv9.png deleted file mode 100755 index 4353baa013e59a6cf3d45f9f8bff036abca8b1dc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 223 zcmeAS@N?(olHy`uVBq!ia0vp^wjj*N3?x<7d|m~l*aCb)T!Hle|NocXoPQU{n&Ro= z7*a7O`3FCvy~GCtyA#YS_p@tB?7Poy^zY94gdaluDSvizr2gS$F}Az%e=kSa=e_^* z1J1Hv3{WUo!7%glUb&nHwF{&|wBIF1c=-#KO{l)n*i$rt`*dT^hyU@f|FHoXKcRtI$a!PpPaEFJlasr2io=5.4", - "ext-gd": "*", - "symfony/options-resolver": "^2.3|^3.0" - }, - "require-dev": { - "symfony/browser-kit": "^2.3|^3.0", - "symfony/framework-bundle": "^2.3|^3.0", - "symfony/http-kernel": "^2.3|^3.0", - "sensio/framework-extra-bundle": "^3.0", - "phpunit/phpunit": "^4.0|^5.0" - }, - "autoload": { - "psr-4": { - "Endroid\\QrCode\\": "src/" - } - }, - "autoload-dev": { - "psr-4": { - "Endroid\\QrCode\\Tests\\": "tests/" - } - }, - "config": { - "bin-dir": "bin" - }, - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - } - } -} diff --git a/vendor/endroid/qr-code/phpunit.xml.dist b/vendor/endroid/qr-code/phpunit.xml.dist deleted file mode 100644 index 0b5f706bc..000000000 --- a/vendor/endroid/qr-code/phpunit.xml.dist +++ /dev/null @@ -1,11 +0,0 @@ - - - - - tests - - - - - - diff --git a/vendor/endroid/qr-code/src/Bundle/Controller/QrCodeController.php b/vendor/endroid/qr-code/src/Bundle/Controller/QrCodeController.php deleted file mode 100755 index 93d0425bc..000000000 --- a/vendor/endroid/qr-code/src/Bundle/Controller/QrCodeController.php +++ /dev/null @@ -1,50 +0,0 @@ - - * - * This source file is subject to the MIT license that is bundled - * with this source code in the file LICENSE. - */ - -namespace Endroid\QrCode\Bundle\Controller; - -use Endroid\QrCode\Factory\QrCodeFactory; -use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; -use Symfony\Bundle\FrameworkBundle\Controller\Controller; -use Symfony\Component\HttpFoundation\Response; -use Symfony\Component\HttpFoundation\Request; - -/** - * QR code controller. - */ -class QrCodeController extends Controller -{ - /** - * @Route("/{text}.{extension}", name="endroid_qrcode", requirements={"text"="[\w\W]+", "extension"="jpg|png|gif"}) - */ - public function generateAction(Request $request, $text, $extension) - { - $options = $request->query->all(); - - $qrCode = $this->getQrCodeFactory()->createQrCode($options); - $qrCode->setText($text); - - $mime_type = 'image/'.$extension; - if ($extension == 'jpg') { - $mime_type = 'image/jpeg'; - } - - return new Response($qrCode->get($extension), 200, ['Content-Type' => $mime_type]); - } - - /** - * Returns the QR code factory. - * - * @return QrCodeFactory - */ - protected function getQrCodeFactory() - { - return $this->get('endroid.qrcode.factory'); - } -} diff --git a/vendor/endroid/qr-code/src/Bundle/DependencyInjection/Configuration.php b/vendor/endroid/qr-code/src/Bundle/DependencyInjection/Configuration.php deleted file mode 100755 index ca1c724fa..000000000 --- a/vendor/endroid/qr-code/src/Bundle/DependencyInjection/Configuration.php +++ /dev/null @@ -1,60 +0,0 @@ - - * - * This source file is subject to the MIT license that is bundled - * with this source code in the file LICENSE. - */ - -namespace Endroid\QrCode\Bundle\DependencyInjection; - -use Symfony\Component\Config\Definition\Builder\TreeBuilder; -use Symfony\Component\Config\Definition\ConfigurationInterface; - -class Configuration implements ConfigurationInterface -{ - public function getConfigTreeBuilder() - { - $treeBuilder = new TreeBuilder(); - - $treeBuilder - ->root('endroid_qr_code') - ->children() - ->integerNode('size')->min(0)->defaultValue(200)->end() - ->integerNode('padding')->min(0)->end() - ->scalarNode('label')->end() - ->integerNode('label_font_size')->end() - ->scalarNode('label_font_path')->end() - ->scalarNode('extension')->end() - ->scalarNode('error_correction_level') - ->validate() - ->ifTrue(function ($value) { - return !defined('Endroid\QrCode\QrCode::LEVEL_'.strtoupper($value)); - }) - ->thenInvalid('Invalid error correction level "%s"') - ->end() - ->end() - ->arrayNode('foreground_color') - ->children() - ->scalarNode('r')->isRequired()->end() - ->scalarNode('g')->isRequired()->end() - ->scalarNode('b')->isRequired()->end() - ->scalarNode('a')->isRequired()->end() - ->end() - ->end() - ->arrayNode('background_color') - ->children() - ->scalarNode('r')->isRequired()->end() - ->scalarNode('g')->isRequired()->end() - ->scalarNode('b')->isRequired()->end() - ->scalarNode('a')->isRequired()->end() - ->end() - ->end() - ->end() - ->end() - ; - - return $treeBuilder; - } -} diff --git a/vendor/endroid/qr-code/src/Bundle/DependencyInjection/EndroidQrCodeExtension.php b/vendor/endroid/qr-code/src/Bundle/DependencyInjection/EndroidQrCodeExtension.php deleted file mode 100644 index 31b3d98d1..000000000 --- a/vendor/endroid/qr-code/src/Bundle/DependencyInjection/EndroidQrCodeExtension.php +++ /dev/null @@ -1,34 +0,0 @@ - - * - * This source file is subject to the MIT license that is bundled - * with this source code in the file LICENSE. - */ - -namespace Endroid\QrCode\Bundle\DependencyInjection; - -use Symfony\Component\Config\Definition\Processor; -use Symfony\Component\HttpKernel\DependencyInjection\Extension; -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Loader\YamlFileLoader; -use Symfony\Component\Config\FileLocator; - -class EndroidQrCodeExtension extends Extension -{ - /** - * {@inheritdoc} - */ - public function load(array $configs, ContainerBuilder $container) - { - $processor = new Processor(); - $config = $processor->processConfiguration(new Configuration(), $configs); - - $loader = new YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config')); - $loader->load('services.yml'); - - $factoryDefinition = $container->getDefinition('endroid.qrcode.factory'); - $factoryDefinition->setArguments([$config]); - } -} diff --git a/vendor/endroid/qr-code/src/Bundle/EndroidQrCodeBundle.php b/vendor/endroid/qr-code/src/Bundle/EndroidQrCodeBundle.php deleted file mode 100644 index 01a0e94d7..000000000 --- a/vendor/endroid/qr-code/src/Bundle/EndroidQrCodeBundle.php +++ /dev/null @@ -1,16 +0,0 @@ - - * - * This source file is subject to the MIT license that is bundled - * with this source code in the file LICENSE. - */ - -namespace Endroid\QrCode\Bundle; - -use Symfony\Component\HttpKernel\Bundle\Bundle; - -class EndroidQrCodeBundle extends Bundle -{ -} diff --git a/vendor/endroid/qr-code/src/Bundle/Resources/config/services.yml b/vendor/endroid/qr-code/src/Bundle/Resources/config/services.yml deleted file mode 100755 index ee6436b9e..000000000 --- a/vendor/endroid/qr-code/src/Bundle/Resources/config/services.yml +++ /dev/null @@ -1,10 +0,0 @@ -services: - endroid.qrcode.factory: - class: Endroid\QrCode\Factory\QrCodeFactory - - endroid.qrcode.twig.extension: - class: Endroid\QrCode\Bundle\Twig\Extension\QrCodeExtension - tags: - - { name: twig.extension } - calls: - - [ setContainer, [ '@service_container' ] ] diff --git a/vendor/endroid/qr-code/src/Bundle/Twig/Extension/QrCodeExtension.php b/vendor/endroid/qr-code/src/Bundle/Twig/Extension/QrCodeExtension.php deleted file mode 100755 index f4321f453..000000000 --- a/vendor/endroid/qr-code/src/Bundle/Twig/Extension/QrCodeExtension.php +++ /dev/null @@ -1,99 +0,0 @@ - - * - * This source file is subject to the MIT license that is bundled - * with this source code in the file LICENSE. - */ - -namespace Endroid\QrCode\Bundle\Twig\Extension; - -use Endroid\QrCode\Factory\QrCodeFactory; -use Symfony\Component\DependencyInjection\ContainerAwareTrait; -use Symfony\Component\Routing\RouterInterface; -use Twig_Extension; -use Symfony\Component\DependencyInjection\ContainerAwareInterface; -use Twig_SimpleFunction; - -class QrCodeExtension extends Twig_Extension implements ContainerAwareInterface -{ - use ContainerAwareTrait; - - /** - * {@inheritdoc} - */ - public function getFunctions() - { - return [ - new Twig_SimpleFunction('qrcode_url', [$this, 'qrcodeUrlFunction']), - new Twig_SimpleFunction('qrcode_data_uri', [$this, 'qrcodeDataUriFunction']), - ]; - } - - /** - * Creates the QR code URL corresponding to the given message. - * - * @param string $text - * @param array $options - * - * @return string - */ - public function qrcodeUrlFunction($text, array $options = []) - { - $params = $options; - $params['text'] = $text; - - // Extension is a mandatory route parameter: if not set retrieve from defaults - if (!isset($params['extension'])) { - $defaultOptions = $this->getQrCodeFactory()->getDefaultOptions(); - $params['extension'] = $defaultOptions['extension']; - } - - return $this->getRouter()->generate('endroid_qrcode', $params); - } - - /** - * Creates the QR code data corresponding to the given message. - * - * @param string $text - * @param array $options - * - * @return string - */ - public function qrcodeDataUriFunction($text, array $options = []) - { - $qrCode = $this->getQrCodeFactory()->createQrCode($options); - $qrCode->setText($text); - - return $qrCode->getDataUri(); - } - - /** - * Returns the router. - * - * @return RouterInterface - */ - protected function getRouter() - { - return $this->container->get('router'); - } - - /** - * Returns the QR code factory. - * - * @return QrCodeFactory - */ - protected function getQrCodeFactory() - { - return $this->container->get('endroid.qrcode.factory'); - } - - /** - * {@inheritdoc} - */ - public function getName() - { - return 'endroid_qrcode'; - } -} diff --git a/vendor/endroid/qr-code/src/Exceptions/DataDoesntExistsException.php b/vendor/endroid/qr-code/src/Exceptions/DataDoesntExistsException.php deleted file mode 100755 index 8f1b5608a..000000000 --- a/vendor/endroid/qr-code/src/Exceptions/DataDoesntExistsException.php +++ /dev/null @@ -1,14 +0,0 @@ - - * - * This source file is subject to the MIT license that is bundled - * with this source code in the file LICENSE. - */ - -namespace Endroid\QrCode\Exceptions; - -class DataDoesntExistsException extends \Exception -{ -} diff --git a/vendor/endroid/qr-code/src/Exceptions/FreeTypeLibraryMissingException.php b/vendor/endroid/qr-code/src/Exceptions/FreeTypeLibraryMissingException.php deleted file mode 100755 index 34e6da7fa..000000000 --- a/vendor/endroid/qr-code/src/Exceptions/FreeTypeLibraryMissingException.php +++ /dev/null @@ -1,14 +0,0 @@ - - * - * This source file is subject to the MIT license that is bundled - * with this source code in the file LICENSE. - */ - -namespace Endroid\QrCode\Exceptions; - -class FreeTypeLibraryMissingException extends \Exception -{ -} diff --git a/vendor/endroid/qr-code/src/Exceptions/ImageFunctionFailedException.php b/vendor/endroid/qr-code/src/Exceptions/ImageFunctionFailedException.php deleted file mode 100755 index 98bc3c054..000000000 --- a/vendor/endroid/qr-code/src/Exceptions/ImageFunctionFailedException.php +++ /dev/null @@ -1,14 +0,0 @@ - - * - * This source file is subject to the MIT license that is bundled - * with this source code in the file LICENSE. - */ - -namespace Endroid\QrCode\Exceptions; - -class ImageFunctionFailedException extends \Exception -{ -} diff --git a/vendor/endroid/qr-code/src/Exceptions/ImageFunctionUnknownException.php b/vendor/endroid/qr-code/src/Exceptions/ImageFunctionUnknownException.php deleted file mode 100755 index 6d75064ff..000000000 --- a/vendor/endroid/qr-code/src/Exceptions/ImageFunctionUnknownException.php +++ /dev/null @@ -1,14 +0,0 @@ - - * - * This source file is subject to the MIT license that is bundled - * with this source code in the file LICENSE. - */ - -namespace Endroid\QrCode\Exceptions; - -class ImageFunctionUnknownException extends \Exception -{ -} diff --git a/vendor/endroid/qr-code/src/Exceptions/ImageSizeTooLargeException.php b/vendor/endroid/qr-code/src/Exceptions/ImageSizeTooLargeException.php deleted file mode 100755 index ec9f7ce4f..000000000 --- a/vendor/endroid/qr-code/src/Exceptions/ImageSizeTooLargeException.php +++ /dev/null @@ -1,14 +0,0 @@ - - * - * This source file is subject to the MIT license that is bundled - * with this source code in the file LICENSE. - */ - -namespace Endroid\QrCode\Exceptions; - -class ImageSizeTooLargeException extends \Exception -{ -} diff --git a/vendor/endroid/qr-code/src/Exceptions/ImageTypeInvalidException.php b/vendor/endroid/qr-code/src/Exceptions/ImageTypeInvalidException.php deleted file mode 100755 index 5388140bb..000000000 --- a/vendor/endroid/qr-code/src/Exceptions/ImageTypeInvalidException.php +++ /dev/null @@ -1,14 +0,0 @@ - - * - * This source file is subject to the MIT license that is bundled - * with this source code in the file LICENSE. - */ - -namespace Endroid\QrCode\Exceptions; - -class ImageTypeInvalidException extends \Exception -{ -} diff --git a/vendor/endroid/qr-code/src/Exceptions/VersionTooLargeException.php b/vendor/endroid/qr-code/src/Exceptions/VersionTooLargeException.php deleted file mode 100755 index baa768657..000000000 --- a/vendor/endroid/qr-code/src/Exceptions/VersionTooLargeException.php +++ /dev/null @@ -1,14 +0,0 @@ - - * - * This source file is subject to the MIT license that is bundled - * with this source code in the file LICENSE. - */ - -namespace Endroid\QrCode\Exceptions; - -class VersionTooLargeException extends \Exception -{ -} diff --git a/vendor/endroid/qr-code/src/Factory/QrCodeFactory.php b/vendor/endroid/qr-code/src/Factory/QrCodeFactory.php deleted file mode 100644 index 2d9795e8d..000000000 --- a/vendor/endroid/qr-code/src/Factory/QrCodeFactory.php +++ /dev/null @@ -1,122 +0,0 @@ - - * - * This source file is subject to the MIT license that is bundled - * with this source code in the file LICENSE. - */ - -namespace Endroid\QrCode\Factory; - -use Endroid\QrCode\QrCode; -use Symfony\Component\OptionsResolver\OptionsResolver; - -class QrCodeFactory -{ - /** - * @var OptionsResolver - */ - protected $optionsResolver; - - /** - * Creates a new instance. - * - * @param array $defaults - */ - public function __construct(array $defaults = []) - { - $defaults = array_merge($this->getAvailableOptions(), $defaults); - $this->optionsResolver = new OptionsResolver(); - $this->optionsResolver->setDefaults($defaults); - } - - /** - * Creates a QR code. - * - * @param array $options - * - * @return QrCode - */ - public function createQrCode(array $options = []) - { - $options = $this->optionsResolver->resolve($options); - - $qrCode = new QrCode(); - - if (isset($options['text']) && !is_null($options['text'])) { - $qrCode->setText($options['text']); - } - - if (isset($options['size']) && !is_null($options['size'])) { - $qrCode->setSize($options['size']); - } - - if (isset($options['padding']) && !is_null($options['padding'])) { - $qrCode->setPadding($options['padding']); - } - - if (isset($options['extension']) && !is_null($options['extension'])) { - $qrCode->setExtension($options['extension']); - } - - if (isset($options['error_correction_level']) && !is_null($options['error_correction_level'])) { - $qrCode->setErrorCorrection($options['error_correction_level']); - } - - if (isset($options['foreground_color']) && !is_null($options['foreground_color'])) { - $qrCode->setForegroundColor($options['foreground_color']); - } - - if (isset($options['background_color']) && !is_null($options['background_color'])) { - $qrCode->setBackgroundColor($options['background_color']); - } - - if (isset($options['label']) && !is_null($options['label'])) { - $qrCode->setLabel($options['label']); - } - - if (isset($options['label_font_size']) && !is_null($options['label_font_size'])) { - $qrCode->setLabelFontSize($options['label_font_size']); - } - - if (isset($options['label_font_path']) && !is_null($options['label_font_path'])) { - $qrCode->setLabelFontPath($options['label_font_path']); - } - - return $qrCode; - } - - /** - * Returns all available options. - * - * @return array - */ - public function getAvailableOptions() - { - $options = [ - 'text' => null, - 'size' => null, - 'extension' => null, - 'error_correction_level' => null, - 'foreground_color' => null, - 'background_color' => null, - 'padding' => null, - 'label' => null, - 'label_font_size' => null, - 'label_font_path' => null, - ]; - - return $options; - } - - /** - * Returns the current defaults. - * - * @return array - */ - public function getDefaultOptions() - { - return $this->optionsResolver->resolve(); - } -} diff --git a/vendor/endroid/qr-code/src/QrCode.php b/vendor/endroid/qr-code/src/QrCode.php deleted file mode 100755 index b128cfc42..000000000 --- a/vendor/endroid/qr-code/src/QrCode.php +++ /dev/null @@ -1,1591 +0,0 @@ - - * - * This source file is subject to the MIT license that is bundled - * with this source code in the file LICENSE. - */ - -namespace Endroid\QrCode; - -use Endroid\QrCode\Exceptions\DataDoesntExistsException; -use Endroid\QrCode\Exceptions\FreeTypeLibraryMissingException; -use Endroid\QrCode\Exceptions\ImageFunctionFailedException; -use Endroid\QrCode\Exceptions\ImageTypeInvalidException; -use Endroid\QrCode\Exceptions\VersionTooLargeException; -use Endroid\QrCode\Exceptions\ImageSizeTooLargeException; -use Endroid\QrCode\Exceptions\ImageFunctionUnknownException; -use ReflectionFunction; - -/** - * Generate QR Code. - */ -class QrCode -{ - /** @const int Error Correction Level Low (7%) */ - const LEVEL_LOW = 1; - - /** @const int Error Correction Level Medium (15%) */ - const LEVEL_MEDIUM = 0; - - /** @const int Error Correction Level Quartile (25%) */ - const LEVEL_QUARTILE = 3; - - /** @const int Error Correction Level High (30%) */ - const LEVEL_HIGH = 2; - - /** @const string Image type png */ - const IMAGE_TYPE_PNG = 'png'; - - /** @const string Image type gif */ - const IMAGE_TYPE_GIF = 'gif'; - - /** @const string Image type jpeg */ - const IMAGE_TYPE_JPEG = 'jpeg'; - - /** @const string Image type wbmp */ - const IMAGE_TYPE_WBMP = 'wbmp'; - - /** @const int Horizontal label alignment to the center of image */ - const LABEL_HALIGN_CENTER = 0; - - /** @const int Horizontal label alignment to the left side of image */ - const LABEL_HALIGN_LEFT = 1; - - /** @const int Horizontal label alignment to the left border of QR Code */ - const LABEL_HALIGN_LEFT_BORDER = 2; - - /** @const int Horizontal label alignment to the left side of QR Code */ - const LABEL_HALIGN_LEFT_CODE = 3; - - /** @const int Horizontal label alignment to the right side of image */ - const LABEL_HALIGN_RIGHT = 4; - - /** @const int Horizontal label alignment to the right border of QR Code */ - const LABEL_HALIGN_RIGHT_BORDER = 5; - - /** @const int Horizontal label alignment to the right side of QR Code */ - const LABEL_HALIGN_RIGHT_CODE = 6; - - /** @const int Vertical label alignment to the top */ - const LABEL_VALIGN_TOP = 1; - - /** @const int Vertical label alignment to the top and hide border */ - const LABEL_VALIGN_TOP_NO_BORDER = 2; - - /** @const int Vertical label alignment to the middle*/ - const LABEL_VALIGN_MIDDLE = 3; - - /** @const int Vertical label alignment to the bottom */ - const LABEL_VALIGN_BOTTOM = 4; - - /** @var string */ - protected $logo = null; - - protected $logo_size = 48; - - /** @var string */ - protected $text = ''; - - /** @var int */ - protected $size = 0; - - /** @var int */ - protected $padding = 16; - - /** @var bool */ - protected $draw_quiet_zone = false; - - /** @var bool */ - protected $draw_border = false; - - /** @var array */ - protected $color_foreground = ['r' => 0, 'g' => 0, 'b' => 0, 'a' => 0]; - - /** @var array */ - protected $color_background = ['r' => 255, 'g' => 255, 'b' => 255, 'a' => 0]; - - /** @var string */ - protected $label = ''; - - /** @var int */ - protected $label_font_size = 16; - - /** @var string */ - protected $label_font_path = ''; - - /** @var int */ - protected $label_halign = self::LABEL_HALIGN_CENTER; - - /** @var int */ - protected $label_valign = self::LABEL_VALIGN_MIDDLE; - - /** @var resource */ - protected $image = null; - - /** @var int */ - protected $version; - - /** @var int */ - protected $error_correction = self::LEVEL_MEDIUM; - - /** @var array */ - protected $error_corrections_available = [ - self::LEVEL_LOW, - self::LEVEL_MEDIUM, - self::LEVEL_QUARTILE, - self::LEVEL_HIGH, - ]; - - /** @var int */ - protected $module_size; - - /** @var string */ - protected $image_type = self::IMAGE_TYPE_PNG; - - /** @var array */ - protected $image_types_available = [ - self::IMAGE_TYPE_GIF, - self::IMAGE_TYPE_PNG, - self::IMAGE_TYPE_JPEG, - self::IMAGE_TYPE_WBMP, - ]; - - /** @var string */ - protected $image_path; - - /** @var string */ - protected $path; - - /** @var int */ - protected $structure_append_n; - - /** @var int */ - protected $structure_append_m; - - /** @var int */ - protected $structure_append_parity; - - /** @var string */ - protected $structure_append_original_data; - - /** - * Class constructor. - * - * @param string $text - */ - public function __construct($text = '') - { - $this->setPath(__DIR__.'/../assets/data'); - $this->setImagePath(__DIR__.'/../assets/image'); - $this->setLabelFontPath(__DIR__.'/../assets/font/opensans.ttf'); - $this->setText($text); - } - - /** - * Set structure append. - * - * @param int $n - * @param int $m - * @param int $parity Parity - * @param string $original_data Original data - * - * @return QrCode - */ - public function setStructureAppend($n, $m, $parity, $original_data) - { - $this->structure_append_n = $n; - $this->structure_append_m = $m; - $this->structure_append_parity = $parity; - $this->structure_append_original_data = $original_data; - - return $this; - } - - /** - * Set QR Code version. - * - * @param int $version QR Code version - * - * @return QrCode - */ - public function setVersion($version) - { - if ($version <= 40 && $version >= 0) { - $this->version = $version; - } - - return $this; - } - - /** - * Return QR Code version. - * - * @return int - */ - public function getVersion() - { - return $this->version; - } - - /** - * Set QR Code error correction level. - * - * @param mixed $error_correction Error Correction Level - * - * @return QrCode - */ - public function setErrorCorrection($error_correction) - { - if (!is_numeric($error_correction)) { - $level_constant = 'Endroid\QrCode\QrCode::LEVEL_'.strtoupper($error_correction); - $error_correction = constant($level_constant); - } - - if (in_array($error_correction, $this->error_corrections_available)) { - $this->error_correction = $error_correction; - } - - return $this; - } - - /** - * Return QR Code error correction level. - * - * @return int - */ - public function getErrorCorrection() - { - return $this->error_correction; - } - - /** - * Set QR Code module size. - * - * @param int $module_size Module size - * - * @return QrCode - */ - public function setModuleSize($module_size) - { - $this->module_size = $module_size; - - return $this; - } - - /** - * Return QR Code module size. - * - * @return int - */ - public function getModuleSize() - { - return $this->module_size; - } - - /** - * Set image type for rendering. - * - * @param string $image_type Image type - * - * @return QrCode - * - * @throws ImageTypeInvalidException - */ - public function setImageType($image_type) - { - if (!in_array($image_type, $this->image_types_available)) { - throw new ImageTypeInvalidException('QRCode: image type '.$image_type.' is invalid.'); - } - - $this->image_type = $image_type; - - return $this; - } - - /** - * Return image type for rendering. - * - * @return string - */ - public function getImageType() - { - return $this->image_type; - } - - /** - * Set image type for rendering via extension. - * - * @param string $extension Image extension - * - * @return QrCode - */ - public function setExtension($extension) - { - if ($extension == 'jpg') { - $this->setImageType('jpeg'); - } else { - $this->setImageType($extension); - } - - return $this; - } - - /** - * Set path to the images directory. - * - * @param string $image_path Image directory - * - * @return QrCode - */ - public function setImagePath($image_path) - { - $this->image_path = $image_path; - - return $this; - } - - /** - * Return path to the images directory. - * - * @return string - */ - public function getImagePath() - { - return $this->image_path; - } - - /** - * Set path to the data directory. - * - * @param string $path Data directory - * - * @return QrCode - */ - public function setPath($path) - { - $this->path = $path; - - return $this; - } - - /** - * Return path to the data directory. - * - * @return string - */ - public function getPath() - { - return $this->path; - } - - /** - * Set logo in QR Code. - * - * @param string $logo Logo Path - * - * @throws Exceptions\DataDoesntExistsException - * - * @return QrCode - */ - public function setLogo($logo) - { - if (!file_exists($logo)) { - throw new DataDoesntExistsException("$logo file does not exist"); - } - - $this->logo = $logo; - - return $this; - } - - /** - * Set logo size in QR Code(default 48). - * - * @param int $logo_size Logo Size - * - * @return QrCode - */ - public function setLogoSize($logo_size) - { - $this->logo_size = $logo_size; - - return $this; - } - - /** - * Set text to hide in QR Code. - * - * @param string $text Text to hide - * - * @return QrCode - */ - public function setText($text) - { - $this->text = $text; - - return $this; - } - - /** - * Return text that will be hid in QR Code. - * - * @return string - */ - public function getText() - { - return $this->text; - } - - /** - * Set QR Code size (width). - * - * @param int $size Width of the QR Code - * - * @return QrCode - */ - public function setSize($size) - { - $this->size = $size; - - return $this; - } - - /** - * Return QR Code size (width). - * - * @return int - */ - public function getSize() - { - return $this->size; - } - - /** - * Set padding around the QR Code. - * - * @param int $padding Padding around QR Code - * - * @return QrCode - */ - public function setPadding($padding) - { - $this->padding = $padding; - - return $this; - } - - /** - * Return padding around the QR Code. - * - * @return int - */ - public function getPadding() - { - return $this->padding; - } - - /** - * Set draw required four-module wide margin. - * - * @param bool $draw_quiet_zone State of required four-module wide margin drawing - * - * @return QrCode - */ - public function setDrawQuietZone($draw_quiet_zone) - { - $this->draw_quiet_zone = $draw_quiet_zone; - - return $this; - } - - /** - * Return draw required four-module wide margin. - * - * @return bool - */ - public function getDrawQuietZone() - { - return $this->draw_quiet_zone; - } - - /** - * Set draw border around QR Code. - * - * @param bool $draw_border State of border drawing - * - * @return QrCode - */ - public function setDrawBorder($draw_border) - { - $this->draw_border = $draw_border; - - return $this; - } - - /** - * Return draw border around QR Code. - * - * @return bool - */ - public function getDrawBorder() - { - return $this->draw_border; - } - - /** - * Set QR Code label (text). - * - * @param int|string $label Label to print under QR code - * - * @return QrCode - */ - public function setLabel($label) - { - $this->label = $label; - - return $this; - } - - /** - * Return QR Code label (text). - * - * @return string - */ - public function getLabel() - { - return $this->label; - } - - /** - * Set QR Code label font size. - * - * @param int $label_font_size Font size of the QR code label - * - * @return QrCode - */ - public function setLabelFontSize($label_font_size) - { - $this->label_font_size = $label_font_size; - - return $this; - } - - /** - * Return QR Code label font size. - * - * @return int - */ - public function getLabelFontSize() - { - return $this->label_font_size; - } - - /** - * Set QR Code label font path. - * - * @param int $label_font_path Path to the QR Code label's TTF font file - * - * @return QrCode - */ - public function setLabelFontPath($label_font_path) - { - $this->label_font_path = $label_font_path; - - return $this; - } - - /** - * Return path to the QR Code label's TTF font file. - * - * @return string - */ - public function getLabelFontPath() - { - return $this->label_font_path; - } - - /** - * Set label horizontal alignment. - * - * @param int $label_halign Label horizontal alignment - * - * @return QrCode - */ - public function setLabelHalign($label_halign) - { - $this->label_halign = $label_halign; - - return $this; - } - - /** - * Return label horizontal alignment. - * - * @return int - */ - public function getLabelHalign() - { - return $this->label_halign; - } - - /** - * Set label vertical alignment. - * - * @param int $label_valign Label vertical alignment - * - * @return QrCode - */ - public function setLabelValign($label_valign) - { - $this->label_valign = $label_valign; - - return $this; - } - - /** - * Return label vertical alignment. - * - * @return int - */ - public function getLabelValign() - { - return $this->label_valign; - } - - /** - * Set foreground color of the QR Code. - * - * @param array $color_foreground RGB color - * - * @return QrCode - */ - public function setForegroundColor($color_foreground) - { - if (!isset($color_foreground['a'])) { - $color_foreground['a'] = 0; - } - - $this->color_foreground = $color_foreground; - - return $this; - } - - /** - * Return foreground color of the QR Code. - * - * @return array - */ - public function getForegroundColor() - { - return $this->color_foreground; - } - - /** - * Set background color of the QR Code. - * - * @param array $color_background RGB color - * - * @return QrCode - */ - public function setBackgroundColor($color_background) - { - if (!isset($color_background['a'])) { - $color_background['a'] = 0; - } - - $this->color_background = $color_background; - - return $this; - } - - /** - * Return background color of the QR Code. - * - * @return array - */ - public function getBackgroundColor() - { - return $this->color_background; - } - - /** - * Return the image resource. - * - * @return resource - */ - public function getImage() - { - if (empty($this->image)) { - $this->create(); - } - - return $this->image; - } - - /** - * Return the data URI. - * - * @return string - */ - public function getDataUri() - { - if (empty($this->image)) { - $this->create(); - } - - ob_start(); - call_user_func('image'.$this->image_type, $this->image); - $contents = ob_get_clean(); - - return 'data:image/'.$this->image_type.';base64,'.base64_encode($contents); - } - - /** - * Render the QR Code then save it to given file name. - * - * @param string $filename File name of the QR Code - * - * @return QrCode - */ - public function save($filename) - { - $this->render($filename); - - return $this; - } - - /** - * Render the QR Code then save it to given file name or - * output it to the browser when file name omitted. - * - * @param null|string $filename File name of the QR Code - * @param null|string $format Format of the file (png, jpeg, jpg, gif, wbmp) - * - * @throws ImageFunctionUnknownException - * @throws ImageFunctionFailedException - * - * @return QrCode - */ - public function render($filename = null, $format = 'png') - { - $this->create(); - - if ($format == 'jpg') { - $format = 'jpeg'; - } - - if (!in_array($format, $this->image_types_available)) { - $format = $this->image_type; - } - - if (!function_exists('image'.$format)) { - throw new ImageFunctionUnknownException('QRCode: function image'.$format.' does not exists.'); - } - - if ($filename === null) { - $success = call_user_func('image'.$format, $this->image); - } else { - $success = call_user_func_array('image'.$format, [$this->image, $filename]); - } - - if ($success === false) { - throw new ImageFunctionFailedException('QRCode: function image'.$format.' failed.'); - } - - return $this; - } - - /** - * Returns the content type corresponding to the image type. - * - * @return string - */ - public function getContentType() - { - $contentType = 'image/'.$this->image_type; - - return $contentType; - } - - /** - * Create QR Code and return its content. - * - * @param string|null $format Image type (gif, png, wbmp, jpeg) - * - * @throws ImageFunctionUnknownException - * @throws ImageFunctionFailedException - * - * @return string - */ - public function get($format = null) - { - $this->create(); - - if ($format == 'jpg') { - $format = 'jpeg'; - } - - if (!in_array($format, $this->image_types_available)) { - $format = $this->image_type; - } - - if (!function_exists('image'.$format)) { - throw new ImageFunctionUnknownException('QRCode: function image'.$format.' does not exists.'); - } - - ob_start(); - $success = call_user_func('image'.$format, $this->image); - - if ($success === false) { - throw new ImageFunctionFailedException('QRCode: function image'.$format.' failed.'); - } - - $content = ob_get_clean(); - - return $content; - } - - /** - * Create the image. - * - * @throws Exceptions\DataDoesntExistsException - * @throws Exceptions\VersionTooLargeException - * @throws Exceptions\ImageSizeTooLargeException - * @throws \OverflowException - */ - public function create() - { - $image_path = $this->image_path; - $path = $this->path; - - $version_ul = 40; - - $qrcode_data_string = $this->text;//Previously from $_GET["d"]; - - $qrcode_error_correct = $this->error_correction;//Previously from $_GET["e"]; - $qrcode_module_size = $this->module_size;//Previously from $_GET["s"]; - $qrcode_version = $this->version;//Previously from $_GET["v"]; - $qrcode_image_type = $this->image_type;//Previously from $_GET["t"]; - - $qrcode_structureappend_n = $this->structure_append_n;//Previously from $_GET["n"]; - $qrcode_structureappend_m = $this->structure_append_m;//Previously from $_GET["m"]; - $qrcode_structureappend_parity = $this->structure_append_parity;//Previously from $_GET["p"]; - $qrcode_structureappend_originaldata = $this->structure_append_original_data;//Previously from $_GET["o"]; - - if ($qrcode_module_size > 0) { - } else { - if ($qrcode_image_type == 'jpeg') { - $qrcode_module_size = 8; - } else { - $qrcode_module_size = 4; - } - } - $data_length = strlen($qrcode_data_string); - if ($data_length <= 0) { - throw new DataDoesntExistsException('QRCode: data does not exist.'); - } - $data_counter = 0; - if ($qrcode_structureappend_n > 1 - && $qrcode_structureappend_n <= 16 - && $qrcode_structureappend_m > 0 - && $qrcode_structureappend_m <= 16) { - $data_value[0] = 3; - $data_bits[0] = 4; - - $data_value[1] = $qrcode_structureappend_m - 1; - $data_bits[1] = 4; - - $data_value[2] = $qrcode_structureappend_n - 1; - $data_bits[2] = 4; - - $originaldata_length = strlen($qrcode_structureappend_originaldata); - if ($originaldata_length > 1) { - $qrcode_structureappend_parity = 0; - $i = 0; - while ($i < $originaldata_length) { - $qrcode_structureappend_parity = ($qrcode_structureappend_parity ^ ord(substr($qrcode_structureappend_originaldata, $i, 1))); - ++$i; - } - } - - $data_value[3] = $qrcode_structureappend_parity; - $data_bits[3] = 8; - - $data_counter = 4; - } - - $data_bits[$data_counter] = 4; - - /* --- determine encode mode */ - - if (preg_match('/[^0-9]/', $qrcode_data_string) != 0) { - if (preg_match("/[^0-9A-Z \$\*\%\+\.\/\:\-]/", $qrcode_data_string) != 0) { - /* --- 8bit byte mode */ - - $codeword_num_plus = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8]; - - $data_value[$data_counter] = 4; - ++$data_counter; - $data_value[$data_counter] = $data_length; - $data_bits[$data_counter] = 8; /* #version 1-9 */ - $codeword_num_counter_value = $data_counter; - - ++$data_counter; - $i = 0; - while ($i < $data_length) { - $data_value[$data_counter] = ord(substr($qrcode_data_string, $i, 1)); - $data_bits[$data_counter] = 8; - ++$data_counter; - ++$i; - } - } else { - /* ---- alphanumeric mode */ - - $codeword_num_plus = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4]; - - $data_value[$data_counter] = 2; - ++$data_counter; - $data_value[$data_counter] = $data_length; - $data_bits[$data_counter] = 9; /* #version 1-9 */ - $codeword_num_counter_value = $data_counter; - - $alphanumeric_character_hash = ['0' => 0, '1' => 1, '2' => 2, '3' => 3, '4' => 4, - '5' => 5, '6' => 6, '7' => 7, '8' => 8, '9' => 9, 'A' => 10, 'B' => 11, 'C' => 12, 'D' => 13, 'E' => 14, - 'F' => 15, 'G' => 16, 'H' => 17, 'I' => 18, 'J' => 19, 'K' => 20, 'L' => 21, 'M' => 22, 'N' => 23, - 'O' => 24, 'P' => 25, 'Q' => 26, 'R' => 27, 'S' => 28, 'T' => 29, 'U' => 30, 'V' => 31, - 'W' => 32, 'X' => 33, 'Y' => 34, 'Z' => 35, ' ' => 36, '$' => 37, '%' => 38, '*' => 39, - '+' => 40, '-' => 41, '.' => 42, '/' => 43, ':' => 44]; - - $i = 0; - ++$data_counter; - while ($i < $data_length) { - if (($i % 2) == 0) { - $data_value[$data_counter] = $alphanumeric_character_hash[substr($qrcode_data_string, $i, 1)]; - $data_bits[$data_counter] = 6; - } else { - $data_value[$data_counter] = $data_value[$data_counter] * 45 + $alphanumeric_character_hash[substr($qrcode_data_string, $i, 1)]; - $data_bits[$data_counter] = 11; - ++$data_counter; - } - ++$i; - } - } - } else { - /* ---- numeric mode */ - - $codeword_num_plus = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4]; - - $data_value[$data_counter] = 1; - ++$data_counter; - $data_value[$data_counter] = $data_length; - $data_bits[$data_counter] = 10; /* #version 1-9 */ - $codeword_num_counter_value = $data_counter; - - $i = 0; - ++$data_counter; - while ($i < $data_length) { - if (($i % 3) == 0) { - $data_value[$data_counter] = substr($qrcode_data_string, $i, 1); - $data_bits[$data_counter] = 4; - } else { - $data_value[$data_counter] = $data_value[$data_counter] * 10 + substr($qrcode_data_string, $i, 1); - if (($i % 3) == 1) { - $data_bits[$data_counter] = 7; - } else { - $data_bits[$data_counter] = 10; - ++$data_counter; - } - } - ++$i; - } - } - if (array_key_exists($data_counter, $data_bits) && $data_bits[$data_counter] > 0) { - ++$data_counter; - } - $i = 0; - $total_data_bits = 0; - while ($i < $data_counter) { - $total_data_bits += $data_bits[$i]; - ++$i; - } - - $ecc_character_hash = [ - 'L' => '1', - 'l' => '1', - 'M' => '0', - 'm' => '0', - 'Q' => '3', - 'q' => '3', - 'H' => '2', - 'h' => '2', - ]; - - if (!is_numeric($qrcode_error_correct)) { - $ec = @$ecc_character_hash[$qrcode_error_correct]; - } else { - $ec = $qrcode_error_correct; - } - - if (!$ec) { - $ec = 0; - } - - $max_data_bits = 0; - - $max_data_bits_array = [ - 0, 128, 224, 352, 512, 688, 864, 992, 1232, 1456, 1728, - 2032, 2320, 2672, 2920, 3320, 3624, 4056, 4504, 5016, 5352, - 5712, 6256, 6880, 7312, 8000, 8496, 9024, 9544, 10136, 10984, - 11640, 12328, 13048, 13800, 14496, 15312, 15936, 16816, 17728, 18672, - - 152, 272, 440, 640, 864, 1088, 1248, 1552, 1856, 2192, - 2592, 2960, 3424, 3688, 4184, 4712, 5176, 5768, 6360, 6888, - 7456, 8048, 8752, 9392, 10208, 10960, 11744, 12248, 13048, 13880, - 14744, 15640, 16568, 17528, 18448, 19472, 20528, 21616, 22496, 23648, - - 72, 128, 208, 288, 368, 480, 528, 688, 800, 976, - 1120, 1264, 1440, 1576, 1784, 2024, 2264, 2504, 2728, 3080, - 3248, 3536, 3712, 4112, 4304, 4768, 5024, 5288, 5608, 5960, - 6344, 6760, 7208, 7688, 7888, 8432, 8768, 9136, 9776, 10208, - - 104, 176, 272, 384, 496, 608, 704, 880, 1056, 1232, - 1440, 1648, 1952, 2088, 2360, 2600, 2936, 3176, 3560, 3880, - 4096, 4544, 4912, 5312, 5744, 6032, 6464, 6968, 7288, 7880, - 8264, 8920, 9368, 9848, 10288, 10832, 11408, 12016, 12656, 13328 - ]; - if (!is_numeric($qrcode_version)) { - $qrcode_version = 0; - } - if (!$qrcode_version) { - /* #--- auto version select */ - $i = 1 + 40 * $ec; - $j = $i + 39; - $qrcode_version = 1; - while ($i <= $j) { - if (($max_data_bits_array[$i]) >= $total_data_bits + $codeword_num_plus[$qrcode_version]) { - $max_data_bits = $max_data_bits_array[$i]; - break; - } - ++$i; - ++$qrcode_version; - } - } else { - $max_data_bits = $max_data_bits_array[$qrcode_version + 40 * $ec]; - } - if ($qrcode_version > $version_ul) { - throw new VersionTooLargeException('QRCode : version too large'); - } - - $total_data_bits += $codeword_num_plus[$qrcode_version]; - $data_bits[$codeword_num_counter_value] += $codeword_num_plus[$qrcode_version]; - - $max_codewords_array = [0, 26, 44, 70, 100, 134, 172, 196, 242, - 292, 346, 404, 466, 532, 581, 655, 733, 815, 901, 991, 1085, 1156, - 1258, 1364, 1474, 1588, 1706, 1828, 1921, 2051, 2185, 2323, 2465, - 2611, 2761, 2876, 3034, 3196, 3362, 3532, 3706]; - - $max_codewords = $max_codewords_array[$qrcode_version]; - $max_modules_1side = 17 + ($qrcode_version << 2); - - $matrix_remain_bit = [0, 0, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, - 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0]; - - /* ---- read version ECC data file */ - - $byte_num = $matrix_remain_bit[$qrcode_version] + ($max_codewords << 3); - $filename = $path.'/qrv'.$qrcode_version.'_'.$ec.'.dat'; - $fp1 = fopen($filename, 'rb'); - $matx = fread($fp1, $byte_num); - $maty = fread($fp1, $byte_num); - $masks = fread($fp1, $byte_num); - $fi_x = fread($fp1, 15); - $fi_y = fread($fp1, 15); - $rs_ecc_codewords = ord(fread($fp1, 1)); - $rso = fread($fp1, 128); - fclose($fp1); - - $matrix_x_array = unpack('C*', $matx); - $matrix_y_array = unpack('C*', $maty); - $mask_array = unpack('C*', $masks); - - $rs_block_order = unpack('C*', $rso); - - $format_information_x2 = unpack('C*', $fi_x); - $format_information_y2 = unpack('C*', $fi_y); - - $format_information_x1 = [0, 1, 2, 3, 4, 5, 7, 8, 8, 8, 8, 8, 8, 8, 8]; - $format_information_y1 = [8, 8, 8, 8, 8, 8, 8, 8, 7, 5, 4, 3, 2, 1, 0]; - - $max_data_codewords = ($max_data_bits >> 3); - - $filename = $path.'/rsc'.$rs_ecc_codewords.'.dat'; - $fp0 = fopen($filename, 'rb'); - $i = 0; - $rs_cal_table_array = []; - while ($i < 256) { - $rs_cal_table_array[$i] = fread($fp0, $rs_ecc_codewords); - ++$i; - } - fclose($fp0); - - /* --- set terminator */ - - if ($total_data_bits <= $max_data_bits - 4) { - $data_value[$data_counter] = 0; - $data_bits[$data_counter] = 4; - } else { - if ($total_data_bits < $max_data_bits) { - $data_value[$data_counter] = 0; - $data_bits[$data_counter] = $max_data_bits - $total_data_bits; - } else { - if ($total_data_bits > $max_data_bits) { - throw new \OverflowException('QRCode: overflow error'); - } - } - } - - /* ----divide data by 8bit */ - - $i = 0; - $codewords_counter = 0; - $codewords[0] = 0; - $remaining_bits = 8; - - while ($i <= $data_counter) { - $buffer = @$data_value[$i]; - $buffer_bits = @$data_bits[$i]; - - $flag = 1; - while ($flag) { - if ($remaining_bits > $buffer_bits) { - $codewords[$codewords_counter] = ((@$codewords[$codewords_counter] << $buffer_bits) | $buffer); - $remaining_bits -= $buffer_bits; - $flag = 0; - } else { - $buffer_bits -= $remaining_bits; - $codewords[$codewords_counter] = (($codewords[$codewords_counter] << $remaining_bits) | ($buffer >> $buffer_bits)); - - if ($buffer_bits == 0) { - $flag = 0; - } else { - $buffer = ($buffer & ((1 << $buffer_bits) - 1)); - $flag = 1; - } - - ++$codewords_counter; - if ($codewords_counter < $max_data_codewords - 1) { - $codewords[$codewords_counter] = 0; - } - $remaining_bits = 8; - } - } - ++$i; - } - if ($remaining_bits != 8) { - $codewords[$codewords_counter] = $codewords[$codewords_counter] << $remaining_bits; - } else { - --$codewords_counter; - } - - /* ---- set padding character */ - - if ($codewords_counter < $max_data_codewords - 1) { - $flag = 1; - while ($codewords_counter < $max_data_codewords - 1) { - ++$codewords_counter; - if ($flag == 1) { - $codewords[$codewords_counter] = 236; - } else { - $codewords[$codewords_counter] = 17; - } - $flag = $flag * (-1); - } - } - - /* ---- RS-ECC prepare */ - - $i = 0; - $j = 0; - $rs_block_number = 0; - $rs_temp[0] = ''; - - while ($i < $max_data_codewords) { - $rs_temp[$rs_block_number] .= chr($codewords[$i]); - ++$j; - - if ($j >= $rs_block_order[$rs_block_number + 1] - $rs_ecc_codewords) { - $j = 0; - ++$rs_block_number; - $rs_temp[$rs_block_number] = ''; - } - ++$i; - } - - /* - # - # RS-ECC main - # - */ - - $rs_block_number = 0; - $rs_block_order_num = count($rs_block_order); - - while ($rs_block_number < $rs_block_order_num) { - $rs_codewords = $rs_block_order[$rs_block_number + 1]; - $rs_data_codewords = $rs_codewords - $rs_ecc_codewords; - - $rstemp = $rs_temp[$rs_block_number].str_repeat(chr(0), $rs_ecc_codewords); - $padding_data = str_repeat(chr(0), $rs_data_codewords); - - $j = $rs_data_codewords; - while ($j > 0) { - $first = ord(substr($rstemp, 0, 1)); - - if ($first) { - $left_chr = substr($rstemp, 1); - $cal = $rs_cal_table_array[$first].$padding_data; - $rstemp = $left_chr ^ $cal; - } else { - $rstemp = substr($rstemp, 1); - } - - --$j; - } - - $codewords = array_merge($codewords, unpack('C*', $rstemp)); - - ++$rs_block_number; - } - - /* ---- flash matrix */ - $matrix_content = []; - $i = 0; - while ($i < $max_modules_1side) { - $j = 0; - while ($j < $max_modules_1side) { - $matrix_content[$j][$i] = 0; - ++$j; - } - ++$i; - } - - /* --- attach data */ - - $i = 0; - while ($i < $max_codewords) { - $codeword_i = $codewords[$i]; - $j = 8; - while ($j >= 1) { - $codeword_bits_number = ($i << 3) + $j; - $matrix_content[ $matrix_x_array[$codeword_bits_number] ][ $matrix_y_array[$codeword_bits_number] ] = ((255 * ($codeword_i & 1)) ^ $mask_array[$codeword_bits_number]); - $codeword_i = $codeword_i >> 1; - --$j; - } - ++$i; - } - - $matrix_remain = $matrix_remain_bit[$qrcode_version]; - while ($matrix_remain) { - $remain_bit_temp = $matrix_remain + ($max_codewords << 3); - $matrix_content[ $matrix_x_array[$remain_bit_temp] ][ $matrix_y_array[$remain_bit_temp] ] = (255 ^ $mask_array[$remain_bit_temp]); - --$matrix_remain; - } - - #--- mask select - - $min_demerit_score = 0; - $hor_master = ''; - $ver_master = ''; - $k = 0; - while ($k < $max_modules_1side) { - $l = 0; - while ($l < $max_modules_1side) { - $hor_master = $hor_master.chr($matrix_content[$l][$k]); - $ver_master = $ver_master.chr($matrix_content[$k][$l]); - ++$l; - } - ++$k; - } - $i = 0; - $all_matrix = $max_modules_1side * $max_modules_1side; - $mask_number = 0; - while ($i < 8) { - $demerit_n1 = 0; - $ptn_temp = []; - $bit = 1 << $i; - $bit_r = (~$bit) & 255; - $bit_mask = str_repeat(chr($bit), $all_matrix); - $hor = $hor_master & $bit_mask; - $ver = $ver_master & $bit_mask; - - $ver_shift1 = $ver.str_repeat(chr(170), $max_modules_1side); - $ver_shift2 = str_repeat(chr(170), $max_modules_1side).$ver; - $ver_shift1_0 = $ver.str_repeat(chr(0), $max_modules_1side); - $ver_shift2_0 = str_repeat(chr(0), $max_modules_1side).$ver; - $ver_or = chunk_split(~($ver_shift1 | $ver_shift2), $max_modules_1side, chr(170)); - $ver_and = chunk_split(~($ver_shift1_0 & $ver_shift2_0), $max_modules_1side, chr(170)); - - $hor = chunk_split(~$hor, $max_modules_1side, chr(170)); - $ver = chunk_split(~$ver, $max_modules_1side, chr(170)); - $hor = $hor.chr(170).$ver; - - $n1_search = '/'.str_repeat(chr(255), 5).'+|'.str_repeat(chr($bit_r), 5).'+/'; - $n3_search = chr($bit_r).chr(255).chr($bit_r).chr($bit_r).chr($bit_r).chr(255).chr($bit_r); - - $demerit_n3 = substr_count($hor, $n3_search) * 40; - $demerit_n4 = floor(abs(((100 * (substr_count($ver, chr($bit_r)) / ($byte_num))) - 50) / 5)) * 10; - - $n2_search1 = '/'.chr($bit_r).chr($bit_r).'+/'; - $n2_search2 = '/'.chr(255).chr(255).'+/'; - $demerit_n2 = 0; - preg_match_all($n2_search1, $ver_and, $ptn_temp); - foreach ($ptn_temp[0] as $str_temp) { - $demerit_n2 += (strlen($str_temp) - 1); - } - $ptn_temp = []; - preg_match_all($n2_search2, $ver_or, $ptn_temp); - foreach ($ptn_temp[0] as $str_temp) { - $demerit_n2 += (strlen($str_temp) - 1); - } - $demerit_n2 *= 3; - - $ptn_temp = []; - - preg_match_all($n1_search, $hor, $ptn_temp); - foreach ($ptn_temp[0] as $str_temp) { - $demerit_n1 += (strlen($str_temp) - 2); - } - - $demerit_score = $demerit_n1 + $demerit_n2 + $demerit_n3 + $demerit_n4; - - if ($demerit_score <= $min_demerit_score || $i == 0) { - $mask_number = $i; - $min_demerit_score = $demerit_score; - } - - ++$i; - } - - $mask_content = 1 << $mask_number; - - # --- format information - - $format_information_value = (($ec << 3) | $mask_number); - $format_information_array = ['101010000010010', '101000100100101', - '101111001111100', '101101101001011', '100010111111001', '100000011001110', - '100111110010111', '100101010100000', '111011111000100', '111001011110011', - '111110110101010', '111100010011101', '110011000101111', '110001100011000', - '110110001000001', '110100101110110', '001011010001001', '001001110111110', - '001110011100111', '001100111010000', '000011101100010', '000001001010101', - '000110100001100', '000100000111011', '011010101011111', '011000001101000', - '011111100110001', '011101000000110', '010010010110100', '010000110000011', - '010111011011010', '010101111101101']; - $i = 0; - while ($i < 15) { - $content = substr($format_information_array[$format_information_value], $i, 1); - - $matrix_content[$format_information_x1[$i]][$format_information_y1[$i]] = $content * 255; - $matrix_content[$format_information_x2[$i + 1]][$format_information_y2[$i + 1]] = $content * 255; - ++$i; - } - - $mib = $max_modules_1side; - if ($this->draw_quiet_zone) { - $mib += 8; - } - - if ($this->size == 0) { - $this->size = $mib * $qrcode_module_size; - if ($this->size > 1480) { - throw new ImageSizeTooLargeException('QRCode: image size too large'); - } - } - - $image_width = $this->size + $this->padding * 2; - $image_height = $this->size + $this->padding * 2; - - if (!empty($this->label)) { - if (!function_exists('imagettfbbox')) { - throw new FreeTypeLibraryMissingException('QRCode: missing function "imagettfbbox". Did you install the FreeType library?'); - } - $font_box = imagettfbbox($this->label_font_size, 0, $this->label_font_path, $this->label); - $label_width = (int) $font_box[2] - (int) $font_box[0]; - $label_height = (int) $font_box[0] - (int) $font_box[7]; - - if ($this->label_valign == self::LABEL_VALIGN_MIDDLE) { - $image_height += $label_height + $this->padding; - } else { - $image_height += $label_height; - } - } - - $output_image = imagecreate($image_width, $image_height); - imagecolorallocate($output_image, 255, 255, 255); - - $image_path = $image_path.'/qrv'.$qrcode_version.'.png'; - - $base_image = imagecreatefrompng($image_path); - $code_size = $this->size; - $module_size = function ($size = 1) use ($code_size, $base_image) { - return round($code_size / imagesx($base_image) * $size); - }; - - $col[1] = imagecolorallocate($base_image, 0, 0, 0); - $col[0] = imagecolorallocate($base_image, 255, 255, 255); - - $i = 4; - $mxe = 4 + $max_modules_1side; - $ii = 0; - while ($i < $mxe) { - $j = 4; - $jj = 0; - while ($j < $mxe) { - if ($matrix_content[$ii][$jj] & $mask_content) { - imagesetpixel($base_image, $i, $j, $col[1]); - } - ++$j; - ++$jj; - } - ++$i; - ++$ii; - } - - if ($this->draw_quiet_zone == true) { - imagecopyresampled($output_image, $base_image, $this->padding, $this->padding, 0, 0, $this->size, $this->size, $mib, $mib); - } else { - imagecopyresampled($output_image, $base_image, $this->padding, $this->padding, 4, 4, $this->size, $this->size, $mib, $mib); - } - - if ($this->draw_border == true) { - $border_width = $this->padding; - $border_height = $this->size + $this->padding - 1; - $border_color = imagecolorallocate($output_image, 0, 0, 0); - imagerectangle($output_image, $border_width, $border_width, $border_height, $border_height, $border_color); - } - - if (!empty($this->label)) { - // Label horizontal alignment - switch ($this->label_halign) { - case self::LABEL_HALIGN_LEFT: - $font_x = 0; - break; - - case self::LABEL_HALIGN_LEFT_BORDER: - $font_x = $this->padding; - break; - - case self::LABEL_HALIGN_LEFT_CODE: - if ($this->draw_quiet_zone == true) { - $font_x = $this->padding + $module_size(4); - } else { - $font_x = $this->padding; - } - break; - - case self::LABEL_HALIGN_RIGHT: - $font_x = $this->size + ($this->padding * 2) - $label_width; - break; - - case self::LABEL_HALIGN_RIGHT_BORDER: - $font_x = $this->size + $this->padding - $label_width; - break; - - case self::LABEL_HALIGN_RIGHT_CODE: - if ($this->draw_quiet_zone == true) { - $font_x = $this->size + $this->padding - $label_width - $module_size(4); - } else { - $font_x = $this->size + $this->padding - $label_width; - } - break; - - default: - $font_x = floor($image_width - $label_width) / 2; - } - - // Label vertical alignment - switch ($this->label_valign) { - case self::LABEL_VALIGN_TOP_NO_BORDER: - $font_y = $image_height - $this->padding - 1; - break; - - case self::LABEL_VALIGN_BOTTOM: - $font_y = $image_height; - break; - - default: - $font_y = $image_height - $this->padding; - } - - $label_bg_x1 = $font_x - $module_size(2); - $label_bg_y1 = $font_y - $label_height; - $label_bg_x2 = $font_x + $label_width + $module_size(2); - $label_bg_y2 = $font_y; - - $color = imagecolorallocate($output_image, 0, 0, 0); - $label_bg_color = imagecolorallocate($output_image, 255, 255, 255); - - imagefilledrectangle($output_image, $label_bg_x1, $label_bg_y1, $label_bg_x2, $label_bg_y2, $label_bg_color); - imagettftext($output_image, $this->label_font_size, 0, $font_x, $font_y, $color, $this->label_font_path, $this->label); - } - - $imagecolorset_function = new ReflectionFunction('imagecolorset'); - $allow_alpha = $imagecolorset_function->getNumberOfParameters() == 6; - - if ($this->color_background != null) { - $index = imagecolorclosest($output_image, 255, 255, 255); - if ($allow_alpha) { - imagecolorset($output_image, $index, $this->color_background['r'], $this->color_background['g'], $this->color_background['b'], $this->color_background['a']); - } else { - imagecolorset($output_image, $index, $this->color_background['r'], $this->color_background['g'], $this->color_background['b']); - } - } - - if ($this->color_foreground != null) { - $index = imagecolorclosest($output_image, 0, 0, 0); - if ($allow_alpha) { - imagecolorset($output_image, $index, $this->color_foreground['r'], $this->color_foreground['g'], $this->color_foreground['b'], $this->color_foreground['a']); - } else { - imagecolorset($output_image, $index, $this->color_foreground['r'], $this->color_foreground['g'], $this->color_foreground['b']); - } - } - - if (!empty($this->logo)) { - $output_image_org = $output_image; - $output_image = imagecreatetruecolor($image_width, $image_height); - imagecopy($output_image, $output_image_org, 0, 0, 0, 0, $image_width, $image_height); - - $image_info = getimagesize($this->logo); - - if ($image_info !== false) { - $image_type = strtolower(substr(image_type_to_extension($image_info [2]), 1)); - $logo_image = call_user_func('imagecreatefrom'.$image_type, $this->logo); - } else { - $logo_image = call_user_func('imagecreatefrom'.$this->image_type, $this->logo); - } - - if (!$logo_image) { - throw new ImageFunctionFailedException('imagecreatefrom'.$this->image_type.' '.$this->logo.' failed'); - } - $src_w = imagesx($logo_image); - $src_h = imagesy($logo_image); - - $dst_x = ($image_width - $this->logo_size) / 2; - $dst_y = ($this->size + $this->padding * 2 - $this->logo_size) / 2; - - $successful = imagecopyresampled($output_image, $logo_image, $dst_x, $dst_y, 0, 0, $this->logo_size, $this->logo_size, $src_w, $src_h); - if (!$successful) { - throw new ImageFunctionFailedException('add logo [image'.$this->format.'] failed.'); - } - imagedestroy($logo_image); - } - $this->image = $output_image; - } -} diff --git a/vendor/endroid/qr-code/tests/Bundle/Controller/QrCodeControllerTest.php b/vendor/endroid/qr-code/tests/Bundle/Controller/QrCodeControllerTest.php deleted file mode 100644 index 92d0ed81f..000000000 --- a/vendor/endroid/qr-code/tests/Bundle/Controller/QrCodeControllerTest.php +++ /dev/null @@ -1,33 +0,0 @@ - - * - * This source file is subject to the MIT license that is bundled - * with this source code in the file LICENSE. - */ - -namespace Endroid\QrCode\Tests\Bundle\Controller; - -use Symfony\Bundle\FrameworkBundle\Test\WebTestCase; - -class QrCodeControllerTest extends WebTestCase -{ - /** - * Tests if the QR code generation route returns a success response. - */ - public function testCreateQrCode() - { - $client = static::createClient(); - - $client->request('GET', $client->getContainer()->get('router')->generate('endroid_qrcode', [ - 'text' => 'Life is too short to be generating QR codes', - 'extension' => 'png', - 'size' => 150, - 'label' => 'Dit is een label', - 'label_font_size' => 16, - ])); - - $this->assertEquals(200, $client->getResponse()->getStatusCode()); - } -} diff --git a/vendor/endroid/qr-code/tests/Bundle/EndroidQrCodeBundleTest.php b/vendor/endroid/qr-code/tests/Bundle/EndroidQrCodeBundleTest.php deleted file mode 100644 index 384204708..000000000 --- a/vendor/endroid/qr-code/tests/Bundle/EndroidQrCodeBundleTest.php +++ /dev/null @@ -1,20 +0,0 @@ - - * - * This source file is subject to the MIT license that is bundled - * with this source code in the file LICENSE. - */ - -namespace Endroid\QrCode\Tests\Bundle; - -use PHPUnit_Framework_TestCase; - -class EndroidQrCodeBundleTest extends PHPUnit_Framework_TestCase -{ - public function testNoTestsYet() - { - $this->assertTrue(true); - } -} diff --git a/vendor/endroid/qr-code/tests/Bundle/app/.gitignore b/vendor/endroid/qr-code/tests/Bundle/app/.gitignore deleted file mode 100644 index 6dd26c5b0..000000000 --- a/vendor/endroid/qr-code/tests/Bundle/app/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/cache -/logs diff --git a/vendor/endroid/qr-code/tests/Bundle/app/AppKernel.php b/vendor/endroid/qr-code/tests/Bundle/app/AppKernel.php deleted file mode 100644 index f3ff79ce0..000000000 --- a/vendor/endroid/qr-code/tests/Bundle/app/AppKernel.php +++ /dev/null @@ -1,36 +0,0 @@ - - * - * This source file is subject to the MIT license that is bundled - * with this source code in the file LICENSE. - */ - -use Symfony\Component\Config\Loader\LoaderInterface; -use Symfony\Component\HttpKernel\Kernel; - -class AppKernel extends Kernel -{ - /** - * {@inheritdoc} - */ - public function registerBundles() - { - $bundles = [ - new Symfony\Bundle\FrameworkBundle\FrameworkBundle(), - new Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle(), - new Endroid\QrCode\Bundle\EndroidQrCodeBundle(), - ]; - - return $bundles; - } - - /** - * {@inheritdoc} - */ - public function registerContainerConfiguration(LoaderInterface $loader) - { - $loader->load(__DIR__.'/config/config.yml'); - } -} diff --git a/vendor/endroid/qr-code/tests/Bundle/app/bootstrap.php b/vendor/endroid/qr-code/tests/Bundle/app/bootstrap.php deleted file mode 100644 index ff87382c8..000000000 --- a/vendor/endroid/qr-code/tests/Bundle/app/bootstrap.php +++ /dev/null @@ -1,7 +0,0 @@ - - * - * This source file is subject to the MIT license that is bundled - * with this source code in the file LICENSE. - */ - -namespace Endroid\Tests\QrCode; - -use Endroid\QrCode\Exceptions\ImageFunctionFailedException; -use Endroid\QrCode\Exceptions\ImageFunctionUnknownException; -use Endroid\QrCode\QrCode; -use PHPUnit_Framework_TestCase; - -class QrCodeTest extends PHPUnit_Framework_TestCase -{ - /** - * @var QrCode - */ - protected $qrCode; - - /** - * Tests if a valid data uri is returned. - */ - public function testGetDataUri() - { - $qrCode = $this->getQrCode(); - $dataUri = $qrCode->getDataUri(); - - $this->assertTrue(is_string($dataUri)); - } - - /** - * Tests if a valid image string is returned. - * - * @throws ImageFunctionFailedException - * @throws ImageFunctionUnknownException - */ - public function testGetImageString() - { - $qrCode = $this->getQrCode(); - $imageString = $qrCode->get('png'); - - $this->assertTrue(is_string($imageString)); - } - - /** - * Tests if a valid image string is returned. - * - * @throws ImageFunctionFailedException - * @throws ImageFunctionUnknownException - */ - public function testGetQrCodeWithLogoString() - { - $qrCode = $this->createQrCodeWithLogo(); - $imageString = $qrCode->get('png'); - - $this->assertTrue(is_string($imageString)); - } - - /** - * For https://github.com/endroid/QrCode/issues/49. - */ - public function testRenderHttpAddress() - { - $qrCode = new QrCode(); - $qrCode - ->setText('http://www.example.com/it/it/contact/qr/hit/id/1 ') - ->setExtension('png') - ->setSize(300) - ->setPadding(10) - ->setBackgroundColor(['r' => 255, 'g' => 255, 'b' => 255, 'a' => 0]) - ->setForegroundColor(['r' => 0, 'g' => 0, 'b' => 0, 'a' => 0]) - ->setErrorCorrection(QrCode::LEVEL_MEDIUM); - - $qrCode->get('png'); - } - - /** - * Returns a QR code. - */ - protected function getQrCode() - { - if (!$this->qrCode) { - $this->qrCode = $this->createQrCode(); - } - - return $this->qrCode; - } - - /** - * Creates a QR code. - * - * @return QrCode - */ - protected function createQrCode() - { - $qrCode = new QrCode(); - $qrCode->setText('Life is too short to be generating QR codes'); - $qrCode->setSize(300); - - return $qrCode; - } - - /** - * Creates a QR code with a logo. - * - * @return QrCode - */ - protected function createQrCodeWithLogo() - { - $qrCode = new QrCode(); - $qrCode->setText('Life is too short to be generating QR codes') - ->setSize(300) - ->setLogo(dirname(__DIR__).'/assets/image/logo.png') - ->setLogoSize(60); - - return $qrCode; - } -} diff --git a/vendor/qiniu/php-sdk/.gitignore b/vendor/qiniu/php-sdk/.gitignore deleted file mode 100644 index 4c842c82e..000000000 --- a/vendor/qiniu/php-sdk/.gitignore +++ /dev/null @@ -1,12 +0,0 @@ -*.phar -*.zip -build/artifacts -phpunit.xml -phpunit.functional.xml -.DS_Store -.swp -.build -composer.lock -vendor -src/package.xml -.idea/ diff --git a/vendor/qiniu/php-sdk/.scrutinizer.yml b/vendor/qiniu/php-sdk/.scrutinizer.yml deleted file mode 100644 index 8d9304c52..000000000 --- a/vendor/qiniu/php-sdk/.scrutinizer.yml +++ /dev/null @@ -1,35 +0,0 @@ -filter: - excluded_paths: [tests/*] -checks: - php: - code_rating: true - remove_extra_empty_lines: true - remove_php_closing_tag: true - remove_trailing_whitespace: true - fix_use_statements: - remove_unused: true - preserve_multiple: false - preserve_blanklines: true - order_alphabetically: true - fix_php_opening_tag: true - fix_linefeed: true - fix_line_ending: true - fix_identation_4spaces: true - fix_doc_comments: true -tools: - external_code_coverage: - timeout: 1200 - runs: 3 - php_analyzer: true - php_code_coverage: false - php_code_sniffer: - config: - standard: PSR2 - filter: - paths: ['src'] - php_loc: - enabled: true - excluded_dirs: [vendor, tests] - php_cpd: - enabled: true - excluded_dirs: [vendor, tests] diff --git a/vendor/qiniu/php-sdk/.travis.yml b/vendor/qiniu/php-sdk/.travis.yml deleted file mode 100644 index 60951b15c..000000000 --- a/vendor/qiniu/php-sdk/.travis.yml +++ /dev/null @@ -1,23 +0,0 @@ -sudo: false -language: php - -php: - - 5.4 - - 5.5 - - 5.6 - - 7.0 - -before_script: - - export QINIU_TEST_ENV="travis" - - travis_retry composer self-update - - travis_retry composer install --no-interaction --prefer-source --dev - -script: - - ./vendor/bin/phpcs --standard=PSR2 src - - ./vendor/bin/phpcs --standard=PSR2 examples - - ./vendor/bin/phpcs --standard=PSR2 tests - - ./vendor/bin/phpunit --coverage-text --coverage-clover=coverage.clover tests/Qiniu/Tests/ - -after_script: - - wget https://scrutinizer-ci.com/ocular.phar - - php ocular.phar code-coverage:upload --format=php-clover coverage.clover diff --git a/vendor/qiniu/php-sdk/CHANGELOG.md b/vendor/qiniu/php-sdk/CHANGELOG.md deleted file mode 100644 index 8547bd882..000000000 --- a/vendor/qiniu/php-sdk/CHANGELOG.md +++ /dev/null @@ -1,92 +0,0 @@ -# Changelog - -## 7.2.3 (2018-01-20) -### 增加 -* 新加坡机房 -### 修正 -* 获取域名的入口域名 -* http回复头部兼容大小写 - -## 7.2.2 (2017-11-06) -### 增加 -* Qiniu算法的鉴权方法 - -## 7.1.4 (2017-06-21) -### 增加 -* cdn 文件/目录 刷新 -* cdn 获取 流量/带宽 -* cdn 获取域名的访问日志列表 -* cdn 对资源链接进行时间戳防盗链签名 - -## 7.1.3 (2016-11-18) -### 增加 -* move, copy操作增加force参数 - -## 7.1.2 (2016-11-12) -### 修正 -* 明确抛出获取各区域域名失败时的报错 - -## 7.1.1 (2016-11-02) -### 修正 -* 多区域配置文件存储目录从home修改到tmp目录 - - -## 7.1.0 (2016-10-22) -### 增加 -* 多存储区域的支持 - -## 7.0.8 (2016-07-19) -### 增加 -* demo -* https url 支持 -* deleteAfterDays 策略 -* 添加图片处理链接统一拼接方法 by @SherlockRen - -## 7.0.7 (2016-01-12) -### 修正 -* PersistentFop参数pipeline和notify_url失效 -* resume 模式 close file inputstream - -## 7.0.6 (2015-12-05) -### 修正 -* php7.0 Json 对空字符串解析单元测试报错 -* 开启安全模式或者设置可操作目录树时,设置CURLOPT_FOLLOWLOCATION报错, by @twocabbages -* fetch 支持不指定key, by @sinkcup - -## 7.0.5 (2015-10-29) -### 增加 -* 增加上传策略最小文件大小限制 fsizeMin -* 增加常见examples - -## 7.0.4 (2015-07-23) -### 修正 -* 一些地方的严格比较检查 -* resumeupload 备用地址失效 - -## 7.0.3 (2015-07-10) -### 修改 -* 多zone 支持 - -## 7.0.2 (2015-04-18) -### 修改 -* fetch 接口返回内容调整 -* pfop 接口调整 - -###修正 -* exception 类调用 - -## 7.0.1 (2015-03-27) -### 增加 -* 增加代码注释 - -## 7.0.0 (2015-02-03) - -### 增加 -* 简化上传接口 -* 自动选择断点续上传还是直传 -* 重构代码,接口和内部结构更清晰 -* 改变mime -* 代码覆盖度报告 -* policy改为array, 便于灵活增加,并加入过期字段检查 -* 文件列表支持目录形式 -* 利用元编程方式支持 fop 和 pfop diff --git a/vendor/qiniu/php-sdk/CONTRIBUTING.md b/vendor/qiniu/php-sdk/CONTRIBUTING.md deleted file mode 100644 index 0466bf970..000000000 --- a/vendor/qiniu/php-sdk/CONTRIBUTING.md +++ /dev/null @@ -1,30 +0,0 @@ -# 贡献代码指南 - -我们非常欢迎大家来贡献代码,我们会向贡献者致以最诚挚的敬意。 - -一般可以通过在Github上提交[Pull Request](https://github.com/qiniu/php-sdk)来贡献代码。 - -## Pull Request要求 - -- **[PSR-2 编码风格标准](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md)** 。要通过项目中的code sniffer检查。 - -- **代码格式** 提交前 请按 ./vendor/bin/phpcbf --standard=PSR2 进行格式化。 - -- **必须添加测试!** - 如果没有测试(单元测试、集成测试都可以),那么提交的补丁是不会通过的。 - -- **记得更新文档** - 保证`README.md`以及其他相关文档及时更新,和代码的变更保持一致性。 - -- **考虑我们的发布周期** - 我们的版本号会服从[SemVer v2.0.0](http://semver.org/),我们绝对不会随意变更对外的API。 - -- **创建feature分支** - 最好不要从你的master分支提交 pull request。 - -- **一个feature提交一个pull请求** - 如果你的代码变更了多个操作,那就提交多个pull请求吧。 - -- **清晰的commit历史** - 保证你的pull请求的每次commit操作都是有意义的。如果你开发中需要执行多次的即时commit操作,那么请把它们放到一起再提交pull请求。 - -## 运行测试 - -``` bash -./vendor/bin/phpunit tests/Qiniu/Tests/ - -``` diff --git a/vendor/qiniu/php-sdk/LICENSE b/vendor/qiniu/php-sdk/LICENSE deleted file mode 100644 index ba646be91..000000000 --- a/vendor/qiniu/php-sdk/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014 Qiniu, Ltd. - -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. - diff --git a/vendor/qiniu/php-sdk/README.md b/vendor/qiniu/php-sdk/README.md deleted file mode 100644 index 453eef4d1..000000000 --- a/vendor/qiniu/php-sdk/README.md +++ /dev/null @@ -1,75 +0,0 @@ -# Qiniu Resource Storage SDK for PHP -[![doxygen.io](http://doxygen.io/github.com/qiniu/php-sdk/?status.svg)](http://doxygen.io/github.com/qiniu/php-sdk/) -[![Software License](https://img.shields.io/badge/license-MIT-brightgreen.svg)](LICENSE) -[![Build Status](https://travis-ci.org/qiniu/php-sdk.svg)](https://travis-ci.org/qiniu/php-sdk) -[![Latest Stable Version](https://img.shields.io/packagist/v/qiniu/php-sdk.svg)](https://packagist.org/packages/qiniu/php-sdk) -[![Total Downloads](https://img.shields.io/packagist/dt/qiniu/php-sdk.svg)](https://packagist.org/packages/qiniu/php-sdk) -[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/qiniu/php-sdk/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/qiniu/php-sdk/?branch=master) -[![Code Coverage](https://scrutinizer-ci.com/g/qiniu/php-sdk/badges/coverage.png?b=master)](https://scrutinizer-ci.com/g/qiniu/php-sdk/?branch=master) -[![Join Chat](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/qiniu/php-sdk?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) -[![@qiniu on weibo](http://img.shields.io/badge/weibo-%40qiniutek-blue.svg)](http://weibo.com/qiniutek) - -## 安装 - -* 通过composer,这是推荐的方式,可以使用composer.json 声明依赖,或者运行下面的命令。SDK 包已经放到这里 [`qiniu/php-sdk`][install-packagist] 。 -```bash -$ composer require qiniu/php-sdk -``` -* 直接下载安装,SDK 没有依赖其他第三方库,但需要参照 composer的autoloader,增加一个自己的autoloader程序。 - -## 运行环境 - -| Qiniu SDK版本 | PHP 版本 | -|:--------------------:|:---------------------------:| -| 7.x | cURL extension, 5.3 - 5.6,7.0 | -| 6.x | cURL extension, 5.2 - 5.6 | - -## 使用方法 - -### 上传 -```php -use Qiniu\Storage\UploadManager; -use Qiniu\Auth; -... - $upManager = new UploadManager(); - $auth = new Auth($accessKey, $secretKey); - $token = $auth->uploadToken($bucketName); - list($ret, $error) = $upManager->put($token, 'formput', 'hello world'); -... -``` - -## 测试 - -``` bash -$ ./vendor/bin/phpunit tests/Qiniu/Tests/ -``` - -## 常见问题 - -- $error保留了请求响应的信息,失败情况下ret 为none, 将$error可以打印出来,提交给我们。 -- API 的使用 demo 可以参考 [单元测试](https://github.com/qiniu/php-sdk/blob/master/tests)。 - -## 代码贡献 - -详情参考[代码提交指南](https://github.com/qiniu/php-sdk/blob/master/CONTRIBUTING.md)。 - -## 贡献记录 - -- [所有贡献者](https://github.com/qiniu/php-sdk/contributors) - -## 联系我们 - -- 如果需要帮助,请提交工单(在portal右侧点击咨询和建议提交工单,或者直接向 support@qiniu.com 发送邮件) -- 如果有什么问题,可以到问答社区提问,[问答社区](http://qiniu.segmentfault.com/) -- 更详细的文档,见[官方文档站](http://developer.qiniu.com/) -- 如果发现了bug, 欢迎提交 [issue](https://github.com/qiniu/php-sdk/issues) -- 如果有功能需求,欢迎提交 [issue](https://github.com/qiniu/php-sdk/issues) -- 如果要提交代码,欢迎提交 pull request -- 欢迎关注我们的[微信](http://www.qiniu.com/#weixin) [微博](http://weibo.com/qiniutek),及时获取动态信息。 - -## 代码许可 - -The MIT License (MIT).详情见 [License文件](https://github.com/qiniu/php-sdk/blob/master/LICENSE). - -[packagist]: http://packagist.org -[install-packagist]: https://packagist.org/packages/qiniu/php-sdk diff --git a/vendor/qiniu/php-sdk/autoload.php b/vendor/qiniu/php-sdk/autoload.php deleted file mode 100644 index 4379b91da..000000000 --- a/vendor/qiniu/php-sdk/autoload.php +++ /dev/null @@ -1,14 +0,0 @@ -=5.3.3" - }, - "require-dev": { - "phpunit/phpunit": "~4.0", - "squizlabs/php_codesniffer": "~2.3" - }, - "autoload": { - "psr-4": {"Qiniu\\": "src/Qiniu"}, - "files": ["src/Qiniu/functions.php"] - } -} diff --git a/vendor/qiniu/php-sdk/examples/README.md b/vendor/qiniu/php-sdk/examples/README.md deleted file mode 100644 index 6cf8e30af..000000000 --- a/vendor/qiniu/php-sdk/examples/README.md +++ /dev/null @@ -1,10 +0,0 @@ -# examples - -这些 examples 旨在帮助你快速了解使用七牛的sdk。这些demo都是可以直接运行的, 但是在运行之前需要填上您自己的参数。 - -比如: - -* `$bucket` 需要填上您想操作的 [bucket名字](http://developer.qiniu.com/docs/v6/api/overview/concepts.html#bucket)。 -* `$accessKey` 和 `$secretKey` 可以在我们的[管理后台](https://portal.qiniu.com/setting/key)找到。 -* 在进行`视频转码`, `压缩文件`等异步操作时 需要使用到的队列名称也可以在我们[管理后台](https://portal.qiniu.com/mps/pipeline)新建。 - diff --git a/vendor/qiniu/php-sdk/examples/cdn_get_bandwidth.php b/vendor/qiniu/php-sdk/examples/cdn_get_bandwidth.php deleted file mode 100644 index 4d2ccf6f6..000000000 --- a/vendor/qiniu/php-sdk/examples/cdn_get_bandwidth.php +++ /dev/null @@ -1,40 +0,0 @@ -getBandwidthData( - $domains, - $startDate, - $endDate, - $granularity -); - -if ($getBandwidthErr != null) { - var_dump($getBandwidthErr); -} else { - echo "get bandwidth data success\n"; - print_r($bandwidthData); -} diff --git a/vendor/qiniu/php-sdk/examples/cdn_get_flux.php b/vendor/qiniu/php-sdk/examples/cdn_get_flux.php deleted file mode 100644 index 56da550a1..000000000 --- a/vendor/qiniu/php-sdk/examples/cdn_get_flux.php +++ /dev/null @@ -1,34 +0,0 @@ -getFluxData($domains, $startDate, $endDate, $granularity); -if ($getFluxErr != null) { - var_dump($getFluxErr); -} else { - echo "get flux data success\n"; - print_r($fluxData); -} diff --git a/vendor/qiniu/php-sdk/examples/cdn_get_log_list.php b/vendor/qiniu/php-sdk/examples/cdn_get_log_list.php deleted file mode 100644 index 4e5c9424f..000000000 --- a/vendor/qiniu/php-sdk/examples/cdn_get_log_list.php +++ /dev/null @@ -1,29 +0,0 @@ -getCdnLogList($domains, $logDate); -if ($getLogErr != null) { - var_dump($getLogErr); -} else { - echo "get cdn log list success\n"; - print_r($logListData); -} diff --git a/vendor/qiniu/php-sdk/examples/cdn_refresh_urls_dirs.php b/vendor/qiniu/php-sdk/examples/cdn_refresh_urls_dirs.php deleted file mode 100644 index c05e75f2f..000000000 --- a/vendor/qiniu/php-sdk/examples/cdn_refresh_urls_dirs.php +++ /dev/null @@ -1,52 +0,0 @@ -refreshUrlsAndDirs($urls, $dirs); -if ($refreshErr != null) { - var_dump($refreshErr); -} else { - echo "refresh request sent\n"; - print_r($refreshResult); -} - -//如果只有刷新链接或者目录的需求,可以分布使用 - -list($refreshResult, $refreshErr) = $cdnManager->refreshUrls($urls); -if ($refreshErr != null) { - var_dump($refreshErr); -} else { - echo "refresh request sent\n"; - print_r($refreshResult); -} - -list($refreshResult, $refreshErr) = $cdnManager->refreshDirs($dirs); -if ($refreshErr != null) { - var_dump($refreshErr); -} else { - echo "refresh request sent\n"; - print_r($refreshResult); -} diff --git a/vendor/qiniu/php-sdk/examples/cdn_timestamp_antileech.php b/vendor/qiniu/php-sdk/examples/cdn_timestamp_antileech.php deleted file mode 100644 index d9fd02346..000000000 --- a/vendor/qiniu/php-sdk/examples/cdn_timestamp_antileech.php +++ /dev/null @@ -1,19 +0,0 @@ - - */ -$thumbLink = $imageUrlBuilder->thumbnail($url, 1, 100, 100); - -// 函数方式调用 也可拼接多个操作参数 图片+水印 -$thumbLink2 = \Qiniu\thumbnail($url2, 1, 100, 100); -var_dump($thumbLink, $thumbLink2); - -/** - * 图片水印 - * - * @param string $url 图片链接 - * @param string $image 水印图片链接 - * @param numeric $dissolve 透明度 [可选] - * @param string $gravity 水印位置 [可选] - * @param numeric $dx 横轴边距 [可选] - * @param numeric $dy 纵轴边距 [可选] - * @param numeric $watermarkScale 自适应原图的短边比例 [可选] - * @link http://developer.qiniu.com/code/v6/api/kodo-api/image/watermark.html - * @return string - * @author Sherlock Ren - */ -$waterLink = $imageUrlBuilder->waterImg($url, $waterImage); -// 函数调用方法 -//$waterLink = \Qiniu\waterImg($url, $waterImage); -var_dump($waterLink); - -/** - * 文字水印 - * - * @param string $url 图片链接 - * @param string $text 文字 - * @param string $font 文字字体 - * @param string $fontSize 文字字号 - * @param string $fontColor 文字颜色 [可选] - * @param numeric $dissolve 透明度 [可选] - * @param string $gravity 水印位置 [可选] - * @param numeric $dx 横轴边距 [可选] - * @param numeric $dy 纵轴边距 [可选] - * @link http://developer.qiniu.com/code/v6/api/kodo-api/image/watermark.html#text-watermark - * @return string - * @author Sherlock Ren - */ -$textLink = $imageUrlBuilder->waterText($url, '你瞅啥', '微软雅黑', 300); -// 函数调用方法 -// $textLink = \Qiniu\waterText($url, '你瞅啥', '微软雅黑', 300); -var_dump($textLink); diff --git a/vendor/qiniu/php-sdk/examples/persistent_fop_init.php b/vendor/qiniu/php-sdk/examples/persistent_fop_init.php deleted file mode 100644 index 2df01e9fe..000000000 --- a/vendor/qiniu/php-sdk/examples/persistent_fop_init.php +++ /dev/null @@ -1,19 +0,0 @@ -execute($bucket, $key, $fops, $pipeline, $notify_url, $force); - -echo "\n====> pfop mkzip result: \n"; -if ($err != null) { - var_dump($err); -} else { - echo "PersistentFop Id: $id\n"; - - $res = "http://api.qiniu.com/status/get/prefop?id=$id"; - echo "Processing result: $res"; -} diff --git a/vendor/qiniu/php-sdk/examples/pfop_vframe.php b/vendor/qiniu/php-sdk/examples/pfop_vframe.php deleted file mode 100644 index e1df2d54d..000000000 --- a/vendor/qiniu/php-sdk/examples/pfop_vframe.php +++ /dev/null @@ -1,46 +0,0 @@ -useHTTPS = true; -$pfop = new PersistentFop($auth, $config); - -//要进行视频截图操作 -$fops = "vframe/jpg/offset/1/w/480/h/360/rotate/90|saveas/" . - \Qiniu\base64_urlSafeEncode($bucket . ":qiniu_480x360.jpg"); - -list($id, $err) = $pfop->execute($bucket, $key, $fops, $pipeline, $notifyUrl, $force); -echo "\n====> pfop avthumb result: \n"; -if ($err != null) { - var_dump($err); -} else { - echo "PersistentFop Id: $id\n"; -} - -//查询转码的进度和状态 -list($ret, $err) = $pfop->status($id); -echo "\n====> pfop avthumb status: \n"; -if ($err != null) { - var_dump($err); -} else { - var_dump($ret); -} diff --git a/vendor/qiniu/php-sdk/examples/pfop_video_avthumb.php b/vendor/qiniu/php-sdk/examples/pfop_video_avthumb.php deleted file mode 100644 index aebe81545..000000000 --- a/vendor/qiniu/php-sdk/examples/pfop_video_avthumb.php +++ /dev/null @@ -1,47 +0,0 @@ -useHTTPS=true; - -$pfop = new PersistentFop($auth, $config); - -//要进行转码的转码操作。 http://developer.qiniu.com/docs/v6/api/reference/fop/av/avthumb.html -$fops = "avthumb/mp4/s/640x360/vb/1.4m|saveas/" . \Qiniu\base64_urlSafeEncode($bucket . ":qiniu_640x360.mp4"); - -list($id, $err) = $pfop->execute($bucket, $key, $fops, $pipeline, $notifyUrl, $force); -echo "\n====> pfop avthumb result: \n"; -if ($err != null) { - var_dump($err); -} else { - echo "PersistentFop Id: $id\n"; -} - -//查询转码的进度和状态 -list($ret, $err) = $pfop->status($id); -echo "\n====> pfop avthumb status: \n"; -if ($err != null) { - var_dump($err); -} else { - var_dump($ret); -} diff --git a/vendor/qiniu/php-sdk/examples/pfop_watermark.php b/vendor/qiniu/php-sdk/examples/pfop_watermark.php deleted file mode 100644 index 72aa6c443..000000000 --- a/vendor/qiniu/php-sdk/examples/pfop_watermark.php +++ /dev/null @@ -1,52 +0,0 @@ -useHTTPS=true; -$pfop = new PersistentFop($auth, $config); - -//需要添加水印的图片UrlSafeBase64 -//可以参考http://developer.qiniu.com/code/v6/api/dora-api/av/video-watermark.html -$base64URL = Qiniu\base64_urlSafeEncode('http://devtools.qiniu.com/qiniu.png'); - -//水印参数 -$fops = "avthumb/mp4/s/640x360/vb/1.4m/image/" . $base64URL . "|saveas/" - . \Qiniu\base64_urlSafeEncode($bucket . ":qiniu_wm.mp4"); - -list($id, $err) = $pfop->execute($bucket, $key, $fops, $pipeline, $notifyUrl, $force); -echo "\n====> pfop avthumb result: \n"; -if ($err != null) { - var_dump($err); -} else { - echo "PersistentFop Id: $id\n"; -} - -//查询转码的进度和状态 -list($ret, $err) = $pfop->status($id); -echo "\n====> pfop avthumb status: \n"; -if ($err != null) { - var_dump($err); -} else { - var_dump($ret); -} diff --git a/vendor/qiniu/php-sdk/examples/php-logo.png b/vendor/qiniu/php-sdk/examples/php-logo.png deleted file mode 100644 index 77e051fe413b2754bc121876b5f986d028a8449a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 65062 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 NC#5X;17sTf{{R#))Y1R| diff --git a/vendor/qiniu/php-sdk/examples/prefop.php b/vendor/qiniu/php-sdk/examples/prefop.php deleted file mode 100644 index ae61a5f7d..000000000 --- a/vendor/qiniu/php-sdk/examples/prefop.php +++ /dev/null @@ -1,29 +0,0 @@ -status($id); -echo "\n====> pfop avthumb status: \n"; -if ($err != null) { - var_dump($err); -} else { - var_dump($ret); -} diff --git a/vendor/qiniu/php-sdk/examples/qetag.php b/vendor/qiniu/php-sdk/examples/qetag.php deleted file mode 100644 index f6aff8a72..000000000 --- a/vendor/qiniu/php-sdk/examples/qetag.php +++ /dev/null @@ -1,11 +0,0 @@ - 'video/x-mp4', - 'qiniu.png' => 'image/x-png', - 'qiniu.jpg' => 'image/x-jpg' -); - -$ops = $bucketManager->buildBatchChangeMime($bucket, $keyMimePairs); -list($ret, $err) = $bucketManager->batch($ops); -if ($err) { - print_r($err); -} else { - print_r($ret); -} diff --git a/vendor/qiniu/php-sdk/examples/rs_batch_change_type.php b/vendor/qiniu/php-sdk/examples/rs_batch_change_type.php deleted file mode 100644 index 5f3f1cdb0..000000000 --- a/vendor/qiniu/php-sdk/examples/rs_batch_change_type.php +++ /dev/null @@ -1,34 +0,0 @@ -buildBatchChangeType($bucket, $keyTypePairs); -list($ret, $err) = $bucketManager->batch($ops); -if ($err) { - print_r($err); -} else { - print_r($ret); -} diff --git a/vendor/qiniu/php-sdk/examples/rs_batch_copy.php b/vendor/qiniu/php-sdk/examples/rs_batch_copy.php deleted file mode 100644 index 988c642fd..000000000 --- a/vendor/qiniu/php-sdk/examples/rs_batch_copy.php +++ /dev/null @@ -1,36 +0,0 @@ -buildBatchCopy($srcBucket, $keyPairs, $destBucket, true); -list($ret, $err) = $bucketManager->batch($ops); -if ($err) { - print_r($err); -} else { - print_r($ret); -} diff --git a/vendor/qiniu/php-sdk/examples/rs_batch_delete.php b/vendor/qiniu/php-sdk/examples/rs_batch_delete.php deleted file mode 100644 index 4f15586a2..000000000 --- a/vendor/qiniu/php-sdk/examples/rs_batch_delete.php +++ /dev/null @@ -1,28 +0,0 @@ -buildBatchDelete($bucket, $keys); -list($ret, $err) = $bucketManager->batch($ops); -if ($err) { - print_r($err); -} else { - print_r($ret); -} diff --git a/vendor/qiniu/php-sdk/examples/rs_batch_delete_after_days.php b/vendor/qiniu/php-sdk/examples/rs_batch_delete_after_days.php deleted file mode 100644 index dabfe84e4..000000000 --- a/vendor/qiniu/php-sdk/examples/rs_batch_delete_after_days.php +++ /dev/null @@ -1,34 +0,0 @@ -buildBatchDeleteAfterDays($bucket, $keyDayPairs); -list($ret, $err) = $bucketManager->batch($ops); -if ($err) { - print_r($err); -} else { - print_r($ret); -} diff --git a/vendor/qiniu/php-sdk/examples/rs_batch_move.php b/vendor/qiniu/php-sdk/examples/rs_batch_move.php deleted file mode 100644 index 89225221e..000000000 --- a/vendor/qiniu/php-sdk/examples/rs_batch_move.php +++ /dev/null @@ -1,36 +0,0 @@ -buildBatchMove($srcBucket, $keyPairs, $destBucket, true); -list($ret, $err) = $bucketManager->batch($ops); -if ($err) { - print_r($err); -} else { - print_r($ret); -} diff --git a/vendor/qiniu/php-sdk/examples/rs_batch_stat.php b/vendor/qiniu/php-sdk/examples/rs_batch_stat.php deleted file mode 100644 index a95fee7b2..000000000 --- a/vendor/qiniu/php-sdk/examples/rs_batch_stat.php +++ /dev/null @@ -1,28 +0,0 @@ -buildBatchStat($bucket, $keys); -list($ret, $err) = $bucketManager->batch($ops); -if ($err) { - print_r($err); -} else { - print_r($ret); -} diff --git a/vendor/qiniu/php-sdk/examples/rs_bucket_domains.php b/vendor/qiniu/php-sdk/examples/rs_bucket_domains.php deleted file mode 100644 index ea27cdc03..000000000 --- a/vendor/qiniu/php-sdk/examples/rs_bucket_domains.php +++ /dev/null @@ -1,19 +0,0 @@ -domains($bucket); -if ($err) { - print_r($err); -} else { - print_r($domains); -} diff --git a/vendor/qiniu/php-sdk/examples/rs_buckets.php b/vendor/qiniu/php-sdk/examples/rs_buckets.php deleted file mode 100644 index 5fe1304d6..000000000 --- a/vendor/qiniu/php-sdk/examples/rs_buckets.php +++ /dev/null @@ -1,19 +0,0 @@ -buckets(true); -if ($err) { - print_r($err); -} else { - print_r($buckets); -} diff --git a/vendor/qiniu/php-sdk/examples/rs_change_mime.php b/vendor/qiniu/php-sdk/examples/rs_change_mime.php deleted file mode 100644 index 0d3f3ad09..000000000 --- a/vendor/qiniu/php-sdk/examples/rs_change_mime.php +++ /dev/null @@ -1,20 +0,0 @@ -changeMime($bucket, $key, $newMime); -if ($err) { - print_r($err); -} diff --git a/vendor/qiniu/php-sdk/examples/rs_change_type.php b/vendor/qiniu/php-sdk/examples/rs_change_type.php deleted file mode 100644 index acb896351..000000000 --- a/vendor/qiniu/php-sdk/examples/rs_change_type.php +++ /dev/null @@ -1,20 +0,0 @@ -changeType($bucket, $key, $fileType); -if ($err) { - print_r($err); -} diff --git a/vendor/qiniu/php-sdk/examples/rs_copy.php b/vendor/qiniu/php-sdk/examples/rs_copy.php deleted file mode 100644 index 10e7de8e4..000000000 --- a/vendor/qiniu/php-sdk/examples/rs_copy.php +++ /dev/null @@ -1,22 +0,0 @@ -copy($srcBucket, $srcKey, $destBucket, $destKey, true); -if ($err) { - print_r($err); -} diff --git a/vendor/qiniu/php-sdk/examples/rs_delete.php b/vendor/qiniu/php-sdk/examples/rs_delete.php deleted file mode 100644 index 365d3bec1..000000000 --- a/vendor/qiniu/php-sdk/examples/rs_delete.php +++ /dev/null @@ -1,17 +0,0 @@ -delete($bucket, $key); -if ($err) { - print_r($err); -} diff --git a/vendor/qiniu/php-sdk/examples/rs_delete_after_days.php b/vendor/qiniu/php-sdk/examples/rs_delete_after_days.php deleted file mode 100644 index ba0b58697..000000000 --- a/vendor/qiniu/php-sdk/examples/rs_delete_after_days.php +++ /dev/null @@ -1,20 +0,0 @@ -deleteAfterDays($bucket, $key, $days); -if ($err) { - print_r($err); -} diff --git a/vendor/qiniu/php-sdk/examples/rs_download_urls.php b/vendor/qiniu/php-sdk/examples/rs_download_urls.php deleted file mode 100644 index 522b9f2ff..000000000 --- a/vendor/qiniu/php-sdk/examples/rs_download_urls.php +++ /dev/null @@ -1,17 +0,0 @@ -/ -$baseUrl = 'http://if-pri.qiniudn.com/qiniu.png?imageView2/1/h/500'; -// 对链接进行签名 -$signedUrl = $auth->privateDownloadUrl($baseUrl); - -echo $signedUrl; diff --git a/vendor/qiniu/php-sdk/examples/rs_fetch.php b/vendor/qiniu/php-sdk/examples/rs_fetch.php deleted file mode 100644 index 6792410b1..000000000 --- a/vendor/qiniu/php-sdk/examples/rs_fetch.php +++ /dev/null @@ -1,34 +0,0 @@ -fetch($url, $bucket, $key); -echo "=====> fetch $url to bucket: $bucket key: $key\n"; -if ($err !== null) { - var_dump($err); -} else { - print_r($ret); -} - -// 不指定key时,以文件内容的hash作为文件名 -$key = null; -list($ret, $err) = $bucketManager->fetch($url, $bucket, $key); -echo "=====> fetch $url to bucket: $bucket key: $(etag)\n"; -if ($err !== null) { - var_dump($err); -} else { - print_r($ret); -} diff --git a/vendor/qiniu/php-sdk/examples/rs_move.php b/vendor/qiniu/php-sdk/examples/rs_move.php deleted file mode 100644 index 56105857b..000000000 --- a/vendor/qiniu/php-sdk/examples/rs_move.php +++ /dev/null @@ -1,22 +0,0 @@ -move($srcBucket, $srcKey, $destBucket, $destKey, true); -if ($err) { - print_r($err); -} diff --git a/vendor/qiniu/php-sdk/examples/rs_prefetch.php b/vendor/qiniu/php-sdk/examples/rs_prefetch.php deleted file mode 100644 index de947a7e9..000000000 --- a/vendor/qiniu/php-sdk/examples/rs_prefetch.php +++ /dev/null @@ -1,17 +0,0 @@ -prefetch($bucket, $key); -if ($err) { - print_r($err); -} diff --git a/vendor/qiniu/php-sdk/examples/rs_stat.php b/vendor/qiniu/php-sdk/examples/rs_stat.php deleted file mode 100644 index 891e4e027..000000000 --- a/vendor/qiniu/php-sdk/examples/rs_stat.php +++ /dev/null @@ -1,19 +0,0 @@ -stat($bucket, $key); -if ($err) { - print_r($err); -} else { - print_r($fileInfo); -} diff --git a/vendor/qiniu/php-sdk/examples/rsf_list_bucket.php b/vendor/qiniu/php-sdk/examples/rsf_list_bucket.php deleted file mode 100644 index 5ce9a629c..000000000 --- a/vendor/qiniu/php-sdk/examples/rsf_list_bucket.php +++ /dev/null @@ -1,46 +0,0 @@ -listFiles($bucket, $prefix, $marker, $limit, $delimiter); - if ($err !== null) { - echo "\n====> list file err: \n"; - var_dump($err); - } else { - $marker = null; - if (array_key_exists('marker', $ret)) { - $marker = $ret['marker']; - } - echo "Marker: $marker\n"; - echo "\nList Items====>\n"; - //var_dump($ret['items']); - print('items count:' . count($ret['items']) . "\n"); - if (array_key_exists('commonPrefixes', $ret)) { - print_r($ret['commonPrefixes']); - } - } -} while (!empty($marker)); diff --git a/vendor/qiniu/php-sdk/examples/rsf_list_files.php b/vendor/qiniu/php-sdk/examples/rsf_list_files.php deleted file mode 100644 index a3981c548..000000000 --- a/vendor/qiniu/php-sdk/examples/rsf_list_files.php +++ /dev/null @@ -1,38 +0,0 @@ -listFiles($bucket, $prefix, $marker, $limit, $delimiter); -if ($err !== null) { - echo "\n====> list file err: \n"; - var_dump($err); -} else { - if (array_key_exists('marker', $ret)) { - echo "Marker:" . $ret["marker"] . "\n"; - } - echo "\nList Iterms====>\n"; - //var_dump($ret['items']); -} diff --git a/vendor/qiniu/php-sdk/examples/saveas.php b/vendor/qiniu/php-sdk/examples/saveas.php deleted file mode 100644 index d896f3bcd..000000000 --- a/vendor/qiniu/php-sdk/examples/saveas.php +++ /dev/null @@ -1,28 +0,0 @@ -:';//为生成缩略图的文件名 -//生成的值 -$encodedEntryURI = \Qiniu\base64_urlSafeEncode($entry); - -//使用SecretKey对新的下载URL进行HMAC1-SHA1签名 -$newurl = "78re52.com1.z0.glb.clouddn.com/resource/Ship.jpg?imageView2/2/w/200/h/200|saveas/" . $encodedEntryURI; - -$sign = hash_hmac("sha1", $newurl, $secretKey, true); - -//对签名进行URL安全的Base64编码 -$encodedSign = \Qiniu\base64_urlSafeEncode($sign); -//最终得到的完整下载URL -$finalURL = "http://" . $newurl . "/sign/" . $accessKey . ":" . $encodedSign; - -$callbackBody = file_get_contents("$finalURL"); - -echo $callbackBody; diff --git a/vendor/qiniu/php-sdk/examples/upload_and_callback.php b/vendor/qiniu/php-sdk/examples/upload_and_callback.php deleted file mode 100644 index 8782e87d1..000000000 --- a/vendor/qiniu/php-sdk/examples/upload_and_callback.php +++ /dev/null @@ -1,31 +0,0 @@ - 'http://your.domain.com/upload_verify_callback.php', - 'callbackBody' => 'filename=$(fname)&filesize=$(fsize)' -); -$uptoken = $auth->uploadToken($bucket, null, 3600, $policy); - -//上传文件的本地路径 -$filePath = './php-logo.png'; - -$uploadMgr = new UploadManager(); - -list($ret, $err) = $uploadMgr->putFile($uptoken, null, $filePath); -echo "\n====> putFile result: \n"; -if ($err !== null) { - var_dump($err); -} else { - var_dump($ret); -} diff --git a/vendor/qiniu/php-sdk/examples/upload_and_pfop.php b/vendor/qiniu/php-sdk/examples/upload_and_pfop.php deleted file mode 100644 index 898c09c63..000000000 --- a/vendor/qiniu/php-sdk/examples/upload_and_pfop.php +++ /dev/null @@ -1,38 +0,0 @@ - $pfop, - 'persistentNotifyUrl' => $notifyUrl, - 'persistentPipeline' => $pipeline -); -$token = $auth->uploadToken($bucket, null, 3600, $policy); - -list($ret, $err) = $uploadMgr->putFile($token, null, $key); -echo "\n====> putFile result: \n"; -if ($err !== null) { - var_dump($err); -} else { - var_dump($ret); -} diff --git a/vendor/qiniu/php-sdk/examples/upload_mgr_init.php b/vendor/qiniu/php-sdk/examples/upload_mgr_init.php deleted file mode 100644 index 3459ef1d7..000000000 --- a/vendor/qiniu/php-sdk/examples/upload_mgr_init.php +++ /dev/null @@ -1,18 +0,0 @@ -uploadToken($bucket); - -// 构建 UploadManager 对象 -$uploadMgr = new UploadManager(); diff --git a/vendor/qiniu/php-sdk/examples/upload_multi_demos.php b/vendor/qiniu/php-sdk/examples/upload_multi_demos.php deleted file mode 100644 index 3bbcd6030..000000000 --- a/vendor/qiniu/php-sdk/examples/upload_multi_demos.php +++ /dev/null @@ -1,85 +0,0 @@ -uploadToken($bucket); -$uploadMgr = new UploadManager(); - -//----------------------------------------upload demo1 ---------------------------------------- -// 上传字符串到七牛 -list($ret, $err) = $uploadMgr->put($token, null, 'content string'); -echo "\n====> put result: \n"; -if ($err !== null) { - var_dump($err); -} else { - var_dump($ret); -} - - -//----------------------------------------upload demo2 ---------------------------------------- -// 上传文件到七牛 -$filePath = './php-logo.png'; -$key = 'php-logo.png'; -list($ret, $err) = $uploadMgr->putFile($token, $key, $filePath); -echo "\n====> putFile result: \n"; -if ($err !== null) { - var_dump($err); -} else { - var_dump($ret); -} - - -//----------------------------------------upload demo3 ---------------------------------------- -// 上传文件到七牛后, 七牛将文件名和文件大小回调给业务服务器. -// 可参考文档: http://developer.qiniu.com/docs/v6/api/reference/security/put-policy.html -$policy = array( - 'callbackUrl' => 'http://172.30.251.210/upload_verify_callback.php', - 'callbackBody' => 'filename=$(fname)&filesize=$(fsize)' -// 'callbackBodyType' => 'application/json', -// 'callbackBody' => '{"filename":$(fname), "filesize": $(fsize)}' //设置application/json格式回调 -); -$token = $auth->uploadToken($bucket, null, 3600, $policy); - - -list($ret, $err) = $uploadMgr->putFile($token, null, $key); -echo "\n====> putFile result: \n"; -if ($err !== null) { - var_dump($err); -} else { - var_dump($ret); -} - - -//----------------------------------------upload demo4 ---------------------------------------- -//上传视频,上传完成后进行m3u8的转码, 并给视频打水印 -$wmImg = Qiniu\base64_urlSafeEncode('http://devtools.qiniudn.com/qiniu.png'); -$pfop = "avthumb/m3u8/wmImage/$wmImg"; - -//转码完成后回调到业务服务器。(公网可以访问,并相应200 OK) -$notifyUrl = 'http://notify.fake.com'; - -//独立的转码队列:https://portal.qiniu.com/mps/pipeline - - -$policy = array( - 'persistentOps' => $pfop, - 'persistentNotifyUrl' => $notifyUrl, - 'persistentPipeline' => $pipeline -); -$token = $auth->uploadToken($bucket, null, 3600, $policy); -print($token); -list($ret, $err) = $uploadMgr->putFile($token, null, $key); -echo "\n====> putFile result: \n"; -if ($err !== null) { - var_dump($err); -} else { - var_dump($ret); -} diff --git a/vendor/qiniu/php-sdk/examples/upload_simple_file.php b/vendor/qiniu/php-sdk/examples/upload_simple_file.php deleted file mode 100644 index 9d003f0fb..000000000 --- a/vendor/qiniu/php-sdk/examples/upload_simple_file.php +++ /dev/null @@ -1,37 +0,0 @@ -uploadToken($bucket); - -// 要上传文件的本地路径 -$filePath = './php-logo.png'; - -// 上传到七牛后保存的文件名 -$key = 'my-php-logo.png'; - -// 初始化 UploadManager 对象并进行文件的上传。 -$uploadMgr = new UploadManager(); - -// 调用 UploadManager 的 putFile 方法进行文件的上传。 -list($ret, $err) = $uploadMgr->putFile($token, $key, $filePath); -echo "\n====> putFile result: \n"; -if ($err !== null) { - var_dump($err); -} else { - var_dump($ret); -} diff --git a/vendor/qiniu/php-sdk/examples/upload_tokens.php b/vendor/qiniu/php-sdk/examples/upload_tokens.php deleted file mode 100644 index 90f24238b..000000000 --- a/vendor/qiniu/php-sdk/examples/upload_tokens.php +++ /dev/null @@ -1,68 +0,0 @@ -uploadToken($bucket, null, $expires, $policy, true); -print($upToken . "\n"); - -// 自定义凭证有效期(示例2小时) -$expires = 7200; -$upToken = $auth->uploadToken($bucket, null, $expires, $policy, true); -print($upToken . "\n"); - -// 覆盖上传凭证 -$expires = 3600; -$keyToOverwrite = 'qiniu.mp4'; -$upToken = $auth->uploadToken($bucket, $keyToOverwrite, $expires, $policy, true); -print($upToken . "\n"); - -//自定义上传回复(非callback模式)凭证 -$returnBody = '{"key":"$(key)","hash":"$(etag)","fsize":$(fsize),"bucket":"$(bucket)","name":"$(x:name)"}'; -$policy = array( - 'returnBody' => $returnBody -); -$upToken = $auth->uploadToken($bucket, null, $expires, $policy, true); -print($upToken . "\n"); - -//带回调业务服务器的凭证(application/json) -$policy = array( - 'callbackUrl' => 'http://api.example.com/qiniu/upload/callback', - 'callbackBody' => '{"key":"$(key)","hash":"$(etag)","fsize":$(fsize),"bucket":"$(bucket)","name":"$(x:name)"}', - 'callbackBodyType' => 'application/json' -); -$upToken = $auth->uploadToken($bucket, null, $expires, $policy, true); -print($upToken . "\n"); - - -//带回调业务服务器的凭证(application/x-www-form-urlencoded) -$policy = array( - 'callbackUrl' => 'http://api.example.com/qiniu/upload/callback', - 'callbackBody' => 'key=$(key)&hash=$(etag)&bucket=$(bucket)&fsize=$(fsize)&name=$(x:name)' -); -$upToken = $auth->uploadToken($bucket, null, $expires, $policy, true); -print($upToken . "\n"); - -//带数据处理的凭证 -$saveMp4Entry = \Qiniu\base64_urlSafeEncode($bucket . ":avthumb_test_target.mp4"); -$saveJpgEntry = \Qiniu\base64_urlSafeEncode($bucket . ":vframe_test_target.jpg"); -$avthumbMp4Fop = "avthumb/mp4|saveas/" . $saveMp4Entry; -$vframeJpgFop = "vframe/jpg/offset/1|saveas/" . $saveJpgEntry; -$policy = array( - 'persistentOps' => $avthumbMp4Fop . ";" . $vframeJpgFop, - 'persistentPipeline' => "video-pipe", - 'persistentNotifyUrl' => "http://api.example.com/qiniu/pfop/notify", -); -$upToken = $auth->uploadToken($bucket, null, $expires, $policy, true); -print($upToken . "\n"); diff --git a/vendor/qiniu/php-sdk/examples/upload_verify_callback.php b/vendor/qiniu/php-sdk/examples/upload_verify_callback.php deleted file mode 100644 index ffbbc8063..000000000 --- a/vendor/qiniu/php-sdk/examples/upload_verify_callback.php +++ /dev/null @@ -1,32 +0,0 @@ -verifyCallback($contentType, $authorization, $url, $callbackBody); - -if ($isQiniuCallback) { - $resp = array('ret' => 'success'); -} else { - $resp = array('ret' => 'failed'); -} - -echo json_encode($resp); diff --git a/vendor/qiniu/php-sdk/phpunit.xml.dist b/vendor/qiniu/php-sdk/phpunit.xml.dist deleted file mode 100644 index 72ff67f97..000000000 --- a/vendor/qiniu/php-sdk/phpunit.xml.dist +++ /dev/null @@ -1,19 +0,0 @@ - - - - - tests - - - - diff --git a/vendor/qiniu/php-sdk/src/Qiniu/Auth.php b/vendor/qiniu/php-sdk/src/Qiniu/Auth.php deleted file mode 100644 index b5e4a6bcf..000000000 --- a/vendor/qiniu/php-sdk/src/Qiniu/Auth.php +++ /dev/null @@ -1,187 +0,0 @@ -accessKey = $accessKey; - $this->secretKey = $secretKey; - } - - public function getAccessKey() - { - return $this->accessKey; - } - - public function sign($data) - { - $hmac = hash_hmac('sha1', $data, $this->secretKey, true); - return $this->accessKey . ':' . \Qiniu\base64_urlSafeEncode($hmac); - } - - public function signWithData($data) - { - $encodedData = \Qiniu\base64_urlSafeEncode($data); - return $this->sign($encodedData) . ':' . $encodedData; - } - - public function signRequest($urlString, $body, $contentType = null) - { - $url = parse_url($urlString); - $data = ''; - if (array_key_exists('path', $url)) { - $data = $url['path']; - } - if (array_key_exists('query', $url)) { - $data .= '?' . $url['query']; - } - $data .= "\n"; - - if ($body !== null && $contentType === 'application/x-www-form-urlencoded') { - $data .= $body; - } - return $this->sign($data); - } - - public function verifyCallback($contentType, $originAuthorization, $url, $body) - { - $authorization = 'QBox ' . $this->signRequest($url, $body, $contentType); - return $originAuthorization === $authorization; - } - - public function privateDownloadUrl($baseUrl, $expires = 3600) - { - $deadline = time() + $expires; - - $pos = strpos($baseUrl, '?'); - if ($pos !== false) { - $baseUrl .= '&e='; - } else { - $baseUrl .= '?e='; - } - $baseUrl .= $deadline; - - $token = $this->sign($baseUrl); - return "$baseUrl&token=$token"; - } - - public function uploadToken($bucket, $key = null, $expires = 3600, $policy = null, $strictPolicy = true) - { - $deadline = time() + $expires; - $scope = $bucket; - if ($key !== null) { - $scope .= ':' . $key; - } - - $args = self::copyPolicy($args, $policy, $strictPolicy); - $args['scope'] = $scope; - $args['deadline'] = $deadline; - - $b = json_encode($args); - return $this->signWithData($b); - } - - /** - *上传策略,参数规格详见 - *http://developer.qiniu.com/docs/v6/api/reference/security/put-policy.html - */ - private static $policyFields = array( - 'callbackUrl', - 'callbackBody', - 'callbackHost', - 'callbackBodyType', - 'callbackFetchKey', - - 'returnUrl', - 'returnBody', - - 'endUser', - 'saveKey', - 'insertOnly', - - 'detectMime', - 'mimeLimit', - 'fsizeMin', - 'fsizeLimit', - - 'persistentOps', - 'persistentNotifyUrl', - 'persistentPipeline', - - 'deleteAfterDays', - 'fileType', - 'isPrefixalScope', - ); - - private static function copyPolicy(&$policy, $originPolicy, $strictPolicy) - { - if ($originPolicy === null) { - return array(); - } - foreach ($originPolicy as $key => $value) { - if (!$strictPolicy || in_array((string)$key, self::$policyFields, true)) { - $policy[$key] = $value; - } - } - return $policy; - } - - public function authorization($url, $body = null, $contentType = null) - { - $authorization = 'QBox ' . $this->signRequest($url, $body, $contentType); - return array('Authorization' => $authorization); - } - - public function authorizationV2($url, $method, $body = null, $contentType = null) - { - $urlItems = parse_url($url); - $host = $urlItems['host']; - - if (isset($urlItems['port'])) { - $port = $urlItems['port']; - } else { - $port = ''; - } - - $path = $urlItems['path']; - if (isset($urlItems['query'])) { - $query = $urlItems['query']; - } else { - $query = ''; - } - - //write request uri - $toSignStr = $method . ' ' . $path; - if (!empty($query)) { - $toSignStr .= '?' . $query; - } - - //write host and port - $toSignStr .= "\nHost: " . $host; - if (!empty($port)) { - $toSignStr .= ":" . $port; - } - - //write content type - if (!empty($contentType)) { - $toSignStr .= "\nContent-Type: " . $contentType; - } - - $toSignStr .= "\n\n"; - - //write body - if (!empty($body)) { - $toSignStr .= $body; - } - - $sign = $this->sign($toSignStr); - $auth = 'Qiniu ' . $sign; - return array('Authorization' => $auth); - } -} diff --git a/vendor/qiniu/php-sdk/src/Qiniu/Cdn/CdnManager.php b/vendor/qiniu/php-sdk/src/Qiniu/Cdn/CdnManager.php deleted file mode 100644 index a460ec2df..000000000 --- a/vendor/qiniu/php-sdk/src/Qiniu/Cdn/CdnManager.php +++ /dev/null @@ -1,190 +0,0 @@ -auth = $auth; - $this->server = 'http://fusion.qiniuapi.com'; - } - - /** - * @param array $urls 待刷新的文件链接数组 - * @return array - */ - public function refreshUrls(array $urls) - { - return $this->refreshUrlsAndDirs($urls, array()); - } - - /** - * @param array $dirs 待刷新的文件链接数组 - * @return array - * 目前客户默认没有目录刷新权限,刷新会有400038报错,参考:https://developer.qiniu.com/fusion/api/1229/cache-refresh - * 需要刷新目录请工单联系技术支持 https://support.qiniu.com/tickets/category - */ - public function refreshDirs(array $dirs) - { - return $this->refreshUrlsAndDirs(array(), $dirs); - } - - /** - * @param array $urls 待刷新的文件链接数组 - * @param array $dirs 待刷新的目录链接数组 - * - * @return array 刷新的请求回复和错误,参考 examples/cdn_manager.php 代码 - * @link http://developer.qiniu.com/article/fusion/api/refresh.html - * - * 目前客户默认没有目录刷新权限,刷新会有400038报错,参考:https://developer.qiniu.com/fusion/api/1229/cache-refresh - * 需要刷新目录请工单联系技术支持 https://support.qiniu.com/tickets/category - */ - public function refreshUrlsAndDirs(array $urls, array $dirs) - { - $req = array(); - if (!empty($urls)) { - $req['urls'] = $urls; - } - if (!empty($dirs)) { - $req['dirs'] = $dirs; - } - - $url = $this->server . '/v2/tune/refresh'; - $body = json_encode($req); - return $this->post($url, $body); - } - - /** - * @param array $urls 待预取的文件链接数组 - * - * @return array 预取的请求回复和错误,参考 examples/cdn_manager.php 代码 - * - * @link http://developer.qiniu.com/article/fusion/api/refresh.html - */ - public function prefetchUrls(array $urls) - { - $req = array( - 'urls' => $urls, - ); - - $url = $this->server . '/v2/tune/prefetch'; - $body = json_encode($req); - return $this->post($url, $body); - } - - /** - * @param array $domains 待获取带宽数据的域名数组 - * @param string $startDate 开始的日期,格式类似 2017-01-01 - * @param string $endDate 结束的日期,格式类似 2017-01-01 - * @param string $granularity 获取数据的时间间隔,可以是 5min, hour 或者 day - * - * @return array 带宽数据和错误信息,参考 examples/cdn_manager.php 代码 - * - * @link http://developer.qiniu.com/article/fusion/api/traffic-bandwidth.html - */ - public function getBandwidthData(array $domains, $startDate, $endDate, $granularity) - { - $req = array(); - $req['domains'] = implode(';', $domains); - $req['startDate'] = $startDate; - $req['endDate'] = $endDate; - $req['granularity'] = $granularity; - - $url = $this->server . '/v2/tune/bandwidth'; - $body = json_encode($req); - return $this->post($url, $body); - } - - /** - * @param array $domains 待获取流量数据的域名数组 - * @param string $startDate 开始的日期,格式类似 2017-01-01 - * @param string $endDate 结束的日期,格式类似 2017-01-01 - * @param string $granularity 获取数据的时间间隔,可以是 5min, hour 或者 day - * - * @return array 流量数据和错误信息,参考 examples/cdn_manager.php 代码 - * - * @link http://developer.qiniu.com/article/fusion/api/traffic-bandwidth.html - */ - public function getFluxData(array $domains, $startDate, $endDate, $granularity) - { - $req = array(); - $req['domains'] = implode(';', $domains); - $req['startDate'] = $startDate; - $req['endDate'] = $endDate; - $req['granularity'] = $granularity; - - $url = $this->server . '/v2/tune/flux'; - $body = json_encode($req); - return $this->post($url, $body); - } - - /** - * @param array $domains 待获取日志下载链接的域名数组 - * @param string $logDate 获取指定日期的日志下载链接,格式类似 2017-01-01 - * - * @return array 日志下载链接数据和错误信息,参考 examples/cdn_manager.php 代码 - * - * @link http://developer.qiniu.com/article/fusion/api/log.html - */ - public function getCdnLogList(array $domains, $logDate) - { - $req = array(); - $req['domains'] = implode(';', $domains); - $req['day'] = $logDate; - - $url = $this->server . '/v2/tune/log/list'; - $body = json_encode($req); - return $this->post($url, $body); - } - - private function post($url, $body) - { - $headers = $this->auth->authorization($url, $body, 'application/json'); - $headers['Content-Type'] = 'application/json'; - $ret = Client::post($url, $body, $headers); - if (!$ret->ok()) { - return array(null, new Error($url, $ret)); - } - $r = ($ret->body === null) ? array() : $ret->json(); - return array($r, null); - } - - /** - * 构建时间戳防盗链鉴权的访问外链 - * - * @param string $rawUrl 需要签名的资源url - * @param string $encryptKey 时间戳防盗链密钥 - * @param string $durationInSeconds 链接的有效期(以秒为单位) - * - * @return string 带鉴权信息的资源外链,参考 examples/cdn_timestamp_antileech.php 代码 - */ - public static function createTimestampAntiLeechUrl($rawUrl, $encryptKey, $durationInSeconds) - { - - $parsedUrl = parse_url($rawUrl); - - $deadline = time() + $durationInSeconds; - $expireHex = dechex($deadline); - $path = isset($parsedUrl['path']) ? $parsedUrl['path'] : ''; - - $strToSign = $encryptKey . $path . $expireHex; - $signStr = md5($strToSign); - - if (isset($parsedUrl['query'])) { - $signedUrl = $rawUrl . '&sign=' . $signStr . '&t=' . $expireHex; - } else { - $signedUrl = $rawUrl . '?sign=' . $signStr . '&t=' . $expireHex; - } - - return $signedUrl; - } -} diff --git a/vendor/qiniu/php-sdk/src/Qiniu/Config.php b/vendor/qiniu/php-sdk/src/Qiniu/Config.php deleted file mode 100644 index 296caa9cd..000000000 --- a/vendor/qiniu/php-sdk/src/Qiniu/Config.php +++ /dev/null @@ -1,134 +0,0 @@ -zone = $z; - $this->useHTTPS = false; - $this->useCdnDomains = false; - $this->zoneCache = array(); - } - - public function getUpHost($accessKey, $bucket) - { - $zone = $this->getZone($accessKey, $bucket); - if ($this->useHTTPS === true) { - $scheme = "https://"; - } else { - $scheme = "http://"; - } - - $host = $zone->srcUpHosts[0]; - if ($this->useCdnDomains === true) { - $host = $zone->cdnUpHosts[0]; - } - - return $scheme . $host; - } - - public function getUpBackupHost($accessKey, $bucket) - { - $zone = $this->getZone($accessKey, $bucket); - if ($this->useHTTPS === true) { - $scheme = "https://"; - } else { - $scheme = "http://"; - } - - $host = $zone->cdnUpHosts[0]; - if ($this->useCdnDomains === true) { - $host = $zone->srcUpHosts[0]; - } - - return $scheme . $host; - } - - public function getRsHost($accessKey, $bucket) - { - $zone = $this->getZone($accessKey, $bucket); - - if ($this->useHTTPS === true) { - $scheme = "https://"; - } else { - $scheme = "http://"; - } - - return $scheme . $zone->rsHost; - } - - public function getRsfHost($accessKey, $bucket) - { - $zone = $this->getZone($accessKey, $bucket); - - if ($this->useHTTPS === true) { - $scheme = "https://"; - } else { - $scheme = "http://"; - } - - return $scheme . $zone->rsfHost; - } - - public function getIovipHost($accessKey, $bucket) - { - $zone = $this->getZone($accessKey, $bucket); - - if ($this->useHTTPS === true) { - $scheme = "https://"; - } else { - $scheme = "http://"; - } - - return $scheme . $zone->iovipHost; - } - - public function getApiHost($accessKey, $bucket) - { - $zone = $this->getZone($accessKey, $bucket); - - if ($this->useHTTPS === true) { - $scheme = "https://"; - } else { - $scheme = "http://"; - } - - return $scheme . $zone->apiHost; - } - - private function getZone($accessKey, $bucket) - { - $cacheId = "$accessKey:$bucket"; - - if (isset($this->zoneCache[$cacheId])) { - $zone = $this->zoneCache[$cacheId]; - } elseif (isset($this->zone)) { - $zone = $this->zone; - $this->zoneCache[$cacheId] = $zone; - } else { - $zone = Zone::queryZone($accessKey, $bucket); - $this->zoneCache[$cacheId] = $zone; - } - return $zone; - } -} diff --git a/vendor/qiniu/php-sdk/src/Qiniu/Etag.php b/vendor/qiniu/php-sdk/src/Qiniu/Etag.php deleted file mode 100644 index d7be0644a..000000000 --- a/vendor/qiniu/php-sdk/src/Qiniu/Etag.php +++ /dev/null @@ -1,76 +0,0 @@ - $val) { - array_push($data, '--' . $mimeBoundary); - array_push($data, "Content-Disposition: form-data; name=\"$key\""); - array_push($data, ''); - array_push($data, $val); - } - - array_push($data, '--' . $mimeBoundary); - $finalMimeType = empty($mimeType) ? 'application/octet-stream' : $mimeType; - $finalFileName = self::escapeQuotes($fileName); - array_push($data, "Content-Disposition: form-data; name=\"$name\"; filename=\"$finalFileName\""); - array_push($data, "Content-Type: $finalMimeType"); - array_push($data, ''); - array_push($data, $fileBody); - - array_push($data, '--' . $mimeBoundary . '--'); - array_push($data, ''); - - $body = implode("\r\n", $data); - $contentType = 'multipart/form-data; boundary=' . $mimeBoundary; - $headers['Content-Type'] = $contentType; - $request = new Request('POST', $url, $headers, $body); - return self::sendRequest($request); - } - - private static function userAgent() - { - $sdkInfo = "QiniuPHP/" . Config::SDK_VER; - - $systemInfo = php_uname("s"); - $machineInfo = php_uname("m"); - - $envInfo = "($systemInfo/$machineInfo)"; - - $phpVer = phpversion(); - - $ua = "$sdkInfo $envInfo PHP/$phpVer"; - return $ua; - } - - public static function sendRequest($request) - { - $t1 = microtime(true); - $ch = curl_init(); - $options = array( - CURLOPT_USERAGENT => self::userAgent(), - CURLOPT_RETURNTRANSFER => true, - CURLOPT_SSL_VERIFYPEER => false, - CURLOPT_SSL_VERIFYHOST => false, - CURLOPT_HEADER => true, - CURLOPT_NOBODY => false, - CURLOPT_CUSTOMREQUEST => $request->method, - CURLOPT_URL => $request->url, - ); - - // Handle open_basedir & safe mode - if (!ini_get('safe_mode') && !ini_get('open_basedir')) { - $options[CURLOPT_FOLLOWLOCATION] = true; - } - - if (!empty($request->headers)) { - $headers = array(); - foreach ($request->headers as $key => $val) { - array_push($headers, "$key: $val"); - } - $options[CURLOPT_HTTPHEADER] = $headers; - } - curl_setopt($ch, CURLOPT_HTTPHEADER, array('Expect:')); - - if (!empty($request->body)) { - $options[CURLOPT_POSTFIELDS] = $request->body; - } - curl_setopt_array($ch, $options); - $result = curl_exec($ch); - $t2 = microtime(true); - $duration = round($t2 - $t1, 3); - $ret = curl_errno($ch); - if ($ret !== 0) { - $r = new Response(-1, $duration, array(), null, curl_error($ch)); - curl_close($ch); - return $r; - } - $code = curl_getinfo($ch, CURLINFO_HTTP_CODE); - $header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE); - $headers = self::parseHeaders(substr($result, 0, $header_size)); - $body = substr($result, $header_size); - curl_close($ch); - return new Response($code, $duration, $headers, $body, null); - } - - private static function parseHeaders($raw) - { - $headers = array(); - $headerLines = explode("\r\n", $raw); - foreach ($headerLines as $line) { - $headerLine = trim($line); - $kv = explode(':', $headerLine); - if (count($kv) > 1) { - $kv[0] = ucwords($kv[0], '-'); - $headers[$kv[0]] = trim($kv[1]); - } - } - return $headers; - } - - private static function escapeQuotes($str) - { - $find = array("\\", "\""); - $replace = array("\\\\", "\\\""); - return str_replace($find, $replace, $str); - } -} diff --git a/vendor/qiniu/php-sdk/src/Qiniu/Http/Error.php b/vendor/qiniu/php-sdk/src/Qiniu/Http/Error.php deleted file mode 100644 index 73477cf40..000000000 --- a/vendor/qiniu/php-sdk/src/Qiniu/Http/Error.php +++ /dev/null @@ -1,35 +0,0 @@ - - * {"error" : "detailed error message"} - * - */ -final class Error -{ - private $url; - private $response; - - public function __construct($url, $response) - { - $this->url = $url; - $this->response = $response; - } - - public function code() - { - return $this->response->statusCode; - } - - public function getResponse() - { - return $this->response; - } - - public function message() - { - return $this->response->error; - } -} diff --git a/vendor/qiniu/php-sdk/src/Qiniu/Http/Request.php b/vendor/qiniu/php-sdk/src/Qiniu/Http/Request.php deleted file mode 100644 index 43b0bfdb2..000000000 --- a/vendor/qiniu/php-sdk/src/Qiniu/Http/Request.php +++ /dev/null @@ -1,18 +0,0 @@ -method = strtoupper($method); - $this->url = $url; - $this->headers = $headers; - $this->body = $body; - } -} diff --git a/vendor/qiniu/php-sdk/src/Qiniu/Http/Response.php b/vendor/qiniu/php-sdk/src/Qiniu/Http/Response.php deleted file mode 100644 index f22ab371e..000000000 --- a/vendor/qiniu/php-sdk/src/Qiniu/Http/Response.php +++ /dev/null @@ -1,176 +0,0 @@ - 'Continue', - 101 => 'Switching Protocols', - 102 => 'Processing', - 200 => 'OK', - 201 => 'Created', - 202 => 'Accepted', - 203 => 'Non-Authoritative Information', - 204 => 'No Content', - 205 => 'Reset Content', - 206 => 'Partial Content', - 207 => 'Multi-Status', - 208 => 'Already Reported', - 226 => 'IM Used', - 300 => 'Multiple Choices', - 301 => 'Moved Permanently', - 302 => 'Found', - 303 => 'See Other', - 304 => 'Not Modified', - 305 => 'Use Proxy', - 307 => 'Temporary Redirect', - 308 => 'Permanent Redirect', - 400 => 'Bad Request', - 401 => 'Unauthorized', - 402 => 'Payment Required', - 403 => 'Forbidden', - 404 => 'Not Found', - 405 => 'Method Not Allowed', - 406 => 'Not Acceptable', - 407 => 'Proxy Authentication Required', - 408 => 'Request Timeout', - 409 => 'Conflict', - 410 => 'Gone', - 411 => 'Length Required', - 412 => 'Precondition Failed', - 413 => 'Request Entity Too Large', - 414 => 'Request-URI Too Long', - 415 => 'Unsupported Media Type', - 416 => 'Requested Range Not Satisfiable', - 417 => 'Expectation Failed', - 422 => 'Unprocessable Entity', - 423 => 'Locked', - 424 => 'Failed Dependency', - 425 => 'Reserved for WebDAV advanced collections expired proposal', - 426 => 'Upgrade required', - 428 => 'Precondition Required', - 429 => 'Too Many Requests', - 431 => 'Request Header Fields Too Large', - 500 => 'Internal Server Error', - 501 => 'Not Implemented', - 502 => 'Bad Gateway', - 503 => 'Service Unavailable', - 504 => 'Gateway Timeout', - 505 => 'HTTP Version Not Supported', - 506 => 'Variant Also Negotiates (Experimental)', - 507 => 'Insufficient Storage', - 508 => 'Loop Detected', - 510 => 'Not Extended', - 511 => 'Network Authentication Required', - ); - - /** - * @param int $code 状态码 - * @param double $duration 请求时长 - * @param array $headers 响应头部 - * @param string $body 响应内容 - * @param string $error 错误描述 - */ - public function __construct($code, $duration, array $headers = array(), $body = null, $error = null) - { - $this->statusCode = $code; - $this->duration = $duration; - $this->headers = $headers; - $this->body = $body; - $this->error = $error; - $this->jsonData = null; - if ($error !== null) { - return; - } - - if ($body === null) { - if ($code >= 400) { - $this->error = self::$statusTexts[$code]; - } - return; - } - if (self::isJson($headers)) { - try { - $jsonData = self::bodyJson($body); - if ($code >= 400) { - $this->error = $body; - if ($jsonData['error'] !== null) { - $this->error = $jsonData['error']; - } - } - $this->jsonData = $jsonData; - } catch (\InvalidArgumentException $e) { - $this->error = $body; - if ($code >= 200 && $code < 300) { - $this->error = $e->getMessage(); - } - } - } elseif ($code >= 400) { - $this->error = $body; - } - return; - } - - public function json() - { - return $this->jsonData; - } - - private static function bodyJson($body) - { - return \Qiniu\json_decode((string) $body, true, 512); - } - - public function xVia() - { - $via = $this->headers['X-Via']; - if ($via === null) { - $via = $this->headers['X-Px']; - } - if ($via === null) { - $via = $this->headers['Fw-Via']; - } - return $via; - } - - public function xLog() - { - return $this->headers['X-Log']; - } - - public function xReqId() - { - return $this->headers['X-Reqid']; - } - - public function ok() - { - return $this->statusCode >= 200 && $this->statusCode < 300 && $this->error === null; - } - - public function needRetry() - { - $code = $this->statusCode; - if ($code < 0 || ($code / 100 === 5 and $code !== 579) || $code === 996) { - return true; - } - } - - private static function isJson($headers) - { - return array_key_exists('Content-Type', $headers) && - strpos($headers['Content-Type'], 'application/json') === 0; - } -} diff --git a/vendor/qiniu/php-sdk/src/Qiniu/Processing/ImageUrlBuilder.php b/vendor/qiniu/php-sdk/src/Qiniu/Processing/ImageUrlBuilder.php deleted file mode 100644 index 1ac5bf717..000000000 --- a/vendor/qiniu/php-sdk/src/Qiniu/Processing/ImageUrlBuilder.php +++ /dev/null @@ -1,282 +0,0 @@ - - */ - public function thumbnail( - $url, - $mode, - $width, - $height, - $format = null, - $interlace = null, - $quality = null, - $ignoreError = 1 - ) { - - // url合法效验 - if (!$this->isUrl($url)) { - return $url; - } - - // 参数合法性效验 - if (!in_array(intval($mode), $this->modeArr, true)) { - return $url; - } - - if (!$width || !$height) { - return $url; - } - - $thumbStr = 'imageView2/' . $mode . '/w/' . $width . '/h/' . $height . '/'; - - // 拼接输出格式 - if (!is_null($format) - && in_array($format, $this->formatArr) - ) { - $thumbStr .= 'format/' . $format . '/'; - } - - // 拼接渐进显示 - if (!is_null($interlace) - && in_array(intval($interlace), array(0, 1), true) - ) { - $thumbStr .= 'interlace/' . $interlace . '/'; - } - - // 拼接图片质量 - if (!is_null($quality) - && intval($quality) >= 0 - && intval($quality) <= 100 - ) { - $thumbStr .= 'q/' . $quality . '/'; - } - - $thumbStr .= 'ignore-error/' . $ignoreError . '/'; - - // 如果有query_string用|线分割实现多参数 - return $url . ($this->hasQuery($url) ? '|' : '?') . $thumbStr; - } - - /** - * 图片水印 - * - * @param string $url 图片链接 - * @param string $image 水印图片链接 - * @param numeric $dissolve 透明度 - * @param string $gravity 水印位置 - * @param numeric $dx 横轴边距 - * @param numeric $dy 纵轴边距 - * @param numeric $watermarkScale 自适应原图的短边比例 - * @link http://developer.qiniu.com/code/v6/api/kodo-api/image/watermark.html - * @return string - * @author Sherlock Ren - */ - public function waterImg( - $url, - $image, - $dissolve = 100, - $gravity = 'SouthEast', - $dx = null, - $dy = null, - $watermarkScale = null - ) { - // url合法效验 - if (!$this->isUrl($url)) { - return $url; - } - - $waterStr = 'watermark/1/image/' . \Qiniu\base64_urlSafeEncode($image) . '/'; - - // 拼接水印透明度 - if (is_numeric($dissolve) - && $dissolve <= 100 - ) { - $waterStr .= 'dissolve/' . $dissolve . '/'; - } - - // 拼接水印位置 - if (in_array($gravity, $this->gravityArr, true)) { - $waterStr .= 'gravity/' . $gravity . '/'; - } - - // 拼接横轴边距 - if (!is_null($dx) - && is_numeric($dx) - ) { - $waterStr .= 'dx/' . $dx . '/'; - } - - // 拼接纵轴边距 - if (!is_null($dy) - && is_numeric($dy) - ) { - $waterStr .= 'dy/' . $dy . '/'; - } - - // 拼接自适应原图的短边比例 - if (!is_null($watermarkScale) - && is_numeric($watermarkScale) - && $watermarkScale > 0 - && $watermarkScale < 1 - ) { - $waterStr .= 'ws/' . $watermarkScale . '/'; - } - - // 如果有query_string用|线分割实现多参数 - return $url . ($this->hasQuery($url) ? '|' : '?') . $waterStr; - } - - /** - * 文字水印 - * - * @param string $url 图片链接 - * @param string $text 文字 - * @param string $font 文字字体 - * @param string $fontSize 文字字号 - * @param string $fontColor 文字颜色 - * @param numeric $dissolve 透明度 - * @param string $gravity 水印位置 - * @param numeric $dx 横轴边距 - * @param numeric $dy 纵轴边距 - * @link http://developer.qiniu.com/code/v6/api/kodo-api/image/watermark.html#text-watermark - * @return string - * @author Sherlock Ren - */ - public function waterText( - $url, - $text, - $font = '黑体', - $fontSize = 0, - $fontColor = null, - $dissolve = 100, - $gravity = 'SouthEast', - $dx = null, - $dy = null - ) { - // url合法效验 - if (!$this->isUrl($url)) { - return $url; - } - - $waterStr = 'watermark/2/text/' - . \Qiniu\base64_urlSafeEncode($text) . '/font/' - . \Qiniu\base64_urlSafeEncode($font) . '/'; - - // 拼接文字大小 - if (is_int($fontSize)) { - $waterStr .= 'fontsize/' . $fontSize . '/'; - } - - // 拼接文字颜色 - if (!is_null($fontColor) - && $fontColor - ) { - $waterStr .= 'fill/' . \Qiniu\base64_urlSafeEncode($fontColor) . '/'; - } - - // 拼接水印透明度 - if (is_numeric($dissolve) - && $dissolve <= 100 - ) { - $waterStr .= 'dissolve/' . $dissolve . '/'; - } - - // 拼接水印位置 - if (in_array($gravity, $this->gravityArr, true)) { - $waterStr .= 'gravity/' . $gravity . '/'; - } - - // 拼接横轴边距 - if (!is_null($dx) - && is_numeric($dx) - ) { - $waterStr .= 'dx/' . $dx . '/'; - } - - // 拼接纵轴边距 - if (!is_null($dy) - && is_numeric($dy) - ) { - $waterStr .= 'dy/' . $dy . '/'; - } - - // 如果有query_string用|线分割实现多参数 - return $url . ($this->hasQuery($url) ? '|' : '?') . $waterStr; - } - - /** - * 效验url合法性 - * - * @param string $url url链接 - * @return string - * @author Sherlock Ren - */ - protected function isUrl($url) - { - $urlArr = parse_url($url); - - return $urlArr['scheme'] - && in_array($urlArr['scheme'], array('http', 'https')) - && $urlArr['host'] - && $urlArr['path']; - } - - /** - * 检测是否有query - * - * @param string $url url链接 - * @return string - * @author Sherlock Ren - */ - protected function hasQuery($url) - { - $urlArr = parse_url($url); - - return !empty($urlArr['query']); - } -} diff --git a/vendor/qiniu/php-sdk/src/Qiniu/Processing/Operation.php b/vendor/qiniu/php-sdk/src/Qiniu/Processing/Operation.php deleted file mode 100644 index 919136fc5..000000000 --- a/vendor/qiniu/php-sdk/src/Qiniu/Processing/Operation.php +++ /dev/null @@ -1,60 +0,0 @@ -auth = $auth; - $this->domain = $domain; - $this->token_expire = $token_expire; - } - - - /** - * 对资源文件进行处理 - * - * @param $key 待处理的资源文件名 - * @param $fops string|array fop操作,多次fop操作以array的形式传入。 - * eg. imageView2/1/w/200/h/200, imageMogr2/thumbnail/!75px - * - * @return array 文件处理后的结果及错误。 - * - * @link http://developer.qiniu.com/docs/v6/api/reference/fop/ - */ - public function execute($key, $fops) - { - $url = $this->buildUrl($key, $fops); - $resp = Client::get($url); - if (!$resp->ok()) { - return array(null, new Error($url, $resp)); - } - if ($resp->json() !== null) { - return array($resp->json(), null); - } - return array($resp->body, null); - } - - public function buildUrl($key, $fops, $protocol = 'http') - { - if (is_array($fops)) { - $fops = implode('|', $fops); - } - - $url = $protocol . "://$this->domain/$key?$fops"; - if ($this->auth !== null) { - $url = $this->auth->privateDownloadUrl($url, $this->token_expire); - } - - return $url; - } -} diff --git a/vendor/qiniu/php-sdk/src/Qiniu/Processing/PersistentFop.php b/vendor/qiniu/php-sdk/src/Qiniu/Processing/PersistentFop.php deleted file mode 100644 index 24e7b734a..000000000 --- a/vendor/qiniu/php-sdk/src/Qiniu/Processing/PersistentFop.php +++ /dev/null @@ -1,94 +0,0 @@ -auth = $auth; - if ($config == null) { - $this->config = new Config(); - } else { - $this->config = $config; - } - } - - /** - * 对资源文件进行异步持久化处理 - * @param $bucket 资源所在空间 - * @param $key 待处理的源文件 - * @param $fops string|array 待处理的pfop操作,多个pfop操作以array的形式传入。 - * eg. avthumb/mp3/ab/192k, vframe/jpg/offset/7/w/480/h/360 - * @param $pipeline 资源处理队列 - * @param $notify_url 处理结果通知地址 - * @param $force 是否强制执行一次新的指令 - * - * - * @return array 返回持久化处理的persistentId, 和返回的错误。 - * - * @link http://developer.qiniu.com/docs/v6/api/reference/fop/ - */ - public function execute($bucket, $key, $fops, $pipeline = null, $notify_url = null, $force = false) - { - if (is_array($fops)) { - $fops = implode(';', $fops); - } - $params = array('bucket' => $bucket, 'key' => $key, 'fops' => $fops); - \Qiniu\setWithoutEmpty($params, 'pipeline', $pipeline); - \Qiniu\setWithoutEmpty($params, 'notifyURL', $notify_url); - if ($force) { - $params['force'] = 1; - } - $data = http_build_query($params); - $scheme = "http://"; - if ($this->config->useHTTPS === true) { - $scheme = "https://"; - } - $url = $scheme . Config::API_HOST . '/pfop/'; - $headers = $this->auth->authorization($url, $data, 'application/x-www-form-urlencoded'); - $headers['Content-Type'] = 'application/x-www-form-urlencoded'; - $response = Client::post($url, $data, $headers); - if (!$response->ok()) { - return array(null, new Error($url, $response)); - } - $r = $response->json(); - $id = $r['persistentId']; - return array($id, null); - } - - public function status($id) - { - $scheme = "http://"; - - if ($this->config->useHTTPS === true) { - $scheme = "https://"; - } - $url = $scheme . Config::API_HOST . "/status/get/prefop?id=$id"; - $response = Client::get($url); - if (!$response->ok()) { - return array(null, new Error($url, $response)); - } - return array($response->json(), null); - } -} diff --git a/vendor/qiniu/php-sdk/src/Qiniu/Storage/BucketManager.php b/vendor/qiniu/php-sdk/src/Qiniu/Storage/BucketManager.php deleted file mode 100644 index d5269f381..000000000 --- a/vendor/qiniu/php-sdk/src/Qiniu/Storage/BucketManager.php +++ /dev/null @@ -1,475 +0,0 @@ -auth = $auth; - if ($config == null) { - $this->config = new Config(); - } else { - $this->config = $config; - } - } - - /** - * 获取指定账号下所有的空间名。 - * - * @return string[] 包含所有空间名 - */ - public function buckets($shared = true) - { - $includeShared = "false"; - if ($shared === true) { - $includeShared = "true"; - } - return $this->rsGet('/buckets?shared=' . $includeShared); - } - - /** - * 获取指定空间绑定的所有的域名 - * - * @return string[] 包含所有空间域名 - */ - public function domains($bucket) - { - return $this->apiGet('/v6/domain/list?tbl=' . $bucket); - } - - /** - * 获取空间绑定的域名列表 - * @return string[] 包含空间绑定的所有域名 - */ - - /** - * 列取空间的文件列表 - * - * @param $bucket 空间名 - * @param $prefix 列举前缀 - * @param $marker 列举标识符 - * @param $limit 单次列举个数限制 - * @param $delimiter 指定目录分隔符 - * - * @return array 包含文件信息的数组,类似:[ - * { - * "hash" => "", - * "key" => "", - * "fsize" => "", - * "putTime" => "" - * }, - * ... - * ] - * @link http://developer.qiniu.com/docs/v6/api/reference/rs/list.html - */ - public function listFiles($bucket, $prefix = null, $marker = null, $limit = 1000, $delimiter = null) - { - $query = array('bucket' => $bucket); - \Qiniu\setWithoutEmpty($query, 'prefix', $prefix); - \Qiniu\setWithoutEmpty($query, 'marker', $marker); - \Qiniu\setWithoutEmpty($query, 'limit', $limit); - \Qiniu\setWithoutEmpty($query, 'delimiter', $delimiter); - $url = $this->getRsfHost() . '/list?' . http_build_query($query); - return $this->get($url); - } - - /** - * 获取资源的元信息,但不返回文件内容 - * - * @param $bucket 待获取信息资源所在的空间 - * @param $key 待获取资源的文件名 - * - * @return array 包含文件信息的数组,类似: - * [ - * "hash" => "", - * "key" => "", - * "fsize" => , - * "putTime" => "" - * "fileType" => - * ] - * - * @link http://developer.qiniu.com/docs/v6/api/reference/rs/stat.html - */ - public function stat($bucket, $key) - { - $path = '/stat/' . \Qiniu\entry($bucket, $key); - return $this->rsGet($path); - } - - /** - * 删除指定资源 - * - * @param $bucket 待删除资源所在的空间 - * @param $key 待删除资源的文件名 - * - * @return mixed 成功返回NULL,失败返回对象Qiniu\Http\Error - * @link http://developer.qiniu.com/docs/v6/api/reference/rs/delete.html - */ - public function delete($bucket, $key) - { - $path = '/delete/' . \Qiniu\entry($bucket, $key); - list(, $error) = $this->rsPost($path); - return $error; - } - - - /** - * 给资源进行重命名,本质为move操作。 - * - * @param $bucket 待操作资源所在空间 - * @param $oldname 待操作资源文件名 - * @param $newname 目标资源文件名 - * - * @return mixed 成功返回NULL,失败返回对象Qiniu\Http\Error - */ - public function rename($bucket, $oldname, $newname) - { - return $this->move($bucket, $oldname, $bucket, $newname); - } - - /** - * 给资源进行重命名,本质为move操作。 - * - * @param $from_bucket 待操作资源所在空间 - * @param $from_key 待操作资源文件名 - * @param $to_bucket 目标资源空间名 - * @param $to_key 目标资源文件名 - * - * @return mixed 成功返回NULL,失败返回对象Qiniu\Http\Error - * @link http://developer.qiniu.com/docs/v6/api/reference/rs/copy.html - */ - public function copy($from_bucket, $from_key, $to_bucket, $to_key, $force = false) - { - $from = \Qiniu\entry($from_bucket, $from_key); - $to = \Qiniu\entry($to_bucket, $to_key); - $path = '/copy/' . $from . '/' . $to; - if ($force === true) { - $path .= '/force/true'; - } - list(, $error) = $this->rsPost($path); - return $error; - } - - /** - * 将资源从一个空间到另一个空间 - * - * @param $from_bucket 待操作资源所在空间 - * @param $from_key 待操作资源文件名 - * @param $to_bucket 目标资源空间名 - * @param $to_key 目标资源文件名 - * - * @return mixed 成功返回NULL,失败返回对象Qiniu\Http\Error - * @link http://developer.qiniu.com/docs/v6/api/reference/rs/move.html - */ - public function move($from_bucket, $from_key, $to_bucket, $to_key, $force = false) - { - $from = \Qiniu\entry($from_bucket, $from_key); - $to = \Qiniu\entry($to_bucket, $to_key); - $path = '/move/' . $from . '/' . $to; - if ($force) { - $path .= '/force/true'; - } - list(, $error) = $this->rsPost($path); - return $error; - } - - /** - * 主动修改指定资源的文件类型 - * - * @param $bucket 待操作资源所在空间 - * @param $key 待操作资源文件名 - * @param $mime 待操作文件目标mimeType - * - * @return mixed 成功返回NULL,失败返回对象Qiniu\Http\Error - * @link http://developer.qiniu.com/docs/v6/api/reference/rs/chgm.html - */ - public function changeMime($bucket, $key, $mime) - { - $resource = \Qiniu\entry($bucket, $key); - $encode_mime = \Qiniu\base64_urlSafeEncode($mime); - $path = '/chgm/' . $resource . '/mime/' . $encode_mime; - list(, $error) = $this->rsPost($path); - return $error; - } - - - /** - * 修改指定资源的存储类型 - * - * @param $bucket 待操作资源所在空间 - * @param $key 待操作资源文件名 - * @param $fileType 待操作文件目标文件类型 - * - * @return mixed 成功返回NULL,失败返回对象Qiniu\Http\Error - * @link https://developer.qiniu.com/kodo/api/3710/modify-the-file-type - */ - public function changeType($bucket, $key, $fileType) - { - $resource = \Qiniu\entry($bucket, $key); - $path = '/chtype/' . $resource . '/type/' . $fileType; - list(, $error) = $this->rsPost($path); - return $error; - } - - - /** - * 从指定URL抓取资源,并将该资源存储到指定空间中 - * - * @param $url 指定的URL - * @param $bucket 目标资源空间 - * @param $key 目标资源文件名 - * - * @return array 包含已拉取的文件信息。 - * 成功时: [ - * [ - * "hash" => "", - * "key" => "" - * ], - * null - * ] - * - * 失败时: [ - * null, - * Qiniu/Http/Error - * ] - * @link http://developer.qiniu.com/docs/v6/api/reference/rs/fetch.html - */ - public function fetch($url, $bucket, $key = null) - { - - $resource = \Qiniu\base64_urlSafeEncode($url); - $to = \Qiniu\entry($bucket, $key); - $path = '/fetch/' . $resource . '/to/' . $to; - - $ak = $this->auth->getAccessKey(); - $ioHost = $this->config->getIovipHost($ak, $bucket); - - $url = $ioHost . $path; - return $this->post($url, null); - } - - /** - * 从镜像源站抓取资源到空间中,如果空间中已经存在,则覆盖该资源 - * - * @param $bucket 待获取资源所在的空间 - * @param $key 代获取资源文件名 - * - * @return mixed 成功返回NULL,失败返回对象Qiniu\Http\Error - * @link http://developer.qiniu.com/docs/v6/api/reference/rs/prefetch.html - */ - public function prefetch($bucket, $key) - { - $resource = \Qiniu\entry($bucket, $key); - $path = '/prefetch/' . $resource; - - $ak = $this->auth->getAccessKey(); - $ioHost = $this->config->getIovipHost($ak, $bucket); - - $url = $ioHost . $path; - list(, $error) = $this->post($url, null); - return $error; - } - - /** - * 在单次请求中进行多个资源管理操作 - * - * @param $operations 资源管理操作数组 - * - * @return array 每个资源的处理情况,结果类似: - * [ - * { "code" => , "data" => }, - * { "code" => }, - * { "code" => }, - * { "code" => }, - * { "code" => , "data" => { "error": "" } }, - * ... - * ] - * @link http://developer.qiniu.com/docs/v6/api/reference/rs/batch.html - */ - public function batch($operations) - { - $params = 'op=' . implode('&op=', $operations); - return $this->rsPost('/batch', $params); - } - - /** - * 设置文件的生命周期 - * - * @param $bucket 设置文件生命周期文件所在的空间 - * @param $key 设置文件生命周期文件的文件名 - * @param $days 设置该文件多少天后删除,当$days设置为0时表示取消该文件的生命周期 - * - * @return Mixed - * @link https://developer.qiniu.com/kodo/api/update-file-lifecycle - */ - public function deleteAfterDays($bucket, $key, $days) - { - $entry = \Qiniu\entry($bucket, $key); - $path = "/deleteAfterDays/$entry/$days"; - list(, $error) = $this->rsPost($path); - return $error; - } - - private function getRsfHost() - { - $scheme = "http://"; - if ($this->config->useHTTPS == true) { - $scheme = "https://"; - } - return $scheme . Config::RSF_HOST; - } - - private function getRsHost() - { - $scheme = "http://"; - if ($this->config->useHTTPS == true) { - $scheme = "https://"; - } - return $scheme . Config::RS_HOST; - } - - private function getApiHost() - { - $scheme = "http://"; - if ($this->config->useHTTPS == true) { - $scheme = "https://"; - } - return $scheme . Config::API_HOST; - } - - private function rsPost($path, $body = null) - { - $url = $this->getRsHost() . $path; - return $this->post($url, $body); - } - - private function apiGet($path) - { - $url = $this->getApiHost() . $path; - return $this->get($url); - } - - private function rsGet($path) - { - $url = $this->getRsHost() . $path; - return $this->get($url); - } - - private function get($url) - { - $headers = $this->auth->authorization($url); - $ret = Client::get($url, $headers); - if (!$ret->ok()) { - return array(null, new Error($url, $ret)); - } - return array($ret->json(), null); - } - - private function post($url, $body) - { - $headers = $this->auth->authorization($url, $body, 'application/x-www-form-urlencoded'); - $ret = Client::post($url, $body, $headers); - if (!$ret->ok()) { - return array(null, new Error($url, $ret)); - } - $r = ($ret->body === null) ? array() : $ret->json(); - return array($r, null); - } - - public static function buildBatchCopy($source_bucket, $key_pairs, $target_bucket, $force) - { - return self::twoKeyBatch('/copy', $source_bucket, $key_pairs, $target_bucket, $force); - } - - - public static function buildBatchRename($bucket, $key_pairs, $force) - { - return self::buildBatchMove($bucket, $key_pairs, $bucket, $force); - } - - - public static function buildBatchMove($source_bucket, $key_pairs, $target_bucket, $force) - { - return self::twoKeyBatch('/move', $source_bucket, $key_pairs, $target_bucket, $force); - } - - - public static function buildBatchDelete($bucket, $keys) - { - return self::oneKeyBatch('/delete', $bucket, $keys); - } - - - public static function buildBatchStat($bucket, $keys) - { - return self::oneKeyBatch('/stat', $bucket, $keys); - } - - public static function buildBatchDeleteAfterDays($bucket, $key_day_pairs) - { - $data = array(); - foreach ($key_day_pairs as $key => $day) { - array_push($data, '/deleteAfterDays/' . \Qiniu\entry($bucket, $key) . '/' . $day); - } - return $data; - } - - public static function buildBatchChangeMime($bucket, $key_mime_pairs) - { - $data = array(); - foreach ($key_mime_pairs as $key => $mime) { - array_push($data, '/chgm/' . \Qiniu\entry($bucket, $key) . '/mime/' . base64_encode($mime)); - } - return $data; - } - - public static function buildBatchChangeType($bucket, $key_type_pairs) - { - $data = array(); - foreach ($key_type_pairs as $key => $type) { - array_push($data, '/chtype/' . \Qiniu\entry($bucket, $key) . '/type/' . $type); - } - return $data; - } - - private static function oneKeyBatch($operation, $bucket, $keys) - { - $data = array(); - foreach ($keys as $key) { - array_push($data, $operation . '/' . \Qiniu\entry($bucket, $key)); - } - return $data; - } - - private static function twoKeyBatch($operation, $source_bucket, $key_pairs, $target_bucket, $force) - { - if ($target_bucket === null) { - $target_bucket = $source_bucket; - } - $data = array(); - $forceOp = "false"; - if ($force) { - $forceOp = "true"; - } - foreach ($key_pairs as $from_key => $to_key) { - $from = \Qiniu\entry($source_bucket, $from_key); - $to = \Qiniu\entry($target_bucket, $to_key); - array_push($data, $operation . '/' . $from . '/' . $to . "/force/" . $forceOp); - } - return $data; - } -} diff --git a/vendor/qiniu/php-sdk/src/Qiniu/Storage/FormUploader.php b/vendor/qiniu/php-sdk/src/Qiniu/Storage/FormUploader.php deleted file mode 100644 index 5c3361f96..000000000 --- a/vendor/qiniu/php-sdk/src/Qiniu/Storage/FormUploader.php +++ /dev/null @@ -1,139 +0,0 @@ - "", - * "key" => "" - * ] - */ - public static function put( - $upToken, - $key, - $data, - $config, - $params, - $mime, - $fname - ) { - - $fields = array('token' => $upToken); - if ($key === null) { - $fname='nullkey'; - } else { - $fields['key'] = $key; - } - - //enable crc32 check by default - $fields['crc32'] = \Qiniu\crc32_data($data); - - if ($params) { - foreach ($params as $k => $v) { - $fields[$k] = $v; - } - } - - list($accessKey, $bucket, $err) = \Qiniu\explodeUpToken($upToken); - if ($err != null) { - return array(null, $err); - } - - $upHost = $config->getUpHost($accessKey, $bucket); - - $response = Client::multipartPost($upHost, $fields, 'file', $fname, $data, $mime); - if (!$response->ok()) { - return array(null, new Error($upHost, $response)); - } - return array($response->json(), null); - } - - /** - * 上传文件到七牛,内部使用 - * - * @param $upToken 上传凭证 - * @param $key 上传文件名 - * @param $filePath 上传文件的路径 - * @param $config 上传配置 - * @param $params 自定义变量,规格参考 - * http://developer.qiniu.com/docs/v6/api/overview/up/response/vars.html#xvar - * @param $mime 上传数据的mimeType - * - * @return array 包含已上传文件的信息,类似: - * [ - * "hash" => "", - * "key" => "" - * ] - */ - public static function putFile( - $upToken, - $key, - $filePath, - $config, - $params, - $mime - ) { - - - $fields = array('token' => $upToken, 'file' => self::createFile($filePath, $mime)); - if ($key !== null) { - $fields['key'] = $key; - } - - $fields['crc32'] = \Qiniu\crc32_file($filePath); - - if ($params) { - foreach ($params as $k => $v) { - $fields[$k] = $v; - } - } - $fields['key'] = $key; - $headers = array('Content-Type' => 'multipart/form-data'); - - list($accessKey, $bucket, $err) = \Qiniu\explodeUpToken($upToken); - if ($err != null) { - return array(null, $err); - } - - $upHost = $config->getUpHost($accessKey, $bucket); - - $response = Client::post($upHost, $fields, $headers); - if (!$response->ok()) { - return array(null, new Error($upHost, $response)); - } - return array($response->json(), null); - } - - private static function createFile($filename, $mime) - { - // PHP 5.5 introduced a CurlFile object that deprecates the old @filename syntax - // See: https://wiki.php.net/rfc/curl-file-upload - if (function_exists('curl_file_create')) { - return curl_file_create($filename, $mime); - } - - // Use the old style if using an older version of PHP - $value = "@{$filename}"; - if (!empty($mime)) { - $value .= ';type=' . $mime; - } - - return $value; - } -} diff --git a/vendor/qiniu/php-sdk/src/Qiniu/Storage/ResumeUploader.php b/vendor/qiniu/php-sdk/src/Qiniu/Storage/ResumeUploader.php deleted file mode 100644 index 5d8bf8730..000000000 --- a/vendor/qiniu/php-sdk/src/Qiniu/Storage/ResumeUploader.php +++ /dev/null @@ -1,169 +0,0 @@ -upToken = $upToken; - $this->key = $key; - $this->inputStream = $inputStream; - $this->size = $size; - $this->params = $params; - $this->mime = $mime; - $this->contexts = array(); - $this->config = $config; - - list($accessKey, $bucket, $err) = \Qiniu\explodeUpToken($upToken); - if ($err != null) { - return array(null, $err); - } - - $upHost = $config->getUpHost($accessKey, $bucket); - if ($err != null) { - throw new \Exception($err->message(), 1); - } - $this->host = $upHost; - } - - /** - * 上传操作 - */ - public function upload($fname) - { - $uploaded = 0; - while ($uploaded < $this->size) { - $blockSize = $this->blockSize($uploaded); - $data = fread($this->inputStream, $blockSize); - if ($data === false) { - throw new \Exception("file read failed", 1); - } - $crc = \Qiniu\crc32_data($data); - $response = $this->makeBlock($data, $blockSize); - $ret = null; - if ($response->ok() && $response->json() != null) { - $ret = $response->json(); - } - if ($response->statusCode < 0) { - list($accessKey, $bucket, $err) = \Qiniu\explodeUpToken($this->upToken); - if ($err != null) { - return array(null, $err); - } - - $upHostBackup = $this->config->getUpBackupHost($accessKey, $bucket); - $this->host = $upHostBackup; - } - if ($response->needRetry() || !isset($ret['crc32']) || $crc != $ret['crc32']) { - $response = $this->makeBlock($data, $blockSize); - $ret = $response->json(); - } - - if (!$response->ok() || !isset($ret['crc32']) || $crc != $ret['crc32']) { - return array(null, new Error($this->currentUrl, $response)); - } - array_push($this->contexts, $ret['ctx']); - $uploaded += $blockSize; - } - return $this->makeFile($fname); - } - - /** - * 创建块 - */ - private function makeBlock($block, $blockSize) - { - $url = $this->host . '/mkblk/' . $blockSize; - return $this->post($url, $block); - } - - private function fileUrl($fname) - { - $url = $this->host . '/mkfile/' . $this->size; - $url .= '/mimeType/' . \Qiniu\base64_urlSafeEncode($this->mime); - if ($this->key != null) { - $url .= '/key/' . \Qiniu\base64_urlSafeEncode($this->key); - } - $url .= '/fname/' . \Qiniu\base64_urlSafeEncode($fname); - if (!empty($this->params)) { - foreach ($this->params as $key => $value) { - $val = \Qiniu\base64_urlSafeEncode($value); - $url .= "/$key/$val"; - } - } - return $url; - } - - /** - * 创建文件 - */ - private function makeFile($fname) - { - $url = $this->fileUrl($fname); - $body = implode(',', $this->contexts); - $response = $this->post($url, $body); - if ($response->needRetry()) { - $response = $this->post($url, $body); - } - if (!$response->ok()) { - return array(null, new Error($this->currentUrl, $response)); - } - return array($response->json(), null); - } - - private function post($url, $data) - { - $this->currentUrl = $url; - $headers = array('Authorization' => 'UpToken ' . $this->upToken); - return Client::post($url, $data, $headers); - } - - private function blockSize($uploaded) - { - if ($this->size < $uploaded + Config::BLOCK_SIZE) { - return $this->size - $uploaded; - } - return Config::BLOCK_SIZE; - } -} diff --git a/vendor/qiniu/php-sdk/src/Qiniu/Storage/UploadManager.php b/vendor/qiniu/php-sdk/src/Qiniu/Storage/UploadManager.php deleted file mode 100644 index ce58b2fe9..000000000 --- a/vendor/qiniu/php-sdk/src/Qiniu/Storage/UploadManager.php +++ /dev/null @@ -1,144 +0,0 @@ -config = $config; - } - - /** - * 上传二进制流到七牛 - * - * @param $upToken 上传凭证 - * @param $key 上传文件名 - * @param $data 上传二进制流 - * @param $params 自定义变量,规格参考 - * http://developer.qiniu.com/docs/v6/api/overview/up/response/vars.html#xvar - * @param $mime 上传数据的mimeType - * @param $checkCrc 是否校验crc32 - * - * @return array 包含已上传文件的信息,类似: - * [ - * "hash" => "", - * "key" => "" - * ] - */ - public function put( - $upToken, - $key, - $data, - $params = null, - $mime = 'application/octet-stream', - $fname = null - ) { - - $params = self::trimParams($params); - return FormUploader::put( - $upToken, - $key, - $data, - $this->config, - $params, - $mime, - $fname - ); - } - - - /** - * 上传文件到七牛 - * - * @param $upToken 上传凭证 - * @param $key 上传文件名 - * @param $filePath 上传文件的路径 - * @param $params 自定义变量,规格参考 - * http://developer.qiniu.com/docs/v6/api/overview/up/response/vars.html#xvar - * @param $mime 上传数据的mimeType - * @param $checkCrc 是否校验crc32 - * - * @return array 包含已上传文件的信息,类似: - * [ - * "hash" => "", - * "key" => "" - * ] - */ - public function putFile( - $upToken, - $key, - $filePath, - $params = null, - $mime = 'application/octet-stream', - $checkCrc = false - ) { - - $file = fopen($filePath, 'rb'); - if ($file === false) { - throw new \Exception("file can not open", 1); - } - $params = self::trimParams($params); - $stat = fstat($file); - $size = $stat['size']; - if ($size <= Config::BLOCK_SIZE) { - $data = fread($file, $size); - fclose($file); - if ($data === false) { - throw new \Exception("file can not read", 1); - } - return FormUploader::put( - $upToken, - $key, - $data, - $this->config, - $params, - $mime, - $checkCrc, - basename($filePath) - ); - } - - $up = new ResumeUploader( - $upToken, - $key, - $file, - $size, - $params, - $mime, - $this->config - ); - $ret = $up->upload(basename($filePath)); - fclose($file); - return $ret; - } - - public static function trimParams($params) - { - if ($params === null) { - return null; - } - $ret = array(); - foreach ($params as $k => $v) { - $pos = strpos($k, 'x:'); - if ($pos === 0 && !empty($v)) { - $ret[$k] = $v; - } - } - return $ret; - } -} diff --git a/vendor/qiniu/php-sdk/src/Qiniu/Zone.php b/vendor/qiniu/php-sdk/src/Qiniu/Zone.php deleted file mode 100644 index 1a66d39bf..000000000 --- a/vendor/qiniu/php-sdk/src/Qiniu/Zone.php +++ /dev/null @@ -1,171 +0,0 @@ -srcUpHosts = $srcUpHosts; - $this->cdnUpHosts = $cdnUpHosts; - $this->rsHost = $rsHost; - $this->rsfHost = $rsfHost; - $this->apiHost = $apiHost; - $this->iovipHost = $iovipHost; - } - - //华东机房 - public static function zone0() - { - $Zone_z0 = new Zone( - array("up.qiniup.com", 'up-jjh.qiniup.com', 'up-xs.qiniup.com'), - array('upload.qiniup.com', 'upload-jjh.qiniup.com', 'upload-xs.qiniup.com'), - 'rs.qiniu.com', - 'rsf.qiniu.com', - 'api.qiniu.com', - 'iovip.qbox.me' - ); - return $Zone_z0; - } - - //华北机房 - public static function zone1() - { - $Zone_z1 = new Zone( - array('up-z1.qiniup.com'), - array('upload-z1.qiniup.com'), - "rs-z1.qiniu.com", - "rsf-z1.qiniu.com", - "api-z1.qiniu.com", - "iovip-z1.qbox.me" - ); - - return $Zone_z1; - } - - //华南机房 - public static function zone2() - { - $Zone_z2 = new Zone( - array('up-z2.qiniup.com', 'up-dg.qiniup.com', 'up-fs.qiniup.com'), - array('upload-z2.qiniup.com', 'upload-dg.qiniup.com', 'upload-fs.qiniup.com'), - "rs-z2.qiniu.com", - "rsf-z2.qiniu.com", - "api-z2.qiniu.com", - "iovip-z2.qbox.me" - ); - return $Zone_z2; - } - - //北美机房 - public static function zoneNa0() - { - //北美机房 - $Zone_na0 = new Zone( - array('up-na0.qiniup.com'), - array('upload-na0.qiniup.com'), - "rs-na0.qiniu.com", - "rsf-na0.qiniu.com", - "api-na0.qiniu.com", - "iovip-na0.qbox.me" - ); - return $Zone_na0; - } - - //新加坡机房 - public static function zoneAs0() - { - //新加坡机房 - $Zone_as0 = new Zone( - array('up-as0.qiniup.com'), - array('upload-as0.qiniup.com'), - "rs-as0.qiniu.com", - "rsf-as0.qiniu.com", - "api-as0.qiniu.com", - "iovip-as0.qbox.me" - ); - return $Zone_as0; - } - - /* - * GET /v2/query?ak=&&bucket= - **/ - public static function queryZone($ak, $bucket) - { - $zone = new Zone(); - $url = Config::UC_HOST . '/v2/query' . "?ak=$ak&bucket=$bucket"; - $ret = Client::Get($url); - if (!$ret->ok()) { - return array(null, new Error($url, $ret)); - } - $r = ($ret->body === null) ? array() : $ret->json(); - //print_r($ret); - //parse zone; - - $iovipHost = $r['io']['src']['main'][0]; - $zone->iovipHost = $iovipHost; - $accMain = $r['up']['acc']['main'][0]; - array_push($zone->cdnUpHosts, $accMain); - if (isset($r['up']['acc']['backup'])) { - foreach ($r['up']['acc']['backup'] as $key => $value) { - array_push($zone->cdnUpHosts, $value); - } - } - $srcMain = $r['up']['src']['main'][0]; - array_push($zone->srcUpHosts, $srcMain); - if (isset($r['up']['src']['backup'])) { - foreach ($r['up']['src']['backup'] as $key => $value) { - array_push($zone->srcUpHosts, $value); - } - } - - //set specific hosts - if (strstr($zone->iovipHost, "z1") !== false) { - $zone->rsHost = "rs-z1.qiniu.com"; - $zone->rsfHost = "rsf-z1.qiniu.com"; - $zone->apiHost = "api-z1.qiniu.com"; - } elseif (strstr($zone->iovipHost, "z2") !== false) { - $zone->rsHost = "rs-z2.qiniu.com"; - $zone->rsfHost = "rsf-z2.qiniu.com"; - $zone->apiHost = "api-z2.qiniu.com"; - } elseif (strstr($zone->iovipHost, "na0") !== false) { - $zone->rsHost = "rs-na0.qiniu.com"; - $zone->rsfHost = "rsf-na0.qiniu.com"; - $zone->apiHost = "api-na0.qiniu.com"; - } elseif (strstr($zone->iovipHost, "as0") !== false) { - $zone->rsHost = "rs-as0.qiniu.com"; - $zone->rsfHost = "rsf-as0.qiniu.com"; - $zone->apiHost = "api-as0.qiniu.com"; - } else { - $zone->rsHost = "rs.qiniu.com"; - $zone->rsfHost = "rsf.qiniu.com"; - $zone->apiHost = "api.qiniu.com"; - } - - return $zone; - } -} diff --git a/vendor/qiniu/php-sdk/src/Qiniu/functions.php b/vendor/qiniu/php-sdk/src/Qiniu/functions.php deleted file mode 100644 index 2ccdf3234..000000000 --- a/vendor/qiniu/php-sdk/src/Qiniu/functions.php +++ /dev/null @@ -1,264 +0,0 @@ - 'JSON_ERROR_DEPTH - Maximum stack depth exceeded', - JSON_ERROR_STATE_MISMATCH => 'JSON_ERROR_STATE_MISMATCH - Underflow or the modes mismatch', - JSON_ERROR_CTRL_CHAR => 'JSON_ERROR_CTRL_CHAR - Unexpected control character found', - JSON_ERROR_SYNTAX => 'JSON_ERROR_SYNTAX - Syntax error, malformed JSON', - JSON_ERROR_UTF8 => 'JSON_ERROR_UTF8 - Malformed UTF-8 characters, possibly incorrectly encoded' - ); - - if (empty($json)) { - return null; - } - $data = \json_decode($json, $assoc, $depth); - - if (JSON_ERROR_NONE !== json_last_error()) { - $last = json_last_error(); - throw new \InvalidArgumentException( - 'Unable to parse JSON data: ' - . (isset($jsonErrors[$last]) - ? $jsonErrors[$last] - : 'Unknown error') - ); - } - - return $data; - } - - /** - * 计算七牛API中的数据格式 - * - * @param $bucket 待操作的空间名 - * @param $key 待操作的文件名 - * - * @return string 符合七牛API规格的数据格式 - * @link http://developer.qiniu.com/docs/v6/api/reference/data-formats.html - */ - function entry($bucket, $key) - { - $en = $bucket; - if (!empty($key)) { - $en = $bucket . ':' . $key; - } - return base64_urlSafeEncode($en); - } - - /** - * array 辅助方法,无值时不set - * - * @param $array 待操作array - * @param $key key - * @param $value value 为null时 不设置 - * - * @return array 原来的array,便于连续操作 - */ - function setWithoutEmpty(&$array, $key, $value) - { - if (!empty($value)) { - $array[$key] = $value; - } - return $array; - } - - /** - * 缩略图链接拼接 - * - * @param string $url 图片链接 - * @param int $mode 缩略模式 - * @param int $width 宽度 - * @param int $height 长度 - * @param string $format 输出类型 - * @param int $quality 图片质量 - * @param int $interlace 是否支持渐进显示 - * @param int $ignoreError 忽略结果 - * @return string - * @link http://developer.qiniu.com/code/v6/api/kodo-api/image/imageview2.html - * @author Sherlock Ren - */ - function thumbnail( - $url, - $mode, - $width, - $height, - $format = null, - $quality = null, - $interlace = null, - $ignoreError = 1 - ) { - - static $imageUrlBuilder = null; - if (is_null($imageUrlBuilder)) { - $imageUrlBuilder = new \Qiniu\Processing\ImageUrlBuilder; - } - - return call_user_func_array(array($imageUrlBuilder, 'thumbnail'), func_get_args()); - } - - /** - * 图片水印 - * - * @param string $url 图片链接 - * @param string $image 水印图片链接 - * @param numeric $dissolve 透明度 - * @param string $gravity 水印位置 - * @param numeric $dx 横轴边距 - * @param numeric $dy 纵轴边距 - * @param numeric $watermarkScale 自适应原图的短边比例 - * @link http://developer.qiniu.com/code/v6/api/kodo-api/image/watermark.html - * @return string - * @author Sherlock Ren - */ - function waterImg( - $url, - $image, - $dissolve = 100, - $gravity = 'SouthEast', - $dx = null, - $dy = null, - $watermarkScale = null - ) { - - static $imageUrlBuilder = null; - if (is_null($imageUrlBuilder)) { - $imageUrlBuilder = new \Qiniu\Processing\ImageUrlBuilder; - } - - return call_user_func_array(array($imageUrlBuilder, 'waterImg'), func_get_args()); - } - - /** - * 文字水印 - * - * @param string $url 图片链接 - * @param string $text 文字 - * @param string $font 文字字体 - * @param string $fontSize 文字字号 - * @param string $fontColor 文字颜色 - * @param numeric $dissolve 透明度 - * @param string $gravity 水印位置 - * @param numeric $dx 横轴边距 - * @param numeric $dy 纵轴边距 - * @link http://developer.qiniu.com/code/v6/api/kodo-api/image/watermark.html#text-watermark - * @return string - * @author Sherlock Ren - */ - function waterText( - $url, - $text, - $font = '黑体', - $fontSize = 0, - $fontColor = null, - $dissolve = 100, - $gravity = 'SouthEast', - $dx = null, - $dy = null - ) { - - static $imageUrlBuilder = null; - if (is_null($imageUrlBuilder)) { - $imageUrlBuilder = new \Qiniu\Processing\ImageUrlBuilder; - } - - return call_user_func_array(array($imageUrlBuilder, 'waterText'), func_get_args()); - } - - /** - * 从uptoken解析accessKey和bucket - * - * @param $upToken - * @return array(ak,bucket,err=null) - */ - function explodeUpToken($upToken) - { - $items = explode(':', $upToken); - if (count($items) != 3) { - return array(null, null, "invalid uptoken"); - } - $accessKey = $items[0]; - $putPolicy = json_decode(base64_decode($items[2])); - $scope = $putPolicy->scope; - $scopeItems = explode(':', $scope); - $bucket = $scopeItems[0]; - return array($accessKey, $bucket, null); - } -} diff --git a/vendor/qiniu/php-sdk/test-env.sh b/vendor/qiniu/php-sdk/test-env.sh deleted file mode 100755 index eedf6b50a..000000000 --- a/vendor/qiniu/php-sdk/test-env.sh +++ /dev/null @@ -1,4 +0,0 @@ -export QINIU_ACCESS_KEY=xxx -export QINIU_SECRET_KEY=xxx -export QINIU_TEST_BUCKET=phpsdk -export QINIU_TEST_DOMAIN=phpsdk.qiniudn.com \ No newline at end of file diff --git a/vendor/qiniu/php-sdk/tests/Qiniu/Tests/AuthTest.php b/vendor/qiniu/php-sdk/tests/Qiniu/Tests/AuthTest.php deleted file mode 100644 index 712cbd57a..000000000 --- a/vendor/qiniu/php-sdk/tests/Qiniu/Tests/AuthTest.php +++ /dev/null @@ -1,71 +0,0 @@ -sign('test'); - $this->assertEquals('abcdefghklmnopq:mSNBTR7uS2crJsyFr2Amwv1LaYg=', $token); - } - - public function testSignWithData() - { - global $dummyAuth; - $token = $dummyAuth->signWithData('test'); - $this->assertEquals('abcdefghklmnopq:-jP8eEV9v48MkYiBGs81aDxl60E=:dGVzdA==', $token); - } - - public function testSignRequest() - { - global $dummyAuth; - $token = $dummyAuth->signRequest('http://www.qiniu.com?go=1', 'test', ''); - $this->assertEquals('abcdefghklmnopq:cFyRVoWrE3IugPIMP5YJFTO-O-Y=', $token); - $ctype = 'application/x-www-form-urlencoded'; - $token = $dummyAuth->signRequest('http://www.qiniu.com?go=1', 'test', $ctype); - $this->assertEquals($token, 'abcdefghklmnopq:svWRNcacOE-YMsc70nuIYdaa1e4='); - } - - public function testPrivateDownloadUrl() - { - global $dummyAuth; - $_SERVER['override_qiniu_auth_time'] = true; - $url = $dummyAuth->privateDownloadUrl('http://www.qiniu.com?go=1'); - $expect = 'http://www.qiniu.com?go=1&e=1234571490&token=abcdefghklmnopq:8vzBeLZ9W3E4kbBLFLW0Xe0u7v4='; - $this->assertEquals($expect, $url); - unset($_SERVER['override_qiniu_auth_time']); - } - - public function testUploadToken() - { - global $dummyAuth; - $_SERVER['override_qiniu_auth_time'] = true; - $token = $dummyAuth->uploadToken('1', '2', 3600, array('endUser' => 'y')); - // @codingStandardsIgnoreStart - $exp = 'abcdefghklmnopq:yyeexeUkPOROoTGvwBjJ0F0VLEo=:eyJlbmRVc2VyIjoieSIsInNjb3BlIjoiMToyIiwiZGVhZGxpbmUiOjEyMzQ1NzE0OTB9'; - // @codingStandardsIgnoreEnd - $this->assertEquals($exp, $token); - unset($_SERVER['override_qiniu_auth_time']); - } - - public function testVerifyCallback() - { - } - } -} diff --git a/vendor/qiniu/php-sdk/tests/Qiniu/Tests/Base64Test.php b/vendor/qiniu/php-sdk/tests/Qiniu/Tests/Base64Test.php deleted file mode 100644 index 6d6335307..000000000 --- a/vendor/qiniu/php-sdk/tests/Qiniu/Tests/Base64Test.php +++ /dev/null @@ -1,14 +0,0 @@ -assertEquals($a, \Qiniu\base64_urlSafeDecode($b)); - } -} diff --git a/vendor/qiniu/php-sdk/tests/Qiniu/Tests/BucketTest.php b/vendor/qiniu/php-sdk/tests/Qiniu/Tests/BucketTest.php deleted file mode 100644 index 534d8c2f7..000000000 --- a/vendor/qiniu/php-sdk/tests/Qiniu/Tests/BucketTest.php +++ /dev/null @@ -1,227 +0,0 @@ -bucketName = $bucketName; - $this->key = $key; - $this->key2 = $key2; - - global $testAuth; - $this->bucketManager = new BucketManager($testAuth); - - global $dummyAuth; - $this->dummyBucketManager = new BucketManager($dummyAuth); - } - - public function testBuckets() - { - - list($list, $error) = $this->bucketManager->buckets(); - $this->assertTrue(in_array($this->bucketName, $list)); - $this->assertNull($error); - - list($list2, $error) = $this->dummyBucketManager->buckets(); - $this->assertEquals(401, $error->code()); - $this->assertNull($list2); - $this->assertNotNull($error->message()); - } - - public function testList() - { - list($ret, $error) = $this->bucketManager->listFiles($this->bucketName, null, null, 10); - $this->assertNotNull($ret['items'][0]); - $this->assertNotNull($ret['marker']); - } - - public function testStat() - { - list($stat, $error) = $this->bucketManager->stat($this->bucketName, $this->key); - $this->assertNotNull($stat); - $this->assertNull($error); - $this->assertNotNull($stat['hash']); - - list($stat, $error) = $this->bucketManager->stat($this->bucketName, 'nofile'); - $this->assertNull($stat); - $this->assertEquals(612, $error->code()); - $this->assertNotNull($error->message()); - - list($stat, $error) = $this->bucketManager->stat('nobucket', 'nofile'); - $this->assertNull($stat); - $this->assertEquals(631, $error->code()); - $this->assertNotNull($error->message()); - } - - public function testDelete() - { - $error = $this->bucketManager->delete($this->bucketName, 'del'); - $this->assertEquals(612, $error->code()); - } - - - public function testRename() - { - $key = 'renamefrom' . rand(); - $this->bucketManager->copy($this->bucketName, $this->key, $this->bucketName, $key); - $key2 = 'renameto' . $key; - $error = $this->bucketManager->rename($this->bucketName, $key, $key2); - $this->assertNull($error); - $error = $this->bucketManager->delete($this->bucketName, $key2); - $this->assertNull($error); - } - - - public function testCopy() - { - $key = 'copyto' . rand(); - $this->bucketManager->delete($this->bucketName, $key); - - $error = $this->bucketManager->copy( - $this->bucketName, - $this->key, - $this->bucketName, - $key - ); - $this->assertNull($error); - - //test force copy - $error = $this->bucketManager->copy( - $this->bucketName, - $this->key2, - $this->bucketName, - $key, - true - ); - $this->assertNull($error); - - list($key2Stat,) = $this->bucketManager->stat($this->bucketName, $this->key2); - list($key2CopiedStat,) = $this->bucketManager->stat($this->bucketName, $key); - - $this->assertEquals($key2Stat['hash'], $key2CopiedStat['hash']); - - $error = $this->bucketManager->delete($this->bucketName, $key); - $this->assertNull($error); - } - - - public function testChangeMime() - { - $error = $this->bucketManager->changeMime( - $this->bucketName, - 'php-sdk.html', - 'text/html' - ); - $this->assertNull($error); - } - - public function testPrefetch() - { - $error = $this->bucketManager->prefetch( - $this->bucketName, - 'php-sdk.html' - ); - $this->assertNull($error); - } - - public function testFetch() - { - list($ret, $error) = $this->bucketManager->fetch( - 'http://developer.qiniu.com/docs/v6/sdk/php-sdk.html', - $this->bucketName, - 'fetch.html' - ); - $this->assertArrayHasKey('hash', $ret); - $this->assertNull($error); - - list($ret, $error) = $this->bucketManager->fetch( - 'http://developer.qiniu.com/docs/v6/sdk/php-sdk.html', - $this->bucketName, - '' - ); - $this->assertArrayHasKey('key', $ret); - $this->assertNull($error); - - list($ret, $error) = $this->bucketManager->fetch( - 'http://developer.qiniu.com/docs/v6/sdk/php-sdk.html', - $this->bucketName - ); - $this->assertArrayHasKey('key', $ret); - $this->assertNull($error); - } - - public function testBatchCopy() - { - $key = 'copyto' . rand(); - $ops = BucketManager::buildBatchCopy( - $this->bucketName, - array($this->key => $key), - $this->bucketName, - true - ); - list($ret, $error) = $this->bucketManager->batch($ops); - $this->assertEquals(200, $ret[0]['code']); - $ops = BucketManager::buildBatchDelete($this->bucketName, array($key)); - list($ret, $error) = $this->bucketManager->batch($ops); - $this->assertEquals(200, $ret[0]['code']); - } - - public function testBatchMove() - { - $key = 'movefrom' . rand(); - $this->bucketManager->copy($this->bucketName, $this->key, $this->bucketName, $key); - $key2 = $key . 'to'; - $ops = BucketManager::buildBatchMove( - $this->bucketName, - array($key => $key2), - $this->bucketName, - true - ); - list($ret, $error) = $this->bucketManager->batch($ops); - $this->assertEquals(200, $ret[0]['code']); - $error = $this->bucketManager->delete($this->bucketName, $key2); - $this->assertNull($error); - } - - public function testBatchRename() - { - $key = 'rename' . rand(); - $this->bucketManager->copy($this->bucketName, $this->key, $this->bucketName, $key); - $key2 = $key . 'to'; - $ops = BucketManager::buildBatchRename($this->bucketName, array($key => $key2), true); - list($ret, $error) = $this->bucketManager->batch($ops); - $this->assertEquals(200, $ret[0]['code']); - $error = $this->bucketManager->delete($this->bucketName, $key2); - $this->assertNull($error); - } - - public function testBatchStat() - { - $ops = BucketManager::buildBatchStat($this->bucketName, array('php-sdk.html')); - list($ret, $error) = $this->bucketManager->batch($ops); - $this->assertEquals(200, $ret[0]['code']); - } - - public function testDeleteAfterDays() - { - $key = rand(); - $err = $this->bucketManager->deleteAfterDays($this->bucketName, $key, 1); - $this->assertEquals(612, $err->code()); - - $this->bucketManager->copy($this->bucketName, $this->key, $this->bucketName, $key); - $err = $this->bucketManager->deleteAfterDays($this->bucketName, $key, 1); - $this->assertEquals(null, $err); - } -} diff --git a/vendor/qiniu/php-sdk/tests/Qiniu/Tests/CdnManagerTest.php b/vendor/qiniu/php-sdk/tests/Qiniu/Tests/CdnManagerTest.php deleted file mode 100644 index 5a858dfa2..000000000 --- a/vendor/qiniu/php-sdk/tests/Qiniu/Tests/CdnManagerTest.php +++ /dev/null @@ -1,50 +0,0 @@ -cdnManager = new CdnManager($testAuth); - $this->encryptKey = $timestampAntiLeechEncryptKey; - $this->imgUrl = $customDomain . '/24.jpg'; - } - - public function testCreateTimestampAntiLeechUrl() - { - - $signUrl = $this->cdnManager->createTimestampAntiLeechUrl($this->imgUrl, $this->encryptKey, 3600); - - $response = Client::get($signUrl); - $this->assertEquals($response->statusCode, 200); - $this->assertNull($response->error); - - $url2 = $this->imgUrl . '?imageInfo'; - $signUrl2 = $this->cdnManager->createTimestampAntiLeechUrl($url2, $this->encryptKey, 3600); - - $response = Client::get($signUrl2); - $imgInfo = $response->json(); - - $this->assertEquals($response->statusCode, 200); - $this->assertEquals($imgInfo['size'], 2196145); - $this->assertNull($response->error); - } -} diff --git a/vendor/qiniu/php-sdk/tests/Qiniu/Tests/Crc32Test.php b/vendor/qiniu/php-sdk/tests/Qiniu/Tests/Crc32Test.php deleted file mode 100644 index bfb36da87..000000000 --- a/vendor/qiniu/php-sdk/tests/Qiniu/Tests/Crc32Test.php +++ /dev/null @@ -1,21 +0,0 @@ -assertEquals('1352841281', $b); - } - - public function testFile() - { - $b = \Qiniu\crc32_file(__file__); - $c = \Qiniu\crc32_file(__file__); - $this->assertEquals($c, $b); - } -} diff --git a/vendor/qiniu/php-sdk/tests/Qiniu/Tests/DownloadTest.php b/vendor/qiniu/php-sdk/tests/Qiniu/Tests/DownloadTest.php deleted file mode 100644 index 82990f2a1..000000000 --- a/vendor/qiniu/php-sdk/tests/Qiniu/Tests/DownloadTest.php +++ /dev/null @@ -1,25 +0,0 @@ -privateDownloadUrl($base_url); - $response = Client::get($private_url); - $this->assertEquals(200, $response->statusCode); - } - - public function testFop() - { - global $testAuth; - $base_url = 'http://private-res.qiniudn.com/gogopher.jpg?exif'; - $private_url = $testAuth->privateDownloadUrl($base_url); - $response = Client::get($private_url); - $this->assertEquals(200, $response->statusCode); - } -} diff --git a/vendor/qiniu/php-sdk/tests/Qiniu/Tests/EtagTest.php b/vendor/qiniu/php-sdk/tests/Qiniu/Tests/EtagTest.php deleted file mode 100644 index 42a14993e..000000000 --- a/vendor/qiniu/php-sdk/tests/Qiniu/Tests/EtagTest.php +++ /dev/null @@ -1,52 +0,0 @@ -assertEquals('Fto5o-5ea0sNMlW_75VgGJCv2AcJ', $r); - $this->assertNull($error); - } - - public function testLess4M() - { - $file = qiniuTempFile(3 * 1024 * 1024); - list($r, $error) = Etag::sum($file); - unlink($file); - $this->assertEquals('Fs5BpnAjRykYTg6o5E09cjuXrDkG', $r); - $this->assertNull($error); - } - - public function test4M() - { - $file = qiniuTempFile(4 * 1024 * 1024); - list($r, $error) = Etag::sum($file); - unlink($file); - $this->assertEquals('FiuKULnybewpEnrfTmxjsxc-3dWp', $r); - $this->assertNull($error); - } - - public function testMore4M() - { - $file = qiniuTempFile(5 * 1024 * 1024); - list($r, $error) = Etag::sum($file); - unlink($file); - $this->assertEquals('lhvyfIWMYFTq4s4alzlhXoAkqfVL', $r); - $this->assertNull($error); - } - - public function test8M() - { - $file = qiniuTempFile(8 * 1024 * 1024); - list($r, $error) = Etag::sum($file); - unlink($file); - $this->assertEquals('lmRm9ZfGZ86bnMys4wRTWtJj9ClG', $r); - $this->assertNull($error); - } -} diff --git a/vendor/qiniu/php-sdk/tests/Qiniu/Tests/FopTest.php b/vendor/qiniu/php-sdk/tests/Qiniu/Tests/FopTest.php deleted file mode 100644 index e1ea730e8..000000000 --- a/vendor/qiniu/php-sdk/tests/Qiniu/Tests/FopTest.php +++ /dev/null @@ -1,37 +0,0 @@ -execute('gogopher.jpg', 'exif'); - $this->assertNull($error); - $this->assertNotNull($exif); - } - - public function testExifPrivate() - { - global $testAuth; - $fop = new Operation('private-res.qiniudn.com', $testAuth); - list($exif, $error) = $fop->execute('noexif.jpg', 'exif'); - $this->assertNotNull($error); - $this->assertNull($exif); - } - - public function testbuildUrl() - { - $fops = 'imageView2/2/h/200'; - $fop = new Operation('testres.qiniudn.com'); - $url = $fop->buildUrl('gogopher.jpg', $fops); - $this->assertEquals($url, 'http://testres.qiniudn.com/gogopher.jpg?imageView2/2/h/200'); - - $fops = array('imageView2/2/h/200', 'imageInfo'); - $url = $fop->buildUrl('gogopher.jpg', $fops); - $this->assertEquals($url, 'http://testres.qiniudn.com/gogopher.jpg?imageView2/2/h/200|imageInfo'); - } -} diff --git a/vendor/qiniu/php-sdk/tests/Qiniu/Tests/FormUpTest.php b/vendor/qiniu/php-sdk/tests/Qiniu/Tests/FormUpTest.php deleted file mode 100644 index 4813eed97..000000000 --- a/vendor/qiniu/php-sdk/tests/Qiniu/Tests/FormUpTest.php +++ /dev/null @@ -1,59 +0,0 @@ -bucketName = $bucketName; - - global $testAuth; - $this->auth = $testAuth; - $this->cfg = new Config(); - } - - public function testData() - { - $token = $this->auth->uploadToken($this->bucketName); - list($ret, $error) = FormUploader::put($token, 'formput', 'hello world', $this->cfg, null, 'text/plain', null); - $this->assertNull($error); - $this->assertNotNull($ret['hash']); - } - - public function testData2() - { - $upManager = new UploadManager(); - $token = $this->auth->uploadToken($this->bucketName); - list($ret, $error) = $upManager->put($token, 'formput', 'hello world', null, 'text/plain', null); - $this->assertNull($error); - $this->assertNotNull($ret['hash']); - } - - public function testFile() - { - $key = 'formPutFile'; - $token = $this->auth->uploadToken($this->bucketName, $key); - list($ret, $error) = FormUploader::putFile($token, $key, __file__, $this->cfg, null, 'text/plain', null); - $this->assertNull($error); - $this->assertNotNull($ret['hash']); - } - - public function testFile2() - { - $key = 'formPutFile'; - $token = $this->auth->uploadToken($this->bucketName, $key); - $upManager = new UploadManager(); - list($ret, $error) = $upManager->putFile($token, $key, __file__, null, 'text/plain', null); - $this->assertNull($error); - $this->assertNotNull($ret['hash']); - } -} diff --git a/vendor/qiniu/php-sdk/tests/Qiniu/Tests/HttpTest.php b/vendor/qiniu/php-sdk/tests/Qiniu/Tests/HttpTest.php deleted file mode 100644 index e2ab5fc6d..000000000 --- a/vendor/qiniu/php-sdk/tests/Qiniu/Tests/HttpTest.php +++ /dev/null @@ -1,43 +0,0 @@ -assertEquals($response->statusCode, 200); - $this->assertNotNull($response->body); - $this->assertNull($response->error); - } - - public function testGetQiniu() - { - $response = Client::get('up.qiniu.com'); - $this->assertEquals(405, $response->statusCode); - $this->assertNotNull($response->body); - $this->assertNotNull($response->xReqId()); - $this->assertNotNull($response->xLog()); - $this->assertNotNull($response->error); - } - - public function testPost() - { - $response = Client::post('baidu.com', null); - $this->assertEquals($response->statusCode, 200); - $this->assertNotNull($response->body); - $this->assertNull($response->error); - } - - public function testPostQiniu() - { - $response = Client::post('up.qiniu.com', null); - $this->assertEquals($response->statusCode, 400); - $this->assertNotNull($response->body); - $this->assertNotNull($response->xReqId()); - $this->assertNotNull($response->xLog()); - $this->assertNotNull($response->error); - } -} diff --git a/vendor/qiniu/php-sdk/tests/Qiniu/Tests/ImageUrlBuilderTest.php b/vendor/qiniu/php-sdk/tests/Qiniu/Tests/ImageUrlBuilderTest.php deleted file mode 100644 index fca87b6fe..000000000 --- a/vendor/qiniu/php-sdk/tests/Qiniu/Tests/ImageUrlBuilderTest.php +++ /dev/null @@ -1,261 +0,0 @@ - - */ -class ImageUrlBuilderTest extends \PHPUnit_Framework_TestCase -{ - /** - * 缩略图测试 - * - * @test - * @return void - * @author Sherlock Ren - */ - public function testThumbutl() - { - $imageUrlBuilder = new \Qiniu\Processing\ImageUrlBuilder(); - $url = 'http://78re52.com1.z0.glb.clouddn.com/resource/gogopher.jpg'; - $url2 = $url . '?watermark/1/gravity/SouthEast/dx/0/dy/0/image/' - . 'aHR0cDovL2Fkcy1jZG4uY2h1Y2h1amllLmNvbS9Ga1R6bnpIY2RLdmRBUFc5cHZZZ3pTc21UY0tB'; - // 异常测试 - $this->assertEquals($url, $imageUrlBuilder->thumbnail($url, 1, 0, 0)); - $this->assertEquals($url, \Qiniu\thumbnail($url, 1, 0, 0)); - - // 简单缩略测试 - $this->assertEquals( - $url . '?imageView2/1/w/200/h/200/ignore-error/1/', - $imageUrlBuilder->thumbnail($url, 1, 200, 200) - ); - $this->assertEquals( - $url . '?imageView2/1/w/200/h/200/ignore-error/1/', - \Qiniu\thumbnail($url, 1, 200, 200) - ); - - // 输出格式测试 - $this->assertEquals( - $url . '?imageView2/1/w/200/h/200/format/png/ignore-error/1/', - $imageUrlBuilder->thumbnail($url, 1, 200, 200, 'png') - ); - $this->assertEquals( - $url . '?imageView2/1/w/200/h/200/format/png/ignore-error/1/', - \Qiniu\thumbnail($url, 1, 200, 200, 'png') - ); - - // 渐进显示测试 - $this->assertEquals( - $url . '?imageView2/1/w/200/h/200/format/png/interlace/1/ignore-error/1/', - $imageUrlBuilder->thumbnail($url, 1, 200, 200, 'png', 1) - ); - $this->assertEquals( - $url . '?imageView2/1/w/200/h/200/format/png/ignore-error/1/', - \Qiniu\thumbnail($url, 1, 200, 200, 'png', 2) - ); - - // 图片质量测试 - $this->assertEquals( - $url . '?imageView2/1/w/200/h/200/format/png/interlace/1/q/80/ignore-error/1/', - $imageUrlBuilder->thumbnail($url, 1, 200, 200, 'png', 1, 80) - ); - $this->assertEquals( - $url . '?imageView2/1/w/200/h/200/format/png/interlace/1/ignore-error/1/', - \Qiniu\thumbnail($url, 1, 200, 200, 'png', 1, 101) - ); - - // 多参数测试 - $this->assertEquals( - $url2 . '|imageView2/1/w/200/h/200/ignore-error/1/', - $imageUrlBuilder->thumbnail($url2, 1, 200, 200) - ); - $this->assertEquals( - $url2 . '|imageView2/1/w/200/h/200/ignore-error/1/', - \Qiniu\thumbnail($url2, 1, 200, 200) - ); - } - - /** - * 图片水印测试 - * - * @test - * @param void - * @return void - * @author Sherlock Ren - */ - public function waterImgTest() - { - $imageUrlBuilder = new \Qiniu\Processing\ImageUrlBuilder(); - $url = 'http://78re52.com1.z0.glb.clouddn.com/resource/gogopher.jpg'; - $url2 = $url . '?imageView2/1/w/200/h/200/format/png/ignore-error/1/'; - $image = 'http://developer.qiniu.com/resource/logo-2.jpg'; - - // 水印简单测试 - $this->assertEquals( - $url . '?watermark/1/image/aHR0cDovL2RldmVsb3Blci5xaW5pdS5jb20vcmVzb3VyY2UvbG9nby0yLmpwZw==' - . '/dissolve/100/gravity/SouthEast/', - $imageUrlBuilder->waterImg($url, $image) - ); - $this->assertEquals( - $url . '?watermark/1/image/aHR0cDovL2RldmVsb3Blci5xaW5pdS5jb20vcmVzb3VyY2UvbG9nby0yLmpwZw==' - . '/gravity/SouthEast/', - $imageUrlBuilder->waterImg($url, $image, 101) - ); - $this->assertEquals( - $url . '?watermark/1/image/aHR0cDovL2RldmVsb3Blci5xaW5pdS5jb20vcmVzb3VyY2UvbG9nby0yLmpwZw==/', - $imageUrlBuilder->waterImg($url, $image, 101, 'sdfsd') - ); - $this->assertEquals( - $url . '?watermark/1/image/aHR0cDovL2RldmVsb3Blci5xaW5pdS5jb20vcmVzb3VyY2UvbG9nby0yLmpwZw==' - . '/dissolve/100/gravity/SouthEast/', - \Qiniu\waterImg($url, $image) - ); - - // 横轴边距测试 - $this->assertEquals( - $url . '?watermark/1/image/aHR0cDovL2RldmVsb3Blci5xaW5pdS5jb20vcmVzb3VyY2UvbG9nby0yLmpwZw==' - . '/dissolve/100/gravity/SouthEast/dx/10/', - $imageUrlBuilder->waterImg($url, $image, 100, 'SouthEast', 10) - ); - $this->assertEquals( - $url . '?watermark/1/image/aHR0cDovL2RldmVsb3Blci5xaW5pdS5jb20vcmVzb3VyY2UvbG9nby0yLmpwZw==' - . '/dissolve/100/gravity/SouthEast/', - \Qiniu\waterImg($url, $image, 100, 'SouthEast', 'sad') - ); - - // 纵轴边距测试 - $this->assertEquals( - $url . '?watermark/1/image/aHR0cDovL2RldmVsb3Blci5xaW5pdS5jb20vcmVzb3VyY2UvbG9nby0yLmpwZw==' - . '/dissolve/100/gravity/SouthEast/dx/10/dy/10/', - $imageUrlBuilder->waterImg($url, $image, 100, 'SouthEast', 10, 10) - ); - $this->assertEquals( - $url . '?watermark/1/image/aHR0cDovL2RldmVsb3Blci5xaW5pdS5jb20vcmVzb3VyY2UvbG9nby0yLmpwZw==' - . '/dissolve/100/gravity/SouthEast/', - \Qiniu\waterImg($url, $image, 100, 'SouthEast', 'sad', 'asdf') - ); - - // 自适应原图的短边比例测试 - $this->assertEquals( - $url . '?watermark/1/image/aHR0cDovL2RldmVsb3Blci5xaW5pdS5jb20vcmVzb3VyY2UvbG9nby0yLmpwZw==' - . '/dissolve/100/gravity/SouthEast/dx/10/dy/10/ws/0.5/', - $imageUrlBuilder->waterImg($url, $image, 100, 'SouthEast', 10, 10, 0.5) - ); - $this->assertEquals( - $url . '?watermark/1/image/aHR0cDovL2RldmVsb3Blci5xaW5pdS5jb20vcmVzb3VyY2UvbG9nby0yLmpwZw==' - . '/dissolve/100/gravity/SouthEast/', - \Qiniu\waterImg($url, $image, 100, 'SouthEast', 'sad', 'asdf', 2) - ); - - // 多参数测试 - $this->assertEquals( - $url2 . '|watermark/1/image/aHR0cDovL2RldmVsb3Blci5xaW5pdS5jb20vcmVzb3VyY2UvbG9nby0yLmpwZw==' - . '/dissolve/100/gravity/SouthEast/', - $imageUrlBuilder->waterImg($url2, $image) - ); - $this->assertEquals( - $url2 . '|watermark/1/image/aHR0cDovL2RldmVsb3Blci5xaW5pdS5jb20vcmVzb3VyY2UvbG9nby0yLmpwZw==' - . '/dissolve/100/gravity/SouthEast/', - \Qiniu\waterImg($url2, $image) - ); - } - - /** - * 文字水印测试 - * - * @test - * @param void - * @return void - * @author Sherlock Ren - */ - public function waterTextTest() - { - $imageUrlBuilder = new \Qiniu\Processing\ImageUrlBuilder(); - $url = 'http://78re52.com1.z0.glb.clouddn.com/resource/gogopher.jpg'; - $url2 = $url . '?imageView2/1/w/200/h/200/format/png/ignore-error/1/'; - $text = '测试一下'; - $font = '微软雅黑'; - $fontColor = '#FF0000'; - - // 水印简单测试 - $this->assertEquals($url . '?watermark/2/text/5rWL6K-V5LiA5LiL/font/5b6u6L2v6ZuF6buR/' - . 'fontsize/500/dissolve/100/gravity/SouthEast/', $imageUrlBuilder->waterText($url, $text, $font, 500)); - $this->assertEquals( - $url . '?watermark/2/text/5rWL6K-V5LiA5LiL/font/5b6u6L2v6ZuF6buR/' - . 'dissolve/100/gravity/SouthEast/', - \Qiniu\waterText($url, $text, $font, 'sdf') - ); - - // 字体颜色测试 - $this->assertEquals( - $url . '?watermark/2/text/5rWL6K-V5LiA5LiL/font/5b6u6L2v6ZuF6buR/fontsize/500/fill/' - . 'I0ZGMDAwMA==/dissolve/100/gravity/SouthEast/', - $imageUrlBuilder->waterText($url, $text, $font, 500, $fontColor) - ); - $this->assertEquals( - $url . '?watermark/2/text/5rWL6K-V5LiA5LiL/font/5b6u6L2v6ZuF6buR/fill/I0ZGMDAwMA==' - . '/dissolve/100/gravity/SouthEast/', - \Qiniu\waterText($url, $text, $font, 'sdf', $fontColor) - ); - - // 透明度测试 - $this->assertEquals( - $url . '?watermark/2/text/5rWL6K-V5LiA5LiL/font/5b6u6L2v6ZuF6buR/fontsize/500/fill/I0ZGMDAwMA==' - . '/dissolve/80/gravity/SouthEast/', - $imageUrlBuilder->waterText($url, $text, $font, 500, $fontColor, 80) - ); - $this->assertEquals( - $url . '?watermark/2/text/5rWL6K-V5LiA5LiL/font/5b6u6L2v6ZuF6buR/fill/I0ZGMDAwMA==' - . '/gravity/SouthEast/', - \Qiniu\waterText($url, $text, $font, 'sdf', $fontColor, 101) - ); - - // 水印位置测试 - $this->assertEquals( - $url . '?watermark/2/text/5rWL6K-V5LiA5LiL/font/5b6u6L2v6ZuF6buR/fontsize/500/fill/I0ZGMDAwMA==' - . '/dissolve/80/gravity/East/', - $imageUrlBuilder->waterText($url, $text, $font, 500, $fontColor, 80, 'East') - ); - $this->assertEquals( - $url . '?watermark/2/text/5rWL6K-V5LiA5LiL/font/5b6u6L2v6ZuF6buR/fill/I0ZGMDAwMA==/', - \Qiniu\waterText($url, $text, $font, 'sdf', $fontColor, 101, 'sdfsdf') - ); - - // 横轴距离测试 - $this->assertEquals( - $url . '?watermark/2/text/5rWL6K-V5LiA5LiL/font/5b6u6L2v6ZuF6buR/fontsize/500/fill/I0ZGMDAwMA==' - . '/dissolve/80/gravity/East/dx/10/', - $imageUrlBuilder->waterText($url, $text, $font, 500, $fontColor, 80, 'East', 10) - ); - $this->assertEquals( - $url . '?watermark/2/text/5rWL6K-V5LiA5LiL/font/5b6u6L2v6ZuF6buR/fill/I0ZGMDAwMA==/', - \Qiniu\waterText($url, $text, $font, 'sdf', $fontColor, 101, 'sdfsdf', 'sdfs') - ); - - // 纵轴距离测试 - $this->assertEquals( - $url . '?watermark/2/text/5rWL6K-V5LiA5LiL/font/5b6u6L2v6ZuF6buR/fontsize/500/fill/I0ZGMDAwMA==' - . '/dissolve/80/gravity/East/dx/10/dy/10/', - $imageUrlBuilder->waterText($url, $text, $font, 500, $fontColor, 80, 'East', 10, 10) - ); - $this->assertEquals( - $url . '?watermark/2/text/5rWL6K-V5LiA5LiL/font/5b6u6L2v6ZuF6buR/fill/I0ZGMDAwMA==/', - \Qiniu\waterText($url, $text, $font, 'sdf', $fontColor, 101, 'sdfsdf', 'sdfs', 'ssdf') - ); - // 多参数测试 - $this->assertEquals( - $url2 . '|watermark/2/text/5rWL6K-V5LiA5LiL/font/5b6u6L2v6ZuF6buR/' - . 'fontsize/500/dissolve/100/gravity/SouthEast/', - $imageUrlBuilder->waterText($url2, $text, $font, 500) - ); - $this->assertEquals( - $url2 . '|watermark/2/text/5rWL6K-V5LiA5LiL/font/5b6u6L2v6ZuF6buR/' - . 'fontsize/500/dissolve/100/gravity/SouthEast/', - \Qiniu\waterText($url2, $text, $font, 500) - ); - } -} diff --git a/vendor/qiniu/php-sdk/tests/Qiniu/Tests/PfopTest.php b/vendor/qiniu/php-sdk/tests/Qiniu/Tests/PfopTest.php deleted file mode 100644 index d03b3f6e9..000000000 --- a/vendor/qiniu/php-sdk/tests/Qiniu/Tests/PfopTest.php +++ /dev/null @@ -1,66 +0,0 @@ -execute($bucket, $key, $fops); - $this->assertNull($error); - list($status, $error) = $pfop->status($id); - $this->assertNotNull($status); - $this->assertNull($error); - } - - - public function testPfops() - { - global $testAuth; - $bucket = 'testres'; - $key = 'sintel_trailer.mp4'; - $fops = array( - 'avthumb/m3u8/segtime/10/vcodec/libx264/s/320x240', - 'vframe/jpg/offset/7/w/480/h/360', - ); - $pfop = new PersistentFop($testAuth, null); - - list($id, $error) = $pfop->execute($bucket, $key, $fops); - $this->assertNull($error); - - list($status, $error) = $pfop->status($id); - $this->assertNotNull($status); - $this->assertNull($error); - } - - public function testMkzip() - { - global $testAuth; - $bucket = 'phpsdk'; - $key = 'php-logo.png'; - $pfop = new PersistentFop($testAuth, null); - - $url1 = 'http://phpsdk.qiniudn.com/php-logo.png'; - $url2 = 'http://phpsdk.qiniudn.com/php-sdk.html'; - $zipKey = 'test.zip'; - - $fops = 'mkzip/2/url/' . \Qiniu\base64_urlSafeEncode($url1); - $fops .= '/url/' . \Qiniu\base64_urlSafeEncode($url2); - $fops .= '|saveas/' . \Qiniu\base64_urlSafeEncode("$bucket:$zipKey"); - - list($id, $error) = $pfop->execute($bucket, $key, $fops); - $this->assertNull($error); - - list($status, $error) = $pfop->status($id); - $this->assertNotNull($status); - $this->assertNull($error); - } -} diff --git a/vendor/qiniu/php-sdk/tests/Qiniu/Tests/ResumeUpTest.php b/vendor/qiniu/php-sdk/tests/Qiniu/Tests/ResumeUpTest.php deleted file mode 100644 index 41e6ea8ab..000000000 --- a/vendor/qiniu/php-sdk/tests/Qiniu/Tests/ResumeUpTest.php +++ /dev/null @@ -1,60 +0,0 @@ -bucketName = $bucketName; - - global $testAuth; - $this->auth = $testAuth; - } - - public function test4ML() - { - $key = 'resumePutFile4ML'; - $upManager = new UploadManager(); - $token = $this->auth->uploadToken($this->bucketName, $key); - $tempFile = qiniuTempFile(4 * 1024 * 1024 + 10); - list($ret, $error) = $upManager->putFile($token, $key, $tempFile); - $this->assertNull($error); - $this->assertNotNull($ret['hash']); - unlink($tempFile); - } - - public function test4ML2() - { - $key = 'resumePutFile4ML'; - $zone = new Zone(array('up.fake.qiniu.com'), array('up.qiniup.com')); - $cfg = new Config($zone); - $upManager = new UploadManager($cfg); - $token = $this->auth->uploadToken($this->bucketName, $key); - $tempFile = qiniuTempFile(4 * 1024 * 1024 + 10); - list($ret, $error) = $upManager->putFile($token, $key, $tempFile); - $this->assertNull($error); - $this->assertNotNull($ret['hash']); - unlink($tempFile); - } - - // public function test8M() - // { - // $key = 'resumePutFile8M'; - // $upManager = new UploadManager(); - // $token = $this->auth->uploadToken($this->bucketName, $key); - // $tempFile = qiniuTempFile(8*1024*1024+10); - // list($ret, $error) = $upManager->putFile($token, $key, $tempFile); - // $this->assertNull($error); - // $this->assertNotNull($ret['hash']); - // unlink($tempFile); - // } -} diff --git a/vendor/qiniu/php-sdk/tests/Qiniu/Tests/ZoneTest.php b/vendor/qiniu/php-sdk/tests/Qiniu/Tests/ZoneTest.php deleted file mode 100644 index d32875bd2..000000000 --- a/vendor/qiniu/php-sdk/tests/Qiniu/Tests/ZoneTest.php +++ /dev/null @@ -1,59 +0,0 @@ -bucketName = $bucketName; - - global $bucketNameBC; - $this->bucketNameBC = $bucketNameBC; - - global $bucketNameNA; - $this->bucketNameNA = $bucketNameNA; - - global $accessKey; - $this->ak = $accessKey; - - $this->zone = new Zone(); - $this->zoneHttps = new Zone('https'); - } - - public function testUpHosts() - { - $zone = Zone::queryZone($this->ak, $this->bucketName); - $this->assertContains('upload.qiniup.com', $zone->cdnUpHosts); - - $zone = Zone::queryZone($this->ak, $this->bucketNameBC); - $this->assertContains('upload-z1.qiniup.com', $zone->cdnUpHosts); - - $zone = Zone::queryZone($this->ak, $this->bucketNameNA); - $this->assertContains('upload-na0.qiniup.com', $zone->cdnUpHosts); - } - - public function testIoHosts() - { - $zone = Zone::queryZone($this->ak, $this->bucketName); - $this->assertEquals($zone->iovipHost, 'iovip.qbox.me'); - - $zone = Zone::queryZone($this->ak, $this->bucketNameBC); - $this->assertEquals($zone->iovipHost, 'iovip-z1.qbox.me'); - - $zone = Zone::queryZone($this->ak, $this->bucketNameNA); - $this->assertEquals($zone->iovipHost, 'iovip-na0.qbox.me'); - } -} diff --git a/vendor/qiniu/php-sdk/tests/bootstrap.php b/vendor/qiniu/php-sdk/tests/bootstrap.php deleted file mode 100644 index 5bd8b0569..000000000 --- a/vendor/qiniu/php-sdk/tests/bootstrap.php +++ /dev/null @@ -1,43 +0,0 @@ - 0) { - fseek($file, $size - 1); - fwrite($file, ' '); - } - fclose($file); - return $fileName; -} diff --git a/vendor/symfony/options-resolver/.gitignore b/vendor/symfony/options-resolver/.gitignore deleted file mode 100644 index c49a5d8df..000000000 --- a/vendor/symfony/options-resolver/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -vendor/ -composer.lock -phpunit.xml diff --git a/vendor/symfony/options-resolver/CHANGELOG.md b/vendor/symfony/options-resolver/CHANGELOG.md deleted file mode 100644 index 6e9d49fb6..000000000 --- a/vendor/symfony/options-resolver/CHANGELOG.md +++ /dev/null @@ -1,52 +0,0 @@ -CHANGELOG -========= - -3.4.0 ------ - - * added `OptionsResolverIntrospector` to inspect options definitions inside an `OptionsResolver` instance - * added array of types support in allowed types (e.g int[]) - -2.6.0 ------ - - * deprecated OptionsResolverInterface - * [BC BREAK] removed "array" type hint from OptionsResolverInterface methods - setRequired(), setAllowedValues(), addAllowedValues(), setAllowedTypes() and - addAllowedTypes() - * added OptionsResolver::setDefault() - * added OptionsResolver::hasDefault() - * added OptionsResolver::setNormalizer() - * added OptionsResolver::isRequired() - * added OptionsResolver::getRequiredOptions() - * added OptionsResolver::isMissing() - * added OptionsResolver::getMissingOptions() - * added OptionsResolver::setDefined() - * added OptionsResolver::isDefined() - * added OptionsResolver::getDefinedOptions() - * added OptionsResolver::remove() - * added OptionsResolver::clear() - * deprecated OptionsResolver::replaceDefaults() - * deprecated OptionsResolver::setOptional() in favor of setDefined() - * deprecated OptionsResolver::isKnown() in favor of isDefined() - * [BC BREAK] OptionsResolver::isRequired() returns true now if a required - option has a default value set - * [BC BREAK] merged Options into OptionsResolver and turned Options into an - interface - * deprecated Options::overload() (now in OptionsResolver) - * deprecated Options::set() (now in OptionsResolver) - * deprecated Options::get() (now in OptionsResolver) - * deprecated Options::has() (now in OptionsResolver) - * deprecated Options::replace() (now in OptionsResolver) - * [BC BREAK] Options::get() (now in OptionsResolver) can only be used within - lazy option/normalizer closures now - * [BC BREAK] removed Traversable interface from Options since using within - lazy option/normalizer closures resulted in exceptions - * [BC BREAK] removed Options::all() since using within lazy option/normalizer - closures resulted in exceptions - * [BC BREAK] OptionDefinitionException now extends LogicException instead of - RuntimeException - * [BC BREAK] normalizers are not executed anymore for unset options - * normalizers are executed after validating the options now - * [BC BREAK] an UndefinedOptionsException is now thrown instead of an - InvalidOptionsException when non-existing options are passed diff --git a/vendor/symfony/options-resolver/Debug/OptionsResolverIntrospector.php b/vendor/symfony/options-resolver/Debug/OptionsResolverIntrospector.php deleted file mode 100644 index 60317243e..000000000 --- a/vendor/symfony/options-resolver/Debug/OptionsResolverIntrospector.php +++ /dev/null @@ -1,102 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\OptionsResolver\Debug; - -use Symfony\Component\OptionsResolver\Exception\NoConfigurationException; -use Symfony\Component\OptionsResolver\Exception\UndefinedOptionsException; -use Symfony\Component\OptionsResolver\OptionsResolver; - -/** - * @author Maxime Steinhausser - * - * @final - */ -class OptionsResolverIntrospector -{ - private $get; - - public function __construct(OptionsResolver $optionsResolver) - { - $this->get = \Closure::bind(function ($property, $option, $message) { - /** @var OptionsResolver $this */ - if (!$this->isDefined($option)) { - throw new UndefinedOptionsException(sprintf('The option "%s" does not exist.', $option)); - } - - if (!array_key_exists($option, $this->{$property})) { - throw new NoConfigurationException($message); - } - - return $this->{$property}[$option]; - }, $optionsResolver, $optionsResolver); - } - - /** - * @param string $option - * - * @return mixed - * - * @throws NoConfigurationException on no configured value - */ - public function getDefault($option) - { - return call_user_func($this->get, 'defaults', $option, sprintf('No default value was set for the "%s" option.', $option)); - } - - /** - * @param string $option - * - * @return \Closure[] - * - * @throws NoConfigurationException on no configured closures - */ - public function getLazyClosures($option) - { - return call_user_func($this->get, 'lazy', $option, sprintf('No lazy closures were set for the "%s" option.', $option)); - } - - /** - * @param string $option - * - * @return string[] - * - * @throws NoConfigurationException on no configured types - */ - public function getAllowedTypes($option) - { - return call_user_func($this->get, 'allowedTypes', $option, sprintf('No allowed types were set for the "%s" option.', $option)); - } - - /** - * @param string $option - * - * @return mixed[] - * - * @throws NoConfigurationException on no configured values - */ - public function getAllowedValues($option) - { - return call_user_func($this->get, 'allowedValues', $option, sprintf('No allowed values were set for the "%s" option.', $option)); - } - - /** - * @param string $option - * - * @return \Closure - * - * @throws NoConfigurationException on no configured normalizer - */ - public function getNormalizer($option) - { - return call_user_func($this->get, 'normalizers', $option, sprintf('No normalizer was set for the "%s" option.', $option)); - } -} diff --git a/vendor/symfony/options-resolver/Exception/AccessException.php b/vendor/symfony/options-resolver/Exception/AccessException.php deleted file mode 100644 index c12b68064..000000000 --- a/vendor/symfony/options-resolver/Exception/AccessException.php +++ /dev/null @@ -1,22 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\OptionsResolver\Exception; - -/** - * Thrown when trying to read an option outside of or write it inside of - * {@link \Symfony\Component\OptionsResolver\Options::resolve()}. - * - * @author Bernhard Schussek - */ -class AccessException extends \LogicException implements ExceptionInterface -{ -} diff --git a/vendor/symfony/options-resolver/Exception/ExceptionInterface.php b/vendor/symfony/options-resolver/Exception/ExceptionInterface.php deleted file mode 100644 index b62bb51d4..000000000 --- a/vendor/symfony/options-resolver/Exception/ExceptionInterface.php +++ /dev/null @@ -1,21 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\OptionsResolver\Exception; - -/** - * Marker interface for all exceptions thrown by the OptionsResolver component. - * - * @author Bernhard Schussek - */ -interface ExceptionInterface -{ -} diff --git a/vendor/symfony/options-resolver/Exception/InvalidArgumentException.php b/vendor/symfony/options-resolver/Exception/InvalidArgumentException.php deleted file mode 100644 index 6d421d68b..000000000 --- a/vendor/symfony/options-resolver/Exception/InvalidArgumentException.php +++ /dev/null @@ -1,21 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\OptionsResolver\Exception; - -/** - * Thrown when an argument is invalid. - * - * @author Bernhard Schussek - */ -class InvalidArgumentException extends \InvalidArgumentException implements ExceptionInterface -{ -} diff --git a/vendor/symfony/options-resolver/Exception/InvalidOptionsException.php b/vendor/symfony/options-resolver/Exception/InvalidOptionsException.php deleted file mode 100644 index 6fd4f125f..000000000 --- a/vendor/symfony/options-resolver/Exception/InvalidOptionsException.php +++ /dev/null @@ -1,23 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\OptionsResolver\Exception; - -/** - * Thrown when the value of an option does not match its validation rules. - * - * You should make sure a valid value is passed to the option. - * - * @author Bernhard Schussek - */ -class InvalidOptionsException extends InvalidArgumentException -{ -} diff --git a/vendor/symfony/options-resolver/Exception/MissingOptionsException.php b/vendor/symfony/options-resolver/Exception/MissingOptionsException.php deleted file mode 100644 index faa487f16..000000000 --- a/vendor/symfony/options-resolver/Exception/MissingOptionsException.php +++ /dev/null @@ -1,23 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\OptionsResolver\Exception; - -/** - * Exception thrown when a required option is missing. - * - * Add the option to the passed options array. - * - * @author Bernhard Schussek - */ -class MissingOptionsException extends InvalidArgumentException -{ -} diff --git a/vendor/symfony/options-resolver/Exception/NoConfigurationException.php b/vendor/symfony/options-resolver/Exception/NoConfigurationException.php deleted file mode 100644 index 6693ec14d..000000000 --- a/vendor/symfony/options-resolver/Exception/NoConfigurationException.php +++ /dev/null @@ -1,26 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\OptionsResolver\Exception; - -use Symfony\Component\OptionsResolver\Debug\OptionsResolverIntrospector; - -/** - * Thrown when trying to introspect an option definition property - * for which no value was configured inside the OptionsResolver instance. - * - * @see OptionsResolverIntrospector - * - * @author Maxime Steinhausser - */ -class NoConfigurationException extends \RuntimeException implements ExceptionInterface -{ -} diff --git a/vendor/symfony/options-resolver/Exception/NoSuchOptionException.php b/vendor/symfony/options-resolver/Exception/NoSuchOptionException.php deleted file mode 100644 index 4c3280f4c..000000000 --- a/vendor/symfony/options-resolver/Exception/NoSuchOptionException.php +++ /dev/null @@ -1,26 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\OptionsResolver\Exception; - -/** - * Thrown when trying to read an option that has no value set. - * - * When accessing optional options from within a lazy option or normalizer you should first - * check whether the optional option is set. You can do this with `isset($options['optional'])`. - * In contrast to the {@link UndefinedOptionsException}, this is a runtime exception that can - * occur when evaluating lazy options. - * - * @author Tobias Schultze - */ -class NoSuchOptionException extends \OutOfBoundsException implements ExceptionInterface -{ -} diff --git a/vendor/symfony/options-resolver/Exception/OptionDefinitionException.php b/vendor/symfony/options-resolver/Exception/OptionDefinitionException.php deleted file mode 100644 index e8e339d44..000000000 --- a/vendor/symfony/options-resolver/Exception/OptionDefinitionException.php +++ /dev/null @@ -1,21 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\OptionsResolver\Exception; - -/** - * Thrown when two lazy options have a cyclic dependency. - * - * @author Bernhard Schussek - */ -class OptionDefinitionException extends \LogicException implements ExceptionInterface -{ -} diff --git a/vendor/symfony/options-resolver/Exception/UndefinedOptionsException.php b/vendor/symfony/options-resolver/Exception/UndefinedOptionsException.php deleted file mode 100644 index 6ca3fce47..000000000 --- a/vendor/symfony/options-resolver/Exception/UndefinedOptionsException.php +++ /dev/null @@ -1,24 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\OptionsResolver\Exception; - -/** - * Exception thrown when an undefined option is passed. - * - * You should remove the options in question from your code or define them - * beforehand. - * - * @author Bernhard Schussek - */ -class UndefinedOptionsException extends InvalidArgumentException -{ -} diff --git a/vendor/symfony/options-resolver/LICENSE b/vendor/symfony/options-resolver/LICENSE deleted file mode 100644 index 21d7fb9e2..000000000 --- a/vendor/symfony/options-resolver/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2004-2018 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 -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. diff --git a/vendor/symfony/options-resolver/Options.php b/vendor/symfony/options-resolver/Options.php deleted file mode 100644 index d444ec423..000000000 --- a/vendor/symfony/options-resolver/Options.php +++ /dev/null @@ -1,22 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\OptionsResolver; - -/** - * Contains resolved option values. - * - * @author Bernhard Schussek - * @author Tobias Schultze - */ -interface Options extends \ArrayAccess, \Countable -{ -} diff --git a/vendor/symfony/options-resolver/OptionsResolver.php b/vendor/symfony/options-resolver/OptionsResolver.php deleted file mode 100644 index 95a492de9..000000000 --- a/vendor/symfony/options-resolver/OptionsResolver.php +++ /dev/null @@ -1,1081 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\OptionsResolver; - -use Symfony\Component\OptionsResolver\Exception\AccessException; -use Symfony\Component\OptionsResolver\Exception\InvalidOptionsException; -use Symfony\Component\OptionsResolver\Exception\MissingOptionsException; -use Symfony\Component\OptionsResolver\Exception\NoSuchOptionException; -use Symfony\Component\OptionsResolver\Exception\OptionDefinitionException; -use Symfony\Component\OptionsResolver\Exception\UndefinedOptionsException; - -/** - * Validates options and merges them with default values. - * - * @author Bernhard Schussek - * @author Tobias Schultze - */ -class OptionsResolver implements Options -{ - /** - * The names of all defined options. - */ - private $defined = array(); - - /** - * The default option values. - */ - private $defaults = array(); - - /** - * The names of required options. - */ - private $required = array(); - - /** - * The resolved option values. - */ - private $resolved = array(); - - /** - * A list of normalizer closures. - * - * @var \Closure[] - */ - private $normalizers = array(); - - /** - * A list of accepted values for each option. - */ - private $allowedValues = array(); - - /** - * A list of accepted types for each option. - */ - private $allowedTypes = array(); - - /** - * A list of closures for evaluating lazy options. - */ - private $lazy = array(); - - /** - * A list of lazy options whose closure is currently being called. - * - * This list helps detecting circular dependencies between lazy options. - */ - private $calling = array(); - - /** - * Whether the instance is locked for reading. - * - * Once locked, the options cannot be changed anymore. This is - * necessary in order to avoid inconsistencies during the resolving - * process. If any option is changed after being read, all evaluated - * lazy options that depend on this option would become invalid. - */ - private $locked = false; - - private static $typeAliases = array( - 'boolean' => 'bool', - 'integer' => 'int', - 'double' => 'float', - ); - - /** - * Sets the default value of a given option. - * - * If the default value should be set based on other options, you can pass - * a closure with the following signature: - * - * function (Options $options) { - * // ... - * } - * - * The closure will be evaluated when {@link resolve()} is called. The - * closure has access to the resolved values of other options through the - * passed {@link Options} instance: - * - * function (Options $options) { - * if (isset($options['port'])) { - * // ... - * } - * } - * - * If you want to access the previously set default value, add a second - * argument to the closure's signature: - * - * $options->setDefault('name', 'Default Name'); - * - * $options->setDefault('name', function (Options $options, $previousValue) { - * // 'Default Name' === $previousValue - * }); - * - * This is mostly useful if the configuration of the {@link Options} object - * is spread across different locations of your code, such as base and - * sub-classes. - * - * @param string $option The name of the option - * @param mixed $value The default value of the option - * - * @return $this - * - * @throws AccessException If called from a lazy option or normalizer - */ - public function setDefault($option, $value) - { - // Setting is not possible once resolving starts, because then lazy - // options could manipulate the state of the object, leading to - // inconsistent results. - if ($this->locked) { - throw new AccessException('Default values cannot be set from a lazy option or normalizer.'); - } - - // If an option is a closure that should be evaluated lazily, store it - // in the "lazy" property. - if ($value instanceof \Closure) { - $reflClosure = new \ReflectionFunction($value); - $params = $reflClosure->getParameters(); - - if (isset($params[0]) && null !== ($class = $params[0]->getClass()) && Options::class === $class->name) { - // Initialize the option if no previous value exists - if (!isset($this->defaults[$option])) { - $this->defaults[$option] = null; - } - - // Ignore previous lazy options if the closure has no second parameter - if (!isset($this->lazy[$option]) || !isset($params[1])) { - $this->lazy[$option] = array(); - } - - // Store closure for later evaluation - $this->lazy[$option][] = $value; - $this->defined[$option] = true; - - // Make sure the option is processed - unset($this->resolved[$option]); - - return $this; - } - } - - // This option is not lazy anymore - unset($this->lazy[$option]); - - // Yet undefined options can be marked as resolved, because we only need - // to resolve options with lazy closures, normalizers or validation - // rules, none of which can exist for undefined options - // If the option was resolved before, update the resolved value - if (!isset($this->defined[$option]) || array_key_exists($option, $this->resolved)) { - $this->resolved[$option] = $value; - } - - $this->defaults[$option] = $value; - $this->defined[$option] = true; - - return $this; - } - - /** - * Sets a list of default values. - * - * @param array $defaults The default values to set - * - * @return $this - * - * @throws AccessException If called from a lazy option or normalizer - */ - public function setDefaults(array $defaults) - { - foreach ($defaults as $option => $value) { - $this->setDefault($option, $value); - } - - return $this; - } - - /** - * Returns whether a default value is set for an option. - * - * Returns true if {@link setDefault()} was called for this option. - * An option is also considered set if it was set to null. - * - * @param string $option The option name - * - * @return bool Whether a default value is set - */ - public function hasDefault($option) - { - return array_key_exists($option, $this->defaults); - } - - /** - * Marks one or more options as required. - * - * @param string|string[] $optionNames One or more option names - * - * @return $this - * - * @throws AccessException If called from a lazy option or normalizer - */ - public function setRequired($optionNames) - { - if ($this->locked) { - throw new AccessException('Options cannot be made required from a lazy option or normalizer.'); - } - - foreach ((array) $optionNames as $option) { - $this->defined[$option] = true; - $this->required[$option] = true; - } - - return $this; - } - - /** - * Returns whether an option is required. - * - * An option is required if it was passed to {@link setRequired()}. - * - * @param string $option The name of the option - * - * @return bool Whether the option is required - */ - public function isRequired($option) - { - return isset($this->required[$option]); - } - - /** - * Returns the names of all required options. - * - * @return string[] The names of the required options - * - * @see isRequired() - */ - public function getRequiredOptions() - { - return array_keys($this->required); - } - - /** - * Returns whether an option is missing a default value. - * - * An option is missing if it was passed to {@link setRequired()}, but not - * to {@link setDefault()}. This option must be passed explicitly to - * {@link resolve()}, otherwise an exception will be thrown. - * - * @param string $option The name of the option - * - * @return bool Whether the option is missing - */ - public function isMissing($option) - { - return isset($this->required[$option]) && !array_key_exists($option, $this->defaults); - } - - /** - * Returns the names of all options missing a default value. - * - * @return string[] The names of the missing options - * - * @see isMissing() - */ - public function getMissingOptions() - { - return array_keys(array_diff_key($this->required, $this->defaults)); - } - - /** - * Defines a valid option name. - * - * Defines an option name without setting a default value. The option will - * be accepted when passed to {@link resolve()}. When not passed, the - * option will not be included in the resolved options. - * - * @param string|string[] $optionNames One or more option names - * - * @return $this - * - * @throws AccessException If called from a lazy option or normalizer - */ - public function setDefined($optionNames) - { - if ($this->locked) { - throw new AccessException('Options cannot be defined from a lazy option or normalizer.'); - } - - foreach ((array) $optionNames as $option) { - $this->defined[$option] = true; - } - - return $this; - } - - /** - * Returns whether an option is defined. - * - * Returns true for any option passed to {@link setDefault()}, - * {@link setRequired()} or {@link setDefined()}. - * - * @param string $option The option name - * - * @return bool Whether the option is defined - */ - public function isDefined($option) - { - return isset($this->defined[$option]); - } - - /** - * Returns the names of all defined options. - * - * @return string[] The names of the defined options - * - * @see isDefined() - */ - public function getDefinedOptions() - { - return array_keys($this->defined); - } - - /** - * Sets the normalizer for an option. - * - * The normalizer should be a closure with the following signature: - * - * ```php - * function (Options $options, $value) { - * // ... - * } - * ``` - * - * The closure is invoked when {@link resolve()} is called. The closure - * has access to the resolved values of other options through the passed - * {@link Options} instance. - * - * The second parameter passed to the closure is the value of - * the option. - * - * The resolved option value is set to the return value of the closure. - * - * @param string $option The option name - * @param \Closure $normalizer The normalizer - * - * @return $this - * - * @throws UndefinedOptionsException If the option is undefined - * @throws AccessException If called from a lazy option or normalizer - */ - public function setNormalizer($option, \Closure $normalizer) - { - if ($this->locked) { - throw new AccessException('Normalizers cannot be set from a lazy option or normalizer.'); - } - - if (!isset($this->defined[$option])) { - throw new UndefinedOptionsException(sprintf( - 'The option "%s" does not exist. Defined options are: "%s".', - $option, - implode('", "', array_keys($this->defined)) - )); - } - - $this->normalizers[$option] = $normalizer; - - // Make sure the option is processed - unset($this->resolved[$option]); - - return $this; - } - - /** - * Sets allowed values for an option. - * - * Instead of passing values, you may also pass a closures with the - * following signature: - * - * function ($value) { - * // return true or false - * } - * - * The closure receives the value as argument and should return true to - * accept the value and false to reject the value. - * - * @param string $option The option name - * @param mixed $allowedValues One or more acceptable values/closures - * - * @return $this - * - * @throws UndefinedOptionsException If the option is undefined - * @throws AccessException If called from a lazy option or normalizer - */ - public function setAllowedValues($option, $allowedValues) - { - if ($this->locked) { - throw new AccessException('Allowed values cannot be set from a lazy option or normalizer.'); - } - - if (!isset($this->defined[$option])) { - throw new UndefinedOptionsException(sprintf( - 'The option "%s" does not exist. Defined options are: "%s".', - $option, - implode('", "', array_keys($this->defined)) - )); - } - - $this->allowedValues[$option] = is_array($allowedValues) ? $allowedValues : array($allowedValues); - - // Make sure the option is processed - unset($this->resolved[$option]); - - return $this; - } - - /** - * Adds allowed values for an option. - * - * The values are merged with the allowed values defined previously. - * - * Instead of passing values, you may also pass a closures with the - * following signature: - * - * function ($value) { - * // return true or false - * } - * - * The closure receives the value as argument and should return true to - * accept the value and false to reject the value. - * - * @param string $option The option name - * @param mixed $allowedValues One or more acceptable values/closures - * - * @return $this - * - * @throws UndefinedOptionsException If the option is undefined - * @throws AccessException If called from a lazy option or normalizer - */ - public function addAllowedValues($option, $allowedValues) - { - if ($this->locked) { - throw new AccessException('Allowed values cannot be added from a lazy option or normalizer.'); - } - - if (!isset($this->defined[$option])) { - throw new UndefinedOptionsException(sprintf( - 'The option "%s" does not exist. Defined options are: "%s".', - $option, - implode('", "', array_keys($this->defined)) - )); - } - - if (!is_array($allowedValues)) { - $allowedValues = array($allowedValues); - } - - if (!isset($this->allowedValues[$option])) { - $this->allowedValues[$option] = $allowedValues; - } else { - $this->allowedValues[$option] = array_merge($this->allowedValues[$option], $allowedValues); - } - - // Make sure the option is processed - unset($this->resolved[$option]); - - return $this; - } - - /** - * Sets allowed types for an option. - * - * Any type for which a corresponding is_() function exists is - * acceptable. Additionally, fully-qualified class or interface names may - * be passed. - * - * @param string $option The option name - * @param string|string[] $allowedTypes One or more accepted types - * - * @return $this - * - * @throws UndefinedOptionsException If the option is undefined - * @throws AccessException If called from a lazy option or normalizer - */ - public function setAllowedTypes($option, $allowedTypes) - { - if ($this->locked) { - throw new AccessException('Allowed types cannot be set from a lazy option or normalizer.'); - } - - if (!isset($this->defined[$option])) { - throw new UndefinedOptionsException(sprintf( - 'The option "%s" does not exist. Defined options are: "%s".', - $option, - implode('", "', array_keys($this->defined)) - )); - } - - $this->allowedTypes[$option] = (array) $allowedTypes; - - // Make sure the option is processed - unset($this->resolved[$option]); - - return $this; - } - - /** - * Adds allowed types for an option. - * - * The types are merged with the allowed types defined previously. - * - * Any type for which a corresponding is_() function exists is - * acceptable. Additionally, fully-qualified class or interface names may - * be passed. - * - * @param string $option The option name - * @param string|string[] $allowedTypes One or more accepted types - * - * @return $this - * - * @throws UndefinedOptionsException If the option is undefined - * @throws AccessException If called from a lazy option or normalizer - */ - public function addAllowedTypes($option, $allowedTypes) - { - if ($this->locked) { - throw new AccessException('Allowed types cannot be added from a lazy option or normalizer.'); - } - - if (!isset($this->defined[$option])) { - throw new UndefinedOptionsException(sprintf( - 'The option "%s" does not exist. Defined options are: "%s".', - $option, - implode('", "', array_keys($this->defined)) - )); - } - - if (!isset($this->allowedTypes[$option])) { - $this->allowedTypes[$option] = (array) $allowedTypes; - } else { - $this->allowedTypes[$option] = array_merge($this->allowedTypes[$option], (array) $allowedTypes); - } - - // Make sure the option is processed - unset($this->resolved[$option]); - - return $this; - } - - /** - * Removes the option with the given name. - * - * Undefined options are ignored. - * - * @param string|string[] $optionNames One or more option names - * - * @return $this - * - * @throws AccessException If called from a lazy option or normalizer - */ - public function remove($optionNames) - { - if ($this->locked) { - throw new AccessException('Options cannot be removed from a lazy option or normalizer.'); - } - - foreach ((array) $optionNames as $option) { - unset($this->defined[$option], $this->defaults[$option], $this->required[$option], $this->resolved[$option]); - unset($this->lazy[$option], $this->normalizers[$option], $this->allowedTypes[$option], $this->allowedValues[$option]); - } - - return $this; - } - - /** - * Removes all options. - * - * @return $this - * - * @throws AccessException If called from a lazy option or normalizer - */ - public function clear() - { - if ($this->locked) { - throw new AccessException('Options cannot be cleared from a lazy option or normalizer.'); - } - - $this->defined = array(); - $this->defaults = array(); - $this->required = array(); - $this->resolved = array(); - $this->lazy = array(); - $this->normalizers = array(); - $this->allowedTypes = array(); - $this->allowedValues = array(); - - return $this; - } - - /** - * Merges options with the default values stored in the container and - * validates them. - * - * Exceptions are thrown if: - * - * - Undefined options are passed; - * - Required options are missing; - * - Options have invalid types; - * - Options have invalid values. - * - * @param array $options A map of option names to values - * - * @return array The merged and validated options - * - * @throws UndefinedOptionsException If an option name is undefined - * @throws InvalidOptionsException If an option doesn't fulfill the - * specified validation rules - * @throws MissingOptionsException If a required option is missing - * @throws OptionDefinitionException If there is a cyclic dependency between - * lazy options and/or normalizers - * @throws NoSuchOptionException If a lazy option reads an unavailable option - * @throws AccessException If called from a lazy option or normalizer - */ - public function resolve(array $options = array()) - { - if ($this->locked) { - throw new AccessException('Options cannot be resolved from a lazy option or normalizer.'); - } - - // Allow this method to be called multiple times - $clone = clone $this; - - // Make sure that no unknown options are passed - $diff = array_diff_key($options, $clone->defined); - - if (count($diff) > 0) { - ksort($clone->defined); - ksort($diff); - - throw new UndefinedOptionsException(sprintf( - (count($diff) > 1 ? 'The options "%s" do not exist.' : 'The option "%s" does not exist.').' Defined options are: "%s".', - implode('", "', array_keys($diff)), - implode('", "', array_keys($clone->defined)) - )); - } - - // Override options set by the user - foreach ($options as $option => $value) { - $clone->defaults[$option] = $value; - unset($clone->resolved[$option], $clone->lazy[$option]); - } - - // Check whether any required option is missing - $diff = array_diff_key($clone->required, $clone->defaults); - - if (count($diff) > 0) { - ksort($diff); - - throw new MissingOptionsException(sprintf( - count($diff) > 1 ? 'The required options "%s" are missing.' : 'The required option "%s" is missing.', - implode('", "', array_keys($diff)) - )); - } - - // Lock the container - $clone->locked = true; - - // Now process the individual options. Use offsetGet(), which resolves - // the option itself and any options that the option depends on - foreach ($clone->defaults as $option => $_) { - $clone->offsetGet($option); - } - - return $clone->resolved; - } - - /** - * Returns the resolved value of an option. - * - * @param string $option The option name - * - * @return mixed The option value - * - * @throws AccessException If accessing this method outside of - * {@link resolve()} - * @throws NoSuchOptionException If the option is not set - * @throws InvalidOptionsException If the option doesn't fulfill the - * specified validation rules - * @throws OptionDefinitionException If there is a cyclic dependency between - * lazy options and/or normalizers - */ - public function offsetGet($option) - { - if (!$this->locked) { - throw new AccessException('Array access is only supported within closures of lazy options and normalizers.'); - } - - // Shortcut for resolved options - if (array_key_exists($option, $this->resolved)) { - return $this->resolved[$option]; - } - - // Check whether the option is set at all - if (!array_key_exists($option, $this->defaults)) { - if (!isset($this->defined[$option])) { - throw new NoSuchOptionException(sprintf( - 'The option "%s" does not exist. Defined options are: "%s".', - $option, - implode('", "', array_keys($this->defined)) - )); - } - - throw new NoSuchOptionException(sprintf( - 'The optional option "%s" has no value set. You should make sure it is set with "isset" before reading it.', - $option - )); - } - - $value = $this->defaults[$option]; - - // Resolve the option if the default value is lazily evaluated - if (isset($this->lazy[$option])) { - // If the closure is already being called, we have a cyclic - // dependency - if (isset($this->calling[$option])) { - throw new OptionDefinitionException(sprintf( - 'The options "%s" have a cyclic dependency.', - implode('", "', array_keys($this->calling)) - )); - } - - // The following section must be protected from cyclic - // calls. Set $calling for the current $option to detect a cyclic - // dependency - // BEGIN - $this->calling[$option] = true; - try { - foreach ($this->lazy[$option] as $closure) { - $value = $closure($this, $value); - } - } finally { - unset($this->calling[$option]); - } - // END - } - - // Validate the type of the resolved option - if (isset($this->allowedTypes[$option])) { - $valid = false; - $invalidTypes = array(); - - foreach ($this->allowedTypes[$option] as $type) { - $type = isset(self::$typeAliases[$type]) ? self::$typeAliases[$type] : $type; - - if ($valid = $this->verifyTypes($type, $value, $invalidTypes)) { - break; - } - } - - if (!$valid) { - throw new InvalidOptionsException(sprintf( - 'The option "%s" with value %s is expected to be of type '. - '"%s", but is of type "%s".', - $option, - $this->formatValue($value), - implode('" or "', $this->allowedTypes[$option]), - implode('|', array_keys($invalidTypes)) - )); - } - } - - // Validate the value of the resolved option - if (isset($this->allowedValues[$option])) { - $success = false; - $printableAllowedValues = array(); - - foreach ($this->allowedValues[$option] as $allowedValue) { - if ($allowedValue instanceof \Closure) { - if ($allowedValue($value)) { - $success = true; - break; - } - - // Don't include closures in the exception message - continue; - } elseif ($value === $allowedValue) { - $success = true; - break; - } - - $printableAllowedValues[] = $allowedValue; - } - - if (!$success) { - $message = sprintf( - 'The option "%s" with value %s is invalid.', - $option, - $this->formatValue($value) - ); - - if (count($printableAllowedValues) > 0) { - $message .= sprintf( - ' Accepted values are: %s.', - $this->formatValues($printableAllowedValues) - ); - } - - throw new InvalidOptionsException($message); - } - } - - // Normalize the validated option - if (isset($this->normalizers[$option])) { - // If the closure is already being called, we have a cyclic - // dependency - if (isset($this->calling[$option])) { - throw new OptionDefinitionException(sprintf( - 'The options "%s" have a cyclic dependency.', - implode('", "', array_keys($this->calling)) - )); - } - - $normalizer = $this->normalizers[$option]; - - // The following section must be protected from cyclic - // calls. Set $calling for the current $option to detect a cyclic - // dependency - // BEGIN - $this->calling[$option] = true; - try { - $value = $normalizer($this, $value); - } finally { - unset($this->calling[$option]); - } - // END - } - - // Mark as resolved - $this->resolved[$option] = $value; - - return $value; - } - - /** - * @param string $type - * @param mixed $value - * @param array &$invalidTypes - * - * @return bool - */ - private function verifyTypes($type, $value, array &$invalidTypes) - { - if ('[]' === substr($type, -2) && is_array($value)) { - $originalType = $type; - $type = substr($type, 0, -2); - $invalidValues = array_filter( // Filter out valid values, keeping invalid values in the resulting array - $value, - function ($value) use ($type) { - return !self::isValueValidType($type, $value); - } - ); - - if (!$invalidValues) { - return true; - } - - $invalidTypes[$this->formatTypeOf($value, $originalType)] = true; - - return false; - } - - if (self::isValueValidType($type, $value)) { - return true; - } - - if (!$invalidTypes) { - $invalidTypes[$this->formatTypeOf($value, null)] = true; - } - - return false; - } - - /** - * Returns whether a resolved option with the given name exists. - * - * @param string $option The option name - * - * @return bool Whether the option is set - * - * @throws AccessException If accessing this method outside of {@link resolve()} - * - * @see \ArrayAccess::offsetExists() - */ - public function offsetExists($option) - { - if (!$this->locked) { - throw new AccessException('Array access is only supported within closures of lazy options and normalizers.'); - } - - return array_key_exists($option, $this->defaults); - } - - /** - * Not supported. - * - * @throws AccessException - */ - public function offsetSet($option, $value) - { - throw new AccessException('Setting options via array access is not supported. Use setDefault() instead.'); - } - - /** - * Not supported. - * - * @throws AccessException - */ - public function offsetUnset($option) - { - throw new AccessException('Removing options via array access is not supported. Use remove() instead.'); - } - - /** - * Returns the number of set options. - * - * This may be only a subset of the defined options. - * - * @return int Number of options - * - * @throws AccessException If accessing this method outside of {@link resolve()} - * - * @see \Countable::count() - */ - public function count() - { - if (!$this->locked) { - throw new AccessException('Counting is only supported within closures of lazy options and normalizers.'); - } - - return count($this->defaults); - } - - /** - * Returns a string representation of the type of the value. - * - * This method should be used if you pass the type of a value as - * message parameter to a constraint violation. Note that such - * parameters should usually not be included in messages aimed at - * non-technical people. - * - * @param mixed $value The value to return the type of - * @param string $type - * - * @return string The type of the value - */ - private function formatTypeOf($value, $type) - { - $suffix = ''; - - if ('[]' === substr($type, -2)) { - $suffix = '[]'; - $type = substr($type, 0, -2); - while ('[]' === substr($type, -2)) { - $type = substr($type, 0, -2); - $value = array_shift($value); - if (!is_array($value)) { - break; - } - $suffix .= '[]'; - } - - if (is_array($value)) { - $subTypes = array(); - foreach ($value as $val) { - $subTypes[$this->formatTypeOf($val, null)] = true; - } - - return implode('|', array_keys($subTypes)).$suffix; - } - } - - return (is_object($value) ? get_class($value) : gettype($value)).$suffix; - } - - /** - * Returns a string representation of the value. - * - * This method returns the equivalent PHP tokens for most scalar types - * (i.e. "false" for false, "1" for 1 etc.). Strings are always wrapped - * in double quotes ("). - * - * @param mixed $value The value to format as string - * - * @return string The string representation of the passed value - */ - private function formatValue($value) - { - if (is_object($value)) { - return get_class($value); - } - - if (is_array($value)) { - return 'array'; - } - - if (is_string($value)) { - return '"'.$value.'"'; - } - - if (is_resource($value)) { - return 'resource'; - } - - if (null === $value) { - return 'null'; - } - - if (false === $value) { - return 'false'; - } - - if (true === $value) { - return 'true'; - } - - return (string) $value; - } - - /** - * Returns a string representation of a list of values. - * - * Each of the values is converted to a string using - * {@link formatValue()}. The values are then concatenated with commas. - * - * @param array $values A list of values - * - * @return string The string representation of the value list - * - * @see formatValue() - */ - private function formatValues(array $values) - { - foreach ($values as $key => $value) { - $values[$key] = $this->formatValue($value); - } - - return implode(', ', $values); - } - - private static function isValueValidType($type, $value) - { - return (function_exists($isFunction = 'is_'.$type) && $isFunction($value)) || $value instanceof $type; - } -} diff --git a/vendor/symfony/options-resolver/README.md b/vendor/symfony/options-resolver/README.md deleted file mode 100644 index 245e69b54..000000000 --- a/vendor/symfony/options-resolver/README.md +++ /dev/null @@ -1,15 +0,0 @@ -OptionsResolver Component -========================= - -The OptionsResolver component is `array_replace` on steroids. It allows you to -create an options system with required options, defaults, validation (type, -value), normalization and more. - -Resources ---------- - - * [Documentation](https://symfony.com/doc/current/components/options_resolver.html) - * [Contributing](https://symfony.com/doc/current/contributing/index.html) - * [Report issues](https://github.com/symfony/symfony/issues) and - [send Pull Requests](https://github.com/symfony/symfony/pulls) - in the [main Symfony repository](https://github.com/symfony/symfony) diff --git a/vendor/symfony/options-resolver/Tests/Debug/OptionsResolverIntrospectorTest.php b/vendor/symfony/options-resolver/Tests/Debug/OptionsResolverIntrospectorTest.php deleted file mode 100644 index 7c4753ab5..000000000 --- a/vendor/symfony/options-resolver/Tests/Debug/OptionsResolverIntrospectorTest.php +++ /dev/null @@ -1,203 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\OptionsResolver\Tests\Debug; - -use PHPUnit\Framework\TestCase; -use Symfony\Component\OptionsResolver\Debug\OptionsResolverIntrospector; -use Symfony\Component\OptionsResolver\Options; -use Symfony\Component\OptionsResolver\OptionsResolver; - -class OptionsResolverIntrospectorTest extends TestCase -{ - public function testGetDefault() - { - $resolver = new OptionsResolver(); - $resolver->setDefault($option = 'foo', 'bar'); - - $debug = new OptionsResolverIntrospector($resolver); - $this->assertSame('bar', $debug->getDefault($option)); - } - - public function testGetDefaultNull() - { - $resolver = new OptionsResolver(); - $resolver->setDefault($option = 'foo', null); - - $debug = new OptionsResolverIntrospector($resolver); - $this->assertNull($debug->getDefault($option)); - } - - /** - * @expectedException \Symfony\Component\OptionsResolver\Exception\NoConfigurationException - * @expectedExceptionMessage No default value was set for the "foo" option. - */ - public function testGetDefaultThrowsOnNoConfiguredValue() - { - $resolver = new OptionsResolver(); - $resolver->setDefined($option = 'foo'); - - $debug = new OptionsResolverIntrospector($resolver); - $this->assertSame('bar', $debug->getDefault($option)); - } - - /** - * @expectedException \Symfony\Component\OptionsResolver\Exception\UndefinedOptionsException - * @expectedExceptionMessage The option "foo" does not exist. - */ - public function testGetDefaultThrowsOnNotDefinedOption() - { - $resolver = new OptionsResolver(); - - $debug = new OptionsResolverIntrospector($resolver); - $this->assertSame('bar', $debug->getDefault('foo')); - } - - public function testGetLazyClosures() - { - $resolver = new OptionsResolver(); - $closures = array(); - $resolver->setDefault($option = 'foo', $closures[] = function (Options $options) {}); - - $debug = new OptionsResolverIntrospector($resolver); - $this->assertSame($closures, $debug->getLazyClosures($option)); - } - - /** - * @expectedException \Symfony\Component\OptionsResolver\Exception\NoConfigurationException - * @expectedExceptionMessage No lazy closures were set for the "foo" option. - */ - public function testGetLazyClosuresThrowsOnNoConfiguredValue() - { - $resolver = new OptionsResolver(); - $resolver->setDefined($option = 'foo'); - - $debug = new OptionsResolverIntrospector($resolver); - $this->assertSame('bar', $debug->getLazyClosures($option)); - } - - /** - * @expectedException \Symfony\Component\OptionsResolver\Exception\UndefinedOptionsException - * @expectedExceptionMessage The option "foo" does not exist. - */ - public function testGetLazyClosuresThrowsOnNotDefinedOption() - { - $resolver = new OptionsResolver(); - - $debug = new OptionsResolverIntrospector($resolver); - $this->assertSame('bar', $debug->getLazyClosures('foo')); - } - - public function testGetAllowedTypes() - { - $resolver = new OptionsResolver(); - $resolver->setDefined($option = 'foo'); - $resolver->setAllowedTypes($option = 'foo', $allowedTypes = array('string', 'bool')); - - $debug = new OptionsResolverIntrospector($resolver); - $this->assertSame($allowedTypes, $debug->getAllowedTypes($option)); - } - - /** - * @expectedException \Symfony\Component\OptionsResolver\Exception\NoConfigurationException - * @expectedExceptionMessage No allowed types were set for the "foo" option. - */ - public function testGetAllowedTypesThrowsOnNoConfiguredValue() - { - $resolver = new OptionsResolver(); - $resolver->setDefined($option = 'foo'); - - $debug = new OptionsResolverIntrospector($resolver); - $this->assertSame('bar', $debug->getAllowedTypes($option)); - } - - /** - * @expectedException \Symfony\Component\OptionsResolver\Exception\UndefinedOptionsException - * @expectedExceptionMessage The option "foo" does not exist. - */ - public function testGetAllowedTypesThrowsOnNotDefinedOption() - { - $resolver = new OptionsResolver(); - - $debug = new OptionsResolverIntrospector($resolver); - $this->assertSame('bar', $debug->getAllowedTypes('foo')); - } - - public function testGetAllowedValues() - { - $resolver = new OptionsResolver(); - $resolver->setDefined($option = 'foo'); - $resolver->setAllowedValues($option = 'foo', $allowedValues = array('bar', 'baz')); - - $debug = new OptionsResolverIntrospector($resolver); - $this->assertSame($allowedValues, $debug->getAllowedValues($option)); - } - - /** - * @expectedException \Symfony\Component\OptionsResolver\Exception\NoConfigurationException - * @expectedExceptionMessage No allowed values were set for the "foo" option. - */ - public function testGetAllowedValuesThrowsOnNoConfiguredValue() - { - $resolver = new OptionsResolver(); - $resolver->setDefined($option = 'foo'); - - $debug = new OptionsResolverIntrospector($resolver); - $this->assertSame('bar', $debug->getAllowedValues($option)); - } - - /** - * @expectedException \Symfony\Component\OptionsResolver\Exception\UndefinedOptionsException - * @expectedExceptionMessage The option "foo" does not exist. - */ - public function testGetAllowedValuesThrowsOnNotDefinedOption() - { - $resolver = new OptionsResolver(); - - $debug = new OptionsResolverIntrospector($resolver); - $this->assertSame('bar', $debug->getAllowedValues('foo')); - } - - public function testGetNormalizer() - { - $resolver = new OptionsResolver(); - $resolver->setDefined($option = 'foo'); - $resolver->setNormalizer($option = 'foo', $normalizer = function () {}); - - $debug = new OptionsResolverIntrospector($resolver); - $this->assertSame($normalizer, $debug->getNormalizer($option)); - } - - /** - * @expectedException \Symfony\Component\OptionsResolver\Exception\NoConfigurationException - * @expectedExceptionMessage No normalizer was set for the "foo" option. - */ - public function testGetNormalizerThrowsOnNoConfiguredValue() - { - $resolver = new OptionsResolver(); - $resolver->setDefined($option = 'foo'); - - $debug = new OptionsResolverIntrospector($resolver); - $this->assertSame('bar', $debug->getNormalizer($option)); - } - - /** - * @expectedException \Symfony\Component\OptionsResolver\Exception\UndefinedOptionsException - * @expectedExceptionMessage The option "foo" does not exist. - */ - public function testGetNormalizerThrowsOnNotDefinedOption() - { - $resolver = new OptionsResolver(); - - $debug = new OptionsResolverIntrospector($resolver); - $this->assertSame('bar', $debug->getNormalizer('foo')); - } -} diff --git a/vendor/symfony/options-resolver/Tests/OptionsResolverTest.php b/vendor/symfony/options-resolver/Tests/OptionsResolverTest.php deleted file mode 100644 index 440af8b57..000000000 --- a/vendor/symfony/options-resolver/Tests/OptionsResolverTest.php +++ /dev/null @@ -1,1653 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\OptionsResolver\Tests; - -use PHPUnit\Framework\Assert; -use PHPUnit\Framework\TestCase; -use Symfony\Component\OptionsResolver\Exception\InvalidOptionsException; -use Symfony\Component\OptionsResolver\Options; -use Symfony\Component\OptionsResolver\OptionsResolver; - -class OptionsResolverTest extends TestCase -{ - /** - * @var OptionsResolver - */ - private $resolver; - - protected function setUp() - { - $this->resolver = new OptionsResolver(); - } - - //////////////////////////////////////////////////////////////////////////// - // resolve() - //////////////////////////////////////////////////////////////////////////// - - /** - * @expectedException \Symfony\Component\OptionsResolver\Exception\UndefinedOptionsException - * @expectedExceptionMessage The option "foo" does not exist. Defined options are: "a", "z". - */ - public function testResolveFailsIfNonExistingOption() - { - $this->resolver->setDefault('z', '1'); - $this->resolver->setDefault('a', '2'); - - $this->resolver->resolve(array('foo' => 'bar')); - } - - /** - * @expectedException \Symfony\Component\OptionsResolver\Exception\UndefinedOptionsException - * @expectedExceptionMessage The options "baz", "foo", "ping" do not exist. Defined options are: "a", "z". - */ - public function testResolveFailsIfMultipleNonExistingOptions() - { - $this->resolver->setDefault('z', '1'); - $this->resolver->setDefault('a', '2'); - - $this->resolver->resolve(array('ping' => 'pong', 'foo' => 'bar', 'baz' => 'bam')); - } - - /** - * @expectedException \Symfony\Component\OptionsResolver\Exception\AccessException - */ - public function testResolveFailsFromLazyOption() - { - $this->resolver->setDefault('foo', function (Options $options) { - $options->resolve(array()); - }); - - $this->resolver->resolve(); - } - - //////////////////////////////////////////////////////////////////////////// - // setDefault()/hasDefault() - //////////////////////////////////////////////////////////////////////////// - - public function testSetDefaultReturnsThis() - { - $this->assertSame($this->resolver, $this->resolver->setDefault('foo', 'bar')); - } - - public function testSetDefault() - { - $this->resolver->setDefault('one', '1'); - $this->resolver->setDefault('two', '20'); - - $this->assertEquals(array( - 'one' => '1', - 'two' => '20', - ), $this->resolver->resolve()); - } - - /** - * @expectedException \Symfony\Component\OptionsResolver\Exception\AccessException - */ - public function testFailIfSetDefaultFromLazyOption() - { - $this->resolver->setDefault('lazy', function (Options $options) { - $options->setDefault('default', 42); - }); - - $this->resolver->resolve(); - } - - public function testHasDefault() - { - $this->assertFalse($this->resolver->hasDefault('foo')); - $this->resolver->setDefault('foo', 42); - $this->assertTrue($this->resolver->hasDefault('foo')); - } - - public function testHasDefaultWithNullValue() - { - $this->assertFalse($this->resolver->hasDefault('foo')); - $this->resolver->setDefault('foo', null); - $this->assertTrue($this->resolver->hasDefault('foo')); - } - - //////////////////////////////////////////////////////////////////////////// - // lazy setDefault() - //////////////////////////////////////////////////////////////////////////// - - public function testSetLazyReturnsThis() - { - $this->assertSame($this->resolver, $this->resolver->setDefault('foo', function (Options $options) {})); - } - - public function testSetLazyClosure() - { - $this->resolver->setDefault('foo', function (Options $options) { - return 'lazy'; - }); - - $this->assertEquals(array('foo' => 'lazy'), $this->resolver->resolve()); - } - - public function testClosureWithoutTypeHintNotInvoked() - { - $closure = function ($options) { - Assert::fail('Should not be called'); - }; - - $this->resolver->setDefault('foo', $closure); - - $this->assertSame(array('foo' => $closure), $this->resolver->resolve()); - } - - public function testClosureWithoutParametersNotInvoked() - { - $closure = function () { - Assert::fail('Should not be called'); - }; - - $this->resolver->setDefault('foo', $closure); - - $this->assertSame(array('foo' => $closure), $this->resolver->resolve()); - } - - public function testAccessPreviousDefaultValue() - { - // defined by superclass - $this->resolver->setDefault('foo', 'bar'); - - // defined by subclass - $this->resolver->setDefault('foo', function (Options $options, $previousValue) { - Assert::assertEquals('bar', $previousValue); - - return 'lazy'; - }); - - $this->assertEquals(array('foo' => 'lazy'), $this->resolver->resolve()); - } - - public function testAccessPreviousLazyDefaultValue() - { - // defined by superclass - $this->resolver->setDefault('foo', function (Options $options) { - return 'bar'; - }); - - // defined by subclass - $this->resolver->setDefault('foo', function (Options $options, $previousValue) { - Assert::assertEquals('bar', $previousValue); - - return 'lazy'; - }); - - $this->assertEquals(array('foo' => 'lazy'), $this->resolver->resolve()); - } - - public function testPreviousValueIsNotEvaluatedIfNoSecondArgument() - { - // defined by superclass - $this->resolver->setDefault('foo', function () { - Assert::fail('Should not be called'); - }); - - // defined by subclass, no $previousValue argument defined! - $this->resolver->setDefault('foo', function (Options $options) { - return 'lazy'; - }); - - $this->assertEquals(array('foo' => 'lazy'), $this->resolver->resolve()); - } - - public function testOverwrittenLazyOptionNotEvaluated() - { - $this->resolver->setDefault('foo', function (Options $options) { - Assert::fail('Should not be called'); - }); - - $this->resolver->setDefault('foo', 'bar'); - - $this->assertSame(array('foo' => 'bar'), $this->resolver->resolve()); - } - - public function testInvokeEachLazyOptionOnlyOnce() - { - $calls = 0; - - $this->resolver->setDefault('lazy1', function (Options $options) use (&$calls) { - Assert::assertSame(1, ++$calls); - - $options['lazy2']; - }); - - $this->resolver->setDefault('lazy2', function (Options $options) use (&$calls) { - Assert::assertSame(2, ++$calls); - }); - - $this->resolver->resolve(); - - $this->assertSame(2, $calls); - } - - //////////////////////////////////////////////////////////////////////////// - // setRequired()/isRequired()/getRequiredOptions() - //////////////////////////////////////////////////////////////////////////// - - public function testSetRequiredReturnsThis() - { - $this->assertSame($this->resolver, $this->resolver->setRequired('foo')); - } - - /** - * @expectedException \Symfony\Component\OptionsResolver\Exception\AccessException - */ - public function testFailIfSetRequiredFromLazyOption() - { - $this->resolver->setDefault('foo', function (Options $options) { - $options->setRequired('bar'); - }); - - $this->resolver->resolve(); - } - - /** - * @expectedException \Symfony\Component\OptionsResolver\Exception\MissingOptionsException - */ - public function testResolveFailsIfRequiredOptionMissing() - { - $this->resolver->setRequired('foo'); - - $this->resolver->resolve(); - } - - public function testResolveSucceedsIfRequiredOptionSet() - { - $this->resolver->setRequired('foo'); - $this->resolver->setDefault('foo', 'bar'); - - $this->assertNotEmpty($this->resolver->resolve()); - } - - public function testResolveSucceedsIfRequiredOptionPassed() - { - $this->resolver->setRequired('foo'); - - $this->assertNotEmpty($this->resolver->resolve(array('foo' => 'bar'))); - } - - public function testIsRequired() - { - $this->assertFalse($this->resolver->isRequired('foo')); - $this->resolver->setRequired('foo'); - $this->assertTrue($this->resolver->isRequired('foo')); - } - - public function testRequiredIfSetBefore() - { - $this->assertFalse($this->resolver->isRequired('foo')); - - $this->resolver->setDefault('foo', 'bar'); - $this->resolver->setRequired('foo'); - - $this->assertTrue($this->resolver->isRequired('foo')); - } - - public function testStillRequiredAfterSet() - { - $this->assertFalse($this->resolver->isRequired('foo')); - - $this->resolver->setRequired('foo'); - $this->resolver->setDefault('foo', 'bar'); - - $this->assertTrue($this->resolver->isRequired('foo')); - } - - public function testIsNotRequiredAfterRemove() - { - $this->assertFalse($this->resolver->isRequired('foo')); - $this->resolver->setRequired('foo'); - $this->resolver->remove('foo'); - $this->assertFalse($this->resolver->isRequired('foo')); - } - - public function testIsNotRequiredAfterClear() - { - $this->assertFalse($this->resolver->isRequired('foo')); - $this->resolver->setRequired('foo'); - $this->resolver->clear(); - $this->assertFalse($this->resolver->isRequired('foo')); - } - - public function testGetRequiredOptions() - { - $this->resolver->setRequired(array('foo', 'bar')); - $this->resolver->setDefault('bam', 'baz'); - $this->resolver->setDefault('foo', 'boo'); - - $this->assertSame(array('foo', 'bar'), $this->resolver->getRequiredOptions()); - } - - //////////////////////////////////////////////////////////////////////////// - // isMissing()/getMissingOptions() - //////////////////////////////////////////////////////////////////////////// - - public function testIsMissingIfNotSet() - { - $this->assertFalse($this->resolver->isMissing('foo')); - $this->resolver->setRequired('foo'); - $this->assertTrue($this->resolver->isMissing('foo')); - } - - public function testIsNotMissingIfSet() - { - $this->resolver->setDefault('foo', 'bar'); - - $this->assertFalse($this->resolver->isMissing('foo')); - $this->resolver->setRequired('foo'); - $this->assertFalse($this->resolver->isMissing('foo')); - } - - public function testIsNotMissingAfterRemove() - { - $this->resolver->setRequired('foo'); - $this->resolver->remove('foo'); - $this->assertFalse($this->resolver->isMissing('foo')); - } - - public function testIsNotMissingAfterClear() - { - $this->resolver->setRequired('foo'); - $this->resolver->clear(); - $this->assertFalse($this->resolver->isRequired('foo')); - } - - public function testGetMissingOptions() - { - $this->resolver->setRequired(array('foo', 'bar')); - $this->resolver->setDefault('bam', 'baz'); - $this->resolver->setDefault('foo', 'boo'); - - $this->assertSame(array('bar'), $this->resolver->getMissingOptions()); - } - - //////////////////////////////////////////////////////////////////////////// - // setDefined()/isDefined()/getDefinedOptions() - //////////////////////////////////////////////////////////////////////////// - - /** - * @expectedException \Symfony\Component\OptionsResolver\Exception\AccessException - */ - public function testFailIfSetDefinedFromLazyOption() - { - $this->resolver->setDefault('foo', function (Options $options) { - $options->setDefined('bar'); - }); - - $this->resolver->resolve(); - } - - public function testDefinedOptionsNotIncludedInResolvedOptions() - { - $this->resolver->setDefined('foo'); - - $this->assertSame(array(), $this->resolver->resolve()); - } - - public function testDefinedOptionsIncludedIfDefaultSetBefore() - { - $this->resolver->setDefault('foo', 'bar'); - $this->resolver->setDefined('foo'); - - $this->assertSame(array('foo' => 'bar'), $this->resolver->resolve()); - } - - public function testDefinedOptionsIncludedIfDefaultSetAfter() - { - $this->resolver->setDefined('foo'); - $this->resolver->setDefault('foo', 'bar'); - - $this->assertSame(array('foo' => 'bar'), $this->resolver->resolve()); - } - - public function testDefinedOptionsIncludedIfPassedToResolve() - { - $this->resolver->setDefined('foo'); - - $this->assertSame(array('foo' => 'bar'), $this->resolver->resolve(array('foo' => 'bar'))); - } - - public function testIsDefined() - { - $this->assertFalse($this->resolver->isDefined('foo')); - $this->resolver->setDefined('foo'); - $this->assertTrue($this->resolver->isDefined('foo')); - } - - public function testLazyOptionsAreDefined() - { - $this->assertFalse($this->resolver->isDefined('foo')); - $this->resolver->setDefault('foo', function (Options $options) {}); - $this->assertTrue($this->resolver->isDefined('foo')); - } - - public function testRequiredOptionsAreDefined() - { - $this->assertFalse($this->resolver->isDefined('foo')); - $this->resolver->setRequired('foo'); - $this->assertTrue($this->resolver->isDefined('foo')); - } - - public function testSetOptionsAreDefined() - { - $this->assertFalse($this->resolver->isDefined('foo')); - $this->resolver->setDefault('foo', 'bar'); - $this->assertTrue($this->resolver->isDefined('foo')); - } - - public function testGetDefinedOptions() - { - $this->resolver->setDefined(array('foo', 'bar')); - $this->resolver->setDefault('baz', 'bam'); - $this->resolver->setRequired('boo'); - - $this->assertSame(array('foo', 'bar', 'baz', 'boo'), $this->resolver->getDefinedOptions()); - } - - public function testRemovedOptionsAreNotDefined() - { - $this->assertFalse($this->resolver->isDefined('foo')); - $this->resolver->setDefined('foo'); - $this->assertTrue($this->resolver->isDefined('foo')); - $this->resolver->remove('foo'); - $this->assertFalse($this->resolver->isDefined('foo')); - } - - public function testClearedOptionsAreNotDefined() - { - $this->assertFalse($this->resolver->isDefined('foo')); - $this->resolver->setDefined('foo'); - $this->assertTrue($this->resolver->isDefined('foo')); - $this->resolver->clear(); - $this->assertFalse($this->resolver->isDefined('foo')); - } - - //////////////////////////////////////////////////////////////////////////// - // setAllowedTypes() - //////////////////////////////////////////////////////////////////////////// - - /** - * @expectedException \Symfony\Component\OptionsResolver\Exception\UndefinedOptionsException - */ - public function testSetAllowedTypesFailsIfUnknownOption() - { - $this->resolver->setAllowedTypes('foo', 'string'); - } - - public function testResolveTypedArray() - { - $this->resolver->setDefined('foo'); - $this->resolver->setAllowedTypes('foo', 'string[]'); - $options = $this->resolver->resolve(array('foo' => array('bar', 'baz'))); - - $this->assertSame(array('foo' => array('bar', 'baz')), $options); - } - - /** - * @expectedException \Symfony\Component\OptionsResolver\Exception\AccessException - */ - public function testFailIfSetAllowedTypesFromLazyOption() - { - $this->resolver->setDefault('foo', function (Options $options) { - $options->setAllowedTypes('bar', 'string'); - }); - - $this->resolver->setDefault('bar', 'baz'); - - $this->resolver->resolve(); - } - - /** - * @expectedException \Symfony\Component\OptionsResolver\Exception\InvalidOptionsException - * @expectedExceptionMessage The option "foo" with value array is expected to be of type "int[]", but is of type "DateTime[]". - */ - public function testResolveFailsIfInvalidTypedArray() - { - $this->resolver->setDefined('foo'); - $this->resolver->setAllowedTypes('foo', 'int[]'); - - $this->resolver->resolve(array('foo' => array(new \DateTime()))); - } - - /** - * @expectedException \Symfony\Component\OptionsResolver\Exception\InvalidOptionsException - * @expectedExceptionMessage The option "foo" with value "bar" is expected to be of type "int[]", but is of type "string". - */ - public function testResolveFailsWithNonArray() - { - $this->resolver->setDefined('foo'); - $this->resolver->setAllowedTypes('foo', 'int[]'); - - $this->resolver->resolve(array('foo' => 'bar')); - } - - /** - * @expectedException \Symfony\Component\OptionsResolver\Exception\InvalidOptionsException - * @expectedExceptionMessage The option "foo" with value array is expected to be of type "int[]", but is of type "integer|stdClass|array|DateTime[]". - */ - public function testResolveFailsIfTypedArrayContainsInvalidTypes() - { - $this->resolver->setDefined('foo'); - $this->resolver->setAllowedTypes('foo', 'int[]'); - $values = range(1, 5); - $values[] = new \stdClass(); - $values[] = array(); - $values[] = new \DateTime(); - $values[] = 123; - - $this->resolver->resolve(array('foo' => $values)); - } - - /** - * @expectedException \Symfony\Component\OptionsResolver\Exception\InvalidOptionsException - * @expectedExceptionMessage The option "foo" with value array is expected to be of type "int[][]", but is of type "double[][]". - */ - public function testResolveFailsWithCorrectLevelsButWrongScalar() - { - $this->resolver->setDefined('foo'); - $this->resolver->setAllowedTypes('foo', 'int[][]'); - - $this->resolver->resolve( - array( - 'foo' => array( - array(1.2), - ), - ) - ); - } - - /** - * @dataProvider provideInvalidTypes - */ - public function testResolveFailsIfInvalidType($actualType, $allowedType, $exceptionMessage) - { - $this->resolver->setDefined('option'); - $this->resolver->setAllowedTypes('option', $allowedType); - - if (method_exists($this, 'expectException')) { - $this->expectException('Symfony\Component\OptionsResolver\Exception\InvalidOptionsException'); - $this->expectExceptionMessage($exceptionMessage); - } else { - $this->setExpectedException('Symfony\Component\OptionsResolver\Exception\InvalidOptionsException', $exceptionMessage); - } - - $this->resolver->resolve(array('option' => $actualType)); - } - - public function provideInvalidTypes() - { - return array( - array(true, 'string', 'The option "option" with value true is expected to be of type "string", but is of type "boolean".'), - array(false, 'string', 'The option "option" with value false is expected to be of type "string", but is of type "boolean".'), - array(fopen(__FILE__, 'r'), 'string', 'The option "option" with value resource is expected to be of type "string", but is of type "resource".'), - array(array(), 'string', 'The option "option" with value array is expected to be of type "string", but is of type "array".'), - array(new OptionsResolver(), 'string', 'The option "option" with value Symfony\Component\OptionsResolver\OptionsResolver is expected to be of type "string", but is of type "Symfony\Component\OptionsResolver\OptionsResolver".'), - array(42, 'string', 'The option "option" with value 42 is expected to be of type "string", but is of type "integer".'), - array(null, 'string', 'The option "option" with value null is expected to be of type "string", but is of type "NULL".'), - array('bar', '\stdClass', 'The option "option" with value "bar" is expected to be of type "\stdClass", but is of type "string".'), - ); - } - - public function testResolveSucceedsIfValidType() - { - $this->resolver->setDefault('foo', 'bar'); - $this->resolver->setAllowedTypes('foo', 'string'); - - $this->assertNotEmpty($this->resolver->resolve()); - } - - /** - * @expectedException \Symfony\Component\OptionsResolver\Exception\InvalidOptionsException - * @expectedExceptionMessage The option "foo" with value 42 is expected to be of type "string" or "bool", but is of type "integer". - */ - public function testResolveFailsIfInvalidTypeMultiple() - { - $this->resolver->setDefault('foo', 42); - $this->resolver->setAllowedTypes('foo', array('string', 'bool')); - - $this->resolver->resolve(); - } - - public function testResolveSucceedsIfValidTypeMultiple() - { - $this->resolver->setDefault('foo', true); - $this->resolver->setAllowedTypes('foo', array('string', 'bool')); - - $this->assertNotEmpty($this->resolver->resolve()); - } - - public function testResolveSucceedsIfInstanceOfClass() - { - $this->resolver->setDefault('foo', new \stdClass()); - $this->resolver->setAllowedTypes('foo', '\stdClass'); - - $this->assertNotEmpty($this->resolver->resolve()); - } - - public function testResolveSucceedsIfTypedArray() - { - $this->resolver->setDefault('foo', null); - $this->resolver->setAllowedTypes('foo', array('null', 'DateTime[]')); - - $data = array( - 'foo' => array( - new \DateTime(), - new \DateTime(), - ), - ); - $result = $this->resolver->resolve($data); - $this->assertEquals($data, $result); - } - - /** - * @expectedException \Symfony\Component\OptionsResolver\Exception\InvalidOptionsException - */ - public function testResolveFailsIfNotInstanceOfClass() - { - $this->resolver->setDefault('foo', 'bar'); - $this->resolver->setAllowedTypes('foo', '\stdClass'); - - $this->resolver->resolve(); - } - - //////////////////////////////////////////////////////////////////////////// - // addAllowedTypes() - //////////////////////////////////////////////////////////////////////////// - - /** - * @expectedException \Symfony\Component\OptionsResolver\Exception\UndefinedOptionsException - */ - public function testAddAllowedTypesFailsIfUnknownOption() - { - $this->resolver->addAllowedTypes('foo', 'string'); - } - - /** - * @expectedException \Symfony\Component\OptionsResolver\Exception\AccessException - */ - public function testFailIfAddAllowedTypesFromLazyOption() - { - $this->resolver->setDefault('foo', function (Options $options) { - $options->addAllowedTypes('bar', 'string'); - }); - - $this->resolver->setDefault('bar', 'baz'); - - $this->resolver->resolve(); - } - - /** - * @expectedException \Symfony\Component\OptionsResolver\Exception\InvalidOptionsException - */ - public function testResolveFailsIfInvalidAddedType() - { - $this->resolver->setDefault('foo', 42); - $this->resolver->addAllowedTypes('foo', 'string'); - - $this->resolver->resolve(); - } - - public function testResolveSucceedsIfValidAddedType() - { - $this->resolver->setDefault('foo', 'bar'); - $this->resolver->addAllowedTypes('foo', 'string'); - - $this->assertNotEmpty($this->resolver->resolve()); - } - - /** - * @expectedException \Symfony\Component\OptionsResolver\Exception\InvalidOptionsException - */ - public function testResolveFailsIfInvalidAddedTypeMultiple() - { - $this->resolver->setDefault('foo', 42); - $this->resolver->addAllowedTypes('foo', array('string', 'bool')); - - $this->resolver->resolve(); - } - - public function testResolveSucceedsIfValidAddedTypeMultiple() - { - $this->resolver->setDefault('foo', 'bar'); - $this->resolver->addAllowedTypes('foo', array('string', 'bool')); - - $this->assertNotEmpty($this->resolver->resolve()); - } - - public function testAddAllowedTypesDoesNotOverwrite() - { - $this->resolver->setDefault('foo', 'bar'); - $this->resolver->setAllowedTypes('foo', 'string'); - $this->resolver->addAllowedTypes('foo', 'bool'); - - $this->resolver->setDefault('foo', 'bar'); - - $this->assertNotEmpty($this->resolver->resolve()); - } - - public function testAddAllowedTypesDoesNotOverwrite2() - { - $this->resolver->setDefault('foo', 'bar'); - $this->resolver->setAllowedTypes('foo', 'string'); - $this->resolver->addAllowedTypes('foo', 'bool'); - - $this->resolver->setDefault('foo', false); - - $this->assertNotEmpty($this->resolver->resolve()); - } - - //////////////////////////////////////////////////////////////////////////// - // setAllowedValues() - //////////////////////////////////////////////////////////////////////////// - - /** - * @expectedException \Symfony\Component\OptionsResolver\Exception\UndefinedOptionsException - */ - public function testSetAllowedValuesFailsIfUnknownOption() - { - $this->resolver->setAllowedValues('foo', 'bar'); - } - - /** - * @expectedException \Symfony\Component\OptionsResolver\Exception\AccessException - */ - public function testFailIfSetAllowedValuesFromLazyOption() - { - $this->resolver->setDefault('foo', function (Options $options) { - $options->setAllowedValues('bar', 'baz'); - }); - - $this->resolver->setDefault('bar', 'baz'); - - $this->resolver->resolve(); - } - - /** - * @expectedException \Symfony\Component\OptionsResolver\Exception\InvalidOptionsException - * @expectedExceptionMessage The option "foo" with value 42 is invalid. Accepted values are: "bar". - */ - public function testResolveFailsIfInvalidValue() - { - $this->resolver->setDefined('foo'); - $this->resolver->setAllowedValues('foo', 'bar'); - - $this->resolver->resolve(array('foo' => 42)); - } - - /** - * @expectedException \Symfony\Component\OptionsResolver\Exception\InvalidOptionsException - * @expectedExceptionMessage The option "foo" with value null is invalid. Accepted values are: "bar". - */ - public function testResolveFailsIfInvalidValueIsNull() - { - $this->resolver->setDefault('foo', null); - $this->resolver->setAllowedValues('foo', 'bar'); - - $this->resolver->resolve(); - } - - /** - * @expectedException \Symfony\Component\OptionsResolver\Exception\InvalidOptionsException - */ - public function testResolveFailsIfInvalidValueStrict() - { - $this->resolver->setDefault('foo', 42); - $this->resolver->setAllowedValues('foo', '42'); - - $this->resolver->resolve(); - } - - public function testResolveSucceedsIfValidValue() - { - $this->resolver->setDefault('foo', 'bar'); - $this->resolver->setAllowedValues('foo', 'bar'); - - $this->assertEquals(array('foo' => 'bar'), $this->resolver->resolve()); - } - - public function testResolveSucceedsIfValidValueIsNull() - { - $this->resolver->setDefault('foo', null); - $this->resolver->setAllowedValues('foo', null); - - $this->assertEquals(array('foo' => null), $this->resolver->resolve()); - } - - /** - * @expectedException \Symfony\Component\OptionsResolver\Exception\InvalidOptionsException - * @expectedExceptionMessage The option "foo" with value 42 is invalid. Accepted values are: "bar", false, null. - */ - public function testResolveFailsIfInvalidValueMultiple() - { - $this->resolver->setDefault('foo', 42); - $this->resolver->setAllowedValues('foo', array('bar', false, null)); - - $this->resolver->resolve(); - } - - public function testResolveSucceedsIfValidValueMultiple() - { - $this->resolver->setDefault('foo', 'baz'); - $this->resolver->setAllowedValues('foo', array('bar', 'baz')); - - $this->assertEquals(array('foo' => 'baz'), $this->resolver->resolve()); - } - - public function testResolveFailsIfClosureReturnsFalse() - { - $this->resolver->setDefault('foo', 42); - $this->resolver->setAllowedValues('foo', function ($value) use (&$passedValue) { - $passedValue = $value; - - return false; - }); - - try { - $this->resolver->resolve(); - $this->fail('Should fail'); - } catch (InvalidOptionsException $e) { - } - - $this->assertSame(42, $passedValue); - } - - public function testResolveSucceedsIfClosureReturnsTrue() - { - $this->resolver->setDefault('foo', 'bar'); - $this->resolver->setAllowedValues('foo', function ($value) use (&$passedValue) { - $passedValue = $value; - - return true; - }); - - $this->assertEquals(array('foo' => 'bar'), $this->resolver->resolve()); - $this->assertSame('bar', $passedValue); - } - - /** - * @expectedException \Symfony\Component\OptionsResolver\Exception\InvalidOptionsException - */ - public function testResolveFailsIfAllClosuresReturnFalse() - { - $this->resolver->setDefault('foo', 42); - $this->resolver->setAllowedValues('foo', array( - function () { return false; }, - function () { return false; }, - function () { return false; }, - )); - - $this->resolver->resolve(); - } - - public function testResolveSucceedsIfAnyClosureReturnsTrue() - { - $this->resolver->setDefault('foo', 'bar'); - $this->resolver->setAllowedValues('foo', array( - function () { return false; }, - function () { return true; }, - function () { return false; }, - )); - - $this->assertEquals(array('foo' => 'bar'), $this->resolver->resolve()); - } - - //////////////////////////////////////////////////////////////////////////// - // addAllowedValues() - //////////////////////////////////////////////////////////////////////////// - - /** - * @expectedException \Symfony\Component\OptionsResolver\Exception\UndefinedOptionsException - */ - public function testAddAllowedValuesFailsIfUnknownOption() - { - $this->resolver->addAllowedValues('foo', 'bar'); - } - - /** - * @expectedException \Symfony\Component\OptionsResolver\Exception\AccessException - */ - public function testFailIfAddAllowedValuesFromLazyOption() - { - $this->resolver->setDefault('foo', function (Options $options) { - $options->addAllowedValues('bar', 'baz'); - }); - - $this->resolver->setDefault('bar', 'baz'); - - $this->resolver->resolve(); - } - - /** - * @expectedException \Symfony\Component\OptionsResolver\Exception\InvalidOptionsException - */ - public function testResolveFailsIfInvalidAddedValue() - { - $this->resolver->setDefault('foo', 42); - $this->resolver->addAllowedValues('foo', 'bar'); - - $this->resolver->resolve(); - } - - public function testResolveSucceedsIfValidAddedValue() - { - $this->resolver->setDefault('foo', 'bar'); - $this->resolver->addAllowedValues('foo', 'bar'); - - $this->assertEquals(array('foo' => 'bar'), $this->resolver->resolve()); - } - - public function testResolveSucceedsIfValidAddedValueIsNull() - { - $this->resolver->setDefault('foo', null); - $this->resolver->addAllowedValues('foo', null); - - $this->assertEquals(array('foo' => null), $this->resolver->resolve()); - } - - /** - * @expectedException \Symfony\Component\OptionsResolver\Exception\InvalidOptionsException - */ - public function testResolveFailsIfInvalidAddedValueMultiple() - { - $this->resolver->setDefault('foo', 42); - $this->resolver->addAllowedValues('foo', array('bar', 'baz')); - - $this->resolver->resolve(); - } - - public function testResolveSucceedsIfValidAddedValueMultiple() - { - $this->resolver->setDefault('foo', 'bar'); - $this->resolver->addAllowedValues('foo', array('bar', 'baz')); - - $this->assertEquals(array('foo' => 'bar'), $this->resolver->resolve()); - } - - public function testAddAllowedValuesDoesNotOverwrite() - { - $this->resolver->setDefault('foo', 'bar'); - $this->resolver->setAllowedValues('foo', 'bar'); - $this->resolver->addAllowedValues('foo', 'baz'); - - $this->assertEquals(array('foo' => 'bar'), $this->resolver->resolve()); - } - - public function testAddAllowedValuesDoesNotOverwrite2() - { - $this->resolver->setDefault('foo', 'baz'); - $this->resolver->setAllowedValues('foo', 'bar'); - $this->resolver->addAllowedValues('foo', 'baz'); - - $this->assertEquals(array('foo' => 'baz'), $this->resolver->resolve()); - } - - /** - * @expectedException \Symfony\Component\OptionsResolver\Exception\InvalidOptionsException - */ - public function testResolveFailsIfAllAddedClosuresReturnFalse() - { - $this->resolver->setDefault('foo', 42); - $this->resolver->setAllowedValues('foo', function () { return false; }); - $this->resolver->addAllowedValues('foo', function () { return false; }); - - $this->resolver->resolve(); - } - - public function testResolveSucceedsIfAnyAddedClosureReturnsTrue() - { - $this->resolver->setDefault('foo', 'bar'); - $this->resolver->setAllowedValues('foo', function () { return false; }); - $this->resolver->addAllowedValues('foo', function () { return true; }); - - $this->assertEquals(array('foo' => 'bar'), $this->resolver->resolve()); - } - - public function testResolveSucceedsIfAnyAddedClosureReturnsTrue2() - { - $this->resolver->setDefault('foo', 'bar'); - $this->resolver->setAllowedValues('foo', function () { return true; }); - $this->resolver->addAllowedValues('foo', function () { return false; }); - - $this->assertEquals(array('foo' => 'bar'), $this->resolver->resolve()); - } - - //////////////////////////////////////////////////////////////////////////// - // setNormalizer() - //////////////////////////////////////////////////////////////////////////// - - public function testSetNormalizerReturnsThis() - { - $this->resolver->setDefault('foo', 'bar'); - $this->assertSame($this->resolver, $this->resolver->setNormalizer('foo', function () {})); - } - - public function testSetNormalizerClosure() - { - $this->resolver->setDefault('foo', 'bar'); - $this->resolver->setNormalizer('foo', function () { - return 'normalized'; - }); - - $this->assertEquals(array('foo' => 'normalized'), $this->resolver->resolve()); - } - - /** - * @expectedException \Symfony\Component\OptionsResolver\Exception\UndefinedOptionsException - */ - public function testSetNormalizerFailsIfUnknownOption() - { - $this->resolver->setNormalizer('foo', function () {}); - } - - /** - * @expectedException \Symfony\Component\OptionsResolver\Exception\AccessException - */ - public function testFailIfSetNormalizerFromLazyOption() - { - $this->resolver->setDefault('foo', function (Options $options) { - $options->setNormalizer('foo', function () {}); - }); - - $this->resolver->setDefault('bar', 'baz'); - - $this->resolver->resolve(); - } - - public function testNormalizerReceivesSetOption() - { - $this->resolver->setDefault('foo', 'bar'); - - $this->resolver->setNormalizer('foo', function (Options $options, $value) { - return 'normalized['.$value.']'; - }); - - $this->assertEquals(array('foo' => 'normalized[bar]'), $this->resolver->resolve()); - } - - public function testNormalizerReceivesPassedOption() - { - $this->resolver->setDefault('foo', 'bar'); - - $this->resolver->setNormalizer('foo', function (Options $options, $value) { - return 'normalized['.$value.']'; - }); - - $resolved = $this->resolver->resolve(array('foo' => 'baz')); - - $this->assertEquals(array('foo' => 'normalized[baz]'), $resolved); - } - - /** - * @expectedException \Symfony\Component\OptionsResolver\Exception\InvalidOptionsException - */ - public function testValidateTypeBeforeNormalization() - { - $this->resolver->setDefault('foo', 'bar'); - - $this->resolver->setAllowedTypes('foo', 'int'); - - $this->resolver->setNormalizer('foo', function () { - Assert::fail('Should not be called.'); - }); - - $this->resolver->resolve(); - } - - /** - * @expectedException \Symfony\Component\OptionsResolver\Exception\InvalidOptionsException - */ - public function testValidateValueBeforeNormalization() - { - $this->resolver->setDefault('foo', 'bar'); - - $this->resolver->setAllowedValues('foo', 'baz'); - - $this->resolver->setNormalizer('foo', function () { - Assert::fail('Should not be called.'); - }); - - $this->resolver->resolve(); - } - - public function testNormalizerCanAccessOtherOptions() - { - $this->resolver->setDefault('default', 'bar'); - $this->resolver->setDefault('norm', 'baz'); - - $this->resolver->setNormalizer('norm', function (Options $options) { - /* @var TestCase $test */ - Assert::assertSame('bar', $options['default']); - - return 'normalized'; - }); - - $this->assertEquals(array( - 'default' => 'bar', - 'norm' => 'normalized', - ), $this->resolver->resolve()); - } - - public function testNormalizerCanAccessLazyOptions() - { - $this->resolver->setDefault('lazy', function (Options $options) { - return 'bar'; - }); - $this->resolver->setDefault('norm', 'baz'); - - $this->resolver->setNormalizer('norm', function (Options $options) { - /* @var TestCase $test */ - Assert::assertEquals('bar', $options['lazy']); - - return 'normalized'; - }); - - $this->assertEquals(array( - 'lazy' => 'bar', - 'norm' => 'normalized', - ), $this->resolver->resolve()); - } - - /** - * @expectedException \Symfony\Component\OptionsResolver\Exception\OptionDefinitionException - */ - public function testFailIfCyclicDependencyBetweenNormalizers() - { - $this->resolver->setDefault('norm1', 'bar'); - $this->resolver->setDefault('norm2', 'baz'); - - $this->resolver->setNormalizer('norm1', function (Options $options) { - $options['norm2']; - }); - - $this->resolver->setNormalizer('norm2', function (Options $options) { - $options['norm1']; - }); - - $this->resolver->resolve(); - } - - /** - * @expectedException \Symfony\Component\OptionsResolver\Exception\OptionDefinitionException - */ - public function testFailIfCyclicDependencyBetweenNormalizerAndLazyOption() - { - $this->resolver->setDefault('lazy', function (Options $options) { - $options['norm']; - }); - - $this->resolver->setDefault('norm', 'baz'); - - $this->resolver->setNormalizer('norm', function (Options $options) { - $options['lazy']; - }); - - $this->resolver->resolve(); - } - - public function testCaughtExceptionFromNormalizerDoesNotCrashOptionResolver() - { - $throw = true; - - $this->resolver->setDefaults(array('catcher' => null, 'thrower' => null)); - - $this->resolver->setNormalizer('catcher', function (Options $options) { - try { - return $options['thrower']; - } catch (\Exception $e) { - return false; - } - }); - - $this->resolver->setNormalizer('thrower', function () use (&$throw) { - if ($throw) { - $throw = false; - throw new \UnexpectedValueException('throwing'); - } - - return true; - }); - - $this->assertSame(array('catcher' => false, 'thrower' => true), $this->resolver->resolve()); - } - - public function testCaughtExceptionFromLazyDoesNotCrashOptionResolver() - { - $throw = true; - - $this->resolver->setDefault('catcher', function (Options $options) { - try { - return $options['thrower']; - } catch (\Exception $e) { - return false; - } - }); - - $this->resolver->setDefault('thrower', function (Options $options) use (&$throw) { - if ($throw) { - $throw = false; - throw new \UnexpectedValueException('throwing'); - } - - return true; - }); - - $this->assertSame(array('catcher' => false, 'thrower' => true), $this->resolver->resolve()); - } - - public function testInvokeEachNormalizerOnlyOnce() - { - $calls = 0; - - $this->resolver->setDefault('norm1', 'bar'); - $this->resolver->setDefault('norm2', 'baz'); - - $this->resolver->setNormalizer('norm1', function ($options) use (&$calls) { - Assert::assertSame(1, ++$calls); - - $options['norm2']; - }); - $this->resolver->setNormalizer('norm2', function () use (&$calls) { - Assert::assertSame(2, ++$calls); - }); - - $this->resolver->resolve(); - - $this->assertSame(2, $calls); - } - - public function testNormalizerNotCalledForUnsetOptions() - { - $this->resolver->setDefined('norm'); - - $this->resolver->setNormalizer('norm', function () { - Assert::fail('Should not be called.'); - }); - - $this->assertEmpty($this->resolver->resolve()); - } - - //////////////////////////////////////////////////////////////////////////// - // setDefaults() - //////////////////////////////////////////////////////////////////////////// - - public function testSetDefaultsReturnsThis() - { - $this->assertSame($this->resolver, $this->resolver->setDefaults(array('foo', 'bar'))); - } - - public function testSetDefaults() - { - $this->resolver->setDefault('one', '1'); - $this->resolver->setDefault('two', 'bar'); - - $this->resolver->setDefaults(array( - 'two' => '2', - 'three' => '3', - )); - - $this->assertEquals(array( - 'one' => '1', - 'two' => '2', - 'three' => '3', - ), $this->resolver->resolve()); - } - - /** - * @expectedException \Symfony\Component\OptionsResolver\Exception\AccessException - */ - public function testFailIfSetDefaultsFromLazyOption() - { - $this->resolver->setDefault('foo', function (Options $options) { - $options->setDefaults(array('two' => '2')); - }); - - $this->resolver->resolve(); - } - - //////////////////////////////////////////////////////////////////////////// - // remove() - //////////////////////////////////////////////////////////////////////////// - - public function testRemoveReturnsThis() - { - $this->resolver->setDefault('foo', 'bar'); - - $this->assertSame($this->resolver, $this->resolver->remove('foo')); - } - - public function testRemoveSingleOption() - { - $this->resolver->setDefault('foo', 'bar'); - $this->resolver->setDefault('baz', 'boo'); - $this->resolver->remove('foo'); - - $this->assertSame(array('baz' => 'boo'), $this->resolver->resolve()); - } - - public function testRemoveMultipleOptions() - { - $this->resolver->setDefault('foo', 'bar'); - $this->resolver->setDefault('baz', 'boo'); - $this->resolver->setDefault('doo', 'dam'); - - $this->resolver->remove(array('foo', 'doo')); - - $this->assertSame(array('baz' => 'boo'), $this->resolver->resolve()); - } - - public function testRemoveLazyOption() - { - $this->resolver->setDefault('foo', function (Options $options) { - return 'lazy'; - }); - $this->resolver->remove('foo'); - - $this->assertSame(array(), $this->resolver->resolve()); - } - - public function testRemoveNormalizer() - { - $this->resolver->setDefault('foo', 'bar'); - $this->resolver->setNormalizer('foo', function (Options $options, $value) { - return 'normalized'; - }); - $this->resolver->remove('foo'); - $this->resolver->setDefault('foo', 'bar'); - - $this->assertSame(array('foo' => 'bar'), $this->resolver->resolve()); - } - - public function testRemoveAllowedTypes() - { - $this->resolver->setDefault('foo', 'bar'); - $this->resolver->setAllowedTypes('foo', 'int'); - $this->resolver->remove('foo'); - $this->resolver->setDefault('foo', 'bar'); - - $this->assertSame(array('foo' => 'bar'), $this->resolver->resolve()); - } - - public function testRemoveAllowedValues() - { - $this->resolver->setDefault('foo', 'bar'); - $this->resolver->setAllowedValues('foo', array('baz', 'boo')); - $this->resolver->remove('foo'); - $this->resolver->setDefault('foo', 'bar'); - - $this->assertSame(array('foo' => 'bar'), $this->resolver->resolve()); - } - - /** - * @expectedException \Symfony\Component\OptionsResolver\Exception\AccessException - */ - public function testFailIfRemoveFromLazyOption() - { - $this->resolver->setDefault('foo', function (Options $options) { - $options->remove('bar'); - }); - - $this->resolver->setDefault('bar', 'baz'); - - $this->resolver->resolve(); - } - - public function testRemoveUnknownOptionIgnored() - { - $this->assertNotNull($this->resolver->remove('foo')); - } - - //////////////////////////////////////////////////////////////////////////// - // clear() - //////////////////////////////////////////////////////////////////////////// - - public function testClearReturnsThis() - { - $this->assertSame($this->resolver, $this->resolver->clear()); - } - - public function testClearRemovesAllOptions() - { - $this->resolver->setDefault('one', 1); - $this->resolver->setDefault('two', 2); - - $this->resolver->clear(); - - $this->assertEmpty($this->resolver->resolve()); - } - - public function testClearLazyOption() - { - $this->resolver->setDefault('foo', function (Options $options) { - return 'lazy'; - }); - $this->resolver->clear(); - - $this->assertSame(array(), $this->resolver->resolve()); - } - - public function testClearNormalizer() - { - $this->resolver->setDefault('foo', 'bar'); - $this->resolver->setNormalizer('foo', function (Options $options, $value) { - return 'normalized'; - }); - $this->resolver->clear(); - $this->resolver->setDefault('foo', 'bar'); - - $this->assertSame(array('foo' => 'bar'), $this->resolver->resolve()); - } - - public function testClearAllowedTypes() - { - $this->resolver->setDefault('foo', 'bar'); - $this->resolver->setAllowedTypes('foo', 'int'); - $this->resolver->clear(); - $this->resolver->setDefault('foo', 'bar'); - - $this->assertSame(array('foo' => 'bar'), $this->resolver->resolve()); - } - - public function testClearAllowedValues() - { - $this->resolver->setDefault('foo', 'bar'); - $this->resolver->setAllowedValues('foo', 'baz'); - $this->resolver->clear(); - $this->resolver->setDefault('foo', 'bar'); - - $this->assertSame(array('foo' => 'bar'), $this->resolver->resolve()); - } - - /** - * @expectedException \Symfony\Component\OptionsResolver\Exception\AccessException - */ - public function testFailIfClearFromLazyption() - { - $this->resolver->setDefault('foo', function (Options $options) { - $options->clear(); - }); - - $this->resolver->setDefault('bar', 'baz'); - - $this->resolver->resolve(); - } - - public function testClearOptionAndNormalizer() - { - $this->resolver->setDefault('foo1', 'bar'); - $this->resolver->setNormalizer('foo1', function (Options $options) { - return ''; - }); - $this->resolver->setDefault('foo2', 'bar'); - $this->resolver->setNormalizer('foo2', function (Options $options) { - return ''; - }); - - $this->resolver->clear(); - $this->assertEmpty($this->resolver->resolve()); - } - - //////////////////////////////////////////////////////////////////////////// - // ArrayAccess - //////////////////////////////////////////////////////////////////////////// - - public function testArrayAccess() - { - $this->resolver->setDefault('default1', 0); - $this->resolver->setDefault('default2', 1); - $this->resolver->setRequired('required'); - $this->resolver->setDefined('defined'); - $this->resolver->setDefault('lazy1', function (Options $options) { - return 'lazy'; - }); - - $this->resolver->setDefault('lazy2', function (Options $options) { - Assert::assertArrayHasKey('default1', $options); - Assert::assertArrayHasKey('default2', $options); - Assert::assertArrayHasKey('required', $options); - Assert::assertArrayHasKey('lazy1', $options); - Assert::assertArrayHasKey('lazy2', $options); - Assert::assertArrayNotHasKey('defined', $options); - - Assert::assertSame(0, $options['default1']); - Assert::assertSame(42, $options['default2']); - Assert::assertSame('value', $options['required']); - Assert::assertSame('lazy', $options['lazy1']); - - // Obviously $options['lazy'] and $options['defined'] cannot be - // accessed - }); - - $this->resolver->resolve(array('default2' => 42, 'required' => 'value')); - } - - /** - * @expectedException \Symfony\Component\OptionsResolver\Exception\AccessException - */ - public function testArrayAccessGetFailsOutsideResolve() - { - $this->resolver->setDefault('default', 0); - - $this->resolver['default']; - } - - /** - * @expectedException \Symfony\Component\OptionsResolver\Exception\AccessException - */ - public function testArrayAccessExistsFailsOutsideResolve() - { - $this->resolver->setDefault('default', 0); - - isset($this->resolver['default']); - } - - /** - * @expectedException \Symfony\Component\OptionsResolver\Exception\AccessException - */ - public function testArrayAccessSetNotSupported() - { - $this->resolver['default'] = 0; - } - - /** - * @expectedException \Symfony\Component\OptionsResolver\Exception\AccessException - */ - public function testArrayAccessUnsetNotSupported() - { - $this->resolver->setDefault('default', 0); - - unset($this->resolver['default']); - } - - /** - * @expectedException \Symfony\Component\OptionsResolver\Exception\NoSuchOptionException - * @expectedExceptionMessage The option "undefined" does not exist. Defined options are: "foo", "lazy". - */ - public function testFailIfGetNonExisting() - { - $this->resolver->setDefault('foo', 'bar'); - - $this->resolver->setDefault('lazy', function (Options $options) { - $options['undefined']; - }); - - $this->resolver->resolve(); - } - - /** - * @expectedException \Symfony\Component\OptionsResolver\Exception\NoSuchOptionException - * @expectedExceptionMessage The optional option "defined" has no value set. You should make sure it is set with "isset" before reading it. - */ - public function testFailIfGetDefinedButUnset() - { - $this->resolver->setDefined('defined'); - - $this->resolver->setDefault('lazy', function (Options $options) { - $options['defined']; - }); - - $this->resolver->resolve(); - } - - /** - * @expectedException \Symfony\Component\OptionsResolver\Exception\OptionDefinitionException - */ - public function testFailIfCyclicDependency() - { - $this->resolver->setDefault('lazy1', function (Options $options) { - $options['lazy2']; - }); - - $this->resolver->setDefault('lazy2', function (Options $options) { - $options['lazy1']; - }); - - $this->resolver->resolve(); - } - - //////////////////////////////////////////////////////////////////////////// - // Countable - //////////////////////////////////////////////////////////////////////////// - - public function testCount() - { - $this->resolver->setDefault('default', 0); - $this->resolver->setRequired('required'); - $this->resolver->setDefined('defined'); - $this->resolver->setDefault('lazy1', function () {}); - - $this->resolver->setDefault('lazy2', function (Options $options) { - Assert::assertCount(4, $options); - }); - - $this->assertCount(4, $this->resolver->resolve(array('required' => 'value'))); - } - - /** - * In resolve() we count the options that are actually set (which may be - * only a subset of the defined options). Outside of resolve(), it's not - * clear what is counted. - * - * @expectedException \Symfony\Component\OptionsResolver\Exception\AccessException - */ - public function testCountFailsOutsideResolve() - { - $this->resolver->setDefault('foo', 0); - $this->resolver->setRequired('bar'); - $this->resolver->setDefined('bar'); - $this->resolver->setDefault('lazy1', function () {}); - - count($this->resolver); - } -} diff --git a/vendor/symfony/options-resolver/composer.json b/vendor/symfony/options-resolver/composer.json deleted file mode 100644 index 895847ea5..000000000 --- a/vendor/symfony/options-resolver/composer.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "name": "symfony/options-resolver", - "type": "library", - "description": "Symfony OptionsResolver Component", - "keywords": ["options", "config", "configuration"], - "homepage": "https://symfony.com", - "license": "MIT", - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "require": { - "php": "^5.5.9|>=7.0.8" - }, - "autoload": { - "psr-4": { "Symfony\\Component\\OptionsResolver\\": "" }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "minimum-stability": "dev", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - } -} diff --git a/vendor/symfony/options-resolver/phpunit.xml.dist b/vendor/symfony/options-resolver/phpunit.xml.dist deleted file mode 100644 index 7e04e6049..000000000 --- a/vendor/symfony/options-resolver/phpunit.xml.dist +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - ./Tests/ - - - - - - ./ - - ./Resources - ./Tests - ./vendor - - - - diff --git a/vendor/topthink/think-captcha/.gitignore b/vendor/topthink/think-captcha/.gitignore deleted file mode 100644 index 85d49cb86..000000000 --- a/vendor/topthink/think-captcha/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -/vendor/ -/composer.lock -.idea \ No newline at end of file diff --git a/vendor/topthink/think-captcha/LICENSE b/vendor/topthink/think-captcha/LICENSE deleted file mode 100644 index 835ce60c8..000000000 --- a/vendor/topthink/think-captcha/LICENSE +++ /dev/null @@ -1,32 +0,0 @@ - -ThinkPHP遵循Apache2开源协议发布,并提供免费使用。 -版权所有Copyright © 2006-2016 by ThinkPHP (http://thinkphp.cn) -All rights reserved。 -ThinkPHP® 商标和著作权所有者为上海顶想信息科技有限公司。 - -Apache Licence是著名的非盈利开源组织Apache采用的协议。 -该协议和BSD类似,鼓励代码共享和尊重原作者的著作权, -允许代码修改,再作为开源或商业软件发布。需要满足 -的条件: -1. 需要给代码的用户一份Apache Licence ; -2. 如果你修改了代码,需要在被修改的文件中说明; -3. 在延伸的代码中(修改和有源代码衍生的代码中)需要 -带有原来代码中的协议,商标,专利声明和其他原来作者规 -定需要包含的说明; -4. 如果再发布的产品中包含一个Notice文件,则在Notice文 -件中需要带有本协议内容。你可以在Notice中增加自己的 -许可,但不可以表现为对Apache Licence构成更改。 -具体的协议参考:http://www.apache.org/licenses/LICENSE-2.0 - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/topthink/think-captcha/README.md b/vendor/topthink/think-captcha/README.md deleted file mode 100644 index 4a6c25c91..000000000 --- a/vendor/topthink/think-captcha/README.md +++ /dev/null @@ -1,33 +0,0 @@ -# think-captcha -thinkphp5.1 验证码类库 - -## 安装 -> composer require topthink/think-captcha - - -##使用 - -###模板里输出验证码 - -~~~ -

          -~~~ -或者 -~~~ -
          captcha
          -~~~ -> 上面两种的最终效果是一样的 - -### 控制器里验证 -使用TP5的内置验证功能即可 -~~~ -$this->validate($data,[ - 'captcha|验证码'=>'require|captcha' -]); -~~~ -或者手动验证 -~~~ -if(!captcha_check($captcha)){ - //验证失败 -}; -~~~ \ No newline at end of file diff --git a/vendor/topthink/think-captcha/assets/bgs/1.jpg b/vendor/topthink/think-captcha/assets/bgs/1.jpg deleted file mode 100644 index d417136bb4613984dd88ac25590d2794344c990f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30428 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 diff --git a/vendor/topthink/think-captcha/assets/bgs/2.jpg b/vendor/topthink/think-captcha/assets/bgs/2.jpg deleted file mode 100644 index 56640bde4ed9a02c4e46b951f2108e5e4814b14a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29677 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 diff --git a/vendor/topthink/think-captcha/assets/bgs/3.jpg b/vendor/topthink/think-captcha/assets/bgs/3.jpg deleted file mode 100644 index 83e5bd9026f9d46c96738a4209f1abb91f7e1e6f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32109 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 WW2Q1p-X6|ip1UGwC*Qp@{Qm&B(nP5M diff --git a/vendor/topthink/think-captcha/assets/bgs/4.jpg b/vendor/topthink/think-captcha/assets/bgs/4.jpg deleted file mode 100644 index 97a3721bc777a569c6665e38dec04a82df9176da..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29081 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�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
          5eqK))^(a`g}#Vel}`0jqQ{$m(#9bM;B`pV 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%0Dja6n-|cc61%dSLS`lUd7W-JGp5n>o88 z2p<#>bSUWS9G5ve=d=csg4YEtqxp$cFm+UE7rVR>$bLd zo%Fi6bq(un*5_`(ZeVV>v(aqh?v4D^u+$ryOgCk28rV$Vd}9k?OV$>_*6^)&(k#;c z+J@W4+V*feW&7cDx%A}pmpi<6lxL`Cq-J#OoWJvWrg>)WF7aInyPC76XI1Rh+P!V} zKz3yIgFQ}rN^?|mHs*Bi4clA)m&0Erxs!4?<@W7k?t7HymRG)CXMg4a+=0ahUgrno z*BrDuSa?X~(56F!1+0SR!@h^F6j~M*7O57c6{Cw2irbC^AE`a+e6*s(s3fm+TpseT z%xTwaKh@#TajSDyXX~f9PlC^zzfAa2&}H6L{nh8|^Ka4L`nywmCiEQcwd$?u3+#K- zpE!UY$QsliJjY>B6*^yjes5Uzei^YmyaUvo(F&x|_L~%G#2}yBr32|{r z*`Y%0-w#74zqcrOkCT#=QkIof{=d{__W{>1C|JyVxHkI)SeqTDwXiThvLOZ|8&(8^ z#-YIX+U#gFW+e638hvOK2C2=C!((8Bjz^&}a#$b&i?ch<#3_Wp;_QmV?Rj{mq1xy# z%*KUwYQ?Skq)j#VOW%Kj9$!sz*4=U7q{VpuFwW)r7EztmV&cjZ)?~Q2=AR0p zvy0B&c=E1qsFpiML;y`O%f8XsRzYH?mY-hT(IT(3Mq$HGNLH;hBG{Cwc#Wj+0SFTbqG$UpU~ z$*v>n%8x87|BKE4VDfL}-%a`)vrgJZ-CB6d`BnPTE?&US3;f8+wyHx0r;auyrnT?t z3oZ5xP7H&^&a1x6FlZ24dIA<*_HIipfx5$&a9&M72CrkR1YrhS&w!bpep&Vd!W5W zVTx}-3kx6HRbsF{T|KySSL$LB?}571l4$!^tof`mSee-(w1^wX?e1vizTQl$DyH;* z>7;ydHF#9EqqnMMK7=ZQuD|R#J#a6zWL!P0y3g({PzpABt#)z<*Hxg_Ud5|=okOb} zuhx+*0I(GHZL8v{dbj=qpWw*L?!4mGRP;CXg&v*2!VfG>gY}}}G~cE4H!trPB+w4E z%x6+^I z|6-3%YL$$}(sT=6fM<96LWQ&~qNM&$G?z2?{g29G=M{H$q!w}yCFfPtP4%r3>m&Gk z-d%Dh&<3rqQWr~`I;#w$9xiby<$)827x>IAE@M`$|3L8JjJ%K2X$~pdI@LP$Q%h%k zb)DzA6LZP8qUd?h`p*JTt=q+$^X71pS`QY6N^t49buc34!-$yEgo98p?bhkl;qo#p zj8e?BO!L83?_N!%dEXMn&u_AL=I?tz$*)V>Zd%LX!|Dl}GT)(|-FelIN-dfgdRoeX z7dH3eLar)p#_Ld*&PL5Y{u_?6U?v+YRO5ND_bz zEyeliIvZRiR|MpL*4hEXBJb*y{>y_m$Me}aQ5)z|dhmmOu`$O|sN<*phjlf0Rx zocY&^uZrgDugG~fq~`r4_UvZtK`-X~kGz1vATGR4LI49cgJ=1Kw39M50G3lyEm4{{sWtoCJ|!MR$>=lhgb5d%%BC9*QT3)MO! zAjcfp(t$GW<=no))RL|PP&Bt^G5qm~tm05T0cbtIpHTJgkU_g#>dM%L!>^jY`YEyN zW@ulSyQ}156F)h$WUJn@ij7lWp5q9>_N*eKfI4N0sbbV-F_P}!Uk1ltZk5xxIYmt8 z{kN*u=V=mJwddW}?n&oAkn!%Zr8#GDcUQs-p44(w&8;_=kLR;^LHYAc1OQEWeS}s* z=&2eI$K8qO^-xL}meK9N7D3q3sdt(CbtrrmqsL29vtn8BXHfOn2;I0=5~Xw|h-9U={C zAQLU~wwwG18Oli~xVU%DDq4NX(0AJ;N5A86^|cH=yq>CMP^zJMtTpHZv#aH>srHt4 zCl0zkTPX7~we%|)9CF#{*h>4vqgmyjBq+rD7$_W%q7`hsU_7PAc70571?DZ!U(I`) z9^*{(ZL5sD!C6H)nejC<0u51}zFZ$(Kr-}{k+%SVrh7{4+8z8LczfC&JxB;lR^Z-r zuKH{Q?+Q%^Ec^L>{7c9U!j;?oVg2B07+??DPbV51E&7^Oqj?OIyu7Dq@0uf_y9ZN( z-4?bKHAq(;@eF^Pv!QeuEsTBVcJTGvd%GLARDPg&wp(3rp_xnwwUl%x^+_9)ObXCB zKyx_s>Z1Tiq#nMD-tbcI>Fon&r481e+xl9!=vLC?J*&NYf@!5kg3FH0)QqRjb6SJy zC^smudvL$>nn%q-A0Gjbq)orQ%t6Q3;gLLnR(bSIf0x=fO{K)bME-zUr&V!C`}=P^ z?gKt@?QLpZuw<%_@7kqskVSV1G*=&V_5*M4Smk-h%eC@71FEa3MN6U~Eu}RJ-d-%f z!rQ>Z5A0ZMMyq+j*2~@SRyXZjQeA+)wy!0jR(3@JBj$0YMt(YX)>T zXi1$Nd{lJc{;A*||6@HoJ(py7a|y=lbrCx8Ddw+4Qf3ua-^__X2SN0GLQCx%O6@wBG^TrnJbMWEk95mwG`hyRGEfzxa*x-^@Uw& zaN*(j*}g@m8nf$9ed;0jtBF?amgzU?J*ku^YU{@r<=$2<7Bsx)&S7^yXn39rQ>cgD z{q67hVuXMT3;DP24#C&i@9)f-tgwnS@gvpx>JWMH2Q7m5RW)V#Kn z!RsT_YT)`8TCDbNi+Ih2@yVZ૦ilU=I8^3w$Rh1aryLRN1@vEe`O?@pzT+nv6 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 R;s=GvM3(ZxPL-v5{|~;{ne6}o diff --git a/vendor/topthink/think-captcha/assets/bgs/8.jpg b/vendor/topthink/think-captcha/assets/bgs/8.jpg deleted file mode 100644 index e10cf28115e47d1f5413e76efeccc39cd655b6cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30188 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 diff --git a/vendor/topthink/think-captcha/assets/ttfs/1.ttf b/vendor/topthink/think-captcha/assets/ttfs/1.ttf deleted file mode 100644 index d4ee155870e0011906a24cf200a8f6a11d2daa0a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 57520 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 diff --git a/vendor/topthink/think-captcha/assets/ttfs/2.ttf b/vendor/topthink/think-captcha/assets/ttfs/2.ttf deleted file mode 100644 index 3a452b68f3baa612539ad43cd427725e96f44100..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28328 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
          h?Dh;`UO$BEWkO}@9qw>ZI2^xAN(lX_pcD;%+W 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 c%R7_2IG>vddcb)xU-zgoC({L12w|r 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 diff --git a/vendor/topthink/think-captcha/assets/ttfs/6.ttf b/vendor/topthink/think-captcha/assets/ttfs/6.ttf deleted file mode 100644 index 7f183e20820646f07ae833b64230629ce815fd36..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28036 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

          NiFR; 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%0AxGNr4ql@>e2TVjC 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 z

          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 z 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≻d;ycWSqKxMrFva1_ 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 ttadbN)KkB`o93VPe`p>kARxCs`}iJdNs z>g6eHxQoS3V#=vahNGX7vehV%vhN}G-=839MBfI)+_f;JhSAmsJG|Uz7PL4xxPbbQ zso(dW__X61-b4K_dD+=RVLI-&!$oz-Z=LEH<m;fcI(zg8% z)X5P}d`G=y;lz&ppzI@DyPY6zk8wMx7apTw2%Z{4dJP*2$$Z6G z>+Gi<`9Yh6AEr2yvP1b{^}M7@8C@Frm&c@OGUXt?8a{Z4QnWU~PLHy^fF8*NV4ZiX zXA|0s(dCH820+#>5s=myJb4jsS4~Ono7=(ShNg#Cf(2K zeov#VzKO2dSI^k)$zxdTVp742+LTIIS>SA130+$W#o`{ggHjS7PI@TKHZc&-vn=?1 zD_)Bt41G!)rY-?-__54r{1571VWRK7Ew>GbS1a%eur-LA7xGd=TFW|c57^e6E9c7| zGyoMoB0z1Jp6nCn94H7s@@(&n{XA&-YnT_WTAib0FVSi-4k-im%-zXcTob*83}_mD z_!2VevplaM2DfRLDjczz#_92nSq{dy9eSJ7OPgwQ4b$g+SaxCp{WG;ge%}%JNrmw& zQw(+D0S%K#MK!%r8m$^KcL+Ru8Tlh|DIaeFTmc2ck!&k7!Mp2F!<3ONi`CZz6Z-Ot zC)S_tsQG7bBB`Qz9Lr4lYJMjroSH9bWYm~@z&?eZ1(+IGm4H#e#R0Im0WzS};M6c~ zE>X`t0iH%{!C5(7h=GFw){5=nN{in_@;h%8lXsnmphW$6c^5SaB$9t z?;Cmya}2z{r*_wg`LiLf6hVw3lSE7)c7Sp+2~9Fyq|QF3P*ytrP>|st!!V=GQ#qF7 zc&qpO8$wZJ%&s9v4ct~4T|!_FxMw}j*(7OziFLUB3fMie-(nmtF?6(4nGhg;9r?GC zyMllM#s-wM5K5XVg>WojklaE-wYG+xg?_dt^Gt2znZ;%SqZT zPoEs5N$(PGxpKx7ssBRu@^*9Qi)tZzT*)r3F0ZlT?ji;_F8Yr6`rtB8smD7Hx8if- zAZ5O{=dA}>XPzdvi;sw}M7zLzcZ1t*yY97K@2Xea&L2Zs zuB}_a>sLnVa-+rn9B8CR5h)riJqi>O)hke{4O={6X8@uKsPDs6bGQ*Cm?%WqY^0 zX*RENnKLczvrz{WF3FqZU_LRtS@^fQ#jPlNG<*z#*-9`$d)68v&iOKgB9w?iOQ|Th zLo-CbUGxth8W(YSgtt`Vpto-BlelR~eVMjV#p}9(OZu4HA7BHzps{`c;S~&Fk^*9P zE0cj#6t-oy#{!YRg0zlf>?X&T0}rgBe9hH=X} zk+jpZL}t{@N$+YL-cGK7AogXb_Lh3~m*F@!&27W@U2&RmK6>d84t$oj3}hc|dYO!4 zp<4_EG=3MG>hz(k2q;!E?P`MSLtJLZ@PKql7?93iGMh@~1y0Z$v>v`h5mw0BG_>!L zX%!nWcdKeHs;($xVlXdQUH=ZP;RjeKq@%r}?i(D7ykSbvY?MU#>A{sd4-jBWKA}Ek zzG4K{eP*zp7_ZrOt$s_PVdK~|QDcw-BPV9^F(oSn?OJp3{s&#vIWBWhPm#V>Bus^5 z$2n6lTl`etkgPO-TLXQs*%R(uL!GUVeL7gjJ=mlX$kj2q`6f;3uv%d{kD|OnkVU{M zN;)o5;Nl!pPxo)MoQvb(r6{`-KS@vK)`Y|>s-!j%NVos4a7ECbG!!y_7)|7LQPa_V z(6U=DAD(vePQEx&rBV9?Z~b1;OYkRBGEv~5l^h_!uis-|r6{~vqm&?2^4y6a=Lfl2gC94 z_o`6|iB^wK-E`dgDs#?sL>!HbHH?D1W%kwCA<35}+CychNxA`TAL-yjCLLS(x0!Y!g$gX6fghgih1|bTZKEeGxNlx^P!MOetQjki^W3WXmv8~E!yx0K zB-`J4_=Xn~D@A3;ZfirH=Oj@%OV|O1=IWN=8Z2>Qi$f9O#i* z=(NjH%CH5CKp$Fjz+0z9a(t<}o!i&OYxlu;qKAs-P#93a4Vln+wAY3eyGQP`gVX+CLI=dP zbs{muU;1#)q1rUNt$1@IWkhV^OE;rE`6kJX=K3+LRFmj{OYi&{jEKoVTd47plPg-* zA3ztEkwJ}iuI0q?CL8KNgBH7_tm{(tVm_YSoWXO*uZxrRRIOvhF@Pp#ZMedb+cO8T1{fSXcz|jD5NJ~@c79od?e6e>0|W> zQ*aqtA(H4_>WS77kFv>KuI<*AC-bT3T{`#Tqn-SP&ZKn?%VLcW4O|~zW*jfdJiA8e zIScg2SPi9>;%i-#EF28p$9Y3zjm{pM3vg{(p{UDm*#!>r?KLvvd8 zRBxj?Zg#neU?D50^h()rS+1;VxzJ{v)gAaMO&?p#<#ZtJ`#Wb-f6&I7>-D_&FE(~E)iE2Kcdbnpoq+OTWz*{aT4F)BjMr?*ZK+BT|i*&%e zewWM6@9wv};K3>d6g-EUyZ!uB-J2_PDij{M0wmCj25J398#|*UeBd8`3v@ai@3{!OU#!2dgq4U-E4N4 z71erE8&<{Q^?~J~20`k&f7`aR9xHLc?c%=3U(1kKw~2W^i2jgIo$O@){;QPo;Mq4Q zry_GUF{F0L&zGH_WSGlS#D$*tyDFkp31tFw)KKeAjFLz?6t87-lTccqiB2d)4noib zg36e;#8(D^ac#iKo2HFt!fC#zYvAh)djE&v(?7hbhk((y`i9#DIO z_RY6u9(2IBp#ZM3u5L32nikWzF`rV;SP!emP3ybViOyX55#tuK)vfiT>=QL4hJAcA z-E*@#Kgmclr!}iis2jF%hCyq)TY>X{d(<2wYG1rYEO65V`=#d+Qk%dFeMwemO#&hs z5-iyw!<&j{n~C(w>N`~s(_WDjTexLNPYTK}1wvODx2xPkbl6}<222qD{gN9r^<(b> zI?eui0v!R*@+sN`pSW`&0;rs~9B3GwCJK;(&nvzm4F3RXb;DXNNn;D9A899pI4>k~ zWQ~M$N#=iz`#hpGyaq4Yl#ei|VoTcIsT6^sjr#A%XZK+dM<}$5k`vYWkN4X!^)9Ir8i+f`(SJR@ zXf`Q4YZ$dhdghKRk^Ksu2_gJ_@_C8%0Sjh#iMGZx7OO>xnY5|E-b(2}iFn^t8Ok*| zb_|3=EtC!$;^@)&yNC`Rvv%8p%p}c5!$+o-w~!&?S&yK^tKf|QXUQdNUV6d~K?V(& zgEiN>5_GOL@Hq%G16~4E4V|*n4Tg9}yOH6fKi5xtqv9B<%ah5&iSuxKaLG$=#E)X# zm-ISDh^ez-dfL9FUXl%#kyplJ_*INII;9kLO(ImBah^?DgKZk*sx>3+c=L@kPhFYm zgxW&!$#HduImz)^4j3kmVVj1RyuL)#!X(4yf7dHqa*bwr&7v0Iz`Z!mD#Tx^SF&jK zn7wX9#zK%`i31JY=xyf;wJ7GZ|K_4}&mzC)CG~v&Iw`o$<#G3lTihs~M6a&U&s#=T zp^h4fy_aNcBz;y0mbl59%-JTfQgEQB^Wc*%IclEulhbHK;@fYsTgS_iwmFO^0!Yjh z+ujZd6>M;TT0{@0Xxa{dR>GK>%(ahVeo0Y98FZSNPr&0)IVUNVDrGSxZ6n+cX}iGw z%hZd%VE-@Uff2sJDtRC%u+rT?S zE@MRcVLm1KFi_EtlkNjgk*-)Get=7XMj_nvG^(4{u9jOb0IDGOs?xvM{3VR;5=R3O zhyr%Pzt#5|9xO-UCc;2ASG8P}ZZCuMNOx4*m()|qW2tjvIJy*s*VD&TMQ(}LGX`wY z*;gjgBTgdd4is|Nid*9GK(8;6=5D%1aSw}-iECnusJaJjq zw=oJa&fO)3fDN;|Zz`Z92;%}h5DbabxHX%LmbLs1Z@%~(Q!?$gG49gnI8OGDI)gkO zyMB^-c($G>uO;5a&EbX6zkoX({?TedB_;(?$q>I#TUtK!k|ZRAhPd^TVQTxMz-_s0 zE7+|UYc1c-`upDY8pWpmDE=wwKZ;=+qoLZIzWwVdh1uN*^Is0F#f zkO3r(Cy>JEZdL`R5yGbHGT}Asl{{*ZrA|p6qc{9E)lG)gElIO#1&n#aN)fpJN3>R% zOLa>}hM+$orcy9Wz*+J9OTelzOV}^1dxme)hXe;AC`DYRpg9EoL$oL2 zWuduCE{8A3)Dp()ShYyr<~E-HE-tMUrNVis_1LYy??v_;zq6Vm^{Ic$!rd~K}F zc9fwdg%06Xk5KC;5Ce%=e*+(Z%@RcXTH?)8)bn2B8yrnu)WE7iIUpm*2(PLZ)wi*^ z<+){j=mAUyz{ctxhhH!hGX-2h7qxV}O+guKl>i+bw7^1URWRxeGbhF&3md~B!q91Y zJ$xL7)Cv1f;x&FwJ<+*TSeJ(5OHo)4o}{;3A~PS63jc(LkNk$SQR_(43@=M*sfaLj zq>;N1LIPncq&YmIlq@9PGTcL}i)3j_Wlaz8JcSq#7-rsK+#%=_!E7_@_>MH3Au&kw zH@GW&FUP+ny*MT24MagUa1IdN4mC>rQd;KozIR`oW0({j3K)-+{f?qK4pxH^;Xa? z`=cV>>UTa#d)9$KGucqBo#XIv+rUdHdH-dL=ATAdIZThAuA{kbtrav@$1Py=Ybk1o z9y;C5J4vfkcCw%~KFnSu?8Sd%-7u`jYea;je8YN47z z>O_yZn~q!~?}8~%nr-5K$_O!86desn-hp7z&D^7Q$k=td7Kn^gNxYSi?Uts)q!?vV z-yS)=!*mtNoiEUR7Bh~OAh&!~9Nr}t*{E(wQ^u-Gq4ygZ?c;GH#~Yh!d!{DW);0z) z*=z}O-I?vqXh~yzlgR_6craPFc<=uV86kBZSao+-T37Q*p4t@Auvl)Ru>QM9sVSPZ z3vTceY49`?pfT?)TJ(PelYx=ruw+y#>G#T%q@>*qb0Q_3tQ$$3O>##VXeU~QLB+OV zKng#krWJrOI}eKmxZwFg9=)VXfIlJ8uH8ZxRaq~JHe}>@O2RCjF0!acX#0T-v0Xsz zSZ303>g&Y)ULhBv;qmw4F+>I5kxk~d@4gg{)Oa2VRIqxqk(zzh)HfIT*KGX~q1pVq zFcTRmAM!WoAwxJbjqp3*XMx!14=0gPmWQmz;|=6_X?n01W7}e~C^-kx2+53(Mn=|h zU8i&3494bCnG&bHBpcF5i>9lL>A@pqd3(?ZKodjc`{+lzCb~jK03yU1v&l3^&4b2z zHjy{|(jtE51n(sWg;xIi?n`*vo(@T5?0Y8a4mVb{=!(ars&<)rMHzYBlT_?LUY1#% zxoW3ro-@H{6>k%JcMJY-{T@nbkl-EkKA$zwHQ)kNDu4xa;R~);32rr1BQc?b`8jkj z7bXuX9QD$XlcZUY^}^PeOb%K~L~ie9LGBRVt6+AR)QtPo2g4zOo8x5u1?xski0H@{ zRIw?Y^hn(iR&Z-pk*1sk?K1IOJzCAd4mNd>pKg>g1tltt?=ExvNU@~&FJ zo=s!AnC)?rIA!Fx7gM<8(C7}u6kmON5Ebi5EAouc>479L5+k4knc-MR!E$;58pZ~e zw)U5*9Q-oMH`^4n=xJy)< zv>9pxR9Jx(wKVFW{{19PwiqmoWXRx%KIH#xZ~#zqXluS)Z(R#F zspc)v)i7q*5mKzruxnzgU~*XXqkJPv5`qlw`11sf9%>`m{pi^9un-J~&m$8u28_oe ze0Sl=qcL@Oc({YI8wcHvhZZ>AMWcHiIvNicYyBu?HeGZf&E5YHYwPR8TD3ou8)FYW z*$Qw`P!r4)d384kQ_k6MK3j=7;d#ROKw&ly!;}Z_Xvd@1f`;arM=c7G$jG`xtl&FP zF;zHD&~???1r(4Zp)A@<#$ncPx3G-G*K&-)UbF%92g>5Vp9Zm%6++f-)>V&exvuBE z8$ge6{$IfWuqM87ioU9O5+&FHe$po*U17fvc#lqzmqberk#MbT;V#-QC4Bvqj%>=x z6(9K>#&c!VhOT|dcRmmv!e^m+GTZo z$ZKKFFl^B}Ws&+ii(h{jFG)HrT0uS-ZNuWGYU~sq4ejla26QyVri*XH7;LORVh~Dg zVyPHvgDhN0Zars29-+dLUiml3jtax@r&!R@K?es?tKG|Er%=z=%(dAd;1rni#609k zZ%=#2G$eAZksVf>}HO);NQY^Pd2+LOOi#h zAlA%_27P7w07wIpW_MS3+pM;%7sLh8GYqlFU5iuzTKpT*azP&N!@RgoPpmL*L5gJ0 z=PA9*BJX5}>;|wa`4oEhAcezH_sP86UHlma!gc}~kD)Hg^&^Jnwz?7i(X11QS-5Yg z@d$lIt;uc{XdC}QYnL}0zPj8UB&<-CUW}~aUi6eL(<`g>g5{%{?z@^`H4Lh%p7V_c z5L~d0wE#0?5(?wtAh12O1`lHoQ#1?)d6M*78BQCg`)gP5ZfKuK6s(boi7l?s-&cN< z{%g342%(UsNOH&LaebkQvF)^p91w}QHj^B75|SA$HbKf{)V~@V+bA#tahjZrM4%Kj z?JXIwhZZ8J?Rq;P7_Ng5#ZMK8_$CKly0^+aMy+|u)`GD$+Y8PLXRQS~bCD~;W0%qs zFv+$z%ND4-lcM!Uiwr5QC{*%fuRvhK5j|_4-Y$XRL^rqa)kX<z*Y2FkO(1xL%rKpN08h`oI4qY5#T=wXzm9T z(sqe*Ek^%gWYPJqOP+Gxi>dI~z$FiIxVG3G(jQdfFQtnM3HT z)l0Lg>|!|EUiY&M)_#)02b~82pH_>ZMn@PD@5OlPz`Ymc4|3~eY&|FULyji)% zfku50<}C2g*dW`_+5{Ar8M?b%gMoqEyvp;fskf3 zwy{9U?isVBox!-F9K=#Fbg4L@t)vmy<2OPxC!Ipm03;4)m zcx9v`iu_xGq0+m~JK0THwUB|Vb2ishPzi+IejFI^b&Uhi5+^`6@-=}+HRs2N$pr`t z-8l}vE&+@k!mfkslH+QC%;+$Ruj{4Q$q@uyR&3IoY`$6@hWC3?c zXQ2s4gb<(U#pwkKztO}cOI|=wf^vXC;36mB3DVcnZx(Y6%Ec$fR8i1Hqmz865`Jt{ zRM|-=Mw}vT9NsBy(fmm_s5&T4K#=NYlt$_5Cz1=lS?r8LuZMR#Hv)VFRLVaUq?euq zXr34T5`MclJ!@HKtPw_xL}C!SE^v)b?ovRD4jv}a2F({`Iy5Q2!_7w#>-sF>JLpBO zHS1XMdj9l`EDGUnH#f4dVp?XODy0TujW&7=kNO2P(iO$s10Y5Qbi9S zNa5Ln3~)bqOE>G60Oc3d9FETJTcCS>>JY83>_xCbw)%>LBdl6}lfqxW(UerFUz7#Jb3X1GAuEADl;BmC^g2Sq&1Bx-$NP(c2i4mz! z(2^Ps43}P0-4k0(t18Jfu&XNd%ML_~r?r}KC2KSDx|g0*H*Gim4YXM_2|Ct-1h8j` zg&n7t2&TJv__kPev=ckUJ+=~R@eC;zk*Z+vGyb8D``tv*6bW|#%hD5~(gMB$M+6j= z$BzaY;w@QuAfPOudjRtVN{{Tsg7g>1z>fk+2?ILn#>6xw9_x8G)TiRL&^lrVEjng9 zCY{L6nJ%317!{@zJ7pw@wK`D&QyN6}k({|9e)#E;qIn|fFV`%{U$z5aBb7a*7?E;y z2oR2j*nIRJR?@~uiD{>DPaWvi7x$4D-_a~z`I!}5|v_=@g>0+xfh4S|& zD7zG6(Q-vST#gxJZJPV(P7vT2@rkts1jF<81hTT6!q3s@+Ce))#mDc8Mb9*NijmQX zr*vxO8)64Z*82aAbzXfD3gwAhZ-91y29Vxo zw|%3$CUIOWN`K9ACwRNu!$Ef;`3lGEhf}1Z7w$2R#x{nbNrxm-(g~t~x&+9ppuL9S zN`Jb45tQWM4vAR27ZR}AiCx{V9wswy_nDFv<)_8PVohXPQExzz)l^+NB!AMOtE%r; z)S<#(e9Ksq)k=4(* z0T|Z}E^W9jQTxwxT>RtsE~rEx`amSnvCp}NGx5z+IB$|GNA^-rio@tUF-g33+eY$k zN|U4@Bi`b)&SKd(W|gTebQYaeC!ThR_T0i0eOmThm|TPEP`PZUfTU`UHa{C|KOpvs z6EsIyA%BDZ8VcZj&Hove4#+m8C$4MFjhtcL4vpwu#zEy#6vylVW5B-q*sh)vciae0 znh;<80eZHEVZn@!zQn4CId?A+s1TVLUxxV8U&8dyU>vl4>#2)J#5MhEzy|Dgn2Lb* zMweZ?=%!IG_UJp??z9|Nkbjb(0Cq`(ZLMPz6-SWuEtc3{39t|-Ze3SPUI?YE(El!Oln4-k+wuV4=WLNxLNWrkyRfSlKkB58 zPpP!a{}WgORvf&HCQGUuG412ZI&TGscr7Up**qbsWL<3wX04-I2-7!yk<2i8X=tu% zx^P`O7UZGhwnz-sBB;TY-Q#xJF93mmxhOr zh3=6jz@l&*OLh|Fz9FNW_#=3QWuPM!llYrj#}3CXz0TbZlNQn{JKJ0-HGqCu99$i4+co>_i|kuH~+!^)K&QQ@*BQp9k=0ZGqY zay4BhvnOqPdoudGDgblXV#ZZ#pD0(i|0ZV6e6~eg0Iv*x4z67EX&GF`GS+9EJVpYr zcwdk-<+C5=4-zA@x>5~_rsStFij6XH3?H{ZK^GqU$J)bx5@Y2)a?_R*OYhPo$f6Mr zh-eh5Dqx2`^L7dZWZ)zp)pY|l=nxRsasW$L%5X^fz$MCWJljW9qoEimQ&Y_Su}T=a zlry=iB6-X8+CPn(;3#g1A0pl&+$DH|s?!MvKBqQlZ;HEhQ|0$$4IT1s(PPfz@o*v>?tn5)A`0VjtvO`vNkkWJODEh2az_81*X2F+x z_11>XfCNk6$ns>32P+0^ZjysY!{s2eeq8+=Uc+n@6$6>*i`_R+6LEQ?Zpes`_rU{q z)Q4#=Dv`qIA@1;Vsy>eQ$R`b-Dx}yg`eB$40>;sAjsVh}9)0+>9q+GyPJQnCY28O> zzfzpUxDkl3A!7o#tHh-$CEur!R5W(x)B514@{u9|0*H6Q>% zYktl-K>)&*E?<0Bt@9xNri~Gdu_YCj=hRU;{v`dJE$vLxMA8w;j-OX$M7_OG0)ZPr zx=O2FFbQjz5w=BX^zTRFNE@~GhcVg2&mdb$sD=~{sD7w+M{!Y2E~~5C2rZ0fw`!5Z z-=hGTZc}{`Qk#-fz?+LLk2#QmxMB(Ahb;4A2zuDuaUr#g(p=gt8D(a!A2m& zBKajNJz$iYNeFY$tO1y=epeM(0P5>F0iRE}t~3wG_*)x1Zdulc)p0LbD+6b1 z7$p*uo5|S`CKRaWsm0>QXxs8)Y@01^^tEv@ynb|#0U#0 zD;B@n`-2z4_5=sycY`o;a>F|{RP+z{=e**meDAJ)GI~lfa(ac~+*U_0KxsL1M!k*^ zf`a}gbB0XZ<(+nf@oKk^?On7;!R&WC8R`VfyTb5g`!RLSb@MYf5Bbh9p`07?iyl@Cz56@g%lOF?hi}bU!K% zoU6k6t>79RbI|cn68#^OcD7$o7qu@*MvR=!j(6lae@mr3!2Jf`K8x})R1i;ya0%oX5%2A zrfDXo1VK(xs_0>drxN$Nnxal>Pq|1pV;>hKaYbKhu`Uu=A*+eiK*LNI888Ts>dC{y zYwE*PITXfLhgOI^8v1sd2pX8xK-Za$grm2WiL2VMD5m#WzYL zd#J#)H@E2!L znQxL@3nc#-KJqno^$4(iVMQHFU;>Bw03i1O4rl|GvRXhIoWnmsx3a402HoU02j{|z z^tE8TKy|%~3moWG%xxt$X6;*rAB6ai4BB^fDoU$S187@wEW>%{g)h>Km*Fj9GYNZ! zh<8DmZAkgY2|8{mE6QkwNgaP+Bmz3-%Sz?1I z6$=-{;ef#8UIeQJFEziZ0Az!Z0vLJSpzO?>d3;SU3~>G|to*+Ip_r;G)yZ(>%9w%U zZZxTi_2K3N1k4|#{8yK)lMOsri%A5r$);u+lWE{KqOw6; zs3ZtuUJAdZf0gjpKhhaSw~^jbclK_yrgu_fDdR{=*?V;f-N+lxA;C`D34a&h91!9{gH{koqmMxAfbW5d z^}T#?UV)(%phqVHgbbx+UyU^wk>$?lOWKJensXUxKZ{#~UKlx_qTJ_w33IApNEc!i1)MTdiq(cFjYu4Vc9SutJgxNMau|EuBPWlOdo3f-o|T<~en8ryy-vYd_!8 z-8U{0ZU27t*91;1RP&h96JnACW8W^ev!JgorSi_{V6C%K#nZ4ZQ+YhncNTF+t%b z2ncgTuHftJ?2sxe$@<P$Lswd9Pcv@JMyJR8AUbB zhjv>fGZ*@J`iUa{=)V%aNC*RF-=uVAV2&>PhtikV8fLkU9rQXcCkJt^Tp~3to^jFNtai zyrB1~$6er&JAK?yLojmoVIahPv6N($B?2q8%5IA*9iVIY?P;9|A(ZmtX^C zk4SKH8dE<(Jp`LUe1zf&K4Y2!20Y)8ic4a^pJ(tcOqb}e)@P)X$yU{)=S20)QaYCX($E6Pdj!-av?YPCt|7L=pGF^eWvNds8~JK@|8 zt}N>TMRKd__`iz8=5vO3wpp}1j&|E|v35~i-RvjfsOE_6Zg2Q9=M`VZupRrY5q=(A zep`5T=$s|KB(CfQq)dk1V1(1hG%oSI)TB{Q&!Jr=SSH@||3uf6cVnu+4Jy_MT>=Ew zD~PnHD*>Fm*UN8+w}Iwt4p3JZCx=#t?;>0SJucOlOT2BaviRK->eF(6MOH9EKvH5{ z-yG&0Kk83XKk%~lS_Jt_)A44QY)-MFshh*Lb4mN8H$#;6inwaKh0J2;Fpvl^Ziu_k z*`%?(WZi9b&- z5u$q~?S5^BaxoF2ACq8XlY&P!INn7X1;U_Qe}ctI?-_8~zomj*d~zBeW!C-I@man> z3!)WwtpJ`|0mFv+Kv4mNTUE8Z0L=u3f^Yy(ACY%=D+%VH=L&uA68Al@t{2dB#ZQl~ zvth{qt1?N+*TeY0dXkhO^kRu#!&wmI<~z|w%>QOCbW7C}WM#teur806Z}huzMv zkx7aS&en$u$~|$y6S>8=)Gp#-?zNbH>Qui5F?!!e0NnM$&tr6QeVARJ#J8ltw?4q$ z0l`o)ZCo*Jr;3Dm!vM&G1l3boUS%{T#-l+fz^DRK5{04#y+aF{8;wghu`K-WG^Q;G zl9ZALwzjD#xu-e>x1~n~8k&^kG>Ip7pKzXdrLPiIz)}^M0207kqh13(L1%slO3Ryj zbOG4}Am@rK6GE@*c_}#01?ok!OB~beq{(Y)V86uihM%@U2q;?s(1%&FXz*eRK6*}s zIYNhOeDh9L#2NVrnI0BoT0cuk!8IxyA0iG=MSa$#@fZ>p4C-RN1)2@^rS=!Rcb;$BA_`yt>gI{vCeduj@M# z&+ywcR=`^G6eMq0ufR+LzTpu9FM&D?r6Gg4;QE5st{jm;%CIXc&RLLcZjb>%0OV8L zuQ0zEWj>Nx8$`4>HZpLK#7eZQ4>Y}(H=l|T2nLO#KaMB&Q#dS{C5?j@&j||XbbA(J zM2=w4&lCC`s7(YtbNF)7(^9AC!9vWFG93#|#XAgM5=&nz|6R;cJkv`e8GlKAlo1fjw`2Q@>cU}C zg{)su{|kD1p$<8CBzlyNgmyfLLSsX!$dDT=b9s{C;M>8l1ZSv&rGej;LoU2p3`SU@ z6T0PyJEBdn+{6b>Bu%Vgk+>JQb?LtQUV)Zgoj^s{6EG7(I#{uQ48mCgO>-XkP>wX> zLtgWRiu3qpT>?^li4vq+od=8i$(JHx%~U;F-S~lsn%X1@g!$mMVD^%C1X+DC%d@|@mVLHomEIsLKH@42j3$7H@!ER4C{@Cjz4NU zzoq7Z?bn&x=be+LYfQ8`AbrZvA_tY7v z&o(yTW7L$Ry_odN$$DKka?P|Qwf0ZbKCJ_ZpyM0H+z#^8$lGJ;=yEh&`etMnwFabr zyfsM?npE9d-w-Vjbfmo$0pZNWuO}+;V4t}|^tQ3B`}52+adMv^O6W$Og_1Klejf25 z3{_^+qXbL`E`27^v;vQEQ05$G>ipETwiYt@ITE;H8uDMV&HhYh@10YZ(5b=8C5izQ zVOT4yTmeTu1#p}u&;{%jpoG`~X9KE5#q0XpKBYn%R)rgdX`6WYsZh;58Y8$_6;Z)Q zxrGs!o!56LaRSPyEPIIeh59ryF1e?KklPE%65kBnFO!61iX|yH7q~8}4pZzj*AJHiA_+V_?`}>XvJX&#j ztxgzbB?7@%-y~V=^WwXwIEF;H3yI{zjZe)sgySRs#De-d7SsnRV*cbkRO3N4k{F?N z0Ja}}frYVBK@-;1up%Hd7iC``o^vvQ(0&&LClC<45h%S4Qnfb+S3J$U;8%-=@#7z) zED1+3V@601r-IX>Q;Dl2RYsYY-OILFGVlP?)Aa{d%efRcp+ z-X{gFBkmkKj`Bg47}!pVxh%Ftr!eMe7&N6HFq{!G?zpD(h)nNO&e35M7F&)g%NZjebM@g5%!5ok@$@pVNimJ`ZV;FBhK!qOs#IZzMYdR9Viahu(_CizEl8XT` zR1M$_tQ&AP8^H!NFs?XTAT5~N?15J28phY0D<9vx6^oh!va9;|V!b0)0RCQ+G*A(N z0E!lqhzB~j+0{2kLcujbi$LbM%vjv|ukaFU?K@2Bb9C@Inw>0r>)L^5NkV4&d| z9cYV?p(;?{N#?*37`wW~S?1&ipu@OC&O(Ti+e6s|8W|oz#x-Q5$%h7tG8jFOyszMC zdK9Ov3ZJa$g!io{Zu>0b189mNqK1Gi0dJpy1|$Md6e00j%F_3BYT}ehWwiK`{5zRr z`G29moK+Wb5J`)1trJ%o0JZ%3Hk6$&1qD!&4H1fPHNFd&p$7e}=6egh6$iTmcl^aC zkw!ytrF=-8^22tY94IfTw=TQU@jl7M2J^4X3yk6>!h2P{DE!~(V!j&28k!DS$Js8R zA}o=*{!0mC3agNID8G!V7*b&*LBT7?Npbz>0QJAIoQArw|5?JbuN_53hR|YOf%uRZl#R#Z_+_9#QOs#pO ztY1`O;Q*y42nro*qQ8gimoThq;SV)5&*>l?$jpCck-D9N8_d$XC#*4P%{+B@JR009O7rFm)q z2?D(xcygF?H00(kFF?hLvH{9Jsba@cM=PKcE+Xs*8L*NZus}tZ`5njTg#sJ3<1&r% z%879HJ3mjY-(leL9XK^Y=MmcfUE;_O4Ar54Vm8+$2k-c{#DQ8!girEQ+T4jHThgqE z{)lw#>B6-raB}SpN*hr+m~!|sZCFqa0S3L-1OiRJz&{|%=26`E((y{XN=t>KV%ZvD zs!GcaFh{TkFuaolMNWti658X}qQ3iu8JN?kAY2KxSfikzp72PKI$#x_)QcM#<8ITk z^(?vlTKA<*g-g55q&SaAao$kJ{it0zZsPT}_UkAZwF)WjL}|UGx;b`FbeM(1%g|9X zsBHdvyGQBZ$TrjeIr0z?3`frV(`X#7Up%*o{6zu&Bj7fSVG^ANlIt5e1sf)HqlaQXKZRsz!8TF^Iw-L>?m@{K0)sQwgYos-$5u=&| ze2MXSh~H#b?>;l3AQFsX$#!fs;de&oG`NAV$Xoza3(Cn00i8b9d{Q-jfjOto0etQ8 z;p}ZGlKRWFc7X^o@+r>ds&-*gbQLlwsDV&%f*{m{5WgQ9yDxSbEM~++c4$2fgBuRa z8s85?=owQqo|3mdw8AneT10^RQC1ap9$~b-_maBwWP~r>{eU8x2j`-ZQ(}Uv#hU0+ zINPd2TS3z8mJh<>a!R+AFFiC3jD;SV$A;5$QY5$C(_N`lw`aCy1K%qt7wHEf`klZl($si%- zis%f3Ycn^XP~S+r3uqT+OW9F6X5Zf%Zoo9JPVYHk6BRotvOJVp_X^;{o z5?*2$;;hGRV?r2Jb(E|YLC5?pnzG5*PV{3Y$x!7RNGS+;b{QC!XVc4SVbD5`Ag1cT z5M1xCG4$@?phuEs%Bx*66mUA=@g!$H8q$534WXl_X@o6Iy5!Kww&>-4MLu&n_9V2e z^ID{G;ws!iqROwT*9Fc3VL<7*0AvXo-UGMQ6JX6m{?r;x1^VvlrEpPwu4XB`5lJ<# zfG>xI2slymQIOW9D+mY$KrlJ+9@9MtFrtj`$fc>-7Cxweou|>~zew){bUctA!@o^e&Gq@1A`*!W zN#lqqmfGL%m^3O=G!)vJ1r`cC@;?}oHQ62kV+(j*P$#x})8lAf$JLh^t-1Ci=B=In z3tmN2Iyy;H^GUKPUWGqFW;YUBT6El6Lb3);K~jxiAY3hw5Qz&AbkfE>LI;R)7^DSA z0;;)NRf58GO`#`DMq)o6W!+>7&{lzr9{U*42@|=qMqZZ2==Fo?9Kj1R%)w=X}KX6DdeE`%L6^iQ5pi=9Ol4??HLrMm;f0EY~QDyFqfo z^0;Mdf?wMrVS)S%Fy5TzF=;~7wq`vqAH`wmIqlET#`6ZlwnEeUB|1UpjCMqsrZRMI z4_9f?YCnl^IL9+*B4mo=&&kWk>2BRp*MlO+IY2;?+pr>Lac&1zx0^z@6e)$B(v8=} zflTBK=cs3pJkfYf{uB?CbO(H;i9)U*qd}!%0)R?DBnF)(D1oB}LIb?JT&f{90pAkO zgiXrpYKc5R(5=9ypIndCItrNQ^wIC`LrVD0gc3bh65zXQVRkr1wvwxlQ;CG(D1ft7 zQ8Gv|m2|8?lIRRE1uzp;b9pYY$?9_{?F+s$Qp#GWDfzM?12LiUa}d2kS5m14uz7VTd$88b;Gjh4??? zB7;_rNs=;t-U!X_hFkg{OsOxj-(+q**0V|}#WJRpM^q_to6vj6d&3W$5GDxi)Ay3= zrWPYi90V7BS*FS_V2SHQa|-HYx&c`{O#Q~J-wr6MPg{!Qv2cdrC{uZT=A(>cB4Cg) z9I~L9R1fKB9qDaO)TaHiKO~2hKDJJjyZa&Ym!n5X3QLCUoTu&WZ{mM_9U1o_dV;WX zS_u{W2DHrZP^q=BhifsETjHR3_zi7=%q)|m`Er}S?|_?(<4Ta=WKJ19KAqtXeomPxLp1hEq& zEBECU-4*xPnS5>Bi^IWTPPk*89e2?;Lq=25r>BQ@HWKY$XM+#f82*@q!Li^;JBj-; z%h`61V#=$C5kUQb`56q3PWVx3ijjVGO@{6f^s2{}6a$2o5UVQR@1fGc9lvb%(u_vSR|!}#|6il))+KE4g( z(8wex(_@{lc$2XjilV z2P<7Mg(YMFM*}1gRgEu=3Y;=D7qCh5O-Um?L1^*=JWnY1l;ckD z6BDrZNd18eTa>m%SaV_4E7Cl$zZ=W)r|_A^_Pg6EJ&UCG^G}b}49gjzV>6YhJh2se z*Fh^8X3?HpW39vYP~+kZEmx>V z%1ksn?W4j3v}ufE|3%asxZ%%$2ox4Go9Qd5`sWp;<4hnyQ@9V)o6_}jY7YYP26UuP zrhYh|B7}68I1zVFQL6Pr6F2;fut*Hd78jF>AtWSG0g%7dcKz^^UU!YW?4ui`?YpHo zL_DH)ViEpJtqDE>TwhSHHW@Q@1@Z{ht>|oqvL`fHS1>6dDbb~$0?*fg?H5$ zY#+X0`}^Z$fK7&Ke1>LgRKg*$cDG$SqX(|qeuV4|6@tF`UWeMsPw3QOni3tM4I9Cd z;Hxs@@<=H&*>Ju}hds-8%tUHs09O`T8AU;qBEZdZX?+0W@=41ghXDD9V&*bs!MrXR zppsB}zZqLWuTnI1;z&5A=)u3uAa0C=0Jusf?Ei_Ty$f-O)8)Lni2Z^L0dPPSC}_Z} zC{(khy8z?_Q4Bampal>G8$rh9p=-pJP@gfuK7~qsk!L_xo}@!QRyGk!P7*eZq)$o8 zzOXRV{geEE8JtYKC;0;ZFMdf?C%0UZAs(QrNg5pQ_yHnbNYJ=DJZx5iIf7gt#tt*1PeLDSATK_FmwV@B2OA&Sh2oAj`%zgU64N zsUVQl*!|a~LH88`EPmb&y1mc1!E5%nvEh2mchTm_h!673Z+pu2HM`v4*pIdfT-M0I9Ha)H?`FAkw^m z%K=kw*8CIz$$xLo*`CnTVtKwm9*D2#w4u@iz%J=j@6OMXoTF8|vuMm-Kf;3)SexTK z@H4zr1S%@}_nYcmtDSXxAgKWyP+g*K)ual;{4|L+5EXfPpnNRq z2A=F#B^n|Z5KOP!x^8H|oy%KJb7i{(nR)5Cubmb*OJAz`j0Hx|i}3@100y1}2m%8$B*-B_7y>f` zfRF%6SOu3_Q6%U9P@*WUY)CK)?ryC9(Mk*o%g~CFf-bbN8`|G@v)=0lv0YuSTvk@z zbI&>V++)78+@MwgA4uHt;vP#cYKpx6ev{x`E5q&AmOsrXT_f_>ZiA2f38SS1oIEvR zB<^Ur^FcNxN$pEWNA>_I?uvZ=CXRj(*1;HZ6@Hc(PMQNDuI^)p>Op5E48yp#e9T-L zf%{F$wF5}wun`MODmpe|@o%m}K&EQN{L)XGyK*m0_muvD){fjAe);jJci1d1Zi1-N zBlVDWJxn%!2jS;@o0a7q_ygv9pkj7FNti>VqlF#}-e)L_#6_lRZ2tq5PR7bo2~ZEu}!91FZY$k!Z- zKhzJif(42+eJlcS7Rco!l)2bE92J!0^-Uwe4=)QcLEot2`3~&pN7=>L+)a_Wg!YiG zqOSf{l%B8l&~aby>_0-reRhWKVa4ZD=xbFnl(uB%#Fo@KZ&Z_*^BZOPd7^5k1v(@G zU*L9_ooAoFDt@@620Tu&xR(Q(MuV9+0zIR#&_rRw<>-2Ju_CP2o+{y5@b%1RtIW8l z_LTAl&(PpS4i38fsV+K9$jmXX%YVi;oDC1lxB@W>$E>o{+4gAa@x}(A08JNH6vW7r zsIllLdulaFvrL?v9N@QA1_Y>m&VFSU;abA71CWSrsXEznl*EpVPMqY8)h_X;BrJ=G<(#@({_iD4<5K09WB*} z)nw1HG-B1)UR0$WKHVBXX`N*xVUPPg=EU&@IS7~s(p3mC5M`%)ig`gR9O5qP3wnJS z_5m;nwB1DSmixeZ}$kFdLO9)`-XdBOua9V16ph>#Cth1^K&_8yxz|FkGx zKwX&fDz}R~*U}s+iLoKM<=0Ru9EPploxjJFa3;|{m)5a{$jrVG{Psz6a}c)-$r_ND zH65fmb1@zQ0NZb7?K~oTjC@s)?YQbH`oV4!7HZddciZvS$XTR2E%{GoiFSm>yiyO{ zw00k!VRwO^HSRZMo&gYvI1`JdG+x#m_<(WR>}O%RSfjXbTf2dEcu+1W9HxUqJ4sXD zdXFKMoIO~u)JO4C5#Gn;VuBXnhlXi$Q7gQ-f_( zTtPlNkNeM_#8}52o*p;PcbpFR-T^A%`EU^@eRXE|bBktr9CNep>_5HKAin-vus+C%i2K1Jxoqj@na zb*xARq4kD6N2MEP2)53`pE*^F9a=^J4J`sHm5ZVbaK3m_&mxkYlBJh&h6TpH4X>bR zS(MpuvV4#Zy3kzngH|hizSnB@e82a$7tN`V{M^-cYk9JA5AeJ+A77vk%O!IUxp?%0 zgZF+N=FsnvdDnmm8%fv%6_gh1aAD%G?ik($21thlpfU{D4s13sA@IM}dUvXr*$wXM zfY=E#!D0Bdje?D9By(ZcF>83593c8A|KQ8y2y*2@TmM7WuYZQLKXP?nDiMb1pcEvU z6H9cO(`s(XiQ@D3L^zISazxjVFX@AQ{Dt|4;e0BmUx@>ht|K zs}Jm+!72pp!=NWCNC8y?zEIIk54^xA)Xrr<4>l$b<7e5F6jXWV&^Ql~4v(^fG;xlk zxu|NPA}uipa21dk5=+xTy;%TO4S&QQAVOYRyBFFWVPHB=uu6C<(-BU5TpU3p^A#!u zfZN#*d*;wioIcB8N=>Lm_&ghSVWX8g0Xd)g-_AlBw1my&dei)5G$P{B;MBUEhnN7j zupBCbzS5NXEaxH>e}mV=FIJ5)T$T~2$EZU~yIHkx*iS`VxJ-Yc?7<=f$BD{U1>SO} zPVwj&@_1}gpyQl3ufGgetiW?00Ef&A(ha#qAZJbyo=Za#?GIna(l}(oGj6!(F?Mz< z!2&z3W<>b5LB0XLzW8Y_`kQ27vY=prT0=5nZR)Xv0A?`)v`eAv7KW!ymRh3(g-#AA z-+|e|9olkJ5@3i3QGisZWi}hQ2;guMtGCB87ZoE?7Qw$p-8@N@?I)-RncFQIW~yU0QG}aCUe12) zvT6JEK5$#Lu;_t$hxLJX#d)te62xoWDDHt#eDt~?E=PFgoR)jm+!kfl^+c~Om)yoA zZ%xe9QJ0_Y*u1yNNnjxCQ9pQO*nF|aTC^bmD0XC|1h@&!24mv9KH0wRE-Con!Tbhf z%vq(e0m;(??o`#R>h?fZ0>wb7^3k1sjlL3yOUsrB(L}U}^-1 zG|EkHBI5whLu8ti;*!A63I!If6n$={%6P+hOJUyK@G!W3C~kSV6v_Lp^^iV`Yy3qb zdd$Z&$M^!Kmhw2`NJkWts}! zs?G$DPYbq)Tqxbwsq{bt;HQFo>+Fzt%!#bvbU$f6#fFrnYi}X&)`~H;SDyP8;~#cH z8-=Iy6BzI04dpc)1VrcR37X^RnuLzMX3@_Y!*(OWJ;na&3w-NY z@?o>u6FkFDu+YW!r1sNyqBdL0(dr&D;*wD)-@x_!C7+I8Q_m1yXhJBe4S9M!pCc(P z+Q1A-=lpnqLQgUZnk%hF2-dz-ebhWmCRuhYTS9) z=pV%i=PWhq^j`<1E3M}((uZK8sP8TuaI{C zZd{9N^SkmN_SgUCkoI?&4_d8kC34Pf$fedP8I#hoV#KRzmZuW)X?54vM6P|3RgVWR zXF8)jgXk7OX{(^86_46kxX7+CC8;k2JBgYhFc`8HMSx2X#iSk784&Sc@xy#c7o9+6 zjJfQAq2=9@)$5B%Z8)k=f;evx2^j&)8v%4tZ|0q}9}+z2fbwM%^D>V* zJxXOYP&Jp1d>NoyimAHlnkZB`G7JNnC~7-F)_e$#FfNyl{OXwP{I)7|z}@56wRQ-m zO-RXJBLnHPJ{Xc_oYZq`K7i&%R&$~RJWpY7 zZ{bbZ&$PP^#3y*v3VR_I-M2>zXbu}*Lu-hux5R_+B#*oi6qa3i3CCtC(4;>h0VjWp z&^8Xsml2LH!4}P0(&#tpMLWY1?ft=v=Eb`)DENQu(~X#HrTZA;F82v)>kB~b&<2TA zu?B2)bQ%P^xFT$Lw;d$7kAlu(kc==g&9gXtO=BJHaVQ+opZIaP4Rq6ge!9vU`7Rpd zHtV^&pWXOVHt+x4cuzlnt#mSQZG)ujB&!;t7)jbuOgSsdYx%BXC>VG)!i>5Vo40yHF_hBqwH!Kx5oQ`5i< z#7I^DY|;Z*&_nq#2)6+k(Wqs4R?i!8Tef-R-Db#UALFR1xo6P$$uLFzQ){1ds_Zeaz&bBO#2tUFf zV^MsY`6g46t>!Ybtd;H>-7D>3Ne>HKy`X8(+}K&gW5Ao061I!kd|s!UmMfSgO_=42 z{b^EmBQsyqZY09GAZlt?LL3LFD-4aeOP>R3JhF5#^+wsv@21%$F$k6{^X_{f z(iBS37-@ugi6#7AnxLJW0HaM9GVN0v4?I&lpeYqfVy&xeR7~{tkzFcB4xRD>0RLBW})X0 zO>{^MWCMtE#=+Eh)K(-k&D*vY0b?(i2ry8nBl7Mw%?1T>u>TMjhq)ftL8JCn6YQV^ zU9t&%nw*o1%a!0kTtFqF!W!%VSXuxpsRNJQ%o31ifOEr#n~?RM0u{Da&lWGd$ffup zUkWK%MhgJq)sI07ST*M+W^&YIBU6yXfn!ruCH{nX>_tS-y9q20LBjx77TA5aViw;< zw(q8lQWGEZ7)ug`pLu z)({WcVGmQ19HWICsN)eRsqR?j5c-fL3BC|UOB|G9$)QgH(|sYJ$Q``Rv)5@!G1m!l zla7i}=*D2hc6R3*^({hKxQlSZ5VeqBQxW{fkr?f8e$@OpIr>-kIZzPYV#z6z?$5;4 zCxx98(UrUYN^tV2mS8EIYiCL4(P5eqri52~tl8jg`+pkhhj>mL2UizrUQxRV=Cr)I zV<_2zyf8h}q_i5(0TP)F#S*5%WeBP&cYlxcZSQ*MM3n@|CG~p08MJ($ywvqdo}Z6p z7mr$Kg}w0 zTiA~ZtDQK)>O#I*2}m&u`BHTv{bV(peEN;kFzN$n>ElcRnJ`Snd-1tMwcsW8FqlhD z01%RCt&!M?jR@-D03$JPQI$(Zso0)bY_?}}CY zwRn`pLyFAmo1C*ha0raME9wD55u6uf-(c>g`nCx8V~WXRb0d}|!BfCg2gy;^CH56f z8miDemyLd_hdmq9Vwk!wCILy(kKP>9*=5TpE$uM2|tr=DO-8$W6x&v$a9hYlmzRtg9A5R@dD)3PCgT6lei9 zMoSX^jhsq3S_8CCX4Z!ZrSMU+K|e^r6D#|#Liv0nbbPVO$Q3^qQX}H$nRwWe4|0gC zSIGgPbts=&fvA-J{7rrE1LT+O%R5EEcQ^-j7NSvPd6YNU(g?Wf(%Y{}nBTN@z`DU4X6^*9JrZQ5<5{fty+xC#@X4>yVHIe^aB zgV<@Yo5P_~zmdWyoa2wJsNyF1O-yJ|v=Oso$+Am-HF@KR2jbG=hnI3X6fP|G00!O! zOdt+M$Eolp#tN7*`3Q7j2BD`$3PUgu-J`>}-I$xeCA`%jQaBpZYIxXC>0Ue-w#>4u zt`@6*Xd*J%{t`P1ba|W%ZMbS+tHGg$=rRqYqAh9oBkm5ND5lT&tpJ+eZ#ur8f_a@J%A=NZj^j^NP&n1S1net%Te4LGe%jXyoB z({4etD?rvRxh`MEO>kd8{%((oJgcl%l@iGR(@EZMwwB!bmVoQ?iF6vk%`89Qk18Lb z!6K0cv{(c;4MUf-c$9v~n@z5(fPoh35$1QBD$Lus?X)^c&|Bsc%E3GI7<9?USB8On zW8Wj|=Vo?@50KmOByJSC&CTgqksI2{)%62vVb1dqR&$_@vgSd@b0DuZC!5v077(8g zN>=Z3#-x<9YqgY4TxezvG>#UcZxth2w>f}qk!>|(#8>>wIE4vAthRf^s+Z|VjX$C} z?P#s+kbRK5;Tu6k1REn;C~B)6^6|6Wd$W!7e9`Qw@se3-QCzh{VN~r^dGUQZ|B;}% z=G0rY4E;};Ot+p5GNM5y`Yh>~ZSoITttradwQKcoDWW?|9E1BwbtJfkRQatO;-fvb zm9fjNkGf#8k5N}GYRwB=zR4|Ne;qVylG?DHt%(+1KwQHoBp4g4MQ)oeE$h^HVKvY; zmEP3dLgfo%>n&Dov?|tav;MR>iXTLriqwU;T=yTO-%OKI2}Cu4IV6@$RpL@jRFNZW zS0`vb3Hr>6$?p;=ClzKitU%kh%x4-|Lh`xS?g3QOPP@tiz~kXLZGn}Co9y0v5B@^y zGfq=r3pyvwUQsh&%<#I^-ow$&C8x0wHJ9$CL3XD#YW@y{W0wHI6j>L{bC%&ds`ZU?0XP9PCI;ylw7ZLKz4?=<94$qeV<6 zFbtdh521FpZKG@~4ouL_z_j+Zsi(;)i%C4TAh}QQ!W=4mN6WxoIp8?|=(8y0&aJ1Jkw*QP! zRw(00X_S}dMSZmR)`%U2zv~4|)gtf`f$0q*?cRv`^l&SE#L%;X<$Y}!9m4tm!5~ZYuW6ZOizD-4l zDjFpb?9nXai(D{uMdtny1JXXcTM5W4WCF^W=9h^rm~EZ#cTSlt zV(1KM3t%ErILO0|POxkJF}Pa+{t3x`9w~K$q)~L5Ak5`2nJ_A2pv4ZLRJtE3FKJTSg79A-L#$t$wj|tVj({ADAza7bE~9Mw0|}XCWUV z26`&0BU8|MQ_D6FgbPDx&Xg4F$;#OiD^#)9NW;UB#8?)HJJDI!JkF+tRqAoGUW;0j zhP$-1dBzV`mno)4E04Tky}iVSMIFgHOIY_)G?0KZ*=3E*_&E@#Yk1Nyl_;L8b*KvS zkEs;3>1_ix{PZospud*&uABP)ktfHsk?ViO^noixQan8LEDz9>{8Q36(CtFF#afAj zXymt|E}>aE0r-3#8#cYsXm1^$?S!lr=9D{odJIu;G*tW*foo5$2;e4cwZO`%5j#v` z>ilZ7k3;`anUrzyBnVA`cVU&TqBKJ3lYe|3ldYIniUuNU$|Mq%9|A&(@Z3dGCd1x& z#w;8N#uR$n84s)Z&O>`HO^=-l{m~>AJX)!E<}`aL>Mh`9_k`KRlwp3BOmM^v2-Z@z z%B{yDsq|h6t&!U_+S-KA)UBv3iWkg+*m*t^O1TsP!y>ej18t|_)k!F4MMYoaCEN^|9|?}; zNsnVuiwuqhk~shxK?wsnXPwUt@(Ew&uB_m*=EFnxL7J|-;Q6P#V9aXvq73qeOHzHG z(how{wB?8~jX*L64~lA6+(b$32|i@&P`Fszo^ysaczxLYBhahcpnetWlAf|kuv3N( znF;)s7Fn`{p?9H(w{i|IPkd%0Tf>maki?~>)UU0vC3Z0vS`j&Wli zMQ{QBUdKIv=~KfwE#GCEJBtH-?XrH-?6ge-bjyI5Be?5ibVv72Q(XQTx`E<~aqb~u z!AXKVGCpSEt7fpLCdZKR7)qOx92Q@6gV5e-SBkAOWs*~Ks^g?h2czW@x5H)_5MKlZ zvKL1!%IRWf0Pc*z#ff=968JH8Yc$kd2+~H=#Z7c$vjLzKjbBOdXHEUSjmJdL_kHO8 z4@vK1pokbDG!~tqmFNL&EMJQ}QZ5|DWQex=N<>x+Z&wHCsipi({I0puB=BON^qfPp zInx)W7@ej5Pt_h4{&bu-H6iW_syeZ~>sd#kEF05cOjv49R!E%=fl&iUN~*0p6yh38 zdXNIWCJl_pabe5Z$>jUZ!NTj4+tI=~Puy1`G$B?tc5!lrXH+olpGRrrL{C1@0$*Y& z%Id4cT4ezOAfZfpteJw>-NllkSegFKy{&$o_9V13kK@+z7;J+Y)>Dtj50Qd;bj6(N z(gej%qe&VE-6bLb{#2krd7XBnPOxoukETBD4m;E(vZopexR8s8h~NA-R^$-II0P4* zA`Y(^sVFt4ot+M50G{2vhWw%~Bn;K-kW8m>VwebD_EUd0JR=PdHwx0}6tBXJeXb>WEG+`^K1Zkur z*?Kb=ciXE8=oD+bwShdnRI}}DR^__};9O}veu&yVvO!8nmdT20<`n#SlPh>0Hdq}O z(N$Np_0pb|0I7XOIw*NR@-f_p+$_)(pjmHBhTSw}Pa;vePrOpqCMvU0z5}7~D?TRA zr2bu1AEJq6?n=?X!uxD|mCdi=VZ?%YfU`>!eL2lJ8vS9l396mv1!ot<%O`NPv{iEk zVZeK5BZ-z+GhbxC9;3UL37d}yI;xz!-U104I5QQ3klSTb=t&e?B{MYa=1qL?$pu!{ zcJLBD6OxaDPw?dsaOVw1`n5v)95l2r(5M+hRVS(gSwc%(AhZD)&Ec4i3z6TU_M^QJ zWZP;&w3$>h07fLW*;%p@p=^pmh6fevq$$ua=j}IvszDmys+`TFLZG1)JK1Bk-OsDF zHhC#c3cr<>JU>Lq18u-@_8$kMUM!s;c%_YVJ}h|31B_~C0g8%8#ke_Cr*#J|a59J5 zLf;Sl4KPTX>?2okIg|FC&}guiwQ}&^aN>EFp?Z(y9P1A&n`?d_8_|1!$qU`+7Cze` zgJgwNh|}iqN=S%ri30{CJH}h)3on6&)YGmA*Sg$VXO0T(_9CWSY>oriS?|&9np_+F z_!R7ayO*@v;o z--vzpHncKa%BZImx4}(tlwAQuj>dgsiYVF@%vmM=3+&n`eTht&(#%+0wCAz|0>n&U$G zd%O{2Y>Olz z!qt>8HBc1ZWwuKFmujAsEOopPo$Z}ZOYSI;DPUppF3|&xB9DnfuoXPD$WQC7dPcng zU?7oq@&b7o>yCHD{EZ(cXnFe$=7!Hj37d`g<4oGNJJE~g#jlvJ^gdud5Wiwx`3aDO z3V0V|Aloz-x50aLS{W&>-GoNPwa9n2RxYW@qUXuWeH+{uVeVWPtguO1gvHOXbrkgB zm`@+Yx_*`Xc{zP!ys`fk3aOs=B7s(6$lqym>xJI@al3=GEG15|RML7S)d(LeJPIW& z|A`gtF^~$i^Zm9Ze4KNiSv(@Y$G4zAF=cQ*IcHIl4S&Y4=>|WM82)A zfqGU)$fSUW!;;qrGr=>+KP_fZeTo%0y>>P^Qs2-$L^Seh$}97abA_CRe?h^g9EH?O zr<+VMQ_3-~K4$)g`55Mw%c{zWWLHf&yb3knU6bdMALQe#%4=FVK>eyzH6H6 zI27<>ew-H{x0KV&1_lI!q(kmGu6J$2U2l&wJYlXdz0e<*C8io76gh%1Y?l5Z1jReT zO4w&BgBZI0i)^O|Q%5s-OsLIs!5AcGg~mUTxs*|NO{9rvcN#PgucPy+Zb2|?@xY`X zw(+@9a~KfF#Yw;!>J#cKCtY%28-askg4ACxU(G>}k#*v-mj1s;Q{{C$kJf)5l4j$k zqI{ugKv0;7QiQJ*Nl{U4z69{Gj$&#=cx0_)4xwr#WtBFvAL|3%E0x7T)e*R1^s#im zeb6`e{gPKtY~}6u*I`kh`EgwVA!XXP^Mbv1@VGUmM`5Rfw-G291jSQ|2#aom6uH2| z=FZ*#!vQNn)oLAJ!t0o3q)WErMFem`o6R`F*#RC=l29!ftkeFX9S5D@Vz1t${M$bc zCN$0!6l8-$A{M6_iXISh?`zB-y?=u`?nW6um@gf3InDO`E>Vr!YAfy7Ul`Kq)|o1N z*cW~>uKM=CoY@HXC}N;Y?8>1eSlIhGnYXO<{AY@}CY>y$qcbt@Ws1!LjL&BpbO#H< zVbp8nBQO$GEP;5lV~iKnwu@9c!aZC+Za=)>c2)njUDKbz*YebSE(!6U>>Xa zVWts6O|n*E-qyS@x%2tcVfK(v$1zu-a;@fbY2{X5DRiG+a}JITd2|1sT34|Jy#Rdd z3da1)Y&x#PCI>7Dwa^2en6!B;QPaxcTF=qU)5_^?4v|NPcnO(Rz?T%{`gPJj zsJrjH6{_u`Uw$rO^{qvBK*KA%Bnj)__PW``Rfd;|Jo-#WzC zR0+AL*d=UfaXkJJb8KTPmDGsH)!HEn&OZMZ^LKiO&>ghGNaIa6T=m&GykG`jLr-mu zs6sNgb>ONlMe}F0nL(?N5C7l)qxp~KA3?(XGb3G0o+j$*5AZuoni!y*eerGP>-95c znZCQ|v>ljRKj(#HD&CI2li*9(LU{D6E9(QAqGgSs##a7DQq|m6%WrMV-^`B9aXQD? z^EhUW(fz6Uhg{SCHOyuHV1Sr{c|i+=cbMO5pE0{B^P!^7cQCi(2JE?8wN(VSRw~q*57EI zO*61IVh-1t5T1ztfwVB-0$(Fb1#Arvua2`4|0e7_9raxbmFOE4T#vnv*6Cs;ZYolU z&zMjIo!!U@Cld5W=D(PKf*{Q4#+7TC(^zJ55KRv>?7{MoWw?v5?Ota-esPI^1dqPcG|3xqz5LT zPT~m={7jP%!DhfK>~}~l=&;b*2*Y21U8V4dI3z-6%d;DMbx6Q zDn!{_09ZW%Osj0QEyhav6 z7d6a!j=j&d4#w{@_mhM`k(VOEG~qTYbWAXZ7SU~ecExJvT}R=esHC-(ffi!L?XbZn z3TSzCHm#Vs%nM}sfQc=KFu+h!HRZ`%4yq&GyGkp*WZd35X3_(y`|RO%~bUwS~vZ(UbGc{%I|WLVEb97esP>9?JT`}0mLT1aU^6H<^o}| z)BH$y`eL|;PlIpbvr2vs6H&vfa){*n5OnJ?wz!51w;B$EjEmK>f0gjoG%qdL^#?xD zprt4H%J(|8PoMH@M`z{A#E<(~ym4&d)FW(E{WD%P@v;2hWCq!L&AaKgre(mbzq(9X zSUvnM(6&yij04o!Q1xN`Xc|q&J;ypwO=-#_QMPCiK<$ZiyOV{9~D1F*|eg%&U z6@Ev9xTxQ3`kz!J3Lhfd04m8*q9_KI4hkv2{@^1LVwrhLCYk6qb|!ria4(QpNP|7< z_9+O);*l@Hi@dv8HfX#|NCjVd>%adA6#2(kFiM!6aJl=d2V>TV^Er`1hRHwuot6a@ z;l-z)Howx_yB|gD?$J=PS{horgrJt#N*-Y$IDzc{dkmFdW=>WC3}@@%;~S^;kuJu> zuy$F_=#0*7cmr>Zm>JE|{|V~TcQNR+J7<>cI>zOcXecIN%9CjxS`q&tRVKdFtiZ86 z?(<~H?38?!tN-d9u7A|`4pFAHu~A#`Pj8$hbw)Fo_7r33!G0YOGFHJXIdNL=PxPNeZ2>sjq=DXmr5qD$M5?F#xH7DLMd_N1p|>R zGE@dS56{hcQqvMlEvrHYIGJPNR#L^LA)kDfW&ColOzO&*?e*>^KIotH;zg7;w&D|F zuo%~3(yz5n4z6&pAMZw9^uk${-B1?kwI{7;x|rU&V@AI!Y{f2!uz0q-uF~!nbCAJU zbxE-wGO;ywBBmD-*q~=3NcoTs^Uo!Vo2KY&?)lLNz;arZu|U!|v;NkCPZHkqyoa&WYROtc+Mddr|!EFkp&S^_2wx^m#C zZeL3<%M1JG1u|%9al=-cQkB>vL$RTdpJem$?#mI%$)pIl+muX?=ock5XY* z-b`9;kbW+gINAn-C1P(HpmHOi)rgOUNLd6j{+lSTrt9S82X|RIdr>m3XVk~{8*5w9 zKTp-YoZ`)btyPm!kSnY8gct{qs`QmaB)u3eYBvWoJ81dIO&zpv54^%dWZ+Sa2y=x; zYe10-Ymkl8KN#JHv$=?~VcqX}-U87=sOVe#AmKgqsMI-E*+=_KQlf+_uF#{UPNDbm zsZ2OXBpTU`7f&nV98j>>Eb@iNmBN|RO6-1?yfN#@in;E6_nR*eau@*~!iqZWn6L-I ztOUsnZ0>Yd7Lsi69_)p*L2AiDFr1do-ciOnof`LkTQ5;+&H zgMXM%G*+r{Z^?6ja0i7K(2XSM6LGX}lfUqNJgonMpJ$7wArw4k6kD@X=3))*JP30$a>f|%E z)OMId6ZOq;v#9wT`F-g68am_;&Hsa?(qNLF+s|q$pbEoexR9h^*u@Nb1w~QvGUrVZ zaZZU6si{OzkNO5GTA$?=Q|Za9qA^4+csiYO$^sP)!J+h&AA4>a7dZQN5If|0Sfv9P z`&>C>ARpVvdHr_^%(VwUHE3zJnDi%|Anvw$9tuqVctyc z4J%ylRu<)F*og6*pv(mv0N;ec2Iy6EIf0*KO|@)tV1%_5^CAg9OaSP&Zf>Pj5B+^Z?>x4da|K0Z8?PRva*b3WF;k7miDK6> zwQ(l|6y>fz{vuoa?FV+!X!BDz@ji*LsQ`_((DSvnki!fGkisiGCx2q>2 znKg_=5Bp6>qNn-3A;mZC>tcRjSs4eMAt?4KnO~)38N4r=oaK1WA&B`plAm00`pFHb2TD47XSkh57W%0Fd&E)dnD_{0Gyzn zK~ylL+|m>F1XjnL_hOrRr-)H`=2>o8`i%KT|94qo0HE-3Okg!Bt;n#^=}^u}MpRCs zLZ~t~D#|gd5CjY{<0*V;Ja`}Z7gR^czvMi|Dvdb+U_%b@o7X8N!5KrT8#2X&(Z}U& z99wkVMpL+SXj>fbIde!&13ao8IA_ge_AmFN8QyO`Q?0zLsGAkP@=z_a1#={#2Zfy@ zQM}Rzh`OE4LVTSg@F-vAiZ9NJGOV8Ec7}A=CMV$BJkxB6>vgkJ8|p+%?g69kd#OH6 z!)6*i!C<5>5?x{xAodaaQG-kC$8iX4r^$#aVp!F|YFeYg72R+zZPr*(8|09YXT-7L ztxOGDZCuk+R@oK8wqfUZy44H(1%aQs&KR!*+5uch^u*aQa=mMwpsrz^n|A^`zyq9R z{DpubC^~pG-bK<07^>&Z{~Wl>etpeq9uTgcoK8rm^t)u~JAh_~@ds%rBfwyD(#w(~ z=1E$#D@$b4Z;_SHisB#lJ`lEjwjRK2CC-|Uzq`@OT9M6J^=bH}L|EsXcH1bQB?5E! zYkH&x2&rvFQ7&OT{26}Yt1)ABnvm{+qM|ncATNrDdpS1?EcMGmQ-F+IGouB^@SlAM ze|RSGv=4>U7;o<1b-r2IHuu-5#FoG89Q&e|@q=B$@L98a^@50n(1D#@H-LO7TA|v3 z;ahtUPJFF%6wBFsg;qFyfY*5&;0VpY%Gw%>N+P-tv1~JlTUy)$m;wRLL{5K(}#Nq(Qe>+9n-5fVc6@l+)b(QCN#Tr;^tDJ{bix}{q;BD?Oe$G^V{hBj|b_T@TSi|LO z_rO)0%shZP09Xxk;-lt&hc@9QT*;v^zlOJxND*|Sr7D9VVDh|j?d}=~uf$0%=r>11 zslJbf1(ij=38xfSf0!Sfg;t-62@uhMBkZ$aIt|{sg{omUZ--+w}g>5s9W zMU9I;L=CPo*VHvGNx;n0n&t~ORxgW0CNBKo}1q@E}u5&PI z>=U-*GK@K=H7sSx?A4b0dn~PvJ4|Vtp2gQ?r+*z9E<-sgJZeq!wAZZNZHPcfm6Bfv zzK1Cl^sBAL{t34Ai-RVP*vo5VvHOchEsu1;^ZBog2HOka%DK9tqO-kzuC(ACG#yfP z%_z`zTt0tUu8Pg+bnqy9?s^EG#l(EpJTk@Wo02ec?6^A^3<;t~Ygte)!u1QwF6}to z-CbhnIcaHbZSZSmBtcq2hY)4QcSNH+EDEjqh~1hTNvp9}DxiMM^XL`~`T$XEdh=S| z?6ML|+pIuHb~DxG&vl15(&}ck1=?U*7DZXUn`Y_m{rpzR7VIJ8oyR8dHfq+wxXfit zn2+D2ntc(Hs3FXvIkiAaBn_rgwP8?yn6rz@c#$_tnc)8tPEg};D`T2oQLdsPYRs}i zVR@DJ^n{CIxd?S_P?T*Vkt_`MIuP18h}S4dn}o;@8x$pb7|wi(3WQ|UkJlWtxm1T) zmngLSHKL2MbWqAMV^MHucgc*IdW@Ke-rNL#+k|i0Ew6F@aNcRhZZ`q|j_dBQqfxKe z7AuYAVQWKNd(|3(E>$-!yYepS%BxkbIv$FKc`+M3bPO;NsQkBqn<(ofY;G!K==U^r44b{(!pGkyIY zM4t;c55fy>*iiO}`RL=OPFo$uMO5bY<&*XJ!~)|RoQP?vbBlBs0d;tU?T<=#9KY+| z$|(RMz=x^^f75QWJ=i3>YOkL)3Db-6T^pOwl`g>VT&rEyq!pm|oM}p~5EZMxm0H6l zL~)dJ+RqluV_YRwy;`{(h`w$=aF^aabjQ$k;FeUG7PTRb+tf9-D z6A*GD%=LcVI?gaZ*+GEExM(hp zlX&?MPl^TuE=|;gCr$h7B7@&)cIkA9^pmSaZxM1bgW)!5TS8G|b@vG}$v>oiD&Jvc zP#0=>Oc=Huf0#4sGPm5s4DHKCCGbH}SQ=d%yHO#XIz@Eh=~NB!#wym9;s>0dd~(&jW%x;59+2ef*4X|l61Q$Z6| zJ(kU5xLV1;(J#S6=;Y}NVUB*&>#iipdQ$7)hU3G=0^JjBY+bzyJ8;eJ0heFP~yvZ9rKW4M;4 zCmOw%PE&O!#bWWer9D_h7R~Jvzq5-D^sDcjSs2nQA_K=D9rYT?YRWbnZT-jOe0+zi zUd0>*j_Ba3D=x~fx$*R&YLK ze)1%UDY7{D2i^q+>M8aRgI@#!=>}+dCx+&a6YRT7UJtCyK63FVP&2bDujcuPt_%}! zemPu8B?<^jF@KNwd{-|)K?8|QwE&uLXAoEv#N{{sJRr<(6M!&$XkF(j7+ z)v6u2#IWMUN@?X>WLducfK{;wnP};5L8A*7NjSb>jvq>#oBG2#y+-<3eJ7m|_r`(W zWh8&|H(@bl+a4zIhp#zd%fE{&Qu>!to{ivduVZC-=jFc4nvbZ#A!|++w4&w1enmE1ZZRUEQYU*w>G&fRZ=38VX1*Czn#!rn;pDmE0 z)BhK8`5nf)fIN&Dwbii<1KL;P&XGvQr{VLqhRVa|AL8KGP)-jKL)(OHUWVeIfDK>0 z8TL`Qhlk%{MUYOI8EOV8$q4_KMe`AEi|>Gqci7XOxBFVgN{n3Ct83^iEMtCx-`6i{ z$+ACO^5fifQBdAa2iL+ea7{UTRgg<+AJwBJE?$a%gVk`E+ePO5QTFWdLhPPIRsRI3 zgCO>r_}93mf+3GghlB}xk!oeCDk9cup;Y6oey-61x=R{07RIk_W13 z?RF1QWk>9#bY5ob?Dmc^*R^z^L3_uAI)!mEwCkypW9mr@1!09!abN=6HLp(INfYtgFJ_TM7IVP>dKBD|`E#xp_NFC#N|qq4O#RDBe^I zHd^j_5S=`l-^G%9vEzw&A> z515*F%S{RDOcNSNH@t0Xya&0=7f6d&bi}zYUFi-NdgK6-2Eg#{U>yB8OixTHZv`%8 z+Fj$F$Gq*GC`~TDb-d6yOW^%G9t9IKI8#H#E^*E3kVvoF!Rc&#A{X3l36wq7ij!uP z#RKvj5a0L>;g&%?a?M1R(9EG{6c6*{gB8eRl!|!x3m|(aEIhmtJ=yLZ}3+2g3IL+IZ_AMH$VRf zgC6fXL#pJdkU|=6!BGBp+=ZFc47-^~r+&BLF8u!(&mEz{x=+1kUVE%gW_CalsvrCg zq;8mXax|5x1D$A|4W$71;hB&L2p^{@TLn+hS0!$L3{=t#>W87~iNqi-j1uvX1zP3h zmAL0FRU<8@x^k<_xp1UitL1Dep1MXiSfQAYTJutA_}A};Ii6ai%b4%J-F%23f%9e) zoN@f2cNa4WDpd1uaZyb$55shiaZzs2rQ~A~KD+ZybLY2k5VTeDNR>MjAVBSy9~rRY zKrU9zot=7?&@vM+nTW&oh@cYXrC6pvzE30IWxs&FvGPpKy{8?GCtW(XKox5t9 z>~(YPVS(85_~spl^F0dVU4S6xG3LIhWeKi+9{1o)7;lbwfqlWA`Ik7pk&J@7oix?K!F@>)Ar8gH5ze%BS*pz&3MDy#JI> zs+r+1NdxMLwS5he1~{<0e$clV(}q)*afD z5LSTxpkJhb3i3tJ86?8XuswbWnQ&opfnYNf*d|TSTM6A0EUr0HQDn^qS!#SnEp%-e z4-_*EW(S1Re2}S&d0NBv{XTP{{f$zdWR?H_jUFi}V6QTSB#?!_<@5^=!bq?2mB*w} z!U@;+FgDBNMswrC6Z5xGwr_G?FfaU$T{0KpabW2Xef%gdQR2GCFMg0sP*qPXQx}L3 z_UH1=9_8S#)vUB-LIZ5k856lU&fF3Mr(^(D{vLYEEtQ!6#=liigNE1OUr-E&V2L8DZSg z-dcVU;5;FKTEXZU!I&CKdB`!s&_KaIAp|dW3Nkd88B*52xKHlhl%ID#|!mv zh3;Y|ag7GbC^QZ&YBLeQ4qgP9-}O14?%xYu7Y{kCL`ai^HeH3;$6MI6os2{Q@s8SI zU1$00DgLgJv^GJZC_7&7UgGud3I!OOSUm$vxNONp!kwrXhLH(ah1wtP!pb4{5J!UW za#FY~`GCqw;3&=FpR!9)UHut^^hQR;YM{%W=IAPfrt-m6i=M_T$i|-j=WBoZ#Ji%}Kd6`rFNLX}Wp`8xVi7(d?-2IMD8KN$a#J61VcYd3~a7 zA@?g=r0M|w|9cq*=?R3-QN=a@Pb6M7GSYGAN7*E65dF^d;+zq@RmyS4R~hM;h{py? zq_DMg#N1~2&u9!GSuJAN9<4HNs_WL}GnQ&_GGKBMK81YiIxO{y>E&}CI3TxE zU*2cS7M_HgUPCRTI~YX`;7SDOLGw|%Y`V>;$5r}A>q!gHzZS&+4XY!#X7Y45fhqFL zQ&8bHHnyv1-@6p3ID;6<#KB5a%bC-HvT(Do0YCc$GLu@?j8k+d#u-Q#<{c#GI&@sc zs^2m{g`O18s#{63%4e7lY(CmbJyNNeHhAn6THxZP2Ulm#GGF=F{Q z?svk@j^mHov`AQ@PoOdzS?kbN5tR5dq*p!EZ?0C2YO%FbJ?C}Nr=o$3`Au{vBd^}G zoG^n?DoR)xfk#;7P+PO!qf(Va9O-msLajP~4U8*Lz{rZKXJihg;UnbW3fJ3lcF1BN zD(WJssXxwon}o}>o%G*t-rrvWU;SI87=Y=sN=d3Ifwfxh=KPj^gQ`~525U4XzSa4VBN4YT=6+0 zk|u$zQvd$^Q)c=OMOFuG=AwB7E#s^v#(3)v$i=!i43H z4k|a%kn1OI>oprE_-t`$IcaYc!{<^qd&|R^VCA82@Vy1bdje7kGaHjV3qExtS}dV8 z7nKFw!}tPONjKwu6QJ~Zw|zZ!=f@VPUhXY42EuW{*bY1_AV#h%%s)rFN$M37KEn!z zezW?jEO`jI7t`QiUPT2<2_&JMG4)76!PZV@1m5sDc{rRKB;jbj&h0)zy=P(633~Vu z829E=lrlN_8*0hPCcSP*4kJAQ_adcxs0PSGWGZjd1Ib%OcpgQ!Pq2YH<_Xu^aNLK{ z-8)#?vf#P#e-9hzXUJ$7n9XJ@1rump=fFfzlvZp-K#M-|kPFO~-4EZwmggi&Umdqj z$)`)s<|&?oqKQuUcWC@?^ISUr2kZw%4nY_W_gvO_$wM{&GYz;DX#x%@Uw@G4{T$Pa z$w@M2jTvb5*yIB&?jzoNY-rs_KwKo20i20ZtE6EJyX4SO$}duW1^ zUSVAz9j%f~AsI_Q11JIu%y5A*Bh$*6G9QBGVirPoi5n9TZZabD^1iOFK47wD#jLRW z$`?fvz2Hk)qRMjNabj?kt9lQ@a8&yI4?{Oie{mEwlUCymK;U($C^paHTy7MLU4Map zaeKMw+*_Abu2C}lFhKmn#M$V~RDOff=Av<{d>&&9Wk1o>&+hj8#jHEvd%w$_Ln#yjhox~gthX#S@~@iCj}toe|giIS-XM9Z&JFBQNv%nNoW|<^An~I&e>Q?92ntF z3|uk|ai8E5P|q=F&Z_$Ww?q7~&(KAw^^t#<33w~gvOhLPX2&M&BL-#&dQ$N@Io1TV8eIP;2T%~7^jYlBMZKuavX$&Iu=b%KiY7GWo#`)Cpe)`qwv6`wWHZ}U{;iU zP&EobeS}MEH?hh*O(u~7+W}bw! z@}~j_@DTLXbG#7xgAN!Jx_Dvh&CoCPaey72ha-7C&B9awv|YJ-2W{cIFa!m1^*kgptug zvm(?}o`;q+5XinO`Qvl`ccBLY*d;s4aUMtGdHTyKFJ*qNK>U@t0}+c8zFY`=M)o>-{diL`osefnT;52 z2F3eIW}BI{a5G^2S)|Q3?Eyf7S;i}}(256`IOiDZ5>qGm3klI~N;@p=-qmqn7Y8?t z`!v(FV5e1p3%IP9jbb4}i}jZ-nOTn#dG){B0eNCcMT-rXfLwfrFZs~(BR1nQMysmw zSN^%G2JS9W#H4%RU#SOCz|vr!4i#IYhjIvF$#4xJm|i>C(1S0P)6hOL`5Xj z|45$xG%(J32Cx45CaaLa0TGy^Rx5772Xik`%r59d6d0L9iG-9!krG!-@ zg%yaaE05^Or-dH1c%gdBUr=v|8&t|QGb+B=L)Woyj#-6|!AJLChb?0dBPiIq4%78T zUW)`1!~e-;ojrZ#_%_4j7@{_@CY7wkuL>oO`jAUBsYJ-{b7!cTq>DuSN* z8xXCSOUkmOgx7Kcvvcq#E{z@Wji`G0T_WN;U2`UT4+D8IQqA^w;TT!Xh{DBuBY z30b4`nPf)H0*xy1nJ?Vstk9ZeDONy9eL)9Q2W|GB&|2iTQ`Tb-4c*6ze3;14{kTTn z3L#dWWh1k?MDrgf5b8(+M>n~;4jmgX=pr9QOFWDgEAlb8Al0QLceR6l)FMSETw9(j zdC@p-{eA3OU}y9%z^`_gEhE|IXu1G)(SG$lyf7nhn@PKP=U2@o>@%8o0CknMAW>WX zH~LeONX?4m#qZ!(goaknp)mVCc55zO-4tsj>l+QE+UR{h(-o%UR_F=YEXP2hyrQT6 z2Kr;=XHF3gn^hzhnc*b+hrdNAg7ehkrq zu2)foZpcstWG|F35i()J4`f&spxMPu0TM(S7iZw59T~)u3!t^4J$sz5B*5ROBE++ z#IS%SAC8iE<>HJvGf37Ld;tv@C!7+p6hpOXpjU{ZROqJ46ms@&wU`ZiSMN%06S zqCtQQ=0PC(>&;10qa867Bq#8xxcHT5$xonbnBU*6L9)L8Ifnr0RqP(W6opfJ%T50ICGZm_|wz-}xK-6pkF~RfE+q z8n!~PaeLVy27?hkm5lx+vB(^5x&x&l>Y}MAw}BwlEia(2=m)1j!vYnpcPa|8J%XG8 zLYh~qeO5xiiguRZe39>kx?9Q?WNtFqG_g&P3nes+**UH(pYo2HpEjqw%j^VC^j7ON zFQGh#9eTRvhT~v8I~Amx!N8}pM4U{T0Dg`iMyBDsMv)Sm#Pm{nvvJTa2UA=g3c(c+O_U_J z{hsfVJc|z?V(gPcB(fIWRKw;zD=Hnu$YCO=B|6MM6E*h*H!onjke50`$uXaM1c^E6 z$)5crqLtMqadY5Qi+rXOGN>Zpp*CHWG|~aP$Dxa^SCElyIjowu+$}Qz#{rAR=4Gs# z-$M{PXz@*0<{lh)({UWqxlWzV$be;EOH~db*Q1=Ayqu)u2ju()_K>gb!pLxx@m>M| z=`9HJ%}6IDkfLeb+5_L?m@}-*HzT2vPuT+pn%{B?3NBc4i zc@0(cCx>&YFXYAi35qV1va7^Wt}<`c@{zET2g|3^;JUTFS(qFhb3tI9EC#hMuqD3* zb?}3^WY#w5-cAqqc6iG&T~H|PC7!ewB&QaAynAPY_|y^7s6PC}tloIbY5(`pW$Z3Q zp*mx{OvNJ*yN%{#)Jn6cOC=mlvt4kNnKaTIBX)eDn-FF$wo^IS8Z`oL_$#lYc|w@b z|7=Z90C0yvkJZL;W6f11yYPX8Dxj{x+EF}Zo~uwgEl-Heppd;+acWr#jm5EffX?@G%N?9%PCS+1qvIXnTvy`>t79 z8%E8+SVj?^_p#?w<+bJ_KQNxV(T?g8ygja8*k6^f_D-GiXNE4)og_`Lu3#-?&U~@r6~;)z?`HZs+#N z6Yw%#SN;(IJOMm57J^Spa!@7GO-`IU03*;6!mN>`6?9OM9Yn6?lDnExrMeya4JIeV zeTy+gb4NDl=o2-rXGm1QbImb;hI~jora@InJVAtnkf=SZWI{HN`nv9Cm?rE!PBu+&(a)14_SYAw*;4f(MotLwzt=j4wR|+7gh$y16vdBg@%AFf zTyLgdadMlXR@n=G9~)XA)&R1p+TFN^7^^z9YpcnBbB@^QG4#wX4lVYoYz6^H7&N+o zL_+4c370YhNtVW-RiM4eMhXB5wHXx3rx$A1ccB&rIKwJuV$-51i)*z+QRX;7n=e!0 zj=Z7Ubfq-GW4Li%}S@p#aI zhe2?#?whQQ8Mq^&s&Z(ag*4KibGVIDc%C9v(FcU78`1TE^srWU|BsX)90nWg$vnGLdz{}fcYsjipb-@isw)BaUfSGa$D)AH+N zA^mO4J%Oyla_bj{-T#**{ZUm;jPC0!FKQmYWG02V7i0|vNibb zEA^0_D-oYRr^0E-=H!uTjD;*GJ3^lATL#R5cw<&TfCEjzN+)N|CQ~@ow+iXY&FMZ9 z{ouiSTDMsvT)1#*^1^k_p2bf)FnfRN2sS4b%#}FE68BHDvq7u4to$e021n`tN7$Q3 zOLEnBo;M;g*38H~GcxnN%$IM=eD772YR{-uOONyz$Otk#@wlRq1EDICD7;uQN7T>KOre8U&gNeN(?C% z1tm?^f(at%GG#dZ65fFmfGX%D%S9Z;6%e@H;AGq!PJq&Mh|i`@=r3D6Z=We0a^mHZ z$@Z5h5^~Jc9)~KD8hP+mkyo6Ycg%}7e42s@g#0X({b6uB2fv}3zyg9xA&g&L^U{VJ zZ)^^dN^1ph?j0arcnBmH`0G69*}mJZxaB7{abd6V>P6!=<)gHK6QFbBNU!bLX9iU3tP|i_F2}!ozgB9R570_pCK+6coehE^ zv`Gh1Vmen&2*;U>Gz5Cb0Me7FS7k5VM(;RNQ9=L_qof@z52KZCg&MK`HNaL^W3R

          *gOJYxR}?F7>aYmCD>%iq-iONB!HGC056!pasX%oK{IP3eDDSqE18+%ZHVqO z>p4v5YCsy(;|?(cXd?$&XvY8!@ zJ0|OcfP+fC_f8h+8}PfV23gtPu{?3WuFN$XTq&*)8hnYq_(1Fo9_Ba$1K=;!`WGD~ zzAn%Sy~_a~=Jh1`3Fa?=2LVamuV*PZ;&)jt@1s3>h8njjch`q-3T`@VZNV;s=wbg| z#yb5p@4g+0zKkpOaQt%^)j;HVG*1s=w~}X8Q4Z@nNDLr|j)GQ-LD*q_igWJ)NJU)W z{n>%}1XoFw(CH%KnT&g)vOH{zZ=najgc>5|6U~t3!ULn|4`V}EpqWD}cIO>2yCC&^ z3nCZjHOEhmGMQELCUYp0*_CNg#Z~kF0G=BluTJj}6a7UX1pcdw>y%09|DT{7SQypP>=vT%EI^V!n=v{mBrl6 z=7DVXE)1iF!*orI(wG*HnXI`FeBNV}TLDp)CWufwyn>NMy~AHRur z@2$CQ6{(LI_e5#JluFhACOdnKm{YS5kL@`Tify&-e1`9I_Dw zutLh*^EDc@1}j3OaHB2U1xm#eLaq>sVLe+D`p_SL@+tGFk#=LaZs+5M&&A>&k}n)9z@yhWw7~9m21(wO6EjPFltxy?~r)K8Oh^4Llnw1_*){vU3&hTZgHRXR`(5O6%S-sG<0 z#`keiqh1MN%4V0D>OPI6JcOlmB@2-eV)3?o!(-Z(*}DLsK%1TUztm%r4Pqv*wY_3I&N4(Upj{6wZ2Pm#dw!!M}F@aOuLiP0UwC-V~D)atIhOy7AQg@!Ni~O&Z zn}t2h^M^V`5_TyIom%PtgQ&r@sxXL}NiRxY<^km7yDGggI9S%|(#hwvd z)6`V4RMZ92yU7BuwS1UXRN6m}{R^4a`}AHK41lPCz|zK}msbH6tWV;NIAHxJ1(h%F z;ZU~+BMh+WPr^!Csxx_M1Ex(sRQx~>xnV=gRLSexxV0|X@Vu%yO=1_z+OgHppEs{> zt(!4odxl4g9^_}}C4gpD_0d1HUWjxRf5KuwI5>|1VL=apEg&uXE*2tO1|Lr+>Dzi! zz&`@tSFpBNML>f6@WT!;`~g&yV&JdhjEuvV@oJNLpzbaLy#i+sOkKmPt&OQY<`XSg z7+aK>GP^JbQ>yfM59+5%ME6l%aVE<*fBseG-lp7boLV}G?x78D*yo{&$Q`WDZ=csU zi-@~U7VP{}Oi$~k}lDp>WFfYITh_nG&N@Rwf0UtW_&gJ?R`9+ z)MISMUu9~b1|ANAm^t#*xY1!b{=b^n$5L{ZH9g7}MO(-|{zpcr*=33@R8}~CcYZe! z_sRCrevPbYK|As01S%#|3&WgxyYTAJ@FMT$NU?I` zTq|dLuapA1tK7EKoJdc5%S7E#F166Dy-u?nkHd6oRWx_T*_~bMQg_eIdrY|i%U0pQ z{GjY-mUCqPD`FDYuTga|z@ zzZ9pvGp43$jv`;gI=H19faH4A4(jR)mn7}ei=Aa~i#u=_m5JZ_4T=`=w3^~)j!u+t= z<36l~pC45UL93U;t%^|9v0%0^-Rk&;m@QT*88@MLRPHssa;;EKevgU>B|ITAeu`gU ztMn65J8+8|_+pqFe+1iq2PQ}p3BD1csiG!6-CCwvireiRiV3s-t^!YtFKCk07E}TNy8Lzb)E8$pB zxjt0%W0wTfEUjCPQSg^uM34!_RGjh9l<+#U4i?)UqLgYSyS$7B0%k~|2(TipLWp9` zIY9y?6N1dymt(0Nh4r6h1G>6vdw{bvF6Fsex8G2+7#vS*=BRKo8l8eUe1>@xp8+S( z{pjoJQoTYAEgGa1y^LZtE8fIKGM%g>G-(POd%`JV7II4)iWC)gM7i z|Dyd&(Yyy{0rkZn#_du^Lucm`H2lLH^f&Zj`5mM|ixf$LWc?@{qp>kkIECRa9urRT zh6TXaX-F>JxRCudE(cgR>D$cxO{R>im`XRSWjunaH)v*M*?I#Qzm6&Sp)*dsR4e$k zO1+e)`)d4ZPJWccvE1)m&n(9N)8vxyIkf+|(> z`ak7kd~|V2DBv-he^?4mQvnoAI0X_W$%Ez)Jy4j0>C;d$bZ?_$2ko7)6tYEn85i=z zG?|Wb$n4)9`*fvsh?Hs%;&7cH#2rpd6g%a`SPP`yl5-T9Cea>kU0Ee{^l4!1v!p7n zaPT};m=*s*4zX7x9IxmHCHAM}Zx5)p9kB)EDEW@WUwS;U9b9PT$EDb##;Ix`vo6Wf zlh?fpG0>81LWMcj9hurb)7dsDGsV~T1=Z?pvKcgA3a4LX8dGeftm{LTTYwxq3P0dZ z4~w9SP$%?(AIl%JRB!Ow*C`&m@to%p8i*8XyUoqbvvA@~$W*!P71mc(ujCZBo{UlM z2Y0(f@g1d5P^25BMI`Ld;^0m&5Y^+<7?m;jTQcY_Dlxph!gasWpZC80F(#%iBzece4eIY z;(}PDTmuKCJj3_FIt%q+7owcfkEF{Hi^i9)4u=)Df)niK%m(r-i{;n~5m+50{dlto zh3MGSB>o94ciLQyo--%#npDdDI5%k4S|LdQloE*vAd$Q6aqw0P8f)s(=&TAXP5a8tr{Gd*;c*T1pLtj5|R z$gWv4SiYF6%o3G{kP>ys^y^g&#JYK=$l`O=e}&bp1GZzBPvLv9{$~*u7JD?y;ouev z-RDupB^F>v7bPpeNqjxh66MU0HQ7EC^FtB)k&l|_G#ZQ444l|_-2VoT`|rYq3jJ2R zNGeGOC?1Jambef2;hlwQntm>Gz`WD!a-1c8?rjM5 zF9}#2Q2!iD;UtjV2XeXZeKX#td+CZzTL~{1)obJOSPPn{4~v{;cbps5Ij(~kJI!?` zq2;e28}9*(?VO>zazO#A8L&su9v_PpwS&_ss=LIgQYBui53TV2%Fd9f9rEgwo{(v# z(F2P=OC==*WdYD!tN;&0EHo`xn5HjM;-~WB^TcI5z(cyQP3GS&@?)1z(D5%Q2WAIB zK`6x|^xr#8Sv|qcM$~dx8{>O{KU=tx12lEMjQLmwWz;=nDjqwe`%&!$My`?L5Ht@K z+&VoTJhy(xbFbZC&&MxDiYz8Z^=DaPXqEBKu9x@U33*B4N8Pv*0zAYm3f@vi1qq?! zBIT)A>GR7(7BpxaNb4jt@UNIp4mw4LlY&3b%toc8>|Dj@@dXwDd~n3>gNL zYGU^HWHBvq$7`BRf`adb=W@B#yU_LAkN&Co)2D7{<}aa!XuMV;0TY}gdZM@v>lHGW zoDmtv)pECpNpzO|Wka#tbJ#Z8C>#_#Z<*$aSW`i68z{lUPN!B9Ue(P=RrJ1YcL|O& zucX)!Zs4#4#!N08fGt22r>6QGaK(>e)G53PR(Nm<9EsHsO)IAyC$m`%6&6ur1O>4| z=NdLOwXerMkh#Howb`hSs7_Kw$6U=^#1f&xTD`I1KqNfcLz`k1w-jfC{cu{|%xF(u^k`McJG@J!7245K=zy2I zgd~nDn)%d=PqlQvYSO(@?Up^9%BeutgH03Q72%Pvgy&?970(2}pg1MPh2FmyC&E+8 zH5NTW&f*J%r!X>kuldC-CddSin| zEe^9DEhE^o!j7t_K{TE?axG{=TSD6t!Ikh4eQZCdlY`R6WU7!9!qeMMGFa=w1Jv+pRUZuUAr%U- z0@SDn>5x~fz6J15phNQCtO zhe97XlNhH{2p;LJR8}g~vgLBITqD12jlq(9 zOk)LNHdUXy1BcRj-d{1N0;0PTCzp_F(lFylhy^@1HEd2ISJcI6S_V&XlvSU(#Ikl_E z#PSG8fY}?r5k%2h0p8{f`Z0mSI+cf6`}6(~dx$lK?kL$^oTF>E?3*&nBW${W*1PFq zfj1QS{T)^diuO%AxLk`f?iN-kufV7JD)FI3fzXgXnh7F3mtt|-`Nu_g^ivk}geN}5 z6g}hfpjL>~P95jwdSHegn4}Ru&4d^J8rOaX#2$yP3bHuBL{p$98-;G!Z*s!m4NQ1) z2kUkmyq0-f#?h{HcpbZg2RSE1TO-3|az_bqnxEF&@8(e?Lz5yS8G2dz)OfC8 zOK!t{Qcz0Q zsV8yrz81U-vB{Jt;RJl!*P5{xv)4=L0{Smj2$tz*Qm06}lq*wR`f1T-{;iP57m0YC z=$PkwN!B=N63Rw<)XigFXx6~)5KOQRW0p{8@-`d4p%{*xEDOj+BT|zZUDnd9M>qlPwHOWrR1YD7E>NK$$#3&uNojbs_x?M>aw9VG%`O_+KeB31!zZixXl0?C_@OP9Y zKrW#}?04Y&63TgqQh6#Y8w79#JC+Xrs$^}JY44h2SEkyxkL(3tK z71lCmc+i2ArW__*<5^@y2L2}zi0PjCwMdtA$Sa|NNC3yC4^3Fui_B5>0K>^w-4XH`K7%?QKCS{B;vQ)~j}F4CjYBvrov~Y>sjZqe2JVteVG^iINeuSqak*0spCWHrm`}T~{|A;HaUT?~ zRPWLBd+2pYH8z6&Hd(0cqDvWNQ>bGJ-&Kz=LnoNKY>kIFy3wdJc&{> zP5qn`wWs>n;=z~bd(y9+@tu>Vw4~?PZ_6Ge^!!xjZu4&sp^wwsHY-fZAG{gU6ORMf znIK{tkdf}5L8Taq6OPg@EkV(ff+q}`PB%xV@NK0_nOgM$91KwXEdGdtP;s482ZMTc zcilzXy&L2n;wBUy_l!p)D(^NAwL8N9yLc83Av$znPXdJqhoKs&6WA!_@SJ8`;<9j` z5p+ieq1u~Q><5@&+I$^%v%$YE-!Kd))6Di79uk)IOW*rPLm)cmZG9_YM_NpGp=il` z5xa$^Dz7uI<8J(4$GaNi-Ub;q{@16%z_-|H|2kSIt&4IYN6$)-bX@wKBEoE%Nb5lW ze!x<~=h*%nuU`eT)MKqe4ER{W8XqAU6+(s_cgk+{!@RFxoy$>bmvgK#*`M!%Tr?R? zSi8WX@-3f3_b3JtDOyj9mV)x97WEst`cWib)Syk2MQ(vKmp(hA4{g|Cn#W!uhHrQX8UUhcEn?ntyc;mzVjeM zwZqQ7-rA*pbYw!JF*qHKmd)}j8R2l%tbvGY%$Aec+LZgGMYM(1A<_{P-WMt=|?#?x;PO_qE#_Uav8{0%^2`c^L!c4>?A3qK??3EsM;>F*+A1RFR4Wp z=5D{t45)b!`+zT@uR=)K`D?LwW%Mq~RjE6)R)^GYVPmB=@ix=g(U}Dj3kgz7voGu; zkrhxZTQVt3#lKUi3LZ4&@ZJ;v#RRay$%diGi#2hu2u~+)Hhb(0wm=(X- z{9sOINN0ftaPC$%{rR!T2{ObBDVcdHU2bS`B$p5~6KiSY^(?=z7s=aeE`K>^PxH8j zMab^?@qpt~Jbsitk`ZeaqX({`FT$5FG=cCis>B$RhOJVZX4mtdd#F4e?)JFHf=F&5 z#cBM|J?xpIiR3KPE(n*%mQyxK8VR26fOPG&YOOg*s1H;Y8iC2fLI)=-*gUl;nzJ>g zg=G3~e#ZRF81EGWr3TXP!Z=+zCv}MPG(D<|eWIR(jZTSz&s)1_ls??WWcEuav}i)(MBhAAdqx!CT_J?*$;`u^(D>MH_2CavaD~^m|+*&rc;lo zp|F)HIOiZ=pD}jEY%vhda6QXG-H5%&mjY}$?{!p*BWR!gym)<^pD|U;ePy_4xy%0K zy)Y*$1)qBBm$QD??d`~cteO3yCA4}^ImXo#kx9+Y4LuGp5)f>M1}b)6?!N>7gt=Dr zNG;WXJppowA@B+KIbcYjRl&M|vlb1YWhxZdfB&mbdVVtF1Idika>}Svdjo_Zpr{&l z&PQ=sZnI)gZWF~3V2V4}9|jo;g*)wgt&lKDrG>Lrp?WdXFrQ>)?`)Zs{7Rf{cd2`Q zjdcArKMg12je^!%l&Ao)HY7rdLExg#kuFlCgB^R9XE3yiu=2xb1V6=ex_6ao(yZE3gwUNXQyn#U2 z%bLlQ>nsOJ8id^x!)tqpgnSDsN_y%O=9}2-7?O-G0)2=+2XK!~m-7t7H zu^;3>-R4&7NlPklASV$rpYIKSlwYa>ex7EH-%@KaOLo8%Ws6 z4i3TwIzgMf%fm41x582!QR54rGf=CB!#9W;tYQ=py(MrYA=v!DG3Sp|=#LYv!sNT2 z3DQS%0(R=u$J

          ps1nsCqSWLCK*=f-pfq_RNvG4ndld(ilYkU@jz|Ew9AQZ?)6ydU$WK9Fpn7zpbM9E-g^gg53qYDGGZ`gwF%VbT#<|uknL>j?} z(nZEu3rgNnCTLM+C|e0wj#j^d5wD#&-A=v5e7Sv0JCr?hm&zl!bwc5l(jpsfdH;?e zDkJr78H;+ED)?sQ(+FRO)$2?jQ5BePq6xo*?U3^Ho)jKYlyRn{y?FGNk@ZF*7ES~N z&p(0|an^HTiTLF~rco$XT5f?YYLDhScW$>mh>8p%^is>CKhfkk7^3|Oez+f_NrNtZS%PT*boF7xGv!vnx*fst^|teho;`-s_Gj%j#+W4D;emWfW$)b-m4`d+BFYOV?k z)inyFVRWUs{6CW#esR=YbB>I33X`x{cyXp&#D^$wSeA(@Nii~~X96-ldCp`n$@r@t zUHfuWazURG@rupF-pF3ZCqKC9*4!ZQ@N-;8E#({~l~@WtEftuh3+rSe+0V2 z)?a#uXf17O^#b}wA_o+yngGm&D$*%Ynm3V4QD1O+yhI+Yx&jxAtEV%8&izE2TvI38 z&tdrGT;(JXK`(0ws`u%DyrWQFEfXqAi2%;<=6(Aq=%^!<@6E$Z|p=I=M-q z*3E}~s7Ap!*1H3`ZsN+s=SDp-a;dd;A~GeLRSe~hVKE<1WIX1mt>AQc8wY0`5#mWb z-zy$8U#4yg_{4H6&{AS82x>|FW@PCWO|8;O$_;&ikDa$cg(qk$K}hkmn9v135B^`k z0f?ES$|A}K8$vCQ=}&chVnaeEOjv-*VhZrwm)leRjW44x$VTc>R z+p0;txIi0`;CiMWRi?ROyBU9!P(;!eh)skK1^_sQwKiF9bcTKQ@(4C^%B5_)Vs?)5 z`QgfQcm~uJvDozeS~Z{u!?1%oh|FpFA7O+34bj5i!0KGAspfI}f>|V;Q~Cmo7HoVL zysP(R!88T6&p$m9Jp(v8;4Y${Y5Jz}Sy)GrzwG*`lsl?y@D%`P?Z;=mXv+7bJQ z1NUkMr=VipWWfATbAors{VZ8YiURi2RU}U9YF*G|sg3I|+{sK| zVP8to1?so*w@`JVy;U_uGa3V(P5ld?em{)O1b#jb<}6i#a~Lgh=EteJn>AIpzDgJ^ z(-t;u0Seu2GW#eQPj{GXC$6{raqKsvxOxk8)8s|a4p@4O8Rs!R%DsQh{5XkQQK=QT ze@#Vn6<^?aMDH`pzt#Lf4H0%@mc?r{T*T(W7LB!cbSn>CjE+A9PMP?NtB8=|=0%SpZfwq^Dm59dO?VPhCDN37ZI?S29q4d+4|N4IY)d-K1`Vb}k5XO~RpJ)u+gRwVEt8=@=W$dE zPN#ggm>UxBi4Sxy-%gVb>|3fo>~3UgD@-2la)-W|S#o15{|W)yUEBGDB%XzDHe#6(b4r%tWjOH>VgzMlBLy z;a3`3Z&}pcVy@^MDFs_YSfswYQa;>2XFg1R5}`Rnbns2byS2D=_;K^tIz8;xPH;wD zrxl^|4J1v!!w*eGNa&q%1%$OEod4i_;X0cjX?0J_E68?^+wJCT`!E~u;lUOPyuB|Q z=H1=PXCdSJx^O9kWhaP;7zG+riMQ&6VX?i9!uqQtDlKN4yX`v`Zt?F6@UI=u>|!|< zp9$=XpojS=c@tqSi+T7y91#b52TS?=M3b4`X1TDRawS)o_x1FR>}z=J_NbsdF=~}+ z+}n1mxoxvw43oX~Ea6h%L-Mnzm?@0B1o;{OLr6)GVg!7xAs^l|>O#d#jGDN`oM>KB zQ#(bKX&*7K2L#_&^9S0e@KkT~Z(KL!f3XF`FbsWkz{`S3z3KOJ<$A7x41ud+F<)6O{3c5XoF?w4iHvZGzif>lz^YV{|~ZOvLh3O6yZtUCTX{;mOh08K4Ela#|=JT5Q_6lmrrg+)+kDSE1Q ztW?;mZNu8GLUqv77rGWf6ZRN3s8Pvibqdaly$N|V@i0=F64Ld##~u^u%X~7 z*7W2;Ico*XF`7-km3h2ImLR`iC)|2e4y(Ao`{X(oqEYDu$cv4d+pRUm;f5b|*WYVC zs_hI-UOtT^C=;KrjfrAzJZ{Sxg#YQfewv6G7F_z0 zp-yI3VNSWVWzX4M&N4*rOs;eZtjHRPvEt)7mt0ct_m04OYfo4?keo3;H!ufCBT+@E z?rxJi5>i2%?0s=3aZ^m8utsSAxeo_u9E1aSA9^Cmq@lBBub&nZUrQEqdq0Hnva+ps>B6kmbR}xVm^!ev6*xB!gbZ>&GqM&3Z!>hUidb3 zmA;0SIzAsYLt3cqi&+AUFSvNd;9+TdCOzAn=~5WH27+;PFn3u~g$!p}y%wVi39@h^ zHO5KAbSJ?c^Q<|L%N>F-bGgJDWP&cm{~hN@G4tj=YYCR%)S^%eAocsobUGfb$R9E{ z=j-e(5v{jkD#I&c`#&=msqo%mb_3v=W|BgqqyRun zQegC-g$5cI7P_G5usO6U^X*kreb|0rPg32M6mm|f!TN7l8~WK&1Z9%7ZDDzL+q(*8 zYAXE*;BRL#$sNe}eS8yx)~Fm$Ufyxs)k3k{{Y*<$&M3dd{*K=W%UP!oXX&`vii z;oG~|3J?=IE3x%hFHw}F{E1Xmp4I? zi^D9a0(1(2r$}})NuZ+uv$%kOkkH!jsTB{}x`)3Wk3xRSrS%z>R)C&lbi5x&bs*^$Z3@K9ujB=owORyK$`SYoTC zy&pz|sJ4$D0CXy?n3?CegG@vrGrVc^uG~{C6{9UP()5p+rVT;m+ij3LR?IE2RYX;3 z&m3-%0LBPeoD-(RzHcok1Pvq?zh=qKcVEZ0ny|4UJ@O)wOZlZ-!Hk>&Jp(yYO@a$^ zG(El6KmjinFRHdqL1m&O;o}g7%@+&Nu=v9(nR4l9(L9qGm6pr-ex*GMucpGSlwc2-(FgWyRSTu)XH(A)o#Xx@(9%j_R%rQj@rZc z8COcnxsDb9oZ+N?IUwWYuoKC@}ILx9!FJmnwonrt{O!9uL(h=L?RpxdiyV;`SyHr#Ntg=`#^6+58F zh>|Mt5ioz#6Xwnuaa@>i!4iQQ*a;#pAwkQ)+A%*$v;Z~wh&3`hVVnv(RSB}SZAsr3 zma4;UPkhiJQk3{*N_eV2t@8Z8!3Lpf+`bs(RB38Wnn=#1ZBvaY9_L#0?PSV3fI3^d zaECe8-Ib5ZQPM#>vc;4SN7;ZnJc_<4r0$_f+=vYWmRcVb2{Hh2!M zn+sqne(50je}P{Uj_WM9&bJr1$6T?pvyk6Q0>7!RydUyh&m+jk`Ds)8);}S4paK(^ z%N0Pq-K*5vlTEXG+y*GsaJbLQmcz#S+vS#HTt1pu{X>TA9%x(_4@*1(Hto35712v^ zZ)Yeb=Q($kXa%`g{ma8ukG(FNj}&|==c8_6_~YC76?#%xa}~bp8~1=4tP(Z0!6aVZ z`Oolpfnj*j(}FSydr|Dy9y50|YQ_9$J5z@$ug$NJiTajqwidaCoA=RdF^{@a9Vf-K zejSEXossX?%r5~6h+&fplvn_i)+*VnJ)mYD31p{PMou}Zv?G~MMDP~6Hv&z94U{Tz zjVE{53D_dIWEAB_-m{!Y?dhC1#Mi6c;UYQr%{i!P*bCIO<09uwua8kfjB&u>tkcf{$T=N2L;B zAhg%Wd9N_HQ~ocVUdN;X0Nd zwd46eko66AvMlwc7l3Q}O$qr+EPx3(naVP_n2emeh;x7GxH*nKW8s@Z#__UQ$y8cP z6>p=|m_((GRxLlw6@zEBo*i?QEA^KUx>)Yo)pDU2<$BKnR7f{EeG8r_a>dl*_sB{W z1SG|3BQ6%&{aI$C)|cYj!nSb8>Em!YDs{@$%9G~qZmCKGY_up=vGl>rO5JSg&vn5| zz(Dp;*JuF%5;f~& zv5HNbvsqIko@fHPXxPYFSt4c42B;vJsuBUJ7@^73?JNpb-pQ_DQ#*siG1#$v!_Eq#HCPjy^TYGO zaRAj5oxhl+_l!kyd3Ml>eQL(#i3@m z;^YqhDKH-eEP0x>=qYn|r(P^zGqOR86e>o#2bkNT_SNE2IFylz3sb$ac;=jNIF)K) z0|pa{R{+7~dIc^m#`SqHnyzY^uezI*vG&rYm%C*9%IVPGy@NQPN?cy0?>ejGe4%(7 zMLSJv39rzbayeXEL4Hywv`^ypI|l=iV2|Z|nqaT&KAQCY1`<1I#csLgbsEKbL}GLt zm+)ikr9k=;5y8<1GAejprY|C)Gqg#e!#t6YpiW!4AdyK&P2qPo$z(%{q<#OIDj+XF zSfTd&=4_w^m=qruv(6gePGFv??{m=X<0Zg#omw0>n$2Dz-fPZw_s8LG;(g3;TcJ8l zj+?D8-+hph>h02HG)d@JKO#YtnsKS{&S8;W&Xgi8RO9BhYs?MXx>3|w=S)Y@i2F@c zt%p1@L&}%C?y5RfR;IZp&5hk`Sm~=hU|ZGL_V1%HF=g6_j_SmHmZaCO zG@K5JO?WE;w=>9)ndxF1$8pB2(h4A1SBc^nm8Aq z+|T@uV^p)DcC7K}wo0%}ScsSmhlH5kf(Ghh4`(hnkL6t4`cZy06AN@PENd^ANu}sG{nWIu#@s*OyRpVjp5l9% zL6pbK**mX)Bt3#8U2FrfLOF0iLSf)-xS1Sx2`*dHTlwGlECWfBK;trybC zHZ*%P{u*AN>xkY;ln+!U+Q_9QAX=49YZL*w;#Rt1P^zHpj7vk6`En4@4d*S;QInUC;*=>9%07ogoPZA;LOXN>k8#!e!Q7C50FaR$~!wKVcNdaBqw_mG2P@V z!teciDlB~szuEWe9}5}eodKBV3(yNxxAJ-s4^$AOhP>~BOngZ8gipnZ8Fs>M^j@RU z9F;2QBU%||izJFwaXTQ=Q524%A8xVDAtGkONI`=Q+Aqc^`&=xvn8-KWh1 z9oo#rq~b@V_y^2AgJLCGW&n+ht0)s*^ zL>CICMtS=dTCAZ^VFRS>XlF)Qq<{@0{P_Fg=uq?Izg-HGZl?aZak046ylq@tAs1}N z$oE$>Ka1^Q0SPE?#9mS4l33f@Mp=i=RwbY8Fh5?aZy@0HVy_eT%Km=8*$lElr{&`X zq)09^!lFlSgoTQIn#`o-;Vhn~@X-ZuF2X+V{vu(#_wjg^($4onX)8H*niH+P)f^q6 z$7Zn8FYoT2GIxEBZE-a_m=L-8Fl+?cGgL-2OJTL#A75@RTWaS^b$V@RM6w>VuQg^g zinxBMz879Kx{I}e6$9&LW%MjB?_~dDF3N<=4|kRQD&Kbp)CxVXw%NJ#4IEaM-#xtb z4s!?P#we<9yVc=4^t6q=oU50D$Jo0sn8$oK*UWDi?3|q=!W^c+u}8u1TK{Ul<_}Sq zM;K*djRX`Av={yD5HGOrbOy>Uh;#yqJ!U23T7etQr%aq%MZR*b0&CKUgl%pYE4OD@ zFy=d`=7k#rCK>L<4NeSUkfmlq6uBR3j@PI_%w{H|--j?L1l}t&Yp*ePRV#%OJ&4sI zSZV+pnYcCT+hfQp36@fsRvQQN)qEP`{!hpzLk22uX3b#yEEDw4%#tEiK{H(dG%>iv zJV^P$)@P^@;(8n5qWkh$LhZ=*x{)vw>f^FRBXOe>+>5!goyS`{bI%HOFE=-^Jj<_cE)%$Nse)ICnuc$*`nd8Uy)sF87ji5Dfh-wN zE!YO|QM#l|M204WNcE~tTZYoSGo8hf!UZ^5-A1d}1yM)^C1&(z7rrB-x@>H&Mfgiua+W<6_oej9h$UqvyIR8q zo}so;&9nlya22HVRGEYZB<#Ah3Y0~6*KoQhV)xr<)31ZRLzwdOd1EfJ@D=xk9s)!Q z@f;WKwYyHaAbu&P@6|)*_F>?)mR5J|WRhf!N9Frg=2NyH_iXY40`|{$7OR%5-?K~Bw}umr4uR6czN;S-~v~G zx(Qnxvo&$dRN`wfq#jcq)vxVBTN4r;N6o1fw$g*@(o)6T;Wf*{IPBIMU3|c?+^;d# zU)Os%Wd|FL(yk^gX`jOMq9$E7hb*w9#jQwIj#{rI`BHQrwusZhPoeH~$5$%FxLT>! z*vE|XRJ6Kl7?n$tQPrGX_LJUjGvJMzhMUaTOwx+G{tKXg0X{iL)ayU#MVg|N5O3H- zW>?BCscfg~qVueS>Ozo`Cf9%gbO0#WJwnIFgugiOho;d6)ePiucrAGj`3B`)D}!Rx zEhim6?j)gK>9Q6Ym>>${-bdSxllK%I!VFLg?!W>sl;4Itp#C9p4kgEK9913$Bb8@$ zobkY9PWC7d*Q^xl6}Ch=rP}V5z^#~DYUO-kOxSy7fIE>2iCIt*E#KbRU{yh^HCjS( zw6_xUmg;N^EkXc&(E-dYDZ5JqnwAxSk#|808k>tePQn_^mzX9m*6tD^zUMKNMJpe= zH(^AF<4mwdT40nNQh`!aApSw$&l44>z{^}KPY-JNg5(WK>Y7p%waDTDLF~?XnI75M z%S0P!)dhY}`eYEZ+y2wd!G@n98TDV5*g1)-Zh`9fWRqZt=4dqGxUDKBC=~ctje<^s z8ziPN1g;UbnCq32UwOpbP93p=Cv~#$Mr8B(`oq+UE^D<4N#y5MzeB5ErpZ+JNRpZ4 z1#!9fwIl~Toj-@9fCWEk&cG%7Gy!{{SW9XtpBbE!T1R>{ne7pP{2~Bq-oSc8@usik zS)gJmlLzNuD_v8|^y_&707#e!*u>1W#&o{i^eHG!Q3C7{a;kcWm_k9i;mCYszBKdv z@&C`)n+8jgUH5%AGb{I{_RQMezEtmfSN3$z^mNa@VfGyZU>3{_2Ky=!1Vs=eNQk?* znF0ZVG+|O=&JQt~H;g=L2RW`z{t5CxOAEYY+n%cLCk?|-xE^_vE$dGlV^ ztIDdE_uO;NJ?sBSp2FEDbsi#LBwQxuF^YS_Ao#uJxge@1twEWk*&X~be-^tZ$Q1TF zYkayhK#j#G(&`QK%p{}fCO9IyQE`v|l?cN(q{Sph_05{aN|&XYD5ondLoG?LI5}g7 z(TUuXZR95x8e#*TrQYrwHo-|c&whsQy^yE^e31Y!HToQXm_JA4D+I<4nTz`&NC`Ze z*q?XVM?n4LS@J&fbd?qnl4Am-;4jgH8k@wKp?hLiD)yCqx#23Wc1L@|YUL21Ja`+j&3rMZ&(}du* zE|jSHX|ms)Jx?7{6OB@)<(gK?5>|`QZNrn6F)LPL_k_K$=J~$*BG3i<4GAo_LIsim z#QFGCZeGEHj*H)Z%P}O^Puafrum)mi#+kc=5N(*IE;(BnaQc^y%k3|(d`F*33bqSC zoX&?GhD<_`7Vn)J;YF{XKh2Z_ck>htD@E}M^K8FkXc%xO1S}6$^cJ4Nx38#C+7>`iLV{VR`W1*5quFwPC+O-x>vrIMH5q<0hgp6+||FTX8E%&f3 zHf>$Dx9oM*O^C$eM!z`w~h6SnBM-C^nn;z*}9J&S8$KQBIMUf${!$u7+RJZodsam*~q ziCJtH{r=uNiK1_S%IR)fn@-WLZxBI#P_1vx{T|%$(pY6thqg@*53NxPJa_{{D67(* zUgaDy{V0E*vbAP=&zSHQ>{Uuh8D^Z~8@Mb5bFPJrCeI@E$K+<153{WXwlMqW#WvYRz6Ak?W#*lq<5!z4<-l=wjVH042xm14ua&86FfTE z^npN0vu)nSh}nhuSR?D z7szmK>_0%_WYFCylJTU3?z_Vryuv(Vo^;4&W3T67Hccp3Fx^}*1O`UmGX5)TPL_PM zecyV(8OWac;Wy` zvJFNS>y)qiM|||EznI;ILB+UYO-U|aSn7v2x2m~*E#YqN2tH8@kJOUU7Upefz38F0NDzLqZlXsXqcSljD!$AT{ zzWqAVw7W~ne3&!tz;9=C zpE;h4d;0<7f@ZVz9WsjEkwKfL^b>eHKt<7EL*yx97L3YCiZly0k}X!)IBRU#2e(^! z`YZC^q^u~$5G>BRIlJ49DJS*wasc)%j@h8AurnWFfPbXw*?L-e^oDt1k`0pe6THi& z{cxCz;a#Zlp6H=^W4+FiA}!;5C+coylyFRn9A-nP-N>KLNs6Q? z`CDlpk%L8U^UE-bn2EYGy0xKE%fGMR8?3*hxg-eBK6fnb&rY4(NRr_^sV=OmMeV7Q zf~0o56+SvW9tXnvOl-#e8^m#~J@IXns1H%3;c8LmfLAJBuHPoWBEddGR*zw{^8yrf-UNW^Ota*1H?>x~t%A=ND4w;o%Jooi2e zer1-ZnN2pbh03r$BMMyNbXUh!#OGd@8 zi+IVfh(MfJ5z`KUE9Jb|XRHpXP{t%VE)|fY={j)PL&8|aLv$SeP(?F(C!Yj30zYT= zlpbf*nkVu#{*-*jC0oyfs#&adlNGV-dQmN^<>|XTspKbW(Y5sSfhNuHD0PBMbl&McTc!lfR4JELfmQ{|Ls%8kSa) z&ytN_LdJ>n0TRaAr)h!d|0AHAe1s%Vr+BWs)Gv=)>To=dy0WvV1zj+#aONhbXzA!| zZH_V`rq2!g6i>=zQ6B0~IH|r#_sBl^Ui=%Y(^*>;zU^!}Sat)FSC2Y7gQmh=Ce1>AR)lV&GG1H);=22jzzSkHLWyk z>r?sOE~w^i|MG6TdLL!|z`}40%0Uvr@bdr_GE)ZJzR)}oXLq0lE==Rj_C4kKT<{Ye6s%Q%4!<7NS{Y&nN<*~ikdwf^O$`8?oA7OyYhg+*v3TMT}% z(a@t_RF)em4#?mmW}L+na1Wez4X7Ih`pg#ZQGBX)TC+(75aW=FK`^>}f|wao4P(DG zqdO#V@(hVle1KV5opCtjVleV7V_d$(w2NOH&CXDe#z&v(cY7{<$j2DzNev$QH0hZK z6|WzM9?1-M{2~zP6hz~Is6V$i1_q@4Uh^0*bKPAvwqdW*@RvlRJ=11F9kaQh&VRxd zxK3a2(-aE4_l8cuTCrQdsH?iJtXkw}LmnFwfga-e)z5}DBA6%%70XKGgGd$9VZ&_m zGA!r3rCPMt?TNr)F6R+kJu+v1OWhu}QGm1^qdo>eZBpSFF_j*(2AHf6{LLBDluD37TBoff72l0%S%1m=+-5+KL7E83I!#l8 zVk+IyggQ9C1><_4rJ6^IZ0KyCG+piu?EO3lJCM2MeeC7EZhzFB{)M2y3GaY!DH7;@15q{ zvD7`0zGB>C+^93IZbgsz0IdLOcRFgH9bCk05ymdD^)LPbWq~S|bj_KOm*=#7oHO0A z)2pZ^)WAN92*9cXHh%j&{z{L^JPkWi6+dr(Vs*u2`gI z?72av) zf?m)lKO~wW4(6o&RMMt!lQ>~SPS0^tatDnjQ#P5AkL}$ctO${XJLo7Sx1U2)HCikW zN@6{OZklhOa@GgCREFS?7Nx?m!i9;j))dc^&vBY~@WFY0urVdetL9Cftr6CRgj3(v zY@-?m;nXV&`nbs;u{4fuWkP#QIQkI!Fsa&!ytuC*UECEeJ8O@(;g*W zuh{%b<2X_+fgdHk)t(rdwJ9@*F(k8PnyU5d%)|Y z8qwMll}*&k?1OaePsXchs;CgWCpNP%FfE?Y7mUBu|~ndnmPWL%izwm2I=<2B0=`cg`_}WuPsn+za;d_Vz!1+B{ujef{Hi8})&+ zqhxajb(Wl#^Sgc~?kon^e@QaMyHTK|H?D5FMe3$B4Q?gjcu4KY1Sj)ZYOvIVK=_LK zh&&$-H!ho7H_JTh6Bn}Qhj7xqfs6^sKsdwJqg>uLGIfCO(HM_*qk=i2#NrRD5v`eT zep)H4I3u{i9w8y?)|v5))Rc&5Q)CmeDC8L8%qb3OOY&zifw%HBz$b0OKnW+-?H;p zmoXsL)u=y*2dfALxKbSW6cj%E=H*uKBz2RDk)lCttti;GbMJD%8bBQY9gIu z0eZ)MbInVxK@ydBlE%fJOc*QXF_w=p9ab<_k$0eDF(PQx0j=^J*MDWWIak3eUH(76 z0a;Nuv0r|#3A$h(gN$s>rn6VfqkwcVnR^RjIQ)smsdl4cfI{~CZL%Yjc&ldNBzjnx zn*Rd|oNH=>w9EEeDTTuveR!QbW{EXevRqUjEMK&fy221?ED?EI!9TbcuD+i=2gjfq zMmE{PILUM^qmcGS6rnV?u-(oMhktgmsq~il(H%~(iK;m&b(nxfjIA-**!~A>G(Gji zqetNxDro-0wn*#GRDv}<#P-a)}gb4pe;O-Fp z=0$1jKe2is=f>`}($cW`(kKY)TBfOfv%Al7OT=LQH`B>7gsz&e_^Nqx@YCdcfREDY znfU$@^T}e2oHJE@dl$!&W(HDK;ax+9?jkup6+^KyosDyX*vM1|#wH8G@kzj;U~Ol5 zvK<|*s_#SJu+=eXFEXOE$<9u|@*Zd0P@ORWc1Y3fbi2ui8EY8=yswe4%Q`ckBaVy> zlcRfKSnb@7Q47AvnSQUk4Fsk2PX5fIW?VsN6)_a+BPLZ27!jg?v zL{gM(0goY6P_mq(I*Ltf468V#k8@yH&vMxO0^bYcobm#4y*&VYlqSPdqZ|sr3(B#R zd=jqx0cCd7@3$@xA^kG%Lr=tsPPq{{win%<9f`br5S{WR5xU!4kDtmlVzEe4)`eIAbg4&fX?REnKAEs z9CH61!G*SY4xJCb=EQoR8G)9wMfGwMa6)C0>gE@sRSd{Uu;wPRx70VMKK8dDk+2ot zmO10rVN1Sr-`c!+!=-kicDJ}C$`|?%)U#dUj~?Jca^Fk-vukJ`Yc&U4x!SL?**2{P)~mHY`~0ktX{z_A zw@`bvL$VXCk{8Y6ImeXz5Jf=5M00Id=5+Xn%I9=Fx*v@@G~nXB2r}-R?;o(0HEIha zE#XP7*r_Ehy))uzjk$Okr0~bqCIOGZW_&fL37a5aa(KJ)p}c8 z-G>nnUWA}G!&$JavmX-&lzdh8^cg_ojl{8zEftKR@VC2)rMV6}c71Xx3s0{j50i6IeqwSr_n5``u_yc4s2?Qxxb0KN)6LK2 zTb;H8a9}d~d(OlGh=V5ZR_5$%;$t%-3Iz`&5V5G%bcRUluR|`ikW^8dx$76rVltvZ zTd6MjX#EGvxLdZucz4_aGI<;&Umi$o;z)RcWt|Me;oDOtro@1LpbQ#h{c}~`pEjJq-^G3zDX^^8r-f{T(J&*pai7P59#tbqJ@4yO;q5M zQLNl>wi3}jEV))c-Xr{dTM%7iWzq?8hD}NVa5Mib|_*v(A?;WB2GwYk&rs)pq}fB7EP z*HdqIPKs)jKhN^d0}gf`Dr}&D@FtsnQ)1QvFfsV6ZcMAkxUy`dorQ+l3ypP~W&3}j2P}O2S?HAi-zqMaW_G3xB)IH!5wqY3K_%dgSvY4 zB(n{j?GtqF6vU|8Kvw(V{=RNUcZ4k@B!3&txUm}tJ0a^pi&g>EjVEjVV>|1m?CA`J zNFkT~{dbsaHnyY^*-gXb3#$a%t)%0HcqwAKENw^A_6{4usE~jx1AI!V5ulZD9aSE9 zzs~w(t}2>#$$S~mTt3=NL$|$&|K}71z!{@z!u$mpk+6Rh>8?C{HUeuHyZxNhI12*!T!Z!(hbicXqT1UhAJj0$0r47{w*;{C zfPd;bsL7^C_(fcC)%ZE4g|l#O{26m)#wZmUd47gl$iT=xJG@kHo6Z^F-V<_3z;ZwS z3;)9W3r+LHI3l`g2M^_pLj@4$0hemRA|A~M_U!a?l=K;nbjINzFkHWiLVlf^V)gMY zBXre`8?Ln5+TpqQ7`0>tm`&8}YwHhfs1#Mj|IKTQ6I*C3#?>{R$lUjLjoaFZ-x@Bq!OQd0WriH9fjeRaS%-rL(f}+E%FQcORT8 zEcXVZi?JI?J;bt{j!*=@gdNk>6@=KACClm;BaMyZtVat;g4M_HkhxG^0)_)XO*mtX zj+k44VY}bF^LywE-hj3D055Wx2<5qtj1!kJnXTW)DzJ)3F93x##Rhn%84shb+OMvg zs~cq5sx_W#!vTcx_y%q#3_~fwUO00iCj(5KbqdAoO&$$!`^f}yIK3z50SFaE}aYQD|YFXn0g;gT%yUf zmn-fTX&zZ1eR+a6<~UE9OQW-z?}j5n7ahrcCi^H!jeX#pcy@Q#zMm!=E_usb7*9Z4 ztY#P+j9cMg4c8dR5sp2x*NQ3kG{b&}pe>!QJBmij=^%6>pJN9!pd|5WgmqogQ{ev5 zZw8TDEiiREW02z}PuO=x^a;&XAxbzGpbm+eGldrP*s$8z^iZsW9Zc_g>^Gx0+iqqOS z&Ff3UF|duA>@OuiId7tE53%sT{Pfh@oke2YS#L1RWuaE92~bURL%??!yni8-MG3KkdzfwX9Z z;Xq@*+9+@>F@s@tlrkx_He;5<6H(qHyEe{=s@~#U<+tUpwUnPH;e9&R#&&g zU*fF+c8GKM_K2cb{9x0YEk7VwE#6@Btyc~mMG5G5@VaOtFCMQ~9@^4967I5)axj!@=6eFL|NR>sPdY7mTQPNH7 zDUvpk+9-5)k8IpWVSt)thzd}D*rH=%?;5EabxPpyopjlB4rdxTd3ogLIjH3f{&er) zPb$K34gy#;G6?%=pTiu7myA0zpw)PeNY+-c#irGBjW4fOSs@>&Rr>>QNX5|Ik!R z-P@@BVrWxMmE(z4G zxJm4CiAskUH9%-rD6U~-Ug(&%^R-saSS-Q2yqhYD{Gv@qj+{J9y1J5w=l8t=Qk94#Aw>BDv#4J;u1=BXCrC{!Hhr?2aaqpsw0x?#g@d zF2CL9#>`{e?T==I(F!_7?eZI%zzAX$s3(%>xkd$xg+lSu!oHu+nTM8HLTdLRPt)KJ zx6A*bxEI^tc6z|Bv2_^5fj@DHZS`PQKwQHt#1Zn_Wa{A;!r4HkM(q;l8@Ni8L`l48QU*DGPMq-)L{ zkqQyArifH*L#>-!Wkf9$G3!$QcXsgdds1`i=lDU6(iYGFgZ8?U!7b;UkZMC(v@*X; zF(#PMpu|X!ra5V^{}E`q`%klSz@A&3_Al#rK}`~27sw77dqDlo&Th}y-MYVYfGy0g z}R;6_sThp~{;1SeZ7AZI^*nkuJ{(E4L=@-J47w_$|61_)9sc3N$#!L*nerL+W>g zc^wH)-Yt`877Fv1GjqaBxH4{?<|B9WHr`Gv?H3qGK}&O8-f*7o_wePLIyOEwW+qM- zgCkCE=~D`A<=0Ax0wxitYG7dCZIr<6dYW=?yOey*~ z@2S`x_QA?5|JK^Ld3&3ZD^-(0gf6T{1BM=!A`F5;eG(xd3T4nH{M6i|t{V|!bI-UG zV8dPHu|yO=yD<8YQ_8$SIBipjva$5k@mq@l9{`jGHL=#GWmIp#d&qOxa^U7?WwuZY z1M@hwJ8csmhv7a(G@SF33YBgb+(_!DlGrT<1By3Rcu8+soffh#Rs(m|Whm;vjV!S_ z^T=n2ZI=|}3TOeJ2K51RB8w{qwd85|x?#)Z+eGC0yDCs|k244uG{Jq_Yvek6ey?&S zy$$n7FvdlKn$3}y#DUM)C>lTmW&;9ky0!pTJhY+28+Glsp~W7Aw26`Hh$6hw3@7Ay&_50OqZ zpms?o124ft`_S96k%-eAkxK@XUJ(821M)#~EA17e*4DhS8F(mTEW8KJ6Lk4FOiR;< zRV(JQj{Joa%`g<>z+uiFYMU9HuFB@=u<-GSu&W6$fEH5`4B0YR)0TBd!*vRA({?)g ziFMB-e;@rrKte!S?Gm>q_cLG+-&FjA4q>z)Pdzkqx>#A)-Ma=*uL^ClbgjDal)jIxclDRO%4Z>R)A7FU|k65>C{ zZ)nnr)HutuxPB5$#ZND=+H;+2#uaV0QyJWPaefj;tP zEi>v6YV=z1=M*&-jVKS%!C3{T)AALXRWn95wswzwdSeq?K27)h@4g2_ILrrK>~L5w z3y5M+s422zADnHfRa|#{x?t*?-wwU>9ubdNcVMluKf|Z{8iwo{ycA8GuzsB-kf?>6 zEy>dyiB`A{bBmR&vO>KD4DFJUZDJ9^bT z+8HGI{&90xg71@pf|q_B)8SrLuVpq9HNFn3g1N%lqzG>8c3sQy(mETRE0aJ_5lm7aQAPehG?#qz%tH=`N7BmM09nNGpvuE875CsT1TD@o zni@JDnEMh808q;x7*jJv*m+OEYH%a?6nMpY`xo3`?5Izv5d}Y@N?~L!o$v-jYDx3X zI^oILR%abRI)YkQOdO6QYE0u0h`e{?NfK|3TBj*M8+292Cf34ik75bbXJ_s(2J=Mq z%1zJc>-51vDM+w@Hrmmpid`vLo-OMIikW{atD>QrIHGh|BImDtw0^;~aZ zj^q_I0Hs*e_P0VdKMDc82Pb0$-X>`q3g|Rang;Tni`_K-ED0~nd)gy(C6{8RQP17! z1IG!?;n5%}w&X*)KCtRyJHRuzcw*EYrk_MiiLV4v_KJD3lTZha@XzHgiAlLhR-!Qg zMa40z&VWCo4*X4C6jtf|%PihPloJ80NLhN>#}G>lCq8Q!Z<*79QuREn#GX|>5BNoP zJ@4n?DOxfi3V*u^i2F7y_OqmSl=6Oz8*5Xpq;L{t3b5pqvZJ46MB=U-7v~;EN)YjK z23Sq^(g|U{!nuNd*@OUQn1QGH6mjJ`)6+FZ^06o=TCG>j<4M<{`;+s0Ds15TYIomj zz1%h4;F`I#6$HbV&xQ_FQB7B;rq?N_wwm577FjNtWy~8fWa*8piBINQbjY{XuJ66` z$nn1*q3HP1xkk3t@V4>p}C1dFU|=JWXz1$J0B<_g6@+Y1=w1t_Ocj zqjoWvUNDP|A=uff+V7cXXz8BgL(7fU7t+wO((p~ZD`j2nZRy5V*2E1Z!hJRJVOcud z=YE$mp#9S#BuWyMeVHA4?LL@8!x!%4T4xyVIHfZwDF`6Qt9`>f zJZz=$@jck9na1<)k#ma)QrCw#MD&0UYRCg!So=bRtSjkGk*2X?tqN^S4*P_NV}${Z z;caE34tP@7ga?=lP$ME{JV!9vSJL$I02JUole^T7Xum3HZ}uo98&U)d z(Wp@bmO~n%9eM(>x{17HEn?OcuQWu3!atGSXattcb&EL)uKSn*A^6Cf zW;WWm*WAB0;y`GPPJnsqXYtE;i*2Hetvw|fnj#f1f!V6*wnUT9cp~Tl2jT>6fg2HX zl5P7Z*kx}S+3q@xZ(6SyN`hn!H2Z_4LjX=#86xn_+lgg$kPeULZSWj)w!GCy;M+d_ z{VZmcUSW_1<~BFI(_HaR%6$a%0<3tvXmc{0Q8E~%dlXC^G3$?Z4egcS zg_1gq0S|?cYlc}7NX?k~;jLxZ60I~ezr#zSBLs?dR0HHfV=gsfI%}OAW!E#i%p&1X z?O_E_-D6Hp2~Wl8R0l4pFmRD#s)V8y1||^NRl$v~bBq zS|+a5(TmjVv3gvpRkP5H#E$RILgVGbZMrbc423oXDQwK_k!%vW6V2!BpWYzS+>bDg zd2^l+OD=Nz1)E;nj-5u>K%lLQzV3SF;8 zU&d9o#t1O(202tXS5cu^MD(NYq{J*48ARDU1KrYJb7v}m9UTdn+XzdjbYMGbkB}9S6SKQLy71IKgNS`_`!JN9 zS?cG7>vuY9$0DKLVFGZBKN*H4X z`1YCokWbqli3B>mx*537?_Rr`9HfsIs6nwKkmozlw%w&{Me|KmUGYtFNV3SDusYEa z6SY@WmhVt*aFh;^ves$P5J#u&lFCaCtC7b>`z_$XN^hz3wtCS8Hi#+>Gd@3_a}LNg}A7z)K_bx%kT<(C$3>w2*SwN`DwoSeFz}`pU=m>TYSlumP2Y{ zJi?=@B8PITk5ZoC6VO3Nc7by0Z9i!4AR^+lK~?n(4QL=9Ux>^1n@4A@EC$>17_cM9 z2#hMN#_Vouq5TzI55gW%uh?pt^28c;f(#G=uDZb_tda{^I~>Jj_U9o|Sb1F0v*Z|t zHm@@!2)qQK#wP&>WG5eWc2N8+@6Ken-AR4N-|q~D8lQ1or>Mf=E+e5;n#!*f)Ql5F z6^SrgqK=>01p(LD;W0aUFZ#>{#vi?eg=M-V}|!A{+1vU?K-gzal1t$*n7N|d&3~35sjb< zb+SFAw>AALy`sH-n*Ioupu&Q_C%pz>M*`{~)~V{;*G5#d`F=Zdr)ejQ@ZJhEXfa&V z9EZkDQkubHpi&VpPD5OAmo@!_ind-%TVU#YHI*w`Kx^=8V_LaJ?9&RR_APE+Sn}7Q zx}=IPel`?2M52ba{DfX&GfQ&ls!dpJM!5eo-V>NW6^Hfp!KFODTtSWTLN$k{$JZ%? z8uMq~*>Wcx)XB?fZ;i}0VZ(IrUG1=(ky1;?Zz;xcC+om}Z84kS=pE+jCjCa9SI7y- zAr|S|#63?q^8t>C2_^V2d%2%PJzzjI20~G!e?tx4A7imT*I4&bz8vmV!x-OYF4!f1 z+p-sRv)s1}Xf+RDIPnZjS=ICK(bE(Y9J_LWyiG}MLbPZ#aAgZ&+T&|(?ipUnqpL&x zempKt&+Y~o6);J1hCw^uDt6GpLA*v)0+m2)X)Ac#WUb#ZXZxiZXT(hOyFk!KI0p3_ z@mLIIb~cBGrg`-FZ@aW)L@Lj&Z|g!$-mkC;b( zkku}0JKYYFG1~!#B1kS5rlc#>?IqPZ4v(Yo{d)$A9{G%5%b%qrpIFmp%%hQorp-Eu zYV+eynLE#`iRv{P^do8C@c-4!9s@#XE{nw9|{af(^&d) z;f;5fpI|zVZB9dXoZxGLrafWygH7VrxNI1W_UT&~w#yWEl4!WakRwf^_Bu7QyOcyP zHIE`8oz8Eut-ObLA>1N+(iYqhRiac3?cldu^?oR@g|+xC+aLB0^S4*Jc}0Nzx;d>&yZnYK3UsZkqeWde>FcT%=SW*DjiW|u zSM&Wt?_7OWa~T&d^-#$*eDRxN_qeiZOCi^YryNQCVUP|ql+9vVb=2KQtF&o4B;Cj0 zwFtV9n*}PGx063ZMR43j#d_;EhwN`#sKhcLU_Pqwy0r1A` zy9^mNjb|L2icIDSrY?V&9<=a-w;Ulk3vgskl0577L#HeUOiT(wAo6{}*JfHcNeJ5a?i;B-d=uNaSkn!OKy>XiLl3O@QabsQJJGnHln(fUd&hvJL6M1T= z4e|A8Q7ySl&o{DK)rf6C#K-Q#97R^oo4s1VzY^i))<~>*3e&uabFnx%Kp|!&d51o; zKDQ#gXq`|p+Pm=%ZL(P}91-new8^c2e5STh@pI}YT#aH{ z|MJT7ar;UW%m``G(NIR-T9tPZP4BBb?M(#?fSjI7R*9-jd@=Hz&v5@ zK0(%{Lq8EEA09pIub8K3F7%3U_ozy{RL}HR)a-9_Z`V1RWP3FvxUpVV3+)bQR#%WF z;729;5Zw{o4iRq7vm#MLS!iBE*@l$wA_hSOg5($-25QX*b}UlYj}vUfMQUvdC^_~0U0X9AmLn_sL;&N zF!{xNfr&yNFn@=dR#Hk9sgXWMz(SJ04Yi&}Bk5S$W}8%z#u$#XRvY=g%G=7Q$c1|L zE8O&xsBtgz0k9<;3Ig-|=yVkg9zks>J+)q84G0HG*1%N)%CFc}v3a%KJbR~ecCnU( zaQia88=cdrC#}rpO0*mv&8yWl3%$3wbV&|g6}>7xYG$56O*?JEF)o^S(>yFw5|Cf_ z1BSl6PQROE!SvL|y&jZl#YI`>al3T;XUv_Ef6P1wU$n@pM*ef=w%)}gvvU-xOUxqZ zT*9Iu4&^vs+GU&}9gOH8LI8V|Md7oFV_c~_WVPjH)WCIpMpM#<&7GjGS}t)c)f1;o z%RuR|2e(40ZWNdO$tiPT9e@iki)BdKkZcp#`ahvwfe-hbsMqj4i-#EVd9!4@=t>mf zTXeG2tq&1Z;12pjh#u9 zxTcx|@j+VqWSX5G(&RFTI!Cu}Gml{PJ9nDR&UDzDs-76`$NK3eG3j?g>D%U6*ZYvU zI6IO@?YlSnCE2@WeCy=&a@X{Reus&({gN2wh4p@s5))+-5LY?Vuzj#1VX?F#G@hH8w;uX^}FsTK_FqX1PY3 z^PS|0=j)K~vz#r1#--Ba`Fl}N?=-jVZRD*}J8;b2nJ~LBxNcq|YWK4Jy7yW2K0ybh zVnoHlvwV|=b^1lVcgfV-;50C}fau5Vv5D9D)?KQ0>Myv7R$Q8Q@oU2e3?aa{Taq3vMF|FYRPD@m=b_57_2>h+i8%7)!5{c~Xa*CFyCGC&%>Es@$#p@(&)(_zX?Q}3b^ZF-p4B-=;?aeLIj5-**G zUm>Hm%QZwc@2mLh=r?^e^99gif$cK+XQgI+CSNpvV4fyC-F+Rq9;}ZdJh9v3Xt;9J ztP!n!9=3Uw2nBU&7*^`n`WBIgKjJUkMLE$c#F#&#wQ+~`Ea1lVuQpB!tm5u(;sCCc zO4RrA;exl9)gsgjdW$I0yh#GRyn5eWGv~sxUR-DB#($MgTM_B+Nz^X^WCzzXBM$tc zxjH?XC&05KgqMTP(ebUMI}pvh<0Z_j3j!cV;!CHP>N7MaC<$IWLDLWQiy&~(B1u`^wZ!4ic9cyem!IT6?3u^j*W`SL*U6=G$xV6F_v`NO&R=js$z0tpeRGY z2vz#A65a$F5GM`*dM*DrMjs`%^FGt;fY*q#mO2*-@{&|J`>g?{HklgyF8GJ}4M>){ z5%visse@P8qn3vbNzd}!uwk9b@{ctw(3boUlR--Kru}W+r3!8tqf&hlyhcJpAu5_* zsT9Y!iSvzc<6oNZ=TBlp@O>UB`s_!|N58})4nQ()&{XD_%I5IUO#%|h1CV3b%t*Y#?KL)KN=&rDbqj6 z6~BR)NWk$#gp4ekT0aRBgkjE5>X+G`j(Ilm#~(278Zb)I^L7=LTlst>T|T_U-{J!` zukL>*qjgc4$(t4_LEf)e0t;NNu#pg!Y9H_#TZSC)D=UN=_1um|XmpyaGn{$GfSBnZ z572F!2p|Ii5`tNZX5)&5xl?7E=2sQ=0TV(R>UJ~x@>0Wv7%-?T+%zV)yeDD^bcBQ6 zW_{1$4TeGdLG$#GO262dGxYNuyPvtiMW~_5Y-##tPWabY-F=uF2YIC$n}rRj?AqqF zZoT13>(E*)z^lAKOg2Cz?90Jlu6n^%(-YY2{QjOoGnHZ&+Ek*lZ4wYi%rCI77~W1B z)dVUYrFb0MXUuPM;Hdfv1;Nw>Eiu% zi(f5IQ|`*2nVsnf;?ddUZ}UYifGAMpr$PU9;PhgKPCf~A!l%r7=u--*SXn@qkh(pd z!hZRvb{Yn)U`@z?ky7%7@~ZhlPgxWBW)E_Cs$mJfjS^63^*I$MIB%~OVQ4jCV}9?? zL-EB+3?iH~b;RC1-V~URR(lu|q0(e)vI&sPiGgfxM-0*#P7pt8V7Id17)_ECYqLrs zA?YL&6b4zu<~SL>tcpV~y+8b5HDNX|ks=JvmNJl?Uk|9al90G@HyioHRLP=|GAo(5 z0frZs>=D-<2flTfobsI6O^Z%13{DZR%d(G{Cwi3P?tr5OQ`yf^$cc(2G*5UJMIEC! z%?Y=KX#&JE=>thqL*=(fX+QIwb%uB-)Q^Uo2U=pe72-L*S0rU~ZX7AP)_#4IWVy8} zU=g7)3Yg(CQbjR=ia8ZCVVW>!CD*MAIOH=Gz2i%31Lkv`wSDI0&IZINkEc2Az4KG3 zIxUoee-<_bOk?FR=IQ7S^K{yy?T<#&Erq0)1PL&f>CO#i8l~#0;NJDt@^+aPqpa#= zZRSqxrJN0``S9NW({aOGLlT?$@Tibbx`Y1~Vn7Mx(rB2kn5;1^Zn_51v&Son^`E9G zz1ey9vBz**j+tnN!AdOc3~VC%@G*CdV8#aE$|M1^5gz)si9tw#0^B;yb-gI*c5|{j zKRnxr{IywlmD6vg)D3P_6x{)|M~nu-d+5Xk6Ri^RzM$}HGQdThE)?#|x0uG$Q{{}( zsu>HkZ=PAnvP&hw3aF_t*25axwa&dveJPZG-`Q80ckI*wL}c7sI3Nq ztt3HuYB9Gz;kL#=Z7y8u^ya04?E*o_>hY1zO4c3rsao8c&Zq$80M2QOac(oGd-FKK zlwx3GJ7LnTGzy3DW=y{f(k;5f* z1F!Wc!PhV?0i82#Nj^-~PRk&AfiOx6i&8g)h$Z!u=+6ZJnA;=HQKOS2Na6zQ2jBlL z^L#66Q`x_D0$n5|K26SfrRmD4bkvDXJXq1vK2_T%55)`jVLWuVRaN>|M4nfAw(1rb+0-g1KKSIl7Df;`6g zB24d7jDvX=Z7L2@nk~X>(Q%qc09iXeV0iv_rhBsz(!u)`_3ydKeAwf=9tJCKA=|!eZu`3+VX%4U&9!d z1n+P}>qNNAVK^Zp#3zf;Pu$ajm)A@XJS{Xh@)><@}SAlTCCY8F=c>Sfl~Xfhh;%=3*dQdz-)ouJ@8&MjQn@JfPl+ zq&Wc!_oCVH^H!^9XI%|~)KOaif|s_b4^Ob%3FY#%s^g{kY&SO|)i8xUBg;zk(Kk;j zm=85-*{mz7%$p}H!Af3%VI-P*Q$uMiKb~IF{C93Qud&_)@z5{=cmvNu0M_4w`AS{V zw$BKMbvFiY0}@h5;kG~D_Ohm!;NTDPvT=Lwa)|sp4o1aUvm4`lc zVX3XpfVK<(RQkjUkc~U$m0P0jNPqY^?diiwpN5(cWGTORCSXc$6NTX0(03Z_Q|Ot$W*%;* z;b3&Woeinc4}v81(`)WzmzsOG+~#+GQTB4eLwn}ko5vl$SAdzH2ki;qiS$0X)WC}& z5#!HypAQ1xot_Gk9yT;=&Pk%$ygjtteFScvvuCncY*8&LsidmmueZr(*CaYp;%JWvyiOP6a1VpS^gWDr3Hi6{8|7bEN2~din7-{s+I^Oim zbk7edaa2JXA>3^@-15zJzWn4i^Vz{3Wwiawqfk;i;kT0WG-Pq`dVSgi)WczG^C+?k zH~9s9R}e7pN&0=5a4Lfy)A0Dm8A3oiMA7j+FASk=ietdy@EEN`!2(_GMB;W@gQ4T~ zHo|q-)9o@PY(V=6XUYy?d8}Vev-@|P4#FM~{;Q^DEo-Kr<&u(?Lq(aewvA3@6I)nm z!vm#gBTFG#z>0HS)ipFGkR|m{*Inc~rG7;Ue`NM4ekH?6g6sh;S zV_<`bR04tEwDLgp4TG+~HDJm$qXZJBhtj4Et}y2X2Ms+mxKB$tC-8 z<1OP=mfPkcI&ueJiR$nfA(gtU8;-RfTR}tKqVKX={H}m7@u=LMd4xDv667;~3ZFGf zAKI#Ar~vycri>-LSRzmpRP=Pa)k1dB-S*5K;c5*KOs5#08pk2{m^Y}1FY73xmRYBgR=~9WaEkR`@>q#gtg{Y5g{!!*_G3UeW z>+eAj9cPyYBHw-5yw?xjCv8NRjXOm6k24`JAZ8Pwj=+L|w)CxJ!%)fPE(kJM9GY1} z(2{z3&xOM|q>I?x3a|zZDA8JYlrOiqVB>13L8$^=#glsI5s z2Gf&5(hbgt=*cE6@hnRvCb~RsqvkG}cldhQady0TmwYhF_{S$^&gT-9QL>_fkbP=* z%<)kg^;8L|gtz%=ALUXyZM`)@F}Vms2|~NVIPgl- ziE;0e3U6PcR=BStArPC`HNpa{klh!@G|EpDXb4p`S`V^_kGQD7zhD4vW0(l_CFz(o zHzoKsFq>h-Of!toAf4Onh{AZnUOz(tcT>?tX-SJQXXErXbJlCEMcz4~w>C>e5|s~~ z1VgYiM+uF+a1<$WDj-O4>J`>0`%noJYU0}=5M+LvsHGRRcFtB{P0|J|FE+3?i7@Dz zx^~$lO;?ntq19J*y^S_vaV)zbfp%Y7NGe||ZltF5-LKvSHjpylVeX8|J(+-U815^f)#tohkq(j!ott6ZINA8e`b56kccOtmwZ zRi|MdnIdOO&SEmC>a;_|VhgA^0X2hSi3hP9M3jQUqm&ai2OcxfY*2>155Z-m2$AzO z$=@&!rODvvP79zq>gdcqVv07zdP>oO>LUFXxz#rbMazP__uDO6DfiOK01874VJWdv zERa)@VhKtBlwZUB3i^nk&1<~M#TvSq0W+dJ%NY|~bizrCBazAo!1JsaMM08vIQ*4x zRvfsA@#Z;oQJqQj3>RO$YObaXV|VC9WaMq}z-1~rlq3w|i{^(X?jRvu0L`Dr0K`h8 z#B7*`!G-Ae!|5NA~*B9934ZY+ZkAz-ul2cp0o2Zs+!ZfI8>kY}l6d778F6qe$juLkS1zn#H< z_y{`VwAmfmk)lDXJEE(4>jvtI7@nhtLyF_KH8($OuK5cWssD-Z$7+9uGL1W4K-Pio zdske zng9X7He`2~EMMud6%5NJ%ca8mHL9i#DrAGzH}<=IkFLK-h|om3=>6<-ucYiUUK>b- z_WNFV{vxBHhuqIGVUxEBNCQ0NWygqa*%2p%X6P^?IHLd%oPte}7fhxbUnDtj=k!#V zSd72*vw3>5yaa8MK$wIM=nz|!>bQhx#SOGn#C^X#LEEbJlG0F04P-0v_rk~Y(Q381 z+Irdk4gMCs_Hz^yVAc#`XI(}-;qI!leufsis>`e$o}p7;K_Cu38_!mK-zUwdElnjL zl8GizgEa7KEjpDjhIGh0(23osWArf3iE1~i=SHIJp73#p6m=tLhq+IN<>EzlJ+w7- zE}b{@d&g^?jB$siRdlw3Vzge&-0)nRURA~sQFnJPpAL?8!VVgyH`q;rt={H51q>!ihjXP zh@vZfFUL|6AYK($>wVg{1yAujBEkiFt+Kjc{&y?7z`4H-69SO1!F}C^1$35s^9GFT zf!Eu+po{>5#?g;_UNlbuAr8P8B^9c~Qs%Q6*h%Qe zS*HtDki?iP7WKm0;LqH_M?%Bava0)4sy;ps59>cx3*`bxAVOI76Ai<%f;c6lXb2*% zUS5Ls5Vz_#DBZ-(8lUMVm7ve7AZ6nru?PArp5&uzp0vO3KS_Nu{k;IPa!61>DytlG zne-dcb5+wY4+!8KLieQKiDW`2aMTk9ovbrYjiP(7J!5y8V}S!eh3SU=CpF=PS!ok{ zBn+VG9oSpq*vAlPu^V0!?FqE5?4<ObsKxP1nwq(6_`ZC#A8?(vR#9RhjRk~Z2%wMCspTKMVWV1&V8bi68hB;RnLVCn*mStJd7Q&)k znk}%~BSwedkXxMI*uR$iA&zdv^VS&P)%iRSA1t3KiTUxGHhA^q?_Dx?tM{^`lFN4n z?hc)p5uUp5^?IWmFkoob)0_>^PSV{XKcZDb)tC2i*A99lRLPkS(+K1IPHN(!&KjrzssUOi0nV76 zVl(Kqk|My7V2oVqbUUr;D1k)>z@;>FuEgD4`s!u=Ffnv`hv@{}*n9~(Evso68_6%d zbdUlfaop^8J0$poY_@uxc1)5>{czx=MR?TQp&T+*)n}(UD*x0@ zKy|b?%qJfVj|@Umy`59R{w-kaq|CfsyT<1dLUi48S*Pc{0Ec7Q-702w9rFLORR1-0 z{F}I}*YN}qiJJc`JFSi{*h5PexejPi+0zUjf(%@z*YpiRo1+oVTWVsxufwL=rV)6Y zhl~jK0b2-3MPpi1zK@$)#&bf$OUg?<;}>fDn?7n9)$q$InW!C^sf*6m$W*$x?T zuoV5z&6XZ9dO~$|gCL@8lkyH`4S&cynfHtE*uF{x)c`QX`vKy*20X4(k;^YN=s0ns#1$4hLZatSkT##4h`QFcMbCw`3=K z_SX0x1)y3#IgL8WF%?Ok zM#-R&_-vJ>1ZfTCTd9$Dhet@P+ruPoOr?8WmQOtG3Wtc*!P%@fD-CiT-Hy$i2XuC1?Qd_U7|I&l!H zqs@B|I_ca^b9x6f*x|sh|t6Mj^ed?Hasba=pdjlmuF`rSPHqSc#)JeytqjQPwjK|olLPE6X}<;39g>UXRv#V4mOv$bJq;Ez;%auGn3_nUW* z$w+LedZGi5cg&AG(|m+aCcclAd4Ty0u^9B^?6i$!>)No3#MSB$NX)@F_BT+ zGD?ogYQ&^2ID<2%^$GLrCiP{mM=ZI)VL{1j>^3rvxVKc-qAXzYA~U?nyWkSrE#wah zDem7`)E`X)dI%l-vN#wrS?Z$KAykP`$A8+5Qp{Ub4IN=e`)H*WwG-6=JL{dWa>$z+ ze%ITZNAvyPzW_;IgE!7`LJ^tseq7@Qu+=eF?1j;TEERPQKDKeki>+az2HIUp*V;9CLzo# z7OHXrV3K%r_rz-#P7X>YPP@~NKSid3F%XeMHfdmfzO#$)`@N}u2Bhj8RA_5Fq#m(B zkX1d)1t|CWchHs1pfq?8Z=5uu*r7M*>agOCY6Mf5PoXi{ zY}9|0y*paFYs#DOnn3(Ow63nxW0rff7}$9{S4pp{{YAx)u`GG_H_&kU>2h zB*kPxxSCJml`pFMT4n@%&Bx{D3f0`HLoVqWrg_#PN922Vn@fX!CtBOv;Y07|A}kHP zi4MS2_dt}$=@5LxlHA%(yV3eZbL(cGnMiZYvuy8VJFKwWG!OmXV!2(j_3V!>F-BOh z6<^DCb*;7EAdg&$M*M60uhc~Vfe%rP%jb0k)oRPGs8)ind>4pQ-`1PM5q*?5R_49N zpM#_B;>ZmtO4)#?Xx@ow>le72yf-SSsI{Odu?*fp_s+v)fqs&J69gUH%DP|VouAjd z7jYQ5oH0cIr~Umem_I5BYj||QULD1l%=Ah17&`)X_SPwz`f@Y>L*~9tRHVo88c9J@ z_!+*VWss=K2|mV%{0pu<4CbJ0)}`toVAo+)(g>C`V9>Vp_&)< zN?pG)0wq{jlS_udqKrW98gMn zMHGWg2AB-ad8}GHKgg4cz9=vemo3C4VS*u=NxF&C*t~}b%Fl@xiTz`lVaBqzhj- ztPyC$u8Q|^+PTj4>)+=*(>f_|;@S#OMxhFl(k2er9@h*n>UDxOA#IX3?wvHJh8RJ3 zK4^QMEAVge^P}Lpxsow~4pp?x(^bJ6zW_HA1VvRIaObxP#Eh-xD{%^rqpC1D^cGYRuj_)}#vbc&_K!GhZbMprlJDDiocV(Y3h2N| zlToCw;EE^JKbX+QMp+_>jl}m__nu+$2J=F3d`OZQhAjaM-8R3Wfif!dmkZdpf23z0 zx5E(=hMCGl)?=84qAyWntVw=%RW$}VZ4>Jt|AqBR>CX6ol9FaL>8A>p|^{~?3B(@K}kX+ zk1=dL^ph}1I@E`8cjx%J&1^?~MkO%Yy}KL7lkJUNkUObL#QTfl&e~|5#+R)@)V^Bu z7~zI-E8z_(a4(Y|uR>dw2x(+hkz$m~N!Pxgima;nw48{6y!;h(7YeW^qtMF-ey_tw zacUUh<%Ck%-WjU13DME!m#mdwB=PKr%nRK%(Y(F;D9xi7F}xzZd9(9Tyin2oM{w69hqU0|9UWM2ZqcK@?Y6k|mWLY9-}ZqGYn7 zN)(q=jvUL8E2^YYwz z0W)%fL5RE{wO}cu0)^r{hZsK03k*`UI-Pz5?z2UvK-py#I_S4nTE1?cOj>}S3be0D z*yBH{)Eu;Iz{Ji7Pz(oKclhtnXqsxfno{1VVW}|PqrFQ$wv8_EeI-lRx5wUT$e^tQ z2{>HKDpvT=C8cl&)XsR`5*_ny)aEXt0l7*eGTo&`+}ff{!h+_r^sCjE%}odG8$@7+ zU>=^OBH{OmKM_=5-)Ay2udqT?)3dJcYbC7@0)#fm^P@csA&WquE+IvB%7|&Bts78e z%=18&Jq2q)v&O6YE}ab5t>)CyDLX zr`tp7Wj$ntj{C_}$XyK4gMI+i_Vxp)Sb}9BQl>@K5h%;5nMfU07ffeR4Lq7Qd%au0 zgs0DuKn>2puBQg?S@JMtIN=RoxpanEerl8Q7sk4V&Q9^GlCswRqZgT{owV02#uQ$; z9!^^)j0rt}xEgmGWN#fw&_T7PR4{LJ{r-@uR3>!G8Xyh=tfbrOlHM{m#J3Uy_F)sSH6#VZUJ*`-4 zyDUb0@8B`+u~8Ha57=9l^3bjDZwX670g6 z>w`oJ%b1oT%Ka@NMOD`ydmMo=;`W74NiI^=2P{Jx(zv6S+ZtrY-myU#wU-6{?0zo- z_vNB#yV+KL+FWvpwz$qM=F0X~>M?85c;x*YA3O3+_Rr(^Pyqt;K1^rYM_u=I#(y$} zA@KJZp~k&34Hv~_^{`rpK)j`$!At#YM*2S|QX%_EGnDv|fx*d1FHI=J>X5*H{6I3F zObMC%|AgPVkISb1=y&69;ZKMZE0QfO??|p5YaOvs$=lFo%_f%EmcyDi;WFsTQINmp z@M!+l80*DD0#TLJ*-BxSeMa0gcD1%7HQFtYfo`89$VV||I`R*>$5ZB_OCSI(&XG5p zZ;$&%Q=P}fD`mf1bsy;v%?)2O&kXZCSu7lwMT~=n27q6^EdgBz+6NEWpeW794?~nI zc(7RS!ib>aYU7vtb7HRU&SreJHyZUQaZo?NpV|72J6VKBSc<1?m5Zf<=peS>!FPD6 z*-H?N5+3}{_2ydh+Oo2As5lx@LNdrv>lxqSHv99%r9%K)#Bgpkw>#(1I={ig*Ngy7 zt|IkL*C0@b%pjrGfJr#=CTu!J61-n59H7iinx|VgVKVanrq$2i=Vh)+Mp8vAZTvO~ zraNfzrR1}SKEivD);tRy9nc#^vZZpmRUJs2$klJNIAzo+6pflniJ`-GWpy@qRR5lR zx3-S8@9g^5;uWZ5<3@U-+dlEIdTq(QLyPbvudVl;Hm6SE5XiK6H?6&NDrhhZfuV4k zlisFwtiMFC@6)uQuL}fTtPYQuO%$|RLoZQ34@1@3nmRx#hJ-p>@>#nr*ctr%byMvw zk)`w0*KDatv9NBg{~EQ*@%jyUBK z$1_h})?38Rk|fsbg(j9^HDA4qntcSRj%mVO>c){iVj69~Yn#t<$pW%MSm=rsTkt2%h zU=o~R9pw=WFd1a1JcAIwV-d&u+aa^UUN?_rXqOCAg(cY4;ZVBEG_C z(616z&}_lQRbhw}CMsoZH^p0%At6Di&}R)b2?jyzU}g$hjF+-#NJe)Cml7jWozp6r8Zpw|#((NyRX}6TdNz3C#+jnE80LgM5cnKPdi9enDbKgH2SzGD9>g z?lvOLu3hcNkpM2`*p1?{mu|UtbjMqFBa>N>mrsv#>e=0Z+PW?FcnX>XEft+pv$hJ; z$?Z-2-Y38{OcCq;{1o%PtBOp9F!cTuOZj^Z+QD^X{p;u~T8U0;dBsv#%9j<=x<<=a z&2lx;O~RGG{D+srH~VohTMVi2U-k!BpOYG5`0Qr@j5 zv5C4wnIe8^n{sLb`g$k;!u<8=5>^mhgQUZ-!oar%8CobB2{Q-;grq-ATWuh!jm2oE zEU6EKI}J~X=g-fGr(0MS|H1qT!sUaOr`N`UXvhYR>KeX-PkAmXT8&dk4!bxP^@T%4MiO^^Q+Y(< zdm=tADXcj#DytXnT18#O2qTqN*d3q;X~^z7-QHQJ*y2scQ!ya9N3%D=gN3D?qL)n( zf=8RE3W`qgx0Rs?K%BNd?4N={^<6%ABLk^K)qU1WXcktMDo_YwS;|?OL5PMxP`Du@ z1hTtZ~|_u;9dApxwXt*}IQemtjI zohj8Fy5F5%3$UXs-hQt-OZnQzy^=(U@ZeQp-FWX!h4o9auWHK|4G)Qt*2Xqe;10!7 zmLezVV)+S zvF9H+f;elDXQmpDp64#vVmw_HD?mwQQ-k=RowNjjO!-{!VRXSu>@e>Ur2ik2P+@FI zl+&d_TrDwQ9JxI((|Z^WZ*sNHXhBr%R`X(*M;~KYFZgvM0RTzWa4mY`7vtNzXDV~h znu0bBgm2_XCg19WTP;)&e4~u2Dq!xUBH_4Ku9k=^qcst@)n+?t@94glYu9EW{a~5r zBxC87GAb8hA?wrV9D8EKPs!&Zp>mX!lS!m0HPV$NI1@euPP^5~wnF$KSBKv8U0Lk|Y0xCOTf2y4XRt${ z{S971R=HTMa?vdMJcKY^Uc)|SBe~Kk{fs;W5Mggmm zLpb%{gJ$=jyI)`FUUTZMYO|!#b=Mq2(|RSn9x& z;W`m?-Ugs{6(&~`AEvdLfMOGwAOY@B9HlQlsN)K;H=$Fe;9U%VKa2VMzfZGRctAje zQPyUYu~2xql=t)jQF_AfwZ@%r)b4^vPwKSO`lfh^&_oa^A36^5?4t}7O9Tz+I{I7I zZbQ|iQE}SLf@!dW=6=;YNQZJXJA?S@w$cw{Gm?z~?tO5|v?mqq8Mm`67iU@6r6`2L ze`+OxUTk*qU)cU&`PCVgl040qMPb>ejg5Lugh8H$Q?C&ovdt@KFZx;`rel`Xnw3vH z6;n13v330i1gi9p(`5s_HimEkgY-JPNn#O^H= z+qQ~P3Wj@-|EL1Px;`n#loNQWLQ$o29^)NF#qP1s)p_)%c<4VM{_`0kjAR0>0$nx| z5Dw+5(TP|Y+#bIo^q0*ZUe=37?%N-teRt<@;N1)neW&i8_e^ z0=@YpR9duD83RJob{}-RKn*|Uo^IjH5kjO@K)x4{Ord|u>uxc7m-5>0$~ZyJ95Q5% z7@5?3Fdw8{Hy_MB3Nye$?GYzzVV<;u!B$YU8KgI+YY~$MpOE^dM=)Npebq5z66t*U zyG0Ikg@Q@5P#8iEh3(F5jHD=ivvYRMTv zENQ0ZTeCLR0#j{7cinC@pGg+DuZGo-G(yx0Wsa1Wpz^s4x4rh;_6Yj}K02n0z!pwf{raM{1!kcYV;0U(pDF}8icmBYK&EsU@x~{W#VEIr)5qu?(mieT`$TG$9(-p$e zr`Yvhw(_#MArXW9h%$%4EQ^TObaUG3tL-ih_$Q3DR@C zxTq_B5k)I5&nuF??77Xi^12;U05K|14F%&ZYk5VVIw8U!!h#wU8px>d=0p4L*jG(_Ub5j=E~ctj&|b_sW0N6FVwg@fTK8gZ zQabTVVn_15;K)#SXx_i!IFpQC6VfQ^pdAGv7(T7(K~}Vhf@(UYdZ3Ug@G)&XEEcsW z^r3^jlzrSh)+6p5_=l1MB&lfY4;`DoQ)n;_yR2F{YmFv3MvO(j42k3HR73!+-JnTI z(rquBx9uubTA#?WpIGqZgY{tDw1AeTE6R$xtR%8|y?pbv)z0g4EhQJx^75@*L|V?{ zW#--WCAm!b&-t*1#~fm7>bB~4hW5F<_MR=4f)I1%T=;%S{6jgI8(7aYKff4&HPZw1 zmu6XwgrSsynLcq83{4IAJk26`a()m&QA&r>iqt8V3qrBk4}FgQC9aFV*#2CXw=y0% zf4;*{hA`kLNem&!LpC`kEN?ak^{AfXV`KZ}Eg&j;RmEuQc1Yit9I0Xs5L>1z2^(Zy?9y7##4-Qp{ zWk5VrIrtU@M_7v^`q|nvN6Dq{6oY;XvtvLqg|<4yRQMBUUX6$OJdj|}sRIZJWr%s)pac*&q~1g1ln1~pbWEySQMr6>%WYRlMBZ!; z2FxV_ud&CugUzV7UG13eJ*E};h$aPVBVgqrmwO6A6c2-{5rfZE#H)FmR%nO9lc+lrSuyUpA_ElC^gn|{`%*(DxMT5O+wOA{xMfPLb%V2y*~Oj<0R(yeei zNJ+&-GJF|1w~JS=O3IHB2GHCvrSCEJfDW_Mut3UD)wC|gd|F;pE#Yva@t=~KEEu1L zenNhk4~iVbdavDWe}bW5%%T*v^Hg>@PJ;2j(ivGPIByt1>n5*!&6KtvsAl_K*R0Ezu-h8Y8i1a*_aYv z`U3mKeo-~5{up}c8&*83zEkRn z3*|f_?9%_uq6am&%Gc^1M56j6F`*N$K)!~x8X~QzwX7?>2VZd-uklsYk$&fKB%7TQ zwiTbj9kB{wzebCIGtN7pS)fu0Y!E`ii5kD3k0%LqW|Qdo)F5biuxIr3MPBDNPzGUR z3`Qvd6e{@4<%_4YVE2Gz4Z+9{n@8nL&Yl!K`TA%4v9Cg}53xAlL}W9mG1PKQtWlFU zuc1ocVRbQg(y$5NYq;Z>E8r6DvtE zDdgCQq>}op#jdsp8r-MAE&nfn(|oi1wD~mIBTwxDLL>}6wN#uq+XH6B5ELnFFoP(Y2UTL)Iq%^tyzWDf+?uA>{ZC5NI z%c^G)Z)sr{b(cETv{^{W$%1K|m{R0`B3#sbq(0g$T>U_GcKYIf?-^D=9>UbT;xd2M ztRe{%$O}>zg;+9*gsH~b;nVZxKAP#r+}VST(PU;+PMcRZ%tP*myGUE={ws8{TCFxf$J`6%5zYLCbr5l^U9exhXY+HXq~e)-^5M zRT?hHlorE7b8GizYCeRfp#HTa=?+n|DWJb}^%Cq(e3!CB+UJ1Q9=0?=_PDQWggrw6 zHWsGp{V$qt0{F)hgrI5@I!yaO3!|B-QXt8r5^~0`0ENVSc|ZUqYeuMOragI1Cw|Mk zw`vu3MmIvrD)1;#(tPBM+Q}P4{FqYSlQ-%U9r#ahJ~#^)%Ma2rM`UHbScFnAq8RiE zd00Z}7yenIh?aVwc^XaKd|#WO3r=4)r2ZQuXf*%N_82}LOfG;WS>1PtjLZQkI`SMK z$z5gDhE`d-w~{jj=-qW6F|+mtgH=rc!EGqTU|0obldSOQdEWSyeh&j=7u zhr;;5>W9p8G^%!HN34!i8WX|@gb|8}(@~Bata^UcP|1FjC;FhpCThqQy<^W^lP0hf zw1T^?;P5io#m!)%k+*c$N%}T01_*rE7RndsXLB-7 zw1%h&Er5MZk?oS05cJ?43-&$vO?*_ClmKZ~MOQS@hk*Z1xYRx8($LI8(ayw)h$~F{WjI{u8U@j zVg{R^mdmB~8Y+Q&fgOtI{uC!X?e?FtX9n?u$u3R#V63SG;-;Oftj-;7X4&?GamCCS z5+rUudfwbc$exBzw5M%f2LT!YEKE_#x)niUjjna@PQl;RR9FLG+Yv!@Yizs2J)NV^P* z21Ag>qDkHkx}J(FXd!A%sN;Ei68KXW{Djykf~!b@3hNbxll_|A<0}HQt<-UfUgf!aT|th-??Di^?B5Lv9I7aLRNanwz;M z8tV(T#{Ot3cwaN0Ghc#F#fJ3>@}YSw{VXF!C*Bj~O4YtZkg{P${e;8yf*j0i{3(8& zi@G(F?D<^w+%(Vmr2u*k$c)wL48PA6}gevduOsA4bL zfQr*i56Cp|Z+{ZXT00N81DUI|vbHE#7bZ-ng(=xEdw>POyyrG9UkK0>f!!o0WQK@W zfx0qfWDEU-fmywz)ph_2pfyKBX>eB4*6ZfsJZ`0@d<+osP6#IgaTH*lBUmXhi7TS2 zBw2|6!bWN?P~_80uYr9lcroJVif50xR*Mv|4pqfMz`ObZ&+1#X&@;}g|5xm!_fR6L zk|JQLC6PlxY;9rsQU7})snZV9TY3AbF5j40^Z+>i zf=`^P^A=IrBZN0cMgkH|6pm`MJ_wNs#)~}B$eBUF(jiX4Z^Sn2t8kuR0LlUNBV%Sa zR|9JJHgYB>(u;}NirYW{5!X^Blu0^Fo<=y|q8>dJeW>zkRaY$!l;{Wn-m_#35d(CW zcSqHPJ{v9qYfahrGUadMEPm(n3dQdtDr*op7=@;_vopw;5tX{ZAO%9P1MpL82UCs@ z8+)&r$66Hl?4F*Z2D&3YK7PxTA}WHDs>c4;WD0)34ZgR@+-Q5E>(`rGw1r-c!neOj z?KBi;U9K_U@p@TzjB7yR^}D(xj!nek9orG>WwU>e3yP7;UuN=N4BnHL;uLkL;K^f) z-2*?~0Ueo8DE1Z5M_QBsF_0xAho=R^1ZHFE8HM|%jSiE6)srdV%<=dgcLZV*;xTb( z^O_vtLANf41y%4q&5<8=qfeSAA|k_i zx~ozwNd}ZD#@T^==93l2&ZNAAj(76`YfSic7Izud(|(B_592Xq;|POeI2@NC8MpFN z=t+li4DpI&K#mMhChczeG+(6T?KO6ckPS+Bxzv_M;MV-M)Nk79$7>=n-KX9EB#8vioDjV$SzRMn&9&K=xH?DeH7^MEkyqATcs0uq#M;7Bvd-hUD3zNRtZ zVb+TOgO9qO>XVgoN#Ujhz|D{L9AF@$Hj&f!(A|z%_GH>0dPl41w-yy3$^$dpxIo~{ zJL(fCn({YQJ(-WpO!gyJ7%aXgaWd+bR9b^CaQ$RkbF5x%D;zQ2g?-_)(F z=wOKeEvzbpR*+THwM3KZ6BV0dv@p$5NI0JmH=NCZjq2oZkyt3yE9SV3 zV`<2p+D*tl<=(_PqQvTMbzrlD(R{EN1ZX6yy$-)|U|B6IUCmylsyJ#9{;lnlxw5az z>FTUPT?6xChVhQG+1ZADW>h4GNTu7+8apfyu>FWn5JRw5pdywLak2588(F@YwXnCq zETxPT|1*qGar~phuABc)@w6XOgko!ZB%$IN@@;D>fZ4VJD&w5)Ct`-`lfm5NdrNT# zare}4;)tfGNUfQ2dLeM5w;BD_Q*u;)hP&YJ$R?^@gE3?KJq?EL4b zNg}E*rr;Y}&C+f~qK3%P^_&*1cA*%IK-o%aTE>Eg_FztLXk13nHk$u3)N!bI8^2}T zExNrX$PqQ+Nwk3{Y4@t)7)+@%Klk$>XlWQqxr4%tPMh$Y6Ab*C9eH|%TH)M4d09eQ zq!|BLnI%*lMB3ip%vx!qsD z&3wwdGV&0W8K3D*%e>0KGR7iRDMQ(II;~EdJ{M$}{Ldf2gYQG>d{}%4#g?#E2^qNG zs)TkSf@;NN&{3~yBi3v^RKtoUA}Xw=qpM06sks0DNvLPV((G%1D$P4(hV37BKT3Qy zQj6!7_*QW)WPd{a8{8WA9@8!$eOg99fxhjH#sj*0K}(aIU?;0C?JtpPYHPWJfa%Lt zqOIv6Qb3Tk2C%I*nIeTX5`g8v_ zGwDSE9TWZWpa-&%km@u1aW?KYh$&gRNrvO?^9*~Y>C)1PeA=^Mnyv)Gp(16h>?X%`?jcI^D56dk!r*L)sf@RcG29_T_D6)4{Ue(>xUE5un_sacfuiDhnTS zK`dfP-E{XNHMnD@iEj|POw3K6g_mN~GB6%bv`8w=*}q}j$KqD`pY2tq@nnpG1(^j@ z>!KKT8E|YpyuZNO{vI@%6L!A|9(&VLNpw1~=T7oc#SL4(s1i?!X`oq1fTIqphV9tr z5RPyBT1L=Hk7IRX8T6Phxv~yzu{--KrW5PO1F*k&EeYa$Bl^;SnCS@d?3qI*w&DXl zv#_ydlit}Kq5mK7b^)?>03-BhS@YQ|fT-N=I`1}n#TJl^2rF8Wx6}4^2gJJ|pLDky zjAOVE{VONC8*G8={t5F)PV2?~DatHjJS)1W2w(v!?ju)q;YU$_jm5mIn!Bzck_dGjSt^mG zS{(w3`Be`n%!?skI^+1kvjue-ICU$|EY05mE$qk5uMlCkHVbWUW%M-b-fgBD84i{m zEfG%A+XkF5EYz{C<(IAa6NN67F)rR?X9`A{=jId0ccB1J~SRn)Wr`LWO_r@JbP+fOt>_3SuZ9Xf$xY5Q7 zvxkbWpxm`%EIUD>6>06UFe2AzzFR(Bl-1vf4uV@ul>-FfO)*e~wsD1$k}1l7y0|nC z_BsVKv|BVtby)w<2Rs?1%$U2PLx|FLp}UM}4zfMb+&|HTwt1Q8WY{OSMujheM?lu}tEaWIB|2`vGFS=|Z!a_qp{CPEuIU z*V=apb?bL3WY}&^&&nDz5VNYS8DoFi_nRY{YyB(}i?=hcxQL1s@UXrvU|!L3M&}BC z7-JXGJV8|Q5^?ct1W+9XG^^qdmA+IdqwQ6Ys4vx|J%C%k?x7LN)YSYg_4UjxSGB$v zwRtF0e!CmfI!mU_Y=)gavu|EAPg1Ot&BeY_=PFslaIen#lt%j#O80h%Cr^1iq-%+n zRpl_UA6yws&C>hc%0m1YyH`whozQ|Dkgefeo~#b2j-{IT&-%KOeEfnTSgvWVi>(D> zY1xxS;DX}wdS3*z&skg&gr@WxwLW}%Vnzv>fUQ7orekN!c^4TJQ63QPc`&W z2xGamL@-3hn|!$@F02@>#b8-QbB?gVHOryz zjX7zb)yo=Lfh_rHq?*2ZWMt!4&5fQ%4AXILH2(mW)S!=~RgsZpt||t&7(((A(*=7Z zzJb{+Z1qnZmF|?$RG=3(cMEee zd5C^X$EODecYO0IH>+ZPO1~*1RJ10}N73ll5SYXeW8#W*m;@OBZ|)&Hdx;gepLN(o zmHjH-C;@e}kic*^=<>(g4B`}w;2_Le8c;>6`JE2zmz#G@LFDtRso^eZ%hZVU=Tquh zijSFh7fF^M%*{So1t`wAV5Tf0PROc;A79irKr9^mtAE|M3RPE^@5IvUC{FgmGFAo_S*a zK4PT+=7u5)&PR)p-=V*gX3P|nKA2OJ=2hjSh*;Y^jSER56)MgBw0X7++wn}e1!wsq zLOj#zgqWiA6BWgHjDfYwV^3~U!@>U+tDxyCS9DSJ_jX?|8)`J9tLthho`YeLrj}(J zUT)-TBW!tvx5T2*@2_yNc-B(0mh=#p*QHIyYuu_hS9TDMl6M;lR1b;K;jU~uA(9oa z3TE)YzsOpwZvx^dc<=?>V3X+!E?~DdcOf|P>W@EfKL3)CRQUe}h~^bSAfOuOi%>){ zaPh0cK@47q%wtJUA)PlmBuJPEn}XFR`!sTAi7@vHVveBP5(#%mCQXf65Cc&EA4#&P zv%5hnKAB>(g+6;KkHJO+m6@TsHp=m*WPtyKY=AHfACpWdD-jYdgvofS_)xRkdEPvM zdb|klHBXk;uL81}x9UhVgcX1O!1Zo6UuQcq)5djw+5{IIzlSAQnY-kTJO%qvS%+$Y z;lzPOG9t;yMz?teg|csU?tk69KEuCmbKdv7v_WNJ4mw8ed8ioW6(mO`MO7Cby-X~OWM}anwybQblzy4r(?f+{CT( zixiL4&#^Q_dqW~ivqqzE;K~}c$JRR7@}t#QJk|bu7@%lx15p=-B_4%>Q4^rlXIF?I z6uT}T133GDhOW(^g8$M_t!^K3?Tci}sr&_z+V5j?-i(1PL>}gnRtw3hIofx%yN>z9z5p#yC(tW| zGx&nT@Vaa5GBF%11Jm#;^opc+plG#P0nxwuKkl3kX&}UmrB{d^47P%rF$FpmXF`jk z#Ca86EQ!;)^LvxvSGQZycJUg0z#m4BbSYhY4-~|v^u0Z{kRKjkVB7)kO<_@|i>=-Z zoKC`!gW!CTN3WO%1BMNx>8>PIQ&gb#t_}0t46-HvU3)ZYPv!34D#n_G#aW);^ey^A zNkKb7hpp8GN+XtWgHFTpmL7gaJ8iC8x3{@sG%?%y0eM6&m`cJ;9CwoTL7$}ouuoIt9}&7rTluFJp6IJ%sfg>8sKK1I>#0)h)-Rkh_BwWYaelMGCt9ZG{iY$mh! zt}ISdfIyF{0YX`j6Ck`*R-@D5CFMO7A#7}uPvM__RrG;0d{uBsvkxu1@U$^6#5GXI zilVSN7JgYsm#%5Hu*X2h)eBq_ik~1_UDf&z(IMed&-iO_8f;fBn*#y1J+eDw(1P`R z=Vk*^9F`rmQ0jaILE9ZtmH^}+qS;9i&H(mw{oakBg;vudyP5EJpRtAj65`SXMLhAP zJ<}d@4A|EyBkHn71G5dil{Dx%Th#xcWZ0A1`p7387`*rbkhK^t+O6RHV`ai#nCnt7 zNY-G&yjGQ@(}6d@G&NLf`2HUJT+X&Dt7(bRg0bFz74tG`rw3Yy8@LEUF;o(8GtO^Y zSuf{86gw_s4>L*7@Dk7jNEj^uuc-S)m2&?IYw}4r*;XF1QkJq}U%O@3(op1t{_7Pu z76=Vn*Zf-%niDIoVHcfeR!&L^RC>RxDz?ia{HQrV-Iav+y-VgixP9hSe-jM82*#e` zK`<>B!LUtRT1M}tycuF+9coS?KI3F8C9RkUl3fup!eP7x0dNl!;B4QgvNR-Vl8-!t zhDTe|XN`)26zW@x2h23&?@XDPL%uvIn3)zZ5%5jt6jO%r< ziy*pd6Rq~j-12$F=@9tZDW|mS(-pd{MF7!=%^&BJejC0lu+1!h2kFs`pMa)qIsn9x zlml*XqXZ)k&3PLn1FJ8KCJ9~MWLXo)!~+lKqfDD>nD`6qcm<8HZM*}XPeNfVp*yrC zu7IT*<^-6#?52Z_4eGBUB>m(!kH`qIj^N)zQmQY+*-lx2qCo5EM}Qo=AlNbfKT9No zc!=jcW9@I*Ho^kDYV)X1HZlcn3gM=;_=W34C6RSSTF6?hNOnx%Ma?NTQ^S$9Bu`zg z>gdlFKmVX7dfl;e8BwC+jon|wdD`dg#EUFFSHLE#(D>z z@!m0`S%N_+c&e;QPF{+o?4w@sVr}Ut@^Y~K1`Vw=fO(hi*-VPf=waDD{C^4V2dRrd zxQB;Ku_ekGhnu`!MawYR&DHLeR{Ao?tRLhaJpV>;kk@YO8rJ2jgw)LfX_3NfAtUL->kad&s+ZD; z@b>y|z`dN!D_oPqIfAoTJ1sgwrHT}XTDHgutRlu0K3AKnKt;qmQPgKb;t+PkA7r#d z-|lAWdOZNW3y;yxJ-iFbIKv_C2x=+v@*Lz?id)#i;5xh2Pq9?GR*l`;YK;8Cyu#W; zOqIKN7+#oXL3}$9fvTtQVw;ffeWMYrwAas&oBR69xH%=%&A|1A=;dTG0b!g{Ah4)U zZ&0T~rscBhPX@@Uz+n^(oP2!tnAFr0T$$Am2YX z7atuTML_T4v}|-TG&G7o5drtvL$i7iodYT7szN|03d4F0{12=@kk0QX97BIDTKU zj$u`?-m5*gs6W3)eA)#hjj3W-2%1Dj1E_z zIK2Jem~4PvM#G&jRZE z>i0-e7k;Sq9IdVZZ06bVXb0YR=)Id#1zHb-#G^$&Zz&Jl4>5S|y1cA_>W8{&egmRi<`o(*%%u(ya9ci*l-cHQbF>S~ z3FCJytJGvNB8IbLb|JtF;t`0qa?8iILZK^x#H%yjMVZ0B2|j>+UVDbJX~onK#DjLY zOY0(3z0AU@Ghv-C`wvt&e;#e}Ez7CPYFVxJz6goPK?hW8#oMrDqbt^~R9Q(p=`cwo zdy;r}b=F!q9Xp)Op;koM6SXS*!Kj4HHQ#aT?f0d$mws9QHLZ>PY~QE=*QL>%&>@uB z1^Y7?(f^@5Bh96x4{V!024x3TOvea~r9=qX`E=E3HxN?Y4!XCwlK;h5`M07UBTF<^kACEXMNkU%6K8;=h~r3%W$&p}lH!A`=J zae*Xendlbn?J|wYmWeXxTfq;i3vDLq`<77~4Cn@T9dg&}RpTk-Z?+5@f~{pAEB??g zS|-|SC&7AwgL!xMG6SS)y30f2Rku1f^vg84FgMBUt{c*wb=zKf~eB!yH3 z0bERL5`2ih+SBa2tFZiOtiCJz?5Fp;kKs8-^x&3V_p$VC^Y&MoxJxhbq0u%N)zm z&4Xj^mi-BPQ^Ce)3#vmErh?n$ix%A^D`L91p1Oj7e;RQ#M>K4N#a0_+O&!~~7pP}+ z9%B?dyeyjK`0#>oxP{;_D znSM-R&C;51%Hm^ftKSiM--$TDY7dN98=Mr~GRtLua;zhf*>D1P$&PPsy4FpLY3#kP z6dHVGxoZJ|L|rQYAXsH7$>C5D0bSQG-Qe$2_;-d0-Kd;X4A1~tVnDIN1(yC+mP_IC zbJVg>FNp=xuK;GzSZ7Ph(rkyF`HfLGJfZ>B@c$37BJt~KCZX0qMJ>QeyJ(x~yfh4IO(|O2XQ9zY1{}Il)PHSDeA=w3zinR#C zzxAD7+k`91Sejig7MtyNLT!nbQ3Z8)sDv^Zif5#M@g>pqfs!k`(j3^$4nnYRGCA=) zn`0~}xO3H9?kH zHOR>FW*7#e0G3itLb><#GqKX+Jm?DWdYxjno3{&wONy-Y03yk=PnpL$OljXc1VEe! ziitNZB^C4dGwYq-MeO)7;vO%UFR%}LTA`6oo@c z5an~!!r4U?7_T79w#=okKt8$uf>ITSjzR#m%zk5cZa4~ z7)!bseUhyD+7#b=nXda+@nt^MSi#4lan0iqdmlRg%{*Q&8ll*j5$~{ySt+fUE@qco z7vf2zZ#<_cs0FgDn7V~-m%LPmTEp&xcJt0Ig6$l>*9~U8NfXt6r+sGNgxOX%%C`qX z7qQVcL`E8?Gk@zVh}ZiewoKfN=mAKqXo}1Hya*MJEjOGEAvsH1!|ym1N@z-~GTfAB zdMAZE{VeQkB^cQl;Jp;ov7R|nnlH&;HP3YbB05c*F+CFZ^f{b7Xc%G+;93(%WS!`C zY9cf0`2Rk(PZJ3cW9c}1rBa_ZR@5>$ETH=rL{S1~`hjQAZ}0Y5@P5_DVAPmosFV{;wi zXFrV`N?02a>o6q~AnpHBl4Kt<4@TrT4~38??Z%Q~T91vUJxZFW66d>U^K(${3+AWH z&#$-@immyxA&7XUOQcnx`Anwvj4a zx0VLre7hoA5M4`NJja2HnA7dvuy32N=MV}~Jj>KTS$I^*V-ZKxmu%dS1g7=+4w@(> zn(8}OkVIucK43rvAw8}Xh5LQlE$BIP{3p#mD%;s=3Fh4Q#>Mm;rnJ+g`+Xy3zMh-< z3vv+T19v}Ul;(Q3`P!J^O_Y8^q?E}?DUX1OUck4x4=`Nd4zOcCg+w8261TT6Q8Gac z_hktW!dXPRaw(pnW>=}^S@s!)!Zso<`6HIC8f${(u!LR<@v4TW z?K(C;IZkV! z@Vn}N^f=fkq6tZX)8p8ixSLbm>}DKvF2a%$@2a>sOIQemiKxHb_B#bx760@Gt;_Bv z3b{M+T@_J(1v{oU$Vk&X4c<_P+O&~^+p>dmzieC0Rw5kQ1RYdrl|tQfUpHZ)Rl@ z%&4~aDJ`#I$v(1u&jc6UXyTg%<%4co*7RdMMGy<9e~ShVv&Sh80gJR&-7@{#Y@!3G zf9OYBg#F;T3{zu3U@~@b&60Z{kMU%F`~m&=EqpJRzK{w_@1s1BUIV9-qel#Y22oG1 z#EgE$H;vkO;{kqPn<{H$5X*BMJDC9cf44n71pWR3*3OWHkBm3S4gPz805CX2=ZVIz zGC!In@s`bb{xnkS>rfur)XNH~Q$a2018ubgsYmXI6iwimI9gx68?2;_|wNUSp+}jZ6P^$h+eFVdhhbN*SSGedLp; zJs{uN`oL^uc@Lb=ypsg%cnA?Oz#}K@SkU_$Pj)6bcFp18J|n8Zg_mELghR}9P~ujY zXd31vEKlipBF-!!C>;==u!u)lTrSj!t4x^9_o!xYobMzoF*XdXePmxL0L!R5hNlPp zE;B;28;~-c(4Az(Mk`?~eZSl94}Ehtb##n=U?q;!P)W5oHXl-Wn*sG+-#h{wT|8G^ zV`GX5q;VB;W*hcLFvp!jx1-6oZ)JIMijq^r zb5QK0etVFN#tFgf&h{-HHJ8I~)t-e|w*;OSWXmXmQQeAWcmIO-0jWQ}tk};{_-$w>7-ct!7#fdTkWlrj;H4A{r9H7j zIpcP}lIAKhMozLGJvIFQvrji-M&**&hI83b;w>% zmmN41Zn8@=rw@z+7>WFCQ-t0Q#$ad23yI!PY>&fioesZeK-I;VL>?HTGE#JM%8kS> zr5D(c-lqwQG6kZQ9VjHkR>dp|f+;H$pwl@Pm$P%sD-8<mAvddt!1^ao0gv?t95O6>L?zT z2`bk8yiA@K8sE>cPl>~0U2RiPxk)_y?z=IEHGb{EHu=G49be?+U$+WC5ush}sGvO_1UY#^%qrza3P9W_59*s8!muCfI&@}I9BfVp zPH-E|!<|igL8pV6N9K`|%e4^!jSuB(s+M zx|9=X19es1{IUqEs>T4|fW_N8=57Z#LnK4eR|#I>`b9jLbnrO}%0tFEQ?$>RUo(dp z;caq@K9)Y19Jy^;hN)@Cj|YV3(HKkw*M$_SRR9AL_))o&`N6USrxt#&`>rs&F-WkM zx7(YMxBDFg5rdXEI7+ChV>)mgCdH`N1yZ;Zp<3A8O8=6LkIXqqkN`CjlbtTe?}EA9 z1xj#Z$yI<<<6T6ePgRq}xs8~V(q#}Oh<+bA0A-q^FtV9>-bpk)^D##yUMG*GdFwu$2t%^!c>UK5| zSJHPDB4mmcA6P;QVtvzm#S}Ej_-(+~LGl6aSS@{28Wdy`a2GMjW>V1x6h1~IXA{7F z1$Cl>qOCL^Crtk&r>DzB$RFk_=Pfr!Gl0;C#wQVciG;lAeU*jI+;3V>gtAiHAl2^> zWyFC;rfia??@)j|Bn3eD{|u|j-=@WFgZO`Su$#17<6f0SqZ~ znbA3>*V78N;c3=UxS6LL#0Xi3Xw!?g{rpm#o!jyH^Ef@*cL&4|cWBxS=?4Y3s|Xzs z2H6m>bE2X^yERw~Z4H2J^SLm9r&FfF1OtL90h42U-ai3EfM7WB50EzV7Jj!mKW!mWP$#u_8}PP zTf4wF`QCyovL;FcOA$%ZvZodMR!98vsHTrwsid6kvRa-bl@&n|D+1{j4aZ+cT9{re z9xfJhHch>(*JN*~uNNV?E-5*t1uQFGkmjhDQB~V3zXska@H3WD6ecsOHzCYdcP6-FAV(wQ3fev#wrEaBan=m6s%)q0G2Ipzj|4lH84jl7NAflz z(gOYC(vBFtA|8@Nlm0I)qe zcwIT9c*uEj6n9Wt_B`H%&6=-y)e@(nBfM?NzUFCuiJ+{gSTFRfS(?l8o0&00(l~;+2sYAozdMI2v&QShz|Mu%{R(Jo2jV5YJ<# zQecLU;74!M08Oe-i0#zSfSC)Z8_^SFRmPgk$PIW`$+QEoi*;8LC{!A}1yq~%1f|Dn z9tg@`!|b7|%IajfXs=$FQ&zhN!paBC{c65!#izhQ$E>~4r&1oNPi3AL3y0J5=tk!= zQy0yEZ0ffo3`wxgv5@_H%su9l3{n}6fg)GdexbFdICjAE4{W;{d8X)8gE)Jh57D5B z-D5i^tgYB6U`Ssz>{Gv7CMS`|`gYP+!XZ+{+;+waI#U7Pn z0%&v=dF#o)3jd65r;+>e$Kf1VQ;%ip_1 zkIfl`am@6k1TuSYAdatwVSuY04~Y}VV(gBKXg+j0ZNdqD>kuO+7+^Ml{X^wcAG8=U zDJuvx(wAY3kO+xDFZm>rOA)V+4^iwE0kD6sKwg|Lw0Pzr$Pq!GQ8sK@Q z6PZjepo#$2DiyH1Q*oEgo-RAQrlc^O|3544oA#S;acy*N8pAQdWA4L$$hGp<3LHz)`?E%qLVu(5gmBvbAUw z=^)6H(SPNB_9pX7<~D^kdIRScb!1Tatq}z`n=hH-TjpDzK&a~LgL^7yNCvbSlh zY%LUi)of2hl|YUF$`1wr!uhH9CJRj^IvAjo(A|E{oLd;`_}LJPC(V-|Vx2DY9H%2% zuxjYfMuvZX)qnXz)~4t7U|blnt}GRhz1&c<$j*g?DTQ%j?I)tD7xQ zR$K)!A1U^u6QCEz@Pkbd)m)B0_X3l*z#9=?A#Ym)@-qmE!s%qgBEjVb^B@o0+{|HF z>%HSS4Iy=yGiZ-y8!B~H>1K5V0ThGZ&lNFFC&UU4XhNeYA~yF^vxaQwnfu#JVttDu z-@xp+|Cmx1X$ewkw_cdJUe==!YhNthf-mu`pVn(h?6+i%%hJqX7}qWfid`mX$^2x{*_VMPP9WPGkXK z_SNOIwyX;4&tEGm)`SZn4Hu0CRKWvWUDs}|zkI>WIskB>Zg)>nj?~2$&!a?Tc~JLZ zBMePFz3ks%f^&ctBB+vZ;7%q1wy6ds)c$2Wd$kI)M_}M|0`LHFw^gY1?v}tFn#&bw zr*|LNejea&OcbEdFMqF3NH-(E)+TB*M07FHjq3ZPU{obG)i;aD98-W=ta%3yoRJ7H zkBocN^cY`3ZdVW_FH7}1rHDLa1Y!#70g(^Cj zvW&95_{XPV;>Ct~miTbaFbd~k@lhD9?K~T_!9rrD1wkK}2DMHWJfhy$%A~&_!}>q- zr>=l3_JoaNe1J%XEZMaeA$r%9;uU|x3hGUkYn|QG@tnb~Y@FvcC)j<)&MU+Pne zJhaL+SNQci!v0ya(<8$+kto;&u8B7CG)l&HZ*^D8VhaJOMBz?cXWrSyXo=3BN#<>O zqrp~(A7sju1^e?fcuRH zNz^s(?E`SX*k|wAC^}xYcGO1L&fnE!=z1iCWdUINC`qScP%7&9jW5J4ox>Ngi%0lt z@#Auvu}mdKDRz`t&}l?m)rX-BM(o6 zGoU2@QSqFr^P=X3Me}n3aw4sMtDe9Y&*+GcSY;AR1orZt! zv~>KisAnZd1)r5Q62|hb2q+e_#9ZlEv_~ZB*dyv=F0JY%60D(=E}}O$clAD3XqM(b z-@{Zvo^LChukENYbpk+UNUBlO6|IyJBSWTa@wf3xZgWXjKMqVz+}gTr$Lu^wYk%MQ z2n%uH{pP;S^J#F)Cg*Nn4BO`?nyv~$K0Etgg2Bu#*63}5+eEFQFOeB#8dlG!bW!02 zf_^IaRve96%!t~*yb>5WVd27rH)5~Qr$KQkD8oC9SS<&wf_4PkX^6NW>@3usKd1Ki zPsqo74!`9q$C960w^TYQcdu#T3Uyj7`5smrbsf3ZwoE9>TXkSpV10N6C0A$aRA`Jk zE)fi6wXCBBf3!qP*Y!`S-!kdrJ1ymkb~-uZeB1pv@3k4P%QhqxgFo1!3tSYVO7)(> zvheE-$hmowwCUyXeR#W6z1~F#Gaupg^VPSVZRmy$OC=kTrz&&OkZwlTe1M6MzW1KX z(M7-*F0+BZ-aEa|GL!aXdz5{~=5>+|(SkH-YX&-HLzu988D5#z30sSNQc!e@32-iD zkCs1xY24N)f!8VNM18#!B5&a-)8D+^fQrcln5)O zn1kj=Ua%h5@nlmi3>yG?!rRM8%VLSkYplR^oD9iX56BLU?MBeP;UJb_ozAY-T+gu_ z_&nqF9Dm?FEB8+y!ec&%a>4@DoU&KZI~#`w?*f?*{21XN$&k=;#;QRQtz1wL>i? zNRj<#l*R?5$S$bzCjNlbK}-y7(8n5@4joX-BVI|T1u?*{qSsLMm|Lmwkh+==k@0KA z-n+-V0-n;R;rFkuX^F(NyjU$GMJJaKOf;({HN@+1Ek`fqqpd`QUa2h| zA=sLH_3>I%_EqwZ{0(R=GsmvW%Hq)<34dn7y}e>$n$X?*ag(6=yBQ4Vbig|z_s+b` zZqzqdf&=e1luGCxa}((1?)?0sx7vN9};B#1~0 zAF~FHP{MM=_F&yab)Y5Ji?doI@|k*e{i1P^B^L=Rwg}JG&$YxHsDt^ZUw8&Kh(Ffe zS9TrE7_-QhVl1&DD+yw-Nw|P2>E~uj3EM`G`Vd4+A z;%K+OV6U~n=!9A=5JpDPrK$qrPTsK|lzxCU?*p4Ck1uh?k;Vd&mu*L^7Hg$|hOd6bR06K52)V!#$C&<_zl z9P0Z)@rHSP10ad{k=au(4F6ydoL@cH=i%C#5H0DXkjq)gJSvK{1p(W{!_Zu-ig&Gr z8CG^*iTKTa5WVXq-^$g>t(NS=pH)CA*p22$zErT3?HgN(UO2Rdo^ZEEyAGF~u`w1gn6VFxrR?mO-Wojh`zLWTOr=3=7Ck|(z zZ+v#vi>Jv8WFm0v*jVP_ZhX1hzg)x*e3nq*AZi6}YXW52Z<_f&)o)IZ=>Wqdym-kW zFI&0Y?Xokxyamaz$l~mdNzolI_BVPVz*p|F^*jAr(y&+cHfmb8MT8;9(j{0-m`0_U&@lz@X&WXu)d0-IwowJ?%bk@Gq%BL(x z6cxH(5XFOOYF@90ru6ELFv{w#?5vNmEOzd3~q3*RgX|`dr=UFDc zYOMn-rF;HsR;$+jZ8&SSY`SqcZ)Hr2Sk>}2Oonzmq05F(ij#FO8kw+F5FM(k4A>3r zzMGR`)@dIg3{%W%<93VQz?fV6RK((!v^uT($Qp5@L0gGVbN)AJwmN-D2@zNTU};tk zKu_cB8)CYwoD+rJOY?L%S?uqCZx@o)*|_~w@vDnj0p=XLUULVM7UeCO? zuN4#;Rq_&Tz3f}h@mkk zO4b8lp0~KS^?VxaeD522V^n~F;ZDBI_JAr#CTiFA2s(8;<53*$14$rxg+q4tf#c`- zWN&}7OS_Td3{o$1uOf=ZlgX5W2uu1*@_~JJZYE{a%6`rVB224D9zr|5f?BG15q|e3 zHGa*Gk05}((}tHq836OBs_SNBTVhElKqy{A_G=&MSTWB^nd<^IFLID2;_uu`Lv9+L zVzGl^REF-1VvWxNr0Fq+^oNaeQ(kPhySu&G z*hSc)Q|fg>W`R1+x6KH}ffpKA#2+r->ck9cxb*0tN^UF6Q|0-+q(9o*r4(2V!)(_7 z9(qto=oM+70V46f=M1(xP%#KvZA9Si#hDf6SfJ2HQ(Q!!7qE~%$z+d4T1RtBp#`_f z{;0V}?wcF8Oay~yTgmW&p`en8qxTvjHH2Ni&bu&@*h*i`vCVU?)r1Zp`|n<5k2tMf zFb^WCt;l5~Tq@)opR{fzdwD(&NSO$(l*p``#b>(#86~oWUNj&#PJAGs^FM7zU8*~Y znt9&7TA>kP?zegX5pyIP3gaVc@7%OWMGV*aZQ~EAnDS<(vk9w>qdOPau~NRR^M|d@ z_WtgaR91>*`)<_?<>~f0s!Jd-2e*8ur->Ma;}fvX0mM&takc5sMcz@JxiLJXdWWKJ zG-fb}lN-(0?e9*_R5VvMQL{^)B>wh8=4&gSTtH#AtG21OAmrs6RJN4nspZ8L&GlPD z;T833**xnNU>$f~FUshcIV(67Ru3;n`{C^ zz-&Y+PtFr$xn1#P1`!B@fGH_}w5a)z(NILZ33=;SZb7v`tbY=W$0Qe=_A@9~L9+1? zm2NQi9UZE*=M;Fi?%vExCNFkUfOT=%C6RE#2L&)xtXFPj$oKifFB=C<5meo>}uk2=6NnE={pf>bgFX8&Ix?+E6)sP^oCDR2P#jG=sJHLAe!XLU=upRe+ zfv1HzaFD)m8nJg`o_W!!x+9OinyB*p4G$UDb<#04K?^ffQ4fbPeX_-LB43mDK!-0Ln5DuDhSj|sni z@hH@1VzDO3YU&^Rf>H$l#tMbz%ROsXOuftx=_;MMI?pmWj9#yn;>0r+38vSBeegEs z6CyJX4rn82G3&-`!6Q<%&J{j?<%9>3ogBw&H!y<0ObQu5^spjV`j_GY?N%kN?d*_S zRtRei)Vgy#EwoFpl^Bq|`2Y3iIM9iJ%X@G{MC0%Z^PE6&b{IHMIXi&`h2t!O%lN`P zK}U@CcD6}3(HzMtHt@vkz#Z% z$wDn~zba1bUt;>a_M9U=gc={kkGb^8519|$a3>!h^JX6-i2%zWL^8O+@3c~Iqv-sF zT^}7}0TU>nHO}Q$R&{eAtZm)ZP)+LI+f*jJjX)tQNJk(2$gcnU&_E%DAP_66J5SLs zp<&)`W?PQa!8>s`83%TB6Q!O(_78hwSHOEiMgtvW9agvZM7}&KTAS0^1W~e4o&lg& z7yRG>7aXIFaL2&p(6&%6C4<8M5&QcJ?EN_M;iICiZrjp_y={pmp>R#M+pWE*Et5lc zXm?C&NE-iU85u%MtsaO0cATlOz6fh*i zC#VMeB{MvlX=_9=I7EXEEwT=Ij-%aHXRF#7GX+F7mgaMK^bAB&U2O+_S*SuyLf)KK|#$cIE6r}BaRrHfQWc{TVdm?5>xUr8G>cCqh=;F-P|9r6tzx$LozsXMGpuh z%2_puC=e+dfv|-7rR3_OtQrP~Xm&-!vE@Rtm4mCL_5q6(g)c13gpp3(kV?=UO38wI zXsmFlzwnN-&>=fRymaQL;LjgYIm=B=fIM?{hG8%(-2N2B&ew;Gx6JdM)^JK;FE4Ci zRxMnrwym`Ohp-O_2cbECQx#vSDokg_ATBT5%0yG5xGR9GE-72B}J&D zl1fskc2|{aaqVT73%hJrdAG}UdB7`XG1z5;_q9yZv;hM{gKZAIz|aN{n@wZp^qezi z`t&f(HqFv>Hw|uPj^}s37a_?8g(5TJy%&-1yZ3(gyWd^@ck?td$_!(Z!6E4$DH(er zkvEeZ`-pm6$9byRa-o4TB9t;}J;kAjCPG!)4|1@6x=E#iZkV(spc#Xt8(X-0#WY#7{6Y0dUydame0lfZ0)X7AWihAl6>~Le_ zAP>5p)$O)%u~X|P_$}=iUE{SWMGryLW~F0U6AXg?4`1zrXn+@M8{t)~YT{jA)QSLl zA!eHL3oVeB-@ytIS|m~?HKHu%5nHH^h{|)tfLawGwhNJSVFzT_{~^3)k9_lDE`J3k zRVzO5r$^9E5<_WzYC93FQD}^SpJ}2BuSo+#*SrSq5YJ*z6C0bBk|FU;7h%-I=#p$M z;M&|MXcFS?z>W=m3N&WV-eUAZfkSv`4{@DTnwz1zJ{G^REU5cY-V4)7Bc9vpD|C+c zsY!srK2Clyq|pWm;D7WfA%_7D4OrKZilK`8NP!NDY>~*&jGV*jMjjg(E27k!@G(*C zCBI1vSwndp!-|n`H<W$Fx#RenY_ zUuk3Lr%AuSMqa?KZzrm-3QB98BYc7Z9-Ldi9C<6RgexD#GT4L?cHGF_b;rXfV#V8V zak#O07I{3DM7<=b5dIB<3ntzF9#(HbbKFh2%$qL~dc(Llf=d^rs?!Oc>Z-do=Oe4( zI>!!yNvzh1oC!8GY`~bXlKH5Sw`Wtp;!{IER)jh!esEITj_v(yus&2+MdqO$lhoH4yBI z5TavnJn&8OT`MQ8NIuuH;AslV_wh!q`O;Ycrl>MoZ&>|^15}K951`0w_6#M^R#N^1 zb{feoV_bbtG$vxRVO{1#-&ttrk|+wtFpoMpP-`tejBu2*zPJH?b9}Ji@EUQ(M%-$V z$xeAY)jzlc3uy{Q&^`RTcs&Vzs2xA3*8PxjI`XU4j5e)3N(;o_N;}#Hip-V7cbplv zeG=7imK-{D+uCt*G7LLPcXs{eXs|Z$aZ5%GGxWp=Pv~PE#b(BiRM~|Uut2*V2}_R# zwkJ3z5`ZEF^IQKFU*&Hy^Wa8J&I$>W=RyuF54}}wFw5XRvV#8kV~7BJyG%ar|CjZ8 zo*l&qcmdA=pj_fJp%=jGc#(bUZ}HOpOEH=FMiF8C?cebi?wjD@`wBUA7kE6R{%`a~ zkIfNt*k}T~Lx`7H@PN>)eE+NXTJ9g@M?6*OxBddp-S40+Zq|QcdB;~&Aq$7Q5C?(q zd^U5rg{uZC!X;8D7CwTpI`u4l)cGUm-Ka?)XA&w6a~De`p&W*)DUVE@LuUl)TvJ6t zeH03rH*J%@k7wJ1(2`z&YI43Rv1@9#FZd+D$5`~Z!W*Xx8~1Z)uAzIBbsQI!Fxxr7 z_gtb6W12Cg#zJxPhvgKpESx5SqFf^`N)yL3jJA>+_O#Nt!nEa)%R{M0DDuucs0E)F z_hTa$%qcfN~qYU%|0N+g@KsG2B|q#Js8*Qi`i) zb-N6xth7$7;1G&%I;#ao_yo%|8&`~6h`i?NZ6-n^vH|TUQ7Z`u6cYUzs0$WF!!}z- zTF+tExo>b}Ep_`bKw0Vr7qC0i0khZkA&Jl*fM;_@CA9hoON$P;eCW(1!U^r- zaXw}ki_x4z#D@tT8^bUf+0Wy1SfhTtXFhnFNGl_biBw3v$t^hJzOy<}1|>Gpm4%dn zqM#NohZr}by-F^H;nkAinnLqW2{dPk!$CMnOE@fu#M_}QU8DbOlVBovol>!Xi!w7Eii?HW+}_^wQhqZ z6*x#)WetPu8nlVye;4%&M0QA4AczN1s!Y$&@LT_x8TxA^c^nshqvTnEeS zEXSyb<*HCEgettL=&RszC&Ts6BQ%oq@v!>$?C)~P0)^LI2n+T>bAR`a_ayrR`URW2 zzsBDW7HYF6o&&)`Xmg;)UJkhhYGM;rLP&*p%C_3*m8k=|JDCxxk8J*>`d5%c^QoF~ zpY`obXWUL%%@-U(N*}+GmFy+1_X6`%jcBoz<^zWgf~kM5HI7;*Kd1E+Nha?eVB3_v zq6N}-Oas1N9}gcA5q;~=h`av^3#H8CS}O{pVJ(l9!Vi<9|H>p$@8F7W$F(Pvuqy?iYW!}lEl83j(Fe>)hi}F(q)kXpa*|a`flU#KaOXOx=Q*~DDYWCeKIKqY+;^K zH;o!W((6Q2-dIs%`#1t|54h`02tWw1a7f7@AL5&=hYyiO`YMsu1w1cVJ%sudi-&Nd zVyHaJiXZg@<%C8;M07r=-XL<|%Ax6Oc~)~;K28<@d|n8Vs>PiDi&^=-+zqo4s&{3l zIs>vy(1?uUUV|tVy^qB6EAVH%ayX&DQq3wn(QNi&D#4uilr-*Mqjg(AB^NzX`(W3< zTx~nfuF8)!iEQHP7Bpe|MI@N5d7qyEr_0orMJhnEk#pkjsc1}b!HHokxzX&SNL*2I zT7(8@_Eui4LowEUYuG$F#iF4m8~A^2AqdThbS}gslZm16log-Za!N@#v{v(DzF=ILq>jkAz{~ z&w%k_qXuBa#$uu-*RTa)GYD8#JK037t~@b+k0zh+rH2@S=yU$bJ(UOuBVjC}w(9Mz zjDvx3yZl4%iLA@8JdX>OCy^@TK~g{Ts9y(d=>3cwuo~@RlAn%`$BpeAG}JJ(_JPDW z$+ly}_T%jYZYb_Wok{&I@tm$RKr@bQdsA5#6mg@x)4JEG7KxlC_KcN-Z2oa_;UTUf=-+NciOm_zANkuFKbm3@S+bK;- zJZD97i-h<~7M9pJu_IPtk{5c<+iK(ghWYF|z=>D7EV9nS>s`pupkO`UB3{VCsOqYiYQp9@d%}|v{%mSK; zZ17^nbyv$nO+K#v<$>R}?4e_y84@2M&J)m(3=R@2cj!dE#l|z3 zgaX*rr`#IySl9dQ^_VWuWXSYLwS9~(Le{9=w8_PGpCF=EI_@uH4gfDb?5UlzIu#Yb zQvVo$hUBA#R`-P3p~)t>-D9KUSZly8UCO$~_O=~$4!qp~N64$i%T&_g39W59PvCDsG0-A3+EB)IUfxMPpo<*WA^C@p z{)YVq65V$BuBX(`ty!RfG@(hqmz~kMMusp}vDHplHOa6ru?Dtd?gce9ir(sINq%o+UEa>gq`#lo36F zC@iY^vs9Ybp?*P>J%;kxiKi*^ zDE6GjR!*(0bz=d5Qt19TI#$%9?O?2S)jH43eol11B6aqbjWJGaqeozsGvbgA)Lqv` zep)r!*v@O(ElM+XE!(20(Oe|M({}33)@K#jC?W-(yl?RpwnZ{2G&W# z+=->yxMey~>e64$8dyQzlpTw>=EIvw`$LV#j}&=?gG5l=Yvf`9@0#K;xkQLdw2W3V zt9enAWd_+$oHG0pTJURLaUE~m*%WU+lMY#wpYBYPNbENKQ6`tro7bwdt_Jj&p3XLlQi^v!F97!Afu_ZiE&q!)E3Jd z`lX><0Lsl{FW8E#DDg1oPMD-FgUE}+KrAWozJC=h(}zYgd`35E`YaF+hR<|akqHHh z5}88<)>(a$1qXtlY-ExmLy$vES&<)(a_t{t`rgyUxY{-CUGsTC+QA2oZK&L|^CleS zf;Im%%gy^pJ7~J*D?y#a5hOB$GTw;XZhH{#Me+4tJ+ID7iw;KAP%k;%@UyOA6=7=l z(Z*rcnA@+%%D#_%SU2SocO)@2@#=U1fytI1bQscPD*j8YBWe2h6+_p{n>Vr9%uaR}@8s@dc(XDli3&)PaE%knS zr#l1Z=pgX>-W%u%Ms(M?XRmPLejF2ei6@{c@<4|Ky)&|Rfe7Y)lX|T!z*%#;He|#M zU9V_UzvE2EJi@yWvUtg-iiR^Tg5ES(lc-Fj`%iqG~<>#%To^- zp;!^DCPb}igkGXzxNZi?G|?)=MMOqE{7KQiUG1GS4S@@uvH<;r+ECLsbYRZVvJMf$ zE2s~MyTny-b+U!4J`4Qjn?RGMo-(#>!Ax4V6xsg_w<}w3?QG$7g8xt)|38F`$TExc zOxDJ|qS^3@ev)9{vD=usTxVmfl17}SL|x)_tm1Wiq^s!Ef2W!QBo}6f)N?PW;L=vv zGCWmtUC03MA%Z-ojF%$}lu;uIb9v2wh{PHsi?Le?g=(6;b&cwt((~4&drwkldYQ?mcldEAT1!M#CR31xX?gAzsnHRlmXg zTp*|MHf(g=*_>OKnXmm#dP<-qYw;Itd0845HdK+PmW6ukNCjgTlE^QS3|>{dfij;h zE~)nnXy-viCq;`C8W1USwjZK4`K09x?6>sD7#S0UM_QzOkPKq~gk?v5r(nBf199~j zo5-7pmRIUcRI^ja`wU@Wa+^Lay_Gje30z-qgZv5PB4N1FKu(x44J&!8e#N%mMQyoI z>k;*$14P8mr;!gdxW6quCl1F1n-aWT4KIwn2@}+kK1MKyeorUaCUdD!W7FDD=7lUM6DRP=T^-mR?(dj&(&AQk-V{0tL)f)m&gg&F zBoma4A{qw-CnToNL7Q}{An!)_y&7EsO3wtY>K?uvJrmz|BC+#!9EYH?ZSM0C(vJ?= zbUaYUo0LP)$-^;ajhFh6|3rM?YcTBy2G?oqySw4!V=|W(D~+`|&)YY%*YGmm>%%TH2`332gGBT}A>tviX z3u$QRkPu&%uAtu7>ixH?+s|yNH>eH)S-c{fKqnl+IpQLD>*NBjnWsO*w0T7J{v~u4 ztpgZ`tA$b$Z0LET1qwIDV<#ggU3Y23!EQJjQ##V1`6l{6MnWB;*BNs-^%P@ik9k7kK`WIR6Rr3c;aFZR_n*sK<+5@X1%5LlQ1U$l;ZiQEkg(rm33 z^~%XlSSJ_M=UFW(VXwZ7wPU75pBH*)??Yk@w?*10xj9Va)EM1wfF9UOonBRTz*vhO zVgGtN<`BI$9V=?$umsz%k#s}MNE=xvw9`zP%+ybrzFR&7CXZ`}KiIdT@Mr1mO_GEO zb~`St=8if{h~enCVK*C5Ocns9zxr)Nxr5bi+vKJBU?!2rRt>UFj1I*^MN2p@uA~*H zVMcBq-cgVqoE=dmLLk0-p_N44B@* zm+vtxkEoL__0)R19MkcIP_q3ee~gEk096Lo@R#-w=4Xn|Qj zZL39zC#4LV2A&hs0Ae{K*Mv^#g2>sy1}5V?q1VH<8snAZ>j-37AGPR-N;0)reWv*$ zG%HIlsgqDks%yaGV%?tgf*L|C9zugk&dgDg5RG4)YA=?f)KgZqm)TqFxcjh?>vChv>*}}*`}8!etvPCJskhPx1wb3Fy??G z@$m_<@Z9L#<2Q4huBp{+w%dd<+%6N3ifO0OzW*ud|BOCmtO4qeMlpqy`6a~Y1R2Y5 z)S+SGZa+m*$Pgs}c21-5!?jcr+chEb9zxo0Faz4Ou_oPz{DdIu3IaS14ZT_mX5v>7 z^XKsg?qk3B>Uvf}l7%K+dDRO93NltQ-yl$}Gp3M~w<3?VN4=8w{1?KCUe@Xc`tnIp zH~f~BNmIAdYN*HGyqh7wRK~>%m*&R$1m`I|TLFm4n#u-i!u zqwkF4&~`(L&4+mF%|tA*DS5DumcTLXu);b++dz6HH8uss{-IZ4nSggH3Ye{v$T^#E zTRKtD2@n+TU~r)JM={_}Ebc%Zgg!9$F}Y=plIjzZs|co7#C8N-@ZU-DVxe7F=gehMA{aWrmVNrc`OlA4kD&pGKGpW zP20IwaV3}YAqc(@!CcI%c?H4iFR0|mM`VACp6Bil_nR6}G>*1+P05qNQAOPQVZs4mvC#wCR&;7d=HO?>HE#;TtN)!`k@g zXjAQELh=u>jIRR_xT(It8Vd13Ajlx!5vhtZ53j{uOp8}~8kxXEv~*aM(IUT1WL!`( zLaQRCSQ`9IsvapZVSj6289Nqj3Aj5qTf>XbEweFD-N0{Jk6y0grMae5?utnQ9wYsD zbzJJ}TslT-J}4Zi=_s;U)}+$J7dfnDSP04l7XcNe;A$p8%~~h$nfkKQWBt-{z0|l@ zSS;TqlE1Ry;ILd>AA-|zrqoNCe0Mb?S%XyL9J>gVNA=3rsoYA`VN%#=z~dP9tr9_h zjahb((I)6r7MVnAgo;N*Fr>~F#8CV};MKE;^(1AE^Z;5q;)hi0*bSMH-{iD|G9ZJj z+iq1++Am4blWd)gm=C!Jp)z)D55&`aC=tHxFJYH40Yq_w0mq!U9mY`;3>sFzI7qQ3 zO(XMMR?~=?ZeFGKKg|3>{f{NL9841zBU=#K(n!YqH( zgymh$D`DV*Nj0y8k)FJg7Yl55^HZj|PMFG|0V`=k8)mp=?Y7SV<{0cW_Z@TgPpL+UWeiI zC=8)P0-GWBc(WOYx6DxW@R1Ky1>j!GIU13zlVjb0L<-7;z&)~`VlOBiBBZ~;c|`9n z8CeCbg)j1yRZ`C-h9Ml2LCAX^GIMyR$E1%`j9CwL`4Q-&4?Olm>NDZ{4cf;TSmxFN zWwcJu_--43<~^j$3CR8Fm(=rhDXS%i(Ox&DA{D0+)mfXMXk1V03%o$?nmyk#wgM;k z*Nix3YbKc*1GSE(VgC7QM5Aa%OSO#CaE3EU`@q}kS~pNt&opDE>J1*T^b72>0i3cG zslpQq$t25KGWGrjS`2lB?;>`|%8MjpMFCXMWA$7xv;|ax5LeO46qP3|`%iIdB0J`~Spb#Bun9qB8VD<~Be_1v=1jc1*u-yv1-9?!cS| zXGca54qv#7vv7QFV5|k!PcgkE62U)0){-C!vLH%Wph8;e%_!EE_ER;{tCW9{?DlMvw(Y&EVxzOX-(`o_>RnaJ{FgBV^*L)%PtfzjC<*gLpP``BtGO-^QoU9|I4B zQ09$nT>-ww38+k#NMNeb!VtGj)z}bhK2M!B(RbK%ZdOHEZh<%LkXd+CU4wfd*s{HL z(5J9G%BI9Mu@wAAjD}+uwhI!{Z7L%FS-uaG7{>$4DO(gUIqA*aXg)>uglB<#8Ph@c zmoP}kWHa$V%6^2nKP?(&+mePsMp1rr6k@C7f#BAVg-cRx+YL6S1Q-tY;fWSX5)A+p z^Ri$JW+Va)DlLobkop$7jDqK=*51#bWYDhjU_r5^yz)*os26f*MWBq+_-ZNYin$V* zrY_)Hf5puHUs+^HzSQ)DP4G&y#lsGUuEGmw3r%5UeHu=2iCm;lLT}!^6O?1DP7?=k zv+axqN0k|M5+fy_#ve}BA0&zjva!Kw@eufF3Lcb6XgxF#EgY8sQ!pYNUZ;`?-65tY zfkGe)(A;t%i8}F|oaWL1ctv$HHJWxrtpoKb2Ia9PytS~-{)`Uyzk~DQ2)$7Cjuhib zL~V8JG6qH=L#)T(>cQ#zuT~ey@b%ah?iCV1fM>~neH_NUh({?^@`j1!y2|yGL2Z!3 zI2tFUd2vS%Dl+V#ITNM!eG#7ed<*y&SlnS%*(&SjvwI_I*S$k`XyIa zJZ0n_8umXhhZ%L#SvNxQH0r7K01XwwVJODu0<)H;5oae_o#6_ z#j4EdnC6U(F?w$qDUDp5-sbv4I2ELRh&dyTEPFlkJ{Dz&_Mu^u#&f4>0ZN{M=st>D z>|>K%&u-D(*cl&VP9zE0S)#%P{-BjV*az#&==b0FppM9fH0HLNbcIRrt5e_%$U6}# zWo}_43xRQ{V!{j^rvehbgs3+soigq2w{eFNC8lCB+l(wgvW;F~jHN=Cj)>GGviYZF zGZ74=yq_AWEDX5CK5+t1cre5 zUIex;-ZeDfF3;;hENQ=#cT_X0pWDNf5gkE-%!2Arqh$EEFo&_~Bza^eCVd2MS5E-2 ze-4f?x&1HwEA=I;_~z3XIg00ljr?A99TAIt9ksBTg@1$$eof0@-Oc3+B}9Tm{#GNURE?BYx2o*QC3>%@JW>Yl*0?XN#{Eur`|-(E57DkiUL*) zB~|nbcVnHM!k7|1_(!C_+8f_l>5T9YV^K zGYT1a?$Fz}eRNDK7{UKPV!V)GraKCK@WDy^YYeJpV7})TJgby%q1kCx4bU!P3}lXv z7XT~6+B>M{H#T#JBunBwIQEF}xaU|KD3JGQt(M|wqgoa{X$?`|MqfnP8r;r(Fl+9R zJwJdn6mMbuhe6VyCo*3ef9wBI{{?TV*vyPx=qyC$H?KsG&!C#787u2tgs=Wt(^}3= ze?V<+np=PnSDm(*jVGAo{eH)2rq1wY@+o$9t-U=po>=P>%12{9g{X0bYBTf1>5fx6yKcS>|XaTal22vP%OgcZ4 zL~ysB48-Q8JK<10F4JX``7zw#(vj7*`W!H5Mw2IWn{aOx9C5G%modm~brIdHs;kGK zMIJT?yJ|9Az4p|)cP3}`)L7J4mL5}SIeC`USuJ=FLX%|1gz?;e_x`cLW)eHt9I<5i z2R*`#mV+zA9O!`?#cRgM2(Di8-<2m>rZEx7K%wHnD494HECw6gSZ^ zHP*{l2dg*--GHxRK6OyryH?L!GrQ)x8x&3JhzkTj6S@vuyVkWqys!4sB{XccO;- z6m{Kr1f@xY`aHTugmD8U1R#BjzP;@HO>7!A$$*bqzD=#DOFbTHi4tXOo4;qAFQ*TH zV20{ZiWG=Z&27&aD$}GA?O6-Q(jB~5DgrG|q9bb&;$klMu3TPLrB)ADO)938e5F_b z^{bWq@dxUBfHyS3=_Iq*b!olXHBS&MV-*r-jxiij5@@sstxXGLUQlxJQX+iT_@#l7 z4$El}UCVrOSZk0d!x#)$z-3iC_BbW?GJV%fa5|~Sfx3mGv>@}Q|Kbw?_xxaQO!{Y?c>F*eh?8T z!ll7cM6D6#84DjOY8P~_ttkRKL0|`z4y8T~g}q&B>CKGI6PwO3e~4$pY-G8YCmuCz zHMZY3iHAH6m%c~6`-(=>9D%@#@0{LRXF*J@3E&(h+q1>Db3i^;E@ZL0d>npoOumi< z56Oj#@)FLvvs!`?ZEq%wpSkZ>&ol2-FENLCNO>)}Dn?9|)gg0N&5Z?{yD&6dH+8Je zVK}#A&Bh>>8TbWeH3NX%Tg<@IG7ct}NSS}Yd`R7F-l~#QruVMnKr)jX9bDRP7#G=$ zdP9PK5mBX)F$TJKS8bX*s#zGtmyl(;@w5!jz}bU6F9ITMazd+3AstHrE1o4&LFFah zX|jCS2T+R_nFX;5!;OhPk$+5(!DtI|wQm*76`-tfFp^^p125v2H^Y-01X~>&DUfgH z^R(*SPH?iB=n4<(_`id_C|PHMM<*OwEgY4H^m~g6!mae?w=t_+EMy54$=A%1%k&z` zyo1WTo5Be_^RU{=N;t4OR`VV1>hm1cub6y1cz1E^k;y~~v(s}))Z0gk6^?(lvJB#N z0p)2k6Ca3q1S<|}!3NILswR~}`?}3FCfHhIlWbtAYQXZ#t1cQOK2XDUiwufq4B}j) zitqzFFZQg5PmBuV1imoSz3~tX5B=uG9^1&Dq_US5;#k))37=H=nY55-xCQP;VV1ql zL|C&r)|9=N-6sLwID#?NT$qVlRNcHqt7NGNWlf={xUnOOJh+!lCauaxH-fliM6@as zzFQ_8B8Is+BHVBF;|cH~gf`N|WD_V|%Y;M!me}hHS!Jcu&(maHk{>A2juH|ENKCMn za&)!3U~*h$3g?98r8X%SvTKofAY_(hQP?XN$f}@uT$L;ioUJ&rREK=?qLNR^Z&r-* z<*rAoSLZbF$w&u03kyn-)!C90!8%zL2%r@m5sxd9uO@Y0B98j#v5~HZ$Twv=?aN~|s z<7ODWG5jS&7gH0qgSKd45YiBw-~>B1p3Dlo+_pgnWHmT2D|6E<&5`2)*#=JPL28dd zYuM;gzl|f_pYa)5l;Q>owsV6hnAx`}wcV=fb> zWV*n>s)S2S6+S56w}AEXrB%gg`0D9Dve19Vt7iPcYVI-d#0e;~lApq6J|}xLr;e89xld>xbWM?I77`rDEL$P|Gu-p0&-8k>#Yw{*0i{U+6)PL+GIAcmD7$bH z%;ke5OTM94(9u0mg+1$4K`?<)VYR%_L}yaMEE|(1*b%b`z*~ zklN4IQ8w>_8vOTU?VZzEMuJ28sCo>~>&rEF#RjPP2Y)NgWtm%W)`eM2CRiuy7VkXX z=x03{S-(j`|RE5@XFM z-sGVhUW4Fz{r6AI%bShL_71Q4(J&z4z`+-aGl9Mo08I%0X`Z8|4M8PoJ)f1It@sK4 ze>Lv9GzkfDZxV?jrJo26nQ@nQ4@LwPZt~43&b85%twsZgRB*0{M3IkRV!?nS(ZHS~ zu#si5V*!UHW%=^`<8T~s0<4$6L$6{ps5lEbw^`Slz@w=CF@3s&Rtj^cNkRc-4b~JY(Ro%s%H{7{dE0<# zItc<@Bb1YMK{9|IS5L63t-CYHnq5;2YPk?ev_ZKf6r+cVt0xks)rY3%jH@8FEcIL< zawk+qx`hXPMvn0d0?HdtAE;j=s@3XSsX;S0vy!4<8%4jjaK1&wM(U^7juCc!n*vJg+m9QBKm@Xn z)*bm4Ap(|bodx)(>d(33+12-4YKf7%miv|gAnS6=3%Ot3E$_CH*Bt-It?FjK2@Deb zYV4}$ZidI%j|T@mdS#iio4It1zP`tdJLwo|_$1H(ndepC1IuP5ch&Q)vzAd(y>aa* zPB$>TN2H=ZM@PB|)@fPa?e~X0+i8OfLxjZ(p|d8m{=uE=TdJuoiepJ> zQ~?C$u}*d6C1u{L?o7rY=CthAEgkYXJBB;%(sLH8I+(mhy~a>SWgQ#-B<=-_fxbH8 znM2PxZbf&|z?n{n%zvw55eeSK^gn_9Nn2X>I1--}@2kU|9n*+o++SIFQ<*D>gZ`n3 zc!j!}zE^~TTb3NkaeB&>}qE~fvNoftiU9(3-CgTDABIKFb+$1UU707 z!P>Rz+C6ZSPz+Nwxg_behWfQe)(Nu@|19Il8tAO8&}jMQ8OO|eN7P=7F=V!ws8&b? zfefk#n)z$s(15vi2Y-U`iG&9_1Lqsep^aL?MMtlwjC_kd!Y^S117sL?KdV0JKdU|+ z8gWWj7@wqc)522D$b@b?&C`~8i~1M*HSy$;x98^V)<{sX?Yp;+`z8W?!mu9}h*SC7 ze~5MU4RpupD}S56@78}04J9;%X3!E6!+ccPyqfE~s%1e-!#zKuKIOe%eIocIn{m1` zNvB!g0en}n<~NG9Yzxc6qOB92AF*YOJYJKQ-=i@874EcwZi>~RaW7nRohkOcGS&xU zQZ-#~T~O6b`<k$l0j-1 zgx1|`k{H_@13`rPo*z}8a-UV7a6g5aLKY6SWBV4{0$?Ju^`HmvlTl37+whHJe)TJh zAS(8+jUqf1#{2&Z>w0Yt+_+OlS2Sz`&zaUVtcZneuY~P z;Zmqh4yttI8EwdKjt5hA2B0(ArgTgYd{py;)0$I`)7c*jOnA8^$S^S7@n2kXOz>fU zpNVwKKQ>A&akb1bm^osvhj>})s>PL;thATk-18yzS?5{AkbwfOmd19jTXrFE@1a?G zG-+%QHZu#FpRZs;T35z5B4w{0tf79Du}XuuQ0*ORhk$jRCg(Uwn}acBlxg5j52&p- z%`a0AE90V3#5t@Ic}bk)UNXTRSsllNR`+?78FmdyQewDQ__~~B@bU^@Wxy^1dwE=X z_%(_BCd!osTP zZuv%5xQ-OQ8Rj1L=#tgHs<|wqzm^pGPG}t`M3}XT<|f^OJ%95!xys7?*j_zG$M3iD zqOg-V3Xe(mr1EmBHPAmCsW;Mb^} zYrMvu+rq11vdLLz2C}0eQfjO<@Ea28idw~SQYV7u`Rwc=@=TTbT|ps}Y*oa6LBl4; zIO2qN0)DX5$NNJHmQmZ_SvNDL#)kMHH=M+JM-UgDa}%`_%2SG$-p;nXqLB< z$j;^{Qkx)m0M<#P%Y^({0t!t4DgcMY+!G|5M5R<0;m~oM9Wug56tv7oI7)4liug~O z2rlf15SN~7{}-C&4_HnlZt_B?$kt|oZMDz>G($+LTBRUtmua?qp~-ZWWL}w^^*Xom zGKiJAB={F!)^pB&p9$* zKf_#g!16E)P*_Y#^v9OpZX2Gn3+$KC9*KK*{2H(URX1yppBR9L>D$&zBKqU{L4GFy zVQjj4(1*e}f)Hm&pp!%%(g`41pe_!Zjjrt+H;nV_zww6i9fSiU{mCJLmc|TBVkA-! zQ2riWe37~N?J_slGfW1GxF9gdnFyC0(1Ir9D61)l^bvWZ^)wdu13$tnM6wvA%t97Z z@{Tvr9V~6<)Q_{c9YQl%(ebr&>fKS{CNbz+-%rYAIw&l36M_E5oq3i08$BE;)46FI z(N0V*nNknAA5ouU+@EsM zJ}60?YMIkz0faB#kJ}qxfjv&fq*(qSiud_drkZSj(~InaTMU5m;1k<)AEQtD^{V)7 zDaVjxwm_ZfcY?NOog#v>EA7Rmh<}2o$J#vV{zs7Y-iB5>$Mi}8YBCo5Vqpd{hc&Fx z2nxFBBAgP*5q#utsO#~2-d!X1R(ceSL@Uolt%j$J5)T0SLo<5n)q!Y{dPYB;)nq|B zgx%Fl_|E9%`o+AGU-FQn@&)ym@b2D^svmQHRDIg{ENMhy|HUyK&*LE}88q4`%RM{U z>a+x#$HGn!m-`WQgK5q1az*(hV&%5X$F9W_Y@9mTk=RYkImbk?B=grzNTjria)0bL zUNj@^Y9%+mx_h1Q9UDsHC}1AllcG+#RHyrih4qD1qiG|aX_}%?VuRPt-rK{W28JwN zZ6Yis@NTe=0Jx|^w%(*kmgGoiYJCx&_1CYnPI>)vreQjhyI!T3a^u$&Ok$bP*h= z(*|)7)*LI&I!!QI!F2Bc2IqW5PfbjAN8LI}&9*1uMsK}ao;WRmrVXSF9}US@LZ`r| zNw|Y#B?R$eB9jOg;>)R!W=LF&;Ncep#mMWPCsb>iKc>in#}JoJ3Su|?K0BKWL|j1O zTRC-O*7g4lo8w+>KVCH~8T3CO3Jy#Np(!xeqjf8;(a&|z?ZyaPx~xR`u=h!D@l^lnF{*}o=tGcZV)*S z8skQ5J*qHhVz$<=#j`}xo!LK29xW_pBMG~b8+bygweG0Fgu-rS1|d8$E$Q|O z1*m#Z1-o4ZT<}^IhBzn=tDujuCDe(Qn*BVh+SC7tj0iDgZV9Pm;vo|CusO{8YW@$z zgd?uUarul~QA^h9Lzq9D5h+^{*R5O>{AJ4qsYye#L$ci(g)n5_31)XX7;TKeJElVv zv5J(a{T`+fAR0qj1RzVa0dw1=i4wjA8`TAlNcN6v!}7QvPMT?G=hW2T3LspLpzu%j z7qzC>2G4qKkl%L7O>a0MGKwum(+rAYlP;C}j!&;3%K97tCa{>8Z5t=h4z}?M3z&_@ z&EPK69w#9CiRP=02{cJeT82+SRZ0sG>Ar!9kETb(VQ^@g*XYa-5o!}_U2F8qGZV@& z8)Ys+_HrRgO$f;mk}JlvB!`j}m~W!szC$%sfr*2xIu3B- z9%d{l{SS}S(2?^pYhlhKTlmpzL<2yz`hvq0k9yjA|zAb5Ak#U z0aN?xKHvX{jf!y17-l7eS%@N^%6PqcDdZ@lh8_!X&t86gzspFZ_$eKUM4pjct_TzMzI-nge;|70 zbT4#_>=+4hYz&tklHbQCyQL|jDX~)7@&}d_5V@}Jf<3KByd+q0Lm#F|Wi#ckw^OeN zwjW)G+|#s$cCa1BmNVKXr%lZcj;VXi8ngaZko8(z>M?xS%SEA}lx!-Co zRN_EYnqwA%xf9GC1Ef)J_BT{#7HiGh~YM$z0xtZxR=qOoH(e15Vax=lQ zwVk5dC^F1K$?pC$a6x_tjU;_mH$@&rSIhK5uZT;kMDp|@&5=sRHy`%8Nw4{uYneNg zeq3)vhrACKR4M|Uo3=3px_DTdzu0NzRS8ZfkB_ror9|>^TJQDpPQyOcOa$|kGu%U= z>jZz7I~ZV3)pKG=xU#C`K3Kx_-{nSX3PXHe)jv7%Fq{UaN0vo;$njWLw-#O3^}Ipa z7`5|CXiXPXjkYmXAKM-$Cg_)iNa_xLEdjilnf}&d#(|1lK z-r0@WxqxDh>%o31*>$3lXirI!9CnU3D350TaU?YGCze0C_ZIU~n4faCz9=qwzW`J$ zr5j?_JaIAy!P97d@Aq(Aq`XRf+G8VHWG)Y*W?t^>=a`f9IeuK-vDFBMQ<1m~ssGRF zx6p3Ve_>sZPYcsh?pZzSpyG8lsU8~4{JnyyhU<7bEoni7g#}dh0WB2XOM(Ge0%Aw_D8$#9yLQKA>CDaqZ5gx9yZ5)N)uL_?2(3zzg1vssSSqQtd&;MbWG z8kpE2vKm&d`aW-CFtO~|?r!#W!gw~GUF!gE;)Nu^MU5A_34t4Y)kuoxA8G2jnnwPQ zo_9vwkDCKBDjh$gP#G7ldSu>>Y(QRx((KxX1cajk^##)$V=*)Yjfd~l$(qr|e`Zv}{J;3_%&)wmT z`WMo8XM%DJI(?k>aMk7 zXEs<@>#c160{+mrhn@-to&5p2Tn)2VRu{oq!1I2z$!el2M+C=+az|$F?Q+)@_o?rN zy$Tan->^GFz(vd$#pPk?xeTl1=!#8x$Xu~J`jPw9OFZvU7X=0UbT%sNxJ9OEf8!)r z&LIuza9gp(@bf86B&2MvRZ^{OCxh^O)hGgA0;J<0Xtppn1DC#ZisYA&w9yNo7%SR` zS+s{>miK^v07Zff8Nh0t=+Nnq?T0^Wk?qHxyyrc)y%$@pog#3)KZ(i5qk2=k;3;)8 ze+~=|^^vS3=VbJH@j_9F=*dca zdYs()QX<^}>v21O9QE=}lnjYPi1Ar62C>Z zM4{=sg7y&is*Al^&ZhSfwa1-Dpcv0p5Ym7vjDwI?9V0Z3BzsZJP3J7C#p9?^+{WQ& z@*dTrmYac#>V$iQR-Cq<|9qm}R8Tm8kC;LWo6aV*((}q=LlVTFLfM|g(bM3MsCE!z z?6cXqK9jMyoKv|;_Fy&WSy{{4zIF#Fvi&=YffEg?#_>KjQ`$^_fobGs zMHaN5`$aMV&oK&nGcbt1T0ej+UoUxFjVyg~`v|F%r`R>gO7h24um2Wy^I^6k=T?#P z?_4m1BXePgW)l2xYiU8)(G09SOExgcg+Eiye)1u;fwTBf9H(o;V_tkfb>%1_b;{vy z1@6#;J0stTcZykQu~!RXf&H;zZqksv!!&6 zvMIPFV>Tmj$>-~)S`p)=g1sQCvf8d-pyB^HSwWBx683=x`5=WED- zmJ?txuj`V6~~gJ0;xUyql-|T>kyP zMW#JIb0e9Nm-lrQe@N(7RuvPrL()(QJMCg8^zoMtam5f-QKd&#&=`pehU41n2$R~Yik`RzRaW)&Gz54mL)37TtBFJbD1+*)?5$b zKpuw3pc%3rIdo&(Q(@V#n|G^XJFBW@_eFc^Id!*f+>9w|Ik%YJaUJ`))q4fnmmU^* zR^IR~^{)T97q)uYUN1`eR3u9G9|}T)XuDmSfOcddi=XPWegPX0fX}+`xFalV<9ePuy z0(U@OUmF0M4_BdC(F~3zLj&c9;Mf3|62;WiM$&>?rg{| zA(2))BF#!qy5~l^nWUsT znc3*W(Bd97`C`>~SbL~&uid{;;*_o8PhlFuEB%7yiM1l+I)gk;(<59Ihl&j>xFi)~kE-2F1Ly3OhjdXMfDvC^n*aaYmSWmsa|#(&J$nevLXBGYqpypGmhUu0CZ>stxAwqdb2(-mUMo+ zMyb|5_*1-YrE&bvJI%DyI*(R9g5x+z_J+-!VcZxdPeggEzxx?wPS%upVMrNq6;z!d z0eL01&)rj~FB4sKjOt>-wnDF8f5N`~-(m@`u_HUi7#V>G8aFJ{T4MCDOm1I(GdRsu z{c8FC7ut8DFuOZAdND0An(UP3uCF6PX~zgC-Oj+8Ksz^$<5?>YT0!*Bd<1SgJ<%Ri zuT-Dpb<_*3!N^U3feFH_di*`TmK;Y%FLz;AXstK$ zqIJ1B#PRZtFC|Xzi@oI=8P69ksx`Oj?c{!U`%o38v%!djE_$((idlH}X-Wb|*3)Sh zkSJu*fAfyrOg@n}WA?tl+PlH$5sOpXbT?{+YXcG~vfk!d)z4cEiU~89F0>RM<&Q=5 z_DfhW!74jww;vcSLa%)&XO}Fw$PrrLFSHie2Px>Hj#@)7wStwJ8|7#_~-DE&eD1xl!2!KX84q(wH-L&AVbyWNQ6oDi0Q zmpNA0K$(Sp?$vs*&qXH-eJA~f%elZK@nxB@dutn2Bi%BV?=+PAICrw z?5VrD!>x7CEBoDEL~{JmBePQjCkX9c^kj7|B5bx-CPx7bYrC$5=KRu;Xs6Ia&{=+u zS3PcVLGi$Hw^`3DQ8g9wOp74ofB@dK5+P-rRdt0Z44vVxNW{s0r`PCIPZF|uk$Qz? zKcZenQc%(JRnL8Q(NA0HJMq7~O6S&4Ylce7GON8-G~OURvG76V0Kgi?m%C-!>5f<% zQ8CmUNHoH7Hm_yBc?Vsed&${~6J?Z8HfJg#37&D_7#)%(K~)%C6L{?dX;$Vq#*ToF`vFm+WnTu$OySDP(}# z0QqD45!w&BxAfnfHEAy7G=u0+E5g-6;Gb@TLHk3Mmr-1n`BaA4?%XoZ4FO*C*e_zB z4ALR{1EdLI%ILkS?&}Ly9#xq%-pY1}<#HeVF=Gc`DdwKE8p5#_F-$cCA!jO-Cdv|#G|&5fn#$*9^^r&!4G-I!p|u!HcT{mJ%gV53YYU- zDDtCKxxAmhcPu!UYsFmvjAvm=QtY*5E5YXy+zV0^fjMRsk*WYst8rx9ziAW`zKnhQ zyGJfj2hZ37ve1br!OwoRVcFZwXpe+CB1UPWYK*Hq?%<1g8NLbvPoDcCENC^tiO8&Y zZ#3BuOS^qwA0NA|17|Iw$nGHXgBg;PB1!)h%S?Q(N6;a`yi$tyo#JufWx6kE2kE;5#Wqp4~vT0LprNC>Fe9q`F;@HAOw^97p?wV z_?G1ESr))MtWzo2Q~A%5Q9}!t65H{*R?-~qZB61} zQ(_uyuS$z_aFFl7gD%X zh9W{(i{XNCGBFor%_gR@j1Y?f+0;X24Mqr8%3$8Fda+mJUwDgp%hyGLMqN9|&VEKL zNRO0TP>3_?`^ygg7aFuG`wTs|!;^;E7)Mz54Z^aOTl``LmOa)!e7n>!ts#K0zF)wu5_h7r(Ew^IpS%yeRXnT855m zzSN7b9*Y(_W*v56$%BEqt6^T{EtyS!=A8PpEJ-2#m|WJRQx z4VKKLX%D*;mr^@=O%|Pcq6_X%BWEAcvc3SXnps}ph{g{{G_TM}ui^c9*bIuGwRTdy zjD|}SPo1VDr~9Z{Ke>_mWovscaMurkH;Oxw(KVP`;;&*|!iv7X)+PuV%o8>;QvS__ zH&`3ILse__veGIHQ-oO$RO=9UJV&%w58aP_GhD%fMF&hC zuD`Q_ekeXv>72_exG!~7%avNFBDA1}K3M;Py2 zuW0*0<`y8j{WB>C7ROu~8tZMM^kha|6E_x?I@@dzk^`mK{>4t|b<$0ob!QpVF1~yW z4Zv56*8*&84EP4)6ia&X3e~%L5QpXB#D^Q<*5SaJZczQNXR5?&#j~$@%$?Rutr$op z9A3V?+JB>&DmkjFOBZ6LiKar%SHI!D9ML1Z^NbYX*BhQ2Fl<0a*C}7{bPXA%=Q2R5 znb|wK>0m=&F4C@`EOtXIaDGKQZP6asA@3;wL7VzRT2y=il`Y?Dx}eR{dDb{qzxDh} zB+P>&p=bbS9N<&v92j@%a~QK@;|5hkev59Fo|8QiXA++6I@vQ(uyznx*%0(vZKeDr zx>>peNw3it2#)U8S;=khz`U_zcX}<~_<19&PDb|b z5oUlBys64@a~1ojkVgC&JGaSV01~fyO!Z&4EB#mNoycFK7sh1jN#t%xmCJOQ3B&dF zNq*_os}=(}UQ}JMak5`XcoJC}+Qe4-oS!EJ`4pZTFQZqFB9}U__%3B&^LQ zZnj2ZRjS?T;}8R{fQ%!gTJke$KcB$4N>=mA`j*?S*}*GrSQg&Zv4xCcCA$oFarMkU zo0Msg=iolad1>WMilLl0QvddJk^ns7mT|T7NmfUE>@?#vy*-P_$z^3wsxzOA6Y}2( zyE+%s*dZtmXPS_t8#!)#yb6QKPryqeG+mMsip**E)MJ{<)QTNv1A)~mS(}1uDR}!5 zU6o8I@#)v|O^>Udo0S|A3wX}h__;i~8u;S!{QgSV!xS*Kp75jBe5mXeRr`DUaoe(n z*-NdF47d4$cHX5Rzzkbiju-h3T_G;~z2A-`_wo7`d;QOMv!dIK(iXkXvUMso&e0cf zkFwEbzwti-Be8Kba7WD#%S@#>_B|qdg5)JgeYGtwb(q|p9?9z7r--2NW~y)Z%ES{E z%@Dj=9_tl)c4xb2RDNomZ%+m-^<|xx%#NK3PK-r zH5LK2Yvaj1PU=M2iHxjjQRUO^nCccE$cH>wOB}qd?i;#k(JzNh)5`MF9pp(PYmnJq zeO`4B=h+1>H50NP$YdEtF5aRIbu*TGcS?zX+t>$yB9joHedL&AKnApR08(kcgFh?o zIgbtIfj1@pq7W~d;9|?#8W5S;Wlwgku2_^grUwA`unp!5nPe_}gPpSR;{0lW)#_Tv zwV0uKW?H>qK5ClD+38J5*8u9BHk#7G){IjyW@+6Lg#nx#D09$AJ1-9XUMnCkm2@Dp z_{d9UBLv-G-By~7wzda<+9n@qw+XS@A@j8Zg8jLMLLk)wjK>q#{?5~^A=l}>UT z7DuMGyt z02a#kQ2iC@W8m2-=DnyEFx0^cpPuc~V8-4$Es+p8{bWpQ{*MdqQ1S&gss`pl8Q-1N z=}2KM9oCt}7y3HMmYqc@xY7a^c~TGkx;*)#)V{x4`|%gGIXg$xFp-;CrC^1cmG>s< zYD3p{*MYwyoxt#MCeG8*9*0HN{ANw~yOO*A43vDLpXP1#j_rLxA3fEQB}%N1Wftea zXiR%25kJFP$wIHLhDqer!*!u4p`ZG1R7Cg$xvY72+7V@JJECr^BJ?ODG?yh)_pd~{ zBbigJt88wk|HmV0)%xinQyJa?V@t+IABf7%fEUlielcHDN^LhxIVYlQD5Sr26knzl>E6f~zfQk3aF6b2YZWjID!~0} z?k4Z<50gPPZ4yc#bJJp)UxG0cgVaV9F6KFZO> zv3j(f_^KA>wcIrgOh>n9qd}GS%2~@W=lE&Q8SIDlJt@jA!6#iwvsA$RSN7ID6iQ+g zqQ7dNVIi?s$n8ux<;>(ni?XuraI1m-j(x&BB`0F$6<20AEcmxHu= zO+V%8>JbR?PIcBbwq!pIt}z%kF}_s0rRy~LJ(sE^e;*kGl(6qrU<1k%k4)b-tc*quih+tJ&w$RzfAn1uQN?%A z&08^9s0%+``%n*dWfuU2g2AI7F%_uqSZmoFYaZ zxh?YpSL}#>2ZYokTn@tANF(tAx`O;emg6uEuWZWA7!2}+ags&Kz`U~BmyRBaUnj&c z%{)4{8iXsSkZEIjilf!8iVEfIhkwRCP@(IBjdB9MqCrTNPmDpBS3Gwfdiu-79Gz6VLd{ zmgmjxzMZftC1Xu-Y6N_XHOMDB+RpjRyT4R5oDxeE>T+gk&3-1t6nGWLMg&vpAjIqusgEM8V*c zdi57#Z}U`W?XE^hvcJe0NtNX}^0)U3$06b-8Gnlex%HVMc0s~|7`aF!TV9pND8iD= z`z|s$YH@74rd=AG%>0#_J+B^;i8oHPXW}-oiCTwr2zohVz!58u4+8yJikT?aAqh!s zW%wg;o@H53|2W4jVUg{cdysQswFt*lV?S}CXVXNscBeKX+Cw77t!d-FkcKIZ%8V{b z^_P({C7oINh@2Mw129|S@sD6L33z9xR5T^Pkzli zO6F%*wN=2By+J~G65v<%`iaQ8h0;I93zC5}xx2r_SNOK_jUSi05>04ttdMYA7{1tW zU_Y|vutwq=@d#y+MdM3On`(uYE5nD>ddX!imwiQIUXL$MUhF!93B$8=dkmaHFaznD z_61^p^=*XSMg(2hdT8dLnuTfab7BBmk?Y@+mtn-z9?x2@m=TEk3my>w=U>9T?^7Bf zD`$GaFd7j<1!Z)&A|;p`l*VXV^r&fi`(AC^r$61cK@MXcEB{iEvVR%&o09}p0TRJ_ za^);>R;_=GqlRyzve8mY^KCrIko6N#>DLOU+_u3ez@Wv(D~}+0@k^F=CeJ$#u}Sf` z{aeD{y$i!T?#}r9Ol@Lf$Xlf&--N3AldBbgNusbB%+#%7i>9Yx0sy>grS~AUQ~(g(F~JP+_~kwn0B;~4<{!+9+X-usrC8I>*e46T z+_7ixv*)iIxdX2|r;$XGn3kYn{{dWNv=13?sT7A_4Sd0(35TRV1JPPKFffOAc!4XF zIKi`a+9&8>TG}tLKe9J$Y0;ho7;6!3RdKJbpO{b;B9qkk|9jJdk%+{lh{kdVHDXr$ zv&1WmoZ6iq(X1lcVh`_^kI_r_4o*$i_qF|JMrVEJLe3O=>O(^O&i{a4b{@a%+M=`V zF_kmqjuwm5wsQA#<&;dt9M5FckGX5n5)l9)k|$h0he)}Yci48s1k9!_kA=XNzaXFG z)1okQ(JGkpNy_RM^Aa@jG*Zi@&rBk-5E(hA;&d07)?G65E!gCgb%@i@bn_KxiI4W! zPkz15a=;}6#&2?E1QWp4{ZN3k6KkR^cf{~D+wuRt)p@WSE*K{CBKUWj0InH2C#XL; z93^&6(4{ZBYY3@+|7zSC8ut>KuIU@MM`ZR=KHsbG>UC7G|FcY@mqN1=MO}xMV~gbzYn`2 z?Q20w(kDr?%ammYo<-YHEL$Ppk4_GVm9O;Tti<$c@;~+>!lnu)Qh#yozD#r*szf9@ z6M>eyDhA8y%4(~%mbaFd$c5eWDbyof5DUdWb`*F~wo0ffa=hvOgj2U4h#AkAazR_a zT~*;mpIU>ua*vn{N(~h?YL55hDri;f?D+iu0|ZuWHhWwtpmcP1O`jG6%&%GX!Z4&C zH|JPhdJvgJZ`nMQN}$bSI+!C>MxAO`a9Yr0$*}zedI3Ts`G*CCa?{8zcf2@+K{0B8 zO%w|Fc4km0^e$M@QK>jEJC-F~>p3xTp7KF*nrsPYOb6$j1zEKY--+eDg{TmfXT{kU zStiY4Ucc~sn|csK+J$T8%RWh2`15_bD(pU>KkRX{z7f>GN&5gJ&WF$d295ScYTnX} z=@nF%G0-xkWQ6pveR`ESMAk4wMW9e3m46L|GJS4@XLOx4T;95?b~?30-SQ!NP^}ae z{cfRGz7@?Ps7j|5)vWA2wPlv%%GOR&+z^SXIT%^0i#`LQOS_e?Q>>dL zRt~gFbTm`AVlh$(Uu5=Px|=emueTr6_4Oly1$tQw!9sMdqe&kZ%Svbpr+W++rWC?u z(ET_l^RTS{?lZ<|r zzBO+DPQEA`K=@aSY#@P;K}P!eQd3nxAqIuh2R6ntTi5teu6Y6rtQ61YmPg3gJGkLg z`vQoGBu7ZO#rAlZrc~Lv(c5Hhbq@1EyRJV_a{1&TG)UaClQQ%O$-;3t zmSw=OI&z~bOQi0d1zi4S#nh_F1$S1NTSOVV+L&;!<~6`{5UEJmYSuMlN|W&`?W`(8 zPDpVRQ)U!Du}abZ8q9<0pQuAW^)p+K^bPGIt_PEWXcp5f#!iJ>t5#0U8_57aZ{FTq z^xg9-xH)g21OQ}trp4iDNM*HD!b^tZE}H57mQ|d;&_F6N>u$RfvraZy!}+l*yG?s@ z-C%@-)y1?3CyqZ(wfMq$2E;-=#4{7e@j(RUo#X>+Qag?j4hZ!dgr+ESW_y>_y_L)d zJqBw=@p?vGz8grKl&U_)!ZjbgDhr8U;GJS!)kDXT2EF_FdNtPm{lMd}e7GeRRT`Ae z&yiI*S4?97IVnDE-TakEFaYFyumTG^!^nwU{VVM+RSZbZEGG!EDZ8p{4l8yH#n1+2 z-SMBzRNlHFpe*zp26Rl4V8C>y*w)Vab=20q&(n=4L#r0^*H|snEPk`>C1u6Lb%%^N z$r?X+fXgTdaR91v0rlMc6gKH)+W4!zuxYB-zFK?t6R7Si(q^_tl(%9CpLh3V zwn~8u8)|9hWi0dgt(4!aTcURQZ>ybt73n^ZJL)t|G;TqhkS3zZit(GZf);*u@3LsD z?(FkdP_XMP{+8U&3~$$YZa}%R-zzrDXj1onm5}SF38-mtkH!Mqevs#%*ZvWDm1w^W za3FbHtYWOUt{=F)^3=eqd&L;L_inZey}p!~^DN!K6X{}(e@S=Hzfk%0JIPMJlDl?A z&W=UO)E9RuOjfto$dei7MX{aRRrW`TpS&-ED61$R6#s5PHVY@Obni^R!5HMRKuOa^ z0+X#6%qK*z0IIj5K9+LMgIcQ?R=P&thF_;~`a>b@v2+w@-ZnVyR*z9ozTG^O5t@}* z6U1Er7t>$aMuc3F=F_=-*WLrbP2klNJuaO5&~_)i6DtUZ46|b-5(AYSKZ<)#Gn_o| zE0@pJu7DgcJ1I8>ax!$w+Zk0@mPEk#n3nEDhqHsg**Ps!Ql%>8Z#XSoWuaa|d#`Yf zMQ&l*%xPQ17pug^F_&l*i>xd$Tjksp2J#HPAr^{d!lZWE&ga5*cqCj}aFD-)E5QXk z{}hM?>Li2lBB*29I4txYaIj;XBoL8rau9Vk!!&l zu|TG{AM|1xoZT5O{@_ZPM~U}YL_q8qsnZp0?b7)HgXqD=SYO|w@avAVzPoqZL@PIB zko$}Vo6Nma`(J4W)Y8NSY>yW(e)GaN#owkS7yvlB369yY-_~0_El}fv=+*VmUZQU9 z5wM@75=)7S(+Y)1$ZR2KH+YBY%x65~{rS9|xv)$)q`0);m3&U*uH%|89p>`lzlI#p z=ZQ)7bJ7qbxK~={@CGu4mhs8Nb+_n?+O3=s2`b_?Gh@nO8>Z5hXm0+V%rPaA4e~^u zHz6o1UKYEF`vuO=1a7}ck!!S{csdBt4GudSbL}J$buc?2$(hOiNq|ryjF?rWmdGRHC$>` zr+tcN5UX@h_y>UDA#>_`ejuj=*P1v!+d9xFB+Hq!U=(2zwt!1| z*Cm<5*9txm?`y*-YHApr3^yMqEo7J8z{m`pXrP z=?#dQi`_Yg@Ao2hWU)G8PC8=(OXfFLTdcQG-2LQN_dqx|mme6Vxnjr-Yco?Pa$Zw% z^^5!i)~?~O$i0bRei3frl%jJVSuys?!w{=&O3WEk5?A7JgJiHa^e##f#5Wz8DrGm+ zbg}a?dxLX`Q_xnx$ltF8+NWC}e6DK0Yub;S_KTD>;3r($ramo*i!ItkLo@g;j_X!h zQg!C!Nnzwf0N$+ww=Vme1zfR_6O4?%k4_zXe8#iGmYL;P=D*hd3jay)U8LgkBJm8x zrB3pfY-n0xRy&`u<%)S0=DOGxn%ht1xyI8*>g;D%PhKLY6cv}P`oz9l<(MhDe@ z<1ccm!`ZyV&IH}c$ylr?x+2dpy4*{HL_jBBHv~gyMmOXo^*Oiu+;p`j5tQxSzR&3E z3wdS^H^8O1ODm3v?>`)w>qo6ifY@ec6!q15G94!mX{SjBy`y6HtWwr4tnHQG=*Mv% z-2iJr!0e;SZ2=TDrn{ci#`Hod+_1zoXc{EvpN|Qq&|?+`qj3_C(x)e9LhF`ExA)2< z>_31`xnkO#<%CXk*9}rERET^l%1DMnjaql1t$|2cP%dDpXX9Z~wDC?eA@|}2??J(T zNsd*aw{H6DKO9JRX~-^k>J}8Cs&EfA{VZprhqRU7XtTPEHW>BP;Ap=53imS79!SAV ztI5?T*8^|7Sy<+8(*q$nR-blIc31%cRZ{vVtkrjLAU8P62{y^2tQO`=ZcQ1swsYP) z)7}VaLd0TaxObM17Zx^+&nPNoQCYqluPVB~iku{Umsumv{+Z|Fe=;OR z3mBL++}~YA%B_vd7)wA&sL2N=br&qyUN)ED*LrI88A?e)!m_=1Z*QN&Jo8E^wSS_( z#bUq%b(Xku!kqwLy6e%9>|mdrKS;QL(NFf^ciTPuRpxX zoDR3#N`h|GsBOGdvko!f-#tv3rFDHkioJQ&L!2Y&!n@0?Fc05nIkC1yCL+DlxLezx zP}J->ln842+RH(UJ9#L+D?2{}QQtSlYyeE=vj6>w%8*Mva7wg7(3J#%TM@40dpgHR zxsXrA!h9wR-%$uZFkbUxk@~jn1d2Z>x2>Z7}jlwxxfemq&x}&S4%8 zn=O!*uW0*gPTX#4MU&hYJMG2DuA0$TWD`?oU>rsYmx!*i3!Yw$XfO=u`psR5f`snM zgGxjGoC>XPVNnY{)>Vgg_DnRFg9d`oiGn;;YYcHtCm#?ghbkrh%hx`(>FNE4v`;ac zwcwZ$ z(v-v(k1KsYxQusXnB$Gx{DW=(=qYeV^~n)))+Pesk zSAHA6NxTSE0#QdJ27HzznS(6U=_nbU>;u75qMg6dP^)P)#ihrPIsc*kz}bEy zB%c`4$>0s5H_=2y(Fh=eQ8pw61=ItXCv)f-Cy)^41oV#scYT`Zm;}kW2?EBqRkZD@ z>_iZ`_!ctNcPEbBO1T)V<(hS*@w~l3=4|@8JBSlW!O<1%S1{8Oik^dY%M5Nx)9o@G zo5xfLX{*?__%nXgFg3Z($O##KFDOb50{JgN3~=3iOicA$J!6Krt@p8LUg3^Rtp#No ze7nj%MY$n$z@@Lhhp5nX-#r9|-)9AL*78r;eFTN5^I1E))Z9z@Bb1U zD@stmj{Chk6i1*ha3kaUSI+oeHo^uSOI%HGpu~&*eL|BDsZ$oWB&?pxJv1%Wp!;fs zV0DTUi+V8Vq*q zUS!0jP57R3mX~`VA?YAXXVgWU$wSI-aKk{RJ3~)-iNi-|p8-v-6_pwox9moSRbK6t z%*LQoBXytMJVhsvZiyycEK+W9kSZ6 zhjr~32;Ua`<&p4GF%}j*a^YspoJ38fEMb*2+coV%FRTE(ZUF4OIPx+A6>qX}<~T)i z`{gG~21|p0mU%xxCbI1N1`|T#XE_v!Nd|UQCa#f;;-0Un-)Cv2jC>|QQ#9BcFi-F- zH4XS#a+oQ`BMxYW-i)lDA_y5yPw_Vm$#DdWSlk)T6xTRoz64!u=SYl*O7}|yL@1Z9 zSu5nq$|Ez!^SS(1Qo(0tH<%$pevCRVwjM4xv#I^Cge`P9a7KDpE9#G}B=g+R*<#SQ zz&m;FDn*ZCt5P@au@~HPk9N;najxt(jlJ+Cs0y)|*N15q>zVKNzO&iN8HI*rIMJ`e ziA;WAPz&uOR7g^D9&9UnM1G_VF=1a64Bz!-LC-tTzR89UKIY=ly& zrEoQHlPlj~-ie1}R)t~Qr@h#`M|;qI25i$kTKB-EoJb+NP2q}pDAT*Oq}`xEow0}^ zp&dF=0y~ILROhsN?YZ`*jVN~AB$H{ym~9=y%vlMwv9q7`vC(Eu_hi6>ZdwSl7=t`_ zVvyMgYD7UwOSoBkK$z2d%jiCeNAPH*nv*@Y!MqwD-St^b2d}&Q*2oj&dqK>Lwgr|N) z?qzWfJ%a(hQk==%-ClA_ke)3sW`QSAffA7_@2~J~g2sA3QLz%CqT@yTMpJRr&^Z{Y z_=5##_5;Yy3|n8#)`xLa>}oqZHr8bQ$o6w>V~|IEX1X#Y?<@y9D;A(t$qP#S`i}^J zNY~x{oX(JwZq+;85K2%I^aD>6S@|C&Wu~M=-V+H}$Pqioyj7ln5)*lqzx1m6;$8eK zimZvnbLurPelCMTOq~$C>1?E%p%e$#nlrb&HA_2MDOjH-j4$f~t`Ry+wNCFP@v9l< zQt#v|h5-%MP8r&b`AZsA&A=N_Y{C>(m}0o32|)GHNqw8f%KA`%ftnLn8$C^p_%qURYSd(mCC?ZLe{gD56oT4nJe2hN{l&p7e{^)*LnXiYY?7nymw85H|O zQ4fu1lf+RU+egF`SVMq^IJ5fW>O^7P@(XEBxYjIdhS&{SNB8KkW`fMwZqH!a6X_c1 zDS16U5g`Y1dTn-Cm_^}~uM+EFFikp)6DqGfHu0kL84(IUI;;fA95;BKPqVhNY(mcR zH{^*ugnShESh&M?Bb=G@#+=n%z6=}W+Rnk{O3bNj9`g6*N(JN(-}tlq(MNmu1fDN0 z!it~@+D;Xiu66MQuGm1OW|2SsKM|JIhVQHqDZ9}O6C)@s6(0e(t0XKVZMxQ{Tp+44 zEjUNxw?8V2dkJN@jT0wckbb@)-5~zNlTr`olANaHnt>g#YZ1nDd}6+gW+2+(|Bkv*I zCQ(GVjZ&lJYECeu_{?qEZC?S!2*f_hgN)+xb)wf|F4+&HPPHQV1>DlMZ!lr$b%grE z5bhBoSnsF7fK%*5yK8e#W>M^)p!BedW&eA0=lA(o7nka$PAtSl@_h65ri>^GMU|AM z%%=PnJ>vqX6Gc))DgwD?@#;-&n_eMYYM{w2xVxv&`GIP9V|}DW0mPjROs1o4h9RL= z?nuk#r}}2Iy8iKsUY4RN$smz)no|EvjUjDuZ;aEdipuCybod%%jacdkK!g1SPl7%? zxu1>LEK@7K#?i+OLfyeTV`P$aOYaThqL;pITT8(&@kbh@FT;czDVWS zS2My_at30@2h;{vpw=FTZs`C>4z=w)Z4lzmGDiH>rSDSa=(;hX9`9A7xk*^?T$aNT zb6-4G*+FFnp5)ISpeygys@60U%FT8M#YAq>)a)R|2Y62w8#tRCKwC?zM| zhq{kB;?Ev;CZ+lO-P!}z^{|Qe3VW?T1pa!fcKpFg6foE#$Hr9|I&rekbaf(?wl!kj zBoRwHx7-P)6uEg*PFo;xL8A=_;J}0u^W$1Mxf1WgYYcHa81W;^J_VO@aIj*Jy4$K| zxJ^_zy*=V5CBp&?eS9^vR#rFfCn$(Z7xg&JO3?t*g23bAU&hsy*%J`~(SoAeU``U- z5iHG!dkJzdc(d2A)ms22O62=b;OV!JX-P~^DDZg*t1NP`;K5vYfWRzXXyV|i;)I@|~Ryp@i66;6%0BaN; z^*_eo`o|gYlvaCIxHeH|cQHTf_=J~Lc4=Iu=6JxA(!Vq06i%kLqT6_+5u7;P5|fL8 zN@tFQtG{iB6q|2c1|u^3BjoQeXK;OOCw=IYw4==S8Y-%LG*yLGil-_uh(P7g1hZW{ zQ58KBIyw~**;-K9Q7F=*^hz-Wa+kl?`bn#Oe}WztLFkXy+m-il`r@fN+ryr2^yxqTB^>QHmE)*X6%czY_)pig=eO8#b59(k$F=cq(j*98 zZ}l^u)IRy9K^69^JG3XYmT1wtHcv9L`wsGO{F7{2%z#2Ef zJt6;mAJ2ua^NypAVre6HDcT_4+&aG?WX5eTZ+$j>8QoSZc!~1W!&$9~EGf=%1jmSG zck+4=I8-`DZ|V&>fPvRl=RsKSR9T#~O!hO{|6BXNNTg*iey8@K;S_#S@gX5&-wt@< z^k)1a3{T$V{@Fy zS+OwQE}Ymlf_Qi*I3b;e{gcYFYQL`EMS3)3chNtD14>Yf{vfbV+~2AyAaQ@}>#Vs9 zr1^TQHNN$WaAlySu{OLu^MO>9`6bz=6S@E_}wle_MDRZn_FwA1WV;?=dL=;iptJsOG$5K zH{pe+$W!Qswo28!VV_qf{x$U=Zpt6S)_LiUC(xYZ$y%B+Izlpa4^`|aYFWq6f2Gvik9Y*$*#M7CecUp#rLxptBNt{#qP1eW+ z9&^T265eo2EefpEn5E{17dHwKVs%8ZS%1-R;#ji!tth(0;TMK=HXS#d{C<(c-VXoT z!+g)Q9g@-c+wg&YqM10o`l*0!r+XVbLcF4ch#JYCM`)+OtNap`_;EsceemTGz85z* zA#p6wj6aVew^WGmYh}ORw|f-AUQEYxa=yn}vB8<1t*?&+pU`H`)#=H=#*dbehn%_o zy~=zFM)?D$j?84Y;}3~7`);Pr zfwqNAvJ*(0{W99kxzW?(njuLj8^v)K)8LE_ONc_^5b2Y|X0yK3Fg45vnc2U@w2n$A zcUUKS;QD#ueGVZLpINH1G8R`B^$H0|utTg9n5y~#Exfb=?(zZkp}dRhX!$Esu&@Sz ze`P-9F~JEM39)_d8^*`X&$JG91U+0Pvq)Fzp*mgMyX49Xw?HAwK~|9mQQTu?)I}x~ z4|q-SU?CeK4NKlQ-$OKjfDy8dhN$`u2Ah)<8&vE!<&IMvR%cm_K|pU6*wsVLdR^V* zb-r1Q!=jgS3QrOs!-2FmjL#uSV#2W{&_97nP)BJ0YgZWUxH%5v38z;|J?Kl^*pJ46)&w8#J9r~INcS0boW;pYEInExl=H1*M6pmk zQi8OQ6Jg`x;ask8XG_UZ=h>flQP$Mkp_4-48NNd&+6FWky6h~S#BEA3)qC5z>gC_N zmAJuYOXfCYk6lm8;*~g34417^Q2wsLq2Hu|Jav=CeGCJVY7g5vIQ7!`7dXDPeu_j8 zk%WFm85gK%Rx}z{;fR86rj)*xD4uPGYlpEriC4J^mpIm6P#+`J6Ov&TbdoJJT=`?j zgOZ9lme7TE)_>`ZiG(PAEVfU1+;0YMldaWFRX1OFKzracyuK3w{+YapNS_ku_(^u+ zt3R#TXLWzo;t)E1zSsD@{Ny-E$E8G}-;olTd6||@dKUw0{k)dib3Dh7Y5%xqSLaccg5^sJ#LhdsU z+tDKg3V*gP@~VE0N1p?ck4{ zbj@wRUhdHz27yzcczq9f83|MrGrt_KT5Wa#;I!(XS6`}!0D8U!+5B=LBTRyVj~G4s zSuXx{tx753k+Tj^GP?GI3`5e3&>$aoPJ3O1LG15nDO2hyx0hc7Uw)A5G(kMQeg;Gh z^I}15W@6qWC4p+?|CE)N$q<5Vaw|Hj?7P^m_Qv8ukJ`JSf4RU|L6wP7+)=CC(LNX2 zmBl;ePr#DNpv(v9<(nWas~m!eRLIsR3bUd8s?1m=$f291AlPlQZ{Jb&s%qs~-ab9* z&zyYr+^88hYhNBD#UQiTEBQEilL4ngWr|$J9}ZYC#{8V>Gm0$GoZa1silSp}urpz< zOH~6p{czDAdr80T58HN#rb-s~zo;{ypaV-U_byym)Pg`gqQ5XlLbXV;utg~3|JiKT zE|nMS|4<7;MH8O@IMbTY1!U@1k>BUF@=m<8y7%28XB>%cWj^(r3qbA|e5tu#=reUF zN6?w{U~S{%}(fJb(%?h2%oWs`kO?PT(K*{1j*&v}Q}C9W|p zdui3bcj$Q&|CA=ssuBl|oj#>^0f6)z$31{UH3O%F_BZ^T!FKWEV13!c)XH>ybh1Kb zbvGu78eT?hl_Xdf<9tr*84Zc}&+XuAeNwFTRc}=K^+*4?tTE@B(=`Qp)Hr&s>9cQD zL2(jD2$L2jR|k(td(N;D7e|OGw)Otqp#+6}XXDWSKIIhH-kYy%#Qt~&9-&72o#D$2 zpRTX^Tk6~_Q2?2=cS8bL^>*HhrFO-V!PFNBxiCbrj(28{7ERsjx!Pwj_+vw6dp&JR zd&z0-ixdKt=_`2jgEV%>IpfuO_p>ekN?9g@+zpZ2cN;_Vly)MR7$4BF&L@XqItZ8v z(f=s9NN0S(@$TL;aSFu~`!n{I-)F_|V9lkXjhi}d7fU6#sqR%)PA%Ko=Nehj z#f2~UP$$zJS#9?rMB{5216!A2U1qriXcjMNp+5|h25(z>SM)wLE|$5xkaGhwgBPj8 zpKhAGSFRU9zlgW!bj(XeVR#>L22Uv6rMBe{v^O~$@6(=eCizaU>EqVc<<{72a>qYU zWC^!dl$_Jnp*>_sh&%?@tSQr`-tT#3KV02E;rlzgY`>jG{5dGh(n;9$$4}TPZ|q`G9anjRC>s_*kG!Qy ze?nm`$Afn?W!)zC@a9M9r4zO1^pZTu^RH=Nqsm(^eItBM1Lpnxq_ZpSH8vqt+S?H9 zwF|iCB>x6+HAs($+q}JhB{tW}O*-|xdn9z@;X(b?Vo#!TAL?a}F~UrdNKBSKj(L?Q_pJ zann#UHzex#tTyO1*dG#Y7G!(AUzE&oy=o7D8fOsIV4Zy53)C|9)`}ePqgnI zHalpLlih!T27%%@;%rZ$6nA_qWVAQP5EA6BA)*!D{|^_;mdrn%Er?@yD4>;crW0@N z0=wD;EbHS9SY}E77WLu+992EOh7Zt&1^p4U4`ozwdZp9UUm^rSb&-ROloXKci~PK0 zME7P9f7dF8lOQz7dWzV2EYAmbdG4*CLF)D3XZwyzV=K{Ci9!Ck%7v^zw5(L8Ei8^K z%XGG|lnecUaz(0;q9~S=$3jnFfLc>N%9{Oif?t&G`b_NVGl1B#o9blK1Mz@K7Kc#~ zeWM+xg*ANmY#Kx#9>lrN5nHc+?wDJBmQw)^$?G{~hQ1jJ5K=&Hi0pWMm*gdwBG!hj z`|z+xD;vNv4m!`RABNV>BsVC9Pqf$ZbuVh6*6`1i7n379cj32_eVVg?vN_F{_swc@ zu0TT+QILi9U<%Z_-Mmt)hr?pRiH<4FT)j!iX13VtT<4vdvF_DlT|0eOt&K;3&Ob50 zn=2XyAI&6t0^W5%s0Apys4lQu6lHHlWcH{9awI;H{ZLsqL9pv%QM6v4NFk^LHBQ3Jc3YU>jK_?+dCt=~o}rk6 zexCz^2TJE;fBMgyq@;&HqB?hx8D02QVoSsV{&$wdaj~17>UI1Ru3~!-S{M#Lh5HMM zZRIHf>^#~O0K8o+ZMy}@=IrTi9vyZ^Y^Sc@tz9nn!+b9-PP_Tp81P28ccvgz6uW+w zWc@Uek*0y=y>&*ZWyKEHAS-DFw_|2;GYF>H1QH(^e%vw{p8T+1TkbQDBFs zRn=&By#_o1%U-zQM)}*Phh{X{28-%ndme~B7IN2R zV!hazd%Ma9+@e#>?s zueGXjO8z<@`jy*B0NiB-O_~sUsivuQmYVk?!yRD1csb;dVpHJHPTex*DltYpAl9K) z1h5>BiYsFF_K&Ps-pKofJ=p|gvN83#@w*SSM;QuqEl5v3k7i#V(eV!&t5;`k6Xt8H zBX)YjzfWT%Ie*3ne#o3_+c|BjxgS-;z4=Gr<6bEx6||C*+rc-RL>%61lOYgf-!0RP zpTcX<^mDXe5E&2;^N-cOa)FH9UC8ZwWM6@iN(E;P9Do%I@#``>!bZgy7=+4pf~$la zKDz3o$D;gfqutw`yduMBKHAI&ctssc(R*R5{EgZC-&q5bh;~XRe_zidy*JqG4H<85 ztfrn>)n-(cjRypmRbV=W!jxik>>Z`f>)BK`hw@kJHK#5Db`3zG0%|YWk#ysCaI!R; zb1FtFGW&b%Gm&$P^xW>->)LPkZT1}9;nleB>3}a+31LpO!$Vu>V92AP6VY=<@*t3b z8vNq~7Cj)o?4culC*g41TEpZ6l>afIt51u=$z53dN^A(}1~wf}0`^+woGKh0k-`;z2_4 zt4ydLF#=B0dg|TQCN-xJ;7`>K!ZzGGxe6X8hCVHtXBSIr$bBqYJv)S?j-k!H}`G3aF z(+Qs9)a|u2$<;u&yT{$G%7UDOR{Tv?lUz6Z8pv<>b=Jc*JzkVc=-~wDcWts+0L$sd z$;dF1%kl!B`8jGcfH!Y2tmcaT+<-09sDc4VNFr;})lsnlc$#RqYtXECf+1Ma&_X(H+cWz3M@CJ8Yad}1>lTJ&C^H`^Jr};+} z8s(SC4>3zZNsIP7Ib9+#+bO`G0NGi_=m{2;pcZqLaAX*(6C}s8@8UIf%$S%nl3}~Q zIWmd=e3d$~G-%Tg{;=9-oL#V9#UJzsn`;`7K40?G$G!#atU+KA2f}lBB;a7vWV#C zq%tNNRF~50IK4(gC}F$_fR6#Hc)+%iQ&h|$Rm<^L^o0E{UR2TEihkYQ%|cKNXgW%k z)We>R^kYSQ=eEMJj_~PBdBL!w5tr=vrqPB;@+bIu@Ure~;|1vFnN(TUJF!dczl{ts z(}D4*H2-rfHIDq8)T4}za-&(3F#|B3gf%!yuic`s;ivOngU}cRek&$_0H9^+U*k+A z)W&0d*LpP>#C@lKkkgDw!isZdw%$UvW z`>D>hHV}pLihiUq1X_UM zy>Nrm(=z}|@Im%7cdmPr&*>FY9@v`+pKeuYU1$FUY-7R@-67e3JEqcPlANFWKKN6p z;V=)way%?3egdb2fF8SkYB#MHX+dTGx~hC&eE8QJlQwfEC0OR_*}%CT+t0NWR4N}p z@5LDs?dSUdeRCvjj)#VwaK_G_Ik6jCYg5eFzaiBFHX;P}>A6tp zA_SLyRfiWO!?MShY)=xBWGs(_AsF94MhP(#+au>3$(%_5LXZfhA`qfc5D4scp}CR_ zUW9Od@{Io#*-Or~igPby&{7j&-<-$a-8bEh0AyeSZG>SKZZ2z)EXPC9kp7|t6Nj0%(CIi(;H$hc9jKmomO4mQQ97h%0n~;bGfoCs%%E>(tsi= z&udq>6)IIVeJu`*dcrwq4G<9N%A)X{rW9(lxK(P;u>&UPQG9W;lsO3c*7k^iJ<*Nm z|LCPflR5-g=#!`2*v;IMNp^vk|B8%O`LO;2T6JxQUNzL4a7ns@t4Fs6;Oh8fn_SUB z_UJBUheSG%Svne1SR3rwQ1lVa5=2WGuj+s>*l-w?h zo3Vki+T>I!&KnG90VRRElB(E#4dnmkkhvgqtt1vsgNz|0e2lkFq+H--@;B(ygTy)6 zj~zWC%dG>wj|VMh4yoU?vHk*YESM%YG_`H#ohG84BDM>WMP0>Osb!n<3qN`(ys&wV zHissAkglBxf9;piud6ersC=iQkfZnkZC$%<)ayC@mEfT^U+a}WVURE-jG1J%35G}3 zmw`6|wu2jzZTeyYH+C}!x65>;r2xzc?B3PDWXPTDMv2<5r4L@v z(PUOh=i_j57}fMaM__wk2i zyIlnf)jEBY)4FG*ehnin3hoIqGHTLh_|L7{J4*mBSn{}U8k6SvHU`|osIDm^CD4p? z2pTDw+F?qaWnhA2LTjj;F^D0TnfnfCr6M_M!1=N6OEf_@mwIzK?femcM=I z8p2qZ`Eh%!B%U=}*iG3^A^roUVO zn@n8qA?-;gqS#m^N0CMbZ|-X@UPsGfm(ayNXoCvop)vq217Fq8sQ)p=vkOal%8A(M z=2q$#>kPv3ydGX}@k`ApY%ZV0hlbj#z{mQfPd z9=7*iP>_Y-H8^Tp1r9U=6QKqOOvZ_?0D03(Py5_GGq|x-*4WbzXe_C(YA)rHVd!n{ z$L5tD)qUuN)O^TXqAm+`orvtiomVU3uoNFr3t4^P!Ti6MCFm5UG+eP1juyVa5h?{b z5fh=}sr>&a6J?l%&Ke>tExF@RgMQ(zLm{4GNl`bMN%-&I5)O5@g zPw~cigz9?+VuNL_M*0?BdI?FBU&mDOAHgk?*tEsGjSwU(-b}S0seu_YBl=?aI_AKc za&iqT-RgPwkK=p*_9@k|dCs?=_Rk8IQtXfLSvYXu_NzEdms46H#Uv-{i)_bO5_r@u zd8AmQoR&_BAYE9tP?#=2FWgXO2bRH$579we3#Oj%;()F7vi2*47RR(c7cpt)H}pqd zkBPlw&iKK4P9)WH{0COqHP;w*3_94aO4d@;0h}lHd4ydS9rv6L#len4sJZ9$tD{lj zjiV3LjA^#|z10M-<|&Rz(v&B4iRt2mER`OD@Omf8q`Y?VRJ)Cn`&MGlJ@b+*s>n40 z0t3|V#%()I5Q=#?bCvLLCA)Rg9xLgYe)S}kO%5=TamFACQ{TvIH^NI{2Xg>$K;jLm ztwEmE>7_Fyi~l8#v<&Dfo&dx5tqkI2N@)@lzqVm{*{`(WsGmMhBdBZ9&*-OCKs_w8 zpLVrlU&kHcY~u&g=0v@`hsR3jZ4b3u8%cO&Ol?N4z31c%FfsGsg!?ka)FjXL-68NP z@I)&61)JW3Pc$|hjJ%8pKwf)Wol@FG0Z;rfW<>|tR`OFlCW-*7 zKEiZ;6y=l}UY`)oCANGq5%Gm6Fn@KGqBtPB%lMYNt0enik@_haJ3aXnw(Y0n5J(|! z8myEPpZHs>=PUF}8WZrb{1-opG^g6*j-Eu#E%^1oH0%(aGS+ZObbQP_X|!n6f7Rfe z=T54bZm&o*K`^2O|Li+(6M5>Vuq;*Nxplxpy?<%`o#yh3}cZNG(aZp8KqPWwi%N4YlU;`N?hVI1k0 zl@=IAZ=($>oRU^a&{^*xLCKo8;}WP7yKbH-2B5bTD_TugrQ@6c*xRImdX41B$~M(@ zI^YApg)GpuKNLGERV1;K>p4ex_;4!F_V=2VIfbQJjsv25!RQp#v=r&t(IAxxa?N4i z1w*ATvmquL$q}^9V^2DdPsFi|TV61TZKt|1na4@2AP`RS5mdTYHH3 zSyt}>)a0|A?UM#M-081PooELTx|fw;Td=jzD^@@)A+|@bA*$#fcNNqjT(7=ooaE?SuWdC2}zMx{jm!RV2Gp zJK@iac&jp-2ua7BDZ7ubr87i|Azg5P!JQ>f;FIE^u(i{_>F-1S6>)GpcU5rPRU>JGu!agF3$m<*#e-8<;Fne_H2 z&q$x#K)V&yp@B^g4|q~BV9F1om0O7!5ool`GoUrP5BB`FU(YlFDeq;Y+8!kDJiF~% zG& z18b+NO;$8?16*VSJ0L)D#P8GiqMv6w$gXNv-(KXS#-A8(=kYV_ndBtsJ=XH)+a&8{ zq4`N^RDUO5(t9f1ZX>PtE_Cb^y+lK|qS?CCKA<`AHJ^bqq0aKFs$22G1$|JeZugYO z@gOw3&~z?@yS2FkG=CcApH|@>O~FAX0YqEqKX3Ao$}}o zKiY69x3+t4zNTG!YZC%4oDW`yH3I3X1=}YI!(+}PB;>GKN1As|xAD}kakHPW-DW81 z<**JJ6&gh}hh&6GvH=AnWZVHR*WR$b&v5mN*x9l~tDC z?UFN#YhBEyyu{OwB8FK8Wkxp%<^umFFdZ$$Dg>D98m#nIIB2?wGPk{4BkjAyAfV$_A zk>AhjC>+5c$L%#iKRZc5N#Qa*yj}ymm)d@Z8>u|+lpcE9CnecM&85hV$o(H8G24i0 zhp2T&mmNoPSa`QH3@p4@OH_TzqfVw8@$Zk_jtA3LIL8lVFuDtPCa=Ck`)oVj(cH6m zj^^TU#+(2Fj>&cdro_cj`ph=NpDB1QuaW zd#)vm%XDV!*$(#XbAovQY=@r|6`05s-i^CXA4`+~Uck!mf3+6c>(kKo!V@bzlh|e# zhZU5=Z*la06)EI*iN>>>&AgdI6f(iS2)!LKve-hZaxK&q&P_(h=b*K-5F%xW725^W zi?A%z?gfwK&n{kVou_-69+zt?3HcJ7Dhh%Qw|Z12lj>!i9Oh9Kr)QPzS5`A4A@BL^We)#sKRjsg}}qM+dZ9~RqSq;T!CwI zB*%q;uIMA4OUEuA&yU@Xw;i`d0jDCHiqCO9z&ilwg?)yuHDdb|)PI2WKEg0YKzB;` zB#w}oS}ko~=88VAD?3GGdscJF%z6(#9`nSV$JaAnp*hGC5;JHM`dwMU__4OFRi4^O``BGY6K<1ISDepq`~LXAbs zD3Ax}uz6x{Cj_}^Mq?Z)4He%K+bR(sK^I?4L75+8SCz!`s9PV=1NCUOAV_JFtfN}a zdDHEmLS&~SEH$LzWp%poFeS_)mNGD`!GRWE2IpOJxWqMY86HS#;Gk~y**c<={X?Kz zi?+I0#iP1>?q2PEb(vIoICdtlOz3dd-NGUA{bd$|AhyMXfddunv4fGeCW>R&&aSo= znADUtlW|W6urJ)wHk%^pXV*qvJ<1+nanDZhQ_q=Wt2$j$DaQ=M^?4v%$vD0K4RU=M z$&fRjny=8A3};~(8t4))3yM2}F)wN%c`6oxtJ_ALti{Jzc6ki<=BUH0bI|3QTalXi84t95H#8~HCyRfb&sfGLYsCI3ODZ|YM3$eDr zI|Wm~^%~IV67WXGD*!%&ZkZ1;RmG0df@wYZ29d=*;$v^g+|@G%s4-_s21+Z>^gj`Q z?&j${)S(|J`b6yK?QHq2SSSoUzOnywhCz%&$4yZpm?J!N;MIJ=DtJ3zIA@QXGi%D! zi1F!+jpIyp$$AjF1?<8&z;~gPHQn;_(=mO%#0^dvb1ebJ0T7>ts79bAr}*#GPr+ z#YOE?^XvGp#>EFrrv5saGc14svKNL?`XB`kAQwZ~P}`%0cyZ&z-`eIC>5hywKzqwD z$IQQ!pgx&aKeJY0(CfT-`$S}})swhSEmWG4mzO-mA7eFT+OEXd9wYw7UInQgu`LgI z(y5&?8zN&$%h;}wmW8G%(VMr*q;k249sG6RsXUu2{k*ZE&tThQ>og;AJQ2sHW&)Pz z9$F~-?wA+Gcnu+AHoY1_xuaTh%Hr>FYZLA7YHwz8oMEntebx0dnn6sTIVC7?bly)- zKb@0y1rw8EpOvp-JmoUM*@iiylro)xSEXT9zG9;C5lb3d7l$o_7Kcb2Wd?ieTwYMn zDO-@E-B%kNyeQe8Xva;$B#{33$l5<4TU0~NRpQkDFJ~Z^v&d~|=&~mbx;sPFw4ItF zLT$$wWw&nbEie?_gq_G1aw+20-q29jd08*dg%9o-b{P3rWvtsR+63$&;%&CMs+~%= zQhPIpKgC{| z$I|)W!JuiG#_fq0Yxiysau39nq1Ki`TYFr!Iw*mB{(d4I8YnW>dehT;gASK=>@`s5-MR*^5M*8qD!;cLb)VAp_C4Gh@v4|$0Abm&O>r} zQyeHn2_b`P-PMh7_Pvw>nEKczfQo?JO5R1IeZCX06?nAH*9u34BaLvPrIW%5yk@UX z3%#b+eiisOX5OSmkMdLV96dRHexRB2Et%pT82kI|{Z4|}XMD6)*5J1q1(0E>Yk!3~ z_CD!kpdL(Alt7;v4^CmVC80ezb4`$Jc|<0Zc$yx7U{c4K-k_o{5d_8?|L&X4I%oB3 z+RG*+r`VIEzR0l(GX|*_Wbum{(`*fWZ_gKWT=?(d0|-L66dB2^W7#Pdr_9cFHK^)h zix<&q=P)0om0xZ5-N462UgLW%wy*nMte9L296qpct3}iJUfMU$wTukJj1%RJ&ZC$z zZ117~46N}r)$C2(=0qa!76MU%=Z(0Hv_j2I(NEG*_qAc349im^O2sLYHoklNL~PAD z?a+Ch|6A?f5t8tJgIt%)U=6jcEjNj&D?`L&_G|Yd5ecQ?x)qY2Km)}W`VUw$Nyd$_ zCHpM${cvI-9qmGvZkTZOd?`Ch&Svd#3$buQai&4acr5#Xe8U{rau3|CVH$f1Qmdcl`lv{OGp zJ9QAydC5V|3knh?_cEg}v7Ll;RP?MxyY==7-)TpiFVl8&e_eCipMt7Vdun9Wo)wUL ziJ6$;`up1ZuwPwVMrwP$gCs1c;|T%~5+P<8%7pIa`9qPUw*I-&RP|mvKNhRagb2 zDJymh_seJikxt5DUopwNi1Rg3s&b6&AV%WToxMIqD-_htQMxjtG+8ra!vipZKUQi1 zbx=mw8;0e;4ecEO0;-fljQ{$2ch9$Pi?NZ?nJ9=L{}PGYga;k^?wy=wu+A_+cBm!& zA{#=f(8Y_2x;Y#=?r3*Aa;J)D-o9~((i`De=X)U-b1`nsF9ml5};;CNB;T> zLL#_D=5RBgJPh((oD7neuYvab^UWx3usac_i7@?g!R)E1AH6Qf2ca z(Za<2yQDFN6?y+%Vz=wQ*7KdTcC)}LbP7YHh&>yh^v)GYl!nqkg5NzHQqP<{vw0NR zr}q6@^PwM9L+7mTl>;MKyHBv955V5wNTx^YJfU@n@QW#VMX8pPIk*`dT*vHRA;uuQ z6GPIp=mBK&MC^nL;>^(!5f$|U#zJY25-pT%!9pzjf_u#)mQO>tY-JNcDeu=G##3X? z-Vv^M{7)Lc->=>?B-tkkl0J9#FyB3`|G_YdQZK~fesJuBxlDxq0v3`ehHZRV`-f>s zwdH4?_c_~T6agk*QA(^Hhn4fdnmgE-#-}$)Fw#Q<$HK`5xt?1N4%PU>em!4 z1Xbnt<4=5&yZs$Jbex^sci&6*Eon2x1g(333Tp=QX zZp;<=ZL2=wisEp=34lgOaSKEuXv1;lwP3=Sht$Mfq_>%%j$r@-=gy2OX3hqdG0EvZGST}|FEom;LyIsX%^De+4rgr}H25co(q8)0i0*# z6#kP*iT6Q&W|7atN%vP07wwV0=&qh{i2V_)iU*exB;0^>#Tk*2j*U{Er}!xvMrd#u z^yTmlTjg8vP}tVC!p)XPqkc)k^fgD?|IgN&MoV^8cb@0Y^B8xC;mt!tX1>h#a*W71 zmCBSdB{U$VBqS1qKp+qZ5Ex-5GZ?VVWYgHiXj5Ry24e}X zy{G~%L%Kg{4f>zifv&*;lEE;q{AbuQCWbPfSJ4e(VTdU!AIQi>cwmPXI%o>$_pK(& z1MDsBC7{SpveZ6A?0-#Uf_0w_wJQ2`{4tI_0ZfBKDO39--kYDyhSD*f`W9tX!Xd3$G*tZHC1X)i;MF&{*>gpEaCdS1S*;;46&H5_H z_Wz9xeUClRE%>GG(b+kYiNKeiE5m84*|lM!P#QAg8Ar4gC4&}z*Gq3Z5O~Q8ooZ1{G3LsSNg(H(}MHx5&eCp4YTF0khv8d?|7V!(Kz)&yu3l8WRbN z-CV{UNCBa@T+#%PMy)kRE>MDCHo4hs_EB~q;xvy+?$8#U?aWVZkn*0h>;kU?0v2?9 zE)8C&`J~v^{st7o=}u2gbsGT$3TCOuqM?AgPCUl(ta`NN(tdR(NqlSN7#TD{owNph zc^ua#Gt1k>9gkKDwzi8r35o&OyYzQ2yt?!gFfU2;q+~GPoVhve<&b=IvE-3RkC#7% z<`UPw1@D{0YoGXsYZFA#i#5_WmtdieOIXiI!%&bYkOha{^=UWj5t z=x6LNG3y8+z2hGBPwE{?stnK~sm25uST92>>cR!-pe6~#?0HQ9R#f^C@JpKB{fdGl zKw=+Jb@qE%4yp$68}zl~gJNs0u-S;Peh_e&%WJ<;HE9o2U-H10Mow;0X<{2xV-VZ& zyq^WA()<+vg=FMW7jIDkwe9W$+P5wI16CHhPP)BQ=l8bfBXi?m+HA2;{cyOshdr`Hh&2ZATv= zxjwPg24tW5JSisp0)9*6l%JxIl0)e&CGvB-db(K(>$V+&oneS8A%8t8<=V&4W7pNv zcN!qc=yUM7PpeNqC|9$lGgyJ&kasj{9}d7Sqc*M>9<%w>Tsp{&-wMiZ%wixBEXkSr zJ9dy_3HOL$&F$ZA(#4gGC?Rg`T&6@s7lJCEw0y{XGb&+@NtXey*EBA;;fQaikb$Qg zQpkyue%&MedX)t1x_C8q3)5#D|EM|}Wk4aYSz;rZsBsi;nmA!he3)mH2TTC{e?g;M zmu4L{2vqEcdZg@`aS)YR2{6CclH(rQmJ{HCchYhH$hU}1412r7BpYNqbnl}#sr3$c zCW*r`8xkTmob32Y+}k+k`d;ae$27JDJ0QxJdvPd8mXtTpIVcLIV6(!=?)tGg%WU+^?uJlDApYxJ~_fTNX|E3>Me>;LAhoWiH`HXpdLq`%`tZO(<`O6Z1_h`s^>4Ff77ytjxD&Rd2UX5F0q)D6C$S3o5oEqh8bYsN4oAMddkn(~ zP#DW7M%%j~so^J$Qe0coNONPdx>1X%(zVAiUC%V!=+G zk$CeA5g0^8q{ZV&zqomY?Cd$$gMNq}bo_@mgmw?v6%AjMRkt4uYS0smKGmIJ0C#;o zDag&rt2#|{DamK2ju2i!Q7>Zyo|L~luI2&ZBfK++9`T6SEjHfFR`D8w+JtQbw+?7k z5(oI^v*7bK{(Q%9^6I{9jmGOVjsQxbC{t$;!;Ee($$CHO0R_EwAapMz!HXff(EWhm zEAjKXAvuz4D+az_vPJZ*(Gq!53HI9CRWsO^P>^h!eo?goa)pA^ax0!#K>`rZSEqX5 z7bafwRD&Ysr$HO(145?G?;#|HV)CbxQSGmuc8aRw%ojAQ>cCZs{iIb%NGZHhhn85* z1;<1BGZV^N53|O_QEst(;t->zR8RxclG4}uG`hKN2YIh3s<**Mr?d~+aVNa4-K=+K zRhjV$u6n6>`e}Z8x9xr=eTFa$JUXeg~`jZ(7*ig+r7>P&-99SPesZO4nkQKI04E(qWZ;hXSA zpTb``(S^D*VaG23X5rXS9+WVGs19ttOfevvM)s#euSjUqw$vU_Gd5=#3k1^wEo5LrlZ^JO~`Hj}ju z!go~E#D?H=NtMrLTqET3I$}2M81ZfaG^Y<9>r<^QRhB-Tc%(wbS5JTdBz=#(sZ9HguPjZd?{CYuWN5SD|2Yg6b|;{`@t%=+c_lrbK0-DW_`vS+9^#wD1oW=4n@l-NUT&rdi?iz z@g-Zk!|K1HBj3`E07}6koi=L_!A_hPLMVSV2XO)~A*B%WS;uBjn02E&NAuWym}>?0 zHnDr@izC~~p@rFXtmqk4-sA@>T6zO)lhFL>dK(8zz}J5^qe6=0TY?$!ONVR@$-a7T znv;rm1;>CeCG0HzOQMEq=5w z;V{Pih8eVP6QPvudwrJ$VaIj>T#$O^jB-ICteCBm{UgQw_gQ_ys8LMXG1Y_ASoN#u zp8^mcnh=H7=2!Z@IW*tOjwyHhX~)w-jccIqBUj zOApFILOPmY&@H3MJX@;5?>n;^0CT`PMDYNTlzesNuH`fIL+tIRkk;)vr|H(Ny)}Qy z9`uI@!v+yx$ymGP#_GvZ>9#P=jR!0wL=%F`y4VqZ*3M=ghheS-3ywd00>_Wb_Jo07 zhEHbLVUjenjsZ9L;Wgli+$t=Wd4BG2ULm0dsy%ALgm*qG>x>7t2-D;WvKE^4gX zQ~xcT)8StNXTZXI%OYYRT%)-~Gm1AB5_P83gx63@#8r#tocxGd_X-lugsR^7{rfB! zr^T3Q)M@jL4RB@I9nVwGd!kqND!2513d8HO>Y{Q_8UEV)a3qNJ>Id6PXduQ&#GjMSA8o%3}vlXunwD$P-?)eActiQI3bk2-wm6J(jiulbnY9U39S<1{3=%HLDjQ z@$la?JTY)4-8hlEnJd#QOS%laokE0G?jwTqEKwB^9k(rkqx_guo8$<$$O|4#Yb62R zl_E^^myNG8;;>1gRh-bbuX(y}j+1Ee_A>89ZvQ@vK0F8@5w1Afq)G$O=q5CL_EWG5 zBKLb01;E8Yrj|r?!U?uFR^`U3duigXI6?bDbu~fQ4*6^{S;Cgjll#8>Hg(H#TpqDo zHcozlw3DWEB3xSs;!yVBOLnxk>KN4?xQ`~ZBe0LhPwJTjb5CORQqd~l7dJd72#vM} z;f%SwKv3bA2}BSUgET@y7)T447NRMV)~`rXD8Bb0^`X~5q9qp2f7V+8cI^3J?;Pjd zXNnxh80ljSJn)Zvh2V_fks7D6WNNAd-)@Vv&7Q-;I*__czS^GPvXWjdZtqgPXJtxL zGUGg*7^ua0h%4{m$J-k=PB6wWWjxYlNOoZ2IcZplw&4#!V-UT|6wjJDt25biK9>V9 zzzvH7fKG@BpXrWvXLoc{s}N{FOANgx8|YV^xf@2vo1W87Coddogaq_g6Cz|VLEvF4Tc9)|g+v(*@IiY-qS%-0vjO7@ zK|R^&=cNOHc7BwiTK5E__8SZV?_bySqo*75x2iR|i>-t9_eEj}^p0sF=hNlt1`^W%Kshvn_Mqe$WetA&(6M%bS`C0`ND7>z>GRu| zbQ{b}@5DB>Py2Qqhr&g~mjCQiHIsRvA7!EXP<=qQTOh4aLY0q+tpWBBOb)^<`Z1^qF zG2N~bW}UsS*xx^aOv6pWU9ihkKa03_x@pcph^UC=oOD7lVLJ%rPV`lfWPT?1kz?I^ zybRD;Un;z-Uw1be|4+3Mo;t8lm~qvtoj5popY|7yzV1 zdH-OUn}a_nzNfP!9+E%UH{!!yK?`L+CsEfGJ605fboA-+Hsl!yBU3VW!7egLeI+N) z0xc5@4xuM`j2azK_b|L-kony5C#a3SM8dSOw$(R0bZCcp(D_X_iB-HDibE7(JgBYt z3=R|x3UhH}L32F|&{O`(v4+`!y86A$7O%BHckHO=L2k-zWo~4f-n@5gIA^K)p|xD? z4U1BpGT&K`@_w0_VNFlzgr?uql!6Zdk#!>qHvJY(VZVdM0w&qcf{2duqWuonjh`?P;_6 zWG!Jw2x_@NSW-w3V@xwscy<79$2=9Nr{;kB5{v<<4`Y8XU&_=v^Di~l?;;X^4$Ucb z60L~ooDV%A!?PbE)2@d*UlVyUCpOOgcGmf9gu8`7c|QRS#PXeO7i8JUYffRH0}rBq zj!@Nsj|C6>aQku%wguM4N?p?-vN7MlCxV3ZTEIeMIvQ0k=G~8C(;)++pciXN0oDLb z&^;uRr&4b*NO-8u_6Ibcqus&LVVsPh!jK5ZVIEYJEUi*wOU$0g9AlSA&EM*Xb%y_0 zdg9$n{9H#GXUw~>P^Y07$W#c@3Kc}+#=;izX9{z8H>47JEw15GNYI_aF<#vL35N3m zwQ{L+{K_qQuLAWNSC%%|ZdKEEUuth-daH6A6#H92kTQVkQz7$&Vdk<8?FW}^EBPG;<}I0ZoWr_tBfyjD~djK`}8wQC=z&=y06Kb zetw;OM14(tG~GM{ZxTP*Fr~-A?QEKrn>}q7Id1ukF0lU`_!QFZrGSZ!JSZGI@q^G$ z;=E60$8tZy5Cm!`y#(6;oj|=K?GC6VMnrfcZEUYmfwcc{k-w<%sHsb&2$eCRP= zyo1Pv;Eg;Ehae6zQkmY)QHg?RI~I`<<9_3_xup&*=FGFu-KZW}2iXxpmxX#7&t_c8 zO=Tm*ZGWGQ#&6fjC??A5KE-ffp{Q;WIvHx6A1WA)Eu8G6uUp;~6}KHH#ni>yqlDF( zDmRn`Q3wwP8pvEfxWggY%~^3iA*I#TZ5d zx%i=dI%VSXB!G5Je0-!X`+f%eLh6xohbgw~8HaHrw$=H_IaPuo`w|j)AErtlP`=Qn ztSds!{#w_K?~+_{6$ztJDU$zsaAe=2-YxPr)6CR4=O6;Cgm!^(^pVNLMT-b;K`qXd z2V~+DP8zqJ{Qwp9Tlr9b4D~htP22gY(3DTwnfy+?N%w+Dp0Qv{Mb6p#}NY`4pG~^>nilkUWpe1HJZO!4VG!))$E{HM}{on>ONAsU8A?YWKgo7B%sNm$g?BBz%_*H*t}VEQi>$(XsMtw*tl1u zU&+=C2l!F}2&#E-k7<#aS;KdfBr2g-JEeSzZVgf=^Vj&j{)}Ci^dsmzio)hXSXh4M zLNO*uIGjIPj6MDceP!vK3B}#EyJUCT@xUHsX?-a2SW(gAtb0}N3?00TL|6=mjMxguo&D52 z0B)!r1W*ZN3eSv}{KG|t!-MRL@XTs29#tRnJuW&kQ)kiei1oG z<8a>~tXApV%Xgst^uS#mxOKY^|AA5YR&rO5Zvm<$iGrzdg=}q4ddN6!{MywMzGD>I zoA%wo;Q|x^qV-tM{}0yl>q$0y4}8CHiFBlqkoV$<5YdB(&`@Y5beX}iqDlVYX&zPy z^jpw!VOh^F{)dOfyn+6**O8lYS6=)}W$!b6GSHp<><0muAz9j-V1tovG501UJqt)G zg}=^>dMpDOE4I-mfneM8Y0sIKObuYY;!GsXWHx~idM%*)eExIX}Y(2cxaS`;hjH?hmVEJ^u2@Zv_V!!*^16_wg}$W)O*pI z!>Y)s(TkkQmdE4~8aPbx+u3H6he1pWZQ7NGQANEDiJ#|C z`Bw%(n7}n+H2&Wcr;)r@iAmp0yaq2aGo!f_27T5>g$dE~1s{uk>Lj7# zY&}zY5@sw1^9Ki^I;Zk0kF#_JA@66&P95`15DkiiNbul(RHAp>kb)AtS9b%xZv!mk zXKr=;6i^m{1f02OU@_V>8;H;&FS$&H@WvcLw+;3 zd~mU^wq6CqY;ruOG{M>VC__c*K;te?uEFstDIvrfSOQ;8sBa1H9zPz|(toAf+(mXe z4^VUXa&-7JtkPP43$wzfnx|l6VOdcIni?YWttN)>BQIN+@a6$|+3A-~Z{R=Xt;Zeo z3vMQ~=U$Ll$S~`tO+l7WizZ^WQ(Bc zDS+0Nm!OXVVD^!SsFssORqzzYC~>!=_)pa-tZkw(k$X{{q2rQM;(JzV-<0Yn;z`(K_yI_-b-g{Tbrg!d z7B<-KmbFAXVzxT|Fj!924v`TWqEQARdB>i+4e&uw(*>P1gJNlV)d82}7!N9U?QrOw z0W&4mJ0t0pBmDr+VI0kS;EEcC;GMv`-mGP{gMLtbCgjwV6*Wz6j?7w@nl;tu&pK;v zGSf9y-JEhRt&7ZUJ^NGXgMuQX0%4l*X*! zi@n_VQXLIzzi+=`5X7VSo(wGhBFbF%8_mdR!(P|c5g?NorHY#;NN9B{nOsFp4rRJA zCL5qM>B^8|!dAAmnuxoOoxWEO+}t`*09Bbk76q%**gV|eoYEDI;*amJlFlPBkHNKb zu3~gEhyqjH=Gark*QxyiDyKIiiM?5!jUqfZE;N#dyVt^#$w zj@-P4kdyRN6G=OJitq*@b_Ry_Jj;)4%x+g-M1=SFIknbj?;iVono5Qb0932(f?^;2 zy4-57I^@Q;f72^sskowG;a)Vs33aluf_>w}IfeT>{MVQiqJc5z(0m9qAksVpaJ+kU zrNqtGbF&Nw+%XIXkl&M#ltIvy@Qx+FHdNB7utx(Yodsl&n9}g z?`R`dtT*nMr=4jz6+&tfafJu(i993b`k6Bzsl1izx@lppdf^Gxm%I|zcX9gM;&`}b zu958vIPenucH-7*L|Mze3M|z0QD8|~pQ*}3aM=BvRu`;nGxQ>GMz?$Y!xrAzW9?c=tgv85ZdvoeCB)=o@0A z5sH$)A})38I+mQ;rKSJ?W2?_)*yMKOrO(+om6(?Zh_lZV1kBE|k{&W|f{xfq{6Gy& z8Q7?WAi{UgqHcG_l%tcI3Qx||EZfPX$Lj?pwFtZVTp_DWO(QcQGtzd;n0uE68iQpH zr5`y1k(`HdK$H{@7yJml#mg-jYx1=rs4@=KsSmh7gTqK_7}1>#u-vWy7!*Y9f!LwQ zE5nyh2+SoZ39GUw+VpT``>uRt}4DuqIKk!IHIO00n8wmFe$iz()CsX z$YusO?BjtXaE%ew4#jqWY0s%0N-l#( z5xH&p&cq%a^UcHJg_nv{v1=tIMsQ*!FH;b##M=RZAdeR9PSj^;Nsdln+sTAiLT)~v z^E9vI$-cbd)u>30Cw4uI97s+798g zq{lX~UVhb!_a95FyTHk1iMWVuuYVYS!uUlCuImawsk)G!&SK#(e)x_N&Sg?~NtkWi zYVK^|PkjWb6>)}1U5}yidxHdWB}AGDrCRRv@mq{~6L<#@W${7Tp^ZO~q%UiEqfhA$ z;^Vw9>-B;*%=X5vwSlu$3S^hiPM@x!geU1qPX1OXa~y?rRef1~8$%WE>V4Qq4jv;4 zbV`#gmA%wI3p*kG?!k)wp?%T@0PG?o*Ig#ADWT0b?%xaCrWumC7d%(AA_osjT$56H zA~S*sAd%VyPuzkAzA7})`bfyag%tApytAe~F^sbi z{`qR{%&3e9y_3_00dfKcsrfFoT7RhN$8G!=YI;b1)31>d7}o@x{bx9G8%Ms2AIQl9 zxJpKKsP2{ZaKFe4{EzZ_6QhtdBvEf@DjK_(*b4lrR}4?Z=4m_u&bj#!v2=a*B2o=0 zd0UcWFP*JKCoyV0ZmmyXec_8vTk~4jVgd<7+lZMqS4zSwnk=1o%!Nerj=rdcVYusJ z3#r-3(-(1J)9Ty5Zy!8>$9XfN)Y_4_)LrUGIgad;rMEWmvbFv`IMy1GhlJgvl@dA@ zN2jv_1mSyu8g7d%X>Z${-Cpx?XKii;M}W2?gGO@d&mY@wlK^|*BnWvlVyvsBeuZ+o zpuN?S&!LV0H)v-S-Y+_={OJy#yY(~F)xjPm7A79qM_V1QmL%S>jzDn z9vWoPu$(0;9x33Y4y@N_=^;~sMJ4I@1ggzp8o>27t#qTJ$9%2HhEl5JyGp3j>K1LW zbqJ2L1(%7m33c==bRsH>NG5`VtxN}sYbxiUXIH!=7##Hh&ls$x3-5ho~O`m0aX*5&>v7!>aZ|JD1oW)wHsOS#}U zOY-kvWV3RDYZg)bfLgCSaij$y%bTQ{T@3L}9E&`%fDRmv%+$x_;LDO(gRF$Nw<5V% z1;wa}M%f|!a>uwvR2+LS$upOni4N29x<)u@;TyQ9nMfp#4T8&yM%YRY30XYNY(f%w zG+xKH9g%pg9YwAF#BGsihy>~MNwan~`!Q>Tw`@8?_6C0NAbu`D)$B1oc6tbD5p`mA z6S12W$&r@bE%_n%R6d{90gcdb{LeQ0(C-Ig9YE#&783iqf_hAN=nB_A{S4{UBw3i{ z6PW!>KJ52Kkh46HV55Mnws+Wc?yCc@%);%%lCi!&u46UMs({R4Y3T-KnJ(5kwh^)| z&DH%|I4jR=c)B5Y*Uv&^+R^pRfRV(Ek9pxagh zG+su|hidnCUAeAEA2b#q1$@LP*h>*lqdcdWG-f#zXyh*8M#sIq|7;l|DMFMGjtO&v=h=mkt{$GS5&l?mvbvbce^fBqiF! zJ$?+n()abs_@s{LP8gu38#HrUXeMizkV&haIR^>}TRiz7!oIK^5CEygu8J7>V-gvF8YYF>4}vDNrZssHpNw zM4MaXm!Zf@656XhBcp3OVPrVN3&X=p7d-E1zeK3II9yjbT4L%fG11~<(z;8e7Am$k z#as(B2O**n!GP?0K@mOzjPpszx}!W~%1QyWZ|h&~<+QzYSO&i?{S>^WxcoA)n4OgI>HglKCV^ zb&~(sWt>6-Buo$16FoL(D=0F5eA6RrCVTn z1$O?0xQ7e2#I;zcUu62;%0wQ9??Db$-z_$sq`gU zo9FY&6Y**pB*Nf{uIa8qJYCem?`Z}oOy zq~ltHc742XR+Abi+%2^#UjnSY1mB%yXux*VpDg>)YV^HCt!rjx>k3FFhs zBiUg8LFa4>I-hh%A2Hv8huIfD(s<#Ql|R6u`nv)$YQ(DD?opN6yD0%Wz*gJ+$zdsX+c=H3y#?--nvhS6Zw<>W9zC=#>&Qkw;Kph(O zGpFZ43L`oinq>8Do|#xGp;VBfX&XH9f{2k5W<)&qBc&_fuIjM%d@Q_ONekltQXs&m z>U@)98r~^3vgB¶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

          ^SXbDKBsQ1XA*)qi2H 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

          ^CQo4_4}AmejKBGFmFAO&Abo0!5(&&~ltX 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 z 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�}ATq8*lvF&xo8oF6E9$Y=E)i$n%`e^<@k*Wk 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