From c9fbef1950a572bb929dcd2a75327479b1d2588f Mon Sep 17 00:00:00 2001 From: Anton Date: Mon, 15 Apr 2019 14:34:04 +0300 Subject: [PATCH 001/134] word correction --- 2-ui/5-loading/01-onload-ondomcontentloaded/article.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/2-ui/5-loading/01-onload-ondomcontentloaded/article.md b/2-ui/5-loading/01-onload-ondomcontentloaded/article.md index db1590158..06772873e 100644 --- a/2-ui/5-loading/01-onload-ondomcontentloaded/article.md +++ b/2-ui/5-loading/01-onload-ondomcontentloaded/article.md @@ -84,7 +84,7 @@ So here we're talking about "regular" scripts, like ``, or ` External style sheets don't affect DOM, so `DOMContentLoaded` does not wait for them. -But there's a pitfall. Isf we have a script after the style, then that script must wait until the stylesheet loads: +But there's a pitfall. If we have a script after the style, then that script must wait until the stylesheet loads: ```html From e9e383388d784666c140edbfb9398d349402715a Mon Sep 17 00:00:00 2001 From: Alexey Pyltsyn Date: Sat, 27 Apr 2019 13:19:29 +0300 Subject: [PATCH 002/134] array-methods: wording --- 1-js/05-data-types/05-array-methods/article.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/1-js/05-data-types/05-array-methods/article.md b/1-js/05-data-types/05-array-methods/article.md index 42bbd9465..3a4390cd4 100644 --- a/1-js/05-data-types/05-array-methods/article.md +++ b/1-js/05-data-types/05-array-methods/article.md @@ -36,7 +36,7 @@ That's natural, because `delete obj.key` removes a value by the `key`. It's all So, special methods should be used. -The [arr.splice(str)](mdn:js/Array/splice) method is a swiss army knife for arrays. It can do everything: add, remove and insert elements. +The [arr.splice(str)](mdn:js/Array/splice) method is a swiss army knife for arrays. It can do everything: insert, remove and replace elements. The syntax is: From e41783a78ea5c196d18969fff94e3c369ed90c22 Mon Sep 17 00:00:00 2001 From: Alexey Pyltsyn Date: Sat, 27 Apr 2019 13:22:30 +0300 Subject: [PATCH 003/134] regexp-character-classes: wording --- 9-regular-expressions/03-regexp-character-classes/article.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/9-regular-expressions/03-regexp-character-classes/article.md b/9-regular-expressions/03-regexp-character-classes/article.md index c1bc1bad5..d1fcf66cb 100644 --- a/9-regular-expressions/03-regexp-character-classes/article.md +++ b/9-regular-expressions/03-regexp-character-classes/article.md @@ -123,7 +123,7 @@ Another example: a regexp `pattern:\b\d\d\b` looks for standalone two-digit numb alert( "1 23 456 78".match(/\b\d\d\b/g) ); // 23,78 ``` -```warn header="Word boundary doesn't work for non-English alphabets" +```warn header="Word boundary doesn't work for non-Latin alphabets" The word boundary check `\b` tests for a boundary between `\w` and something else. But `\w` means an English letter (or a digit or an underscore), so the test won't work for other characters (like cyrillic or hieroglyphs). ``` From 10decb52eed04c8716f3751181c4e6be95c899e3 Mon Sep 17 00:00:00 2001 From: Ovidiu Voicu Date: Sat, 27 Apr 2019 16:45:34 +0300 Subject: [PATCH 004/134] Fix typo --- 1-js/13-modules/02-import-export/article.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/1-js/13-modules/02-import-export/article.md b/1-js/13-modules/02-import-export/article.md index bf31065bc..21ac63151 100644 --- a/1-js/13-modules/02-import-export/article.md +++ b/1-js/13-modules/02-import-export/article.md @@ -377,7 +377,7 @@ export {default as Github} from './providers/github.js'; ````warn header="Re-exporting default is tricky" Please note: `export User from './user.js'` won't work. It's actually a syntax error. To re-export the default export, we must mention it explicitly `{default as ...}`, like in the example above. -Also, there's another oddity: `export * from './user.js'` re-exports only named exports, exluding the default one. Once again, we need to mention it explicitly. +Also, there's another oddity: `export * from './user.js'` re-exports only named exports, excluding the default one. Once again, we need to mention it explicitly. For instance, to re-export everything, two statements will be necessary: ```js From 50106208f75293d6b8ebbc32d8a3893b41144939 Mon Sep 17 00:00:00 2001 From: Chidi Okoye Date: Sat, 27 Apr 2019 15:20:00 +0100 Subject: [PATCH 005/134] Update article.md --- 1-js/02-first-steps/05-types/article.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/1-js/02-first-steps/05-types/article.md b/1-js/02-first-steps/05-types/article.md index f81705005..0c9954ecf 100644 --- a/1-js/02-first-steps/05-types/article.md +++ b/1-js/02-first-steps/05-types/article.md @@ -226,7 +226,7 @@ The last three lines may need additional explanation: ## Summary -There are 7 basic types in JavaScript. +There are 7 basic data types in JavaScript. - `number` for numbers of any kind: integer or floating-point. - `string` for strings. A string may have one or more characters, there's no separate single-character type. From f2328f035f33b9c7c37c95b5eef4feeb66ecdc63 Mon Sep 17 00:00:00 2001 From: Alexey Pyltsyn Date: Mon, 29 Apr 2019 02:45:13 +0300 Subject: [PATCH 006/134] Fix typo: authomatically --- 4-binary/03-blob/article.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/4-binary/03-blob/article.md b/4-binary/03-blob/article.md index d75973ea7..d7ad291b8 100644 --- a/4-binary/03-blob/article.md +++ b/4-binary/03-blob/article.md @@ -72,7 +72,7 @@ link.href = URL.createObjectURL(blob); ``` -We can also create a link dynamically in JavaScript and simulate a click by `link.click()`, then download starts authomatically. +We can also create a link dynamically in JavaScript and simulate a click by `link.click()`, then download starts automatically. Here's the similar "on the fly" blob creation and download code, but without HTML: From ad8a7170e533f1501ffb31f507666877edf1bb72 Mon Sep 17 00:00:00 2001 From: Alexander Shchegol Date: Mon, 29 Apr 2019 13:43:45 +0300 Subject: [PATCH 007/134] Array methods: minor mistake --- 1-js/05-data-types/05-array-methods/article.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/1-js/05-data-types/05-array-methods/article.md b/1-js/05-data-types/05-array-methods/article.md index 42bbd9465..970f60996 100644 --- a/1-js/05-data-types/05-array-methods/article.md +++ b/1-js/05-data-types/05-array-methods/article.md @@ -239,7 +239,7 @@ These are methods to search for something in an array. The methods [arr.indexOf](mdn:js/Array/indexOf), [arr.lastIndexOf](mdn:js/Array/lastIndexOf) and [arr.includes](mdn:js/Array/includes) have the same syntax and do essentially the same as their string counterparts, but operate on items instead of characters: - `arr.indexOf(item, from)` looks for `item` starting from index `from`, and returns the index where it was found, otherwise `-1`. -- `arr.lastIndexOf(item, from)` -- same, but looks from right to left. +- `arr.lastIndexOf(item, from)` -- same, but looks for from right to left. - `arr.includes(item, from)` -- looks for `item` starting from index `from`, returns `true` if found. For instance: From 6b9515ffd0137924e51c7443ef71140301e747a5 Mon Sep 17 00:00:00 2001 From: Ilya Kantor Date: Tue, 30 Apr 2019 08:25:28 +0200 Subject: [PATCH 008/134] minor --- .../09-call-apply-decorators/04-throttle/task.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/1-js/06-advanced-functions/09-call-apply-decorators/04-throttle/task.md b/1-js/06-advanced-functions/09-call-apply-decorators/04-throttle/task.md index 716b4e1d6..8dd77368d 100644 --- a/1-js/06-advanced-functions/09-call-apply-decorators/04-throttle/task.md +++ b/1-js/06-advanced-functions/09-call-apply-decorators/04-throttle/task.md @@ -12,13 +12,13 @@ Let's check the real-life application to better understand that requirement and **For instance, we want to track mouse movements.** -In browser we can setup a function to run at every mouse micro-movement and get the pointer location as it moves. During an active mouse usage, this function usually runs very frequently, can be something like 100 times per second (every 10 ms). +In browser we can setup a function to run at every mouse movement and get the pointer location as it moves. During an active mouse usage, this function usually runs very frequently, can be something like 100 times per second (every 10 ms). **The tracking function should update some information on the web-page.** Updating function `update()` is too heavy to do it on every micro-movement. There is also no sense in making it more often than once per 100ms. -So we'll assign `throttle(update, 100)` as the function to run on each mouse move instead of the original `update()`. The decorator will be called often, but `update()` will be called at maximum once per 100ms. +So we'll wrap it into the decorator: use `throttle(update, 100)` as the function to run on each mouse move instead of the original `update()`. The decorator will be called often, but `update()` will be called at maximum once per 100ms. Visually, it will look like this: From ae87b1a8c8fc271a3fde76b28547b3cf2b65c592 Mon Sep 17 00:00:00 2001 From: Ovidiu Voicu Date: Tue, 30 Apr 2019 10:48:42 +0300 Subject: [PATCH 009/134] Fix typo dynamicaly to dinamically --- 1-js/13-modules/03-modules-dynamic-imports/article.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/1-js/13-modules/03-modules-dynamic-imports/article.md b/1-js/13-modules/03-modules-dynamic-imports/article.md index d8de2bcfa..5d2538729 100644 --- a/1-js/13-modules/03-modules-dynamic-imports/article.md +++ b/1-js/13-modules/03-modules-dynamic-imports/article.md @@ -5,7 +5,7 @@ Export and import statements that we covered in previous chaters are called "sta That's because they are indeed static. The syntax is very strict. -First, we can't dynamicaly generate any parameters of `import`. +First, we can't dynamically generate any parameters of `import`. The module path must be a primitive string, can't be a function call. This won't work: From 2802a6d5cd20d688c58fe1f8c3d0b9d299a8ce84 Mon Sep 17 00:00:00 2001 From: pimonenkov <46793251+pimonenkov@users.noreply.github.com> Date: Tue, 30 Apr 2019 14:07:36 +0300 Subject: [PATCH 010/134] replace "press" with "click" "press" is when we push a keyboard key "click"/"select" is when we use a mouse button. --- 1-js/02-first-steps/16-javascript-specials/article.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/1-js/02-first-steps/16-javascript-specials/article.md b/1-js/02-first-steps/16-javascript-specials/article.md index e266861c7..9de1d6251 100644 --- a/1-js/02-first-steps/16-javascript-specials/article.md +++ b/1-js/02-first-steps/16-javascript-specials/article.md @@ -103,7 +103,7 @@ More in: and . We're using a browser as a working environment, so basic UI functions will be: [`prompt(question, [default])`](mdn:api/Window/prompt) -: Ask a `question`, and return either what the visitor entered or `null` if they pressed "cancel". +: Ask a `question`, and return either what the visitor entered or `null` if they clicked "cancel". [`confirm(question)`](mdn:api/Window/confirm) : Ask a `question` and suggest to choose between Ok and Cancel. The choice is returned as `true/false`. From aaab1d4f57a4fb92bfaa7f48e2ba3ce4bbee2319 Mon Sep 17 00:00:00 2001 From: afeldspar Date: Tue, 30 Apr 2019 08:57:48 -0400 Subject: [PATCH 011/134] Update article.md minor spelling and grammar corrections --- 4-binary/04-file/article.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/4-binary/04-file/article.md b/4-binary/04-file/article.md index e9a01b1b4..af2671298 100644 --- a/4-binary/04-file/article.md +++ b/4-binary/04-file/article.md @@ -1,6 +1,6 @@ # File and FileReader -A [File](https://www.w3.org/TR/FileAPI/#dfn-file) object inhereits from `Blob`, but is extended with filesystem-related capabilities. +A [File](https://www.w3.org/TR/FileAPI/#dfn-file) object inherits from `Blob`, but is extended with filesystem-related capabilities. There are two ways to obtain it. @@ -114,7 +114,7 @@ That's only inside a Web Worker though, because delays and hang-ups in Web Worke ## Summary -`File` object inherit from `Blob`. +`File` objects inherit from `Blob`. In addition to `Blob` methods and properties, `File` objects also have `fileName` and `lastModified` properties, plus the internal ability to read from filesystem. We usually get `File` objects from user input, like `` or drag'n'drop. From 593e122f85ab1ae562d3f1735471b59e32bd6cdd Mon Sep 17 00:00:00 2001 From: Ilya Kantor Date: Tue, 30 Apr 2019 20:19:40 +0200 Subject: [PATCH 012/134] fix --- 1-js/05-data-types/02-number/article.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/1-js/05-data-types/02-number/article.md b/1-js/05-data-types/02-number/article.md index 7ca012c27..af06706cd 100644 --- a/1-js/05-data-types/02-number/article.md +++ b/1-js/05-data-types/02-number/article.md @@ -1,6 +1,6 @@ # Numbers -All numbers in JavaScript are stored in 64-bit format [IEEE-754](http://en.wikipedia.org/wiki/IEEE_754-1985), also known as "double precision". +All numbers in JavaScript are stored in 64-bit format [IEEE-754](https://en.wikipedia.org/wiki/IEEE_754-2008_revision), also known as "double precision floating point numbers". Let's recap and expand upon what we currently know about them. @@ -177,7 +177,7 @@ There are two ways to do so: ## Imprecise calculations -Internally, a number is represented in 64-bit format [IEEE-754](http://en.wikipedia.org/wiki/IEEE_754-1985), so there are exactly 64 bits to store a number: 52 of them are used to store the digits, 11 of them store the position of the decimal point (they are zero for integer numbers), and 1 bit is for the sign. +Internally, a number is represented in 64-bit format [IEEE-754](https://en.wikipedia.org/wiki/IEEE_754-2008_revision), so there are exactly 64 bits to store a number: 52 of them are used to store the digits, 11 of them store the position of the decimal point (they are zero for integer numbers), and 1 bit is for the sign. If a number is too big, it would overflow the 64-bit storage, potentially giving an infinity: From f8ef37f6a4e41cdffc0b6786b6a9dd1bc3983c82 Mon Sep 17 00:00:00 2001 From: Alexey Pyltsyn Date: Tue, 30 Apr 2019 22:53:08 +0300 Subject: [PATCH 013/134] 21-regexp-unicode-properties: fix title --- 9-regular-expressions/21-regexp-unicode-properties/article.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/9-regular-expressions/21-regexp-unicode-properties/article.md b/9-regular-expressions/21-regexp-unicode-properties/article.md index eac9bfbca..c11914825 100644 --- a/9-regular-expressions/21-regexp-unicode-properties/article.md +++ b/9-regular-expressions/21-regexp-unicode-properties/article.md @@ -1,5 +1,5 @@ -# Unicode character properies \p +# Unicode character properties \p [Unicode](https://en.wikipedia.org/wiki/Unicode), the encoding format used by JavaScript strings, has a lot of properties for different characters (or, technically, code points). They describe which "categories" character belongs to, and a variety of technical details. From 6a5f14da411590d4e825cefe494927b78d69633e Mon Sep 17 00:00:00 2001 From: Alexey Pyltsyn Date: Wed, 1 May 2019 13:41:16 +0300 Subject: [PATCH 014/134] 6-data-storage/02-localstorage: fix highlight --- 6-data-storage/02-localstorage/article.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/6-data-storage/02-localstorage/article.md b/6-data-storage/02-localstorage/article.md index 41a895b05..128a9698e 100644 --- a/6-data-storage/02-localstorage/article.md +++ b/6-data-storage/02-localstorage/article.md @@ -180,7 +180,7 @@ That's exactly because `sessionStorage` is bound not only to the origin, but als When the data gets updated in `localStorage` or `sessionStorage`, [storage](https://www.w3.org/TR/webstorage/#the-storage-event) event triggers, with properties: -- `key` – the key that was changed (null if `.clear()` is called). +- `key` – the key that was changed (`null` if `.clear()` is called). - `oldValue` – the old value (`null` if the key is newly added). - `newValue` – the new value (`null` if the key is removed). - `url` – the url of the document where the update happened. From ca92aed539d767e68882a66288573057c6e52d7a Mon Sep 17 00:00:00 2001 From: Alexey Pyltsyn Date: Wed, 1 May 2019 16:44:47 +0300 Subject: [PATCH 015/134] 1-js/12-generators-iterators/2-async-iterators-generators: fix typo --- .../2-async-iterators-generators/article.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/1-js/12-generators-iterators/2-async-iterators-generators/article.md b/1-js/12-generators-iterators/2-async-iterators-generators/article.md index 45cf73938..43b214a0f 100644 --- a/1-js/12-generators-iterators/2-async-iterators-generators/article.md +++ b/1-js/12-generators-iterators/2-async-iterators-generators/article.md @@ -310,7 +310,7 @@ async function* fetchCommits(repo) { 1. We use the browser `fetch` method to download from a remote URL. It allows to supply authorization and other headers if needed, here GitHub requires `User-Agent`. 2. The fetch result is parsed as JSON, that's again a `fetch`-specific method. -3. We can get the next page URL from the `Link` header of the response. It has a special format, so we use a regexp for that. The next page URL may look like this: `https://api.github.com/repositories/93253246/commits?page=2`, it's generatd by GitHub itself. +3. We can get the next page URL from the `Link` header of the response. It has a special format, so we use a regexp for that. The next page URL may look like this: `https://api.github.com/repositories/93253246/commits?page=2`, it's generated by GitHub itself. 4. Then we yield all commits received, and when they finish -- the next `while(url)` iteration will trigger, making one more request. An example of use (shows commit authors in console): From feebafcc9e873c4faec2b2d645e8cc8968ac5f56 Mon Sep 17 00:00:00 2001 From: Alexey Pyltsyn Date: Wed, 1 May 2019 16:51:27 +0300 Subject: [PATCH 016/134] Fix typos --- .../04-private-protected-properties-methods/article.md | 2 +- 1-js/09-classes/06-instanceof/article.md | 2 +- 1-js/10-error-handling/1-try-catch/article.md | 2 +- 1-js/11-async/02-promise-basics/article.md | 2 +- 1-js/11-async/07-microtask-queue/article.md | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/1-js/09-classes/04-private-protected-properties-methods/article.md b/1-js/09-classes/04-private-protected-properties-methods/article.md index 6cd9cc5fb..ea6753419 100644 --- a/1-js/09-classes/04-private-protected-properties-methods/article.md +++ b/1-js/09-classes/04-private-protected-properties-methods/article.md @@ -171,7 +171,7 @@ class CoffeeMachine { new CoffeeMachine().setWaterAmount(100); ``` -That looks a bit longer, but functions are more flexible. They can accept multiple arguments (even if we don't need them right now). So, for the future, just in case we need to refactor something, functions are a safer choise. +That looks a bit longer, but functions are more flexible. They can accept multiple arguments (even if we don't need them right now). So, for the future, just in case we need to refactor something, functions are a safer choice. Surely, there's a tradeoff. On the other hand, get/set syntax is shorter, so ultimately there's no strict rule, it's up to you to decide. ```` diff --git a/1-js/09-classes/06-instanceof/article.md b/1-js/09-classes/06-instanceof/article.md index 702c9e6b2..f545eee0a 100644 --- a/1-js/09-classes/06-instanceof/article.md +++ b/1-js/09-classes/06-instanceof/article.md @@ -182,7 +182,7 @@ alert( {}.toString.call(user) ); // [object User] For most environment-specific objects, there is such a property. Here are few browser specific examples: ```js run -// toStringTag for the envinronment-specific object and class: +// toStringTag for the environment-specific object and class: alert( window[Symbol.toStringTag]); // window alert( XMLHttpRequest.prototype[Symbol.toStringTag] ); // XMLHttpRequest diff --git a/1-js/10-error-handling/1-try-catch/article.md b/1-js/10-error-handling/1-try-catch/article.md index 797293582..01e8c1e0f 100644 --- a/1-js/10-error-handling/1-try-catch/article.md +++ b/1-js/10-error-handling/1-try-catch/article.md @@ -68,7 +68,7 @@ Let's see more examples. } catch(err) { - alert(`Error has occured!`); // *!*(3) <--*/!* + alert(`Error has occurred!`); // *!*(3) <--*/!* } diff --git a/1-js/11-async/02-promise-basics/article.md b/1-js/11-async/02-promise-basics/article.md index c4bb84eb1..31f7184f2 100644 --- a/1-js/11-async/02-promise-basics/article.md +++ b/1-js/11-async/02-promise-basics/article.md @@ -148,7 +148,7 @@ The second argument of `.then` is a function that: 1. runs when the Promise is rejected, and 2. receives the error. -For instance, here's a reaction to a successfuly resolved promise: +For instance, here's a reaction to a successfully resolved promise: ```js run let promise = new Promise(function(resolve, reject) { diff --git a/1-js/11-async/07-microtask-queue/article.md b/1-js/11-async/07-microtask-queue/article.md index 993042e57..29179c19f 100644 --- a/1-js/11-async/07-microtask-queue/article.md +++ b/1-js/11-async/07-microtask-queue/article.md @@ -167,7 +167,7 @@ setTimeout(() => promise.catch(err => alert('caught'))); window.addEventListener('unhandledrejection', event => alert(event.reason)); ``` -Now the unhandled rejction appears again. Why? Because `unhandledrejection` triggers when the microtask queue is complete. The engine examines promises and, if any of them is in "rejected" state, then the event is generated. +Now the unhandled rejection appears again. Why? Because `unhandledrejection` triggers when the microtask queue is complete. The engine examines promises and, if any of them is in "rejected" state, then the event is generated. In the example, the `.catch` added by `setTimeout` triggers too, of course it does, but later, after `unhandledrejection` has already occurred. From b457de1e1267dae2debb1e9af49a391d481e536d Mon Sep 17 00:00:00 2001 From: Enrico Palmieri <25690552+rezyx@users.noreply.github.com> Date: Wed, 1 May 2019 21:27:21 +0200 Subject: [PATCH 017/134] Replace error string with template strings --- 1-js/11-async/02-promise-basics/article.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/1-js/11-async/02-promise-basics/article.md b/1-js/11-async/02-promise-basics/article.md index 31f7184f2..646cd7176 100644 --- a/1-js/11-async/02-promise-basics/article.md +++ b/1-js/11-async/02-promise-basics/article.md @@ -290,7 +290,7 @@ function loadScript(src, callback) { script.src = src; script.onload = () => callback(null, script); - script.onerror = () => callback(new Error(`Script load error ` + src)); + script.onerror = () => callback(new Error(`Script load error for ${src}`)); document.head.append(script); } @@ -307,7 +307,7 @@ function loadScript(src) { script.src = src; script.onload = () => resolve(script); - script.onerror = () => reject(new Error("Script load error: " + src)); + script.onerror = () => reject(new Error(`Script load error for ${src}`)); document.head.append(script); }); From be9dbd7545b586fefd19d386077c8f0961681cb4 Mon Sep 17 00:00:00 2001 From: yuenm18 <11188600+yuenm18@users.noreply.github.com> Date: Thu, 2 May 2019 22:09:05 -0700 Subject: [PATCH 018/134] Fixed typos in defer example --- 2-ui/5-loading/02-script-async-defer/article.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/2-ui/5-loading/02-script-async-defer/article.md b/2-ui/5-loading/02-script-async-defer/article.md index f5c3faeb1..b5fab5c06 100644 --- a/2-ui/5-loading/02-script-async-defer/article.md +++ b/2-ui/5-loading/02-script-async-defer/article.md @@ -75,14 +75,14 @@ Deferred scripts keep their relative order, just like regular scripts. So, if we have a long script first, and then a smaller one, then the latter one waits. ```html - - + + ``` ```smart header="The small script downloads first, runs second" Browsers scan the page for scripts and download them in parallel, to improve performance. So in the example above both scripts download in parallel. The `small.js` probably makes it first. -But the specification requres scripts to execute in the document order, so it waits for `long.js` to execute. +But the specification requires scripts to execute in the document order, so it waits for `long.js` to execute. ``` ```smart header="The `defer` attribute is only for external scripts" From 940535897c0a36a091b886322d8fee6c7339d1dc Mon Sep 17 00:00:00 2001 From: Alexey Pyltsyn Date: Fri, 3 May 2019 14:38:31 +0300 Subject: [PATCH 019/134] 1-js/06-advanced-functions/10-bind: fix markup --- 1-js/06-advanced-functions/10-bind/article.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/1-js/06-advanced-functions/10-bind/article.md b/1-js/06-advanced-functions/10-bind/article.md index aed139c1c..06e2000ff 100644 --- a/1-js/06-advanced-functions/10-bind/article.md +++ b/1-js/06-advanced-functions/10-bind/article.md @@ -100,7 +100,7 @@ The basic syntax is: ```js // more complex syntax will be little later let boundFunc = func.bind(context); -```` +``` The result of `func.bind(context)` is a special function-like "exotic object", that is callable as function and transparently passes the call to `func` setting `this=context`. From 5982afb1bd7f9a8529ed8704fa799e79c7d7bd21 Mon Sep 17 00:00:00 2001 From: Enrico Palmieri <25690552+rezyx@users.noreply.github.com> Date: Sat, 4 May 2019 10:10:02 +0200 Subject: [PATCH 020/134] Fix GitHub casing --- 1-js/11-async/03-promise-chaining/article.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/1-js/11-async/03-promise-chaining/article.md b/1-js/11-async/03-promise-chaining/article.md index 62e05bdd6..b2ba231ec 100644 --- a/1-js/11-async/03-promise-chaining/article.md +++ b/1-js/11-async/03-promise-chaining/article.md @@ -283,14 +283,14 @@ fetch('/article/promise-chaining/user.json') Now let's do something with the loaded user. -For instance, we can make one more request to github, load the user profile and show the avatar: +For instance, we can make one more request to GitHub, load the user profile and show the avatar: ```js run // Make a request for user.json fetch('/article/promise-chaining/user.json') // Load it as json .then(response => response.json()) - // Make a request to github + // Make a request to GitHub .then(user => fetch(`https://api.github.com/users/${user.name}`)) // Load the response as json .then(response => response.json()) From 047ffa28779cc7d641bcac255aabc61c66eba483 Mon Sep 17 00:00:00 2001 From: Ilya Kantor Date: Sat, 4 May 2019 13:37:18 +0200 Subject: [PATCH 021/134] Update article.md --- 1-js/01-getting-started/1-intro/article.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/1-js/01-getting-started/1-intro/article.md b/1-js/01-getting-started/1-intro/article.md index f4f921d43..bbc86c889 100644 --- a/1-js/01-getting-started/1-intro/article.md +++ b/1-js/01-getting-started/1-intro/article.md @@ -6,7 +6,7 @@ Let's see what's so special about JavaScript, what we can achieve with it, and w *JavaScript* was initially created to *"make web pages alive"*. -The programs in this language are called *scripts*. They can be written right in a web page's HTML and executed automatically as the page loads. +The programs in this language are called *scripts*. They can be written right in a web page's HTML and run automatically as the page loads. Scripts are provided and executed as plain text. They don't need special preparation or compilation to run. From 1764ee348999431be451bf722abcf3ada063de5d Mon Sep 17 00:00:00 2001 From: Luca Leone Date: Sat, 4 May 2019 14:40:54 +0200 Subject: [PATCH 022/134] Fixed a small typo --- 1-js/06-advanced-functions/01-recursion/article.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/1-js/06-advanced-functions/01-recursion/article.md b/1-js/06-advanced-functions/01-recursion/article.md index 036ae7f51..735c75bf3 100644 --- a/1-js/06-advanced-functions/01-recursion/article.md +++ b/1-js/06-advanced-functions/01-recursion/article.md @@ -319,7 +319,7 @@ let company = { In other words, a company has departments. - A department may have an array of staff. For instance, `sales` department has 2 employees: John and Alice. -- Or a department may split into subdepartments, like `development` has two branches: `sites` and `internals`. Each of them has the own staff. +- Or a department may split into subdepartments, like `development` has two branches: `sites` and `internals`. Each of them has their own staff. - It is also possible that when a subdepartment grows, it divides into subsubdepartments (or teams). For instance, the `sites` department in the future may be split into teams for `siteA` and `siteB`. And they, potentially, can split even more. That's not on the picture, just something to have in mind. From 05f45021ca0aac8fcb4952f6925d4d5014d84487 Mon Sep 17 00:00:00 2001 From: Ilya Kantor Date: Sat, 4 May 2019 20:52:22 +0200 Subject: [PATCH 023/134] fixes --- 1-js/05-data-types/02-number/article.md | 2 +- 1-js/05-data-types/06-iterable/article.md | 14 ++++++++------ 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/1-js/05-data-types/02-number/article.md b/1-js/05-data-types/02-number/article.md index af06706cd..b088fa12e 100644 --- a/1-js/05-data-types/02-number/article.md +++ b/1-js/05-data-types/02-number/article.md @@ -205,7 +205,7 @@ Ouch! There are more consequences than an incorrect comparison here. Imagine you But why does this happen? -A number is stored in memory in its binary form, a sequence of ones and zeroes. But fractions like `0.1`, `0.2` that look simple in the decimal numeric system are actually unending fractions in their binary form. +A number is stored in memory in its binary form, a sequence of bits - ones and zeroes. But fractions like `0.1`, `0.2` that look simple in the decimal numeric system are actually unending fractions in their binary form. In other words, what is `0.1`? It is one divided by ten `1/10`, one-tenth. In decimal numeral system such numbers are easily representable. Compare it to one-third: `1/3`. It becomes an endless fraction `0.33333(3)`. diff --git a/1-js/05-data-types/06-iterable/article.md b/1-js/05-data-types/06-iterable/article.md index 7f72f5caf..474d0463d 100644 --- a/1-js/05-data-types/06-iterable/article.md +++ b/1-js/05-data-types/06-iterable/article.md @@ -105,7 +105,7 @@ for (let num of range) { Now `range[Symbol.iterator]()` returns the `range` object itself: it has the necessary `next()` method and remembers the current iteration progress in `this.current`. Shorter? Yes. And sometimes that's fine too. -The downside is that now it's impossible to have two `for..of` loops running over the object simultaneously: they'll share the iteration state, because there's only one iterator -- the object itself. But two parallel for-ofs is a rare thing, doable with some async scenarios. +The downside is that now it's impossible to have two `for..of` loops running over the object simultaneously: they'll share the iteration state, because there's only one iterator -- the object itself. But two parallel for-ofs is a rare thing, even in async scenarios. ```smart header="Infinite iterators" Infinite iterators are also possible. For instance, the `range` becomes infinite for `range.to = Infinity`. Or we can make an iterable object that generates an infinite sequence of pseudorandom numbers. Also can be useful. @@ -144,7 +144,7 @@ Normally, internals of iterables are hidden from the external code. There's a `f But to understand things a little bit deeper let's see how to create an iterator explicitly. -We'll iterate over a string the same way as `for..of`, but with direct calls. This code gets a string iterator and calls it "manually": +We'll iterate over a string in exactlly the same way as `for..of`, but with direct calls. This code creates a string iterator and gets values from it "manually": ```js run let str = "Hello"; @@ -170,7 +170,9 @@ There are two official terms that look similar, but are very different. Please m - *Iterables* are objects that implement the `Symbol.iterator` method, as described above. - *Array-likes* are objects that have indexes and `length`, so they look like arrays. -Naturally, these properties can combine. For instance, strings are both iterable (`for..of` works on them) and array-like (they have numeric indexes and `length`). +When we use JavaScript for practical tasks in browser or other environments, we may meet objects that are iterables or array-likes, or both. + +For instance, strings are both iterable (`for..of` works on them) and array-like (they have numeric indexes and `length`). But an iterable may be not array-like. And vice versa an array-like may be not iterable. @@ -191,11 +193,11 @@ for (let item of arrayLike) {} */!* ``` -What do they have in common? Both iterables and array-likes are usually *not arrays*, they don't have `push`, `pop` etc. That's rather inconvenient if we have such an object and want to work with it as with an array. +Both iterables and array-likes are usually *not arrays*, they don't have `push`, `pop` etc. That's rather inconvenient if we have such an object and want to work with it as with an array. E.g. we would like to work with `range` using array methods. How to achieve that? ## Array.from -There's a universal method [Array.from](mdn:js/Array/from) that brings them together. It takes an iterable or array-like value and makes a "real" `Array` from it. Then we can call array methods on it. +There's a universal method [Array.from](mdn:js/Array/from) that takes an iterable or array-like value and makes a "real" `Array` from it. Then we can call array methods on it. For instance: @@ -227,7 +229,7 @@ The full syntax for `Array.from` allows to provide an optional "mapping" functio Array.from(obj[, mapFn, thisArg]) ``` -The second argument `mapFn` should be the function to apply to each element before adding to the array, and `thisArg` allows to set `this` for it. +The optional second argument `mapFn` can be a function that will be applied to each element before adding to the array, and `thisArg` allows to set `this` for it. For instance: From 1ba420f511df75e335ae324713dbb9f5aba039ec Mon Sep 17 00:00:00 2001 From: Ilya Kantor Date: Sat, 4 May 2019 22:34:27 +0200 Subject: [PATCH 024/134] fixes --- .../1-string-new-property/solution.md | 21 +++++++------------ .../01-primitives-methods/article.md | 12 +++++------ 2 files changed, 14 insertions(+), 19 deletions(-) diff --git a/1-js/05-data-types/01-primitives-methods/1-string-new-property/solution.md b/1-js/05-data-types/01-primitives-methods/1-string-new-property/solution.md index a169f7769..4db6bb725 100644 --- a/1-js/05-data-types/01-primitives-methods/1-string-new-property/solution.md +++ b/1-js/05-data-types/01-primitives-methods/1-string-new-property/solution.md @@ -6,26 +6,21 @@ let str = "Hello"; str.test = 5; // (*) -alert(str.test); +alert(str.test); ``` -There may be two kinds of result: -1. `undefined` -2. An error. +Depending on whether you have `use strict` or not, the result may be: +1. `undefined` (no string) +2. An error (strict mode). Why? Let's replay what's happening at line `(*)`: 1. When a property of `str` is accessed, a "wrapper object" is created. -2. The operation with the property is carried out on it. So, the object gets the `test` property. -3. The operation finishes and the "wrapper object" disappears. +2. In strict mode, writing into it is an error. +3. Otherwise, the operation with the property is carried on, the object gets the `test` property, but after that the "wrapper object" disappears. -So, on the last line, `str` has no trace of the property. A new wrapper object for every object operation on a string. - -Some browsers though may decide to further limit the programmer and disallow to assign properties to primitives at all. That's why in practice we can also see errors at line `(*)`. It's a little bit farther from the specification though. +So, without strict mode, in the last line `str` has no trace of the property. **This example clearly shows that primitives are not objects.** -They just can not store data. - -All property/method operations are performed with the help of temporary objects. - +They can't store additional data. diff --git a/1-js/05-data-types/01-primitives-methods/article.md b/1-js/05-data-types/01-primitives-methods/article.md index a2dcceb19..bc94ef994 100644 --- a/1-js/05-data-types/01-primitives-methods/article.md +++ b/1-js/05-data-types/01-primitives-methods/article.md @@ -14,7 +14,7 @@ A primitive An object - Is capable of storing multiple values as properties. -- Can be created with `{}`, for instance: `{name: "John", age: 30}`. There are other kinds of objects in JavaScript; functions, for example, are objects. +- Can be created with `{}`, for instance: `{name: "John", age: 30}`. There are other kinds of objects in JavaScript: functions, for example, are objects. One of the best things about objects is that we can store a function as one of its properties. @@ -48,7 +48,7 @@ The solution looks a little bit awkward, but here it is: 1. Primitives are still primitive. A single value, as desired. 2. The language allows access to methods and properties of strings, numbers, booleans and symbols. -3. When this happens, a special "object wrapper" that provides the extra functionality is created, and then is destroyed. +3. In order for that to work, a special "object wrapper" that provides the extra functionality is created, and then is destroyed. The "object wrappers" are different for each primitive type and are called: `String`, `Number`, `Boolean` and `Symbol`. Thus, they provide different sets of methods. @@ -91,18 +91,18 @@ In JavaScript, that's also possible for historical reasons, but highly **unrecom For instance: ```js run -alert( typeof 1 ); // "number" +alert( typeof 0 ); // "number" -alert( typeof new Number(1) ); // "object"! +alert( typeof new Number(0) ); // "object"! ``` -And because what follows, `zero`, is an object, the alert will show up: +Objects are always truthy in `if`, so here the alert will show up: ```js run let zero = new Number(0); if (zero) { // zero is true, because it's an object - alert( "zero is truthy?!?" ); + alert( "zero is truthy!?!" ); } ``` From 1e99f7d57f63aad102a4c3ddf458362ac2b29362 Mon Sep 17 00:00:00 2001 From: Ilya Kantor Date: Sun, 5 May 2019 08:16:32 +0200 Subject: [PATCH 025/134] fixes --- .../03-code-quality/01-debugging-chrome/article.md | 4 ++-- 3-frames-and-windows/01-popup-windows/article.md | 14 +++++--------- 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/1-js/03-code-quality/01-debugging-chrome/article.md b/1-js/03-code-quality/01-debugging-chrome/article.md index eb9434864..2ca0d7003 100644 --- a/1-js/03-code-quality/01-debugging-chrome/article.md +++ b/1-js/03-code-quality/01-debugging-chrome/article.md @@ -20,7 +20,7 @@ Here's what you should see if you are doing it for the first time: The toggler button opens the tab with files. -Let's click it and select `index.html` and then `hello.js` in the tree view. Here's what should show up: +Let's click it and select `hello.js` in the tree view. Here's what should show up: ![](chrome-tabs.png) @@ -34,7 +34,7 @@ Now you could click the same toggler Date: Sun, 5 May 2019 09:09:58 +0200 Subject: [PATCH 026/134] minor --- 1-js/02-first-steps/04-variables/article.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/1-js/02-first-steps/04-variables/article.md b/1-js/02-first-steps/04-variables/article.md index 8fe13a970..e69befeda 100644 --- a/1-js/02-first-steps/04-variables/article.md +++ b/1-js/02-first-steps/04-variables/article.md @@ -136,7 +136,7 @@ alert(message); // Hello world! ``` ```smart header="Functional languages" -It's interesting to note that [functional](https://en.wikipedia.org/wiki/Functional_programming) programming languages, like [Scala](http://www.scala-lang.org/) or [Erlang](http://www.erlang.org/), forbid changing variable values. +It's interesting to note that there exist [functional](https://en.wikipedia.org/wiki/Functional_programming) programming languages, like [Scala](http://www.scala-lang.org/) or [Erlang](http://www.erlang.org/) that forbid changing variable values. In such languages, once the value is stored "in the box", it's there forever. If we need to store something else, the language forces us to create a new box (declare a new variable). We can't reuse the old one. @@ -182,7 +182,7 @@ let my-name; // hyphens '-' aren't allowed in the name Variables named `apple` and `AppLE` are two different variables. ``` -````smart header="Non-English letters are allowed, but not recommended" +````smart header="Non-Latin letters are allowed, but not recommended" It is possible to use any language, including cyrillic letters or even hieroglyphs, like this: ```js @@ -254,7 +254,7 @@ There is a widespread practice to use constants as aliases for difficult-to-reme Such constants are named using capital letters and underscores. -Like this: +For instance, let's make constants for colors in so-called "web" (hexadecimal) format: ```js run const COLOR_RED = "#F00"; @@ -290,7 +290,7 @@ In other words, capital-named constants are only used as aliases for "hard-coded Talking about variables, there's one more extremely important thing. -Please name your variables sensibly. Take time to think about this. +A variable name should have a clean, obvious meaning, describe the data that it stores. Variable naming is one of the most important and complex skills in programming. A quick glance at variable names can reveal which code was written by a beginner versus an experienced developer. From 6e77e3adfece19514a276cf12c3b2a330383ff03 Mon Sep 17 00:00:00 2001 From: Ilya Kantor Date: Sun, 5 May 2019 23:08:53 +0200 Subject: [PATCH 027/134] improvements --- .../03-closure/article.md | 30 +++++++++---------- .../01-prototype-inheritance/article.md | 2 +- 2 files changed, 15 insertions(+), 17 deletions(-) diff --git a/1-js/06-advanced-functions/03-closure/article.md b/1-js/06-advanced-functions/03-closure/article.md index 465ba3115..0c7dcb9ed 100644 --- a/1-js/06-advanced-functions/03-closure/article.md +++ b/1-js/06-advanced-functions/03-closure/article.md @@ -1,9 +1,9 @@ # Closure -JavaScript is a very function-oriented language. It gives us a lot of freedom. A function can be created at one moment, then copied to another variable or passed as an argument to another function and called from a totally different place later. +JavaScript is a very function-oriented language. It gives us a lot of freedom. A function can be created dynamically, copied to another variable or passed as an argument to another function and called from a totally different place later. -We know that a function can access variables outside of it; this feature is used quite often. +We know that a function can access variables outside of it, this feature is used quite often. But what happens when an outer variable changes? Does a function get the most recent value or the one that existed when the function was created? @@ -63,24 +63,24 @@ Let's consider two situations to begin with, and then study the internal mechani To understand what's going on, let's first discuss what a "variable" actually is. -In JavaScript, every running function, code block, and the script as a whole have an associated object known as the *Lexical Environment*. +In JavaScript, every running function, code block `{...}`, and the script as a whole have an internal (hidden) associated object known as the *Lexical Environment*. The Lexical Environment object consists of two parts: -1. *Environment Record* -- an object that has all local variables as its properties (and some other information like the value of `this`). -2. A reference to the *outer lexical environment*, usually the one associated with the code lexically right outside of it (outside of the current curly brackets). +1. *Environment Record* -- an object that stores all local variables as its properties (and some other information like the value of `this`). +2. A reference to the *outer lexical environment*, the one associated with the outer code. -**So, a "variable" is just a property of the special internal object, Environment Record. "To get or change a variable" means "to get or change a property of that object".** +**So, a "variable" is just a property of the special internal object, `Environment Record`. "To get or change a variable" means "to get or change a property of that object".** For instance, in this simple code, there is only one Lexical Environment: ![lexical environment](lexical-environment-global.png) -This is a so-called global Lexical Environment, associated with the whole script. For browsers, all ` ``` -If we use bundle tools, then as modules are bundled together, their `import/export` statements are replaced by special bundler calls, so the resulting build does not require `type="module"`, and we can put it into a regular script: +If we use bundle tools, then as scripts are bundled together into a single file (or few files), `import/export` statements inside those scripts are replaced by special bundler functions. So the resulting "bundled" script does not contain any `import/export`, it doesn't require `type="module"`, and we can put it into a regular script: ```html From 06f99274069b186c8c355fde6405509318904e8f Mon Sep 17 00:00:00 2001 From: Ilya Kantor Date: Fri, 10 May 2019 10:52:35 +0300 Subject: [PATCH 049/134] remove extra article --- .../01-prototype-inheritance/article.md | 63 +++++++++++++ .../rabbit-animal-object.png | Bin .../rabbit-animal-object@2x.png | Bin .../05-getting-all-properties/article.md | 83 ------------------ 4 files changed, 63 insertions(+), 83 deletions(-) rename 1-js/08-prototypes/{05-getting-all-properties => 01-prototype-inheritance}/rabbit-animal-object.png (100%) rename 1-js/08-prototypes/{05-getting-all-properties => 01-prototype-inheritance}/rabbit-animal-object@2x.png (100%) delete mode 100644 1-js/08-prototypes/05-getting-all-properties/article.md diff --git a/1-js/08-prototypes/01-prototype-inheritance/article.md b/1-js/08-prototypes/01-prototype-inheritance/article.md index e763d5f3c..ea6f7c9d9 100644 --- a/1-js/08-prototypes/01-prototype-inheritance/article.md +++ b/1-js/08-prototypes/01-prototype-inheritance/article.md @@ -251,6 +251,68 @@ If we had other objects like `bird`, `snake` etc inheriting from `animal`, they As a result, methods are shared, but the object state is not. +## for..in loop + +The `for..in` loops over inherited properties too. + +For instance: + +```js run +let animal = { + eats: true +}; + +let rabbit = { + jumps: true, + __proto__: animal +}; + +*!* +// only own keys +alert(Object.keys(rabbit)); // jumps +*/!* + +*!* +// inherited keys too +for(let prop in rabbit) alert(prop); // jumps, then eats +*/!* +``` + +If that's not what we want, and we'd like to exclude inherited properties, there's a built-in method [obj.hasOwnProperty(key)](mdn:js/Object/hasOwnProperty): it returns `true` if `obj` has its own (not inherited) property named `key`. + +So we can filter out inherited properties (or do something else with them): + +```js run +let animal = { + eats: true +}; + +let rabbit = { + jumps: true, + __proto__: animal +}; + +for(let prop in rabbit) { + let isOwn = rabbit.hasOwnProperty(prop); + alert(`${prop}: ${isOwn}`); // jumps: true, then eats: false +} +``` + +Here we have the following inheritance chain: `rabbit`, then `animal`, then `Object.prototype` (because `animal` is a literal object `{...}`, so it's by default), and then `null` above it: + +![](rabbit-animal-object.png) + +Note, there's one funny thing. Where is the method `rabbit.hasOwnProperty` coming from? Looking at the chain we can see that the method is provided by `Object.prototype.hasOwnProperty`. In other words, it's inherited. + +...But why `hasOwnProperty` does not appear in `for..in` loop, if it lists all inherited properties? The answer is simple: it's not enumerable. Just like all other properties of `Object.prototype`. That's why they are not listed. + +```smart header="All other iteration methods ignore inherited properties" +All other key/value-getting methods, such as `Object.keys`, `Object.values` and so on ignore inherited properties. + +They only operate on the object itself. Properties from the prototype are taken into account. +``` + + ## Summary - In JavaScript, all objects have a hidden `[[Prototype]]` property that's either another object or `null`. @@ -258,3 +320,4 @@ As a result, methods are shared, but the object state is not. - The object referenced by `[[Prototype]]` is called a "prototype". - If we want to read a property of `obj` or call a method, and it doesn't exist, then JavaScript tries to find it in the prototype. Write/delete operations work directly on the object, they don't use the prototype (unless the property is actually a setter). - If we call `obj.method()`, and the `method` is taken from the prototype, `this` still references `obj`. So methods always work with the current object even if they are inherited. +- The `for..in` loop iterates over both own and inherited properties. All other key/value-getting methods only operate on the object itself. diff --git a/1-js/08-prototypes/05-getting-all-properties/rabbit-animal-object.png b/1-js/08-prototypes/01-prototype-inheritance/rabbit-animal-object.png similarity index 100% rename from 1-js/08-prototypes/05-getting-all-properties/rabbit-animal-object.png rename to 1-js/08-prototypes/01-prototype-inheritance/rabbit-animal-object.png diff --git a/1-js/08-prototypes/05-getting-all-properties/rabbit-animal-object@2x.png b/1-js/08-prototypes/01-prototype-inheritance/rabbit-animal-object@2x.png similarity index 100% rename from 1-js/08-prototypes/05-getting-all-properties/rabbit-animal-object@2x.png rename to 1-js/08-prototypes/01-prototype-inheritance/rabbit-animal-object@2x.png diff --git a/1-js/08-prototypes/05-getting-all-properties/article.md b/1-js/08-prototypes/05-getting-all-properties/article.md deleted file mode 100644 index 345181786..000000000 --- a/1-js/08-prototypes/05-getting-all-properties/article.md +++ /dev/null @@ -1,83 +0,0 @@ - -# Getting all properties - -There are many ways to get keys/values from an object. - -Most of them operate on the object itself, excluding the prototype, let's recall them: - -- [Object.keys(obj)](mdn:js/Object/keys) / [Object.values(obj)](mdn:js/Object/values) / [Object.entries(obj)](mdn:js/Object/entries) -- returns an array of enumerable own string property names/values/key-value pairs. These methods only list *enumerable* properties, and those that have *strings as keys*. - -If we want symbolic properties: - -- [Object.getOwnPropertySymbols(obj)](mdn:js/Object/getOwnPropertySymbols) -- returns an array of all own symbolic property names. - -If we want non-enumerable properties: - -- [Object.getOwnPropertyNames(obj)](mdn:js/Object/getOwnPropertyNames) -- returns an array of all own string property names. - -If we want *all* properties: - -- [Reflect.ownKeys(obj)](mdn:js/Reflect/ownKeys) -- returns an array of all own property names. - -These methods are a bit different about which properties they return, but all of them operate on the object itself. Properties from the prototype are not listed. - -## for..in loop - -The `for..in` loop is different: it loops over inherited properties too. - -For instance: - -```js run -let animal = { - eats: true -}; - -let rabbit = { - jumps: true, - __proto__: animal -}; - -*!* -// only own keys -alert(Object.keys(rabbit)); // jumps -*/!* - -*!* -// inherited keys too -for(let prop in rabbit) alert(prop); // jumps, then eats -*/!* -``` - -If that's not what we want, and we'd like to exclude inherited properties, there's a built-in method [obj.hasOwnProperty(key)](mdn:js/Object/hasOwnProperty): it returns `true` if `obj` has its own (not inherited) property named `key`. - -So we can filter out inherited properties (or do something else with them): - -```js run -let animal = { - eats: true -}; - -let rabbit = { - jumps: true, - __proto__: animal -}; - -for(let prop in rabbit) { - let isOwn = rabbit.hasOwnProperty(prop); - alert(`${prop}: ${isOwn}`); // jumps: true, then eats: false -} -``` - -Here we have the following inheritance chain: `rabbit`, then `animal`, then `Object.prototype` (because `animal` is a literal object `{...}`, so it's by default), and then `null` above it: - -![](rabbit-animal-object.png) - -Note, there's one funny thing. Where is the method `rabbit.hasOwnProperty` coming from? Looking at the chain we can see that the method is provided by `Object.prototype.hasOwnProperty`. In other words, it's inherited. - -...But why `hasOwnProperty` does not appear in `for..in` loop, if it lists all inherited properties? The answer is simple: it's not enumerable. Just like all other properties of `Object.prototype`. That's why they are not listed. - -## Summary - -Most methods ignore inherited properties, with a notable exception of `for..in`. - -For the latter we can use [obj.hasOwnProperty(key)](mdn:js/Object/hasOwnProperty): it returns `true` if `obj` has its own (not inherited) property named `key`. From 0c2ef14e26ac7c1812e14b1907c7142a97285f69 Mon Sep 17 00:00:00 2001 From: gzmin Date: Fri, 10 May 2019 19:48:44 +0800 Subject: [PATCH 050/134] Update article.md (localstorage) change If we any other type to If we want any other type, add a word -- want. --- 6-data-storage/02-localstorage/article.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/6-data-storage/02-localstorage/article.md b/6-data-storage/02-localstorage/article.md index 128a9698e..e5e812550 100644 --- a/6-data-storage/02-localstorage/article.md +++ b/6-data-storage/02-localstorage/article.md @@ -122,7 +122,7 @@ The latter works, because `Object.keys` only returns the keys that belong to the Please note that both key and value must be strings. -If we any other type, like a number, or an object, it gets converted to string automatically: +If we want any other type, like a number, or an object, it gets converted to string automatically: ```js run sessionStorage.user = {name: "John"}; From 00a01ec30941afbbad30857cd7101545002a7b29 Mon Sep 17 00:00:00 2001 From: gzmin Date: Fri, 10 May 2019 20:04:51 +0800 Subject: [PATCH 051/134] Update LocalStorage --- 6-data-storage/02-localstorage/article.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/6-data-storage/02-localstorage/article.md b/6-data-storage/02-localstorage/article.md index e5e812550..62e0226cb 100644 --- a/6-data-storage/02-localstorage/article.md +++ b/6-data-storage/02-localstorage/article.md @@ -122,7 +122,7 @@ The latter works, because `Object.keys` only returns the keys that belong to the Please note that both key and value must be strings. -If we want any other type, like a number, or an object, it gets converted to string automatically: +If were any other type, like a number, or an object, it gets converted to string automatically: ```js run sessionStorage.user = {name: "John"}; From 2b447818c97d295e815540acb8d8ed117cb87d0d Mon Sep 17 00:00:00 2001 From: Ilya Kantor Date: Sat, 11 May 2019 10:14:18 +0300 Subject: [PATCH 052/134] fixes --- .../01-prototype-inheritance/article.md | 1 - .../5-keyboard-events/article.md | 34 +++++++++++++----- .../5-keyboard-events/german-layout@2x.png | Bin 0 -> 57258 bytes .../5-keyboard-events/germany-layout.png | Bin 0 -> 35345 bytes .../5-keyboard-events/us-layout.png | Bin 0 -> 36212 bytes .../5-keyboard-events/us-layout@2x.png | Bin 0 -> 57747 bytes 6 files changed, 25 insertions(+), 10 deletions(-) create mode 100644 2-ui/3-event-details/5-keyboard-events/german-layout@2x.png create mode 100644 2-ui/3-event-details/5-keyboard-events/germany-layout.png create mode 100644 2-ui/3-event-details/5-keyboard-events/us-layout.png create mode 100644 2-ui/3-event-details/5-keyboard-events/us-layout@2x.png diff --git a/1-js/08-prototypes/01-prototype-inheritance/article.md b/1-js/08-prototypes/01-prototype-inheritance/article.md index ea6f7c9d9..2fd808a48 100644 --- a/1-js/08-prototypes/01-prototype-inheritance/article.md +++ b/1-js/08-prototypes/01-prototype-inheritance/article.md @@ -312,7 +312,6 @@ All other key/value-getting methods, such as `Object.keys`, `Object.values` and They only operate on the object itself. Properties from the prototype are taken into account. ``` - ## Summary - In JavaScript, all objects have a hidden `[[Prototype]]` property that's either another object or `null`. diff --git a/2-ui/3-event-details/5-keyboard-events/article.md b/2-ui/3-event-details/5-keyboard-events/article.md index 7decd91be..92fc2b9ba 100644 --- a/2-ui/3-event-details/5-keyboard-events/article.md +++ b/2-ui/3-event-details/5-keyboard-events/article.md @@ -75,13 +75,11 @@ Please note that `event.code` specifies exactly which key is pressed. For instan Let's say, we want to handle a hotkey: `key:Ctrl+Z` (or `key:Cmd+Z` for Mac). Most text editors hook the "Undo" action on it. We can set a listener on `keydown` and check which key is pressed -- to detect when we have the hotkey. -Please answer the question -- in such a listener, should we check the value of `event.key` or `event.code`? +There's a dilemma here: in such a listener, should we check the value of `event.key` or `event.code`? -Please, pause and answer. +On one hand, the value of `event.key` changes depending on the language. If the visitor has several languages in OS and switches between them, the same key gives different characters. So it makes sense to check `event.code`, it's always the same. -Made up your mind? - -If you've got an understanding, then the answer is, of course, `event.code`, as we don't want `event.key` there. The value of `event.key` can change depending on the language or `CapsLock` enabled. The value of `event.code` is strictly bound to the key, so here we go: +Like this: ```js run document.addEventListener('keydown', function(event) { @@ -91,6 +89,25 @@ document.addEventListener('keydown', function(event) { }); ``` +On the other hand, there's a problem with `event.code`. For different keyboard layouts, the same key may have different labels (letters). + +For example, here are US layout ("QWERTY") and German layout ("QWERTZ") under it (courtesy of Wikipedia): + +![](us-layout.png) + +![](german-layout.png) + +For the same key, US layout has "Z", while German layout has "Y" and (letters are swapped). + +So, `event.code` will equal `KeyZ` for German people who press "Y". Just because the keyboard layout is different. + +That sounds odd, but so it is. The [specification](https://www.w3.org/TR/uievents-code/#table-key-code-alphanumeric-writing-system) explicitly mentions such behavior. + +- `event.code` has the benefit of being the same, even if the visitor changes languages. So hotkeys that rely on it work well even in case of a language switch. +- `event.code` may match a wrong character for unexpected layout. Same letters in different layouts may be at different keyboard keys, leading to different codes. That happens for several codes, e.g. `keyA`, `keyQ`, `keyZ`. You can find the list in the [specification](https://www.w3.org/TR/uievents-code/#table-key-code-alphanumeric-writing-system). + +So, to reliably track layout-dependent characters, `event.key` may be a better way. + ## Auto-repeat If a key is being pressed for a long enough time, it starts to repeat: the `keydown` triggers again and again, and then when it's released we finally get `keyup`. So it's kind of normal to have many `keydown` and a single `keyup`. @@ -146,10 +163,9 @@ Now arrows and deletion works well. In the past, there was a `keypress` event, and also `keyCode`, `charCode`, `which` properties of the event object. -There were so many browser incompatibilities that developers of the specification decided to deprecate all of them. The old code still works, as the browser keep supporting them, but there's totally no need to use those any more. - -There was time when this chapter included their detailed description. But as of now we can forget about those. +There were so many browser incompatibilities that developers of the specification decided to deprecate all of them. The old code still works, as browsers keep supporting them, but there's totally no need to use those any more. +There was a time when this chapter included their detailed description. But as of now it was removed and replaced with more details about the modern event handling. ## Summary @@ -165,6 +181,6 @@ Main keyboard event properties: - `code` -- the "key code" (`"KeyA"`, `"ArrowLeft"` and so on), specific to the physical location of the key on keyboard. - `key` -- the character (`"A"`, `"a"` and so on), for non-character keys usually has the same value as `code`. -In the past, keyboard events were sometimes used to track user input in form fields. That's not reliable, because the input can come from various sources. We have `input` and `change` events to handle any input (covered later in the chapter ). They trigger after any input, including mouse or speech recognition. +In the past, keyboard events were sometimes used to track user input in form fields. That's not reliable, because the input can come from various sources. We have `input` and `change` events to handle any input (covered later in the chapter ). They trigger after any kind of input, including copy-pasting or speech recognition. We should use keyboard events when we really want keyboard. For example, to react on hotkeys or special keys. diff --git a/2-ui/3-event-details/5-keyboard-events/german-layout@2x.png b/2-ui/3-event-details/5-keyboard-events/german-layout@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..30f6e0d13f44fcd4d2a7e4ffd49e060ec2398005 GIT binary patch literal 57258 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

Hhi7o}4V~40U$vXPkBE1chLQ<(3x( z1)_$Z9v?u(Kvy~_zx{IBRsBC-Uy99qSMz0YpPHKLX;hXp#=-wsS;>EE-li?@MlJ4h z7(RC6#*J6s+1-17^7{5Yd$cXwT(DtiH60W0W#e96PS^4Mdyl2ShwI3Z4MEk?*ar81 zfA!1nZ~5=|;ClJ4e~3e})4Qw`XG$x}Xd}=MX6KDTu`|X$ff^`^d$vikVHs+ge zUD?qQ_22fOpreWni?RBgN4|*#`oYLnDC)XGy*09oVvfaAmfc*BAm6aUy{qMW@ z^`@UQGBEsnF+a+%YgbTEkbQk#w6T_Ksz&d?fX3mT%?i6I6%`e?Ru+DvkEoP*xcfeO z6fWv?j1*&$sI8AG?!?5z7z9=2QmtR#Jvy2ic4ZDog=)iw-rnBw{hmuwR#wN9#b+4y z?b}zC^*Ax{$dBOVDrjo%Cfi>$*I90mY4fXe z4JqUmM&^yLw%i>0{t|l!$go+8J~DQxZ0BujfjyJ6vyMZpw{V7V4@|Pdf#QS|x0>1y zemf+wIKt1z&mUkM{_Gh8L2T7QM^GI|2>^I__I?d(Egz0yA7GpQ;_PT&e}BhBcrf>6 zyS}Obw;!+A<<--5qMSNiHXJ{GJkf0}79MRVU01U6*0ds!#GeNP;x@l1Xw{|7&7rt4 zs;Sy1E7m{34g2~+>X4snutjB3lV551_A*|jZV>N9^mJtJd6n3zRwoBo^7fxMO|y{_4em{rGt znp%l&$*RSg{DXXaf%vUBw`dz;izC?rW?#L?N~JXU>ZD(0cM0IBMfG|t+k2ETv%+AZ zeQuRAkR9hfGHrhJ885{_gau#DVJWS_jAqN0LuhEYRU(S#2 z0?ul_cR=msB)k5o;zP5p=Mx;+2tn&lMtmoXYZzw7I?e+lI8Rj{Ie#g7s40aXN9_Jq z7KLE0OJS#O>=`dvmC#NNiShXNu(b5F3`1mtSszfxVQ%h6sAc*nu8dhI6D=RAoMn=L^K79C) zq*ElKow_rw;T#HVNM9m+J984G$mu{=3v56aVrMok&1ZM(b>1qp-n=tnBQD zL5KPId5(QC2YlIZ@e@#GMt;5vTEBT`2CBmLXfLeDR1J6f&&Ebm>_oS`KYVYif zqi;>gC+?<9|E`xyY5JCJs%)h73cG(HobMj~VY{;ABJuCf!Njp;uG>24zfmRhYD13R zTIdhG5F-(Vri~@yICg9RSA0KeN+Lkgmz|evV`F1!Hf}s1ArZZ_bgQE9L32<{jPk8p zVp394zDM}EQ(D$dMBZbUcXoFEns9#Cb3tnl?*n?gyE!hW{S=q1R@?bZ^5+q1FAiVY z-Mn7tQw@bK_A+g>8#i{R=6Cjx`T^u?R7L;q?_jUZG%9-(s9dJ~ZzXhhhH!O(JzLU? zW}hE?J92NA&PAj8Rc&dNK3o=XoX5bD8SaaYu5)9G={iMbUtipg&GI_hj-z9Q%HZtk zx^|*smoBgUz=dPi-hWI|iTl%@pWb69>@By?<*rt?30ZaQ@WTfWexY+8`#a;?l?V-fn2t&T+p zCeR_e$Hx5F<&9KrG*Z(K2R;1$ zT^;P@Pg^cGDvxi~4kjioHoJM?9*rEy5%Lo)hW;w~R@Y3vL{@`!XuO`J^Yp>~VLdpy ze{9*jxfd1OiTU!;%?)`9FI1Dwx{AebwB=;>FBA{7UCA-)ww#Q-FB_+iTE}xG?=kA; zx3{*2iB*|){R+}5Mialvlv?j+X!4+obxpkIsYP9K5Q*yH8*~uCp2Rs92==<3eSt%Y zizNQ_p7+@1b){M~cTR&{nSXt;2932JC)CK;_+^vDAfWb^Jpw?!e_w9-ldPG^hC6ce zwOdDYN{?%#dtOU8(6o#_-%mP$>pvcwM!Vd{LF0G$bFpGB0xcAKvPD^9A-?f(CJw;~ z5C}QHU7{K(!4mHOcyUG&t1kV>*t@o~vr{OA_Py#`S})Pk+S*4uk7|p3Pf3b+shZ4e z<+STq4WC8s^UJ#K!H%PC!U@iyN{NPOZKx2H=28#PdObZoQSr7=du59`8;5Vunryda zq8z*W)|rEbhQ>yl>(^9&Ew^?=kIDCx%l_y^U4M&wny$=d^zu=F$GUqCoTk6)bByxW z@v8NFi@nTGPDkaM<)Nc*`x`G_z502uF>!KgDi(!}PLVYjEf>Fd;zam`NHLdh+jg7t z?uHETjpaz%cB;EAaK(NCWwZb5%d=p}$CWr=x*Ww<$8A37%Z6Rk zD9k>(b2FGzUtiyg=HZRBv^+C~i}@ccPmzwaY11Yfd;9XPt}f1Pg;_kJ7OdFE#P#c* z*O}n2n6)}bRtpLWxSubf9^2x-2c^MNvhng>Y|s-+X;Sd;kO*Y&xLA6AaM3VR6O`cf zL9j!SfPJ+fur)rne5`lgf}j$N`ur@P0gwt^Tv5piFW}1cpiu0A5Zc-UC&RN^%NG06)z0z^;n*{ z{O#MfiRtM$xh z>aSQAC20OKF)=x;_UZzmiI9fqw{QP|`m&qP=z)QIAXq8bx|E5@tMb!3sn*B`0`smT zRg5hQmyF;2p947ZK+;8ghx488bJr}I(^AjrdL6B<%`&bH6ENQnnZeFTghkRrth>A0 zw|Y(99cg^E6R03EA;!;7-KYT%A5J>bbH;^TKKAX~FmRf0xz{h_9(){W&6ZbGJcL@7 za6Xif40Uw|ao4}4mZ!3fs<-2R9z1>=k1C6x`r0DWH=?;7#@; zN3zWt*s`*+%o<|XvxqpnJ<=}hxwr*ox^KE(^2nh>75a4?b+^}TAhe2Lq4CZl;9c(G zt}IkyB6)!RGYOc{yUmRm4}DMmGvm54zPh5^;GT>AH3?=&xC<%wmXfKVmEcxdT8B25R-BbAs}2#1rq}mELoaVkxwesA-T=S%)?~#l zhtalR5Gx3g;h=>&aQt`$;vPfS19yczMDgKz@oB$3$^g!}v|Nf~6f`W4iB^LASfuVg%ZO45NuU7L4i?XY2qyDhuF0^*(c;nZEX(Rj-P&lC;M9D=7eMQ`#WnG zSO64GBB6nMql`f~HmEEb@lC)lA$teu<}2h@H1&A11Cc1SC(z<6?QQ=3H7BI}^l1v7 zz0lyk1yBljQX#JIt-lR&k>YM4Z{G@m{waBQ6dU+DHNH}Wddg?=d3W*B)OnPHx7a@L zl0H1y_jFy|ZNh{LLa00d1^7s`^Bs*;ZBDlGaDLObIJEfIw}4!)7T*ddyJz$3 zw9K_SuHYIKnYyw2%1TND(9%=|=5FC|Z```o1p7p;1i)87RFopBG{cj18O=B6rl-%+ zQ{gfIYBHltK}6s-p|G>FKMe{hKj<%Zr=&y@l;Zu(;VfvV*vf^kOcWxHNUko>fe#6C zxX1^h9QJ`bs;~>*)=qteg(t;sq%HT6ZSN-{{^nVC`9a1wdL_>Yo8IHx2=8gyng`K?q<11<}YIxnRGH>WO`VFx%ewuXP_mEkQ_zuvl#UFkS=lAhr5mha4 zyn(tpJn@t1i7fOFA-7qcmoH!XMRH$yt=^3Smk5nx?qjd^z!nPJik}@FoVvw@YOy?* zxEO)y)>zhGJqHa4VQ5tIp1xw%`+nYXvnpD4!wO&K5+v2k&>PEM72yacJi2biBIr<1>M zfgL<~6C>9}b#-ZN?dNf-3D77Y01;D&$Z~)?DDE+&=-{5+k&Qcm?={v@&=ujPGE{WS z-)2_07Siu4<(Myko%f()f4I9*4E~l<&=GLv$==Fry|T4rwcw!5V-?SL6uF{Wc`QxJ zLE$1YVx|B7N{igU=x8OBgItRy)$bP@%>*9rK5+-1(})koa?GO%&7%-$7CL9LL9&mo zpO~-#Es)2WxeTY~hY8ysh6thhlLFaF5BC;2hMKZ?g7biA!6YuxUSdu_DFzSk0fLBw zbWcS^#la?rD+QT?10s2Et7**53m>_H6&fTmE0wfTH7dnSx(Y72su&9FS-|I$jg931 zj`)BrVLYnD07><&ZLih4J53h32@?L*S&u_QccHQ!I)0oE^$!ncN_+nA*v-*6te!`&L3|8zkH<> zr2w@7WN(d%iVErC*f(Cs5lsSD3LHlXj{+_Qq6-0LCY}iB0Vw!Zw30Vh-vt7v!cCDg zGU_YuUc<53$i#%tW62qnPljkTKwLOBs$$8q@T;&K2ag=_AuMHOd2z?KZDoLMEyeBy zhBI2v0d|5yLOwwzdidy3xtW0K#fzo*YjU0z(0LhePCvhJc@2u8_c8=8v_CZ*PhnXdtqSbRriY^K^y^4IY@+zl4l~HJ}o7-mZRgWqBsRA zUU$jra(elB)jiN3BO>;Kk{u2BTJcJ#9&!tu9eByd@T19=mKiZZJ1UXO|!0r2NDbLXXry;3` zZ1P3n=LNLJPsu|TVvM0Hh_1G~#NLzT|#4u*PlnoOQjd(4- zb5wd{e_ObK>-`6U^!oMd1$R?mm1G*oRQP@A7E@rFaGF&nOdF23E6wf5;B$zp!p|1mf^Qd__{sdl$Ut6mO|rRvyPhR zC9?ke6d};Rb)F>h80~(Es{z%;sH}(V&JZky&E3YxSP|zh@!I)i5N_Akyc<_=v}H>? zmL~uLuxP-cL|>ILq5(FA4)F`3h6(hA`Gp1BsXlpv@%;CRGmO%qzxw-ccmWLQo3|y; zy$N=DCP+r{>WZ62+EsaQ2QW*q)un0Qn!eFdMU+0cjRq*!xR(Z*n$EEM7^lxrNcjNA znL=?QU;!d6Xz*iZ;lMwC%qsdadLJ8{YbGTLr*}Y|>6vthu^hdX7WdIxUArlSeE^Hc z1C{x5F$F8g;A>z7lMhzYwpdwU9T@gsfO$}cLWIi@fC7vXiYk)Q$o3HbRzs{1G$*yG z$HOzOot~@ipc57FmcZyqV1ZNyCZ^;Ew0Br1pveCE{ksx7TwP!PpBaSP>gz@^(i#Ym z+jl@rEE0kQXIowrh#FC)b{^Lm;k{^RVDP7-AV0R3$g7Y+NyoJZ#n>Zg^%Q0d2l zQ<2QT>ogv*xqH@Tq;z@ciy9wZt~IJ^`yR-9~qXHDycAOLnZ)ww_<$`7dPLu=^x z>HkTAX!QdvU5+NV{jsCu=n3U2!+5LTe7vv}$TPrLE0h0YvjOjJqCpn9&U~=Qjcpu^ zbhJo7S@Ct-mnOp?g9HXSdxwKIf}H1Uf7{T|a0`7AR5C|9wegcL>d@KywEFncUPqmq zF6ma>%f>@db{$elX-ccnX@2?9V#qO3B{Jbp4QfP<`3zrLXt~zHYI^0&Eg?F$&)&Kem6z;N-sc9|D$8BSWze>?lL1NHInMpgsEJaW7Iv&p$SjK7D z3*ia4l+@ncX~n>WkW)#}0|ndRyJ?+@wi9(8X!moB~Cs<&;Y=IDALi^XqLr$7aneR8$&Dv>Ds`&jB+WJlLDo zpRvKNGqs!Dmkk`T6l>OGG48q*XJgfMq>cY=tJ-qsmRaeet0p6_5)pxTKxL;A_}leb4`s!u1Ho; zM=CQSDhzN(&3?RTz2+Z&y>bjDo71=sbl1V}$&J_MeAwlyvX;_6jrG@t3fuKPfQTGg z5KTKOmot_pIkMRc;zDDb9G!zm$2I>BPf;HLIr_bO|9j}f#NS;twxcTVhZh75FVjHaFTBc=ckY>y8BH`*-aE8htSQT zXFn5__a6`vYB9IN;X}VUgQI&lBO}9e@#g9fQ*CwiOWb(B@87<}B66dvtNU+ubXeUp zDIy}meWdeIdcp8@;8lqAe9jYkiL-Km!=O}Ch#znY*>64skO}Z!1z@scC9U%zPc3YA zX%(K}UN>?=gzfLcioW``_}^=Gc{ussEoP$jTw5LL9O&+iN zFuc|AJtIUHsT;Z4Eb<%2E{_=-+;!s&%I4h6_v}#3H+$8cV~Sc&%Z|xuJ?&TOdz*J` zsl0UbUoVmB{x&L;6N>)v?A)`syUgf@`tSvzu=AOHWktsu_%6|kvJ~S!%LJ_U3ZyRK zSZzs>-=f>W-mSdh7nsGIpMpZ!Af81_y^fd*U|N0#TN7?`_!3uH^f@ zdGltw-ELZHi|^$4^QL70-E4H{iDA8epx^YEDnka*Ck;@3gF4G!JLK;1Vq{+ zWcS`}&I)K%W@e}f#=KT?3{Ok8DIK@Qn-_3>AZnC1bfS*7AVhNQy@Se|s=z4h5B;uP za=b|h@v@J%{b90FZe)$fZd>i62 zJupdVMTY*_L@FT*fjxjV^Jt}rkdcU*?NCj-LFUqpgz~IU>uyjW9ZsW>O(1R*06bTw zXY*ZQ{O3D~$SJtEeDwhOub<-kAK z(2Zb)hG=_2I`ddrFohCkU#=po6|ykj>(6+CVrOqp5+vw8_ROK#+Nn6;(0>U90jsh} zPS3%@BK<+mMpDzzc5jUkW7LXpNl%aDy%gy0h^kG+tSb@d8ztfb2T;afk9(q+nzipI~XB3-k~v zQCOJCyUeS?Kq`BOl1zG;&xu`U02+1=42qYcuP7f%fP;d_*RtFtkHv68m4H6953LLs;uBRjy%^w0L zG-5BdADg^xuN!)J_5qCW3V8LnDVK0R2+1U;0sBjIFbHu9m$s@f40aR@)u7`2i>K^~kuGu8# z?AAB)H5OnHB%C52=nVPA93m3*fX~lQK5A*v#976M@XVNA3Nc0-&Eg@p4CpcfNxg`E z83L4%Od}F7XB&z$t&`1jwb!m&7Zo`7LFZ#7gi+l4PC@SRtPkt1Q;-8BIwflSLcQlo zIi#~en(fKg3QmDS7+3f*qMxR#^S!Fhx&XlxMVJV|BvpvZMbdpFKWJgWbwoM(qeZUW z#4jlTK3uQ2!+*Lx*+LZ(Vxa_)FP_l$V-!6d(Ub`MOhQE>XF`z7Q5sK(S{CkWXov`V;3b!sm$#yp>s~6d%IKdFv+eZeXZx z|2-V_zYrM!h(cehldT)WiPn{|ZjMx+BQUq2>8XIR;rTVrWXj6Ql6WVaPa!OR^3`l{ zO^(Bdsh`M}1N}1JQ$cJ;9{iMe?@&X?iUIH;Go;Ryb@dS|4Y|qiHAw6MC%kevz2plz z#7NS%G=`mz?g0sH+rPgaCsY&8G&%^BnvR>Dw>=;6U#15FehJb((p3^e)Cwpi$l|!w zTX+`Co1){|U=tw80v2E2*uQ7rJ|$F6vc|c>eI`(%kW_(;bG67d7`3}JgeoOx7hN;7 zj4$Y!pvMQr#D1FhHhGLf_hUbFXc7-*2Qxac+O9<9^*)Ley^!aM7;r+ols7eW*RF26 zJnj`-WDSXSwzm7guaj5)C41z-Q+R6C2E!*LXqoOK4qBf+AQ5;*}S>FG7uq zg@}MELJmWBxexT6cqBy;0}Xl2)0~Bs1~=|~aBJ(9Eyg5`!FVbwhTmhh)f6$?bAi&( zsbFoBlxl+ZrkpoDK=eS~pF4}(NR9}pIfyc`-#coLS^2eE9!3BuO3A6wOMkK9?a!ZA zD~!0fxc*BuLDGQei-^iLD3s7^6Jn3eLsB~7`qvC6f%$~umoupv)2OxCw-)R=Jr-{O zu+HNkMP?nc#j=PSDSw@YdySC6R%sOn_T!w#j+sF5BSQA$y@Gz{LyvW+DSIg;o=s^I zq0WqgUtkaXieExe=&;L8AK9^EhZYjCdiMK&z}E}3~bG`XXKxGMdlJBmx zO#d>;9m7I8$GIzy1WP0K1naxn=>6cCvb6c&J^8ai2T*YjA2?8EYtaXX`geoe{!2O5 zgw>!PJVcNT;RChrH1GGx2Wl2L9t8@1yifc&4(!rPk=F~>95cHqZn9ijA<#__p(dfN zo{C3W`Bp4QnQR@NjM29A6y#i(pGOF$f^_9V7k&^DtohVf!8nPhB2onIACHTl;JOT^ zOUf76AkgD^SOh4%Y>=o>vthb1H+_3n>am~g;6X-V{zWIKkBY)^gYlT99>&gO~UVzFGI({ zr6F5GLf{uJJU*LAWN!c-a3+I8?y#Kd>YgB36^PS{h#a-|n*ICtSEw~=fb*)v$=c%P z;cw)utj4Y-{#(u`Vm{0{C`-FV9eEBMIG_~J>mePG_$m5}Esh6|W`-Biwg3o2n)+zj z&`a)yhBmXL3!uJ30?Yq72iZ9mfj*L~=2Uz23t~Pjiiw#SVm#yc10R{g7E0Fj1QiG0 zCs{Z=KriUIv$GHaa|9WqsdH+-|6!3!dhKVE?6?wRtyf_A5C%B%LOE#e#65qhoqCv! zZS51;v+$ctvKL+oP}0WtCy*|H>qR0oBs2>aYfrvmx~?)2p@gS2G)P4sZ4X7?!H}804E(E?&IIRms2lQ0&VmrYSOZfJ8MP;tudYy~^}n zpw0;j3d;I1CqF2=8bVAph*5?$&p07#?!@r`bVcJP=>$~s5Z7oLQRC5t9P8hZ3bDJ9 zhkdGz*boxStQhI}0#F4R7$o4Ff`Z-K-b3=S5HJux4Y@dvm;hHS(9vcU2I~c{nyd@w z&e7oX!XigH;QXeS8ZhxwMKwMKvLhqvaK*c{lds;5B{(Ut$TTV zS5gx76b@(VIClr9W*Fgj!Gy#>L7|eCr)jWrq2EA4HmhidO=0ZLU|FZzORkZIF>hBPBy zDj-Ye!GzExpeUAtz>#}LtU@E&p-G`0M#9a7d8qQA%Lv~C39*Yt{i&+S&gcc_sfK=z zoHVWKriEF=bi&}{mUN%HcX{DyCRW8am|-}_Uv05M3Fk9%PfYi~fNXQxH8?w)HB#`r zQF~ObB`UGN67S8K-9o(%JCy*$1VKkyrSL$IiFsV}Fq4>bM&rL<8pI$(n8gMS4KytA z?V6|P?>K&cz9;X1{AuI**jGEXc-ZcnQovlBE)W}XzygqdcM}wi>RY%tRsh171@4cC zyb|7DG^1X!o_i@O~8r-AJXeiirH9K3E!kqNcq)0^j}H>r32N^G}Fnv=+JL z#~prGruWuxUFp7UZi!Zz!`FpUnub(U*Z=xZvFyi6Gw0qh?e1PPE+VibKc>6By9w29POW%Z7uf{(4>Orb_19#o{GjQ)U4LkR-+^oJLO zMM-d-8A5mo$xo7cLPDV*FlGP{9;c@KW!Oy-7SJuf<}^Vnk|V|uWbRzI*ae#}M|)H; zee5_=mb46b zejuWTL;!;tDzFElqFf+5D$sw(4jH9zOF2<9AK}xMIz@k7odj3}gA{_|G3D zru8ke$Y-k{$phuDCEq%xw+IoyZ;g!@*g?Y&r7;OIX2J@hMq3Z1<(HUr?SD)H27Xz2d8JoO=bcBr?6n<&z-9}8~)-W`IJc5&LFjDdUse~U{AXEvUcsv9^PtN zr5AdTn|rgMVE*FJ{M1pmnvRZ+%r4Baz|2NmVPjDBU8O|Cj(@>C*Vf(x@1qaqiNi=s z0KQ1qMU9z%Zw&IwS6tBB!MlV(coCvX#FjY>eyiAK)NQw1faSkukMzrLAd@5F;w*sJ z+4T}vxb8Kr_~qmX5SZ?UA3C$*Gt1fGt3;c+hLtKZ0LBE$v74s>GCf18h)57h* z&7YkeAbCazEu^PF=O!E+7=wuV&~)(awR6mD%jGF53^>Gs01hj1vR)mvlsx-rVlEI> z{nMv!Xl^7`(cy%qVl(*_2e%3s8Y2WatTpB?n{cl{i%3A>zgkD_rI7Fe5Cd@Hz0CbzRAQUP4ARkRiTvTdkh7hH?aiHv8D-jJCMgyz3_;RtZzGLlC zui?2L)_KhyM|Q@r%VS*bIlg#D=0${H0Gu;m)>d9en)UUil&PwN{)D9=^whx@%2Z2E z!M?*td;vXncfT|fHV~b4=$Vb={SuE~flLL&n47D6DRY~&Lf{Rq$h}KBByWIJK&h^8 z3B)0iGr@fbii%p!58rSN**qNILnPM*KNqtWji?-^kL=|*wjVR6`%|DcB1e~^o_q%0 z1bV7Z+{MSs?w9FbkOTjg<2;0b_{KC2ecg{V&+87dz-K6?Cxqx_-{x3U!=RMO}_X0wUpI-U(UOFSKPjFu#Aql@$ zd6&2Le?OItW|4?*Inq%uSIkR^yxiS;s%3h^&rOTlWXJ>AbjR}O)jxNG+r_iEG`V)615@->fVB-?crt8qYOcei|+Thiem7cXaob^_Kg1S>m!yKimQf+(!F;D1^fmdX}Hvrep#wm)vnX0JPY1CPCk-u zGhhKiLO6Z6Nk0)WLH^3F_g)37f!t5-QdSXW_-1bA z-ow}`xNKF`)%rk(`4>ct_`-qp5*%F-a3O;N;M!Wnw-%1786xKhX*BnH_#M`#0Rbek ztA&X>^c}&X5|eDE(g3|=fj*pbqGv*gp_Y^^iKx-f)O^aGtZpxY%Z<+=ycj-wNis7s z@TVe>{7yIwU7Ogk;7?F9tiui3jrh<%&e!RImSBhiCFr(NqWx=TRF^}b^DQkcSNyKU zHE0eQ3PM;y_y9usw<{iB@MEgU3O7eyB_!BlOwhp45Wha3x!?}#Gws1EQuI|dHEbtN z1b|v$n(k)p3B%*8p--RM)XzL%r9qJ-h7eG=5A^>nHy*@3XtJm<$b4p@pa&TViDZz& z!V6s&PH~satJEI4(5F&@a7jpE<_T9TREtAreuj+Ek15)Xpfop!TAn<51S1DM z{nC)#&l*b3aSFx(%s~i}s}Ine*|=`P;|I2%e*b>|_aL^Qdp*U)VWMTo^*?{EfN>_| z4eVd@fM}8#QE^=dTv?>;KsK6_?NDrx_haJK^HS@FXDP=Z^Iw|2#ui>GMpXOJNH$Y@ zmzmok-DHR8#yh0r&p^Gx94<&TnUX~gbu}qT)BI_0ungc9kX*D{e^pi03*c=eX6lmd zAm6{yNDl!#(sJ$6ocBw^l3jG? zi@dY!l&$7&U0w7r?~KTDs2~5^dA0pGorrP2%TexU_f|6e6#;?xC}U_Y0qn_^uhu$J zVGXL0- zK!wy`$h+IDIgJHSI72*txH(;po(lNmF~1nKY+L{cgs7OM!W$rp#@1qYQ5_wf9Lv`2 zsTz;i{}Z>6!Gz~d0vrs3{ikS2s8fJy@IH8F{{*}pDJ z@6EGASE);52+KrZ6Js4D60iU)!pKrZtYZi$7#~H78Z{m6;tpo!&ybd1KZwu?WG6X$ z#D^6|7R?3rkYEPM@`4pJsyLH*E{K7og|=)CHV#LU0n$lq*qRK`;7|Vh>xoRajPP3$ zS}#fLLd52|$@C>gvYtD=@C=?51=4Oe1^L_l+-9A#391bwiq8=P!GL6e$PFW|1@&p9 zbRg1`TFP_vEq$s+EdmNI7`7v`nkXuX*g4;;tGFs;mISZ}-dm?JWl0_mI%vKD z(zHQjU+9*2_~zcD2#;GMOLauV`PPnsr=BZU1DE8}f7^ z2GjjG69Xt9uqQK-oP!L90F6@e)#D<54Ue)j_sv!}d_rW;N z^5c~MP#s3fKI3dFVfq(RBdI$CO@lJP;Z~BCzRTvWs;+*w!ayG*tK>TVyoKk&BpgD5 zI8e@*t8LA<-Vdtt0vC<2_OOQvoW@__zg|La`ex)! zE0}MHBH}g#g@z`Ei3PF;L_`d08pBOIAg`Lta=u_kWbU~2{$8Ze`+=2vflCV!L?r1A z929YZWgGsGW7lc`!3W#(kNb;FJy0{Erz(5NAE{C}indQIZCtWFQA$3taYPrxq&=B_ zKuaNEBQn`X9>w@`*a>8%gK+s_FL^^J#6SrNwV(q6aRW%Art;k^84uY@ONnc!Ds-8C z@Z?EFd;4DeV(4(>=p#e4^%0VTqF>HO)R|OHGA*9ixaf8`sM_}Dxx~g`X98r9^EEN)J|qjNM_B@hilAl4_d2>zF!; zf8jr_S2hrK$QU<@m7iV{u6!dt;=f^fB9c)sN%+fILQPc_IK~ih8%QX~avjJtM9v1@PI-BQf=u!JH+bD;V z>;erO`dnTQU(3w^o%BkqDM&F%hNJq+;@c!D$CyAdM+-zistlSE4K1w^WGQ0O1_xId z`isjtI0)=Ge1S~m;PH`+8GI&D)cowLUn~bPa**Du0g0%A)QHLpB@B*08E_OyE+QNX z6p0=pgUY9gX+q)%z!ZbzvL6vSIPrHe^@KWuH*Re7E<25j0e{Tt;YR`N35L|RZ>lun zBN7i0S|KkWQTr0J9fXd-m4NyUj%W%&lN3b1OX1??ACbieFkTD!lZ~Cd&suy9F_E=% zLFdddLj}x1hW*G(An@c^`xjMDkYZpWb)B$V^6Cd%C}N*sc7izg$Xq?b5$vIRz=Cxv z9SFHxL&>n-Qt|0i7D!O(Y$2FBmjMM_5a4;u#Oy4!CG`|ykri;a0c(+T?{xXi;);Vl zH05=}62^FEX4b#y-63o@bkA!&_?LgAlW)%xAQebPXHn@1Dtdmw_#S-uiwG9W6oobK zKpYcu=XW`LA@OmIt@+>UR`M)c?hE`%p0X(AE=+XdYAa@gW01be|`N8V;fqvgsR<1SqqL#& z$X`rI3kNd7oP_$qXs(MgLK_23pma78pi1TCne`+hpsE_!D}Lx-9CC9+GL8dY@;Yit zqEw6>ZeKosHbONZE&{Yn?jK`y|H@&Jf@zaWKmZ25?I*#mTfKi`e1ZX{M2#!lk2W6; zx07YQ!&9rCqVWWRAwt@8>RiF)LCo8?pFvO!?>Z<$!bl^9rSlGS9MlRzz7RpjOHHIz zq|=*W`J4sy!z`cDXuDg*QPZj6qs(rn$;%<2W{r$k;yno?G$WW3ivw6C6Fu+)p;Qq< zudlC<03|fo)9CMrNUye6*I3=faKR)Del_%5q>WnN+8)G58lX}GAl(Pp5m_6fs;a7B zl($#XV~NG|ZW~M(G&Z~m2(dY;rC>HEIL-*A(r@3cIwWWS;gLrx>n_psN<2N`+$-W$ zDZBCZ4gxqpG!u@M*CFNsZz~fnowQ0kR@!%~Nv^gc^zT7r@_L#viOif*4ft~c4k@T= zDZtl`5$;#OngQ( z2uL6d3}%(lZ3=A7B90s#t)nY>v8fE`f77Gw`Z z33?Yv`S^-6WbtGJBf=%ag|-Ca!`3w5bf_u^x$$d7GHG>SID(*PbTWeK2Ak9OBfWrf zgG=B2{g0%*`TdOF0ob=y@9yoH1qq$J!xX7?~^p-AGT zK^4&=F0ciN_4D{PKu#kj5GtM!TCoG95^h*j^wFGfOMQ0Zup??1Ap2A3B>a{wyto~j*(Og8hT5yEf8TOX1E~^> z{F2cspq2FW;{@P>E5q9&Ed!DxMhI!hWY+vdH-L~g>=vSOg1nO02U4AwN&cF4O;lo` zZwDDSKz!4tmTjk==y}WhdGbVvs`eJ)pdcMy1%Br|l3A(H;X8&@Jb@_iz=*Mpw|-z_ zA3$yoH;pF7Nx}**-hw3?CzYx}#sneIkA)cl=+(_n_9g@0CfDlA#WjF0ML9m+$co`G zu+}iAF85Gm6uq&RJ}DTk_%hO2bYO5C2d~FSS*}H{c4n{%na6@oN~R?-hU=xs zM8_=j6i11Z&Aa1}+l|f@q*bPurt7C+7LoV8kofeuHft$*7&U+zQwTf>k9p%^F{B-b zkb>`C%HrJkZ}N5kHntx4iWq_fj)gg$_Hh_O6~4Ae-jRQEg(-bupQWN`M&FY44+jf3Qs1m>uKxZZ0mD=FUI-Y!Td3Ev!IfY%S$4|WQB2}vUu zEI@m7IOpi&+gVtiG?=ktI03IBfO!L9SoYyj3OGr=RR=*hm$ zD$q$l%PaS(nD;b^NH{8UmePUqYRCk_a(M{ascX-$SzBFt7p(9}tero1r9t@{ypQuUH}lzos8%!cAxD zvf0n1m=Tr0`=B=>We7bmPo8u9Z_e$F`eu<1-+kh)^b8EraLapcgfgN4Z@C}pE@k+; zZEo~a?((w;cd_cM5niGF?EQ3tCnzJk_A@cb1HZDQ%Lhtdy!g~mQVcW7_yEicBPb7O z0PISbH*@p1K?mr(EiVN|q^>sSG49*vQU1>Ezn5Vo0!ugt^-;#Wg$&4}QeqOH5sC ztgv5BTlNlIM$K(ZOUuhFE=*|^z{c1#?MVqTnSj{aORPD?*ZLl42r^e+_eR$Pa}k#M zM|yO4c=(yygcB^o&zaxc!xoOzm(9c!b&S)k&AiVc6lTMCc(5t_ATKaso_Nd zg+)ay#xA2VCD#&LHw*n79L^6MZL9AzfBI>Z+J~RopOr>Q>x9ta`|%AUR?fRTRWx?c zzl+wty#E>XtffDl?}-WjnH%sJ z@S{a=2w5Kkd?d*-Ah}JvN%SU`WH0cZ)lwrl;8F6pR-e4_mY$yh!`TUtI|Q04Xi%`P+Vv(<{?4#9|PuLNVjRq!Q@Y zxTOjuLISC3GMWp$1ATw-;&JWOSq3jw8qlIiOy2kd4gK+jo1S%paPxsg}%>*7c zhTUJF0v*~uA?C0%xYbha@0GmLPfu+A(8s?z<5664TB{ZNzl?C49yy%GAqq`5nBZsvA@;_2ZC`Nk)&h~iec;GKYs$<;REAe`VRgw$!I z>x^Dpa)f6GyP==O1>z4G%2k>(`gz@Ic+J}%L+^qajXam7a-Lc}YM|M$wRF6s{NIet zWbEiksrlg;?Q5zH?ILxv+2T4MI-M34o`!DNxG}?$N&Phyi|B_P%BQ`l^G4SaKWKh0 z8GOfNAb?1*T0fb21t?Y%GmK}YA&DaR7g-R8pzK=BU(nIn2l?-PZ`esU6;Zc66C3mc z7HxL=7Vpwb&AYUcW1eBb7$4uFvrDF3K_^5i&~i1U>DSm+S8+1|1_s8LKg_-+H=U}N zvOU4D^G<~UKb3UDY`wv4epAcU5T4ss9lzfFw(MMUxzLN;Eh!{6K-$u>D{Q{kT}1wc zOzZ-^kl7~;-@|V@&wObPb3@P~ZJx!HG>)fgq_(Zw@n^-KmLeaB*9wuh)**5Lm#n!cJmElq7+TFR~)r8{-+Xzi);(+p+xbgwn;{hN6yyQN)0LTLA`Tbcr%5+`3@ zPL%I>|1@ab<+K*D4T;L-W!_K2Xu`u!tvkbTLl(d2bC`a+&hAsR_i1mxU^Sh)i$|_u z#RLmHWQ~-Yt~a)s0&o)2iC0HDjCV$%&yjZqAa3T@VD=HwEE2$Y`t+&KdCzO*l6;uu zA-EUn$*YgUvuiifiDl8c&6djT$82C8~0_np+`(f015xfk+5C3$qj`dh1scOP!v z$@2?wvseGUho{mUI0lh;q}f2+VENFI_nbn5gBMTbtoL)lsr=fFHDVlN{+@SRX{Ude zd#)KGvd}CuQWlJN4Gwc&b z9c~xZ-5mb)Q+T)JzJGI0>o>kf^(`YV8}t}-P}ig_l=&2{R8|_i!Sf-RjD%o7v?*Yt z{o4I>X}i5dlb!u;}Pq2>-=PDg1 z*PZGh{T}J|;zEU)=GUH8^z);F?a@m`>MPB?zfG?ruWWf^5A7)?b*_jDJC3v&70Sn_ zVB_~m;C291LU;X+UoF4SB*F8j1!6GIlcYFDLb@d1D`mIlO|6c5-l&`&SzLbklGln^ zY&qxXd)_~AG1On*(#vi0vi;OTSB#4{?m|1xi z-8sFy<4Dqp8`>NDJ+wA_phyR98r}6U}h*N)JTpyNu8dZk!i}| zJbF2ey~=Ei z^ZlCGOg&y>?1bh&DIy#!hi;)wC%H6(&v~ys@%Eqp>pP$=61}3t00-k*>$+(tC^VpA z&tYwrs!iV0+p#h)2mw#`st5fYe+~8C;ofWd?MVbHnwwG2%8W*+54@^2Ls$B=xC88PJi2A+d z$c#J6JANGDJ9kD@3kqZGQg>yx2~$OO6%lw!s143>ZqC2+weP$jZdyd}?GwW7X1QUY z*XWA(;AKE7YoL+O12&}!a=Xvu6w6c*w=#A;m6K2_Hw~S3U;VNI^3+7LJURSbL6_Z- z`Kxs3g`p&bDzc|A_yzNfyHpu^Ym!jI1ON`Fsb;unvMp-G?Ej2T8X6h^h6Z;pVz{3Z ziP6%&+xWZV=imTSA2#W4Pe+%Z=jVT%Y7sp))Ty|qqOI&oY?}VGC+_}x&C|cnCaCmKC?i!FAt*tJM652mJgHy~(vKO+_OhdeC^Ikbi0cy2CI_Kx+VD|_ z(a>}f=z&(wqLL;}G*tRB&Wu1>S)6w`B|2 z*acu&ms}^ z9A#!yL~OVU**btI@_k~TN)34()#Cx-3$+2H6^j3;RZ6%Z_Tl3Lzj+Uuj*5CaGR(X; z7WLj)AuU~EzpnNB_dN$h3z%79$v(JH$agf`As3_fewira1Qgw&eiPs1yX#0XzW4 zs8OI5D_ejT|o8%IU3RmnQ!P1nj^Gau-g-p zK~`WRqnm99lMGi<=}b|xcnm0&2{fmC;RpNk5p?(pHMIf=sXDi*v!~Qsm&rOcO@wt> zq)E8{vaGPO%04!n69d>}XVk_}avswk{H)tZtwc92Dyn)*KfETT;R*wn={9w)YhkPH zs`C4SLn7gH-b8^7d>wC)N=lYAL`;JB5s{a_iLI^}e1m=;oB+TJAcG=68|EUHiAr`Y zWKe@rVSA58uaQsT<%)7SRMR*Eyug1$JXK1a9~c>eAfc;Wah$)~^|M4V%JB?PJ7u21 zVoNoHMWvRHpG!4LL5p?uZb>Ih9|*x!Pph@gGKtFefLRSSlrQcckg$n6A}DDJCoDvi z8;{pG$lVHuYzY6Mc!i5YU$bLDR8xaVDemMSxT$g7rur4Sgu-*QlIBtmO(A;;3{a z+~i@%^X2n<%fs$!X=gr+fo*w?!0ylS<%e015tD-i&GP>7U~z4-`TXZzcgt1Kj%q5f zYEd=i^wBzh?T+quslE2N`&U05i4*Nr!hS{HhQ;=c@_1pgbAP;8Kp+6(A3PLfum1im zy~h}fjkFkK-UMkvga{z&OdQ9+rTErfEV_Ssa&oc*QDx9!;G`gS6TBbqjp8fdYY{2_ zc0==f_(~HVYyv6;FyJf9Xy{eB7cF{)HvlTo?WB0f{g@aZ%H0BbfQ@<!ONQq;F0mB7#3AK4cLqkil+^wAyZu_5$iZWDUE9fCWmv z{k=s#xppI?b)DSZjfbSxaQ+_n71MN)8}y<&H#dx%BpN~p4xA`F+cn^nAcO#Ur9D0S zJ2RjgrYuPob9f6*0(F=~$RLQT6403;e`Q7V=gK2j`PWW|_XZg~4LQydD^~_UWi7QF z?r6Y5)sUdm;YQjCFebc?!cJP-(`u^|^_EfRi>eLbMeRktQwgbqHh`ityC|fOY|XeZ zNJ;@foj@Esd_b2EFA5Ugjlcnbx0Duw(`7qUSU+L=0rXc^Uarl(O(&sx4Iu2IKNWXC z-6JxLUo+SqF)~Rn%Q^ghxpYLy73t_;Hxe=qk;Fkbf*}gIg98D{_I)Ee@#Fwl;|!yO zGa_Z7Q^qlhE@$~V=O#g15u~WVgHgk~ISNt=R5-j1KELpJ;d zK?1xvPNP>vnc#EZB4zU}AQQ5`0Ma&U>iL+y>|>JkS`&6(F2o`nT&wl4AJ`*Sk^Q>c zi$k7D1^~!_iwp8T3YI~wL6N>BImhY-#Y6tUd}U$p4JaS+^buc1GzNfH#Fw3|b22)e zl~UtCvHPg~C`jZh?u&r505pPte8F^K?NhsgnjTM|>#XW}88OXP;Nvl<>_}(?>eJk7 z)D~D;xkU77Ra8S@E|4~kuN(N{-b@K^R= zoKByJt_+a)sfN)v{B`?6*p3`x(C>qMN^)vq*^h#$gFhXNt1uC;O6&gLCv(^nIzr_nW)W-NVD<(l97t3NZZG zX51WmFbYAD%72V*31OX(5ZL1pHGR7YB$ZS5)(`Eox+0_mYbpt1 z?dmv)$G?zdpD1FnPyNS7l9!Sw$Af8hAN+|yPdWBMvPf42Jd*8TZA^z5gBEl|Pz zg79J}RPUb~dWN$ZvWF7Vj-5D>EjoY|iYJQ>mg3OR3z8Qq+2~>Nj`0&fPk<|T zbch4PRE1Y}6tO)-u;TD0k@}T&wOX(*6`@+Cn0DOMWUQiZ4FGDRxbZH02|uHaHB=+THt^IfTD8ZgI@$O zkGOE))1D9R>eZohj_HfVa0}9khhJE#e)H#SQTTLAAcI22lO5o(fXbPm+$qBbp5k<* z`IB}EzX}Eal4pQ&^Vh9={PFw6z`!;bCR^Z|2W?k{i<4qGV9e%QB2{}}?`^G8>rI9p z371_ArlPz00B#Ucbrh#iNF!1K@o}3_U%|Xe`CtBfMo=3lz3a-hubKk!9*J!rnZQj5 zT`eFS3K64u2`fXBE4oWxS*~Twn&kxY8hTOHfq^I1!`_e*06c?R0%fAZc+-}LdI-}+ zctYGoHcI7qIcIUAQO+v!*w{xWWG;%{@hd9blS1y!NsnQOdU12V2BSC%!)3! z+ga>?nL_bd?4>0ozdjo5T7zV9w~hOgX56k@t6FbMrwsTrp!n5b#y|-n0vyw7!Zo0V zhlBmE)3qVz2WVo@;kThEqB=vJ(+B^Fk|)B~SW}`hF1Tl1COpFd*mi3WGEUM1D49$; zdo+W8zyBGP@mwZa7SuATX2HS+zT48}5HoV~@U)I7Z`@d4l?3l4&al&|>aA$TQ`5_vfnXX{s}AjGrwlu&!M)oY}NOs__FOcfWZ%8d55?Ass>C z>UR21Ju8hhE*I8i%*7QLu-hU}U$n1KT#UU%_*EUuBoy88Q5)_!I8VmX3Z8#71kK<# z<(h5h$cRX7O2X%F2r@#*KrF-sSKipZ+vIHu(r@wA)dAj zQ9crGQYq21fLpy+H3%-7$E$)bSb*^sK1+6s7;qJ$KhWBBz?0RJ~Z; z;OaPG3HR=dk}KK&_EoSLnf%C)4=$?DIpvLwYDL9keumG3TI-pd(rc%AGiQp2c<$gZ z>pHk=7pp7e>~lGEb$bWqphs!MKpji@2t>47oNNo)un)I;rn-m7NLgkEQi+gKiQkC= z)u}i{HPhQL)BKuPiDSUyS1b84p0gRp`z0hC)^4kOT*SMeK3kEX<<`wMxI!`Q#uxoF zxjz!VrJZ~~qER66Peq8cCKhDvX&{7T<-q`(o6s^edvDmrRpg-lNVquIc6ZXXC>Jl* z9c$T;O)r1`4aGhxe4sK;5d(~H^}eM*T~xqmke0(E#H?1by{Ocy2#*6&u>j6(ORFVi zD(=BW@=lAO{Gcg1Q0j)=Vk{u0!{w+q60cEDQE)xT6v8hk)ed54brfi84^|Y}$mRWh zx8Jplgf$3qipHkwhliAF(IPk_#ARi#L8o&IKVQzd>FKzX(AP0O){v0zIAnssQeGQ! zlysfG5i@uKa{N}!>qXf=*9insk_kG5wMc|O;|lRGA|mL&P(%_wMbsDdVHtNDO#gX> z%6t^;CO=^ekl;yrpauqmfEI;@yP&)MvUe4~alGo2<;^*kS@o_{8vDL|_bqKz`11AN z!`eVmH4vaH#PN^Gwn_4u(@T8u zJj8FF&vL9iARobZxb|7!7QB1p5z%m%BMNU4j8Z6h86W2d`qmSrQyZswH<;G;jw5pp zN*XxO09b}9xZes3^RKeMhY4AL7fJMuX0fh0?7Ho}EtQiEcfX%+J@7GX^|G+zb z{-op1Z|Ggj{KP zp(c`-uhhwAzbkTU#ao&5^)43IL#NG{$IKcV{^gS>X{Y@iPjvh;-IRQM=Oa{`wyAId zAyQLQll7W7>EBeB<+u=?M6r`Rhz4lz1r=S-q2COFxB!LB4@o9+-UYv(-9MoWG|zsW z0R82@(iFp$Xw@nZ(yet`7twL(Jn=vH4^_Sz9A7>ZC*8p5Gw_{zaPV*q+l}D&kxKr6 zqsIrkCpxOHh1;9tFe}c$2aJtJV#^lV{I$YC+4|F`I)u3=G>A!9AaC^Ky_u|E- zt(nlikkSJpVUD>^ovBj1a{77g0-N0IvuVfsnmgCp3K_pNNfo@GD5)Xn6CM?`bX70Y zkjYpq@1tChF1@Y5WA__%bF8O+%j@CckTb=ipb5x1Q?NO`i#K26t5Ni^{>t1Gj~g^B z2YyD#b|?@OP0Fq2u0rvQ%iX=YdV}qYK0Vy_$VBC4m2<-dhp$^7Fqy-(@>?BNJ}{jT zY|}7a+Yxid)AZn0I*xfj8;WV-VI@4d_V!?=_4vnI;=b-^>2ch_N~C*(%}L9gi=9wK z%rQcFOWFag>G`>yOg+PJ>2kDO)KB20<9Gwc^2DtJu8?1oj=rzuO5fhLnlm$fg|5n0 z&#`r5Jq>+@Z9ZMKFRJd!4;PB5#A{imas9+AkAM|;6so~RimqZa<_WpohFgsyRR$W5 zRnnl7gg+Gdg{mjEI`jd4q`!YP(0Cveu)EG6v=4f@=0cAI&R$`ywzI|F0Z&{t;9^wue0g> zTyKJmu8eTW8xF^D?|IY~Cz%UpK3U@hHFh$?>yt zmc{uldY`!2eIfgYf`<~}4Zf3Nmi+C=-Ez4th$9gC&Dl{>oTm0;6(e-vwupRiEuo_yH!_|T2WkPx@# zzPrG_F*^aOyU8q$DH%0dZlwWkxo(<|oZU`7*r(#BE8(1G;D5L5%FKhA#+xBA(rLIZ z1_s&db;fH%5PO2ySV%6P>%dBf33lqy&yy4)W!LI8`)k_<{ zpUINCj=JDAhIfU0g_-jhf2v}1*G@CnMzbp!V&!L7`9rY*FCI1y8KN6&dykEeSU@G( znB!~#V@&y>?Kbc)fUv#?WF%y@Mbn`tZ|+={L|KFWzNt{9@AKFYTJgli>+H9JC+qDB zMD+`1f@nB&obW%fdS|P1D~hon`Y2hlWo_r^?YC}qPeS8T_pfOP^63&%1F)o}MP_x( zGF#y8KK$X-K2~HAXM}u9&M}E($B@E!SKEM>L3h1gT;O1}-l>h$}z3wPm?Eyv9U-1$B)Xp-d!@^ z{H9bWdon{Eh6NN;bu^7vPOjvz%xcZ{SpUr8v~TAJ@v>)y-`ckQNz@DPteue(>fJCf zIk6LG!%m@)Q#DMM@~ypnF%L}(_AZcP){Pg{xi-%39ti7y|3|4X{6o>iNE`1}{S1$=%xaP9()gxnW=lrJF?wWB?R8@uTPUgXu;r_D3o;MaZuQz^q&94~jC!`#5 zqYSTcm5^$$-FI)9d0%~*p68^`Za;hU71z1vs&36*f!Cs)*G@?_S7$}DVm6)%Zq>Vc z4af0*W2W1v|(*4Eqs0ZfxoxM;>3k9|`fz1LI0nmXV@;*0ZvAKGHqGP>Ee z{+amj$G+CFIdfUL+|ME2tAdxh+b?*1xL24xH6XAGO1;jnDwkheuKd!MT-lUe5aa`jdNt`l3ZRviq`4^y1@Vo1ZPYDz5#0iGt5=vxzX@ ze!C(IyfpcoLdWmqHJ7*+5fO+26QW}f&2TcI2`+*R2a;wSalGna$RTdm-7=@Ob+wSd z)FQ776pC1aXlO{KWzm2T9R`?%B4VILh0yXgQSpF9a3%Z>bKja)CTGc*W@Yu0)yI18 z)QqC|?PAMyaZMT1hMEe_86}rko15nfEBGwpzf@B`yUt6n&uEqj*R^SE#rA3yZ`F_W z3SP)n_}!2lt9)i`wL2?1#mo5NeTC&0BEu|R?kjxOqh$8?!OlV{NMlYw=Uajn8h`uI&~{KmY^BSqPdTGPy?4iCSvfY_iu*A=6hyawky$val{?$+7x5F6916vN$S zmxnv5-4>|d+iPBImc)aaO47x1h4Q4}lAD4IU_Sv|eZ|Hk@VrA4e&sO%^ z_ryxNoiwx#XjnyW30&}fxNnzNq1V2tQ=Ez~QK!}-hNeXk(gWaoBxS@g?~2155aV+| zPN#bFeqf@~Rs@g(NWotKBt}}|6(k7&8u38kw8VopH~D`+(%>+4PSW_^h9gf8vJA!N%_?{tVL98vBUB1aV4fE&nr12Z|{Km zZ1KKJ60+(Vtk8j4+R~9I^!{@|lidnABd{||Ak=Ykd>D}>SX8!%L?mY&iq18Vb)t#E z$x9t1;325HTL#z_eE;nx1dO8FB{JVqmMAnrH~u;45zGB0J;648A51ycXe^|W--YfQ z2&+%AB}1jCK8EeQo?hZS;q93&OK-o8;J$IA*oo;l#7s~T;pM9{8~qiQ&#W(aFrc90v)j@#70Jvob?vwgZ;2pa$ zJPwdMP(v6kE#+=OhRFpJLMue`KR_R$Gub$);BMcfJ@ZWsD`@O@G3xDOIA&`KthrZjIWJbV10s0WX zie8ddSnlSaN0`U}9~6=T5VBw<LCT^)|sPMpuPTSDUQ zGuLT*j21ZD#d+=2oKSlAOZRQ9;FXAOV3)o95;-;Ic5z{1Ovm7_2p1~w|lW`q&t0}BTxR9>2mz{78l zBooPIw?`=70R9NvxKGDAQ-B1{1@23rHsD@L&BF93q?GOkj)jx;Zw?P|{J95F)-Vf) z!j_pzhu1h%V1?i~Y>b`iS9du%H~e>bSlyFD^Q}Uq48R}lPEv6DEt$7{nGS&SN*huF z7o5rR7G7kC6Czg`r4!~PfJ{!ra3c^;h~|bIeg_n)$d-sjEHcIXq+Y!C7cgBz;7dUP zxr>0jVJXoMzz4(2M~Gx3LLR4cE+REQZl+EBCG!na%|=t*E?@)^rXvD2sRkBClURT; z0xMer&JziBb#RgC;6WtaZ>B_)rE&!m$Br5$&VjD>_0D(K4 zCvAOvHvHHz^pdeT+DKeA z`J0z+EGKO5*^#O#tDT(>B=e~c{mi>O*zY`U~dYthOd|Hx@r5bXL@Q~109DcDZ1Ws!?ev| zY2XE{*Dx(w>ZNGf(TZ!q*$}J6Ow4okyU`w;!3d)yv}?Yg${+&yGY{2IYxW);?MO zAWAC0r@$OXUC@gFfbv(5RpCDHzFH9X1>z|nMPJKfX+ni;^H)wa9T)cG2d_-%wZ%VH%4KAaGrb6N`M{4R2E-6y2Afvu0sex z^d9u1dQf|t3P|{g?EdF5z>6fjD*?3;-4g&kDW0LVwH1PWF_5JI;c@fO8hiHR5S z7%5!(T3FbRiysQ)rD}$Hlk-n00HPz!A!HgTII*Skk9&ty5XA|fVFZ@`ck7&-Ax$o>f8A1o47y#GQO zxVgD0(}7a3aiWT8x=LD(`|XX_#}Pr(3gMr;@!CzJ$J4_@A6DZNy^S58FVLhTie82` zkFCgl9WtUYMgmffn@JD+#VferTSfdKN{@MU62%AoRcgks`-L1hzm z@#oVeCx$JMNR1PLh9>=&F`I$3_r{}-{P%Ng|*K8EwANq>HEa+59uQN-@L zxrOWy^Q-PC=^MVAyb}0fOh!g9;GFt~23#a+clAh;2I>HO=ppY9m^rjgAU+{MBjU^Z zj~`1aDmX#YB@`A4Ls;VA5O@Fn1&AMbIHzM6hnt(5%kQ6h4vvoAPr~l(5F^#ki4(0u z9(sHDFc(cjV+PE8;@DYrb;eMyL`6kC^&DQ+W2XL5I`rW+KGV69aJFmv! zE*YR|Y|IZAaCWwQa&mHbWMoO#5Ge^oxI~1mQjP|+qX4rNqI3~Rll=A-GLICZ-ibG4 z;z{k#c(?!Vsv73tw+J; z_`~fR_D8CT`a))#mv^ezuK%Q9#9M?ZwD{SxMx)ctY3zOdxDZY^@XJVKxvZP8jCWR5 zLqj?Cs~+!pOf3BBns-r6bd%RaI0B`bo}CH&a>U{jOT0WYCdN{wT`H$x^6fBw_>r9P zveip?*sauGhl~jamj3MPgC>r~=o#*@b#)Ey?LC4zOGZY9xkyzKYB!ij#`el?Vz7 zdU~?ouc}HnZe*`5ZrKGf>&gGmt7sGr( zCEQC(yNa4J9U4iHp4z8QDT<5ZVNE~1Ia)yvKbjfJIi(p1P|3;o)eEI#S zPusb}pHKo_o{*h=(|(=SwrywSZ|oeI{9rBD>MXZmLm3+1q|{VAU7UTs zTYWHYJ0^Lhd0H6S(Ww~p_4>`515Qqtu?su9y6~$V8vMDPi+yQLFuxIqTxj9uR@sMi zb~^Mn6$Hjf;*+87d;a_PI!IE^78l{lo9U0^LyIe;y=( zJ_{1Bn;~Qtzc6{c@L>{cqj(@6VJNm{WFPQd9Tk zu%k45W4xSq7WZ6#egT0onNx}0kCzBc+$wS(zMMZn(WD^~{4qK3SEsn2^J z9e;mEwS<_aNmb@^sA}=H3faO;tImB3nVZUBFvQ)|_qo|vx!G>CcD2R-W5~&_QIwHg zFSAD0P;TwU_3JjSUn3>EcB8Cp7W~yk>L{T=6<_H#K_D5BioC3zC)U4g{5Jic4E=^QIa5OVTts?$Xp~;kkQNsrKW+&j zpM=mweY86Hkw>a(rCLyMq@0dY`KTkPm$XFFUFy*udE4-HC(C=R`E=I%tLf$Kt;gS59y1dsjYCBYoW+^WcSgN1(x>M z?eo)Wi{2LC#($_2I#)_7+XYwpV@23=eQG`#RTrGV6<$a};yk#sJm$T&c3QS7j@|p5 zyY&s9TPw!UHSY}bb^MZL`Ht0oePUd@-7u5E*M5f4D}VMV=DEce;oHO9Ta!#rGcLg@ zE}EYO3ir}#>SHAi!oCWI6AM@kzZ6FT%9W>+xUZPu1{ue z`2;53d~5Y^+-AmyJoeZbxvX&q2JkqPWiL(Cxj<|^&2og%|0@4_g%2V;Wkq&~xyLto zt|%+;(PlKmPE+#uR|GaLp_V8qG|Rb<#^!65m>m_5QQqA&HO{{q&U^8M`XSM7Oac<7 zxCqR;@I?(;`};yf05T8C0silo_s|k>XZQQh8afbiECm_3)_=WVfcKfA!fp)y>+k>9 z#S-!|6d(pEJ^O_J@$SG!0Nyv3KWYTtPPzwP@W1`?NxLw#8JNMP58b^g^(o~bV z(j`x4f7%>MuExn(JT-NiYjG2{dyp1~kktOsf3?DRTP3*?O6$Py*m3P%mBVqoVjcUm z)xCV1D%bZU{ru>srv0EwSLZM;)%Oxczq2l$=PkcZ0w25mB{y!^Sc#Pu&Pp7BZ2P{F z{LD3yDKb`|B*rW_Vem<(2>S4P_ISpzBVE3T$av@V`N5h^VYIMdG_8nmah6NOC&S8| z+~}`)`bi~gbKxrz#&i-wwqG9tBg&TK(PkJ;fpG88F`h`DOj@qbd+*k3*s9bh$kKND?bv?KW_0QslEBPQr{2k5W{#Q+)*_yLw^eR% zR-DC9^hS%YC&Uz3Izt-M>kY4dvcYaR={>gVC!U#$YCC+BxZ3NUmp!<-+?^4AlJRix z3K)BXZxW)&;L7iE+m^TG57HPs+!|W^5*8syt@ro%2DtPDI^-}9to3!X+Y7@8p(qM> z_XS^%+NDt1jNVA9Vu`-g=+g!N4zbf&*Tf7V?~^y(wuhr4n$tUnB;+MgWV>HZO?8Am z`AT~3y%2gc$)Cu9pHj!iD{cC2lePBccO+S{mvEx(<>8n#E&9fKI3-;}WbRiKtq5=8 z&oys%~VK$1f4ED))+mj$R9`QpZI%l-CDh%}fm*ug~)qcNa@S+@vBzfI&51A(6 zc&_I%KKE5E)-VGqNAqabb?j*=E4UJR`$I|sZ0dWg|FcLf^%yNB)>pjdvEXZ)A#DGe z!Dp{a=B(HkD){T+lV9PQQ?u>9m(!=E{K0*Zfsug(uOPIu;ru3341 zl^Zu6qy1lrM=(2KxLJsMyo2%dwR`-~9in6_co^xPH0@@WwaL!FgR7ch-rDWn;hh9E z-f)eX`uzW_T&suxE|8#tYOGo~2&`6WP(G3;8_c6?T59mX?)w$6+RMI;tw!>Dj|lV| zasQ?;G%?TdTBkW&OEt@&b!_|oti#!MXS%*rR(4VR8rWNH{!Lalqyz6%-_7s0RXhey zCL^VR{qR2|(9@2a3%hS+pY=_4>k?Oel_3LJms~Kjs2#g z(0cm(;yEVi+?f*8RJI{H@x42N zg7V#uY{uW)W74;6UB|S4C#wsw@Sq=aRG`R)R+U6H_qo){%bnJ-#T2fGZ~uJj{5(~x z$+$I6RLk{t_(9{qXAiZq2BRCq@^rCgt^=@ZTT_6cqA&w>YC{CN&GoBT|4ke4&m(<1 zR@+J*7*?9v6H8w?Wv&ExE4@PZLsb>grrKZ_3SBVZfudO^4I&yhIVk>DJ0{h|Oa8f? zEXO91T~nBY44)Q>7liJLV=pl84i(Od%0hZ3sTf7?Hlb&f7-;t65I4`))ApRDZrS9a zQV)doQ7!z%3ARxo!T1gZOjr!_2ROwfDuZ@M?N1F+#1iaqxQep;(;BWDOg(J8o|bCKDI$Ve{v6hF6dc&XXYeEGB$N+h6Y1G6X|&f z8Y>IjM&CTo6pTfY(`&bGauEYOWXI!pr} zrkS2_Hk5e;Q?}gD_WCzh?J#faBu|e~B}=53K9k!jBgXj`uf(va->Un_2DpJB)TNEja|A{lSfCdMyHEb< z!LvGL9nygtQ6A^(ROdwJ^{Q^-NV!_w2Dmkx;Nd)3A5~SjT$;Hm|Jy=j95w`Yb$4hQ zN3&6oqy~34tO_41ZyQ@PLTg5a!R&GnpQ)VzL_{dq(vN5>uAnpY`u$M6t%|q??b00*hqI4`sHr zQo6;pjd@Ok{6vG|0TZd#>yn-eqG3l&q&M*+1UUG+nX&T9Q0Eq?m(|`!u%gjfs(T?M zP0%{xQ}TdFP*54LnC97hXDlKgys036C7#3VyW0xWjZ+GY}iC1b&-vbrJoH^~ZiGhBj&pJ@!5NuH^N~u;P~7WWbdP9f!^PZOS&+zG42IUF#DuK9!dW zrXV=+)TRxp5l`tT@`FQ<%RTchaz4Bo{goeC_Ge)x+!1QiBy8#*I3muP&`cw(-QIFV zgck((Uwv5T@ubp8qrPlCh~MtEqy|r={Ir89Nct7i^`kw%7;<(?Fyh{pJZ+auwM@1Iuej8fc3llbh4}h`i z&up;_AS9!zSOHE-q_w~fIV<>~$&I-OaYU)0uI~8dIK^2lhr-S0*J=E(okUHk>e0RL z*o&LRxefN+A&i0g(Cx<+t;kiK{>(H#1cv#m^sUb&*;3lz6f1u29&0|u)bP1XkFT1A zI8Q3_sz#HVoSe;54NCm)Fys%_5nhrK>W5~DpG+<)O%`fpvY#Ec!X8f}aBHp!y}(mN zkUoWPeDzik(=d}n`uL9*y<)^jS>l8nboWedt&?|QIL)z=3?$DMgS(66Z$x&7w3XLeR1;{tziU$5-cSga%?^*=4JUP8s2yoft^*hA;`UT#-U0sPH=?GJBZ$%W^A;k zx1bJaF(Z7KcYoF#^|GsoR%D!*{&Cuz$AY9N`Uxaa+@c3MJkY0rCBsv|0jgR(SL6s} zB6Z)t3V~TI0PWBv8QUnu%~aSoW&#ij1amUMjM5xve?#Ovoh7L@z>gnLOYq89Kh!=e zEJ1B206)0`)Ba0<-raX)GXLvl1;*ED?-y!bHVd^vO(U0K{w_#RY!U9lI7c^}7=X0&c8#qo4&yxb1Q zw9)L}m(%(0c21!lQK)~>BJ)+IAmpE)r!=};`k%>JevRz8%+sCpQkk*T_fn`;1VrdZ67D)9;4iv($^v5^<3eo?%DNM|bC59g zr=K66RN&$JVpwsRRQ}2zbaIe6e1;w_$Iv?5s~^>c@09s4Rk1$JiA5*Gk!nP-@_#CS zR$pTox+P^fxtqnj|SSTE?htAL*Q!jUc?txz5fK@G&{~KJ(Sy%z2C3piKF(yvqoSebiKJ z6{$Q0NMH*zJ&S~ML@)ADxpzOdHb(F+73*WgU0L0nEIgUdIf^`cp3rW-B)NnpBb;jC z6o0$lOO?6#v)EYe_OAGA@z`}3Zn1A(OA(GqjT(pgHciA~N%67}fYO8)X4AA^hy7;# z*Qe1e2vtkAI`YUp2MQuPe~Zx%B+c@IvQQ1=61Fy*s(#Vk2{ZAjIOngz$*uad+7$0l zN4_}~s*1=PZ$N4xb+waP)G4ptij*?Y5JHv;y@h%MjZ5rkI@8KMd^XmrJ`bPeZ&GPo z^H_*B`41m>lJ%k2FjR>%*&9KU_c)AV2B|kl*a;{hPRQTb#Ag_DuK!{7^}g+2csoKy zncP(8lazy};GyGZOA|*Pv#PEE8BYDB2R^S-8<>S45yv1=pul~jQc=LG^a+^+@kxp* z|EV6{x}3nQ2hWFh^+A2%ZdeT2}W^`yiclJIgO$b3Zhn+)zv1Ig^BF z6`o0pb|wuGSN-LrE;M9#@P?z81WSTxz=f|T4Q@!n)x|^?%BA{ns&e>@DWFCo*_;4^ zHngT6D|p*qy}9(DIlHheuI$=}nT$GotCM(vPqwbc+04vYI zYD!Yj%j;RAgT1Cnvx{}YUgF$ug2O*Rh4(an6=+`?g5G;VV42}nDChtnHN6ReJ_|Sv zGpd6-xlfwo8TZrVhpc)g@C5{}2HoT37*Vu!Hhh`EiZ$_XsMsMShtp z?Af}f%-QSg7pS7xZ#K~3c69tCk-zVt-;|F=FGQ}Y*2J=tLJL(hjY$Mnm(o- zb0nwikLYTpfFbHVdRA?SRpgL`8gBOh!wt=BH7fq6BwTi&OeWtJi7Jx6zy-Xa2F04*~p zuwu@NFcOaG)qt0F#AW*EHEarIKs)19Jnw)3&_Dfq`)LX1^uS(^2aqj7u&^X3%IvTtP>HRT{Eh?hl1)0B!u`r96JrXHm>;FO;7)&boa>dLS1X`36$T6BLSenhic(z9T?H?G+IwqoD3cAHRPts2IbWoeP z`M&i9zI>aIfyM<%4(!(qy_8SWZX8QJNvTvbaxWks3^Ic5=gfKUei3%Woq_K-v}}H4 zG6QeGo}g4@fzis8*b*u%QZ41A2z)Id4ERIUrs-+rwmtp3ulk2HhxCx6$lIQrJTp^f z88hePkDh;ev!PvNz+iO+U%zVPjZ_M#PO8?G>dl46GV8$?PhEM1@d6e`$9%WKM&CXV zsek=@=sK6YlcIXs@^|rD+WM0IC>l$c3tTZwfv}%>=z-cxh=Eg?{&32J+6WL@F3mI- z>cb*DIny3^srjd)GOr3Xe)Vnwi=YpY znLpW0fUz__>3%4bOpKMm|H?U&BYrg#{j0N%e?Ct%&IfDh@W|sWJdaV!;}IX`@E?Bu^3+OvuQ!@BdY^n*6oY$ly36<+bo8}WF~CdlV1&P~021*|XRb{4Yzs0U z-t4-8TfCBA@&Wn*1u9J87}ElCurf161SG6NmD>|;xLEF#xRqkr*(f7nSD($G7CPSk zp8Vy{(WD@5^6;CBlWn_0#uxR-TCS+iFm+B8W7NNmTz>}!&qXZPjcku+3ZMwA!3RwJ zO1}8mU)j}HL-qtj6Txuy*1?ELAF#l?g>^SHB_?Nr- zI5Ks)W~RG2Jlnd(PwEFts$Q?)bmAHMFDF&Mh+kq@Pa@oHYA@vJ{H)O6`mo%{uR6%? zjj1W4b@Q!Pk!mtwBEBz3jSZ|}f=}4uww0oNh##Mqf!1k*F&PpJ8L%qkaX|J&nZ;Q0 zJz=URqF(9v!W{Zb3g~x7f8xivwPU^)0ivE&D5#Bgt@RUR-5b0$0t;W){tOCRcjZoN z?ITbjZ5&Kw&y)?ueTtQ&uIy&2f!$V3TRA2m=5}^)pmid(-2_m)|kKQPczb79K_i24-@W z`6uoFspK;~0volzC#HYh7ejAH!W3?00zLJ2J}*Wonph?|uNAARH^`TKywmp2VgUi| z%D-Ks$={}PAOH8j|L^Nfneqrgd<=!csQ(|Q_zy_n zxDUu!(hhvS>+b*m#Djo5Q2OSKc{^KM1swsieoA2h z&;&&*m7CaDopXd15~mXoyB#Tcj9?N?K&vqG1}Iq9JSHwQ|L@QGzkYhkytf?5_fg{g zkMv|NeL+C;5X!V~Nay5c=EHQ%V&ik${r;SM;P=*YiV3(ih<^DFQ|NwF7qFYCcqB6K zS-3e-X*M-$E?*g86G@^s{;Ur59!fW)6KV8kThqfoLhZ5D+g4;;RDgI2+wONWXT<5y~k$X{?u5n`}w5yeqq+!(;mJfpaV(+zGQt3 z1ps}i#^9FE1L$pJx8v5q?`#S05a4G-+sXVKfGN*NGRhn0 zr(YX>Z#ppTjqXJL3&kb2E^_9z^3gSq-|-Wfb&~7ux3#!B+iqNVbNhnFdgKfcbYJzy zY6wsDczejADf=Sd44$4Uty5j}H7@wsZBR?VfCk4{JXA2H&;BYeHvrFd+yC~`?2bYj z4bvY!@a(Z~@8v(9j(*t+!;eCjKjBH~VI`%ZSG@*Xbr> zk})TguV2cAiw)Q}O!Y|||I%I03nmsEPURB;K4nW-yUI2 zHL*CEb=9m)W&&Vry?%x5<&}@0{~tX5LXTPJ_vym+85B1-j2C_R?-^bLia)q^!SC{^ zLj1o&w?S%EX&Nz?4_uqXDK~m>0zt(S1iO@934g zgu)bYKA{*O&5Qy}!FIaAzBNZ?#g6g2J14jo0l;E*>Q(am%Jz$)qn){#1Dn0QNXiF- zM6|+ntzI2k73HR1rtgbs4>z6CS^!CioA{p|yYuyIlk<8>VGIFv%wDzj zZS(|o#POTKiBmk>z4ptUT1!q>jkG_s9MSyh0W)G7S&2PqA+e`Rr%H^zRttf^#^?WK zJ&(Ex*b>Sc*&+;*LNQsD9#!nLf0#XsE$Zd9oblJb|N5j`zWfKkF?EXRqVMLK)Bdy| zLEycO0bUffr}HJ%N)*SUSg1!B%n4%CNA`8i(^G6-+^d*67LVw@)rOrIBOvF+m2>XT=6l~U9sO1Y4%*kx{x5-mVgTc z#-uLG=Dzy7&iP+&nFYE~n=_D{0Ct7PT3J6n0!@Ok*hip*IC)k_+x`6Z=6du;k=nL! z`(*4gcZCiFM0D=G0_P%3OWL|!gbI674`EO2FjIhL>u+p4uvZJxyNjQu?>Hd`>&GsXN{ zfK9Cfbt(Zaa%yLV6gQ_U?No776EYi)6D>&gswKA6`2=5@O$#DIj)rZ^|BPJ=D5|6F zo#HIcvZ&ves$a0b7p2^?vFqS5WZ5g>B2{JXxBU~t_UcYEJJ+y9<-$bXq%*TL>$-(x80M#06G+zrRvYK@&pc+ zAhqw5QXItmJs3x3|HY8u>N^X?wc|~$x4ij?Xf*)#GM~Fo^&U_U)Od0YOBN{0ID=yQ z>Zvss=css1UN-TSU4H{;AT3@0tsrGB%PT3E6S_0#hEmVq4$(`q= zxxyu;qpl5DTSk@** zO4h*7P!|gm0!r<0Oy4uatbp$}Eq_db$;U6~ z#IAs)h#^vSw5Y?MZ}|s5hgltN+h|c%-`UX6b*fMbKlLP8{-K>Ko{h6Q^y!_`}6yU_wcTWmk0D$!(;W{XS%8^T(4JZUN4e}JuY|Fa- zD7`G*s{(LNLx>BY6O12xC0Tz{cEb1NC}9dvn9GpFnh&&B2~IrmJ4wh0!fS}_#OK#w zLu!4G!kk`{lkXAe1U})ypTxeoKrQzF{dz0t5oWt>-#BM;n<)m)0p9?VGWPHencC}4 zR6O6N*wbQt7~mY@+9d7Nsg~%zEY>+2se{cUO3VuFM;vwc^AnRWO3gOl`Qcc;KxltL zfe1b!&fBOSckA>&V97mAsJu08^Q?CJ9)H{ac!Qw5=k`!%<%YQ@FSw}B)*>L@Dy}Z^ zWceBto&X_Q<*sbAXcXYUj5GjM`OV3GWMEbt6iVoXXSo5EtTull z8HfZc-A%>be!PlH42Hon(|4vq|Q0F@zmGdX?GS*s{K z3fJKw>Lt8e9?X#HDdxkD3&o{EEPux60XB>PPV-zNdrbfNUM5zS3tt-}VNjF4KwSTG zESXtagU4avF#;j@A^6FIu~J=^`W$3RPmdJHt<~dDN0Gq#oK(s6!;YVQP?2vF6v+d3 zA7})Bm)7F7pg2vQZI5M7HY)n?rHwJFz5ul6MQ5$vIR`l9jM4s6ikJHlFdUG;zEShu z?0oL$~q^Ks(F$nP9H0kQh=&))}8?f&prO@F>3mCGPy90i_4( zl7~gWO?~>86zZd)vooTWqE-Lu4<7>`p@3J|v-lxKf=0Xe;Pa%BV zvrF)+rF|0dfBeQzSCY{EmE0q>X3Fave#}gkOd)&AF8Ek9^LR^iIn<5sl02cqdqYN- z_##Yi$?YCbnA5RzaT<6>;qBZ;e3!ZDz8>{QObSuDETCtAW_0k~JZX+PZHS3N%?zcd zC;X4Lo|6WGP_&|YOkX{eg3#rOREqzCv((M=+n=-$r%3ojnqKs>buZ2s>$1nPGNJrS zWff@9y-F5aR374F=$LvBpRumI=a~StpwaUBj-7F>uR~8JK4PzM-<@6WM4%atlKb}* z=Ik71aWb=WL|Bcu~# zlSKywUcseFMuxC3v3WyeUy^_xwN9C46fG$!Vw?CqTY=V5vb+k%b}&APt|x6pr|P~; z0BJf)+5=AWk$rtEkmk@CqUVfjP+^J<(~=~t)YQujT1uOAm*Q<+id+SeDX^F;>k-J6 zC^^~EkzwT0yoj=z8Tt?n=H$U5aUS|ytmf36MU1_SC~=7-yZrvcaA8E&PbufIjgEbu zo<$}J%6#_$X1e}I&rviOUl&adt$1r{Z*7}66N*?!%HGb1_=sjb=@9blVa!U#p5W}g z3Fl<;o!eE*=MFGh*TXf##SSD6L!XFXS<8|v8+rqcL}gIok6Cfd?}U zIAv$_kU+MPbY%$;A{hN%08Ls07wD87LD06r;Rl}_^auts{jRkZSL{F8p20IGoE29E zlap6;VXcrel7D2`q+HHKy@q;JeRd#U{*ZZErB_DEnZvp#Zz;1g4i^8L>D^)WF^Rg ziGm|E(d&8=GGPlv@{vClpo?&fd^fuLJ;cDOQ(-_!H~Qq+!=snKR6e=_hsmuk7Rh*8 zKsUP2=gx&G2LEtBpl2$dDeoD$BElKbr>R+~Nu<)9f?Dp?D#zKC_l+83XCcu8^^SDI4=xK2zr(A!&RZvHPAnyIVxadl% z{Ypp;&C993?vU!{DX@?X;!sf|120+*eBMj<9BX2Dc!YBTcL?L>3op%lWM?C3xTFFt z4)k9Wlt&gYJ)-*}U@5s|;4*sLa1oQRaG&#eiz`0Uvr% z11z0%%K~2YoHy(9+`-vpNT+HRZX?4b(@y!xHqCq+eE8*PR0+sG)hT$wr?ERC zKqMrg%QPgoQZP&WD|}VlF!Z<(nF`!%VevaUt++{=E1sP66F4s}CsgSaT&t+g##h_4 z^G(83#zbh1^{8Z!MkFLK;75EG6?&@v|R21s59;-$saPp>6bFjGu8#l z3jB48UDfSEtUvr7{%E2qfa9^VRRA1p(4mw+U#f!tQvEd`k#xTccMKv!Hj(a-s8=k0 zD^jDHx$o4ah8r0SBXiCo2SpL_Q=>e!L*_E9a~+3UcUp!`eD-@~YhO(6u@txqnd|k0 zV$cN~a+@QQve~v~;gHWwOUv*cPkf;mop1Vtf}ulcSi~>ZxkKb$m?*^8(R3~7w_KJn zB?#B{=n^2<=n;@2owN_)QV}!oe?1BGy_bBE-fSM~Tww09edv|_bR9miY-evaJr2l{ z*uV$!e4VxI2s!{A^PH~AzK+t48s>Q2%yuQ+jLihGY{tX4TQ%u(tnSf$KY}f5%=vJzbxMSUeMj zHN($7Ftd>?xAodb<43EAnmlEmJJ+6MpnReXV!=qCj>!+T26~G`;i3&es)>3#?I)nv zcCENDDxy(TQ?Nh;wg4}IuA(>mvSIUU(Wat!+mgch~nd0I&EBG8d8 zWQ8?q`>Hh&XYIW6L$eB4-6a!tLyT|m0!yzeXLjaCZ*{$ibdfYoH0(fGnH9po@{<$^sRW`T2R~a`9R{Kz3)FLf zAjoJUas_XQw4r%5rgg`CVSJze?H58{J2SRzS$@J;=JYJ~{zc!9dXvyjp}Pul{=?Y( zlje5>zyqa75a=KV)2U>bAjv`Z2n7~Dl{~9|t%7m-Y+2Aw)Tk$zP7q(6iI(8Egr$^M z*)Z6}Xrha1IP6#lpNCmeAiopPRIH#llweljRKXnfic+97FY0I1hVu^^Lq#wh!~ZS= zD0b0X7!4Za@^$s{k|Z`U;8Rz3!C`l{5Uu!z$Aht#@%qbUXl?@-RL1tq=Wp18MR-RN zCZl__qG*#yLpHnbKcS$QT?!GM*KZhdH%sZcZr!;C{9yI2M80x+Ox0yD%g=k8E$B03hCkOl!;3zx_Q!=2S1X+_1tS0D8wtoCD@%?a!7%K0K0k-#lPpw8TkI7|ADI_ie&*Mv)cUe8EJQTKqLx!kB>27umH-8j^F}S*g{pY z<~egEK?5JQxrnPzR_sGFrPppv0Q0O#cf`7$sFD}$3PNCB52x!A3mHqe)?GDEO4@lw z@LgJ2D@Eg9rKENTGCCmE)#d|Z*u0M^Tnk5rrjxN>wr})d7Uu`&PW+{q1pB#Gk48cX zLa4wEA7DNwRp)2n=adU2-2YlH{we>0nH8KAo&Sc-tr(fm6Ss|NEDCt4|yOup@=3krwW=U?Kv+ zq%y#suw2|IA4b0R_EY2obD=1N4|*@loERkr!!u9)VdnY%o9R9!{`*NdX@D)XIXvk< z)GLe|Kzkg)?6F(iM<^VWNYIIb#bZjGbqvqmNs9-OwJk3wBoI8>cBl0_9D{%H>d z-z@-f4%7aZAGgRjq-NU_U%5}corqj^=SkM{?^MM*B#`49=Yp7CKoLSfD_G_Bx^S{j zeV2xW`tPR29DBF4=pLMIz$eD({iTNqG!}YF|H-Vw&m@DPjtncM4F>&k5Ti^gae-^e zNg&8`+s0lLeoAyx*J-G%8p;ke*Y!+jw#3Z`p`U0y=H^{O9%0SicuAMg#7sm*;twGt zNV>R*uM0a{E9Y|n@VE*Gm|harS&wh4+t=YmK7yTuB)dqt!G;8|W)L!=NxPBG!@-5Q zv#j&iat)1AWX_B5AhhOe_~ZJf(&c&0w!byj!(~X&8Ysm%%`@#n6vjaO3+rQpxGB8H zA&4YGFd@5Zpg$a-wW8hZJMxU3Y7r(dtGE5X>DQnr{(R8oZijyvM4X)QPW~KCM|~x1 zL+mjj<6r;$s8P;D*C^FJDKkkQAy2NjXTcGntg24h(?rd%d@@`A1t5TN^x*wPw%Ts_ zSOdrq1S{>4YIewQcJg5ErUG*$i10I)eAMX80w4w4F;FMC4Ci>eueXP8*+jLC+R2s? z_R>QJO~Heb|G;5jF3MtMdXGgmDgOs*`JZpX9uY8CXD9OYlK&%%jF2I?b1{I)=l&10 z{C{3~7TOtVl?i0*>K(Vaw7r$tS6@@tm#%ENFx{9=yABu5EP$Me<8Y{b?>3WkGdJl`N&xxrEtQ(uCQr4ENB^m+vV zO(WtA3G~@kAI@1+FDNk77*}(X(Nk)aus_Gb?!8kjWlQLq>tQs$C3IJunt$Q!fV~iVybFwkgOxu389Qjc* zR|?17?!1})HDMuSK!kzN#tO6m$lZt7J!ZEAmZ2coZ1WnPjl=;5bsC-_iM2#hGSd)% zu4Dq-l{vT3y#4Ax?eY!aFMHoM-=Dy$HZqjV&8@Y}pW7qf{{axn%6;ZTM~z5yfkD5R zrQ$Pv^Y?dYs)tRoz-o%IgTOiO`-?<@YX8N~d-JcS)It1*OYa#o01=#ZH$onw{+UoC zjUSO4+h>sdf^OIYzY7hn#sIV>-TN>C?{^fejdL_ZvjC|agg0&+F7H(s5&mX>i}X0= z@EzY`*YzrGA{wTRFc&M05azNww9n>D5@6A0E4M%)YIwDY z)fdux#4|anjo`9u+Q}@HyXyH-h;Wxg3N0J9&ren*4Cg1r76t&#TTOeR& zCZL`0cH6+%K3P-rs6!6QV^o!g3IRf*W!;!kJyEE7rtoN%@5z)w?K4r2*cDbZ8ffSAted&iyTWT07Fbkz>dGM|p))oSq5?lsx(F zbmxJFNTy?Zv&yQC5VW<7n-gpu0+?Ke2&N=VQb|L5hP4#qR8ngcliHB@c;TH+pAI+? zX|%ME*}CX(X7yjKA8abrHtR}X<~~QdzDi1`G8yjVG%grD=XFckmb7(|81(Att!i5F za{Qwym0H<#fzr50ASH~@Jp1sMu?=t2L~v7W39Y%=m!DvfwR^~M+$)Nd=j_#6;koPz z7BoUdF`x6o*-mxF)#jPQ_18LlyhQ|iW1CaN-m^N)?IHFUqR3bdt>-+ta7{;iZGV{e z(_!;&&KJMkIIqdxU%o>z03ff?uxJagJ^td~G#2X-WRRGdZrs49Z8FD%Dv%kp@mPvM`}Z# zrJ(96<=zt?2pN4%6X;gYc*uE1#CGR0*N=kGl5zJ~Joi2RjYWp{Q!^w=zFG3LO1V6d z$gd|1{&YczjI@5nmsv2U6|CBFvhSzGD5*U^@UMQtw1MQCqYv|6A2LHjoggo@q%+RV zO&kwX{MREu)|FlQi2shHoowi0`i|4fZ?r8=Og9R zS%>=%Y56l--2(MevFoFs_6q~6K8!JeB8(EARrKOJt-DgC(7fm2HT9oCdrMeUPP7Gl zIF$TNYtD8rr_!A+0pDPW?0vTIN(`h8(c4}1C;fxqMEkIKNCU5&UfCLg78v(UC^jkO-ND>Mw7<#Fw+6@B zQDOJZCmcpDF%k#Lhj($^(>B5OUcoO{fEguYH7B-@oExpSD(eZHsdF0cbH{XX*+x7j zK$0|jze^WmPlh72=h|60p*i(g81D)^?Y&-1+58cNb8iHQ1SMP1xSuL{W#7d8P5i9! zDaJBW^X;7h<+U*o8^as6NizTu!&!8sU_jd`YthYZ@Y>xhXR~Zr(n`mUU#6FC;be?JQ+_$)k6K*-3gY|jqPpvT_&&H^Nx#G! z%;EwQqyhn}>~e8OQK`c_6G}z+MwV*~!iEBsXMRxBrl?o`g@2_9)?yAa+JBDI38eSw zJs*F2qVj`0X3P@hP60AP-~Gmm$Yf2kRTUX0?F%xjver+_Z_RbW6Jv!wti3037`~2;9g+SP_!0IqlIE|^UIch&CLaNg6amm(tSR zC?E|=mxM@5mnaH~ND4@Ix6+*=4blkzJ?A^;``+`O^RG2afdw;9+|R!E-dAjS=9#aY ztz|9lhhZfYc(g^4x%l&fhP%@#obe6U$_D)Mychy1yyqJO6<@V;qS$E>$b*>5C}fgf zEfiwr3uN;SeUB$h-pUbBx3D+37a&?O0?`CPR@$Vmxt8+kDM}}6l<_lSpwq4x$uIgF zq)Y78GWJQ7RNVC^=F%4p$fcLmatu?xM&Cp!9Y`;G$BxLyxGVoGP8duJeKR2fr4G2A z>@Ls5pI)5oDSD!`jrcdoWf479Uvc>+VihI2L$F5NsiiRj?wWK~{I>W(f=5FxS|a6S zuj?GpEWBo?` z*;+~=8$uJm+ndKLv9x{gjAr1ClR{Pq{AAkEj#|++6zS*NQ_bwqB^uxAS^(22Ryf95uuO;fsd2%qME9l#t_( zVFpCl0x}_f(b`BiiK=Lv)<+JbDP(|=XSrL4tglEf1ujvtS3`bMAeJtoo!P!3-uK&Y z5)4sspjBXX-7M+AuGVII^R0u{8&1$}?hZ^U+OwPqprO~g3`p*R8>>9SflVSIYf*?l zh+wwyuOR-oeUN!BB6agwatLx2c{%rdx-(wxfo+7Y+#y6l z`BC$PG8Ab`%1~R2$sGR9-?W(N!8`5G`Y%G-C~MJ|fnh!r7Jy&IyM@HGRb(Z?wk&Ew zY5i2(n~snXhUs|PRFHAzSA6O#Y$My*u9%lzA6g}I=n7tR;z1QgEf()5^ zfOS%=7KRFc&o^?=Q<6$`MOHNNm0T=_BXWOFZPJ*E^ zD_3wFu8H~@N+ko=3g(7(zz_S;oz973@}Q}OC^eg#uSao4F#0|sm)qo9-&)1MP%rK= zv1ySHc}8@CG`aRgdQbGhm>el1!VfS#ytMZuufga52`9GZaMa*KFst^|o<`e7)Guwe zuoRo0Bonm;C9nt72IlZuHE4eIHeYJ|@@GLAnca>p{A1_tQJ>S5WVE|QTV~qvpM`t; z*G8fNCzo}lj$t{M8Fhl!k?sHlGakGu&&*}+H7l4FB$OIfCC8y;xi0QVb6r(wykXV{ zeUQumazHf$9y?U!q=ZPio-0L6_Gj{^or~d@#5h6gPE_3OSgb~(79rJn->?~2zS~CQ zaXWh*rG6~|978mVxKxS$EKChFi|YEw7#$u|xbZ1em{hjmU?g@qvYU@}8iOIaqvj_qtx&t9B>**=lOR^}WZ`vu~2n3R)Ryt3sSI7<0CO@@XPf+5= zQRXmn5gC)cC1a_d`FKaqSesA>uE7Y_G`&^Nu>FHuCm)1r>F*2Z?K;n_g@1ZHS~&6i zxQAH;Jmu6PA+a~3C*JzJCJdRXXM?=jbvHHGAvN+?gxce8uJ|3eL@hrLP|96zoM5bW z-ZzuK7kl*ZHudJJwZ07}*7?mMWyyv&_Ew&7!;V-!V{z7+%N4DmJftM%D*E>8qb^%W zbJAonPTG7Eu~nJ!M_$*V-KR8{7*^kq7OYCEi?&0#viFEGZiX>1+Kgse|zg*vR+G&kXbVvm~E`-Rvr(%l}`uUS`BWCWVHXm z8O;y6)>yu#ctTk2jEV2zYom^XroQ>;6_sKpY}Jq0PQ^)AWwC9mFHg3$@Hz2uwf)(< z0GJoasHDgN^pAxJ%%(0_hP4rkD7JK?<{A!~&||wQb>Vjx<0`}ad-d;Rdp{t!+NwE~ zRR|<8@H zC2qt4t41|?OPIj@E7$|+EJ;+FPEo%_Ux9WC(80{PmLp@(C?K)#m-Ot)CK z+C_$Jg04{Gg#JE`uB;BObvp<=XR^Z7jGZaIA{`#bD`)K&Cr9>pC1SH2(D1cO%hBI~ z`6652J_-~Zt&enY2s5+BoLK+TUh>0!gK%2fru6as=&4E>5Sy;2Lkx9`E5bXU9t-aN zuDHl9&s>YyFk;QlHS}G1F3!_JZp^Ex0bhK90;;lvvuu8FS#bsPOe#3aaC1f1uN>)$cED||;H$;cMjWEzj zH)P6WF-*?oWlNS$m-it^sGh@X@i7_~dAk0DPxZ?Eyp{FvaYr)k>~|fMg)u1mzKaM< zD@`;gb62-M7YJ{RnG#vqM4Qv3|Bha^21#qV)s})K`Fk`GD@hFhY0R&ug~zrJ+H!fe z=s$f_*3Cm6vB;o~P7Nr4(o+S5Mcnc@9~4KvjoMrc(+uKVTPW0v7(qhx;$+qadaPmy-e0$<8~G zJ#jo~?ZBR?k3-aO1GeR1bb0!4YGU=pwc?qzegASoSURt`|F+&$4JcVkw4o|9rkn)3 z7aNCh-)~2v+=#}VJ7_+~%4IrsmFypmnNTmLjS%V8tBP#h*%A9VTp^({6(jtMZKTXb zb;E&;yVnaUCIEnLo@ic7jzY7mx*`!2SmjL<$w$aFulX8XH8s{CAxhH4*|L(e8ffW# z``zw+lA>E%m;U!QbWhj~yg(*PEebPi!-|Y8-W}Kr!OXeY_ygA}%(8!A)gSM49N0N9 z&(MyB8F|j!wWF43j+j$GExVpJ972NxZHxiA{Ve>3H6-OVs^B5YCZZR)Uo_*TVpj1` zUN^*feS0|XWi@E8j?lcH5|f^PpYB*1B${;LbcMjX+GXG6?6~O~g_cG*WV#N_53X8< zLrbB`j>Mv#-Zw|P0_ShoOz*ck+ctbHxgcU2#SEad3t4=Cc=+_aBBuf)^EHV<_}a%Z z*U$P9o4r+gOtxV&O)sC|ICTD~dw2fD(AsasPdCbRImi)1R3Vym ztx^ivaXMxGfYtH*^)oW8Mom>QGSpnLSxe$XXaRhlHGfg?{s$?i!0<0Q5W8K0eE;FA zV(UnpRCuv=lw6v13-{X7kgo<$ z>wf6lM;zQD%IOuDzIA{Pn6WBY1f)>vJ}mTm|L`>4LD+f!iJ;&6mat1c(?&?TABR-p zV70Hzhe;G6N;&!i$_YN`gd{SO5sM`2yj{VEI~B?jB}Xh%?Kc5kTYY%YdrM8hG^C zBcC^Qeo(9eu87vaKBZ|1GhNHAlOc?mW{p!o^@2MhO-ag(;w0Yi?O?x|y%Pz+8xUE)UX-NY`L&R{*O+165O zo!n?4ZBYg~;4owGjfL;ZhYd&Z+5L|^Zvm8 zxY|~W5Esw*7`xsSzERGQOXB2rHC}s1+cP3vHOSD^oofXN-a(h$IIuPjC_hfzb}(mt z)^Jtm=36Oz_xJjoa93v{8Q#9vumEb=6zSaszwm>8IU>{peQ-~LkL2t^*D#V8e}1U( zEWHZGTY%~xK0sWgdg%_z^9ym)yilKrmg3s9rg-hm^YXk`?zH`!G)z1m*QT(#s6yli zpYs&?Sbgj-p#Cu`gooLTqZ+W$prEPj#hWx#>X&rWNPgpi zMKE3ebDWE)dz?a>vWh^u1O-DT?K4)LE0-GIkVPq8@+hr^JQ0y!pFK4GciCU=E2ugj zQRxlR1_Eq(t}EFt+#$!UGtZctq5Q9TMZ~>+#_N`qziuAA`e5rQNgMTY&FY!N8*?(~ ze6uX3kDurMiyB;(K>F^65RwlJjZ3uQq1jvqg%)=0zoPJTIXH16VTSEal`L~8(A)Ve zk18_cdPGF8s+#;);0^SxQD*e0pRCz}#BXYR5;d3tSrnR_05A3RO}m7&4>h4-`o;97|D) z4t zv<7NNjA6zLY-(c8sx#&FI`Z54BG41Fgc`T}T%k>Hn-mU$~Z#DJ^ZEKKX z0My1ygZ=t3rQWSdjFp@d)qN`ZMw_>YoPCTuG6togOs~ZV7dw!y{q@ZM_i|XhK=qSB zUeGk?Hd}+d^(zd;n&%AC@YL^(lNC><=0ac>psjsRz!gY4I$RLc&D6 z?j?|)kxr0@JWj5^y7WFL=@A}1m3jxHjgzK*JJZ!==w0aZBRVTA%71~(|9kxZJgLwZ zC>1j3&NkSUD;-3^Biq*)i1|7Fe1E0qrTsBlchQ5T0ow&g%C-2bM?e9G7R1VCrSD{# z$wCaUkBH7=&7muue?y(vwBVf|UjLH*`80!#4BP%C_4WPUE{sYbt1}=s238cuh~@9K z(QR4GK8Stv#t?LY)_J}lq;p(aE{Pr~XpxDAh!@pwn*w3QD%zlv+P+xw-Qtog5ic-a z0zFlVPbc}nXS6`8Kto#y);#|6>EG5$BLy7k2s{fCN`-d&mnR}I8A$S40(XA`N60(Z zd6_Ff8^`3%pY!AU$;QtM*1_!>7XK3`0x#8u=<}7^|7cx14v*+q@!y`VzE@3$8z}ec z#>7X+*1i7h7pM1e)lrW-8UqA%qa9jGumMW=dVrtLfX<+p=k41cI2W1%nuEXQGv;KV z#v0WB?b?LHVE})q`F!&Fmo?fMf*Pxlr{N-=Jd7zuls^eK0IexRYrp|e{Rt3>@#5b) z=y5^-dZy4_Wj~~N?>ZnhmP6?UTsI4OW9a8Vkp^f@TEVXk6R~yMSun+e_)`x}fc56a z{&2CGw0Hl#DSMK7pSTA0`{D6#xa{^8+o+7hGa2dMCLGfL?V{0RBTNkwW9RIzzHbamz!_-foO9a-nD{R;JpU(abxjBSbm0pfu9(Dwp+;IB~U>dKfRxK zY4}mU;v+EqQ7v8vT_ipqCF$jxx>ZhQcHHWl)f4T@A!Ha@_tgH=jn<;hZwkOrZ(>Vl zof}u^u1><%!S{n&hI2iWu~Zj&fkio_>%gax3g9l!mR{ZO1zjM+9M2nDQ{DO)YMp&X zpqhWks2hG9&NvU0j-2Bku|vaCXA=Oe;x8+H4p9#DLrLRDHLo`+xeEa|m&y|hVyk#E z){j=HuBO^#sbe*s&9L4wsMUaw+Vm`N*C3V1m$Ahb0FPxqdN-$4VlJzhr$nX+gfs_0 zX!PMhNXn)C%-g?y%0EBz3US9_^80E;I)I>VR~zTEEWEv725;-OG1@nerIz#?B;V-_ z(l0E3QxwgsYLE~=pI?-*g0uYXuKXkH1vU_k15VFFv?VCoWF(18&-~Zu=ksF~qn>Lp zV|J+ft$im@%NZ2HQ1C0Tp3~8qRNPB9>;L|CzY(T_=x#58G4v5qh|yF$_R0f&Swyw4 zD%O=DL&4a;FIu#IUyyMS_#a9~hk&S>3P>bW@t7Pd*U`q3kTThYE0k;epR#@P7}Tp9 zck!(jOrEWfQ47}rU*LAy1VdO3Zh%HkL6ARt@9{+LWI{+UU1a33PV^(6$gl7?-o3 zp5#e_-mqS-PTg~N0T7JJCalw~o~>qw9fRr@G>dtT?|M2)6O zp_P0V?J4N4dJa;pn*cP#JBd4hDej#ffq25F-}BY?vH#@#w09g;a9@qT)JOAUma9)`1)l|h38;}xEOLIec!%Se24O`^v{Fh7#MZ|^) z7k2w;+5){-$<)WziJ4=$A7zqI(e@vQqlQ43PW<`#HfHm)eMuYndr&loIvH5`5hhj` zl-sKBN}$bcgWQc2<#GT>_reg;$K|C;j=uz&4aK;Tga0_v94!POl#KX*zVOiv@K1L2 zemAGGdtH9U1!yUxz2yGJRy70K4DgL_@llPV22UN(wN9PGJpFkHd{D{cA+iM{|_V{>w+Fb z;*{^Sf=dnHtiQ9@2RVs`O-(m)~1(7N2_M_n_3}&{o4v9-M z4y}CTvj?_~gc28OAH|y~VJ+>qe#w}u)v@=9wA@X3QoJggNvTSOsT7Q}Ml#YPLgMby z5j$LtBOb!{Bbg6=S$M}c}T)q>=?dz z1%Oj70@lz`TDtA9YJb3vzxanyw|IF+`aQH$wFi>wp1p3wR4YBYH?H6b|I(U5j}MyL)_KI?N*8NF;&BnyATO~#*WDFpnI=a0D(n&{ZTyLUO%92=*&hj@TPtzyaWc}%CIo8F!2{X z)^>>;ESCp2vpc=2oEDlj>I7_M_;Xq6?nmqp7C`d5`Vdk?>qVp_sLA_;a)} z7jW~6X^G(gbGs`qm5EXs940jnT$I$<^3xhsa-v#c4l`b?NsV{K)%>h~IJf zBS3-wxT9q_nxR(!@X(~cFCezBN;+uEd}N9xb@rnhf$NnG2intN!vnBBYUiS6QI13? zl#H$;a8scm-!aSq0hvn^*wXUAYYpf3K%XrY2$e^H{q}u|J{fg{MmqS1d9fClP8)<*q!_8&Z> zMzqlb2VewP%m9OHP3@~UV|^qr{Esvu9_5pIT-r+Q%)}oHmAz`TAPN=>wB^AF*jrtJ z3XA>bH8|+8bHo#WR@NQ(v+K#TqS=NU7=(C(4n29bX>=d{cRWFs&wiKRo&3blC_T_Y ztU%8wQ24#{Q7HoJ10mXtVqjC%UO*oIz z*KabXqk_a%ZPUb0qP~E(SA~w+u6UIqte{w3i%Ry4IFH;&iTUks$D40nIevEXx=z>4 z{%ru=bq9F}8!7x^RR#}hC48m>V4nc*_MA>@bt@Q#4dCaOR6GGG ziDFwQ<3Pk&KiXcf+rUa0IFV&Nx?$yQtQGwsgy_(UolfE5GGL(Sn^Bt4Nk+#fpnDoZ zyN#F*+D_SzX?g_CE)E6?SQ#W7x*EaC#%gHcjH+~Gxem_;BJz7ax?FxSbP}@}oc)LIw#Ek)ni1f5KVMnXe3G7DY|6I5naDO{|IK6TSEl(gNJo{Q z6RMG;nViG+po~^TT_#1K6++>4yl=iC;BH zr4j-H0-u5he!~CiPr}#pGt7n1{S*-AeY#n>P3ou7qZ*jIanrs!Or-(CGhNw$r`iu6 zhiY&$ljPERfuyYuZDr0UNi@&NZ~+W%4)yNufO_Rn8>1LJ-Usu+glQr>wXR|>@1a<_ zInw|qYfcn&O|-p0^%AqiiLME5bV!LW02Ke>FX}`IP8E##qdY-Q2tDsa0QiT@@13z; zj1-6BQLw%$0G8&e1yCck`CyKuq7+}V#Lh!?T1*TtA_LH(cp5)TT^pi>fh-BrjjnvT z>koJuQ)M)pXERYm2 zujtxAC{59&_zE>y-I$+^?gc@jLZE4 zJ64BQHtDL5Xd60^ue_6DX`eznMhQ4Cwn7-wlPs6JU@pOZpl}RM9u3QBig;aO(ZPD{ z3fze@Fr%Ps0)+n0ywVwrW*EAG>f|Wfw?uwEo-?x7f@(66LPX(qEGlF@w|qmp*3l*p z3yf$=B7;n$C+IFEp@VZt-)}w>_`ns&krhj;ko+MlHQ?k&x9F@1#=L5+5k$xps+}9- zd$Xpe+5l^ch7NjS8KgnZT0#o2wEZv5{?p!JUrmU3lh#~X!iUX*I<^7FFU!%hdyCR# zw>@yTSshDCDW!HiAMI3Tv3&!i^7zt)HG`lJVCK{lGOl9(6d0~qRwgTRopPHMh@LJd z%>0kF)+iMhKcWe_0EG~okYmr^yGh~ixhQ#JQHtiUIZO-u0gaB!;t$h+emF|D1D2-; z&%(+Xl}(13t0n1};GO;YAwXtw_6*2_QVHlHE-r!mXE zK?5xE5%JmRP~DitS+XXzLi04H0^?-{Qd@NTc?@XnZ5;J`G(+Jv`+A*!09h9ftFZ@- zx8bLLgMP$XMBEIc4^jlUGUr!0iC{!3yYiqJ76B#z=&!`GMXAB@X@tMGN@76VRW%)P z#g{Fyh#y}}=5j6=jD;RBM_wE^Tsf=`WIuIr%y$q=ZE@MyT zuFaX6%IcrFFTYE(dWf0-!EQ0>%@PwC#~6^5dX#sv9N2 zjP%oDf5`?;<_lp51)B+q`%l^hE<0?hC7oUk1C}M^SYPF|c!odHf!WrUtfC-40dk1k z?|$B2S|_i?t&3;7f!qwoKZdnPbRFG<8W25ru$v6x-B+rVF1IUi5hk}naC}Y{!s2}T zC0io(nzrn^;#r#1nNM0U1CY?sHNKNLpLR08=HP;x)L~YjQEET^_>)Yj0t4~$rt!0s za-~ViHI{41VC|GJBM|3ok$Wh!kk_u@x;8xnn%*bH+f%rak0{@}X??GETl?wJfTRz@ zp0!}>NAA;0eJ-Al6TH)Z5NV?N&FyoObZe%Gx^VKln-1&SQUlz~@asa$vF3Fc^IHYB zSVR8#<}$;^%l9oSK{WZU?UW|s>8L?Q9&f7IoqQD#dxh|qy=-ZeR$y|W`j4)` zfLsCo!rhngtu~>h4*3V6Fa(x)%B~V=Fd409$fP85B`6+}F$rsdKi%y7;qxw*WZi`< z4l$|aKa8G)xKM~+_YaNtWKj$!H$I9rU8$|V@WG(-0UQMr=07YM&=*)DzAP2?vV^;y zAHwn-)EFcw-}pG#BTPj$49E*Vx?j;d-^`RT^zYd@I?Q$ng|u-NT|(7#)}N={gzH!?POpz3(^T%H`J}kXU<5SdVWH5?{8E8zqpLg<(#m&pyqzy$0ZUCo zpox{{!aw{G z+@qIM;=3{|Obb(WzVBz_@&RW?N=?oLw+8xk2r5Gs!)>Vdk$4@#M9zKivu#0dir5<-AUb($XWr-h#LgD;r$; zXo$!tcXkUna0WeWjYM(>w1@XMR~Wk7-fOLUqn5)ec7waWg(bQ_+!~J&JM`)uNqjgy zLz1sy@|CGtPQq%MQ{bAv+2d1H!=}9e`YG#gNW`>5%JNVMA1V;*gs;m+gNKF%pInYN zP^j^h4Pd$T>WvH{zYP#RfcO*LF$1P_zhf?nJEZt|8<|cD8q&DDrMOik zrqny=@$5RYt+^9swx)^@i#Cbsw~kP`R8JWNQu+O<4i;KQ$8m+KSM~h+wS?Szo0>$` z51pQ>$Vai%x&n-A8W|e}%CnN6GcG;1UpU>M;|!~E_;J`vgi4X>Bnvu@;$)aNf8-G% zD&x!~wLa}6Y$ws}r4Du8OR8GQb|2N##t68OGUma*2fPO>U9enUvq9*@eWM@@hVhot z1#!WRjaq$fDP3!|hiD8I++0zhvNgQoyV1hQNk$H%VuuFL!Vh1(LyD?-&Nn@82`g3Q zCOThu{N4}?+RnDkXmt-e0AH@WMLX4X^1gyW4rF5=ZcY}!^0+RfJWQ@<0tmxh0ep7bL1?Sh9-AR`zC-A^lq&4V&B zSz42u2z6>wZikoytp=rMhIaRed-_f3nYXVl$D9E3#Va6C62ZNG{ z-V_<96CLIRp*K}?Dw21FC{+eV|W+RdRK3@RN9R4TYxn8`%e-zC_0v^)yc zuwY{Z9S$3#N4rX~x?8{r5^HbV_HDSGBu1Pv7IYjf73|&7cL<0uum61X=qq4)VDdb)U$xq%Iryyn7_PO{3!wJWfD({KfLOCZG=a(Skf8BPBXCZ;-}S( zufI5OcHP{hMHhBXOySoPzL@zgc*q@k%HcxE1x(vQn!=mKErrD!91t=iyrlhCpt7Pc z79_=QHCkNwMZcoEJzdj&suzVLY&~-+h}2qDha@U z>6@lI7g8aGra7A>Lim?6T>DG-mUAJt?)?_!_KMw*#&6*)&}Q=+k~{|{T&nv?6!_|b zRikyqRxy&$hTy=sO^{++ne?yJgyL(V(4Ul}kuX_yDSjTq4~qatV9D^*3a?L841al( z?gtA1HGj6gYCgcg)hB&zZiW;^u)Bnsh8Rz$FQK#=1;LQEk$bQCSgy;67;Ufs@8Gy4 z6~Mo&tTIhy3W;?RmFlG@WkpYsyBn^cU_8Ayd<078#yJE%b)vgCcZj!_&@v>IxrZcY zY)#zBF-z|(nBEp*pi`QSV+*%(*Fb0_9}xpF$&J7YsE z(4d-{wW)RB77b{V^m2%VXERvi!~~am4XN{24PXU&fTCyJvBz=kG&g1UAx3~Hj8@8a z%KP_EP+4-33I0cFn6q;sIq|KZ4&O!8DP# zDG(DUsq11#q<&Idw$TQ@tHeTN!oi3ikn+dAlWdajCoii-cxa4t(|}>j&0xb9AMRQR zn>B4;Wc6LGmz+w|GhsmwYME0}Ob>nhoI^~bIjQ$Xba!Pj=Cjstako82Tl7R{;KacE z^t0H_HQO%7b5Gm6m}Ep7Yh^j)|!8RTrLJ0iw2E8X2% z1-JOb{gRu}@AJ|tnUi2@DL2q((tpa;KCji90`R}%cawQjqH^@2{?(44vW^gVJ-6U$ zS);1FO6fUE-$D2$kQu|0)?9_L7GK8%pFrs!O>G3s3%~kw#8O1L@Nj|y;&r+fcSTSg z=DZd{qEf8ny`R13-^s!TkEJWVT+5V7g>1cx&lFfM-74jME`c6$ z)6sCwnXGLq6Hd$w8hO55R6{*;kl{JcQbW;I56o&*Ge^W zA10iv=57x>te1=`oIVG>oFlBOv0tlu07>Zwe>a;^V?r!KXK0?*VA#EuZ27WE4&;ls z53;tOTOL?92C8l5!0EY~D4Nq0qY^`&4{~$81~V@7RIdeWkZgH&9qu|+o|mem&)6T= z4%FIsiO+{J(F&C(A18_zF5ic(WqB9*9_0?QP$5T^3RASaiLj7MVitEJ7k0gu?n_My zBTYpczlEUi%*2|17&Wh?(4|%y;jX1P9iM)?o-ISh+>F^)8pg7Xrh4Jm&96K;&olZ> zvT)bZ;3JEux}KJ|(xJ)e?2EA18?w?xjBo)Uvp{(jr5kkh$*(Xn?89K+ZeCp-^<%0; zGH$i(#K+M`65*S+XSkyH%(Z)k)-YYQzYAmvg&iO=z_AIM}||X1+ht@ zn*9z*zYmH$n9iKZT)%8+n0vSVOHK7yOQ-Je#ZP>Rfz{#+?`vkw$@E)Q+yde#^_O6) zeS&=J&DAYxO%Krzdgi?+hhQcJqtx1^1~GgW9XpJKP) z8I}1dKS+$#DWQ;Fnmu~nJBVi(_GJnOGTaS?PufR2IQLugk2*Sepj8?nhtI81uCLvQqCm}X3fjB z9GC;N_((~48^@=DJlhU~;)nA+g%L6;N`G#CkKh zNh0Zif?KxB)o+FFqtEnM5Jh6(Eo)obb*fnYal%O!Z0U7eXc|82cMeAK40rHJhv(AI zwDM3>S=aFifcZ@wL~WQsoTwCMYq6$@s;;04lp8Y0B}cc*S_vTVbpD3cT$FIL{qF2w z3C-UZgD*l4md1VLshYE|HRyb8BBN)6cn^E-*)FT9Y+_#8ivCvo5k?HLNU@hf$U=fp zMWnEys6vZ7LC@RlcfU=YZd#v*cc7pqLD_SesR$nL@VQ3csX2Dxl%{6U$R{2ACs;Zd zr1Vu8tuus?*Pn-L(A4qd&OJls$Sjx<{kSLJ^V8c0k+XLTVk}E!Q%J2|YP+%tSN@?C z7W5TMmI#+Auc+Z=&=&n|?Ta5ZSQz@vQbhGvpJ}87wIl}LRc@BsyUrptiiI0;7Nm__>2r>P z*Zu8_Fb`3K3N69H?XvSqtuBT_#Xi@%uW$1iuLqe2=t6GatgHV#>4i@=BG}p5**`DS>;d6DdpX7Q+&Cgz zII!uF^o#6>ez7O$NjOqWR}wh`1k?90{E<0&zji>ISUbO=Xpwss8GyJWj?vB%-+fCh z78dY0*V%lxFBnJjjx}tA3{oc`vEF6Fr~J(yU~?}$kZ))NkBV!NzcBzNaG3*{26P`u zF17mYvbWu20p3um)^-t^YWY|whBZt~+Rk1jHC5~1CDx{LFD=Xq8uyBm6evi^>@o3# z+ugj>Ak%7SAm37$LRiKv<5l>=6|5-xsjk^umX<3Ly4YjyzGCteg(mjbP?=EWCi-}C~O&C=~xwm6tAzdd+IE;+5JwxseY z)-ne4U)ord`*_tqQu2K%q`HlPeI(jb;`i35EeM%+Z{Ys;n~-gQMiIz9=j&iQE@ex3 zJC+_1Y9Ew`Uu$b&MhZ7E%$gH@xybnaZg<|`bJ<&lxHIoHdh#mCev7d%(!&_ls9{)~ zP;-A-YE;PKLIMtnKwIrF%Lx7bI{b!p($!y-{PXjVbl89UG&^^i^nRjbPc-=I%D`*% z{PAb==XBOKo7eYzMeGxeSso3p1CE02{=27%jp_2LR&sV4_& z{E+S)c?BR@r>AeYqF<^teMDIlyP!c5{fT^Pz#-6S{y8%UtMi` zS41_NeFvW9oOH4zu3a|b@+zEMwXRo7Q|qT+VGLxwLu^_8o{cCgysb=(#UoJ_MNISJMw4vA(fOG@PuiC6Q-zLnys{FpdrB=udiP2c3&Wm}GAs#Vh7 z7ef|yiVkl)D|xbu($91CVJ5Ud5I(+^sW4^(DHYJ8+SU# zk}etm+)#6M3Em&fNXGmOxUb^0jUH1DV<$3h*nhid;9FS|1UY2Z0>GWSK0j_!9ROyE89-{k#Nj;$a??m0HP-tfD$;+yo-*`V@L!KG0_G$FFDd7l z&`6*A=J*gAS2+i~Hv1NW`{hDa~Il^7cB^uA^p@9>DPKn=x(hgu^NeO88>Qy?<*uQ?HeXXsw23m&!kwKjPd!GNi z>fk5tOlmIZTZca%JSXv?1OEyQf4Hvp?kNQX6N-;t7o3OEfi+tNAlrevS9zm?o))sh zBqPkhCjawqivxqm365a%12xUb7#LR3CIgqrLBUuaLA<7bUNCk0D#ntH zz5cOCLen3QbSl8U9@2J3`q$-+L8Ksv!S#}AkP%F6RuOzP{UdAy&0he?V^Q7J<+(Vo z_xA1bd;M^w_mJ1hYn@F1Tzy$Mrfc*CU1kq3Nd26ehifTe!k-IU0V_O+-pGlG{?$An zl0D`8T&{8U_z(HNe;T-aohW+Wd5Op0^YQb_+3et8g&_Q{03zGj8Iuz*5n>NjTLOat zW5s|7Re(jgko^$;_a_n@@*NC<3liVc1MPZd+yH=KohV!m*ij zBr{xxG&+G1B)60>Vi|LJ?ji)0iO-J=%D&X6U7hX8m$7RWUrRrCnY-1WTf1-=oLQF5HZ_rXvVcpf9l9>lb8C^!c6)0Yklx3{~LJ+)!_t5Qy3|3Q*Ms`RdtOg274W2qu!_S>mn(49rX8G9*6zkC&jAdeET*Dm{p1T z4{m;br<}n0&>lD)|E5ebbm@{=%-?FH>-lvS|I=6Bq+`%;LoNs0lW&W%`TLhiU*`kS3S0CVjnZGjQ4Vko@c;qhIZ~1+ zmXxD{<^)F^Zu5nwi*&rMK05EuXmkK6RI&8_^RJiCZoawzT(z}^r(YyRn!}IH8@V|Bm6afq{{0kQxrvSI+#zw+Pupk1c)|3o?n0Rs* zzcad(Y2xtqOahP$B9`9c4&0*0YV;vL8%=@lcG;jF2BZV)lU@P#%W*ai?yAPk$tQg( z;uD*Rn!UmvTz(RhQvY`v{K$Viy>s8wK7Rc8-P2bQz=4vn0GzMU9pfIakbyszMBxVL zqefU+m{BN+-dHfO-Tv2i;_WITkI==%U!VFM>watkKKt2k_4!7*DtzI0|2&7*R}iLO zUQ6`Uqucf3(>UmOf4gS0^y`ou^#pomJbHw}D>{k#{LH)WR%D9kcVsimag(FKMPrdJ zpdphrU42kS{WL@5iMWHldU}$t87Woew7JJloi#8a@@S{B?tk#`-?w>ph5%wytmJ}^ zpOp3Ls(Z8_QOlx=HXYoBDj!U7e;qeZC4ZvFL~IK@?j?oEZ`tZ!xBD3WOXz2-{SUxw zaT*f`7zU^pw|1}0Hhz5RRgB8=qGAE;gK}GmT zQuDR)K0Ct2;gdU=lxc5DwZLMGgz+(nhaHozQvLQ!ALSrLtkm$tOjRzsqBiNQ^3)26*sp&LnhL~$`HZG$&uKJ~Y!>MJ zy#aphaOaO+1mYbLxD1WCj>T=t@usi=35hYDdTxP@-d_nGPj~9p`hSnzQX$2aIa&)f zrP}>H;yOaipY!Ea&IyRE)qB@HCi3oi58nIVXYU#_s<9GSEpR__4T2e?AoB=BFH-=c zX`C$iUI}B$!W_U~@(_bFadGH#=cm=fOOP}j?j1>afT5qSZT2u}MY=f#XU_1@e_%Gpq+1i)sc>zP91{{J0 z3%R~613RQ~=QoQIDl&kLz;{3f^)}{#R(atac*eE(Y)Q{&N-vYFl2WNfckQ`_) zKX^U^$-=*UD&hxeQFRl(|H+$O>0CthI%^pih2srIc)c;in*-DL{*@#W%cDgT_Z+9I zwCdC$1sQsZKtrGynzA#xxCRo+t0&Wfciq?(FM54TSg%?m1`HGQQv~d zYg?#n#)FePUVP|`3gv%RFcBxOtvxA9N|tf3yWqNkGQuSzWiAd%1)Kc84woNk+J1#@ z!F>73U8as6`II=!NYtr9&juUSfAV=Vw49X){ti-TwQ_7!65kD&00YY&W*eVK?(Ny^ z`ur-ee#mi>#Qd7Yo${W2(V_GkxG9#vxZ?l5y$t;;2sZ!_<|okbSh|qwdu6}nATni{ z9CElCTp|8pPLRAoSG|*!-g(2HzRgyWKI;MQ&EH8Tvr(H6zE86L$6^PLH>7r#`6TXd zqeBtBra01nxw$e3UfYeIFeV9*Qyc-SjY$A`Q|f*Cf?j@Vf*9-&u1#KiHG+I@Qr4TZD_CIzLxYq zw|ur(sO&QPo1miiRz>okCAzC(GDI2|5y&Y5^^t1i|A?PNF!&ddmBh}VnQ|IPBCWX!HE|GLJ7yw7Z7TLZ> zsSY49Cs~ahR}Z?5K;xhw zOV;Ds(6P_6uD&{&Qo+EAX;-=5_CUwo-M!=y+p|;js55QjXI2uJI{TSA^VdP@_4u~Y zluQi=-#M7%We*ZyL11*&Z)pa`Qu^yb~Q)fKyePpE~^>-m#2AST94>?upgm^+a2!}HjaEr)?^+3 z0gh({XYSA?0C#E~(38}+5^ElTjMpI!n*j|9%)4S;n`k+i09 zUgNEDpXbiegFl98r4yf&vvtt=6P?e1=K@aW)iXv4L#M#cCG9snfbRCrs$F7VNj5MS z@&*jlPryda;L*KXc_c)E&lypyan?OGcdW#`j|x9X+g3U=7q|A^H|T(2UybM({dh0z zU(uCrzc}*4HpzB-#tAeKwZD8@crm&?YTyvvgB)zdI_zS3SwoccVC+;^ zj(#J~i|iP&(Ts%W+b;T?|Cj6k&rYm|P{4@AiX!JxFpYasRPw%GOC(uKZdv9Fl(t)BoJE6m#_ARvw8)zzrwA$>JeU$6%V`z0*#n zCl7yuF@Xi{X;}b)*8^^MPkc8^$9Ky|dJR8H(NWNkT|3-%IQoBdy#-X1Tl@Y$3`2v` z2uOD$ARrBbh;)Y_A*CRlN_U8$)X*R(Dc#*jNQaal9nzii-*evgob!HvYyH>atTmpc z!_4#SXYV_%>vJFUJOmlq^b`D|yh_JSGGI=lF(NM9%eiyejwXL!&=wx$y2}P5>?{cv zDJkz`ug=1$tc5$vhi4DCAbNqBZz_+1jVf@@K8obX2gxA?uF)Eb!UR1tEC%$)_Zc;B z$|ni|ak1>~hi*h5LQd;kawP&=)w3FhF!3s|y3K+DYvP&rsLrs8WvmNz*4)xyQ&ja6 zdZ+?})Rh#rX?jD8NTKW~*5MzzY)Jk#g{Xz?XmRKk2egVQlSS`MFOzk{DL35MIgvp; zabRn1n%U6XwV2*>it6n~7Eq3^G_LZI2!knZQ9B$jcAKW=G~>inrVC}ZS}E;|e&5*# zy4mS(+=Wv3(CZjzM5xnT(4FtJWJ14v$gBcfba7u>fjSFr#A62mVi{aFfGuKSxa6mb z6UMqIQdl6S8c$s#ep;s?;ut*#@VsoexIO?`b}_#93?Y+y4EpeFc@)6p?P~X|p*AyF zc9ca}Z!SpM{%vyWOQZV)FQ!)jGp;0y@v^4k(f}aUDo9G;t3V`KBM#KMIH`N4p;T+L zp=dg_XxBBs$1OPPfu48=a4Mn&~Y4 zTs5h6obr<$%IL_Dp)UnQ_^aOD6gPj8>-ATIjn>&RlpNN!o##+9xerI=X(l$jNGnRb z&*p33ORLW(e<)Ej9?4y~vw8gqV;D#<=tJt~b&Xu(Z-Aard14zm8&t!qTN%FEv=qVd z2k@a>!ikzs0&fjnueS6mzpMG78tni zrA+&>ciC!H`s7DgUIbKiHVjsQ)DBFmAycR5Qcw%~a@6|F8VJ9uEesP9ln%=(I3o-a zN~49pKTUl0Fb(ZwiCRh;u5f#lf%pkh?qw_Cv8il_xG-nwsw_&cc8;_LDeicevgoVo%kZ>rDI9OCliwl31PZ z=Ois3D#93xK*JPp=0e|25a< zC<~Z*egI4}DdhaMaK;bR;xp7<`)%WYgwqHuJs-?=@zHY!T!=XGv}b0JJBV1%0@*fH z+kBsfYQtnQEq@M5sk0B=ssV_#@jR5FhzH#9Ym$hIAuS9NP5U{EK_?U?$F%T@#gcw! zLQUUm*I0Hj{#r7%_oki+z2+Cd0_J>+1+~f>}P7EO3PsqUt(Xsesq+%>#OqDaQ3oqUthw7v(Az9N;&)WL>aZw|Vl5_x&Uwar4J zP%sRfC=@Azm9PQ5hEx7G;;IFqi1!x0V+j0SWUOh*o~2UKT;HE&_WgKY>3jbB{dRkM z5_j0-3T{MtY4cB2OJ`>+s%T21eNl7|=~MTwhgPYMAzY37?WXEp5@|A>%6lnwi06XS zgRW*|ZWXsJ4H(>kWYA;$-(q$Fy@(X^r(xfX5tq6^*0}RpcDWlGkoT(+3yIaw;{D7Y zu!uT2bx71V6egNO8CFvMHAK@!W7{Q08RdZMQ(tVkn&6;63mj%vtZ(F?8%g z7maoj#ZO2whhdcirN~!w1ZVa)BNnb3=kX;@Tix&saMhQz#~zW%Ag?-w9EF0&6uNFH$tHt52rM38!_{F1(`$<-4-79>{ zm5sPnipn>@xZM1bCaund_dXdKgp=2ZxdWx5{`(a7V_3vA5FcJHG!nqsw)g@+bGec7 z=g*Ly2BW;VcU^%-j#FgrI zMi!Hw+tpc^S^1M=BDReYhum7Ym!4>7V*ZS}dZxj8^VDLL4lIxL-*Z3$B`+(FI6SsbxjQ==k zEKhI$xZ84eyOuKhpyz(9vs9`p21zM2_@x$dDD>VDjZwmF+PIx8*PS!m?d3_wm-{V+ zIPDkvVm4Hq_u=`G?2xcDza<9DHN?3?w^7I)sx8zfPqurDxF68-Ufl^egcC7!%V!M=v-5_rJ$%XS(x+ZdB=+eYj0sZaQo6+O;mN0< z?PetW@m7d6C;;kbk~}g!ush$tB7?FIGBL_BnRK7aSN3w9d-!o=WTK<>2L`Xc#5YbD z37#cCYmPpT#-H{9-Kw%E!I|$I{iUSzYbZNdqy&|0b2KnQrWockJRKCJ04DWCKPG0< zR_S|0w!6$sOSBYwoxj-&?j-%SET?Jl=w+lNlx{s)GYObIu+xsbD%h-buHCXvHJ=o(Ffdd)C2UWzH^RV5v>lFPW zBpI$Djd9ICGJ{D6@^RyA^Usv)vlL-PUdOwxojkgHiI7Qr#Yd5;F>c}3KX9GGyV_0A zjVEarT3rTQO~cKAPa_AHY*TtN^&>+;iDO$6m*$UnC?0fN)%PTf5BTpLu{qT zz}N8u5;N^n1jWBjKR`qmIv`pAA-wr+Hw*u~2fRx{!b%fkp*_fLkL#sChV}#>wEo zLrzAD4Wc4`qSeAfAp>pOZ%@TnX3MX&#>E;;>?icY{A`U?b}#ej z83qh^n&F6n;{>)h>X+rm3x8O~%9XCB_~cuE)YdrOtuy4CNOIE_jf}b^jZ>2KL4cs| zI%^}9;3pm$J}E;u!5Pg1vOmKZumPP{WEE|%o(w2IHs??u=^w*jQI9>1DAvPLNf#um zxW)HR5(v)`d>Im}l|LfQTcPc^315ATk$7x{e})(Mt2Ib^p~a|P*=tGNl7((bsI6Yb zW%{vN4n4f~@H)y;?t72mo$Ut}Rxy!GFvno{fn^Nk3BpQ)VQ`4TvMT&rhl!w=Raxmv z-bfA>A`w=+Wm}_!y%*i1{$!3;4vt+DAKc=@ISj`ZpBUm@7Izw$?x(=$1fi~Y2NoVr zVo9JibHZp!;~p$n?#_JMdK_qwwcDH*9dY|nLcjLgG^{bP@B_V;2YN;Vmh9omNUw7o z4f`ajw9Lx<{__kx#muUAr4L;zLh8&5H0Q=^cx}QreaDYe;$FDuZ2V+VwiM-`|7s5V zPJf$RXL!bK?wCLr-y|&F-vOBL91Su|67Mv0(SSe4fIcM~Kt671s?ymH*y84Q)!g<| zBd`O-l|+(OoA%prZrnxoSyA9&M;qQR)%<)9)F z5LC&3K;0Rm+=EOc@lg$GS<40D7P@bUKUFr@|N{jl)nsS`qB-}+1FBYICB9= ziX@(iQgMoCiajk?7*}E!X^_WI9`%43h#vhmMfnr+IQ%So(->uvOmD;|`_ms$I3<~pV zlOfisG#69i-I14x`JyIx!!NS2ewUf;F7%sWu5jYG`--nu(*so?7R5|+rN4EKW>V+X zXI{Taw@di_Z0gkyX8trZ2vx1{6AuDHl~87?~B((Z};E~OY0HC(vda-_96!Z z9t)sJ-(2jXlynnqFudp__bB|riln&-81{%br#=CIDek@+;e%4T($|=m3B-5KtN9n@ z!YqQcUt(T%nS_`)I3|F7e8|eoj5H+=kt5p~N5zEMHwN5_^Un!?--%I9BDIppvO88h z&k$QJXBep-EjAPP-){`QTOtc%PRBsQAuyArtqsf6dS3w+#(H7OK)nTx^2(xr(%m&x zS;a2|t+{cbmX)XzKP9B#Ho;O7#y%Hc&Mf-XnZ7x}lIu~lkHk>QZXKw)F9~h5=3pcj9x{r#&CcAh;m$1Qz#tL<=~BT= zzBg6Kicx{_Hc=+V8eNziBV8OeE_<6<>K8ND~+G1U&VE^;dv+a_la( zb*4;$-xKjVK5>ucX@ovE{UPUBX5rm7`-_6Y;_@Ct-iCd@)vR_t4XxFbq$P>>FLi+a z5szfRhPq9M%XD1cD9;*g6X4x3?YK1 zY-mdkRxtyR1*d*|gO)|5@(F(;z50{BQ5-}ahprsPC|&wqW@Io@%AHjXJ|ImnbabzV z{+7Rz1N01==Rp;QdwgK<*AlDU5P7lCn{Hs^^_njWGZ|JLAit%=-B*v}-M7*RxWdrY zyT`2T(F~g+*cxoY@4+RY*kjxoR8jG^`2xx8Xe|=C3!`60r+H2c1@t|+H-8o%S?`27 zDWOv1ImM?Ahj$a@buI{F=S>e)E zKr1z&+m_~ixH2c{oK~q~cPg4vw4+3lG{MlMohrgKj<$_&X$H@iU6iqk8#DlN8!s=+ zga;LhSHur}ds5GGVpaM=xJdgqQ~4f;c3~1)A}&-yA1YL6j*}nV9_tan>$72*P2smC zCeD61l}Q3w9fK90$bSKYGt;-r7q13zJ@!}c=mh$ic#gt2IO2l!96o!n@OOgeaL4omtb`hN7WFx6ek_m{jwYca{ddc3_`~$Un|O?-N@8lm>Of=xHz-bwn2J z@zru3WY~kn(A2v-N(!ty`TLGR%E;K^QU5~p;!_sx(w)KDV>+mDx@Ok85>&Bk!nh@5^)?$EIXm!32S{GvyQ zACr`zzt(!s?zJeV!J@OGklOCDlJEiID+3V=9nBdyEjMm1FN_&*mo_q&Y9i{mcL+!! zBM7lH154q}&MqSd)K)Hf17FSz8QX-~DM zn}EfYo((W4@n?=Kn2z_k@NAs%)bF7e8dpb4IKQrFahiX!oaWTTCsI;Rm=_PFg-4RS z+gElTptUkcd_~?fP%ZXW0yp8iDF<7O-@E;XDP+=Ov!r7}(~Pt1Ts#j@sEY@RVeXi2 zASDl-jo>CR<3?+Zuqzen!1E&?UKDBpp67(~0SbF}J(OYcmkB7V)cNv(nUKC57`+3@ zCgTJBs8~7KJoihMKs`=VB=>QgJ-~X2kSSlm?+T>?foy(0|8_9&^m8Vy*;ld}@`2`9 z=E~T%s0ZU|779%?(7=5K2dfvg7`$apAnEqhg?KG5ukp!v13uE?EUM*oS&)fLq{Sz5 zLa-2$ro^$TiotipGWn#_W2q8ryy`_;(Q9ip{a_Z&tBA)mAt7w1isX8Ki4m~qD?{#( zrn#8uSGxGP*=ebUUA>=Jz3YAJk1^vhW!mA+uYwI>e{VtXs30lr-TarLmEd^H1PI*T ztS_oglHeD}C*RQ&5zCp(1$qXj_)GVLzLN!f8+{tozzEe5+=Bu&F@izWAu3d)OdLg} z0edSIoOUvXajbWXj>@ri-@&5HW60ubVeej|CkhH+PDx@8-IerBtsH%$*G^cxg8lO+`0I=_nj#fcf%z=(-@DKmpFQZV;;j?!^= zF?&4h@ViyLQo)a7u{B5a_ee13uT;_NyS%G+0+^m=NO)^(%IFWich@>s{f(evEPi8? zXWXp1MI(=1iKplL^pJ@5+|B{<#YH3T&qZ%u5T+Ko{}WA!Npb%lOG43&RS%mLMTF28 zUiFsdM(StR!~rJ!0dD?7lLYQisEMNxts5`D9Yt<1?qPO?lVibiqpfy7Nw&aSRu;>` ziI4%7_SWiq)TSZsx715VTvqS43c@GUxRHdugHNE}GQi{)9F)Tgg)x$rwCm+-br4vO zI)oN@G6p!^?AZG%CJ9d&78>Iz(`KNx4!~e)Hr8uZ64a!Sy3Q|^$bbLOj{r3a-}5w3 zC>IJ-# z(d5WKjcQriN3c>S=6L?3h^J`^%=Bn0%7Z67XUT%KXpoV7(2#x0u)v+a@O1m3*ZIEF zI`P$!&0!DCqitbPLIE}_>2F28&?gfJjZ#;#dww5i1qQ z4nd}g2#m#Ohk4hj3rP%uh6_y-W`1O2+5F?iOQGIu2%G^;>SB)OLPPCQ2LJ#05*>t? zL@8c`zz|Gnw;!AF-Vt-I7f`tF57X2^j{T2{%WJcy-D#dZdZLJs&kVCj_ zWQEQESHYk84E+$%O4+}@2P;GZaqYaf9lapw*?>G=GklZo4FHw#fGSmaY3M;)A6DIW%KTj78A|xnu9!9{> z$cF2KP_zs)8RSzk3&Yq4x$fH|@-9^CpR-`zqpt*xe~9>O5DnLVUI#5}p8TWdk?sd<2Hy zsGkSKmgAK$^y2gNdL+THgH-{8elsiL!VHF)_3z^qCY6R|et0z`Fx~6#;4QHd^Vmxa z!ik27pXUK_ZHCQAb779BKuv(2`B!cR<$W5&;#tPd{l{W{NECbzDy?_O5{h}Y_T_3h zgjIa(?QAwDWDD<`8|S~*ESPX(s>Jw73&M7mgIY?E&)`=KY)cMhA9T3h5hcbz1H<5( zUwM<*6~rKYp#Q3U0O3O^=&{g%j5Ew>>=^)1B+Wi z4Y1|%&gC)Dt1TcE&ri>;c)E$1HJSLkP~p6$GG9L%=s= z6;NVQq9=ie=s#P3ToAI!w0;Ig0t|inQ!?ky=dv*jo@@a2(ckVJR8w6-3DVlARn5k4 zZI_~lo+$h!nnm7glec0ZdH(z+HZEOC0!@nFYK@VN2nyC`EKb(ge}#|!D}=2}WH^5D zItINhODcfKTQMlokHOxvhXA#3A!g2PdO8x3E3@}U?KnI?0kO|8(dhMag71o%`o9R# zh{G;#h#)IKw_FaK$K0hBJs+s>juMmtwp-6}{nspiBwGO9W(8n)U3fsiHs(j=Ip2J>!dkqKstQcAwp{eI?)?e zS7V7sSKukxKY*zf%sF)6RS$}6{{*bOwEVn;aPZ)d>!V0vzh68Xn&u4~5;(V_Lg6cC zgWR5!_)dduU8W2zNEm{d0W|QDcL~E7>ua@yXQCH;BicI2+`3bdA9CJLI3R%v=d{$a>INz0{5c>z@trcl*Gi>V$&Fh!F0J5Tpw=#ya%oiocKbkEcow|#f zgYC7T+_(ceCz}l;_5^wS{vvFU+K+c1t>CAmb=iugQgNfOLa+%0EWvTrr%%k!@FA`D z5A%A6K~ik%du5?2fW=9wQsS5@RiH=$>#|jFR^Sk8YyY3K#gRp-wZ6niZ3#J%;&c<{nQ5kHcmc+71_fy_IABk+|k-4&-tC_5`u4xd$l)Q|o{?q>@n zlhdWhStYOU&fjHtn&B_M=}d6==VlBxU1{q+blx=opTkov0~U7H)he8!@8z8yc*+F? zlA=(s$$xlmThnKSHav-D6DL6EkAmt%qgR2byRiQD_aOxqs#3bx^e?X?Wt#kE(06zJ zmEi^s<>68w47Jw#W#L=-%G2w6FX6D+`F?qc{2!J5>}bqKDGdgqd#V5T_ETZ;p0j)w zzeVVwJOxJzd!$sF8HD)x1TeomB3m1f7yuCyr<*&w@m<*0H+5fryl_#sNoJVxqO?NW z&vlBOM7_D+;I;DcKF2)!db6qMpO}XC|GT=VuyBEmX%7X>&s-Xc6bK0aqI>Ko3+wYo zhG^ey>QocN4vAP)I5DV2FcM8o3v7mGC6Co~NZ%NCAZEcJqpHubmKIv0B;0ae#ZUEi zjdojFk{aCp5lDi2!~-?|-HynBxNSEak9F?_$x1ZAVJJZ!3ly&a z0tezSq}<^|i)5!-3-)!lN>>F2$H2FNFVR zIk5UcP!j>ClvmpcoLyDQN9I`1NIv`qGO3HM^bfG#Mozs|g49FL;)^cn>nNaIGi^n$QCT$r$G%$2GnnZo*oN(V91|Kcdo#Zo6heBm< z5x+y{L;;CpZo5k7zmYjMBkz1&n%q2JtVFEBbpdNM;9`?J;DN>W~})+b8$dC2OIjy2z#*$fsOS`%2k!`m4rCb4O%7pZPLpbaN?^=|h;F8ZMU z6OL^ulT+J@`_JyRtOt_`imt&$?#rh9b2^4e`9NFhAtSY+wxBIM2^f0Ul#E5Nz)P7P zQEhE)tZXnbmdGEy48od=y={oiptggKh)s?54FzMV>!pwOT58<5^%hqcK72QL!m%X< zIc1Pv`_pxduv$kCmriF)Y8~#zwuU=k1xQ` zpnIhBaD)wnGMA&Uo-qnYs1zEOSrdV?$IlM4+(# z#_PkmE1R)yVEk}O9Qk__Vhv~oy?q-Xv`rERi|GYQDNt>ZmAPI=XdnuU>)Ex-7*p&* zkA20BT2z6*Lah!)(TSGnbijBuuwF~dqj^V+mnDdqduo$@$}qO#z0PDnYu$RXa(e2! zj+fC7tpXGOeO#poUdyPjQsJ4lJfK~kV<2$tjVM5v`WZaNIjJu~kyN*TK zTZ~WzI$AU-jbazB?eJHKJ(hI1`}PO27uL#z)Z{`uIWpMSrz!dr?eyc>f8*}Vao8PK6hC$7v7?S<@K*=!lSkIR zs|pY%zW_x1dew-2xYPr%8MB7yX!O@(wzj-@`|8&W&x%sVOkJk`Cj-LT9l;8J)FXSZ zey+84zIC2l!v7w7YK;D0QeE}e2h+Inn|I}wG#ruVQJyeVI}*%CPX+qfqWYylv2GSa zBcnH9b1r&4U2dUolt|hA;oFR7UtDUqqE(VM&1Amji36Dw>vvEynl%T}d7&L(=zZHh z0`e1`NBo_yD~IB_xvMmYgbFow0|P{DJ2INaHS%{TQqa!W zraI9S3QitHk@J7;1+0?|hrw5WF5@~55MY`|L59y|{_8LCI)u@lWaglxubcpUnp;jb zM3mb;bZ&~O8U)w6@^lIZ#g%M9T0%ew@< z@$K=D;b=#H!osc5sc%2(5|6-;k%2s?SF(l6!*}BO*Ug6B0K2R9kGa;O*T7}-p`Z_YVr=8$&_ISSf$fnD}ytsGM}sD8X& zBC#RP11O+NW&l->p`mD_gpE2z7KS8y&(*3835_J zZo#_mR^9Vhz0bZAmv#L|z93C2me|M)eBBhy$7sA=k0dUijw;RR#$O=-gE7U(+ugg8pbrWA@1uN#l74OkUySKsL+Er;6o8dL@f*7od zL`N@cMlNC!wWMux+Yh;b@qM9W#$Jw`8HjkFRgc@3NvoFyZ*LnS!_iuS@mD9o`>eZu z>U_^`_3|4q!5Y0x3;2-Y?^h8s0(a=Aer}UQ>W;7HS#1-gU zj`ex>P1&d~8(So@o0j(`0LOL`opMFor2=s~HAC%Fo8(LtGtSt$=!=!OTLJ`wOHI>V1w)$)|jq?rLI{QM56KLJ`Qb^O>R0%ubO{nUq~S; zXg{4pY|Uqv%H{ggbaE>@`cTL7v>j)*meSsZndE{VwlW`&{cjTS*Y{vd1@DU0g7W(L z&6Y(%S^n9AJvXQOFCz~{zj^l>=8MDG^?A)zvet)Y`GI%Xt=DL(mv?JBEZw)XE=Y9o z{;3`O=LJO?c(W)UEcP>)rG0&V4a}j=^HAsW=Elh6BpXWd?Yg9Ae|MEsq-n?XV#~!{ z$(3*PN=X+Pzo9gL?}mSSUt}|hVTaLk&m4(&7^-2Gb*(OA#VyU5m!_A$+=j%ztu~#J zYDuUB&z$VpD^fXy5uCK(Uz|j6*cwDr2NP?P{~LM#Cn;qO10M{{R3pm}cI(2tGiI3n zOD5;_B&Q7^mrt(cWfyIoE#OS&eC`)W66htBTqS-!{$)RVH~713BDqOl^A)Lvmc{?` zU1c*(K#WcN{u!Dx0eqyvz3my~bnH5qtZ4p@s9r_QufD3;h!<0RXi|nV;J=M{UF>3v zK!gIfC*BM=c_ogedeNdKQCU+N8T1*lQJo?+%dnM3({yG(;- zfq^Od>R^C>(x;#6+v)2B2+z;_ z|9evw6ey~S=dpUqSk~h~r;&JV&98dfiri&xz!J@6fSc}6`}`DX&_k!v z1JBLSDQGdv%m+w`|6G&*UYT#mbK1rwzU((pjoSi#f1_^{xnl9U6$C=ZrXVY=#n0?I z>YQ442^zV{210`u-!PI^KTjZy2R`#)D*Q6pQLj%msL`o$?pdAi_5UQc`XxDkajv`0 zWmF**o8eO)JeOI2bGiL|8;7Uzq%d;+@sFGML)}PK$tpR+*HoV^DE;^2b_TcN3MCOd?|&JVaze&17OR;f(5xt!jv zu$ol>huO}2;dISH$OPVL?}JBfxd4{_#b~kp6d=OK7JN7^&*9h6&Q}*Zsm=rUDgUPs z&KQpzJo+Z;;pEd3&0OV_1et>j#5K!=>X*BsvnObQjiB|L?|ST7I4`TdvG-XES?Vxn z$s~B{CRnCd0bm8sLFLu{-hva`8JMb}YFq+1xH(U5tj*aXhx5=kN3uf^5lkpEQ=k$q zP{h9FoWLKOaXn)*S#NJ_b5P<-QuT(l@h9-U%zIUEExo8n&};uHDujZVF(*oyuXASA z`84#E`>k)`*@BS9#lh>fI40NleDQZPokxQe)4Owj(O~{ARa=TS{8WD&g8Kk{7gWs4 z-fTi2GthV+t78v=Kbiu<9##)YY#ZD53|tnG=#(ZI)&Eq|WqDCS_I#jVwzBNeE{O!2VoWpp8Fq$p z+O(c?PixDQsB+8Q#^n0TglEFJ#ym~qUq$hNKm6Yv%tXSUce?Y_*<6mI8YJgTJE^hV zo5W^(NaAW>&jdrLZM^e~Mt9Z2+KSJdQa*0n$w&>v!r6=s4-)_J2U+Lqjb*uN-hP#v zW(f=$mBuAP1WyUU8aDH(A}`$oMWGicyrX!wEJ|<_Fyi5uLZ`rI;6cw%xxpz3fpURN zfo4n!eG2UrFyrFr8MLy9CDkFo7@QGj_Z-m@p4&ZYF{aR}UWcP%+^Ga$mQg|1isMZ_ zo5F9lH6nv;(Akaet;DU4`?7hUOpmZLV%QiQbHs^&~&Ef5Dym<>+5m zw|_aE)WWCcm5q_?n}J(o<5W^aQR%V>S(dy>-CkX|Jr!Ee6$kN>7fphP_IDL-R3cEl zq$)NJuY5B*S?%PlY-nWfrjz}>1#x3n8V}k^5*k9!2L<7lH(=h?^>MrX3%I!{ zngft*12ZqRwLqV>F@~_@MbQ#^C;#PfnS#nR?>rlE!Th66xwT5WH?bc?`h1+)Y?$jH zVHDRrt9=F3|Ln$Jn5BH<6j)%9T9?Umf)l_nY(Y8D&l>y=atPMjr7HR^un7bs1~Vm& z6$7386!J^|AZMW<5!l6bYZUh6{SQk0@N`OiSl$x(2jRy+X;H|MLn^$lPMg14i@bu3 z#4S;m1|7*811;o@2*oV#)dG@7%y7HRE(HT))rH%OLF4fG&!lCBTGW-;EvCfEP4BCj zoV${h!0~A}aWu%k;I>-p^I=Q_v4(yv38GSEu`|Pzrt_s$k7N;+e?tIP4k-MP;aC;x z2^FX2l>2n%r0c6#0_GBU40fPfkVKX)b62_ ztBi!o@(x9_LrC3;*p>9M?$h3p+UP+q^q2YINAG_#rpshx5@U8*U`pv7A@zkQ2AVlq zV&cC}L!nTaThe$KvG5vDb&fLxBEE;(?Nbp$vKoy)u19qXu+!N|x#+hoq@lIqCOVpw z_%8#U`PFA zIcCWcBFIyN_CeLM$clfCy%@ciAs&5-Gay?dx*4J_ngt>6dp^PMf$Xb$Mml+^wc;UuLMB6W-M-xla=Cr$$e^oPARD zWy7*D{^!A==gp9Mig6FBGN$^aB_gP|p!5T-ZgOwNkjjE=<~?N0__#2jf7I_29_@-U z5=3+(mBIek2Z8uwQv7tX(;^R3o%eP}9J2f=qDb~eG(B`5F-&RD3iT4aStYaKb1l%W z(>;zobT({-zdnob8Fa(`lw{QK76(XF2xlJDIiUHgAO4seUt*WZ%eUVvMbCOP_q z@=crwJvQXB9Jc#dCZtdc#Tz)*S>b+9gwe7Kt^;KCnm}F3OD+K6n@8dZ34mtaA3$_? zk{oZMZ&lo@Y?u;Q-=al&-2eW`80PKw(AP#68K=oLV zZ~s9`9orAUm0C^#arxZv@O*7wzN^v;q;6GUHe>l>-odm=89-9`gw$u_T)Jf)l_bO^ zKyEeZ+_wO6O6TP|;E|T0-Vtu)c|IanrJ4wu3bSA9r;qWo;!l7spi;GmPy;vQ%~PzW zIg>J)6+t`CZWQV}fbMW`FX0`@s{B*+dmp;Iy}HS*&NGmMT6Tco!!#aDLH+MZ#vbFB zjv(rimGi#d?7_P)JbcEZ4oi9tt+~lY++PX#$t89^!vwn~5 zxjN_97a(;`1HD({U%m+MZQx$rim|DMYvhc6=mTD)*Xy;o`qE+V@Z%Uv^$jJ$)t`7_ zEX8>PY|<~TIsmS^rAYYfD*Z+tx7lmudk%c+*jqdE{ky#XE2!FP5@!bW zt>%RA&`Mu{@=XASO+1#%w@GWJpE1cTvH8BBT90`Hq8SA$C(!$?1`3`pK1ab%%d?a) zc{`ja(Btkki0TG{@FYX-pHjI$Hf`p*FPdQvXD+-@GP%%qdc4aH+k0*}`pta(3AA6B z6Fca*Twf*k7pZEh@Q4H`H;&(if?Y%Pxbu!1VHU7Jne8 zcvZ39b#e*%_l;c`qQh$*`}N%rG5PRpGpJ zoTL8$-K3I;7CnpCeUprH#B#|l6F0ls53P*_448|CYTlnD^*yO6+}l&i8I{Ca{t65O z9l6UNs1vaYN+k>g4VdpNAhj%#aH|*9*`Mm&Mv-&^Z#(uE* zOA(;*`{Q}Hp#8785-TaHBEox#Xf@L#+_T^}Hm&yaVx{gr`2!{=?1(3h;7sA6ufqH~ zC+>6Lcc*fS0{qc8-I5o-%*e==JB$Q*^+t?yZ);hA?Rj0oh%sT1!HCxZW6`*Z<2WQXi`V9vyYS#RC7`@f%<3c*LfpsrbiYTM1T2=s06Yfo-}|K>d}0dr>O z_y3}fH1)T>c(-GL1e@IzlZU+px^XV=gaE)d3hKt;qW5`;y9Hdvj~>5@SGE@ZAhN}} zFsz1Nkqx@SKZR(cR#_5u466+Pj+8T*!DX{K94p2D=bP$ zoEE(OmwCgvUt0PEy{vfOYj=P^${dN;qlr{cm%c%AA%x}!(fYdOL~}IEW1^}Cfa-E> zDqF0hozirPgB1dw!@J7#Vk3bd>!a1oThCPiRajzD37rmfU%d=dc`m`|E!T4GUqU-_5CY1*;|+WAwD}n zJ3{oEMgZgFr>TmS_Qp@h@|LbOv9`GvW;)YuU#Uh&z)FI$n-9vuzxM8Q5&E+S`uYkA z`8n7w(PqBEJ$t0Xas9$ND_DlW`=3@z938kQ{rjIc;tmN-CNmC*N%Lye80a$Tw)wuS zH3L8EPB7Vv{bkl}eWlXTDGT~jU=&xz+e(sK_ie*TwCm%I{P0Sg`ApBu_pq1c7S2j2 zGtGPY63yc*q9r?2N;NWt zReI`+IP*m^=0X9q&R>Km^FfCI<}^t8ygKSYf9zsm!RshWh~!X`uQAKB(<~SrUAnGo z?^p?gTyTQ^@6*%&2_x7_8QQ0^Y?S@lIQ%#7<(YX#Am@nR5^eh_$p}LFUUnmqd1L$8 zR!VY`2~uxCvmXIXF(vm47jHvPB9Xs0Hzs7qiM6bRemp&JT*h~IS*be}mJ~`R^ZKdJ zGBW`Q`YkI;DWtgecx@zNeC(_d8zP_~jXjac>w%5RTD{sX=Ued}g@o+A*YUa6Q=}w{ zS5?MZDPUDW4VF2AyUkB^m&-b ziY@R&rZi$PcHwv`JK%&HI~v>&@zp+jqm1J{&zBI{8?ms6bOqizO#b3It`-f#r7Yz-DNO(`UBtT zi!li8excDeDP7v58&h28YUXDw2;8Bgza<5U6U3d~A>>JbSMvFQZh-?2cu5=UKJThq zz;618leY|*mcMCi0|nxL^XyC~yY<^&`R?N5 z$Alp^oxuJ-1JI+5uBiIhqucQ>(if6f`eiL{%Nr5tfT=TxG^lsPt$bow&?*zv({1mHS)e`PO+mA=14szzUf zj?Vsec5H310~pZvomxuD{j!a9YD*DWL1M_HlbP|nCp(llu`p}R!^zO%IJfTI`7dQcc|g=PMT2dru5MGdg)O$s9IjD zLtv2;wm{;o;&;+=y~-mo>K#ojew{-aTXh_0Dre|thQ_f-3+#v0dmOQMZh>7JCsOgY z*N?{d23Z7o&f(ld{&Fec17QGJpl^3JOazw*xa0lwFj?^(QeuczXzlT(+^UcTt8pCM zJ9TVG&=4gc+T(%Im$`*fqMZ<$BVTU(a^TI#@#2AdKM7=Dqk#hTTMZ4Zv$z6Q`w1QP ztNQ)iDVg2= z{_A1|qajQ=NGwln{wTtHEd#}bxy9~!9#Ca=teUsq&UMd8z@RJl!`4*Uw`^r%M3t5a z485<;_Uw@ni2G)jk!UQNceQu$DtsAPLb_$qfhnDvS>Rs|W*M?cKA6};M(OuDx6HaT zTn@lcy}KJd{I3)i&uQN)6BLVYQ}D-13+Fz&9I!!=vZxgXIHco>PWTru(0mj0x%Tjt z9wsfjGlt09dh`pz#Z!~6nIBU=rRVk{a4q>&u2;S} z7>#uNRrOB^0H~6?N9L>V<1A4#YVfXUVCvvY3tJr)e7?>sp4NyBI{X)%YJDI2_EzZ5 z*`)}3tmd&0nA(LWd2S^rGPal@wufYO{8dTT(}8!4g)-z(I{~@yr6UG2sN&*2O*;hQ z(LIcGPGP`Zqnvw|)LY{qG1r1wjAu&jJ;s&Ek zP67&tq6I2#y39|j%8Xf%X^cA=HW6I*=)EC2+5yqd{&FLg+s`%=q?!GKZ*%kXx?QAM zou|mn@nrGmz$L$W&(9#~zi79x=;+Ja?E7Xnpvbv8M*XQE{Rr3la`6+j3fFUA$s*Mm zD`{*(D4+YbQDpyTEJsPb8p(-0Jp~*aL4Xd>Yud`<{-kIN?Y z?8G`^@UNOeA}26WRyVGKQ5@K|KiV7X&F=zHPP5*I@6v0E1i2oCfq~H5H!dx*CoHt| zfh)X|W@4n>hH?L2TUQ#^)U`!#LK1`00)YTw42UGmgMc8?1PLNgMiW6x7#=b_wM7sV zl_5a{L{st@)Kn!9XyHX=NQN(C)4*urPZJoa1^g!eVS&iCE(qdhgHz-usN+Azt|CTg%v2E~2zHiRYNw4wLvEM!Ont=sk) zEX3TQCd%)ilOK`hTW^~k^m=u~8!|QG7&Jl!>6T23;zk$N0}6*!?=LrMx#eF6K&9p% zpiF8q<(Z4h0f~H0F=DsHts(i=ML&Lo^T?3anCVziR1?9p#lEUQby{PvaXhNHId-aL z@sV-wl3>3366Zf$TdnhJMta9dgyTM9i$g%8~cJ%|2 z&uf7yeZk;LBk1SUpzOgWlFNybj?L?gziDEtZ-*1L53#j5m&Cn;=7Ekes&9Dm8Q<`9O+5<+CI+8R9@&@G1f`?FwjNT>MoW*)S#qE2LD?g$e!!EyzB?_&?lU9Y`(f% zr$E2fDuhFoNUN=Orz+{&LbS_o;uQD7#2D_x&$5`*Y&o{(Q&uMyhdM`Ia_Y@evB5?# zuF!R(_Q|3$xr$I|u=Pz8T7o2!yhPj7HuXKSJ=eZnKObv5t^ZC-UL-z~+O zCL;YpF%*tu;A*nGQ9Bq&=2qPfJbM}I?$r(j27_$Cv!UQ31FS<2aR<_WFTA&NdvCTa z{v0H8CN@eC>H;aUrSh``S z&n4yQKTwh1KY7g=1CrVA11Uwc_($0dLFX_lV^gC+!(- z=XkS5^u!{4PEcF&dK&Z$?&-mfwH!?u9v3;r+&bo;pGn05YL?5o@vW@#*|?w)5#X|V z;l#IRz&IX27xQ|xGQdy|V%jZFG0@lq^#)K35ockNloA03mv-+55a3Y%)?4}K%Nj&e|KA% z##=w0$)?6~S@G^LcSt3z`3kmtE*2PR$%deBwX=%ojR1t!6o^U@SNZaWH#;3OvN{ z{fCPs&=bd1I`$LJO+?BP0k4WQ6AAxMRIoDF4;t3qu#gY

JTnmWK(Z=$?9(GZH0 z->|1XY6y_9=OXLEO`|m^W8Exe= Date: Sat, 11 May 2019 10:18:13 +0300 Subject: [PATCH 053/134] fix --- .../{germany-layout.png => german-layout.png} | Bin 35345 -> 35345 bytes .../5-keyboard-events/us-layout.png | Bin 36212 -> 36212 bytes 2 files changed, 0 insertions(+), 0 deletions(-) rename 2-ui/3-event-details/5-keyboard-events/{germany-layout.png => german-layout.png} (99%) diff --git a/2-ui/3-event-details/5-keyboard-events/germany-layout.png b/2-ui/3-event-details/5-keyboard-events/german-layout.png similarity index 99% rename from 2-ui/3-event-details/5-keyboard-events/germany-layout.png rename to 2-ui/3-event-details/5-keyboard-events/german-layout.png index 82c48e938dd3e67e5fed5a932ebba91c425c4896..7e24f254ed7f9a6fdb78873bd9f1c894f2547d05 100644 GIT binary patch delta 102 zcmbO@g=yjxrU}*TynNzexgVZyY_jVNGz>8`urf5UGBVaSFt#!<`0ny-DFXw8YKdz^ rNlIc#s#R`&N@iLmgOP!urLKXgt|7XHHpw_ipaup{S3j3^P6vU~FYz@ZIIv(#ht%vI^)D TZIW@43_#%N>gTe~DWM4fJ4YC8 delta 78 zcmew|i|NZOrU}*TOlC%mtL~?5Y+BeOVi00vY-MU Date: Sat, 11 May 2019 11:28:46 +0300 Subject: [PATCH 054/134] fixes --- .../09-call-apply-decorators/article.md | 2 +- 2-ui/3-event-details/5-keyboard-events/article.md | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/1-js/06-advanced-functions/09-call-apply-decorators/article.md b/1-js/06-advanced-functions/09-call-apply-decorators/article.md index 75c510d1e..33a4bb8f3 100644 --- a/1-js/06-advanced-functions/09-call-apply-decorators/article.md +++ b/1-js/06-advanced-functions/09-call-apply-decorators/article.md @@ -453,7 +453,7 @@ let wrapper = function() { } ``` -We also saw an example of *method borrowing* when we take a method from an object and `call` it in the context of another object. It is quite common to take array methods and apply them to arguments. The alternative is to use rest parameters object that is a real array. +We also saw an example of *method borrowing* when we take a method from an object and `call` it in the context of another object. It is quite common to take array methods and apply them to `arguments`. The alternative is to use rest parameters object that is a real array. There are many decorators there in the wild. Check how well you got them by solving the tasks of this chapter. diff --git a/2-ui/3-event-details/5-keyboard-events/article.md b/2-ui/3-event-details/5-keyboard-events/article.md index 92fc2b9ba..aad839113 100644 --- a/2-ui/3-event-details/5-keyboard-events/article.md +++ b/2-ui/3-event-details/5-keyboard-events/article.md @@ -97,14 +97,14 @@ For example, here are US layout ("QWERTY") and German layout ("QWERTZ") under it ![](german-layout.png) -For the same key, US layout has "Z", while German layout has "Y" and (letters are swapped). +For the same key, US layout has "Z", while German layout has "Y" (letters are swapped). -So, `event.code` will equal `KeyZ` for German people who press "Y". Just because the keyboard layout is different. +So, `event.code` will equal `KeyZ` for people with German layout when they press "Y". That sounds odd, but so it is. The [specification](https://www.w3.org/TR/uievents-code/#table-key-code-alphanumeric-writing-system) explicitly mentions such behavior. -- `event.code` has the benefit of being the same, even if the visitor changes languages. So hotkeys that rely on it work well even in case of a language switch. -- `event.code` may match a wrong character for unexpected layout. Same letters in different layouts may be at different keyboard keys, leading to different codes. That happens for several codes, e.g. `keyA`, `keyQ`, `keyZ`. You can find the list in the [specification](https://www.w3.org/TR/uievents-code/#table-key-code-alphanumeric-writing-system). +- `event.code` has the benefit of staying always the same, bound to the physical key location, even if the visitor changes languages. So hotkeys that rely on it work well even in case of a language switch. +- `event.code` may match a wrong character for unexpected layout. Same letters in different layouts may map to different physical keys, leading to different codes. That happens for several codes, e.g. `keyA`, `keyQ`, `keyZ` (as we've seen). You can find the list in the [specification](https://www.w3.org/TR/uievents-code/#table-key-code-alphanumeric-writing-system). So, to reliably track layout-dependent characters, `event.key` may be a better way. From 29a3c58d72b8f10f9f1f9ce5cf691d2ab44a9d01 Mon Sep 17 00:00:00 2001 From: Ilya Kantor Date: Sat, 11 May 2019 11:29:50 +0300 Subject: [PATCH 055/134] fixes --- 2-ui/3-event-details/5-keyboard-events/article.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/2-ui/3-event-details/5-keyboard-events/article.md b/2-ui/3-event-details/5-keyboard-events/article.md index aad839113..afaa50bf1 100644 --- a/2-ui/3-event-details/5-keyboard-events/article.md +++ b/2-ui/3-event-details/5-keyboard-events/article.md @@ -110,9 +110,9 @@ So, to reliably track layout-dependent characters, `event.key` may be a better w ## Auto-repeat -If a key is being pressed for a long enough time, it starts to repeat: the `keydown` triggers again and again, and then when it's released we finally get `keyup`. So it's kind of normal to have many `keydown` and a single `keyup`. +If a key is being pressed for a long enough time, it starts to "auto-repeat": the `keydown` triggers again and again, and then when it's released we finally get `keyup`. So it's kind of normal to have many `keydown` and a single `keyup`. -For all repeating keys the event object has `event.repeat` property set to `true`. +For events triggered by auto-repeat, the event object has `event.repeat` property set to `true`. ## Default actions From 9be9616541bbb5177d8be21ef71f74e5b30144fd Mon Sep 17 00:00:00 2001 From: Ilya Kantor Date: Sat, 11 May 2019 15:17:08 +0300 Subject: [PATCH 056/134] license --- LICENSE.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/LICENSE.md b/LICENSE.md index 60f06924e..0daa85a63 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -1,5 +1,11 @@ -# Attribution-NonCommercial-ShareAlike 4.0 +The tutorial is free to read. + +If you'd like to do something else with it, please get a permission from Ilya Kantor, iliakan@javascript.ru. + +As of now, I license the tutorial to almost everyone under the terms of a "free" CC-BY-NC-SA license. Just please be so kind to contact me. + +## Attribution-NonCommercial-ShareAlike license (CC-BY-NC-SA) The full license text is at . From 8b9aaa74b17f131aa0839e642be4e8fc536256f9 Mon Sep 17 00:00:00 2001 From: Ilya Kantor Date: Sat, 11 May 2019 15:17:13 +0300 Subject: [PATCH 057/134] minor --- 8-web-components/4-template-element/article.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/8-web-components/4-template-element/article.md b/8-web-components/4-template-element/article.md index 00ca2f5c3..25aada6fc 100644 --- a/8-web-components/4-template-element/article.md +++ b/8-web-components/4-template-element/article.md @@ -1,9 +1,9 @@ # Template element -A built-in `