From 9482b077ecb804f145eca3b21b23a37658a32323 Mon Sep 17 00:00:00 2001 From: Isabelle Viktoria Maciohsek Date: Sun, 13 Jun 2021 19:52:48 +0300 Subject: [PATCH 1/3] Bake dates into articles --- blog_posts/10-vs-code-extensions-for-js-developers.md | 2 ++ blog_posts/25-css-gradients.md | 2 ++ blog_posts/4-javascript-array-methods.md | 2 ++ blog_posts/4-seo-tips-for-developers.md | 2 ++ blog_posts/5-tips-for-better-pull-requests.md | 2 ++ blog_posts/6-javascript-regexp-tricks.md | 2 ++ blog_posts/6-tips-for-your-next-remote-onboarding.md | 2 ++ blog_posts/7-chrome-extensions-for-web-developers.md | 2 ++ blog_posts/8-tips-for-accessible-websites.md | 2 ++ blog_posts/8-tips-for-remote-work.md | 2 ++ blog_posts/async-javascript-cheatsheet.md | 2 ++ blog_posts/benefits-of-writing.md | 2 ++ blog_posts/breaking-react.md | 2 ++ blog_posts/code-anatomy-chaining-reduce-for-loop.md | 2 ++ blog_posts/code-anatomy-optimizing-recursion.md | 2 ++ blog_posts/code-anatomy-performant-python.md | 2 ++ blog_posts/console-log-cheatsheet.md | 2 ++ blog_posts/cookies-local-storage-session.md | 2 ++ blog_posts/copy-text-to-clipboard-with-javascript.md | 2 ++ blog_posts/css-centering.md | 2 ++ blog_posts/css-easing-variables.md | 2 ++ blog_posts/css-pseudo-classes.md | 2 ++ blog_posts/css-units-cheatsheet.md | 2 ++ blog_posts/css-variables.md | 2 ++ blog_posts/custom-file-download-names.md | 2 ++ blog_posts/detect-caps-lock-is-on.md | 2 ++ blog_posts/eslint-refactor-for-in.md | 2 ++ blog_posts/flexbox-cheatsheet.md | 2 ++ blog_posts/git-aliases.md | 2 ++ blog_posts/git-commit-different-date.md | 2 ++ blog_posts/github-co-authors.md | 2 ++ blog_posts/http-status-codes-cheatsheet.md | 2 ++ blog_posts/javascript-array-comparison.md | 2 ++ blog_posts/javascript-arrow-function-event-listeners.md | 2 ++ blog_posts/javascript-arrow-functions.md | 2 ++ blog_posts/javascript-async-array-loops.md | 2 ++ blog_posts/javascript-await-timeout.md | 2 ++ blog_posts/javascript-boolean-function.md | 2 ++ blog_posts/javascript-closures.md | 2 ++ blog_posts/javascript-copy-array.md | 2 ++ blog_posts/javascript-deep-freeze-object.md | 2 ++ blog_posts/javascript-destructuring-assignment.md | 2 ++ blog_posts/javascript-empty-array.md | 2 ++ blog_posts/javascript-encodeuri-encodeuricomponent.md | 2 ++ blog_posts/javascript-enum.md | 2 ++ blog_posts/javascript-equality.md | 2 ++ blog_posts/javascript-event-bubbling-capturing-delegation.md | 2 ++ blog_posts/javascript-for-in-for-of-foreach.md | 2 ++ blog_posts/javascript-for-loop-early-break.md | 2 ++ blog_posts/javascript-function-call-apply-bind.md | 2 ++ blog_posts/javascript-higher-order-functions.md | 2 ++ blog_posts/javascript-iife.md | 2 ++ blog_posts/javascript-iterable-to-array.md | 2 ++ blog_posts/javascript-iterators.md | 2 ++ blog_posts/javascript-listen-once.md | 2 ++ blog_posts/javascript-make-iterable.md | 2 ++ blog_posts/javascript-memoization.md | 2 ++ blog_posts/javascript-merge-arrays.md | 2 ++ blog_posts/javascript-modify-url-without-reload.md | 2 ++ blog_posts/javascript-module-cheatsheet.md | 2 ++ blog_posts/javascript-naming-conventions.md | 2 ++ blog_posts/javascript-nullish-coalescing-optional-chaining.md | 2 ++ blog_posts/javascript-object-array-proxy.md | 2 ++ blog_posts/javascript-object-is-triple-equals.md | 2 ++ blog_posts/javascript-prevent-string-being-escaped.md | 2 ++ blog_posts/javascript-primitive-instanceof.md | 2 ++ blog_posts/javascript-promise-then-catch.md | 2 ++ blog_posts/javascript-promise-then-finally.md | 2 ++ blog_posts/javascript-query-selector-shorthand.md | 2 ++ blog_posts/javascript-range-generator.md | 2 ++ blog_posts/javascript-remove-object-property.md | 2 ++ blog_posts/javascript-return-constructor.md | 2 ++ blog_posts/javascript-shallow-deep-clone.md | 2 ++ blog_posts/javascript-singleton-proxy.md | 2 ++ blog_posts/javascript-sleep.md | 2 ++ blog_posts/javascript-spread-rest-syntax.md | 2 ++ blog_posts/javascript-store-dom-items.md | 2 ++ blog_posts/javascript-swap-two-variables.md | 2 ++ blog_posts/javascript-switch-object.md | 2 ++ blog_posts/javascript-target-blank.md | 2 ++ blog_posts/javascript-ternary-operator.md | 2 ++ blog_posts/javascript-this.md | 2 ++ blog_posts/javascript-undeclared-undefined-null.md | 2 ++ blog_posts/javascript-value-as-number.md | 2 ++ blog_posts/javascript-variable-hoisting.md | 2 ++ blog_posts/javascript-variable-scope.md | 2 ++ blog_posts/javascript-void-links.md | 2 ++ blog_posts/js-array-min-max.md | 2 ++ blog_posts/js-array-sorting-shorthand.md | 2 ++ blog_posts/js-remove-array-duplicates.md | 2 ++ blog_posts/lazy-loading-images.md | 2 ++ blog_posts/nodejs-chrome-debugging.md | 2 ++ blog_posts/password-autocomplete-suggestion.md | 2 ++ blog_posts/perfect-css-transition-duration.md | 2 ++ blog_posts/prefetching-resources.md | 2 ++ blog_posts/python-dict-getkey-vs-dictkey.md | 2 ++ blog_posts/python-fstrings-str-format.md | 2 ++ blog_posts/python-identity-equality.md | 2 ++ blog_posts/python-lists-tuples.md | 2 ++ blog_posts/python-lowercase.md | 2 ++ blog_posts/python-named-tuples.md | 2 ++ blog_posts/python-slice-assignment.md | 2 ++ blog_posts/python-slice-notation.md | 2 ++ blog_posts/python-sortedlist-vs-list-sort.md | 2 ++ blog_posts/python-swap-variables.md | 2 ++ blog_posts/react-conditional-classname.md | 2 ++ blog_posts/react-proptypes-objectof-vs-shape.md | 2 ++ blog_posts/react-redux-readable-reducers.md | 2 ++ blog_posts/react-rendering-basics.md | 2 ++ blog_posts/react-rendering-optimization.md | 2 ++ blog_posts/react-rendering-state.md | 2 ++ blog_posts/react-selected-option.md | 2 ++ blog_posts/react-use-interval-explained.md | 2 ++ blog_posts/react-use-state-with-label.md | 2 ++ blog_posts/regexp-cheatsheet.md | 2 ++ blog_posts/responsive-favicon-dark-mode.md | 2 ++ blog_posts/setup-python3-pip3-as-default.md | 2 ++ blog_posts/terminal-shortcuts-cheatsheet.md | 2 ++ blog_posts/testing-async-react-components.md | 2 ++ blog_posts/testing-redux-connected-components.md | 2 ++ blog_posts/testing-stateful-ui-components.md | 2 ++ blog_posts/typographic-scale-basics.md | 2 ++ blog_posts/zooming-accessibility-tips.md | 2 ++ 123 files changed, 246 insertions(+) diff --git a/blog_posts/10-vs-code-extensions-for-js-developers.md b/blog_posts/10-vs-code-extensions-for-js-developers.md index 275125da8..37c4f9ac7 100644 --- a/blog_posts/10-vs-code-extensions-for-js-developers.md +++ b/blog_posts/10-vs-code-extensions-for-js-developers.md @@ -5,6 +5,8 @@ tags: devtools,vscode authors: chalarangelo cover: blog_images/computer-screens.jpg excerpt: VS Code is steadily gaining popularity among developers. Here are 10 essential extensions for JavaScript developers that aim to increase your productivity. +firstSeen: 2019-12-23T10:41:56+02:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- Developers will most likely argue for the rest of eternity about the most productive code editor and the best extensions. Here are my personal extension preferences for VS Code as a JavaScript developer: diff --git a/blog_posts/25-css-gradients.md b/blog_posts/25-css-gradients.md index c630d8edd..617fc9b0e 100644 --- a/blog_posts/25-css-gradients.md +++ b/blog_posts/25-css-gradients.md @@ -5,6 +5,8 @@ tags: css,visual authors: chalarangelo cover: blog_images/colors-mural.jpg excerpt: We hand picked 25 of our favorite CSS gradients from uiGradients for your next design. Get them now! +firstSeen: 2021-01-08T22:30:37+02:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- [uiGradients](https://uigradients.com/) has an amazing collection of ready-to-use CSS gradients for pretty much anything. I highly recommend checking out the full collection. Meantime, here are our top picks in case you're looking for some color: diff --git a/blog_posts/4-javascript-array-methods.md b/blog_posts/4-javascript-array-methods.md index ad3ba97b4..35239c4c3 100644 --- a/blog_posts/4-javascript-array-methods.md +++ b/blog_posts/4-javascript-array-methods.md @@ -5,6 +5,8 @@ tags: javascript,array,cheatsheet authors: chalarangelo cover: blog_images/arrays.jpg excerpt: JavaScript arrays have a very robust API offering a plethora of amazing tools. Learn the 4 must-know JavaScript array methods in this quick guide. +firstSeen: 2020-08-03T21:37:03+03:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- JavaScript arrays have a very robust API offering a plethora of amazing tools. Here are our top 4 JavaScript array methods every developer should know: diff --git a/blog_posts/4-seo-tips-for-developers.md b/blog_posts/4-seo-tips-for-developers.md index 4ce2d4c1e..8a9c0b7c3 100644 --- a/blog_posts/4-seo-tips-for-developers.md +++ b/blog_posts/4-seo-tips-for-developers.md @@ -5,6 +5,8 @@ tags: seo,webdev authors: chalarangelo cover: blog_images/sunrise-over-city.jpg excerpt: As time goes by, SEO is becoming increasingly relevant, but most web developers seem to have little experience with it. Here are 4 actionable SEO tips you can implement today. +firstSeen: 2020-01-17T14:51:15+02:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- SEO is becoming increasingly relevant as the internet keeps growing. While most web developers usually have little experience with SEO, it is not particularly difficult to handle some of the basics. Here are my top SEO tips for web developers: diff --git a/blog_posts/5-tips-for-better-pull-requests.md b/blog_posts/5-tips-for-better-pull-requests.md index 373b98d55..73e00946e 100644 --- a/blog_posts/5-tips-for-better-pull-requests.md +++ b/blog_posts/5-tips-for-better-pull-requests.md @@ -6,6 +6,8 @@ authors: chalarangelo cover: blog_images/keyboard-tea.jpg excerpt: Writing good code is only part of the job. Here are 5 tips to improve your pull requests and help people review them. unlisted: true +firstSeen: 2020-06-24T12:44:03+03:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- Writing good code is only part of the job. Here are 5 tips to improve your pull requests and help people review them: diff --git a/blog_posts/6-javascript-regexp-tricks.md b/blog_posts/6-javascript-regexp-tricks.md index 0207e6fa9..a96b587be 100644 --- a/blog_posts/6-javascript-regexp-tricks.md +++ b/blog_posts/6-javascript-regexp-tricks.md @@ -5,6 +5,8 @@ tags: javascript,string,regexp authors: chalarangelo cover: blog_images/taking-photos.jpg excerpt: Regular expressions, while very powerful, are notoriously hard to master. Start using them in your JavaScript code by understanding these 6 features. +firstSeen: 2020-04-15T14:24:50+03:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- Regular expressions, while very powerful, are notoriously hard to master. Here are 6 useful features that can help you start using them in your JavaScript projects: diff --git a/blog_posts/6-tips-for-your-next-remote-onboarding.md b/blog_posts/6-tips-for-your-next-remote-onboarding.md index 38f7c770e..2313a35c8 100644 --- a/blog_posts/6-tips-for-your-next-remote-onboarding.md +++ b/blog_posts/6-tips-for-your-next-remote-onboarding.md @@ -6,6 +6,8 @@ authors: fejes713 cover: blog_images/golden-gate-bridge.jpg excerpt: Many developers find onboarding experience worrisome. Here are 6 helpful tips to make your onboarding experience a pleasant one. unlisted: true +firstSeen: 2020-05-03T16:00:59+03:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- Many developers find onboarding experience worrisome. Here are 6 helpful tips to make your onboarding experience a pleasant one: diff --git a/blog_posts/7-chrome-extensions-for-web-developers.md b/blog_posts/7-chrome-extensions-for-web-developers.md index e339cbe20..961ff4bae 100644 --- a/blog_posts/7-chrome-extensions-for-web-developers.md +++ b/blog_posts/7-chrome-extensions-for-web-developers.md @@ -5,6 +5,8 @@ tags: devtools,webdev authors: chalarangelo cover: blog_images/computer-screens.jpg excerpt: Google Chrome's developer tools are nothing short of amazing. Here are 7 must-have extensions you can add to increase your productivity even further. +firstSeen: 2020-03-18T12:37:31+02:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- Google Chrome's developer tools are nothing short of amazing, but there are a few missing tools that can increase your productivity even further. Here are my personal favorite extensions that I use everyday: diff --git a/blog_posts/8-tips-for-accessible-websites.md b/blog_posts/8-tips-for-accessible-websites.md index e9054550c..fb15f5b48 100644 --- a/blog_posts/8-tips-for-accessible-websites.md +++ b/blog_posts/8-tips-for-accessible-websites.md @@ -5,6 +5,8 @@ tags: javascript,accessibility,webdev authors: chalarangelo cover: blog_images/accessibility.jpg excerpt: Accessibility (a11y) can improve your website and attract new users. Learn how to get started with these 8 quick tips. +firstSeen: 2020-05-20T14:10:13+03:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- 1. Use semantic HTML diff --git a/blog_posts/8-tips-for-remote-work.md b/blog_posts/8-tips-for-remote-work.md index ce22d6c4d..3cbb2c035 100644 --- a/blog_posts/8-tips-for-remote-work.md +++ b/blog_posts/8-tips-for-remote-work.md @@ -6,6 +6,8 @@ authors: chalarangelo cover: blog_images/kettle-laptop.jpg excerpt: Working from home seems like a great alternative to going to the office, but there are challenges that come with it that you need to overcome... unlisted: true +firstSeen: 2020-03-12T22:14:41+02:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- Working from home (also known as remote work) seems like a great alternative to going to the office every morning, but it comes with its own set of challenges that you need to overcome in order to stay healthy and productive. Here are my tips for achieving just that: diff --git a/blog_posts/async-javascript-cheatsheet.md b/blog_posts/async-javascript-cheatsheet.md index c41df8a20..514a8c39f 100644 --- a/blog_posts/async-javascript-cheatsheet.md +++ b/blog_posts/async-javascript-cheatsheet.md @@ -5,6 +5,8 @@ tags: javascript,function,promise authors: chalarangelo cover: blog_images/green-plant.jpg excerpt: Learn everything you need to know about promises and asynchronous JavaScript with this handy cheatsheet. +firstSeen: 2020-08-18T23:05:52+03:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- ### Promise basics diff --git a/blog_posts/benefits-of-writing.md b/blog_posts/benefits-of-writing.md index 7596622ab..108ee2f4c 100644 --- a/blog_posts/benefits-of-writing.md +++ b/blog_posts/benefits-of-writing.md @@ -5,6 +5,8 @@ tags: career,webdev,programming,jobs authors: chalarangelo cover: blog_images/laptop-view.jpg excerpt: Writing about a topic can often sound boring or worthless. But there are significant benefits to doing it from time to time. +firstSeen: 2021-04-12T12:00:00+03:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- I was recently tasked with writing a design document at work. What first seemed like a tiresome chore I had to endure turned out to be both enlightening and beneficial both to me and my team. This isn't just a case of making the best of a bad situation, but rather a case of rediscovering the reason behind why writing down your thoughts isn't an excerise in futility. Instead of boring you with a long-winded story about the task, I'll just present the takeaways and hopefully do some storytelling in the process. So why should you write then? diff --git a/blog_posts/breaking-react.md b/blog_posts/breaking-react.md index 7532d6ac7..f53ac3e2e 100644 --- a/blog_posts/breaking-react.md +++ b/blog_posts/breaking-react.md @@ -5,6 +5,8 @@ tags: react,debugging authors: chalarangelo cover: blog_images/broken-screen.jpg excerpt: As powerful as React is, it is also quite fragile at places. Did you know that just a few lines are more than enough to break your entire React application? +firstSeen: 2020-01-30T12:35:19+02:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- I am by no means an expert React engineer, but I have a couple years of experience under my belt. While React is an extremely powerful library for building user interfaces, it is also quite fragile at places. A very common bug I have encountered is caused by direct DOM manipulation in combination with React. This is not exactly an anti-pattern, but under the right circumstances it can break your entire React application and might be hard to debug. diff --git a/blog_posts/code-anatomy-chaining-reduce-for-loop.md b/blog_posts/code-anatomy-chaining-reduce-for-loop.md index 625702a15..94a53c8ef 100644 --- a/blog_posts/code-anatomy-chaining-reduce-for-loop.md +++ b/blog_posts/code-anatomy-chaining-reduce-for-loop.md @@ -5,6 +5,8 @@ tags: javascript,array,object,iterator authors: chalarangelo cover: blog_images/case-study.jpg excerpt: There are many ways to iterate and transform array data in JavaScript. Learn how each one works and where you should use them. +firstSeen: 2020-05-19T14:27:18+03:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- ### For loops diff --git a/blog_posts/code-anatomy-optimizing-recursion.md b/blog_posts/code-anatomy-optimizing-recursion.md index f25477972..ef192358b 100644 --- a/blog_posts/code-anatomy-optimizing-recursion.md +++ b/blog_posts/code-anatomy-optimizing-recursion.md @@ -5,6 +5,8 @@ tags: javascript,recursion,performance authors: chalarangelo cover: blog_images/case-study.jpg excerpt: Recursive code has a tendency of being inefficient and can leave a lot of space for optimization. Learn a couple of tricks we use to speed up our recursive functions. +firstSeen: 2020-05-12T21:57:09+03:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- ### Recursive functions diff --git a/blog_posts/code-anatomy-performant-python.md b/blog_posts/code-anatomy-performant-python.md index 4eb0d7705..f7f52a6e2 100644 --- a/blog_posts/code-anatomy-performant-python.md +++ b/blog_posts/code-anatomy-performant-python.md @@ -5,6 +5,8 @@ tags: python,list,performance authors: maciv,chalarangelo cover: blog_images/walking-on-top.jpg excerpt: Writing short, efficient Python code is not always straightforward. Read how we optimize our list snippets to increase performance using a couple of simple tricks. +firstSeen: 2020-03-15T12:50:05+02:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- Writing short and efficient Python code is not always easy or straightforward. However, it's often that we see a piece of code and we don't realize the thought process behind the way it was written. We will be taking a look at the [difference](/python/s/difference) snippet, which returns the difference between two iterables, in order to understand its structure. diff --git a/blog_posts/console-log-cheatsheet.md b/blog_posts/console-log-cheatsheet.md index 6a52f97fa..7dfee3039 100644 --- a/blog_posts/console-log-cheatsheet.md +++ b/blog_posts/console-log-cheatsheet.md @@ -5,6 +5,8 @@ tags: javascript,browser,cheatsheet authors: chalarangelo cover: blog_images/terminal.jpg excerpt: Level up your JavaScript logging with these `console.log()` tips and tricks. +firstSeen: 2021-02-25T11:00:00+02:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- Everyone uses the JavaScript console for logging or debugging every once in a while. But there is a lot more to the [console](https://developer.mozilla.org/en-US/docs/Web/API/Console) object than `console.log()`. diff --git a/blog_posts/cookies-local-storage-session.md b/blog_posts/cookies-local-storage-session.md index 601432207..a5fac6ced 100644 --- a/blog_posts/cookies-local-storage-session.md +++ b/blog_posts/cookies-local-storage-session.md @@ -5,6 +5,8 @@ tags: javascript,browser,webdev authors: chalarangelo cover: blog_images/three-vases.jpg excerpt: Learn the difference between cookies, local storage and session storage and start using the correct option for your needs. +firstSeen: 2020-08-18T13:02:24+03:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- ### Cookies diff --git a/blog_posts/copy-text-to-clipboard-with-javascript.md b/blog_posts/copy-text-to-clipboard-with-javascript.md index 5787a6210..ae22d791a 100644 --- a/blog_posts/copy-text-to-clipboard-with-javascript.md +++ b/blog_posts/copy-text-to-clipboard-with-javascript.md @@ -5,6 +5,8 @@ tags: javascript,browser authors: chalarangelo cover: blog_images/typing.jpg excerpt: Learn how to programmatically copy text to clipboard with a few lines of JavaScript and level up your web development skills. +firstSeen: 2020-01-20T11:41:23+02:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- ### Core functionality diff --git a/blog_posts/css-centering.md b/blog_posts/css-centering.md index 127b8b26c..a495ae35e 100644 --- a/blog_posts/css-centering.md +++ b/blog_posts/css-centering.md @@ -5,6 +5,8 @@ tags: css,layout authors: chalarangelo cover: blog_images/mountain-lake.jpg excerpt: Centering content with CSS might often feel tricky. Here are 4 easy tricks you can use in your code today. +firstSeen: 2021-02-22T11:00:00+02:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- ### Flexbox diff --git a/blog_posts/css-easing-variables.md b/blog_posts/css-easing-variables.md index 17647d3c4..7abeeff5b 100644 --- a/blog_posts/css-easing-variables.md +++ b/blog_posts/css-easing-variables.md @@ -5,6 +5,8 @@ tags: css,animation authors: chalarangelo cover: blog_images/curve.jpg excerpt: Learn how to use the `cubic-bezier()` class of easing functions and create beautiful animations that stand out. +firstSeen: 2020-12-30T16:13:58+02:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- Most web developers use the built-in `ease`, `ease-in`, `ease-out` or `ease-in-out` functions for most use-cases of `transition-timing-function` in their designs. While these are perfectly fine for everyday use, there's a far more powerful, yet intimidating option available, the [`bezier-curve()`](https://developer.mozilla.org/en-US/docs/Web/CSS/transition-timing-function) function. diff --git a/blog_posts/css-pseudo-classes.md b/blog_posts/css-pseudo-classes.md index 9d7ea0fcc..3c65bf774 100644 --- a/blog_posts/css-pseudo-classes.md +++ b/blog_posts/css-pseudo-classes.md @@ -5,6 +5,8 @@ tags: css,webdev authors: chalarangelo cover: blog_images/orange-flower.jpg excerpt: Learn how to use CSS pseudo-classes to style an element based on changes to its state. +firstSeen: 2020-08-18T19:56:12+03:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- CSS pseudo-classes provide a way to style elements, based on changes to their state. For example, `:hover` can be used to apply additional styles to an element when the user's pointer hovers over it. diff --git a/blog_posts/css-units-cheatsheet.md b/blog_posts/css-units-cheatsheet.md index a2afe1135..cf2e5f3ee 100644 --- a/blog_posts/css-units-cheatsheet.md +++ b/blog_posts/css-units-cheatsheet.md @@ -5,6 +5,8 @@ tags: css,layout,cheatsheet authors: chalarangelo cover: blog_images/measuring.jpg excerpt: Learn everything you need to know about CSS units with this handy cheatsheet. +firstSeen: 2021-01-25T11:00:00+02:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- - `px`: Absolute pixel value diff --git a/blog_posts/css-variables.md b/blog_posts/css-variables.md index 3e04e1c59..9debeb473 100644 --- a/blog_posts/css-variables.md +++ b/blog_posts/css-variables.md @@ -5,6 +5,8 @@ tags: css,visual,layout authors: chalarangelo cover: blog_images/css-variables.jpg excerpt: Learn how CSS custom properties (CSS variables) work and what you can use them for in your code and designs. +firstSeen: 2020-03-09T19:39:30+02:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- CSS variables (officially called CSS custom properties) behave much like variables in other languages, allowing you to define named variables that contain specific values to be reused within the CSS document. They are defined using the custom property notation, which always start with two dashes (e.g. `--my-color: black;`) and are accessed using the `var()` function (e.g. `color: var(--my-color);`). Custom properties are exceptionally useful for sharing styles between different elements and components (e.g. vertical rhythm, typography variables, color palettes etc.). diff --git a/blog_posts/custom-file-download-names.md b/blog_posts/custom-file-download-names.md index 813c946fc..321415c3b 100644 --- a/blog_posts/custom-file-download-names.md +++ b/blog_posts/custom-file-download-names.md @@ -5,6 +5,8 @@ tags: webdev,html,browser authors: chalarangelo cover: blog_images/hard-disk.jpg excerpt: Learn what HTML5 attribute you can use to customize the names of your downloadable files with this quick tip. +firstSeen: 2021-01-11T11:00:00+02:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- HTML5 introduced a variety of convenient features that many of us use every day. As downloadable links aren't something I work with very often, I recently found out that you can use the `download` attribute on an `` element for much more than just making it trigger a download. In fact, you can pass it a string value that will act as the name of the downloadable file, effectively allowing you to customize its name: diff --git a/blog_posts/detect-caps-lock-is-on.md b/blog_posts/detect-caps-lock-is-on.md index a6b3cc859..d2f26f8fd 100644 --- a/blog_posts/detect-caps-lock-is-on.md +++ b/blog_posts/detect-caps-lock-is-on.md @@ -5,6 +5,8 @@ tags: javascript,browser,event authors: chalarangelo cover: blog_images/keyboard.jpg excerpt: If you need to check if Caps Lock is on when the user is typing in the browser, JavaScript's got you covered. +firstSeen: 2021-02-18T11:00:00+02:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- Oftentimes, especially when creating password inputs, you need to check if the Caps Lock key is on and inform the user. You can do that using the [`KeyboardEvent.getModifierState()`](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/getModifierState) method with a value of `'CapsLock'`. This means that you have to listen for a keyboard event on an element in order to check the state of the Caps Lock key: diff --git a/blog_posts/eslint-refactor-for-in.md b/blog_posts/eslint-refactor-for-in.md index 9c4cdff4d..1f50aab60 100644 --- a/blog_posts/eslint-refactor-for-in.md +++ b/blog_posts/eslint-refactor-for-in.md @@ -5,6 +5,8 @@ tags: javascript,array,iterator,eslint authors: chalarangelo cover: blog_images/typing.jpg excerpt: ESLint is a very powerful tool that can save you a lot of headaches, but sometimes it gets in the way. Learn how to refactor code to get rid of a common warning. +firstSeen: 2020-05-19T02:32:10+03:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- ESLint is one of my tools of choice, but oftentimes it gets in the way of work, due to the way it prefers me to do things. One of the warnings I have seen more times than I care to admit is the following: diff --git a/blog_posts/flexbox-cheatsheet.md b/blog_posts/flexbox-cheatsheet.md index bef45c7a7..34cb3e917 100644 --- a/blog_posts/flexbox-cheatsheet.md +++ b/blog_posts/flexbox-cheatsheet.md @@ -5,6 +5,8 @@ tags: css,layout,flexbox,cheatsheet authors: chalarangelo cover: blog_images/frames.jpg excerpt: Flexbox allows you to create fluid layouts easily. If you find yourself constantly looking up the syntax or how it work, this handy cheatsheet is all you need. +firstSeen: 2020-05-02T00:21:49+03:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- ### Container diff --git a/blog_posts/git-aliases.md b/blog_posts/git-aliases.md index c44f760f1..236c2c855 100644 --- a/blog_posts/git-aliases.md +++ b/blog_posts/git-aliases.md @@ -5,6 +5,8 @@ tags: git,configuration,cheatsheet authors: chalarangelo cover: blog_images/organizer.jpg excerpt: Increase your productivity by creating aliases for many common git operations. +firstSeen: 2021-04-29T12:00:00+03:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- ### Creating aliases diff --git a/blog_posts/git-commit-different-date.md b/blog_posts/git-commit-different-date.md index 2209c9d8b..1d81b4f06 100644 --- a/blog_posts/git-commit-different-date.md +++ b/blog_posts/git-commit-different-date.md @@ -5,6 +5,8 @@ tags: git,commit authors: chalarangelo cover: blog_images/ice.jpg excerpt: Ever needed to create a git commit with a different date? Here's a quick and easy way to do it. +firstSeen: 2021-04-22T12:00:00+03:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- Sometimes, you might run into a situation where you need to create a commit with a different date than the current one. Luckily, you can handle this using `GIT_AUTHOR_DATE` and `GIT_COMMITTER_DATE`: diff --git a/blog_posts/github-co-authors.md b/blog_posts/github-co-authors.md index 36f66bc90..e3a38347a 100644 --- a/blog_posts/github-co-authors.md +++ b/blog_posts/github-co-authors.md @@ -5,6 +5,8 @@ tags: git,github,programming,webdev authors: chalarangelo cover: blog_images/book-chair.jpg excerpt: Learn how to add multiple authors to a git commit with this quick and easy tip. +firstSeen: 2020-08-18T12:14:24+03:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- You can add multiple authors to a git commit, by adding one or more `Co-authored-by` trailers to the commit's message: diff --git a/blog_posts/http-status-codes-cheatsheet.md b/blog_posts/http-status-codes-cheatsheet.md index b478ce584..5a13e4023 100644 --- a/blog_posts/http-status-codes-cheatsheet.md +++ b/blog_posts/http-status-codes-cheatsheet.md @@ -5,6 +5,8 @@ tags: webdev,http authors: chalarangelo cover: blog_images/lake-runner.jpg excerpt: Familiarize yourself with the most common HTTP status codes with this handy cheatsheet. +firstSeen: 2021-05-20T12:00:00+03:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- ### 1xx - Informational diff --git a/blog_posts/javascript-array-comparison.md b/blog_posts/javascript-array-comparison.md index 618a44629..c9a8717c2 100644 --- a/blog_posts/javascript-array-comparison.md +++ b/blog_posts/javascript-array-comparison.md @@ -5,6 +5,8 @@ tags: javascript,array,comparison authors: chalarangelo cover: blog_images/coconuts.jpg excerpt: Learn how you can compare two arrays in JavaScript using various different techniques. +firstSeen: 2020-08-07T14:23:14+03:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- ### Equality comparison diff --git a/blog_posts/javascript-arrow-function-event-listeners.md b/blog_posts/javascript-arrow-function-event-listeners.md index 2d744898a..7d44b79cf 100644 --- a/blog_posts/javascript-arrow-function-event-listeners.md +++ b/blog_posts/javascript-arrow-function-event-listeners.md @@ -5,6 +5,8 @@ tags: javascript,browser,event,function authors: chalarangelo cover: blog_images/arrow-functions.jpg excerpt: Learn the differences between JavaScript ES6 arrow functions and regular functions and how they affect event listener callbacks. +firstSeen: 2020-08-04T15:29:43+03:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- ### Arrow functions diff --git a/blog_posts/javascript-arrow-functions.md b/blog_posts/javascript-arrow-functions.md index 18b7cfdac..5024f1979 100644 --- a/blog_posts/javascript-arrow-functions.md +++ b/blog_posts/javascript-arrow-functions.md @@ -5,6 +5,8 @@ tags: javascript,function authors: chalarangelo cover: blog_images/arrow-functions.jpg excerpt: JavaScript arrow functions are a very useful tool to learn and master. Here's a complete introduction to everything you need to know. +firstSeen: 2021-04-08T12:00:00+03:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- ### Syntax diff --git a/blog_posts/javascript-async-array-loops.md b/blog_posts/javascript-async-array-loops.md index 2e82bfd18..944790512 100644 --- a/blog_posts/javascript-async-array-loops.md +++ b/blog_posts/javascript-async-array-loops.md @@ -5,6 +5,8 @@ tags: javascript,array,function,promise authors: chalarangelo cover: blog_images/sunflowers.jpg excerpt: Asynchronously looping over arrays in JavaScript comes with a few caveats you should watch out for. +firstSeen: 2021-05-17T12:00:00+03:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- Asynchronous operations seem to trip up a lot of developers. This is especially true when combined with looping over arrays, as there are some caveats that come with each option available. diff --git a/blog_posts/javascript-await-timeout.md b/blog_posts/javascript-await-timeout.md index a86513f78..83c8ff837 100644 --- a/blog_posts/javascript-await-timeout.md +++ b/blog_posts/javascript-await-timeout.md @@ -5,6 +5,8 @@ tags: javascript,promise,timeout,class authors: chalarangelo cover: blog_images/walking.jpg excerpt: Oftentimes you might need to add a timeout to a promise in JavaScript. Learn how to do this and more in this short guide. +firstSeen: 2021-05-13T12:00:00+03:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- Many times in the past I've found myself needing to add a timeout to a promise in JavaScript. `setTimeout()` is not exactly a perfect tool for the job, but it's easy enough to wrap it into a promise: diff --git a/blog_posts/javascript-boolean-function.md b/blog_posts/javascript-boolean-function.md index f818259f6..66b527887 100644 --- a/blog_posts/javascript-boolean-function.md +++ b/blog_posts/javascript-boolean-function.md @@ -5,6 +5,8 @@ tags: javascript,function,type authors: chalarangelo cover: blog_images/rocky-lake.jpg excerpt: JavaScript's built-in Boolean function can be very useful for truth-checking data among other things. Learn how to use it and level up your code today. +firstSeen: 2020-09-18T16:28:30+03:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- JavaScript's built-in [`Boolean`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean) is one of those things I find myself suggesting in code reviews quite often as of late, so I thought I could share some tips about it with the world. diff --git a/blog_posts/javascript-closures.md b/blog_posts/javascript-closures.md index ae9ee1f52..a8ee47292 100644 --- a/blog_posts/javascript-closures.md +++ b/blog_posts/javascript-closures.md @@ -5,6 +5,8 @@ tags: javascript,function,closure authors: chalarangelo cover: blog_images/cherry-trees.jpg excerpt: Learn and understand closures, a core concept in JavaScript programming, and level up your code. +firstSeen: 2020-08-04T12:40:08+03:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- Closures are a JavaScript concept that comes up quite a lot, especially during interviews. While they sound confusing, they are not all that complicated and you have probably already used them in your code regardless of your expertise level. Let's start with what a closure is: diff --git a/blog_posts/javascript-copy-array.md b/blog_posts/javascript-copy-array.md index 3755fa911..24fc3fddc 100644 --- a/blog_posts/javascript-copy-array.md +++ b/blog_posts/javascript-copy-array.md @@ -5,6 +5,8 @@ tags: javascript,array authors: chalarangelo cover: blog_images/colorful-plastic.jpg excerpt: Pick up a few new tricks which you can use to clone arrays in JavaScript. +firstSeen: 2021-03-15T11:00:00+02:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- JavaScript provides quite a few ways to clone an array, most of which are pretty similar in terms of performance and results. Here's a quick rundown of some of the available options. diff --git a/blog_posts/javascript-deep-freeze-object.md b/blog_posts/javascript-deep-freeze-object.md index 76cf1d0de..aba4f9673 100644 --- a/blog_posts/javascript-deep-freeze-object.md +++ b/blog_posts/javascript-deep-freeze-object.md @@ -5,6 +5,8 @@ tags: javascript,object authors: chalarangelo cover: blog_images/frozen-globe.jpg excerpt: Learn how mutability works in JavaScript, its applications to objects and how you can properly freeze them to make them constant. +firstSeen: 2020-03-17T16:15:30+02:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- Objects in JavaScript are mutable, regardless if you define them as `const` variables or not. In fact, using `const` when defining an object only prevents the variable from being reassigned. However, you can reassign the properties of a `const` object or array, like this: diff --git a/blog_posts/javascript-destructuring-assignment.md b/blog_posts/javascript-destructuring-assignment.md index 036010fa9..741480546 100644 --- a/blog_posts/javascript-destructuring-assignment.md +++ b/blog_posts/javascript-destructuring-assignment.md @@ -5,6 +5,8 @@ tags: javascript,array,object authors: chalarangelo cover: blog_images/building-blocks.jpg excerpt: Learn the basics of the destructuring assignment syntax in JavaScript ES6 and improve your code with this easy guide. +firstSeen: 2021-02-01T11:00:00+02:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- The destructuring assignment syntax, first introduced in JavaScript ES6, allows the unpacking of values from arrays and objects into distinct variables. While it might seem intimidating at first, it's actually quite easy to learn and use. Let's break it down into easier to understand cases. diff --git a/blog_posts/javascript-empty-array.md b/blog_posts/javascript-empty-array.md index 20838105e..131f21b52 100644 --- a/blog_posts/javascript-empty-array.md +++ b/blog_posts/javascript-empty-array.md @@ -5,6 +5,8 @@ tags: javascript,array authors: chalarangelo cover: blog_images/coconuts.jpg excerpt: You can use a lot of different techniques to empty an array in JavaScript. See which ones best suits your needs with this quick guide. +firstSeen: 2021-03-08T11:00:00+02:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- When working with JavaScript arrays, a pretty common question is how does one empty an array and remove all its elements. As it turns out, there are a few ways you can go about this, each one with its pros and cons. diff --git a/blog_posts/javascript-encodeuri-encodeuricomponent.md b/blog_posts/javascript-encodeuri-encodeuricomponent.md index 63f296979..908817e16 100644 --- a/blog_posts/javascript-encodeuri-encodeuricomponent.md +++ b/blog_posts/javascript-encodeuri-encodeuricomponent.md @@ -5,6 +5,8 @@ tags: javascript,browser authors: chalarangelo cover: blog_images/laptop-view.jpg excerpt: JavaScript provides two methods for encoding characters to URL-safe strings. Do you know when to use each one? +firstSeen: 2021-01-07T10:41:38+02:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- ### encodeURIComponent() diff --git a/blog_posts/javascript-enum.md b/blog_posts/javascript-enum.md index 38f293d8f..a21407ed7 100644 --- a/blog_posts/javascript-enum.md +++ b/blog_posts/javascript-enum.md @@ -5,6 +5,8 @@ tags: javascript,object,class,symbol,generator authors: chalarangelo cover: blog_images/book-chair.jpg excerpt: Enums are part of TypeScript, but what about defininf enums in plain old JavaScript? Here are a few way you can do that. +firstSeen: 2021-05-24T12:00:00+03:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- TypeScript's enums are a very convenient feature present in many other languages. JavaScript, however, does not have a similar concept at this time. But what JavaScript lacks in syntactic sugar it makes up for in terms of flexibility. diff --git a/blog_posts/javascript-equality.md b/blog_posts/javascript-equality.md index 5f555c3ba..bc9fa00a8 100644 --- a/blog_posts/javascript-equality.md +++ b/blog_posts/javascript-equality.md @@ -5,6 +5,8 @@ tags: javascript,type,comparison authors: chalarangelo cover: blog_images/beach-pineapple.jpg excerpt: Learn all you need to know about the differences between JavaScript's double equals and triple equals operators. +firstSeen: 2020-08-06T19:52:30+03:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- JavaScript provides two equality operators used for comparisons: diff --git a/blog_posts/javascript-event-bubbling-capturing-delegation.md b/blog_posts/javascript-event-bubbling-capturing-delegation.md index 67b71fa7c..c2dc0df2b 100644 --- a/blog_posts/javascript-event-bubbling-capturing-delegation.md +++ b/blog_posts/javascript-event-bubbling-capturing-delegation.md @@ -5,6 +5,8 @@ tags: javascript,browser,event authors: chalarangelo cover: blog_images/fishermen.jpg excerpt: Understand how events work in JavaScript and learn when to use event bubbling, event capturing and event delegation with this short guide. +firstSeen: 2020-08-10T15:00:48+03:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- ### Event bubbling diff --git a/blog_posts/javascript-for-in-for-of-foreach.md b/blog_posts/javascript-for-in-for-of-foreach.md index 5f9b14cf6..8c10b6c8b 100644 --- a/blog_posts/javascript-for-in-for-of-foreach.md +++ b/blog_posts/javascript-for-in-for-of-foreach.md @@ -5,6 +5,8 @@ tags: javascript,array,object,iterator authors: chalarangelo cover: blog_images/lake-loop.jpg excerpt: Learn the differences between the three most commonly used iteration methods offered by JavaScript, which often confuse beginners and veterans alike. +firstSeen: 2020-01-20T10:12:31+02:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- `for...in` is used to iterate over all enumerable properties of an object, including inherited enumerable properties. diff --git a/blog_posts/javascript-for-loop-early-break.md b/blog_posts/javascript-for-loop-early-break.md index 33eca432c..a4fe0d78a 100644 --- a/blog_posts/javascript-for-loop-early-break.md +++ b/blog_posts/javascript-for-loop-early-break.md @@ -5,6 +5,8 @@ tags: javascript,array,loop authors: chalarangelo cover: blog_images/armchair.jpg excerpt: JavaScript provides a handful of ways to iterate over data. While array methods are usually preferred, there are cases where a `for` loop is actually the best option. +firstSeen: 2021-05-27T12:00:00+03:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- The usefulness of the humble `for` loop in modern JavaScript is rarely talked about. Apart from it being particularly useful in [asynchronous operation scenarios](/blog/s/javascript-async-array-loops), it can also make your code a lot more performant shall you need to break out of a loop early. Consider the following example: diff --git a/blog_posts/javascript-function-call-apply-bind.md b/blog_posts/javascript-function-call-apply-bind.md index c237eb0cd..96dced4ca 100644 --- a/blog_posts/javascript-function-call-apply-bind.md +++ b/blog_posts/javascript-function-call-apply-bind.md @@ -5,6 +5,8 @@ tags: javascript,function authors: chalarangelo cover: blog_images/canoe.jpg excerpt: Learn everything you need to know about JavaScript's `Function.prototype.call()`, `Function.prototype.apply()` and `Function.prototype.bind()` with this short guide. +firstSeen: 2020-11-06T13:37:10+02:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- ### Function.prototype.call() diff --git a/blog_posts/javascript-higher-order-functions.md b/blog_posts/javascript-higher-order-functions.md index 357ff1564..551d05134 100644 --- a/blog_posts/javascript-higher-order-functions.md +++ b/blog_posts/javascript-higher-order-functions.md @@ -5,6 +5,8 @@ tags: javascript,function authors: chalarangelo cover: blog_images/rock-climbing.jpg excerpt: Learn everything you need to know about higher-order functions with this short guide and level up your programming skills. +firstSeen: 2020-09-24T12:54:08+03:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- Higher-order functions are functions that operate on other functions, either by taking them as arguments or by returning them as their results. This allows us to create an abstraction layer over actions, not just values. diff --git a/blog_posts/javascript-iife.md b/blog_posts/javascript-iife.md index d4c954068..da670ac11 100644 --- a/blog_posts/javascript-iife.md +++ b/blog_posts/javascript-iife.md @@ -5,6 +5,8 @@ tags: javascript,function authors: chalarangelo cover: blog_images/tropical-waterfall.jpg excerpt: An Immediately Invoked Function Expression (IIFE) is a JavaScript trick that trips up many developers. Here's what you need to know. +firstSeen: 2021-06-14T12:00:00+03:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- An **Immediately Invoked Function Expression** (IIFE for short) is a JavaScript function that is immediately invoked as soon as it's evaluated by the JavaScript runtime. Here's what it looks like alongside a roughly equivalent piece of code: diff --git a/blog_posts/javascript-iterable-to-array.md b/blog_posts/javascript-iterable-to-array.md index f95582dcd..4a5f17277 100644 --- a/blog_posts/javascript-iterable-to-array.md +++ b/blog_posts/javascript-iterable-to-array.md @@ -5,6 +5,8 @@ tags: javascript,object,array,string authors: chalarangelo cover: blog_images/waves.jpg excerpt: Learn how to use the JavaScript ES6 spread syntax to converting iterables to arrays and level up your code today. +firstSeen: 2020-08-04T14:18:09+03:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- JavaScript ES6 introduced, among many other things, the [spread operator (`...`)](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_syntax), which allows an iterable to be expanded in places where zero or more arguments or elements are expected. diff --git a/blog_posts/javascript-iterators.md b/blog_posts/javascript-iterators.md index 986d73b2b..4ea5cbf0b 100644 --- a/blog_posts/javascript-iterators.md +++ b/blog_posts/javascript-iterators.md @@ -5,6 +5,8 @@ tags: javascript,array,object,iterator authors: chalarangelo cover: blog_images/balloons.jpg excerpt: Learn how the new JavaScript ES6 Iterators work and how you can use them to level up your programming projects by understanding these short code examples. +firstSeen: 2020-02-16T13:09:20+02:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- JavaScript iterators were introduced in ES6 and they are used to loop over a sequence of values, usually some sort of collection. By definition, an iterator must implement a `next()` function, that returns an object in the form of `{ value, done }` where `value` is the next value in the iteration sequence and `done` is a boolean determining if the sequence has already been consumed. diff --git a/blog_posts/javascript-listen-once.md b/blog_posts/javascript-listen-once.md index e9b61cb07..5d38af249 100644 --- a/blog_posts/javascript-listen-once.md +++ b/blog_posts/javascript-listen-once.md @@ -5,6 +5,8 @@ tags: javascript,browser,event authors: maciv cover: blog_images/dog-waiting.jpg excerpt: Learn how to attach an event handler to events that is executed at most once in this JavaScript blog post. +firstSeen: 2020-08-12T11:21:48+03:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- ### jQuery diff --git a/blog_posts/javascript-make-iterable.md b/blog_posts/javascript-make-iterable.md index 9cc8e4194..a57962193 100644 --- a/blog_posts/javascript-make-iterable.md +++ b/blog_posts/javascript-make-iterable.md @@ -5,6 +5,8 @@ tags: javascript,array,iterator,generator authors: chalarangelo cover: blog_images/colorful-plastic.jpg excerpt: Did you know you can define an iterator for any JavaScript value? This quick tip will show you how. +firstSeen: 2021-06-10T12:00:00+03:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- JavaScript's `Symbol.iterator` is a very powerful tool that every web developer should learn how to use. It allows you to define and customize the way a value is iterated, effectively allowing you to make any value iterable. You can easily apply this knowledge to plain JavaScript objects and even classes. diff --git a/blog_posts/javascript-memoization.md b/blog_posts/javascript-memoization.md index 7c64e1dca..f4aa5f3a2 100644 --- a/blog_posts/javascript-memoization.md +++ b/blog_posts/javascript-memoization.md @@ -5,6 +5,8 @@ tags: javascript,function,memoization authors: chalarangelo cover: blog_images/cherry-trees.jpg excerpt: Learn different ways to memoize function calls in JavaScript as well as when to use memoization to get the best performance results. +firstSeen: 2020-02-27T16:23:25+02:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- Memoization is a commonly used technique that you can use to speed up your code significantly. It uses a cache to store results, so that subsequent calls of time-consuming functions do not perform the same work another time. Based on this definition, we can easily extract some criteria that can help us decide when to use memoization in our code: diff --git a/blog_posts/javascript-merge-arrays.md b/blog_posts/javascript-merge-arrays.md index 86cabbba6..264c66c0b 100644 --- a/blog_posts/javascript-merge-arrays.md +++ b/blog_posts/javascript-merge-arrays.md @@ -5,6 +5,8 @@ tags: javascript,array authors: chalarangelo cover: blog_images/arrays.jpg excerpt: Arrays are one of the most used data types in any programming language. Learn how to merge two arrays in JavaScript with this short guide. +firstSeen: 2020-08-04T13:25:38+03:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- ### Spread operator diff --git a/blog_posts/javascript-modify-url-without-reload.md b/blog_posts/javascript-modify-url-without-reload.md index fc05f1260..de25683ca 100644 --- a/blog_posts/javascript-modify-url-without-reload.md +++ b/blog_posts/javascript-modify-url-without-reload.md @@ -5,6 +5,8 @@ tags: javascript,browser authors: chalarangelo cover: blog_images/compass.jpg excerpt: Learn all of the options JavaScript provides for modifying the URL of the current page in the browser without reloading the page. +firstSeen: 2020-03-27T13:48:27+02:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- ### Using the History API diff --git a/blog_posts/javascript-module-cheatsheet.md b/blog_posts/javascript-module-cheatsheet.md index ee7d179ca..4d97bd618 100644 --- a/blog_posts/javascript-module-cheatsheet.md +++ b/blog_posts/javascript-module-cheatsheet.md @@ -5,6 +5,8 @@ tags: javascript,cheatsheet authors: chalarangelo cover: blog_images/mountain-lake-2.jpg excerpt: Learn everything you need to know about JavaScript modules with this handy cheatsheet. +firstSeen: 2020-08-04T19:41:35+03:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- ### Named exports diff --git a/blog_posts/javascript-naming-conventions.md b/blog_posts/javascript-naming-conventions.md index 735f589f7..24588bca1 100644 --- a/blog_posts/javascript-naming-conventions.md +++ b/blog_posts/javascript-naming-conventions.md @@ -5,6 +5,8 @@ tags: javascript,variable,cheatsheet authors: chalarangelo cover: blog_images/naming-conventions.jpg excerpt: Naming conventions, while not easy to enforce, make code easier to read and understand. Learn how to name your variables in JavaScript with this handy guide. +firstSeen: 2020-05-20T02:32:10+03:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- ### Variables diff --git a/blog_posts/javascript-nullish-coalescing-optional-chaining.md b/blog_posts/javascript-nullish-coalescing-optional-chaining.md index debe99d24..bd608734f 100644 --- a/blog_posts/javascript-nullish-coalescing-optional-chaining.md +++ b/blog_posts/javascript-nullish-coalescing-optional-chaining.md @@ -5,6 +5,8 @@ tags: javascript,type authors: chalarangelo cover: blog_images/purple-leaves.jpg excerpt: JavaScript ES2020 introduced optional chaining and nullish coalescing among other features. Learn everything you need to know with this quick guide. +firstSeen: 2020-08-19T15:37:22+03:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- JavaScript ES2020 introduced some new features that help us write cleaner code. Let's take a quick look at two of them that aim to make working with objects and variables a lot easier. diff --git a/blog_posts/javascript-object-array-proxy.md b/blog_posts/javascript-object-array-proxy.md index 956ba2fba..858e49120 100644 --- a/blog_posts/javascript-object-array-proxy.md +++ b/blog_posts/javascript-object-array-proxy.md @@ -5,6 +5,8 @@ tags: javascript,object,array,proxy,iterator,pattern authors: chalarangelo cover: blog_images/birds.jpg excerpt: Learn how you can leverage the Proxy object to use a JavaScript object the same way as you would use a regular array. +firstSeen: 2021-05-03T12:00:00+03:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- While messing around with some code the other day, I stumbled upon a case where I received an object, the values of which I needed to repeatedly handle as a regular array. This was, of course, achievable using `Object.keys()`, `Object.values()` or `Object.entries()`, but it started getting verbose real quick. diff --git a/blog_posts/javascript-object-is-triple-equals.md b/blog_posts/javascript-object-is-triple-equals.md index c59cb79c3..adf4e6248 100644 --- a/blog_posts/javascript-object-is-triple-equals.md +++ b/blog_posts/javascript-object-is-triple-equals.md @@ -5,6 +5,8 @@ tags: javascript,object,type authors: chalarangelo cover: blog_images/rocky-mountains.jpg excerpt: "`Object.is()` and the triple equals operator (`===`) can both be used for equality checking in JavaScript, but when should you use each one?" +firstSeen: 2021-03-04T11:00:00+02:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- If you want to check equality in JavaScript, there are two comparison operators, which are explained in depth in a previous [article](/blog/s/javascript-equality). diff --git a/blog_posts/javascript-prevent-string-being-escaped.md b/blog_posts/javascript-prevent-string-being-escaped.md index 54625477e..48c3d2b12 100644 --- a/blog_posts/javascript-prevent-string-being-escaped.md +++ b/blog_posts/javascript-prevent-string-being-escaped.md @@ -5,6 +5,8 @@ tags: javascript,string authors: chalarangelo cover: blog_images/glass-blowing.jpg excerpt: Strings in JavaScript can be escaped in various ways. But what if you need to prevent a string from being escaped? Here's a handy trick for that. +firstSeen: 2021-06-17T12:00:00+03:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- By default, when JavaScript sees an escape character (`\`), it will escape the character after it. However, there are cases where you might not want this behavior (e.g. when you want to store a Windows path as a string). For these cases, you can use a template literal and the `String.raw()` tag function: diff --git a/blog_posts/javascript-primitive-instanceof.md b/blog_posts/javascript-primitive-instanceof.md index 52b0df406..08749a645 100644 --- a/blog_posts/javascript-primitive-instanceof.md +++ b/blog_posts/javascript-primitive-instanceof.md @@ -5,6 +5,8 @@ tags: javascript,type authors: chalarangelo cover: blog_images/wooden-bowl.jpg excerpt: JavaScript's `instanceof` operator can't be used with primitive values, but there are a couple of simple tricks that you can leverage to your advantage. +firstSeen: 2021-03-25T11:00:00+02:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- JavaScript provides two operators for typechecking: diff --git a/blog_posts/javascript-promise-then-catch.md b/blog_posts/javascript-promise-then-catch.md index 39847af63..32e0d1e42 100644 --- a/blog_posts/javascript-promise-then-catch.md +++ b/blog_posts/javascript-promise-then-catch.md @@ -5,6 +5,8 @@ tags: javascript,function,promise authors: chalarangelo cover: blog_images/blue-sunrise.jpg excerpt: Messing up the order of chained `then` and `catch` methods in JavaScript promises can result in all sorts of problems. Here's a short primer on the subject. +firstSeen: 2021-04-26T12:00:00+03:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- Many if not most promise-related headaches come from incorrectly ordered `Promise.prototype.then()` and `Promise.prototype.catch()` methods. The order in which these methods are chained to a promise can lead to very different behaviors. Let's take a look at a very simple example: diff --git a/blog_posts/javascript-promise-then-finally.md b/blog_posts/javascript-promise-then-finally.md index 646bf5510..16ba5af2b 100644 --- a/blog_posts/javascript-promise-then-finally.md +++ b/blog_posts/javascript-promise-then-finally.md @@ -5,6 +5,8 @@ tags: javascript,function,promise authors: chalarangelo cover: blog_images/blue-sunrise.jpg excerpt: On the surface, a JavaScript promise's `then` and `finally` methods seem very similar. But there are a few important differences you need to keep in mind. +firstSeen: 2021-03-18T11:00:00+02:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- On the surface, `Promise.prototype.then()` and `Promise.prototype.finally` seem very similar. But there are a few important differences you need to keep in mind. diff --git a/blog_posts/javascript-query-selector-shorthand.md b/blog_posts/javascript-query-selector-shorthand.md index c7673bdc8..5bd2e6242 100644 --- a/blog_posts/javascript-query-selector-shorthand.md +++ b/blog_posts/javascript-query-selector-shorthand.md @@ -5,6 +5,8 @@ tags: javascript,browser authors: chalarangelo cover: blog_images/pineapple-at-work.jpg excerpt: Ever wanted to create your own jquery-like query selector shorthand? Here's how! +firstSeen: 2021-02-08T11:00:00+02:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- Most of us are familiar with jquery and probably quite a few of us are familiar with the Chrome console's `$` and `$$` shorthands for query selectors. I recently figured out a way to replicate these shorthands in my code, using `Document.querySelector()`, `Document.querySelectorAll()` and `Function.prototype.bind()`. Here's how to do it, just make sure you don't mix them up with jquery if you are still using it: diff --git a/blog_posts/javascript-range-generator.md b/blog_posts/javascript-range-generator.md index 098584403..cf131c3b1 100644 --- a/blog_posts/javascript-range-generator.md +++ b/blog_posts/javascript-range-generator.md @@ -5,6 +5,8 @@ tags: javascript,function,array authors: chalarangelo cover: blog_images/generator.jpg excerpt: Learn how to use JavaScript ES6 generators and iterators to iterate over ranges of numbers. +firstSeen: 2020-08-04T16:28:16+03:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- ### Generator functions diff --git a/blog_posts/javascript-remove-object-property.md b/blog_posts/javascript-remove-object-property.md index ba945be8a..72f67292c 100644 --- a/blog_posts/javascript-remove-object-property.md +++ b/blog_posts/javascript-remove-object-property.md @@ -5,6 +5,8 @@ tags: javascript,object authors: chalarangelo cover: blog_images/brown-bird.jpg excerpt: Ever wanted to delete a property from a JavaScript object? Here are a few way you can accomplish that. +firstSeen: 2021-03-22T11:00:00+02:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- When working with objects in JavaScript, you might come across situations where a property should be completely removed from an object. To accomplish that, there a few options you have at your disposal: diff --git a/blog_posts/javascript-return-constructor.md b/blog_posts/javascript-return-constructor.md index 13b0461e9..48bd86df5 100644 --- a/blog_posts/javascript-return-constructor.md +++ b/blog_posts/javascript-return-constructor.md @@ -5,6 +5,8 @@ tags: javascript,function,class,object authors: chalarangelo cover: blog_images/architectural.jpg excerpt: The constructor is arguably the most crucial part of any JavaScript class, which is why you might want to take a closer look at what they return. +firstSeen: 2020-09-30T19:35:32+03:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- The `constructor` method is a special method of a class for creating and initializing an object of that class. However, there is a little bit of magic involved around it, especially when it comes to its return value. This magic is nothing really complicated, but it seems to often confuse developers. diff --git a/blog_posts/javascript-shallow-deep-clone.md b/blog_posts/javascript-shallow-deep-clone.md index e85bbab78..931b81379 100644 --- a/blog_posts/javascript-shallow-deep-clone.md +++ b/blog_posts/javascript-shallow-deep-clone.md @@ -5,6 +5,8 @@ tags: javascript,object authors: chalarangelo cover: blog_images/pagodas.jpg excerpt: Learn how JavaScript handles mutable data, such as objects and arrays, and understand how shallow cloning and deep cloning work. +firstSeen: 2020-04-14T16:19:56+03:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- JavaScript's primitive data types, such as numbers, strings, null, undefined and booleans are immutable, meaning their value cannot change once created. However, objects and arrays are mutable, allowing their value to be altered after creation. What this means in practice is that primitives are passed by value, whereas objects and arrays are passed by reference. Consider the following example: diff --git a/blog_posts/javascript-singleton-proxy.md b/blog_posts/javascript-singleton-proxy.md index 6daba9570..aa1c53ec6 100644 --- a/blog_posts/javascript-singleton-proxy.md +++ b/blog_posts/javascript-singleton-proxy.md @@ -5,6 +5,8 @@ tags: javascript,object,function,proxy,pattern authors: chalarangelo cover: blog_images/obelisk.jpg excerpt: Learn how to implement a singleton, a commonly used software design pattern, in JavaScript using the Proxy object. +firstSeen: 2020-02-25T16:02:03+02:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- A singleton is an object-oriented software design pattern which ensures a given class is only ever instantiated once and can be quite useful in many different situations, such as creating global objects and components shared across an application. While JavaScript supports object-oriented programming, it doesn't seem to provide many simple options to implement this pattern. diff --git a/blog_posts/javascript-sleep.md b/blog_posts/javascript-sleep.md index 71ad17ce6..2a8e6303d 100644 --- a/blog_posts/javascript-sleep.md +++ b/blog_posts/javascript-sleep.md @@ -5,6 +5,8 @@ tags: javascript,date,promise authors: chalarangelo cover: blog_images/sleepy-cat.jpg excerpt: Learn all the different ways you can implement a `sleep()` function in JavaScript. +firstSeen: 2020-08-04T20:08:54+03:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- JavaScript does not come with a `sleep()` function out of the box and that is probably a good idea considering the environments where it runs and the trouble such a function could cause if used incorrectly. The closest equivalent of such a function is `setTimeout`, however there are other, less common ways to implement a function that will freeze the current thread for a specified amount of time. diff --git a/blog_posts/javascript-spread-rest-syntax.md b/blog_posts/javascript-spread-rest-syntax.md index d20419d99..9b6ea5c1d 100644 --- a/blog_posts/javascript-spread-rest-syntax.md +++ b/blog_posts/javascript-spread-rest-syntax.md @@ -5,6 +5,8 @@ tags: javascript,array,function authors: chalarangelo cover: blog_images/antelope.jpg excerpt: JavaScript ES6 introduced us to several powerful features, such as the spread and rest syntax. Learn everything you need to know in this quick guide. +firstSeen: 2021-02-15T11:00:00+02:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- ### Spread syntax diff --git a/blog_posts/javascript-store-dom-items.md b/blog_posts/javascript-store-dom-items.md index daa7bad2e..caf87c944 100644 --- a/blog_posts/javascript-store-dom-items.md +++ b/blog_posts/javascript-store-dom-items.md @@ -5,6 +5,8 @@ tags: javascript,browser authors: chalarangelo cover: blog_images/armchair.jpg excerpt: Increase your JavaScript code's performance when working with the DOM by leveraging this simple trick. +firstSeen: 2020-11-20T09:18:55+02:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- DOM operations, including accessing the DOM, are generally slow. This is usually not a problem until you have to perform many DOM operations and your JavaScript application's performance starts to suffer. A very quick trick to increase performance is to store DOM elements or their values in local variables if you plan to access them multiple times. diff --git a/blog_posts/javascript-swap-two-variables.md b/blog_posts/javascript-swap-two-variables.md index 7661b145e..1ee733a41 100644 --- a/blog_posts/javascript-swap-two-variables.md +++ b/blog_posts/javascript-swap-two-variables.md @@ -5,6 +5,8 @@ tags: javascript,array,variables authors: chalarangelo cover: blog_images/mountain-lake-2.jpg excerpt: Learn how to swap the values of two variables in JavaScript using a single line of ES6 code. +firstSeen: 2020-04-27T14:12:51+03:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- In the past, swapping the values of two variables in JavaScript required an intermediate variable to store one of the values while swapping, which would result in something similar to this: diff --git a/blog_posts/javascript-switch-object.md b/blog_posts/javascript-switch-object.md index 24c20f64d..0d5ffa7fe 100644 --- a/blog_posts/javascript-switch-object.md +++ b/blog_posts/javascript-switch-object.md @@ -5,6 +5,8 @@ tags: javascript,object authors: chalarangelo cover: blog_images/rocky-lake.jpg excerpt: JavaScript's `switch` statement often feels hard to remember and a little bit out of place. Maybe it's time to use object literals, instead. +firstSeen: 2021-04-01T12:00:00+03:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- JavaScript's `switch` statement is one of the few things I find hard to remember the syntax for (so glad VS Code has autocomplete). It also feels a little bit out of place syntactically, as it's the only thing that doesn't use curly braces and you need to remember to `break` for every `case`. Moreover, its performance is less than stellar as its control flow is procedural. diff --git a/blog_posts/javascript-target-blank.md b/blog_posts/javascript-target-blank.md index 68f5f2083..f7d46da34 100644 --- a/blog_posts/javascript-target-blank.md +++ b/blog_posts/javascript-target-blank.md @@ -5,6 +5,8 @@ tags: javascript,browser,security authors: chalarangelo cover: blog_images/laptop-with-code.jpg excerpt: Opening a link in a new tab comes with a security vulnerability that you may not be aware of. Protect your users with this simple trick. +firstSeen: 2020-11-20T09:19:07+02:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- Oftentimes, when linking to an external resource from our websites, we use `target="_blank"` to open the linked page in a new tab or window. But there is a security risk we should be aware of. The new tab gains limited access to the linking page (i.e. our website) via `window.opener`, which it can then use to alter the linking page's URL via `window.opener.location` (this is known as tabnabbing). diff --git a/blog_posts/javascript-ternary-operator.md b/blog_posts/javascript-ternary-operator.md index 402045843..f739a322e 100644 --- a/blog_posts/javascript-ternary-operator.md +++ b/blog_posts/javascript-ternary-operator.md @@ -5,6 +5,8 @@ tags: javascript,condition authors: maciv cover: blog_images/red-succulent.jpg excerpt: Learn everything you need to know about the conditional (ternary) operator and how to use it in JavaScript. +firstSeen: 2020-09-01T01:53:34+03:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- JavaScript's ternary operator (`?:`), also called the conditional operator, is used to replace a conditional statement, most commonly an assignment. For example: diff --git a/blog_posts/javascript-this.md b/blog_posts/javascript-this.md index 2b33e72c9..81ad309a7 100644 --- a/blog_posts/javascript-this.md +++ b/blog_posts/javascript-this.md @@ -5,6 +5,8 @@ tags: javascript,function,object authors: chalarangelo cover: blog_images/u-got-this.jpg excerpt: JavaScript's `this` keyword is a source of confusion for many beginners and veterans alike. Learn how it works in different scenarios and start using it correctly. +firstSeen: 2020-05-03T15:31:25+03:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- ### What is `this`? diff --git a/blog_posts/javascript-undeclared-undefined-null.md b/blog_posts/javascript-undeclared-undefined-null.md index ebcea0b4e..3be3662f4 100644 --- a/blog_posts/javascript-undeclared-undefined-null.md +++ b/blog_posts/javascript-undeclared-undefined-null.md @@ -5,6 +5,8 @@ tags: javascript,type authors: chalarangelo cover: blog_images/river-houses.jpg excerpt: JavaScript has three different empty states for variables. Learn their differences and how you can check for each one. +firstSeen: 2021-03-29T12:00:00+03:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- ### undeclared diff --git a/blog_posts/javascript-value-as-number.md b/blog_posts/javascript-value-as-number.md index 6408586dc..8d66b5573 100644 --- a/blog_posts/javascript-value-as-number.md +++ b/blog_posts/javascript-value-as-number.md @@ -5,6 +5,8 @@ tags: javascript,browser,input authors: chalarangelo cover: blog_images/mac-and-coffee.jpg excerpt: Ever wanted to get the value of an HTML input element as a number? Learn an easy way to do it with this handy trick. +firstSeen: 2020-11-20T09:19:24+02:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- Most of the time, when accessing the value of an `HTMLInputElement` in an event listener, we use something along the lines of `e.target.value`. This is fine in most cases, but when we want the numeric value of an input field, we have to parse it and check if the value is actually valid etc. That can get very annoying, especially when working with larger forms that have many input fields. diff --git a/blog_posts/javascript-variable-hoisting.md b/blog_posts/javascript-variable-hoisting.md index d9b94db2c..f921bea9c 100644 --- a/blog_posts/javascript-variable-hoisting.md +++ b/blog_posts/javascript-variable-hoisting.md @@ -5,6 +5,8 @@ tags: javascript,type,variable authors: chalarangelo cover: blog_images/boat-port.jpg excerpt: One of the most commonly asked JavaScript interview questions is about hoisting. It's also a concept that might require some getting used to, so read our guide to learn more. +firstSeen: 2020-09-22T23:28:14+03:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- Before your JavaScript code is executed, it is first parsed and compiled. During the _compile_ phase, variable and function declarations are put into memory, which is called **hoisting**. diff --git a/blog_posts/javascript-variable-scope.md b/blog_posts/javascript-variable-scope.md index f39ef2ba0..ae1d84484 100644 --- a/blog_posts/javascript-variable-scope.md +++ b/blog_posts/javascript-variable-scope.md @@ -5,6 +5,8 @@ tags: javascript,type,variable authors: chalarangelo cover: blog_images/periscope.jpg excerpt: JavaScript developers often get confused by JavaScript's variables and scope. Here's a quick guide to understanding and remembering everything related to these concepts. +firstSeen: 2020-05-18T22:28:17+03:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- I have seen many developers - my younger self included - struggle with JavaScript's variables and scopes, even if they have some experience with coding and/or the language itself. While there are dozens of great articles on this subject, I found it somewhat difficult to memorize or understand the way these concepts work when I was starting out, so here's a short and simple breakdown that might help you as much as it helped me. diff --git a/blog_posts/javascript-void-links.md b/blog_posts/javascript-void-links.md index fcbcfc71b..43dbe7b50 100644 --- a/blog_posts/javascript-void-links.md +++ b/blog_posts/javascript-void-links.md @@ -5,6 +5,8 @@ tags: javascript,browser,accessibility authors: chalarangelo cover: blog_images/white-flower.jpg excerpt: There are various ways to create an empty link, but some options are more appropriate than others. Learn the best way to handle empty links with this quick tip. +firstSeen: 2020-11-15T11:46:42+02:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- There are various ways to create an empty link, but some options are more appropriate than others. One of the most common debates about it is if one should use `href=""`, `href="#"` or `href="javascript:void(0)"`. diff --git a/blog_posts/js-array-min-max.md b/blog_posts/js-array-min-max.md index 633a8eed5..545aba07b 100644 --- a/blog_posts/js-array-min-max.md +++ b/blog_posts/js-array-min-max.md @@ -5,6 +5,8 @@ tags: javascript,array,math authors: chalarangelo cover: blog_images/little-tree.jpg excerpt: When working with numeric arrays in JavaScript, you might find yourself in need of finding the minimum or maximum value. Here's a quick and easy way to do it. +firstSeen: 2021-03-01T11:00:00+02:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- When working with numeric arrays in JavaScript, you might find yourself in need of finding the minimum or maximum value. Luckily, JavaScript's `Math` built-in object has got you covered. You can simply use `Math.min()` or `Math.max()` combined with the spread operator (`...`), as both functions accept any number of arguments. diff --git a/blog_posts/js-array-sorting-shorthand.md b/blog_posts/js-array-sorting-shorthand.md index 662f13574..c51791c0b 100644 --- a/blog_posts/js-array-sorting-shorthand.md +++ b/blog_posts/js-array-sorting-shorthand.md @@ -5,6 +5,8 @@ tags: javascript,array authors: maciv,chalarangelo cover: blog_images/apples.jpg excerpt: Learn how to quickly write code to sort JavaScript arrays with this handy one-liner. +firstSeen: 2021-01-04T11:00:00+02:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- When sorting an array of primitive values (e.g. strings or numbers), you'll often see a lot of code that looks like this: diff --git a/blog_posts/js-remove-array-duplicates.md b/blog_posts/js-remove-array-duplicates.md index db545af1c..69a4cb335 100644 --- a/blog_posts/js-remove-array-duplicates.md +++ b/blog_posts/js-remove-array-duplicates.md @@ -5,6 +5,8 @@ tags: javascript,array authors: chalarangelo cover: blog_images/architectural.jpg excerpt: Easily remove duplicates from a JavaScript array using the built-in `Set` object. +firstSeen: 2021-02-11T11:00:00+02:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- Removing duplicates from an array in JavaScript can be done in a variety of ways, such as using `Array.prototype.reduce()`, `Array.prototype.filter()` or even a simple `for` loop. But there's an easier alternative. JavaScript's built-in [`Set`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set) object is described as a collection of values, where each value may occur only once. A `Set` object is also iterable, making it easily convertible to an array using the spread (`...`) operator. diff --git a/blog_posts/lazy-loading-images.md b/blog_posts/lazy-loading-images.md index 5efbbae89..c22cc38da 100644 --- a/blog_posts/lazy-loading-images.md +++ b/blog_posts/lazy-loading-images.md @@ -5,6 +5,8 @@ tags: webdev,html,image authors: chalarangelo cover: blog_images/bridge.jpg excerpt: Did you know you can use a native HTML attribute to add lazy load to images? Learn all you need to know with this quick tip. +firstSeen: 2021-05-31T12:00:00+03:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- Images are nowadays a crucial part of any webpage, but, as with most things, they come at a cost. Images are usually a major percentage of a page's load, which is why they make for a great candidate for optimization. The most common technique is that of lazy loading, usually in the form of delaying loading images outside the initial viewport until they are close to being scrolled into view. diff --git a/blog_posts/nodejs-chrome-debugging.md b/blog_posts/nodejs-chrome-debugging.md index 16c06b009..1837c2ed3 100644 --- a/blog_posts/nodejs-chrome-debugging.md +++ b/blog_posts/nodejs-chrome-debugging.md @@ -5,6 +5,8 @@ tags: javascript,node,debugging authors: chalarangelo cover: blog_images/bug.jpg excerpt: Did you know you can use Chrome Developer Tools to debug your Node.js code? Find out how in this short guide. +firstSeen: 2020-07-15T16:10:13+03:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- Node.js can be debugged using Chrome Developer Tools since `v6.3.0`. Here's a quick guide on how to do this: diff --git a/blog_posts/password-autocomplete-suggestion.md b/blog_posts/password-autocomplete-suggestion.md index 51377fe70..89e4a12ce 100644 --- a/blog_posts/password-autocomplete-suggestion.md +++ b/blog_posts/password-autocomplete-suggestion.md @@ -5,6 +5,8 @@ tags: webdev authors: chalarangelo cover: blog_images/padlocks.jpg excerpt: Use the HTML `autocomplete` attribute to create more secure and accessible password fields. +firstSeen: 2021-05-10T12:00:00+03:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- The HTML `autocomplete` attribute provides a wide variety of options for `` fields. One of these is the `new-password` value, which can be used when the user is asked to create a new password (e.g. signup or reset password forms). This value ensures that the browser will not accidentally fill in an existing password, while it also allows the browser to suggest a secure password: diff --git a/blog_posts/perfect-css-transition-duration.md b/blog_posts/perfect-css-transition-duration.md index 2a85e434a..1178e2152 100644 --- a/blog_posts/perfect-css-transition-duration.md +++ b/blog_posts/perfect-css-transition-duration.md @@ -5,6 +5,8 @@ tags: css,interactivity,visual,animation authors: chalarangelo cover: blog_images/perfect-timing.jpg excerpt: Learn how to make your CSS transitions feel perfect when users interact with elements on the page with this simple tip. +firstSeen: 2020-12-30T11:00:00+02:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- We have all experienced a website interaction that feels sluggish or otherwise off on account of poor transition or animation duration and timing. However, there is a very simple "golden rule" to help you avoid this poor user experience, called **Doherty Threshold:** diff --git a/blog_posts/prefetching-resources.md b/blog_posts/prefetching-resources.md index 471107ee6..6a4fa48f6 100644 --- a/blog_posts/prefetching-resources.md +++ b/blog_posts/prefetching-resources.md @@ -5,6 +5,8 @@ tags: webdev,html,browser authors: chalarangelo cover: blog_images/playing-fetch.jpg excerpt: Resource prefetching is a great technique to improve perceived page speed on your website and one that requires little to no effort. Learn how to use it today. +firstSeen: 2020-06-20T13:41:31+03:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- Resource prefetching is a great technique to improve perceived page speed on your website and provide a better user experience, without a lot of effort. Prefetching happens in the browser as soon as it is idle, meaning it will not slow down the initial load, but rather utilize idle time to fetch and cache resources that might be useful later on. diff --git a/blog_posts/python-dict-getkey-vs-dictkey.md b/blog_posts/python-dict-getkey-vs-dictkey.md index 005217a79..31436076e 100644 --- a/blog_posts/python-dict-getkey-vs-dictkey.md +++ b/blog_posts/python-dict-getkey-vs-dictkey.md @@ -5,6 +5,8 @@ tags: python,dictionary authors: maciv cover: blog_images/fruit-feast.jpg excerpt: Learn the difference between two common ways to access values in Python dictionaries and level up your code today. +firstSeen: 2021-01-07T11:00:00+02:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- A common debate among Python developers seems to stem from the retrieval of dictionary values, which can be accomplished using either `dict[key]` or `dict.get(key)`. diff --git a/blog_posts/python-fstrings-str-format.md b/blog_posts/python-fstrings-str-format.md index b7484f5d5..1195189d8 100644 --- a/blog_posts/python-fstrings-str-format.md +++ b/blog_posts/python-fstrings-str-format.md @@ -5,6 +5,8 @@ tags: python,string authors: maciv cover: blog_images/feathers.jpg excerpt: Learn two ways to format a string in Python with this quick tip. +firstSeen: 2021-01-21T11:00:00+02:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- ### f-string diff --git a/blog_posts/python-identity-equality.md b/blog_posts/python-identity-equality.md index 08d3e8a6b..9a5711090 100644 --- a/blog_posts/python-identity-equality.md +++ b/blog_posts/python-identity-equality.md @@ -5,6 +5,8 @@ tags: python,type,comparison authors: maciv cover: blog_images/umbrellas.jpg excerpt: Python provides two distinct comparison operators for different task. Stop mixing them up using this quick guide. +firstSeen: 2021-01-28T11:00:00+02:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- Python provides two very similar equality operators used for comparisons: diff --git a/blog_posts/python-lists-tuples.md b/blog_posts/python-lists-tuples.md index dc9a328eb..b3fa986a7 100644 --- a/blog_posts/python-lists-tuples.md +++ b/blog_posts/python-lists-tuples.md @@ -5,6 +5,8 @@ tags: python,list authors: chalarangelo cover: blog_images/red-mountain.jpg excerpt: Learn how Python's lists and tuples are different and level up your code today. +firstSeen: 2020-08-08T14:54:56+03:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- Python's lists and tuples may seem pretty similar in syntax and function, however they have some major differences the most important of which is the fact that lists are mutable and tuples aren't. Here's a quick breakdown: diff --git a/blog_posts/python-lowercase.md b/blog_posts/python-lowercase.md index 91e6f5aae..ad2777932 100644 --- a/blog_posts/python-lowercase.md +++ b/blog_posts/python-lowercase.md @@ -5,6 +5,8 @@ tags: python,string authors: maciv cover: blog_images/type-stamps.jpg excerpt: Learn of the two different way to convert a string to lowercase in Python and understand when you should use each one with this quick guide. +firstSeen: 2020-11-15T14:13:55+02:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- ### str.lower() diff --git a/blog_posts/python-named-tuples.md b/blog_posts/python-named-tuples.md index 7e36e21a3..9b476843b 100644 --- a/blog_posts/python-named-tuples.md +++ b/blog_posts/python-named-tuples.md @@ -5,6 +5,8 @@ tags: python,list,dictionary authors: maciv cover: blog_images/mask-quiet.jpg excerpt: Understand Python's named tuples and start using them in your projects today. +firstSeen: 2021-01-14T11:00:00+02:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- Python's named tuples are a very simple yet interesting feature that can make a developer's life easier. They are part of the `collections` module and act very similar to regular tuples, the main difference being that values stored in a named tuple can be accessed using field names instead of indexes. diff --git a/blog_posts/python-slice-assignment.md b/blog_posts/python-slice-assignment.md index d9a932fb9..83e01adff 100644 --- a/blog_posts/python-slice-assignment.md +++ b/blog_posts/python-slice-assignment.md @@ -5,6 +5,8 @@ tags: python,list authors: maciv cover: blog_images/sliced-fruits.jpg excerpt: Learn everything you need to know about Python's slice assignment with this handy guide. +firstSeen: 2020-11-07T19:21:40+02:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- #### Python slice notation diff --git a/blog_posts/python-slice-notation.md b/blog_posts/python-slice-notation.md index cbcd07bf5..49b0b832e 100644 --- a/blog_posts/python-slice-notation.md +++ b/blog_posts/python-slice-notation.md @@ -5,6 +5,8 @@ tags: python,list authors: maciv cover: blog_images/sliced-fruits.jpg excerpt: Learn everything you need to know about Python's slice notation with this handy guide. +firstSeen: 2020-11-07T19:21:16+02:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- #### Python slice notation diff --git a/blog_posts/python-sortedlist-vs-list-sort.md b/blog_posts/python-sortedlist-vs-list-sort.md index 0188ea55c..0c71103bd 100644 --- a/blog_posts/python-sortedlist-vs-list-sort.md +++ b/blog_posts/python-sortedlist-vs-list-sort.md @@ -5,6 +5,8 @@ tags: python,list authors: maciv cover: blog_images/duck-plants.jpg excerpt: Learn the difference between Python’s built-in list sorting methods and when one is preferred over the other. +firstSeen: 2020-12-31T11:00:00+02:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- Python provides two ways to sort a list, the built-in list method `list.sort()` and the built-in function `sorted()`. Although both will sort the elements of a list, if used incorrectly they can produce unexpected or undesired results. diff --git a/blog_posts/python-swap-variables.md b/blog_posts/python-swap-variables.md index ea2503cba..9a1f660f9 100644 --- a/blog_posts/python-swap-variables.md +++ b/blog_posts/python-swap-variables.md @@ -5,6 +5,8 @@ tags: python,variables authors: maciv cover: blog_images/leaves-read.jpg excerpt: Learn 3 easy ways to swap the values of two variables in Python. +firstSeen: 2021-02-04T11:00:00+02:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- ### Using a temporary variable diff --git a/blog_posts/react-conditional-classname.md b/blog_posts/react-conditional-classname.md index b6f43422a..0d6f869d9 100644 --- a/blog_posts/react-conditional-classname.md +++ b/blog_posts/react-conditional-classname.md @@ -5,6 +5,8 @@ tags: react,components authors: maciv cover: blog_images/succulent-red-light.jpg excerpt: When developing React components, you might often need to conditionally apply a className. Learn how to handle empty classNames correctly using this handy tip. +firstSeen: 2020-11-06T20:17:21+02:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- When developing React components, you often need to conditionally apply a `className` attribute to one or more elements. Sometimes, you will have two or more possible values depending on a condition, but there are also times that you might apply a `className` based on a condition or leave it completely empty otherwise. diff --git a/blog_posts/react-proptypes-objectof-vs-shape.md b/blog_posts/react-proptypes-objectof-vs-shape.md index caa3f5233..a7324dda8 100644 --- a/blog_posts/react-proptypes-objectof-vs-shape.md +++ b/blog_posts/react-proptypes-objectof-vs-shape.md @@ -5,6 +5,8 @@ tags: react,components,proptypes authors: chalarangelo cover: blog_images/shapes.jpg excerpt: Learn the differences between `PropTypes.objectOf()` and `PropTypes.shape()` and where to use each one with this quick guide. +firstSeen: 2021-01-18T11:00:00+02:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- The `prop-types` package is used by millions of React developers every day in order to type check the props passed to their components. Most of us are probably familiar with a variety of its built-in validators, but many a developer seems to fall short when dealing with object props. Luckily, the `PropTypes.objectOf()` and `PropTypes.shape()` validators are here to help. diff --git a/blog_posts/react-redux-readable-reducers.md b/blog_posts/react-redux-readable-reducers.md index 3a35282bd..7a0b29eff 100644 --- a/blog_posts/react-redux-readable-reducers.md +++ b/blog_posts/react-redux-readable-reducers.md @@ -5,6 +5,8 @@ tags: react,logic authors: chalarangelo cover: blog_images/beach-from-above.jpg excerpt: When working with state in your code, you often run into issues with maintaining complexity and readability. Oftentimes, these issues are easily fixable. +firstSeen: 2021-04-05T12:00:00+03:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- _This article's examples are based on Redux, where the issues described are more common. As these issues are not limited to Redux, you might still find some value in the tips and solutions presented if you are struggling with maintaining complexity and readability in your code._ diff --git a/blog_posts/react-rendering-basics.md b/blog_posts/react-rendering-basics.md index df6efb7ac..b17f92975 100644 --- a/blog_posts/react-rendering-basics.md +++ b/blog_posts/react-rendering-basics.md @@ -5,6 +5,8 @@ tags: react,render authors: chalarangelo cover: blog_images/comic-glasses.jpg excerpt: Take a deeper dive into React's rendering process and understand the basics behind the popular JavaScript framework. +firstSeen: 2020-06-16T20:41:02+03:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- #### React rendering diff --git a/blog_posts/react-rendering-optimization.md b/blog_posts/react-rendering-optimization.md index cbd1672be..5e484a4c3 100644 --- a/blog_posts/react-rendering-optimization.md +++ b/blog_posts/react-rendering-optimization.md @@ -5,6 +5,8 @@ tags: react,render authors: chalarangelo cover: blog_images/comic-glasses.jpg excerpt: Take a deeper dive into React's rendering process and understand how to make small yet powerful tweaks to optimize performance. +firstSeen: 2020-06-16T20:41:02+03:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- #### React rendering diff --git a/blog_posts/react-rendering-state.md b/blog_posts/react-rendering-state.md index 4838a6c66..f195801b0 100644 --- a/blog_posts/react-rendering-state.md +++ b/blog_posts/react-rendering-state.md @@ -5,6 +5,8 @@ tags: react,render authors: chalarangelo cover: blog_images/comic-glasses.jpg excerpt: Take a deeper dive into React's rendering process and understand the role of the Context API and Redux in it. +firstSeen: 2020-06-16T20:41:02+03:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- #### React rendering diff --git a/blog_posts/react-selected-option.md b/blog_posts/react-selected-option.md index eacbbf1eb..180d78451 100644 --- a/blog_posts/react-selected-option.md +++ b/blog_posts/react-selected-option.md @@ -5,6 +5,8 @@ tags: react,components,input authors: maciv cover: blog_images/two-doors.jpg excerpt: Learn of all the different ways to set the value of a selected input in React with this quick guide. +firstSeen: 2020-09-01T00:25:32+03:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- ### Adding selected to an option diff --git a/blog_posts/react-use-interval-explained.md b/blog_posts/react-use-interval-explained.md index 1c434311a..5ef0e70b6 100644 --- a/blog_posts/react-use-interval-explained.md +++ b/blog_posts/react-use-interval-explained.md @@ -5,6 +5,8 @@ tags: react,hooks,effect authors: chalarangelo cover: blog_images/clock.jpg excerpt: Wrapping your mind around React hooks and how they interact with `setInterval()` can be difficult. Here's a guide to get you started. +firstSeen: 2021-04-15T12:00:00+03:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- Wrapping your mind around React hooks can be daunting at first, especially if you stumble into anything remotely related to timing, such as `setInterval()`. In order to solve such issues, you have to get used to the way hooks work, their limitations and potential workarounds. diff --git a/blog_posts/react-use-state-with-label.md b/blog_posts/react-use-state-with-label.md index d5a4ca3ba..9c0fd8d6a 100644 --- a/blog_posts/react-use-state-with-label.md +++ b/blog_posts/react-use-state-with-label.md @@ -5,6 +5,8 @@ tags: react,hooks authors: chalarangelo cover: blog_images/bunny-poster.jpg excerpt: When working with multiple `useState` hooks in React, things can get a bit complicated while debugging. Luckily, there's an easy way to label these values. +firstSeen: 2021-05-06T12:00:00+03:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- When working with multiple `useState` hooks in React, things can get a bit complicated while debugging. Luckily, there's an easy way to label these values, using the [`useDebugValue`](https://reactjs.org/docs/hooks-reference.html#usedebugvalue) hook to create a custom `useStateWithLabel` hook: diff --git a/blog_posts/regexp-cheatsheet.md b/blog_posts/regexp-cheatsheet.md index 93ae47eea..4467567c0 100644 --- a/blog_posts/regexp-cheatsheet.md +++ b/blog_posts/regexp-cheatsheet.md @@ -5,6 +5,8 @@ tags: javascript,string,regexp,cheatsheet authors: chalarangelo cover: blog_images/tools.jpg excerpt: Regular expressions are a very useful tool in a variety of situations. Save this cheatsheet for any time you need to look up their syntax and speed up your development. +firstSeen: 2020-05-01T15:39:07+03:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- ### Anchors diff --git a/blog_posts/responsive-favicon-dark-mode.md b/blog_posts/responsive-favicon-dark-mode.md index e5685c843..94c6402d4 100644 --- a/blog_posts/responsive-favicon-dark-mode.md +++ b/blog_posts/responsive-favicon-dark-mode.md @@ -5,6 +5,8 @@ tags: css,visual authors: chalarangelo cover: blog_images/dark-mode.jpg excerpt: Learn how to create a custom responsive favicon that can adapt its color palette for dark mode with this quick guide. +firstSeen: 2020-11-27T13:25:30+02:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- The rise of dark mode in recent years has made many website favicons feel awkward or even impossible to see in some cases. Provided your design team has created the appropriate assets, it's relatively easy to create a responsive favicon that can handle the user's color scheme preference without too much effort. diff --git a/blog_posts/setup-python3-pip3-as-default.md b/blog_posts/setup-python3-pip3-as-default.md index 7b45878e3..e7cd8e68b 100644 --- a/blog_posts/setup-python3-pip3-as-default.md +++ b/blog_posts/setup-python3-pip3-as-default.md @@ -5,6 +5,8 @@ tags: python,setup authors: chalarangelo cover: blog_images/avocado-slices.jpg excerpt: A very common problem when working with Python is having to remember the correct version. Luckily, there's an easy fix for that. +firstSeen: 2021-06-07T12:00:00+03:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- One of the most common headaches when working with Python is having to remember to use Python 3.x instead of Python 2.x. Luckily, it's really easy to setup Python 3 and pip 3 as the defaults. You first need to figure out where each one is installed using the `which` command: diff --git a/blog_posts/terminal-shortcuts-cheatsheet.md b/blog_posts/terminal-shortcuts-cheatsheet.md index 5d38da0b8..61ceab52a 100644 --- a/blog_posts/terminal-shortcuts-cheatsheet.md +++ b/blog_posts/terminal-shortcuts-cheatsheet.md @@ -5,6 +5,8 @@ tags: webdev,bash,cheatsheet authors: chalarangelo cover: blog_images/terminal.jpg excerpt: Maximize your productivity when working with a bash or other shell terminal by using these keyboard shortcuts. +firstSeen: 2021-04-19T12:00:00+03:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- - Ctrl + C Terminate the command diff --git a/blog_posts/testing-async-react-components.md b/blog_posts/testing-async-react-components.md index 14a2bd258..209001a8e 100644 --- a/blog_posts/testing-async-react-components.md +++ b/blog_posts/testing-async-react-components.md @@ -5,6 +5,8 @@ tags: react,testing,event authors: maciv,chalarangelo cover: blog_images/colorful-lounge.jpg excerpt: Testing React components that update asynchronously with React Testing Library is a common scenario. Learn how to deal with common issues and speed up your testing. +firstSeen: 2020-08-13T20:21:33+03:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- ### Components that update asynchronously diff --git a/blog_posts/testing-redux-connected-components.md b/blog_posts/testing-redux-connected-components.md index f40770414..1c8893c1a 100644 --- a/blog_posts/testing-redux-connected-components.md +++ b/blog_posts/testing-redux-connected-components.md @@ -5,6 +5,8 @@ tags: react,testing authors: chalarangelo cover: blog_images/sparkles.jpg excerpt: Testing Redux-connected components with React Testing Library is a very common scenario. Learn how to use this simple utility function to speed up your testing. +firstSeen: 2020-07-15T13:54:26+03:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- Testing Redux-connected components with React Testing Library is a very common scenario. However, it might be a little complicated without the proper tools and you could end up repeating yourself, especially when writing the boilerplate to connect to your redux store. diff --git a/blog_posts/testing-stateful-ui-components.md b/blog_posts/testing-stateful-ui-components.md index 006862472..965e15738 100644 --- a/blog_posts/testing-stateful-ui-components.md +++ b/blog_posts/testing-stateful-ui-components.md @@ -5,6 +5,8 @@ tags: react,testing authors: chalarangelo cover: blog_images/lake-trees.jpg excerpt: Testing stateful React components is by no means a difficult task, but did you know there is an elegant solution that doesn't involve testing state directly? +firstSeen: 2020-01-16T09:58:18+02:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- Some time ago, I was tasked with writing tests for a handful of React components, an otherwise mundane and uninspiring task, that somehow ended with a "Eureka!" moment for me. The specifics of the project and its components are of little importance, however the key detail is that I was working with stateful React components that are used daily by a large team and, as such, are refactored and updated quite often. diff --git a/blog_posts/typographic-scale-basics.md b/blog_posts/typographic-scale-basics.md index 1eb5d2d21..752acd6bd 100644 --- a/blog_posts/typographic-scale-basics.md +++ b/blog_posts/typographic-scale-basics.md @@ -5,6 +5,8 @@ tags: css,webdev,typography authors: chalarangelo cover: blog_images/typography.jpg excerpt: Typography might seem intimidating, but you can quickly and easily create a simple typographic scale with this basic technique. +firstSeen: 2020-08-18T19:27:17+03:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- Building a typographic scale, while seemingly hard, is not all that difficult, as long as you learn some basic techniques and principles. diff --git a/blog_posts/zooming-accessibility-tips.md b/blog_posts/zooming-accessibility-tips.md index c3926ae18..67d3e336a 100644 --- a/blog_posts/zooming-accessibility-tips.md +++ b/blog_posts/zooming-accessibility-tips.md @@ -6,6 +6,8 @@ authors: chalarangelo cover: blog_images/camera-zoom.jpg excerpt: Using the viewport meta tag incorrectly can harm your website's accessibility. Learn how to prevent problems with this handy guide. unlisted: true +firstSeen: 2020-09-16T23:12:17+03:00 +lastUpdated: 2021-06-12T19:30:41+03:00 --- Using the `"viewport"` meta tag incorrectly can cause some serious accessibility issues for people with low vision. From d38cc3274b238c8ed78f81339d1718fa83627e23 Mon Sep 17 00:00:00 2001 From: Isabelle Viktoria Maciohsek Date: Sun, 13 Jun 2021 19:53:19 +0300 Subject: [PATCH 2/3] Update template --- snippet-template.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/snippet-template.md b/snippet-template.md index 56b71cfa6..eea994cda 100644 --- a/snippet-template.md +++ b/snippet-template.md @@ -5,6 +5,8 @@ tags: javascript,webdev authors: chalarangelo cover: blog_images/my-image.jpg excerpt: A short summary of your story up to 180 characters long. +firstSeen: 2021-06-13T05:00:00-04:00 +lastUpdated: 2021-06-13T05:00:00-04:00 --- Write your blog post here. From cb014a8822f6d9dd38b6367fef0dc941515573ea Mon Sep 17 00:00:00 2001 From: Chalarangelo Date: Wed, 16 Jun 2021 19:06:38 +0300 Subject: [PATCH 3/3] Tidy up for rebranding --- .github/config.yml | 14 -------------- .github/lock.yml | 35 ----------------------------------- .github/stale.yml | 18 ------------------ CONTRIBUTING.md | 30 +++++++++--------------------- README.md | 24 ++++++++++++------------ logo.png | Bin 50487 -> 173158 bytes snippet-template.md | 1 - 7 files changed, 21 insertions(+), 101 deletions(-) delete mode 100644 .github/config.yml delete mode 100644 .github/lock.yml delete mode 100644 .github/stale.yml diff --git a/.github/config.yml b/.github/config.yml deleted file mode 100644 index c62bc052d..000000000 --- a/.github/config.yml +++ /dev/null @@ -1,14 +0,0 @@ -# Configuration for request-info - https://github.com/behaviorbot/request-info - -# *Required* Comment to reply with -requestInfoReplyComment: > - We would appreciate it if you could provide us with some more information about this issue/PR! - -# *OPTIONAL* default titles to check against for lack of descriptiveness -# MUST BE ALL LOWERCASE -requestInfoDefaultTitles: - - update readme.md - - updates - -# *OPTIONAL* Label to be added to Issues and Pull Requests with insufficient information given -requestInfoLabelToAdd: needs-more-info diff --git a/.github/lock.yml b/.github/lock.yml deleted file mode 100644 index 197497fe2..000000000 --- a/.github/lock.yml +++ /dev/null @@ -1,35 +0,0 @@ -# Configuration for Lock Threads - https://github.com/dessant/lock-threads - -# Number of days of inactivity before a closed issue or pull request is locked -daysUntilLock: 60 - -# Skip issues and pull requests created before a given timestamp. Timestamp must -# follow ISO 8601 (`YYYY-MM-DD`). Set to `false` to disable -skipCreatedBefore: false - -# Issues and pull requests with these labels will be ignored. Set to `[]` to disable -exemptLabels: [] - -# Label to add before locking, such as `outdated`. Set to `false` to disable -lockLabel: false - -# Comment to post before locking. Set to `false` to disable -lockComment: false - -# Assign `resolved` as the reason for locking. Set to `false` to disable -setLockReason: true - -# Limit to only `issues` or `pulls` -# only: issues - -# Optionally, specify configuration settings just for `issues` or `pulls` -# issues: -# exemptLabels: -# - help-wanted -# lockLabel: outdated - -# pulls: -# daysUntilLock: 30 - -# Repository to extend settings from -# _extends: repo diff --git a/.github/stale.yml b/.github/stale.yml deleted file mode 100644 index 03a77e140..000000000 --- a/.github/stale.yml +++ /dev/null @@ -1,18 +0,0 @@ -# Number of days of inactivity before an issue becomes stale -daysUntilStale: 21 -# Number of days of inactivity before a stale issue is closed -daysUntilClose: 7 -# Issues with these labels will never be considered stale -exemptLabels: - - not-stale - - pinned - - security -# Label to use when marking an issue as stale -staleLabel: false -# Comment to post when marking an issue as stale. Set to `false` to disable -markComment: > - This issue has been automatically marked as stale because it has not had - recent activity. It will be closed if no further activity occurs. Thank you - for your contributions. -# Comment to post when closing a stale issue. Set to `false` to disable -closeComment: false diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 954f390ee..cf0de3423 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -2,20 +2,10 @@ **30 seconds of code** is powered by the community, so feel free to contribute in any way you can to help us! -## Tools - -Before you begin contributing, you should install the integration-tools globally on your machine: - -```sh -npm install -g @30-seconds/integration-tools -``` - -This will allow you to use our customized tools for all of our content repositories. - ## How you can help - Submit pull requests with new snippets (see guidelines below) or snippet updates (tags, descriptions, explanations, typos, examples, code improvements). -- Open issues for things you want to see added, modified, discuss ideas or help out with existing issues. +- Open issues for things you want to see added, modified, discuss ideas or help out with existing issues. ## Ground rules @@ -23,30 +13,28 @@ Breaking any of these rules will result in your pull request being closed. Pleas - **Always be polite and respectful to others** and try to follow the advice of the moderators/collaborators/owners. - **Only modify snippet files**, never modify the generated files in the `blog_data` directory, except for the `blog_authors.json` file. -- **Use the integration tools commands** to generate new snippets, ensuring they have the correct name and are in the correct location. +- **Use the snippet template** to create new snippets, ensure they have the correct name and are in the correct location. - **Follow snippet format exactly**, otherwise your snippets will not be recognized correctly by the tools responsible for publishing them on the website. This includes such things as spacing and empty lines - if you accidentally make a mistake, consult the repository's [snippet template](snippet-template.md). - **Snippets should solve real-world problems**, no matter how simple and should be abstract enough to be applied to different scenarios. ## Snippet creation -After installing the integration tools, you can run the following command: +In order to create a new snippet, you should follow the steps below: -```sh -create-new-snippet -``` - -Replace `` with the name of the snippet you are adding. +- Crate a copy of the [snippet template](snippet-template.md) in the `blog_posts` directory. +- Change the name of the newly created file to the name of your snippet. +- Edit the file, adding your snippet based on the guidelines. ## Snippet guidelines - Snippets must have all their frontmatter sections (title, tags etc.) filled. - Snippet filenames must roughly correspond to the snippet title and be in `kebab-case`. -- Snippet types must be one of the following: `story`, `list` or `question`. - Snippet titles must be short enough and correspond to the type of the snippet. Titles for each type must follow the format of previous snippets (e.g. `The trickiest thing about X` for a story, `X things that are awesome` for a list, `How do I do X in Y?` for a question). -- Snippet types must be one of the following: `story`, `list` or `question`. +- Snippet types must be one of the following: `story`, `list`, `tip`, `cheatsheet` or `question`. - Snippet tags must be comma-separated. You are allowed to specify a single language tag (e.g. `react` or `javascript`), preferably as the first tag. +- Snippets must have their `firstSeen` dates formatted using [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601). - Snippet authors must be comma-separated and should be added in JSON format as seen in `blog_data/blog_authors.json`. -- Snippet covers must be added inside the `blog_images` directory and have the exact same name as the snippet filename. Snippet covers must be Unsplash images of appropriate theme and content and must be credited accordingly at the end of the snippet. +- Snippet covers must be added inside the `blog_images` directory and have the exact same name as the snippet filename. Snippet covers must be Unsplash images of appropriate theme and content and their links must be provided as part of the PR, so that they can be added to the appropriate collection. - Snippet excerpts must be a very short description of the snippet's content, up to 180 characters in length. The excerpt must contain some of the main keywords and a general intro to the snippet, as it will be used for social sharing and previewing the snippet itself. - Snippets that are of the `list` type must be written as such, check previously submitted snippets for more details. - Snippet code and examples must be enclosed in appropriate, language-tagged blocks, be short and use modern techniques and features. Also make sure to test your code before submitting. Always use soft tabs (2 spaces), never hard tabs. diff --git a/README.md b/README.md index 4caaeb28e..b38a04d0c 100644 --- a/README.md +++ b/README.md @@ -1,25 +1,25 @@ [![Logo](/logo.png)](https://30secondsofcode.org/blog/p/1) -# 30 seconds blog +# 30 seconds of code -> The official 30-seconds blog +> Code articles for all your development needs -* Visit [our website](https://30secondsofcode.org) to view our snippet collection and blog. -* Use the [Search page](https://30secondsofcode.org/search) to find snippets and blog posts that suit your needs. You can search by pretty much anything. Just start typing a term and see what comes up. -* Browse the [Blog](https://30secondsofcode.org/blog/p/1) to see all the blog posts we have published. -* Click on each blog post card to view the whole blog post. +* Visit [our website](https://30secondsofcode.org) to view our snippet and article collections. +* Use the [Search page](https://30secondsofcode.org/search) to find snippets and articles that suit your needs. You can search by pretty much anything. Just start typing a term and see what comes up. +* Browse the [Articles collection](https://30secondsofcode.org/articles/p/1) to see all the articles we have published. +* Click on each article card to view the whole article. * If you like the project, give it a star. It means a lot to the people maintaining it. ## Want to contribute? * If you want to help us improve, take a minute to read the [Contribution Guidelines](/CONTRIBUTING.md) first. -* Use the [Blog Post Template](/snippet-template.md) to add new blog posts to the collection. -* If you find a problem with a specific blog post, please [open an issue](https://github.com/30-seconds/30-seconds-blog/issues/new). +* Use the [Article Template](/snippet-template.md) to add new articles to the collection. +* If you find a problem with a specific article, please [open an issue](https://github.com/30-seconds/30-seconds-blog/issues/new). * If you find a problem with the website, please [report it in the web repository](https://github.com/30-seconds/30-seconds-web/issues/new). -## Credits & Sponsors +## Credits -* This repository is maintained by the [30-seconds organization on GitHub](https://github.com/30-seconds). +* This repository is maintained by the [30 seconds of code organization on GitHub](https://github.com/30-seconds). * All snippets are licensed under the CC0-1.0 License, unless explicitly stated otherwise. -* Logos, names and trademarks are not to be used without the explicit consent of the maintainers or owners of the 30 seconds GitHub organization. -* Our website is powered by [Netlify](https://www.netlify.com/), [Gatsby](https://www.gatsbyjs.org/), [Travis CI](https://travis-ci.com/) & [GitHub](https://github.com/). +* Logos, names and trademarks are not to be used without the explicit consent of the owners of the 30 seconds of code GitHub organization. +* Our website is powered by [Netlify](https://www.netlify.com/), [Next.js](https://nextjs.org/) & [GitHub](https://github.com/). diff --git a/logo.png b/logo.png index f61c0ed81afc387fd51265e310c8ee37f372f9df..a7661d15e2ff20389b2318314aeca47ad72ee548 100644 GIT binary patch literal 173158 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�mw5}?xZ!K=vJaO!A)HdQSBPIB$5D)% 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

cV4^6q0{5qM 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 z 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 E02RepCIA2c literal 50487 zcmeEt_g52L)b1n{5kxE?id222SEVCeM0yRq3Mjou6A%(a#0n}>1d%2ILX}P^0Z~y9 z=^!;AB7_#C1rn0n3HW_$-T&bJa9JyhN#>k0r|kATd(UH2V_jBeE@l7#SoLmPGY0?$ z@Dhq(Vg&znY!2sw|BeRUunh(PmeaHk1ju-M7W@$sY_6*Xl>gwyfnVrvYZ_?+z=tH3 zeOIvmr|){#G%fE!R>;vW+&!`u$j-LUugdl@FxQ`N-}l_T{e_aRc{6-HXv=(H*M<%s!c^=ti`H{e)*i=77C0v}oxH(I?vf4d;o)RoNp4d$4op>l%p*a?|Fr^ki{Y}O*2% zPg8NLvt-Q9j>kk+IM$@GxrZF-5ycX*dJuXrD3Dx+3MG*=9-INzF`X|GaSXjNk4sx=OBy zmh2eX7D&r zx8JHx8`N6Tz)MmDu}Ee7%WqEqFFs9S4oAf1su~m(Z(={J>S4lk*KYsd*^9Zsmy^Vu zRO^=7N|vrQX-Eke->u-WpQbibX`)LL@Be#i4!%W6`tT^V$|NBA%OMS1`(u#XTVo$O zd26?zY67cv>7TVbhKUUr=ueOBijfchBVUdz3+n2*(7KXT9x@r7N6C)wRdzCh7uDduV( z3m`X>+G@9m>dsHRuupf;MnlCCfvlys-YguJJLXnG|ID9N!+xcoZ^5Qp>d+1JnUwU{ zSY^I*SNMy=ctYETUj+CaIgdH@&-QzE-y8^$=Yf6^suF1{SuNF#ossUUGB}**HH~Uh zUF#8X0|lbh)d)*=$jo>-<{LbDS>H85%=vHz!1$FXxv6o5?cT2A8=MZ}7m5LgiS6)3 z$MXdh{~->?@f;0oga*nKLM2jfpa_th_$WFlI_~3X7u)Cmd$G%Q*vQZR=x%D9hWh$b zFV(i`BZxRn6t2@H;*tiOD0P(ou#Ix1`J+@4nR3LU-x83N9KW}mg8zBV_i(>}8vjP3 zZ+~OThWapS&&cb@$=A^9W{{$wnxxrZUE!~&iB3nfG!6%<@mYN6L>?1VMyD?x%SWB@9%%(iv4sUgIVLW z1)3JV0006vL!g-M>N2=I_2sQ)^}gJei25fkAptMYvS*+J^zSd(&Us!+r;j}xYthc? zy8<)B3p!AIzX0;j>5sg3Q$qsvH#}bJDHTxV(wt+C9=5LWNJrO*dk4w9J0YDR(iSm? z3wJy01E5{Th64AJ)0H8*gY^HY=EN-NbMPPbLf5>~DY!43fv9O??B{cUzb&Tx6FkoS zNv{H^v>Z>0AiqQ(Kkv&@<-;yH_VSyuE%c6ttQ!AiFt?R@>)+Qnyc2S1YWHH}S{YgQ z^o!IYsI(XKl?=n(o?lN7Z)-edR2q#gh5WodGq9p34a^RSeK;1HOGn`g8%4u1>zCRiw% zpLg^|cU1=BtQf|f`QM?SU6!ez-)icBi?3d-vNv-6x0iJu<QUT*VzvM}JL z^tJI{+*TuyrF5y#)Uc`mn5kX#3ccU}D#D942%OyvKvvI8{Yd%+W$&ICVbb1u98IwhA^a~ zg~R}$F|q%v+I5;Hmv4j+0xOo%Y1zCHR7jl4o$R|L`xmVxi-$2NL{^<;8 zZEmzFH!#Q%-?P;Sbegb*C(ts(j^0PU0aFt!~_u0k>0 z!EpRFgcuvu2yPupPg{e#gf^!E(^(xL-5>hvBGX|UtHHSuX?}JD@O}KpjLqVtST5h; z5(Nbuw>!BI62kgse!TKV8i&93)s=c-Vk|$i&!pNsK_i>=mtH;jcdMqXbY0xGE>Way z^_(QN^M2bFx9?%69HSTp7pw1_nmcKaZZlVohBtc7{9C8II}9LJTPA3a04opD=*sW? zJFk#-6d-Yo`}m*$KX^7WU*81!oi|}Rluv|YDLs68A$6~x{=J9oT%*mp>c8h4#Vq>H zJW+uXY{3&7t+5XCIc@##77NZ}aUaS5jc^1M_M`A0wZRV%hqo3Jvo$|wXzTPd*l2o- zUrIUrHJ#V$*`HJ?T^KySR5Z1DNthF|T>gr8C}iw^q+JlR6wt7deU}Sy1C-T-;^i3P zp;-ZHdNztazr_zSG+eT~5%j{l`d5;K0RQ2*=+|lL&yf%UJjPp=0}=69bP(}xEAE-e zLcTGZTe?H8fjgaOw*AjJ1?ewD=YOdsn?UlJfWbM%@Bb^_elx$`#dGPL zezC>w!g{x+;GcRwy3YWYCo722zdw4zph{GPljm?2eOV#voXdtoo}ig+>HlHi@NW)v z91L)pF=$i@IGx~HkapNw!$P3(Gms%Daol{*6w!*^`sU1i|seMbq2K=G?H3vTU*Zm zs{)tQlQuS6nQl=9^WH#L3QK$#r_BDDHpC8VaJl`uf~bufYg-uWs8a#)pC?TI#6EMT z6bF5)PddZH6MH!6K32@GuaWMI+#sSD@cnK+w1tM>Jm1Uiaxe+-oG%w@E?t%nGJ+WE zVg4CUjZ9=N^%}bc0!HuYmzuQOnh*Ww_E%YO>L)w65W0=;&a?h62IIXiQl1enSuK7Bg9FirSMAN$wBv=9g&tWA9jjgORS*)qT5mFvtWd~7J;W80vK zx@zN9(n@u5cl8hDr!Nj>X6n7@=q*|{AB}!iVB;4!Gm|SUA1d?a$W;d-21zd^NO$jU zP`V|PDEHOv=w%*6n8??tjc-E9E+(VdQEQF=EsCLro<8QIUoxM~foeM**r@dl{Bd-s zK{592Kx<!0}YNw#G)YpM^l6^jX2| z64U2Er4BRcHPOq34D^WtCISGxs09qmVeRnJaxeES?5LgajRJn!xfv>y0Nn4P8YRFp zSF-x!3jlWy#gP?|W3Y*sdBLoaQwJ`plf0Kr-5WAo$fD0wzW4VtX9ay6tuF#+W(iSb zrZRrp-f(J9=CB6R4e6X%0Zv=G6Gb{Ha151%!S_k3pQsVlq_x**-Uk95tALqtk+x_y zis4mAj!MS2h|)oK@)pKgD~*c{vGtHjX(5q;kCd@ zWrlRnKm4wMELsDiN3R+(@Sj+DEc7lAzTXL7k&a=8s&5yYG_puFOCLRQAhzUGCpu{n zsO5#lhuyPSmx5ToY@Yc@|C$}Fun~`>Zc5C}b2^bnx0qPf1s8G?c=gq;al}s4`5kH< zg4d$7aK-CKQ#tk80Le`UPp9EFoBh0^r)rIQ`Kbm*db^&F{gd5UAJ-gF`Zt0Hwu+p; z@74eOa#15wT#?dfaLiE;bB4v{PaGN^mYLg0_uHiI&9bbK@o-GjuP0(wDEfn0CVMDZ zp4yjiKHg&Ltr*ghO%ZEh1FVmY9IsTbc@V47!19BdqYa;m!ndqdXOn#gigaB0IWlRR zDy@{N&gvLOk+rKTr+%}QFC^RA?3jsXutfD#De9j`cx(^>624mR9PX$@t_k&z>6jdtf19ZuB-yA2|JCNV z-xB(bpzD0TbTVv{uZ24V6BQGKio(?=SgX}9N5O;d&Igk+;L&!T#5yz+6_-sBv1mLH z?PKh~4~cMy@exFRF(&^z3O|U*KL&87iGd%wwgQtW5qdD>!Lj&_>{%)ssSSSCmao2Ja%Ss}{{V8k|rNuB7>N2(gb;b##BziH)mRChj zOg3%3yw|$FZBu+9aN$SR+DdhA7;SG6{>{zYfE_~)7vejPB@w8E;eft^1I7F<9DncW z5o#pPO}19yzb%6%e5^w93F!)RW7p}31>P(NRAg^?eOWh9`An-VEv9KPOv-U>Z+kJ) zu$_M}j<&uWl^BMZ$vX@){4mH@nz=m+!2T{+6#`O%n+RPW;1qE4%zr5{2Cmp95>>Q# zx8yX@BZBxwd#%`+SHC>F##OR-ZK4^c`mJUvDBT@M-&5=!j*WT;A64D{K4JFYe#WW& z?Fx7n|AAGr`)v&%=`_H=#@2jy;ks+KI!%vc#4Km6Jt6~qiD!UYYCCs?cLzJCjU_oU zc1~*YgHr@*bRjcnO9q!J#+k_?7b9nDdC&tt^gWU6tzKWpB5i??>0#gEnWkDB@KK{h zwbh-EL0rznBcfU9k3tXD*jOqD9Fc{1Io~+_LPr#k(Xm`5thL%-X(AYx*wATYi_&LP z3ZU)vucRxbcpm-hq*exLcui;w%^$#g2VRJ@N$6Vx-q+V>=b1I28lU`AQRFH^Z6N*D za4dSIgBVL6OPi``7M9+9#suPY93VOE-OeipxI+P_3Hk?ez{w_eKXnH95$bqPmDe#K z8pSwS%g#tyk5v%jWfWy<-u$7Gyw*+|1aZ>}qPW0-Sboif9tLQU=qqOjOluzH%1$?M_9|UriOpS982?4E#H#2SBosol+RRX z>6{AMY@XQMv`FsW{GmGje4>Rgy{xwLA*qpO$!UiIB)+yTziA6QwhVl!W^}o{5T5?5 z90>?HI}!J#jWqf!s;7VEGs7@h;orm>VF(l@ir8*3i7PA%9yE3f8uSY=d@pJWLnNsY zg@+Ne@hZPN(*-&XK<|RyK;ibh7Z}yVOT14vgz$Qz@dMklOI(N$$aUU}N& z+=(MVNH-)0!^jWeC;nPLuWpPaUGAw@i+5_uhL1|DIEUPph>uBgjHFqgIw5ii*Lng0 z^X6GkgYZ6yIEq=T3&5_?ChTG*0yxw+Gv+|sLiPHwo~#KFz9GH1)!jT4cx#0!`WnMntjc(#^|gk zd@w)Ju$SZ%Hm4=W4?YcHJ6{3ugydiuY_ekA`bd&(`66xIj_?+l+LG?maj_rtl}VBe z@Br#y_6dsXiY(9Fw>xW7%dPA2QVn9|4Hpi>+G_U~t=y$f$1ff&$jgLY&MionBl&*j1wM{?Tre-Hho05Pk@wt2F*PB9H%jA zi3?xMrshX23{$h#*-lq`OqBS)D&<-ibKZM00Y+goXMpfJ^Gb>JqA=Y`G$72?8JkUv zxYK&9<_nS}y6=XT64YbWu!Q_PQa=@zsX~|xeshZE|6Gtd1N4gTBNmP*EkD@+E)9X@!Tkb6Uo zpjB+vZ%4I22_u0dNss^u@yUdrV9fJF5u+BIF)u91tXT4MI>A-YBBDY_j)Yc)qmb;F z_2{+4%!TA-$Hu>3&QIM|C)uJ7xCuiZ_y|t_grdU)(|?TppmhE*q%w?$?anwi(e&xt zr9RH67_#xYU&Tbk$BZ_7RaxhyVFWSKnm2M$fbbzH`upm1%LGk>+G=hPa-~x(J`XS` zJ^=!UTtAa0d2C~j%6h=y#GG$Oh<~;Q6PcT*l*3nt$27BB%lS=XT{tZvy9w~!1jC~= zBrFYMEbf-W=0hua?C7LRpwcDur;EBri1|xw(V-*AO2E_t{#2NM==F?bA%l;;wBvo+ zgALC{d6M^9x}{Vl!myi3uBN*U0rOC%NU2_ft?DgmCwnDa|rs(A$t%)p2*5u zYILQ~(uj11C~|%3Kjzca+MtL6t~M*`GZq8a&V>@92`TDsT~em)(QM5)fAs3}krGI+ z^0GK#j*t4&Z?d7Ec6b`upowX`&#d8L756R;a{V-b90kD0SF5E&1hj^8fMwx&KzE(B zJsX6BqDoxMe}Djc0g)gSbUV}GlIINi&L5bV*mX8fjj33|{=Q}S)DLf-hut;_E(btE z!?{2O5K8N|wtRcWz-gES1R5Qk-zXxvb#o!U-drYoElDB%l(!J+!?6ToV`zJw@IFm% zr`D#L4v_FxKmQz>0WQN)qGJJBe46JcBY5lXBHv^#oRXx+#FV3IFR3i(bz>%C!mots6SO}{x{)j0(SRh6e*kXV4ZF8 zk`9ZOXgf0eP>`pyBQFL`{-Enlg<|1T@XdG88gjY3@mo?*doZ7P!K?%Z>QQ&1XS zTYT>NB@{;O>G{Cu;xkeTX%L@^jTdRF)|<`Fh~|!&>pb4}TX^4ssUc!8%E6xLz_x6? zk%K-iI3IYG198p=7!PHpyPcGA4}1f_&NY~g*$w$&~!{R-g|7SGn%9*w3xO$=&Ui;xoF z2N!`5_K?e~UBjT?KK;-3De~x}Ug~QcX7D-K5c|gn?c!E<7;(Sqnz#twZb9ME^V(0vSjuP^OhRGfNjv z&26R&g5h?j-xvjD{}a1E+WUW5o5hd+W6CUkDJa;W9f-dMI2q$+H-@lgUUt|*Natxl z@_2H)qr=t9fP(`wU~&m~_7I6z-Rjd88zlTtBl(86GjKN0=#IVpENjYl9-8RQeIV_H zPYw2R>#MPUw=qqOMtvmhzWazNsc0Q{tly*ugL}MUh|lbH zE{WoJWD+!owp_a@W`Rg)(~7D8v}^dLskb)nvF{HDjg8C+Qn+s!WeUt-DXUmC$iQ?T zXl$mF?Q!6U6QF3yF!S~l%8bF~*f|%F9b_h6=PThr5PMybfUZDIa3QKYY>K3&0Keep zgm!7i@({Q^FNNr3UVDT*fg2CNIH~L!G~MYW7Ayo_AkCx;*R*VmGmH*_JknHtl3IoX zO~W+oOQC(V;36G5sT?1}^=bBw(1}cFsR^5uH2@}7uv#7J`M{q)75;&qX`;W&o4nvc z?b#-?*jnrC8A;5R;%F@%8{OwfSS6SHMILWjiz zRCmVf3Esnba$&7uAt#FDH>w0Xw?-UWj72-}ts^I<1F=ME^BOv5A;)wnk0mh_uYT#t zEu7h)-7})&Sk047XUe>D>dxQ#DL(37z5{jl?8ppgO@3P;oSk7%F7BLN{arLM6o}#j zGG@ErjAy82^ay6gBq3m>fM!C;i@NG}U_Alp!JJv}XWCcPqgNyde68ylBn$QeJ5P@8y~bW(#SufwE`W^l}Ztkg6Ys1K?11{LbX>UqX zA-y`3T9t|T#GfJA1}1s)40@; zM#%|ZGrJKs_2cxb9K&2^UWVIC%}vW6>K$Orz_wy2EQ?suX)b5$bmg4fUSIUXhlb3$ zV59*TkyuM#S1A3<%=09{@Wm)L@C^2=NU@P>NjC0!_4Yj;c*e3bX<7#O0*IrbBf;oDtj(ja>wy= zrC;wR9*sg-QoW*_i?MZLY{dvJ37oI`FO{jy%D##j_-o3MwKHeqmo1KxSUcxVrX>dK^kjGpLxK% zFcD0syxM9*c1yfroa6(MW;pD_n)4)@iKE8?bF8AKX@7t?49`P^Y##ZDysqHoc^?)T z-RWqw*Qd>P>45D&(Iur}aHq)f#Ah%c*T;W6jnnG8K9Pw^)ZswDPyj6GGaCN2dinOO zru`tZ#?dUs$@jTOt%lEO!duJI+M?z0XXrC{RAR+PA#FWnvseh{nIy_c1}r zaL^Jl8XUN4Hq1;Cn2fe7rr7firMxl#lj(dS`y?uLk?MGM1^3%g=&wLaXd za(r_+{J#IFm9<-_-f`B{oqaS3$uU^2&wp(fbCCg95$^(0^Za!1Ny-z*}``!C(ac{$?MgYS*qR|1;-p~O;C;+D7 zk~JOA%@0>BGuVVICeJoug79liq4S$GoO#cMC=5)%a?kq@3-XY55-?4fhDVGh_G1fx z^}P*1`nSArp`1oNXr->0^1zt0->Q7JZ_oMIfp%S)Zi$+Dt}wkwvp)y6$9CX$rZ&~5 zA5hJe(OKGeu)~yIXhd0@w3IGGT>L)^Bc3jIg^LbxeN6 z+!p59ELUqyN_gIKUmdoqN}dskUsgc{2M-Er(fEvsmZ(Dopgn;n4ffjcE8Sjr7)B3>6CkCO*m)3DwmG=&(v2rQYkw! z2{n0~P_Am<=>;64vYAf8LdV5STx98!7v)M?C*zKfX7{m!q-acNW zFBFM1fpLQwM369MrnK(QOC7==~Qxi|)o2=&ipv6L_RJ{IB(+Xu?!@(-FRV(qqWHRrK#y2Cr5xu+t;L z9D{r0^mO_mrybiNjnjDwiFUjj+; zPcvj_Egp03uW0zie8k;shVU}!-hXdW3%ic9j8_Ri8(a-N<*A+@SkA&Muzgl2``(=@ z$H>X5)q&L-qYTvRaC<;Q4oe)V2eFk%%9?6!uUjTXte+kc5!a0){O;SO%X@+Wm30}6 zuBU%r+(DjAE)~8OOvC<1^OnuEPecRPA#b4a(ZW|tqWH2&lMAo<%6i(22EYGMT6jA? zQLz1_#z@(V0T?QDYZ|##>K3EcdMOxTn+$_2au(CF{pwjykVn5}R22AYbIiC4@8=WQ z^4bbkXOeKWMFy;zKbn50jB{kr$iS$reqElNC3Km6echSyv5yqy>9Ccbvl*tI)&%z} zJ!=U_C}3)`$Y<^w!IY0>5$^;(wL60-7NTg!RtaXqWQ{aN-j{TzeWFXwpD`JPL*m6p zqob$;ox)7bAh^||dm+EZS)}c{l`@eOu7IUHEa^Z2QVlcEgfWj4xX0A_WmCDFk&MzN zd6&%DYyoE2L#k$mpbMw{TQbeH|< z=oFlm;s6NM?pQn4&&X5zyW5SfZhTTpIh!0hoVfjbM_>f{)=&A(vgrO5lz3?{)d=|} zrJp>KWqb^%)*t=_YJnYGDYn3G$ciig!b#<^uMc`8;+u4!(-G%1i}u zeTaPvvv`h3+5BBFvU6~xL3EJWN$T)5j|YK(bLbGPb`mrJnfr0QYFm43G3#*yr&Z(O zOJ{6T?ti;HE}7-qx-;%0Hc`+Ei?DgP4M1`-gx=lFTPGjUr_!M_l0k8J{gn~kWqTzzErMO`dI5c$K8zk5%aYyl7dEJoc(;`*_pERG#ZxY zR?>Y;m1JU?!=1-bv+&Yaju#%QzezlG`jmt)}+4tKnSVEv0DqBtWm(=-V>ejLy z6~H9VF(VC-HVG^^`lz1U#R>Y<-;AsfWvLlDpSZ0jU1TbatF-%o(ifNk!$D`@-d}a4{RS3YF_5k6BwgTMn18akJ|jf;uS?C}nXL>NBlxc`oKj z9WiV`56H+2UYv@%FvXzAXl4j;BD-&k7B0@|Zu4Cm6oqjV@mK2K2=AOak}N2YTl3KV zQJok-SY^XYwf-d(0ncJZZI;cM?%-Pp%HI?7G>mg?hjk{muPp6m3WcEk##U)+g%V~F z>=qROQTVOL9;RZ|W)_2HZl2IPua_Hh6;NH!WN(cGy&NK&n!U3h$Wz8?D;hCaakxI( zJ1u0P)v_MBds0yL{U>*kA}fv(twm-3rd4?wQb@oRw$&GHNYs3kGI0|72fHn2Ujbxv<R4PRi7SwQbFeoFL9@wMLrOTWdCm;S7ml zhzEhLAK@E9=%YQ6<0n_C_@9Vty8W<4x_)Tzxal7AueVf zH>Xwyjv7wCUeHs3_Rp0tn@w;Iyd2A@2;s0B-+3VG-`^0{B7r5Zg~uVieH>_>s0pl7 zsJyf7&D5eco?3c(NA`Rgaw2b3vsVN!vrnk3)APCQt@3ooYgOBOD5vYEe5W3%{7a!P zraughGjQfIsD30$s$$?7FK^w~Z>lS z@@1Uw&3FtvU9^)_UjMmH*Jt+3s)-}dm97VC%ksvN*i-lFJFMPY?8q)S)=PIi87BJE zYG0fJ{&+LY1V*T8Fx-Eduiy4LSEV_`BS_@FDy{kjy}1)WQHAi|DXub^)n|gSdNT*T z0Vy72(-OM!j{r*4SM1rKUA#cb&CTvui;riA-oN_TuiwpwyGnT7QpmSh#VHhPqL!8JbFWMJN#WkyD^9M)jESN) z4g6kfbNzTuv}SMdkBov)aL?XSq<=CpTuD-=G@KV|;gh}Pu{`zXgN)C`E$_(YfMEM; zr2dgId$E8d3V-fuU-}=O%xe{)Q_{wSveB|1GNbqZ1Tm%zE~a34LgEU32TToMIvIoG z=8=5C{{BBUP-eG=3D^1iOCgKB6?I#3_X;FsHMjY?9Aa=m?e$YM1b`fSSBp~x@zMe| z)Gq>8@2Z>H!^ebG+vs>-uUwN66W%STJ70G(9Yl`lGxw|+g>JUOVp*IQ+Y@ui=?!5NnO z?5)E*QhxURdiTzq&qvK>3-@_%C@=K4mXiGDT3`x+KFJuqk*QQkLPx9lqxWuhQ|l%* zN%AdhUXk}|{rZ;+N#6P-jj7fCC`a`PE9sSL)2eTHS=GY2FJ7r-sRd>F*5rPM20zM- z@-r46YVI=>Q7ewasQuWRTTw)>*@VItjNcXDSSIv45&pN|Cv1La&e8E8{fDZmP1&e9 z37nBTCvpd*7n=l=CIqw6g&jP_Z2G==CG+b*UZIr7fAVH=kFdVp+70b^FMj6j&^b=h zSRFE9f*c?A@p!?gal7$p<}*ug#V3}Be=B)8gj8Wu$e4ZHZ zxzK7;lz-0q6OBF5=7fR;YwP5>JUE|Gl8P;1?D|h{S>p$YRlD<)M&T{Wu@PjpyBwV$ z{R;0eoGBDshQX6HNDjnm8`F;$GjiJn`k|hT>X%PjcXt$uL1< zN+i62+u*TRmzKZ^Ti)~f=kHR3LlTzMA1vkhREV-@kDR#&){vC5Hi^+ch9QOX)k~Qx z*X$79jCtEY>IBZE@9$A7|_doU5bXUP`z)f8x4T z)UNfYukBOD#YOXqq-gejJ$#`$88;)B6LR^y`JUNrd$4AYT2}v%tRfXcw9WGSaN4nK zYIL~OH%o@RDw@AK(0Uqu{q0Ux6}jK$$g=2!MM}#TkBQtadx;}1cnO~RcVMx?z(O8A zsi|FqZ$}&EUNCxFyouT@BWnLJmldWJ1be@%?Pg}x;=h&Ay#A3z6F()|X}wIe_plGa zat(_1grG`2miTnFxPHi)dnrsE^HGm@0pzh#x{-&56t93sP;|s{u@mR5?D zYVSYGXCw@>3d)TZmc1u(dXr)^5^F9b&vtcPUY#@_XO7syUuSHbmmS~NxZ^#N<@e~c;$?TFb2X=gq?EtJ6LD^{vySfyvyWy`40buMfMBdnt~tnP+^>G>kMu;y zDOB>;tpuaZq47wM<@5b71FpgDMaZf}%x1&SXE|_A3D!iu7r$pVV>9&G%-OoZTDENB z{yT8HZch1c*6CnJ>r#!%B)Q;6l{7~l2Ys!3o#nd}G@g-hixjUlR2to(JiZidbFEkX zeOICQ*E6crW^$+UKjv1uWX;hS95RRq1Uzp$i&&ZA?gRddmc%HaaJEr} zpQ-6tt}|UdqEbZk z2TMz}M1H^57kcWUnTV84_0u(La}kOZfL$6t@}#b5<+r4}eb@bS$<`^iw-j|qB}o3X z_`KZZ2;A=$@fW^TFEAfWFTQV2G=AMJ`g5Ggm%}*TF#6ch8f^~0@WqVGGidgRUyp?x zMsH5Ck#c-l?RfaKriIW(W`W)Ymw$_>AjhKQ-7%weuX*s=F>K2ukKC#+x}A?M?{uQ% zUz24tE3_9sy!U*&wcowN#*KS4R@5=vZ39M4RnO=9J{)%$Euv%|XReW?{!$Ac8_-Q* zZb8M^$=oX$cpy+?ZmJa7DG8Vq2V-~8P za^n5Ue|5e~F1DW^8Kbod?UuuIAaVEKdOaiNNNvAof$+VNv#>Ei)r7p!(z3OW)z@xUGWQL1 z_m!2?-C%HWvjwZd)ru%S*(2mZBK%S2M`;Fl70Ade zb7v{(r(Z7BynIyGg0qWTOjr(kH?xGEeR!VRG~T#I)=2pM_{~)ItOwRgkb2R!=A^0@ zg^Sm|B5zxn?cCK7>ej)QR7)sBCL4m>)(D%Zi`~fZTV-X|NOA5IBuoTW;?pe(bVJLl zm=&K}42LRDyfscQ(D$_7nHFVX%6t;4{FbsN z?en^OPZFyIx+v+U3pVBixsI3n$J=lZylYRrU~U^Z)?CxeXN97Uhu@_-D}BO`2jHDg z@8XE5eib9fzikxVDc7&Gsa?{qXCt3ucp0i?{9JFbSB4xOX*pIuU^`x&Xz`P(yQ5q-tj0Z>J^rePkRwb~@|p3#laJHQ$-Pxin$Z@WwfOmOEOt#yC$0&N z7#UBJkiJn($G=wD6b@X?xNwd*U1i)J!RJUd%lB0;Jw5bb-(h7LI72q;K>ueA3u%`0 zRy3;{(&icAQ8TgSxIH%hDA@*?|J2RD|8L<6fi>|pCtk;NxBkKtIY2Jwsdw#Vo3ed_ z)`i5k3D5r==iB#5Xb^ebZFky4U=%hg(I8gg=vlyJD&RJ}gi(grrRYnj){Dv-DQ_ti zZB*!OGHsb8Yt*msd23`C-}rHL^Lw$aGm2G5$W~biBuIi^>A#hX8>~8=L!;z|&Dfv) zR?V*RYXqH`BhLuG!16`>`>GZC#&3_K`hPwnJ*e@jbsXEm>cPmVE%ofoou>0vb$lZ{ z*s5s79hdi>q~*jniRuxZFPr7oyGES-PQ6IuVcXQ2teWvL$B$Jl;gvg4RoNm@(Uqy$ z+IywzQV&JIVge=`pLusz9sDv_s+WzVcr#1?DsZU~??cn7SVbzBtJx8jSp!5ciF_&P zq_W@05Nn@hK`mJCa6co&GxMO1;2zE|6fSS1d@Wfdf3Z-4PgT%1`Hm}m8!PC|c!ySU z^PM-|oOxrQOO)psQUw=gG`g3;$c%h)#&>koud4*g8ol_wqDSPFhmb~OsWQafY+G-d z9Pewu6Kd?)bX9YtcOh%VZea>#F(p_~7Aii0bgB1TD)?fHmw+`aMHfhyt`e-y|72Sh zQKp1&WZV*AG0$8H@R+Cy$4`H+NaN{UrUc~|S5-Ex@qLt)Qwk7Yr04c8*bEpUF#ffK zTt5le?cN?>)ktTYOt;3oVF5pr&i|>;(O|Wu)B)S;L8LCxf5fg%zotvJCjQ9 z_1hWro(k~oPcsWhghekNS>gXRS`CX?Ml^vDL3=yfFnrJ}rsHkX9n#+vG271>u?~Ul z49BYriYBsmSh7sLAscy^Kg*vSs5uqryX2bwvz`)#KIM(bt-6eXTZ7}JRr>AmqFWjC z5Dy`kt!sdVPVDWMK@YF!ObmpmbfHAujyiQYRp^!Pc^Mt+LeJSLShBFx_C!WEF-?>V z)P*nY>-ivxq*k5gkL}_6wXXOQTE5pC z81xYVQ{3lK`}X&i1Gs+`_&0|lcSMH<6U=mm_8*ss(bvd0Hh3X!E!W0BOhQlXrGc*+ zc!Tep26u|9X7|6;?)4b$okltQ)!D{wp}jkac95K+b6>&S`V!#ga|EX?G@Y@QNnrDh zb{@9{yz6mH(Vx??RCc3_mE4L^(mn{{^Q^C z6D89c7w6`_bcq6k!wB5{TD7M)S=)XOQ0yxl4EdCRSUn7jYBmHAq@4Y!*qn#3M1kRRD4tAFdYcKOK%F{Sk(NuTL z*7KMTu%iYH@gqBBvKqiF&T&xkOfH+%ILdMmZ04VBg6qPjB@wsIpIal6LLF=u_|UMb(2 zx4Hjqvyf7LuZL^+xF3%O8c?_u*U->FtS!a0c|QEZH@GlfVshi-<senyPEZ07=#y^56I57 z6BO~=(_$0U5sN`jY1MW-U6JJ0Wf zWN#>eZ?z(nx2Z%OC1+M=M5HLfIcIO!4#HP`&QL!0F(_sT^2g0nZGP4-_N8_N?Ehrt zB&Zk)!Q@56X+`HM0q(gohOl6}!T|2UTO6`Wf5#)8GN35jXG=uTr@>yB$sJOl5@b}=jWi)-!L(_5E zjUd9m9r`zlceT0}h(7s!-|?i*=@Xe2eqc>L_zv42@O>C=WVX>a*omTT$OLl(dxn>O zxz?5F5SjV`EgBK^t5hr@_i%+1L)I@ z*9c4R=sB}YKUFof8r>FOu5*yR?jcm<;UimD>}wCAStV;-vxY42Z6PCtL9(3EpOpAs znf?y~Cc|E}(KqpBRj7+bJ$Umpl52mEz{ryN;Ai|XmU|`pFH3#7Ggs8v)OKBF37|O_ z=a*>0mb16qlHoHze&!E-W%89#>*u~xHfRtt`8pBR6|**6nPhWW7_Vsuo)ux292%rIn$w zPkAd0JaX?QlPhodl3eZjV{F6rd%;=?l|RZhM`d$Lo4L?pHT;Abp~KaZ|a!UrA(PC7T0p%81I|V+iDvoQ^XJ zC-;8dd*?#L9@ec9?}VV=#t$l%h|H*vS?V|-4U9z8XB7pgC_BNHyA)orpS$;Ud0nuU z!R7c&ypP|Nz4CjQZe^^#G5m*JM~Nkph5nhk!!NGSq-F0Vx+;HHF&Q=*3>R^k zA$%6pO~Oux_8p-R5U)nwrwb}XA$kRhT3eH{=r+&)Le-+4n{$ZtBQ$=T5NS3F> z*+gTPjfAYhx|vW*;h*tQW=TZ_UYVF-E!&L*A1NVUQ^6#qZK%UFD-0aGgAC<<)9 zd;}5gRS~J347OMrSzZ|Y3N`!nV6E?5uwjwYX}MliuWKK>v}|eA$5PF^{8A7;2RQ~V z{M=rWff&Ry%(BySAn($PPjTf3Yz~kwLK<*pF4h6!+Kk3)KF|{`9&v8LQHUg=;GWMU zpE-~2g*H>&p2~B<`CWpXNf(9udaKm;zef-dx!!VlzGpN(D9jy{6D8v)+9P}75m+x7 z4@2|oN%pIrzPgyCVS0RI0#QfFtzqpFT~f=GDoR#;=R5j!G^mJmz)b8 z_h{ZJakJNLZjN5_+c{9>OYWstdb{B^@Zz@fhkI|%t>uf}bgDd|;vB67G>L4pJLa)| za~WCP`u)6woG`zZ?uIMG@Ve-duPnW}vf#1x{Sq(MgnVAbS#_^gf}g#IS@)h-;bHm+ zUJs$&;FB(@zu3DcUe|PY+Y`AcpJ5+7eelGB2NZ{Bnyr|P&F>N@@^wVQJPeSY1{m3mDq573x8S2@-tZw@0Q;MZ-89y#& zwLY7V7zuhg{*j5cyOP#b75&(`7j1tiY?xY_uJ{8TA6Jm!AY2vB{nYQ|J!>oy;xXaHVW_shSYvEMe%6vCQvWqv>IpN0{y%*CL&BN1(3pZ3j!A)Hn7 z%pcfVcY7dp{|3aHCX_jQAUM?nW%7EwW0OsW%g#oXRv59+%Vy_Qnzn;XhiSJNKS2^_ zLf1Ms(lDmD;!9I?WJUITm_6O##~z36FpJ6b*x8an2iPiG;c#BqC49bjR%y?eu((D_ z==yM~SG@YxIo$pIM@VJqxcv(u#~`m8-E(GQEHZ*J9y{@u# zU@&iG+#44_Pcx&tk2}On9?g&wo`~yy;Dsq-q%KT;2s=vs2(&8X>uIE$L@L9NcPnYG zcUkq6Qw2;ld^9K)6LBq=9NFFmTo!--e)?z?^RoI&PbNC(=ebb7ceb-9pKvrh;L!Fc zY}Egb^#S0We_Fx`QFXURK;(EXDLShodvM`0kk;F1GJYPf1g@dNXak8*<*k!@eMV?bSb+1ECj z3glfNykPIJRG!P+U01&S$|F5%=*Hivyq>bE?QDTO}i)#%QeazbKM!v?wQ-1hG}TpYH(7`gZ3+UQdM^A2zrQH zGe!NE>pooA5TY;l@Ssw`E7VC;3PN`7dvt_ft=Y(B8%kY&KfRJdzSrB)!S~F6!2!z# z87M#_^Y$2WosJ8=)3{&lloeX-hpWm0 z=et9Z7E@NYUHxCJH>#$@a%=aNN!;?%;L5Mzx7+OdyNvJ=pVOi|^9W8+-g;QPfwl;u z;|>{CGMIiV8W11gFzL3INlD*($K-r6$TK9}atICtyBZy#*uPnjs-sO7M-Tin4MEhlcY7aTqUkDOHAeUz1kX zz;ge%fogWD1yMJ)tFX1N2H3Sn$;tfTu`0JR)4LVc~c7g*F|7Iist6^6kLD!h-w~l-h2C&xZgZ*f_^pQT!=x$c+F1wIMT70 zM+J9NMubBaNS~hhUw`PS=tcS^(MfoK@!VldV)~1{=|K(oEBCVFDkPrvPtBe9!8}+O zz;WYQqeUaX+R>`-)*=&tNMpmcFfERUP*Eth9Ab=Z%Ya}HsBq+#Uitd}c@?fnQw(!r z!o$N=UPVw&xuMbMOj&XjtJp8;U@s|ip{wr{rSR}xOukCn7kpvA9qC@rT3{q<*e8H= zA^P=|n1Y2aLdNW%gR^sUxp?|Qm+I$Ak5Ts?TYG%}XL2l4)r;5>67ZcyD3-8^4~ksd z=nQ1Yw~?g%9BJy?V~=ZY5zTrh(|!g}ruF3jjYMu_B-^E||C0hSf;5)so$A!Q%Q=8Q^UqGcNidXMMr z_R|)bSRaNrVol{gW&PjXoRocKd@Jkf`48uTBs;^*2G3_1Us~wJ z`MT7O#Sb~}$JDNa+@X%wwXl_x*iCT@?5%UMCvva7%HH$*=FP{-&?9Mp5rT9_H##l2 zpF&{4zqCj5Sz*o_z_)UcY2+k?eR>jqkQvnl;ersXfdNrFdcYfAU z2fU4M=d*(?6R%y!0B1XtN7_@>GLjGe1=;>0!z#I<<$*y$7rPFK+ud@C^}2-`tmMGj z2eSPuD8+wllLS6as{7$z!N@>vZ0>MF7$z_A8Z?W2E{%Vr0lhWy60XB0R*HSj-s5$< z03Ju&I37P6I2~0g-K=mOS)hc>*Ud+0N@fI_9&k-A-824 z^A#{m&e(3)wJ5uRf4HgV%NeLSF`j4M);|PIJ&3?uW(fcE6o%k96(Omke-qnI*KYoP z#TGSdf9es(GTQ#o-&`|^Ist4vPW8W|?hNcz%uBS6?}8qNeEo!2<(EQouocI@d{vhLk4YUX+Z&1}I?lb27DyO%W1oVGR{PQg>R?)RBg&qKj z)FP0NnFz@?8TVrI=4-At&qj%<{ZqyU7LR(pCLj-h=RY$5DH~{&b-m|A})yi6b@*L>DXPI7BufYR(tZ*C{3&8+Y##2^hDdbGtg=@4dm@0!oID z408wn&~=7RbDa%^Tud~myYF_X-}U=8W<~?Prb+F^pZen3U*4-bgGRAnwJbOfvS2ZA z^}C2Gl6`{T$Zzw#eSPHXT&viO1eVuim6S8eCmY&{lM=#mVP{5w!i%a^&FKGp18+iL z}$@(50{G8{%#+@*Aw&7n#eznHx z5`wpkl`J6GGOjTY=wvG)J2(w~%By_Nbq5Tae;;-<|8To2&L5e?+hFr~5OPQz5~KXV z<|?-&A$19Eb+^9=P%kdC{10j!&K_*A?5jFs$-FOXKfysm)d5;WvPaG-SwcDe*z!>pm|_gk_M7 z*z4(%JQoUlCTpQ;{uTaGsvj!eO!6ND>33|rhJMjJSrix+t+*$;S{a_KkT5CfcVcD~ zMqAADQ2^*D&t??562}=em<=kx3Zx`E!Pfe$#=bn|8EaD@&L?A-TQ^~tsW@9FL?T~) zlcX93^^|j@WQ)__+=3&u3g^ki9%;Vaetpl`9&zos8&xp1TleMDpZYAYW7;Q#^=z{u zUjFlMrQe?g|2Uc%?~>^Bck7$9)*C08-H+ySvqxjiv}SSU?yt>Ukoj!mw78;CJ}28| z^6mDF^Iu!eb(rgmY%brb;OkHEznqb!1xDPG&e-nvd4+j4!^qaN*;T9+SEkAJC7{=u zn*=7`s+zR{M_B}y%fp2yA=}c~MT@5$EGiE?PgHegX92*OwVmGSoz*c)v2YNY@Z2Jx zQv$BWLfRiXCfcH3c<(NFzKD1pN zv$I^dr$BHsh1rWS&fdx#ajQI8+ zPQ+e00O6~xQt_Fi<_{FBd|*0OKH*kG;8@H?%qIV0pOqQPxeE!Jlr93wq;*#w?cx&e zW1nN#qJnEI$FqPHE(M@Degcf%0$Pz}CubxX*bk2&HQNm-8Z$4-{jc+cGD^z&IU z5CgXjiH+^}eB;A91x$KBRx+C&bkr=mavV;{PPudlStAprp18T$3_FIb(IlcHyc#^i z)~x3KDWYl3%!`cE_3tjV+np0BVkbW<_(( zr9WklX^J5`U(0si+BtR{*tJ@Qf;oMUr`{`dgbsbqIOSuP_M+~w4=ePyV9K3IS^#T- zxSufQ&!K${@;|T1{%D*~`soh{t``#)h11X47BH(aOxjw}nH$^6fE)8gg~h{i3fABb zXLCSm{HOOQ^L=@lo$^p)=02`fOqv_Zn#AnH^pLz*Jdbdm3?>*~Livwg!(CxdiP}3H zW%`w>Tt~w(^1Ois&;(Iy0H8}Y4eM9_RcqoB7=ng-K6wKmHiwZlfpC_}obscc<>vTt z`LYnDTTipXD2Let)@~O2rE)nsX{p@W-yod7FI}Qq-VvGS!;$W&eztxdH|Uv+1#M>q zvPA1O3yMue@w5p*z6K48Y#i8O-^LG>C9Q!+p#o+G6Ax_8OZ>sS;B8no_grbD^Q%jq z(%zfMNyKaZ>mTVI9hlBQbys1Kj#eu7S_dAQiJ>+-2+X@VofM zI}Om#EJep=Rq;vov6AQhTzd>aId)zgH`d;_?U?0q%}1NQ#E%Bnvf(WWG7&;)*IP^! z>i#q>fQ|$j*Erc6`uu=62^nb>enCf)eG*rjzlSCdO?V0;P57$-3UAam0wbp8kA%zZ z;4za}bybX{+&*Rvk*-nc)hoqAOUiW&=*|Ifac$VvmesXiDPR!T zK9PevnkOZ6T3JWi*+K2xP2(zcD2%nUS{O6LvKR#P2=>c%Ti?9RVZ(j+)foct?;4~? zbI#{%U$B1XW?At_IiJ_O7yH<&WJz7NlRa4gc*_3;m|jF)V+jEk(b;Lt%uFiDOH^?T zs{|KbAEZx>BgbsO-yyMaC@Do=C|e$;2E1<+xb|m|EgOrq)9%pNnE4#2dj!sT?6%rO zmwbb^GyT6&^yg>f&t|}J%8fjKHk(HL3%>Ggc9#!2W$NVT`dsrfxsuwTl!J z!h(xve|nZ{(v~hPGPwtu@qy!$TC%Fp;r?^ArjX~iPz3T%PyN+8{2Q`A-F?YPu-q6L{_|izILz(* z|BF@yeZjp)o(w2MWOHM(z{~(ZMr&vSSeYbn)ZSYD zegwt#ED=08o>VxMyN7lyBnQu(O?)gFj2eXauJHUfd@KE^UIgGm;dlFg%c()$NWE%R zn3ovPdc*z5o9p2D{hJeCo&svcw|PJxq0FWJ;|@NLeJl8J*QZCvuD?6@e_5_;_I>$+ zioKHE(Xy2i637}hw=PKgC#^Xa#}?YMTbrcI|HFBmlJl`dl+Y!{1GU9;v!Qth3ltg&AK)_O?17N>6mE*R3hQj2sk9+q3Zr2e&((NpRpE5=z1P2a{t9R>`Az( z;s=gMd8dlCs#KEZ&QfEcUv_dZj&sB&Xq(FZg5XfdwHTz3+dhz%IJzwktIa#&nrshO zzoy0bN#gVTnE3c-z!{e853sDA-5q(Rui!mkHGzW!Dv_)F5uwA~ggA3OceNbUmXf@|(o_9ECMin&yAN=1B~x zp~BhC(`5^U#~=Q!<$j)NOX<<~tPqy;fmF;qhq}}!$2D}|q$rR@bh2rKXG-GZnUh?- z*zVgkvk*3~2@G3hm08+;o)Xp&)rubOA$np;?RI==v}wakMw`O^kGpojj8V5QV7%|z=y?8SZL&j&11E2 zHB1SpB)COI&64+NuTFDCo&dN?=<)%s!k!nmVy{Y?F-ly*_nQC3iBq2XXUk|OK28mw zHNPQXB)v+M*<&WQrHx{A9T135CmLv8)6Wk>ZzWnoOZX%S=`synw=( zAdhBoz~tepWAV~^waAO31lO`>y0CftuC{F<>7j1d0uZeQQC)aw`eW{sThl32&`p^Z zg)sr46h}T!F}eukTID|)uu$8fi43Psd!Vz}Kjg#lTj8sr{sc}6nwnL0u2u`VDt$0F zJroD&Gcddm4$OHyex!Wg1yC+0YeR#fu5>l z__>>aHcA^T0$cfkWZf2Z>`c#;V+;zI>wJVTxYZuO_Kvn`E;Vqr_*s~`XXA{;TqUoL zL|8~PLsJR)yxPQ}0A-&zfa{yiF6=nKam%X*1x(D{r&Tzs?}peRQnH|&u{IkChHDZ6 zrg56W%(F|qw0a<&`NB5XE%LxNbylji4$(9L3$|s$njy{0(Fvq_H(M23o$t1sUOXwW z^_;#K1hifWGj^%DtY9kJe{(k{W)fl^YCsLCjM`8cXv9s`? zUY@SFuCssfwJXLw0$d57U!SGeC(1WNe)7V%5JD+A2lb)kc;e2~*R{Gs2W9qk`7PY% zJ>XZM4e2##=AmamdYRB`UyYZhL+g98PrOCV0;u6n(a!HrsO=>n>ab#kgLJ3$nmNWR zbM6UbF*Y>ZEE9Kh!p^E_U*f)xo=P!Y%#)kPZ+yUU==TmEVzZ6P+7;Brs(wc|gbvUl zT?7dJ(V{2QB5QWU$_!=|@FhgD52azYn~)>}$>sR=`SMy@a6d+!nT#5+=hIfAtjIca z5lwB);CuRzsursP1G_*c^D|Mpd)*<&<|YN+*Wuv%GrXX=giwDcK{{8OmF z?zAUTd%N=V@&@X7ld|^ov5_&OsLpuXk6IvJV5BxN8N=^$jHB%Ob=HlAHCEydbXUS@ zW@0D`$BL9Vww-q441$mOM;d0Id#tP@!NID!#lf8bQ;}Yl6-SW?oo1Nr-nd0aSU@M7 zbZgSXb)(XCW5HH`TUc1w1})Ff^fM#*77XmE#W*S_g+rbhBH6A!npLUi+AFbp$NfsuU@w_3Dh9)v z-AEtHnyr^#SKlJx>1Bhth9b>ShSNCOU3~PhSH=zHyi^n2hA%TGv;IL@UZQM`I`d59 zoo^s|xo0rjLnIJt>iggRbnv3cr3Xu?Az*TUDY|_Bexts}RlJ%a#A=|nocpX26G>)n&Xt!=Q^}R#S%@av zjl7iQy!;({CA~k><+d}PK(&{QRnrQNu1L=?-r3=$K(->4zga@}zxPP!j@@Rqp9KOjFyye7 zc`VylahhuTa54kGh4?I-AkxyWnS| z;Q+~}D+DLchJGKfIqv)DB@T`vj@T;yW!Af>Mx(I~NEZ6^oq_dA)X}B9GYiurqXAgE zKU0qyr`|Tyt8u&l`>*kf=l5T9jq_5ppS$0{rJKvEsC=`Yy?|BZQ(vErkwl$ofCzNJ zw)$SA%eW9e$6AI*sXy*F@^YE@EO?W3YAmaKs`#ZM>-H)KkHwv7+oqWceXE^E73V}X zLY18dv{_H?`m^F`F-s5iQiwO--E>CgS~gYq{Y`S~JAC82G&1N!s`)~eS?z#-h3 zL-HiGN5Y1)sKI+b#3c51$O-h;ra=kzv7)a43&mA|n3GPW6?du@wy=MJndcRBI|=okQ@~Uj zkM57*H~@dOfcuCKS9sVjt2Ndkv+bMcd<<60yML+&YG?uZ+v}%%i+N~5tLUXfOWr4w z(m`EX=|g-C!V^(PMJie<*9%(?1$!U&WmE|;@9lP`TabLem<=aJ99QliKNMc7Pcpws z71FFsfBj>~;pN-@*Xg-k8!w0wBioV3Y4_5;WD@c3>fQ_Aj~FLLRay@-&6)J`WyZba zfYt#H?i)%p`Q8HvIV-@KhFr^-Q}_vJzD~}(5Q@zgNSZbDumiVUkgtzs3@6_T@uXlZh(>si5rj~p7G)Gu?E$^80^ zTkswGiqzvM_8Lm37u+QWC+R&A=XMwFKzKP#kTC}|D_BQy^Cv4Xb|NIH9_I&o_7mQe zk+|IR&zK?C#$J;w*Fw`7UHtjF(U*dg)0z+Z%$?B3d#D@o*J0|eu8;2?15f1R;z2A% zY3gl=NlMMu2J}@`ut2R2s9W&Sh)aWkp8-BbL#y{T1jOjBeV_V zy>O45`=~D=v+oFJUDIzhvLf2kHk(qYBJ;Y|_!MR|uTbyE-HWNTB=7>TfYMbYBN|SRW?7|~a{morI0eBCW@(gh^WqAadQV|gDk2wPi z%U=;aJGy@i^um2kqow9Ry)L5k_mKE}ye;FBGq|M&80Cg3 z1K@K`*(5FW68c4-<~KAp*}6M!RFfDE&4bE&O^_^SE+N&m0m3&M4-y&qG9QLUWW5-< zAK@F)KRr!smUccZY`IJdLpir9-|^y(*97POKl2nog z_^0Pq#3ntsHP#P1BhIRf8OWXTA>i|Lf4T~GyT%J-3=#{9J0{JtO(Pi05TdD-l3xg^ zKm9i=P|xRJ3E53J^C{8pcKR^@&VQFKZwr+-C>%#{b(NI?QTky28lZ;rxn%6mp@5y( zSbHVWB3J_fWiQee1yeS|I7dFak9}nZ6YUe2dy&m}NsF$}XYZ=US?Q$KXH9q>v~p*} z&Pze#Sfy-iMRBoY#sZ|B|43qFfW_(CjxiSB)&+?l1Cvq$S_u~%)oz4i2ZS6S$HK-Q z*tBn$Fxv(Tua-@mon#z*f*Qb6@U8myv zB4SUDV4snxO6gT$RG+hZUcd++bWT;mkm8+G4F)9h*J`u8W|Zi8A_nP|M$k2{i;)}p zpyF^t`}iYU`U{S$?#?Yy63oi61J$`S^vPMqRSDdAk5+{&3&X|Fzsu_*uy3pZ6%WcE z;o~UpC}6nT?q?QsuzUURLtZ(z_B2oJ?@;nX) zgD;f5lyTMqdzWt8^lwKY>2|IIdZimNPmp=I@`e^&W5g~8J$@DFhjL!L5s|-Nsj4M` z-o{&Y+K1R(e*v-K; zp@72WWU&4(R#kcSK?lv%?Jn|dF7622z)B^`)R2OF>8I!T7-}_Z19yDj)}I%8 zT_=hhcJ+94;(NQ>w}FFcE=S2sLaYnv(L+y;b_XuuUV7B}kp%^NdK8DA42ROWovV^9 zQ;IdN`YCJmd!D;OJ$u}*soI$e$-tR9)gVt@6+U>x3rQs;Npp>v3SpHBW5dulwiN^v zU`t{fWtUiFo4tGY7RqB1J!5mf#rB{k!?HFO%xd7QkSfaTVC*NfQ`{3#M6wqyn-J*O zkWoCi9iXI|lWW{rW5Ogl_d;DGsi78%mnro9S>&#opKUw9NX;ReL5p}>&YByp@cRfb ze^??$B+0g069MT6*c}o910yA$r*S(>nY$`lsu|(-o{jZsAuiLpm6a{A?$RBTTHQ3W ziI0~nV7ruTAS0@k;&;mXk$REFhOc!KQOPeEe@8RGZwIGie+o_@&Og7cnJ43+L zuWl66+{;jxKb#^3>_m^37Lnbyx8R-(UvGGt1J@LLv+rTvwKCYMXtBuNcERVjhaLG2 zNBj$AYM?l^?qJZeQ zeC*FfNAVQON=@!9xO+Jsh0wvtoT*_A4Lq>+h(`@Y2h#JFTv>%#8YFkX+xRUZc;j8N z!!fJP{bA2lp1wQ*p-tP6wCS_5f>w>5i4L(nE1<-JW5}CFsW0>H=kwz@F8|Md<*2!B z?_Y^x(?O_IyKAZo<*JHDTJNcWpCwYK)LRM!C1<}4eLc6=;YLPuaaIRq3#iD|_5_wb zaS{{cHbZf$(=UbR+0&ng7Y3grO5^DI$`engC` zl10v~FX1koxE-uK-2DdKIB6MC<@rl*eA7W&8o^0;ZEmUaT$4w|AmK_;hNMAEK};Y% z?$RC>tOpK zH<+{Yg&81RtCPJF3z2h~Q zkI;kjFZdb;4p<$^-<00+kb755KVr-6CW3H6xtfK`3mbZHBY8WN_ai{|^LQ%iq!0^b zY&A5=laThsG?>+vG3_>)K`#`&DYF|Vh~C}_&GRn$!viZuatzd4PCeWf@=r@jTpNja zR!s;%tQi3?gllDJv8i1RiZU?4Q2TRnB4V!E>8pLiqr)T=UEa zZ^^JtVnTb$+)uL~h8?E$+I>*h2WlfU;>p#UXSB+%&H{6I-*R@1S5ldbkjlXI9`w~; zn@Vk z`9qS?R!`*6*drwh&&E48=`~H#%3Zzp`a96FSH;bIKcOOb?}08TmBqaCvx=M49s}hjuG8V;eIafmiriJ) zJ_Ja1$DjzPpG2u*Zd05EgGTRRWwax||BJDVt#-mv9$714Za86B+I0W=Iwp;r)ocMd z3E%+@iRQXK4Y|0ioMCKzc9)@avCWtC)?#%lGg5l&P3{Nx-{uM4(u~RH71LBmy5d7W zCt!Y2C0g+2-c(<)k*vWBn!D_wA2jR3Pi%ikhm_53%G^2ou_u>GM+A?kVuJ5)Gt2RF z%WD_X(h^`=yq}N~4}~&DI?MM9*Utnd+C1N;e>g@S_pz7zRIYdpCgN~pkVja3xc=?h z<%Mz@C#>#j8ZFrKQyJc4K{ma4Z9_kN*aMn@lVdEljqtx5H>r4*bvFJoPdKKZO7L+%mJjR}#Ig4x}*w?yx-Vsrm#yOaK$(eKxuyGu)>0Em)f z9WABN#MRNsn8PfT92{|nieb^k7*iWr_~e=f}Ljw0+N4r*AiNn+Ubna`HeU9*BtNyw2G`KXs`!+pkkjaG(W zt!oz%dXX})kA=o%e&CF=rj@~H^-J=5v*q?3MD+JL%bL5-L>#Et{})(5?!ag3Q7hDl zd;0FFc={K+;ZWNnuAyc+#-94|Gbq!D6XyvhF_dlnaydZsRx$p>PFiaQ|V=s`SNTr`APKEN;prh-@KZ(oC|YI zr_#Tpx;k^R-_5_M_SzUwM&H>wtor?R)%TSae%Lllv77tjB0b^pi+s_mrVNhGj6>o3BQReJ76xD3 zH!OWz@mY5ERA|rmyG6&&Jl}nXc!v&$*}%3ZDLl6xPUewp_OQOK>%+#rWxF4KNA zKt?xyw?Ir>mx0LkLLCuU_&iw8eDNuR!ap%1SignW<0Wuf%;gyAUqCx_h7HcHHuJ~y z_ow}p03>GC3EW^pf z@VkD6PjAzM)h8;9OA0+S(Z19RDX!3jLaDOp;Xi9~xGO(J+f+B2Y3nAv8Ip_DzjO;wS z6g0J7R1T3qZ~pqDK-7LO<-?kNkSoBhrqbYRu`3hecY3!I-{)rsxUIk;Hah#nXO*m(Rz4hJmYM>Ahb(ioqTsLhK za`Zp2<^*_`Q6h)IerYmQg|7Rt;|v#9PvU*%e|7B=G-oF|hwh?^!>~X`n;@S{%VwGC z$^JE}*`CXD7PN-mZ~~d0C!BMezZe0Q40hT#wWRj+%z!E9BIdl1KBVe~-R4>E9%VNi z4P~Z3O-8adjUcaLfM#4%n}dgwbMXmYd)xaG6;1h?HDMi@glGI@Gfp`z@1&=TW7K+sP#PKNL2B<1bC5<3_I_@t@H0Yi1lDU25O@9+!&q;a?`osXAPYT z`}j=qe;drCxOo`+9YG-Qt$xhCws=q^%X2^mu03+WPNRX@b#PZjc9cv5u+UBjyG$c= zDidv>-utz$Dg5^#%D!}{N62enj9>PjNDw>Q!+Nk#+ttcqM@Kj#&y# z03JRCE9Y2IH5uM3*Yj7&QXWvcXoOHY1hp3+y0hIY|Te|zR`oWuX_~^&h{|c%qJ{*n}VtzOO zui^l{@~-mp3I~h>xpl3Nf%TE5ofe*c;;{=>t?i=CztD*>>rNTNO z>n1{7{WuH=VQ)UetTO;PH<9ySSdXta@61oq+K^+5(svfRw@Jd4wLQ4!U%Ss=TFs7I zgIHxEL2D;1{dhPSh8;8C3}V-G$zs#;E!TkbH|PoOE?bgX;4S}C9W0iPbq(`cXK?<;rL`~1{1t5S2Xv#4exKGlmA~cG8DV{sD15VG4qO0AyCi-45e|3mAR5FpgnnPHaxYZ2P-uQyG3a|(!r zgZe{`>4cSPN5>~X1{4H}9+mMH;Z|Yakfzo_Q_+*+S#4}zz+_L;e~|raDYR|Ohe{B9 z_^bTf#-@5jMQ!Ac46A9fLxYN(JWssd5bU2bwNlV5Md#0Iu5z&o$0#$|ZT@w0NX*&K$CUB6?Y|e$!Ld% zKaYq$pl(yvfB1?}`+rX^a6)0cH2)=UgD@yx*y0v4hGhu6mT6eF&=Wv#R{X+=HwRhv zKOGi!;Lb@E2t0z=OT@=r)dBc|Np|OjAoA^_Ho^6=hR;qk7d-ZAkjH18# z^?ES8|3gP7iXI$GKgqlCKZ^9A^F+*;X=3}gxlHo0`)06vKUBW-xgHt@`FDCh9z6x< z$@-N5C-P@woGpLR+WEz=0WS6P7!l%kDbc~6=Z+%4xzl&$i7-X6hhgxK8XyGYYz24( zMawTPzt#t1=;EbeXCNWz8{}b^q#7$14|=b!#^zF=Be|g90Pm|`zg7@XeWCMmZ|I+s z5`kl3Xkv)7xMN|zQ(VZY{(SRe(t|vGLv%Fwk5gZQ=m2QYo#oX@CkWbzJ z^ldX!th*_}2-G^L>e*}*yRO^NVyX8!2GnXP%muwz6o@_cgkyQ>{>+hG8$AKzaIM?0 zS0u24NCt`z@Wg+*VK^#*QW)1+J{tbyEH{Stb1!(tK~54uoL>Yi29d-r{~qC2YUC zjJsU2WR^yrjDalzqKC=`2vHJ1^8NVBLVs|PnGVJ2RlBdS7eJ+UKHDMX!P7Z4$gh;C z*lwHCfEMgZUtsV-N<7asvujNJ`$9$$nEVYMNCLOR>beMVQ~&Os)FH{xOLldUQvu(> z)NZGoV9kO@XX)k2-Vw9o7tj`lZ`IAeY9DlQpHo41PyNkdZgQIW7aZuI!*f z?UF8gm9VLMKKty!L1t@=dEpFRlZBPNW-5uj_DX^!7S&sPc4LC}#avc)nkYGBB_5$K&ieA?kmfCGGKK@%JnhWa;3 zD^GP=IPKwx@DY3bZ32{T-aiivCw1AVihqU8{=}LQvXCnnw(o{*YvNSY=v&@kZ=0;t zkCm5eoy~fcwX;3OR{(uJLt##*8~3pB!Sa955|5U?+=T039E#C4K6{^yMwqo5U4a|z zG@aVsHbbw(#x-x!vSADI)qf5S3Xc(!pTe%H?g~B@>i_nJyYO~m<`(^G@aU?43c8&V z9mg8l-jXSm(Zy7l(XGce^g%A*po)ic-D=Zm>;6I0N+Nx+Cgwqm*X5C;8z+M20i5{6 zJu%u*T;$W}5BEoD%_B|U$(3`pu$N7PO_niK*t11fk|oUnxut${Att!K!uhyva!`_A zC1Z@JP;(7~Uo0+bz4s${fpC~r5q)WP(!-G`(YxV8%AXAECD+(f_4kD0-M*Dbvn=Jf zXpIe8uTDV99+wGpDb$^U%!|OewLl9P15A2nD+m6iSst@M5VGiiCZGqFZ7GjczYs8I z(i{G+rm!CU-Kg*%3;s5!wNc$!EwMAfBOe38GHfhD=(GmeewCl1%+O z-WO-F2>Rk53D$OVO@)HExv^N<?V#TLD1g1bXZu z-I2U)^UHmvUgE*T2*+|z1Kk|#={*gAXd0aouYuhd@ zaH+YmNtZmhJ`)@}ar)I)1I(w@3Z41TWRXw8775qgZ^T^3zesl7R>B=Kk^4E2DUP2{ z@S(@mEmrW4P?Ew~v(1Jl(+3|}@>pjggD{E@wqKg>D!moNp0N=*B+Dnht%AYpcx@aoy4BGPT>sDZ` z5t)O(x(y`8TAPWQA&jMzAQtgiK>ZzcFs>+tO9W#mq2o=UGDm zI_CXzN&BX>c)IVEk>;jf`pcR~8_8ClD>-!WbY<_t$1a~6q)OylfaqQm9qyb97RI=C z`(P*qmBQmGFmURRja|+75{WE~Y5;3#BR5l!66e>OP+4s@>>ggLMpGeWBSRL*Y3>t5 z;b6Ytg;KdBMf^kY_ojDas-luHGn9A2=hvCVx?n^S1%igb+~;*f-Ep;G*d}!>-EWCJ zJ+fF^tg`MfQ?U-Xjd8~sG4R$3GA49q1JS)~T)DcTGZwKP{@UGnp!2;EHRd5qumrYE z`W2w}V|75O1+&l^-EHXs!+AS(9@k_(Y>uG?+T#rlXs%nj373&SV_@&a8+RDRGaD~h z$$g9w%G6u++(+u@FyG2WGSTk`b=`h##quw$CUf5CNS}|1ecxA0skLoNMr7;xJWd|+ zBB~-QW?T*0@*B@ESaXGWEfladwdIdH8XAx_z}NA105`o#T_PK5LXT%U|T}6+tppuit?ha zVkxy}?>;P3ecOWj)3aJ`ydPm87k}oMtDE6#G3zCNHq(fr#JJCL7Xqgl+}H11Y8%T_*)pUbCs|p>+znF{khU>_G#F zps|@VVl6}K)Suf7V_D5xZ}J&R)au&{F%PX^q3gA6|EIe*|A+c}|HmI=uM|=tYxI=L zmSl^egh~k6vW$}5pd#xmQmKSW_N^$gXWz{zMZ_q(iBXoxSO#M-GiK)d7_ax|pZNad z<~+`vbDis4*Zo}QoaJ`n}aY9>z~@~e_kRLUym<*zeNj+%G$8He08Gaa( zLEf=EuB9{=uM}9mY^{vDv$W2z#P&pxC>Ph@e2>4_Z%&Ez~bbgSXuNASZ?fZN_p*m6^@V6D&D3g>;I@wJ%J_N^P27Kt zpvnX$g97$zR=s>%5fZ#iPBPhmu5-s!3;%f3u6X-c!6O+V6{Ef5l^aq^p>-!S-x)5( zebzdsZzaa?$lN>&kLr%HXXGdN!&v|1Li4~iKmtXmeOq?z-?o30ijL4^P>AIDBman$ zZ-hbxJR^> z`s=D(UA{TX{kQj#1zEMT6+MXfCbV+# zXyA73epdS9*3nX)CKlydm^V)J=(;$2%zn!ou2QeeVmW#uv`{F){reXKqPo))&BbsX zLcb>TWiAi9|NJ-RN3Lo0c*b1WLK!|1Fi6~9JnBG0cwTsq(b5>HUh@6Eko+#C%xQ@_aHh!8+uKm- zz#da$H)GiFbRFsbDlDyp?8RoxSHEy;E+tad7CuZ{8P$KH0=T^&+<{kA z=jJh63Rf_2uMW*ac_yO3&GgJ0+&5Jte>QxP z1GBbGlTF+{!R=#~GVs~(XK%@`^&(wu-IME90t`)+N(||EAukf&Cb6coLSGn6{wT8hA9s^6Dr<;rTM?w>cM?v*q}68_ysJ zeO#OhYv#hC$`sj&O8G`Zu%Izm{Gq-#b5?BK@V&7&%;x19kN3J8fj;AA>{D7Tl^gg9#7kT6@$`&Y^9V-06jj zCiRHc>d=mf+@tBppb#hOZ$(se)=E-YgMAKL#uhs~k6ggWgif`vaALe@SBsju{?C4H zo(bp>m%+8Gc5y7(@4~8+5S=EM_WW!=)z`l`nIx`SJ3Pe9nS)26Dd@FN3z2&vc)CfE zA{QqaI~Zv}(@9G`dEx-uhaPif6%}?)_sa6jo(e9Z9PDPX{~b{z@s8d7JG|&)t}gh! zKFn2hf4x7N;$6?m7fQJ6EECKBn79QmS(W!?MgEgLtw_yXZ+Q28@eeyd4B}pP;gMlG zV(BS#xmgNTp5UJ((yZvCgt=grR<_vi+1h|VN_8`O!we!#P!_(_bm1E{9XzY|^t*V> zy)~eNWw`UjFa+*6W(ejgWcGtj9*9S1Bda=HPuSwKgREONg;iI-lqB!??RDnAd}7|| z1hE-TunI3Pj{Pi_v$~xlVc{g^u;GwWk?pizq6=r9UY0B&_2`}1EHyQ@%(e?1e9sm1 z3*t2DkK9C9{1kRwPU(=)fm;|DstyXSvgQ51>C7UJOtu-6DKi?!n!Yvp zl*+&V6gOpDBP3rH+rtbLlWDZ12s+}QvcY; zXz-ml_h3wnj1w3kp@JFDEPss3TrZ_win;R4)9|9goes@T=;{C)ddkhja{BRcN-sJ{h1StdVh_wirIy)wzx328FS zcX61hBu`l zkETodpig1ywHg2Ti$+Id0VW7Q9nsF@E6hJe7KZ3{pM(E4{u7*N4qd#8T?4J#iW^+l z_MvhVEMnImhulrc|N46|b7bCR#sy#9%V_XYk8B%UY+iVz`<~(>J7or6Zh@;HgyjoK z3Ml72+g+9M9yPk4OUn5s*xKk&_915Ajp?G3pEFkiI^J%2Fs*}cO4^m9i1Vi~qcm@JJ7T`nP!+Df-pNKC|LZbe0fb7hHL)F_HoXRq?hA?dS*>dzNynUwuk zgoRZJ$*`uJ6~vb9!kSuJ>J#A(%s)M&8Xi^Woj+q1NT3XhoxtMf?#s%|`Nl?!yk^eQd?^nUJ`&c%QS+i+VUD3HFdO1YOV zpqvRLIcqLT>T%1PN*?BU6i?kwbFdd|K zhAX)B>xPBa0hG4~j`81?pB^ZZ@E%Du8FSE`2zGv{psl;FWo71iznP1E$$ z`&7g!jQPrGjl3`Egp_lca~>)xE3~L<4BpY zWBegKXq&Y4cmI@$tu93>(~hkDwTs4oj_vQZ;WH0wtEVf&_@*flzvDE{YNZAB%O!aH zOHOecA=kKQ8$T6kH`f0#$~e2EAR9*bc|B}@NGdV-g~DATy_LMUCja6LI-`=@7$)e% z@(k8S682}LAf~Wu^?FA_4NOfE^Nf4c_4(ikVE$6w*HS2eQ_%p3KZjCryzE5d-+~GP zIvZb*JP=v>kN7=fc>=Yl?HSyMcLJ=t-G8_2G*kAhbx~D?HrIq-F-8^`Mr~@IvSuy% z$2+-4$1*>r#-s~WzX);7dZRp9v;hnAU zPPMlP{S7l=b<^X#PYzQ_24s|%Th|l$?Jn^lSv~p=B+qQLSBU55!lvgb?sFn+XpWT8f@sKhs#;<(`Af9Kc3)S6|Jzgjw2H0g!o6RiGemuh zHPYO$HgJ@YG_(KiPDEr@bYIYELNv6xw_P^3OCd>L12y^ITZbvDu>Gq0RbY8{e|zlX z%B9jP2tt{c3~*aZA7c>>()bsi3XPNYghlqpp%d2~M!u_hit)DWd@=qV$Jk6TfAy$7 zVDr4h6$(K;6AF}qd%pd?Y0o^WlH%AtueYO6t9?9zCz3W8G_}@j4pSUEWxt^|%uuy! z?y^E{7D6N%Y@7468AV+c7CM}kvwV<&6WVk4_uXg<3!eL^iv)@R;VdfsDcOb3|J&>R zjzaBJi5CU!(b*K8E!u?|6-f>6$a!>7ndpUwaHc_O%v`uq03LaudUjd%=KPHpisMCr zv*cH@S`5C7zl`}fmQr5h1AI?O8S1W}uKU2&AFVX_ffpMKjLM;qN}qjlM5M_~>wNXo z#m&|X9Zxw0ekh0_58x>b+$aL}>ZJIENA-*=O-aVhvbkp2dFzocqCAJ#6^mz5b$h9e zLUV?E(icttR{Wj#t}r&gPMAZ!8krX1!l)%st?82N&e;)6zeK|TuA?{BMS9rrG=b38pZzG?KsOnv(tst-}q+b z^2L)fu`Wd4R+hPOz;kFa{Brk&IGui-is~!Q(e}`Pow4@%%3rH>jns$83y63RTt`cA zDu1?4C2CC!b(fTF7LnqlIj5UMv-Uzf)S=zd0J*yb=Ey=Wk0cP zW$T^HMlt((gcAh&jl+0ve3d2M z0A%;9-7igHxC~RY8B z3spN8T=~2&9zaT&2Sclm$-8IB{(5p^15)i5-SRRV;V6OkI0RG zC;hoizW<6r!GFJdXGDyy>&_Q)Fso-W1hD^ zr-$+aki@UHCm`75a9HN0Pvql(&PgtG^7rtG!bExNyXUxq&j?&bW)3ChEujs3QZ~(Gnn))GO!?6F1zYD6FximpsjYTx2(WZ}WcB6) zM#DeR)m7WU15iLGOK7L+TDi-C*_&3FS-)oxZuyT57BWtnNynu+FhRO|xZE%^MA6`h z=(kB*hRM*KH6ow%oc1My7XS;)(%a7iwok?|$QTqIZ>2!~QWnGvL;P7s z$+*R>_SL?SQ6V;FV|T4OLe+eTDk3Rhb332Ly`pXz8*UhvS_{P;rHKKJH%XJYJ{!bs zDFonV1zw(UN!{a*rz|Ar{r;~_5$j;fb6CDx3^mJf!KXxM2mbzd_|8*htbfq~917?$p2Ll~U2!_n`0Z9a__5Ip?%q6Qfv8Sy?F-4!)V% zaSgg0Y~KJ2*J;~as_fyLbvHRnkZqxDjLbpVdF^K>8Qhg*mw9l%q!*;8zab~OfR~!B}&!es1(nJ)=AnfECWA)6IP~oE}(f7yr5=vz?XwBmT^3u&a`UkK-#@?L& zhRffxX3Spu>W0@X^~q!}VpxlG26%m)_<1xHg1u5FuxZx|xZBOWg{7Fj1j4st(E%S1 ze{5%q+i31VPG+$tcTN=EdXaC15jZl!+$2XUOfpuAHjnPa&$lPUlEGW^7dLD%s8A1a zo>@>An}kb$4@5HWMe-aG$JPb07dGf*7LMYeb4YvTAF3r$4#vY}tSQanC?lD%T0Y$R z&P3K(Wc%zGcyS;6!t1Nmq`bm)Su`;fZ*5f+pP#rn+$4mhwR*~;Gl3c*I^XQ|-;sft zD|9i~qJevtYY--Pg+4X<0S8@AsI|)60lg%;l(!)1sTSxHnE=_r_STUrF`vYAC0D_a zAbHaoCVbOzhO5hMX{a6Z%4LIXF$vV}j~p&^zRi5-;~~I$Y<&lqzYe>WCV@7E%*&e` znLZ6;N{pjjN__fTDt|^XG{Id`XLc>|B3By1EDBCED8V~K~IP-i|@VnMGV?8WyUE~UKrp!iQK@j;$lbP)uq z#d+>%Wfd;m6MmTL$toN^=yyDS$RCbAKQW8~#{H>a#b_ttHU$FW%Y;^B6)M*oPI)xLc~J0|t8J4_Rf zS0mPLYv>B_i6j7+whW!=1k6N%7Xz?MOnE@ZU=PrL2hiZ+ieX+FAW!8*m(=+#CY&z; zT~6mLDDKl|;sY=^_MhH`nxxi{TYb?r-5U%rB>7wjWxfv#J&XNp+bf7I5dbW2n;v!G zn^v;%oBwi(Xl>}V2xS+3SHeowi=Wg%@^G~vKpp%i82;5;2r>U*W7=#gJ+aTzi{Y8c z;Dmc96=GGbjR#06K#~->gLAocCIh(ia~inaG$F`jK_gQmxliLc|)5E$rY8A$y!WvVqD zps&I?e$a6?WqIxYPwzC+{n|Y_buP4szzeio*TVIO$YUBzDCiJFB7zQHZ;N&gISjiI z2knpsJ6hP8@4$;^souo9Aq@gW7VXqL9I67<#a!6Dk9ie{*(BBAtTp>a6!`N9UBVpsMTd{R9Pc6&n2?rl&7fL3Fi_$TH4s-}qRD zLk0KonA&Vh)tGkSp8z1;}j z{@9p7;;)D~uM&|?js?66s8h1xh-OA!o9blv%vZwK1G?PmJtQmE&fEr=pgvQE{i~E; zVzrlt1#0XQJ1@X8RRUd{nSD*ol$D^9B8W9ODk)U z8=0M1O8JGdmMJ9jxLmlwB&bQm3mvGP5q}Es$8NQgFqzB04JvGi%u@V(s}*wYfnLa& zMl&83xZi>9vINq1bP6Z=F;Q9kTrL#wj=v7efTS~kRs%41uLjU`TV7OMgG)hNT;d@@ zgB!JG-0;g=mS#FJ4C+8KdV10FVQggq(11f`0UG(nD#tIQ=T~)xz*yy0KLVf z8oM2wH~4iDMPfK-gbE)$Z;jLdF@e?H2a+KM;8YyImub1;04d{DwHNt9*iYiX9Rq>O zbxYg>a&n(0LH5ZOg|#iZKI?VhW3IF_0y~^QHR84>bAR$ZG<`-KTvBSjUY0xat;bLJ z<$}g8UbZ^{!g?lvI#-NK>%T#@hsew=5W-%V^8hDIA?@N81%Q=DE+DtDIf`PAE=ZHZ z&2F>hOVz3w$iF9$w^^bPBap6dML&SndMV!UT!_xILv-ZebZfN@Xicf!snT4DSf#T-QLiHQECTr4 zpBw)7*@ii0!+aqOwH3z8g;Vn0W=;#SrcbS&nC37yy1hPt>vt+dJOd?CqqiZ5{kZ{Y z6kwHS0YqRLZh`*uBj0Hi#vF!yP(!Z8m-FSLgzyoFr@Q7L%mp6IlHFO(xx z$yX8`5(@ULHfjK+-J8zdz&AO$vk)Wk8$4WKupqU{hY#28+iCC?RJIGOPeu@P78vbh zhW%hQ17tu&VK;{XJjau`0)$^0`1)~4!OMg80iPc~1>6ttn5MetCeC-RomCW>?X?K^ zpu>ZrvW&pB3`of2LQ@p6!=McQ%Rr5TT4j~MCCGn_pX>hhPcl+3Mx7f1msOJ0ld2^l zt?BJ|XTI&6co-Go#sb9!-QHu31_^$D1Q_B8m(vAw%xgSPP0Mo!H!pFkLoq6VK!J_d z{*~7k#5-CAmOQy4!48*fGa!x!xLz}WHxQjq5t}fco!8cA&QpakOwn^|w5>7Uw4*5` z_q|B^xkpM}A}~%AWA~*I>7fs{vB($4_N{{UUyTOc0p40xX!hzeCwwpV-;ZBjODE$> zylU=EPkhmOE{JV*noy1&M}r@MCF9NZofW2Svk6V3jh@M6KyVOCwe-1%=IpNa)<5M%& zKV)wg?O8R-H@ffC!vZH0n3fL-H598Vsk#G6lm{Hue$W9qt{6`BCF5a@av?0lQ`{U6el%k2NZ2p_X&_&CaV}k<0-mGJ zam~d>%%v7lg<*+yD%F6Hp+=~Ibfd{J`=UYRK{`)2zzJXP?xVYMgAcN3f${_n$aw>) zy!at0aqt81M9V+pjKtT0=6y4|Lw-yfFXs1MvfX99q$w}B^xwKX9bPwVx?Hq}Q+rcw zi`Vh!gEA(#BbW}8`4pe7)h8jl<#T0bKq^Ehy`=bk+8w^#QY+o#=ghMZ5Y>lh4FCuC z5Ed@xn6ZG%+j~6I5k4hH@?Jx9US`{56n<^x@DpIz1*P9i+WHPiUA8R#@n74|h1&-O zcR3yI`TJyCp}b{^2Xc1`y@g-8eDb|NEu<35A+=H9r_MQVVE$3v8BIug?t$L{8T5uz zJ*1G54}wOVmN(z|rK@__f;)(gRzvLHwk6Q&085VvvCcdwkl<}pUUu>mkKyna;2V1L z$R5P+@FwA`>XY|j;68;TL!X4;&%767j5Hz82Bpr3qUXC)r)oLQ6P~JdqEKP4Jx8vb z%FBZ!91e@`5}lWM+nSPEtgw(4sA+)~3mQqbTRzO`V)M@puA4H|w~uG|&Peba*X-ol z&j}s|V4<^XC)Pv81;dp)FzOY8SklJ(X%2P(44ZGX9xu$Ao@~QsCF~ao^Q_&d>xpLl zJN|nqCQIOkB`U;^=Lo0nSZv95M#3k<=DWOre|Zcqn^V}RM1=xfzj(GIkG{)(FrM;o zmwe-11Y6}HYQ~34KNFbN?>?~%+JXSu{L@v_)6O3g-=ADn$^@(wvn)z`kEL@M?Ji4F z0MaTcIJ4IuwVnghAhE0@ zmqPNn-#k$MTip=jw;P2K)ab@RQ)Rz99UrYXAY(&3joGQZy8ty%5~8>HriN`#F8z{p zjWZ_^eD1vhSg=LllN#v$K9b2IaR+KpDTSx5^-=T>Vk?exE*v~q@8rW6vqQXMV zttsWkqc|Tdh!-!qNde>2%`*Emb<{aOX4oW}SogamIQt8~ymiB*v95Tb@_*{|q`rJ# zv&k=Ti2W*JwGO4RSX4hAntXTLYpq&E!~x1|ZqF zr~yjR`Tl!pq@LE9Zmg(K4neJ4-If%QR{JB8Gm zcbJh73D=ZBTlgY1{*MC{vu7>P{IAd3D91*h@wSQL$UkS`Jo;KQzFbnN|K;$rgtvF) zkwALp`(FVdBq#PaV4UB5d@0O^V^{##m-h&$xq(AeB>S7XKsPmHy60kcLzC*mlK<-@ zt#Hh?v+$e7wi!oK^4;-VsOtX>J`Q^K1lawjqddon&Z;Rvp1UxhUR#(xD4qo*$#bg@ z?bGLj{ND=NKD7RG{@!OodL|?ZT=dSRZ2nrBz460P=0fv-9I|I@I6JsuudvX#KyZ{! zcBhy9Xmrx@|5$dcb-icVM9z<9`;GBUOSl`fukW8HxqPH>xiQuHzEs}b>lV)PbV74l z%69Hd&qb}JyvcfRD(ELtQ1aaKp5ogJMtoJOUGn0NDwY>i>G(mXNcwot`!pC*g(FSa z3iRi_ukS&_>Sx)GhP_q}kh1iB5+^@4Z#C>G- z?Tq2Ydmp|ok_=DNT1{PZfIL+rsJ_9j?JLgm4w?=uMkV|Ht7zww@itI2cz z=ZcS1MvVKl<$NvkyTJtPcdrU${dm^$KixM{yOw6%7M^1vcA=fNvF?3T)+(*{L+z{Q zQn~LP1Z-}A;{JJ1N5Z^<$`uX7+%lY=|P$X>AqXoxG8~b z18czD8!z*48{KT_!T7dSEU%E1MRS@p`qBVla*Qto+~%^)17$*#3UX2k_I&`YNi|_n;b`JFL1YE zaQ1p~T1MTH2fn`LfOaKj`C%nne!Lz-e^6hZ7AfO_B-G;SJ<4URhO1WUY52sTkyRwD z-?s2%4s@z!sq*)?P&8o@I5 zGz#$9_hP62J{^g{>_DYkV}*bx;7z4%3O9O#os|(o395_6WV-~FIuqi( zoj>$wKdJB}Y5#yT^h)XARo0Ae%b8rFm^IDmDzm<3xiIVql^Jw84ys*HPkmre)S`@m zk3+i#Li+;GC&IPoq4W>*Q60v0Gk7&^gQmc*WqreX+C&It4^sVJt?RT646 z(pb5a)nLo63}nJCEgvbjESod?i`l-aiQae<}o+fpYOJ~b-=aQ>+E#)aGK@T zmP5O0s*9^MWvh1qs@+xIm10SFOL`1C)_DyQjc?EkvvBp24$lAm_B`M6dpfH=?SUf( z$7)H{T~up^GREq23duKB33f-Qxc+s16E{py#D^zLs_qoMy5)_l-#E^RWSZx1&V*fO z53}p%dchlDs@5=j-m@jK(l^RCjylX9T%^8ZHK^?l4#ilX(*P$Si-e+7yLOG%w$*;2 z8;`IP!d(w=^`9sO4<*VOT>4JuGkG0)%geZtHP)b&`W$diFQ-$?zxqe52Cezt^c1xJ z8uG6s-9o#$ehVMCV%HneguIFmIzXLkC{K=*vem8h&vMnStKWj-vzOJ$%H*t`*2Ofd z(XgNraaZlk3Q5O2|99{fIC-&4bMegNMmu>OP9T?23*cbX$cr%7xpHtOEV`W7W&RRW z46}_+(08rKdrc>3S~1B;n4uyS6D1p=_a7Al1$!c)wlqj6Midnj(d=Rf7Wz(o7-D-4 z1g$w`@TS{$V7}iuQ*f1bt~^tKSV8(GytA)hA7FZy*a2M+VMQxYf@pcPqMC&Ls7LD)=zE~I<{99?IC)Wq|)Hztj*yQyt*n4$+np-iP~^ls~fHVo-O&l z3!G6|d493#w<_MRxoP8PNUY!ac4*f`eNuEgzJ7G0x7~u^i6`CcCRQxoT%rHh9uFrv zGlPo2F@}=ZD-3(~D5ckd3gZAA+qIb8vTV#WZ0jq;Wqo9KIkRUh?3A4j%v-DMi+V*( z<7YaSy-9n9olbvm9vuhr2&DPqoO~x9-PZN-e$BSA3eD(6H!LWB#Gi zp`!jOe$*+5PITQWd(cJ;nf%dn6*(elO3>(Ll;pL%d4TsGObAM&++(-tepo0&ZY@JZK1Yo=@}y^^COs8J%wbvg)A)MXH;T2`DuIL3hA!VpLw zs^Jz>yOJ%L(%{3@ntcw(b8Qh#$j{P)VB1Rgnd_}~ZiE1EK_Ojq!nu{(+ON2(eXP&A zH2lehG=|LUv8HC{)&)f2xAe#s?|cpMfrWNm4{S&%)gH-<_^Oa)4}1uoQ3&6vThz7k zjT)zp+mE)ocv08=8Dd3n;-^KO7SfeLXp3fw6|J4DM`DkI47COsJ5*)qM{{8sS}+L+ z7>T_QI>fHAWruOpqSzy6XuXM!nqZMoDXDB&D-79qV0~`xzELpZlEQOF`HNG4BOmi# zZRi=pax?A~dXNzB%w0oLJ|Z zWzk!d3fC^jZ$vb?Few$VhbQ6e3Xtf9bw+J@B`a^LeRm%E7K;*TyL{KiafFAiQA}*+ z;OlET#+;eAMQm`PmY!=lI>;D$@MH1qzxh@;zBugF7}Ygv({&}R z;F`^S&;H&N@P*_`g+0S>%xy5NQr2vg(HiJ1k%mt)DU|NAF?>?7T&S{W|8;-BC^MjC zB&#sYsi^oz12RoI&9|juh&{jjkzJHVrnrGb_999^CBSbEv#ISvY>G9T0j_UpHBUr!Pmegmf@uggLW>~RqB^BW z2SD&vd?v43G^ z>89l_)C^_OF$mC#8s98nX;r*O!E%}-GkiV7$*tx0 zK!3GMo+l%)v{iz7vIvS_rtp8Rmki3AS)i98zo=nm>O;fEt?+7JDm+^%QYu2}LxlS3 zAUtRpwU^V+ycuForgF4*#BP|Kle$<_2FiUJWn%LKXc3ko1^=U>8az3Y6lzCB70uC= z&qp&WEfLVox3C2zFjpS*jK#?e+Qq(CM7o8>c|>(q8ooYobf++D!xC@hJK5gmnX!(b z8IbTn^hAp;vAL1d5f_Z_#<&|(e4@Sq-c~_wk1vEN!igW2!_|WoIiNny#c{$)ufi@FV3b~Pepb% zoaFj_C^|s0t`Ub^WK^n+hP-gaPYFEl_j1M$g-IJXU5ikrQZo~aOI>WrrJCo@Nqe{s zM)>P}E3B?07mYE>66`FCvQ`>kcq+3FF;dGc+;Sy= zY~>h1wH&$~*rUB~x@=%p%pldXyZ_rRGB~Qs`GhBeolH6{q7bxo@x;Cq0butG#O~Y` z&K3mw^Wg3Q0a`(EHvtM@c5OG{29THz$Z;x2oq-r}{_5Q3LUaBGck=A+>879V`CmgK fqW}MIpo%SoVXtXfzO}L8@ZgGx<)w;??hpSza`ub8 diff --git a/snippet-template.md b/snippet-template.md index eea994cda..46ad937bf 100644 --- a/snippet-template.md +++ b/snippet-template.md @@ -6,7 +6,6 @@ authors: chalarangelo cover: blog_images/my-image.jpg excerpt: A short summary of your story up to 180 characters long. firstSeen: 2021-06-13T05:00:00-04:00 -lastUpdated: 2021-06-13T05:00:00-04:00 --- Write your blog post here.